├── ATOMBIOSReader.sln ├── ATOMBIOSReader ├── 98cd92597dbf8fb4018d567eb6935b35.jpg ├── 98cd92597dbf8fb4018d567eb6935b35_NyO_icon.ico ├── ATOMBIOSReader.Designer.vb ├── ATOMBIOSReader.jpg ├── ATOMBIOSReader.resx ├── ATOMBIOSReader.vb ├── ATOMBIOSReader.vbproj ├── ATOMBIOSReader.vbproj.user ├── App.config ├── My Project │ ├── Application.Designer.vb │ ├── Application.myapp │ ├── AssemblyInfo.vb │ ├── Resources.Designer.vb │ ├── Resources.resx │ ├── Settings.Designer.vb │ └── Settings.settings ├── bin │ └── Debug │ │ ├── ATOMBIOSReader.exe │ │ ├── ATOMBIOSReader.exe.config │ │ ├── ATOMBIOSReader.pdb │ │ ├── ATOMBIOSReader.vshost.exe │ │ ├── ATOMBIOSReader.vshost.exe.config │ │ ├── ATOMBIOSReader.vshost.exe.manifest │ │ ├── ATOMBIOSReader.xml │ │ └── ATOMBIOSReader.zip └── obj │ └── Debug │ ├── ATOMBIOSReader.ATOMBIOSReader.resources │ ├── ATOMBIOSReader.Resources.resources │ ├── ATOMBIOSReader.exe │ ├── ATOMBIOSReader.pdb │ ├── ATOMBIOSReader.vbproj.FileListAbsolute.txt │ ├── ATOMBIOSReader.vbproj.GenerateResource.Cache │ ├── ATOMBIOSReader.xml │ ├── DesignTimeResolveAssemblyReferences.cache │ ├── DesignTimeResolveAssemblyReferencesInput.cache │ └── TempPE │ └── My.Project.Resources.Designer.vb.dll ├── LICENSE └── README.md /ATOMBIOSReader.sln: -------------------------------------------------------------------------------- 1 |  2 | Microsoft Visual Studio Solution File, Format Version 12.00 3 | # Visual Studio 14 4 | VisualStudioVersion = 14.0.23107.0 5 | MinimumVisualStudioVersion = 10.0.40219.1 6 | Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "ATOMBIOSReader", "ATOMBIOSReader\ATOMBIOSReader.vbproj", "{E43910C9-B03E-43EA-9884-A7F707B373B8}" 7 | EndProject 8 | Global 9 | GlobalSection(SolutionConfigurationPlatforms) = preSolution 10 | Debug|Any CPU = Debug|Any CPU 11 | Release|Any CPU = Release|Any CPU 12 | EndGlobalSection 13 | GlobalSection(ProjectConfigurationPlatforms) = postSolution 14 | {E43910C9-B03E-43EA-9884-A7F707B373B8}.Debug|Any CPU.ActiveCfg = Debug|Any CPU 15 | {E43910C9-B03E-43EA-9884-A7F707B373B8}.Debug|Any CPU.Build.0 = Debug|Any CPU 16 | {E43910C9-B03E-43EA-9884-A7F707B373B8}.Release|Any CPU.ActiveCfg = Release|Any CPU 17 | {E43910C9-B03E-43EA-9884-A7F707B373B8}.Release|Any CPU.Build.0 = Release|Any CPU 18 | EndGlobalSection 19 | GlobalSection(SolutionProperties) = preSolution 20 | HideSolutionNode = FALSE 21 | EndGlobalSection 22 | EndGlobal 23 | -------------------------------------------------------------------------------- /ATOMBIOSReader/98cd92597dbf8fb4018d567eb6935b35.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kizwan/ATOMBIOSReader/b7b995c49f78fce8115771ec09bc1cfdde55ca7d/ATOMBIOSReader/98cd92597dbf8fb4018d567eb6935b35.jpg -------------------------------------------------------------------------------- /ATOMBIOSReader/98cd92597dbf8fb4018d567eb6935b35_NyO_icon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kizwan/ATOMBIOSReader/b7b995c49f78fce8115771ec09bc1cfdde55ca7d/ATOMBIOSReader/98cd92597dbf8fb4018d567eb6935b35_NyO_icon.ico -------------------------------------------------------------------------------- /ATOMBIOSReader/ATOMBIOSReader.Designer.vb: -------------------------------------------------------------------------------- 1 |  2 | Partial Class ATOMBIOSReader 3 | Inherits System.Windows.Forms.Form 4 | 5 | 'Form overrides dispose to clean up the component list. 6 | 7 | Protected Overrides Sub Dispose(ByVal disposing As Boolean) 8 | Try 9 | If disposing AndAlso components IsNot Nothing Then 10 | components.Dispose() 11 | End If 12 | Finally 13 | MyBase.Dispose(disposing) 14 | End Try 15 | End Sub 16 | 17 | 'Required by the Windows Form Designer 18 | Private components As System.ComponentModel.IContainer 19 | 20 | 'NOTE: The following procedure is required by the Windows Form Designer 21 | 'It can be modified using the Windows Form Designer. 22 | 'Do not modify it using the code editor. 23 | 24 | Private Sub InitializeComponent() 25 | Dim resources As System.ComponentModel.ComponentResourceManager = New System.ComponentModel.ComponentResourceManager(GetType(ATOMBIOSReader)) 26 | Me.txtFileName = New System.Windows.Forms.TextBox() 27 | Me.btnOpenFile = New System.Windows.Forms.Button() 28 | Me.PictureBox1 = New System.Windows.Forms.PictureBox() 29 | Me.lblStatus = New System.Windows.Forms.Label() 30 | CType(Me.PictureBox1, System.ComponentModel.ISupportInitialize).BeginInit() 31 | Me.SuspendLayout() 32 | ' 33 | 'txtFileName 34 | ' 35 | Me.txtFileName.Location = New System.Drawing.Point(109, 38) 36 | Me.txtFileName.Name = "txtFileName" 37 | Me.txtFileName.ReadOnly = True 38 | Me.txtFileName.Size = New System.Drawing.Size(362, 20) 39 | Me.txtFileName.TabIndex = 0 40 | ' 41 | 'btnOpenFile 42 | ' 43 | Me.btnOpenFile.Location = New System.Drawing.Point(477, 38) 44 | Me.btnOpenFile.Name = "btnOpenFile" 45 | Me.btnOpenFile.Size = New System.Drawing.Size(110, 21) 46 | Me.btnOpenFile.TabIndex = 1 47 | Me.btnOpenFile.Text = "&Open" 48 | Me.btnOpenFile.UseVisualStyleBackColor = True 49 | ' 50 | 'PictureBox1 51 | ' 52 | Me.PictureBox1.Image = Global.ATOMBIOSReader.My.Resources.Resources._98cd92597dbf8fb4018d567eb6935b35 53 | Me.PictureBox1.Location = New System.Drawing.Point(12, 12) 54 | Me.PictureBox1.Name = "PictureBox1" 55 | Me.PictureBox1.Size = New System.Drawing.Size(91, 90) 56 | Me.PictureBox1.TabIndex = 2 57 | Me.PictureBox1.TabStop = False 58 | ' 59 | 'lblStatus 60 | ' 61 | Me.lblStatus.AutoSize = True 62 | Me.lblStatus.Location = New System.Drawing.Point(109, 87) 63 | Me.lblStatus.Name = "lblStatus" 64 | Me.lblStatus.Size = New System.Drawing.Size(0, 13) 65 | Me.lblStatus.TabIndex = 3 66 | ' 67 | 'ATOMBIOSReader 68 | ' 69 | Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!) 70 | Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font 71 | Me.ClientSize = New System.Drawing.Size(596, 109) 72 | Me.Controls.Add(Me.lblStatus) 73 | Me.Controls.Add(Me.PictureBox1) 74 | Me.Controls.Add(Me.btnOpenFile) 75 | Me.Controls.Add(Me.txtFileName) 76 | Me.FormBorderStyle = System.Windows.Forms.FormBorderStyle.Fixed3D 77 | Me.Icon = CType(resources.GetObject("$this.Icon"), System.Drawing.Icon) 78 | Me.MaximizeBox = False 79 | Me.Name = "ATOMBIOSReader" 80 | Me.Text = "ATOM BIOS Reader" 81 | CType(Me.PictureBox1, System.ComponentModel.ISupportInitialize).EndInit() 82 | Me.ResumeLayout(False) 83 | Me.PerformLayout() 84 | 85 | End Sub 86 | 87 | Friend WithEvents txtFileName As TextBox 88 | Friend WithEvents btnOpenFile As Button 89 | Friend WithEvents PictureBox1 As PictureBox 90 | Friend WithEvents lblStatus As Label 91 | End Class 92 | -------------------------------------------------------------------------------- /ATOMBIOSReader/ATOMBIOSReader.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kizwan/ATOMBIOSReader/b7b995c49f78fce8115771ec09bc1cfdde55ca7d/ATOMBIOSReader/ATOMBIOSReader.jpg -------------------------------------------------------------------------------- /ATOMBIOSReader/ATOMBIOSReader.resx: -------------------------------------------------------------------------------- 1 |  2 | 3 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | 78 | 79 | 80 | 81 | 82 | 83 | 84 | 85 | 86 | 87 | 88 | 89 | 90 | 91 | 92 | 93 | 94 | 95 | 96 | 97 | 98 | 99 | 100 | 101 | 102 | 103 | 104 | 105 | 106 | 107 | 108 | 109 | text/microsoft-resx 110 | 111 | 112 | 2.0 113 | 114 | 115 | System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 116 | 117 | 118 | System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 119 | 120 | 121 | 122 | 123 | AAABAAUAEBAAAAEAIABoBAAAVgAAABgYAAABACAAiAkAAL4EAAAgIAAAAQAgAKgQAABGDgAAMDAAAAEA 124 | IACoJQAA7h4AAFpaAAABACAA8IIAAJZEAAAoAAAAEAAAACAAAAABACAAAAAAAAAEAADDDgAAww4AAAAA 125 | AAAAAAAA/////////////////v7+//v7+//39/f/8/Lx/+7u7v/u7u7/8fHy//X19v/6+fr//v7+//// 126 | //////////////////////////////39/P/19/f/8PDw/+/p5v/u5uH/7Ojm/+7t6//4+PH/+/z4//r6 127 | +//+/v7///////////////////////7////8/v3////+//7//v/n////1vb//9Xs8v/m7/T/4N71/+no 128 | 9v////7//f7+//7+/v/////////////////9/v/////9/87u+f9tyPf/NXqi/xIwQP8TJVn/MjTQ/ysf 129 | 0v8uIsj/cGzN//Hw9////////v7///7////9/f7//////6na8v8on+r/CzRW/wAAAP8AAAD/Gg59/yYR 130 | 6/8iGNn/JCDa/wwCzv93bc3///////z8/v/7/f3//////8Hg7/8em+z/Ejda/wcAAP8cR17/H2eJ/yVi 131 | mv8iNML/IhHW/ykg1P8WEKP/c3fM///////8/f7//f7+//79+f9Os/P/GGKX/xkyQ/8ir97/HdH//x3S 132 | //8d0/z/HMX3/yFu6P8TCl//AAAA/1yYvf/8//////79///////N6/n/I5jZ/ypukP8ryvL/M9T2/y/M 133 | 7P8Z1/f/FtP1/yPF5P8x2fb/J3eH/wAAAP8cd63/zfH//////v//////qt/1/xaW1P8fwe//QMjk/4yQ 134 | lf8mKi7/G87j/zjo/v/P3+P/ore+/z/Q6/8dVmn/GIW4/6jj+/////7//////6Pc8P8Rt/D/Es32/4HH 135 | 2P+xoKH/IQwN/zK1xP9Mz9r/jnZ1/+bR0f9owdX/Hsfu/xav4/+g3vP///////////+76vf/Fr/y/w3Q 136 | 9/+DwdH//vPw/6OQkP9kxtL/M4SO/wAAAP+voZ//hs3f/wnR9v8TwvH/uuf3////////////6vn7/y/J 137 | 8v8T2fv/YMLZ/9/l6//e8/n/cOHy/1y7zf9UUVv/sLO7/2TQ5P8U2fn/Lsjx/+f5/P//////+v7+//// 138 | /v+G4fb/Jdf2/5L2+/9u1O3/YtHp/470+v+O8/r/X83m/3Xf9P+U9vr/JNr3/4Lh9f///////P7///7/ 139 | //////7/9/39/2fi9f+C6fP/t+/v/7////+0+f7/uPr+/7////+y6uv/hvD5/2Th8//0/Pz///7///7/ 140 | /////////v/////////v////juLr/1eAhP+TvsH/t/v//7Lx9f+Bo6f/VJKY/5Xy/P/t+vv///79//3+ 141 | ///////////////////9//7//f39///////R3d7/j6ao/6r3/P+g4ej/h6Ol/9Py8//9/////v78//z+ 142 | /f///////////wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 143 | AAAAAAAAAAAAAAAAAAAoAAAAGAAAADAAAAABACAAAAAAAAAJAADDDgAAww4AAAAAAAAAAAAA//////// 144 | /////////////////////////v7+//7+/v/9/Pz//Pv6//v6+v/6+fn/+vr5//r6+v/7+/v//Pz8//39 145 | /f/+//7///////////////////////////////////////////////////////7+/v/7+/v/9/f3//Ly 146 | 8v/t7Oz/6ebl/+Lh4P/f3dz/3t3c/+Dh4P/m5+b/6+zr//Hx8f/29vb/+/v7//////////////////// 147 | /////////////////////////////////v/8/Pz/+Pr4//X39f/x8fH/6+7s/+zo6f/q5uP/5+Xj/+jn 148 | 6P/q6u3/8fDv//T18v/19vf/+/r7//7//f////////////////////////////////////////////3/ 149 | /v////7//P7+//z+/v/////////9//3//f/////////////////////////////////////////+//n9 150 | +//7/v3///7///////////////////////////////////3+/v/6/f3////9//v//v/N7vb/lOD7/3jF 151 | 6/9joMP/W4ee/2mQtf+Mlt//d3HX/3Fp1/+TjNb/19fu///////8/fz//f/+//////////////////// 152 | //////////////38/f//////1vH3/2vD7/80q+//ImiV/wkbL/8AAAL/AgES/xcTof8YDtf/GwzQ/xgK 153 | 0P8YCcX/IBu3/5mT1f////7//f7+/////////////v///////////////f7+//////+54vL/L6Tn/yOU 154 | 4P8ZN1T/AQAA/wECA/8AAAD/HBtw/zAo8v8pG+D/Jhrd/yUe2f8rJ9v/JBzT/xQLtv+7t+D///////39 155 | /v///////f7+//3//v/8/P7////+/7vg8/8clN3/JZTi/xoxSv8AAAD/AAEC/wEAA/8AAAD/DwtK/yYV 156 | wv8hFNT/JRvc/yUe1/8jHtP/KSPe/xYIw/91aMP///////z8/f////////7+//3+/v////7/4vT4/zGV 157 | 1f8enPD/I0hr/wAAAP8OGSP/Ilhz/y2Gr/8sksX/Lo2z/yZmpf8ZMML/HxHS/yIY2f8oHs3/HhOR/x4j 158 | nv+suef///////z9/v///////f39//r8/v////7/ebjj/xGZ8P8xd6P/AwAA/yJdeP8st+f/J8v//yDL 159 | /v8ZzP3/HM7//yXO/v8mt/j/HmDb/yAYxP8WEmP/AAAA/xAtR/+KzfH////+//3+/////////f78//// 160 | ///f8/j/LZzh/yqg5P8ZJDb/LYOo/yfR//8Uyvj/EMr3/xPO8/8ZzfX/Fs71/xPO+P8U0Pn/JdL//yV9 161 | u/8DAw3/AQAA/wohNf85nN3/3fL5///////9/v//+/38//////+v2e7/G6bv/zF2nf8uia3/J9f//zfR 162 | 7P89zuj/QMjn/ynV9f8W2vv/F9z6/ynR7f82xeP/MMnn/0Tn/f8ueo//AAAA/w4lOf8inuT/qdrv//// 163 | ///7/P3/+v3+//////+J0O3/FJjf/ymRwv8fzP3/IMzu/2mru/+OmqP/Nywt/y6Ilf8h8P//E978/2/I 164 | 1v+3wcf/kqyz/1qruf864v//GkZX/xIqOP8isvX/hcfn///////6/f3//P3+/////v95yOr/Eqno/x6+ 165 | 7f8c0Pz/NLXU/7rAxP+Pe4L/AAAA/xk6P/8r8P//JN/z/8Pq7f//8u//7+Pq/5ytsf8ox+b/K7vf/y9y 166 | kv8YufX/cMXm///////6/v3//P3+//////97zer/E7bv/xrJ9v8Y1Pn/T67F/+3m6/+UjpD/Jhwc/3Vz 167 | d/8kzt3/ReXz/2NkaP9RPTv/29HR/9rZ2/9Hs87/F9X8/ybA7f8Qt+3/es3p///////8/f3/+v39//// 168 | //+R3fH/FLnv/x7K+v8S1vz/WbHC/+fk4//t8O//dmNk/1dWXP9S2eT/P7bC/wAAAP8AAAD/gXh5/+7r 169 | 7P9Lrcf/E9j+/xnP9/8RvO7/k9nx///////8/f3//P3+//////+/7Pb/G7/v/xfR9P8S3P3/RazL/+jf 170 | 4//+/v///vr4/8Lb3/9m3+//Rq+9/19YX/8tJSH/h3x8/+vs7v80rsn/Ft7//xjP9P8cv+7/u+r3//// 171 | ///9/v7/+f7////+/v/s/Pz/Scvv/xPL+P8i4Pr/Tc7j/4+90P/k7e//8Pn8/3zI4P9o4/H/beb0/0p3 172 | kv9bTlT/0tPX/4rA1/9S1Ob/I+H5/xLL+v9Fyu//6/z8///////+/////P79//v8/v//////nuf1/w/H 173 | 9/864Pj/kPz9/2XO5f9WweP/UsXo/1/Y7P+V+fz/k/z//1bN5f9Qv+L/Wczk/2jU6P+R/f7/OeL5/w3J 174 | 9P+b5/T///////7+/////////v////z+/v/9/vz/9f/+/17a7v8w2vT/pPz+/7D9//+U8/v/kPP8/6X9 175 | /v+n9/3/qfb+/6j9//+K8vv/lvT7/6/+//+n/P7/Mt31/1TZ8P/0/v3///7///7////+//////////// 176 | ///9/////////+H7/P9O1/H/du/7/6vd4v/C9fb/vf3//7T4/f+z+f//tfn//7T2/P/A////teLj/7Lt 177 | 8P907/v/Tdju/976/P///vz//f3//////////////////////////////f/////////b+Pj/ffP//zmE 178 | j/9deHr/y////8D5/P/B+f3/vPr9/8f+//+35eb/NlFT/2XQ2f9y6fb/3fn7/////v/5/f3///7///// 179 | //////////////////////////////z//f///v3/8f7+/7v3+v9ceXz/N0NH/329wP+s////q/n+/1uA 180 | hP8tQEf/Z7C6/7b7///w/Pz///7+//z++f/8/v3///////////////////////////////////////7+ 181 | /v/8/v7//f78/////v/9/v7/0drd/7Hs7v+s8/n/rfL6/6ne4v/T6Oj//P////7+/f/9/v3/+/78//7+ 182 | /v/9//7/////////////////AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 183 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKAAAACAA 184 | AABAAAAAAQAgAAAAAAAAEAAAww4AAMMOAAAAAAAAAAAAAP////////////////////////////////// 185 | /////////////////////////v7+//79/f/+/v3//fz8//38/P/9/Pz//f39//39/f/+/v7//v7+//// 186 | //////////////////////////////////////////////////////////////////////////////// 187 | /////////v7+//39/f/7+/v/+Pj4//X19f/z8vH/8e/t/+7s6//s6ej/6ujn/+ro5//q6ur/6+vs/+7u 188 | 7v/x8fH/9fX1//f39//6+vr//f39//7+/v////////////////////////////////////////////// 189 | ///////////////////9/f3/+fn5//b29v/y8vL/7e3t/+rp6P/m4+P/4N7d/9za2f/Z19f/2dfW/9na 190 | 2P/e393/5OXj/+jp5//t7uz/8fHx//X19f/5+fn//f39//////////////////////////////////// 191 | ///////////////////////////+///+/v/9/f3/+vz6//j7+P/49/f/9fT0//Dz8P/v7/D/8Ovt/+7u 192 | 6f/s7Ov/7e3t/+7u8P/w8PL/9fPz//f19P/2+fX/+vr6//38/f/+//v///7+/////v////////////// 193 | ///////////////////////////////////9//7//P7+//7+///+//7/+//9//z9/v///P7////9//// 194 | +/////z////5/////v///////v/+//7//f/////////////////+////+fv5//v9+v/6//3//P7+///+ 195 | //////////////////////////////////////////////3////9//7//v/8//39/f/8/P////////7/ 196 | ///i9vr/we36/7Lr/f+y7P//uuX6/7/l8//S7vj/6Ov4/9PQ8//Bw+7/1M/y//Hu+f///////v7///v8 197 | /v/9//z//f/9///////////////////////////////////////////////+//z8/v/4/f7//v/7//j/ 198 | ///F7fb/esnr/0/C7f9Gqdr/M3Cf/xlEZv8NLET/CSZO/ylEsf80Nsf/KyDC/yMZyP8tHcL/PTe5/3l7 199 | y//i4fT///////z8/P/9/v7////////////////////////////////////////////+/v///fv8//// 200 | ///a9vz/ecXq/y2m6v8spe7/LGaV/w0XJP8AAAD/AAEA/wAABv8kGYX/JxzY/yIT3v8pGdj/IxnZ/yUW 201 | 1f8iEs//Egy8/zQtsP/Jxuj////+//z9/f////////////////////////////////////////////n9 202 | //////7/wer4/0Sq4/8bmer/M5fc/xs0Tf8AAAD/AAIB/wMFCP8AAgD/ERJK/y8n3P8mGt3/KBne/yQY 203 | 3f8hF9b/IhrX/ygi1v8qIdT/GA3H/zoxtP/r7Pb///////7+//////////////3+///8//7//v/+///9 204 | ///8/Pz//////7zj9f8znNv/EpPl/zSS0v8VIzf/AAAA/wYHCP8CAwP/AQEC/wAAAP8PEEr/LSng/yYf 205 | 4f8kGt7/Ihjc/yYc2v8mJtv/JibZ/ygj1/8hHs//Ggyy/6OZ0////////P39/////////////f79//// 206 | /f/7//7//Pz9//7//v/O7vf/Npna/wmP4f84l97/GSlI/wAAAP8BAgP/AAAA/wUFB/8LESX/CBsr/wsT 207 | L/8gFob/Hg+m/x4V0/8nHNn/JBrY/yEY0P8iFc3/IxnS/yse1/8XB63/lI/R///////9/P3///////// 208 | /////v3///3///3//f/7/fz/9P///1yq2P8Phtn/L6Tx/yRLcP8AAAD/AQAB/xMjMP8saov/NJ7E/zmw 209 | 5v81suz/O7Xf/y+XwP8iZaz/FS/H/x4S0f8iGtX/IhnX/yogx/8fGIv/Fg92/z9avv/Z5fb///////3+ 210 | //////////////7+/P/8/P//+/77/////v+o0+z/FIfY/yOk8P85fKr/AAAA/woRG/8qd5X/Mr/t/ynK 211 | //8gxPz/GsP3/xbE9/8Zxfj/Isr7/yzJ//8nq/j/GljW/xQUx/8uIsz/EhBb/wAABv8BAAD/M3Kn/6bd 212 | 9P///////P7+/////////////f/8//39///8////8/78/06j3v8QlOv/PKnq/xAbJf8WKTn/PK7d/ybM 213 | //8Uwvb/GMLw/xfJ8P8azPL/Fsz1/xXL+P8Wyfb/FMfy/xzJ9/8uyPz/K3zg/xAVZf8AAAb/AwYJ/wAA 214 | AP8cXIr/Vazm//D5+//9/////f////////////z/+v79//////+85PT/JJPW/yu0+P8rXH3/HDJG/0DF 215 | 9f8axPj/HsXt/xvN8/8V0P3/E9P7/xXT+f8e0fr/GNX3/xfV+P8Z1f3/FtH5/xfK9v8s1P//KoOd/wEC 216 | B/8GBQf/AAAA/x5Zhf8uouf/uODv///////7/f7////+//7//P/6/f7//////5XN6f8SnOj/NqTb/ylQ 217 | bP83we3/GMX4/znW9f9L2ez/RM7p/0rD4f88yeX/INz9/xTb+f8V3Pr/I9r3/zrG3v9Bx+P/O8vo/0LW 218 | 6v9L6///MHaM/wEAAP8AAAD/IWOL/yGm8P+Kyeb///////n8/v///f3//P/+//3+/v/7////cMDj/xil 219 | 7/8ggbX/Mana/xrJ/P8b0fP/TMDb/2+Ypf+Jn6n/TEdI/ytKUP843/X/F+P5/xPi//831fH/kri8/6W2 220 | v/+HrLX/ZJqg/0XI4f8/3v//JFVq/wAAAP8rf6P/IK/2/2654P/5/////f79//z+/v/7/////P79//D/ 221 | /f9ZueP/Gqft/x2e0P8hv/b/Gcr3/ynO8v9Xl6b/ycPF/4Jud/8EAAD/AAAA/zOuwv8g8P//GeT8/1vQ 222 | 5v/i8Oz/7ert/9fS3P+1s7X/TKG0/x3V/P84x+v/FSIw/zCUuv8Yt/j/V7Te/+/+/v////z/+f/+//7+ 223 | //////7/9P/9/1y44v8UsvD/HMf1/xnI8/8h0/v/OLrd/5Orsf/25+7/YlRZ/wAAAP8PAwP/K3OA/yr7 224 | //8c4e//lt7m/97Y0//czMj/9/D1/9/b2/+Cq7L/KsPj/yTa//8ulrz/Mq7Z/xK49f9SueD/7v7+///+ 225 | /f/7//7//P/////////u//7/XsLl/xm27v8awvb/GMrz/xvZ/f87sMn/tb3D///9//+If33/BgAA/76s 226 | rv9EbXf/Lur5/znq+v9hhIz/JRca/zUhIP/EtLT/9/X1/625w/82ttb/GNv8/x3E8v8dwu3/Ernw/17A 227 | 4v/z//7//v7///7+/f/7//3//fz///r///9u0O3/F7ju/x3F+f8czPn/Fdr//0Ctw//EyMn/8/j3/+jo 228 | 6P9MOjz/VkRF/y1NWv9T8fv/S9vq/wgYHv8BAAD/AAAA/2VXXP/6+fb/tsLK/zatzP8Y3f//F876/xrM 229 | 9f8Uuu//dMzr//n////8/f///v79//7+/f/6/P///////5fe8f8XufD/GMz0/xjQ+P8X3v//NqrF/8LI 230 | zv/49PX//f///+3o6f+yrK3/kMHI/1/i8P9Z2OP/Chkk/zgtLP8DAAD/UUNG//z79/+tvMb/LbHO/xng 231 | //8Xzvf/F8/x/xa77/+V2/L///////v9/v/+//7//f3///79//////3/w/H4/yu+7f8VzvP/F9P0/xni 232 | /v8qsdf/pbvN//n0+P/z9fv/+Pz8//////9yvdL/Y+Hy/2rk7/83WnD/yLi3/xgTEP+Id3n//////4av 233 | v/8pwNz/GuL8/xvS+P8Wzfb/Lb7s/8Lv+P/+/////f3+/////v/5/v7/+v7////9/f/s////YNDt/xrG 234 | +P8Z0/n/JN72/13n9f9WqcL/tdXf/+rz7//z+fr/rtrq/0K00P9/9v7/e/b//z+fwv8xPk//XVRa/+ro 235 | 6/+r0eD/UqnJ/2rv+P8k3vT/FtP7/xnG+P9Zz+3/7P/+//7////+//////////3+/P/8/v///fv+///+ 236 | //+t7fX/IcX0/xTR/P873/b/j/7//3Xh7f9Gsdj/VL3i/1fB6P8/u+D/c+n1/5X5/P+Q+vv/cer3/zit 237 | 1v9fxOr/V8bg/0e31P985/b/i/79/zri9/8S0vz/Icjw/6nr9P/+/////v7////////////////+//z+ 238 | ///9/vz//P37/+////9u2u//E87w/03l9v+Z+f3/o/n+/4/y/P9v4fX/Z+D2/4f4/P+h+v7/nvX8/6D2 239 | /v+h+f7/hfb//2Lh9P9r4vL/kvf7/6H6//+e+v3/T+f5/xLO8/9l2+3/8f/////+/v/+/////v////// 240 | ////////+////////f/7//3//////+H7+/9H1ez/Mtf2/5v9/f+y+fz/tPz//7H8/f+0/P//rPr9/6v4 241 | /f+t+f7/rfj//7D3/f+r+v3/rfr//7f6/v+1/P7/svf8/579/f8x3PL/QtPv/9T6+////v7//f3+//// 242 | ///+///////////////////////////////+/////////8b3+/9E0u//Y+f4/63w8/+kzdP/xv///7Pz 243 | +P+19/v/t/r+/7T5//+2+v//t/j8/7Pz+v+4/P//t+fo/57S1f+2////XOP1/0TU7P/H9vv////9//z9 244 | +////f/////////////////////////////////////////////8/v///P///8n5+f9h4e7/Y9Lj/xgr 245 | MP+jyMj/2P///8f8/f+8+Pz/vvj+/7n5/v/A/P7/z/7+/9n///9EU1L/VIeK/3L3//9Z2Oj/yfn7//7+ 246 | ///4/v7/+v38///9//////////////////////////////////////////////7//v/+/f3//////977 247 | /P+f9///VaCl/xAgJP9uiIz/fqSn/8L9/v+8+vz/w////57Q0P+Clpj/O05V/xZFU/9y5vD/jOrx/+D+ 248 | /v///f///f38//3/+v/8/f////7//////////////////////////////////////////////v/+//z/ 249 | +//8/f7///3///P9/f/m////pb29/0FESP9GcXb/jff5/5Du9/+f+P//c73E/yI9Qv9ZeX3/sPH0/9T7 250 | /f/6//7///3///v+/f/9//n//f/7//z//f/+//7///////////////////////////////////////// 251 | ///+/////v3///3+/v/6//v//P78//39/f///////v///+X+/v+99vj/vPP4/7fy9//B+fz/5v////3/ 252 | ///+/v3//v78//39+//8/vz//P/9///9///9/v///v/+///+//////////////////8AAAAAAAAAAAAA 253 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 254 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACgA 255 | AAAwAAAAYAAAAAEAIAAAAAAAACQAAMMOAADDDgAAAAAAAAAAAAD///////////////////////////// 256 | /////////////////////////////////////////////////////////////////////////v7+//// 257 | ///+/v7//v7+//7+/v/+/v7//v7+//7+/v/+/v7//v7+//////////////////////////////////// 258 | //////////////////////////////////////////////////////////////////////////////// 259 | ///////////////////////////////////////////////////+/v7//f39//z8/P/8/Pz/+vr6//r5 260 | +P/59/b/+fj3//n39v/39fT/9vX0//b09P/39fT/9/X1//b29v/39/f/9/f3//j4+P/5+fn/+vr6//v7 261 | +//8/Pz//f39//////////////////////////////////////////////////////////////////// 262 | ///////////////////////////////////////////////////+/v7//f39//z8/P/6+vr/+Pj4//b2 263 | 9v/z8/P/8fHx//Hv7v/u7Ov/7Orp/+nn5v/o5uX/5+Xk/+bk4//m5OP/5uXk/+Xm5v/n5+f/6enp/+zs 264 | 7P/u7u7/8fDx//Pz8//19fX/9/f3//n5+f/7+/v//f39//////////////////////////////////// 265 | ///////////////////////////////////////////////////////////////////9/f3/+/v7//j4 266 | +P/29vb/9PT0//Hx8f/u7u7/6+vr/+ro5//m5OP/4+Hg/9/d3P/c2tn/2tjX/9jW1f/Y1tX/2NfW/9na 267 | 2f/d3tz/4eLg/+Xl5P/n6Ob/6uvq/+7v7f/w8fD/8/Pz//b29v/4+Pj/+vr6//7+/v////////////// 268 | //////////////////////////////////////////////////////////////////////////////// 269 | ///+/v7//P38//r6+v/4+Pj/9vb2//T09P/x8fH/7+/v/+7s6//r6ej/6efm/+bk4//k4uH/4+Hg/+Lg 270 | 3//i4N//4eHf/+Lj4f/k5eP/5+jm/+nq6P/r7Or/7+/t//Hy8P/z9PL/9vb2//j4+f/6+/v//f39//7+ 271 | /v////////////////////////////////////////////////////////////////////////////// 272 | /////////////////f////3///7///7+/P/7/vv/+f37//v9+P/7+/j/+vb7//j49f/y9vP/8vb2//Py 273 | 8//17/L/9vLw//P17P/x8u//8/Ly//Tz8v/y8vX/8vL2//X09v/69/b//Pj3//z69v/6/fX/+v35//39 274 | /P//+////v77//7/+v///v/////9/////f///v////////////////////////////////////////// 275 | //////////////////////////////7//f/9//3//f3///3+/v////3//f/9//v//P/8/v3///z///79 276 | +//7//v/+v/5//r9+P/+/P3//vr4//z89//7/P3/+/v8//z6+//4/P3/+Pz8//v9+//+/Pv//vv9//v8 277 | /f/4/fz/+v39//v+/f/5/fr//P/4//z/+v/7//3/+/7+//79/////f////////////////////////// 278 | //////////////////////////////////////////////v////7//////78/////f/+/v///Pz///v+ 279 | ///8//7///39///8/v/++////P/9//v//f/5////+f/+//n//v/7/////P////3//v/6//z/+//7//// 280 | /f////////////////////////////39///6+/v//Pr8//v9/v/4//3/+P/8//3+/f///v7///////// 281 | //////////////////////////////////////////////////////////////3//v/9/v7//v78//7/ 282 | +//+/vz//fz+//v8///6/v7///////n////i+/7/w/D7/6Xd9P+R0uz/jtrz/5Pd+/+d2Pb/qNvw/6zd 283 | 8P+/5/r/2+7+/+Pi+//Lxvb/r7Ls/6us5/+/t+3/3Nf5//Xx/P///////fr///35/v/+/f////39//3/ 284 | +//8//z///////////////////////////////////////////////////////////////////////// 285 | /f/+/P3/+f3///n+/v/9//n//f/7//n//v/r////x+/5/5DV6/9XuNr/QbXf/0u17P9So9//NX6t/ypi 286 | jf8YSGz/DjhS/woyYP8jSJz/PlXG/zEwsf8tJLj/IR2//yAZv/8rG7v/Myau/05Lr/+QktH/4OL4//// 287 | ///9+f7///z///3+/v/7//7///////////////////////////////////////////////////////// 288 | ///////////////+/v/++/7//Pv///r+/f/2/fz/7f///8bx+f9+yub/P6ni/yah5v88s/L/R6HP/ytc 289 | ev8SHTX/AwQO/wAAAP8BAQD/AAAM/xUQWf8iIrL/GBfR/yMY1/8qGtP/KRrY/ycY2P8oFtT/KBjR/xsV 290 | xf8PDrH/NjWm/6um2//++///+/37//3+/P/9/f7///////////////////////////////////////// 291 | //////////////////////////////7+///9+/z//v38//j//f/f/P7/lNLv/0ao4f8ineb/JKXy/0Gr 292 | 6v8yXoz/Cg4g/wAAAP8AAAH/AQIE/wIGBv8AAAn/EQ1T/zoxyP8rItr/Jxrj/yoZ3f8qGtf/JRnY/yAZ 293 | 1/8iGdP/KxnT/yoa0f8pH9D/Hxm//xsRo/+SjM///P////f89//9//7///////////////////////// 294 | //////////////////////////////////////////////n+///6/fz//f/7/8v0//9nu+X/M5/j/x+b 295 | 7P8ooe//QpPL/xQsRf8AAAT/AQEI/wIFBv8BBAX/AQEG/wEBAP8AABn/KyOb/ywg3f8oGdv/KRjg/ycX 296 | 3/8kF93/Ihnb/yAY1/8gFtT/IRTS/yIXyv8hFMr/JBnO/yUby/8eEaX/tLPe///////8+v3///////// 297 | /////////////////////////v////7////////////////+/////v7///////j9///y/v//yO76/1Gs 298 | 4P8cmOT/GZjj/yic4/8+hrr/Dxgp/wAAAP8FAwX/BAIH/wEEAv8AAgP/BAEE/wIBAP8EBC//My+9/yAc 299 | 3f8iHtf/Ixza/yMY3/8kF9//Ixfb/yEW0/8nINv/Jy7k/y4y4/8tKuH/IhvP/yIZzP8eEL//Tkmp//fx 300 | /f//+f///v/////////////////////////8/v7//P7+//z+/v/9//3///7+///7///+/f3/+vz7//v/ 301 | ///J7Pn/S6Ta/yKW3/8Xkd7/JZfk/z2Guv8LEiL/AAAA/wIEBf8DAgT/BAIE/wMGA/8CBAb/BAQE/wMF 302 | AP8DBCT/LS+v/yok3v8mHNf/Ixvf/ycZ3v8kGdv/IBnb/ysi3f8qKNv/HiHV/yQb0f8nINf/JiPV/xoZ 303 | yP8nGsb/LBub/87F7f///////v7+///////////////////////9/v///v/8/////v/7//7/+/7+///8 304 | /f/7/Pz/8/38/9f3/f9aqNr/FJDf/xCR3f8olN//Q43O/w0VMP8AAAD/AQQI/wIFBf8DAgX/AAAB/wAA 305 | AP8AAAH/AAAF/wAAAf8AAAH/CAZP/y8hvP8yIsj/IRnQ/x8W2v8jGdn/JBzX/yYa2f8fGM7/IhnP/yMX 306 | zf8dFsr/HRTM/yMYy/8sG8T/JRae/7y77f///////v7+///////////////////////+/f7////8///+ 307 | ///+//7/+f/+//z9/f/7/Pz/6P///3G32v8diNP/E5Hm/xST4v9DoN//FiVI/wAAAP8DBgb/AAMB/wAA 308 | AP8BAAr/CBkm/ydMXf81YIb/Km2d/yt1n/8ybIr/MliB/xMrav8GCFj/EBid/yAe1/8rGtf/JxnS/yAU 309 | 2P8jF9f/JhjR/yMZz/8pH8z/Lh/J/y4exv8cF7X/Oz2m/+bk9////v///v7///////////////////// 310 | //////3//v7+//79//////3/+//7//n8/f/+////qNjs/yqJzf8ekOD/GZDh/z+n7f8nUHX/AAAC/wMH 311 | CP8AAAD/AQUM/yJDWP8/jbT/Qbfi/znE8/85yP7/NMP9/zbD//83yfr/OM32/zm76v85ndj/IGTL/wsl 312 | xP8ZFtH/JR3X/yAb0f8gGdb/JRvP/ywkuP8gG4D/DQhR/w4NVv89Yr//nMPs//z////8+v7//f////3/ 313 | //////////////////////r//Pz///z9///+//3//v/4///+/v/h+Pz/Tp3S/xeO3v8XleD/MKXr/z99 314 | rP8AAAr/AgMD/wAAA/8bOk3/Op6//0HG9f8uw/v/Hb3z/x668/8ZuvL/Fr7y/xi99f8av/D/G8Dt/yPA 315 | 9f8swfv/MLz//yqY8v8RSM3/DBjD/x4c0f8oGtT/LyW1/wwLVP8AABP/BAIH/wAABv8xY5v/XKna/9P0 316 | 9v/4/////f////3////////////////////8//r//fz///39///6//7//f36//////+Yy+r/HYfY/xaY 317 | 7P8cnOn/Sqfd/xIiNf8AAAD/Aw0b/zN6m/8/yPX/H8X4/xG+8P8WwPL/G8Tz/x/F9P8ex/T/GMrx/xPJ 318 | 9v8Xx/r/G8b3/xrG9P8bxfL/HcD2/yHE/v82vP//JmnZ/woauv8vKcH/FxNd/wAAEP8EAwX/BAYD/wAA 319 | AP8qVXv/MZfe/43F4f/8////+v7+//3////+///////////////9//z///7///3+/v/4/////f///+T7 320 | /f9UpNr/F5Hl/xqa6P88sfj/MWOI/wAAAP8XJTT/RaHN/zrL//8cuvL/Gb/2/xnF+P8cxvb/Gcv0/xTO 321 | 8v8XzfP/Gsz1/xXM9v8Tzff/Fsz4/xTM9/8SzPf/Gcr3/xrG9v8exfT/Ocb//zCK3f8IHG3/AQAT/wID 322 | C/8BAQn/AQYF/wAAAP8ZQmH/MaDl/1Wf1P/m9/7/+/////v////9//////////////////3////7//v/ 323 | /v/9/v//+v///7Dj8/8wktH/H57l/yGn6f9Optf/CAoY/xkqPv9QuuH/LMf6/xe87/8exPL/Hsnw/xjM 324 | 8v8XzPb/Fcr5/xPR9/8U1Pf/GtH7/x/R+f8Y1PX/F9P5/xnT+f8Y0fj/GM31/xfO8/8cyvb/GML2/zPQ 325 | /f81krT/AQsV/wEAA/8GAgr/BwQG/wAAAP8SN1n/Oqfr/yuRz/+w4PL//f////v+///9/v7///////// 326 | //////z//f/9//n////8/v3/+f///4LF5/8jld3/HKHk/z289v8oU23/FSQz/1HD7P8mw/f/GL7z/x3G 327 | 7/8v0u7/KtPv/yLQ8v8e1Pv/I9f//x7W+v8X1fv/GdT+/xvW+f8Z1/j/F9n6/xjY9f8k2fr/Itf//x3V 328 | +v8f0fb/J873/yvL6v8/2Pf/OJOs/wADCf8DAgH/BgUE/wAAAP8PNlj/Oqzu/xmV2v95w+P/+/////n9 329 | /f/6/v////3////+/P////v/+//+//z+///9/fz/9f///2az3f8VmOP/Ha7y/0Of0P8bM1L/Sbrf/yHE 330 | +f8ZwvL/JMjz/1Pm+v9e4vH/UtLr/1bN5v9cwtz/TavD/0LK4P8o3fv/Fdr7/xPf+f8V3/n/F9r8/y/c 331 | 9v8+wdP/TbrR/1PG4P9Kzeb/TtTp/1jl8f9G4fb/R9v5/zl3jP8AAAD/AggH/wAAAP8UQ2H/OLPy/xya 332 | 4v9bsd3/8P////n+/f/5/v7///z///39/P/+//7//v////7+/v/+//7/3fn8/06q2v8Xnuj/Lbr7/yJz 333 | o/83mcP/Kcj+/xnA9P8Sy+7/Ntr8/1rJ3/9Li5v/bZur/3qepv9ibHD/QUFF/zNxev9H6Pz/Ft/3/xfj 334 | 9/8V4vv/F+D//0TV7v92srj/m7K2/4+vuf92p7T/YJig/0aWn/9Z2Ov/NtTy/07Z+f8rVWv/AAAA/wAA 335 | AP8hWnf/M775/yGg5v9Mp9r/2PP6//r////7/v3///7///v//f/6////+/7+//n+/f/4////wO/0/zul 336 | 2f8hrPX/HZLR/wVvov8ruvD/Ib/6/xrK8v8X0O//Os3x/0eLov+RmaH/xLzC/4Fyef8uIB//BwAA/wQL 337 | Ef9EwdX/Jun//x3h+v8Y4v3/H+H//1LL4P+20tX/0tXX/8nM1v+8w8z/sbe2/4eXnP9Hm7f/M9T2/xvN 338 | 8/9Hyu3/ESg2/wAAAP8wc5L/LMX+/xyn6f8+odf/wOrz//v////9/vz//v79//r//v/8/////f////r+ 339 | +//7////uOry/zSi2v8esPX/Ja3m/ySt3P8jwvb/HMX5/xXM8/8v1v7/OK3I/3aZnf/DxsX/z8bP/0s3 340 | Qf8EAAD/CAkG/wAAAP8xiJr/NPP//xXk+/8Z6f3/OOD6/3DH2f/f8+7/7fDp/+nk6v/d1uT/zs7V/7q/ 341 | wP9dlJ7/McPe/x/R+P8s2P//RaG+/wAEFP84j7P/J8P5/xiv7v8zo9r/suXx//z////+/vv//f/9//n/ 342 | /v/+//////7///7+/P//////vOfx/zel2/8Zs/P/GL3w/xvG8/8ZxvT/Gsv0/x/O9v9B0f3/Qpqt/6u1 343 | tv/f19r/1MjS/zIkKP8GAAD/CAQF/wAAAP8UREz/SPD//xLn+v8f8f3/O87d/6ff5//+//z/6+Xc//rx 344 | 7v/77/f/497k/9LS0P+YsrL/MqW7/zPa/f8Yy/H/N9D3/yprjv9Ktd3/Hb3x/xq29P8up9n/r+bx//v/ 345 | ///9/vv//f/+//v//v/+//7//f7///7+/v/7////uuny/zqq2/8et/L/Gbzx/xTD9P8Xyvb/G87x/yHY 346 | +f8zweT/Y5+u/8rI0f/t3ej/8eXn/zgmJf8AAAD/Jx0e/29kZP8eLzj/Sdfq/yDu//8q8v//SsvW/7TP 347 | 0v+He33/bFZY/5h8ef/q3dv/8vPz/97c2/++wsn/T5yz/zbT8/8c1Pb/Hcz5/xufzP8mr9r/GsPz/xq3 348 | 8v81qdr/terw//3////9/v3//P7+//7//v/9//7/+v7///7+/v/2////uu73/zyy3v8fuO7/H770/xvF 349 | +P8ZyvX/GM/1/x3b//8rvNv/dZ+o/9DY3P/e5Oj//////2lcW/8AAAD/f2xv//3y9P9JUl7/L6u6/zX5 350 | //8y7Pz/VcDQ/0BGTv8IAAP/BwME/y4ZGP+Pdnf/+vb5/+bl5f/P0dj/aJ+1/yvB5v8Z3fv/GND3/yPL 351 | /P8fyPT/FcTw/xq68/8+sN3/ve7z//7////7/v7//v7//////P/9//3/+/7////9///7////yPb8/0S8 352 | 5f8cuuz/HcD1/xnF+v8dy/n/GNH5/xrd//8os9D/iKav/9zc3P/m6un//////9bS0f8RBwj/W0tM/4+J 353 | i/8OEhf/P6Sw/1D///9Q9///LICN/wAAAP8NAwT/DAMG/wEAAP9DMTX/4tnb/+7x7v/T2Nz/aZyv/yq6 354 | 3/8Z3v3/FdT2/xbL+v8YyvX/Gsbx/xu68v9HuOL/zPT3//z////7/v///f3////+/P////n/+f7///z8 355 | /////f7/5////1jF5v8cuPD/IMP3/xjI9v8dzvv/F9H7/xzh//8oscv/gKiz/9Xb2//s7O7/9fn3//// 356 | ///Nw8X/STEx/xwRFP9fc33/WrrK/1ry/f9j+v//I2V1/wAAAP8DAgL/BgED/wUABv8fEhj/yMPA//P1 357 | 8P/R1dz/ZZqu/yu+2/8d4P//GND7/xfP+v8XzfL/HMnx/xi58f9ev+j/6P7///X+///8/v////7+//7/ 358 | /f///v3//P7///z9/////v3/9////3jR6v8fuPD/F8f1/xbN8f8a0fj/FNT4/xzj//8ltdT/bpux/9zc 359 | 3//28fL//Pn6//v8+P////7//fv8//j9/f/O6+z/Taq3/23z//9w+v//InB7/wAADf9US0z/KSEd/wUA 360 | AP8nEhX/18/O//T49f/K0Nb/VZWt/ynH5v8Y4v//GNP7/xfP+P8Sz/D/Gsrz/xy68P90z+z/8v////X8 361 | ///9/v////////7//v/+/f////7///79/////vv/+f/+/6bo9/8st+j/GMr3/xPR8P8U0/f/Etb4/xrh 362 | //8nw+r/Uo6y/9fe5f/r6+7/8/H+//T7/v/z+/z/+fv9//n///+a1uP/PKfB/3r3//939v//No+e/zxB 363 | UP/j1tr/hn94/wAAAP9EMDP/+/T2/+7w8P+/0tn/NZCq/yvV9P8V4vn/GNX4/xvS+v8Wz/P/G8f2/zG3 364 | 6P+j5fX/9P////j+/v/9/v7///7+/////v/4/v7///3///3+///+//v/+v/+/8z6/P9RxOj/IMT0/x3N 365 | 9f8d0ff/Gtn0/xrd8f9B4/3/P5m4/5rA0//e6/D/8uzw//P1+P/1+Pr/+Pv9/+n///9Xrcv/Q7/e/3/6 366 | //999v7/T7zY/ylUc/+Xj5T/i4aD/wAAAP+ynKP//fz7/9rp8P97rcf/QarD/0/r/v8f3PD/GNj4/xvS 367 | +/8azPb/G8X2/0zD5//Q9/r/+f////r+/v/+/v7///7+///////5//3/+v7///j////+/vz//Pv+/+n/ 368 | //+E3u3/K77u/x7M/v8X0Pr/Gdb5/yvb8/9s+f//ZNTi/0CYtP+aztz/2evm/+X07f/u9vT/4Pn//4zM 369 | 5f81pcP/cer2/4f3/f+E+/7/X93x/z6hx/8TKkH/Cw0Z/4+Mkf/4+/z/0efr/4vD2f87lbv/d+P2/3P4 370 | /f8t3/D/FNj7/xbQ+f8ey/v/JsLx/3ra7P/q////+/7+//7////////////////////9//v//P7///r+ 371 | ///+/f7//vj///v+/v/B9/n/Qsbp/xvK/v8Y0f3/F9P3/0Hj9/+C+fv/kP39/1zK3/85oMv/UbPd/2nH 372 | 5/9zyez/Vbzk/zKr1v9c2u3/jfv//5L2+v+M+fn/hvn9/1jU6v9BteH/VrHe/4ja+f9rxt//T7TT/zql 373 | x/9v2e7/ifn//4H8+v8/5/b/FtX6/xTS+v8czfr/RMXn/730+f/0/////v////////////////////// 374 | ///9//v///3+//7+/v///f7//vz+///8/f/t////heLx/yXE7/8b0vv/Itbw/1bo+f+Q+f7/lPf6/5X4 375 | //904Pf/SL/l/zi84/8xu+f/Pcjp/2np9/+Q+///lvT8/5f1/f+Y9v3/lvf9/4r4/P9g3vP/Psnr/y+7 376 | 4P8ywd7/RMzh/37r9/+V+f//j/f8/5P8+/9X6/r/IdT3/xrV+/8fyen/hOPx/+j////5/v7///////// 377 | //////////////////////7//v7///j//v/+/v3//v74//j9/P/1////1/79/1/S6f8e0fL/Itbw/1no 378 | +P+X+///oPb9/6T1/f+e/P7/mvv//4vz/P+G8f7/kPj//5j/+/+i+vz/ovX9/6L4/f+i9v//o/b//6T4 379 | /v+a+///hPj+/4Px/f+M8/7/l/z//6P6/v+g9/7/o/b+/5/7//9d7Pn/Idb0/x/R9P9V0uf/0f3+//z+ 380 | /v/9/f7////////////+/////v///////////////f////n////+//7////7//n//v/4////+////8D0 381 | 9/9F0eX/HNP3/0jf9f+W//3/pvr6/671/v+j9Pr/qfj9/6v8/f+s+P3/q/f+/6T6/P+n+f7/q/j+/6z4 382 | /f+s9///rfb+/6/4/f+n+Pz/ofj+/6z4//+v9v//qPP8/6z1/f+v+f3/rfj8/5j///9I5vL/HtT2/z3O 383 | 6/+v8/j/9f////78/f/+/f7////////////+/////v////////////////////////////////////// 384 | /////////v7///b///+m8PX/Oczu/zTR9v998vz/qv/9/7X4/f/F////tfn6/7b5+/+2+f3/svr9/7L6 385 | /v+z+v7/svn//7H5//+x+f//svn+/7X5/P+z+f7/r/r//7D4//+z9/v/wv///7j8//+w9/3/r/3//3fz 386 | +f8u1u7/O87r/5/s+P/u//7//P77//39/f/+/f7///////////////////////////////////////// 387 | //////////////////////////////r9/f/r////nO73/z/P6/9I2PD/kvn//7Lw9P9/nKX/yPn5/775 388 | +/+69/z/ufn9/7r6/v+4+f7/tvr//7X6//+2+f//t/r+/7n5/v+7+P//uPj//7T4+v/M+/r/h6us/6Lb 389 | 3v+2////i/b9/0TY8v9A0Ov/nez1/+z////8/f7/+/35//79/P///P////////////////////////// 390 | //////////////////////////////////////////////3+///2/f7/5v///6Tz9v9O1OP/VN/z/4ba 391 | 5v8AAAP/b4qK/9b///+39fj/uPX5/7j3+v+6+f3/u/j9/7z4/v+8+f7/u/r//7j1/f+48vz/t/L4/9b/ 392 | //+ct7X/AAEB/4O5u/+V////R9jq/0/U5/+i8vf/6P////n8/v/3////9v/8//v9/P/+/f////////// 393 | //////////////////////////////////////////////////////////////z////8/P////z+//L/ 394 | /v+4+vr/b93r/2bh8/88foT/AAEC/4Wkpv/e////0v7+/8n+/v+/+fz/wPj9/775/f+6+/3/tfr9/8n+ 395 | ///Y/f3/3f///6bPzv8IEBP/MVhf/4X0+v9O1eX/beDr/7r5+//u////+/r+//z8///7//3//P79//z9 396 | /v/+/f////////////////////////////////////////////////////////////////////////7/ 397 | /v/+//z//v7+//v+/v/y////3P7//6Xx9v+E6O3/N1le/wAAA/9MXmT/X3Z8/16Chf/J////tfn8/7n6 398 | /P+69/j/xf///3ijov9famz/YnR5/wUHEv8VNUf/btfk/2vh6v+b7fX/1f7+//T//////f///vz///7/ 399 | +v////f//f79//39/////v////////////////////////////////////////////////////////// 400 | //////////////3//v/8//r/+//7//v9////+///9v3+/+v9/v/a/f//yvb3/2aAf/8SFxn/AAMK/y9X 401 | Wv+n////mPj6/6j4//+o9P3/s////1WHjf8AAwv/AxAX/zteZf+R4Oj/pvP5/9T5+//x////+f3///39 402 | ///8/f///P/8//3/9//8//n/+v/9//v//v/+//7///////////////////////////////////////// 403 | //////////////////////////////z//v/9//7///3////+///9//3/+f7+//f8/v/1/f3/9f39//// 404 | ///l7O3/udPX/6by9f976u7/eufx/4bk8/+E5PX/fePy/5fv+v+Z2Nv/s9/d/+T////n/vz/7/79//n+ 405 | /v/6/P3///v///39///6//3//v/7/////v///v///v/9/////P/+//7///////////////////////// 406 | //////////////////////////////////////////////7+///+/P////3///v//f/5//v///76//3/ 407 | /f/9/v3/+/39//n6/P/9/v///P///+7+///n////4v7+/939+//c/fn/1/78/9j9/v/x/////P////T9 408 | /f/8/fz///37//3++//8/fr//v/7//v/+//8/v3///7////8///8/f///P/////+/////f7///////// 409 | //////////////////8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 410 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 411 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 412 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 413 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 414 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 415 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAoAAAAWgAAALQAAAABACAAAAAAAJB+ 416 | AADDDgAAww4AAAAAAAAAAAAA//////////////////////////////////////////////////////// 417 | //////////////////////////////////////////////////////////////////////////////// 418 | ///////////////////////////////////////////////////+/v7//v7+/////////////v7+//// 419 | /////////////////////////////////////////v7+//7+/v/+/v7//v7+//7+/v/+/v7///////// 420 | //////////////////////////////////////////////////////////////////////////////// 421 | //////////////////////////////////////////////////////////////////////////////// 422 | //////////////////////////////////////////////////////////////////////////////// 423 | //////////////////////////////////////////////////////////////////////////////// 424 | ///////////////////////////////////////////////////+/v7//v7+/////////////v7+//z8 425 | /P/8/Pz//Pz8//z8/P/8/Pz//Pz8//z8/P/8/Pz//v7+//7+/v/+/v7//v7+//7+/v/+/v7///////// 426 | //////////////////////////////////////////////////////////////////////////////// 427 | //////////////////////////////////////////////////////////////////////////////// 428 | //////////////////////////////////////////////////////////////////////////////// 429 | //////////////////////////////////////////////////////////////7+/v/+/v7//v7+//7+ 430 | /v/9/f3//f39//z8/P/8/Pz/+/v7//r6+v/8+vn/+/n4//r49//6+Pf/+/n4//v5+P/6+Pf/+ff2//n3 431 | 9v/49vX/+Pb1//j29f/49vX/+Pb1//n39v/59/b/9/f3//f39//4+Pj/+Pj4//j4+P/4+Pj/+fn5//r6 432 | +v/5+fn/+vr6//v7+//8/Pz//Pz8//z8/P/8/Pz//f39//7+/v////////////////////////////// 433 | //////////////////////////////////////////////////////////////////////////////// 434 | //////////////////////////////////////////////////////////////////////////////// 435 | ///////////////////////////////////////////////////+/v7//v7+//39/f/9/f3//Pz8//z8 436 | /P/7+/v/+vr6//r6+v/5+fn/+Pj4//f39//49vX/9vTz//Xz8v/18/L/9fPy//Ty8f/z8fD/8vDv//Lw 437 | 7//y8O//8e/u//Hv7v/x7+7/8e/u//Hv7v/y8O//8PDw//Hx8f/x8fH/8fHx//Hx8f/y8vL/8/Pz//T0 438 | 9P/09PT/9fX1//b29v/39/f/+Pj4//j4+P/5+fn/+vr6//v7+//8/Pz//f39//7+/v/+/v7//v7+//// 439 | //////////////////////////////////////////////////////////////////////////////// 440 | //////////////////////////////////////////////////////////////////////////////// 441 | /////////////////////////////////////////v7+//7+/v/9/f3//Pz8//v7+//7+/v/+fn5//j4 442 | +P/39/f/9vb2//X19f/z8/P/8vLy//Hx8f/y8O//8e/u/+/t7P/u7Ov/7evq/+zq6f/q6Of/6efm/+ro 443 | 5//q6Of/6efm/+jm5f/o5uX/6Obl/+jm5f/p5+b/5+fn/+fn5//o6Oj/6enp/+np6f/q6ur/7Ozs/+3t 444 | 7f/u7u7/7+/v//Hx8f/y8vL/8/Pz//T09P/19fX/9vb2//j4+P/4+Pj/+vr6//v7+//8/Pz//f39//7+ 445 | /v/+/v7///////////////////////////////////////////////////////////////////////// 446 | //////////////////////////////////////////////////////////////////////////////// 447 | //////////////////////////////7+/v/+/v7//f39//z8/P/7+/v/+vr6//n5+f/4+Pj/9vb2//X1 448 | 9f/09PT/8vLy//Hx8f/v7+//7e3t/+zs7P/u7Ov/7Orp/+ro5//o5uX/5+Xk/+Xj4v/j4eD/4uDf/+Lg 449 | 3//h397/4N7d/9/d3P/e3Nv/3tzb/9/d3P/f3dz/3t7e/9/f3//g4OD/4eHh/+Pj4//l5eX/5ubm/+jo 450 | 6P/p6en/6urq/+zs7P/u7u7/8PDw//Hx8f/z8/P/8/Pz//T09P/19fX/9/f3//j4+P/5+fn/+/v7//z8 451 | /P/9/f3///////////////////////////////////////////////////////////////////////// 452 | //////////////////////////////////////////////////////////////////////////////// 453 | //////////////////////////////7+/v/9/f3//Pz8//v7+//6+vr/+Pj4//f39//29vb/9fX1//T0 454 | 9P/z8/P/8fHx/+/v7//u7u7/7Ozs/+rq6v/r6ej/6efm/+fl5P/l4+L/4+Hg/+Lg3//f3dz/3tzb/9vZ 455 | 2P/a2Nf/2dfW/9jW1f/X1dT/2NbV/9jW1f/Y1tX/2NnX/9na2P/b3Nr/3d7c/9/g3v/h4uD/4+Ti/+Xm 456 | 5P/m5+X/5+jm/+nq6P/s7ev/7e7s/+/w7v/w8e//8fLw//Pz8//09PT/9vb2//f39//4+Pj/+fn5//v7 457 | +//8/Pz///////////////////////////////////////////////////////////////////////// 458 | //////////////////////////////////////////////////////////////////////////////// 459 | //////////////////////////////7+/v/9/f3//Pz8//v7+//6+vr/+fn5//f39//39/f/9fX1//T0 460 | 9P/y8vL/8fHx/+/v7//u7u7/7Ozs/+vr6//q6Of/6efm/+fl5P/l4+L/5OLh/+Lg3//g3t3/393c/93b 461 | 2v/c2tn/29nY/9rY1//a2Nf/2tjX/9rY1//a2Nf/2drY/9rb2f/c3dv/3t/d/+Dh3//i4+H/5OXj/+bn 462 | 5f/n6Ob/6Onn/+rr6f/s7ev/7e7s/+/w7v/w8e//8fLw//T09P/19fX/9/f3//j4+P/5+fn/+vr6//v7 463 | +//8/Pz//v7+//////////////////////////////////////////////////////////////////// 464 | //////////////////////////////////////////////////////////////////////////////// 465 | /////////////////////////////////////////v7+//39/f/8/Pz/+vr6//n5+f/5+fn/9vb2//b2 466 | 9v/09PT/8/Pz//Ly8v/x8fH/7+/v/+7u7v/v7ez/7evq/+zq6f/r6ej/6ujn/+nn5v/n5eT/5uTj/+bk 467 | 4//l4+L/5ePi/+Ti4f/k4uH/4+Hg/+Ti4f/k4uH/4uPh/+Pk4v/k5eP/5ebk/+bn5f/o6ef/6ero/+rr 468 | 6f/r7Or/7O3r/+7v7f/w8e//8fLw//Lz8f/z9PL/9PXz//b29v/39/f/+fn5//r6+v/7+/v//Pz8//39 469 | /f/+/v7//v7+//7+/v////////////////////////////////////////////////////////////// 470 | //////////////////////////////////////////////////////////////////////////////// 471 | /////////////////////////////////v////7///////7+/v/9/f3//Pz8//v8+v/7/Pr/+Pr6//j6 472 | +v/5+vj/+Pn3//f49v/29vb/9fT2//T09P/08vH/8/Lu//Dx7//v8O7/7u/t/+7u7v/u7Oz/7evr/+/q 473 | 6//v6+r/7ezo/+zr5//s6+f/7Ovn/+zq6f/s6un/6+zq/+zt6//s7Oz/7e3t/+3t7f/u7u7/7+/v//Dw 474 | 8P/w8e//8/Hw//Xz8v/29PP/9/X0//b38//3+PT/+Pn1//j59//5+fn/+vr6//v7+//8+/3//v3///// 475 | /v////z//v/9//7+/v///////////////v////7///////////////////////////////////////// 476 | //////////////////////////////////////////////////////////////////////////////// 477 | ///////////////////////////+////+/////v///7+///9/////v7//v/9//7/+//8//v/+f78//n+ 478 | /P/7//r//P74//v99//8+vn/+/f8//r2+//5+vj/9/nz//T39f/x9vX/8vf2//P19v/18vT/9fDy//fw 479 | 8//38fL/+PXw//f47//0+O3/8fPt//Ly8v/z8/P/9fPy//Xz8v/19Pb/9PP3//Dw9v/x8ff/9fT4//b1 480 | 9//59/f//fn4//75+P/9+Pf//fr2//399//7/vX/+P30//v/+v/8//3////+///9/f/++f////z///v9 481 | 9/////j//v/7//7+/v///f////7+////+/////v//v7+//79//////////////////////////////// 482 | //////////////////////////////////////////////////////////////////////////////// 483 | ///////////////////////////+//7/+//+//v//v7+//79///+/f///v7+//7/+//8//v//P/9//r/ 484 | +//8//v/+//5//3/+f/9/vz//vr///76///9+/r/+vz2//b7+f/4/fv/+v/9//r//f/6+vr/+/b3///8 485 | ////+fr/+/jz//n68f/5/PP/+f33//v6/P/7+vz/+/n4//37+v/5+Pr/+Pn9//z8///6+///+Pr7//r6 486 | +v///fz///v6///7+v///v3///79//3++v/8//r/+//7//v//v/2+ff//v/9//z8/P///f///v3///7/ 487 | +P////j//v/7//7//f/+/v7//v7+///+/f///v3///3////9/////v////////////////////////// 488 | //////////////////////////////////////////////////////////////////////////////// 489 | //////////////////////////////z//f/8//3//P7///z9///8/f///P7//////v////7///79//7/ 490 | /f/9//7/+//+//r//f/8/v7///3////9/////v3////8/////P/8//r/+//2//r/9f/8//j////7//// 491 | /v///v3///z5///9+f///v3///////z9///6/P3///39///9/f/5+/v/+v/+//f++//2/fr//f/8//7/ 492 | +//9/Pj///79///+/////v////7///v////6////9/z9//v9/f/9////+/////n+/f/0+/T/+v/4//v/ 493 | 9//7//n//P/7//r//f/5//v/+f/9//r+///8/v////z////9/////v////////////////////////// 494 | //////////////////////////////////////////////////////////////////////////////// 495 | /////////////////////////f////v////7/////P7///79///+/f///f////////////////7+//79 496 | ///8/v//+v/+//r//v/8/v7///7+///9/v///P3///7+///////9//7/+v/6//j/9//4//n/+P/6//n/ 497 | /f/7//7/+//8//n+/P/4+///+Pz///j8///4/f//+fv8//3////4/fz/+v/+//j//P/2/fj//P/7//z9 498 | +f////7///z9//76///9+///+fz///j6///4+///+/7///3////+/f//+vv///v////4//j//f/5//r9 499 | +//6/Pz/+v/+//n//f/3//v/9//9//n//v/8/v////3////9//////////////////////////////// 500 | //////////////////////////////////////////////////////////////////////////////// 501 | /////////////////////////f////j////6///////+///++/////r////7///////9////+/v///v7 502 | ///8/P///P7///z+/v/+//3///79///9/v///v////v///r3///3+f//9/3///T////w////7P3//+b6 503 | +//o//v/6//9/+v//v/v////8f7///P+///z/f//8vv///b////v+fn/7/r4//j//v/5/vz///38///+ 504 | ////+vz///3///38///3+f//9/n///v8///++v//+/b///v6/v/8+/////3////9/////f///vr////7 505 | ////+////P3///r//v/5//7/+f/9//r/+//8//v//v/9///+/f////////////////////////////// 506 | //////////////////////////////////////////////////////////////////////////////// 507 | /////////////////////////f////r////7//////79////+/////r////6//7//f/8/v7/+/z///v7 508 | ///8/P///P3///v////9//7////////////9////9vz//+35///l+P//3vj//9j6///U+f//z/r//9D+ 509 | ///I/P//wvn//8D0///C7///x+7//83u///Q7/7/2vr//9n2///f/P//5P7//+X4///t9///9fb///Lu 510 | ///y7P//8Oz//+vr///l6P//6On//+zr///07P//9Oz///Xx///49f//8u3///75///9+P////r///rz 511 | ///9+f///vz///z+///+/f///v7+//7/+//+//r//P/7//z/+/////7///////////////////////// 512 | //////////////////////////////////////////////////////////////////////////////// 513 | ///////////////////////////+////+//+//3//v3///z+///6//7//P/9//7/+v////r////7///+ 514 | /v/8/v//+v7///n+///3//7/+f7///X////m+vv/3/3//9H+///A+f//pu7//4ra+f9xwOv/XbHh/0ug 515 | 0v9FntD/Q6LO/0il0v9Sp9n/W6nY/2eu0/9xtNP/crPS/22szv99ud3/kcXu/6bP/P/C3f//0dz//9bW 516 | //+4tf//mJPu/3l43/9tcNn/Z2nV/2dlz/9+dtv/mpHs/7u1///j3v//7Of///Pw///x8/v//f////39 517 | ///++/////z////8/////P////z////9/v///v3/+v/7//r/+//9//7///////////////////////// 518 | //////////////////////////////////////////////////////////////////////////////// 519 | ///////////////////////////+////+////v3//P3///r9///5/v//+f/+//z/+v/+//j////7//// 520 | /P/6//3/9f///+/+///n/f//4vv//9j7///L/P//ouH1/3C/2v9Nqsv/P6fK/0Gq1f9GqN7/SKbh/1Kq 521 | 5v9asen/Yrvt/2O76v9TpNf/OIOx/yRojf8bW3r/ElB0/xtYhP8cVpH/KFyj/1F4zf9NaMr/Ii+Z/x8f 522 | k/8mH57/JyCn/yIfsP8hH7X/IR63/yQdtP8nHK7/Khyk/ycclv8kHYb/TUid/5SU1P/p6v//5en//+/w 523 | ///5+P////r////7////+/////z////9/v///v7/+v/9//r//f/9//////////////////////////// 524 | //////////////////////////////////////////////////////////////////////////////// 525 | /////////////////////////////////v/8+fv/+/r///v9///3+///+f7///v//P/6//v/+//8//j/ 526 | +v/0//r/7f///97////N+v//tvL//3K95P9IptH/PanY/zOo2/80ruL/N7Lk/z+w4v9RreD/bLjp/3Oq 527 | 1/8zX4T/BCtH/wAEG/8AABn/AAQa/wAAEP8AARL/AAAW/wABLv8AAEf/AARu/xorsP8WIbn/JCTE/yki 528 | x/8sIMb/Kx7G/ygezP8oHs//KR3R/ykaz/8uGsv/LxvI/zEgx/8pHrr/KCWx/x8goP8ZGIz/ZGTC/+Lj 529 | ///n5///9vT////8////+/////3////+/f////7/+fv8//3///////////////////////////////// 530 | //////////////////////////////////////////////////////////////////////////////// 531 | ///////////////////////////////8/f///v////z///z7///5/P//+v/+//j//P/0/fr/7fv6/+3/ 532 | ///g/f//1P///7bw//9vutr/RaHS/z6p4/8yqef/L6vr/zGs6v82quP/SbLj/2nD7P84fKH/ACBA/wAA 533 | HP8AAhf/AAIO/wAACP8AAAj/AwIL/wAABv8AAA//AAAm/wAAM/8rL5X/NDi//x0hxv8gINj/IRvY/ycb 534 | 2f8pG9X/KxrV/yka1v8oGdj/JxjY/yYV1v8qFdX/KhbT/ycW0f8pHNL/HxnG/yIhxf8eHbv/IiCo/xwc 535 | gP+bmd//6uf///Hs///39P////7//////P////z//fz+//z7/f///v////////////////////////// 536 | //////////////////////////////////////////////////////////////////////////////// 537 | ///////////////////////////////+/f///v//+vb8//78////////+v37//v//P/z////5P7//872 538 | //+68v//b7rg/0Ohz/87qOD/NK3y/yil7/8qpe//Oqrw/0il4v9xu+v/PHGS/wACFv8AAw//AAMK/wAA 539 | Cv8ABQ7/AAAE/wAAA/8AAAP/AQEH/wMACv8GACL/AAA//zQvnP83Nb3/IyPD/yEf1v8kHuH/Ihjc/yka 540 | 2v8sG9b/KxrV/yka1v8mGtj/JBfX/yEX1f8jGNL/JhrS/ykZ0v8rHNL/JRrO/x8ayf8gHcb/JSK+/ygm 541 | rv8gGo//Vk2u/+Ha///29///8vf6//n/+f/6//b//P/9//z+/v////////////////////////////// 542 | //////////////////////////////////////////////////////////////////////////////// 543 | ///////////////////////////////////59/f///7////+///9/vz/+v///+f5+v/Z9v//z/v//5HP 544 | 8/9Po9P/Qqjj/zGk5/8uq/X/HZ/s/yaj7f83pur/Sqbh/0uNvv8ADTL/AAAX/wABCv8FBwf/AgMA/wIG 545 | B/8AAAP/AAEB/wAEBP8ABAP/AAAF/wUAFf8AAC//KR+K/z0zw/8pIMT/KB/T/yge4v8hFd//JRbc/ysb 546 | 3v8pGdj/KRrW/ycY1/8kGdn/IRnY/x8Y1f8fGdL/JBrS/ywb1v8nFc7/JhnP/yMYzP8lHc7/HBbB/x8a 547 | vf8oIrf/JRuj/0A3n//g3///8PX///f9/P/7//n//P/7//v+/P////////////////////////////// 548 | //////////////////////////////////////////////////////////////////////////////// 549 | /////////////////////////f////n8///9//////75////+P/3/Pr/6fz//9f+//+79f//Z7Dc/0mj 550 | 3P88p+v/K6Lt/yKf7/8enOr/Jp3o/zSb2v9Zqdj/EUtu/wABH/8AABT/AAIU/wAAB/8AAAD/AAEA/wAB 551 | BP8AAAT/AAQH/wAAAf8AAQD/AAAK/wAAIP8HAVD/PDK7/zIk0P8sH9X/LR7e/ysZ4v8tGuX/KRbh/ygX 552 | 3f8pGdz/JhnZ/yMY2v8iGtn/IBnY/yAZ1v8hF9X/JRfT/yQS0f8tGdb/KBbN/ywczv8nGM7/KBzQ/ykg 553 | zv8jHMP/JRq8/yYcpf9GP6D/6eb///T6///y+PP/+v37//3///////////////////////////////// 554 | //////////////////////////////////////////////////////////////////////////////// 555 | /////////////////////////f////X7///6//////z3//z++P/q/f//0/z//5/h//9Kn8//QaXg/zmo 556 | 7v8nnu3/H5zu/yGc7P8ml+D/Ppva/1igz/8AFTH/AAES/wABEf8AAAz/AQAL/wAABv8AAAD/AgkG/wAB 557 | BP8AAgf/AAAE/wEBAf8AAQH/AQQT/wAALf8sJIj/Ny7L/yYb1v8mGdn/LR3g/ycW3P8mFN3/LRrl/yQU 558 | 3f8nGN7/JBfd/yIY3P8iGdv/IRnY/x8X1v8gFtT/IxfV/yUY2P8hE8//JRnN/yUZy/8lF9D/IhTN/yIZ 559 | zf8dFcb/IhbI/zAkxP8cEJL/gn3S/+zu///2+/z///7///77/f///v////////////////////////// 560 | //////////////////////////////////////////////////////////////////////////////// 561 | ////////////////////////+/////X+///y/v//+v/+/+v8///Q+v//jdP4/zqb0/81qOv/KaLo/yGc 562 | 5v8cmOb/IJjk/yeT2/9Jn9v/Toav/wABGv8AAxD/AAEI/wAABf8DAQf/AAAH/wEBB/8ABQP/AAIA/wAA 563 | A/8CAQX/BAAB/wcCA/8AAQH/AAAU/wAAPv9IQLX/KiPM/yIa3P8mH97/IhvY/yIb2P8pIeD/Ihjd/yEW 564 | 3v8iFuD/JBff/yQX3f8jGNr/IRbW/yAW1P8iGNb/IxzZ/xIUzf8cINb/GRzL/xMTw/8aFcz/HRXN/x8W 565 | yv8nHc7/JhnP/yUXw/8uILv/HBWE/9fa///6+////vX////7/////f////////////////////////// 566 | /////////////////////////////////////////f/////////////////////////////////////+ 567 | /////v/////+/////v//////+/////b////q+P7/5/3//9P5//+Fxuz/QZ3S/yye5P8cnOn/GJjl/xmY 568 | 4/8ak93/KZTY/0eb1f84dJ7/AAEY/wACDP8AAAT/BAAA/wYBAv8FAAL/BQEH/wMECP8AAgD/AAUA/wAA 569 | BP8BAAT/BgEC/wUBAP8BAwT/AAAW/wUBTf8+Orf/KCTR/yAd3v8hHdr/JB/Y/yAb1f8jHdr/Ixnd/yQZ 570 | 4f8iFd3/Ixbe/yQX3f8jGNr/IhbU/yEW0f8kG9b/JCLa/zQ78P8yPO7/REj6/0NF9/89O/P/Ix7V/xoU 571 | x/8fF8j/HRTJ/yMXyf8pG8H/Jhua/3Fvsf/s6v////P////3/////f////////////////////////// 572 | /////////////////////////P7+//z+/v/8/v//+v/+//z+/v/8//3////+/////v///f3///7////6 573 | ///++v/////8/////P/9/P7//f7///n9///k9v//zvj//37B6P9CnNP/NJ/i/x6W3v8YluT/FZDg/x6U 574 | 4f8kj9P/Sp/X/zpvlP8AAxr/AAEP/wAABv8AAQL/AwMD/wAAAf8CAQP/AwAC/wAAAP8DBwL/AAQA/wAA 575 | A/8CBAX/AwEA/wECAP8AAwL/AAEa/wAAQ/9AQrj/JCTK/yEg3P8kHtf/JR/Y/yMc2/8hGdv/KR3h/ycZ 576 | 3f8mGNz/Jxvf/yMb3v8eFtj/IRfV/yoi2/8zLuX/NTbq/yUp3/8gI9n/IhvQ/yMZ0f8pJN3/ODTr/zEt 577 | 4P8aF8f/GRbJ/yIbyv8rGsH/Lx+p/ykeev/o3///+/D////4/////v////////////////////////// 578 | /////////////////////////P7///z+/v/8/v7//P7+//z+/v/8//3//P/9/////v////////z+///7 579 | /////P/////8//n9+P/4+vv/9fv//+74///b+v//hMTt/ziSy/8xnuL/IJfi/x2W4P8bk9//HpHh/ymS 580 | 3P9Intr/NnOf/wAAE/8AAQv/AAEI/wAABP8AAAH/AAEB/wUECP8CAQX/AwAC/wQEBP8DBAD/AAEA/wAB 581 | Bf8AAAT/AAEA/wYHA/8AAwL/AAAP/wAANv8xMpr/KSnD/yYh1v8sINb/KR3V/yEZ2P8iGtz/KR3h/yIU 582 | 2P8oGt3/IhfZ/x0V1/8iGtz/LyXj/zMr5P8nJNj/GRnL/xUWyv8bGdD/IRXL/yga0/8dGM//GRXM/yEd 583 | 0P8iH8//GxnJ/xoUwf8rGcD/MyCy/yUWgv/Mwv//9fD////7/////v////////////////////////// 584 | /////////////////////////f7///3////9//z////8///////+/v7/+v/9//r//v/9//////7///34 585 | +v//////+fv7//j+/f/4////7f///9n6//+b0/b/No7K/yua4v8VlN//Fpbh/xqP2v8gjNn/H4fU/z+W 586 | 2f9FfrH/AAAc/wAEEv8AAAX/AAAG/wADCP8ABAX/AAAA/wIAA/8FAAX/BAED/wAAAP8AAQD/AQMD/wAA 587 | Bv8EAAv/AwAE/wICAv8AAQD/AAAH/wAAHv8GAE//PDW+/zQp0/8tG8z/LBrR/yof2v8kHN7/GRDV/ykf 588 | 5P8fFdn/Ixva/yUf3P8lHtv/JhrY/yMY0/8fGs//IB3Q/yEc0f8kHdL/IBXJ/yUazv8fGcz/HhnO/x4X 589 | zP8fFsr/IRfH/y0izP8uGsD/Lx2w/ykekv+uqvX/8fL///n8/////v////////////////////////// 590 | /////////////////////////P3///z+/v////z////7/////////v//+v/9//r//v/3+/z//f/////7 591 | /P////7/+fv7//T+/v/k9fj/1Pb//7Dm//9EkcL/L5fe/xiV5/8Mk+T/Co7b/xqP2v8ulNz/RZvh/1WV 592 | z/8AACP/AAIV/wAAB/8AAQL/AAIG/wAAA/8AAQD/BAYH/wIABv8AAAb/AAIH/wACBf8ABQj/AAYN/wAC 593 | FP8AAhj/AAAP/wABEP8ABQ3/AAAN/wACHf8AADP/AwZy/zw6wv85LL3/PS3I/zIpzf8jHc7/FA3M/yEZ 594 | 3P8lGtz/IhjW/yEZ0v8iGdT/JhnZ/yUY2P8gGND/HxjN/yUZ0f8mGtD/JBjO/yMazv8eGMn/IRjM/x4S 595 | yv8oG9H/IhXF/ygbw/8lFLf/MSKz/yMdiv/Bv///6Ov///v+///9//////////////////////////// 596 | /////////////////////////v3///7+/v////v////8///+/////v///f/+//v//v/6////+//////+ 597 | /f/6+Pf/+/39//P////g/f//w/f//0WRwf8xkdP/IJLf/xKP4/8KjuH/EZLh/x+U3/83l9n/Zabd/wAB 598 | K/8AABX/AAEL/wAAAf8AAwH/AAIA/wAEAv8AAAD/AAAD/wMCDP8AAAv/AAEI/wAGDf8ABRH/AAIX/wAI 599 | Kv8AJU7/ADNd/wA6YP8AOlr/ACxH/wAbNv8AACb/AABA/wAARf8AAFH/CARk/wAAav8NDZ3/HRzK/yAa 600 | 1/8lFtX/KRjU/ykb1P8oG9X/Ihba/x8S2P8jFtb/JxrU/yQWz/8qHNX/IRbQ/x8Vzf8iF8v/JxvP/yYX 601 | zf8nFcz/KRnL/ykcxv8mHr7/JyGo/x4bd//o5f//+vj///r5/f///v////////////////////////// 602 | /////////////////////////v3///7+/v////v////+///9/////f/////+//3//P/2/v3/+v////z8 603 | /P////7/+v/+/+j7///P+v//Z6vQ/zaRzv8jjtj/Go/g/xSQ5P8XlOj/HZbl/y6b3/9fsur/AB5J/wAC 604 | Hf8AAQz/BAMF/wEBAf8AAQD/AQQC/wAEA/8ABAj/AAAI/wACFv8AABf/ACc7/yhqff9Qm7X/dMjr/2nB 605 | 7/9ivvP/V7nv/1y/8/9iwfL/YLzl/27D4/97zO3/VqHN/yVklv8AHE//AAA7/wYhfP8kObP/HCjI/xwf 606 | 1f8pHtn/LBvX/ycZ0v8kF9H/IBXX/x8V2f8jGNr/JRnX/yETzP8qHtL/IRfI/yYdx/8rIr//Kh62/zgp 607 | wf80Jbz/MSa8/xoXqf8XIav/CxeH/5qg4//s7f//9/T////7/////v////////////////////////// 608 | ///////////////////////////+//7//f/+/v7//v3////+/////v/////+////+//5//v/+v/+//f5 609 | +v/9////9v79/+D7//+e2Pv/NIe+/y+R1/8ei9n/G5Dh/xuT5v8aj+D/L5vj/02m3/8hX4j/AAIe/wAA 610 | C/8AAQb/AAIC/wcFBP8EAgL/AwAE/wAACf8ABhX/ABgt/ylwkv9mvub/Xcju/0fA6P89vOn/MrPk/zW5 611 | 7/8us+z/L7Tt/zC17v8vtO3/Mrnt/y+54/8xuuH/NLjn/0XA8v9Sv/L/U7Dt/x9twP8AK5z/Ci/B/w4h 612 | yv8bGtT/JRra/ygc2v8jG9T/IhrS/yAb0v8fGdb/HxjV/ycd1f8gF8L/KiG+/zQstf83MaL/Hhd4/xAH 613 | Yf8BAFT/AABX/1lryv9Ea83/kLj//9vw///v9v//+/r////9/////v///f////3////9//////////// 614 | ///////////////////////////7/////v///v///vz///z8///+/f/////+////+//7//n/+//8//3/ 615 | ///3+///7v7//9L6//8/i7z/MpPX/yaT3f8cj9//GpHg/yKY5f8ql+H/Qp7f/1iZxv8AAh7/AAAP/wYC 616 | CP8AAAP/AAID/wAAA/8AAwr/AAUV/wAjOP9QlLH/bsjr/1TA7/81teb/K7jr/x+26f8kvPP/H7ry/yC8 617 | 9/8Yte3/IL31/yO+9v8ctfL/Ib72/xy/7P8cwez/HsDw/yS98P8ruu3/Nrjz/z6z/v9Fpv//FWDa/wAg 618 | sP8HI8j/FCDS/x0d1f8fG9L/HhvO/yAcz/8hGtf/IhrT/yYdy/8oILr/OTKx/wwHav8AAD7/AQAx/wAA 619 | I/8AACT/AAAt/z9cmf9Vj9r/SYfD/8z0///s////9fv///r7///9/////f////3////9//////////// 620 | ///////////////////////////5/////P/8/P///Pv///z8///9/////v/9////+v////f////7///+ 621 | ///0/f//2/f//4i/5P81j9D/HYza/xiS3v8XluH/GZjj/yWb4v8ymtv/arbq/wAKK/8AAA//AAMI/wIA 622 | Af8FAAX/AAAL/wAADv8AFSj/QJm0/1rI6v9Cu+f/Nrnr/yq47/8kufH/Ib3y/yK+8/8ju/T/ILr1/x2+ 623 | 9f8cv/b/GsD1/xrA9f8evvj/Hr/2/yDE7/8gxO7/IcHx/ybA9f8qvvL/LLv0/yu3+f8wtP//NK///z+m 624 | //8ARcP/ACGz/xAmzP8XHc7/HRzQ/yMe1f8oGdj/JhfM/y8ju/87NK3/AABN/wAAM/8AABz/AwAR/wcA 625 | D/8AAA3/AAAV/wwrWP9TmN3/PIvK/3qz0v/T+f//5/r9//j////7/////f////3////9//////////// 626 | ///////////////////////////4//3//P/8+////Pv///z9///8/v7//P/9//7/+/////n//vv2//// 627 | ///m9v//x/T//zuFu/8li9b/HZfr/xWW5f8anef/HJnj/yyc3v9ZsuX/HVd7/wAAEP8DAgv/AAAD/wAD 628 | Cv8AAA7/AAMa/yprh/9oy+v/PMHn/yG65/8ivO//HLzy/xu88/8avfT/G7/z/x7A9P8iwPb/IMD2/x7C 629 | 9v8aw/b/F8X0/xjG9f8Zw/n/G8P4/x/G8v8hxvH/IMP0/yHC9P8jwvT/JMD1/yG+9v8hvfn/Irn8/yq0 630 | //9Etf//Kn3w/wAhr/8IIsL/GB/M/xgUx/8pHNL/MCHD/zkuqv8CAFH/AAAw/wAAGv8AAAf/BQAB/wgC 631 | A/8AAAH/AAIN/wAAG/9eqef/N5LV/z6Jt/+37///3/v///H8+v/6/////f////3////9//////////// 632 | /////////////////////////f/5//3//P/9/f///Pv///79///8/v7/+f/+//v//v////r////6//r/ 633 | /v/f+f//drXn/y2J0P8jk+X/EZDl/xeZ7P8Zmun/Ipvj/0Sn4f9npsz/AAIW/wAAB/8AAgf/AAEO/wAC 634 | Ff8AGDH/V7ja/0vE7v8uvOv/H7zu/xnA8/8VwfH/FsLy/xnC9f8bwvX/HMTz/xzE8/8fxfT/Hsb1/x7H 635 | 8/8ayPL/Fsvy/xTL8/8TyPn/FMf6/xjH+f8ax/n/GcX1/xrH9f8ayPP/G8by/x/E9f8gwff/HsD7/yC9 636 | /P8htff/Orf//0uj//8AMLP/CSC8/yEmyf8mIcD/NSqu/xkQZv8AACv/AQAa/wAACv8DAgT/AgMA/wAC 637 | AP8BBgT/AAAB/wAGG/9PnNT/MJHV/zSPzP9qr9r/1/X///X+///6////+/////3////9/////f////3/ 638 | ////////////////////////+v/6//3//P/9/v////3///79///8/v7/9/////r///////7/+/z6/+/+ 639 | ///O9///OIjF/yqT5P8fl+r/Fpjr/xeZ7P8jn+3/MaLl/2G46v8AJDz/AAIN/wAIDP8AAgn/AAAW/xBQ 640 | b/9s0/r/Or/r/yS77v8cvfT/E7rz/xfC+P8VxPb/FcX0/xnF9f8bxvT/Gsjz/xnJ8v8ayvP/Gsry/xvK 641 | 8v8ay/D/Fsvy/xTM9P8Qy/f/EMr6/xTJ+v8Vyfr/Fsj3/xbJ9v8TyvT/FMr0/xrI9v8dx/f/HMT5/xzE 642 | +f8ix/j/J773/zu0//9Trv//CkTB/wUkqf8kMK7/Li6S/wAALP8CABj/AAAN/wUEDf8CBAX/AAIA/wAF 643 | AP8AAwD/AAUD/wAADv85hrf/Op/j/zCV2v80g7z/0PX//+76///3/v//+/////3////9/////f////3/ 644 | /////////////////////////P/7//3//P////////7///7+/v/6//7/+v////r////9////9f7//9j3 645 | //+Wz+7/Mo3Q/x6Q5P8XlOT/H6Hu/yGe7v8pn+f/Sq3r/0CKtP8AAhL/AAkP/wAACP8AARH/P4ar/1zE 646 | 8/87u+7/KLjv/yO78v8hv/X/HsH4/xvD+P8axfn/GsX4/xzG9v8byPb/Gcv0/xXM8/8SzvH/FM7x/xjN 647 | 9P8azPX/Gsv2/xjM9v8VzPb/E832/xTO9/8Wzff/Fsz2/xXM+P8RzPj/Ecz4/xbM9v8Zyvf/Gsj3/xvH 648 | 9/8dyPb/IsX2/yfA9/8zuPv/V8L//xdiuP8AJHj/AAA5/wADIP8AAAr/AAAI/wEAC/8AAQn/AAAE/wAE 649 | Av8ABgT/AAEA/wACEv8mb5v/PaLg/y6Y3/81jsv/lMLr/+D1///z/f//+v////v////7/////f////3/ 650 | ///////////////////////////8/////P////7///79//z+/v/6//7/+/////v////4/f7/7P///8v4 651 | //9Tm8P/L5TZ/ySa6/8am+T/G5/l/yGf5v86pub/bL7u/wANLP8AAhH/AAMO/wAFF/9pq8j/VsPv/zK5 652 | 7/8nvPT/JML4/yTA9f8gwfP/JMn6/xjD8f8bx/f/Gsj2/xvI9v8byff/F833/xXP9/8R0vT/EdLz/xbR 653 | 9/8Z0Pj/Hc77/x3O+/8Z0Pf/GNL1/xbR9/8W0ff/GdH5/xbQ+f8U0Pn/E8/4/xbN9/8WzfX/F8v1/xnK 654 | 9f8Zx/L/GsXx/yPL+v8kw/X/KLjv/1bK//8XYZf/AAAp/wAADv8AAAb/AAAK/wMCDP8AAAf/AAAI/wAD 655 | BP8ABQT/AAIG/wAFF/8bY43/QaXg/yua4P8xldb/VpbG/83y///r/P//+f/+//v////7/////f////3/ 656 | ///////////////////////////+/////P////v////7//v//v/6///////////////0/v7/2ff//7Tv 657 | //82ir7/MZnc/yKa4v8eoeT/IKbm/yel5f9Qten/Q3qZ/wABFv8ADSD/AAMb/2C32f9KwOr/Lb7s/yLB 658 | 8/8cwPT/FL7u/xzE8/8eyPL/Hcju/xzM8P8XzfH/Fs7y/xbO9v8Wzfn/F8z9/xbO/P8V0vj/FNX3/xTV 659 | 9/8W0/n/G9H7/x/Q+/8f0vf/G9T2/xbU9/8X1Pr/GdT6/xrT+f8a0/n/GtP5/xzQ+f8azvf/Fs/1/xfP 660 | 8/8czvf/H837/xvG+v8dxfr/Jcn4/zHF7/9a0vX/HHKK/wAGFf8ABA3/AAAE/wIBBf8JAgn/DQYL/wUA 661 | AP8FAAH/AwAJ/wAAE/8cXo7/Q6Tj/y+f5f8rmdv/NI2//6vo///j/P//+f/+//v////7/////f////z+ 662 | /v/+/v7////////////////////+////+/////v//v/7//r////6///////////////z////2fz//4DF 663 | 8P81ldH/LZzg/yWf5f8do+P/JKjk/zKp4f9nwOz/AAUc/wAIF/8AAx3/dcbp/0W+6v8qve//H8D0/xfA 664 | 8/8Yw/H/G8fx/yPM8v8izO7/Is3t/yPQ8P8d0O//GtHz/xnS+P8Z0Pr/Gc78/xnO/P8Z0vj/F9X4/xXV 665 | +v8V1Pv/G9L8/xzT+/8e1ff/G9b1/xfV+P8V1vj/GNf4/xnW9/8c1vX/HtX3/yDS+/8c0Pn/GNL1/xnT 666 | 9f8e0fb/HMz1/xnF9f8exvb/I8v0/ynJ6/82yeP/Ydju/x9ofP8AAQ//AAMJ/wIBA/8FAAL/BQAA/w0F 667 | Bf8EAAH/AQAI/wADHP8RVYT/S67s/y2h6P8hmN3/LprQ/3PB5v/c/P//9v7+//v////7////+/////z+ 668 | /v/+/f/////////+/v///v3////8/////P/9//7/+/////r////6/v///v/9//r//f/w/P7/2Pz//1im 669 | 1f8znd3/I5zk/xqd5v8cpOb/Lqzm/0ux5f8veqD/AAQa/wAHGf9kweL/Q8Hq/y/A7v8ivvP/IMH4/yDE 670 | +f8gx/P/H8Xq/yvJ5/8tyuT/J8zn/ynR8P8ly+7/K9T5/x7O9v8f0vn/IM/3/yXV+v8d1Pb/HNb5/xvY 671 | //8Z1f7/GtT9/xrV+/8Y1/j/F9n3/xrY+/8a2/z/Fdn3/xfa9v8g2fX/I9b1/x7O9v8j1f7/IdT7/xvO 672 | 8/8h0/b/IM/w/yjR9v8ozO//J8Xj/yzF5P8rxuf/Pczs/2bY9v8BUGX/AAUS/wABBv8AAQD/AwQA/wAB 673 | Af8AAAT/AAAG/wACGP8QWIL/R6/q/yqj6f8fm+H/Kp7d/0mfzf/U+v//8/z///f8+//8/v7/+P79//r+ 674 | /////f////3////9/P///vr///77////+//6//7/+f/+//r+///8/v///v/9//r//f/z////z/f//0GW 675 | yP8rneP/GZnk/xym7/8krvD/Mqvj/23D8f8ACCv/AAYe/2m61f9GxO3/JLvt/xy+7v8ew/T/HcH2/yHE 676 | 9f8iwur/SeL//2Xz//9k8f//Wuv//0bW8v9Bzez/Qc3s/0XQ8f9P2Pj/Vtz6/0HQ7P883fn/J9Xz/x/X 677 | +/8X1v3/Gdn+/xnd/f8W3vv/Fdv3/xba+v8b3P3/F9v5/x/a9v8t2O7/O9bv/0nd+/9F1PT/R9j4/0HU 678 | 9P871PH/ONHs/z7V8P9S5v7/Zvf//13x//8/2/n/Lcjp/zvJ6P9t2/X/ACY5/wAHEf8ABgb/AAQC/wAB 679 | AP8AAAP/AAAI/wACFv8dbZb/QLHq/yih5v8ioOf/J6Hj/zWUxv/H8f//8P7///j9/v/7////9v79//n+ 680 | /////P////z////9/P/9/vr////7////+//8/v7//P7+//79/////v7///79//n+/f/t/v//v+v//zuW 681 | yf8kneL/G6Ls/xWj6v8cqej/QLbq/0KKtP8ABCf/S67O/0nI7v8ktez/H8H7/xvH9/8ZyPP/H8r2/yDD 682 | 6v9d8///ZvD//1vZ6/9b0eL/X9Dq/2XR6f9v1ej/b8na/3nC1v9hoLT/RH+S/y99jv9Rydz/QNvw/yrf 683 | +f8Y3Pr/Et34/xDf+P8S4vj/E+L4/xTe+/8X2/3/HNj7/y7W9f9U3vH/Oqq3/zyVo/9dq7v/YrTF/2jB 684 | 1f9gxtz/adju/2PW6/9Wz+L/UNHg/0/a6v9j+v//Tun//zHH5f9Hx+T/etTs/wAOH/8AAQz/AAMH/wQJ 685 | CP8AAwL/AgEF/wAAEf8lfab/O7Ts/yyl6v8po+n/KKHm/zSXy/+w4fv/7P////b////6//7/9//+//r/ 686 | /v//+/////3///39/f/7/vz////+/////v/9/////////////////v7///79//f//v/l/f//pNrx/zOV 687 | y/8mper/Hqjw/xyo7f8lrOr/T8H2/wALNv83iK7/RcTr/yO76v8hwPr/F773/xPH8f8VzfH/HM3y/zfZ 688 | /P9e5v//X9Ln/0emtv87jJv/Qouf/1SWqf9dmaX/cqGp/0dibP9WZm3/YW52/0NocP8whpL/XeHy/zLe 689 | 9P8d4fn/FeH4/xDg9v8S4vb/FeT6/xTi/v8U3f7/INr9/0Pf/f9ay9v/XKev/4S0uP+KrrT/g6qz/3io 690 | tP9inq7/TJKj/0uWpP9AlZ//LYyV/1vM1v9Jz+H/X/L//zPP7P84zOr/Tsro/2vC3P8AAxb/AAIO/wAA 691 | Af8AAQD/AgEF/wADFP8wkrr/NLXs/y6s7f8opOr/JqHl/zqe1P+Vy+n/4fv///P+///4/v3/+f/9//v/ 692 | /v///P7///7///7+/v/5/vz//f////3////9/////f/////////8//3/+v/9//D////a////gMPe/zag 693 | 1v8cnOP/Hqbu/yWs8P84tfL/KpzR/wBKev9Uw/H/MLru/yG88/8kwfn/HMP2/xjM7/8W0O7/F8jt/z7b 694 | //9a1fX/Q5uz/0h8jf9xjpz/f5ej/5Wnsv+ktLv/U15i/2xrbf9eWVj/NCws/xcmKP8AKS//dN/t/zvc 695 | 8v8j4Pn/H+P7/xzk+/8c4/n/GOL5/xTh//8W4f//I+D//0Pc9/9XtcL/ksbM/6nCxv+zv8P/rb3E/6W5 696 | xP+YtL//lLO8/4elqv9ylZj/Z5GW/zN1gP9nzuf/Rsvs/z7e/v8p0PH/Mszv/0/M6/8/jKf/AAga/wAD 697 | B/8EAAD/AgEF/wAGFv9Mtdz/J7Po/yWu7P8mqez/JaLm/zmd1/95udj/2Pn//+/9///3/P3/+v/9//3/ 698 | /v///v7///////z//f/5//3/+v/+//r//v/8/v7//P7+//r//f/6//3/9v/8/+r////N+///bbnW/zGf 699 | 2f8mqvD/JKz0/xOW2f8imtb/AHOo/wuHt/8mq93/L8H7/yPC/P8dvvT/Hsn1/xjP7/8Wzuz/I9D2/z3P 700 | 8/9OttP/OHmO/3mTof+doKj/tLK4/8C5wP+PhIz/a2Bj/0k6OP8TBAH/DAAA/wABAP8ABw3/LH+O/1Po 701 | /P8o4vr/H973/x3j+/8f5f3/GuH7/xLf/v8b4v//Jtz6/1Hf9v9ptcH/r9LW/8TR0//N0dL/yszU/8LH 702 | 0P+4wcv/sLrB/6+3t/+msLD/lKGj/2+Sn/8ufpf/XtX1/zDN7v8g0PT/Ic70/y/I7f9i0/T/Akhf/wAA 703 | C/8FBgr/AAAH/wAFF/9eyvP/I7Pq/yGz7f8frOv/JqXq/zef2v9mrc//zvn//+v9///5/v//+/78//// 704 | /P///v3//v7+//v//v/6//7/+v////v////8/v7/+v/+//n//f/3//3/9P/8/+b////E+v//Wq3M/zao 705 | 5P8iqPD/Hqnu/zW7+/8Abaj/AEB0/wCAsf80xvr/JLr2/yDA+v8XxfT/GM/3/xbQ8v8aze3/LM3z/1rb 706 | /P8bbIH/cpyp/5iorv+rra7/wLzB/9zR2f9fTFX/W0lQ/wwAAP8JAAD/CwcC/wABAP8ABAv/ACAw/1/o 707 | /v8v5P3/IN/6/xvh/f8a5v3/GeX+/xjj/v8k4v//PuH//ziyyv+k4ev/xdze/9jj4f/Z29v/2Nje/9bX 708 | 4f/P0N7/ys7Z/7zCx/+zu7v/rrO2/46lrf9LiJz/PKXA/z3W9f8f0fT/F8ny/yXN9v84zPD/atfz/wAL 709 | Hf8AAAr/AAAL/wAiN/9Zx/H/Jbbt/x+38P8Yruv/JKnt/zmn4/9Xpcn/xff//+j9///6////+/78//// 710 | /P////7/+/78//r//v/4//7/+/////v////9/////f////v//P/5//v/9//9/+f////D+v//UqbJ/zOm 711 | 4/8fp+//IbDz/yCu6/85vfP/L7Tm/y/F9P8hvvD/JcH8/x/E+/8Yy/j/Fc70/xnM8/8s0/j/PdP3/zqt 712 | yP9Kh5X/jqmt/6iysv/KyMj/1M7T/7+0vP9iTVb/GgUO/w8BBf8HAAD/BAEA/wEEAv8AAAf/AAQS/1rV 713 | 6f824fn/LOj//xzo//8X5/3/GOn9/yDo//8w5P3/UOD8/0Spv/+87fX/2u3q/+Lp5P/p6ub/5+Tm/+Xh 714 | 5//g2eb/19Pf/8zO1v/Hys7/v77A/56tsP97qLX/GnGF/0/e+f8l0vP/HtH4/x3N9v8mz/X/Rc3v/1ek 715 | vv8ACh3/AAEU/xpSa/9Qwez/JLju/xq47v8Xsez/JK3x/zWp5P9Mosb/wPX//+T6///6/////f78//// 716 | +/////7/+/78//r//v/4//7//f////3//////v///v7+//7/+//9//z//P/9/+r9///H+P//UqTH/zWo 717 | 5f8hrPH/GbLx/xm18P8juu3/I77s/x/C7/8dw/L/HsX4/xnE9/8YzPb/Gcv0/yjM+/81zPj/Udf5/xl/ 718 | kv92pqz/pbaz/7vCv//Qzc//4Nji/7SotP9SQUr/EQAG/w4ABf8JAAD/CAMC/wYCAf8DAAL/AAQN/x6J 719 | l/9K6Pr/Lef//xfm/P8S6v3/Fu38/xzl9f875ff/ZOL6/1isvv/S/f//5Pbv//D47f/39uz/7+nk//rv 720 | 8f/y5O//6t3r/+Pb5v/Z1dv/yMbG/7XAvv+SsbL/Q4uT/zKyyf832vr/KdL3/x7N9f8dzfX/LMru/2PU 721 | 9f8AQ2D/AAsl/z2Fo/9Kwe7/J7vv/xq47v8YtO//HKzt/zCr4/9Ho8b/vff//+L4///6////+/z6//// 722 | +v////7//f/+//r//v/6//7//f/////+/////v////7+/////P////z//v7+/+z8///J9///U6TH/zaq 723 | 5f8hrvH/FrTw/xW47/8ave7/G8Lu/xfC7v8YxvH/HMn3/xnI8/8ZzvX/H8/3/yzM/P9Bzvv/XdXz/xZr 724 | e/+UtLn/u8C//8zKyv/Y0db/7OPt/7Gjrv8+LzP/DwED/wsAA/8LAAP/BwAA/wcAAP8GAAH/AAYK/wA+ 725 | Sf9l7///L+L3/x3q//8P6Pj/FOz5/yTq9v9J7fr/Pq29/5zg7f/c+/z/9Pz1////9f////X////4///0 726 | 8f//7PH/9eTt/+ng6v/e2uD/19XV/8fMyv+qu7j/gbW7/xOCmP9A1PL/L9P2/yTU+f8az/b/I8zy/z7K 727 | 8f9k1vv/AAMm/23J7P8/wO3/ILns/x298/8buvT/Ha/w/zGv5v9FpMX/vfj//+P5///6/////P37//// 728 | /P/9//7//f/+//v//v/6//7////////+/////v////7//////v////z/+/39/+n7///I+P//VKXI/zmt 729 | 5v8jsfL/Grbx/xS67/8Yv/L/FsLy/xLE8/8VyPX/Hcv2/xzL8/8a0fH/ItX1/yrO+P9J1Pv/NZ65/1yc 730 | rv+luMD/yMDH/+PS2//p1t////L4/8Gzt/89Kyz/DgAA/wcAAf8HAAP/CQAA/w8FBf8XDw//AAEE/wAY 731 | I/9r3/D/Quv//yPq//8a7P3/H/H//yru+v9L6vT/KoyW/8/////q+fv/9e3t/7elpP+ii4n/tJuX//vi 732 | 3v//+vn///X2//Hu8P/h4+T/3N3b/8/Qzv/Axcb/kbW9/xx1iv9a3Pn/M9Pz/x/Q8f8azfL/Hcz0/y/O 733 | +v8Ej7r/JZe//2LX/v8mteL/JMLy/xG16v8XtvD/IbTy/zOv5f9IpcT/vvr//+T6///6/f///P/9//// 734 | /P/7/vz//P7+//3//v/7//7//v7+///////9/v///f///////v////7/+P79/+b8///H+f//V6rK/zqw 735 | 5P8jsu//Hbjv/xm68P8YvvP/FcL0/xTG9f8Uyfb/HMz1/x3O8/8Z0e//INb0/ybP9f9N2f3/IH2U/4G1 736 | wv+wv8j/1MvV/+PS3//w4en/+u/y/+vf3/87Jyb/EQAA/wkAA/8KAwb/CwAA/41/gP+elJT/OUVH/wAI 737 | FP9QssT/TO3//yLo+/8f6/3/I+z9/y3r+P9X7fj/PJGZ/9v///+go6f/X1FT/3NgY/97ZWf/gGRj/21S 738 | Tv/Gran///v4/+/q6//p6+v/3+De/9rY2P/Hxsr/q8HN/zl/lv9Iu9b/PNf4/yDT8/8f1vj/INX8/xvI 739 | 9v8lw/P/AGSP/wBwm/8rxPH/HcHw/xfA8/8au/L/H7Du/zaw5v9Np8X/wvv//+j9///5/P///f////// 740 | /v/7/f3//P7+/////v////7//v/9//3////7/v//+/7////////9//7/9P/9/+D9///F+f//XbPR/zew 741 | 4v8kte3/Ibnv/x278P8dvvX/GcH2/xrI9/8WyvT/Gcv0/xrP9v8X0PL/G9T2/yHS9/9M3f3/H3WH/4ey 742 | u/+2yM//ztLX/9rc5P/p6e//8u3v///8/P9JNTT/GQUE/wgAAv8HAAH/NiMm/7mkp/+lmJr/q7G2/wAF 743 | E/81jZ7/Tuz+/yjs/v8l7v//Le///zPp/P9Z5PT/Zqe1/5Snr/9QTlT/OC0w/xMOEP8ZERL/RzMy/4Vs 744 | av9rTUz/3sbG///9///z8vT/7Orq/9zZ2//U0Nb/s8PQ/2yjuP8zl7P/Q9v+/yDX+f8Y1fT/F9T1/xvM 745 | +f8mzv7/NtL//zHO+v8gxfD/GcTw/xPB8P8UuO3/JLPw/zqw5P9Wrcj/xfv//+r9///7/P///f////3/ 746 | ///7/f7///7////+/f////v////+//3////6////+/7///////////7/9P/9/+D9///D9///aL7c/zKw 747 | 4P8ituz/Ibrt/yC88f8fwPf/G8P5/xvH9/8YyfT/F8v1/xrR+f8Y0vX/G9X4/yHX+/9G2Pb/HWp6/6HD 748 | yf+7yc//zNPW/9zl6P/l7O//8/Pz///+/v+XiIb/GggH/wwAAf8MAAL/cVxf/8+6vf/HvL7/19vg/wAD 749 | Ef8SXG7/XvL//y/q+P8p6Pf/NO/+/zzo+v9AwNL/XpWi/zpFTf8HAAf/CwIF/wMABP8EAAH/CwAA/xkF 750 | BP+AZGT/bVVX///5/P/y7/H/6enp/9/f3//Y1tz/sb/L/4e2y/8ceJX/Q9n+/xnQ9/8Y2/f/FNb0/xrQ 751 | +v8byfj/Hcf3/xzH9f8fyvb/FMLt/xTC8f8ZvfL/Jrj0/zyy5f9ht8//yPv//+v+///7/f7//P7///3/ 752 | ///8/f////7////+/f////v//f/+//3////6/////P3////+//////7/+f/+/+P+///F+P//dczn/zCx 753 | 3v8guez/Ibzt/x6/8f8awfr/GcT8/xrF+P8cyvj/G8z3/xrR+f8W0/n/F9X4/yPZ/f87yej/L3SF/6a9 754 | xf/FzM//3t7e/97j4v/p7u3/9vb2/////v///vv/JhoY/xACBP8RAAP/taCj//nr7f/49vb/0dre/wAA 755 | D/8EQFD/cvb//0f0/P847fb/P/H8/1Xz//87scL/KF1n/wAABP8FAAL/CwAA/woAAv8LAgX/CAAB/w0B 756 | Af8uGRv/aVRX/97P0//58vX/8vPx/93i4P/T1Nj/u8rT/425yv8Vbon/R9f//yfb//8R1vL/Edjy/xbR 757 | 9/8Zzvv/Gcv6/xrK+f8ayfT/Gcfx/xfC8P8avPD/HbLr/zu05f9uw9n/y/z//+3+///7/f7//P7///r+ 758 | ///9/v///v3////+/f////r////8//3//v/6/////P3////8/////v///P7+/+n+///P/P//hNbv/zKy 759 | 3f8iu+7/H73t/x6/8f8Zwff/GMP5/xnG+P8ezPr/Hc77/xnQ+v8T1Pv/Ftf5/yXZ/P8xu9j/O32P/6vC 760 | yv/JztH/2tjX/+fp6f/u8e//+Pr6//v8+v///vr/w7u7/xMCBf8TAAH/Mx0f/3RkZf9QTU//AAAH/wAD 761 | EP8OR1b/XNbi/1b2//9L9v7/SvH8/1/z//80oLH/AB4m/wABBf8GAQL/DwIE/w0AA/8JAAH/CQIF/wcA 762 | A/8NAAP/WEdL/6yeoP///v7/7O3p/+Dl4//a3N3/t8bP/5O/0P8NZH//Ttz//x7S+/8V2ff/Etj0/xjV 763 | +/8Yz/n/FMz6/xXK9/8XyfL/Gsjy/xvD8v8bvPD/Kb73/zeu3/9+y97/0/3//+/+///5/f7/+v7///3/ 764 | ///9/v///fz+///+/f////r////3//7/+//5/v//+f3///78/////P////3///P////e////oOj6/zSw 765 | 2f8nv/X/H7nu/yC+8/8dw/j/Gcb4/xnJ+P8azfr/Hc38/xvS/v8X2v//Ftf4/ynb+v8tttD/OYGS/6PC 766 | y//Bz87/2N3b/+fo7P/t7/D/9/z7//L39f/8/v7///z9/7KkqP8ZBAf/GgEA/xoCAv8JAAH/AQQM/wAS 767 | Hv9emqr/TcHS/2H1//9Y+P//UvD9/2bw//8xlaf/AA0Z/wAEC/8EAAH/CgAA/woCA/8JAgX/BQAF/wYA 768 | CP8OAAv/NCYs/42Dg/////z/8/Pt/+Lj4f/a29//tsbS/5C+0P8JYHr/TN78/yLW+f8W1/n/Fdf8/x7V 769 | //8Yzfr/E8z4/xbO9v8ay/D/G8jw/xrF8f8cvvL/Jrjy/z+u3v+l4PT/4/3///H////2/f//+/////z+ 770 | /////v///v7+/////v////z///73////+//5/v//9/3///z7/////f////7///n//v/o////u/f//zqv 771 | 1v8lue3/J8D3/yDB9/8cxvb/Gsj2/xbK9P8c0Pr/Hc/+/xfO+P8T1/v/Ftr4/yzf/P8yu9X/L3uO/5/C 772 | z/++zc//1tva/+Xk6P/v7vL/8/b0//3//v/9//7//Pr6///9///86ez/d19f/zYiIf81LC//bHR7/9v5 773 | //9oqbf/P62//2nz//9d9P//XfL//2zw//8vj5//ABQi/wAACf8IAwX/BwAA/wcAAP8FAAD/CAAH/wYA 774 | B/8OAAn/Khwi/4qAgP//+/b/7u7o/+Dj4f/R0tb/uMjU/4280f8EYHn/T+T//yje/P8Z3P7/EdL6/xrP 775 | /P8cz/z/FND5/xTP9f8ZzPH/G8vw/xfF8P8hw/f/IrPr/0Ku3f+67P7/7P///+/+///z/P//+/////v9 776 | /v///////v7+/////v/9//7///77/////v/9////+v3///z8/////v/////+//z//f/u/f//zf///0mz 777 | 2P8suer/JML4/xnB9v8XyPP/Fsvy/xbL8v8c0fj/HNL8/xfS+P8S2fn/Ftv3/yje+/8ywd3/I3OM/5m9 778 | z/+4xMr/3tzc//Lt7//99/j/+vb1///++v/2+PL////7///9/f//+fv///3////6/f/3+/z/7P///9T7 779 | //9UmaP/UbnG/3Dx//9k8f7/ZPL9/3L1/v8niZP/ACMw/wAADP8DAAX/Jx8g/y4lIv8PBgP/CgAA/w0A 780 | Av8QAAH/KBMW/5iKi////vv/8/fy/9rg3//T1Nj/tMTQ/3WpwP8SdZH/Rd79/yPe/f8W3f3/ENb6/xvR 781 | +/8c0Pr/FNH4/xDO8f8Uze//Gczx/xbD8f8hw/f/Jbfr/0ez3P/J+v//7////+/7///2/f//+/////v9 782 | /v///////////////v/9//7///3+///+/////v///P3///z8/////v/////8//7/+//y//3/0////2rH 783 | 5v83u+r/Ibzz/xXB9f8TyvL/FM7w/xfP8/8X0fT/GNP5/xbW+/8U3Pn/FNr2/yPd/P87zfD/E2eK/4y0 784 | zf+8xtD/5uPl//Pu7//38vP//Pb7//36/P/9//z//f/7//37+v///f////z////+///y//3/3/3+/8j7 785 | //85hJL/TLXD/3r0//9v9P//avD8/3z7//8pjJT/DjxN/wAFFf80Lzj/opeZ/6SZlf8tJR7/CwAA/w4B 786 | AP8YAgT/Lxgc/76wsf//+vn/8vXz/+zy8f/Q09f/rMLO/1iYsP8biaf/Pt7+/xzc+v8S3Pn/Edv6/x7W 787 | /v8bz/n/FdD2/w/N8P8Vz/H/Gs30/xjC8v8iv/H/OMHv/17C5P/Q/f//7/7///H9///4////+/////79 788 | //////////7+/////v/9//7///3////+/////v////3///79/////v/////8//7/+v/2//7/1/z//5bm 789 | //8+tN3/Jrzy/xnE+P8VzPP/E9Dv/xXU9f8S0/X/EdP4/xLU+f8T2vv/Fdn7/yPd//9C3P//EG+a/2+f 790 | wf+7y9v/4+To/+fn5//t7PD/9PL+//T0///0+/7/8vr5//f+///4+////f////n+/f/z//z/3////7T0 791 | //8nfpj/TbzS/3jz//9x8P//cvL//335//8vk5//NW+C/wABEf+XkZz/taaq/6+koP9jXVb/CgIA/w8D 792 | AP8TAAD/NB0h//3w8v//+/z/6urq/+bq6//c5ej/lrnD/ziKo/8cmbj/OuL//xzf+/8R3/j/D9r1/xzV 793 | +/8e0vv/GNH3/xXR9P8WzvL/G8v0/x7C9v8svfH/Rbni/43e+f/X+///8P3///X+///6/////P7///// 794 | //////////39/////v////7/+v3///3+/////v////3////8///////////7//z/+v/3//3/3/3//7f7 795 | //9JstP/Mr/w/yLG+v8ZzPP/FM7w/xTR8v8V0/b/Ftb7/xLV9/8U2vf/F9v5/yDb//8/3f//Jo+6/0iI 796 | q/+nxdj/1eHn/93k5//s7/P/7+z7//Hx///x9/z/9P3///T9///4/v//9vr7//j////o/fr/0P3//3vI 797 | 4v8ojK7/Usfi/3Tx//999///d/H9/3r0//85obL/W6O7/wAAFv+6usr/0cPJ/8zDv/+uqKH/CwIA/w0A 798 | AP8aAwf/a1RZ///7/f/x7+//7O7v/9ni5v/O4+v/g7TE/xl2kP9EyOb/Mtn0/yTh+v8Z4vf/E9r0/xbS 799 | 9f8f1v7/GdL4/xrR+P8XzPP/Gcfy/yDC9v82v/D/S6/R/7f2///f/P//8/////j////6////+vz8//7+ 800 | /v////////39/////v////7/9v7+//r+/////f////3///79///9///////7//7/+v/4/v3/4/7//8n/ 801 | //9vy+T/PL7p/ynE9f8ex/P/G8vz/xzM9P8d0PX/Hdb4/xrY9f8a3fH/G97y/x7a8v9A4v//SsDj/y+A 802 | of9/scj/vNnn/8/h6P/h6Ov/7+nu//rz+P/19vr/9fr9//L1+f/7/P//+/3+//H6/f/k/v//yPz//zqW 803 | uf8gkrr/Y9/9/3Tz//958///e/T+/4T9//9Fs8v/SKLE/wQ/X/8/UGP///3///349f/o39v/EAIE/xIA 804 | A/8iBxH/+eHp///29v/r7uz/4ert/8vf6v+q0ef/UJGt/yGDof9y8///Ptny/y7f9P8g3/P/GNz0/xjU 805 | 9/8d1f3/GtH5/xrO9/8ZyvX/Gcb0/yHE9f85wev/bMPd/83+///o/v//+P////r////6//7//f39//// 806 | /////v7///7+////////////9v79//n//v/+/f///v3///r+///8/v7////7////+//6/v//6v3//9L/ 807 | //+i7///Rbve/zDB7/8jxfX/H8r4/yPR/P8czvf/HNL2/xvX9P8d3vL/It7w/yze8f9T8P//ePX//yiJ 808 | pf9JkKv/lMnd/7zf7P/O4uf/6Orq//Ds6//s8fD/7/T1//P19v/2+Pn/8vv+/+b8///R+f//f8Xd/zig 809 | w/8kn8P/e/b//3jx//9+9f7/gPX+/3r0//9m3PX/M57D/16v1P8AAhr/AAYT/xAUGf8vKCv/CwAD/xkG 810 | D/+nkpv///r//+7s7P/a5ub/y+Lq/7jg8v9tqcf/OIqt/0600f949P//YPD//zjd7v8l3PD/G9z3/xfY 811 | +v8Y1fz/GtH5/xnK9f8ezPv/Icn5/yfG8v9BweT/mub4/9b7///v////+v////v////8/v7///////// 812 | /////v7/////////////////+f/9//n//f/7////+v////f////6//7///38///8/f///P//8/3//+D/ 813 | //+//v//Ycvj/zjB6P8sxvn/Hcj8/xnO/P8W0Pn/FtL7/xjV+/8f2vn/Kdv0/0Pg9P9s+P//fPX//2TR 814 | 5v8zlK7/R5my/4jI2v+z3uf/1ern/97s4f/h8Oj/6PTu//H18P/q8vL/4Pb8/834//+U1PL/RqC//zGm 815 | wf9U0eb/gPP//4Lz/f+H+v3/hPn8/3z1/v969v//LKjK/0Gs0v9cp8f/AAAW/wADFP8AAQz/CQUL/5uW 816 | mP/++fr/7O7u/93p6//L5ev/suDx/3S10f87kbX/Mpa5/4Xu//9+9P//dfr//07p8v8p3fD/Gt35/xPV 817 | +v8U0vv/Fs33/xzN+v8bxvn/KMj4/zfH8P9LvNf/v////+D////z////+/////3///////////////// 818 | ////////////////////////+v/7//r//f/6/v//+f7///f////6//7///39///7/v//+v//9fj//+// 819 | ///Q////jOT0/0G83P8xyPr/Hsj+/xfM/f8Uz/v/FdP+/xbT+v8d1vj/Mdr2/17u//949v//g/j//4f3 820 | //9Gtcv/PqK+/0yjvv9vtcz/nNPg/7jo7v+/7vL/xO7z/8nt9f/H7vz/tOz//3zG4v9GpMj/QK7Q/zq0 821 | yv+C/v//ivf//4nx9v+M+fv/g/X1/4P6/P9/+v//ZeT9/zCpyf9Ns9b/Z7jb/x5Uc/9QdY//x+f6/9j2 822 | ///P8/v/v+nw/7Th7v+UzuH/XqnD/0Sevf83m77/bdj5/4Tx//+B9f//ffv8/2Hz+P8u3u//HNz5/xXX 823 | /P8Q0fn/F9H6/xzP/P8ex/r/MMn2/0G/4f9/3PH/0f///+f8/f/2/////f////////////////////// 824 | /////////////////////////f/7//3//P/+/f///P7///r+///8/v7///3+///8///99f////z///X6 825 | +f/l////u/7//1rE2/82yPL/Hcj7/xzN//8Yzvz/GdP8/xrU9/8g1vT/N930/3T7//+A9vv/i/n3/5D7 826 | /v+K9v//QKzL/zymz/8+ptX/PqbV/0at2v9Uud//YsPn/2XB6v9buuX/P63X/zet1/88t+P/NLLV/27s 827 | /v9/9v//iPH6/5j8//+R+Pr/jfj2/5D8/f+F9vn/h/v//13W6v85tdf/QLji/0256f9Yuur/ZsDp/2vD 828 | 5/9kwt//V7vX/0av0P8/q83/Qa/R/zWiwv9s1fD/i/T//4X1//+B9/z/gvv3/3L+//804PL/Htr3/xzX 829 | /f8T0fr/FNP6/xjP+f8hzPj/N8ju/1i/2P+/////1vn9//L////6//////////////////////////// 830 | /////////////////////////f/5//3//P///v7///3///z+/v/+/v7///3+///8///++v////z////+ 831 | /f/v/fv/0f///5Tr+/83vN7/Ksv3/yHO//8Yzfv/G9L5/x/X9f8n2PP/Q+D0/339//+J9/v/jvf0/5L4 832 | 9/+P9///jfn//1nI7v82qtn/Mavh/zOx5/8zs+P/NLXi/zW05/80tOf/OL/r/zS95P87weP/bOv//4X7 833 | //+G9Pr/l/r//5Py+/+V+Pz/l/v9/5L1+f+R+Pv/iPT4/4r+//9Y1/D/M7je/zO35v84u+z/O7jl/zi2 834 | 3/82uN3/MrfZ/zO52/8ws9T/Na7O/3fo//+U+///i/P//4r3//+I+fv/iPn1/37///9D5ff/I9f0/x/X 835 | +/8Z0/v/EtH4/xrR+P8ozvP/PcHf/5Tm+P/P/f//6P////b+/f/9//////////////////////////// 836 | ////////////////////////+//7//3//P///f7///3///7+/v/+/v7///3+///9/v/9/P7//v7+///+ 837 | ///2/Pv/4f3+/8P///9lz+b/N8Xo/yPM+P8Xzvr/G9X0/yTX8v8w2PD/U+b6/4D2//+Q9///lvr//5b5 838 | /f+S8fv/je78/5T6//+B6///Wsjm/0S42f9Cv97/PsPl/zW74/83vuT/QMfj/1nc7/9++f//ivr//4/z 839 | +P+c/P//mvb//5Pv+v+a+P7/l/X7/5n1//+Y9///l/v//4nz+v+L+///e/L//03Q6/87xeL/M7zc/zzI 840 | 5/84xeD/Osbd/zrB1f9f3u3/kf3//47x//+N8f3/k/j//5L4/f+V+f3/k/f3/4f8//9V6/z/K9Xx/yTW 841 | +f8d1Pv/Gtb5/xrL7P8zzOn/X9Ln/8H////g////7f38//r///////////////////////////////// 842 | /////////////////////////f/8/////v///v////3///z+/v/8/v7///7+///+/f/8/fn////8//r6 843 | +v/7////8f///9P8//+r+f//UMTd/y3J7f8e0fj/Htb0/yLW7/8z1+7/Wej9/4T3//+U9v//mPj+/5z3 844 | /v+f9v//o/r//5Pz+f+U9///lPr//4nz//946///Ytzy/2Xi/v9u7P//efP//4b7//+N+/n/lvz3/6T9 845 | //+d8vr/lO33/6P8//+c9v3/nfT+/6P4//+c9P//nfj//5f1+v+Y9///ifL7/4X///909v//Zun9/13f 846 | 9v9g4PX/cvD//333//+H+f//lPb8/5r0+/+e+///lvX+/5v2/f+e+v//nPn8/4v6//9b7v7/Ltfy/yTV 847 | 9v8f1fn/H9P2/y7Q7f9Bwdb/n/f//9X////w////+P////v9/f////////////////////////////// 848 | ///////////////////////////+/////////v//+/////X//v/3//7///79////+v////n/9/v1//j/ 849 | ///0////8//+/+n//f/U////keLx/0bL5/8r0vP/H9Xy/yDX8f8t1+//TeL2/4f8//+W+vz/nvn9/6T4 850 | /f+k8Pz/q/r//575/v+Y+f3/nfr//5X0/f+S9Pz/m/7//5b3//+U9P//l/b//5f5//+Y//z/nP37/6X5 851 | //+n9v//pPj+/6X5/v+i9vv/p/r//6L0//+m+P//qPn//6j5//+n+///nfj//433/v+L+P//kPj//5X4 852 | //+c+P//m/b//5j3//+b+f//oPb8/6b6//+k+P7/pfn//6b1/v+l+P//nvn//4n8//9V6fn/Ldnv/x/W 853 | 9v8e1ff/KtPz/z7J5P+F4fL/x/z//+v///////7//Pz8///8/v///////////////////////f////3/ 854 | ///9/////f////////////////7////////9////+v////b////3//7///79///9+v////j//P/6//X+ 855 | ///0////+P79//b////m+vv/zv///2rQ4v9D0ej/JtLu/yPZ9/8q2Pb/QNnu/4X+//+X+/v/oPr6/6f4 856 | +/+z+v//qPD8/6T4/v+h+v7/pfn//6b6//+m+/3/p/r8/6T1/P+k9f3/qPj//6T4/v+b+Pf/pP7+/6j4 857 | //+o9f7/qvv//6b3+v+s+v//qvj//6f2//+p9f//qvX9/674/v+s+P7/pPb7/5/7//+Z9/z/nvb9/6j4 858 | //+q9P//q/X//6f2//+n9/7/qvj//6v3/f+s+v//rfn//6/5//+m9/7/mvr//4X+//9H4vH/Kdnw/yDX 859 | 9/8n1PX/OM3o/2DQ5P++/v//4P3///r///////7///r7///+/////////////////////////f////3/ 860 | ///9/////f///////////////////////////////f////v////9/////////////v////7////+//v/ 861 | ///7/////f////v////5/v//5f///77+//9eytX/O9jy/yHT9v8l0vj/N9Pw/3fz/v+V////m/z4/6X8 862 | +f+t9fz/s/j//6r4//+t+///q/X7/7D6/v+q+fz/qvn8/6/7//+p9fv/rfn//6z6//+p/P7/pfj6/6r4 863 | /v+q+P7/rPj+/6z4/v+u+P7/r/f+/673//+u9///sPn9/6/4/P+u+Pz/rPn8/6X5/v+l+f//p/b//6v2 864 | //+u9v//rPT+/634//+s9///sPX+/7D2/f+v+Pz/rPf5/674+v+m+/3/kv7//3n///8y1+j/Jdjz/yPT 865 | 9/830vP/V8zh/6v7///V////7P/8//r//v/7+/v///7////+///+/v7///////////////////////// 866 | //////////////////////////////////////////////////////////////////////////////// 867 | ////////////////////////8//+/9v//P+1////RMPY/zjU9/8s0vn/MdDy/1/i9f+N////nf///6r/ 868 | /v+x+v7/s/f+/7H2//+x9v//t/v//7P4+/+0+/7/tfz//6/2+v+z+v7/tP3//6z2+v+v+f3/sfv//6/5 869 | /f+v+f3/r/n//7D4//+w+P//sPj//7L4//+y+P//svn8/7L5/P+y+f3/sPn9/635//+r+f//r/j//6/3 870 | //+w9f7/tfv//7L3//+z+f//tfn//7T4//+x+Pz/tf7//7P+//+e+f3/if///1Li7f8w1+z/L9n1/zzV 871 | 9P9Kx+P/n/L//9H////n/vr/+P/6//v//v/6/Pz///7///v6/P/+/v7///////////////////////// 872 | //////////////////////////////////////////////////////////////////////////////// 873 | ////////////////////////+v///+///v/U////o/b//1DF4P870fX/NtX7/0DQ7P9w7v//mf3//6X5 874 | 9/+1/P//t/f8/735//+69///uPv8/7f7+v+69/n/ufb4/738//+5/P//svf6/7T7/v+3/P//tfr9/7b6 875 | //+2+v//tPr//7L6//+y+v//sfr//7L6//+y+v//tfr9/7f6/f+5+f7/t/n+/7T6//+y+v//sfn//7P6 876 | /v+5+f3/uPj5/7n4/P++/v//sfX6/7P5//+1+v//q/T8/6r4/v+X+f//dPf//zLM5f802fT/OdLt/07F 877 | 2v+e8f//0////+v////5/vz////8////+////Pv///7///77/f////////////////////////////// 878 | //////////////////////////////////////////////////////////////////////////////// 879 | /////////////////////////f////P8+f/q////zf7//6T5//9Gw9//P9Ly/0HX9f9M1u3/h/f//576 880 | //+r+Pv/u/n//8T0///H9f//wfr7/776+f/G////vff8/7v4/P+39/v/uvr+/7j7/v+7+///ufn9/7n5 881 | /v+4+v//tvr//7T6//+0+v//tPr//7T6//+2+v//t/r9/7n5/f+6+P7/u/n//7r5//+4+f//s/r+/7f6 882 | /f+++vr/xfv7/839/v+v4uT/xf///7X5/v+w+P//p/f//5v6//+D9v//RdTv/zzV9P9A1fD/Tsvg/5vv 883 | +//Q////5vv9//f7/P////7////8//779////fz///7////7/////v////////////////////////// 884 | //////////////////////////////////////////////////////////////////////////////// 885 | /////////////////////////f////r+///x/v//4////8f///+d9///U8zc/0bY7v890+v/UNfr/4L1 886 | //+j+f//w/7//wAKFf8AAAj/2v///8v9/f+38fb/vvz//7r4/v+39fv/v/3//7b0+v+8/P//ufn+/7f5 887 | /v+1+f7/t/n+/7f5/v+3+f7/ufn+/7r4/v+6+P7/uvr//7n5/v+5+P//uvf//7r3//+69///t/n+/7r6 888 | +//C9/T/2f///1p0dP8AAwT/cZ6h/777//+x/P//nP7//374//9N2u//PdTv/0bV8P9Xz+L/mvT//9L/ 889 | ///l/f3/9P3///v////6////9fz5//b99v/9//z///z+///7/////v////////////////////////// 890 | //////////////////////////////////////////////////////////////////////////////// 891 | //////////////////////////7///3+///6////8P3//978/f/K////pPz//1fR3f9M2On/TNnu/1XV 892 | 6v+Q+P//nOXz/wAEDv8KHST/Iz9A/9j+///J/v//ufb6/8D8//+69vz/u/f9/7z6//+7+v7/ufn9/7n5 893 | /f+5+f7/uvj+/7r4/v+6+P7/vPj+/736/v+7+v7/u/n//7n4//+69///u/b//731//+++P7/u/r+/8H7 894 | +v/T//3/sM/M/wAGBf8FHB7/Ll1h/7r///+a9///f/X//1Hd7v9D1ur/Tdft/1jO3/+m/f//x////+L6 895 | +v/4////+/7///r////2////9P/8//r//P/6//v/+/r8///+/////v////////////////////////// 896 | //////////////////////////////////////////////////////////////////////////////// 897 | /////////////////////////f////r9///5/P//+fz///b////n/fv/1v///7L//v9x3OD/UdLh/1Pc 898 | 8v9Q0OX/i/L//w1LVv8AGyH/AA4O/2aAgP/R/f7/wff3/7/3+P+++vr/vPr6/7////+29vf/v/z+/775 899 | +//A+P3/wfj9/8H5/v+/+f7/vfr+/7r6/v+6+v//uvn//7r3//++9v//v/b//8D3/P/B+fr/w/z7/8z+ 900 | +v/Y+vT/ABAM/xIkJf8AAgf/mtvj/6D///938/7/S9bm/0zZ7P9R0+T/btjj/7b////I+Pr/6v////b/ 901 | ///3+Pz/9/r///n9///4////+v////v//v/6/fv/+/z////+/////v////////////////////////// 902 | //////////////////////////////////////////////////////////////////////////////// 903 | /////////////////////////f////v////7/P////z////5/v////7/7//6/9T/+/+6////iu/4/1zQ 904 | 4f9Y1en/Zdnq/4ni7P8AFBj/BSQl/wAJCv96nJz/1v///8z6+//J+/v/w/v8/7/4+f+++vr/vvn7/8D5 905 | +//B+Pv/wfj9/8D4/f+/+f7/u/r+/7j7/v+4+/7/uPr//7z4/v/F9/3/yfb6/8j4+v/L+fr/zv37/9f+ 906 | /P8KJCT/ByAi/wANE/9Kg4z/pP///23h7P9S1+X/U9rq/1jS4P+J7vf/uv///9P//v/t////9vv8//r4 907 | /v/+/P///f7///v////5/v3//P/9//r8/P/7/f7//f7///z7/////v////////////////////////// 908 | //////////////////////////////////////////////////////////////////////////////// 909 | //////////////////////////////z//f////////3////9/////v//+//+/+v//f/a////yv///7f/ 910 | //+B3er/adLf/2re5f9Vtrr/AAkN/w8lKv8ABg3/VWtx/+H+///W+f3/1Pz//879///G+/7/w/v//7/8 911 | //+8+///uvn9/7n5/f+5+vv/ufr7/7n6+/+3+vv/s/n4/8L+/f/Z////2/n6/9z7/P/d////sNHU/wAX 912 | Hv8IHir/ABQi/wBDUP+T9///Wdjh/1bc5v9g1+b/b9Xi/7D////G////3v////D////7/v////3///77 913 | ///+/f/////8////+v////r///76//38/v/8/P///v3////+/////v////////////////////////// 914 | //////////////////////////////////////////////////////////////////////////////// 915 | //////////////////////////////7//f////v////+/////v///v///v7+//f////v/v//5Pv9/9v/ 916 | ///C/v//pPX8/3Tc4f+B4ub/Xpab/wAJDv8OISj/AxMa/wISGf9ecHf/Zn2F/wAeJP84ZWn/xPz//7j4 917 | /P+0+fz/s/r9/7X6/f+3+vv/ufr7/7j5+v+4+vn/vf///6fg3f8ADAz/Tl1f/3SFiP8tQUb/AAYO/wEf 918 | Kv8AFSX/ACg5/5Lq+v9n1+P/Y9zm/2jZ4/+d9f//vP///9D////j////8v7+///+/////P////z///78 919 | ///+/v7////5////9/////n////8//3+///9/f////7////+//////////////////////////////// 920 | //////////////////////////////////////////////////////////////////////////////// 921 | //////////////////////////////z//f/8//v//v/6//z/+v/5//3/+f7///77///++///+P7//+3+ 922 | ///h////2v///8j///+08Pb/reTp/2+coP8ADw//BRob/xghJP8OEhf/DhQb/w4hJv8AAwf/yf///7T8 923 | /P+v/fz/sfz+/7P6/f+4+Pz/ufj8/7r5/f+8/P3/wf///0JydP8AERb/Exke/xEQGf8UGSL/DCAr/wAS 924 | H/8APUr/j+Tz/3jY5f93097/o+v1/8b////R+///3/z//+v////1////+v3////+/////f////7///z+ 925 | /v/8//r//v/2//z/9v/7//n/+v/8//r////7/////P7+//7+/v////////////////////////////// 926 | //////////////////////////////////////////////////////////////////////////////// 927 | //////////////////////////////3//v/8//v//P/4//r/+v/5//3/+v7////6////+////P3///P7 928 | +//0////5/n6/+D7///e////1f///9H6/P+x0dD/HzQx/wADBP8MDRH/DxUa/wAIDv8TRkn/tf///6P/ 929 | //+e////ov3//6f7//+s+f//rvn//6z5//+t+///tP3//5PP1f8ABg7/ABIY/wkUHP8ADRX/AAwT/058 930 | g/+f5ez/k+Tr/6Ly+f+/////1/7//+n////x////9v3///z+///+/f///v3///z9///8/f///P7+//z/ 931 | +//7//f//v/3//z/9//6//r/+v/8//r//v/6//7//P/9//7//f////////////////////////////// 932 | //////////////////////////////////////////////////////////////////////////////// 933 | /////////////////////////f/+//v//P/7//z//v/9///+/v///v7///7////+////////+f79//j/ 934 | ///0+/7/7/j7//L+///v////5Pj5/+r//v/t//7/8////9DY2P+NmJz/ZX2D/3mrsf+W6u//a9ja/2Pf 935 | 5f9l5Oz/c+n0/4Ds/f+I7v//huz//3zn/P955ff/eeLw/4Dg7f+K1+D/V5Wb/0d6fP9zn57/xfHr/9H9 936 | 9//N/Pn/1////9r////f/v//6Pn8//T9///0+/7/+fr+///7////+////v3///r+///6//3/+v/6//7/ 937 | +v/+//r////8/////v/+//3//v/9//7/+//+//v//v/9//z//f////////////////////////////// 938 | //////////////////////////////////////////////////////////////////////////////// 939 | /////////////////////////f////v//v/9//7///7////9/////f////7//////P/9//z/+f78//v/ 940 | ///6/v//+v////n+///1+vv/+P////f//v/4////9f39//j9///t+f3/4/3//8////+o9fj/kfL2/4Ht 941 | 8f965+//euDs/3ra5/991+j/fNjp/3vb6/943ez/gOPx/4nl8P+o9v3/s/b5/8j+/v/Y////2f/7/+H/ 942 | +//q//7/6//6/+78+P/4////+/////j9/P/9/////Pv9///8/////P///v3///r//v/7//z//f/7//// 943 | +/////7///7////+/////v///////////P////z////+//////////////////////////////////// 944 | //////////////////////////////////////////////////////////////////////////////// 945 | //////////////////////////////3////+/f////z////9/////////f/+//r//P/6//v//f76//79 946 | +f/9//7//P/9//3////8/v7/+/////n+/f/7////9/r+//r////4/v//7vr//+b6///h////2v///9T/ 947 | ///S////0v///9L////T////0f///9D////N////yv///8n8///Y////3v3//+v////v/v//6/v6//L/ 948 | /v/0//3/+v/9/////v/++vn////+//3//v/4+ff////+/////P////z//P/9//r//f/8//3//v/9///+ 949 | /////v////3////9///9/v//+/////3///////////3+///9/v////////////////////////////// 950 | //////////////////////////////////////////////////////////////////////////////// 951 | //////////////////////////7///79///+/P////z///79///+/v7/+//8//b//P/4//v////7///+ 952 | +f/+//v//f/8///9/P/9/vz//f////j9/P/9/P///P3///r9///0+P3/+P7///f9///2/f//+P////T+ 953 | /v/z//7/8P/+/+z//f/r//r/6f/4/+r/+f/m//n/4v/+/+L////s////8P3///n8///7/P//+v////r/ 954 | ///9//////38///+/v////z//fz4//z/+////vr//P74////+//8//j/+v/7//n/+v/9/f3///7+///8 955 | /////P////v///z8///7/v//+v////3///////////z////7/v////////////////////////////// 956 | ////////////////////////AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 957 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 958 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 959 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 960 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 961 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 962 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 963 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 964 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 965 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 966 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 967 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 968 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 969 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 970 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 971 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 972 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 973 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 974 | AAAAAAAAAAAAAAAAAAAAAAAA 975 | 976 | 977 | -------------------------------------------------------------------------------- /ATOMBIOSReader/ATOMBIOSReader.vb: -------------------------------------------------------------------------------- 1 | Public Class ATOMBIOSReader 2 | 'Define offset To location Of ROM header. 3 | 4 | Dim OFFSET_TO_POINTER_TO_ATOM_ROM_HEADER As Integer = 72 '0x00000048L 5 | Dim OFFSET_TO_ATOM_ROM_IMAGE_SIZE As Integer = 2 '0x00000002L 6 | Dim INDEX_COMMAND_TABLE() As String = New String() { 7 | "ASIC_Init", "GetDisplaySurfaceSize", "ASIC_RegistersInit", 8 | "VRAM_BlockVenderDetection", "SetClocksRatio/DIGxEncoderControl", "MemoryControllerInit", 9 | "EnableCRTCMemReq", "MemoryParamAdjust", "DVOEncoderControl", 10 | "GPIOPinControl", "SetEngineClock", "SetMemoryClock", 11 | "SetPixelClock", "DynamicClockGating", "ResetMemoryDLL", 12 | "ResetMemoryDevice", "MemoryPLLInit", "AdjustDisplayPll", 13 | "AdjustMemoryController", "EnableASIC_StaticPwrMgt", "ASIC_StaticPwrMgtStatusChange/SetUniphyInstance", 14 | "DAC_LoadDetection", "LVTMAEncoderControl", "LCD1OutputControl", 15 | "DAC1EncoderControl", "DAC2EncoderControl", "DVOOutputControl", 16 | "CV1OutputControl", "GetConditionalGoldenSetting/SetCRTC_DPM_State", "TVEncoderControl", 17 | "TMDSAEncoderControl", "LVDSEncoderControl", "TV1OutputControl", 18 | "EnableScaler", "BlankCRTC", "EnableCRTC", 19 | "GetPixelClock", "EnableVGA_Render", "EnableVGA_Access/GetSCLKOverMCLKRatio", 20 | "SetCRTC_Timing", "SetCRTC_OverScan", "SetCRTC_Replication", 21 | "SelectCRTC_Source", "EnableGraphSurfaces", "UpdateCRTC_DoubleBufferRegisters", 22 | "LUT_AutoFill", "EnableHW_IconCursor", "GetMemoryClock", 23 | "GetEngineClock", "SetCRTC_UsingDTDTiming", "ExternalEncoderControl", 24 | "LVTMAOutputControl", "VRAM_BlockDetectionByStrap", "MemoryCleanUp", 25 | "ReadEDIDFromHWAssistedI2C/ProcessI2cChannelTransaction", 26 | "WriteOneByteToHWAssistedI2C", "ReadHWAssistedI2CStatus/HPDInterruptService", 27 | "SpeedFanControl", "PowerConnectorDetection", "MC_Synchronization", 28 | "ComputeMemoryEnginePLL", "MemoryRefreshConversion", "VRAM_GetCurrentInfoBlock", 29 | "DynamicMemorySettings", "MemoryTraining", "EnableSpreadSpectrumOnPPLL", 30 | "TMDSAOutputControl", "SetVoltage", "DAC1OutputControl", 31 | "DAC2OutputControl", "SetupHWAssistedI2CStatus", "ClockSource", 32 | "MemoryDeviceInit", "EnableYUV", "DIG1EncoderControl", 33 | "DIG2EncoderControl", "DIG1TransmitterControl/UNIPHYTransmitterControl", 34 | "DIG2TransmitterControl/LVTMATransmitterControl", 35 | "ProcessAuxChannelTransaction", "DPEncoderService"} 36 | Dim INDEX_DATA_TABLE() As String = New String() { 37 | "UtilityPipeLine", "MultimediaCapabilityInfo", "MultimediaConfigInfo", 38 | "StandardVESA_Timing", "FirmwareInfo", "DAC_Info", 39 | "LVDS_Info", "TMDS_Info", "AnalogTV_Info", 40 | "SupportedDevicesInfo", "GPIO_I2C_Info", "VRAM_UsageByFirmware", 41 | "GPIO_Pin_LUT", "VESA_ToInternalModeLUT", "ComponentVideoInfo", 42 | "PowerPlayInfo", "CompassionateData", "SaveRestoreInfo/DispDevicePriorityInfo", 43 | "PPLL_SS_Info/SS_Info", "OemInfo", "XTMDS_Info", 44 | "MclkSS_Info", "Object_Info/Object_Header", "IndirectIOAccess", 45 | "MC_InitParameter/AdjustARB_SEQ", "ASIC_VDDC_Info", "ASIC_InternalSS_Info/ASIC_MVDDC_Info", 46 | "TV_VideoMode/DispOutInfo", "VRAM_Info", "MemoryTrainingInfo/ASIC_MVDDQ_Info", 47 | "IntegratedSystemInfo", "ASIC_ProfilingInfo/ASIC_VDDCI_Info", 48 | "VoltageObjectInfo/VRAM_GPIO_DetectionInfo", 49 | "PowerSourceInfo"} 50 | 51 | ' Common header for all ROM Data tables. 52 | 'Every table pointed _ATOM_MASTER_DATA_TABLE has this common header. 53 | 'And the pointer actually points to this header. 54 | 55 | Public Structure _ATOM_COMMON_TABLE_HEADER 56 | Dim usStructureSize As UShort 57 | Dim ucTableFormatRevision As Byte 'Change it When the Parser Is Not backward compatible 58 | Dim ucTableContentRevision As Byte 'Change it only When the table needs To change but the firmware 59 | 'Image can't be updated, while Driver needs to carry the new table! 60 | 61 | 'Return usStructureSize & ucTableFormatRevision & ucTableContentRevision 62 | End Structure '} ATOM_COMMON_TABLE_HEADER 63 | 64 | 65 | '/****************************************************************************/ 66 | '// Structure stores the ROM header. 67 | '/****************************************************************************/ 68 | Public Structure _ATOM_ROM_HEADER 69 | Dim sHeader As _ATOM_COMMON_TABLE_HEADER 70 | Dim uaFirmWareSignature() As Byte '/*Signature To distinguish between Atombios And non-atombios, 71 | 'atombios should init it As "ATOM", don't change the position */ 72 | Dim usBiosRuntimeSegmentAddress As UShort 73 | Dim usProtectedModeInfoOffset As UShort 74 | Dim usConfigFilenameOffset As UShort 75 | Dim usCRC_BlockOffset As UShort 76 | Dim usBIOS_BootupMessageOffset As UShort 77 | Dim usInt10Offset As UShort 78 | Dim usPciBusDevInitCode As UShort 79 | Dim usIoBaseAddress As UShort 80 | Dim usSubsystemVendorID As UShort 81 | Dim usSubsystemID As UShort 82 | Dim usPCI_InfoOffset As UShort 83 | Dim usMasterCommandTableOffset As UShort '/*Offset For SW To Get all command table offsets, Don't change the position */ 84 | Dim usMasterDataTableOffset As UShort '/*Offset For SW To Get all data table offsets, Don't change the position */ 85 | Dim ucExtendedFunctionCode As Byte 86 | Dim ucReserved As Byte 87 | 88 | 'Return ATOM_COMMON_TABLE_HEADER & uaFirmWareSignature(4) & usBiosRuntimeSegmentAddress & usProtectedModeInfoOffset & usConfigFilenameOffset & 89 | 'usCRC_BlockOffset & usBIOS_BootupMessageOffset & usInt10Offset & usPciBusDevInitCode & usIoBaseAddress & usSubsystemVendorID & usSubsystemID & 90 | 'usPCI_InfoOffset & usMasterCommandTableOffset & usMasterDataTableOffset & ucExtendedFunctionCode & ucReserved 91 | End Structure '}ATOM_ROM_HEADER; 92 | 93 | '/*==============================Command Table Portion==================================== */ 94 | 95 | '/****************************************************************************/ 96 | '// Structures used in Command.mtb 97 | '/****************************************************************************/ 98 | Public Structure _ATOM_MASTER_LIST_OF_COMMAND_TABLES 99 | Dim ASIC_Init As UShort '//Function Table, used by various SW components, latest version 1.1 100 | Dim GetDisplaySurfaceSize As UShort '//Atomic Table, Used by Bios when enabling HW ICON 101 | Dim ASIC_RegistersInit As UShort '//Atomic Table, indirectly used by various SW components, called from ASIC_Init 102 | Dim VRAM_BlockVenderDetection As UShort '//Atomic Table, used only by Bios 103 | Dim DIGxEncoderControl As UShort '//Only used by Bios 104 | Dim MemoryControllerInit As UShort '//Atomic Table, indirectly used by various SW components, called from ASIC_Init 105 | Dim EnableCRTCMemReq As UShort '//Function Table, directly used by various SW components, latest version 2.1 106 | Dim MemoryParamAdjust As UShort '//Atomic Table, indirectly used by various SW components, called from SetMemoryClock if needed 107 | Dim DVOEncoderControl As UShort '//Function Table, directly used by various SW components, latest version 1.2 108 | Dim GPIOPinControl As UShort '//Atomic Table, only used by Bios 109 | Dim SetEngineClock As UShort '//Function Table, directly used by various SW components, latest version 1.1 110 | Dim SetMemoryClock As UShort '//Function Table, directly used by various SW components, latest version 1.1 111 | Dim SetPixelClock As UShort '//Function Table, directly used by various SW components, latest version 1.2 112 | Dim EnableDispPowerGating As UShort '//Atomic Table, indirectly used by various SW components, called from ASIC_Init 113 | Dim ResetMemoryDLL As UShort '//Atomic Table, indirectly used by various SW components, called from SetMemoryClock 114 | Dim ResetMemoryDevice As UShort '//Atomic Table, indirectly used by various SW components, called from SetMemoryClock 115 | Dim MemoryPLLInit As UShort '//Atomic Table, used only by Bios 116 | Dim AdjustDisplayPll As UShort '//Atomic Table, used by various SW componentes. 117 | Dim AdjustMemoryController As UShort '//Atomic Table, indirectly used by various SW components, called from SetMemoryClock 118 | Dim EnableASIC_StaticPwrMgt As UShort '//Atomic Table, only used by Bios 119 | Dim SetUniphyInstance As UShort '//Atomic Table, only used by Bios 120 | Dim DAC_LoadDetection As UShort '//Atomic Table, directly used by various SW components, latest version 1.2 121 | Dim LVTMAEncoderControl As UShort '//Atomic Table, directly used by various SW components, latest version 1.3 122 | Dim HW_Misc_Operation As UShort '//Atomic Table, directly used by various SW components, latest version 1.1 123 | Dim DAC1EncoderControl As UShort '//Atomic Table, directly used by various SW components, latest version 1.1 124 | Dim DAC2EncoderControl As UShort '//Atomic Table, directly used by various SW components, latest version 1.1 125 | Dim DVOOutputControl As UShort '//Atomic Table, directly used by various SW components, latest version 1.1 126 | Dim CV1OutputControl As UShort '//Atomic Table, Atomic Table, Obsolete from Ry6xx, use DAC2 Output instead 127 | Dim GetConditionalGoldenSetting As UShort '//Only used by Bios 128 | Dim TVEncoderControl As UShort '//Function Table, directly used by various SW components, latest version 1.1 129 | Dim PatchMCSetting As UShort '//only used by BIOS 130 | Dim MC_SEQ_Control As UShort '//only used by BIOS 131 | Dim Gfx_Harvesting As UShort '//Atomic Table, Obsolete from Ry6xx, Now only used by BIOS for GFX harvesting 132 | Dim EnableScaler As UShort '//Atomic Table, used only by Bios 133 | Dim BlankCRTC As UShort '//Atomic Table, directly used by various SW components, latest version 1.1 134 | Dim EnableCRTC As UShort '//Atomic Table, directly used by various SW components, latest version 1.1 135 | Dim GetPixelClock As UShort '//Atomic Table, directly used by various SW components, latest version 1.1 136 | Dim EnableVGA_Render As UShort '//Function Table, directly used by various SW components, latest version 1.1 137 | Dim GetSCLKOverMCLKRatio As UShort '//Atomic Table, only used by Bios 138 | Dim SetCRTC_Timing As UShort '//Atomic Table, directly used by various SW components, latest version 1.1 139 | Dim SetCRTC_OverScan As UShort '//Atomic Table, used by various SW components, latest version 1.1 140 | Dim SetCRTC_Replication As UShort '//Atomic Table, used only by Bios 141 | Dim SelectCRTC_Source As UShort '//Atomic Table, directly used by various SW components, latest version 1.1 142 | Dim EnableGraphSurfaces As UShort '//Atomic Table, used only by Bios 143 | Dim UpdateCRTC_DoubleBufferRegisters As UShort '//Atomic Table, used only by Bios 144 | Dim LUT_AutoFill As UShort '//Atomic Table, only used by Bios 145 | Dim EnableHW_IconCursor As UShort '//Atomic Table, only used by Bios 146 | Dim GetMemoryClock As UShort '//Atomic Table, directly used by various SW components, latest version 1.1 147 | Dim GetEngineClock As UShort '//Atomic Table, directly used by various SW components, latest version 1.1 148 | Dim SetCRTC_UsingDTDTiming As UShort '//Atomic Table, directly used by various SW components, latest version 1.1 149 | Dim ExternalEncoderControl As UShort '//Atomic Table, directly used by various SW components, latest version 2.1 150 | Dim LVTMAOutputControl As UShort '//Atomic Table, directly used by various SW components, latest version 1.1 151 | Dim VRAM_BlockDetectionByStrap As UShort '//Atomic Table, used only by Bios 152 | Dim MemoryCleanUp As UShort '//Atomic Table, only used by Bios 153 | Dim ProcessI2cChannelTransaction As UShort '//Function Table, only used by Bios 154 | Dim WriteOneByteToHWAssistedI2C As UShort '//Function Table, indirectly used by various SW components 155 | Dim ReadHWAssistedI2CStatus As UShort '//Atomic Table, indirectly used by various SW components 156 | Dim SpeedFanControl As UShort '//Function Table, indirectly used by various SW components, called from ASIC_Init 157 | Dim PowerConnectorDetection As UShort '//Atomic Table, directly used by various SW components, latest version 1.1 158 | Dim MC_Synchronization As UShort '//Atomic Table, indirectly used by various SW components, called from SetMemoryClock 159 | Dim ComputeMemoryEnginePLL As UShort '//Atomic Table, indirectly used by various SW components, called from SetMemory/EngineClock 160 | Dim MemoryRefreshConversion As UShort '//Atomic Table, indirectly used by various SW components, called from SetMemory Or SetEngineClock 161 | Dim VRAM_GetCurrentInfoBlock As UShort '//Atomic Table, used only by Bios 162 | Dim DynamicMemorySettings As UShort '//Atomic Table, indirectly used by various SW components, called from SetMemoryClock 163 | Dim MemoryTraining As UShort '//Atomic Table, used only by Bios 164 | Dim EnableSpreadSpectrumOnPPLL As UShort '//Atomic Table, directly used by various SW components, latest version 1.2 165 | Dim TMDSAOutputControl As UShort '//Atomic Table, directly used by various SW components, latest version 1.1 166 | Dim SetVoltage As UShort '//Function Table, directly And/Or indirectly used by various SW components, latest version 1.1 167 | Dim DAC1OutputControl As UShort '//Atomic Table, directly used by various SW components, latest version 1.1 168 | Dim DAC2OutputControl As UShort '//Atomic Table, directly used by various SW components, latest version 1.1 169 | Dim ComputeMemoryClockParam As UShort '//Function Table, only used by Bios, obsolete soon.Switch to use "ReadEDIDFromHWAssistedI2C" 170 | Dim ClockSource As UShort '//Atomic Table, indirectly used by various SW components, called from ASIC_Init 171 | Dim MemoryDeviceInit As UShort '//Atomic Table, indirectly used by various SW components, called from SetMemoryClock 172 | Dim GetDispObjectInfo As UShort '//Atomic Table, indirectly used by various SW components, called from EnableVGARender 173 | Dim DIG1EncoderControl As UShort '//Atomic Table, directly used by various SW components, latest version 1.1 174 | Dim DIG2EncoderControl As UShort '//Atomic Table, directly used by various SW components, latest version 1.1 175 | Dim DIG1TransmitterControl As UShort '//Atomic Table, directly used by various SW components, latest version 1.1 176 | Dim DIG2TransmitterControl As UShort '//Atomic Table, directly used by various SW components, latest version 1.1 177 | Dim ProcessAuxChannelTransaction As UShort '//Function Table, only used by Bios 178 | Dim DPEncoderService As UShort '//Function Table, only used by Bios 179 | Dim GetVoltageInfo As UShort '//Function Table, only used by Bios since SI 180 | End Structure '}ATOM_MASTER_LIST_OF_COMMAND_TABLES; 181 | 182 | ' // For backward compatible 183 | Dim ATOM_MASTER_LIST_OF_COMMAND_TABLES As _ATOM_MASTER_LIST_OF_COMMAND_TABLES 184 | Dim ReadEDIDFromHWAssistedI2C = ATOM_MASTER_LIST_OF_COMMAND_TABLES.ProcessI2cChannelTransaction 185 | Dim DPTranslatorControl = ATOM_MASTER_LIST_OF_COMMAND_TABLES.DIG2EncoderControl 186 | Dim UNIPHYTransmitterControl = ATOM_MASTER_LIST_OF_COMMAND_TABLES.DIG1TransmitterControl 187 | Dim LVTMATransmitterControl = ATOM_MASTER_LIST_OF_COMMAND_TABLES.DIG2TransmitterControl 188 | Dim SetCRTC_DPM_State = ATOM_MASTER_LIST_OF_COMMAND_TABLES.GetConditionalGoldenSetting 189 | Dim ASIC_StaticPwrMgtStatusChange = ATOM_MASTER_LIST_OF_COMMAND_TABLES.SetUniphyInstance 190 | Dim HPDInterruptService = ATOM_MASTER_LIST_OF_COMMAND_TABLES.ReadHWAssistedI2CStatus 191 | Dim EnableVGA_Access = ATOM_MASTER_LIST_OF_COMMAND_TABLES.GetSCLKOverMCLKRatio 192 | Dim EnableYUV = ATOM_MASTER_LIST_OF_COMMAND_TABLES.GetDispObjectInfo 193 | Dim DynamicClockGating = ATOM_MASTER_LIST_OF_COMMAND_TABLES.EnableDispPowerGating 194 | Dim SetupHWAssistedI2CStatus = ATOM_MASTER_LIST_OF_COMMAND_TABLES.ComputeMemoryClockParam 195 | 196 | Dim TMDSAEncoderControl = ATOM_MASTER_LIST_OF_COMMAND_TABLES.PatchMCSetting 197 | Dim LVDSEncoderControl = ATOM_MASTER_LIST_OF_COMMAND_TABLES.MC_SEQ_Control 198 | Dim LCD1OutputControl = ATOM_MASTER_LIST_OF_COMMAND_TABLES.HW_Misc_Operation 199 | Dim TV1OutputControl = ATOM_MASTER_LIST_OF_COMMAND_TABLES.Gfx_Harvesting 200 | 201 | Public Structure _ATOM_MASTER_COMMAND_TABLE 202 | Dim sHeader As _ATOM_COMMON_TABLE_HEADER 203 | Dim ListOfCommandTables As _ATOM_MASTER_LIST_OF_COMMAND_TABLES 204 | End Structure '}ATOM_MASTER_COMMAND_TABLE; 205 | 206 | '//==============================Data Table Portion==================================== 207 | 208 | '/****************************************************************************/ 209 | '// Structure used in Data.mtb 210 | '/****************************************************************************/ 211 | Public Structure _ATOM_MASTER_LIST_OF_DATA_TABLES 212 | Dim UtilityPipeLine As UShort '// Offest For the utility To Get parser info, Don't change this position! 213 | Dim MultimediaCapabilityInfo As UShort '// Only used by MM Lib, latest version 1.1, Not configuable from Bios, need to include the table to build Bios 214 | Dim MultimediaConfigInfo As UShort '// Only used by MM Lib, latest version 2.1, Not configuable from Bios, need to include the table to build Bios 215 | Dim StandardVESA_Timing As UShort '// Only used by Bios 216 | Dim FirmwareInfo As UShort '// Shared by various SW components, latest version 1.4 217 | Dim PaletteData As UShort '// Only used by BIOS 218 | Dim LCD_Info As UShort '// Shared by various SW components, latest version 1.3, was called LVDS_Info 219 | Dim DIGTransmitterInfo As UShort '// Internal used by VBIOS only version 3.1 220 | Dim AnalogTV_Info As UShort '// Shared by various SW components, latest version 1.1 221 | Dim SupportedDevicesInfo As UShort '// Will be obsolete from R600 222 | Dim GPIO_I2C_Info As UShort '// Shared by various SW components, latest version 1.2 will be used from R600 223 | Dim VRAM_UsageByFirmware As UShort '// Shared by various SW components, latest version 1.3 will be used from R600 224 | Dim GPIO_Pin_LUT As UShort '// Shared by various SW components, latest version 1.1 225 | Dim VESA_ToInternalModeLUT As UShort '// Only used by Bios 226 | Dim ComponentVideoInfo As UShort '// Shared by various SW components, latest version 2.1 will be used from R600 227 | Dim PowerPlayInfo As UShort '// Shared by various SW components, latest version 2.1, New Design from R600 228 | Dim CompassionateData As UShort '// Will be obsolete from R600 229 | Dim SaveRestoreInfo As UShort '// Only used by Bios 230 | Dim PPLL_SS_Info As UShort '// Shared by various SW components, latest version 1.2, used To Call SS_Info, change to New name because of int ASIC SS info 231 | Dim OemInfo As UShort '// Defined And used by external SW, should be obsolete soon 232 | Dim XTMDS_Info As UShort '// Will be obsolete from R600 233 | Dim MclkSS_Info As UShort '// Shared by various SW components, latest version 1.1, only enabled when ext SS chip Is used 234 | Dim Object_Header As UShort '// Shared by various SW components, latest version 1.1 235 | Dim IndirectIOAccess As UShort '// Only used by Bios, this table position can't change at all!! 236 | Dim MC_InitParameter As UShort '// Only used by command table 237 | Dim ASIC_VDDC_Info As UShort '// Will be obsolete from R600 238 | Dim ASIC_InternalSS_Info As UShort '// New tabel name from R600, used to be called "ASIC_MVDDC_Info" 239 | Dim TV_VideoMode As UShort '// Only used by command table 240 | Dim VRAM_Info As UShort '// Only used by command table, latest version 1.3 241 | Dim MemoryTrainingInfo As UShort '// Used for VBIOS And Diag utility for memory training purpose since R600. the New table rev start from 2.1 242 | Dim IntegratedSystemInfo As UShort '// Shared by various SW components 243 | Dim ASIC_ProfilingInfo As UShort '// New table name from R600, used to be called "ASIC_VDDCI_Info" for pre-R600 244 | Dim VoltageObjectInfo As UShort '// Shared by various SW components, latest version 1.1 245 | Dim PowerSourceInfo As UShort '// Shared by various SW components, latest versoin 1.1 246 | End Structure '}ATOM_MASTER_LIST_OF_DATA_TABLES; 247 | 248 | '// For backward compatible 249 | Dim ATOM_MASTER_LIST_OF_DATA_TABLES As _ATOM_MASTER_LIST_OF_DATA_TABLES 250 | Dim LVDS_Info = ATOM_MASTER_LIST_OF_DATA_TABLES.LCD_Info 251 | Dim DAC_Info = ATOM_MASTER_LIST_OF_DATA_TABLES.PaletteData 252 | Dim TMDS_Info = ATOM_MASTER_LIST_OF_DATA_TABLES.DIGTransmitterInfo 253 | 254 | Public Structure _ATOM_MASTER_DATA_TABLE 255 | Dim sHeader As _ATOM_COMMON_TABLE_HEADER 256 | Dim ListOfDataTables As _ATOM_MASTER_LIST_OF_DATA_TABLES 257 | End Structure '}ATOM_MASTER_DATA_TABLE; 258 | 259 | Public Function ReadingBytes(ByVal Offset As UShort, ByVal NoOfBytes As Integer, ByRef LittleEndian As UShort) As UShort 260 | Dim ENCODE As New System.Text.UnicodeEncoding(True, True, False) 261 | Dim HexValue() As Byte 262 | 'Dim ATOM_ROM_HEADER As _ATOM_ROM_HEADER 263 | 'ReDim ATOM_ROM_HEADER.uaFirmWareSignature(4) 264 | 'Dim ATOM_MASTER_COMMAND_TABLES As _ATOM_MASTER_COMMAND_TABLE 265 | 'Dim ATOM_MASTER_DATA_TABLES As _ATOM_MASTER_DATA_TABLE 266 | 267 | Using FS As New IO.FileStream(txtFileName.Text, IO.FileMode.Open, IO.FileAccess.Read), 268 | BR As New IO.BinaryReader(FS, ENCODE) 269 | FS.Position = Offset 270 | If NoOfBytes = 2 Then 271 | Dim startIdx As Integer = 0 272 | HexValue = BR.ReadBytes(NoOfBytes) 273 | LittleEndian = BitConverter.ToUInt16(HexValue, startIdx) 274 | ElseIf NoOfBytes = 1 Then 275 | LittleEndian = FS.ReadByte 276 | End If 277 | 278 | Return LittleEndian 279 | End Using 280 | 281 | ''debug 282 | 'Debug.WriteLine("LittleEndian = " & LittleEndian & " (0x" & Hex(LittleEndian) & ")") 283 | End Function 284 | 285 | Public Function WritingReport(ByVal i As Integer, ByVal Offset As UShort, ByVal Tbls As String) As String 286 | Dim REPO As System.IO.StreamWriter 287 | Dim LittleEndian As UShort 288 | Dim DebugOutput As String = "" 289 | 290 | REPO = My.Computer.FileSystem.OpenTextFileWriter(txtFileName.Text + ".txt", True) 291 | 292 | If i = 0 And Tbls = "COMMAND" Then 293 | REPO.WriteLine("") 294 | REPO.WriteLine("Command Tables:") 295 | ElseIf i = 0 And Tbls = "DATA" Then 296 | REPO.WriteLine("") 297 | REPO.WriteLine("Data Tables:") 298 | End If 299 | 300 | If Tbls = "COMMAND" Then 301 | If Offset = 0 Then 302 | DebugOutput = " " & Hex(i).ToString.PadLeft(4, "0").ToLower & ": - " & "(" & INDEX_COMMAND_TABLE(i) & ")" 303 | Else 304 | DebugOutput = " " & Hex(i).ToString.PadLeft(4, "0").ToLower & ": " & Hex(Offset).ToString.PadLeft(4, "0").ToLower & 305 | " Len " & Hex(ReadingBytes(Offset, 2, LittleEndian)).ToString.PadLeft(4, "0").ToLower & " (" & INDEX_COMMAND_TABLE(i) & ")" 306 | End If 307 | ElseIf Tbls = "DATA" Then 308 | If Offset = 0 Then 309 | DebugOutput = " " & Hex(i).ToString.PadLeft(4, "0").ToLower & ": - " & "(" & INDEX_DATA_TABLE(i) & ")" 310 | Else 311 | DebugOutput = " " & Hex(i).ToString.PadLeft(4, "0").ToLower & ": " & Hex(Offset).ToString.PadLeft(4, "0").ToLower & 312 | " Len " & Hex(ReadingBytes(Offset, 2, LittleEndian)).ToString.PadLeft(4, "0").ToLower & 313 | " Rev " & Hex(ReadingBytes(Offset + 2, 1, LittleEndian)).ToString.PadLeft(2, "0").ToLower & 314 | ":" & Hex(ReadingBytes(Offset + 3, 1, LittleEndian)).ToString.PadLeft(2, "0").ToLower & " (" & INDEX_DATA_TABLE(i) & ")" 315 | End If 316 | End If 317 | 318 | REPO.WriteLine(DebugOutput) 319 | Debug.WriteLine(DebugOutput) 320 | REPO.Close() 321 | 322 | Return DebugOutput 323 | End Function 324 | 325 | Public Function ATOMROMFILE(ByVal sender As String) 326 | Dim ENCODE As New System.Text.UnicodeEncoding(True, True, False) 327 | Dim ATOMROMHeaderOffset As UShort 328 | Dim ATOMMasterCommandTableOffset As UShort 329 | Dim ATOMMasterDataTableOffset As UShort 330 | Dim ATOM_ROM_HEADER As _ATOM_ROM_HEADER 331 | ReDim ATOM_ROM_HEADER.uaFirmWareSignature(4) 332 | Dim ATOM_MASTER_COMMAND_TABLES As _ATOM_MASTER_COMMAND_TABLE 333 | Dim ATOM_MASTER_DATA_TABLES As _ATOM_MASTER_DATA_TABLE 334 | Dim LittleEndian As UShort 335 | Dim ATOMBIOSSignature As String 336 | 337 | Using FS As New IO.FileStream(txtFileName.Text, IO.FileMode.Open, IO.FileAccess.Read) 338 | 339 | '########################################################################## 340 | 'write a report 341 | Dim REPO As System.IO.StreamWriter 342 | REPO = My.Computer.FileSystem.OpenTextFileWriter(FS.Name + ".txt", False) 343 | REPO.WriteLine("Read " & Hex(FS.Length).ToLower & " bytes of data from " & FS.Name) 344 | REPO.Close() 345 | '########################################################################## 346 | 347 | '################################################################################################################################################################# 348 | 'ATOM_ROM_HEADER 349 | 350 | 'debug 351 | Debug.WriteLine("") 352 | Debug.WriteLine("######################################################################################################################") 353 | Debug.WriteLine("ATOM_ROM_HEADER Section") 354 | Debug.WriteLine("") 355 | Dim startIdx As Integer = 0 356 | ATOMROMHeaderOffset = ReadingBytes(OFFSET_TO_POINTER_TO_ATOM_ROM_HEADER, 2, LittleEndian) 357 | With ATOM_ROM_HEADER 358 | .sHeader.usStructureSize = ReadingBytes(ATOMROMHeaderOffset, 2, LittleEndian) 359 | .sHeader.ucTableFormatRevision = ReadingBytes(ATOMROMHeaderOffset + 2, 1, LittleEndian) 360 | .sHeader.ucTableContentRevision = ReadingBytes(ATOMROMHeaderOffset + 3, 1, LittleEndian) 361 | .uaFirmWareSignature(0) = ReadingBytes(ATOMROMHeaderOffset + 4, 1, LittleEndian) 362 | .uaFirmWareSignature(1) = ReadingBytes(ATOMROMHeaderOffset + 5, 1, LittleEndian) 363 | .uaFirmWareSignature(2) = ReadingBytes(ATOMROMHeaderOffset + 6, 1, LittleEndian) 364 | .uaFirmWareSignature(3) = ReadingBytes(ATOMROMHeaderOffset + 7, 1, LittleEndian) 365 | .usBiosRuntimeSegmentAddress = ReadingBytes(ATOMROMHeaderOffset + 8, 2, LittleEndian) 366 | .usProtectedModeInfoOffset = ReadingBytes(ATOMROMHeaderOffset + 10, 2, LittleEndian) 367 | .usConfigFilenameOffset = ReadingBytes(ATOMROMHeaderOffset + 12, 2, LittleEndian) 368 | .usCRC_BlockOffset = ReadingBytes(ATOMROMHeaderOffset + 14, 2, LittleEndian) 369 | .usBIOS_BootupMessageOffset = ReadingBytes(ATOMROMHeaderOffset + 16, 2, LittleEndian) 370 | .usInt10Offset = ReadingBytes(ATOMROMHeaderOffset + 18, 2, LittleEndian) 371 | .usPciBusDevInitCode = ReadingBytes(ATOMROMHeaderOffset + 20, 2, LittleEndian) 372 | .usIoBaseAddress = ReadingBytes(ATOMROMHeaderOffset + 22, 2, LittleEndian) 373 | .usSubsystemVendorID = ReadingBytes(ATOMROMHeaderOffset + 24, 2, LittleEndian) 374 | .usSubsystemID = ReadingBytes(ATOMROMHeaderOffset + 26, 2, LittleEndian) 375 | .usPCI_InfoOffset = ReadingBytes(ATOMROMHeaderOffset + 28, 2, LittleEndian) 376 | .usMasterCommandTableOffset = ReadingBytes(ATOMROMHeaderOffset + 30, 2, LittleEndian) 377 | .usMasterDataTableOffset = ReadingBytes(ATOMROMHeaderOffset + 32, 2, LittleEndian) 378 | .ucExtendedFunctionCode = ReadingBytes(ATOMROMHeaderOffset + 34, 1, LittleEndian) 379 | .ucReserved = ReadingBytes(ATOMROMHeaderOffset + 35, 1, LittleEndian) 380 | End With 381 | 382 | 'run check whether the file is valid ATOM BIOS file 383 | ATOMBIOSSignature = Convert.ToChar(ATOM_ROM_HEADER.uaFirmWareSignature(0)) & Convert.ToChar(ATOM_ROM_HEADER.uaFirmWareSignature(1)) & 384 | Convert.ToChar(ATOM_ROM_HEADER.uaFirmWareSignature(2)) & Convert.ToChar(ATOM_ROM_HEADER.uaFirmWareSignature(3)) 385 | Debug.WriteLine("ATOMBIOSSignature = " & ATOMBIOSSignature) 386 | Debug.WriteLine("") 387 | If ATOMBIOSSignature <> "ATOM" Then 388 | lblStatus.Text = "Error loading BIOS file!" 389 | MsgBox("Not a valid ATOM BIOS file!", MsgBoxStyle.Critical, "Error") 390 | Exit Function 391 | End If 392 | 393 | 'debug 394 | Debug.WriteLine("ATOM_ROM_HEADER offset = " & ATOMROMHeaderOffset & " (0x" & Hex(ATOMROMHeaderOffset) & ")") 395 | Debug.WriteLine("usStructureSize = " & ATOM_ROM_HEADER.sHeader.usStructureSize & " (0x" & Hex(ATOM_ROM_HEADER.sHeader.usStructureSize) & ")") 396 | Debug.WriteLine("ucTableFormatRevision = " & ATOM_ROM_HEADER.sHeader.ucTableFormatRevision & " (0x" & Hex(ATOM_ROM_HEADER.sHeader.ucTableFormatRevision) & ")") 397 | Debug.WriteLine("ucTableContentRevision = " & ATOM_ROM_HEADER.sHeader.ucTableContentRevision & " (0x" & Hex(ATOM_ROM_HEADER.sHeader.ucTableContentRevision) & ")") 398 | Debug.WriteLine("uaFirmWareSignature = " & ATOM_ROM_HEADER.uaFirmWareSignature(0) & " " & ATOM_ROM_HEADER.uaFirmWareSignature(1) & 399 | " " & ATOM_ROM_HEADER.uaFirmWareSignature(2) & " " & ATOM_ROM_HEADER.uaFirmWareSignature(3) & " (0x" & Hex(ATOM_ROM_HEADER.uaFirmWareSignature(0)) & 400 | " 0x" & Hex(ATOM_ROM_HEADER.uaFirmWareSignature(1)) & " 0x" & Hex(ATOM_ROM_HEADER.uaFirmWareSignature(2)) & " 0x" & Hex(ATOM_ROM_HEADER.uaFirmWareSignature(3)) & 401 | " : " & Convert.ToChar(ATOM_ROM_HEADER.uaFirmWareSignature(0)) & " " & Convert.ToChar(ATOM_ROM_HEADER.uaFirmWareSignature(1)) & 402 | " " & Convert.ToChar(ATOM_ROM_HEADER.uaFirmWareSignature(2)) & " " & Convert.ToChar(ATOM_ROM_HEADER.uaFirmWareSignature(3)) & ")") 403 | Debug.WriteLine("usBiosRuntimeSegmentAddress = " & ATOM_ROM_HEADER.usBiosRuntimeSegmentAddress & " (0x" & Hex(ATOM_ROM_HEADER.usBiosRuntimeSegmentAddress) & ")") 404 | Debug.WriteLine("usProtectedModeInfoOffset = " & ATOM_ROM_HEADER.usProtectedModeInfoOffset & " (0x" & Hex(ATOM_ROM_HEADER.usProtectedModeInfoOffset) & ")") 405 | Debug.WriteLine("usConfigFilenameOffset = " & ATOM_ROM_HEADER.usConfigFilenameOffset & " (0x" & Hex(ATOM_ROM_HEADER.usConfigFilenameOffset) & ")") 406 | Debug.WriteLine("usCRC_BlockOffset = " & ATOM_ROM_HEADER.usCRC_BlockOffset & " (0x" & Hex(ATOM_ROM_HEADER.usCRC_BlockOffset) & ")") 407 | Debug.WriteLine("usBIOS_BootupMessageOffset = " & ATOM_ROM_HEADER.usBIOS_BootupMessageOffset & " (0x" & Hex(ATOM_ROM_HEADER.usBIOS_BootupMessageOffset) & ")") 408 | Debug.WriteLine("usInt10Offset = " & ATOM_ROM_HEADER.usInt10Offset & " (0x" & Hex(ATOM_ROM_HEADER.usInt10Offset) & ")") 409 | Debug.WriteLine("usPciBusDevInitCode = " & ATOM_ROM_HEADER.usPciBusDevInitCode & " (0x" & Hex(ATOM_ROM_HEADER.usPciBusDevInitCode) & ")") 410 | Debug.WriteLine("usIoBaseAddress = " & ATOM_ROM_HEADER.usIoBaseAddress & " (0x" & Hex(ATOM_ROM_HEADER.usIoBaseAddress) & ")") 411 | Debug.WriteLine("usSubsystemVendorID = " & ATOM_ROM_HEADER.usSubsystemVendorID & " (0x" & Hex(ATOM_ROM_HEADER.usSubsystemVendorID) & ")") 412 | Debug.WriteLine("usSubsystemID = " & ATOM_ROM_HEADER.usSubsystemID & " (0x" & Hex(ATOM_ROM_HEADER.usSubsystemID) & ")") 413 | Debug.WriteLine("usPCI_InfoOffset = " & ATOM_ROM_HEADER.usPCI_InfoOffset & " (0x" & Hex(ATOM_ROM_HEADER.usPCI_InfoOffset) & ")") 414 | Debug.WriteLine("usMasterCommandTableOffset = " & ATOM_ROM_HEADER.usMasterCommandTableOffset & " (0x" & Hex(ATOM_ROM_HEADER.usMasterCommandTableOffset) & ")") 415 | Debug.WriteLine("usMasterDataTableOffset = " & ATOM_ROM_HEADER.usMasterDataTableOffset & " (0x" & Hex(ATOM_ROM_HEADER.usMasterDataTableOffset) & ")") 416 | Debug.WriteLine("ucExtendedFunctionCode = " & ATOM_ROM_HEADER.ucExtendedFunctionCode & " (0x" & Hex(ATOM_ROM_HEADER.ucExtendedFunctionCode) & ")") 417 | Debug.WriteLine("ucReserved = " & ATOM_ROM_HEADER.ucReserved & " (0x" & Hex(ATOM_ROM_HEADER.ucReserved) & ")") 418 | 419 | 420 | '################################################################################################################################################################# 421 | 'ATOM_MASTER_COMMAND_TABLES 422 | 423 | 'debug 424 | Debug.WriteLine("") 425 | Debug.WriteLine("######################################################################################################################") 426 | Debug.WriteLine("ATOM_MASTER_COMMAND_TABLES Section") 427 | Debug.WriteLine("") 428 | ATOMMasterCommandTableOffset = ATOM_ROM_HEADER.usMasterCommandTableOffset 429 | With ATOM_MASTER_COMMAND_TABLES 430 | .sHeader.usStructureSize = ReadingBytes(ATOMMasterCommandTableOffset, 2, LittleEndian) 431 | .sHeader.ucTableFormatRevision = ReadingBytes(ATOMMasterCommandTableOffset + 2, 1, LittleEndian) 432 | .sHeader.ucTableContentRevision = ReadingBytes(ATOMMasterCommandTableOffset + 3, 1, LittleEndian) 433 | .ListOfCommandTables.ASIC_Init = ReadingBytes(ATOMMasterCommandTableOffset + 4, 2, LittleEndian) 434 | .ListOfCommandTables.GetDisplaySurfaceSize = ReadingBytes(ATOMMasterCommandTableOffset + 6, 2, LittleEndian) 435 | .ListOfCommandTables.ASIC_RegistersInit = ReadingBytes(ATOMMasterCommandTableOffset + 8, 2, LittleEndian) 436 | .ListOfCommandTables.VRAM_BlockVenderDetection = ReadingBytes(ATOMMasterCommandTableOffset + 10, 2, LittleEndian) 437 | .ListOfCommandTables.DIGxEncoderControl = ReadingBytes(ATOMMasterCommandTableOffset + 12, 2, LittleEndian) 438 | .ListOfCommandTables.MemoryControllerInit = ReadingBytes(ATOMMasterCommandTableOffset + 14, 2, LittleEndian) 439 | .ListOfCommandTables.EnableCRTCMemReq = ReadingBytes(ATOMMasterCommandTableOffset + 16, 2, LittleEndian) 440 | .ListOfCommandTables.MemoryParamAdjust = ReadingBytes(ATOMMasterCommandTableOffset + 18, 2, LittleEndian) 441 | .ListOfCommandTables.DVOEncoderControl = ReadingBytes(ATOMMasterCommandTableOffset + 20, 2, LittleEndian) 442 | .ListOfCommandTables.GPIOPinControl = ReadingBytes(ATOMMasterCommandTableOffset + 22, 2, LittleEndian) 443 | .ListOfCommandTables.SetEngineClock = ReadingBytes(ATOMMasterCommandTableOffset + 24, 2, LittleEndian) 444 | .ListOfCommandTables.SetMemoryClock = ReadingBytes(ATOMMasterCommandTableOffset + 26, 2, LittleEndian) 445 | .ListOfCommandTables.SetPixelClock = ReadingBytes(ATOMMasterCommandTableOffset + 28, 2, LittleEndian) 446 | .ListOfCommandTables.EnableDispPowerGating = ReadingBytes(ATOMMasterCommandTableOffset + 30, 2, LittleEndian) 447 | .ListOfCommandTables.ResetMemoryDLL = ReadingBytes(ATOMMasterCommandTableOffset + 32, 2, LittleEndian) 448 | .ListOfCommandTables.ResetMemoryDevice = ReadingBytes(ATOMMasterCommandTableOffset + 34, 2, LittleEndian) 449 | .ListOfCommandTables.MemoryPLLInit = ReadingBytes(ATOMMasterCommandTableOffset + 36, 2, LittleEndian) 450 | .ListOfCommandTables.AdjustDisplayPll = ReadingBytes(ATOMMasterCommandTableOffset + 38, 2, LittleEndian) 451 | .ListOfCommandTables.AdjustMemoryController = ReadingBytes(ATOMMasterCommandTableOffset + 40, 2, LittleEndian) 452 | .ListOfCommandTables.EnableASIC_StaticPwrMgt = ReadingBytes(ATOMMasterCommandTableOffset + 42, 2, LittleEndian) 453 | .ListOfCommandTables.SetUniphyInstance = ReadingBytes(ATOMMasterCommandTableOffset + 44, 2, LittleEndian) 454 | .ListOfCommandTables.DAC_LoadDetection = ReadingBytes(ATOMMasterCommandTableOffset + 46, 2, LittleEndian) 455 | .ListOfCommandTables.LVTMAEncoderControl = ReadingBytes(ATOMMasterCommandTableOffset + 48, 2, LittleEndian) 456 | .ListOfCommandTables.HW_Misc_Operation = ReadingBytes(ATOMMasterCommandTableOffset + 50, 2, LittleEndian) 457 | .ListOfCommandTables.DAC1EncoderControl = ReadingBytes(ATOMMasterCommandTableOffset + 52, 2, LittleEndian) 458 | .ListOfCommandTables.DAC2EncoderControl = ReadingBytes(ATOMMasterCommandTableOffset + 54, 2, LittleEndian) 459 | .ListOfCommandTables.DVOOutputControl = ReadingBytes(ATOMMasterCommandTableOffset + 56, 2, LittleEndian) 460 | .ListOfCommandTables.CV1OutputControl = ReadingBytes(ATOMMasterCommandTableOffset + 58, 2, LittleEndian) 461 | .ListOfCommandTables.GetConditionalGoldenSetting = ReadingBytes(ATOMMasterCommandTableOffset + 60, 2, LittleEndian) 462 | .ListOfCommandTables.TVEncoderControl = ReadingBytes(ATOMMasterCommandTableOffset + 62, 2, LittleEndian) 463 | .ListOfCommandTables.PatchMCSetting = ReadingBytes(ATOMMasterCommandTableOffset + 64, 2, LittleEndian) 464 | .ListOfCommandTables.MC_SEQ_Control = ReadingBytes(ATOMMasterCommandTableOffset + 66, 2, LittleEndian) 465 | .ListOfCommandTables.Gfx_Harvesting = ReadingBytes(ATOMMasterCommandTableOffset + 68, 2, LittleEndian) 466 | .ListOfCommandTables.EnableScaler = ReadingBytes(ATOMMasterCommandTableOffset + 70, 2, LittleEndian) 467 | .ListOfCommandTables.BlankCRTC = ReadingBytes(ATOMMasterCommandTableOffset + 72, 2, LittleEndian) 468 | .ListOfCommandTables.EnableCRTC = ReadingBytes(ATOMMasterCommandTableOffset + 74, 2, LittleEndian) 469 | .ListOfCommandTables.GetPixelClock = ReadingBytes(ATOMMasterCommandTableOffset + 76, 2, LittleEndian) 470 | .ListOfCommandTables.EnableVGA_Render = ReadingBytes(ATOMMasterCommandTableOffset + 78, 2, LittleEndian) 471 | .ListOfCommandTables.GetSCLKOverMCLKRatio = ReadingBytes(ATOMMasterCommandTableOffset + 80, 2, LittleEndian) 472 | .ListOfCommandTables.SetCRTC_Timing = ReadingBytes(ATOMMasterCommandTableOffset + 82, 2, LittleEndian) 473 | .ListOfCommandTables.SetCRTC_OverScan = ReadingBytes(ATOMMasterCommandTableOffset + 84, 2, LittleEndian) 474 | .ListOfCommandTables.SetCRTC_Replication = ReadingBytes(ATOMMasterCommandTableOffset + 86, 2, LittleEndian) 475 | .ListOfCommandTables.SelectCRTC_Source = ReadingBytes(ATOMMasterCommandTableOffset + 88, 2, LittleEndian) 476 | .ListOfCommandTables.EnableGraphSurfaces = ReadingBytes(ATOMMasterCommandTableOffset + 90, 2, LittleEndian) 477 | .ListOfCommandTables.UpdateCRTC_DoubleBufferRegisters = ReadingBytes(ATOMMasterCommandTableOffset + 92, 2, LittleEndian) 478 | .ListOfCommandTables.LUT_AutoFill = ReadingBytes(ATOMMasterCommandTableOffset + 94, 2, LittleEndian) 479 | .ListOfCommandTables.EnableHW_IconCursor = ReadingBytes(ATOMMasterCommandTableOffset + 96, 2, LittleEndian) 480 | .ListOfCommandTables.GetMemoryClock = ReadingBytes(ATOMMasterCommandTableOffset + 98, 2, LittleEndian) 481 | .ListOfCommandTables.GetEngineClock = ReadingBytes(ATOMMasterCommandTableOffset + 100, 2, LittleEndian) 482 | .ListOfCommandTables.SetCRTC_UsingDTDTiming = ReadingBytes(ATOMMasterCommandTableOffset + 102, 2, LittleEndian) 483 | .ListOfCommandTables.ExternalEncoderControl = ReadingBytes(ATOMMasterCommandTableOffset + 104, 2, LittleEndian) 484 | .ListOfCommandTables.LVTMAOutputControl = ReadingBytes(ATOMMasterCommandTableOffset + 106, 2, LittleEndian) 485 | .ListOfCommandTables.VRAM_BlockDetectionByStrap = ReadingBytes(ATOMMasterCommandTableOffset + 108, 2, LittleEndian) 486 | .ListOfCommandTables.MemoryCleanUp = ReadingBytes(ATOMMasterCommandTableOffset + 110, 2, LittleEndian) 487 | .ListOfCommandTables.ProcessI2cChannelTransaction = ReadingBytes(ATOMMasterCommandTableOffset + 112, 2, LittleEndian) 488 | .ListOfCommandTables.WriteOneByteToHWAssistedI2C = ReadingBytes(ATOMMasterCommandTableOffset + 114, 2, LittleEndian) 489 | .ListOfCommandTables.ReadHWAssistedI2CStatus = ReadingBytes(ATOMMasterCommandTableOffset + 116, 2, LittleEndian) 490 | .ListOfCommandTables.SpeedFanControl = ReadingBytes(ATOMMasterCommandTableOffset + 118, 2, LittleEndian) 491 | .ListOfCommandTables.PowerConnectorDetection = ReadingBytes(ATOMMasterCommandTableOffset + 120, 2, LittleEndian) 492 | .ListOfCommandTables.MC_Synchronization = ReadingBytes(ATOMMasterCommandTableOffset + 122, 2, LittleEndian) 493 | .ListOfCommandTables.ComputeMemoryEnginePLL = ReadingBytes(ATOMMasterCommandTableOffset + 124, 2, LittleEndian) 494 | .ListOfCommandTables.MemoryRefreshConversion = ReadingBytes(ATOMMasterCommandTableOffset + 126, 2, LittleEndian) 495 | .ListOfCommandTables.VRAM_GetCurrentInfoBlock = ReadingBytes(ATOMMasterCommandTableOffset + 128, 2, LittleEndian) 496 | .ListOfCommandTables.DynamicMemorySettings = ReadingBytes(ATOMMasterCommandTableOffset + 130, 2, LittleEndian) 497 | .ListOfCommandTables.MemoryTraining = ReadingBytes(ATOMMasterCommandTableOffset + 132, 2, LittleEndian) 498 | .ListOfCommandTables.EnableSpreadSpectrumOnPPLL = ReadingBytes(ATOMMasterCommandTableOffset + 134, 2, LittleEndian) 499 | .ListOfCommandTables.TMDSAOutputControl = ReadingBytes(ATOMMasterCommandTableOffset + 136, 2, LittleEndian) 500 | .ListOfCommandTables.SetVoltage = ReadingBytes(ATOMMasterCommandTableOffset + 138, 2, LittleEndian) 501 | .ListOfCommandTables.DAC1OutputControl = ReadingBytes(ATOMMasterCommandTableOffset + 140, 2, LittleEndian) 502 | .ListOfCommandTables.DAC2OutputControl = ReadingBytes(ATOMMasterCommandTableOffset + 142, 2, LittleEndian) 503 | .ListOfCommandTables.ComputeMemoryClockParam = ReadingBytes(ATOMMasterCommandTableOffset + 144, 2, LittleEndian) 504 | .ListOfCommandTables.ClockSource = ReadingBytes(ATOMMasterCommandTableOffset + 146, 2, LittleEndian) 505 | .ListOfCommandTables.MemoryDeviceInit = ReadingBytes(ATOMMasterCommandTableOffset + 148, 2, LittleEndian) 506 | .ListOfCommandTables.GetDispObjectInfo = ReadingBytes(ATOMMasterCommandTableOffset + 150, 2, LittleEndian) 507 | .ListOfCommandTables.DIG1EncoderControl = ReadingBytes(ATOMMasterCommandTableOffset + 152, 2, LittleEndian) 508 | .ListOfCommandTables.DIG2EncoderControl = ReadingBytes(ATOMMasterCommandTableOffset + 154, 2, LittleEndian) 509 | .ListOfCommandTables.DIG1TransmitterControl = ReadingBytes(ATOMMasterCommandTableOffset + 156, 2, LittleEndian) 510 | .ListOfCommandTables.DIG2TransmitterControl = ReadingBytes(ATOMMasterCommandTableOffset + 158, 2, LittleEndian) 511 | .ListOfCommandTables.ProcessAuxChannelTransaction = ReadingBytes(ATOMMasterCommandTableOffset + 160, 2, LittleEndian) 512 | .ListOfCommandTables.DPEncoderService = ReadingBytes(ATOMMasterCommandTableOffset + 162, 2, LittleEndian) 513 | .ListOfCommandTables.GetVoltageInfo = ReadingBytes(ATOMMasterCommandTableOffset + 164, 2, LittleEndian) 514 | End With 515 | 516 | 'debug 517 | Debug.WriteLine("ATOM_MASTER_COMMAND_TABLES offset = " & ATOM_ROM_HEADER.usMasterCommandTableOffset & " (0x" & Hex(ATOM_ROM_HEADER.usMasterCommandTableOffset) & ")") 518 | 519 | 'debug 520 | Debug.WriteLine("usStructureSize = " & ATOM_MASTER_COMMAND_TABLES.sHeader.usStructureSize & " (0x" & Hex(ATOM_MASTER_COMMAND_TABLES.sHeader.usStructureSize) & ")") 521 | 522 | 'debug 523 | Debug.WriteLine("ucTableFormatRevision = " & ATOM_MASTER_COMMAND_TABLES.sHeader.ucTableFormatRevision & " (0x" & Hex(ATOM_MASTER_COMMAND_TABLES.sHeader.ucTableFormatRevision) & ")") 524 | 525 | 'debug 526 | Debug.WriteLine("ucTableContentRevision = " & ATOM_MASTER_COMMAND_TABLES.sHeader.ucTableContentRevision & " (0x" & Hex(ATOM_MASTER_COMMAND_TABLES.sHeader.ucTableContentRevision) & ")") 527 | 528 | '########################################################################## 529 | 'write a report 530 | WritingReport(0, ATOM_MASTER_COMMAND_TABLES.ListOfCommandTables.ASIC_Init, "COMMAND") 531 | WritingReport(1, ATOM_MASTER_COMMAND_TABLES.ListOfCommandTables.GetDisplaySurfaceSize, "COMMAND") 532 | WritingReport(2, ATOM_MASTER_COMMAND_TABLES.ListOfCommandTables.ASIC_RegistersInit, "COMMAND") 533 | WritingReport(3, ATOM_MASTER_COMMAND_TABLES.ListOfCommandTables.VRAM_BlockVenderDetection, "COMMAND") 534 | WritingReport(4, ATOM_MASTER_COMMAND_TABLES.ListOfCommandTables.DIGxEncoderControl, "COMMAND") 535 | WritingReport(5, ATOM_MASTER_COMMAND_TABLES.ListOfCommandTables.MemoryControllerInit, "COMMAND") 536 | WritingReport(6, ATOM_MASTER_COMMAND_TABLES.ListOfCommandTables.EnableCRTCMemReq, "COMMAND") 537 | WritingReport(7, ATOM_MASTER_COMMAND_TABLES.ListOfCommandTables.MemoryParamAdjust, "COMMAND") 538 | WritingReport(8, ATOM_MASTER_COMMAND_TABLES.ListOfCommandTables.DVOEncoderControl, "COMMAND") 539 | WritingReport(9, ATOM_MASTER_COMMAND_TABLES.ListOfCommandTables.GPIOPinControl, "COMMAND") 540 | WritingReport(10, ATOM_MASTER_COMMAND_TABLES.ListOfCommandTables.SetEngineClock, "COMMAND") 541 | WritingReport(11, ATOM_MASTER_COMMAND_TABLES.ListOfCommandTables.SetMemoryClock, "COMMAND") 542 | WritingReport(12, ATOM_MASTER_COMMAND_TABLES.ListOfCommandTables.SetPixelClock, "COMMAND") 543 | WritingReport(13, ATOM_MASTER_COMMAND_TABLES.ListOfCommandTables.EnableDispPowerGating, "COMMAND") 544 | WritingReport(14, ATOM_MASTER_COMMAND_TABLES.ListOfCommandTables.ResetMemoryDLL, "COMMAND") 545 | WritingReport(15, ATOM_MASTER_COMMAND_TABLES.ListOfCommandTables.ResetMemoryDevice, "COMMAND") 546 | WritingReport(16, ATOM_MASTER_COMMAND_TABLES.ListOfCommandTables.MemoryPLLInit, "COMMAND") 547 | WritingReport(17, ATOM_MASTER_COMMAND_TABLES.ListOfCommandTables.AdjustDisplayPll, "COMMAND") 548 | WritingReport(18, ATOM_MASTER_COMMAND_TABLES.ListOfCommandTables.AdjustMemoryController, "COMMAND") 549 | WritingReport(19, ATOM_MASTER_COMMAND_TABLES.ListOfCommandTables.EnableASIC_StaticPwrMgt, "COMMAND") 550 | WritingReport(20, ATOM_MASTER_COMMAND_TABLES.ListOfCommandTables.SetUniphyInstance, "COMMAND") 551 | WritingReport(21, ATOM_MASTER_COMMAND_TABLES.ListOfCommandTables.DAC_LoadDetection, "COMMAND") 552 | WritingReport(22, ATOM_MASTER_COMMAND_TABLES.ListOfCommandTables.LVTMAEncoderControl, "COMMAND") 553 | WritingReport(23, ATOM_MASTER_COMMAND_TABLES.ListOfCommandTables.HW_Misc_Operation, "COMMAND") 554 | WritingReport(24, ATOM_MASTER_COMMAND_TABLES.ListOfCommandTables.DAC1EncoderControl, "COMMAND") 555 | WritingReport(25, ATOM_MASTER_COMMAND_TABLES.ListOfCommandTables.DAC2EncoderControl, "COMMAND") 556 | WritingReport(26, ATOM_MASTER_COMMAND_TABLES.ListOfCommandTables.DVOOutputControl, "COMMAND") 557 | WritingReport(27, ATOM_MASTER_COMMAND_TABLES.ListOfCommandTables.CV1OutputControl, "COMMAND") 558 | WritingReport(28, ATOM_MASTER_COMMAND_TABLES.ListOfCommandTables.GetConditionalGoldenSetting, "COMMAND") 559 | WritingReport(29, ATOM_MASTER_COMMAND_TABLES.ListOfCommandTables.TVEncoderControl, "COMMAND") 560 | WritingReport(30, ATOM_MASTER_COMMAND_TABLES.ListOfCommandTables.PatchMCSetting, "COMMAND") 561 | WritingReport(31, ATOM_MASTER_COMMAND_TABLES.ListOfCommandTables.MC_SEQ_Control, "COMMAND") 562 | WritingReport(32, ATOM_MASTER_COMMAND_TABLES.ListOfCommandTables.Gfx_Harvesting, "COMMAND") 563 | WritingReport(33, ATOM_MASTER_COMMAND_TABLES.ListOfCommandTables.EnableScaler, "COMMAND") 564 | WritingReport(34, ATOM_MASTER_COMMAND_TABLES.ListOfCommandTables.BlankCRTC, "COMMAND") 565 | WritingReport(35, ATOM_MASTER_COMMAND_TABLES.ListOfCommandTables.EnableCRTC, "COMMAND") 566 | WritingReport(36, ATOM_MASTER_COMMAND_TABLES.ListOfCommandTables.GetPixelClock, "COMMAND") 567 | WritingReport(37, ATOM_MASTER_COMMAND_TABLES.ListOfCommandTables.EnableVGA_Render, "COMMAND") 568 | WritingReport(38, ATOM_MASTER_COMMAND_TABLES.ListOfCommandTables.GetSCLKOverMCLKRatio, "COMMAND") 569 | WritingReport(39, ATOM_MASTER_COMMAND_TABLES.ListOfCommandTables.SetCRTC_Timing, "COMMAND") 570 | WritingReport(40, ATOM_MASTER_COMMAND_TABLES.ListOfCommandTables.SetCRTC_OverScan, "COMMAND") 571 | WritingReport(41, ATOM_MASTER_COMMAND_TABLES.ListOfCommandTables.SetCRTC_Replication, "COMMAND") 572 | WritingReport(42, ATOM_MASTER_COMMAND_TABLES.ListOfCommandTables.SelectCRTC_Source, "COMMAND") 573 | WritingReport(43, ATOM_MASTER_COMMAND_TABLES.ListOfCommandTables.EnableGraphSurfaces, "COMMAND") 574 | WritingReport(44, ATOM_MASTER_COMMAND_TABLES.ListOfCommandTables.UpdateCRTC_DoubleBufferRegisters, "COMMAND") 575 | WritingReport(45, ATOM_MASTER_COMMAND_TABLES.ListOfCommandTables.LUT_AutoFill, "COMMAND") 576 | WritingReport(46, ATOM_MASTER_COMMAND_TABLES.ListOfCommandTables.EnableHW_IconCursor, "COMMAND") 577 | WritingReport(47, ATOM_MASTER_COMMAND_TABLES.ListOfCommandTables.GetMemoryClock, "COMMAND") 578 | WritingReport(48, ATOM_MASTER_COMMAND_TABLES.ListOfCommandTables.GetEngineClock, "COMMAND") 579 | WritingReport(49, ATOM_MASTER_COMMAND_TABLES.ListOfCommandTables.SetCRTC_UsingDTDTiming, "COMMAND") 580 | WritingReport(50, ATOM_MASTER_COMMAND_TABLES.ListOfCommandTables.ExternalEncoderControl, "COMMAND") 581 | WritingReport(51, ATOM_MASTER_COMMAND_TABLES.ListOfCommandTables.LVTMAOutputControl, "COMMAND") 582 | WritingReport(52, ATOM_MASTER_COMMAND_TABLES.ListOfCommandTables.VRAM_BlockDetectionByStrap, "COMMAND") 583 | WritingReport(53, ATOM_MASTER_COMMAND_TABLES.ListOfCommandTables.MemoryCleanUp, "COMMAND") 584 | WritingReport(54, ATOM_MASTER_COMMAND_TABLES.ListOfCommandTables.ProcessI2cChannelTransaction, "COMMAND") 585 | WritingReport(55, ATOM_MASTER_COMMAND_TABLES.ListOfCommandTables.WriteOneByteToHWAssistedI2C, "COMMAND") 586 | WritingReport(56, ATOM_MASTER_COMMAND_TABLES.ListOfCommandTables.ReadHWAssistedI2CStatus, "COMMAND") 587 | WritingReport(57, ATOM_MASTER_COMMAND_TABLES.ListOfCommandTables.SpeedFanControl, "COMMAND") 588 | WritingReport(58, ATOM_MASTER_COMMAND_TABLES.ListOfCommandTables.PowerConnectorDetection, "COMMAND") 589 | WritingReport(59, ATOM_MASTER_COMMAND_TABLES.ListOfCommandTables.MC_Synchronization, "COMMAND") 590 | WritingReport(60, ATOM_MASTER_COMMAND_TABLES.ListOfCommandTables.ComputeMemoryEnginePLL, "COMMAND") 591 | WritingReport(61, ATOM_MASTER_COMMAND_TABLES.ListOfCommandTables.MemoryRefreshConversion, "COMMAND") 592 | WritingReport(62, ATOM_MASTER_COMMAND_TABLES.ListOfCommandTables.VRAM_GetCurrentInfoBlock, "COMMAND") 593 | WritingReport(63, ATOM_MASTER_COMMAND_TABLES.ListOfCommandTables.DynamicMemorySettings, "COMMAND") 594 | WritingReport(64, ATOM_MASTER_COMMAND_TABLES.ListOfCommandTables.MemoryTraining, "COMMAND") 595 | WritingReport(65, ATOM_MASTER_COMMAND_TABLES.ListOfCommandTables.EnableSpreadSpectrumOnPPLL, "COMMAND") 596 | WritingReport(66, ATOM_MASTER_COMMAND_TABLES.ListOfCommandTables.TMDSAOutputControl, "COMMAND") 597 | WritingReport(67, ATOM_MASTER_COMMAND_TABLES.ListOfCommandTables.SetVoltage, "COMMAND") 598 | WritingReport(68, ATOM_MASTER_COMMAND_TABLES.ListOfCommandTables.DAC1OutputControl, "COMMAND") 599 | WritingReport(69, ATOM_MASTER_COMMAND_TABLES.ListOfCommandTables.DAC2OutputControl, "COMMAND") 600 | WritingReport(70, ATOM_MASTER_COMMAND_TABLES.ListOfCommandTables.ComputeMemoryClockParam, "COMMAND") 601 | WritingReport(71, ATOM_MASTER_COMMAND_TABLES.ListOfCommandTables.ClockSource, "COMMAND") 602 | WritingReport(72, ATOM_MASTER_COMMAND_TABLES.ListOfCommandTables.MemoryDeviceInit, "COMMAND") 603 | WritingReport(73, ATOM_MASTER_COMMAND_TABLES.ListOfCommandTables.GetDispObjectInfo, "COMMAND") 604 | WritingReport(74, ATOM_MASTER_COMMAND_TABLES.ListOfCommandTables.DIG1EncoderControl, "COMMAND") 605 | WritingReport(75, ATOM_MASTER_COMMAND_TABLES.ListOfCommandTables.DIG2EncoderControl, "COMMAND") 606 | WritingReport(76, ATOM_MASTER_COMMAND_TABLES.ListOfCommandTables.DIG1TransmitterControl, "COMMAND") 607 | WritingReport(77, ATOM_MASTER_COMMAND_TABLES.ListOfCommandTables.DIG2TransmitterControl, "COMMAND") 608 | WritingReport(78, ATOM_MASTER_COMMAND_TABLES.ListOfCommandTables.ProcessAuxChannelTransaction, "COMMAND") 609 | WritingReport(79, ATOM_MASTER_COMMAND_TABLES.ListOfCommandTables.DPEncoderService, "COMMAND") 610 | '########################################################################## 611 | 612 | 'debug unused table 613 | Debug.WriteLine("GetVoltageInfo = " & ATOM_MASTER_COMMAND_TABLES.ListOfCommandTables.GetVoltageInfo & " (0x" & Hex(ATOM_MASTER_COMMAND_TABLES.ListOfCommandTables.GetVoltageInfo) & ")") 614 | 615 | 616 | '################################################################################################################################################################# 617 | 'ATOM_MASTER_DATA_TABLES 618 | 619 | 'debug 620 | Debug.WriteLine("") 621 | Debug.WriteLine("######################################################################################################################") 622 | Debug.WriteLine("ATOM_MASTER_DATA_TABLES Section") 623 | Debug.WriteLine("") 624 | ATOMMasterDataTableOffset = ATOM_ROM_HEADER.usMasterDataTableOffset 625 | With ATOM_MASTER_DATA_TABLES 626 | .sHeader.usStructureSize = ReadingBytes(ATOMMasterDataTableOffset, 2, LittleEndian) 627 | .sHeader.ucTableFormatRevision = ReadingBytes(ATOMMasterDataTableOffset + 2, 1, LittleEndian) 628 | .sHeader.ucTableContentRevision = ReadingBytes(ATOMMasterDataTableOffset + 3, 1, LittleEndian) 629 | .ListOfDataTables.UtilityPipeLine = ReadingBytes(ATOMMasterDataTableOffset + 4, 2, LittleEndian) 630 | .ListOfDataTables.MultimediaCapabilityInfo = ReadingBytes(ATOMMasterDataTableOffset + 6, 2, LittleEndian) 631 | .ListOfDataTables.MultimediaConfigInfo = ReadingBytes(ATOMMasterDataTableOffset + 8, 2, LittleEndian) 632 | .ListOfDataTables.StandardVESA_Timing = ReadingBytes(ATOMMasterDataTableOffset + 10, 2, LittleEndian) 633 | .ListOfDataTables.FirmwareInfo = ReadingBytes(ATOMMasterDataTableOffset + 12, 2, LittleEndian) 634 | .ListOfDataTables.PaletteData = ReadingBytes(ATOMMasterDataTableOffset + 14, 2, LittleEndian) 635 | .ListOfDataTables.LCD_Info = ReadingBytes(ATOMMasterDataTableOffset + 16, 2, LittleEndian) 636 | .ListOfDataTables.DIGTransmitterInfo = ReadingBytes(ATOMMasterDataTableOffset + 18, 2, LittleEndian) 637 | .ListOfDataTables.AnalogTV_Info = ReadingBytes(ATOMMasterDataTableOffset + 20, 2, LittleEndian) 638 | .ListOfDataTables.SupportedDevicesInfo = ReadingBytes(ATOMMasterDataTableOffset + 22, 2, LittleEndian) 639 | .ListOfDataTables.GPIO_I2C_Info = ReadingBytes(ATOMMasterDataTableOffset + 24, 2, LittleEndian) 640 | .ListOfDataTables.VRAM_UsageByFirmware = ReadingBytes(ATOMMasterDataTableOffset + 26, 2, LittleEndian) 641 | .ListOfDataTables.GPIO_Pin_LUT = ReadingBytes(ATOMMasterDataTableOffset + 28, 2, LittleEndian) 642 | .ListOfDataTables.VESA_ToInternalModeLUT = ReadingBytes(ATOMMasterDataTableOffset + 30, 2, LittleEndian) 643 | .ListOfDataTables.ComponentVideoInfo = ReadingBytes(ATOMMasterDataTableOffset + 32, 2, LittleEndian) 644 | .ListOfDataTables.PowerPlayInfo = ReadingBytes(ATOMMasterDataTableOffset + 34, 2, LittleEndian) 645 | .ListOfDataTables.CompassionateData = ReadingBytes(ATOMMasterDataTableOffset + 36, 2, LittleEndian) 646 | .ListOfDataTables.SaveRestoreInfo = ReadingBytes(ATOMMasterDataTableOffset + 38, 2, LittleEndian) 647 | .ListOfDataTables.PPLL_SS_Info = ReadingBytes(ATOMMasterDataTableOffset + 40, 2, LittleEndian) 648 | .ListOfDataTables.OemInfo = ReadingBytes(ATOMMasterDataTableOffset + 42, 2, LittleEndian) 649 | .ListOfDataTables.XTMDS_Info = ReadingBytes(ATOMMasterDataTableOffset + 44, 2, LittleEndian) 650 | .ListOfDataTables.MclkSS_Info = ReadingBytes(ATOMMasterDataTableOffset + 46, 2, LittleEndian) 651 | .ListOfDataTables.Object_Header = ReadingBytes(ATOMMasterDataTableOffset + 48, 2, LittleEndian) 652 | .ListOfDataTables.IndirectIOAccess = ReadingBytes(ATOMMasterDataTableOffset + 50, 2, LittleEndian) 653 | .ListOfDataTables.MC_InitParameter = ReadingBytes(ATOMMasterDataTableOffset + 52, 2, LittleEndian) 654 | .ListOfDataTables.ASIC_VDDC_Info = ReadingBytes(ATOMMasterDataTableOffset + 54, 2, LittleEndian) 655 | .ListOfDataTables.ASIC_InternalSS_Info = ReadingBytes(ATOMMasterDataTableOffset + 56, 2, LittleEndian) 656 | .ListOfDataTables.TV_VideoMode = ReadingBytes(ATOMMasterDataTableOffset + 58, 2, LittleEndian) 657 | .ListOfDataTables.VRAM_Info = ReadingBytes(ATOMMasterDataTableOffset + 60, 2, LittleEndian) 658 | .ListOfDataTables.MemoryTrainingInfo = ReadingBytes(ATOMMasterDataTableOffset + 62, 2, LittleEndian) 659 | .ListOfDataTables.IntegratedSystemInfo = ReadingBytes(ATOMMasterDataTableOffset + 64, 2, LittleEndian) 660 | .ListOfDataTables.ASIC_ProfilingInfo = ReadingBytes(ATOMMasterDataTableOffset + 66, 2, LittleEndian) 661 | .ListOfDataTables.VoltageObjectInfo = ReadingBytes(ATOMMasterDataTableOffset + 68, 2, LittleEndian) 662 | .ListOfDataTables.PowerSourceInfo = ReadingBytes(ATOMMasterDataTableOffset + 70, 2, LittleEndian) 663 | End With 664 | 665 | 'debug 666 | Debug.WriteLine("ATOM_MASTER_DATA_TABLES offset = " & ATOMMasterDataTableOffset & " (0x" & Hex(ATOMMasterDataTableOffset) & ")") 667 | Debug.WriteLine("usStructureSize = " & ATOM_MASTER_DATA_TABLES.sHeader.usStructureSize & " (0x" & Hex(ATOM_MASTER_DATA_TABLES.sHeader.usStructureSize) & ")") 668 | Debug.WriteLine("ucTableFormatRevision = " & ATOM_MASTER_DATA_TABLES.sHeader.ucTableFormatRevision & " (0x" & Hex(ATOM_MASTER_DATA_TABLES.sHeader.ucTableFormatRevision) & ")") 669 | Debug.WriteLine("ucTableContentRevision = " & ATOM_MASTER_DATA_TABLES.sHeader.ucTableContentRevision & " (0x" & Hex(ATOM_MASTER_DATA_TABLES.sHeader.ucTableContentRevision) & ")") 670 | 671 | '########################################################################## 672 | 'write a report 673 | WritingReport(0, ATOM_MASTER_DATA_TABLES.ListOfDataTables.UtilityPipeLine, "DATA") 674 | WritingReport(1, ATOM_MASTER_DATA_TABLES.ListOfDataTables.MultimediaCapabilityInfo, "DATA") 675 | WritingReport(2, ATOM_MASTER_DATA_TABLES.ListOfDataTables.MultimediaConfigInfo, "DATA") 676 | WritingReport(3, ATOM_MASTER_DATA_TABLES.ListOfDataTables.StandardVESA_Timing, "DATA") 677 | WritingReport(4, ATOM_MASTER_DATA_TABLES.ListOfDataTables.FirmwareInfo, "DATA") 678 | WritingReport(5, ATOM_MASTER_DATA_TABLES.ListOfDataTables.PaletteData, "DATA") 679 | WritingReport(6, ATOM_MASTER_DATA_TABLES.ListOfDataTables.LCD_Info, "DATA") 680 | WritingReport(7, ATOM_MASTER_DATA_TABLES.ListOfDataTables.DIGTransmitterInfo, "DATA") 681 | WritingReport(8, ATOM_MASTER_DATA_TABLES.ListOfDataTables.AnalogTV_Info, "DATA") 682 | WritingReport(9, ATOM_MASTER_DATA_TABLES.ListOfDataTables.SupportedDevicesInfo, "DATA") 683 | WritingReport(10, ATOM_MASTER_DATA_TABLES.ListOfDataTables.GPIO_I2C_Info, "DATA") 684 | WritingReport(11, ATOM_MASTER_DATA_TABLES.ListOfDataTables.VRAM_UsageByFirmware, "DATA") 685 | WritingReport(12, ATOM_MASTER_DATA_TABLES.ListOfDataTables.GPIO_Pin_LUT, "DATA") 686 | WritingReport(13, ATOM_MASTER_DATA_TABLES.ListOfDataTables.VESA_ToInternalModeLUT, "DATA") 687 | WritingReport(14, ATOM_MASTER_DATA_TABLES.ListOfDataTables.ComponentVideoInfo, "DATA") 688 | WritingReport(15, ATOM_MASTER_DATA_TABLES.ListOfDataTables.PowerPlayInfo, "DATA") 689 | WritingReport(16, ATOM_MASTER_DATA_TABLES.ListOfDataTables.CompassionateData, "DATA") 690 | WritingReport(17, ATOM_MASTER_DATA_TABLES.ListOfDataTables.SaveRestoreInfo, "DATA") 691 | WritingReport(18, ATOM_MASTER_DATA_TABLES.ListOfDataTables.PPLL_SS_Info, "DATA") 692 | WritingReport(19, ATOM_MASTER_DATA_TABLES.ListOfDataTables.OemInfo, "DATA") 693 | WritingReport(20, ATOM_MASTER_DATA_TABLES.ListOfDataTables.XTMDS_Info, "DATA") 694 | WritingReport(21, ATOM_MASTER_DATA_TABLES.ListOfDataTables.MclkSS_Info, "DATA") 695 | WritingReport(22, ATOM_MASTER_DATA_TABLES.ListOfDataTables.Object_Header, "DATA") 696 | WritingReport(23, ATOM_MASTER_DATA_TABLES.ListOfDataTables.IndirectIOAccess, "DATA") 697 | WritingReport(24, ATOM_MASTER_DATA_TABLES.ListOfDataTables.MC_InitParameter, "DATA") 698 | WritingReport(25, ATOM_MASTER_DATA_TABLES.ListOfDataTables.ASIC_VDDC_Info, "DATA") 699 | WritingReport(26, ATOM_MASTER_DATA_TABLES.ListOfDataTables.ASIC_InternalSS_Info, "DATA") 700 | WritingReport(27, ATOM_MASTER_DATA_TABLES.ListOfDataTables.TV_VideoMode, "DATA") 701 | WritingReport(28, ATOM_MASTER_DATA_TABLES.ListOfDataTables.VRAM_Info, "DATA") 702 | WritingReport(29, ATOM_MASTER_DATA_TABLES.ListOfDataTables.MemoryTrainingInfo, "DATA") 703 | WritingReport(30, ATOM_MASTER_DATA_TABLES.ListOfDataTables.IntegratedSystemInfo, "DATA") 704 | WritingReport(31, ATOM_MASTER_DATA_TABLES.ListOfDataTables.ASIC_ProfilingInfo, "DATA") 705 | WritingReport(32, ATOM_MASTER_DATA_TABLES.ListOfDataTables.VoltageObjectInfo, "DATA") 706 | WritingReport(33, ATOM_MASTER_DATA_TABLES.ListOfDataTables.PowerSourceInfo, "DATA") 707 | '########################################################################## 708 | 709 | 710 | End Using 711 | 712 | lblStatus.Text = "BIOS successfully loaded! Please check generated report file of master list tables in BIOS folder." 713 | Return lblStatus.Text 714 | End Function 715 | 716 | Private Sub btnOpenFile_Click(sender As Object, e As EventArgs) Handles btnOpenFile.Click 717 | Dim myStream As IO.FileStream = Nothing 718 | Dim openFileDialog1 As New OpenFileDialog() 719 | 720 | openFileDialog1.InitialDirectory = "" 721 | openFileDialog1.Filter = "ROM files (*.rom)|*.rom|BIN files (*.bin)|*.bin|All files (*.*)|*.*" 722 | openFileDialog1.FilterIndex = 1 723 | openFileDialog1.RestoreDirectory = False 724 | 725 | If openFileDialog1.ShowDialog() = System.Windows.Forms.DialogResult.OK Then 726 | Try 727 | myStream = openFileDialog1.OpenFile() 728 | If (myStream IsNot Nothing) Then 729 | txtFileName.Text = myStream.Name 730 | ATOMROMFILE(txtFileName.Text) 731 | End If 732 | Catch Ex As Exception 733 | MessageBox.Show("Cannot read file from disk. Original error: " & Ex.Message) 734 | Finally 735 | ' Check this again, since we need to make sure we didn't throw an exception on open. 736 | If (myStream IsNot Nothing) Then 737 | myStream.Close() 738 | End If 739 | End Try 740 | End If 741 | End Sub 742 | End Class 743 | -------------------------------------------------------------------------------- /ATOMBIOSReader/ATOMBIOSReader.vbproj: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | Debug 6 | AnyCPU 7 | {E43910C9-B03E-43EA-9884-A7F707B373B8} 8 | WinExe 9 | ATOMBIOSReader.My.MyApplication 10 | ATOMBIOSReader 11 | ATOMBIOSReader 12 | 512 13 | WindowsForms 14 | v4.5.2 15 | true 16 | 17 | 18 | AnyCPU 19 | true 20 | full 21 | true 22 | true 23 | bin\Debug\ 24 | ATOMBIOSReader.xml 25 | 42016,41999,42017,42018,42019,42032,42036,42020,42021,42022 26 | 27 | 28 | AnyCPU 29 | pdbonly 30 | false 31 | true 32 | true 33 | bin\Release\ 34 | ATOMBIOSReader.xml 35 | 42016,41999,42017,42018,42019,42032,42036,42020,42021,42022 36 | 37 | 38 | On 39 | 40 | 41 | Binary 42 | 43 | 44 | Off 45 | 46 | 47 | On 48 | 49 | 50 | 98cd92597dbf8fb4018d567eb6935b35_NyO_icon.ico 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | 78 | 79 | Form 80 | 81 | 82 | ATOMBIOSReader.vb 83 | Form 84 | 85 | 86 | 87 | True 88 | Application.myapp 89 | 90 | 91 | True 92 | True 93 | Resources.resx 94 | 95 | 96 | True 97 | Settings.settings 98 | True 99 | 100 | 101 | 102 | 103 | ATOMBIOSReader.vb 104 | 105 | 106 | VbMyResourcesResXFileCodeGenerator 107 | Resources.Designer.vb 108 | My.Resources 109 | Designer 110 | 111 | 112 | 113 | 114 | MyApplicationCodeGenerator 115 | Application.Designer.vb 116 | 117 | 118 | SettingsSingleFileGenerator 119 | My 120 | Settings.Designer.vb 121 | 122 | 123 | 124 | 125 | 126 | 127 | 128 | 129 | 130 | 131 | 138 | -------------------------------------------------------------------------------- /ATOMBIOSReader/ATOMBIOSReader.vbproj.user: -------------------------------------------------------------------------------- 1 |  2 | 3 | -------------------------------------------------------------------------------- /ATOMBIOSReader/App.config: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /ATOMBIOSReader/My Project/Application.Designer.vb: -------------------------------------------------------------------------------- 1 | '------------------------------------------------------------------------------ 2 | ' 3 | ' This code was generated by a tool. 4 | ' Runtime Version:4.0.30319.42000 5 | ' 6 | ' Changes to this file may cause incorrect behavior and will be lost if 7 | ' the code is regenerated. 8 | ' 9 | '------------------------------------------------------------------------------ 10 | 11 | Option Strict On 12 | Option Explicit On 13 | 14 | 15 | Namespace My 16 | 17 | 'NOTE: This file is auto-generated; do not modify it directly. To make changes, 18 | ' or if you encounter build errors in this file, go to the Project Designer 19 | ' (go to Project Properties or double-click the My Project node in 20 | ' Solution Explorer), and make changes on the Application tab. 21 | ' 22 | Partial Friend Class MyApplication 23 | 24 | _ 25 | Public Sub New() 26 | MyBase.New(Global.Microsoft.VisualBasic.ApplicationServices.AuthenticationMode.Windows) 27 | Me.IsSingleInstance = false 28 | Me.EnableVisualStyles = true 29 | Me.SaveMySettingsOnExit = true 30 | Me.ShutDownStyle = Global.Microsoft.VisualBasic.ApplicationServices.ShutdownMode.AfterMainFormCloses 31 | End Sub 32 | 33 | _ 34 | Protected Overrides Sub OnCreateMainForm() 35 | Me.MainForm = Global.ATOMBIOSReader.ATOMBIOSReader 36 | End Sub 37 | End Class 38 | End Namespace 39 | -------------------------------------------------------------------------------- /ATOMBIOSReader/My Project/Application.myapp: -------------------------------------------------------------------------------- 1 |  2 | 3 | true 4 | ATOMBIOSReader 5 | false 6 | 0 7 | true 8 | 0 9 | true 10 | -------------------------------------------------------------------------------- /ATOMBIOSReader/My Project/AssemblyInfo.vb: -------------------------------------------------------------------------------- 1 | Imports System 2 | Imports System.Reflection 3 | Imports System.Runtime.InteropServices 4 | 5 | ' General Information about an assembly is controlled through the following 6 | ' set of attributes. Change these attribute values to modify the information 7 | ' associated with an assembly. 8 | 9 | ' Review the values of the assembly attributes 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 'The following GUID is for the ID of the typelib if this project is exposed to COM 21 | 22 | 23 | ' Version information for an assembly consists of the following four values: 24 | ' 25 | ' Major Version 26 | ' Minor Version 27 | ' Build Number 28 | ' Revision 29 | ' 30 | ' You can specify all the values or you can default the Build and Revision Numbers 31 | ' by using the '*' as shown below: 32 | ' 33 | 34 | 35 | 36 | -------------------------------------------------------------------------------- /ATOMBIOSReader/My Project/Resources.Designer.vb: -------------------------------------------------------------------------------- 1 | '------------------------------------------------------------------------------ 2 | ' 3 | ' This code was generated by a tool. 4 | ' Runtime Version:4.0.30319.42000 5 | ' 6 | ' Changes to this file may cause incorrect behavior and will be lost if 7 | ' the code is regenerated. 8 | ' 9 | '------------------------------------------------------------------------------ 10 | 11 | Option Strict On 12 | Option Explicit On 13 | 14 | Imports System 15 | 16 | Namespace My.Resources 17 | 18 | 'This class was auto-generated by the StronglyTypedResourceBuilder 19 | 'class via a tool like ResGen or Visual Studio. 20 | 'To add or remove a member, edit your .ResX file then rerun ResGen 21 | 'with the /str option, or rebuild your VS project. 22 | ''' 23 | ''' A strongly-typed resource class, for looking up localized strings, etc. 24 | ''' 25 | _ 29 | Friend Module Resources 30 | 31 | Private resourceMan As Global.System.Resources.ResourceManager 32 | 33 | Private resourceCulture As Global.System.Globalization.CultureInfo 34 | 35 | ''' 36 | ''' Returns the cached ResourceManager instance used by this class. 37 | ''' 38 | _ 39 | Friend ReadOnly Property ResourceManager() As Global.System.Resources.ResourceManager 40 | Get 41 | If Object.ReferenceEquals(resourceMan, Nothing) Then 42 | Dim temp As Global.System.Resources.ResourceManager = New Global.System.Resources.ResourceManager("ATOMBIOSReader.Resources", GetType(Resources).Assembly) 43 | resourceMan = temp 44 | End If 45 | Return resourceMan 46 | End Get 47 | End Property 48 | 49 | ''' 50 | ''' Overrides the current thread's CurrentUICulture property for all 51 | ''' resource lookups using this strongly typed resource class. 52 | ''' 53 | _ 54 | Friend Property Culture() As Global.System.Globalization.CultureInfo 55 | Get 56 | Return resourceCulture 57 | End Get 58 | Set 59 | resourceCulture = value 60 | End Set 61 | End Property 62 | 63 | ''' 64 | ''' Looks up a localized resource of type System.Drawing.Bitmap. 65 | ''' 66 | Friend ReadOnly Property _98cd92597dbf8fb4018d567eb6935b35() As System.Drawing.Bitmap 67 | Get 68 | Dim obj As Object = ResourceManager.GetObject("98cd92597dbf8fb4018d567eb6935b35", resourceCulture) 69 | Return CType(obj,System.Drawing.Bitmap) 70 | End Get 71 | End Property 72 | End Module 73 | End Namespace 74 | -------------------------------------------------------------------------------- /ATOMBIOSReader/My Project/Resources.resx: -------------------------------------------------------------------------------- 1 |  2 | 3 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | 78 | 79 | 80 | 81 | 82 | 83 | 84 | 85 | 86 | 87 | 88 | 89 | 90 | 91 | 92 | 93 | 94 | 95 | 96 | 97 | 98 | 99 | 100 | 101 | 102 | 103 | 104 | 105 | 106 | 107 | 108 | 109 | text/microsoft-resx 110 | 111 | 112 | 2.0 113 | 114 | 115 | System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 116 | 117 | 118 | System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 119 | 120 | 121 | 122 | ..\98cd92597dbf8fb4018d567eb6935b35.jpg;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a 123 | 124 | -------------------------------------------------------------------------------- /ATOMBIOSReader/My Project/Settings.Designer.vb: -------------------------------------------------------------------------------- 1 | '------------------------------------------------------------------------------ 2 | ' 3 | ' This code was generated by a tool. 4 | ' Runtime Version:4.0.30319.42000 5 | ' 6 | ' Changes to this file may cause incorrect behavior and will be lost if 7 | ' the code is regenerated. 8 | ' 9 | '------------------------------------------------------------------------------ 10 | 11 | Option Strict On 12 | Option Explicit On 13 | 14 | 15 | Namespace My 16 | 17 | _ 20 | Partial Friend NotInheritable Class MySettings 21 | Inherits Global.System.Configuration.ApplicationSettingsBase 22 | 23 | Private Shared defaultInstance As MySettings = CType(Global.System.Configuration.ApplicationSettingsBase.Synchronized(New MySettings), MySettings) 24 | 25 | #Region "My.Settings Auto-Save Functionality" 26 | #If _MyType = "WindowsForms" Then 27 | Private Shared addedHandler As Boolean 28 | 29 | Private Shared addedHandlerLockObject As New Object 30 | 31 | _ 32 | Private Shared Sub AutoSaveSettings(ByVal sender As Global.System.Object, ByVal e As Global.System.EventArgs) 33 | If My.Application.SaveMySettingsOnExit Then 34 | My.Settings.Save() 35 | End If 36 | End Sub 37 | #End If 38 | #End Region 39 | 40 | Public Shared ReadOnly Property [Default]() As MySettings 41 | Get 42 | 43 | #If _MyType = "WindowsForms" Then 44 | If Not addedHandler Then 45 | SyncLock addedHandlerLockObject 46 | If Not addedHandler Then 47 | AddHandler My.Application.Shutdown, AddressOf AutoSaveSettings 48 | addedHandler = True 49 | End If 50 | End SyncLock 51 | End If 52 | #End If 53 | Return defaultInstance 54 | End Get 55 | End Property 56 | End Class 57 | End Namespace 58 | 59 | Namespace My 60 | 61 | _ 64 | Friend Module MySettingsProperty 65 | 66 | _ 67 | Friend ReadOnly Property Settings() As Global.ATOMBIOSReader.My.MySettings 68 | Get 69 | Return Global.ATOMBIOSReader.My.MySettings.Default 70 | End Get 71 | End Property 72 | End Module 73 | End Namespace 74 | -------------------------------------------------------------------------------- /ATOMBIOSReader/My Project/Settings.settings: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /ATOMBIOSReader/bin/Debug/ATOMBIOSReader.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kizwan/ATOMBIOSReader/b7b995c49f78fce8115771ec09bc1cfdde55ca7d/ATOMBIOSReader/bin/Debug/ATOMBIOSReader.exe -------------------------------------------------------------------------------- /ATOMBIOSReader/bin/Debug/ATOMBIOSReader.exe.config: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /ATOMBIOSReader/bin/Debug/ATOMBIOSReader.pdb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kizwan/ATOMBIOSReader/b7b995c49f78fce8115771ec09bc1cfdde55ca7d/ATOMBIOSReader/bin/Debug/ATOMBIOSReader.pdb -------------------------------------------------------------------------------- /ATOMBIOSReader/bin/Debug/ATOMBIOSReader.vshost.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kizwan/ATOMBIOSReader/b7b995c49f78fce8115771ec09bc1cfdde55ca7d/ATOMBIOSReader/bin/Debug/ATOMBIOSReader.vshost.exe -------------------------------------------------------------------------------- /ATOMBIOSReader/bin/Debug/ATOMBIOSReader.vshost.exe.config: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /ATOMBIOSReader/bin/Debug/ATOMBIOSReader.vshost.exe.manifest: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /ATOMBIOSReader/bin/Debug/ATOMBIOSReader.xml: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | ATOMBIOSReader 6 | 7 | 8 | 9 | 10 | 11 | A strongly-typed resource class, for looking up localized strings, etc. 12 | 13 | 14 | 15 | 16 | Returns the cached ResourceManager instance used by this class. 17 | 18 | 19 | 20 | 21 | Overrides the current thread's CurrentUICulture property for all 22 | resource lookups using this strongly typed resource class. 23 | 24 | 25 | 26 | 27 | Looks up a localized resource of type System.Drawing.Bitmap. 28 | 29 | 30 | 31 | 32 | -------------------------------------------------------------------------------- /ATOMBIOSReader/bin/Debug/ATOMBIOSReader.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kizwan/ATOMBIOSReader/b7b995c49f78fce8115771ec09bc1cfdde55ca7d/ATOMBIOSReader/bin/Debug/ATOMBIOSReader.zip -------------------------------------------------------------------------------- /ATOMBIOSReader/obj/Debug/ATOMBIOSReader.ATOMBIOSReader.resources: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kizwan/ATOMBIOSReader/b7b995c49f78fce8115771ec09bc1cfdde55ca7d/ATOMBIOSReader/obj/Debug/ATOMBIOSReader.ATOMBIOSReader.resources -------------------------------------------------------------------------------- /ATOMBIOSReader/obj/Debug/ATOMBIOSReader.Resources.resources: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kizwan/ATOMBIOSReader/b7b995c49f78fce8115771ec09bc1cfdde55ca7d/ATOMBIOSReader/obj/Debug/ATOMBIOSReader.Resources.resources -------------------------------------------------------------------------------- /ATOMBIOSReader/obj/Debug/ATOMBIOSReader.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kizwan/ATOMBIOSReader/b7b995c49f78fce8115771ec09bc1cfdde55ca7d/ATOMBIOSReader/obj/Debug/ATOMBIOSReader.exe -------------------------------------------------------------------------------- /ATOMBIOSReader/obj/Debug/ATOMBIOSReader.pdb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kizwan/ATOMBIOSReader/b7b995c49f78fce8115771ec09bc1cfdde55ca7d/ATOMBIOSReader/obj/Debug/ATOMBIOSReader.pdb -------------------------------------------------------------------------------- /ATOMBIOSReader/obj/Debug/ATOMBIOSReader.vbproj.FileListAbsolute.txt: -------------------------------------------------------------------------------- 1 | C:\Users\kizwan\AppData\Local\Temporary Projects\ATOMBIOSReader\bin\Debug\ATOMBIOSReader.exe.config 2 | C:\Users\kizwan\AppData\Local\Temporary Projects\ATOMBIOSReader\obj\Debug\ATOMBIOSReader.vbprojResolveAssemblyReference.cache 3 | C:\Users\kizwan\AppData\Local\Temporary Projects\ATOMBIOSReader\obj\Debug\ATOMBIOSReader.Resources.resources 4 | C:\Users\kizwan\AppData\Local\Temporary Projects\ATOMBIOSReader\obj\Debug\ATOMBIOSReader.vbproj.GenerateResource.Cache 5 | C:\Users\kizwan\AppData\Local\Temporary Projects\ATOMBIOSReader\obj\Debug\ATOMBIOSReader.xml 6 | C:\Users\kizwan\AppData\Local\Temporary Projects\ATOMBIOSReader\bin\Debug\ATOMBIOSReader.exe 7 | C:\Users\kizwan\AppData\Local\Temporary Projects\ATOMBIOSReader\bin\Debug\ATOMBIOSReader.pdb 8 | C:\Users\kizwan\AppData\Local\Temporary Projects\ATOMBIOSReader\bin\Debug\ATOMBIOSReader.xml 9 | C:\Users\kizwan\AppData\Local\Temporary Projects\ATOMBIOSReader\obj\Debug\ATOMBIOSReader.exe 10 | C:\Users\kizwan\AppData\Local\Temporary Projects\ATOMBIOSReader\obj\Debug\ATOMBIOSReader.pdb 11 | C:\Users\kizwan\Documents\Visual Studio 2015\Projects\ATOMBIOSReader\ATOMBIOSReader\bin\Debug\ATOMBIOSReader.exe.config 12 | C:\Users\kizwan\Documents\Visual Studio 2015\Projects\ATOMBIOSReader\ATOMBIOSReader\obj\Debug\ATOMBIOSReader.exe 13 | C:\Users\kizwan\Documents\Visual Studio 2015\Projects\ATOMBIOSReader\ATOMBIOSReader\obj\Debug\ATOMBIOSReader.xml 14 | C:\Users\kizwan\Documents\Visual Studio 2015\Projects\ATOMBIOSReader\ATOMBIOSReader\obj\Debug\ATOMBIOSReader.pdb 15 | C:\Users\kizwan\Documents\Visual Studio 2015\Projects\ATOMBIOSReader\ATOMBIOSReader\bin\Debug\ATOMBIOSReader.exe 16 | C:\Users\kizwan\Documents\Visual Studio 2015\Projects\ATOMBIOSReader\ATOMBIOSReader\bin\Debug\ATOMBIOSReader.pdb 17 | C:\Users\kizwan\Documents\Visual Studio 2015\Projects\ATOMBIOSReader\ATOMBIOSReader\bin\Debug\ATOMBIOSReader.xml 18 | C:\Users\kizwan\Documents\Visual Studio 2015\Projects\ATOMBIOSReader\ATOMBIOSReader\obj\Debug\ATOMBIOSReader.Resources.resources 19 | C:\Users\kizwan\Documents\Visual Studio 2015\Projects\ATOMBIOSReader\ATOMBIOSReader\obj\Debug\ATOMBIOSReader.vbproj.GenerateResource.Cache 20 | C:\Users\kizwan\Documents\Visual Studio 2015\Projects\ATOMBIOSReader\ATOMBIOSReader\obj\Debug\ATOMBIOSReader.ATOMBIOSReader.resources 21 | -------------------------------------------------------------------------------- /ATOMBIOSReader/obj/Debug/ATOMBIOSReader.vbproj.GenerateResource.Cache: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kizwan/ATOMBIOSReader/b7b995c49f78fce8115771ec09bc1cfdde55ca7d/ATOMBIOSReader/obj/Debug/ATOMBIOSReader.vbproj.GenerateResource.Cache -------------------------------------------------------------------------------- /ATOMBIOSReader/obj/Debug/ATOMBIOSReader.xml: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | ATOMBIOSReader 6 | 7 | 8 | 9 | 10 | 11 | A strongly-typed resource class, for looking up localized strings, etc. 12 | 13 | 14 | 15 | 16 | Returns the cached ResourceManager instance used by this class. 17 | 18 | 19 | 20 | 21 | Overrides the current thread's CurrentUICulture property for all 22 | resource lookups using this strongly typed resource class. 23 | 24 | 25 | 26 | 27 | Looks up a localized resource of type System.Drawing.Bitmap. 28 | 29 | 30 | 31 | 32 | -------------------------------------------------------------------------------- /ATOMBIOSReader/obj/Debug/DesignTimeResolveAssemblyReferences.cache: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kizwan/ATOMBIOSReader/b7b995c49f78fce8115771ec09bc1cfdde55ca7d/ATOMBIOSReader/obj/Debug/DesignTimeResolveAssemblyReferences.cache -------------------------------------------------------------------------------- /ATOMBIOSReader/obj/Debug/DesignTimeResolveAssemblyReferencesInput.cache: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kizwan/ATOMBIOSReader/b7b995c49f78fce8115771ec09bc1cfdde55ca7d/ATOMBIOSReader/obj/Debug/DesignTimeResolveAssemblyReferencesInput.cache -------------------------------------------------------------------------------- /ATOMBIOSReader/obj/Debug/TempPE/My.Project.Resources.Designer.vb.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kizwan/ATOMBIOSReader/b7b995c49f78fce8115771ec09bc1cfdde55ca7d/ATOMBIOSReader/obj/Debug/TempPE/My.Project.Resources.Designer.vb.dll -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2017 Khalifazarul Izwan b. Kasim 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # ATOMBIOSReader 2 | ### Generate master list of command and data tables from ATOM BIOS 3 | 4 | ![alt text](https://github.com/kizwan/ATOMBIOSReader/blob/master/ATOMBIOSReader/ATOMBIOSReader.jpg "ATOMBIOSReader") 5 | 6 | ``` 7 | Source of information:- 8 | http://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/tree/drivers/gpu/drm/radeon/atombios.h 9 | https://cgit.freedesktop.org/~mhopf/AtomDis/tree/indices.c 10 | 11 | Example generated master list of command and data tables:- 12 | Read f800 bytes of data from D:\Drivers\Dell Studio 1557\BIOS\ATIMobilityRadeonHD4570.bin 13 | 14 | Command Tables: 15 | 0000: b8b4 Len 0054 (ASIC_Init) 16 | 0001: b908 Len 0038 (GetDisplaySurfaceSize) 17 | 0002: b940 Len 02dc (ASIC_RegistersInit) 18 | 0003: de64 Len 0088 (VRAM_BlockVenderDetection) 19 | 0004: ea30 Len 0193 (SetClocksRatio/DIGxEncoderControl) 20 | 0005: bc1c Len 011b (MemoryControllerInit) 21 | 0006: bd38 Len 002b (EnableCRTCMemReq) 22 | 0007: deec Len 002f (MemoryParamAdjust) 23 | 0008: - (DVOEncoderControl) 24 | 0009: bd64 Len 010c (GPIOPinControl) 25 | 000a: be70 Len 00ec (SetEngineClock) 26 | 000b: bf5c Len 01c3 (SetMemoryClock) 27 | 000c: c120 Len 0365 (SetPixelClock) 28 | 000d: - (DynamicClockGating) 29 | 000e: c48c Len 0038 (ResetMemoryDLL) 30 | 000f: c4c4 Len 0063 (ResetMemoryDevice) 31 | 0010: e772 Len 00af (MemoryPLLInit) 32 | 0011: e822 Len 0076 (AdjustDisplayPll) 33 | 0012: c5f8 Len 008a (AdjustMemoryController) 34 | 0013: c682 Len 000a (EnableASIC_StaticPwrMgt) 35 | 0014: c68c Len 00c1 (ASIC_StaticPwrMgtStatusChange/SetUniphyInstance) 36 | 0015: c74e Len 015d (DAC_LoadDetection) 37 | 0016: - (LVTMAEncoderControl) 38 | 0017: - (LCD1OutputControl) 39 | 0018: c8ac Len 0137 (DAC1EncoderControl) 40 | 0019: c9e4 Len 000d (DAC2EncoderControl) 41 | 001a: c9f2 Len 0022 (DVOOutputControl) 42 | 001b: - (CV1OutputControl) 43 | 001c: f69a Len 0028 (GetConditionalGoldenSetting/SetCRTC_DPM_State) 44 | 001d: ca14 Len 0514 (TVEncoderControl) 45 | 001e: - (TMDSAEncoderControl) 46 | 001f: - (LVDSEncoderControl) 47 | 0020: - (TV1OutputControl) 48 | 0021: cf28 Len 04b3 (EnableScaler) 49 | 0022: d3dc Len 0060 (BlankCRTC) 50 | 0023: d43c Len 0055 (EnableCRTC) 51 | 0024: d492 Len 0080 (GetPixelClock) 52 | 0025: d512 Len 01db (EnableVGA_Render) 53 | 0026: d6ee Len 001b (EnableVGA_Access/GetSCLKOverMCLKRatio) 54 | 0027: d70a Len 00eb (SetCRTC_Timing) 55 | 0028: d7f6 Len 001e (SetCRTC_OverScan) 56 | 0029: - (SetCRTC_Replication) 57 | 002a: d814 Len 0108 (SelectCRTC_Source) 58 | 002b: d91c Len 0106 (EnableGraphSurfaces) 59 | 002c: da22 Len 006d (UpdateCRTC_DoubleBufferRegisters) 60 | 002d: da90 Len 004e (LUT_AutoFill) 61 | 002e: dade Len 0119 (EnableHW_IconCursor) 62 | 002f: dbf8 Len 0050 (GetMemoryClock) 63 | 0030: dc48 Len 0060 (GetEngineClock) 64 | 0031: dca8 Len 011b (SetCRTC_UsingDTDTiming) 65 | 0032: - (ExternalEncoderControl) 66 | 0033: - (LVTMAOutputControl) 67 | 0034: ddc4 Len 009f (VRAM_BlockDetectionByStrap) 68 | 0035: df1c Len 00dc (MemoryCleanUp) 69 | 0036: dff8 Len 0207 (ReadEDIDFromHWAssistedI2C/ProcessI2cChannelTransaction) 70 | 0037: - (WriteOneByteToHWAssistedI2C) 71 | 0038: - (ReadHWAssistedI2CStatus/HPDInterruptService) 72 | 0039: - (SpeedFanControl) 73 | 003a: e200 Len 000a (PowerConnectorDetection) 74 | 003b: e20a Len 002c (MC_Synchronization) 75 | 003c: e236 Len 00b9 (ComputeMemoryEnginePLL) 76 | 003d: e2f0 Len 005f (MemoryRefreshConversion) 77 | 003e: ebc4 Len 0029 (VRAM_GetCurrentInfoBlock) 78 | 003f: e350 Len 02c6 (DynamicMemorySettings) 79 | 0040: e616 Len 0007 (MemoryTraining) 80 | 0041: e61e Len 0058 (EnableSpreadSpectrumOnPPLL) 81 | 0042: - (TMDSAOutputControl) 82 | 0043: e898 Len 0197 (SetVoltage) 83 | 0044: e676 Len 0013 (DAC1OutputControl) 84 | 0045: e68a Len 0013 (DAC2OutputControl) 85 | 0046: - (SetupHWAssistedI2CStatus) 86 | 0047: c528 Len 005e (ClockSource) 87 | 0048: c586 Len 0071 (MemoryDeviceInit) 88 | 0049: e69e Len 00d3 (EnableYUV) 89 | 004a: ebee Len 0026 (DIG1EncoderControl) 90 | 004b: ec14 Len 002a (DIG2EncoderControl) 91 | 004c: ec3e Len 07de (DIG1TransmitterControl/UNIPHYTransmitterControl) 92 | 004d: - (DIG2TransmitterControl/LVTMATransmitterControl) 93 | 004e: f41c Len 0226 (ProcessAuxChannelTransaction) 94 | 004f: f642 Len 0057 (DPEncoderService) 95 | 96 | Data Tables: 97 | 0000: - (UtilityPipeLine) 98 | 0001: b0f2 Len 000c Rev 01:01 (MultimediaCapabilityInfo) 99 | 0002: b0fe Len 0014 Rev 01:01 (MultimediaConfigInfo) 100 | 0003: a9a0 Len 042c Rev 01:02 (StandardVESA_Timing) 101 | 0004: adcc Len 0059 Rev 01:04 (FirmwareInfo) 102 | 0005: - (DAC_Info) 103 | 0006: ae26 Len 0036 Rev 01:02 (LVDS_Info) 104 | 0007: - (TMDS_Info) 105 | 0008: ae5c Len 005c Rev 01:02 (AnalogTV_Info) 106 | 0009: - (SupportedDevicesInfo) 107 | 000a: aeb8 Len 00c1 Rev 01:01 (GPIO_I2C_Info) 108 | 000b: af7a Len 000c Rev 01:04 (VRAM_UsageByFirmware) 109 | 000c: af86 Len 0058 Rev 01:01 (GPIO_Pin_LUT) 110 | 000d: afde Len 00d8 Rev 01:01 (VESA_ToInternalModeLUT) 111 | 000e: b0b6 Len 003c Rev 02:01 (ComponentVideoInfo) 112 | 000f: b112 Len 0274 Rev 04:01 (PowerPlayInfo) 113 | 0010: - (CompassionateData) 114 | 0011: b898 Len 001c Rev 02:01 (SaveRestoreInfo/DispDevicePriorityInfo) 115 | 0012: b386 Len 0014 Rev 01:02 (PPLL_SS_Info/SS_Info) 116 | 0013: - (OemInfo) 117 | 0014: - (XTMDS_Info) 118 | 0015: - (MclkSS_Info) 119 | 0016: b39a Len 00c5 Rev 01:02 (Object_Info/Object_Header) 120 | 0017: b572 Len 0055 Rev 01:01 (IndirectIOAccess) 121 | 0018: b460 Len 0112 Rev 01:02 (MC_InitParameter/AdjustARB_SEQ) 122 | 0019: - (ASIC_VDDC_Info) 123 | 001a: b7fc Len 001c Rev 02:01 (ASIC_InternalSS_Info/ASIC_MVDDC_Info) 124 | 001b: b818 Len 007f Rev 02:02 (TV_VideoMode/DispOutInfo) 125 | 001c: b5c8 Len 0211 Rev 01:04 (VRAM_Info) 126 | 001d: - (MemoryTrainingInfo/ASIC_MVDDQ_Info) 127 | 001e: - (IntegratedSystemInfo) 128 | 001f: - (ASIC_ProfilingInfo/ASIC_VDDCI_Info) 129 | 0020: b7da Len 0022 Rev 01:01 (VoltageObjectInfo/VRAM_GPIO_DetectionInfo) 130 | 0021: - (PowerSourceInfo) 131 | ``` 132 | --------------------------------------------------------------------------------