├── .gitignore
├── README.md
├── SC.ico
├── SteamCompanion.sln
├── SteamCompanion
├── App.config
├── GameData.Designer.cs
├── GameData.cs
├── GameData.resx
├── MainWindow.Designer.cs
├── MainWindow.cs
├── MainWindow.resx
├── Program.cs
├── Properties
│ ├── AssemblyInfo.cs
│ ├── Resources.Designer.cs
│ ├── Resources.resx
│ ├── Settings.Designer.cs
│ └── Settings.settings
└── SteamCompanion.csproj
├── genres.jpg
└── main_window.jpg
/.gitignore:
--------------------------------------------------------------------------------
1 | ## Ignore Visual Studio temporary files, build results, and
2 | ## files generated by popular Visual Studio add-ons.
3 |
4 | # User-specific files
5 | *.suo
6 | *.user
7 | *.userosscache
8 | *.sln.docstates
9 |
10 | # User-specific files (MonoDevelop/Xamarin Studio)
11 | *.userprefs
12 |
13 | # Build results
14 | [Dd]ebug/
15 | [Dd]ebugPublic/
16 | [Rr]elease/
17 | [Rr]eleases/
18 | x64/
19 | x86/
20 | build/
21 | bld/
22 | [Bb]in/
23 | [Oo]bj/
24 |
25 | # Visual Studo 2015 cache/options directory
26 | .vs/
27 |
28 | # MSTest test Results
29 | [Tt]est[Rr]esult*/
30 | [Bb]uild[Ll]og.*
31 |
32 | # NUNIT
33 | *.VisualState.xml
34 | TestResult.xml
35 |
36 | # Build Results of an ATL Project
37 | [Dd]ebugPS/
38 | [Rr]eleasePS/
39 | dlldata.c
40 |
41 | *_i.c
42 | *_p.c
43 | *_i.h
44 | *.ilk
45 | *.meta
46 | *.obj
47 | *.pch
48 | *.pdb
49 | *.pgc
50 | *.pgd
51 | *.rsp
52 | *.sbr
53 | *.tlb
54 | *.tli
55 | *.tlh
56 | *.tmp
57 | *.tmp_proj
58 | *.log
59 | *.vspscc
60 | *.vssscc
61 | .builds
62 | *.pidb
63 | *.svclog
64 | *.scc
65 |
66 | # Chutzpah Test files
67 | _Chutzpah*
68 |
69 | # Visual C++ cache files
70 | ipch/
71 | *.aps
72 | *.ncb
73 | *.opensdf
74 | *.sdf
75 | *.cachefile
76 |
77 | # Visual Studio profiler
78 | *.psess
79 | *.vsp
80 | *.vspx
81 |
82 | # TFS 2012 Local Workspace
83 | $tf/
84 |
85 | # Guidance Automation Toolkit
86 | *.gpState
87 |
88 | # ReSharper is a .NET coding add-in
89 | _ReSharper*/
90 | *.[Rr]e[Ss]harper
91 | *.DotSettings.user
92 |
93 | # JustCode is a .NET coding addin-in
94 | .JustCode
95 |
96 | # TeamCity is a build add-in
97 | _TeamCity*
98 |
99 | # DotCover is a Code Coverage Tool
100 | *.dotCover
101 |
102 | # NCrunch
103 | _NCrunch_*
104 | .*crunch*.local.xml
105 |
106 | # MightyMoose
107 | *.mm.*
108 | AutoTest.Net/
109 |
110 | # Web workbench (sass)
111 | .sass-cache/
112 |
113 | # Installshield output folder
114 | [Ee]xpress/
115 |
116 | # DocProject is a documentation generator add-in
117 | DocProject/buildhelp/
118 | DocProject/Help/*.HxT
119 | DocProject/Help/*.HxC
120 | DocProject/Help/*.hhc
121 | DocProject/Help/*.hhk
122 | DocProject/Help/*.hhp
123 | DocProject/Help/Html2
124 | DocProject/Help/html
125 |
126 | # Click-Once directory
127 | publish/
128 |
129 | # Publish Web Output
130 | *.[Pp]ublish.xml
131 | *.azurePubxml
132 | # TODO: Comment the next line if you want to checkin your web deploy settings
133 | # but database connection strings (with potential passwords) will be unencrypted
134 | *.pubxml
135 | *.publishproj
136 |
137 | # NuGet Packages
138 | *.nupkg
139 | # The packages folder can be ignored because of Package Restore
140 | **/packages/*
141 | # except build/, which is used as an MSBuild target.
142 | !**/packages/build/
143 | # Uncomment if necessary however generally it will be regenerated when needed
144 | #!**/packages/repositories.config
145 |
146 | # Windows Azure Build Output
147 | csx/
148 | *.build.csdef
149 |
150 | # Windows Store app package directory
151 | AppPackages/
152 |
153 | # Others
154 | *.[Cc]ache
155 | ClientBin/
156 | [Ss]tyle[Cc]op.*
157 | ~$*
158 | *~
159 | *.dbmdl
160 | *.dbproj.schemaview
161 | *.pfx
162 | *.publishsettings
163 | node_modules/
164 | bower_components/
165 |
166 | # RIA/Silverlight projects
167 | Generated_Code/
168 |
169 | # Backup & report files from converting an old project file
170 | # to a newer Visual Studio version. Backup files are not needed,
171 | # because we have git ;-)
172 | _UpgradeReport_Files/
173 | Backup*/
174 | UpgradeLog*.XML
175 | UpgradeLog*.htm
176 |
177 | # SQL Server files
178 | *.mdf
179 | *.ldf
180 |
181 | # Business Intelligence projects
182 | *.rdl.data
183 | *.bim.layout
184 | *.bim_*.settings
185 |
186 | # Microsoft Fakes
187 | FakesAssemblies/
188 |
189 | # Node.js Tools for Visual Studio
190 | .ntvs_analysis.dat
191 |
192 | # Visual Studio 6 build log
193 | *.plg
194 |
195 | # Visual Studio 6 workspace options file
196 | *.opt
197 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # SteamCompanion
2 |
3 | Do you have hundreds of games and you don't know what half of them even look like? SteamCompanion can help you
4 |
5 | 
6 |
7 | # Getting started
8 |
9 | Input your username, press "Get all" and the application will get your list of games from Steam (uses your Steam Community web profile)
10 | You'll get a list with your games (without genred or images)
11 |
12 | You can now download genres and tags or images from the Steam Store using the "Game data" menu. You can download them for the selected games or for all the games.
13 |
14 | (Note: "All games" uses the list of games shown at the moment, so you can search for a term or filter the list by tags and then download images for only the shown games)
15 |
16 | Getting the data or images can take a while. A console window will tell you the progress so you know the program is working.
17 |
18 | I suggest batch-resizing the downloaded images to 720p or lower. My initial test for 900 games produced 5+gb of images and, after resizing them and saving at 80% quality with IrfanView, got reduced to 1gb)
19 |
20 |
21 | You should now have a list with all your games, tags, categories and images. I'd recommend saving the list using Profile -> Save profile.
22 |
23 | Whenever you want to update your list with new games, just input your username and press Update. The program will check all the games from your Steam profile that aren't on your list and prompt you asking if you want to add it or not (maybe you already cleaned your list a bit removing duplicates and don't want them readded again)
24 |
25 | # Controls
26 |
27 | ## Menu bar
28 |
29 | Profile: You can save and load the current list to a XML file. If you press "Autosave/load", the program will save the current list as autosave.xml whenever you exit and load it again when you start.
30 | When you save or load profiles you are saving **the whole list of games**, not just the ones currently being shown on the "Games" list.
31 |
32 | Game data: Get categories and tags or images for the selected game or the currently showing list of games
33 |
34 | Tools: Let's you see a list of the games without genres/tags or images, so you can edit them manually or add screenshots. Useful to find things like games no longer on Steam.
35 |
36 | ## Main window
37 |
38 | If you click on categories and tags, you'll select or unselect them and the game list will change to show the games that have the selected genres and tags.
39 |
40 | You can search for a game using the text box on top of the games list. It'll search for whatever you typed anywhere on the game's name and it's not case sensitive.
41 |
42 | Double click on any game will open the tag and genre editor (more about that later)
43 |
44 | ### Key shortcuts
45 |
46 | All of these work when the list of games is the "active" part of the window (when you clicked on it or tabed to it)
47 |
48 | * Right direction key: Shows the next image for the selected game
49 |
50 | * Left direction key: Jumps to a random game on the current list
51 |
52 | * Enter: Launch the selected game
53 |
54 | * Space: Open the selected game's screenshot folder. You can then add your own jpgs there and they will load when you select the game again
55 |
56 | * Delete: It will remove the game from the list and delete all the images from the game's folder. **It will prompt you before deleting it**.
57 |
58 | # Tag editor
59 |
60 | 
61 |
62 | When you double click a game you'll get this window.
63 |
64 | The current genres and tags for that game will be selected already. Just select all the tags/genres you want or add your own by writing them and pressing the "+" button.
65 |
--------------------------------------------------------------------------------
/SC.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Knudow/SteamCompanion/5b92eb79cf4510a308f315e31f598848c6bc33af/SC.ico
--------------------------------------------------------------------------------
/SteamCompanion.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("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SteamCompanion", "SteamCompanion\SteamCompanion.csproj", "{A251794B-C2D6-4950-A1BC-BEFFFA33DAB5}"
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 | {A251794B-C2D6-4950-A1BC-BEFFFA33DAB5}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
15 | {A251794B-C2D6-4950-A1BC-BEFFFA33DAB5}.Debug|Any CPU.Build.0 = Debug|Any CPU
16 | {A251794B-C2D6-4950-A1BC-BEFFFA33DAB5}.Release|Any CPU.ActiveCfg = Release|Any CPU
17 | {A251794B-C2D6-4950-A1BC-BEFFFA33DAB5}.Release|Any CPU.Build.0 = Release|Any CPU
18 | EndGlobalSection
19 | GlobalSection(SolutionProperties) = preSolution
20 | HideSolutionNode = FALSE
21 | EndGlobalSection
22 | EndGlobal
23 |
--------------------------------------------------------------------------------
/SteamCompanion/App.config:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 | 0, 0
15 |
16 |
17 | False
18 |
19 |
20 |
21 |
--------------------------------------------------------------------------------
/SteamCompanion/GameData.Designer.cs:
--------------------------------------------------------------------------------
1 | namespace SteamCompanion
2 | {
3 | partial class GameData
4 | {
5 | ///
6 | /// Required designer variable.
7 | ///
8 | private System.ComponentModel.IContainer components = null;
9 |
10 | ///
11 | /// Clean up any resources being used.
12 | ///
13 | /// true if managed resources should be disposed; otherwise, false.
14 | protected override void Dispose(bool disposing)
15 | {
16 | if (disposing && (components != null))
17 | {
18 | components.Dispose();
19 | }
20 | base.Dispose(disposing);
21 | }
22 |
23 | #region Windows Form Designer generated code
24 |
25 | ///
26 | /// Required method for Designer support - do not modify
27 | /// the contents of this method with the code editor.
28 | ///
29 | private void InitializeComponent()
30 | {
31 | System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(GameData));
32 | this.label4 = new System.Windows.Forms.Label();
33 | this.listbox_tags = new System.Windows.Forms.ListBox();
34 | this.label3 = new System.Windows.Forms.Label();
35 | this.listbox_categories = new System.Windows.Forms.ListBox();
36 | this.button1 = new System.Windows.Forms.Button();
37 | this.add_genre = new System.Windows.Forms.Button();
38 | this.add_tag = new System.Windows.Forms.Button();
39 | this.text_genre = new System.Windows.Forms.TextBox();
40 | this.text_tag = new System.Windows.Forms.TextBox();
41 | this.button2 = new System.Windows.Forms.Button();
42 | this.SuspendLayout();
43 | //
44 | // label4
45 | //
46 | this.label4.AutoSize = true;
47 | this.label4.Location = new System.Drawing.Point(130, 6);
48 | this.label4.Name = "label4";
49 | this.label4.Size = new System.Drawing.Size(31, 13);
50 | this.label4.TabIndex = 15;
51 | this.label4.Text = "Tags";
52 | //
53 | // listbox_tags
54 | //
55 | this.listbox_tags.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
56 | | System.Windows.Forms.AnchorStyles.Left)));
57 | this.listbox_tags.FormattingEnabled = true;
58 | this.listbox_tags.Location = new System.Drawing.Point(133, 54);
59 | this.listbox_tags.Name = "listbox_tags";
60 | this.listbox_tags.SelectionMode = System.Windows.Forms.SelectionMode.MultiSimple;
61 | this.listbox_tags.Size = new System.Drawing.Size(120, 524);
62 | this.listbox_tags.Sorted = true;
63 | this.listbox_tags.TabIndex = 14;
64 | //
65 | // label3
66 | //
67 | this.label3.AutoSize = true;
68 | this.label3.Location = new System.Drawing.Point(7, 6);
69 | this.label3.Name = "label3";
70 | this.label3.Size = new System.Drawing.Size(57, 13);
71 | this.label3.TabIndex = 13;
72 | this.label3.Text = "Categories";
73 | //
74 | // listbox_categories
75 | //
76 | this.listbox_categories.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
77 | | System.Windows.Forms.AnchorStyles.Left)));
78 | this.listbox_categories.FormattingEnabled = true;
79 | this.listbox_categories.Location = new System.Drawing.Point(7, 54);
80 | this.listbox_categories.Name = "listbox_categories";
81 | this.listbox_categories.SelectionMode = System.Windows.Forms.SelectionMode.MultiSimple;
82 | this.listbox_categories.Size = new System.Drawing.Size(120, 524);
83 | this.listbox_categories.Sorted = true;
84 | this.listbox_categories.TabIndex = 12;
85 | //
86 | // button1
87 | //
88 | this.button1.DialogResult = System.Windows.Forms.DialogResult.OK;
89 | this.button1.Location = new System.Drawing.Point(269, 54);
90 | this.button1.Name = "button1";
91 | this.button1.Size = new System.Drawing.Size(121, 40);
92 | this.button1.TabIndex = 16;
93 | this.button1.Text = "Save";
94 | this.button1.UseVisualStyleBackColor = true;
95 | this.button1.Click += new System.EventHandler(this.button1_Click);
96 | //
97 | // add_genre
98 | //
99 | this.add_genre.Location = new System.Drawing.Point(103, 25);
100 | this.add_genre.Name = "add_genre";
101 | this.add_genre.Size = new System.Drawing.Size(23, 23);
102 | this.add_genre.TabIndex = 17;
103 | this.add_genre.Text = "+";
104 | this.add_genre.UseVisualStyleBackColor = true;
105 | this.add_genre.Click += new System.EventHandler(this.add_genre_Click);
106 | //
107 | // add_tag
108 | //
109 | this.add_tag.Location = new System.Drawing.Point(230, 25);
110 | this.add_tag.Name = "add_tag";
111 | this.add_tag.Size = new System.Drawing.Size(23, 23);
112 | this.add_tag.TabIndex = 18;
113 | this.add_tag.Text = "+";
114 | this.add_tag.UseVisualStyleBackColor = true;
115 | this.add_tag.Click += new System.EventHandler(this.add_tag_Click);
116 | //
117 | // text_genre
118 | //
119 | this.text_genre.Location = new System.Drawing.Point(7, 27);
120 | this.text_genre.Name = "text_genre";
121 | this.text_genre.Size = new System.Drawing.Size(90, 20);
122 | this.text_genre.TabIndex = 19;
123 | //
124 | // text_tag
125 | //
126 | this.text_tag.Location = new System.Drawing.Point(134, 27);
127 | this.text_tag.Name = "text_tag";
128 | this.text_tag.Size = new System.Drawing.Size(90, 20);
129 | this.text_tag.TabIndex = 20;
130 | //
131 | // button2
132 | //
133 | this.button2.DialogResult = System.Windows.Forms.DialogResult.Cancel;
134 | this.button2.Location = new System.Drawing.Point(269, 100);
135 | this.button2.Name = "button2";
136 | this.button2.Size = new System.Drawing.Size(121, 40);
137 | this.button2.TabIndex = 21;
138 | this.button2.Text = "Cancel";
139 | this.button2.UseVisualStyleBackColor = true;
140 | //
141 | // GameData
142 | //
143 | this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
144 | this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
145 | this.ClientSize = new System.Drawing.Size(404, 586);
146 | this.Controls.Add(this.button2);
147 | this.Controls.Add(this.text_tag);
148 | this.Controls.Add(this.text_genre);
149 | this.Controls.Add(this.add_tag);
150 | this.Controls.Add(this.add_genre);
151 | this.Controls.Add(this.button1);
152 | this.Controls.Add(this.label4);
153 | this.Controls.Add(this.listbox_tags);
154 | this.Controls.Add(this.label3);
155 | this.Controls.Add(this.listbox_categories);
156 | this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon")));
157 | this.MaximumSize = new System.Drawing.Size(420, 1080);
158 | this.MinimumSize = new System.Drawing.Size(420, 625);
159 | this.Name = "GameData";
160 | this.Text = "GameData";
161 | this.Load += new System.EventHandler(this.GameData_Load);
162 | this.ResumeLayout(false);
163 | this.PerformLayout();
164 |
165 | }
166 |
167 | #endregion
168 | private System.Windows.Forms.Label label4;
169 | private System.Windows.Forms.ListBox listbox_tags;
170 | private System.Windows.Forms.Label label3;
171 | private System.Windows.Forms.ListBox listbox_categories;
172 | private System.Windows.Forms.Button button1;
173 | private System.Windows.Forms.Button add_genre;
174 | private System.Windows.Forms.Button add_tag;
175 | private System.Windows.Forms.TextBox text_genre;
176 | private System.Windows.Forms.TextBox text_tag;
177 | private System.Windows.Forms.Button button2;
178 | }
179 | }
--------------------------------------------------------------------------------
/SteamCompanion/GameData.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.ComponentModel;
4 | using System.Data;
5 | using System.Drawing;
6 | using System.Linq;
7 | using System.Text;
8 | using System.Threading.Tasks;
9 | using System.Windows.Forms;
10 |
11 | namespace SteamCompanion
12 | {
13 | public partial class GameData : Form
14 | {
15 | public Game g { get; set; }
16 | public List genres { get; set; }
17 | public List tags { get; set; }
18 |
19 | private int desiredStartLocationX;
20 | private int desiredStartLocationY;
21 |
22 | public GameData(int x, int y)
23 | : this()
24 | {
25 | //We save the desired window position
26 | this.desiredStartLocationX = x;
27 | this.desiredStartLocationY = y;
28 |
29 | Load += new EventHandler(GameData_Load);
30 | }
31 |
32 | public GameData()
33 | {
34 | InitializeComponent();
35 | }
36 |
37 | private void GameData_Load(object sender, EventArgs e)
38 | {
39 | //We set the listboxes sources
40 | this.SetDesktopLocation(desiredStartLocationX, desiredStartLocationY);
41 | this.Text = g.name;
42 | listbox_categories.DataSource = genres;
43 | listbox_tags.DataSource = tags;
44 |
45 | listbox_categories.ClearSelected();
46 | listbox_tags.ClearSelected();
47 |
48 | //We select the tags/categories that the selected game has
49 | if (g.genres != null)
50 | {
51 | if (g.genres.Count > 0)
52 | {
53 | foreach (String s in g.genres)
54 | {
55 | listbox_categories.SetSelected(listbox_categories.FindStringExact(s), true);
56 | }
57 | }
58 | }
59 |
60 | if (g.tags != null)
61 | {
62 | if (g.tags.Count > 0)
63 | {
64 | foreach (String s in g.tags)
65 | {
66 | listbox_tags.SetSelected(listbox_tags.FindStringExact(s), true);
67 | }
68 | }
69 | }
70 | }
71 |
72 | private void button1_Click(object sender, EventArgs e)
73 | {
74 | //When the user saves, we create a new game with all the selected genres and tags
75 | Game g2 = g;
76 | g2.genres = listbox_categories.SelectedItems.Cast().ToList();
77 | g2.tags = listbox_tags.SelectedItems.Cast().ToList();
78 |
79 | g = g2;
80 | }
81 |
82 | private void add_genre_Click(object sender, EventArgs e)
83 | {
84 | if(!string.IsNullOrWhiteSpace(text_genre.Text))
85 | {
86 | if(!genres.Contains(text_genre.Text))
87 | {
88 | genres.Add(text_genre.Text);
89 | listbox_categories.DataSource = null;
90 | listbox_categories.DataSource = genres;
91 | foreach (String s in g.genres)
92 | {
93 | listbox_categories.SetSelected(listbox_categories.FindStringExact(s), true);
94 | }
95 | }
96 | }
97 | }
98 |
99 | private void add_tag_Click(object sender, EventArgs e)
100 | {
101 | if (!string.IsNullOrWhiteSpace(text_tag.Text))
102 | {
103 | if (!tags.Contains(text_tag.Text))
104 | {
105 | tags.Add(text_tag.Text);
106 | listbox_tags.DataSource = null;
107 | listbox_tags.DataSource = tags;
108 | foreach (String s in g.tags)
109 | {
110 | listbox_tags.SetSelected(listbox_tags.FindStringExact(s), true);
111 | }
112 | }
113 | }
114 | }
115 | }
116 | }
117 |
--------------------------------------------------------------------------------
/SteamCompanion/GameData.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 | AAABAAEAilYAAAEAGACgkgAAFgAAACgAAACKAAAArAAAAAEAGAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
124 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
125 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
126 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
127 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
128 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
129 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
130 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
131 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
132 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
133 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
134 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
135 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
136 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
137 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
138 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
139 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
140 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
141 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
142 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
143 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
144 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
145 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
146 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
147 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
148 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
149 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
150 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
151 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
152 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
153 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
154 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
155 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
156 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
157 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
158 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
159 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
160 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
161 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
162 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
163 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
164 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
165 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
166 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
167 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
168 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
169 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
170 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
171 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
172 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
173 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
174 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
175 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
176 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
177 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
178 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
179 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
180 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
181 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
182 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
183 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
184 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
185 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
186 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
187 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
188 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
189 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
190 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
191 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
192 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
193 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
194 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAQEBAQEBAQEBAQEBAQEB
195 | AQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEB
196 | AQEBAQEBAQEBAQEBAQEBAQEBAQABAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
197 | AAABAQABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEB
198 | AQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQABAQAAAAAAAAAAAAAAAAAAAAAAAAAA
199 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
200 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
201 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEBAQICAgMDAgMDAwUFBAUFBAYGBAYGBAYGBAYG
202 | BAYGBAYGBAYGBAYGBAYGBAYGBAYGBAYGBAYGBAYGBAYGBAYGBAYGBAYGBAYGBAYGBAYGBAYGBAYGBAYG
203 | BAYGBAYGBAYGBAUFAwUFAgMDAgMDAQEBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQEBAgMDAgMD
204 | BAUFAwUFBAYGBAYGBAYGBAYGBAYGBAYGBAYGBAYGBAYGBAYGBAYGBAYGBAYGBAYGBAYGBAYGBAYGBAYG
205 | BAYGBAYGBAYGBAYGBAYGBAYGBAYGBAYGBAYGBAYGBAUFAwQEAgMDAgICAQEBAAAAAAAAAAAAAAAAAAAA
206 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
207 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
208 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAQEBAgIEBQUGCAgICwsLDg4MDw8MEBANERENERENERENEREN
209 | ERENERENERENERENERENERENERENERENERENERENERENERENERENERENERENERENERENERENERENEREN
210 | EREMEBAMDw8LDg4ICwsGCAgEBgYCAwMAAQEAAAAAAAAAAAAAAAAAAAAAAQECAgIDBQUFBwcICwsKDQ0M
211 | Dw8MEBANERENERENERENERENERENERENERENERENERENERENERENERENERENERENERENERENERENEREN
212 | ERENERENERENERENERENERENERENEREMEBALDw8KDQ0ICwsFBwcEBQUCAgIAAQEAAAAAAAAAAAAAAAAA
213 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
214 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
215 | AAAAAAAAAAAAAAAAAAAAAAABAQIDAwUHBwoNDQ8UFBQbGxcfHxojIxwkJB0lJR0lJR0lJR0lJR0lJR0l
216 | JR0lJR0lJR0lJR0lJR0lJR0lJR0lJR0lJR0lJR0lJR0lJR0lJR0lJR0lJR0lJR0lJR0lJR0lJR0lJRwk
217 | JBojIxcfHxYdHRAVFQsODgUHBwIDAwEBAQAAAAAAAAAAAAABAQICAgQGBggLCw8UFBQZGRcfHxojIxwk
218 | JBwkJB0lJR0lJR0lJR0lJR0lJR0lJR0lJR0lJR0lJR0lJR0lJR0lJR0lJR0lJR0lJR0lJR0lJR0lJR0l
219 | JR0lJR0lJR0lJR0lJR0lJRwkJBwkJBkgIBYdHRIYGA4SEggLCwQGBgECAgAAAAAAAAAAAAAAAAAAAAAA
220 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
221 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
222 | AAAAAAAAAAAAAAAAAQICBAYGCAoKEBQUFh0dHygoJS8vJjAwKDMzKDMzKDMzKDMzKDMzKDMzKDMzKDMz
223 | KDMzKDMzKDMzKDMzKDMzKDMzKDMzKDMzKDMzKDMzKDMzKDMzKDMzKDMzKDMzKDMzKDMzKDMzKDMzJjAw
224 | JS8vICkpGR8fEBYWDA8PBAYGAQICAAAAAAAAAAAAAAEBAwUFCAsLDRISFh0dHSYmJC0tJjAwJjIyKDMz
225 | KDMzKDMzKDMzKDMzKDMzKDMzKDMzKDMzKDMzKDMzKDMzKDMzKDMzKDMzKDMzKDMzKDMzKDMzKDMzKDMz
226 | KDMzKDMzKDMzKDMzKDMzJjIyJjAwJC0tHSYmFBsbDRISCAsLAwQEAQEBAAAAAAAAAAAAAAAAAAAAAAAA
227 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
228 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
229 | AAAAAAAAAAACAwMGCAgFBwcBAgIDBAQEBQUEBQUEBQUEBQUEBQUEBQUEBQUEBQUEBQUEBQUEBQUEBQUE
230 | BQUEBQUEBQUEBQUEBQUEBQUEBQUEBQUEBQUEBQUEBQUEBQUEBQUEBQUEBQUEBQUEBQUEBQUEBQUEBQUE
231 | BQUDBAQICwsNEREICwsDBAQAAQEAAAAAAQECAgIFBwcLDg4ICwsDBAQEBQUEBQUEBQUEBQUEBQUEBQUE
232 | BQUEBQUEBQUEBQUEBQUEBQUEBQUEBQUEBQUEBQUEBQUEBQUEBQUEBQUEBQUEBQUEBQUEBQUEBQUEBQUE
233 | BQUEBQUEBQUEBQUEBQUEBQUEBQUEBQUDBAQEBgYHCgoFBwcBAgIAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
234 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
235 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
236 | AAABAQMEBAMEBAL//wL//wL//wL//wL//wL//wL//wL//wL//wL//wL//wL//wL//wL//wL//wL//wL/
237 | /wL//wL//wL//wL//wL//wL//wL//wL//wL//wL//wL//wL//wL//wL//wL//wL//wL//wL//wL//wL/
238 | /wL//wUcHAgLCwQGBgEBAQEBAQEBAQIDAwYICAUHBwL//wL//wL//wL//wL//wL//wL//wL//wL//wL/
239 | /wL//wL//wL//wL//wL//wL//wL//wL//wL//wL//wL//wL//wL//wL//wL//wL//wL//wL//wL//wL/
240 | /wL//wL//wL//wL//wL//wL//wL//wL//wCCggMFBQIDAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
241 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
242 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQEB
243 | AgQEAAAAAv//Av//Av//Av//Av//Av//Av//Av//Av//Av//Av//Av//Av//Av//Av//Av//Av//Av//
244 | Av//Av//Av//Av//Av//Av//Av//Av//Av//Av//Av//Av//Av//Av//Av//Av//Av//Av//Av//Av//
245 | AB0dCgwMBQYGAQICAAEBAAEBAwQECAoKAQEBAv//Av//Av//Av//Av//Av//Av//Av//Av//Av//Av//
246 | Av//Av//Av//Av//Av//Av//Av//Av//Av//Av//Av//Av//Av//Av//Av//Av//Av//Av//Av//Av//
247 | Av//Av//Av//Av//Av//Av//Av//AIKCAwUFAgMDAAEBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
248 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
249 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAQECBAQA
250 | AAAC//8C//8C//8C//8C//8C//8C//8C//8C//8C//8C//8C//8C//8C//8C//8C//8C//8C//8C//8C
251 | //8C//8C//8C//8C//8C//8C//8C//8C//8C//8C//8C//8C//8C//8C//8C//8C//8C//8C//8AHR0L
252 | Dg4GCAgBAgIAAQEBAQEDBQUJDAwBAQEC//8C//8C//8C//8C//8C//8C//8C//8C//8C//8C//8C//8C
253 | //8C//8C//8C//8C//8C//8C//8C//8C//8C//8C//8C//8C//8C//8C//8C//8C//8C//8C//8C//8C
254 | //8C//8C//8C//8C//8C//8AgoIDBQUCAwMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
255 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
256 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEBAQIEBAAAAAL/
257 | /wL//wL//wL//wL//wL//wL//wL//wL//wL//wL//wL//wL//wL//wL//wL//wL//wL//wL//wL//wL/
258 | /wL//wL//wL//wL//wL//wL//wL//wL//wL//wL//wL//wL//wL//wL//wL//wL//wL//wAdHQsODgYI
259 | CAIDAwABAQEBAQQFBQkMDAEBAQL//wL//wL//wL//wL//wL//wL//wL//wL//wL//wL//wL//wL//wL/
260 | /wL//wL//wL//wL//wL//wL//wL//wL//wL//wL//wL//wL//wL//wL//wL//wL//wL//wL//wL//wL/
261 | /wL//wL//wL//wL//wCCggMFBQIDAwABAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
262 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
263 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEBAwQEAAAAAv//Av//
264 | Av//Av//Av//Av//Av//Av//Av//Av//Av//Av//Av//Av//Av//Av//Av//Av//Av//Av//Av//Av//
265 | Av//Av//Av//Av//Av//Av//Av//Av//Av//Av//Av//Av//Av//Av//Av//Av//AB0dCxAQBggIAgMD
266 | AAEBAQEBBAUFCQwMAQICAv//Av//Av//Av//Av//Av//Av//Av//Av//Av//Av//Av//Av//Av//Av//
267 | Av//Av//Av//Av//Av//Av//Av//Av//Av//Av//Av//Av//Av//Av//Av//Av//Av//Av//Av//Av//
268 | Av//Av//Av//AIKCAgQEAQICAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
269 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
270 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAgIAAAAC//8C//8C//8C
271 | //8C//8C//8C//8C//8C//8C//8C//8C//8C//8C//8C//8C//8C//8C//8C//8C//8C//8C//8C//8C
272 | //8C//8C//8C//8C//8C//8C//8C//8C//8C//8C//8C//8C//8C//8C//8AHR0LEBAGCAgCAwMAAQEB
273 | AQEEBQUJDAwBAgIC//8C//8C//8C//8C//8C//8C//8C//8C//8C//8C//8C//8C//8C//8C//8C//8C
274 | //8C//8C//8C//8C//8C//8C//8C//8C//8C//8C//8C//8C//8C//8C//8C//8C//8C//8C//8C//8C
275 | //8C//8AgoIDBAQBAgIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
276 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
277 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAECAgAAAAL//wL//wL//wL//wL/
278 | /wL//wL//wL//wL//wL//wL//wL//wL//wL//wL//wL//wL//wL//wL//wL//wL//wL//wL//wL//wL/
279 | /wL//wL//wL//wL//wL//wL//wL//wL//wL//wL//wL//wL//wL//wAdHQsQEAYICAIDAwABAQEBAQQF
280 | BQkMDAECAgL//wL//wL//wL//wL//wL//wL//wL//wL//wL//wL//wL//wL//wL//wL//wL//wL//wL/
281 | /wL//wL//wL//wL//wL//wL//wL//wL//wL//wL//wL//wL//wL//wL//wL//wL//wL//wL//wL//wL/
282 | /wCCggAAAAEBAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
283 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
284 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAv//Av//Av//Av//Av//Av//
285 | Av//Av//Av//Av//Av//Av//Av//Av//Av//Av//Av//Av//Av//Av//Av//Av//Av//Av//Av//Av//
286 | Av//Av//Av//Av//Av//Av//Av//Av//Av//Av//Av//Av//AB0dCxAQBggIAgMDAAEBAQEBBAUFCQwM
287 | AQICAv//Av//Av//Av//Av//Av//Av//Av//Av//Av//Av//Av//Av//Av//Av//Av//Av//Av//Av//
288 | Av//Av//Av//Av//Av//Av//Av//Av//Av//Av//Av//Av//Av//Av//Av//Av//Av//Av//Av//AIKC
289 | AAAAAAEBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
290 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
291 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC//8C//8C//8C//8C//8C//8C//8C
292 | //8C//8C//8C//8C//8C//8C//8C//8C//8C//8C//8C//8C//8C//8C//8C//8C//8C//8C//8C//8C
293 | //8C//8C//8C//8C//8C//8C//8C//8C//8C//8C//8AHR0LEBAGCAgCAwMAAQEBAQEEBQUJDAwBAgIC
294 | //8C//8C//8C//8C//8C//8C//8C//8C//8C//8C//8C//8C//8C//8C//8C//8C//8C//8C//8C//8C
295 | //8C//8C//8C//8C//8C//8C//8C//8C//8C//8C//8C//8C//8C//8C//8C//8C//8C//8AgoIAAAAA
296 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
297 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
298 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGcnAGcnAGcnAGcnAGcnAGcnAGcnAGcnAGc
299 | nAGcnAGcnAGcnAGcnAGcnAGcnAGcnAGcnAGcnAGcnAGcnAGcnAGcnAGcnAGcnAGcnAGcnAGcnAGcnAL/
300 | /wL//wL//wL//wL//wL//wL//wL//wL//wL//wAdHQsQEAYICAIDAwABAQEBAQQFBQkMDAECAgL//wL/
301 | /wL//wL//wL//wL//wL//wL//wL//wL//wL//wGcnAGcnAGcnAGcnAGcnAGcnAGcnAGcnAGcnAGcnAGc
302 | nAGcnAGcnAGcnAGcnAGcnAGcnAGcnAGcnAGcnAGcnAGcnAGcnAGcnAGcnAGcnAGcnAA3NwAAAAAAAAAA
303 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
304 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
305 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
306 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEBAQICAwQEAAAAAAAAAv//Av//
307 | Av//Av//Av//Av//Av//Av//Av//Av//AB0dCxAQBggIAgMDAAEBAQEBBAUFCQwMAQICAv//Av//Av//
308 | Av//Av//Av//Av//Av//Av//Av//Av//AAAAAAAAAwQEAQICAAEBAAAAAAAAAAAAAAAAAAAAAAAAAAAA
309 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
310 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
311 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
312 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
313 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQEBAQECAwMFBgYICwsAAAAC//8C//8C//8C
314 | //8C//8C//8C//8C//8C//8C//8AHR0LEBAGCAgCAwMAAQEBAQEEBQUJDAwBAgIC//8C//8C//8C//8C
315 | //8C//8C//8C//8C//8C//8C//8AAAAJDAwFBgYCAwMBAQEAAQEAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
316 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
317 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
318 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
319 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
320 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAQMFBQgKCgEBAQL//wL//wL//wL//wL/
321 | /wL//wL//wL//wL//wL//wAdHQsQEAYICAIDAwABAQEBAQQFBQkMDAECAgL//wL//wL//wL//wL//wL/
322 | /wL//wL//wL//wL//wL//wECAgkMDAQFBQABAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
323 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
324 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
325 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
326 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
327 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQEBAwQECAoKAQEBAv//Av//Av//Av//Av//Av//
328 | Av//Av//Av//Av//AB0dCxAQBggIAgMDAAEBAQEBBAUFCQwMAQICAv//Av//Av//Av//Av//Av//Av//
329 | Av//Av//Av//Av//AQEBCAoKAwQEAAEBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
330 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
331 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
332 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
333 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
334 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAQECAwMICgoBAQEC//8C//8C//8C//8C//8C//8C//8C
335 | //8C//8C//8AHR0LEBAGCAgCAwMAAQEBAQEEBQUJDAwBAgIC//8C//8C//8C//8C//8C//8C//8C//8C
336 | //8C//8C//8BAQEICgoDBAQAAQEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
337 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
338 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
339 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
340 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
341 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAQMFBQgKCgEBAQL//wL//wL//wL//wL//wL//wL//wL//wL/
342 | /wL//wAdHQsQEAYICAIDAwABAQEBAQQFBQkMDAECAgL//wL//wL//wL//wL//wL//wL//wL//wL//wL/
343 | /wL//wEBAQgKCgMEBAABAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
344 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
345 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
346 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
347 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
348 | AAAAAAAAAAAAAAAAAAAAAAEBAQICBAYGCw4OAQICAv//Av//Av//Av//Av//Av//Av//Av//Av//Av//
349 | AB0dCxAQBggIAgMDAAEBAQEBBAUFCQwMAQICAv//Av//Av//Av//Av//Av//Av//Av//Av//Av//Av//
350 | AQEBCAoKAwQEAAEBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
351 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
352 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
353 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
354 | AAAAAAAAAAAAAAAAAQEAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEB
355 | AQEBAQEBAQEBAQECAgIEBQUICwsNEhIBAgIC//8C//8C//8C//8C//8C//8C//8C//8C//8C//8AHR0L
356 | EBAGCAgCAwMAAQEBAQEEBQUJDAwBAgIC//8C//8C//8C//8C//8C//8C//8C//8C//8C//8C//8BAQEI
357 | CgoDBAQAAQEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
358 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
359 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
360 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
361 | AAEBAQIDAwIDAwMEBAMFBQQFBQQGBgQGBgQGBgQGBgQGBgQGBgQGBgQGBgQGBgQGBgQGBgQGBgQGBgQG
362 | BgQGBgQGBgUHBwgLCw4SEhMZGQMEBAL//wL//wL//wL//wL//wL//wL//wL//wL//wL//wAdHQsQEAYI
363 | CAIDAwABAQEBAQQFBQkMDAECAgL//wL//wL//wL//wL//wL//wL//wL//wL//wL//wL//wEBAQgKCgME
364 | BAABAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
365 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
366 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
367 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQEBAgMDBAUF
368 | BggICAsLCg0NCw8PDA8PDBAQDBAQDBAQDBAQDBAQDBAQDBAQDBAQDBAQDBAQDBAQDBAQDBAQDBAQDBAQ
369 | DBAQDxQUEhgYGSAgHCQkBAUFAv//Av//Av//Av//Av//Av//Av//Av//Av//Av//AB0dCxAQBggIAgMD
370 | AAEBAQEBBAUFCQwMAQICAv//Av//Av//Av//Av//Av//Av//Av//Av//Av//Av//AQEBCAoKAwQEAAEB
371 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
372 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
373 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
374 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQECAgIFBwcICwsPFBQU
375 | GRkWHR0ZICAbIyMbIyMbIyMbIyMbIyMbIyMbIyMbIyMbIyMbIyMbIyMbIyMbIyMbIyMbIyMbIyMbJSUg
376 | KCgiKysoNDQmMDAEBQUC//8C//8C//8C//8C//8C//8C//8C//8C//8C//8AHR0LEBAGCAgCAwMAAQEB
377 | AQEEBQUJDAwBAgIC//8C//8C//8C//8C//8C//8C//8C//8C//8C//8C//8BAQEICgoDBAQAAQEAAAAA
378 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
379 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
380 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
381 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAECAgQFBQsODhAVFRsjIyIrKyYy
382 | Mig0NCs2Nis3Nys3Nys3Nys3Nys3Nys3Nys3Nys3Nys3Nys3Nys3Nys3Nys3Nys3Nys3Nys3Nys3Nyw6
383 | OjA8PCUvLwAAAAL//wL//wL//wL//wL//wL//wL//wL//wL//wL//wAdHQsQEAYICAIDAwABAQEBAQQF
384 | BQkMDAECAgL//wL//wL//wL//wL//wL//wL//wL//wL//wL//wL//wEBAQgKCgMEBAABAQAAAAAAAAAA
385 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
386 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
387 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
388 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgMDCAsLCAoKDREREBUVExkZFBoaFh0d
389 | Fh0dFh0dFh0dFh0dFh0dFh0dFh0dFh0dFh0dFh0dFh0dFh0dFh0dFh0dFh0dFh0dFh0dFh0dFx4eGB4e
390 | CQwMAAAAAv//Av//Av//Av//Av//Av//Av//Av//Av//Av//AB0dCxAQBggIAgMDAAEBAQEBBAUFCQwM
391 | AQICAv//Av//Av//Av//Av//Av//Av//Av//Av//Av//Av//AQEBCAoKAwQEAAEBAAAAAAAAAAAAAAAA
392 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
393 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
394 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
395 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQEEBQUDBAQBnJwBnJwBnJwBnJwBnJwBnJwBnJwB
396 | nJwBnJwBnJwBnJwBnJwBnJwBnJwBnJwBnJwBnJwBnJwBnJwBnJwBnJwBnJwBnJwBnJwBnJwBnJwBnJwB
397 | nJwC//8C//8C//8C//8C//8C//8C//8C//8C//8C//8AHR0LEBAGCAgCAwMAAQEBAQEEBQUJDAwBAgIC
398 | //8C//8C//8C//8C//8C//8C//8C//8C//8C//8C//8BAQEICgoDBAQAAQEAAAAAAAAAAAAAAAAAAAAA
399 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
400 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
401 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
402 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEBAQIEBAAAAAL//wL//wL//wL//wL//wL//wL//wL//wL/
403 | /wL//wL//wL//wL//wL//wL//wL//wL//wL//wL//wL//wL//wL//wL//wL//wL//wL//wL//wL//wL/
404 | /wL//wL//wL//wL//wL//wL//wL//wL//wL//wAdHQsODgYICAIDAwABAQEBAQQFBQkMDAECAgL//wL/
405 | /wL//wL//wL//wL//wL//wL//wL//wL//wL//wEBAQgKCgMEBAABAQAAAAAAAAAAAAAAAAAAAAAAAAAA
406 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
407 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
408 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
409 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEBBggIAAAAAv//Av//Av//Av//Av//Av//Av//Av//Av//Av//
410 | Av//Av//Av//Av//Av//Av//Av//Av//Av//Av//Av//Av//Av//Av//Av//Av//Av//Av//Av//Av//
411 | Av//Av//Av//Av//Av//Av//Av//Av//AB0dCw4OBggIAQICAAEBAQEBBAUFCQwMAQICAv//Av//Av//
412 | Av//Av//Av//Av//Av//Av//Av//Av//AQEBCAoKAwQEAAEBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
413 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
414 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
415 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
416 | AAAAAAAAAAAAAAAAAAAAAAABAQEEBQUAAAAC//8C//8C//8C//8C//8C//8C//8C//8C//8C//8C//8C
417 | //8C//8C//8C//8C//8C//8C//8C//8C//8C//8C//8C//8C//8C//8C//8C//8C//8C//8C//8C//8C
418 | //8C//8C//8C//8C//8C//8C//8AHR0KDAwFBwcBAgIAAQEBAQEEBQUJDAwBAgIC//8C//8C//8C//8C
419 | //8C//8C//8C//8C//8C//8C//8BAQEICgoDBAQAAQEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
420 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
421 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
422 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
423 | AAAAAAAAAAAAAAAAAAEBAQQFBQAAAAL//wL//wL//wL//wL//wL//wL//wL//wL//wL//wL//wL//wL/
424 | /wL//wL//wL//wL//wL//wL//wL//wL//wL//wL//wL//wL//wL//wL//wL//wL//wL//wL//wL//wL/
425 | /wL//wL//wL//wL//wL//wAdHQgLCwQGBgECAgABAQEBAQQFBQkMDAECAgL//wL//wL//wL//wL//wL/
426 | /wL//wL//wL//wL//wL//wEBAQgKCgMEBAABAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
427 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
428 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
429 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
430 | AAAAAAAAAAAAAQEBBAUFAAAAAv//Av//Av//Av//Av//Av//Av//Av//Av//Av//Av//Av//Av//Av//
431 | Av//Av//Av//Av//Av//Av//Av//Av//Av//Av//Av//Av//Av//Av//Av//Av//Av//Av//Av//Av//
432 | Av//Av//Av//Av//AB0dBgcHAwQEAQEBAAEBAQICBAUFCQwMAQICAv//Av//Av//Av//Av//Av//Av//
433 | Av//Av//Av//Av//AQEBCAoKAwQEAAEBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
434 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
435 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
436 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
437 | AAAAAAABAQEEBQUAAAAC//8C//8C//8C//8C//8C//8C//8C//8C//8C//8C//8C//8C//8C//8C//8C
438 | //8C//8C//8C//8C//8C//8C//8C//8C//8C//8C//8C//8C//8C//8C//8C//8C//8C//8C//8C//8C
439 | //8C//8C//8AHR0EBQUBAgIAAQEAAAAAAQEEBQUJDAwBAgIC//8C//8C//8C//8C//8C//8C//8C//8C
440 | //8C//8C//8BAQEICgoDBAQAAQEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
441 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
442 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
443 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
444 | AAEBAQQFBQAAAAL//wL//wL//wL//wL//wL//wL//wL//wL//wL//wL//wL//wL//wL//wL//wL//wL/
445 | /wL//wL//wL//wL//wL//wL//wL//wL//wL//wL//wL//wL//wL//wL//wL//wL//wL//wL//wL//wL/
446 | /wL//wAdHQICAgABAQAAAAAAAAEBAQMFBQkMDAECAgL//wL//wL//wL//wL//wL//wL//wL//wL//wL/
447 | /wL//wEBAQgKCgMEBAABAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
448 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
449 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
450 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQEB
451 | BAUFAAAAAv//Av//Av//Av//Av//Av//Av//Av//Av//Av//Av//Av//Av//Av//Av//Av//Av//Av//
452 | Av//Av//Av//Av//Av//Av//Av//Av//Av//Av//Av//Av//Av//Av//Av//Av//Av//Av//Av//Av//
453 | AB0dAAEBAAAAAAAAAAAAAAEBAwUFCQwMAQICAv//Av//Av//Av//Av//Av//Av//Av//Av//Av//Av//
454 | AQEBCAoKAwQEAAEBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
455 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
456 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
457 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAQEEBQUA
458 | AAAC//8C//8C//8C//8C//8C//8C//8C//8C//8C//8C//8C//8C//8C//8C//8C//8C//8C//8C//8C
459 | //8C//8C//8C//8C//8C//8C//8C//8C//8C//8C//8C//8C//8C//8C//8C//8C//8C//8C//8AFRUA
460 | AQEAAAAAAAAAAAABAQEDBQUJDAwBAgIC//8C//8C//8C//8C//8C//8C//8C//8C//8C//8C//8BAQEI
461 | CgoDBAQAAQEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
462 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
463 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
464 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEBAQQFBQAAAAL/
465 | /wL//wL//wL//wL//wL//wL//wL//wL//wL//wL//wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
466 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIDAwAAAAAA
467 | AAAAAAAAAAEBAQMFBQkMDAECAgL//wL//wL//wL//wL//wL//wL//wL//wL//wL//wL//wEBAQgKCgME
468 | BAABAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
469 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
470 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
471 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQEBBAUFAAAAAv//Av//
472 | Av//Av//Av//Av//Av//Av//Av//Av//Av//AAAADBAQCAoKAgQEAAEBAAAAAAAAAAAAAAAAAAAAAAAA
473 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
474 | AAAAAQEBAwUFCQwMAQICAv//Av//Av//Av//Av//Av//Av//Av//Av//Av//Av//AQEBCAoKAwQEAAEB
475 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
476 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
477 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
478 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAQEEBQUAAAAC//8C//8C//8C
479 | //8C//8C//8C//8C//8C//8C//8C//8DBAQOExMGCAgCAwMAAQEAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
480 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB
481 | AQEDBQUJDAwBAgIC//8C//8C//8C//8C//8C//8C//8C//8C//8C//8C//8BAQEICgoDBAQAAQEAAAAA
482 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
483 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
484 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
485 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEBAQQFBQAAAAL//wL//wL//wL//wL/
486 | /wL//wL//wL//wL//wL//wL//wMEBA0SEgYICAICAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
487 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAQMF
488 | BQkMDAECAgL//wL//wL//wL//wL//wL//wL//wL//wL//wL//wL//wEBAQgLCwMEBAABAQAAAAAAAAAA
489 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
490 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
491 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
492 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQEBBAUFAAAAAv//Av//Av//Av//Av//Av//
493 | Av//Av//Av//Av//Av//AwQEDRISBggIAgICAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
494 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEBAwUFCQwM
495 | AQICAv//Av//Av//Av//Av//Av//Av//Av//Av//Av//Av//AQEBCAoKAwUFAQEBAAAAAAAAAAAAAAAA
496 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
497 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
498 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
499 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAQEEBQUAAAAC//8C//8C//8C//8C//8C//8C//8C
500 | //8C//8C//8C//8DBAQOExMGCAgCAwMAAQEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
501 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAQEDBQUJDAwBAgIC
502 | //8C//8C//8C//8C//8C//8C//8C//8C//8C//8C//8BAgIJDAwEBQUAAQEAAAAAAAAAAAAAAAAAAAAA
503 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
504 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
505 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
506 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEBAQQFBQAAAAL//wL//wL//wL//wL//wL//wL//wL//wL/
507 | /wL//wL//wMEBBAWFggLCwMFBQECAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
508 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEBAQMFBQkMDAECAgL//wL/
509 | /wL//wL//wL//wL//wL//wL//wL//wL//wL//wECAgsODgUHBwICAgABAQAAAAAAAAAAAAAAAAAAAAAA
510 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
511 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
512 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
513 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAQEBBAUFAAAAAv//Av//Av//Av//Av//Av//Av//Av//Av//Av//
514 | Av//AwQEFh0dDhISBggIAwQEAgICAQICAQICAQICAQICAQICAQICAQICAQICAQICAQICAQICAQICAQIC
515 | AQICAQICAQICAQICAQEBAQEBAAEBAAAAAAAAAAAAAAAAAAAAAAAAAQEBAwUFCQwMAQICAv//Av//Av//
516 | Av//Av//Av//Av//Av//Av//Av//Av//AwQEDxMTCAsLBAYGAgMDAQICAQICAQICAQICAQICAQICAQIC
517 | AQICAQICAQICAQICAQICAQICAQICAQICAQICAQICAQEBAAEBAAEBAAAAAAAAAAAAAAAAAAAAAAAAAAAA
518 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
519 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
520 | AAAAAAAAAAAAAAAAAAAAAAABAQEEBQUAAAAC//8C//8C//8C//8C//8C//8C//8C//8C//8C//8C//8E
521 | BQUdJiYUGxsOEhIICwsGCAgFBwcFBwcFBwcFBwcFBwcFBwcFBwcFBwcFBwcFBwcFBwcFBwcFBwcFBwcF
522 | BwcFBwcEBgYEBQUDBQUCAwMBAgIAAQEAAAAAAAAAAAAAAAABAQEDBQUJDAwBAgIC//8C//8C//8C//8C
523 | //8C//8C//8C//8C//8C//8C//8DBAQUGxsPFBQKDQ0GCAgFBwcFBwcFBwcFBwcFBwcFBwcFBwcFBwcF
524 | BwcFBwcFBwcFBwcFBwcFBwcFBwcFBwcEBgYEBgYEBQUDBAQCAwMBAQEAAAAAAAAAAAAAAAAAAAAAAAAA
525 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
526 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
527 | AAAAAAAAAAAAAAAAAAEBAQQFBQAAAAL//wL//wL//wL//wL//wL//wL//wL//wL//wL//wL//wQFBSUv
528 | LyIrKxkgIBIYGBAVFQ8UFA8UFA8UFA8UFA8UFA8UFA8UFA8UFA8UFA8UFA8UFA8UFA8UFA8UFA8UFA4S
529 | Eg0REQsPDwoNDQYICAUHBwIDAwABAQAAAAAAAAAAAAEBAQMFBQkMDAECAgL//wL//wL//wL//wL//wL/
530 | /wL//wL//wL//wL//wL//wQFBSApKRsjIxQbGxEWFg8UFA8UFA8UFA8UFA8UFA8UFA8UFA8UFA8UFA8U
531 | FA8UFA8UFA8UFA8UFA8UFA4SEg4SEgwQEAsODggLCwUHBwMFBQICAgABAQAAAAAAAAAAAAAAAAAAAAAA
532 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
533 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
534 | AAAAAAAAAAAAAQEBBAUFAAAAAv//Av//Av//Av//Av//Av//Av//Av//Av//Av//Av//BAUFKzc3Ljs7
535 | KzY2JDAwISoqICkpICgoICgoICgoICgoICgoICgoICgoICgoICgoICgoICgoICgoICgoICgoICgoHCQk
536 | GSAgFh0dERYWDA8PBggIAgMDAQEBAAAAAAAAAQEBAwUFCQwMAQICAv//Av//Av//Av//Av//Av//Av//
537 | Av//Av//Av//Av//BAUFKDQ0Kzc3JTAwIisrISoqICgoICgoICgoICgoICgoICgoICgoICgoICgoICgo
538 | ICgoICgoICgoICgoICgoHSUlGiMjFx8fFBkZDhISCAsLBAUFAQICAAAAAAAAAAAAAAAAAAAAAAAAAAAA
539 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
540 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
541 | AAAAAAABAQEEBQUAAAAC//8C//8C//8C//8C//8C//8C//8C//8C//8C//8C//8AAAAoNDQyQEAyQEAw
542 | PDwuOzsuOzsuOzsuOzsuOzsuOzsuOzsuOzsuOzsuOzsuOzsuOzsuOzsuOzsuOzsuOzssOjosOjorNjYm
543 | MDAcJCQUGRkMEBAEBgYBAgIAAQEAAAAAAQEEBQUJDAwBAgIC//8C//8C//8C//8C//8C//8C//8C//8C
544 | //8C//8C//8AAAAmMjIyQEAwPDwuOzsuOzsuOzsuOzsuOzsuOzsuOzsuOzsuOzsuOzsuOzsuOzsuOzsu
545 | OzsuOzsuOzssOjosOjorNzcoNDQiKysZICAQFRUICwsCAwMBAQEAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
546 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
547 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
548 | AAEBAQQFBQAAAAL//wL//wL//wL//wL//wL//wL//wL//wL//wL//wL//wAAAAkMDBkgIBgeHhgeHhge
549 | HhgeHhgeHhgeHhgeHhgeHhgeHhgeHhgeHhgeHhgeHhgeHhgeHhgeHhgeHhgeHhceHhYdHRYdHRQaGhAV
550 | FQ0REQ0SEggLCwMEBAECAgABAQECAgQFBQkMDAECAgL//wL//wL//wL//wL//wL//wL//wL//wL//wL/
551 | /wL//wAAAAkMDBkgIBgeHhgeHhgeHhgeHhgeHhgeHhgeHhgeHhgeHhgeHhgeHhgeHhgeHhgeHhgeHhge
552 | HhgeHhgeHhYdHRYdHRQaGhMZGRAVFQoODggLCwUHBwECAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
553 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
554 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQEB
555 | BAUFAAAAAv//Av//Av//Av//Av//Av//Av//Av//Av//Av//Av//AZycAZycAZycAZycAZycAZycAZyc
556 | AZycAZycAZycAZycAZycAZycAZycAZycAZycAZycAZycAZycAZycAZycAZycAZycAZycAZycAZycAZyc
557 | ChYWCQwMBAYGAQICAQEBAQEBBAUFCQwMAQICAv//Av//Av//Av//Av//Av//Av//Av//Av//Av//Av//
558 | AZycAZycAZycAZycAZycAZycAZycAZycAZycAZycAZycAZycAZycAZycAZycAZycAZycAZycAZycAZyc
559 | AZycAZycAZycAZycAZycAZycAZycAz09BQcHAgMDAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
560 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
561 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAQEEBQUA
562 | AAAC//8C//8C//8C//8C//8C//8C//8C//8C//8C//8C//8C//8C//8C//8C//8C//8C//8C//8C//8C
563 | //8C//8C//8C//8C//8C//8C//8C//8C//8C//8C//8C//8C//8C//8C//8C//8C//8C//8C//8BHBwJ
564 | DAwFBwcBAgIBAQEBAQEEBQUJDAwBAQEC//8C//8C//8C//8C//8C//8C//8C//8C//8C//8C//8C//8C
565 | //8C//8C//8C//8C//8C//8C//8C//8C//8C//8C//8C//8C//8C//8C//8C//8C//8C//8C//8C//8C
566 | //8C//8C//8C//8C//8C//8AgoIDBAQCAwMAAQEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
567 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
568 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAQYICAAAAAL/
569 | /wL//wL//wL//wL//wL//wL//wL//wL//wL//wL//wL//wL//wL//wL//wL//wL//wL//wL//wL//wL/
570 | /wL//wL//wL//wL//wL//wL//wL//wL//wL//wL//wL//wL//wL//wL//wL//wL//wL//wAdHQoMDAUH
571 | BwECAgEBAQEBAQMFBQkMDAEBAQL//wL//wL//wL//wL//wL//wL//wL//wL//wL//wL//wL//wL//wL/
572 | /wL//wL//wL//wL//wL//wL//wL//wL//wL//wL//wL//wL//wL//wL//wL//wL//wL//wL//wL//wL/
573 | /wL//wL//wL//wL//wCCggMFBQIDAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
574 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
575 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQEBAgQEAAAAAv//Av//
576 | Av//Av//Av//Av//Av//Av//Av//Av//Av//Av//Av//Av//Av//Av//Av//Av//Av//Av//Av//Av//
577 | Av//Av//Av//Av//Av//Av//Av//Av//Av//Av//Av//Av//Av//Av//Av//Av//AB0dCQwMBQcHAQIC
578 | AQEBAAEBAwQECAoKAQEBAv//Av//Av//Av//Av//Av//Av//Av//Av//Av//Av//Av//Av//Av//Av//
579 | Av//Av//Av//Av//Av//Av//Av//Av//Av//Av//Av//Av//Av//Av//Av//Av//Av//Av//Av//Av//
580 | Av//Av//Av//AIKCAwUFAgMDAAEBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
581 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
582 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQEDBAQAAAAC//8C//8C//8C
583 | //8C//8C//8C//8C//8C//8C//8C//8C//8C//8C//8C//8C//8C//8C//8C//8C//8C//8C//8C//8C
584 | //8C//8C//8C//8C//8C//8C//8C//8C//8C//8C//8C//8C//8C//8C//8AHR0ICwsEBgYBAQEAAQEB
585 | AQECAwMGCAgAAAAC//8C//8C//8C//8C//8C//8C//8C//8C//8C//8C//8C//8C//8C//8C//8C//8C
586 | //8C//8C//8C//8C//8C//8C//8C//8C//8C//8C//8C//8C//8C//8C//8C//8C//8C//8C//8C//8C
587 | //8C//8AgoICBAQCAwMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
588 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
589 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAECAgAAAAL//wL//wL//wL//wL/
590 | /wL//wL//wL//wL//wL//wL//wL//wL//wL//wL//wL//wL//wL//wL//wL//wL//wL//wL//wL//wL/
591 | /wL//wL//wL//wL//wL//wL//wL//wL//wL//wL//wL//wL//wL//wAdHQYHBwIDAwABAQAAAAABAQIC
592 | AgQGBgAAAAL//wL//wL//wL//wL//wL//wL//wL//wL//wL//wL//wL//wL//wL//wL//wL//wL//wL/
593 | /wL//wL//wL//wL//wL//wL//wL//wL//wL//wL//wL//wL//wL//wL//wL//wL//wL//wL//wL//wL/
594 | /wCCggABAQECAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
595 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
596 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQICAAAAAv//Av//Av//Av//Av//Av//
597 | Av//Av//Av//Av//Av//Av//Av//Av//Av//Av//Av//Av//Av//Av//Av//Av//Av//Av//Av//Av//
598 | Av//Av//Av//Av//Av//Av//Av//Av//Av//Av//Av//Av//AB0dAwQEAQICAAAAAAAAAAAAAAEBAgQE
599 | AAAAAv//Av//Av//Av//Av//Av//Av//Av//Av//Av//Av//Av//Av//Av//Av//Av//Av//Av//Av//
600 | Av//Av//Av//Av//Av//Av//Av//Av//Av//Av//Av//Av//Av//Av//Av//Av//Av//Av//Av//AIKC
601 | AAAAAQICAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
602 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
603 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAwMAAAAC//8C//8C//8C//8C//8C//8C//8C
604 | //8C//8C//8C//8C//8C//8C//8C//8C//8C//8C//8C//8C//8C//8C//8C//8C//8C//8C//8C//8C
605 | //8C//8C//8C//8C//8C//8C//8C//8C//8C//8C//8AHR0BAgIBAQEAAAAAAAAAAAAAAQEBAgIAAAAC
606 | //8C//8C//8C//8C//8C//8C//8C//8C//8C//8C//8C//8C//8C//8C//8C//8C//8C//8C//8C//8C
607 | //8C//8C//8C//8C//8C//8C//8C//8C//8C//8C//8C//8C//8C//8C//8C//8C//8C//8AgoIAAAAA
608 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
609 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
610 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAL//wL//wL//wL//wL//wL//wL//wL//wL/
611 | /wL//wL//wL//wL//wL//wL//wL//wL//wL//wL//wL//wL//wL//wL//wL//wL//wL//wL//wL//wL/
612 | /wL//wL//wL//wL//wL//wL//wL//wL//wL//wAdHQECAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAL//wL/
613 | /wL//wL//wL//wL//wL//wL//wL//wL//wL//wL//wL//wL//wL//wL//wL//wL//wL//wL//wL//wL/
614 | /wL//wL//wL//wL//wL//wL//wL//wL//wL//wL//wL//wL//wL//wL//wL//wL//wCCggAAAAAAAAAA
615 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
616 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
617 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAv//Av//Av//Av//Av//Av//Av//Av//Av//Av//
618 | Av//Av//Av//Av//Av//Av//Av//Av//Av//Av//Av//Av//Av//Av//Av//Av//Av//Av//Av//Av//
619 | Av//Av//Av//Av//Av//Av//Av//Av//ABUVAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEBAv//Av//Av//
620 | Av//Av//Av//Av//Av//Av//Av//Av//Av//Av//Av//Av//Av//Av//Av//Av//Av//Av//Av//Av//
621 | Av//Av//Av//Av//Av//Av//Av//Av//Av//Av//Av//Av//Av//Av//Av//AIKCAAAAAAAAAAAAAAAA
622 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
623 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
624 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
625 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
626 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
627 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
628 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
629 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
630 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
631 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
632 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
633 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAQAAAAAAAAAAAAAAAAAA
634 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
635 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
636 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
637 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
638 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
639 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
640 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
641 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
642 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
643 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
644 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
645 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
646 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
647 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
648 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
649 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
650 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
651 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
652 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
653 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
654 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
655 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
656 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
657 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
658 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
659 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
660 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
661 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
662 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
663 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
664 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
665 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
666 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
667 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
668 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
669 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
670 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
671 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
672 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
673 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
674 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
675 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
676 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
677 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
678 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
679 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
680 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
681 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
682 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
683 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
684 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
685 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
686 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
687 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
688 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
689 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
690 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
691 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
692 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
693 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
694 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
695 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
696 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
697 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
698 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
699 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
700 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
701 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
702 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
703 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
704 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
705 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
706 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
707 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
708 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
709 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
710 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
711 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
712 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
713 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
714 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
715 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
716 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
717 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
718 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
719 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
720 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
721 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
722 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
723 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
724 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
725 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
726 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
727 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
728 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
729 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
730 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
731 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
732 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
733 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
734 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
735 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
736 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
737 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
738 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
739 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
740 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
741 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
742 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
743 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
744 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
745 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
746 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
747 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
748 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==
749 |
750 |
751 |
--------------------------------------------------------------------------------
/SteamCompanion/MainWindow.Designer.cs:
--------------------------------------------------------------------------------
1 | namespace SteamCompanion
2 | {
3 | partial class MainWindow
4 | {
5 | ///
6 | /// Required designer variable.
7 | ///
8 | private System.ComponentModel.IContainer components = null;
9 |
10 | ///
11 | /// Clean up any resources being used.
12 | ///
13 | /// true if managed resources should be disposed; otherwise, false.
14 | protected override void Dispose(bool disposing)
15 | {
16 | if (disposing && (components != null))
17 | {
18 | components.Dispose();
19 | }
20 | base.Dispose(disposing);
21 | }
22 |
23 | #region Windows Form Designer generated code
24 |
25 | ///
26 | /// Required method for Designer support - do not modify
27 | /// the contents of this method with the code editor.
28 | ///
29 | private void InitializeComponent()
30 | {
31 | System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(MainWindow));
32 | this.textUserName = new System.Windows.Forms.TextBox();
33 | this.getAllGames = new System.Windows.Forms.Button();
34 | this.game_title = new System.Windows.Forms.Label();
35 | this.listbox_categories = new System.Windows.Forms.ListBox();
36 | this.pictureBox1 = new System.Windows.Forms.PictureBox();
37 | this.label3 = new System.Windows.Forms.Label();
38 | this.listbox_tags = new System.Windows.Forms.ListBox();
39 | this.label4 = new System.Windows.Forms.Label();
40 | this.label5 = new System.Windows.Forms.Label();
41 | this.listbox_games = new System.Windows.Forms.ListBox();
42 | this.menuStrip1 = new System.Windows.Forms.MenuStrip();
43 | this.fileToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
44 | this.saveProfileToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
45 | this.loadProfileToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
46 | this.autosaveloadToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
47 | this.gameDataToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
48 | this.selectedGameToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
49 | this.getCategoriesAndTagsToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
50 | this.getImagesToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
51 | this.getBothToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
52 | this.allGamesToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
53 | this.getCategoriesAndTagsToolStripMenuItem1 = new System.Windows.Forms.ToolStripMenuItem();
54 | this.getImagesToolStripMenuItem1 = new System.Windows.Forms.ToolStripMenuItem();
55 | this.getAllToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
56 | this.toolsToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
57 | this.showGamesWithoutDataToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
58 | this.showGamesWithoutImagesToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
59 | this.getNewGames = new System.Windows.Forms.Button();
60 | this.textGameFilter = new System.Windows.Forms.TextBox();
61 | this.label1 = new System.Windows.Forms.Label();
62 | this.statusStrip1 = new System.Windows.Forms.StatusStrip();
63 | this.toolStripStatusLabel1 = new System.Windows.Forms.ToolStripStatusLabel();
64 | this.toolStripStatusLabel2 = new System.Windows.Forms.ToolStripStatusLabel();
65 | this.toolStripStatusLabel3 = new System.Windows.Forms.ToolStripStatusLabel();
66 | ((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).BeginInit();
67 | this.menuStrip1.SuspendLayout();
68 | this.statusStrip1.SuspendLayout();
69 | this.SuspendLayout();
70 | //
71 | // textUserName
72 | //
73 | this.textUserName.Location = new System.Drawing.Point(76, 32);
74 | this.textUserName.Name = "textUserName";
75 | this.textUserName.Size = new System.Drawing.Size(258, 20);
76 | this.textUserName.TabIndex = 0;
77 | //
78 | // getAllGames
79 | //
80 | this.getAllGames.Location = new System.Drawing.Point(340, 30);
81 | this.getAllGames.Name = "getAllGames";
82 | this.getAllGames.Size = new System.Drawing.Size(100, 23);
83 | this.getAllGames.TabIndex = 1;
84 | this.getAllGames.Text = "Get all games";
85 | this.getAllGames.UseVisualStyleBackColor = true;
86 | this.getAllGames.Click += new System.EventHandler(this.getAllGames_Click);
87 | //
88 | // game_title
89 | //
90 | this.game_title.AutoSize = true;
91 | this.game_title.Font = new System.Drawing.Font("Tahoma", 18F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
92 | this.game_title.Location = new System.Drawing.Point(544, 32);
93 | this.game_title.Name = "game_title";
94 | this.game_title.Size = new System.Drawing.Size(137, 29);
95 | this.game_title.TabIndex = 3;
96 | this.game_title.Text = "Game title";
97 | //
98 | // listbox_categories
99 | //
100 | this.listbox_categories.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
101 | | System.Windows.Forms.AnchorStyles.Left)));
102 | this.listbox_categories.FormattingEnabled = true;
103 | this.listbox_categories.Location = new System.Drawing.Point(12, 81);
104 | this.listbox_categories.Name = "listbox_categories";
105 | this.listbox_categories.SelectionMode = System.Windows.Forms.SelectionMode.MultiSimple;
106 | this.listbox_categories.Size = new System.Drawing.Size(120, 459);
107 | this.listbox_categories.Sorted = true;
108 | this.listbox_categories.TabIndex = 4;
109 | this.listbox_categories.SelectedIndexChanged += new System.EventHandler(this.listbox_categories_SelectedIndexChanged);
110 | //
111 | // pictureBox1
112 | //
113 | this.pictureBox1.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
114 | | System.Windows.Forms.AnchorStyles.Left)
115 | | System.Windows.Forms.AnchorStyles.Right)));
116 | this.pictureBox1.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle;
117 | this.pictureBox1.Location = new System.Drawing.Point(549, 73);
118 | this.pictureBox1.MinimumSize = new System.Drawing.Size(300, 480);
119 | this.pictureBox1.Name = "pictureBox1";
120 | this.pictureBox1.Size = new System.Drawing.Size(854, 480);
121 | this.pictureBox1.SizeMode = System.Windows.Forms.PictureBoxSizeMode.Zoom;
122 | this.pictureBox1.TabIndex = 5;
123 | this.pictureBox1.TabStop = false;
124 | //
125 | // label3
126 | //
127 | this.label3.AutoSize = true;
128 | this.label3.Location = new System.Drawing.Point(12, 59);
129 | this.label3.Name = "label3";
130 | this.label3.Size = new System.Drawing.Size(57, 13);
131 | this.label3.TabIndex = 7;
132 | this.label3.Text = "Categories";
133 | //
134 | // listbox_tags
135 | //
136 | this.listbox_tags.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
137 | | System.Windows.Forms.AnchorStyles.Left)));
138 | this.listbox_tags.FormattingEnabled = true;
139 | this.listbox_tags.Location = new System.Drawing.Point(138, 81);
140 | this.listbox_tags.Name = "listbox_tags";
141 | this.listbox_tags.SelectionMode = System.Windows.Forms.SelectionMode.MultiSimple;
142 | this.listbox_tags.Size = new System.Drawing.Size(120, 459);
143 | this.listbox_tags.Sorted = true;
144 | this.listbox_tags.TabIndex = 8;
145 | this.listbox_tags.SelectedIndexChanged += new System.EventHandler(this.listbox_tags_SelectedIndexChanged);
146 | //
147 | // label4
148 | //
149 | this.label4.AutoSize = true;
150 | this.label4.Location = new System.Drawing.Point(135, 59);
151 | this.label4.Name = "label4";
152 | this.label4.Size = new System.Drawing.Size(31, 13);
153 | this.label4.TabIndex = 9;
154 | this.label4.Text = "Tags";
155 | //
156 | // label5
157 | //
158 | this.label5.AutoSize = true;
159 | this.label5.Location = new System.Drawing.Point(261, 59);
160 | this.label5.Name = "label5";
161 | this.label5.Size = new System.Drawing.Size(40, 13);
162 | this.label5.TabIndex = 11;
163 | this.label5.Text = "Games";
164 | //
165 | // listbox_games
166 | //
167 | this.listbox_games.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
168 | | System.Windows.Forms.AnchorStyles.Left)));
169 | this.listbox_games.FormattingEnabled = true;
170 | this.listbox_games.Location = new System.Drawing.Point(264, 81);
171 | this.listbox_games.Name = "listbox_games";
172 | this.listbox_games.Size = new System.Drawing.Size(279, 459);
173 | this.listbox_games.Sorted = true;
174 | this.listbox_games.TabIndex = 10;
175 | this.listbox_games.SelectedIndexChanged += new System.EventHandler(this.listbox_games_SelectedIndexChanged);
176 | this.listbox_games.DoubleClick += new System.EventHandler(this.listbox_games_DoubleClick);
177 | this.listbox_games.KeyDown += new System.Windows.Forms.KeyEventHandler(this.listbox_games_KeyDown);
178 | this.listbox_games.PreviewKeyDown += new System.Windows.Forms.PreviewKeyDownEventHandler(this.listbox_games_PreviewKeyDown);
179 | //
180 | // menuStrip1
181 | //
182 | this.menuStrip1.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
183 | this.fileToolStripMenuItem,
184 | this.gameDataToolStripMenuItem,
185 | this.toolsToolStripMenuItem});
186 | this.menuStrip1.Location = new System.Drawing.Point(0, 0);
187 | this.menuStrip1.Name = "menuStrip1";
188 | this.menuStrip1.Size = new System.Drawing.Size(1414, 24);
189 | this.menuStrip1.TabIndex = 12;
190 | this.menuStrip1.Text = "menuStrip1";
191 | //
192 | // fileToolStripMenuItem
193 | //
194 | this.fileToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {
195 | this.saveProfileToolStripMenuItem,
196 | this.loadProfileToolStripMenuItem,
197 | this.autosaveloadToolStripMenuItem});
198 | this.fileToolStripMenuItem.Name = "fileToolStripMenuItem";
199 | this.fileToolStripMenuItem.Size = new System.Drawing.Size(53, 20);
200 | this.fileToolStripMenuItem.Text = "Profile";
201 | //
202 | // saveProfileToolStripMenuItem
203 | //
204 | this.saveProfileToolStripMenuItem.Name = "saveProfileToolStripMenuItem";
205 | this.saveProfileToolStripMenuItem.Size = new System.Drawing.Size(151, 22);
206 | this.saveProfileToolStripMenuItem.Text = "Save profile";
207 | this.saveProfileToolStripMenuItem.Click += new System.EventHandler(this.saveProfileToolStripMenuItem_Click);
208 | //
209 | // loadProfileToolStripMenuItem
210 | //
211 | this.loadProfileToolStripMenuItem.Name = "loadProfileToolStripMenuItem";
212 | this.loadProfileToolStripMenuItem.Size = new System.Drawing.Size(151, 22);
213 | this.loadProfileToolStripMenuItem.Text = "Load profile";
214 | this.loadProfileToolStripMenuItem.Click += new System.EventHandler(this.loadProfileToolStripMenuItem_Click);
215 | //
216 | // autosaveloadToolStripMenuItem
217 | //
218 | this.autosaveloadToolStripMenuItem.CheckOnClick = true;
219 | this.autosaveloadToolStripMenuItem.Name = "autosaveloadToolStripMenuItem";
220 | this.autosaveloadToolStripMenuItem.Size = new System.Drawing.Size(151, 22);
221 | this.autosaveloadToolStripMenuItem.Text = "Autosave/load";
222 | //
223 | // gameDataToolStripMenuItem
224 | //
225 | this.gameDataToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {
226 | this.selectedGameToolStripMenuItem,
227 | this.allGamesToolStripMenuItem});
228 | this.gameDataToolStripMenuItem.Name = "gameDataToolStripMenuItem";
229 | this.gameDataToolStripMenuItem.Size = new System.Drawing.Size(76, 20);
230 | this.gameDataToolStripMenuItem.Text = "Game data";
231 | //
232 | // selectedGameToolStripMenuItem
233 | //
234 | this.selectedGameToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {
235 | this.getCategoriesAndTagsToolStripMenuItem,
236 | this.getImagesToolStripMenuItem,
237 | this.getBothToolStripMenuItem});
238 | this.selectedGameToolStripMenuItem.Name = "selectedGameToolStripMenuItem";
239 | this.selectedGameToolStripMenuItem.Size = new System.Drawing.Size(151, 22);
240 | this.selectedGameToolStripMenuItem.Text = "Selected game";
241 | //
242 | // getCategoriesAndTagsToolStripMenuItem
243 | //
244 | this.getCategoriesAndTagsToolStripMenuItem.Name = "getCategoriesAndTagsToolStripMenuItem";
245 | this.getCategoriesAndTagsToolStripMenuItem.Size = new System.Drawing.Size(197, 22);
246 | this.getCategoriesAndTagsToolStripMenuItem.Text = "Get categories and tags";
247 | this.getCategoriesAndTagsToolStripMenuItem.Click += new System.EventHandler(this.getCategoriesAndTagsToolStripMenuItem_Click);
248 | //
249 | // getImagesToolStripMenuItem
250 | //
251 | this.getImagesToolStripMenuItem.Name = "getImagesToolStripMenuItem";
252 | this.getImagesToolStripMenuItem.Size = new System.Drawing.Size(197, 22);
253 | this.getImagesToolStripMenuItem.Text = "Get images";
254 | this.getImagesToolStripMenuItem.Click += new System.EventHandler(this.getImagesToolStripMenuItem_Click);
255 | //
256 | // getBothToolStripMenuItem
257 | //
258 | this.getBothToolStripMenuItem.Name = "getBothToolStripMenuItem";
259 | this.getBothToolStripMenuItem.Size = new System.Drawing.Size(197, 22);
260 | this.getBothToolStripMenuItem.Text = "Get both";
261 | this.getBothToolStripMenuItem.Click += new System.EventHandler(this.getBothToolStripMenuItem_Click);
262 | //
263 | // allGamesToolStripMenuItem
264 | //
265 | this.allGamesToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {
266 | this.getCategoriesAndTagsToolStripMenuItem1,
267 | this.getImagesToolStripMenuItem1,
268 | this.getAllToolStripMenuItem});
269 | this.allGamesToolStripMenuItem.Name = "allGamesToolStripMenuItem";
270 | this.allGamesToolStripMenuItem.Size = new System.Drawing.Size(151, 22);
271 | this.allGamesToolStripMenuItem.Text = "All games";
272 | //
273 | // getCategoriesAndTagsToolStripMenuItem1
274 | //
275 | this.getCategoriesAndTagsToolStripMenuItem1.Name = "getCategoriesAndTagsToolStripMenuItem1";
276 | this.getCategoriesAndTagsToolStripMenuItem1.Size = new System.Drawing.Size(197, 22);
277 | this.getCategoriesAndTagsToolStripMenuItem1.Text = "Get categories and tags";
278 | this.getCategoriesAndTagsToolStripMenuItem1.Click += new System.EventHandler(this.getCategoriesAndTagsToolStripMenuItem1_Click);
279 | //
280 | // getImagesToolStripMenuItem1
281 | //
282 | this.getImagesToolStripMenuItem1.Name = "getImagesToolStripMenuItem1";
283 | this.getImagesToolStripMenuItem1.Size = new System.Drawing.Size(197, 22);
284 | this.getImagesToolStripMenuItem1.Text = "Get images";
285 | this.getImagesToolStripMenuItem1.Click += new System.EventHandler(this.getImagesToolStripMenuItem1_Click);
286 | //
287 | // getAllToolStripMenuItem
288 | //
289 | this.getAllToolStripMenuItem.Name = "getAllToolStripMenuItem";
290 | this.getAllToolStripMenuItem.Size = new System.Drawing.Size(197, 22);
291 | this.getAllToolStripMenuItem.Text = "Get all";
292 | this.getAllToolStripMenuItem.Click += new System.EventHandler(this.getAllToolStripMenuItem_Click);
293 | //
294 | // toolsToolStripMenuItem
295 | //
296 | this.toolsToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {
297 | this.showGamesWithoutDataToolStripMenuItem,
298 | this.showGamesWithoutImagesToolStripMenuItem});
299 | this.toolsToolStripMenuItem.Name = "toolsToolStripMenuItem";
300 | this.toolsToolStripMenuItem.Size = new System.Drawing.Size(48, 20);
301 | this.toolsToolStripMenuItem.Text = "Tools";
302 | //
303 | // showGamesWithoutDataToolStripMenuItem
304 | //
305 | this.showGamesWithoutDataToolStripMenuItem.Name = "showGamesWithoutDataToolStripMenuItem";
306 | this.showGamesWithoutDataToolStripMenuItem.Size = new System.Drawing.Size(226, 22);
307 | this.showGamesWithoutDataToolStripMenuItem.Text = "Show games without data";
308 | this.showGamesWithoutDataToolStripMenuItem.Click += new System.EventHandler(this.showGamesWithoutDataToolStripMenuItem_Click);
309 | //
310 | // showGamesWithoutImagesToolStripMenuItem
311 | //
312 | this.showGamesWithoutImagesToolStripMenuItem.Name = "showGamesWithoutImagesToolStripMenuItem";
313 | this.showGamesWithoutImagesToolStripMenuItem.Size = new System.Drawing.Size(226, 22);
314 | this.showGamesWithoutImagesToolStripMenuItem.Text = "Show games without images";
315 | this.showGamesWithoutImagesToolStripMenuItem.Click += new System.EventHandler(this.showGamesWithoutImagesToolStripMenuItem_Click);
316 | //
317 | // getNewGames
318 | //
319 | this.getNewGames.Location = new System.Drawing.Point(443, 30);
320 | this.getNewGames.Name = "getNewGames";
321 | this.getNewGames.Size = new System.Drawing.Size(100, 23);
322 | this.getNewGames.TabIndex = 13;
323 | this.getNewGames.Text = "Update game list";
324 | this.getNewGames.UseVisualStyleBackColor = true;
325 | this.getNewGames.Click += new System.EventHandler(this.getNewGames_Click);
326 | //
327 | // textGameFilter
328 | //
329 | this.textGameFilter.Location = new System.Drawing.Point(307, 56);
330 | this.textGameFilter.Name = "textGameFilter";
331 | this.textGameFilter.Size = new System.Drawing.Size(236, 20);
332 | this.textGameFilter.TabIndex = 14;
333 | this.textGameFilter.TextChanged += new System.EventHandler(this.textGameFilter_TextChanged);
334 | //
335 | // label1
336 | //
337 | this.label1.AutoSize = true;
338 | this.label1.Location = new System.Drawing.Point(12, 35);
339 | this.label1.Name = "label1";
340 | this.label1.Size = new System.Drawing.Size(58, 13);
341 | this.label1.TabIndex = 15;
342 | this.label1.Text = "Username:";
343 | //
344 | // statusStrip1
345 | //
346 | this.statusStrip1.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
347 | this.toolStripStatusLabel1,
348 | this.toolStripStatusLabel2,
349 | this.toolStripStatusLabel3});
350 | this.statusStrip1.Location = new System.Drawing.Point(0, 557);
351 | this.statusStrip1.Name = "statusStrip1";
352 | this.statusStrip1.Size = new System.Drawing.Size(1414, 24);
353 | this.statusStrip1.SizingGrip = false;
354 | this.statusStrip1.TabIndex = 16;
355 | this.statusStrip1.Text = "statusStrip1";
356 | //
357 | // toolStripStatusLabel1
358 | //
359 | this.toolStripStatusLabel1.BorderStyle = System.Windows.Forms.Border3DStyle.Etched;
360 | this.toolStripStatusLabel1.Name = "toolStripStatusLabel1";
361 | this.toolStripStatusLabel1.Size = new System.Drawing.Size(63, 19);
362 | this.toolStripStatusLabel1.Text = "Categories";
363 | //
364 | // toolStripStatusLabel2
365 | //
366 | this.toolStripStatusLabel2.BorderSides = ((System.Windows.Forms.ToolStripStatusLabelBorderSides)((System.Windows.Forms.ToolStripStatusLabelBorderSides.Left | System.Windows.Forms.ToolStripStatusLabelBorderSides.Right)));
367 | this.toolStripStatusLabel2.BorderStyle = System.Windows.Forms.Border3DStyle.Etched;
368 | this.toolStripStatusLabel2.Name = "toolStripStatusLabel2";
369 | this.toolStripStatusLabel2.Size = new System.Drawing.Size(36, 19);
370 | this.toolStripStatusLabel2.Text = "Tags";
371 | //
372 | // toolStripStatusLabel3
373 | //
374 | this.toolStripStatusLabel3.BorderSides = System.Windows.Forms.ToolStripStatusLabelBorderSides.Right;
375 | this.toolStripStatusLabel3.BorderStyle = System.Windows.Forms.Border3DStyle.Etched;
376 | this.toolStripStatusLabel3.Name = "toolStripStatusLabel3";
377 | this.toolStripStatusLabel3.Size = new System.Drawing.Size(47, 19);
378 | this.toolStripStatusLabel3.Text = "Games";
379 | //
380 | // MainWindow
381 | //
382 | this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
383 | this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
384 | this.ClientSize = new System.Drawing.Size(1414, 581);
385 | this.Controls.Add(this.statusStrip1);
386 | this.Controls.Add(this.label1);
387 | this.Controls.Add(this.textGameFilter);
388 | this.Controls.Add(this.getNewGames);
389 | this.Controls.Add(this.label5);
390 | this.Controls.Add(this.listbox_games);
391 | this.Controls.Add(this.label4);
392 | this.Controls.Add(this.listbox_tags);
393 | this.Controls.Add(this.label3);
394 | this.Controls.Add(this.pictureBox1);
395 | this.Controls.Add(this.listbox_categories);
396 | this.Controls.Add(this.game_title);
397 | this.Controls.Add(this.getAllGames);
398 | this.Controls.Add(this.textUserName);
399 | this.Controls.Add(this.menuStrip1);
400 | this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon")));
401 | this.MainMenuStrip = this.menuStrip1;
402 | this.MinimumSize = new System.Drawing.Size(800, 600);
403 | this.Name = "MainWindow";
404 | this.Text = "SteamCompanion";
405 | this.FormClosing += new System.Windows.Forms.FormClosingEventHandler(this.MainWindow_FormClosing);
406 | this.Load += new System.EventHandler(this.Form1_Load);
407 | ((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).EndInit();
408 | this.menuStrip1.ResumeLayout(false);
409 | this.menuStrip1.PerformLayout();
410 | this.statusStrip1.ResumeLayout(false);
411 | this.statusStrip1.PerformLayout();
412 | this.ResumeLayout(false);
413 | this.PerformLayout();
414 |
415 | }
416 |
417 | #endregion
418 |
419 | private System.Windows.Forms.TextBox textUserName;
420 | private System.Windows.Forms.Button getAllGames;
421 | private System.Windows.Forms.Label game_title;
422 | private System.Windows.Forms.ListBox listbox_categories;
423 | private System.Windows.Forms.PictureBox pictureBox1;
424 | private System.Windows.Forms.Label label3;
425 | private System.Windows.Forms.ListBox listbox_tags;
426 | private System.Windows.Forms.Label label4;
427 | private System.Windows.Forms.Label label5;
428 | private System.Windows.Forms.ListBox listbox_games;
429 | private System.Windows.Forms.MenuStrip menuStrip1;
430 | private System.Windows.Forms.ToolStripMenuItem fileToolStripMenuItem;
431 | private System.Windows.Forms.ToolStripMenuItem saveProfileToolStripMenuItem;
432 | private System.Windows.Forms.ToolStripMenuItem loadProfileToolStripMenuItem;
433 | private System.Windows.Forms.ToolStripMenuItem gameDataToolStripMenuItem;
434 | private System.Windows.Forms.ToolStripMenuItem selectedGameToolStripMenuItem;
435 | private System.Windows.Forms.ToolStripMenuItem getCategoriesAndTagsToolStripMenuItem;
436 | private System.Windows.Forms.ToolStripMenuItem getImagesToolStripMenuItem;
437 | private System.Windows.Forms.ToolStripMenuItem getBothToolStripMenuItem;
438 | private System.Windows.Forms.ToolStripMenuItem allGamesToolStripMenuItem;
439 | private System.Windows.Forms.ToolStripMenuItem getCategoriesAndTagsToolStripMenuItem1;
440 | private System.Windows.Forms.ToolStripMenuItem getImagesToolStripMenuItem1;
441 | private System.Windows.Forms.ToolStripMenuItem getAllToolStripMenuItem;
442 | private System.Windows.Forms.ToolStripMenuItem toolsToolStripMenuItem;
443 | private System.Windows.Forms.ToolStripMenuItem showGamesWithoutDataToolStripMenuItem;
444 | private System.Windows.Forms.ToolStripMenuItem showGamesWithoutImagesToolStripMenuItem;
445 | private System.Windows.Forms.Button getNewGames;
446 | private System.Windows.Forms.TextBox textGameFilter;
447 | private System.Windows.Forms.ToolStripMenuItem autosaveloadToolStripMenuItem;
448 | private System.Windows.Forms.Label label1;
449 | private System.Windows.Forms.StatusStrip statusStrip1;
450 | private System.Windows.Forms.ToolStripStatusLabel toolStripStatusLabel1;
451 | private System.Windows.Forms.ToolStripStatusLabel toolStripStatusLabel2;
452 | private System.Windows.Forms.ToolStripStatusLabel toolStripStatusLabel3;
453 | }
454 | }
455 |
456 |
--------------------------------------------------------------------------------
/SteamCompanion/MainWindow.cs:
--------------------------------------------------------------------------------
1 | using SteamCompanion.Properties;
2 | using System;
3 | using System.Collections.Generic;
4 | using System.Data;
5 | using System.Diagnostics;
6 | using System.Drawing;
7 | using System.Globalization;
8 | using System.IO;
9 | using System.Linq;
10 | using System.Net;
11 | using System.Text;
12 | using System.Text.RegularExpressions;
13 | using System.Windows.Forms;
14 | using System.Xml.Serialization;
15 |
16 | namespace SteamCompanion
17 | {
18 | public struct Game
19 | {
20 | public string name;
21 | public string id;
22 | public List tags;
23 | public List genres;
24 |
25 | public override string ToString()
26 | {
27 | return name;
28 | }
29 | }
30 |
31 | public partial class MainWindow : Form
32 | {
33 | private int img_index;
34 | private List games;
35 | private List game_images;
36 | private Dictionary> games_by_genre;
37 | private Dictionary> games_by_tag;
38 | private List ids;
39 |
40 | public MainWindow()
41 | {
42 | InitializeComponent();
43 | }
44 |
45 | private void load(Game game)
46 | {
47 | //We add the game's tags to the main list of tags
48 | //We also add the game to the Tag/Games dictionary
49 | if (game.tags != null)
50 | {
51 | foreach (String tag in game.tags)
52 | {
53 | if (!listbox_tags.Items.Contains(tag))
54 | {
55 | listbox_tags.Items.Add(tag);
56 | }
57 |
58 | if (games_by_tag.ContainsKey(tag))
59 | {
60 | games_by_tag[tag].Add(game);
61 | }
62 | else
63 | {
64 | games_by_tag.Add(tag, new List());
65 | games_by_tag[tag].Add(game);
66 | }
67 | }
68 | }
69 |
70 | //We do the same with genres/categories
71 | if (game.genres != null)
72 | {
73 | foreach (String cat in game.genres)
74 | {
75 | if (!listbox_categories.Items.Contains(cat))
76 | {
77 | listbox_categories.Items.Add(cat);
78 | }
79 |
80 | if (games_by_genre.ContainsKey(cat))
81 | {
82 | games_by_genre[cat].Add(game);
83 | }
84 | else
85 | {
86 | games_by_genre.Add(cat, new List());
87 | games_by_genre[cat].Add(game);
88 | }
89 | }
90 | }
91 |
92 | //We add the game's ID to the list of all IDs
93 | if(!ids.Contains(Int32.Parse(game.id))) ids.Add(Int32.Parse(game.id));
94 |
95 | //Update status bar
96 | toolStripStatusLabel1.Text = games_by_genre.Count + " Categories";
97 | toolStripStatusLabel2.Text = games_by_tag.Count + " Tags";
98 | toolStripStatusLabel3.Text = games.Count + " Games";
99 | }
100 |
101 | private void Form1_Load(object sender, EventArgs e)
102 | {
103 | img_index = 0;
104 | games = new List();
105 | game_images = new List();
106 | games_by_genre = new Dictionary>();
107 | games_by_tag = new Dictionary>();
108 | ids = new List();
109 |
110 | listbox_games.DataSource = games;
111 |
112 | // Set window location
113 | if (Settings.Default.WindowLocation != null)
114 | {
115 | this.Location = Settings.Default.WindowLocation;
116 | }
117 |
118 | // If autosave is checked, we load the autosave file
119 | autosaveloadToolStripMenuItem.Checked = Settings.Default.autosave;
120 | if(autosaveloadToolStripMenuItem.Checked)
121 | {
122 | if(File.Exists("autosave.xml"))
123 | {
124 | loadProfile("autosave.xml");
125 | }
126 | }
127 | }
128 |
129 | private void getAllGames_Click(object sender, EventArgs e)
130 | {
131 | //We get all the user's games
132 | if (!String.IsNullOrEmpty(textUserName.Text))
133 | {
134 | //Check user profile and obtain all games and ids
135 | WebClient x = new WebClient();
136 | x.Encoding = Encoding.UTF8;
137 | x.Headers.Add(HttpRequestHeader.Cookie, "birthtime=-2208959999");
138 |
139 | string source = x.DownloadString("http://steamcommunity.com/id/" + textUserName.Text + "/games/?tab=all");
140 | //MatchCollection matches = Regex.Matches(source, "appid\":(\\d+),\"name\":\"(.*?)\",\"logo", RegexOptions.IgnoreCase);
141 | //appid\":(\\d+),\"name\":\"(.*?)\",\"logo.*friendlyURL\":.+?,\"(.*?)\":\"(.+?)\"
142 | //MatchCollection matches = Regex.Matches(source, "appid\":(\\d+),\"name\":\"(.*?)\",\"logo.*?friendlyURL\":.+?,\"(.*?)\":\"(.+?)\",\"(.*?)\":(.+?)\"", RegexOptions.IgnoreCase);
143 | MatchCollection matches = Regex.Matches(source, "{\"appid\":(\\d+),\"name\":\"(.+?)\"(.*?)}(.*?)}", RegexOptions.IgnoreCase);
144 |
145 | games.Clear();
146 | listbox_categories.Items.Clear();
147 | listbox_tags.Items.Clear();
148 |
149 | games_by_genre.Clear();
150 | games_by_tag.Clear();
151 |
152 | //For each result, we create a game with the obtained name and ID and add it to the list
153 | if (matches.Count > 0)
154 | {
155 | foreach (Match ma in matches)
156 | {
157 | Game aux_game = new Game();
158 | aux_game.id = WebUtility.HtmlDecode(ma.Groups[1].Value.Trim());;
159 | aux_game.name = WebUtility.HtmlDecode(ma.Groups[2].Value.Trim());
160 | //Because some games have unicode characters, we look for \u followed by 4 characters and convert that into a single character
161 | Regex rx = new Regex(@"\\[uU]([0-9A-Fa-f]{4})");
162 | aux_game.name = rx.Replace(aux_game.name, match => ((char)Int32.Parse(match.Value.Substring(2), NumberStyles.HexNumber)).ToString());
163 | Match hours = Regex.Match(WebUtility.HtmlDecode(ma.Groups[3].Value.Trim()), "hours_forever\":\"(.+?)\"");
164 | if(hours.Success)
165 | {
166 | float hours_played = float.Parse(hours.Value.Trim());
167 | if (hours_played <= 1)
168 | {
169 | aux_game.tags = new List();
170 | aux_game.tags.Add("Less than 1h played");
171 | }
172 | }
173 | //If we don't get "hours_forever" that means we haven't played it
174 | else
175 | {
176 | aux_game.tags = new List();
177 | aux_game.tags.Add("Less than 1h played");
178 | aux_game.tags.Add("Never played");
179 | }
180 | games.Add(aux_game);
181 | load(aux_game);
182 | }
183 | }
184 | //We update all the listboxes in the form
185 | listbox_games.DataSource = null;
186 | generate_list();
187 | }
188 | }
189 |
190 | private void getNewGames_Click(object sender, EventArgs e)
191 | {
192 | //Like getAllGames, but we check if the game already exists using the list of IDs
193 | if (!String.IsNullOrEmpty(textUserName.Text))
194 | {
195 | WebClient x = new WebClient();
196 | x.Encoding = Encoding.UTF8;
197 | x.Headers.Add(HttpRequestHeader.Cookie, "birthtime=-2208959999");
198 |
199 | string source = x.DownloadString("http://steamcommunity.com/id/" + textUserName.Text + "/games/?tab=all");
200 | //MatchCollection matches = Regex.Matches(source, "appid\":(\\d+),\"name\":\"(.*?)\",\"logo", RegexOptions.IgnoreCase);
201 | //MatchCollection matches = Regex.Matches(source, "appid\":(\\d+),\"name\":\"(.*?)\",\"logo.*?friendlyURL\":.+?,\"(.*?)\":\"(.+?)\"", RegexOptions.IgnoreCase);
202 | MatchCollection matches = Regex.Matches(source, "{\"appid\":(\\d+),\"name\":\"(.+?)\"(.*?)}(.*?)}", RegexOptions.IgnoreCase);
203 |
204 | if (matches.Count > 0)
205 | {
206 | foreach (Match ma in matches)
207 | {
208 | Game aux_game = new Game();
209 | aux_game.id = WebUtility.HtmlDecode(ma.Groups[1].Value.Trim());;
210 | aux_game.name = WebUtility.HtmlDecode(ma.Groups[2].Value.Trim());
211 | //Because some games have unicode characters, we look for \u followed by 4 characters and convert that into a single character
212 | Regex rx = new Regex(@"\\[uU]([0-9A-Fa-f]{4})");
213 | aux_game.name = rx.Replace(aux_game.name, match => ((char)Int32.Parse(match.Value.Substring(2), NumberStyles.HexNumber)).ToString());
214 | Match hours = Regex.Match(WebUtility.HtmlDecode(ma.Groups[3].Value.Trim()), "hours_forever\":\"(.+?)\"");
215 | if (hours.Success)
216 | {
217 | float hours_played = float.Parse(hours.Value.Trim());
218 | if (hours_played <= 1)
219 | {
220 | aux_game.tags = new List();
221 | aux_game.tags.Add("Less than 1h played");
222 | }
223 | }
224 | //If we don't get "hours_forever" that means we haven't played it
225 | else
226 | {
227 | aux_game.tags = new List();
228 | aux_game.tags.Add("Less than 1h played");
229 | aux_game.tags.Add("Never played");
230 | }
231 | if (ids.Contains(Int32.Parse(aux_game.id)))
232 | {
233 | Console.Write("Game " + aux_game.name + " (" + aux_game.id + ") already exists\n");
234 | }
235 | else
236 | {
237 | //If it doesn't exist, we ask the user if they want to add the game to the list
238 | Console.Write("New game found: " + aux_game.name + "(" + aux_game.id + ")\n");
239 | DialogResult dialogResult = MessageBox.Show("Do you want to add " + aux_game.name + " (" + aux_game.id + ") to the list?", "New game found", MessageBoxButtons.YesNoCancel);
240 | switch(dialogResult)
241 | {
242 | case DialogResult.Cancel:
243 | return;
244 | case DialogResult.Yes:
245 | Console.Write(" Adding game to list\n");
246 | games.Add(aux_game);
247 | load(aux_game);
248 | break;
249 | case DialogResult.No:
250 | Console.Write(" Skipping game\n");
251 | break;
252 | }
253 | }
254 | }
255 | //We update all the listboxes in the form
256 | listbox_games.DataSource = null;
257 | generate_list();
258 | }
259 | }
260 | }
261 |
262 | private Game get_tags_genres(String id)
263 | {
264 | //We load the game's store page and get the name, genres and tags
265 | WebClient x = new WebClient();
266 | x.Encoding = Encoding.UTF8;
267 | x.Headers.Add(HttpRequestHeader.Cookie, "birthtime=-2208959999");
268 |
269 | string source = x.DownloadString("http://store.steampowered.com/app/" + id);
270 |
271 | Game aux_game = new Game();
272 | //data-appid="31290"
273 | Match match = Regex.Match(source, "data-appid=\"(\\d+?)\"", RegexOptions.IgnoreCase);
274 | aux_game.name = "";
275 | aux_game.id = id;
276 |
277 | if (match.Success)
278 | {
279 | string appid = WebUtility.HtmlDecode(match.Groups[1].Value);
280 | //We check if the ID returned by the store is the same as the game's ID. We can remove things like Back to the future episodes this way, or duplicated games
281 | if (appid == id)
282 | {
283 | match = Regex.Match(source, "(.+)
", RegexOptions.IgnoreCase);
284 | string title = WebUtility.HtmlDecode(match.Groups[1].Value);
285 | //Because some games have unicode characters, we look for \u followed by 4 characters and convert that into a single character
286 | Regex rx = new Regex(@"\\[uU]([0-9A-Fa-f]{4})");
287 | title = rx.Replace(title, matchutf => ((char)Int32.Parse(matchutf.Value.Substring(2), NumberStyles.HexNumber)).ToString());
288 |
289 | aux_game.name = title;
290 | aux_game.id = id;
291 | Console.Write("Processing data for " + aux_game.name + " with ID: " + aux_game.id + "\n");
292 | aux_game.genres = new List();
293 | aux_game.tags = new List();
294 |
295 | Regex regTags = new Regex("]*class=\\\"app_tag\\\"[^>]*>([^<]*)", RegexOptions.IgnoreCase | RegexOptions.Compiled);
296 |
297 | //We add each found tag to the game
298 | MatchCollection matches = regTags.Matches(source);
299 | if (matches.Count > 0)
300 | {
301 | foreach (Match ma in matches)
302 | {
303 | string tag = WebUtility.HtmlDecode(ma.Groups[1].Value.Trim()); ;
304 | if (!string.IsNullOrWhiteSpace(tag))
305 | {
306 | aux_game.tags.Add(tag);
307 | }
308 | }
309 | }
310 |
311 | string regexp = "\"description\":\"(.*?)\"";
312 | source = x.DownloadString("http://store.steampowered.com/api/appdetails/?appids=" + id);
313 |
314 | //We add each found genre to the game
315 | matches = Regex.Matches(source, regexp);
316 | if (matches.Count > 0)
317 | {
318 | foreach (Match ma in matches)
319 | {
320 | string genre = WebUtility.HtmlDecode(ma.Groups[1].Value.Trim()); ;
321 | if (!string.IsNullOrWhiteSpace(genre))
322 | {
323 | aux_game.genres.Add(genre);
324 | }
325 | }
326 | }
327 | }
328 | else
329 | {
330 | aux_game.id = "-1";
331 | }
332 | }
333 |
334 | return aux_game;
335 | }
336 |
337 | private void get_images(String id)
338 | {
339 | WebClient x = new WebClient();
340 | x.Headers.Add(HttpRequestHeader.Cookie, "birthtime=-2208959999");
341 |
342 | string source = x.DownloadString("http://store.steampowered.com/app/" + id + "/?snr=1_4_4__131");
343 |
344 | Console.Write("Processing images for game " + id + "\n");
345 | MatchCollection matches = Regex.Matches(source, "screenshotid=\"(.+)\" target");
346 | int downloaded = 0;
347 | if (matches.Count > 0)
348 | {
349 | //We open the game's store page and get all the screenshots
350 | string photoPath = "Screens/" + id + "/";
351 | System.IO.DirectoryInfo newFolder = new System.IO.DirectoryInfo(photoPath);
352 | if (!newFolder.Exists)
353 | {
354 | newFolder.Create();
355 | }
356 | //We download each screenshot to the game's directory
357 | foreach (Match ma in matches)
358 | {
359 | if (ma.Success)
360 | {
361 | string captura = ma.Groups[1].Value;
362 | if (!File.Exists(photoPath + "/" + captura))
363 | {
364 | try
365 | {
366 | x.DownloadFile("http://cdn.akamai.steamstatic.com/steam/apps/" + id + "/" + captura, photoPath + "/" + captura);
367 | Console.Write(" Downloading image " + captura + "\n");
368 | downloaded++;
369 | }
370 | catch (WebException ex)
371 | {
372 | if (ex.Status == WebExceptionStatus.ProtocolError && ex.Response != null)
373 | if ((ex.Response as HttpWebResponse).StatusCode == HttpStatusCode.NotFound)
374 | {
375 | Console.Write(" Error downloading image " + captura + "\n");
376 | downloaded--;
377 | }
378 | }
379 | }
380 | }
381 | }
382 | }
383 | //Sometimes the game is removed from the store, so we use the Steam api to get the pictures, as they are still on the server
384 | if (downloaded <= 0)
385 | {
386 | source = x.DownloadString("http://store.steampowered.com/api/appdetails/?appids=" + id);
387 |
388 | //steam_appid":3200
389 | string regex = "steam_appid\":(\\d+)";
390 | Match match = Regex.Match(source, regex);
391 | string other_id = match.Groups[1].Value;
392 |
393 | regex = "path_full.*?apps\\\\/\\d+\\\\/(.+?)\\..+?\\.jpg";
394 | matches = Regex.Matches(source, regex);
395 | if (matches.Count > 0)
396 | {
397 | string photoPath = "Screens/" + id + "/";
398 | System.IO.DirectoryInfo newFolder = new System.IO.DirectoryInfo(photoPath);
399 | if (!newFolder.Exists)
400 | {
401 | newFolder.Create();
402 | }
403 | foreach (Match ma in matches)
404 | {
405 | if (ma.Success)
406 | {
407 | string captura = ma.Groups[1].Value + ".jpg";
408 | if (!File.Exists(photoPath + "/" + captura))
409 | {
410 | try
411 | {
412 | x.DownloadFile("http://cdn.akamai.steamstatic.com/steam/apps/" + other_id + "/" + captura, photoPath + "/" + captura);
413 | }
414 | catch (WebException ex)
415 | {
416 | if (ex.Status == WebExceptionStatus.ProtocolError && ex.Response != null)
417 | if ((ex.Response as HttpWebResponse).StatusCode == HttpStatusCode.NotFound)
418 | Console.Write(" Error downloading image " + captura + "\n");
419 | }
420 | }
421 | }
422 | }
423 | }
424 | }
425 | }
426 |
427 | private void listbox_games_PreviewKeyDown(object sender, PreviewKeyDownEventArgs e)
428 | {
429 | if (listbox_games.SelectedItems.Count > 0)
430 | {
431 | switch (e.KeyCode)
432 | {
433 | //If the user presses right we show the next image from the selected game
434 | case System.Windows.Forms.Keys.Right:
435 | if (game_images.Count > 0)
436 | {
437 | img_index++;
438 | if (img_index >= game_images.Count)
439 | img_index = 0;
440 | pictureBox1.Image = game_images[img_index];
441 | }
442 | break;
443 |
444 | //Left selects a random game
445 | case System.Windows.Forms.Keys.Left:
446 | Random rnd = new Random();
447 | listbox_games.SelectedIndex = rnd.Next(0, listbox_games.Items.Count);
448 | break;
449 |
450 | //Enter launches the game
451 | case System.Windows.Forms.Keys.Enter:
452 | Process.Start("steam://run/" + ((Game)listbox_games.SelectedItem).id);
453 | break;
454 |
455 | //Delete removes the game from the list and all the images, asking the user first for confirmation
456 | case System.Windows.Forms.Keys.Delete:
457 | DialogResult dialogResult = MessageBox.Show("Do you want to delete " + ((Game)listbox_games.SelectedItem).name + " and all its screens?", "Delete confirmation", MessageBoxButtons.YesNo);
458 | if (dialogResult == DialogResult.Yes)
459 | {
460 | //We unload the images so they are not in use and we can delete them
461 | foreach (Image i in game_images)
462 | {
463 | i.Dispose();
464 | }
465 | game_images.Clear();
466 | pictureBox1.Image = null;
467 | ids.Remove(Int32.Parse(((Game)listbox_games.SelectedItem).id));
468 | games.Remove(((Game)listbox_games.SelectedItem));
469 | if (Directory.Exists("Screens/" + ((Game)listbox_games.SelectedItem).id + "/"))
470 | Directory.Delete("Screens/" + ((Game)listbox_games.SelectedItem).id + "/", true);
471 | listbox_games.DataSource = null;
472 | generate_list();
473 | }
474 | break;
475 |
476 | //Space opens the screens directory for the game so the user can add his/her own screenshots
477 | case System.Windows.Forms.Keys.Space:
478 | if (!Directory.Exists("Screens/" + ((Game)listbox_games.SelectedItem).id + "/"))
479 | Directory.CreateDirectory("Screens/" + ((Game)listbox_games.SelectedItem).id + "/");
480 | Process.Start(AppDomain.CurrentDomain.BaseDirectory + "/Screens/" + ((Game)listbox_games.SelectedItem).id + "/");
481 | break;
482 | }
483 | }
484 | }
485 |
486 | private void listbox_games_KeyDown(object sender, KeyEventArgs e)
487 | {
488 | //We "mark" the right and left keys as handled so they don't jump to the next/previous item on the listbox
489 | switch (e.KeyCode)
490 | {
491 | case System.Windows.Forms.Keys.Right:
492 | e.Handled = true;
493 | break;
494 |
495 | case System.Windows.Forms.Keys.Left:
496 | e.Handled = true;
497 | break;
498 | }
499 | }
500 |
501 | private void saveProfileToolStripMenuItem_Click(object sender, EventArgs e)
502 | {
503 | //We ask the user for a file and save the profile on that file
504 | SaveFileDialog saveFileDialog1 = new SaveFileDialog();
505 | saveFileDialog1.InitialDirectory = Application.StartupPath;
506 | saveFileDialog1.Filter = "XML file|*.xml";
507 | saveFileDialog1.Title = "Save the Profile File";
508 | saveFileDialog1.ShowDialog();
509 |
510 | if (saveFileDialog1.FileName != "")
511 | {
512 | saveProfile(saveFileDialog1.FileName);
513 | }
514 | }
515 |
516 | private void saveProfile(string file)
517 | {
518 | // Create a new XmlSerializer instance with the type of the test class
519 | XmlSerializer SerializerObj = new XmlSerializer(typeof(List));
520 |
521 | // Create a new file stream to write the serialized object to a file
522 | TextWriter WriteFileStream = new StreamWriter(file);
523 |
524 | //We save the whole games list
525 | SerializerObj.Serialize(WriteFileStream, games);
526 |
527 | // Cleanup
528 | WriteFileStream.Close();
529 | }
530 |
531 | private void loadProfileToolStripMenuItem_Click(object sender, EventArgs e)
532 | {
533 | //We ask the user for a file and load the profile on that file
534 | OpenFileDialog openFileDialog1 = new OpenFileDialog();
535 | openFileDialog1.InitialDirectory = Application.StartupPath;
536 | openFileDialog1.Filter = "XML file|*.xml";
537 | openFileDialog1.Title = "Load the Profile File";
538 | openFileDialog1.ShowDialog();
539 |
540 | if (openFileDialog1.FileName != "")
541 | {
542 | loadProfile(openFileDialog1.FileName);
543 | }
544 | }
545 |
546 | private void loadProfile(string file)
547 | {
548 | games.Clear();
549 | listbox_categories.Items.Clear();
550 | listbox_tags.Items.Clear();
551 |
552 | games_by_genre.Clear();
553 | games_by_tag.Clear();
554 |
555 | //Create a new file stream for reading the XML file
556 | FileStream ReadFileStream = new FileStream(file, FileMode.Open, FileAccess.Read, FileShare.Read);
557 | XmlSerializer SerializerObj = new XmlSerializer(typeof(List));
558 |
559 | //Load the object saved above by using the Deserialize function
560 | games = (List)SerializerObj.Deserialize(ReadFileStream);
561 |
562 | //Cleanup
563 | ReadFileStream.Close();
564 |
565 | //We load each game
566 | foreach (Game g in games)
567 | {
568 | load(g);
569 | }
570 |
571 | listbox_games.DataSource = games;
572 | }
573 |
574 | private void MainWindow_FormClosing(object sender, FormClosingEventArgs e)
575 | {
576 | //We save the settings and the profile if the autosave option is marked
577 |
578 | // Copy window location to app settings
579 | Settings.Default.WindowLocation = this.Location;
580 |
581 | Settings.Default.autosave = autosaveloadToolStripMenuItem.Checked;
582 |
583 | // Save settings
584 | Settings.Default.Save();
585 |
586 | if (autosaveloadToolStripMenuItem.Checked)
587 | {
588 | saveProfile("autosave.xml");
589 | }
590 | }
591 |
592 | private void getCategoriesAndTagsToolStripMenuItem_Click(object sender, EventArgs e)
593 | {
594 | if (listbox_games.SelectedItems.Count > 0)
595 | {
596 | Game aux_game = get_tags_genres(((Game)listbox_games.SelectedItem).id);
597 | if (!aux_game.id.Equals("-1"))
598 | {
599 | if (!aux_game.name.Equals(""))
600 | {
601 | if (aux_game.genres == null) aux_game.genres = new List();
602 | if (aux_game.tags == null) aux_game.tags = new List();
603 | if (((Game)listbox_games.SelectedItem).genres != null) aux_game.genres = aux_game.genres.Union(((Game)listbox_games.SelectedItem).genres).ToList();
604 | if (((Game)listbox_games.SelectedItem).tags != null) aux_game.tags = aux_game.tags.Union(((Game)listbox_games.SelectedItem).tags).ToList();
605 |
606 | games.Remove(((Game)listbox_games.SelectedItem));
607 | listbox_games.DataSource = null;
608 | games.Add(aux_game);
609 | load(aux_game);
610 | generate_list();
611 | listbox_games.SelectedIndex = listbox_games.Items.IndexOf(aux_game);
612 | }
613 | else
614 | {
615 | Game orig = ((Game)listbox_games.SelectedItem);
616 | if (aux_game.genres == null) aux_game.genres = new List();
617 | if (aux_game.tags == null) aux_game.tags = new List();
618 | if (orig.genres == null) orig.genres = new List();
619 | if (orig.tags == null) orig.tags = new List();
620 | orig.tags = orig.tags.Union(aux_game.tags).ToList();
621 | orig.genres = orig.genres.Union(aux_game.genres).ToList();
622 |
623 | games.Remove(((Game)listbox_games.SelectedItem));
624 | listbox_games.DataSource = null;
625 | games.Add(orig);
626 | load(orig);
627 | generate_list();
628 | listbox_games.SelectedIndex = listbox_games.Items.IndexOf(orig);
629 | }
630 | }
631 | else
632 | {
633 | ids.Remove(Int32.Parse(((Game)listbox_games.SelectedItem).id));
634 | games.Remove(((Game)listbox_games.SelectedItem));
635 | }
636 |
637 | listbox_games.DataSource = null;
638 | generate_list();
639 | }
640 | }
641 |
642 | private void getImagesToolStripMenuItem_Click(object sender, EventArgs e)
643 | {
644 | if (listbox_games.SelectedItems.Count > 0)
645 | {
646 | string id = ((Game)listbox_games.SelectedItem).id;
647 | get_images(id);
648 | if (game_images.Count > 0)
649 | {
650 | Random rnd = new Random();
651 | img_index = rnd.Next(0, game_images.Count);
652 | pictureBox1.Image = game_images[img_index];
653 | }
654 | }
655 | }
656 |
657 | private void getBothToolStripMenuItem_Click(object sender, EventArgs e)
658 | {
659 | if (listbox_games.SelectedItems.Count > 0)
660 | {
661 | Game aux_game = get_tags_genres(((Game)listbox_games.SelectedItem).id);
662 |
663 | if (!aux_game.id.Equals("-1"))
664 | {
665 | if (!aux_game.name.Equals(""))
666 | {
667 | if (aux_game.genres == null) aux_game.genres = new List();
668 | if (aux_game.tags == null) aux_game.tags = new List();
669 | if (((Game)listbox_games.SelectedItem).genres != null) aux_game.genres = aux_game.genres.Union(((Game)listbox_games.SelectedItem).genres).ToList();
670 | if (((Game)listbox_games.SelectedItem).tags != null) aux_game.tags = aux_game.tags.Union(((Game)listbox_games.SelectedItem).tags).ToList();
671 |
672 | games.Remove(((Game)listbox_games.SelectedItem));
673 | listbox_games.DataSource = null;
674 | games.Add(aux_game);
675 | get_images(aux_game.id);
676 | load(aux_game);
677 | generate_list();
678 | listbox_games.SelectedIndex = listbox_games.Items.IndexOf(aux_game);
679 | }
680 | else
681 | {
682 | Game orig = ((Game)listbox_games.SelectedItem);
683 | if (aux_game.genres == null) aux_game.genres = new List();
684 | if (aux_game.tags == null) aux_game.tags = new List();
685 | if (orig.genres == null) orig.genres = new List();
686 | if (orig.tags == null) orig.tags = new List();
687 | orig.tags = orig.tags.Union(aux_game.tags).ToList();
688 | orig.genres = orig.genres.Union(aux_game.genres).ToList();
689 |
690 | games.Remove(((Game)listbox_games.SelectedItem));
691 | listbox_games.DataSource = null;
692 | games.Add(orig);
693 | get_images(orig.id);
694 | load(orig);
695 | generate_list();
696 | listbox_games.SelectedIndex = listbox_games.Items.IndexOf(orig);
697 | }
698 | }
699 | else
700 | {
701 | ids.Remove(Int32.Parse(((Game)listbox_games.SelectedItem).id));
702 | games.Remove(((Game)listbox_games.SelectedItem));
703 | }
704 |
705 | listbox_games.DataSource = null;
706 | generate_list();
707 | }
708 | }
709 |
710 | private void getCategoriesAndTagsToolStripMenuItem1_Click(object sender, EventArgs e)
711 | {
712 | foreach (Game g in listbox_games.Items)
713 | {
714 | Game aux_game = get_tags_genres(g.id);
715 |
716 | if (!aux_game.id.Equals("-1"))
717 | {
718 | if (!aux_game.name.Equals(""))
719 | {
720 | if (aux_game.genres == null) aux_game.genres = new List();
721 | if (aux_game.tags == null) aux_game.tags = new List();
722 | if (g.genres != null) aux_game.genres = aux_game.genres.Union(g.genres).ToList();
723 | if (g.tags != null) aux_game.tags = aux_game.tags.Union(g.tags).ToList();
724 |
725 | games.Remove(g);
726 | games.Add(aux_game);
727 | }
728 | else
729 | {
730 | Game orig = g;
731 | if (aux_game.genres == null) aux_game.genres = new List();
732 | if (aux_game.tags == null) aux_game.tags = new List();
733 | if (orig.genres == null) orig.genres = new List();
734 | if (orig.tags == null) orig.tags = new List();
735 | orig.tags = orig.tags.Union(aux_game.tags).ToList();
736 | orig.genres = orig.genres.Union(aux_game.genres).ToList();
737 |
738 | games.Remove(g);
739 | games.Add(orig);
740 | }
741 | }
742 | else
743 | {
744 | ids.Remove(Int32.Parse(g.id));
745 | games.Remove(g);
746 | }
747 | }
748 |
749 | listbox_games.DataSource = null;
750 |
751 | foreach (Game g in games)
752 | {
753 | load(g);
754 | }
755 |
756 | generate_list();
757 |
758 | listbox_games.SelectedIndex = 0;
759 | }
760 | private void getImagesToolStripMenuItem1_Click(object sender, EventArgs e)
761 | {
762 | foreach (Game g in listbox_games.Items)
763 | {
764 | string id = g.id;
765 | get_images(id);
766 | }
767 | listbox_games.SelectedIndex = 0;
768 | }
769 |
770 | private void getAllToolStripMenuItem_Click(object sender, EventArgs e)
771 | {
772 | foreach (Game g in listbox_games.Items)
773 | {
774 | Game aux_game = get_tags_genres(g.id);
775 |
776 | if (!aux_game.id.Equals("-1"))
777 | {
778 | if (!aux_game.name.Equals(""))
779 | {
780 | if (aux_game.genres == null) aux_game.genres = new List();
781 | if (aux_game.tags == null) aux_game.tags = new List();
782 | if (g.genres != null) aux_game.genres = aux_game.genres.Union(g.genres).ToList();
783 | if (g.tags != null) aux_game.tags = aux_game.tags.Union(g.tags).ToList();
784 | games.Remove(g);
785 | games.Add(aux_game);
786 | }
787 | else
788 | {
789 | Game orig = g;
790 | if (aux_game.genres == null) aux_game.genres = new List();
791 | if (aux_game.tags == null) aux_game.tags = new List();
792 | if (orig.genres == null) orig.genres = new List();
793 | if (orig.tags == null) orig.tags = new List();
794 | orig.tags = orig.tags.Union(aux_game.tags).ToList();
795 | orig.genres = orig.genres.Union(aux_game.genres).ToList();
796 |
797 | games.Remove(g);
798 | games.Add(orig);
799 | }
800 | }
801 | else
802 | {
803 | ids.Remove(Int32.Parse(g.id));
804 | games.Remove(g);
805 | }
806 | }
807 |
808 | listbox_games.DataSource = null;
809 | generate_list();
810 |
811 | foreach (Game g in listbox_games.Items)
812 | {
813 | get_images(g.id);
814 | load(g);
815 | }
816 |
817 | listbox_games.SelectedIndex = 0;
818 | }
819 |
820 | private void showGamesWithoutImagesToolStripMenuItem_Click(object sender, EventArgs e)
821 | {
822 | List no_img_games = new List();
823 | foreach (Game g in games)
824 | {
825 | string path = "Screens/" + g.id + "/";
826 |
827 | if (Directory.Exists(path))
828 | {
829 | if (Directory.GetFiles(path).Length == 0 && Directory.GetDirectories(path).Length == 0)
830 | {
831 | no_img_games.Add(g);
832 | }
833 | }
834 | else
835 | {
836 | no_img_games.Add(g);
837 | }
838 | }
839 | if (no_img_games.Count > 0)
840 | {
841 | listbox_games.DataSource = null;
842 | listbox_games.DataSource = no_img_games;
843 | }
844 | }
845 |
846 | private void showGamesWithoutDataToolStripMenuItem_Click(object sender, EventArgs e)
847 | {
848 | List no_data_games = new List();
849 | foreach (Game g in games)
850 | {
851 | if (g.tags.Count <= 0 && g.genres.Count <= 0)
852 | no_data_games.Add(g);
853 | }
854 | if (no_data_games.Count > 0)
855 | {
856 | listbox_games.DataSource = null;
857 | listbox_games.DataSource = no_data_games;
858 | }
859 | }
860 |
861 | private void listbox_games_SelectedIndexChanged(object sender, EventArgs e)
862 | {
863 | if (listbox_games.SelectedItems.Count > 0)
864 | {
865 | //When we change the selected game, we load the new game's images and unload the previous ones
866 | game_title.Text = ((Game)listbox_games.SelectedItem).name;
867 | img_index = 0;
868 | String id = ((Game)listbox_games.SelectedItem).id;
869 | pictureBox1.Image = null;
870 | if (game_images.Count > 0)
871 | {
872 | foreach (Image i in game_images)
873 | i.Dispose();
874 | }
875 | game_images.Clear();
876 | if (Directory.Exists("Screens\\" + id))
877 | {
878 | foreach (string file in Directory.EnumerateFiles("Screens\\" + id, "*.jpg"))
879 | {
880 | Image aux = Image.FromFile(file);
881 | game_images.Add(aux);
882 | }
883 | }
884 | if (game_images.Count > 0)
885 | {
886 | Random rnd = new Random();
887 | img_index = rnd.Next(0, game_images.Count);
888 | pictureBox1.Image = game_images[img_index];
889 | }
890 | }
891 | }
892 |
893 | private void listbox_categories_SelectedIndexChanged(object sender, EventArgs e)
894 | {
895 | generate_list();
896 | }
897 |
898 | private void listbox_tags_SelectedIndexChanged(object sender, EventArgs e)
899 | {
900 | generate_list();
901 | }
902 |
903 | private void generate_list()
904 | {
905 | //The new list starts as the whole game list
906 | List gamelistaux = games;
907 |
908 | //Using the dictionary for each tag->games and genre->games, we interesect all the list and we get a list with only the selected genres and tags
909 | if (listbox_categories.SelectedIndices.Count > 0)
910 | {
911 | foreach (String s in listbox_categories.SelectedItems)
912 | gamelistaux = gamelistaux.Intersect(games_by_genre[s]).ToList();
913 | }
914 | if (listbox_tags.SelectedIndices.Count > 0)
915 | {
916 | foreach (String s in listbox_tags.SelectedItems)
917 | gamelistaux = gamelistaux.Intersect(games_by_tag[s]).ToList();
918 | }
919 |
920 | //From that list, we filter all the games that don't contain the string written on the textbox on their title
921 | if(!String.IsNullOrEmpty(textGameFilter.Text))
922 | {
923 | List filtered_list = new List();
924 | foreach (Game g in gamelistaux)
925 | {
926 | if (g.name.ToUpper().Contains(textGameFilter.Text.ToUpper()))
927 | filtered_list.Add(g);
928 | }
929 | gamelistaux = filtered_list;
930 | }
931 |
932 | //Then we make the listbox show the obtained games
933 | listbox_games.DataSource = null;
934 | listbox_games.DataSource = gamelistaux;
935 |
936 | //Update status bar
937 | toolStripStatusLabel1.Text = games_by_genre.Count + " Categories";
938 | toolStripStatusLabel2.Text = games_by_tag.Count + " Tags";
939 | toolStripStatusLabel3.Text = games.Count + " Games";
940 | }
941 |
942 | private void listbox_games_DoubleClick(object sender, EventArgs e)
943 | {
944 | //When the user double clicks on a game, we load the tags/categories editor with the selected game
945 | int index = this.listbox_games.IndexFromPoint(((MouseEventArgs)e).Location);
946 | if (index != System.Windows.Forms.ListBox.NoMatches)
947 | {
948 | Game j = (Game)listbox_games.Items[index];
949 | //We send the mouse position so the tag editor opens at that position
950 | GameData form = new GameData(Cursor.Position.X, Cursor.Position.Y);
951 | form.g = j;
952 | form.genres = listbox_categories.Items.Cast().ToList();
953 | form.tags = listbox_tags.Items.Cast().ToList();
954 |
955 | DialogResult res = form.ShowDialog();
956 | //If the user pressed Save, we save the new modified game
957 | if (res == DialogResult.OK)
958 | {
959 | foreach (string s in j.genres)
960 | {
961 | games_by_genre[s].Remove(j);
962 | }
963 | foreach (string s in j.tags)
964 | {
965 | games_by_tag[s].Remove(j);
966 | }
967 | games.Remove(j);
968 | listbox_games.DataSource = null;
969 | j = form.g;
970 | games.Add(j);
971 | load(j);
972 | generate_list();
973 | }
974 | }
975 | }
976 |
977 | private void textGameFilter_TextChanged(object sender, EventArgs e)
978 | {
979 | generate_list();
980 | }
981 | }
982 | }
--------------------------------------------------------------------------------
/SteamCompanion/Program.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Linq;
4 | using System.Threading.Tasks;
5 | using System.Windows.Forms;
6 |
7 | namespace SteamCompanion
8 | {
9 | static class Program
10 | {
11 | ///
12 | /// The main entry point for the application.
13 | ///
14 | [STAThread]
15 | static void Main()
16 | {
17 | Application.EnableVisualStyles();
18 | Application.SetCompatibleTextRenderingDefault(false);
19 | Application.Run(new MainWindow());
20 | }
21 | }
22 | }
23 |
--------------------------------------------------------------------------------
/SteamCompanion/Properties/AssemblyInfo.cs:
--------------------------------------------------------------------------------
1 | using System.Reflection;
2 | using System.Runtime.CompilerServices;
3 | using 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 | [assembly: AssemblyTitle("SteamCompanion")]
9 | [assembly: AssemblyDescription("")]
10 | [assembly: AssemblyConfiguration("")]
11 | [assembly: AssemblyCompany("")]
12 | [assembly: AssemblyProduct("SteamCompanion")]
13 | [assembly: AssemblyCopyright("Copyright © 2015")]
14 | [assembly: AssemblyTrademark("")]
15 | [assembly: AssemblyCulture("")]
16 |
17 | // Setting ComVisible to false makes the types in this assembly not visible
18 | // to COM components. If you need to access a type in this assembly from
19 | // COM, set the ComVisible attribute to true on that type.
20 | [assembly: ComVisible(false)]
21 |
22 | // The following GUID is for the ID of the typelib if this project is exposed to COM
23 | [assembly: Guid("a251794b-c2d6-4950-a1bc-befffa33dab5")]
24 |
25 | // Version information for an assembly consists of the following four values:
26 | //
27 | // Major Version
28 | // Minor Version
29 | // Build Number
30 | // Revision
31 | //
32 | // You can specify all the values or you can default the Build and Revision Numbers
33 | // by using the '*' as shown below:
34 | // [assembly: AssemblyVersion("1.0.*")]
35 | [assembly: AssemblyVersion("1.0.0.0")]
36 | [assembly: AssemblyFileVersion("1.0.0.0")]
37 |
--------------------------------------------------------------------------------
/SteamCompanion/Properties/Resources.Designer.cs:
--------------------------------------------------------------------------------
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 | namespace SteamCompanion.Properties {
12 | using System;
13 |
14 |
15 | ///
16 | /// A strongly-typed resource class, for looking up localized strings, etc.
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 | [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "4.0.0.0")]
23 | [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
24 | [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
25 | internal class Resources {
26 |
27 | private static global::System.Resources.ResourceManager resourceMan;
28 |
29 | private static global::System.Globalization.CultureInfo resourceCulture;
30 |
31 | [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")]
32 | internal Resources() {
33 | }
34 |
35 | ///
36 | /// Returns the cached ResourceManager instance used by this class.
37 | ///
38 | [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
39 | internal static global::System.Resources.ResourceManager ResourceManager {
40 | get {
41 | if (object.ReferenceEquals(resourceMan, null)) {
42 | global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("SteamCompanion.Properties.Resources", typeof(Resources).Assembly);
43 | resourceMan = temp;
44 | }
45 | return resourceMan;
46 | }
47 | }
48 |
49 | ///
50 | /// Overrides the current thread's CurrentUICulture property for all
51 | /// resource lookups using this strongly typed resource class.
52 | ///
53 | [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
54 | internal static global::System.Globalization.CultureInfo Culture {
55 | get {
56 | return resourceCulture;
57 | }
58 | set {
59 | resourceCulture = value;
60 | }
61 | }
62 | }
63 | }
64 |
--------------------------------------------------------------------------------
/SteamCompanion/Properties/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 | text/microsoft-resx
107 |
108 |
109 | 2.0
110 |
111 |
112 | System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
113 |
114 |
115 | System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
116 |
117 |
--------------------------------------------------------------------------------
/SteamCompanion/Properties/Settings.Designer.cs:
--------------------------------------------------------------------------------
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 | namespace SteamCompanion.Properties {
12 |
13 |
14 | [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
15 | [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "14.0.0.0")]
16 | internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase {
17 |
18 | private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings())));
19 |
20 | public static Settings Default {
21 | get {
22 | return defaultInstance;
23 | }
24 | }
25 |
26 | [global::System.Configuration.UserScopedSettingAttribute()]
27 | [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
28 | [global::System.Configuration.DefaultSettingValueAttribute("0, 0")]
29 | public global::System.Drawing.Point WindowLocation {
30 | get {
31 | return ((global::System.Drawing.Point)(this["WindowLocation"]));
32 | }
33 | set {
34 | this["WindowLocation"] = value;
35 | }
36 | }
37 |
38 | [global::System.Configuration.UserScopedSettingAttribute()]
39 | [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
40 | [global::System.Configuration.DefaultSettingValueAttribute("False")]
41 | public bool autosave {
42 | get {
43 | return ((bool)(this["autosave"]));
44 | }
45 | set {
46 | this["autosave"] = value;
47 | }
48 | }
49 | }
50 | }
51 |
--------------------------------------------------------------------------------
/SteamCompanion/Properties/Settings.settings:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 | 0, 0
7 |
8 |
9 | False
10 |
11 |
12 |
--------------------------------------------------------------------------------
/SteamCompanion/SteamCompanion.csproj:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | Debug
6 | AnyCPU
7 | {A251794B-C2D6-4950-A1BC-BEFFFA33DAB5}
8 | Exe
9 | Properties
10 | SteamCompanion
11 | SteamCompanion
12 | v4.5.2
13 | 512
14 | true
15 |
16 |
17 | AnyCPU
18 | true
19 | full
20 | false
21 | bin\Debug\
22 | DEBUG;TRACE
23 | prompt
24 | 4
25 |
26 |
27 | AnyCPU
28 | pdbonly
29 | true
30 | bin\Release\
31 | TRACE
32 | prompt
33 | 4
34 |
35 |
36 |
37 |
38 |
39 |
40 |
41 |
42 |
43 |
44 |
45 |
46 |
47 |
48 |
49 |
50 |
51 |
52 |
53 | Form
54 |
55 |
56 | GameData.cs
57 |
58 |
59 | Form
60 |
61 |
62 | MainWindow.cs
63 |
64 |
65 |
66 |
67 | GameData.cs
68 |
69 |
70 | MainWindow.cs
71 |
72 |
73 | ResXFileCodeGenerator
74 | Resources.Designer.cs
75 | Designer
76 |
77 |
78 | True
79 | Resources.resx
80 | True
81 |
82 |
83 | SettingsSingleFileGenerator
84 | Settings.Designer.cs
85 |
86 |
87 | True
88 | Settings.settings
89 | True
90 |
91 |
92 |
93 |
94 |
95 |
96 |
103 |
--------------------------------------------------------------------------------
/genres.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Knudow/SteamCompanion/5b92eb79cf4510a308f315e31f598848c6bc33af/genres.jpg
--------------------------------------------------------------------------------
/main_window.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Knudow/SteamCompanion/5b92eb79cf4510a308f315e31f598848c6bc33af/main_window.jpg
--------------------------------------------------------------------------------