Changeset 308


Ignore:
Timestamp:
Aug 18, 2021, 11:50:13 AM (3 years ago)
Author:
chronos
Message:
  • Modified: Updated Common package to newer version.
  • Modified: About dialog is now part of Common package.
  • Modified: CoolTranslator is now part of Common package.
Location:
trunk
Files:
18 added
4 deleted
28 edited

Legend:

Unmodified
Added
Removed
  • trunk/Languages/xtactics.cs.po

    r301 r308  
    8585msgstr "Statistiky hráčů"
    8686
     87#: tcore.applicationinfo.description
     88msgid "Turn-based strategy game inspired by classic Risk board game. The game is highly configurable to allow to adjust battle field and game rules."
     89msgstr ""
     90
    8791#: tcore.asettings.caption
    8892msgctxt "tcore.asettings.caption"
     
    112116msgid "Toggle fog of war"
    113117msgstr "Přepnout Skrytou mapu"
    114 
    115 #: tformabout.buttonclose.caption
    116 msgid "Close"
    117 msgstr "Zavřít"
    118 
    119 #: tformabout.buttonhomepage.caption
    120 msgid "Home page"
    121 msgstr "Domovská stránka"
    122 
    123 #: tformabout.caption
    124 msgctxt "tformabout.caption"
    125 msgid "About"
    126 msgstr "O aplikaci"
    127 
    128 #: tformabout.labelcontent.caption
    129 msgctxt "tformabout.labelcontent.caption"
    130 msgid "   "
    131 msgstr "   "
    132118
    133119#: tformcharts.caption
     
    926912msgid "Do you want to restart current game?"
    927913msgstr "Chcete restartovat aktuální hru?"
    928 
    929 #: uformabout.slicense
    930 msgid "License"
    931 msgstr "Licence"
    932 
    933 #: uformabout.sreleasedate
    934 msgid "Release date"
    935 msgstr "Datum uvolnění"
    936 
    937 #: uformabout.sversion
    938 msgid "Version"
    939 msgstr "Verze"
    940914
    941915#: uformcharts.scitiescount
  • trunk/Languages/xtactics.po

    r301 r308  
    7575msgstr ""
    7676
     77#: tcore.applicationinfo.description
     78msgid "Turn-based strategy game inspired by classic Risk board game. The game is highly configurable to allow to adjust battle field and game rules."
     79msgstr ""
     80
    7781#: tcore.asettings.caption
    7882msgctxt "tcore.asettings.caption"
     
    103107msgstr ""
    104108
    105 #: tformabout.buttonclose.caption
    106 msgid "Close"
    107 msgstr ""
    108 
    109 #: tformabout.buttonhomepage.caption
    110 msgid "Home page"
    111 msgstr ""
    112 
    113 #: tformabout.caption
    114 msgctxt "tformabout.caption"
    115 msgid "About"
    116 msgstr ""
    117 
    118 #: tformabout.labelcontent.caption
    119 msgctxt "tformabout.labelcontent.caption"
    120 msgid "   "
    121 msgstr ""
    122 
    123109#: tformcharts.caption
    124110msgctxt "tformcharts.caption"
     
    912898#: ucore.srestartgamequestion
    913899msgid "Do you want to restart current game?"
    914 msgstr ""
    915 
    916 #: uformabout.slicense
    917 msgid "License"
    918 msgstr ""
    919 
    920 #: uformabout.sreleasedate
    921 msgid "Release date"
    922 msgstr ""
    923 
    924 #: uformabout.sversion
    925 msgid "Version"
    926900msgstr ""
    927901
  • trunk/Packages/Common/Common.lpk

    r192 r308  
    3737      </Other>
    3838    </CompilerOptions>
    39     <Description Value="Various libraries"/>
    40     <License Value="GNU/GPL"/>
    41     <Version Minor="7"/>
    42     <Files Count="22">
     39    <Description Value="Common package with various useful units.
     40
     41Source: https://svn.zdechov.net/PascalClassLibrary/Common/"/>
     42    <License Value="Copy left."/>
     43    <Version Minor="8"/>
     44    <Files Count="29">
    4345      <Item1>
    4446        <Filename Value="StopWatch.pas"/>
     
    6062      <Item5>
    6163        <Filename Value="UPrefixMultiplier.pas"/>
     64        <HasRegisterProc Value="True"/>
    6265        <UnitName Value="UPrefixMultiplier"/>
    6366      </Item5>
     
    138141        <UnitName Value="UStringTable"/>
    139142      </Item22>
     143      <Item23>
     144        <Filename Value="UMetaCanvas.pas"/>
     145        <UnitName Value="UMetaCanvas"/>
     146      </Item23>
     147      <Item24>
     148        <Filename Value="UGeometric.pas"/>
     149        <UnitName Value="UGeometric"/>
     150      </Item24>
     151      <Item25>
     152        <Filename Value="UTranslator.pas"/>
     153        <HasRegisterProc Value="True"/>
     154        <UnitName Value="UTranslator"/>
     155      </Item25>
     156      <Item26>
     157        <Filename Value="ULanguages.pas"/>
     158        <UnitName Value="ULanguages"/>
     159      </Item26>
     160      <Item27>
     161        <Filename Value="UFormAbout.pas"/>
     162        <UnitName Value="UFormAbout"/>
     163      </Item27>
     164      <Item28>
     165        <Filename Value="UAboutDialog.pas"/>
     166        <HasRegisterProc Value="True"/>
     167        <UnitName Value="UAboutDialog"/>
     168      </Item28>
     169      <Item29>
     170        <Filename Value="UPixelPointer.pas"/>
     171        <UnitName Value="UPixelPointer"/>
     172      </Item29>
    140173    </Files>
    141174    <i18n>
     
    144177      <EnableI18NForLFM Value="True"/>
    145178    </i18n>
    146     <RequiredPkgs Count="3">
     179    <RequiredPkgs Count="2">
    147180      <Item1>
    148181        <PackageName Value="LCL"/>
    149182      </Item1>
    150183      <Item2>
    151         <PackageName Value="TemplateGenerics"/>
    152       </Item2>
    153       <Item3>
    154184        <PackageName Value="FCL"/>
    155185        <MinVersion Major="1" Valid="True"/>
    156       </Item3>
     186      </Item2>
    157187    </RequiredPkgs>
    158188    <UsageOptions>
  • trunk/Packages/Common/Common.pas

    r192 r308  
    1212  UMemory, UResetableThread, UPool, ULastOpenedList, URegistry,
    1313  UJobProgressView, UXMLUtils, UApplicationInfo, USyncCounter, UListViewSort,
    14   UPersistentForm, UFindFile, UScaleDPI, UTheme, UStringTable,
    15   LazarusPackageIntf;
     14  UPersistentForm, UFindFile, UScaleDPI, UTheme, UStringTable, UMetaCanvas,
     15  UGeometric, UTranslator, ULanguages, UFormAbout, UAboutDialog,
     16  UPixelPointer, LazarusPackageIntf;
    1617
    1718implementation
     
    2021begin
    2122  RegisterUnit('UDebugLog', @UDebugLog.Register);
     23  RegisterUnit('UPrefixMultiplier', @UPrefixMultiplier.Register);
    2224  RegisterUnit('ULastOpenedList', @ULastOpenedList.Register);
    2325  RegisterUnit('UJobProgressView', @UJobProgressView.Register);
     
    2830  RegisterUnit('UScaleDPI', @UScaleDPI.Register);
    2931  RegisterUnit('UTheme', @UTheme.Register);
     32  RegisterUnit('UTranslator', @UTranslator.Register);
     33  RegisterUnit('UAboutDialog', @UAboutDialog.Register);
    3034end;
    3135
  • trunk/Packages/Common/Demo/ScaleDPI/ScaleDPI.lpi

    r94 r308  
    1717      <StringTable ProductVersion=""/>
    1818    </VersionInfo>
    19     <MacroValues Count="1">
    20       <Macro1 Name="LCLWidgetType" Value="customdrawn"/>
    21     </MacroValues>
    2219    <BuildModes Count="1">
    2320      <Item1 Name="Default" Default="True"/>
    24       <SharedMatrixOptions Count="1">
    25         <Item1 ID="601562014369" Modes="Default" Type="IDEMacro" MacroName="LCLWidgetType" Value="customdrawn"/>
    26       </SharedMatrixOptions>
    2721    </BuildModes>
    2822    <PublishOptions>
     
    4741        <Filename Value="ScaleDPI.lpr"/>
    4842        <IsPartOfProject Value="True"/>
     43        <UnitName Value="ScaleDPI"/>
    4944      </Unit0>
    5045      <Unit1>
     
    5247        <IsPartOfProject Value="True"/>
    5348        <ComponentName Value="Form1"/>
    54         <HasResources Value="True"/>
    5549        <ResourceBaseClass Value="Form"/>
    5650        <UnitName Value="UFormMain"/>
     
    6054        <IsPartOfProject Value="True"/>
    6155        <ComponentName Value="Form2"/>
    62         <HasResources Value="True"/>
    6356        <ResourceBaseClass Value="Form"/>
    6457        <UnitName Value="UFormTest"/>
  • trunk/Packages/Common/Demo/ScaleDPI/UFormTest.lfm

    r94 r308  
    11object Form2: TForm2
    2   Left = 1009
     2  Left = 1062
    33  Height = 754
    4   Top = 351
     4  Top = 360
    55  Width = 1043
    66  Caption = 'Form2'
     
    5050      ClientHeight = 453
    5151      ClientWidth = 690
     52      object ListView1: TListView
     53        Left = 0
     54        Height = 390
     55        Top = 0
     56        Width = 690
     57        Align = alTop
     58        Columns = <       
     59          item
     60            Caption = 'Column'
     61          end       
     62          item
     63            Caption = 'Column'
     64          end       
     65          item
     66            Caption = 'Column'
     67          end       
     68          item
     69            Caption = 'Column'
     70          end       
     71          item
     72            Caption = 'Column'
     73            Width = 473
     74          end>
     75        TabOrder = 0
     76        ViewStyle = vsReport
     77      end
    5278      object Button1: TButton
    5379        Left = 592
     
    5783        Anchors = [akRight, akBottom]
    5884        Caption = 'Ok'
    59         TabOrder = 0
     85        TabOrder = 1
    6086      end
    6187      object Button2: TButton
     
    6692        Anchors = [akRight, akBottom]
    6793        Caption = 'Cancel'
    68         TabOrder = 1
     94        TabOrder = 2
    6995      end
    7096    end
     
    44424468    TabOrder = 3
    44434469  end
     4470  object StatusBar1: TStatusBar
     4471    Left = 0
     4472    Height = 29
     4473    Top = 696
     4474    Width = 1043
     4475    Panels = <   
     4476      item
     4477        Text = 'Panel1'
     4478        Width = 150
     4479      end   
     4480      item
     4481        Text = 'Panel2'
     4482        Width = 150
     4483      end   
     4484      item
     4485        Text = 'Panel3'
     4486        Width = 250
     4487      end>
     4488    SimplePanel = False
     4489  end
     4490  object Calendar1: TCalendar
     4491    Left = 744
     4492    Height = 254
     4493    Top = 48
     4494    Width = 220
     4495    DateTime = 41977
     4496    TabOrder = 5
     4497  end
    44444498  object ImageList1: TImageList
    44454499    left = 736
     
    45534607      object MenuItem3: TMenuItem
    45544608        Caption = 'New Item3'
    4555         Bitmap.Data = {
    4556           36040000424D3604000000000000360000002800000010000000100000000100
    4557           2000000000000004000064000000640000000000000000000000986B37FF976A
    4558           36FF966935FF966734FF956633FF946532FF946531FF936430FF92622FFF9261
    4559           2EFF91602DFF90602CFF905F2BFF8F5D2AFF8E5C29FF8D5B28FF996C38FFF8F7
    4560           F6FFF8F7F5FFF7F6F5FFF6F6F4FFF6F5F3FFF5F5F3FFF5F4F2FFF4F3F1FFF4F3
    4561           F1FFF3F2F0FFF3F2EFFFF2F1EFFFF2F0EEFFF1F0EDFF8E5D29FF996D3AFFF9F8
    4562           F7FF959594FF878787FF9B9A9AFFF7F6F4FFF6F5F3FFF6F5F3FFF5F4F2FFF4F3
    4563           F1FFF4F3F1FFF3F2F0FFF3F2EFFFF2F1EFFFF2F1EEFF8F5E2AFF9A6E3BFFF9F9
    4564           F8FF7C7C7CFFC4C4C4FF878787FFF7F6F5FF7A7A7AFF787878FF747474FF7171
    4565           70FF6D6D6CFF696968FF656565FF616161FFF2F1EFFF905F2BFF9B6F3CFFFAF9
    4566           F8FFBEBEBDFF929292FFBCBCBBFFF8F7F6FFF7F7F5FFF7F6F4FFF6F5F4FFF6F5
    4567           F3FFF5F4F2FFF5F4F2FFF4F3F1FFF4F2F0FFF3F2F0FF91602DFF9C703DFFFAFA
    4568           F9FFFAF9F9FFF9F9F8FFF9F8F7FFF8F8F7FFF8F7F6FFF7F7F5FFF7F6F5FFF6F5
    4569           F4FFF6F5F3FFF5F4F3FFF5F4F2FFF4F3F1FFF4F3F0FF92612EFF9D723EFFFBFB
    4570           FAFF9F9F9EFF7F7F7FFFAEAEADFFF9F8F7FFF8F8F7FFF8F7F6FFF7F7F5FFF7F6
    4571           F5FFF6F6F4FFF6F5F3FFF5F4F3FFF5F4F2FFF4F3F1FF92622FFF9D7340FFFCFB
    4572           FBFF818181FFC4C4C4FF8F8F8FFFFAF9F8FF7B7B7AFF797979FF757574FF7271
    4573           71FF6D6D6DFF696969FF666665FF626261FFF5F4F2FF936430FF9E7441FFFCFC
    4574           FCFFB5B5B5FF848484FFBEBDBDFFFAFAF9FFFAF9F8FFF9F9F7FFF9F8F7FFF8F8
    4575           F6FFF8F7F5FFF7F6F5FFF7F6F4FFF6F5F3FFF6F5F3FF946531FF9F7542FFFDFD
    4576           FCFFFCFCFCFFFCFCFBFFFBFBFAFFFBFAFAFFFAFAF9FFFAF9F8FFF9F9F8FFF9F8
    4577           F7FFF8F8F6FFF8F7F6FFF7F6F5FFF7F6F4FFF6F5F4FF956633FFA07643FFFEFD
    4578           FDFF8C8C8CFF525252FFA4A4A4FFFBFBFAFFFBFBFAFFFAFAF9FFFAF9F8FFF9F9
    4579           F8FFF9F8F7FFF8F8F6FFF8F7F6FFF7F7F5FFF7F6F4FF966734FFA17844FFFEFE
    4580           FEFF5F5F5FFF949494FF535353FFFCFCFBFF7B7B7BFF797979FF757575FF7272
    4581           72FF6E6E6EFF6A6A69FF666666FF626262FFF7F7F5FF966935FFA17946FFFFFF
    4582           FFFF878787FF5D5D5DFFA0A0A0FFFDFCFCFFFCFCFBFFFCFBFBFFFBFBFAFFFBFA
    4583           F9FFFAFAF9FFFAF9F8FFF9F8F7FFF8F8F7FFF8F7F6FF976A36FFA27A47FFFFFF
    4584           FFFFFFFFFFFFFEFEFEFFFEFEFEFFFDFDFDFFFDFDFCFFFCFCFBFFFCFBFBFFFBFB
    4585           FAFFFBFAF9FFFAFAF9FFFAF9F8FFF9F9F7FFF9F8F7FF986B37FFA37B48FFBEA2
    4586           7FFFBEA17EFFBDA17DFFBDA07CFFBD9F7CFFBC9F7BFFBB9E7AFFBB9D7AFFBB9D
    4587           79FFBA9C78FFB99B78FFB99A77FFB89A76FFB89975FF996C39FFA37B48FFA37B
    4588           48FFA27A47FFA27946FFA17845FFA07744FFA07643FF9F7542FF9E7441FF9E73
    4589           40FF9D723FFF9C713EFF9C703DFF9B6F3CFF9A6E3BFF9A6D3AFF
    4590         }
    45914609        ImageIndex = 0
    45924610        OnClick = MenuItem3Click
     
    45944612      object MenuItem8: TMenuItem
    45954613        Caption = 'New Item8'
    4596         Bitmap.Data = {
    4597           36040000424D3604000000000000360000002800000010000000100000000100
    4598           2000000000000004000064000000640000000000000000000000FF00FF00FF00
    4599           FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00
    4600           FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00634A
    4601           31FF634A31FF634A31FF634A31FF634A31FF634A31FF634A31FF634A31FF634A
    4602           31FF634A31FF634A31FF634A31FF634A31FFFF00FF00FF00FF00C6ADA5FFFFEF
    4603           E7FFFFEFE7FFFFEFE7FFFFEFE7FFFFEFE7FFFFEFE7FFFFEFE7FFFFE7D6FFFFDE
    4604           D6FFFFDED6FFFFDED6FFFFDED6FFFFDED6FF634A31FFFF00FF00C6ADA5FFFFEF
    4605           E7FFD69484FFE7A584FFF7A584FFF79C73FFF79C73FFE78C63FFE78463FFE784
    4606           52FFE78442FFE77B42FFE78452FFFFDED6FF634A31FFFF00FF00C6ADA5FFFFF7
    4607           F7FFC69473FFFFC6A5FFF7B594FFF7A584FFF79C73FFF79C73FFE78C63FFE784
    4608           63FFD67B52FFD67352FFE77342FFFFDED6FF634A31FFFF00FF00C6ADA5FFFFF7
    4609           F7FFC69473FFFFCEB5FFFFEFE7FFFFE7D6FFFFDED6FFFFDED6FFFFDED6FFFFD6
    4610           C6FFFFD6C6FFD67B52FFE77342FFFFDED6FF634A31FFFF00FF00C6ADA5FFFFF7
    4611           F7FFC69473FFFFCEB5FFFFC6A5FFFFC6A5FFFFB594FFF7A584FFF7A584FFF79C
    4612           73FFE78C63FFE78463FFE77342FFFFDED6FF634A31FFFF00FF00C6ADA5FFFFF7
    4613           F7FFC69473FFFFD6C6FFFFEFE7FFFFEFE7FFFFEFE7FFFFE7D6FFFFDED6FFFFDE
    4614           D6FFFFDED6FFE78C63FFE77342FFFFE7D6FF634A31FFFF00FF00C6ADA5FFFFF7
    4615           F7FFC69473FFFFD6C6FFFFD6C6FFFFCEB5FFFFC6A5FFFFC6A5FFFFB594FFF7A5
    4616           84FFF79C73FFF79C73FFE77342FFFFEFE7FF634A31FFFF00FF00D6B5A5FFFFFF
    4617           FFFFC69473FFFFDED6FFFFEFE7FFFFEFE7FFFFEFE7FFFFC6A5FFFFC6A5FFFFB5
    4618           94FFFFB594FFF79C73FFE77B42FFFFEFE7FF634A31FFFF00FF00D6B5A5FFFFFF
    4619           FFFFC69473FFFFDED6FFFFDED6FFFFD6C6FFFFCEB5FFFFCEB5FFFFC6A5FFFFC6
    4620           A5FFFFB594FFFFB584FFE77B42FFFFEFE7FF634A31FFFF00FF00D6B5A5FFFFFF
    4621           FFFFD69C84FFD69484FFC69473FFD68C73FFD68C63FFC68463FFC67B52FFC673
    4622           42FFC66B42FFC66B42FFD67B42FFFFEFE7FF634A31FFFF00FF00D6B5A5FFFFFF
    4623           FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7F7FFFFF7F7FFFFF7F7FFFFF7F7FFFFF7
    4624           F7FFFFEFE7FFFFEFE7FFFFEFE7FFFFEFE7FF634A31FFFF00FF00FF00FF00D6B5
    4625           A5FFD6B5A5FFD6B5A5FFD6B5A5FFC6ADA5FFC6ADA5FFC6ADA5FFC6ADA5FFC6AD
    4626           A5FFC6ADA5FFC6ADA5FFC6ADA5FFC6ADA5FFFF00FF00FF00FF00FF00FF00FF00
    4627           FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00
    4628           FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00
    4629           FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00
    4630           FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00
    4631         }
    46324614        ImageIndex = 1
    46334615      end
    46344616      object MenuItem9: TMenuItem
    46354617        Caption = 'New Item9'
    4636         Bitmap.Data = {
    4637           36040000424D3604000000000000360000002800000010000000100000000100
    4638           2000000000000004000064000000640000000000000000000000FF00FF00FF00
    4639           FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00
    4640           FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00634A
    4641           31FF634A31FF634A31FF634A31FF634A31FF634A31FF634A31FF634A31FF634A
    4642           31FF634A31FF634A31FF634A31FF634A31FFFF00FF00FF00FF00C6ADA5FFFFEF
    4643           E7FFFFEFE7FFFFEFE7FFFFEFE7FFFFEFE7FFFFEFE7FFFFEFE7FFFFE7D6FFFFDE
    4644           D6FFFFDED6FFFFDED6FFFFDED6FFFFDED6FF634A31FFFF00FF00C6ADA5FFFFEF
    4645           E7FFD69484FFE7A584FFF7A584FFF79C73FFF79C73FFE78C63FFE78463FFE784
    4646           52FFE78442FFE77B42FFE78452FFFFDED6FF634A31FFFF00FF00C6ADA5FFFFF7
    4647           F7FFC69473FFFFC6A5FFF7B594FFF7A584FFF79C73FFF79C73FFE78C63FFE784
    4648           63FFD67B52FFD67352FFE77342FFFFDED6FF634A31FFFF00FF00C6ADA5FFFFF7
    4649           F7FFC69473FFFFCEB5FFFFEFE7FFFFE7D6FFFFDED6FFFFDED6FFFFDED6FFFFD6
    4650           C6FFFFD6C6FFD67B52FFE77342FFFFDED6FF634A31FFFF00FF00C6ADA5FFFFF7
    4651           F7FFC69473FFFFCEB5FFFFC6A5FFFFC6A5FFFFB594FFF7A584FFF7A584FFF79C
    4652           73FFE78C63FFE78463FFE77342FFFFDED6FF634A31FFFF00FF00C6ADA5FFFFF7
    4653           F7FFC69473FFFFD6C6FFFFEFE7FFFFEFE7FFFFEFE7FFFFE7D6FFFFDED6FFFFDE
    4654           D6FFFFDED6FFE78C63FFE77342FFFFE7D6FF634A31FFFF00FF00C6ADA5FFFFF7
    4655           F7FFC69473FFFFD6C6FFFFD6C6FFFFCEB5FFFFC6A5FFFFC6A5FFFFB594FFF7A5
    4656           84FFF79C73FFF79C73FFE77342FFFFEFE7FF634A31FFFF00FF00D6B5A5FFFFFF
    4657           FFFFC69473FFFFDED6FFFFEFE7FFFFEFE7FFFFEFE7FFFFC6A5FFFFC6A5FFFFB5
    4658           94FFFFB594FFF79C73FFE77B42FFFFEFE7FF634A31FFFF00FF00D6B5A5FFFFFF
    4659           FFFFC69473FFFFDED6FFFFDED6FFFFD6C6FFFFCEB5FFFFCEB5FFFFC6A5FFFFC6
    4660           A5FFFFB594FFFFB584FFE77B42FFFFEFE7FF634A31FFFF00FF00D6B5A5FFFFFF
    4661           FFFFD69C84FFD69484FFC69473FFD68C73FFD68C63FFC68463FFC67B52FFC673
    4662           42FFC66B42FFC66B42FFD67B42FFFFEFE7FF634A31FFFF00FF00D6B5A5FFFFFF
    4663           FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7F7FFFFF7F7FFFFF7F7FFFFF7F7FFFFF7
    4664           F7FFFFEFE7FFFFEFE7FFFFEFE7FFFFEFE7FF634A31FFFF00FF00FF00FF00D6B5
    4665           A5FFD6B5A5FFD6B5A5FFD6B5A5FFC6ADA5FFC6ADA5FFC6ADA5FFC6ADA5FFC6AD
    4666           A5FFC6ADA5FFC6ADA5FFC6ADA5FFC6ADA5FFFF00FF00FF00FF00FF00FF00FF00
    4667           FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00
    4668           FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00
    4669           FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00
    4670           FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00
    4671         }
    46724618        ImageIndex = 1
    46734619      end
    46744620      object MenuItem10: TMenuItem
    46754621        Caption = 'New Item10'
    4676         Bitmap.Data = {
    4677           36040000424D3604000000000000360000002800000010000000100000000100
    4678           2000000000000004000064000000640000000000000000000000FFFFFF00FFFF
    4679           FF00FFFFFF00FFFFFF005049E726342DE374241CE1BF231BE1BF231BE1BF251D
    4680           E19F3730E464FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
    4681           FF00FFFFFF002D26E2912B23E2FF3032E7FF3B48EFFF4356F4FF4152F2FF3944
    4682           EEFF2D2BE5FF2C24E2DF352EE354FFFFFF00FFFFFF00FFFFFF00FFFFFF00231B
    4683           E20E2B23E3CF2C29E5FF4153F3FF4E6AFAFF4E6AFAFF4E6AFAFF4E6AFAFF4E6A
    4684           FAFF4D69FAFF3B47EFFF2923E3FF332BE362FFFFFF00FFFFFF00FFFFFF002C24
    4685           E3912A24E5FFE2E6FEFFE6EAFEFFE5E9FEFFE5E9FEFFE5E9FEFFE5E9FEFFE5E9
    4686           FEFFE5E9FEFFE8EBFEFF4051F2FF2820E2FF3730E442FFFFFF00231BE22E2A22
    4687           E3FF3B47EFFF5C76FAFF96A7FCFFA2B1FCFFA3B2FCFF9CACFCFFA5B3FCFFA1B0
    4688           FCFF9EADFCFF778CFBFF4E6AFAFF3134E9FF2B23E2DFFFFFFF00231BE29F271F
    4689           E3FF4961F7FFCFD7FEFFFBFBFFFFE4E8FEFFDCE2FEFFFBFBFFFFD6DDFEFFECF0
    4690           FEFFFAFAFFFFCDD5FEFF4E6AFAFF3E4DF1FF261FE1FF231BE12E231BE2DF261E
    4691           E2FF4D68F9FF6981FBFFF3F4FFFF8598FCFF667EFBFFF3F4FFFF4E6AFAFFA8B5
    4692           FDFFDDE2FEFF4E6AFAFF4E6AFAFF4255F3FF231BE1FF231BE17E241CE2FF261F
    4693           E2FF231BE2FF453EE6FFEFEEFDFF6D68ECFF4841E7FFEFEFFDFF2B23E3FF9793
    4694           F1FFD6D4FAFF231BE2FF231BE1FF231BE1FF231BE1FF231BE17E241CE2FF271F
    4695           E2FF241CE2FF453FE6FFEFEEFDFF6D68ECFF4841E7FFEFEFFDFF2B23E3FF9793
    4696           F1FFD6D4FAFF231BE2FF231BE2FF231BE2FF231BE2FF231BE27E241CE2CF2720
    4697           E2FF241CE2FF3C35E5FFEFEEFDFF645FEBFF3D36E5FFEFEFFDFF231BE2FF908C
    4698           F0FFD4D2F9FF231BE2FF231BE2FF231BE2FF241CE2FF231BE27E241CE29F2921
    4699           E3FF241CE2FFEBEAFCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
    4700           FFFFFFFFFFFFFFFFFFFF261EE2FF231BE2FF271FE3FF231BE22E241CE22E2C24
    4701           E3FF261EE2FF241CE2FF241CE2FF241CE2FF241CE2FF241CE2FF241CE2FF241C
    4702           E2FF241CE2FF241CE2FF261EE2FF251DE2FF2B23E3DFFFFFFF00FFFFFF002C24
    4703           E3912A22E3FF332BE4FF9995F1FFF5F4FEFFFBFBFEFFF6F6FEFFF8F8FEFFFCFC
    4704           FFFFB6B3F5FF433CE6FF241CE2FF2A22E3FF3028E442FFFFFF00FFFFFF00FFFF
    4705           FF002A22E3BF2A22E3FF2820E2FF635DEAFFCECCF9FFFFFFFFFFE7E6FCFF7C77
    4706           EEFF2D26E3FF271FE2FF2A22E3FF2E27E362FFFFFF00FFFFFF00FFFFFF00FFFF
    4707           FF00FFFFFF002B23E3812C24E3FF2B23E3FF4C46E8FF8D89F0FF615BEAFF2820
    4708           E3FF2B23E3FF2D25E3DF3129E442FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
    4709           FF00FFFFFF00FFFFFF00241CE21E241CE26E241CE2AF241CE2BF241CE2BF241C
    4710           E29F241CE25EFFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00
    4711         }
    47124622        ImageIndex = 2
    47134623      end
     
    47174627      object MenuItem4: TMenuItem
    47184628        Caption = 'New Item4'
    4719         Bitmap.Data = {
    4720           36040000424D3604000000000000360000002800000010000000100000000100
    4721           2000000000000004000064000000640000000000000000000000986B37FF976A
    4722           36FF966935FF966734FF956633FF946532FF946531FF936430FF92622FFF9261
    4723           2EFF91602DFF90602CFF905F2BFF8F5D2AFF8E5C29FF8D5B28FF996C38FFF8F7
    4724           F6FFF8F7F5FFF7F6F5FFF6F6F4FFF6F5F3FFF5F5F3FFF5F4F2FFF4F3F1FFF4F3
    4725           F1FFF3F2F0FFF3F2EFFFF2F1EFFFF2F0EEFFF1F0EDFF8E5D29FF996D3AFFF9F8
    4726           F7FF959594FF878787FF9B9A9AFFF7F6F4FFF6F5F3FFF6F5F3FFF5F4F2FFF4F3
    4727           F1FFF4F3F1FFF3F2F0FFF3F2EFFFF2F1EFFFF2F1EEFF8F5E2AFF9A6E3BFFF9F9
    4728           F8FF7C7C7CFFC4C4C4FF878787FFF7F6F5FF7A7A7AFF787878FF747474FF7171
    4729           70FF6D6D6CFF696968FF656565FF616161FFF2F1EFFF905F2BFF9B6F3CFFFAF9
    4730           F8FFBEBEBDFF929292FFBCBCBBFFF8F7F6FFF7F7F5FFF7F6F4FFF6F5F4FFF6F5
    4731           F3FFF5F4F2FFF5F4F2FFF4F3F1FFF4F2F0FFF3F2F0FF91602DFF9C703DFFFAFA
    4732           F9FFFAF9F9FFF9F9F8FFF9F8F7FFF8F8F7FFF8F7F6FFF7F7F5FFF7F6F5FFF6F5
    4733           F4FFF6F5F3FFF5F4F3FFF5F4F2FFF4F3F1FFF4F3F0FF92612EFF9D723EFFFBFB
    4734           FAFF9F9F9EFF7F7F7FFFAEAEADFFF9F8F7FFF8F8F7FFF8F7F6FFF7F7F5FFF7F6
    4735           F5FFF6F6F4FFF6F5F3FFF5F4F3FFF5F4F2FFF4F3F1FF92622FFF9D7340FFFCFB
    4736           FBFF818181FFC4C4C4FF8F8F8FFFFAF9F8FF7B7B7AFF797979FF757574FF7271
    4737           71FF6D6D6DFF696969FF666665FF626261FFF5F4F2FF936430FF9E7441FFFCFC
    4738           FCFFB5B5B5FF848484FFBEBDBDFFFAFAF9FFFAF9F8FFF9F9F7FFF9F8F7FFF8F8
    4739           F6FFF8F7F5FFF7F6F5FFF7F6F4FFF6F5F3FFF6F5F3FF946531FF9F7542FFFDFD
    4740           FCFFFCFCFCFFFCFCFBFFFBFBFAFFFBFAFAFFFAFAF9FFFAF9F8FFF9F9F8FFF9F8
    4741           F7FFF8F8F6FFF8F7F6FFF7F6F5FFF7F6F4FFF6F5F4FF956633FFA07643FFFEFD
    4742           FDFF8C8C8CFF525252FFA4A4A4FFFBFBFAFFFBFBFAFFFAFAF9FFFAF9F8FFF9F9
    4743           F8FFF9F8F7FFF8F8F6FFF8F7F6FFF7F7F5FFF7F6F4FF966734FFA17844FFFEFE
    4744           FEFF5F5F5FFF949494FF535353FFFCFCFBFF7B7B7BFF797979FF757575FF7272
    4745           72FF6E6E6EFF6A6A69FF666666FF626262FFF7F7F5FF966935FFA17946FFFFFF
    4746           FFFF878787FF5D5D5DFFA0A0A0FFFDFCFCFFFCFCFBFFFCFBFBFFFBFBFAFFFBFA
    4747           F9FFFAFAF9FFFAF9F8FFF9F8F7FFF8F8F7FFF8F7F6FF976A36FFA27A47FFFFFF
    4748           FFFFFFFFFFFFFEFEFEFFFEFEFEFFFDFDFDFFFDFDFCFFFCFCFBFFFCFBFBFFFBFB
    4749           FAFFFBFAF9FFFAFAF9FFFAF9F8FFF9F9F7FFF9F8F7FF986B37FFA37B48FFBEA2
    4750           7FFFBEA17EFFBDA17DFFBDA07CFFBD9F7CFFBC9F7BFFBB9E7AFFBB9D7AFFBB9D
    4751           79FFBA9C78FFB99B78FFB99A77FFB89A76FFB89975FF996C39FFA37B48FFA37B
    4752           48FFA27A47FFA27946FFA17845FFA07744FFA07643FF9F7542FF9E7441FF9E73
    4753           40FF9D723FFF9C713EFF9C703DFF9B6F3CFF9A6E3BFF9A6D3AFF
    4754         }
    47554629        ImageIndex = 0
    47564630      end
    47574631      object MenuItem5: TMenuItem
    47584632        Caption = 'New Item5'
    4759         Bitmap.Data = {
    4760           36040000424D3604000000000000360000002800000010000000100000000100
    4761           2000000000000004000064000000640000000000000000000000FF00FF00FF00
    4762           FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00
    4763           FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00634A
    4764           31FF634A31FF634A31FF634A31FF634A31FF634A31FF634A31FF634A31FF634A
    4765           31FF634A31FF634A31FF634A31FF634A31FFFF00FF00FF00FF00C6ADA5FFFFEF
    4766           E7FFFFEFE7FFFFEFE7FFFFEFE7FFFFEFE7FFFFEFE7FFFFEFE7FFFFE7D6FFFFDE
    4767           D6FFFFDED6FFFFDED6FFFFDED6FFFFDED6FF634A31FFFF00FF00C6ADA5FFFFEF
    4768           E7FFD69484FFE7A584FFF7A584FFF79C73FFF79C73FFE78C63FFE78463FFE784
    4769           52FFE78442FFE77B42FFE78452FFFFDED6FF634A31FFFF00FF00C6ADA5FFFFF7
    4770           F7FFC69473FFFFC6A5FFF7B594FFF7A584FFF79C73FFF79C73FFE78C63FFE784
    4771           63FFD67B52FFD67352FFE77342FFFFDED6FF634A31FFFF00FF00C6ADA5FFFFF7
    4772           F7FFC69473FFFFCEB5FFFFEFE7FFFFE7D6FFFFDED6FFFFDED6FFFFDED6FFFFD6
    4773           C6FFFFD6C6FFD67B52FFE77342FFFFDED6FF634A31FFFF00FF00C6ADA5FFFFF7
    4774           F7FFC69473FFFFCEB5FFFFC6A5FFFFC6A5FFFFB594FFF7A584FFF7A584FFF79C
    4775           73FFE78C63FFE78463FFE77342FFFFDED6FF634A31FFFF00FF00C6ADA5FFFFF7
    4776           F7FFC69473FFFFD6C6FFFFEFE7FFFFEFE7FFFFEFE7FFFFE7D6FFFFDED6FFFFDE
    4777           D6FFFFDED6FFE78C63FFE77342FFFFE7D6FF634A31FFFF00FF00C6ADA5FFFFF7
    4778           F7FFC69473FFFFD6C6FFFFD6C6FFFFCEB5FFFFC6A5FFFFC6A5FFFFB594FFF7A5
    4779           84FFF79C73FFF79C73FFE77342FFFFEFE7FF634A31FFFF00FF00D6B5A5FFFFFF
    4780           FFFFC69473FFFFDED6FFFFEFE7FFFFEFE7FFFFEFE7FFFFC6A5FFFFC6A5FFFFB5
    4781           94FFFFB594FFF79C73FFE77B42FFFFEFE7FF634A31FFFF00FF00D6B5A5FFFFFF
    4782           FFFFC69473FFFFDED6FFFFDED6FFFFD6C6FFFFCEB5FFFFCEB5FFFFC6A5FFFFC6
    4783           A5FFFFB594FFFFB584FFE77B42FFFFEFE7FF634A31FFFF00FF00D6B5A5FFFFFF
    4784           FFFFD69C84FFD69484FFC69473FFD68C73FFD68C63FFC68463FFC67B52FFC673
    4785           42FFC66B42FFC66B42FFD67B42FFFFEFE7FF634A31FFFF00FF00D6B5A5FFFFFF
    4786           FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7F7FFFFF7F7FFFFF7F7FFFFF7F7FFFFF7
    4787           F7FFFFEFE7FFFFEFE7FFFFEFE7FFFFEFE7FF634A31FFFF00FF00FF00FF00D6B5
    4788           A5FFD6B5A5FFD6B5A5FFD6B5A5FFC6ADA5FFC6ADA5FFC6ADA5FFC6ADA5FFC6AD
    4789           A5FFC6ADA5FFC6ADA5FFC6ADA5FFC6ADA5FFFF00FF00FF00FF00FF00FF00FF00
    4790           FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00
    4791           FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00
    4792           FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00
    4793           FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00
    4794         }
    47954633        ImageIndex = 1
    47964634      end
    47974635      object MenuItem6: TMenuItem
    47984636        Caption = 'New Item6'
    4799         Bitmap.Data = {
    4800           36040000424D3604000000000000360000002800000010000000100000000100
    4801           2000000000000004000064000000640000000000000000000000986B37FF976A
    4802           36FF966935FF966734FF956633FF946532FF946531FF936430FF92622FFF9261
    4803           2EFF91602DFF90602CFF905F2BFF8F5D2AFF8E5C29FF8D5B28FF996C38FFF8F7
    4804           F6FFF8F7F5FFF7F6F5FFF6F6F4FFF6F5F3FFF5F5F3FFF5F4F2FFF4F3F1FFF4F3
    4805           F1FFF3F2F0FFF3F2EFFFF2F1EFFFF2F0EEFFF1F0EDFF8E5D29FF996D3AFFF9F8
    4806           F7FF959594FF878787FF9B9A9AFFF7F6F4FFF6F5F3FFF6F5F3FFF5F4F2FFF4F3
    4807           F1FFF4F3F1FFF3F2F0FFF3F2EFFFF2F1EFFFF2F1EEFF8F5E2AFF9A6E3BFFF9F9
    4808           F8FF7C7C7CFFC4C4C4FF878787FFF7F6F5FF7A7A7AFF787878FF747474FF7171
    4809           70FF6D6D6CFF696968FF656565FF616161FFF2F1EFFF905F2BFF9B6F3CFFFAF9
    4810           F8FFBEBEBDFF929292FFBCBCBBFFF8F7F6FFF7F7F5FFF7F6F4FFF6F5F4FFF6F5
    4811           F3FFF5F4F2FFF5F4F2FFF4F3F1FFF4F2F0FFF3F2F0FF91602DFF9C703DFFFAFA
    4812           F9FFFAF9F9FFF9F9F8FFF9F8F7FFF8F8F7FFF8F7F6FFF7F7F5FFF7F6F5FFF6F5
    4813           F4FFF6F5F3FFF5F4F3FFF5F4F2FFF4F3F1FFF4F3F0FF92612EFF9D723EFFFBFB
    4814           FAFF9F9F9EFF7F7F7FFFAEAEADFFF9F8F7FFF8F8F7FFF8F7F6FFF7F7F5FFF7F6
    4815           F5FFF6F6F4FFF6F5F3FFF5F4F3FFF5F4F2FFF4F3F1FF92622FFF9D7340FFFCFB
    4816           FBFF818181FFC4C4C4FF8F8F8FFFFAF9F8FF7B7B7AFF797979FF757574FF7271
    4817           71FF6D6D6DFF696969FF666665FF626261FFF5F4F2FF936430FF9E7441FFFCFC
    4818           FCFFB5B5B5FF848484FFBEBDBDFFFAFAF9FFFAF9F8FFF9F9F7FFF9F8F7FFF8F8
    4819           F6FFF8F7F5FFF7F6F5FFF7F6F4FFF6F5F3FFF6F5F3FF946531FF9F7542FFFDFD
    4820           FCFFFCFCFCFFFCFCFBFFFBFBFAFFFBFAFAFFFAFAF9FFFAF9F8FFF9F9F8FFF9F8
    4821           F7FFF8F8F6FFF8F7F6FFF7F6F5FFF7F6F4FFF6F5F4FF956633FFA07643FFFEFD
    4822           FDFF8C8C8CFF525252FFA4A4A4FFFBFBFAFFFBFBFAFFFAFAF9FFFAF9F8FFF9F9
    4823           F8FFF9F8F7FFF8F8F6FFF8F7F6FFF7F7F5FFF7F6F4FF966734FFA17844FFFEFE
    4824           FEFF5F5F5FFF949494FF535353FFFCFCFBFF7B7B7BFF797979FF757575FF7272
    4825           72FF6E6E6EFF6A6A69FF666666FF626262FFF7F7F5FF966935FFA17946FFFFFF
    4826           FFFF878787FF5D5D5DFFA0A0A0FFFDFCFCFFFCFCFBFFFCFBFBFFFBFBFAFFFBFA
    4827           F9FFFAFAF9FFFAF9F8FFF9F8F7FFF8F8F7FFF8F7F6FF976A36FFA27A47FFFFFF
    4828           FFFFFFFFFFFFFEFEFEFFFEFEFEFFFDFDFDFFFDFDFCFFFCFCFBFFFCFBFBFFFBFB
    4829           FAFFFBFAF9FFFAFAF9FFFAF9F8FFF9F9F7FFF9F8F7FF986B37FFA37B48FFBEA2
    4830           7FFFBEA17EFFBDA17DFFBDA07CFFBD9F7CFFBC9F7BFFBB9E7AFFBB9D7AFFBB9D
    4831           79FFBA9C78FFB99B78FFB99A77FFB89A76FFB89975FF996C39FFA37B48FFA37B
    4832           48FFA27A47FFA27946FFA17845FFA07744FFA07643FF9F7542FF9E7441FF9E73
    4833           40FF9D723FFF9C713EFF9C703DFF9B6F3CFF9A6E3BFF9A6D3AFF
    4834         }
    48354637        ImageIndex = 0
    48364638      end
    48374639      object MenuItem7: TMenuItem
    48384640        Caption = 'New Item7'
    4839         Bitmap.Data = {
    4840           36040000424D3604000000000000360000002800000010000000100000000100
    4841           2000000000000004000064000000640000000000000000000000FF00FF00FF00
    4842           FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00
    4843           FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00634A
    4844           31FF634A31FF634A31FF634A31FF634A31FF634A31FF634A31FF634A31FF634A
    4845           31FF634A31FF634A31FF634A31FF634A31FFFF00FF00FF00FF00C6ADA5FFFFEF
    4846           E7FFFFEFE7FFFFEFE7FFFFEFE7FFFFEFE7FFFFEFE7FFFFEFE7FFFFE7D6FFFFDE
    4847           D6FFFFDED6FFFFDED6FFFFDED6FFFFDED6FF634A31FFFF00FF00C6ADA5FFFFEF
    4848           E7FFD69484FFE7A584FFF7A584FFF79C73FFF79C73FFE78C63FFE78463FFE784
    4849           52FFE78442FFE77B42FFE78452FFFFDED6FF634A31FFFF00FF00C6ADA5FFFFF7
    4850           F7FFC69473FFFFC6A5FFF7B594FFF7A584FFF79C73FFF79C73FFE78C63FFE784
    4851           63FFD67B52FFD67352FFE77342FFFFDED6FF634A31FFFF00FF00C6ADA5FFFFF7
    4852           F7FFC69473FFFFCEB5FFFFEFE7FFFFE7D6FFFFDED6FFFFDED6FFFFDED6FFFFD6
    4853           C6FFFFD6C6FFD67B52FFE77342FFFFDED6FF634A31FFFF00FF00C6ADA5FFFFF7
    4854           F7FFC69473FFFFCEB5FFFFC6A5FFFFC6A5FFFFB594FFF7A584FFF7A584FFF79C
    4855           73FFE78C63FFE78463FFE77342FFFFDED6FF634A31FFFF00FF00C6ADA5FFFFF7
    4856           F7FFC69473FFFFD6C6FFFFEFE7FFFFEFE7FFFFEFE7FFFFE7D6FFFFDED6FFFFDE
    4857           D6FFFFDED6FFE78C63FFE77342FFFFE7D6FF634A31FFFF00FF00C6ADA5FFFFF7
    4858           F7FFC69473FFFFD6C6FFFFD6C6FFFFCEB5FFFFC6A5FFFFC6A5FFFFB594FFF7A5
    4859           84FFF79C73FFF79C73FFE77342FFFFEFE7FF634A31FFFF00FF00D6B5A5FFFFFF
    4860           FFFFC69473FFFFDED6FFFFEFE7FFFFEFE7FFFFEFE7FFFFC6A5FFFFC6A5FFFFB5
    4861           94FFFFB594FFF79C73FFE77B42FFFFEFE7FF634A31FFFF00FF00D6B5A5FFFFFF
    4862           FFFFC69473FFFFDED6FFFFDED6FFFFD6C6FFFFCEB5FFFFCEB5FFFFC6A5FFFFC6
    4863           A5FFFFB594FFFFB584FFE77B42FFFFEFE7FF634A31FFFF00FF00D6B5A5FFFFFF
    4864           FFFFD69C84FFD69484FFC69473FFD68C73FFD68C63FFC68463FFC67B52FFC673
    4865           42FFC66B42FFC66B42FFD67B42FFFFEFE7FF634A31FFFF00FF00D6B5A5FFFFFF
    4866           FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7F7FFFFF7F7FFFFF7F7FFFFF7F7FFFFF7
    4867           F7FFFFEFE7FFFFEFE7FFFFEFE7FFFFEFE7FF634A31FFFF00FF00FF00FF00D6B5
    4868           A5FFD6B5A5FFD6B5A5FFD6B5A5FFC6ADA5FFC6ADA5FFC6ADA5FFC6ADA5FFC6AD
    4869           A5FFC6ADA5FFC6ADA5FFC6ADA5FFC6ADA5FFFF00FF00FF00FF00FF00FF00FF00
    4870           FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00
    4871           FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00
    4872           FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00
    4873           FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00
    4874         }
    48754641        ImageIndex = 1
    48764642      end
     
    48804646      object MenuItem12: TMenuItem
    48814647        Caption = 'New Item12'
    4882         Bitmap.Data = {
    4883           36040000424D3604000000000000360000002800000010000000100000000100
    4884           2000000000000004000064000000640000000000000000000000FFFFFF00FFFF
    4885           FF00FFFFFF00FFFFFF005049E726342DE374241CE1BF231BE1BF231BE1BF251D
    4886           E19F3730E464FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
    4887           FF00FFFFFF002D26E2912B23E2FF3032E7FF3B48EFFF4356F4FF4152F2FF3944
    4888           EEFF2D2BE5FF2C24E2DF352EE354FFFFFF00FFFFFF00FFFFFF00FFFFFF00231B
    4889           E20E2B23E3CF2C29E5FF4153F3FF4E6AFAFF4E6AFAFF4E6AFAFF4E6AFAFF4E6A
    4890           FAFF4D69FAFF3B47EFFF2923E3FF332BE362FFFFFF00FFFFFF00FFFFFF002C24
    4891           E3912A24E5FFE2E6FEFFE6EAFEFFE5E9FEFFE5E9FEFFE5E9FEFFE5E9FEFFE5E9
    4892           FEFFE5E9FEFFE8EBFEFF4051F2FF2820E2FF3730E442FFFFFF00231BE22E2A22
    4893           E3FF3B47EFFF5C76FAFF96A7FCFFA2B1FCFFA3B2FCFF9CACFCFFA5B3FCFFA1B0
    4894           FCFF9EADFCFF778CFBFF4E6AFAFF3134E9FF2B23E2DFFFFFFF00231BE29F271F
    4895           E3FF4961F7FFCFD7FEFFFBFBFFFFE4E8FEFFDCE2FEFFFBFBFFFFD6DDFEFFECF0
    4896           FEFFFAFAFFFFCDD5FEFF4E6AFAFF3E4DF1FF261FE1FF231BE12E231BE2DF261E
    4897           E2FF4D68F9FF6981FBFFF3F4FFFF8598FCFF667EFBFFF3F4FFFF4E6AFAFFA8B5
    4898           FDFFDDE2FEFF4E6AFAFF4E6AFAFF4255F3FF231BE1FF231BE17E241CE2FF261F
    4899           E2FF231BE2FF453EE6FFEFEEFDFF6D68ECFF4841E7FFEFEFFDFF2B23E3FF9793
    4900           F1FFD6D4FAFF231BE2FF231BE1FF231BE1FF231BE1FF231BE17E241CE2FF271F
    4901           E2FF241CE2FF453FE6FFEFEEFDFF6D68ECFF4841E7FFEFEFFDFF2B23E3FF9793
    4902           F1FFD6D4FAFF231BE2FF231BE2FF231BE2FF231BE2FF231BE27E241CE2CF2720
    4903           E2FF241CE2FF3C35E5FFEFEEFDFF645FEBFF3D36E5FFEFEFFDFF231BE2FF908C
    4904           F0FFD4D2F9FF231BE2FF231BE2FF231BE2FF241CE2FF231BE27E241CE29F2921
    4905           E3FF241CE2FFEBEAFCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
    4906           FFFFFFFFFFFFFFFFFFFF261EE2FF231BE2FF271FE3FF231BE22E241CE22E2C24
    4907           E3FF261EE2FF241CE2FF241CE2FF241CE2FF241CE2FF241CE2FF241CE2FF241C
    4908           E2FF241CE2FF241CE2FF261EE2FF251DE2FF2B23E3DFFFFFFF00FFFFFF002C24
    4909           E3912A22E3FF332BE4FF9995F1FFF5F4FEFFFBFBFEFFF6F6FEFFF8F8FEFFFCFC
    4910           FFFFB6B3F5FF433CE6FF241CE2FF2A22E3FF3028E442FFFFFF00FFFFFF00FFFF
    4911           FF002A22E3BF2A22E3FF2820E2FF635DEAFFCECCF9FFFFFFFFFFE7E6FCFF7C77
    4912           EEFF2D26E3FF271FE2FF2A22E3FF2E27E362FFFFFF00FFFFFF00FFFFFF00FFFF
    4913           FF00FFFFFF002B23E3812C24E3FF2B23E3FF4C46E8FF8D89F0FF615BEAFF2820
    4914           E3FF2B23E3FF2D25E3DF3129E442FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
    4915           FF00FFFFFF00FFFFFF00241CE21E241CE26E241CE2AF241CE2BF241CE2BF241C
    4916           E29F241CE25EFFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00
    4917         }
    49184648        ImageIndex = 2
    49194649      end
    49204650      object MenuItem13: TMenuItem
    49214651        Caption = 'New Item13'
    4922         Bitmap.Data = {
    4923           36040000424D3604000000000000360000002800000010000000100000000100
    4924           2000000000000004000064000000640000000000000000000000FFFFFF00FFFF
    4925           FF00FFFFFF00FFFFFF005049E726342DE374241CE1BF231BE1BF231BE1BF251D
    4926           E19F3730E464FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
    4927           FF00FFFFFF002D26E2912B23E2FF3032E7FF3B48EFFF4356F4FF4152F2FF3944
    4928           EEFF2D2BE5FF2C24E2DF352EE354FFFFFF00FFFFFF00FFFFFF00FFFFFF00231B
    4929           E20E2B23E3CF2C29E5FF4153F3FF4E6AFAFF4E6AFAFF4E6AFAFF4E6AFAFF4E6A
    4930           FAFF4D69FAFF3B47EFFF2923E3FF332BE362FFFFFF00FFFFFF00FFFFFF002C24
    4931           E3912A24E5FFE2E6FEFFE6EAFEFFE5E9FEFFE5E9FEFFE5E9FEFFE5E9FEFFE5E9
    4932           FEFFE5E9FEFFE8EBFEFF4051F2FF2820E2FF3730E442FFFFFF00231BE22E2A22
    4933           E3FF3B47EFFF5C76FAFF96A7FCFFA2B1FCFFA3B2FCFF9CACFCFFA5B3FCFFA1B0
    4934           FCFF9EADFCFF778CFBFF4E6AFAFF3134E9FF2B23E2DFFFFFFF00231BE29F271F
    4935           E3FF4961F7FFCFD7FEFFFBFBFFFFE4E8FEFFDCE2FEFFFBFBFFFFD6DDFEFFECF0
    4936           FEFFFAFAFFFFCDD5FEFF4E6AFAFF3E4DF1FF261FE1FF231BE12E231BE2DF261E
    4937           E2FF4D68F9FF6981FBFFF3F4FFFF8598FCFF667EFBFFF3F4FFFF4E6AFAFFA8B5
    4938           FDFFDDE2FEFF4E6AFAFF4E6AFAFF4255F3FF231BE1FF231BE17E241CE2FF261F
    4939           E2FF231BE2FF453EE6FFEFEEFDFF6D68ECFF4841E7FFEFEFFDFF2B23E3FF9793
    4940           F1FFD6D4FAFF231BE2FF231BE1FF231BE1FF231BE1FF231BE17E241CE2FF271F
    4941           E2FF241CE2FF453FE6FFEFEEFDFF6D68ECFF4841E7FFEFEFFDFF2B23E3FF9793
    4942           F1FFD6D4FAFF231BE2FF231BE2FF231BE2FF231BE2FF231BE27E241CE2CF2720
    4943           E2FF241CE2FF3C35E5FFEFEEFDFF645FEBFF3D36E5FFEFEFFDFF231BE2FF908C
    4944           F0FFD4D2F9FF231BE2FF231BE2FF231BE2FF241CE2FF231BE27E241CE29F2921
    4945           E3FF241CE2FFEBEAFCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
    4946           FFFFFFFFFFFFFFFFFFFF261EE2FF231BE2FF271FE3FF231BE22E241CE22E2C24
    4947           E3FF261EE2FF241CE2FF241CE2FF241CE2FF241CE2FF241CE2FF241CE2FF241C
    4948           E2FF241CE2FF241CE2FF261EE2FF251DE2FF2B23E3DFFFFFFF00FFFFFF002C24
    4949           E3912A22E3FF332BE4FF9995F1FFF5F4FEFFFBFBFEFFF6F6FEFFF8F8FEFFFCFC
    4950           FFFFB6B3F5FF433CE6FF241CE2FF2A22E3FF3028E442FFFFFF00FFFFFF00FFFF
    4951           FF002A22E3BF2A22E3FF2820E2FF635DEAFFCECCF9FFFFFFFFFFE7E6FCFF7C77
    4952           EEFF2D26E3FF271FE2FF2A22E3FF2E27E362FFFFFF00FFFFFF00FFFFFF00FFFF
    4953           FF00FFFFFF002B23E3812C24E3FF2B23E3FF4C46E8FF8D89F0FF615BEAFF2820
    4954           E3FF2B23E3FF2D25E3DF3129E442FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
    4955           FF00FFFFFF00FFFFFF00241CE21E241CE26E241CE2AF241CE2BF241CE2BF241C
    4956           E29F241CE25EFFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00
    4957         }
    49584652        ImageIndex = 2
    49594653      end
  • trunk/Packages/Common/Demo/ScaleDPI/UFormTest.pas

    r94 r308  
    1616    Button1: TButton;
    1717    Button2: TButton;
     18    Calendar1: TCalendar;
    1819    CheckBox1: TCheckBox;
    1920    Edit1: TEdit;
     
    2122    ImageList1: TImageList;
    2223    ImageList2: TImageList;
     24    ListView1: TListView;
    2325    MainMenu1: TMainMenu;
    2426    Memo1: TMemo;
     
    3941    Panel1: TPanel;
    4042    RadioGroup1: TRadioGroup;
     43    StatusBar1: TStatusBar;
    4144    TabSheet1: TTabSheet;
    4245    TabSheet2: TTabSheet;
  • trunk/Packages/Common/Languages/UJobProgressView.po

    r192 r308  
    1414msgstr ""
    1515
    16 #: ujobprogressview.soperations
    17 msgid "Operations:"
    18 msgstr ""
    19 
    2016#: ujobprogressview.spleasewait
    2117msgid "Please wait..."
  • trunk/Packages/Common/UApplicationInfo.pas

    r192 r308  
    66
    77uses
    8   SysUtils, Classes, Forms, URegistry, Controls;
     8  SysUtils, Classes, Forms, URegistry, Controls, Graphics, LCLType;
    99
    1010type
     
    1414  TApplicationInfo = class(TComponent)
    1515  private
    16     FDescription: TCaption;
     16    FDescription: TTranslateString;
     17    FIcon: TBitmap;
    1718    FIdentification: Byte;
    1819    FLicense: string;
     
    3334  public
    3435    constructor Create(AOwner: TComponent); override;
     36    destructor Destroy; override;
    3537    property Version: string read GetVersion;
    3638    function GetRegistryContext: TRegistryContext;
     
    4749    property EmailContact: string read FEmailContact write FEmailContact;
    4850    property AppName: string read FAppName write FAppName;
    49     property Description: string read FDescription write FDescription;
     51    property Description: TTranslateString read FDescription write FDescription;
    5052    property ReleaseDate: TDateTime read FReleaseDate write FReleaseDate;
    5153    property RegistryKey: string read FRegistryKey write FRegistryKey;
    5254    property RegistryRoot: TRegistryRoot read FRegistryRoot write FRegistryRoot;
    5355    property License: string read FLicense write FLicense;
     56    property Icon: TBitmap read FIcon write FIcon;
    5457  end;
    5558
     
    7477constructor TApplicationInfo.Create(AOwner: TComponent);
    7578begin
    76   inherited Create(AOwner);
     79  inherited;
    7780  FVersionMajor := 1;
    7881  FIdentification := 1;
     
    8083  FRegistryKey := '\Software\' + FAppName;
    8184  FRegistryRoot := rrKeyCurrentUser;
     85  FIcon := TBitmap.Create;
     86end;
     87
     88destructor TApplicationInfo.Destroy;
     89begin
     90  FreeAndNil(FIcon);
     91  inherited;
    8292end;
    8393
  • trunk/Packages/Common/UCommon.pas

    r192 r308  
    2828    unfDNSDomainName = 11);
    2929
    30   TFilterMethodMethod = function (FileName: string): Boolean of object;
     30  TFilterMethod = function (FileName: string): Boolean of object;
     31  TFileNameMethod = procedure (FileName: string) of object;
     32
    3133var
    3234  ExceptionHandler: TExceptionEvent;
     
    7274function MergeArray(A, B: array of string): TArrayOfString;
    7375function LoadFileToStr(const FileName: TFileName): AnsiString;
     76procedure SaveStringToFile(S, FileName: string);
    7477procedure SearchFiles(AList: TStrings; Dir: string;
    75   FilterMethod: TFilterMethodMethod);
     78  FilterMethod: TFilterMethod = nil; FileNameMethod: TFileNameMethod = nil);
    7679function GetStringPart(var Text: string; Separator: string): string;
     80function StripTags(const S: string): string;
     81function PosFromIndex(SubStr: string; Text: string;
     82  StartIndex: Integer): Integer;
     83function PosFromIndexReverse(SubStr: string; Text: string;
     84  StartIndex: Integer): Integer;
     85procedure CopyStringArray(Dest: TStringArray; Source: array of string);
    7786
    7887
     
    102111  I: Integer;
    103112begin
     113  Result := '';
    104114  for I := 1 to Length(Source) do begin
    105115    Result := Result + LowerCase(IntToHex(Ord(Source[I]), 2));
     
    523533end;
    524534
     535procedure SaveStringToFile(S, FileName: string);
     536var
     537  F: TextFile;
     538begin
     539  AssignFile(F, FileName);
     540  try
     541    ReWrite(F);
     542    Write(F, S);
     543  finally
     544    CloseFile(F);
     545  end;
     546end;
     547
    525548procedure SearchFiles(AList: TStrings; Dir: string;
    526   FilterMethod: TFilterMethodMethod);
     549  FilterMethod: TFilterMethod = nil; FileNameMethod: TFileNameMethod = nil);
    527550var
    528551  SR: TSearchRec;
     
    532555    try
    533556      repeat
    534         if (SR.Name = '.') or (SR.Name = '..') or not FilterMethod(SR.Name) or
    535           not FilterMethod(Copy(Dir, 3, Length(Dir)) + SR.Name) then Continue;
     557        if (SR.Name = '.') or (SR.Name = '..') or (Assigned(FilterMethod) and (not FilterMethod(SR.Name) or
     558          not FilterMethod(Copy(Dir, 3, Length(Dir)) + SR.Name))) then Continue;
     559        if Assigned(FileNameMethod) then
     560          FileNameMethod(Dir + SR.Name);
    536561        AList.Add(Dir + SR.Name);
    537562        if (SR.Attr and faDirectory) <> 0 then
     
    559584end;
    560585
     586function StripTags(const S: string): string;
     587var
     588  Len: Integer;
     589
     590  function ReadUntil(const ReadFrom: Integer; const C: Char): Integer;
     591  var
     592    J: Integer;
     593  begin
     594    for J := ReadFrom to Len do
     595      if (S[j] = C) then
     596      begin
     597        Result := J;
     598        Exit;
     599      end;
     600    Result := Len + 1;
     601  end;
     602
     603var
     604  I, APos: Integer;
     605begin
     606  Len := Length(S);
     607  I := 0;
     608  Result := '';
     609  while (I <= Len) do begin
     610    Inc(I);
     611    APos := ReadUntil(I, '<');
     612    Result := Result + Copy(S, I, APos - i);
     613    I := ReadUntil(APos + 1, '>');
     614  end;
     615end;
     616
     617function PosFromIndex(SubStr: string; Text: string;
     618  StartIndex: Integer): Integer;
     619var
     620  I, MaxLen: SizeInt;
     621  Ptr: PAnsiChar;
     622begin
     623  Result := 0;
     624  if (StartIndex < 1) or (StartIndex > Length(Text) - Length(SubStr)) then Exit;
     625  if Length(SubStr) > 0 then begin
     626    MaxLen := Length(Text) - Length(SubStr) + 1;
     627    I := StartIndex;
     628    Ptr := @Text[StartIndex];
     629    while (I <= MaxLen) do begin
     630      if (SubStr[1] = Ptr^) and (CompareByte(Substr[1], Ptr^, Length(SubStr)) = 0) then begin
     631        Result := I;
     632        Exit;
     633      end;
     634      Inc(I);
     635      Inc(Ptr);
     636    end;
     637  end;
     638end;
     639
     640function PosFromIndexReverse(SubStr: string; Text: string;
     641  StartIndex: Integer): Integer;
     642var
     643  I: SizeInt;
     644  Ptr: PAnsiChar;
     645begin
     646  Result := 0;
     647  if (StartIndex < 1) or (StartIndex > Length(Text)) then Exit;
     648  if Length(SubStr) > 0 then begin
     649    I := StartIndex;
     650    Ptr := @Text[StartIndex];
     651    while (I > 0) do begin
     652      if (SubStr[1] = Ptr^) and (CompareByte(Substr[1], Ptr^, Length(SubStr)) = 0) then begin
     653        Result := I;
     654        Exit;
     655      end;
     656      Dec(I);
     657      Dec(Ptr);
     658    end;
     659  end;
     660end;
     661
     662procedure CopyStringArray(Dest: TStringArray; Source: array of string);
     663var
     664  I: Integer;
     665begin
     666  SetLength(Dest, Length(Source));
     667  for I := 0 to Length(Dest) - 1 do
     668    Dest[I] := Source[I];
     669end;
    561670
    562671
  • trunk/Packages/Common/UDebugLog.pas

    r192 r308  
    66
    77uses
    8   Classes, SysUtils, FileUtil, SpecializedList, SyncObjs;
     8  Classes, SysUtils, FileUtil, fgl, SyncObjs;
    99
    1010type
     
    2929    procedure SetMaxCount(const AValue: Integer);
    3030  public
    31     Items: TListObject;
     31    Items: TFPGObjectList<TDebugLogItem>;
    3232    Lock: TCriticalSection;
    3333    procedure Add(Text: string; Group: string = '');
     
    117117begin
    118118  inherited;
    119   Items := TListObject.Create;
     119  Items := TFPGObjectList<TDebugLogItem>.Create;
    120120  Lock := TCriticalSection.Create;
    121121  MaxCount := 100;
  • trunk/Packages/Common/UJobProgressView.lfm

    r295 r308  
    1515  OnShow = FormShow
    1616  Position = poScreenCenter
    17   LCLVersion = '2.0.0.4'
     17  LCLVersion = '2.0.2.0'
    1818  object PanelOperationsTitle: TPanel
    1919    Left = 0
     
    241241    Interval = 100
    242242    OnTimer = TimerUpdateTimer
    243     left = 264
     243    left = 320
    244244    top = 8
    245245  end
  • trunk/Packages/Common/UJobProgressView.pas

    r192 r308  
    66
    77uses
    8   LCLType, SysUtils, Variants, Classes, Graphics, Controls, Forms, Syncobjs,
     8  SysUtils, Variants, Classes, Graphics, Controls, Forms, Syncobjs,
    99  Dialogs, ComCtrls, StdCtrls, ExtCtrls, Contnrs, UThreading, Math,
    1010  DateUtils;
     
    175175  STotalEstimatedTime = 'Total estimated time: %s';
    176176  SFinished = 'Finished';
    177   SOperations = 'Operations:';
    178177
    179178procedure Register;
     
    199198    Terminate;
    200199  end;
    201 end;
    202 
    203 function Scale96ToScreen(const ASize: Integer): Integer;
    204 begin
    205   Result := MulDiv(ASize, Screen.PixelsPerInch, 96);
    206200end;
    207201
  • trunk/Packages/Common/ULastOpenedList.pas

    r192 r308  
    3030    procedure SaveToXMLConfig(XMLConfig: TXMLConfig; Path: string);
    3131    procedure AddItem(FileName: string);
     32    function GetFirstFileName: string;
    3233  published
    3334    property MaxCount: Integer read FMaxCount write SetMaxCount;
     
    185186end;
    186187
     188function TLastOpenedList.GetFirstFileName: string;
     189begin
     190  if Items.Count > 0 then Result := Items[0]
     191    else Result := '';
     192end;
     193
    187194end.
    188195
  • trunk/Packages/Common/UListViewSort.pas

    r217 r308  
    11unit UListViewSort;
    22
    3 // Date: 2010-11-03
     3// Date: 2019-05-17
    44
    55{$mode delphi}
     
    88
    99uses
    10   {$IFDEF Windows}Windows, CommCtrl, {$ENDIF}Classes, Graphics, ComCtrls, SysUtils,
    11   Controls, DateUtils, Dialogs, SpecializedList, Forms, Grids, StdCtrls, ExtCtrls,
    12   LclIntf, LMessages, LclType, LResources;
     10  {$IFDEF Windows}Windows, CommCtrl, LMessages, {$ENDIF}Classes, Graphics, ComCtrls, SysUtils,
     11  Controls, DateUtils, Dialogs, fgl, Forms, Grids, StdCtrls, ExtCtrls,
     12  LclIntf, LclType, LResources;
    1313
    1414type
     
    5252    {$ENDIF}
    5353  public
    54     List: TListObject;
    55     Source: TListObject;
     54    List: TFPGObjectList<TObject>;
     55    Source: TFPGObjectList<TObject>;
    5656    constructor Create(AOwner: TComponent); override;
    5757    destructor Destroy; override;
     
    9898  end;
    9999
     100  { TListViewEx }
     101
     102  TListViewEx = class(TWinControl)
     103  private
     104    FFilter: TListViewFilter;
     105    FListView: TListView;
     106    FListViewSort: TListViewSort;
     107    procedure ResizeHanlder;
     108  public
     109    constructor Create(TheOwner: TComponent); override;
     110    destructor Destroy; override;
     111  published
     112    property ListView: TListView read FListView write FListView;
     113    property ListViewSort: TListViewSort read FListViewSort write FListViewSort;
     114    property Filter: TListViewFilter read FFilter write FFilter;
     115    property Visible;
     116  end;
     117
    100118procedure Register;
    101119
     
    105123procedure Register;
    106124begin
    107   RegisterComponents('Common', [TListViewSort, TListViewFilter]);
     125  RegisterComponents('Common', [TListViewSort, TListViewFilter, TListViewEx]);
     126end;
     127
     128{ TListViewEx }
     129
     130procedure TListViewEx.ResizeHanlder;
     131begin
     132end;
     133
     134constructor TListViewEx.Create(TheOwner: TComponent);
     135begin
     136  inherited Create(TheOwner);
     137  Filter := TListViewFilter.Create(Self);
     138  Filter.Parent := Self;
     139  Filter.Align := alBottom;
     140  ListView := TListView.Create(Self);
     141  ListView.Parent := Self;
     142  ListView.Align := alClient;
     143  ListViewSort := TListViewSort.Create(Self);
     144  ListViewSort.ListView := ListView;
     145end;
     146
     147destructor TListViewEx.Destroy;
     148begin
     149  inherited Destroy;
    108150end;
    109151
     
    152194        R := CellRect(I, 0);
    153195        Editor.Left := R.Left + 2;
    154         Editor.Width := (R.Right - R.Left) - 4;
     196        Editor.Width := R.Width - 4;
    155197      end;
    156198    end;
     
    277319end;
    278320
     321var
     322  ListViewSortCompare: TCompareEvent;
     323
     324function ListViewCompare(const Item1, Item2: TObject): Integer;
     325begin
     326  Result := ListViewSortCompare(Item1, Item2);
     327end;
     328
    279329procedure TListViewSort.Sort(Compare: TCompareEvent);
    280330begin
     331  // TODO: Because TFLGObjectList compare handler is not class method,
     332  // it is necessary to use simple function compare handler with local variable
     333  ListViewSortCompare := Compare;
    281334  if (List.Count > 0) then
    282     List.Sort(Compare);
     335    List.Sort(ListViewCompare);
    283336end;
    284337
     
    343396begin
    344397  inherited;
    345   List := TListObject.Create;
    346   List.OwnsObjects := False;
     398  List := TFPGObjectList<TObject>.Create;
     399  List.FreeObjects := False;
    347400end;
    348401
  • trunk/Packages/Common/UMemory.pas

    r192 r308  
    112112procedure TMemory.WriteMemory(Position: Integer; Memory: TMemory);
    113113begin
    114   Move(Memory.FData, PByte(@FData + Position)^, Memory.Size);
     114  Move(Memory.FData, PByte(PByte(@FData) + Position)^, Memory.Size);
    115115end;
    116116
    117117procedure TMemory.ReadMemory(Position: Integer; Memory: TMemory);
    118118begin
    119   Move(PByte(@FData + Position)^, Memory.FData, Memory.Size);
     119  Move(PByte(PByte(@FData) + Position)^, Memory.FData, Memory.Size);
    120120end;
    121121
  • trunk/Packages/Common/UPersistentForm.pas

    r207 r308  
    33{$mode delphi}
    44
    5 // Date: 2015-04-18
     5// Date: 2020-11-26
    66
    77interface
    88
    99uses
    10   Classes, SysUtils, Forms, URegistry, LCLIntf, Registry, Controls, ComCtrls;
     10  Classes, SysUtils, Forms, URegistry, LCLIntf, Registry, Controls, ComCtrls,
     11  ExtCtrls, LCLType;
    1112
    1213type
     
    1920    FMinVisiblePart: Integer;
    2021    FRegistryContext: TRegistryContext;
    21     FirstLoad: Boolean;
    2222    procedure LoadControl(Control: TControl);
    2323    procedure SaveControl(Control: TControl);
     
    2626    FormRestoredSize: TRect;
    2727    FormWindowState: TWindowState;
     28    FormFullScreen: Boolean;
    2829    Form: TForm;
    2930    procedure LoadFromRegistry(RegistryContext: TRegistryContext);
     
    3132    function CheckEntireVisible(Rect: TRect): TRect;
    3233    function CheckPartVisible(Rect: TRect; Part: Integer): TRect;
    33     procedure Load(Form: TForm; DefaultMaximized: Boolean = False);
     34    procedure Load(Form: TForm; DefaultMaximized: Boolean = False;
     35      DefaultFullScreen: Boolean = False);
    3436    procedure Save(Form: TForm);
    3537    constructor Create(AOwner: TComponent); override;
     38    procedure SetFullScreen(State: Boolean);
    3639    property RegistryContext: TRegistryContext read FRegistryContext
    3740      write FRegistryContext;
     
    4346procedure Register;
    4447
     48
    4549implementation
    46 
    4750
    4851procedure Register;
     
    7275  end;
    7376
     77  if (Control is TPanel) then begin
     78    with Form, TRegistryEx.Create do
     79    try
     80      RootKey := RegistryContext.RootKey;
     81      OpenKey(RegistryContext.Key + '\Forms\' + Form.Name + '\' + Control.Name, True);
     82      if (TPanel(Control).Align = alRight) or (TPanel(Control).Align = alLeft) then begin
     83        if ValueExists('Width') then
     84          TPanel(Control).Width := ReadInteger('Width');
     85      end;
     86      if (TPanel(Control).Align = alTop) or (TPanel(Control).Align = alBottom) then begin
     87        if ValueExists('Height') then
     88          TPanel(Control).Height := ReadInteger('Height');
     89      end;
     90    finally
     91      Free;
     92    end;
     93  end;
     94
    7495  if Control is TWinControl then begin
    7596    WinControl := TWinControl(Control);
     
    96117      for I := 0 to TListView(Control).Columns.Count - 1 do begin
    97118        WriteInteger('ColWidth' + IntToStr(I), TListView(Control).Columns[I].Width);
     119      end;
     120    finally
     121      Free;
     122    end;
     123  end;
     124
     125  if (Control is TPanel) then begin
     126    with Form, TRegistryEx.Create do
     127    try
     128      RootKey := RegistryContext.RootKey;
     129      OpenKey(RegistryContext.Key + '\Forms\' + Form.Name + '\' + Control.Name, True);
     130      if (TPanel(Control).Align = alRight) or (TPanel(Control).Align = alLeft) then begin
     131        WriteInteger('Width', TPanel(Control).Width);
     132      end;
     133      if (TPanel(Control).Align = alTop) or (TPanel(Control).Align = alBottom) then begin
     134        WriteInteger('Height', TPanel(Control).Height);
    98135      end;
    99136    finally
     
    120157    RootKey := RegistryContext.RootKey;
    121158    OpenKey(RegistryContext.Key + '\Forms\' + Form.Name, True);
    122     FirstLoad := not ValueExists('WindowState');
    123159    // Normal size
    124160    FormNormalSize.Left := ReadIntegerWithDefault('NormalLeft', FormNormalSize.Left);
     
    136172      + FormRestoredSize.Top;
    137173    // Other state
    138     FormWindowState := TWindowState(ReadIntegerWithDefault('WindowState', Integer(wsNormal)));
     174    FormWindowState := TWindowState(ReadIntegerWithDefault('WindowState', Integer(FormWindowState)));
     175    FormFullScreen := ReadBoolWithDefault('FullScreen', FormFullScreen);
    139176  finally
    140177    Free;
     
    160197    // Other state
    161198    WriteInteger('WindowState', Integer(FormWindowState));
     199    WriteBool('FullScreen', FormFullScreen);
    162200  finally
    163201    Free;
     
    217255end;
    218256
    219 procedure TPersistentForm.Load(Form: TForm; DefaultMaximized: Boolean = False);
     257procedure TPersistentForm.Load(Form: TForm; DefaultMaximized: Boolean = False;
     258  DefaultFullScreen: Boolean = False);
    220259begin
    221260  Self.Form := Form;
     
    225264  FormRestoredSize := Bounds((Screen.Width - Form.Width) div 2,
    226265    (Screen.Height - Form.Height) div 2, Form.Width, Form.Height);
     266  FormWindowState := Form.WindowState;
     267  FormFullScreen := DefaultFullScreen;
    227268
    228269  LoadFromRegistry(RegistryContext);
    229270
    230271  if not EqualRect(FormNormalSize, FormRestoredSize) or
    231     (DefaultMaximized and FirstLoad) then begin
     272    DefaultMaximized then begin
    232273    // Restore to maximized state
    233274    Form.WindowState := wsNormal;
     
    244285      Form.BoundsRect := FormNormalSize;
    245286  end;
     287  if FormFullScreen then SetFullScreen(True);
    246288  LoadControl(Form);
    247289end;
     
    251293  Self.Form := Form;
    252294  FormNormalSize := Bounds(Form.Left, Form.Top, Form.Width, Form.Height);
    253   FormRestoredSize := Bounds(Form.RestoredLeft, Form.RestoredTop, Form.RestoredWidth,
    254     Form.RestoredHeight);
     295  if not FormFullScreen then
     296    FormRestoredSize := Bounds(Form.RestoredLeft, Form.RestoredTop, Form.RestoredWidth,
     297      Form.RestoredHeight);
    255298  FormWindowState := Form.WindowState;
    256299  SaveToRegistry(RegistryContext);
     
    265308  FMinVisiblePart := 50;
    266309  FRegistryContext.RootKey := HKEY_CURRENT_USER;
    267   FirstLoad := False;
     310end;
     311
     312procedure TPersistentForm.SetFullScreen(State: Boolean);
     313begin
     314  if State then begin
     315    FormFullScreen := True;
     316    FormNormalSize := Form.BoundsRect;
     317    FormRestoredSize := Bounds(Form.RestoredLeft, Form.RestoredTop, Form.RestoredWidth,
     318      Form.RestoredHeight);
     319    FormWindowState := Form.WindowState;
     320    ShowWindow(Form.Handle, SW_SHOWFULLSCREEN);
     321    {$IFDEF WINDOWS}
     322    Form.BorderStyle := bsNone;
     323    {$ENDIF}
     324  end else begin
     325    FormFullScreen := False;
     326    {$IFDEF WINDOWS}
     327    Form.BorderStyle := bsSizeable;
     328    {$ENDIF}
     329    ShowWindow(Form.Handle, SW_SHOWNORMAL);
     330    if FormWindowState = wsNormal then begin
     331      Form.BoundsRect := FormNormalSize;
     332    end else
     333    if FormWindowState = wsMaximized then begin
     334      Form.BoundsRect := FormRestoredSize;
     335      Form.WindowState := wsMaximized;
     336    end;
     337  end;
    268338end;
    269339
  • trunk/Packages/Common/UPool.pas

    r43 r308  
    66
    77uses
    8   Classes, SysUtils, syncobjs, SpecializedList, UThreading;
     8  Classes, SysUtils, syncobjs, fgl, UThreading;
    99
    1010type
     
    2222    function NewItemObject: TObject; virtual;
    2323  public
    24     Items: TListObject;
    25     FreeItems: TListObject;
     24    Items: TFPGObjectList<TObject>;
     25    FreeItems: TFPGObjectList<TObject>;
    2626    function Acquire: TObject; virtual;
    2727    procedure Release(Item: TObject); virtual;
     
    185185begin
    186186  inherited;
    187   Items := TListObject.Create;
    188   FreeItems := TListObject.Create;
    189   FreeItems.OwnsObjects := False;
     187  Items := TFPGObjectList<TObject>.Create;
     188  FreeItems := TFPGObjectList<TObject>.Create;
     189  FreeItems.FreeObjects := False;
    190190  FReleaseEvent := TEvent.Create(nil, False, False, '');
    191191end;
  • trunk/Packages/Common/UPrefixMultiplier.pas

    r43 r308  
    2121  { TPrefixMultiplier }
    2222
    23   TPrefixMultiplier = class
     23  TPrefixMultiplier = class(TComponent)
    2424  private
    25     function TruncateDigits(Value:Double;Digits:Integer=3):Double;
     25    function TruncateDigits(Value: Double; Digits: Integer = 3): Double;
    2626  public
    2727    function Add(Value: Double; PrefixMultipliers: TPrefixMultiplierDef;
     
    7272  );
    7373
     74procedure Register;
     75
     76
    7477implementation
     78
     79procedure Register;
     80begin
     81  RegisterComponents('Common', [TPrefixMultiplier]);
     82end;
    7583
    7684{ TPrefixMultiplier }
     
    92100end;
    93101
    94 function TPrefixMultiplier.Add(Value:Double;PrefixMultipliers:TPrefixMultiplierDef
    95   ;UnitText:string;Digits:Integer):string;
     102function TPrefixMultiplier.Add(Value: Double; PrefixMultipliers: TPrefixMultiplierDef
     103  ; UnitText:string; Digits: Integer): string;
    96104var
    97105  I: Integer;
  • trunk/Packages/Common/UScaleDPI.pas

    r145 r308  
    215215  I: Integer;
    216216begin
     217  ImgList.BeginUpdate;
    217218  NewWidth := ScaleX(ImgList.Width, FromDPI.X);
    218219  NewHeight := ScaleY(ImgList.Height, FromDPI.Y);
     
    226227    Temp[I] := TBitmap.Create;
    227228    Temp[I].SetSize(NewWidth, NewHeight);
    228     {$ifdef linux}
    229     Temp[I].PixelFormat := pf24bit;
    230     {$else}
    231229    Temp[I].PixelFormat := pf32bit;
    232     {$endif}
    233230    Temp[I].TransparentColor := TempBmp.TransparentColor;
    234231    //Temp[I].TransparentMode := TempBmp.TransparentMode;
     
    252249    Temp[i].Free;
    253250  end;
     251  ImgList.EndUpdate;
    254252end;
    255253
     
    288286  WinControl: TWinControl;
    289287  ToolBarControl: TToolBar;
    290   OldAnchors: TAnchors;
    291   OldAutoSize: Boolean;
    292 begin
     288  //OldAnchors: TAnchors;
     289  //OldAutoSize: Boolean;
     290begin
     291  //if not (Control is TCustomPage) then
     292  // Resize childs first
     293  if Control is TWinControl then begin
     294    WinControl := TWinControl(Control);
     295    if WinControl.ControlCount > 0 then begin
     296      for I := 0 to WinControl.ControlCount - 1 do begin
     297        if WinControl.Controls[I] is TControl then begin
     298          ScaleControl(WinControl.Controls[I], FromDPI);
     299        end;
     300      end;
     301    end;
     302  end;
     303
    293304  //if Control is TMemo then Exit;
    294305  //if Control is TForm then
     
    320331        MinWidth := ScaleX(MinWidth, FromDPI.X);
    321332        MinHeight := ScaleY(MinHeight, FromDPI.Y);
    322         Width := ScaleX(Width, FromDPI.X);
     333        // Workaround to bad band width auto sizing
     334        //Width := ScaleX(Width, FromDPI.X);
     335        Width := ScaleX(Control.Width + 28, FromDPI.X);
    323336        //Control.Invalidate;
    324337      end;
     338    // Workaround for bad autosizing of coolbar
     339    if AutoSize then begin
     340      AutoSize := False;
     341      Height := ScaleY(Height, FromDPI.Y);
     342      AutoSize := True;
     343    end;
    325344    EndUpdate;
    326345  end;
     
    334353  end;
    335354
    336   //if not (Control is TCustomPage) then
    337   if Control is TWinControl then begin
    338     WinControl := TWinControl(Control);
    339     if WinControl.ControlCount > 0 then begin
    340       for I := 0 to WinControl.ControlCount - 1 do begin
    341         if WinControl.Controls[I] is TControl then begin
    342           ScaleControl(WinControl.Controls[I], FromDPI);
    343         end;
    344       end;
    345     end;
    346   end;
    347355  //if Control is TForm then
    348356  //  Control.EnableAutoSizing;
  • trunk/Packages/Common/UTheme.pas

    r192 r308  
    158158        ApplyTheme(TPageControl(Component).Pages[I]);
    159159    end;
     160
     161    if Control is TCoolBar then begin
     162      (Control as TCoolBar).Themed := False;
     163    end;
    160164  end;
    161165end;
  • trunk/Packages/Common/UXMLUtils.pas

    r192 r308  
    77uses
    88  {$IFDEF WINDOWS}Windows,{$ENDIF}
    9   Classes, SysUtils, DateUtils, DOM;
     9  Classes, SysUtils, DateUtils, DOM, xmlread;
    1010
    1111function XMLTimeToDateTime(XMLDateTime: string): TDateTime;
     
    2121function ReadString(Node: TDOMNode; Name: string; DefaultValue: string): string;
    2222function ReadDateTime(Node: TDOMNode; Name: string; DefaultValue: TDateTime): TDateTime;
     23procedure ReadXMLFileParser(out Doc: TXMLDocument; FileName: string);
    2324
    2425
    2526implementation
     27
     28procedure ReadXMLFileParser(out Doc: TXMLDocument; FileName: string);
     29var
     30  Parser: TDOMParser;
     31  Src: TXMLInputSource;
     32  InFile: TFileStream;
     33begin
     34  try
     35    InFile := TFileStream.Create(FileName, fmOpenRead);
     36    Src := TXMLInputSource.Create(InFile);
     37    Parser := TDOMParser.Create;
     38    Parser.Options.PreserveWhitespace := True;
     39    Parser.Parse(Src, Doc);
     40  finally
     41    Src.Free;
     42    Parser.Free;
     43    InFile.Free;
     44  end;
     45end;
    2646
    2747function GetTimeZoneBias: Integer;
  • trunk/Packages/CoolStreaming/CoolStreaming.lpk

    r185 r308  
    7070      </Item7>
    7171    </Files>
    72     <RequiredPkgs Count="2">
     72    <RequiredPkgs Count="3">
    7373      <Item1>
    74         <PackageName Value="Common"/>
     74        <PackageName Value="TemplateGenerics"/>
    7575      </Item1>
    7676      <Item2>
     77        <PackageName Value="Common"/>
     78      </Item2>
     79      <Item3>
    7780        <PackageName Value="FCL"/>
    7881        <MinVersion Major="1" Valid="True"/>
    79       </Item2>
     82      </Item3>
    8083    </RequiredPkgs>
    8184    <UsageOptions>
  • trunk/UCore.lfm

    r305 r308  
    1010  object ActionListMain: TActionList
    1111    Images = ImageListSmall
    12     left = 137
    13     top = 60
     12    Left = 137
     13    Top = 60
    1414    object AExit: TAction
    1515      Caption = 'Exit'
     
    114114  end
    115115  object ImageListSmall: TImageList
    116     left = 784
    117     top = 420
     116    Left = 784
     117    Top = 420
    118118    Bitmap = {
    119119      4C691300000010000000100000000000000000000000E3AA4BD6E5B35EFFE3B1
     
    728728    }
    729729  end
    730   object CoolTranslator1: TCoolTranslator
     730  object CoolTranslator1: TTranslator
    731731    POFilesFolder = 'Languages'
    732732    OnTranslate = CoolTranslator1Translate
    733     left = 137
    734     top = 436
     733    Left = 137
     734    Top = 436
    735735  end
    736736  object ImageListLarge: TImageList
    737737    Height = 32
    738738    Width = 32
    739     left = 786
    740     top = 286
     739    Left = 786
     740    Top = 286
    741741    Bitmap = {
    742742      4C69100000002000000020000000000000000000000000000000E2AA4B36E2A9
     
    27952795    RootName = 'CONFIG'
    27962796    ReadOnly = False
    2797     left = 137
    2798     top = 556
     2797    Left = 137
     2798    Top = 556
    27992799  end
    28002800  object OpenDialog1: TOpenDialog
    28012801    DefaultExt = '.xtmap'
    2802     left = 1126
    2803     top = 292
     2802    Left = 1126
     2803    Top = 292
    28042804  end
    28052805  object SaveDialog1: TSaveDialog
    28062806    DefaultExt = '.xtmap'
    2807     left = 1126
    2808     top = 166
     2807    Left = 1126
     2808    Top = 166
    28092809  end
    28102810  object ApplicationInfo: TApplicationInfo
     
    28252825    RegistryRoot = rrKeyCurrentUser
    28262826    License = 'CC0'
    2827     left = 137
    2828     top = 180
     2827    Icon.Data = {
     2828      36400000424D3640000000000000360000002800000040000000400000000100
     2829      2000000000000040000064000000640000000000000000000000000000000000
     2830      0000000000000000000000000000000000000000000000000000000000000000
     2831      0000000000000000000000000000000000000000000000000000000000000000
     2832      0000000000000000000000000000000000000000000000000000000000000000
     2833      00000000000000000000000000FF000000FF000000FF000000FF000000FF0000
     2834      00FF000000FF000000FF00000000000000000000000000000000000000000000
     2835      0000000000000000000000000000000000000000000000000000000000000000
     2836      0000000000000000000000000000000000000000000000000000000000000000
     2837      0000000000000000000000000000000000000000000000000000000000000000
     2838      0000000000000000000000000000000000000000000000000000000000000000
     2839      0000000000000000000000000000000000000000000000000000000000000000
     2840      0000000000000000000000000000000000000000000000000000000000000000
     2841      0000000000FF000000FF000000FF000000FF000000FF000000FF000000FF0000
     2842      00FF000000FF000000FF000000FF000000FF0000000000000000000000000000
     2843      0000000000000000000000000000000000000000000000000000000000000000
     2844      0000000000000000000000000000000000000000000000000000000000000000
     2845      0000000000000000000000000000000000000000000000000000000000000000
     2846      0000000000000000000000000000000000000000000000000000000000000000
     2847      0000000000000000000000000000000000000000000000000000000000000000
     2848      0000000000000000000000000000000000000000000000000000000000FF0000
     2849      00FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF0000
     2850      00FF000000FF000000FF000000FF000000FF000000FF000000FF000000000000
     2851      0000000000000000000000000000000000000000000000000000000000000000
     2852      0000000000000000000000000000000000000000000000000000000000000000
     2853      0000000000000000000000000000000000000000000000000000000000000000
     2854      0000000000000000000000000000000000000000000000000000000000000000
     2855      0000000000000000000000000000000000000000000000000000000000000000
     2856      000000000000000000000000000000000000000000FF000000FF000000FF0000
     2857      00FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF0000
     2858      00FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF0000
     2859      00FF000000000000000000000000000000000000000000000000000000000000
     2860      0000000000000000000000000000000000000000000000000000000000000000
     2861      0000000000000000000000000000000000000000000000000000000000000000
     2862      0000000000000000000000000000000000000000000000000000000000000000
     2863      0000000000000000000000000000000000000000000000000000000000000000
     2864      00000000000000000000000000FF000000FF000000FF000000FF000000FF0000
     2865      00FF000000FF000000FF000000FF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
     2866      FFFF000000FF000000FF000000FF000000FF000000FF000000FF000000FF0000
     2867      00FF000000FF000000FF00000000000000000000000000000000000000000000
     2868      0000000000000000000000000000000000000000000000000000000000000000
     2869      0000000000000000000000000000000000000000000000000000000000000000
     2870      0000000000000000000000000000000000000000000000000000000000000000
     2871      0000000000000000000000000000000000000000000000000000000000000000
     2872      0000000000FF000000FF000000FF000000FF000000FF000000FF000000FF0000
     2873      00FF000000FF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
     2874      FFFFFFFFFFFFFFFFFFFF000000FF000000FF000000FF000000FF000000FF0000
     2875      00FF000000FF000000FF000000FF000000FF0000000000000000000000000000
     2876      0000000000000000000000000000000000000000000000000000000000000000
     2877      0000000000000000000000000000000000000000000000000000000000000000
     2878      0000000000000000000000000000000000000000000000000000000000000000
     2879      0000000000000000000000000000000000000000000000000000000000FF0000
     2880      00FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF0000
     2881      00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
     2882      FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FF000000FF000000FF0000
     2883      00FF000000FF000000FF000000FF000000FF000000FF000000FF000000000000
     2884      0000000000000000000000000000000000000000000000000000000000000000
     2885      0000000000000000000000000000000000000000000000000000000000000000
     2886      0000000000000000000000000000000000000000000000000000000000000000
     2887      000000000000000000000000000000000000000000FF000000FF000000FF0000
     2888      00FF000000FF000000FF000000FF000000FF000000FF000000FFFFFFFFFFFFFF
     2889      FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
     2890      FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FF0000
     2891      00FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF0000
     2892      00FF000000000000000000000000000000000000000000000000000000000000
     2893      0000000000000000000000000000000000000000000000000000000000000000
     2894      0000000000000000000000000000000000000000000000000000000000000000
     2895      00000000000000000000000000FF000000FF000000FF000000FF000000FF0000
     2896      00FF000000FF000000FF000000FF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
     2897      FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
     2898      FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
     2899      FFFF000000FF000000FF000000FF000000FF000000FF000000FF000000FF0000
     2900      00FF000000FF000000FF00000000000000000000000000000000000000000000
     2901      0000000000000000000000000000000000000000000000000000000000000000
     2902      0000000000000000000000000000000000000000000000000000000000000000
     2903      0000000000FF000000FF000000FF000000FF000000FF000000FF000000FF0000
     2904      00FF000000FF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
     2905      FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
     2906      FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
     2907      FFFFFFFFFFFFFFFFFFFF000000FF000000FF000000FF000000FF000000FF0000
     2908      00FF000000FF000000FF000000FF000000FF0000000000000000000000000000
     2909      0000000000000000000000000000000000000000000000000000000000000000
     2910      0000000000000000000000000000000000000000000000000000000000FF0000
     2911      00FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF0000
     2912      00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
     2913      FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
     2914      FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
     2915      FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FF000000FF000000FF0000
     2916      00FF000000FF000000FF000000FF000000FF000000FF000000FF000000000000
     2917      0000000000000000000000000000000000000000000000000000000000000000
     2918      000000000000000000000000000000000000000000FF000000FF000000FF0000
     2919      00FF000000FF000000FF000000FF000000FF000000FF000000FFFFFFFFFFFFFF
     2920      FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
     2921      FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
     2922      FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
     2923      FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FF0000
     2924      00FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF0000
     2925      00FF000000000000000000000000000000000000000000000000000000000000
     2926      00000000000000000000000000FF000000FF000000FF000000FF000000FF0000
     2927      00FF000000FF000000FF000000FF000000FFFF0000FFFF0000FFFFFFFFFFFFFF
     2928      FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
     2929      FFFFFFFFFFFFFFFFFFFFFF0000FFFF0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
     2930      FFFF2C04F9FF2C04F9FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
     2931      FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2C04F9FF2C04
     2932      F9FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF0000
     2933      00FF000000FF000000FF00000000000000000000000000000000000000000000
     2934      0000000000FF000000FF000000FF000000FF000000FF000000FF000000FF0000
     2935      00FF000000FF000000FFFFFFFFFFFF0000FFFF0000FFFF0000FFFF0000FFFFFF
     2936      FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
     2937      FFFFFFFFFFFFFF0000FFFF0000FFFF0000FFFF0000FFFFFFFFFFFFFFFFFF2C04
     2938      F9FF2C04F9FF2C04F9FF2C04F9FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
     2939      FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2C04F9FF2C04F9FF2C04
     2940      F9FF2C04F9FFFFFFFFFF000000FF000000FF000000FF000000FF000000FF0000
     2941      00FF000000FF000000FF000000FF000000FF0000000000000000000000FF0000
     2942      00FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF0000
     2943      00FFFFFFFFFFFFFFFFFFFF0000FFFF0000FFFF0000FFFF0000FFFF0000FFFF00
     2944      00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
     2945      FFFFFF0000FFFF0000FFFF0000FFFF0000FFFF0000FFFF0000FF2C04F9FF2C04
     2946      F9FF2C04F9FF2C04F9FF2C04F9FF2C04F9FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
     2947      FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2C04F9FF2C04F9FF2C04F9FF2C04
     2948      F9FF2C04F9FF2C04F9FFFFFFFFFFFFFFFFFF000000FF000000FF000000FF0000
     2949      00FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF0000
     2950      00FF000000FF000000FF000000FF000000FF000000FF000000FFFFFFFFFFFFFF
     2951      FFFFFFFFFFFFFFFFFFFFFF0000FFFF0000FFFF0000FFFF0000FFFF0000FFFF00
     2952      00FFFF0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00
     2953      00FFFF0000FFFF0000FFFF0000FFFF0000FFFF0000FFFFFFFFFFFFFFFFFF2C04
     2954      F9FF2C04F9FF2C04F9FF2C04F9FF2C04F9FF2C04F9FFFFFFFFFFFFFFFFFFFFFF
     2955      FFFFFFFFFFFFFFFFFFFFFFFFFFFF2C04F9FF2C04F9FF2C04F9FF2C04F9FF2C04
     2956      F9FF2C04F9FF2C04F9FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FF0000
     2957      00FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF0000
     2958      00FF000000FF000000FF000000FF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
     2959      FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0000FFFF0000FFFF0000FFFF0000FFFF00
     2960      00FFFF0000FFFF0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0000FFFF00
     2961      00FFFF0000FFFF0000FFFF0000FFFF0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
     2962      FFFF2C04F9FF2C04F9FF2C04F9FF2C04F9FF2C04F9FF2C04F9FFFFFFFFFFFFFF
     2963      FFFFFFFFFFFFFFFFFFFF2C04F9FF2C04F9FF2C04F9FF2C04F9FF2C04F9FF2C04
     2964      F9FF2C04F9FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
     2965      FFFF000000FF000000FF000000FF000000FF000000FF000000FF000000FF0000
     2966      00FF000000FF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
     2967      FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0000FFFF0000FFFF0000FFFF00
     2968      00FFFF0000FFFF0000FFFF0000FFFFFFFFFFFFFFFFFFFF0000FFFF0000FFFF00
     2969      00FFFF0000FFFF0000FFFF0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
     2970      FFFFFFFFFFFF2C04F9FF2C04F9FF2C04F9FF2C04F9FF2C04F9FF2C04F9FFFFFF
     2971      FFFFFFFFFFFF2C04F9FF2C04F9FF2C04F9FF2C04F9FF2C04F9FF2C04F9FF2C04
     2972      F9FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
     2973      FFFFFFFFFFFFFFFFFFFF000000FF000000FF000000FF000000FF000000FF0000
     2974      00FF000000FF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
     2975      FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0000FFFF0000FFFF00
     2976      00FFFF0000FFFF0000FFFF0000FFFF0000FFFF0000FFFF0000FFFF0000FFFF00
     2977      00FFFF0000FFFF0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
     2978      FFFFFFFFFFFFFFFFFFFF2C04F9FF2C04F9FF2C04F9FF2C04F9FF2C04F9FF2C04
     2979      F9FF2C04F9FF2C04F9FF2C04F9FF2C04F9FF2C04F9FF2C04F9FF2C04F9FFFFFF
     2980      FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
     2981      FFFFFFFFFFFFFFFFFFFF000000FF000000FF000000FF000000FF000000FF0000
     2982      00FF000000FF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
     2983      FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0000FFFF00
     2984      00FFFF0000FFFF0000FFFF0000FFFF0000FFFF0000FFFF0000FFFF0000FFFF00
     2985      00FFFF0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
     2986      FFFFFFFFFFFFFFFFFFFFFFFFFFFF2C04F9FF2C04F9FF2C04F9FF2C04F9FF2C04
     2987      F9FF2C04F9FF2C04F9FF2C04F9FF2C04F9FF2C04F9FF2C04F9FFFFFFFFFFFFFF
     2988      FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
     2989      FFFFFFFFFFFFFFFFFFFF000000FF000000FF000000FF000000FF000000FF0000
     2990      00FF000000FF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
     2991      FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00
     2992      00FFFF0000FFFF0000FFFF0000FFFF0000FFFF0000FFFF0000FFFF0000FFFF00
     2993      00FFFF0000FFFF0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
     2994      FFFFFFFFFFFFFFFFFFFF2C04F9FF2C04F9FF2C04F9FF2C04F9FF2C04F9FF2C04
     2995      F9FF2C04F9FF2C04F9FF2C04F9FF2C04F9FF2C04F9FFFFFFFFFFFFFFFFFFFFFF
     2996      FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
     2997      FFFFFFFFFFFFFFFFFFFF000000FF000000FF000000FF000000FF000000FF0000
     2998      00FF000000FF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
     2999      FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
     3000      FFFFFF0000FFFF0000FFFF0000FFFF0000FFFF0000FFFF0000FFFF0000FFFF00
     3001      00FFFF0000FFFF0000FFFF0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
     3002      FFFFFFFFFFFF2C04F9FF2C04F9FF2C04F9FF2C04F9FF2C04F9FF2C04F9FF2C04
     3003      F9FF2C04F9FF2C04F9FF2C04F9FF2C04F9FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
     3004      FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
     3005      FFFFFFFFFFFFFFFFFFFF000000FF000000FF000000FF000000FF000000FF0000
     3006      00FF000000FF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
     3007      FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
     3008      FFFFFF0000FFFF0000FFFF0000FFFF0000FFFF0000FFFF0000FFFF0000FFFF00
     3009      00FFFF0000FFFF0000FFFF0000FFFF0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
     3010      FFFF2C04F9FF2C04F9FF2C04F9FF2C04F9FF2C04F9FF2C04F9FF2C04F9FF2C04
     3011      F9FF2C04F9FF2C04F9FF2C04F9FF2C04F9FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
     3012      FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
     3013      FFFFFFFFFFFFFFFFFFFF000000FF000000FF000000FF000000FF000000FF0000
     3014      00FF000000FF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
     3015      FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00
     3016      00FFFF0000FFFF0000FFFF0000FFFF0000FFFF0000FFFF0000FFFF0000FFFF00
     3017      00FFFF0000FFFF0000FFFF0000FFFF0000FFFF0000FFFFFFFFFFFFFFFFFF2C04
     3018      F9FF2C04F9FF2C04F9FF2C04F9FF2C04F9FF2C04F9FF2C04F9FF2C04F9FF2C04
     3019      F9FF2C04F9FF2C04F9FF2C04F9FF2C04F9FF2C04F9FFFFFFFFFFFFFFFFFFFFFF
     3020      FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
     3021      FFFFFFFFFFFFFFFFFFFF000000FF000000FF000000FF000000FF000000FF0000
     3022      00FF000000FF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
     3023      FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0000FFFF00
     3024      00FFFF0000FFFF0000FFFF0000FFFF0000FFFF0000FFFF0000FFFF0000FFFF00
     3025      00FFFF0000FFFF0000FFFF0000FFFF0000FFFF0000FFFF0000FF2C04F9FF2C04
     3026      F9FF2C04F9FF2C04F9FF2C04F9FF2C04F9FF2C04F9FF2C04F9FF2C04F9FF2C04
     3027      F9FF2C04F9FF2C04F9FF2C04F9FF2C04F9FF2C04F9FF2C04F9FFFFFFFFFFFFFF
     3028      FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
     3029      FFFFFFFFFFFFFFFFFFFF000000FF000000FF000000FF000000FF000000FF0000
     3030      00FF000000FF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
     3031      FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0000FFFF0000FFFF00
     3032      00FFFF0000FFFF0000FFFF0000FFFF0000FFFF0000FFFF0000FFFF0000FFFF00
     3033      00FFFF0000FFFF0000FFFF0000FFFF0000FFFF0000FF2C04F9FF2C04F9FF2C04
     3034      F9FF2C04F9FF2C04F9FF2C04F9FF2C04F9FF2C04F9FF2C04F9FF2C04F9FF2C04
     3035      F9FF2C04F9FF2C04F9FF2C04F9FF2C04F9FF2C04F9FF2C04F9FF2C04F9FFFFFF
     3036      FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
     3037      FFFFFFFFFFFFFFFFFFFF000000FF000000FF000000FF000000FF000000FF0000
     3038      00FF000000FF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
     3039      FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0000FFFF0000FFFF0000FFFF00
     3040      00FFFF0000FFFF0000FFFF0000FFFF0000FFFF0000FFFF0000FFFF0000FFFF00
     3041      00FFFF0000FFFF0000FFFF0000FFFF0000FF2C04F9FF2C04F9FF2C04F9FF2C04
     3042      F9FF2C04F9FF2C04F9FF2C04F9FF2C04F9FF2C04F9FF2C04F9FF2C04F9FF2C04
     3043      F9FF2C04F9FF2C04F9FF2C04F9FF2C04F9FF2C04F9FF2C04F9FF2C04F9FF2C04
     3044      F9FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
     3045      FFFFFFFFFFFFFFFFFFFF000000FF000000FF000000FF000000FF000000FF0000
     3046      00FF000000FF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
     3047      FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0000FFFF0000FFFF0000FFFF0000FFFF00
     3048      00FFFF0000FFFFFFFFFFFF0000FFFF0000FFFF0000FFFF0000FFFF0000FFFF00
     3049      00FFFF0000FFFF0000FFFF0000FF2C04F9FF2C04F9FF2C04F9FF2C04F9FF2C04
     3050      F9FF2C04F9FF2C04F9FF2C04F9FF2C04F9FF2C04F9FF2C04F9FF2C04F9FF2C04
     3051      F9FF2C04F9FF2C04F9FFFFFFFFFF2C04F9FF2C04F9FF2C04F9FF2C04F9FF2C04
     3052      F9FF2C04F9FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
     3053      FFFFFFFFFFFFFFFFFFFF000000FF000000FF000000FF000000FF000000FF0000
     3054      00FF000000FF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
     3055      FFFFFFFFFFFFFFFFFFFFFF0000FFFF0000FFFF0000FFFF0000FFFF0000FFFF00
     3056      00FFFFFFFFFFFFFFFFFFFFFFFFFFFF0000FFFF0000FFFF0000FFFF0000FFFF00
     3057      00FFFF0000FFFF0000FF2C04F9FF2C04F9FF2C04F9FF2C04F9FF2C04F9FF2C04
     3058      F9FF2C04F9FF2C04F9FF2C04F9FF2C04F9FF2C04F9FF2C04F9FF2C04F9FF2C04
     3059      F9FF2C04F9FFFFFFFFFFFFFFFFFFFFFFFFFF2C04F9FF2C04F9FF2C04F9FF2C04
     3060      F9FF2C04F9FF2C04F9FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
     3061      FFFFFFFFFFFFFFFFFFFF000000FF000000FF000000FF000000FF000000FF0000
     3062      00FF000000FF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
     3063      FFFFFFFFFFFFFFFFFFFFFF0000FFFF0000FFFF0000FFFF0000FFFF0000FFFFFF
     3064      FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0000FFFF0000FFFF0000FFFF00
     3065      00FFFF0000FF2C04F9FF2C04F9FF2C04F9FF2C04F9FF2C04F9FF2C04F9FF2C04
     3066      F9FF2C04F9FF2C04F9FF2C04F9FF2C04F9FF2C04F9FF2C04F9FF2C04F9FF2C04
     3067      F9FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2C04F9FF2C04F9FF2C04
     3068      F9FF2C04F9FF2C04F9FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
     3069      FFFFFFFFFFFFFFFFFFFF000000FF000000FF000000FF000000FF000000FF0000
     3070      00FF000000FF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
     3071      FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0000FFFF0000FFFF0000FFFFFFFFFFFFFF
     3072      FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0000FFFF0000FFFF00
     3073      00FF2C04F9FF2C04F9FF2C04F9FF2C04F9FF2C04F9FF2C04F9FF2C04F9FF2C04
     3074      F9FF2C04F9FF2C04F9FF2C04F9FF2C04F9FF2C04F9FF2C04F9FF2C04F9FFFFFF
     3075      FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2C04F9FF2C04
     3076      F9FF2C04F9FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
     3077      FFFFFFFFFFFFFFFFFFFF000000FF000000FF000000FF000000FF000000FF0000
     3078      00FF000000FF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
     3079      FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0000FFFFFFFFFFFFFFFFFFFFFF
     3080      FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0000FF2C04
     3081      F9FF2C04F9FF2C04F9FF2C04F9FF2C04F9FF2C04F9FF2C04F9FF2C04F9FF2C04
     3082      F9FF2C04F9FF2C04F9FF2C04F9FF2C04F9FF2C04F9FF2C04F9FFFFFFFFFFFFFF
     3083      FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2C04
     3084      F9FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
     3085      FFFFFFFFFFFFFFFFFFFF000000FF000000FF000000FF000000FF000000FF0000
     3086      00FF000000FF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
     3087      FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
     3088      FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2C04F9FF2C04
     3089      F9FF2C04F9FF2C04F9FF2C04F9FF2C04F9FF2C04F9FF2C04F9FF2C04F9FF2C04
     3090      F9FF2C04F9FF2C04F9FF2C04F9FF2C04F9FF2C04F9FFFF0000FFFFFFFFFFFFFF
     3091      FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
     3092      FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
     3093      FFFFFFFFFFFFFFFFFFFF000000FF000000FF000000FF000000FF000000FF0000
     3094      00FF000000FF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
     3095      FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
     3096      FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2C04F9FF2C04F9FF2C04
     3097      F9FF2C04F9FF2C04F9FF2C04F9FF2C04F9FF2C04F9FF2C04F9FF2C04F9FF2C04
     3098      F9FF2C04F9FF2C04F9FF2C04F9FF2C04F9FFFF0000FFFF0000FFFF0000FFFFFF
     3099      FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
     3100      FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
     3101      FFFFFFFFFFFFFFFFFFFF000000FF000000FF000000FF000000FF000000FF0000
     3102      00FF000000FF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
     3103      FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
     3104      FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2C04F9FF2C04F9FF2C04F9FF2C04
     3105      F9FF2C04F9FF2C04F9FF2C04F9FF2C04F9FF2C04F9FF2C04F9FF2C04F9FF2C04
     3106      F9FF2C04F9FF2C04F9FF2C04F9FFFF0000FFFF0000FFFF0000FFFF0000FFFF00
     3107      00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
     3108      FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
     3109      FFFFFFFFFFFFFFFFFFFF000000FF000000FF000000FF000000FF000000FF0000
     3110      00FF000000FF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
     3111      FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
     3112      FFFFFFFFFFFFFFFFFFFFFFFFFFFF2C04F9FF2C04F9FF2C04F9FF2C04F9FF2C04
     3113      F9FF2C04F9FF2C04F9FF2C04F9FF2C04F9FF2C04F9FF2C04F9FF2C04F9FF2C04
     3114      F9FF2C04F9FF2C04F9FFFF0000FFFF0000FFFF0000FFFF0000FFFF0000FFFF00
     3115      00FFFF0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
     3116      FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
     3117      FFFFFFFFFFFFFFFFFFFF000000FF000000FF000000FF000000FF000000FF0000
     3118      00FF000000FF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
     3119      FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
     3120      FFFFFFFFFFFFFFFFFFFF2C04F9FF2C04F9FF2C04F9FF2C04F9FF2C04F9FF2C04
     3121      F9FF2C04F9FF2C04F9FF2C04F9FF2C04F9FF2C04F9FF2C04F9FF2C04F9FF2C04
     3122      F9FF2C04F9FFFF0000FFFF0000FFFF0000FFFF0000FFFF0000FFFF0000FFFF00
     3123      00FFFF0000FFFF0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
     3124      FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
     3125      FFFFFFFFFFFFFFFFFFFF000000FF000000FF000000FF000000FF000000FF0000
     3126      00FF000000FF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
     3127      FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
     3128      FFFFFFFFFFFF2C04F9FF2C04F9FF2C04F9FF2C04F9FF2C04F9FF2C04F9FF2C04
     3129      F9FF2C04F9FF2C04F9FF2C04F9FF2C04F9FF2C04F9FF2C04F9FF2C04F9FF2C04
     3130      F9FFFF0000FFFF0000FFFF0000FFFF0000FFFF0000FFFF0000FFFF0000FFFF00
     3131      00FFFF0000FFFF0000FFFF0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
     3132      FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
     3133      FFFFFFFFFFFFFFFFFFFF000000FF000000FF000000FF000000FF000000FF0000
     3134      00FF000000FF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
     3135      FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
     3136      FFFF2C04F9FF2C04F9FF2C04F9FF2C04F9FF2C04F9FF2C04F9FF2C04F9FF2C04
     3137      F9FF2C04F9FF2C04F9FF2C04F9FF2C04F9FF2C04F9FF2C04F9FF2C04F9FFFF00
     3138      00FFFF0000FFFF0000FFFF0000FFFF0000FFFF0000FFFF0000FFFF0000FFFF00
     3139      00FFFF0000FFFF0000FFFF0000FFFF0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
     3140      FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
     3141      FFFFFFFFFFFFFFFFFFFF000000FF000000FF000000FF000000FF000000FF0000
     3142      00FF000000FF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
     3143      FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2C04
     3144      F9FF2C04F9FF2C04F9FF2C04F9FF2C04F9FF2C04F9FF2C04F9FF2C04F9FF2C04
     3145      F9FF2C04F9FF2C04F9FF2C04F9FF2C04F9FF2C04F9FF2C04F9FFFF0000FFFF00
     3146      00FFFF0000FFFF0000FFFF0000FFFF0000FFFF0000FFFF0000FFFF0000FFFF00
     3147      00FFFF0000FFFF0000FFFF0000FFFF0000FFFF0000FFFFFFFFFFFFFFFFFFFFFF
     3148      FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
     3149      FFFFFFFFFFFFFFFFFFFF000000FF000000FF000000FF000000FF000000FF0000
     3150      00FF000000FF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
     3151      FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2C04F9FF2C04
     3152      F9FF2C04F9FF2C04F9FF2C04F9FF2C04F9FF2C04F9FF2C04F9FF2C04F9FF2C04
     3153      F9FF2C04F9FF2C04F9FF2C04F9FF2C04F9FF2C04F9FFFFFFFFFFFFFFFFFFFF00
     3154      00FFFF0000FFFF0000FFFF0000FFFF0000FFFF0000FFFF0000FFFF0000FFFF00
     3155      00FFFF0000FFFF0000FFFF0000FFFF0000FFFF0000FFFF0000FFFFFFFFFFFFFF
     3156      FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
     3157      FFFFFFFFFFFFFFFFFFFF000000FF000000FF000000FF000000FF000000FF0000
     3158      00FF000000FF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
     3159      FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2C04F9FF2C04F9FF2C04
     3160      F9FF2C04F9FF2C04F9FF2C04F9FF2C04F9FF2C04F9FF2C04F9FF2C04F9FF2C04
     3161      F9FF2C04F9FF2C04F9FF2C04F9FF2C04F9FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
     3162      FFFFFF0000FFFF0000FFFF0000FFFF0000FFFF0000FFFF0000FFFF0000FFFF00
     3163      00FFFF0000FFFF0000FFFF0000FFFF0000FFFF0000FFFF0000FFFF0000FFFFFF
     3164      FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
     3165      FFFFFFFFFFFFFFFFFFFF000000FF000000FF000000FF000000FF000000FF0000
     3166      00FF000000FF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
     3167      FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2C04F9FF2C04F9FF2C04F9FF2C04
     3168      F9FF2C04F9FF2C04F9FF2C04F9FF2C04F9FF2C04F9FF2C04F9FF2C04F9FF2C04
     3169      F9FF2C04F9FF2C04F9FF2C04F9FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
     3170      FFFFFFFFFFFFFF0000FFFF0000FFFF0000FFFF0000FFFF0000FFFF0000FFFF00
     3171      00FFFF0000FFFF0000FFFF0000FFFF0000FFFF0000FFFF0000FFFF0000FFFF00
     3172      00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
     3173      FFFFFFFFFFFFFFFFFFFF000000FF000000FF000000FF000000FF000000FF0000
     3174      00FF000000FF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
     3175      FFFFFFFFFFFFFFFFFFFFFFFFFFFF2C04F9FF2C04F9FF2C04F9FF2C04F9FF2C04
     3176      F9FF2C04F9FF2C04F9FF2C04F9FF2C04F9FF2C04F9FF2C04F9FF2C04F9FF2C04
     3177      F9FF2C04F9FF2C04F9FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
     3178      FFFFFFFFFFFFFFFFFFFFFF0000FFFF0000FFFF0000FFFF0000FFFF0000FFFF00
     3179      00FFFF0000FFFF0000FFFF0000FFFF0000FFFF0000FFFF0000FFFF0000FFFF00
     3180      00FFFF0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
     3181      FFFFFFFFFFFFFFFFFFFF000000FF000000FF000000FF000000FF000000FF0000
     3182      00FF000000FF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
     3183      FFFFFFFFFFFFFFFFFFFF2C04F9FF2C04F9FF2C04F9FF2C04F9FF2C04F9FF2C04
     3184      F9FF2C04F9FF2C04F9FF2C04F9FF2C04F9FF2C04F9FF2C04F9FF2C04F9FF2C04
     3185      F9FF2C04F9FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
     3186      FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0000FFFF0000FFFF0000FFFF0000FFFF00
     3187      00FFFF0000FFFF0000FFFF0000FFFF0000FFFF0000FFFF0000FFFF0000FFFF00
     3188      00FFFF0000FFFF0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
     3189      FFFFFFFFFFFFFFFFFFFF000000FF000000FF000000FF000000FF000000FF0000
     3190      00FF000000FF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
     3191      FFFFFFFFFFFFFFFFFFFF2C04F9FF2C04F9FF2C04F9FF2C04F9FF2C04F9FF2C04
     3192      F9FF2C04F9FF2C04F9FF2C04F9FF2C04F9FF2C04F9FF2C04F9FF2C04F9FF2C04
     3193      F9FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
     3194      FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0000FFFF0000FFFF0000FFFF00
     3195      00FFFF0000FFFF0000FFFF0000FFFF0000FFFF0000FFFF0000FFFF0000FFFF00
     3196      00FFFF0000FFFF0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
     3197      FFFFFFFFFFFFFFFFFFFF000000FF000000FF000000FF000000FF000000FF0000
     3198      00FF000000FF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
     3199      FFFFFFFFFFFFFFFFFFFF2C04F9FF2C04F9FF2C04F9FF2C04F9FF2C04F9FF2C04
     3200      F9FF2C04F9FF2C04F9FF2C04F9FF2C04F9FF2C04F9FF2C04F9FF2C04F9FFFFFF
     3201      FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
     3202      FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0000FFFF0000FFFF00
     3203      00FFFF0000FFFF0000FFFF0000FFFF0000FFFF0000FFFF0000FFFF0000FFFF00
     3204      00FFFF0000FFFF0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
     3205      FFFFFFFFFFFFFFFFFFFF000000FF000000FF000000FF000000FF000000FF0000
     3206      00FF000000FF000000FF000000FF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
     3207      FFFFFFFFFFFFFFFFFFFF2C04F9FF2C04F9FF2C04F9FF2C04F9FF2C04F9FF2C04
     3208      F9FF2C04F9FF2C04F9FF2C04F9FF2C04F9FF2C04F9FF2C04F9FFFFFFFFFFFFFF
     3209      FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
     3210      FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0000FFFF00
     3211      00FFFF0000FFFF0000FFFF0000FFFF0000FFFF0000FFFF0000FFFF0000FFFF00
     3212      00FFFF0000FFFF0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
     3213      FFFF000000FF000000FF000000FF000000FF000000FF000000FF000000FF0000
     3214      00FF000000FF000000FF000000FF000000FF000000FF000000FFFFFFFFFFFFFF
     3215      FFFFFFFFFFFFFFFFFFFF2C04F9FF2C04F9FF2C04F9FF2C04F9FF2C04F9FF2C04
     3216      F9FF2C04F9FF2C04F9FF2C04F9FF2C04F9FF2C04F9FFFFFFFFFFFFFFFFFFFFFF
     3217      FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
     3218      FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00
     3219      00FFFF0000FFFF0000FFFF0000FFFF0000FFFF0000FFFF0000FFFF0000FFFF00
     3220      00FFFF0000FFFF0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FF0000
     3221      00FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF0000
     3222      00FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF0000
     3223      00FFFFFFFFFFFFFFFFFF2C04F9FF2C04F9FF2C04F9FF2C04F9FF2C04F9FF2C04
     3224      F9FF2C04F9FF2C04F9FF2C04F9FF2C04F9FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
     3225      FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
     3226      FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
     3227      FFFFFF0000FFFF0000FFFF0000FFFF0000FFFF0000FFFF0000FFFF0000FFFF00
     3228      00FFFF0000FFFF0000FFFFFFFFFFFFFFFFFF000000FF000000FF000000FF0000
     3229      00FF000000FF000000FF000000FF000000FF000000FF000000FF000000000000
     3230      0000000000FF000000FF000000FF000000FF000000FF000000FF000000FF0000
     3231      00FF000000FF000000FF2C04F9FF2C04F9FF2C04F9FF2C04F9FF2C04F9FF2C04
     3232      F9FF2C04F9FF2C04F9FF2C04F9FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
     3233      FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
     3234      FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
     3235      FFFFFFFFFFFFFF0000FFFF0000FFFF0000FFFF0000FFFF0000FFFF0000FFFF00
     3236      00FFFF0000FFFF0000FF000000FF000000FF000000FF000000FF000000FF0000
     3237      00FF000000FF000000FF000000FF000000FF0000000000000000000000000000
     3238      00000000000000000000000000FF000000FF000000FF000000FF000000FF0000
     3239      00FF000000FF000000FF2C04F9FF2C04F9FF2C04F9FF2C04F9FF2C04F9FF2C04
     3240      F9FF2C04F9FF2C04F9FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
     3241      FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
     3242      FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
     3243      FFFFFFFFFFFFFFFFFFFFFF0000FFFF0000FFFF0000FFFF0000FFFF0000FFFF00
     3244      00FFFF0000FFFF0000FF000000FF000000FF000000FF000000FF000000FF0000
     3245      00FF000000FF000000FF00000000000000000000000000000000000000000000
     3246      000000000000000000000000000000000000000000FF000000FF000000FF0000
     3247      00FF000000FF000000FF000000FF000000FF000000FF000000FFFFFFFFFFFFFF
     3248      FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
     3249      FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
     3250      FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
     3251      FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FF0000
     3252      00FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF0000
     3253      00FF000000000000000000000000000000000000000000000000000000000000
     3254      0000000000000000000000000000000000000000000000000000000000FF0000
     3255      00FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF0000
     3256      00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
     3257      FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
     3258      FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
     3259      FFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FF000000FF000000FF000000FF0000
     3260      00FF000000FF000000FF000000FF000000FF000000FF000000FF000000000000
     3261      0000000000000000000000000000000000000000000000000000000000000000
     3262      0000000000000000000000000000000000000000000000000000000000000000
     3263      0000000000FF000000FF000000FF000000FF000000FF000000FF000000FF0000
     3264      00FF000000FF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
     3265      FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
     3266      FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
     3267      FFFFFFFFFFFFFFFFFFFF000000FF000000FF000000FF000000FF000000FF0000
     3268      00FF000000FF000000FF000000FF000000FF0000000000000000000000000000
     3269      0000000000000000000000000000000000000000000000000000000000000000
     3270      0000000000000000000000000000000000000000000000000000000000000000
     3271      00000000000000000000000000FF000000FF000000FF000000FF000000FF0000
     3272      00FF000000FF000000FF000000FF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
     3273      FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
     3274      FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
     3275      FFFF000000FF000000FF000000FF000000FF000000FF000000FF000000FF0000
     3276      00FF000000FF000000FF00000000000000000000000000000000000000000000
     3277      0000000000000000000000000000000000000000000000000000000000000000
     3278      0000000000000000000000000000000000000000000000000000000000000000
     3279      000000000000000000000000000000000000000000FF000000FF000000FF0000
     3280      00FF000000FF000000FF000000FF000000FF000000FF000000FFFFFFFFFFFFFF
     3281      FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
     3282      FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FF0000
     3283      00FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF0000
     3284      00FF000000000000000000000000000000000000000000000000000000000000
     3285      0000000000000000000000000000000000000000000000000000000000000000
     3286      0000000000000000000000000000000000000000000000000000000000000000
     3287      0000000000000000000000000000000000000000000000000000000000FF0000
     3288      00FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF0000
     3289      00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
     3290      FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FF000000FF000000FF0000
     3291      00FF000000FF000000FF000000FF000000FF000000FF000000FF000000000000
     3292      0000000000000000000000000000000000000000000000000000000000000000
     3293      0000000000000000000000000000000000000000000000000000000000000000
     3294      0000000000000000000000000000000000000000000000000000000000000000
     3295      0000000000000000000000000000000000000000000000000000000000000000
     3296      0000000000FF000000FF000000FF000000FF000000FF000000FF000000FF0000
     3297      00FF000000FF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
     3298      FFFFFFFFFFFFFFFFFFFF000000FF000000FF000000FF000000FF000000FF0000
     3299      00FF000000FF000000FF000000FF000000FF0000000000000000000000000000
     3300      0000000000000000000000000000000000000000000000000000000000000000
     3301      0000000000000000000000000000000000000000000000000000000000000000
     3302      0000000000000000000000000000000000000000000000000000000000000000
     3303      0000000000000000000000000000000000000000000000000000000000000000
     3304      00000000000000000000000000FF000000FF000000FF000000FF000000FF0000
     3305      00FF000000FF000000FF000000FF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
     3306      FFFF000000FF000000FF000000FF000000FF000000FF000000FF000000FF0000
     3307      00FF000000FF000000FF00000000000000000000000000000000000000000000
     3308      0000000000000000000000000000000000000000000000000000000000000000
     3309      0000000000000000000000000000000000000000000000000000000000000000
     3310      0000000000000000000000000000000000000000000000000000000000000000
     3311      0000000000000000000000000000000000000000000000000000000000000000
     3312      000000000000000000000000000000000000000000FF000000FF000000FF0000
     3313      00FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF0000
     3314      00FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF0000
     3315      00FF000000000000000000000000000000000000000000000000000000000000
     3316      0000000000000000000000000000000000000000000000000000000000000000
     3317      0000000000000000000000000000000000000000000000000000000000000000
     3318      0000000000000000000000000000000000000000000000000000000000000000
     3319      0000000000000000000000000000000000000000000000000000000000000000
     3320      0000000000000000000000000000000000000000000000000000000000FF0000
     3321      00FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF0000
     3322      00FF000000FF000000FF000000FF000000FF000000FF000000FF000000000000
     3323      0000000000000000000000000000000000000000000000000000000000000000
     3324      0000000000000000000000000000000000000000000000000000000000000000
     3325      0000000000000000000000000000000000000000000000000000000000000000
     3326      0000000000000000000000000000000000000000000000000000000000000000
     3327      0000000000000000000000000000000000000000000000000000000000000000
     3328      0000000000000000000000000000000000000000000000000000000000000000
     3329      0000000000FF000000FF000000FF000000FF000000FF000000FF000000FF0000
     3330      00FF000000FF000000FF000000FF000000FF0000000000000000000000000000
     3331      0000000000000000000000000000000000000000000000000000000000000000
     3332      0000000000000000000000000000000000000000000000000000000000000000
     3333      0000000000000000000000000000000000000000000000000000000000000000
     3334      0000000000000000000000000000000000000000000000000000000000000000
     3335      0000000000000000000000000000000000000000000000000000000000000000
     3336      0000000000000000000000000000000000000000000000000000000000000000
     3337      00000000000000000000000000FF000000FF000000FF000000FF000000FF0000
     3338      00FF000000FF000000FF00000000000000000000000000000000000000000000
     3339      0000000000000000000000000000000000000000000000000000000000000000
     3340      0000000000000000000000000000000000000000000000000000000000000000
     3341      0000000000000000000000000000000000000000000000000000
     3342    }
     3343    Left = 137
     3344    Top = 180
    28293345  end
    28303346  object PersistentForm: TPersistentForm
    28313347    MinVisiblePart = 50
    28323348    EntireVisible = False
    2833     left = 780
    2834     top = 600
     3349    Left = 780
     3350    Top = 600
    28353351  end
    28363352  object ScaleDPI1: TScaleDPI
    28373353    AutoDetect = False
    2838     left = 136
    2839     top = 676
     3354    Left = 136
     3355    Top = 676
    28403356  end
    28413357  object LastOpenedList1: TLastOpenedList
    28423358    MaxCount = 10
    28433359    OnChange = LastOpenedList1Change
    2844     left = 137
    2845     top = 300
     3360    Left = 137
     3361    Top = 300
    28463362  end
    28473363  object ThemeManager1: TThemeManager
    2848     left = 404
    2849     top = 324
     3364    Left = 404
     3365    Top = 324
     3366  end
     3367  object AboutDialog1: TAboutDialog
     3368    CoolTranslator = CoolTranslator1
     3369    ThemeManager = ThemeManager1
     3370    ApplicationInfo = ApplicationInfo
     3371    Left = 404
     3372    Top = 184
    28503373  end
    28513374end
  • trunk/UCore.lrj

    r301 r308  
    2121{"hash":122803571,"name":"tcore.ashowkeyshortcuts.caption","sourcebytes":[75,101,121,32,115,104,111,114,116,99,117,116,115],"value":"Key shortcuts"},
    2222{"hash":91608562,"name":"tcore.atogglefogofwar.caption","sourcebytes":[84,111,103,103,108,101,32,102,111,103,32,111,102,32,119,97,114],"value":"Toggle fog of war"},
    23 {"hash":108810549,"name":"tcore.afullscreen.caption","sourcebytes":[70,117,108,108,32,115,99,114,101,101,110,32,109,111,100,101],"value":"Full screen mode"}
     23{"hash":108810549,"name":"tcore.afullscreen.caption","sourcebytes":[70,117,108,108,32,115,99,114,101,101,110,32,109,111,100,101],"value":"Full screen mode"},
     24{"hash":120622558,"name":"tcore.applicationinfo.description","sourcebytes":[84,117,114,110,45,98,97,115,101,100,32,115,116,114,97,116,101,103,121,32,103,97,109,101,32,105,110,115,112,105,114,101,100,32,98,121,32,99,108,97,115,115,105,99,32,82,105,115,107,32,98,111,97,114,100,32,103,97,109,101,46,32,84,104,101,32,103,97,109,101,32,105,115,32,104,105,103,104,108,121,32,99,111,110,102,105,103,117,114,97,98,108,101,32,116,111,32,97,108,108,111,119,32,116,111,32,97,100,106,117,115,116,32,98,97,116,116,108,101,32,102,105,101,108,100,32,97,110,100,32,103,97,109,101,32,114,117,108,101,115,46],"value":"Turn-based strategy game inspired by classic Risk board game. The game is highly configurable to allow to adjust battle field and game rules."}
    2425]}
  • trunk/UCore.pas

    r304 r308  
    77uses
    88  Classes, SysUtils, XMLConf, FileUtil, ActnList, Controls, Dialogs, Forms,
    9   UGame, UApplicationInfo, UPersistentForm, UScaleDPI, UCoolTranslator, DOM,
    10   URegistry, ULastOpenedList, UTheme, Registry, Menus, UFormClient, UPlayer,
    11   UGameServer, UGameClient, fgl, UServerList, UGameSystem, Graphics;
     9  UGame, UApplicationInfo, UPersistentForm, UScaleDPI, UTranslator, DOM,
     10  URegistry, ULastOpenedList, UTheme, UAboutDialog, Registry, Menus,
     11  UFormClient, UPlayer, UGameServer, UGameClient, fgl, UServerList, UGameSystem,
     12  Graphics;
    1213
    1314type
     
    1718  TCore = class(TDataModule)
    1819    AAbout: TAction;
     20    AboutDialog1: TAboutDialog;
    1921    AFullscreen: TAction;
    2022    AToggleFogOfWar: TAction;
     
    3537    AGameNew: TAction;
    3638    AGameRestart: TAction;
    37     CoolTranslator1: TCoolTranslator;
     39    CoolTranslator1: TTranslator;
    3840    ImageListLarge: TImageList;
    3941    ImageListSmall: TImageList;
     
    324326procedure TCore.AAboutExecute(Sender: TObject);
    325327begin
    326   FormAbout := TFormAbout.Create(Self);
    327   try
    328     FormAbout.ApplicationInfo := ApplicationInfo;
    329     FormAbout.ShowModal;
    330   finally
    331     FreeAndNil(FormAbout);
    332   end;
     328  AboutDialog1.Show;
    333329end;
    334330
  • trunk/xtactics.lpi

    r301 r308  
    8484      </Modes>
    8585    </RunParams>
    86     <RequiredPackages Count="7">
     86    <RequiredPackages Count="6">
    8787      <Item1>
    8888        <PackageName Value="CoolStreaming"/>
     
    104104      </Item5>
    105105      <Item6>
    106         <PackageName Value="CoolTranslator"/>
    107         <DefaultFilename Value="Packages/CoolTranslator/CoolTranslator.lpk" Prefer="True"/>
     106        <PackageName Value="LCL"/>
    108107      </Item6>
    109       <Item7>
    110         <PackageName Value="LCL"/>
    111       </Item7>
    112108    </RequiredPackages>
    113     <Units Count="41">
     109    <Units Count="40">
    114110      <Unit0>
    115111        <Filename Value="xtactics.lpr"/>
     
    156152      </Unit6>
    157153      <Unit7>
    158         <Filename Value="Forms/UFormAbout.pas"/>
    159         <IsPartOfProject Value="True"/>
    160         <ComponentName Value="FormAbout"/>
     154        <Filename Value="Forms/UFormHelp.pas"/>
     155        <IsPartOfProject Value="True"/>
     156        <ComponentName Value="FormHelp"/>
    161157        <HasResources Value="True"/>
    162158        <ResourceBaseClass Value="Form"/>
    163159      </Unit7>
    164160      <Unit8>
    165         <Filename Value="Forms/UFormHelp.pas"/>
    166         <IsPartOfProject Value="True"/>
    167         <ComponentName Value="FormHelp"/>
     161        <Filename Value="Forms/UFormCharts.pas"/>
     162        <IsPartOfProject Value="True"/>
     163        <ComponentName Value="FormCharts"/>
    168164        <HasResources Value="True"/>
    169165        <ResourceBaseClass Value="Form"/>
    170166      </Unit8>
    171167      <Unit9>
    172         <Filename Value="Forms/UFormCharts.pas"/>
    173         <IsPartOfProject Value="True"/>
    174         <ComponentName Value="FormCharts"/>
     168        <Filename Value="Forms/UFormUnitMoves.pas"/>
     169        <IsPartOfProject Value="True"/>
     170        <ComponentName Value="FormUnitMoves"/>
    175171        <HasResources Value="True"/>
    176172        <ResourceBaseClass Value="Form"/>
    177173      </Unit9>
    178174      <Unit10>
    179         <Filename Value="Forms/UFormUnitMoves.pas"/>
    180         <IsPartOfProject Value="True"/>
    181         <ComponentName Value="FormUnitMoves"/>
     175        <Filename Value="Forms/UFormChat.pas"/>
     176        <IsPartOfProject Value="True"/>
     177        <ComponentName Value="FormChat"/>
    182178        <HasResources Value="True"/>
    183179        <ResourceBaseClass Value="Form"/>
    184180      </Unit10>
    185181      <Unit11>
    186         <Filename Value="Forms/UFormChat.pas"/>
    187         <IsPartOfProject Value="True"/>
    188         <ComponentName Value="FormChat"/>
    189         <HasResources Value="True"/>
    190         <ResourceBaseClass Value="Form"/>
     182        <Filename Value="UTCP.pas"/>
     183        <IsPartOfProject Value="True"/>
    191184      </Unit11>
    192185      <Unit12>
    193         <Filename Value="UTCP.pas"/>
     186        <Filename Value="UServerList.pas"/>
    194187        <IsPartOfProject Value="True"/>
    195188      </Unit12>
    196189      <Unit13>
    197         <Filename Value="UServerList.pas"/>
    198         <IsPartOfProject Value="True"/>
     190        <Filename Value="Forms/UFormClient.pas"/>
     191        <IsPartOfProject Value="True"/>
     192        <ComponentName Value="FormClient"/>
     193        <HasResources Value="True"/>
     194        <ResourceBaseClass Value="Form"/>
    199195      </Unit13>
    200196      <Unit14>
    201         <Filename Value="Forms/UFormClient.pas"/>
    202         <IsPartOfProject Value="True"/>
    203         <ComponentName Value="FormClient"/>
     197        <Filename Value="Forms/UFormPlayersStats.pas"/>
     198        <IsPartOfProject Value="True"/>
     199        <ComponentName Value="FormPlayersStats"/>
    204200        <HasResources Value="True"/>
    205201        <ResourceBaseClass Value="Form"/>
    206202      </Unit14>
    207203      <Unit15>
    208         <Filename Value="Forms/UFormPlayersStats.pas"/>
    209         <IsPartOfProject Value="True"/>
    210         <ComponentName Value="FormPlayersStats"/>
    211         <HasResources Value="True"/>
    212         <ResourceBaseClass Value="Form"/>
     204        <Filename Value="UGameServer.pas"/>
     205        <IsPartOfProject Value="True"/>
    213206      </Unit15>
    214207      <Unit16>
    215         <Filename Value="UGameServer.pas"/>
     208        <Filename Value="UGameClient.pas"/>
    216209        <IsPartOfProject Value="True"/>
    217210      </Unit16>
    218211      <Unit17>
    219         <Filename Value="UGameClient.pas"/>
     212        <Filename Value="UGameProtocol.pas"/>
    220213        <IsPartOfProject Value="True"/>
    221214      </Unit17>
    222215      <Unit18>
    223         <Filename Value="UGameProtocol.pas"/>
     216        <Filename Value="Packages/PinConnection/UCommPin.pas"/>
    224217        <IsPartOfProject Value="True"/>
    225218      </Unit18>
    226219      <Unit19>
    227         <Filename Value="Packages/PinConnection/UCommPin.pas"/>
     220        <Filename Value="UGeometry.pas"/>
    228221        <IsPartOfProject Value="True"/>
    229222      </Unit19>
    230223      <Unit20>
    231         <Filename Value="UGeometry.pas"/>
     224        <Filename Value="UGeometryClasses.pas"/>
    232225        <IsPartOfProject Value="True"/>
    233226      </Unit20>
    234227      <Unit21>
    235         <Filename Value="UGeometryClasses.pas"/>
    236         <IsPartOfProject Value="True"/>
     228        <Filename Value="Forms/UFormServer.pas"/>
     229        <IsPartOfProject Value="True"/>
     230        <ComponentName Value="FormServer"/>
     231        <HasResources Value="True"/>
     232        <ResourceBaseClass Value="Form"/>
    237233      </Unit21>
    238234      <Unit22>
    239         <Filename Value="Forms/UFormServer.pas"/>
    240         <IsPartOfProject Value="True"/>
    241         <ComponentName Value="FormServer"/>
    242         <HasResources Value="True"/>
    243         <ResourceBaseClass Value="Form"/>
     235        <Filename Value="UClientAI.pas"/>
     236        <IsPartOfProject Value="True"/>
    244237      </Unit22>
    245238      <Unit23>
    246         <Filename Value="UClientAI.pas"/>
     239        <Filename Value="UGameConnection.pas"/>
    247240        <IsPartOfProject Value="True"/>
    248241      </Unit23>
    249242      <Unit24>
    250         <Filename Value="UGameConnection.pas"/>
     243        <Filename Value="Packages/PinConnection/UCommThread.pas"/>
    251244        <IsPartOfProject Value="True"/>
    252245      </Unit24>
    253246      <Unit25>
    254         <Filename Value="Packages/PinConnection/UCommThread.pas"/>
    255         <IsPartOfProject Value="True"/>
     247        <Filename Value="Forms/UFormKeyShortcuts.pas"/>
     248        <IsPartOfProject Value="True"/>
     249        <ComponentName Value="FormKeyShortcuts"/>
     250        <HasResources Value="True"/>
     251        <ResourceBaseClass Value="Form"/>
    256252      </Unit25>
    257253      <Unit26>
    258         <Filename Value="Forms/UFormKeyShortcuts.pas"/>
    259         <IsPartOfProject Value="True"/>
    260         <ComponentName Value="FormKeyShortcuts"/>
    261         <HasResources Value="True"/>
    262         <ResourceBaseClass Value="Form"/>
     254        <Filename Value="Packages/PinConnection/UCommFrame.pas"/>
     255        <IsPartOfProject Value="True"/>
    263256      </Unit26>
    264257      <Unit27>
    265         <Filename Value="Packages/PinConnection/UCommFrame.pas"/>
     258        <Filename Value="UMapType.pas"/>
    266259        <IsPartOfProject Value="True"/>
    267260      </Unit27>
    268261      <Unit28>
    269         <Filename Value="UMapType.pas"/>
     262        <Filename Value="UMap.pas"/>
    270263        <IsPartOfProject Value="True"/>
    271264      </Unit28>
    272265      <Unit29>
    273         <Filename Value="UMap.pas"/>
     266        <Filename Value="UPlayer.pas"/>
    274267        <IsPartOfProject Value="True"/>
    275268      </Unit29>
    276269      <Unit30>
    277         <Filename Value="UPlayer.pas"/>
     270        <Filename Value="UClientGUI.pas"/>
    278271        <IsPartOfProject Value="True"/>
    279272      </Unit30>
    280273      <Unit31>
    281         <Filename Value="UClientGUI.pas"/>
     274        <Filename Value="UUnit.pas"/>
    282275        <IsPartOfProject Value="True"/>
    283276      </Unit31>
    284277      <Unit32>
    285         <Filename Value="UUnit.pas"/>
     278        <Filename Value="UGameSystem.pas"/>
    286279        <IsPartOfProject Value="True"/>
    287280      </Unit32>
    288281      <Unit33>
    289         <Filename Value="UGameSystem.pas"/>
     282        <Filename Value="UBuilding.pas"/>
    290283        <IsPartOfProject Value="True"/>
    291284      </Unit33>
    292285      <Unit34>
    293         <Filename Value="UBuilding.pas"/>
    294         <IsPartOfProject Value="True"/>
     286        <Filename Value="Forms/UFormGameSystem.pas"/>
     287        <IsPartOfProject Value="True"/>
     288        <ComponentName Value="FormGameSystem"/>
     289        <HasResources Value="True"/>
     290        <ResourceBaseClass Value="Form"/>
    295291      </Unit34>
    296292      <Unit35>
    297         <Filename Value="Forms/UFormGameSystem.pas"/>
    298         <IsPartOfProject Value="True"/>
    299         <ComponentName Value="FormGameSystem"/>
     293        <Filename Value="Forms/UFormGameSystems.pas"/>
     294        <IsPartOfProject Value="True"/>
     295        <ComponentName Value="FormGameSystems"/>
    300296        <HasResources Value="True"/>
    301297        <ResourceBaseClass Value="Form"/>
    302298      </Unit35>
    303299      <Unit36>
    304         <Filename Value="Forms/UFormGameSystems.pas"/>
    305         <IsPartOfProject Value="True"/>
    306         <ComponentName Value="FormGameSystems"/>
    307         <HasResources Value="True"/>
    308         <ResourceBaseClass Value="Form"/>
     300        <Filename Value="UNation.pas"/>
     301        <IsPartOfProject Value="True"/>
    309302      </Unit36>
    310303      <Unit37>
    311         <Filename Value="UNation.pas"/>
     304        <Filename Value="UItemList.pas"/>
    312305        <IsPartOfProject Value="True"/>
    313306      </Unit37>
    314307      <Unit38>
    315         <Filename Value="UItemList.pas"/>
    316         <IsPartOfProject Value="True"/>
     308        <Filename Value="Forms/UFormList.pas"/>
     309        <IsPartOfProject Value="True"/>
     310        <ComponentName Value="FormList"/>
     311        <HasResources Value="True"/>
     312        <ResourceBaseClass Value="Form"/>
    317313      </Unit38>
    318314      <Unit39>
    319         <Filename Value="Forms/UFormList.pas"/>
    320         <IsPartOfProject Value="True"/>
    321         <ComponentName Value="FormList"/>
     315        <Filename Value="Forms/UFormItem.pas"/>
     316        <IsPartOfProject Value="True"/>
     317        <ComponentName Value="FormItem"/>
    322318        <HasResources Value="True"/>
    323319        <ResourceBaseClass Value="Form"/>
    324320      </Unit39>
    325       <Unit40>
    326         <Filename Value="Forms/UFormItem.pas"/>
    327         <IsPartOfProject Value="True"/>
    328         <ComponentName Value="FormItem"/>
    329         <HasResources Value="True"/>
    330         <ResourceBaseClass Value="Form"/>
    331       </Unit40>
    332321    </Units>
    333322  </ProjectOptions>
  • trunk/xtactics.lpr

    r300 r308  
    99  Interfaces, // this includes the LCL widgetset
    1010  Forms, tachartlazaruspkg, UGame, UCore, Common,
    11   CoolTranslator, TemplateGenerics
     11  TemplateGenerics
    1212  { you can add units after this },
    1313  SysUtils, UFormMain, CoolStreaming;
Note: See TracChangeset for help on using the changeset viewer.