├── .gitattributes
├── .gitignore
├── ADReplStatus.csproj
├── ADReplStatus.sln
├── ADReplStatusForm.Designer.cs
├── ADReplStatusForm.cs
├── ADReplStatusForm.resx
├── AlternateCredsForm.Designer.cs
├── AlternateCredsForm.cs
├── AlternateCredsForm.resx
├── App.config
├── Forest.ico
├── PortTester.Designer.cs
├── PortTester.cs
├── PortTester.resx
├── Program.cs
├── Properties
├── AssemblyInfo.cs
├── Resources.Designer.cs
├── Resources.resx
├── Settings.Designer.cs
└── Settings.settings
├── README.md
├── SetForestNameForm.Designer.cs
├── SetForestNameForm.cs
├── SetForestNameForm.resx
├── SetUserDomainControllerForm.Designer.cs
├── SetUserDomainControllerForm.cs
├── SetUserDomainControllerForm.resx
├── images
├── Darkmode.png
├── DomainController.png
├── Error.png
├── Forest.ico
├── Forest.png
├── Go.png
├── KeyLock.png
└── Logging.png
├── packages.config
├── screenshot01.png
├── screenshot02.png
├── screenshot03.png
└── screenshot04.png
/.gitattributes:
--------------------------------------------------------------------------------
1 | ###############################################################################
2 | # Set default behavior to automatically normalize line endings.
3 | ###############################################################################
4 | * text=auto
5 |
6 | ###############################################################################
7 | # Set default behavior for command prompt diff.
8 | #
9 | # This is need for earlier builds of msysgit that does not have it on by
10 | # default for csharp files.
11 | # Note: This is only used by command line
12 | ###############################################################################
13 | #*.cs diff=csharp
14 |
15 | ###############################################################################
16 | # Set the merge driver for project and solution files
17 | #
18 | # Merging from the command prompt will add diff markers to the files if there
19 | # are conflicts (Merging from VS is not affected by the settings below, in VS
20 | # the diff markers are never inserted). Diff markers may cause the following
21 | # file extensions to fail to load in VS. An alternative would be to treat
22 | # these files as binary and thus will always conflict and require user
23 | # intervention with every merge. To do so, just uncomment the entries below
24 | ###############################################################################
25 | #*.sln merge=binary
26 | #*.csproj merge=binary
27 | #*.vbproj merge=binary
28 | #*.vcxproj merge=binary
29 | #*.vcproj merge=binary
30 | #*.dbproj merge=binary
31 | #*.fsproj merge=binary
32 | #*.lsproj merge=binary
33 | #*.wixproj merge=binary
34 | #*.modelproj merge=binary
35 | #*.sqlproj merge=binary
36 | #*.wwaproj merge=binary
37 |
38 | ###############################################################################
39 | # behavior for image files
40 | #
41 | # image files are treated as binary by default.
42 | ###############################################################################
43 | #*.jpg binary
44 | #*.png binary
45 | #*.gif binary
46 |
47 | ###############################################################################
48 | # diff behavior for common document formats
49 | #
50 | # Convert binary document formats to text before diffing them. This feature
51 | # is only available from the command line. Turn it on by uncommenting the
52 | # entries below.
53 | ###############################################################################
54 | #*.doc diff=astextplain
55 | #*.DOC diff=astextplain
56 | #*.docx diff=astextplain
57 | #*.DOCX diff=astextplain
58 | #*.dot diff=astextplain
59 | #*.DOT diff=astextplain
60 | #*.pdf diff=astextplain
61 | #*.PDF diff=astextplain
62 | #*.rtf diff=astextplain
63 | #*.RTF diff=astextplain
64 |
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | ## Ignore Visual Studio temporary files, build results, and
2 | ## files generated by popular Visual Studio add-ons.
3 | ##
4 | ## Get latest from https://github.com/github/gitignore/blob/master/VisualStudio.gitignore
5 |
6 | # User-specific files
7 | *.rsuser
8 | *.suo
9 | *.user
10 | *.userosscache
11 | *.sln.docstates
12 |
13 | # User-specific files (MonoDevelop/Xamarin Studio)
14 | *.userprefs
15 |
16 | # Mono auto generated files
17 | mono_crash.*
18 |
19 | # Build results
20 | [Dd]ebug/
21 | [Dd]ebugPublic/
22 | [Rr]elease/
23 | [Rr]eleases/
24 | x64/
25 | x86/
26 | [Ww][Ii][Nn]32/
27 | [Aa][Rr][Mm]/
28 | [Aa][Rr][Mm]64/
29 | bld/
30 | [Bb]in/
31 | [Oo]bj/
32 | [Oo]ut/
33 | [Ll]og/
34 | [Ll]ogs/
35 |
36 | # Visual Studio 2015/2017 cache/options directory
37 | .vs/
38 | # Uncomment if you have tasks that create the project's static files in wwwroot
39 | #wwwroot/
40 |
41 | # Visual Studio 2017 auto generated files
42 | Generated\ Files/
43 |
44 | # MSTest test Results
45 | [Tt]est[Rr]esult*/
46 | [Bb]uild[Ll]og.*
47 |
48 | # NUnit
49 | *.VisualState.xml
50 | TestResult.xml
51 | nunit-*.xml
52 |
53 | # Build Results of an ATL Project
54 | [Dd]ebugPS/
55 | [Rr]eleasePS/
56 | dlldata.c
57 |
58 | # Benchmark Results
59 | BenchmarkDotNet.Artifacts/
60 |
61 | # .NET Core
62 | project.lock.json
63 | project.fragment.lock.json
64 | artifacts/
65 |
66 | # ASP.NET Scaffolding
67 | ScaffoldingReadMe.txt
68 |
69 | # StyleCop
70 | StyleCopReport.xml
71 |
72 | # Files built by Visual Studio
73 | *_i.c
74 | *_p.c
75 | *_h.h
76 | *.ilk
77 | *.meta
78 | *.obj
79 | *.iobj
80 | *.pch
81 | *.pdb
82 | *.ipdb
83 | *.pgc
84 | *.pgd
85 | *.rsp
86 | *.sbr
87 | *.tlb
88 | *.tli
89 | *.tlh
90 | *.tmp
91 | *.tmp_proj
92 | *_wpftmp.csproj
93 | *.log
94 | *.vspscc
95 | *.vssscc
96 | .builds
97 | *.pidb
98 | *.svclog
99 | *.scc
100 |
101 | # Chutzpah Test files
102 | _Chutzpah*
103 |
104 | # Visual C++ cache files
105 | ipch/
106 | *.aps
107 | *.ncb
108 | *.opendb
109 | *.opensdf
110 | *.sdf
111 | *.cachefile
112 | *.VC.db
113 | *.VC.VC.opendb
114 |
115 | # Visual Studio profiler
116 | *.psess
117 | *.vsp
118 | *.vspx
119 | *.sap
120 |
121 | # Visual Studio Trace Files
122 | *.e2e
123 |
124 | # TFS 2012 Local Workspace
125 | $tf/
126 |
127 | # Guidance Automation Toolkit
128 | *.gpState
129 |
130 | # ReSharper is a .NET coding add-in
131 | _ReSharper*/
132 | *.[Rr]e[Ss]harper
133 | *.DotSettings.user
134 |
135 | # TeamCity is a build add-in
136 | _TeamCity*
137 |
138 | # DotCover is a Code Coverage Tool
139 | *.dotCover
140 |
141 | # AxoCover is a Code Coverage Tool
142 | .axoCover/*
143 | !.axoCover/settings.json
144 |
145 | # Coverlet is a free, cross platform Code Coverage Tool
146 | coverage*.json
147 | coverage*.xml
148 | coverage*.info
149 |
150 | # Visual Studio code coverage results
151 | *.coverage
152 | *.coveragexml
153 |
154 | # NCrunch
155 | _NCrunch_*
156 | .*crunch*.local.xml
157 | nCrunchTemp_*
158 |
159 | # MightyMoose
160 | *.mm.*
161 | AutoTest.Net/
162 |
163 | # Web workbench (sass)
164 | .sass-cache/
165 |
166 | # Installshield output folder
167 | [Ee]xpress/
168 |
169 | # DocProject is a documentation generator add-in
170 | DocProject/buildhelp/
171 | DocProject/Help/*.HxT
172 | DocProject/Help/*.HxC
173 | DocProject/Help/*.hhc
174 | DocProject/Help/*.hhk
175 | DocProject/Help/*.hhp
176 | DocProject/Help/Html2
177 | DocProject/Help/html
178 |
179 | # Click-Once directory
180 | publish/
181 |
182 | # Publish Web Output
183 | *.[Pp]ublish.xml
184 | *.azurePubxml
185 | # Note: Comment the next line if you want to checkin your web deploy settings,
186 | # but database connection strings (with potential passwords) will be unencrypted
187 | *.pubxml
188 | *.publishproj
189 |
190 | # Microsoft Azure Web App publish settings. Comment the next line if you want to
191 | # checkin your Azure Web App publish settings, but sensitive information contained
192 | # in these scripts will be unencrypted
193 | PublishScripts/
194 |
195 | # NuGet Packages
196 | *.nupkg
197 | # NuGet Symbol Packages
198 | *.snupkg
199 | # The packages folder can be ignored because of Package Restore
200 | **/[Pp]ackages/*
201 | # except build/, which is used as an MSBuild target.
202 | !**/[Pp]ackages/build/
203 | # Uncomment if necessary however generally it will be regenerated when needed
204 | #!**/[Pp]ackages/repositories.config
205 | # NuGet v3's project.json files produces more ignorable files
206 | *.nuget.props
207 | *.nuget.targets
208 |
209 | # Microsoft Azure Build Output
210 | csx/
211 | *.build.csdef
212 |
213 | # Microsoft Azure Emulator
214 | ecf/
215 | rcf/
216 |
217 | # Windows Store app package directories and files
218 | AppPackages/
219 | BundleArtifacts/
220 | Package.StoreAssociation.xml
221 | _pkginfo.txt
222 | *.appx
223 | *.appxbundle
224 | *.appxupload
225 |
226 | # Visual Studio cache files
227 | # files ending in .cache can be ignored
228 | *.[Cc]ache
229 | # but keep track of directories ending in .cache
230 | !?*.[Cc]ache/
231 |
232 | # Others
233 | ClientBin/
234 | ~$*
235 | *~
236 | *.dbmdl
237 | *.dbproj.schemaview
238 | *.jfm
239 | *.pfx
240 | *.publishsettings
241 | orleans.codegen.cs
242 |
243 | # Including strong name files can present a security risk
244 | # (https://github.com/github/gitignore/pull/2483#issue-259490424)
245 | #*.snk
246 |
247 | # Since there are multiple workflows, uncomment next line to ignore bower_components
248 | # (https://github.com/github/gitignore/pull/1529#issuecomment-104372622)
249 | #bower_components/
250 |
251 | # RIA/Silverlight projects
252 | Generated_Code/
253 |
254 | # Backup & report files from converting an old project file
255 | # to a newer Visual Studio version. Backup files are not needed,
256 | # because we have git ;-)
257 | _UpgradeReport_Files/
258 | Backup*/
259 | UpgradeLog*.XML
260 | UpgradeLog*.htm
261 | ServiceFabricBackup/
262 | *.rptproj.bak
263 |
264 | # SQL Server files
265 | *.mdf
266 | *.ldf
267 | *.ndf
268 |
269 | # Business Intelligence projects
270 | *.rdl.data
271 | *.bim.layout
272 | *.bim_*.settings
273 | *.rptproj.rsuser
274 | *- [Bb]ackup.rdl
275 | *- [Bb]ackup ([0-9]).rdl
276 | *- [Bb]ackup ([0-9][0-9]).rdl
277 |
278 | # Microsoft Fakes
279 | FakesAssemblies/
280 |
281 | # GhostDoc plugin setting file
282 | *.GhostDoc.xml
283 |
284 | # Node.js Tools for Visual Studio
285 | .ntvs_analysis.dat
286 | node_modules/
287 |
288 | # Visual Studio 6 build log
289 | *.plg
290 |
291 | # Visual Studio 6 workspace options file
292 | *.opt
293 |
294 | # Visual Studio 6 auto-generated workspace file (contains which files were open etc.)
295 | *.vbw
296 |
297 | # Visual Studio LightSwitch build output
298 | **/*.HTMLClient/GeneratedArtifacts
299 | **/*.DesktopClient/GeneratedArtifacts
300 | **/*.DesktopClient/ModelManifest.xml
301 | **/*.Server/GeneratedArtifacts
302 | **/*.Server/ModelManifest.xml
303 | _Pvt_Extensions
304 |
305 | # Paket dependency manager
306 | .paket/paket.exe
307 | paket-files/
308 |
309 | # FAKE - F# Make
310 | .fake/
311 |
312 | # CodeRush personal settings
313 | .cr/personal
314 |
315 | # Python Tools for Visual Studio (PTVS)
316 | __pycache__/
317 | *.pyc
318 |
319 | # Cake - Uncomment if you are using it
320 | # tools/**
321 | # !tools/packages.config
322 |
323 | # Tabs Studio
324 | *.tss
325 |
326 | # Telerik's JustMock configuration file
327 | *.jmconfig
328 |
329 | # BizTalk build output
330 | *.btp.cs
331 | *.btm.cs
332 | *.odx.cs
333 | *.xsd.cs
334 |
335 | # OpenCover UI analysis results
336 | OpenCover/
337 |
338 | # Azure Stream Analytics local run output
339 | ASALocalRun/
340 |
341 | # MSBuild Binary and Structured Log
342 | *.binlog
343 |
344 | # NVidia Nsight GPU debugger configuration file
345 | *.nvuser
346 |
347 | # MFractors (Xamarin productivity tool) working folder
348 | .mfractor/
349 |
350 | # Local History for Visual Studio
351 | .localhistory/
352 |
353 | # BeatPulse healthcheck temp database
354 | healthchecksdb
355 |
356 | # Backup folder for Package Reference Convert tool in Visual Studio 2017
357 | MigrationBackup/
358 |
359 | # Ionide (cross platform F# VS Code tools) working folder
360 | .ionide/
361 |
362 | # Fody - auto-generated XML schema
363 | FodyWeavers.xsd
--------------------------------------------------------------------------------
/ADReplStatus.csproj:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | Debug
6 | AnyCPU
7 | {AF7EE9DD-D7C5-409C-A1E9-78E1078F6A89}
8 | WinExe
9 | ADReplStatus
10 | ADReplStatus
11 | v4.8
12 | 512
13 | true
14 | true
15 | publish\
16 | true
17 | Disk
18 | false
19 | Foreground
20 | 7
21 | Days
22 | false
23 | false
24 | true
25 | 0
26 | 1.0.0.%2a
27 | false
28 | false
29 | true
30 |
31 |
32 | AnyCPU
33 | true
34 | full
35 | false
36 | bin\Debug\
37 | DEBUG;TRACE
38 | prompt
39 | 4
40 | false
41 |
42 |
43 | AnyCPU
44 | pdbonly
45 | true
46 | bin\Release\
47 | TRACE
48 | prompt
49 | 4
50 | false
51 |
52 |
53 | Forest.ico
54 |
55 |
56 |
57 | packages\ObjectListView.Official.2.9.1\lib\net20\ObjectListView.dll
58 |
59 |
60 |
61 |
62 |
63 |
64 |
65 |
66 |
67 |
68 |
69 |
70 |
71 |
72 |
73 |
74 | Form
75 |
76 |
77 | ADReplStatusForm.cs
78 |
79 |
80 | Form
81 |
82 |
83 | AlternateCredsForm.cs
84 |
85 |
86 | Form
87 |
88 |
89 | SetUserDomainControllerForm.cs
90 |
91 |
92 | Form
93 |
94 |
95 | PortTester.cs
96 |
97 |
98 |
99 |
100 | Form
101 |
102 |
103 | SetForestNameForm.cs
104 |
105 |
106 | ADReplStatusForm.cs
107 |
108 |
109 | AlternateCredsForm.cs
110 |
111 |
112 | SetUserDomainControllerForm.cs
113 |
114 |
115 | PortTester.cs
116 |
117 |
118 | ResXFileCodeGenerator
119 | Resources.Designer.cs
120 | Designer
121 |
122 |
123 | True
124 | Resources.resx
125 | True
126 |
127 |
128 | SetForestNameForm.cs
129 |
130 |
131 |
132 | SettingsSingleFileGenerator
133 | Settings.Designer.cs
134 |
135 |
136 | True
137 | Settings.settings
138 | True
139 |
140 |
141 |
142 |
143 |
144 |
145 |
146 |
147 |
148 |
149 |
150 | False
151 | Microsoft .NET Framework 4.8 %28x86 and x64%29
152 | true
153 |
154 |
155 | False
156 | .NET Framework 3.5 SP1
157 | false
158 |
159 |
160 |
161 |
--------------------------------------------------------------------------------
/ADReplStatus.sln:
--------------------------------------------------------------------------------
1 |
2 | Microsoft Visual Studio Solution File, Format Version 12.00
3 | # Visual Studio Version 17
4 | VisualStudioVersion = 17.4.33205.214
5 | MinimumVisualStudioVersion = 10.0.40219.1
6 | Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ADReplStatus", "ADReplStatus.csproj", "{AF7EE9DD-D7C5-409C-A1E9-78E1078F6A89}"
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 | {AF7EE9DD-D7C5-409C-A1E9-78E1078F6A89}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
15 | {AF7EE9DD-D7C5-409C-A1E9-78E1078F6A89}.Debug|Any CPU.Build.0 = Debug|Any CPU
16 | {AF7EE9DD-D7C5-409C-A1E9-78E1078F6A89}.Release|Any CPU.ActiveCfg = Release|Any CPU
17 | {AF7EE9DD-D7C5-409C-A1E9-78E1078F6A89}.Release|Any CPU.Build.0 = Release|Any CPU
18 | EndGlobalSection
19 | GlobalSection(SolutionProperties) = preSolution
20 | HideSolutionNode = FALSE
21 | EndGlobalSection
22 | GlobalSection(ExtensibilityGlobals) = postSolution
23 | SolutionGuid = {07B32D0E-B7B7-49A4-8ED3-43C83A52FC2D}
24 | EndGlobalSection
25 | EndGlobal
26 |
--------------------------------------------------------------------------------
/ADReplStatusForm.Designer.cs:
--------------------------------------------------------------------------------
1 | namespace ADReplStatus
2 | {
3 | partial class ADReplStatusForm
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 | this.components = new System.ComponentModel.Container();
32 | System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(ADReplStatusForm));
33 | this.backgroundWorker1 = new System.ComponentModel.BackgroundWorker();
34 | this.toolTip1 = new System.Windows.Forms.ToolTip(this.components);
35 | this.SetDcButton = new System.Windows.Forms.Button();
36 | this.ProgressPercentLabel = new System.Windows.Forms.Label();
37 | this.treeListView1 = new BrightIdeasSoftware.TreeListView();
38 | this.DCNameColumn = ((BrightIdeasSoftware.OLVColumn)(new BrightIdeasSoftware.OLVColumn()));
39 | this.DomainNameColumn = ((BrightIdeasSoftware.OLVColumn)(new BrightIdeasSoftware.OLVColumn()));
40 | this.SiteColumn = ((BrightIdeasSoftware.OLVColumn)(new BrightIdeasSoftware.OLVColumn()));
41 | this.DiscoveryIssuesColumn = ((BrightIdeasSoftware.OLVColumn)(new BrightIdeasSoftware.OLVColumn()));
42 | this.IsGCColumn = ((BrightIdeasSoftware.OLVColumn)(new BrightIdeasSoftware.OLVColumn()));
43 | this.IsRODCColumn = ((BrightIdeasSoftware.OLVColumn)(new BrightIdeasSoftware.OLVColumn()));
44 | this.SourceServerColumn = ((BrightIdeasSoftware.OLVColumn)(new BrightIdeasSoftware.OLVColumn()));
45 | this.PartitionNameColumn = ((BrightIdeasSoftware.OLVColumn)(new BrightIdeasSoftware.OLVColumn()));
46 | this.ConsecutiveFailureCountColumn = ((BrightIdeasSoftware.OLVColumn)(new BrightIdeasSoftware.OLVColumn()));
47 | this.LastSuccessfulSyncColumn = ((BrightIdeasSoftware.OLVColumn)(new BrightIdeasSoftware.OLVColumn()));
48 | this.LastSyncResultColumn = ((BrightIdeasSoftware.OLVColumn)(new BrightIdeasSoftware.OLVColumn()));
49 | this.LastSyncMessageColumn = ((BrightIdeasSoftware.OLVColumn)(new BrightIdeasSoftware.OLVColumn()));
50 | this.DarkModeButton = new System.Windows.Forms.Button();
51 | this.ErrorsOnlyButton = new System.Windows.Forms.Button();
52 | this.AlternateCredsButton = new System.Windows.Forms.Button();
53 | this.SetForestButton = new System.Windows.Forms.Button();
54 | this.EnableLoggingButton = new System.Windows.Forms.Button();
55 | this.RefreshButton = new System.Windows.Forms.Button();
56 | ((System.ComponentModel.ISupportInitialize)(this.treeListView1)).BeginInit();
57 | this.SuspendLayout();
58 | //
59 | // backgroundWorker1
60 | //
61 | this.backgroundWorker1.WorkerReportsProgress = true;
62 | this.backgroundWorker1.DoWork += new System.ComponentModel.DoWorkEventHandler(this.backgroundWorker1_DoWork);
63 | this.backgroundWorker1.ProgressChanged += new System.ComponentModel.ProgressChangedEventHandler(this.backgroundWorker1_ProgressChanged);
64 | this.backgroundWorker1.RunWorkerCompleted += new System.ComponentModel.RunWorkerCompletedEventHandler(this.backgroundWorker1_RunWorkerCompleted);
65 | //
66 | // SetDcButton
67 | //
68 | this.SetDcButton.FlatStyle = System.Windows.Forms.FlatStyle.Popup;
69 | this.SetDcButton.Image = ((System.Drawing.Image)(resources.GetObject("SetDcButton.Image")));
70 | this.SetDcButton.Location = new System.Drawing.Point(180, 12);
71 | this.SetDcButton.Name = "SetDcButton";
72 | this.SetDcButton.Size = new System.Drawing.Size(50, 50);
73 | this.SetDcButton.TabIndex = 12;
74 | this.toolTip1.SetToolTip(this.SetDcButton, "Specify a domain controller for forest discovery");
75 | this.SetDcButton.UseVisualStyleBackColor = true;
76 | this.SetDcButton.Click += new System.EventHandler(this.SetDcButton_Click);
77 | //
78 | // ProgressPercentLabel
79 | //
80 | this.ProgressPercentLabel.Font = new System.Drawing.Font("Consolas", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
81 | this.ProgressPercentLabel.Location = new System.Drawing.Point(68, 12);
82 | this.ProgressPercentLabel.Name = "ProgressPercentLabel";
83 | this.ProgressPercentLabel.Size = new System.Drawing.Size(50, 50);
84 | this.ProgressPercentLabel.TabIndex = 8;
85 | this.ProgressPercentLabel.Text = "0%";
86 | this.ProgressPercentLabel.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
87 | this.ProgressPercentLabel.Visible = false;
88 | //
89 | // treeListView1
90 | //
91 | this.treeListView1.AllColumns.Add(this.DCNameColumn);
92 | this.treeListView1.AllColumns.Add(this.DomainNameColumn);
93 | this.treeListView1.AllColumns.Add(this.SiteColumn);
94 | this.treeListView1.AllColumns.Add(this.DiscoveryIssuesColumn);
95 | this.treeListView1.AllColumns.Add(this.IsGCColumn);
96 | this.treeListView1.AllColumns.Add(this.IsRODCColumn);
97 | this.treeListView1.AllColumns.Add(this.SourceServerColumn);
98 | this.treeListView1.AllColumns.Add(this.PartitionNameColumn);
99 | this.treeListView1.AllColumns.Add(this.ConsecutiveFailureCountColumn);
100 | this.treeListView1.AllColumns.Add(this.LastSuccessfulSyncColumn);
101 | this.treeListView1.AllColumns.Add(this.LastSyncResultColumn);
102 | this.treeListView1.AllColumns.Add(this.LastSyncMessageColumn);
103 | this.treeListView1.CellEditUseWholeCell = false;
104 | this.treeListView1.Columns.AddRange(new System.Windows.Forms.ColumnHeader[] {
105 | this.DCNameColumn,
106 | this.DomainNameColumn,
107 | this.SiteColumn,
108 | this.DiscoveryIssuesColumn,
109 | this.IsGCColumn,
110 | this.IsRODCColumn,
111 | this.SourceServerColumn,
112 | this.PartitionNameColumn,
113 | this.ConsecutiveFailureCountColumn,
114 | this.LastSuccessfulSyncColumn,
115 | this.LastSyncResultColumn,
116 | this.LastSyncMessageColumn});
117 | this.treeListView1.Cursor = System.Windows.Forms.Cursors.Default;
118 | this.treeListView1.Font = new System.Drawing.Font("Consolas", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
119 | this.treeListView1.HideSelection = false;
120 | this.treeListView1.Location = new System.Drawing.Point(12, 68);
121 | this.treeListView1.Name = "treeListView1";
122 | this.treeListView1.ShowGroups = false;
123 | this.treeListView1.Size = new System.Drawing.Size(760, 381);
124 | this.treeListView1.TabIndex = 9;
125 | this.treeListView1.UseCompatibleStateImageBehavior = false;
126 | this.treeListView1.UseFiltering = true;
127 | this.treeListView1.View = System.Windows.Forms.View.Details;
128 | this.treeListView1.VirtualMode = true;
129 | this.treeListView1.CellRightClick += new System.EventHandler(this.DCNameColumn_RightClick);
130 | this.treeListView1.FormatRow += new System.EventHandler(this.treeListView1_FormatRow);
131 | //
132 | // DCNameColumn
133 | //
134 | this.DCNameColumn.AspectName = "Name";
135 | this.DCNameColumn.Groupable = false;
136 | this.DCNameColumn.Text = "DC Name";
137 | this.DCNameColumn.Width = 75;
138 | //
139 | // DomainNameColumn
140 | //
141 | this.DomainNameColumn.AspectName = "DomainName";
142 | this.DomainNameColumn.Text = "Domain";
143 | this.DomainNameColumn.Width = 75;
144 | //
145 | // SiteColumn
146 | //
147 | this.SiteColumn.AspectName = "Site";
148 | this.SiteColumn.Text = "Site";
149 | this.SiteColumn.Width = 75;
150 | //
151 | // DiscoveryIssuesColumn
152 | //
153 | this.DiscoveryIssuesColumn.AspectName = "DiscoveryIssues";
154 | this.DiscoveryIssuesColumn.Text = "Discovery Issues";
155 | this.DiscoveryIssuesColumn.Width = 100;
156 | //
157 | // IsGCColumn
158 | //
159 | this.IsGCColumn.AspectName = "IsGC";
160 | this.IsGCColumn.Text = "Is GC";
161 | this.IsGCColumn.Width = 75;
162 | //
163 | // IsRODCColumn
164 | //
165 | this.IsRODCColumn.AspectName = "IsRODC";
166 | this.IsRODCColumn.MinimumWidth = 75;
167 | this.IsRODCColumn.Text = "Is RODC";
168 | this.IsRODCColumn.Width = 75;
169 | //
170 | // SourceServerColumn
171 | //
172 | this.SourceServerColumn.AspectName = "SourceServer";
173 | this.SourceServerColumn.Text = "Source DC";
174 | this.SourceServerColumn.Width = 75;
175 | //
176 | // PartitionNameColumn
177 | //
178 | this.PartitionNameColumn.AspectName = "PartitionName";
179 | this.PartitionNameColumn.Text = "Partition";
180 | this.PartitionNameColumn.Width = 75;
181 | //
182 | // ConsecutiveFailureCountColumn
183 | //
184 | this.ConsecutiveFailureCountColumn.AspectName = "ConsecutiveFailureCount";
185 | this.ConsecutiveFailureCountColumn.Text = "Consecutive Failures";
186 | this.ConsecutiveFailureCountColumn.Width = 120;
187 | //
188 | // LastSuccessfulSyncColumn
189 | //
190 | this.LastSuccessfulSyncColumn.AspectName = "LastSuccessfulSync";
191 | this.LastSuccessfulSyncColumn.Text = "Last Successful Sync";
192 | this.LastSuccessfulSyncColumn.Width = 120;
193 | //
194 | // LastSyncResultColumn
195 | //
196 | this.LastSyncResultColumn.AspectName = "LastSyncResult";
197 | this.LastSyncResultColumn.Text = "Last Sync Result";
198 | this.LastSyncResultColumn.Width = 120;
199 | //
200 | // LastSyncMessageColumn
201 | //
202 | this.LastSyncMessageColumn.AspectName = "LastSyncMessage";
203 | this.LastSyncMessageColumn.FillsFreeSpace = true;
204 | this.LastSyncMessageColumn.Text = "Last Sync Message";
205 | this.LastSyncMessageColumn.Width = 120;
206 | //
207 | // DarkModeButton
208 | //
209 | this.DarkModeButton.FlatStyle = System.Windows.Forms.FlatStyle.Popup;
210 | this.DarkModeButton.Image = ((System.Drawing.Image)(resources.GetObject("DarkModeButton.Image")));
211 | this.DarkModeButton.Location = new System.Drawing.Point(348, 12);
212 | this.DarkModeButton.Name = "DarkModeButton";
213 | this.DarkModeButton.Size = new System.Drawing.Size(50, 50);
214 | this.DarkModeButton.TabIndex = 11;
215 | this.DarkModeButton.UseVisualStyleBackColor = true;
216 | this.DarkModeButton.Click += new System.EventHandler(this.DarkModeButton_Click);
217 | //
218 | // ErrorsOnlyButton
219 | //
220 | this.ErrorsOnlyButton.FlatStyle = System.Windows.Forms.FlatStyle.Popup;
221 | this.ErrorsOnlyButton.Image = ((System.Drawing.Image)(resources.GetObject("ErrorsOnlyButton.Image")));
222 | this.ErrorsOnlyButton.Location = new System.Drawing.Point(292, 12);
223 | this.ErrorsOnlyButton.Name = "ErrorsOnlyButton";
224 | this.ErrorsOnlyButton.Size = new System.Drawing.Size(50, 50);
225 | this.ErrorsOnlyButton.TabIndex = 10;
226 | this.ErrorsOnlyButton.UseVisualStyleBackColor = true;
227 | this.ErrorsOnlyButton.Click += new System.EventHandler(this.ErrorsOnlyButton_Click);
228 | //
229 | // AlternateCredsButton
230 | //
231 | this.AlternateCredsButton.FlatStyle = System.Windows.Forms.FlatStyle.Popup;
232 | this.AlternateCredsButton.Image = ((System.Drawing.Image)(resources.GetObject("AlternateCredsButton.Image")));
233 | this.AlternateCredsButton.Location = new System.Drawing.Point(236, 12);
234 | this.AlternateCredsButton.Name = "AlternateCredsButton";
235 | this.AlternateCredsButton.Size = new System.Drawing.Size(50, 50);
236 | this.AlternateCredsButton.TabIndex = 6;
237 | this.AlternateCredsButton.UseVisualStyleBackColor = true;
238 | this.AlternateCredsButton.Click += new System.EventHandler(this.AlternateCredsButton_Click);
239 | //
240 | // SetForestButton
241 | //
242 | this.SetForestButton.FlatStyle = System.Windows.Forms.FlatStyle.Popup;
243 | this.SetForestButton.Image = ((System.Drawing.Image)(resources.GetObject("SetForestButton.Image")));
244 | this.SetForestButton.Location = new System.Drawing.Point(124, 12);
245 | this.SetForestButton.Name = "SetForestButton";
246 | this.SetForestButton.Size = new System.Drawing.Size(50, 50);
247 | this.SetForestButton.TabIndex = 4;
248 | this.SetForestButton.UseVisualStyleBackColor = true;
249 | this.SetForestButton.Click += new System.EventHandler(this.SetForestButton_Click);
250 | //
251 | // EnableLoggingButton
252 | //
253 | this.EnableLoggingButton.FlatStyle = System.Windows.Forms.FlatStyle.Popup;
254 | this.EnableLoggingButton.Image = ((System.Drawing.Image)(resources.GetObject("EnableLoggingButton.Image")));
255 | this.EnableLoggingButton.Location = new System.Drawing.Point(404, 12);
256 | this.EnableLoggingButton.Name = "EnableLoggingButton";
257 | this.EnableLoggingButton.Size = new System.Drawing.Size(50, 50);
258 | this.EnableLoggingButton.TabIndex = 3;
259 | this.EnableLoggingButton.UseVisualStyleBackColor = true;
260 | this.EnableLoggingButton.Click += new System.EventHandler(this.EnableLoggingButton_Click);
261 | //
262 | // RefreshButton
263 | //
264 | this.RefreshButton.FlatStyle = System.Windows.Forms.FlatStyle.Popup;
265 | this.RefreshButton.Image = ((System.Drawing.Image)(resources.GetObject("RefreshButton.Image")));
266 | this.RefreshButton.Location = new System.Drawing.Point(12, 12);
267 | this.RefreshButton.Name = "RefreshButton";
268 | this.RefreshButton.Size = new System.Drawing.Size(50, 50);
269 | this.RefreshButton.TabIndex = 0;
270 | this.RefreshButton.UseVisualStyleBackColor = true;
271 | this.RefreshButton.Click += new System.EventHandler(this.RefreshButton_Click);
272 | //
273 | // ADReplStatusForm
274 | //
275 | this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
276 | this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
277 | this.ClientSize = new System.Drawing.Size(784, 461);
278 | this.Controls.Add(this.SetDcButton);
279 | this.Controls.Add(this.DarkModeButton);
280 | this.Controls.Add(this.ErrorsOnlyButton);
281 | this.Controls.Add(this.treeListView1);
282 | this.Controls.Add(this.ProgressPercentLabel);
283 | this.Controls.Add(this.AlternateCredsButton);
284 | this.Controls.Add(this.SetForestButton);
285 | this.Controls.Add(this.EnableLoggingButton);
286 | this.Controls.Add(this.RefreshButton);
287 | this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon")));
288 | this.MinimumSize = new System.Drawing.Size(800, 500);
289 | this.Name = "ADReplStatusForm";
290 | this.Text = "AD Replication Status Tool";
291 | this.Load += new System.EventHandler(this.ADReplStatusForm_Load);
292 | this.Resize += new System.EventHandler(this.ADReplStatusForm_Resize);
293 | ((System.ComponentModel.ISupportInitialize)(this.treeListView1)).EndInit();
294 | this.ResumeLayout(false);
295 |
296 | }
297 |
298 | #endregion
299 |
300 | private System.Windows.Forms.Button RefreshButton;
301 | private System.ComponentModel.BackgroundWorker backgroundWorker1;
302 | private System.Windows.Forms.ToolTip toolTip1;
303 | private System.Windows.Forms.Button EnableLoggingButton;
304 | private System.Windows.Forms.Button SetForestButton;
305 | private System.Windows.Forms.Button AlternateCredsButton;
306 | private System.Windows.Forms.Label ProgressPercentLabel;
307 | private BrightIdeasSoftware.TreeListView treeListView1;
308 | private BrightIdeasSoftware.OLVColumn DCNameColumn;
309 | private BrightIdeasSoftware.OLVColumn SiteColumn;
310 | private BrightIdeasSoftware.OLVColumn DiscoveryIssuesColumn;
311 | private BrightIdeasSoftware.OLVColumn IsGCColumn;
312 | private BrightIdeasSoftware.OLVColumn IsRODCColumn;
313 | private BrightIdeasSoftware.OLVColumn DomainNameColumn;
314 | private BrightIdeasSoftware.OLVColumn SourceServerColumn;
315 | private BrightIdeasSoftware.OLVColumn PartitionNameColumn;
316 | private BrightIdeasSoftware.OLVColumn ConsecutiveFailureCountColumn;
317 | private BrightIdeasSoftware.OLVColumn LastSuccessfulSyncColumn;
318 | private BrightIdeasSoftware.OLVColumn LastSyncResultColumn;
319 | private BrightIdeasSoftware.OLVColumn LastSyncMessageColumn;
320 | private System.Windows.Forms.Button ErrorsOnlyButton;
321 | private System.Windows.Forms.Button DarkModeButton;
322 | private System.Windows.Forms.Button SetDcButton;
323 | }
324 | }
325 |
326 |
--------------------------------------------------------------------------------
/AlternateCredsForm.Designer.cs:
--------------------------------------------------------------------------------
1 | namespace ADReplStatus
2 | {
3 | partial class AlternateCredsForm
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(AlternateCredsForm));
32 | this.AlternateCredsButton = new System.Windows.Forms.Button();
33 | this.AlternateCredsLabel = new System.Windows.Forms.Label();
34 | this.UsernameTextBox = new System.Windows.Forms.TextBox();
35 | this.PasswordTextBox = new System.Windows.Forms.TextBox();
36 | this.PwdLabel = new System.Windows.Forms.Label();
37 | this.UsernameLabel = new System.Windows.Forms.Label();
38 | this.SuspendLayout();
39 | //
40 | // AlternateCredsButton
41 | //
42 | this.AlternateCredsButton.Location = new System.Drawing.Point(384, 57);
43 | this.AlternateCredsButton.Name = "AlternateCredsButton";
44 | this.AlternateCredsButton.Size = new System.Drawing.Size(75, 23);
45 | this.AlternateCredsButton.TabIndex = 0;
46 | this.AlternateCredsButton.Text = "OK";
47 | this.AlternateCredsButton.UseVisualStyleBackColor = true;
48 | this.AlternateCredsButton.Click += new System.EventHandler(this.AlternateCredsButton_Click);
49 | //
50 | // AlternateCredsLabel
51 | //
52 | this.AlternateCredsLabel.AutoSize = true;
53 | this.AlternateCredsLabel.Location = new System.Drawing.Point(12, 9);
54 | this.AlternateCredsLabel.Name = "AlternateCredsLabel";
55 | this.AlternateCredsLabel.Size = new System.Drawing.Size(359, 39);
56 | this.AlternateCredsLabel.TabIndex = 1;
57 | this.AlternateCredsLabel.Text = resources.GetString("AlternateCredsLabel.Text");
58 | //
59 | // UsernameTextBox
60 | //
61 | this.UsernameTextBox.Location = new System.Drawing.Point(74, 57);
62 | this.UsernameTextBox.Name = "UsernameTextBox";
63 | this.UsernameTextBox.Size = new System.Drawing.Size(120, 20);
64 | this.UsernameTextBox.TabIndex = 2;
65 | //
66 | // PasswordTextBox
67 | //
68 | this.PasswordTextBox.Location = new System.Drawing.Point(240, 57);
69 | this.PasswordTextBox.Name = "PasswordTextBox";
70 | this.PasswordTextBox.Size = new System.Drawing.Size(138, 20);
71 | this.PasswordTextBox.TabIndex = 3;
72 | this.PasswordTextBox.UseSystemPasswordChar = true;
73 | //
74 | // PwdLabel
75 | //
76 | this.PwdLabel.AutoSize = true;
77 | this.PwdLabel.Location = new System.Drawing.Point(206, 60);
78 | this.PwdLabel.Name = "PwdLabel";
79 | this.PwdLabel.Size = new System.Drawing.Size(31, 13);
80 | this.PwdLabel.TabIndex = 4;
81 | this.PwdLabel.Text = "Pwd:";
82 | //
83 | // UsernameLabel
84 | //
85 | this.UsernameLabel.AutoSize = true;
86 | this.UsernameLabel.Location = new System.Drawing.Point(13, 60);
87 | this.UsernameLabel.Name = "UsernameLabel";
88 | this.UsernameLabel.Size = new System.Drawing.Size(58, 13);
89 | this.UsernameLabel.TabIndex = 5;
90 | this.UsernameLabel.Text = "Username:";
91 | //
92 | // AlternateCredsForm
93 | //
94 | this.AcceptButton = this.AlternateCredsButton;
95 | this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
96 | this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
97 | this.ClientSize = new System.Drawing.Size(462, 87);
98 | this.Controls.Add(this.UsernameLabel);
99 | this.Controls.Add(this.PwdLabel);
100 | this.Controls.Add(this.PasswordTextBox);
101 | this.Controls.Add(this.UsernameTextBox);
102 | this.Controls.Add(this.AlternateCredsLabel);
103 | this.Controls.Add(this.AlternateCredsButton);
104 | this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.Fixed3D;
105 | this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon")));
106 | this.MaximizeBox = false;
107 | this.MinimizeBox = false;
108 | this.Name = "AlternateCredsForm";
109 | this.ShowInTaskbar = false;
110 | this.Text = "Provide Alternate Credentials";
111 | this.Load += new System.EventHandler(this.AlternateCredsForm_Load);
112 | this.ResumeLayout(false);
113 | this.PerformLayout();
114 |
115 | }
116 |
117 | #endregion
118 |
119 | private System.Windows.Forms.Button AlternateCredsButton;
120 | private System.Windows.Forms.Label AlternateCredsLabel;
121 | private System.Windows.Forms.TextBox UsernameTextBox;
122 | private System.Windows.Forms.TextBox PasswordTextBox;
123 | private System.Windows.Forms.Label PwdLabel;
124 | private System.Windows.Forms.Label UsernameLabel;
125 | }
126 | }
--------------------------------------------------------------------------------
/AlternateCredsForm.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 ADReplStatus
12 | {
13 | public partial class AlternateCredsForm : Form
14 | {
15 | public AlternateCredsForm()
16 | {
17 | InitializeComponent();
18 | }
19 |
20 | private void AlternateCredsButton_Click(object sender, EventArgs e)
21 | {
22 | if (UsernameTextBox.Text.Length > 0 && PasswordTextBox.Text.Length > 0)
23 | {
24 | ADReplStatusForm.gUsername = UsernameTextBox.Text;
25 |
26 | ADReplStatusForm.gPassword = PasswordTextBox.Text;
27 |
28 | this.Dispose();
29 |
30 | if (ADReplStatusForm.gLoggingEnabled)
31 | {
32 | System.IO.File.AppendAllText(ADReplStatusForm.gLogfileName, $"[{DateTime.Now}] Using alternate identity: {ADReplStatusForm.gUsername}\n");
33 | }
34 | }
35 | }
36 |
37 | private void AlternateCredsForm_Load(object sender, EventArgs e)
38 | {
39 | if (ADReplStatusForm.gDarkMode == true)
40 | {
41 | this.BackColor = Color.FromArgb(32, 32, 32);
42 |
43 | foreach (var control in this.Controls)
44 | {
45 | if (control is Label)
46 | {
47 | ((Label)control).BackColor = Color.FromArgb(32, 32, 32);
48 |
49 | ((Label)control).ForeColor = Color.White;
50 | }
51 | else if (control is TextBox)
52 | {
53 | ((TextBox)control).BackColor = Color.FromArgb(32, 32, 32);
54 |
55 | ((TextBox)control).ForeColor = Color.White;
56 | }
57 | else if (control is Button)
58 | {
59 | ((Button)control).BackColor = Color.FromArgb(32, 32, 32);
60 |
61 | ((Button)control).ForeColor = Color.White;
62 | }
63 | }
64 | }
65 | }
66 | }
67 | }
68 |
--------------------------------------------------------------------------------
/AlternateCredsForm.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 | Provide alternate credentials to connect to the AD forest.
122 | NOTE: This is only necessary if the currently logged-on user does not have
123 | permissions to the replication data of the target Active Directory forest:
124 |
125 |
126 |
127 |
128 | AAABAAYAICAQAAEABADoAgAAZgAAABAQEAABAAQAKAEAAE4DAAAgIAAAAQAIAKgIAAB2BAAAEBAAAAEA
129 | CABoBQAAHg0AACAgAAABACAAqBAAAIYSAAAQEAAAAQAgAGgEAAAuIwAAKAAAACAAAABAAAAAAQAEAAAA
130 | AAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAIAAAACAgACAAAAAgACAAICAAACAgIAAwMDAAAAA
131 | /wAA/wAAAP//AP8AAAD/AP8A//8AAP///wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
132 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACP/////////////////wAAj/////////////////
133 | 8AAP//////+P/4/4/4/4//AACP93Bzh3dw93dz93dw/wAAj/f/h/eI9/eIh4eI9/8AAP/3j4eH/4eH/4
134 | f3+IePAACP94iH94iH9/iH94+H/wAAj/eHd/eHd/d3d/eHd/8AAP//+P//+P//////+P//AACP//j4j4
135 | ////iIiI///wAAj////4///////////48AAP///3d3T////3d1L///AACP//94+D//+P94j3///wAAj/
136 | //f4h/////f4h4/48AAP///3j4f/j//3j4f///AACP//93d3////93d3///wAAj/////////////////
137 | 8AAP////+IiIiIiIiP//+PAACP////////////////+AAAj///////d3V/////iIgAAP///////3j4L/
138 | //eHiIAACP//////9/iH///4/4iAAAj///////ePh///+P+AAAAP///////3d3f///j4AAAACP////j/
139 | //////+IgAAAAAj/////////////iIAAAAAPiIiIiIiIj4iIiPAAAAAAAAAAAAAAAAAAAAAAAAAAAP//
140 | //////////////////+AAAAHgAAAB4AAAAeAAAAHgAAAB4AAAAeAAAAHgAAAB4AAAAeAAAAHgAAAB4AA
141 | AAeAAAAHgAAAB4AAAAeAAAAHgAAAB4AAAAeAAAAHgAAAB4AAAAeAAAAHgAAAH4AAAD+AAAB/gAAAf4AA
142 | Af//////KAAAABAAAAAgAAAAAQAEAAAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAIAAAACA
143 | gACAAAAAgACAAICAAACAgIAAwMDAAAAA/wAA/wAAAP//AP8AAAD/AP8A//8AAP///wAAAAAAAAAAAHd3
144 | d3d3d3dwf/j//////3B///j4+P+PcH93f3d/d39wj3h4f3h/f4CId393f3d/cI/4//j/+P+Aj/iIiIiI
145 | /4CP///4////gI///3d///iAj///f3/4iICPj/93f/j4gI//////+IgAiIiIiIiI8AAAAAAAAAAAAP//
146 | AAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAwAAAAcAAP//
147 | AAAoAAAAIAAAAEAAAAABAAgAAAAAAAAEAAAAAAAAAAAAAAABAAAAAQAAAAAAAFxcXABjY2MAaWlpAHZ2
148 | dgCAgIAAhYWFAImJiQCOjo4AkpKSAKmpqQCurq4AsrKyALi4uAC+vr4Aw8PDAMbGxgDJyckAzc3NANLS
149 | 0gDV1dUA3t7eAOPj4wDk5OQA6urqAPX29gD3+PgA+fn5APv8/AD9/f0AAAAAAAAAAAAAAAAAAAAAAAAA
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 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA////AAAAAAAAAAAAAAAAAAAA
165 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
166 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQbGxsb
167 | GxsbGxsbGhoaGhoaGhoaGhoaGhoaGhoAAAAAFBsbGxsbGxsbGxsbGxsbGxoaGhoaGhoaGhoaGgAAAAAU
168 | GxsbGxsbGxsbGxsbGxsbGxoaGhoaGhoaGhoaAAAAABQbGwQDAgEBGwQDAgEBGwQDAgEBGgQDAgEBGhoA
169 | AAAAFBsbBRoYFQEbBRoYFQEbBRoYFQEaBRoYFQEaGgAAAAAUGxsFGBUUAhsFGBUUAhsFGBUUAhsFGBUU
170 | AhoaAAAAABQbGwgVFBAEGwgVFBAEGwgVFBAEGwgVFBAEGhoAAAAAFBsbCQkJCAgbCQkJCAgaCQkJCAga
171 | CQkJCAUbGgAAAAAUGxsbGxUbGxsbGxQbGxsbGxQbGhobGxQbGxoaAAAAABUbGxsbFBQUFRQUFRobGxsb
172 | FBQUFBQUFBsbGhoAAAAAFBsbGxsbGxsUGxsbGxsbGxsbGxsUGxsbGxsbGgAAAAAUGxsbGxsFAwIBARsb
173 | GxsbGxsEAwIBARsbGxsbAAAAABUbGxsbGwUaGBUBGxsbGxsbGwUaGBUBGxsbGxsAAAAAFBsbGxsbCBgV
174 | FAIbGxsbGxsbCBgVFAIbGxsbGwAAAAAUGxsbGxsIFRQQBRsbGxsbGxsIFRQQBBsbGxsbAAAAABUbGxsb
175 | GwkJCQgFGxsbGxsbGwkJCAgIGhsbGxsAAAAAFBsbGxsbGxsUGxsbGxsbGxsbGxsVGhsbGxsbGwAAAAAU
176 | GxsbGxsbGxUUFRQVFBUUFRQVFBQbGxsbGxsbAAAAABUbGxsbGxsbGxsbGxsbFBsbGxsbGxsbGxsbGxQA
177 | AAAAFBsbGxsbGxsbGxsbBQMCAgEbGxsbGxsbFRIODQAAAAAUGxsbGxsbGxsbGxsFGhgVARsbGxsbDQsK
178 | CwsNAAAAABUbGxsbGxsbGxsbGwgYFRQCGxsbGxsSGhgVDQwAAAAAFBsbGxsbGxsbGxsbCBUUEAQbGxsb
179 | GxIbGBIAAAAAAAAUGxsbGxsbGxsbGxsJCQkICBsbGxsbFBUSAAAAAAAAABUbGxsbGxsbGxsbGxsbGxsb
180 | GxsbGxgQEgAAAAAAAAAAFBsbGxsbGxsbGxsbGxsbGxsbGxsbFQ0MAAAAAAAAAAAUFRQVFBUUFRQVFBUU
181 | FRQVFBUUFRQSAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/////////////
182 | ////////gAAAB4AAAAeAAAAHgAAAB4AAAAeAAAAHgAAAB4AAAAeAAAAHgAAAB4AAAAeAAAAHgAAAB4AA
183 | AAeAAAAHgAAAB4AAAAeAAAAHgAAAB4AAAAeAAAAHgAAAB4AAAB+AAAA/gAAAf4AAAH+AAAH//////ygA
184 | AAAQAAAAIAAAAAEACAAAAAAAAAEAAAAAAAAAAAAAAAEAAAABAAAAAAAAZGRkAG5ubgB2dnYAenp6AIaG
185 | hgCJiYkAkZGRAJ2dnQCsrKwAsrKyALm5uQC9vb0AwMDAAMXFxQDKysoAzc3NAN/f4ADl5eYA6urqAOzt
186 | 7ADw8fIA8vL0APP09QD09fUA9vf4APf4+QD5+foA+/v8APv8/AD+/v4AAAAAAAAAAAAAAAAAAAAAAAAA
187 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
188 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
189 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
190 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
191 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
192 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
193 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
194 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
195 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
196 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
197 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
198 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
199 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
200 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
201 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD///8AAAAAAAAAAAAAAAAAAAAAAAQE
202 | BAQEBAQEBAQEBAQEBAAFFRUVFRUVFRUZFRoZGgUABxUVFRUVGRUaGRoZGhoHAAgVAwIBFQQCARUEAgEa
203 | CAAJFQYVBBUGFQQaBhUEGgkACRUHBwYaBwcGGgcHBhoKAAoZGRAZGRoQGhoaEBoaCgAKFRoQEBAQEBAQ
204 | EBAaGgsADBoZGhoaGhAaGhoaGhoMAAwaGhoaGgQCARoaGhQRDAAMGhoaGhoGGQQaGg0LCwwADBoaGhoa
205 | CAcGGhoQFQwSAA0aGhoaGhoaGhoaEAwUAAANDQ4ODQ4ODQ4ODQ0ZAAAAAAAAAAAAAAAAAAAAAAAAAP//
206 | AAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAwAAAAcAAP//
207 | AAAoAAAAIAAAAEAAAAABACAAAAAAAIAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
208 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
209 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
210 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
211 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
212 | AAAAAAAIAAAAGAAAACAAAAAgAAAAIAAAACAAAAAgAAAAIAAAACAAAAAgAAAAIAAAACAAAAAgAAAAIAAA
213 | ACAAAAAgAAAAIAAAACAAAAAgAAAAIAAAACAAAAAgAAAAIAAAACAAAAAgAAAAIAAAACAAAAAgAAAAGAAA
214 | AAgAAAAAAAAAAAAAABgAAABIAAAAYAAAAGAAAABgAAAAYAAAAGAAAABgAAAAYAAAAGAAAABgAAAAYAAA
215 | AGAAAABgAAAAYAAAAGAAAABgAAAAYAAAAGAAAABgAAAAYAAAAGAAAABgAAAAYAAAAGAAAABgAAAAYAAA
216 | AGAAAABIAAAAGAAAAAAAAAAA1tbW//j5+f/4+fn/+Pn5//j5+f/4+fn/+Pn5//j5+f/4+fn/+Pj4//j4
217 | +P/3+Pj/9/j4//f4+P/3+Pj/9/j4//f39//29/f/9vf3//b39//29/f/9vf3//b39//29/f/9fb2//X2
218 | 9v/19vb/9fb2/wAAAGAAAAAgAAAAAAAAAADW1tb/+fr6//n6+v/5+vr/+fr6//n6+v/5+vr/+fr6//n5
219 | +f/5+fn/+Pn5//j5+f/4+fn/+Pn5//j4+P/4+Pj/9/j4//f4+P/3+Pj/9/j4//f4+P/39/f/9vf3//b3
220 | 9//29/f/9vf3//b39//29/f/AAAAYAAAACAAAAAAAAAAANbW1v/6+vr/+fr6//r6+v/5+vr/+vr6//n6
221 | +v/5+vr/+fr6//n5+f/5+fn/+fn5//j5+f/4+fn/+Pn5//j4+P/4+Pj/9/j4//f4+P/3+Pj/9/j4//f4
222 | +P/39/f/9vf3//b39//29/f/9vf3//b39/8AAABgAAAAIAAAAAAAAAAA1tbW//r6+v/6+vr/dnZ2/2lp
223 | af9jY2P/XV1d/1xcXP/5+vr/dnZ2/2lpaf9jY2P/XV1d/1xcXP/4+fn/dnZ2/2lpaf9jY2P/XV1d/1xc
224 | XP/3+Pj/dnZ2/2lpaf9jY2P/XV1d/1xcXP/29/f/9vf3/wAAAGAAAAAgAAAAAAAAAADW1tb/+vv7//r6
225 | +v+AgID/9vb2/+vr6//f39//XFxc//r6+v+AgID/9vb2/+vr6//f39//XFxc//j5+f+AgID/9vb2/+vr
226 | 6//f39//XFxc//f4+P+AgID/9vb2/+vr6//f39//XFxc//b39//29/f/AAAAYAAAACAAAAAAAAAAANbW
227 | 1v/6+/v/+vv7/4WFhf/r6+v/39/f/9LS0v9jY2P/+vr6/4WFhf/r6+v/39/f/9LS0v9jY2P/+fn5/4WF
228 | hf/r6+v/39/f/9LS0v9jY2P/+Pj4/4WFhf/r6+v/39/f/9LS0v9jY2P/9/f3//b39/8AAABgAAAAIAAA
229 | AAAAAAAA1tbW//v7+//6+/v/ioqK/9/f3//S0tL/x8fH/3Z2dv/6+vr/ioqK/9/f3//S0tL/x8fH/3Z2
230 | dv/5+fn/ioqK/9/f3//S0tL/x8fH/3Z2dv/4+Pj/ioqK/9/f3//S0tL/x8fH/3Z2dv/3+Pj/9/f3/wAA
231 | AGAAAAAgAAAAAAAAAADW1tb/+/v7//v7+/+Tk5P/kpKS/5GRkf+Ojo7/iIiI//r7+/+Tk5P/kpKS/5GR
232 | kf+Ojo7/iIiI//n6+v+Tk5P/kpKS/5GRkf+Ojo7/iIiI//j5+f+Tk5P/kpKS/5GRkf+Ojo7/iIiI//f4
233 | +P/3+Pj/AAAAYAAAACAAAAAAAAAAANbW1v/7+/v/+/v7//v7+//7+/v/1tbW//v7+//7+/v/+/v7//r7
234 | +//6+/v/1tbW//r6+v/6+vr/+fr6//n6+v/5+vr/1tbW//n5+f/4+fn/+Pn5//j5+f/4+fn/1tbW//j4
235 | +P/3+Pj/9/j4//f4+P8AAABgAAAAIAAAAAAAAAAA1tbW//v8/P/7+/v/+/z8//v7+//W1tb/1tbW/9bW
236 | 1v/W1tb/1tbW/9bW1v/W1tb/+vr6//r6+v/6+vr/+fr6//n6+v/W1tb/1tbW/9bW1v/W1tb/1tbW/9bW
237 | 1v/W1tb/+Pj4//j4+P/3+Pj/9/j4/wAAAGAAAAAgAAAAAAAAAADW1tb/+/z8//v8/P/7/Pz/+/z8//v8
238 | /P/7/Pz/+/v7/9bW1v/7+/v/+/v7//r7+//6+/v/+vr6//r6+v/6+vr/+fr6//n6+v/5+vr/+fn5/9bW
239 | 1v/5+fn/+Pn5//j5+f/4+fn/+Pj4//j4+P/3+Pj/AAAAYAAAACAAAAAAAAAAANbW1v/8/Pz//Pz8//z8
240 | /P/8/Pz//Pz8/3Z2dv9paWn/Y2Nj/11dXf9cXFz/+/v7//r7+//6+/v/+vv7//r6+v/6+vr/+vr6/3Z2
241 | dv9paWn/Y2Nj/11dXf9cXFz/+Pn5//j5+f/4+fn/+Pn5//j4+P8AAABgAAAAIAAAAAAAAAAA1tbW//z8
242 | /P/8/Pz//Pz8//z8/P/8/Pz/gICA//b29v/r6+v/39/f/1xcXP/7+/v/+/v7//v7+//6+/v/+vv7//r6
243 | +v/6+vr/gICA//b29v/r6+v/39/f/1xcXP/5+fn/+Pn5//j5+f/4+fn/+Pn5/wAAAGAAAAAgAAAAAAAA
244 | AADW1tb//Pz8//z8/P/8/Pz//Pz8//z8/P+FhYX/6+vr/9/f3//S0tL/Y2Nj//v7+//7+/v/+/v7//v7
245 | +//6+/v/+vv7//r6+v+FhYX/6+vr/9/f3//S0tL/Y2Nj//n5+f/5+fn/+Pn5//j5+f/4+fn/AAAAYAAA
246 | ACAAAAAAAAAAANbW1v/8/f3//Pz8//z9/f/8/Pz//P39/4qKiv/f39//0tLS/8fHx/92dnb/+/z8//v7
247 | +//7+/v/+/v7//v7+//6+/v/+vv7/4qKiv/f39//0tLS/8fHx/92dnb/+fr6//n5+f/5+fn/+fn5//j5
248 | +f8AAABgAAAAIAAAAAAAAAAA1tbW//39/f/8/f3//f39//z9/f/9/f3/k5OT/5KSkv+RkZH/jo6O/4iI
249 | iP/8/Pz/+/z8//v8/P/7+/v/+/v7//v7+//6+/v/k5OT/5KSkv+RkZH/jo6O/4iIiP/5+vr/+fr6//n6
250 | +v/5+fn/+fn5/wAAAGAAAAAgAAAAAAAAAADW1tb//f39//39/f/9/f3//f39//39/f/9/f3//P39/9bW
251 | 1v/8/Pz//Pz8//z8/P/8/Pz/+/z8//v8/P/7+/v/+/v7//v7+//7+/v/+vv7/9bW1v/6+vr/+vr6//r6
252 | +v/5+vr/+fr6//n6+v/5+fn/AAAAYAAAACAAAAAAAAAAANbW1v/9/f3//f39//39/f/9/f3//f39//39
253 | /f/9/f3/1tbW/9bW1v/W1tb/1tbW/9bW1v/W1tb/1tbW/9bW1v/W1tb/1tbW/9bW1v/W1tb/1tbW//r7
254 | +//6+vr/+vr6//r6+v/5+vr/+fr6//n6+v8AAABgAAAAIAAAAAAAAAAA1tbW//39/f/9/f3//f39//39
255 | /f/9/f3//f39//39/f/9/f3//P39//z9/f/8/Pz//Pz8//z8/P/W1tb//Pz8//v8/P/7+/v/+/v7//v7
256 | +//7+/v/+vv7//r7+//6+vr/+vr6//r6+v/5+vr/1NTU/wAAAGAAAAAgAAAAAAAAAADW1tb//f39//39
257 | /f/9/f3//f39//39/f/9/f3//f39//39/f/9/f3//f39//z9/f92dnb/aWlp/2NjY/9dXV3/XFxc//v8
258 | /P/7/Pz/+/v7//v7+//7+/v/+vv7//r7+//W1tb/zs7O/7+/v/+4uLj/AAAAVQAAABsAAAAAAAAAANbW
259 | 1v/9/f3//f39//39/f/9/f3//f39//39/f/9/f3//f39//39/f/9/f3//f39/4CAgP/29vb/6+vr/9/f
260 | 3/9cXFz//Pz8//v8/P/7/Pz/+/v7//v7+/+ysrL/q6ur/6mpqf+pqan/r6+v/7i4uP4AAAA3AAAADgAA
261 | AAAAAAAA1tbW//7+/v/9/f3//v7+//39/f/+/v7//f39//39/f/9/f3//f39//39/f/9/f3/hYWF/+vr
262 | 6//f39//0tLS/2NjY//8/Pz//Pz8//v8/P/7/Pz/+/v7/8bGxv/19fX/9PT0/+Pj4/+8vLz+ZGRkhAAA
263 | ABQAAAADAAAAAAAAAADW1tb//v7+//7+/v/+/v7//v7+//7+/v/+/v7//f7+//39/f/9/f3//f39//39
264 | /f+Kior/39/f/9LS0v/Hx8f/dnZ2//z8/P/8/Pz//Pz8//z8/P/7/Pz/zs7O//r6+v/r6+v/ysrK/m1t
265 | bX8AAAAXAAAAAwAAAAAAAAAAAAAAANbW1v/+/v7//v7+//7+/v/+/v7//v7+//7+/v/+/v7//f7+//39
266 | /f/9/f3//f39/5OTk/+SkpL/kZGR/46Ojv+IiIj//Pz8//z8/P/8/Pz//Pz8//z8/P/Nzc3/5OTk/8nJ
267 | yf5oaGh/AAAAFwAAAAMAAAAAAAAAAAAAAAAAAAAA1tbW//7+/v/+/v7//v7+//7+/v/+/v7//v7+//7+
268 | /v/+/v7//f7+//39/f/9/f3//f39//39/f/9/f3//f39//39/f/8/f3//Pz8//z8/P/8/Pz/6urq/8PD
269 | w//Hx8f+ZWVlfgAAABcAAAADAAAAAAAAAAAAAAAAAAAAAAAAAADW1tb//v7+//7+/v/+/v7//v7+//7+
270 | /v/+/v7//v7+//7+/v/+/v7//v7+//39/f/9/f3//f39//39/f/9/f3//f39//39/f/8/f3//Pz8//z8
271 | /P/c3Nz/v7+//mtra4IAAAAZAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANbW1v/W1tb/1tbW/9bW
272 | 1v/W1tb/1tbW/9bW1v/W1tb/1tbW/9bW1v/W1tb/1tbW/9bW1v/W1tb/1tbW/9bW1v/W1tb/1tbW/9bW
273 | 1v/W1tb/1tbW/8zMzPiCgoJvAAAAEgAAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
274 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
275 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP//
276 | ////////gAAAAYAAAAGAAAABgAAAAYAAAAGAAAABgAAAAYAAAAGAAAABgAAAAYAAAAGAAAABgAAAAYAA
277 | AAGAAAABgAAAAYAAAAGAAAABgAAAAYAAAAGAAAABgAAAAYAAAAGAAAABgAAAA4AAAAeAAAAPgAAAH4AA
278 | AD//////KAAAABAAAAAgAAAAAQAgAAAAAABABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
279 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB6enr/enp6/3p6
280 | ev96enr/enp6/3p6ev96enr/enp6/3p6ev96enr/enp6/3p6ev96enr/enp6/3p6ev8AAAAAhoaG//Dw
281 | 8v/w8PL/8PDy//Hx8//x8vP/8vL0//Pz9P/z9PX/9PX2//X19//29vf/9/f4//f4+f+Ghob/AAAAAJCQ
282 | kP/x8fP/8fHz//Hx8//x8vP/8vL0//Pz9f/z9PX/9PX2//X19//29vf/9/f4//f4+f/4+fr/kJCQ/wAA
283 | AACdnZ3/8vLz/3Z2dv9ubm7/ZGRk//Pz9f92dnb/bm5u/2RkZP/29vf/dnZ2/25ubv9kZGT/+fr6/52d
284 | nf8AAAAArKys//Ly9P+Kior/9PT0/3t7e//09PX/ioqK//T09P97e3v/9/f4/4qKiv/09PT/e3t7//r7
285 | +/+srKz/AAAAAK2trf/z8/X/k5OT/5CQkP+IiIj/9PX2/5OTk/+QkJD/iIiI//j4+f+Tk5P/kJCQ/4iI
286 | iP/7+/z/ra2t/wAAAACxsbH/9PT2//T09v/Nzc3/9fX2//X29//29/j/zc3N//j4+f/5+fr/+fr7/83N
287 | zf/7/Pz/+/z8/7Gxsf8AAAAAs7Oz//X19v/19fb/zc3N/83Nzf/Nzc3/zc3N/83Nzf/Nzc3/zc3N/83N
288 | zf/Nzc3/+/z9//z9/f+zs7P/AAAAALq6uv/3+Pn/9/j5//f4+f/4+fr/+fr6//r6+//Nzc3/+/z8//z9
289 | /f/8/f3//P39//3+/v/9/v7/uLi4/wAAAAC8vLz/+Pn6//j5+v/4+fr/+fr6//r6+/92dnb/bm5u/2Rk
290 | ZP/8/f3//f7+//3+/v/l5eb/39/g/7q6uv8AAAAAvb29//n6+v/5+vr/+fr6//r7+//7+/z/ioqK//T0
291 | 9P97e3v//f7+//3+/v+6urr/uLi4/7i4uP+6urr/AAAAAL+/v//6+/v/+vv7//r7+//7+/z/+/z8/5OT
292 | k/+QkJD/iIiI//3+/v/9/v7/xcXF//b29v+6urr/3d3dmwAAAADAwMD/+/v8//v7/P/7+/z/+/z8//z9
293 | /f/8/f3//f7+//3+/v/7/Pz//f7+/8rKyv+6urr/4+XipwAAAAAAAAAAwMDA/8DAwP/AwMD/wMDA/8DA
294 | wP/AwMD/wMDA/8DAwP/AwMD/wMDA/8DAwP+/v7//9fX1uQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
295 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD//wAAAAEAAAAB
296 | AAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAMAAAAHAAD//wAA
297 |
298 |
299 |
--------------------------------------------------------------------------------
/App.config:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/Forest.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ryanries/ADReplStatus/f29710dcce76266e09d79413fd3e231d8aee269f/Forest.ico
--------------------------------------------------------------------------------
/PortTester.Designer.cs:
--------------------------------------------------------------------------------
1 | namespace ADReplStatus
2 | {
3 | partial class PortTester
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(PortTester));
32 | this.results_label = new System.Windows.Forms.Label();
33 | this.results_txtbox = new System.Windows.Forms.TextBox();
34 | this.Target_label = new System.Windows.Forms.Label();
35 | this.target_txtbox = new System.Windows.Forms.TextBox();
36 | this.portOverride_btn = new System.Windows.Forms.CheckBox();
37 | this.port_label = new System.Windows.Forms.Label();
38 | this.port_txtbox = new System.Windows.Forms.TextBox();
39 | this.manualTest_btn = new System.Windows.Forms.Button();
40 | this.protocolTesterListBox = new System.Windows.Forms.CheckedListBox();
41 | this.runTest_btn = new System.Windows.Forms.Button();
42 | this.selectAll_rbtn = new System.Windows.Forms.RadioButton();
43 | this.exportResults_btn = new System.Windows.Forms.Button();
44 | this.SuspendLayout();
45 | //
46 | // results_label
47 | //
48 | resources.ApplyResources(this.results_label, "results_label");
49 | this.results_label.Name = "results_label";
50 | //
51 | // results_txtbox
52 | //
53 | resources.ApplyResources(this.results_txtbox, "results_txtbox");
54 | this.results_txtbox.Name = "results_txtbox";
55 | //
56 | // Target_label
57 | //
58 | resources.ApplyResources(this.Target_label, "Target_label");
59 | this.Target_label.Name = "Target_label";
60 | //
61 | // target_txtbox
62 | //
63 | resources.ApplyResources(this.target_txtbox, "target_txtbox");
64 | this.target_txtbox.Name = "target_txtbox";
65 | //
66 | // portOverride_btn
67 | //
68 | resources.ApplyResources(this.portOverride_btn, "portOverride_btn");
69 | this.portOverride_btn.Name = "portOverride_btn";
70 | this.portOverride_btn.UseVisualStyleBackColor = true;
71 | this.portOverride_btn.CheckedChanged += new System.EventHandler(this.portOverride_btn_CheckedChanged);
72 | //
73 | // port_label
74 | //
75 | resources.ApplyResources(this.port_label, "port_label");
76 | this.port_label.Name = "port_label";
77 | //
78 | // port_txtbox
79 | //
80 | resources.ApplyResources(this.port_txtbox, "port_txtbox");
81 | this.port_txtbox.Name = "port_txtbox";
82 | //
83 | // manualTest_btn
84 | //
85 | resources.ApplyResources(this.manualTest_btn, "manualTest_btn");
86 | this.manualTest_btn.ForeColor = System.Drawing.SystemColors.ControlText;
87 | this.manualTest_btn.Name = "manualTest_btn";
88 | this.manualTest_btn.UseVisualStyleBackColor = true;
89 | this.manualTest_btn.Click += new System.EventHandler(this.manualTest_btn_Click);
90 | //
91 | // protocolTesterListBox
92 | //
93 | this.protocolTesterListBox.FormattingEnabled = true;
94 | resources.ApplyResources(this.protocolTesterListBox, "protocolTesterListBox");
95 | this.protocolTesterListBox.Name = "protocolTesterListBox";
96 | this.protocolTesterListBox.ThreeDCheckBoxes = true;
97 | //
98 | // runTest_btn
99 | //
100 | resources.ApplyResources(this.runTest_btn, "runTest_btn");
101 | this.runTest_btn.Name = "runTest_btn";
102 | this.runTest_btn.UseVisualStyleBackColor = true;
103 | this.runTest_btn.Click += new System.EventHandler(this.runTest_btn_Click);
104 | //
105 | // selectAll_rbtn
106 | //
107 | resources.ApplyResources(this.selectAll_rbtn, "selectAll_rbtn");
108 | this.selectAll_rbtn.Name = "selectAll_rbtn";
109 | this.selectAll_rbtn.TabStop = true;
110 | this.selectAll_rbtn.UseVisualStyleBackColor = true;
111 | this.selectAll_rbtn.CheckedChanged += new System.EventHandler(this.selectAll_rbtn_CheckedChanged);
112 | this.selectAll_rbtn.Click += new System.EventHandler(this.selectAll_rbtn_Click);
113 | //
114 | // exportResults_btn
115 | //
116 | resources.ApplyResources(this.exportResults_btn, "exportResults_btn");
117 | this.exportResults_btn.Name = "exportResults_btn";
118 | this.exportResults_btn.UseVisualStyleBackColor = true;
119 | this.exportResults_btn.Click += new System.EventHandler(this.exportResults_btn_Click);
120 | //
121 | // PortTester
122 | //
123 | resources.ApplyResources(this, "$this");
124 | this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
125 | this.Controls.Add(this.exportResults_btn);
126 | this.Controls.Add(this.selectAll_rbtn);
127 | this.Controls.Add(this.runTest_btn);
128 | this.Controls.Add(this.protocolTesterListBox);
129 | this.Controls.Add(this.manualTest_btn);
130 | this.Controls.Add(this.port_txtbox);
131 | this.Controls.Add(this.port_label);
132 | this.Controls.Add(this.portOverride_btn);
133 | this.Controls.Add(this.target_txtbox);
134 | this.Controls.Add(this.Target_label);
135 | this.Controls.Add(this.results_txtbox);
136 | this.Controls.Add(this.results_label);
137 | this.Cursor = System.Windows.Forms.Cursors.Default;
138 | this.Name = "PortTester";
139 | this.Load += new System.EventHandler(this.PortTester_Load);
140 | this.ResumeLayout(false);
141 | this.PerformLayout();
142 |
143 | }
144 |
145 | #endregion
146 |
147 | private System.Windows.Forms.Label results_label;
148 | private System.Windows.Forms.TextBox results_txtbox;
149 | private System.Windows.Forms.Label Target_label;
150 | private System.Windows.Forms.TextBox target_txtbox;
151 | private System.Windows.Forms.CheckBox portOverride_btn;
152 | private System.Windows.Forms.Label port_label;
153 | private System.Windows.Forms.TextBox port_txtbox;
154 | private System.Windows.Forms.Button manualTest_btn;
155 | private System.Windows.Forms.CheckedListBox protocolTesterListBox;
156 | private System.Windows.Forms.Button runTest_btn;
157 | private System.Windows.Forms.RadioButton selectAll_rbtn;
158 | private System.Windows.Forms.Button exportResults_btn;
159 | }
160 | }
--------------------------------------------------------------------------------
/PortTester.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Drawing;
3 | using System.Net.Sockets;
4 | using System.Threading;
5 | using System.Threading.Tasks;
6 | using System.Windows.Forms;
7 |
8 | namespace ADReplStatus
9 | {
10 | public partial class PortTester : Form
11 | {
12 | bool g_checkAll_rbtn_isChecked = false;
13 | bool g_tnc_firstRun_onMulti = false;
14 | public PortTester()
15 | {
16 | InitializeComponent();
17 | this.target_txtbox.Text = $"{ADReplStatusForm.gTarget.ToString()}";
18 | portProtocolList();
19 | }
20 |
21 | private void portOverride_btn_CheckedChanged(object sender, EventArgs e)
22 | {
23 | if(this.port_label.Visible == false)
24 | {
25 | this.port_label.Visible = true;
26 | this.port_txtbox.Visible = true;
27 | this.manualTest_btn.Visible = true;
28 | }
29 | else
30 | {
31 | this.port_label.Visible = false;
32 | this.port_txtbox.Visible = false;
33 | this.manualTest_btn.Visible = false;
34 | }
35 | }
36 |
37 | private void portProtocolList()
38 | {
39 | this.protocolTesterListBox.CheckOnClick = true;
40 |
41 | string rpcEpmString = "Remote Procedure Call // EndpointMapper";
42 | string ldapString = "LDAP";
43 | string ldapSSLString = "LDAP SSL";
44 | string dnsString = "Domain Name Service";
45 | string globalCatalogLDAPString = "Global Catalog LDAP";
46 | string globalCatalogLDAPSSLString = "Global Catalog LDAP SSL";
47 | string kerberosString = "Kerberos authentication";
48 | string smbString = "SMB, NetLogon, SamR";
49 |
50 | string[] stringArray;
51 | stringArray = new string[] { rpcEpmString, ldapString, ldapSSLString, dnsString, globalCatalogLDAPString, globalCatalogLDAPSSLString, kerberosString, smbString };
52 |
53 | foreach(String s in stringArray)
54 | {
55 | this.protocolTesterListBox.Items.Add(s);
56 | }
57 |
58 | }
59 |
60 | private async void manualTest_btn_Click(object sender, EventArgs e)
61 | {
62 | if(this.port_txtbox.Text == "" || this.port_txtbox.Text == null)
63 | {
64 | string errorMessage = "When using the manual test method you MUST provide a port to test with!";
65 | MessageBox.Show(errorMessage, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
66 | return;
67 | }
68 |
69 | try
70 | {
71 | Int32 port = Int32.Parse(this.port_txtbox.Text);
72 | await testNetConnection(this.target_txtbox.Text, port, false);
73 | }
74 | catch
75 | {
76 | //Do nothing, the exception should've already been caught in testNetConnection
77 | }
78 | }
79 |
80 | private async Task testNetConnection(string target, Int32 port, bool isMulti)
81 | {
82 | if(g_tnc_firstRun_onMulti && isMulti)
83 | {
84 | this.results_txtbox.Text = "";
85 | }
86 | else if(!isMulti)
87 | {
88 | this.results_txtbox.Text = "";
89 | }
90 |
91 | try
92 | {
93 | Socket client = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
94 |
95 | this.results_txtbox.AppendText($"Testing TCP connection to {target} on port {port}:{Environment.NewLine}");
96 | await client.ConnectAsync(target, port);
97 |
98 | if (ADReplStatusForm.gLoggingEnabled)
99 | {
100 | System.IO.File.AppendAllText(ADReplStatusForm.gLogfileName, $"[{DateTime.Now}] Connection to {target} was successful on {port}{Environment.NewLine}");
101 | }
102 |
103 | string successMessage = $"Connection successful! {Environment.NewLine}===========================";
104 | this.results_txtbox.AppendText(successMessage);
105 | this.results_txtbox.AppendText($"{Environment.NewLine}Local IP Address: {client.LocalEndPoint.ToString()}{Environment.NewLine}");
106 | this.results_txtbox.AppendText($"{Environment.NewLine}Remote IP Address: {client.RemoteEndPoint.ToString()}{Environment.NewLine}{Environment.NewLine}");
107 |
108 | new Thread(() => client.Disconnect(true));
109 |
110 | }
111 | catch (Exception ex)
112 | {
113 | string errorMessage = $"ERROR: Connection to {target} using port {port} failed!{Environment.NewLine}{Environment.NewLine}{ex.Message}{Environment.NewLine}";
114 | this.results_txtbox.AppendText($"{Environment.NewLine}{errorMessage}{Environment.NewLine}");
115 |
116 | if (ADReplStatusForm.gLoggingEnabled)
117 | {
118 | System.IO.File.AppendAllText(ADReplStatusForm.gLogfileName, $"[{DateTime.Now}] {errorMessage}\n");
119 | }
120 | }
121 | }
122 |
123 | private void selectAll_rbtn_CheckedChanged(object sender, EventArgs e)
124 | {
125 | g_checkAll_rbtn_isChecked = this.selectAll_rbtn.Checked;
126 | }
127 |
128 | private void selectAll_rbtn_Click(object sender, EventArgs e)
129 | {
130 | if(selectAll_rbtn.Checked && !g_checkAll_rbtn_isChecked)
131 | {
132 | selectAll_rbtn.Checked = false;
133 | for (int i = 0; i < this.protocolTesterListBox.Items.Count; i++)
134 | {
135 | this.protocolTesterListBox.SetItemChecked(i, false);
136 | }
137 | }
138 | else
139 | {
140 | selectAll_rbtn.Checked = true;
141 | g_checkAll_rbtn_isChecked = false;
142 | for (int i = 0; i < this.protocolTesterListBox.Items.Count; i++)
143 | {
144 | this.protocolTesterListBox.SetItemChecked(i, true);
145 | }
146 | }
147 | }
148 |
149 | private async void runTest_btn_Click(object sender, EventArgs e)
150 | {
151 |
152 | Int32 rpcEpmPort = 135;
153 | Int32 ldapPort = 389;
154 | Int32 ldapSSLPort = 636;
155 | Int32 globalCatalogLDAPPort = 3268;
156 | Int32 globalCatalogLDAPSSLPort = 3269;
157 | Int32 kerberosPort = 88;
158 | Int32 dnsPort = 53;
159 | Int32 smbPort = 445;
160 |
161 | try
162 | {
163 | g_tnc_firstRun_onMulti = true;
164 | foreach (var item in protocolTesterListBox.CheckedItems)
165 | {
166 | string protocolname = item.ToString();
167 | Int32 selectedPort;
168 | switch (protocolname)
169 | {
170 | case "Remote Procedure Call // EndpointMapper":
171 | selectedPort = rpcEpmPort;
172 | break;
173 | case "LDAP":
174 | selectedPort = ldapPort;
175 | break;
176 | case "LDAP SSL":
177 | selectedPort = ldapSSLPort;
178 | break;
179 | case "Domain Name Service":
180 | selectedPort = dnsPort;
181 | break;
182 | case "Global Catalog LDAP":
183 | selectedPort = globalCatalogLDAPPort;
184 | break;
185 | case "Global Catalog LDAP SSL":
186 | selectedPort = globalCatalogLDAPSSLPort;
187 | break;
188 | case "Kerberos authentication":
189 | selectedPort = kerberosPort;
190 | break;
191 | case "SMB, NetLogon, SamR":
192 | selectedPort = smbPort;
193 | break;
194 | default:
195 | return;
196 | }
197 | await testNetConnection(this.target_txtbox.Text, selectedPort, true);
198 | g_tnc_firstRun_onMulti = false;
199 | }
200 | }
201 | catch(Exception ex)
202 | {
203 | MessageBox.Show($"{ex.Message}", "ERROR", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
204 | g_tnc_firstRun_onMulti = false;
205 | }
206 |
207 | }
208 |
209 | private void exportResults_btn_Click(object sender, EventArgs e)
210 | {
211 | if(results_txtbox.Text.Length <= 0)
212 | {
213 | new Thread(() => MessageBox.Show("Cannot export an empty results report!", "No results available", MessageBoxButtons.OK, MessageBoxIcon.Exclamation)).Start();
214 | }
215 | else
216 | {
217 | try
218 | {
219 | System.IO.File.WriteAllLines("PortTester_Results.txt", results_txtbox.Lines);
220 | new Thread(() => MessageBox.Show($"Results exported to: {Application.StartupPath.ToString()}\\PortTester_Results.txt", "Successfl export", MessageBoxButtons.OK, MessageBoxIcon.Information)).Start();
221 | }
222 | catch(Exception ex)
223 | {
224 | MessageBox.Show($"{ex.Message}", "ERROR", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
225 | }
226 | }
227 | }
228 |
229 | private void PortTester_Load(object sender, EventArgs e)
230 | {
231 | if (ADReplStatusForm.gDarkMode == true)
232 | {
233 | this.BackColor = Color.FromArgb(32, 32, 32);
234 |
235 | foreach (var control in this.Controls)
236 | {
237 | if (control is Label)
238 | {
239 | ((Label)control).BackColor = Color.FromArgb(32, 32, 32);
240 |
241 | ((Label)control).ForeColor = Color.White;
242 | }
243 | else if (control is TextBox)
244 | {
245 | ((TextBox)control).BackColor = Color.FromArgb(32, 32, 32);
246 |
247 | ((TextBox)control).ForeColor = Color.White;
248 | }
249 | else if (control is Button)
250 | {
251 | ((Button)control).BackColor = Color.FromArgb(32, 32, 32);
252 |
253 | ((Button)control).ForeColor = Color.White;
254 | }
255 | else if (control is CheckBox)
256 | {
257 | ((CheckBox)control).BackColor = Color.FromArgb(32, 32, 32);
258 |
259 | ((CheckBox)control).ForeColor = Color.White;
260 | }
261 | else if (control is RadioButton)
262 | {
263 | ((RadioButton)control).BackColor = Color.FromArgb(32, 32, 32);
264 |
265 | ((RadioButton)control).ForeColor = Color.White;
266 | }
267 | else if (control is ListBox)
268 | {
269 | ((ListBox)control).BackColor = Color.FromArgb(32, 32, 32);
270 |
271 | ((ListBox)control).ForeColor = Color.White;
272 | }
273 | }
274 | }
275 | }
276 | }
277 | }
278 |
--------------------------------------------------------------------------------
/PortTester.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 | True
123 |
124 |
125 |
126 | Consolas, 8.25pt, style=Bold, Underline
127 |
128 |
129 | 321, 14
130 |
131 |
132 | 55, 13
133 |
134 |
135 | 0
136 |
137 |
138 | RESULTS:
139 |
140 |
141 | results_label
142 |
143 |
144 | System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
145 |
146 |
147 | $this
148 |
149 |
150 | 11
151 |
152 |
153 | 324, 31
154 |
155 |
156 | True
157 |
158 |
159 |
160 | Vertical
161 |
162 |
163 | 231, 208
164 |
165 |
166 | 1
167 |
168 |
169 | results_txtbox
170 |
171 |
172 | System.Windows.Forms.TextBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
173 |
174 |
175 | $this
176 |
177 |
178 | 10
179 |
180 |
181 | True
182 |
183 |
184 | Consolas, 8.25pt
185 |
186 |
187 | 6, 34
188 |
189 |
190 | 49, 13
191 |
192 |
193 | 18
194 |
195 |
196 | Target:
197 |
198 |
199 | Target_label
200 |
201 |
202 | System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
203 |
204 |
205 | $this
206 |
207 |
208 | 9
209 |
210 |
211 | 6, 51
212 |
213 |
214 | 258, 20
215 |
216 |
217 | 19
218 |
219 |
220 | target_txtbox
221 |
222 |
223 | System.Windows.Forms.TextBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
224 |
225 |
226 | $this
227 |
228 |
229 | 8
230 |
231 |
232 | True
233 |
234 |
235 | Consolas, 8.25pt
236 |
237 |
238 | 6, 7
239 |
240 |
241 | No
242 |
243 |
244 | 146, 17
245 |
246 |
247 | 20
248 |
249 |
250 | Manual Port Override
251 |
252 |
253 | MiddleRight
254 |
255 |
256 | portOverride_btn
257 |
258 |
259 | System.Windows.Forms.CheckBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
260 |
261 |
262 | $this
263 |
264 |
265 | 7
266 |
267 |
268 | True
269 |
270 |
271 | Consolas, 8.25pt
272 |
273 |
274 | 158, 7
275 |
276 |
277 | 37, 13
278 |
279 |
280 | 21
281 |
282 |
283 | Port:
284 |
285 |
286 | False
287 |
288 |
289 | port_label
290 |
291 |
292 | System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
293 |
294 |
295 | $this
296 |
297 |
298 | 6
299 |
300 |
301 | 161, 26
302 |
303 |
304 | 68, 20
305 |
306 |
307 | 22
308 |
309 |
310 | False
311 |
312 |
313 | port_txtbox
314 |
315 |
316 | System.Windows.Forms.TextBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
317 |
318 |
319 | $this
320 |
321 |
322 | 5
323 |
324 |
325 | Consolas, 8.25pt
326 |
327 |
328 | NoControl
329 |
330 |
331 | 64, 25
332 |
333 |
334 | 91, 23
335 |
336 |
337 | 23
338 |
339 |
340 | Test port
341 |
342 |
343 | False
344 |
345 |
346 | manualTest_btn
347 |
348 |
349 | System.Windows.Forms.Button, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
350 |
351 |
352 | $this
353 |
354 |
355 | 4
356 |
357 |
358 | 6, 100
359 |
360 |
361 | 312, 139
362 |
363 |
364 | 24
365 |
366 |
367 | protocolTesterListBox
368 |
369 |
370 | System.Windows.Forms.CheckedListBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
371 |
372 |
373 | $this
374 |
375 |
376 | 3
377 |
378 |
379 | 91, 245
380 |
381 |
382 | 104, 23
383 |
384 |
385 | 25
386 |
387 |
388 | Run Test
389 |
390 |
391 | runTest_btn
392 |
393 |
394 | System.Windows.Forms.Button, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
395 |
396 |
397 | $this
398 |
399 |
400 | 2
401 |
402 |
403 | True
404 |
405 |
406 | 9, 78
407 |
408 |
409 | 85, 17
410 |
411 |
412 | 26
413 |
414 |
415 | Select all
416 |
417 |
418 | selectAll_rbtn
419 |
420 |
421 | System.Windows.Forms.RadioButton, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
422 |
423 |
424 | $this
425 |
426 |
427 | 1
428 |
429 |
430 | NoControl
431 |
432 |
433 | 383, 245
434 |
435 |
436 | 104, 23
437 |
438 |
439 | 27
440 |
441 |
442 | Export results
443 |
444 |
445 | exportResults_btn
446 |
447 |
448 | System.Windows.Forms.Button, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
449 |
450 |
451 | $this
452 |
453 |
454 | 0
455 |
456 |
457 | True
458 |
459 |
460 | 6, 13
461 |
462 |
463 | 567, 270
464 |
465 |
466 | Consolas, 8.25pt
467 |
468 |
469 |
470 | AAABAAYAICAQAAEABADoAgAAZgAAABAQEAABAAQAKAEAAE4DAAAgIAAAAQAIAKgIAAB2BAAAEBAAAAEA
471 | CABoBQAAHg0AACAgAAABACAAqBAAAIYSAAAQEAAAAQAgAGgEAAAuIwAAKAAAACAAAABAAAAAAQAEAAAA
472 | AAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAIAAAACAgACAAAAAgACAAICAAACAgIAAwMDAAAAA
473 | /wAA/wAAAP//AP8AAAD/AP8A//8AAP///wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
474 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACP/////////////////wAAj/////////////////
475 | 8AAP//////+P/4/4/4/4//AACP93Bzh3dw93dz93dw/wAAj/f/h/eI9/eIh4eI9/8AAP/3j4eH/4eH/4
476 | f3+IePAACP94iH94iH9/iH94+H/wAAj/eHd/eHd/d3d/eHd/8AAP//+P//+P//////+P//AACP//j4j4
477 | ////iIiI///wAAj////4///////////48AAP///3d3T////3d1L///AACP//94+D//+P94j3///wAAj/
478 | //f4h/////f4h4/48AAP///3j4f/j//3j4f///AACP//93d3////93d3///wAAj/////////////////
479 | 8AAP////+IiIiIiIiP//+PAACP////////////////+AAAj///////d3V/////iIgAAP///////3j4L/
480 | //eHiIAACP//////9/iH///4/4iAAAj///////ePh///+P+AAAAP///////3d3f///j4AAAACP////j/
481 | //////+IgAAAAAj/////////////iIAAAAAPiIiIiIiIj4iIiPAAAAAAAAAAAAAAAAAAAAAAAAAAAP//
482 | //////////////////+AAAAHgAAAB4AAAAeAAAAHgAAAB4AAAAeAAAAHgAAAB4AAAAeAAAAHgAAAB4AA
483 | AAeAAAAHgAAAB4AAAAeAAAAHgAAAB4AAAAeAAAAHgAAAB4AAAAeAAAAHgAAAH4AAAD+AAAB/gAAAf4AA
484 | Af//////KAAAABAAAAAgAAAAAQAEAAAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAIAAAACA
485 | gACAAAAAgACAAICAAACAgIAAwMDAAAAA/wAA/wAAAP//AP8AAAD/AP8A//8AAP///wAAAAAAAAAAAHd3
486 | d3d3d3dwf/j//////3B///j4+P+PcH93f3d/d39wj3h4f3h/f4CId393f3d/cI/4//j/+P+Aj/iIiIiI
487 | /4CP///4////gI///3d///iAj///f3/4iICPj/93f/j4gI//////+IgAiIiIiIiI8AAAAAAAAAAAAP//
488 | AAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAwAAAAcAAP//
489 | AAAoAAAAIAAAAEAAAAABAAgAAAAAAAAEAAAAAAAAAAAAAAABAAAAAQAAAAAAAFxcXABjY2MAaWlpAHZ2
490 | dgCAgIAAhYWFAImJiQCOjo4AkpKSAKmpqQCurq4AsrKyALi4uAC+vr4Aw8PDAMbGxgDJyckAzc3NANLS
491 | 0gDV1dUA3t7eAOPj4wDk5OQA6urqAPX29gD3+PgA+fn5APv8/AD9/f0AAAAAAAAAAAAAAAAAAAAAAAAA
492 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
493 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
494 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
495 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
496 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
497 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
498 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
499 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
500 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
501 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
502 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
503 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
504 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
505 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
506 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA////AAAAAAAAAAAAAAAAAAAA
507 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
508 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQbGxsb
509 | GxsbGxsbGhoaGhoaGhoaGhoaGhoaGhoAAAAAFBsbGxsbGxsbGxsbGxsbGxoaGhoaGhoaGhoaGgAAAAAU
510 | GxsbGxsbGxsbGxsbGxsbGxoaGhoaGhoaGhoaAAAAABQbGwQDAgEBGwQDAgEBGwQDAgEBGgQDAgEBGhoA
511 | AAAAFBsbBRoYFQEbBRoYFQEbBRoYFQEaBRoYFQEaGgAAAAAUGxsFGBUUAhsFGBUUAhsFGBUUAhsFGBUU
512 | AhoaAAAAABQbGwgVFBAEGwgVFBAEGwgVFBAEGwgVFBAEGhoAAAAAFBsbCQkJCAgbCQkJCAgaCQkJCAga
513 | CQkJCAUbGgAAAAAUGxsbGxUbGxsbGxQbGxsbGxQbGhobGxQbGxoaAAAAABUbGxsbFBQUFRQUFRobGxsb
514 | FBQUFBQUFBsbGhoAAAAAFBsbGxsbGxsUGxsbGxsbGxsbGxsUGxsbGxsbGgAAAAAUGxsbGxsFAwIBARsb
515 | GxsbGxsEAwIBARsbGxsbAAAAABUbGxsbGwUaGBUBGxsbGxsbGwUaGBUBGxsbGxsAAAAAFBsbGxsbCBgV
516 | FAIbGxsbGxsbCBgVFAIbGxsbGwAAAAAUGxsbGxsIFRQQBRsbGxsbGxsIFRQQBBsbGxsbAAAAABUbGxsb
517 | GwkJCQgFGxsbGxsbGwkJCAgIGhsbGxsAAAAAFBsbGxsbGxsUGxsbGxsbGxsbGxsVGhsbGxsbGwAAAAAU
518 | GxsbGxsbGxUUFRQVFBUUFRQVFBQbGxsbGxsbAAAAABUbGxsbGxsbGxsbGxsbFBsbGxsbGxsbGxsbGxQA
519 | AAAAFBsbGxsbGxsbGxsbBQMCAgEbGxsbGxsbFRIODQAAAAAUGxsbGxsbGxsbGxsFGhgVARsbGxsbDQsK
520 | CwsNAAAAABUbGxsbGxsbGxsbGwgYFRQCGxsbGxsSGhgVDQwAAAAAFBsbGxsbGxsbGxsbCBUUEAQbGxsb
521 | GxIbGBIAAAAAAAAUGxsbGxsbGxsbGxsJCQkICBsbGxsbFBUSAAAAAAAAABUbGxsbGxsbGxsbGxsbGxsb
522 | GxsbGxgQEgAAAAAAAAAAFBsbGxsbGxsbGxsbGxsbGxsbGxsbFQ0MAAAAAAAAAAAUFRQVFBUUFRQVFBUU
523 | FRQVFBUUFRQSAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/////////////
524 | ////////gAAAB4AAAAeAAAAHgAAAB4AAAAeAAAAHgAAAB4AAAAeAAAAHgAAAB4AAAAeAAAAHgAAAB4AA
525 | AAeAAAAHgAAAB4AAAAeAAAAHgAAAB4AAAAeAAAAHgAAAB4AAAB+AAAA/gAAAf4AAAH+AAAH//////ygA
526 | AAAQAAAAIAAAAAEACAAAAAAAAAEAAAAAAAAAAAAAAAEAAAABAAAAAAAAZGRkAG5ubgB2dnYAenp6AIaG
527 | hgCJiYkAkZGRAJ2dnQCsrKwAsrKyALm5uQC9vb0AwMDAAMXFxQDKysoAzc3NAN/f4ADl5eYA6urqAOzt
528 | 7ADw8fIA8vL0APP09QD09fUA9vf4APf4+QD5+foA+/v8APv8/AD+/v4AAAAAAAAAAAAAAAAAAAAAAAAA
529 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
530 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
531 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
532 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
533 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
534 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
535 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
536 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
537 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
538 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
539 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
540 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
541 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
542 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
543 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD///8AAAAAAAAAAAAAAAAAAAAAAAQE
544 | BAQEBAQEBAQEBAQEBAAFFRUVFRUVFRUZFRoZGgUABxUVFRUVGRUaGRoZGhoHAAgVAwIBFQQCARUEAgEa
545 | CAAJFQYVBBUGFQQaBhUEGgkACRUHBwYaBwcGGgcHBhoKAAoZGRAZGRoQGhoaEBoaCgAKFRoQEBAQEBAQ
546 | EBAaGgsADBoZGhoaGhAaGhoaGhoMAAwaGhoaGgQCARoaGhQRDAAMGhoaGhoGGQQaGg0LCwwADBoaGhoa
547 | CAcGGhoQFQwSAA0aGhoaGhoaGhoaEAwUAAANDQ4ODQ4ODQ4ODQ0ZAAAAAAAAAAAAAAAAAAAAAAAAAP//
548 | AAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAwAAAAcAAP//
549 | AAAoAAAAIAAAAEAAAAABACAAAAAAAIAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
550 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
551 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
552 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
553 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
554 | AAAAAAAIAAAAGAAAACAAAAAgAAAAIAAAACAAAAAgAAAAIAAAACAAAAAgAAAAIAAAACAAAAAgAAAAIAAA
555 | ACAAAAAgAAAAIAAAACAAAAAgAAAAIAAAACAAAAAgAAAAIAAAACAAAAAgAAAAIAAAACAAAAAgAAAAGAAA
556 | AAgAAAAAAAAAAAAAABgAAABIAAAAYAAAAGAAAABgAAAAYAAAAGAAAABgAAAAYAAAAGAAAABgAAAAYAAA
557 | AGAAAABgAAAAYAAAAGAAAABgAAAAYAAAAGAAAABgAAAAYAAAAGAAAABgAAAAYAAAAGAAAABgAAAAYAAA
558 | AGAAAABIAAAAGAAAAAAAAAAA1tbW//j5+f/4+fn/+Pn5//j5+f/4+fn/+Pn5//j5+f/4+fn/+Pj4//j4
559 | +P/3+Pj/9/j4//f4+P/3+Pj/9/j4//f39//29/f/9vf3//b39//29/f/9vf3//b39//29/f/9fb2//X2
560 | 9v/19vb/9fb2/wAAAGAAAAAgAAAAAAAAAADW1tb/+fr6//n6+v/5+vr/+fr6//n6+v/5+vr/+fr6//n5
561 | +f/5+fn/+Pn5//j5+f/4+fn/+Pn5//j4+P/4+Pj/9/j4//f4+P/3+Pj/9/j4//f4+P/39/f/9vf3//b3
562 | 9//29/f/9vf3//b39//29/f/AAAAYAAAACAAAAAAAAAAANbW1v/6+vr/+fr6//r6+v/5+vr/+vr6//n6
563 | +v/5+vr/+fr6//n5+f/5+fn/+fn5//j5+f/4+fn/+Pn5//j4+P/4+Pj/9/j4//f4+P/3+Pj/9/j4//f4
564 | +P/39/f/9vf3//b39//29/f/9vf3//b39/8AAABgAAAAIAAAAAAAAAAA1tbW//r6+v/6+vr/dnZ2/2lp
565 | af9jY2P/XV1d/1xcXP/5+vr/dnZ2/2lpaf9jY2P/XV1d/1xcXP/4+fn/dnZ2/2lpaf9jY2P/XV1d/1xc
566 | XP/3+Pj/dnZ2/2lpaf9jY2P/XV1d/1xcXP/29/f/9vf3/wAAAGAAAAAgAAAAAAAAAADW1tb/+vv7//r6
567 | +v+AgID/9vb2/+vr6//f39//XFxc//r6+v+AgID/9vb2/+vr6//f39//XFxc//j5+f+AgID/9vb2/+vr
568 | 6//f39//XFxc//f4+P+AgID/9vb2/+vr6//f39//XFxc//b39//29/f/AAAAYAAAACAAAAAAAAAAANbW
569 | 1v/6+/v/+vv7/4WFhf/r6+v/39/f/9LS0v9jY2P/+vr6/4WFhf/r6+v/39/f/9LS0v9jY2P/+fn5/4WF
570 | hf/r6+v/39/f/9LS0v9jY2P/+Pj4/4WFhf/r6+v/39/f/9LS0v9jY2P/9/f3//b39/8AAABgAAAAIAAA
571 | AAAAAAAA1tbW//v7+//6+/v/ioqK/9/f3//S0tL/x8fH/3Z2dv/6+vr/ioqK/9/f3//S0tL/x8fH/3Z2
572 | dv/5+fn/ioqK/9/f3//S0tL/x8fH/3Z2dv/4+Pj/ioqK/9/f3//S0tL/x8fH/3Z2dv/3+Pj/9/f3/wAA
573 | AGAAAAAgAAAAAAAAAADW1tb/+/v7//v7+/+Tk5P/kpKS/5GRkf+Ojo7/iIiI//r7+/+Tk5P/kpKS/5GR
574 | kf+Ojo7/iIiI//n6+v+Tk5P/kpKS/5GRkf+Ojo7/iIiI//j5+f+Tk5P/kpKS/5GRkf+Ojo7/iIiI//f4
575 | +P/3+Pj/AAAAYAAAACAAAAAAAAAAANbW1v/7+/v/+/v7//v7+//7+/v/1tbW//v7+//7+/v/+/v7//r7
576 | +//6+/v/1tbW//r6+v/6+vr/+fr6//n6+v/5+vr/1tbW//n5+f/4+fn/+Pn5//j5+f/4+fn/1tbW//j4
577 | +P/3+Pj/9/j4//f4+P8AAABgAAAAIAAAAAAAAAAA1tbW//v8/P/7+/v/+/z8//v7+//W1tb/1tbW/9bW
578 | 1v/W1tb/1tbW/9bW1v/W1tb/+vr6//r6+v/6+vr/+fr6//n6+v/W1tb/1tbW/9bW1v/W1tb/1tbW/9bW
579 | 1v/W1tb/+Pj4//j4+P/3+Pj/9/j4/wAAAGAAAAAgAAAAAAAAAADW1tb/+/z8//v8/P/7/Pz/+/z8//v8
580 | /P/7/Pz/+/v7/9bW1v/7+/v/+/v7//r7+//6+/v/+vr6//r6+v/6+vr/+fr6//n6+v/5+vr/+fn5/9bW
581 | 1v/5+fn/+Pn5//j5+f/4+fn/+Pj4//j4+P/3+Pj/AAAAYAAAACAAAAAAAAAAANbW1v/8/Pz//Pz8//z8
582 | /P/8/Pz//Pz8/3Z2dv9paWn/Y2Nj/11dXf9cXFz/+/v7//r7+//6+/v/+vv7//r6+v/6+vr/+vr6/3Z2
583 | dv9paWn/Y2Nj/11dXf9cXFz/+Pn5//j5+f/4+fn/+Pn5//j4+P8AAABgAAAAIAAAAAAAAAAA1tbW//z8
584 | /P/8/Pz//Pz8//z8/P/8/Pz/gICA//b29v/r6+v/39/f/1xcXP/7+/v/+/v7//v7+//6+/v/+vv7//r6
585 | +v/6+vr/gICA//b29v/r6+v/39/f/1xcXP/5+fn/+Pn5//j5+f/4+fn/+Pn5/wAAAGAAAAAgAAAAAAAA
586 | AADW1tb//Pz8//z8/P/8/Pz//Pz8//z8/P+FhYX/6+vr/9/f3//S0tL/Y2Nj//v7+//7+/v/+/v7//v7
587 | +//6+/v/+vv7//r6+v+FhYX/6+vr/9/f3//S0tL/Y2Nj//n5+f/5+fn/+Pn5//j5+f/4+fn/AAAAYAAA
588 | ACAAAAAAAAAAANbW1v/8/f3//Pz8//z9/f/8/Pz//P39/4qKiv/f39//0tLS/8fHx/92dnb/+/z8//v7
589 | +//7+/v/+/v7//v7+//6+/v/+vv7/4qKiv/f39//0tLS/8fHx/92dnb/+fr6//n5+f/5+fn/+fn5//j5
590 | +f8AAABgAAAAIAAAAAAAAAAA1tbW//39/f/8/f3//f39//z9/f/9/f3/k5OT/5KSkv+RkZH/jo6O/4iI
591 | iP/8/Pz/+/z8//v8/P/7+/v/+/v7//v7+//6+/v/k5OT/5KSkv+RkZH/jo6O/4iIiP/5+vr/+fr6//n6
592 | +v/5+fn/+fn5/wAAAGAAAAAgAAAAAAAAAADW1tb//f39//39/f/9/f3//f39//39/f/9/f3//P39/9bW
593 | 1v/8/Pz//Pz8//z8/P/8/Pz/+/z8//v8/P/7+/v/+/v7//v7+//7+/v/+vv7/9bW1v/6+vr/+vr6//r6
594 | +v/5+vr/+fr6//n6+v/5+fn/AAAAYAAAACAAAAAAAAAAANbW1v/9/f3//f39//39/f/9/f3//f39//39
595 | /f/9/f3/1tbW/9bW1v/W1tb/1tbW/9bW1v/W1tb/1tbW/9bW1v/W1tb/1tbW/9bW1v/W1tb/1tbW//r7
596 | +//6+vr/+vr6//r6+v/5+vr/+fr6//n6+v8AAABgAAAAIAAAAAAAAAAA1tbW//39/f/9/f3//f39//39
597 | /f/9/f3//f39//39/f/9/f3//P39//z9/f/8/Pz//Pz8//z8/P/W1tb//Pz8//v8/P/7+/v/+/v7//v7
598 | +//7+/v/+vv7//r7+//6+vr/+vr6//r6+v/5+vr/1NTU/wAAAGAAAAAgAAAAAAAAAADW1tb//f39//39
599 | /f/9/f3//f39//39/f/9/f3//f39//39/f/9/f3//f39//z9/f92dnb/aWlp/2NjY/9dXV3/XFxc//v8
600 | /P/7/Pz/+/v7//v7+//7+/v/+vv7//r7+//W1tb/zs7O/7+/v/+4uLj/AAAAVQAAABsAAAAAAAAAANbW
601 | 1v/9/f3//f39//39/f/9/f3//f39//39/f/9/f3//f39//39/f/9/f3//f39/4CAgP/29vb/6+vr/9/f
602 | 3/9cXFz//Pz8//v8/P/7/Pz/+/v7//v7+/+ysrL/q6ur/6mpqf+pqan/r6+v/7i4uP4AAAA3AAAADgAA
603 | AAAAAAAA1tbW//7+/v/9/f3//v7+//39/f/+/v7//f39//39/f/9/f3//f39//39/f/9/f3/hYWF/+vr
604 | 6//f39//0tLS/2NjY//8/Pz//Pz8//v8/P/7/Pz/+/v7/8bGxv/19fX/9PT0/+Pj4/+8vLz+ZGRkhAAA
605 | ABQAAAADAAAAAAAAAADW1tb//v7+//7+/v/+/v7//v7+//7+/v/+/v7//f7+//39/f/9/f3//f39//39
606 | /f+Kior/39/f/9LS0v/Hx8f/dnZ2//z8/P/8/Pz//Pz8//z8/P/7/Pz/zs7O//r6+v/r6+v/ysrK/m1t
607 | bX8AAAAXAAAAAwAAAAAAAAAAAAAAANbW1v/+/v7//v7+//7+/v/+/v7//v7+//7+/v/+/v7//f7+//39
608 | /f/9/f3//f39/5OTk/+SkpL/kZGR/46Ojv+IiIj//Pz8//z8/P/8/Pz//Pz8//z8/P/Nzc3/5OTk/8nJ
609 | yf5oaGh/AAAAFwAAAAMAAAAAAAAAAAAAAAAAAAAA1tbW//7+/v/+/v7//v7+//7+/v/+/v7//v7+//7+
610 | /v/+/v7//f7+//39/f/9/f3//f39//39/f/9/f3//f39//39/f/8/f3//Pz8//z8/P/8/Pz/6urq/8PD
611 | w//Hx8f+ZWVlfgAAABcAAAADAAAAAAAAAAAAAAAAAAAAAAAAAADW1tb//v7+//7+/v/+/v7//v7+//7+
612 | /v/+/v7//v7+//7+/v/+/v7//v7+//39/f/9/f3//f39//39/f/9/f3//f39//39/f/8/f3//Pz8//z8
613 | /P/c3Nz/v7+//mtra4IAAAAZAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANbW1v/W1tb/1tbW/9bW
614 | 1v/W1tb/1tbW/9bW1v/W1tb/1tbW/9bW1v/W1tb/1tbW/9bW1v/W1tb/1tbW/9bW1v/W1tb/1tbW/9bW
615 | 1v/W1tb/1tbW/8zMzPiCgoJvAAAAEgAAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
616 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
617 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP//
618 | ////////gAAAAYAAAAGAAAABgAAAAYAAAAGAAAABgAAAAYAAAAGAAAABgAAAAYAAAAGAAAABgAAAAYAA
619 | AAGAAAABgAAAAYAAAAGAAAABgAAAAYAAAAGAAAABgAAAAYAAAAGAAAABgAAAA4AAAAeAAAAPgAAAH4AA
620 | AD//////KAAAABAAAAAgAAAAAQAgAAAAAABABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
621 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB6enr/enp6/3p6
622 | ev96enr/enp6/3p6ev96enr/enp6/3p6ev96enr/enp6/3p6ev96enr/enp6/3p6ev8AAAAAhoaG//Dw
623 | 8v/w8PL/8PDy//Hx8//x8vP/8vL0//Pz9P/z9PX/9PX2//X19//29vf/9/f4//f4+f+Ghob/AAAAAJCQ
624 | kP/x8fP/8fHz//Hx8//x8vP/8vL0//Pz9f/z9PX/9PX2//X19//29vf/9/f4//f4+f/4+fr/kJCQ/wAA
625 | AACdnZ3/8vLz/3Z2dv9ubm7/ZGRk//Pz9f92dnb/bm5u/2RkZP/29vf/dnZ2/25ubv9kZGT/+fr6/52d
626 | nf8AAAAArKys//Ly9P+Kior/9PT0/3t7e//09PX/ioqK//T09P97e3v/9/f4/4qKiv/09PT/e3t7//r7
627 | +/+srKz/AAAAAK2trf/z8/X/k5OT/5CQkP+IiIj/9PX2/5OTk/+QkJD/iIiI//j4+f+Tk5P/kJCQ/4iI
628 | iP/7+/z/ra2t/wAAAACxsbH/9PT2//T09v/Nzc3/9fX2//X29//29/j/zc3N//j4+f/5+fr/+fr7/83N
629 | zf/7/Pz/+/z8/7Gxsf8AAAAAs7Oz//X19v/19fb/zc3N/83Nzf/Nzc3/zc3N/83Nzf/Nzc3/zc3N/83N
630 | zf/Nzc3/+/z9//z9/f+zs7P/AAAAALq6uv/3+Pn/9/j5//f4+f/4+fr/+fr6//r6+//Nzc3/+/z8//z9
631 | /f/8/f3//P39//3+/v/9/v7/uLi4/wAAAAC8vLz/+Pn6//j5+v/4+fr/+fr6//r6+/92dnb/bm5u/2Rk
632 | ZP/8/f3//f7+//3+/v/l5eb/39/g/7q6uv8AAAAAvb29//n6+v/5+vr/+fr6//r7+//7+/z/ioqK//T0
633 | 9P97e3v//f7+//3+/v+6urr/uLi4/7i4uP+6urr/AAAAAL+/v//6+/v/+vv7//r7+//7+/z/+/z8/5OT
634 | k/+QkJD/iIiI//3+/v/9/v7/xcXF//b29v+6urr/3d3dmwAAAADAwMD/+/v8//v7/P/7+/z/+/z8//z9
635 | /f/8/f3//f7+//3+/v/7/Pz//f7+/8rKyv+6urr/4+XipwAAAAAAAAAAwMDA/8DAwP/AwMD/wMDA/8DA
636 | wP/AwMD/wMDA/8DAwP/AwMD/wMDA/8DAwP+/v7//9fX1uQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
637 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD//wAAAAEAAAAB
638 | AAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAMAAAAHAAD//wAA
639 |
640 |
641 |
642 | ADReplStatus Port Tester
643 |
644 |
645 | PortTester
646 |
647 |
648 | System.Windows.Forms.Form, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
649 |
650 |
--------------------------------------------------------------------------------
/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 ADReplStatus
8 | {
9 | internal static class Program
10 | {
11 | ///
12 | /// The main entry point for the application.
13 | ///
14 | [STAThread]
15 | static void Main()
16 | {
17 | if (!System.IO.File.Exists("ObjectListView.dll"))
18 | {
19 | MessageBox.Show("Could not find ObjectListView.dll. Make sure the file resides in the same directory as this executable.", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
20 |
21 | return;
22 | }
23 |
24 | Application.EnableVisualStyles();
25 | Application.SetCompatibleTextRenderingDefault(false);
26 | Application.Run(new ADReplStatusForm());
27 | }
28 | }
29 | }
30 |
--------------------------------------------------------------------------------
/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("ADReplStatus")]
9 | [assembly: AssemblyDescription("Active Directory Replication Status Tool")]
10 | [assembly: AssemblyConfiguration("")]
11 | [assembly: AssemblyCompany("")]
12 | [assembly: AssemblyProduct("ADReplStatus")]
13 | [assembly: AssemblyCopyright("Copyright © Joseph Ryan Ries 2023")]
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("af7ee9dd-d7c5-409c-a1e9-78e1078f6a89")]
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.3.1.0")]
36 | [assembly: AssemblyFileVersion("1.3.1.0")]
37 |
--------------------------------------------------------------------------------
/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 ADReplStatus.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", "17.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("ADReplStatus.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 | /// Looks up a localized resource of type System.Drawing.Bitmap.
65 | ///
66 | internal static System.Drawing.Bitmap DomainController {
67 | get {
68 | object obj = ResourceManager.GetObject("DomainController", resourceCulture);
69 | return ((System.Drawing.Bitmap)(obj));
70 | }
71 | }
72 | }
73 | }
74 |
--------------------------------------------------------------------------------
/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 |
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 | ..\images\DomainController.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
123 |
124 |
--------------------------------------------------------------------------------
/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 ADReplStatus.Properties
12 | {
13 |
14 |
15 | [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
16 | [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "11.0.0.0")]
17 | internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase
18 | {
19 |
20 | private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings())));
21 |
22 | public static Settings Default
23 | {
24 | get
25 | {
26 | return defaultInstance;
27 | }
28 | }
29 | }
30 | }
31 |
--------------------------------------------------------------------------------
/Properties/Settings.settings:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # ADReplStatus
2 |
3 | Active Directory Replication Status Tool, aka ADREPLSTATUS
4 |
5 | Joseph Ryan Ries - 2023
6 |
7 |
8 |
9 |
10 | **This project is NOT supported or endorsed by Microsoft. I work for Microsoft, but this is a personal project.**
11 |
12 | **This tool is still very early in development. Right now I need beta testers to report bugs, submit feature requests, and send me screenshots of ADREPLSTATUS that I can post here in this README to spruce up the page.**
13 |
14 | I am rebuilding the AD Replication Status Tool. Here are my reasons:
15 |
16 | - The old version of the tool had a time bomb in it - an expiring SSL certificate - that rendered the app
17 | unusable sometime around September 2022. Only through great effort internally were we able to periodically renew
18 | this certificate and republish the app, and the app was architected in such a way that excising the signing
19 | certificate check was more work than just rewriting the whole thing. (I know about the Sirona DLL hack, but still.)
20 |
21 | - The old tool had no active maintainers and no one who was still around was familiar with the app's internals or source code.
22 |
23 | - The old tool was showing its age... I mean, that Office-style ribbon was straight out of the Windows Vista era, was it not?
24 | Plus it contained a bunch of outdated TechNet links. You might argue that WinForms is similarly old-fashioned, but I just so
25 | happen to think WinForms is and always was PEAK Windows UI.
26 |
27 | - Now we can maintain and improve this tool together. The Active Directory community.
28 |
29 | Here are some screenshots of what the tool looks like currently:
30 |
31 | 
32 |
33 | 
34 |
35 | 
36 |
37 | 
38 |
39 | 
40 |
41 | 
42 |
43 | This project currently targets .NET Framework 4.8.
44 |
45 | This project uses ObjectListView.Official 2.9.1 by Phillip Piper. This can be installed as a NuGet package directly from within
46 | the Visual Studio IDE, (which is what I did,) and it can also be downloaded separately here: https://objectlistview.sourceforge.net/cs/index.html
47 |
--------------------------------------------------------------------------------
/SetForestNameForm.Designer.cs:
--------------------------------------------------------------------------------
1 | namespace ADReplStatus
2 | {
3 | partial class SetForestNameForm
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(SetForestNameForm));
32 | this.EnterForestNameLabel = new System.Windows.Forms.Label();
33 | this.SetForestNameTextBox = new System.Windows.Forms.TextBox();
34 | this.SetForestNameButton = new System.Windows.Forms.Button();
35 | this.SaveForestCheckBox = new System.Windows.Forms.CheckBox();
36 | this.SuspendLayout();
37 | //
38 | // EnterForestNameLabel
39 | //
40 | this.EnterForestNameLabel.AutoSize = true;
41 | this.EnterForestNameLabel.Location = new System.Drawing.Point(12, 9);
42 | this.EnterForestNameLabel.Name = "EnterForestNameLabel";
43 | this.EnterForestNameLabel.Size = new System.Drawing.Size(303, 13);
44 | this.EnterForestNameLabel.TabIndex = 0;
45 | this.EnterForestNameLabel.Text = "Enter the name of the Active Directory forest you want to scan:";
46 | //
47 | // SetForestNameTextBox
48 | //
49 | this.SetForestNameTextBox.Location = new System.Drawing.Point(13, 29);
50 | this.SetForestNameTextBox.Name = "SetForestNameTextBox";
51 | this.SetForestNameTextBox.Size = new System.Drawing.Size(240, 20);
52 | this.SetForestNameTextBox.TabIndex = 1;
53 | //
54 | // SetForestNameButton
55 | //
56 | this.SetForestNameButton.Location = new System.Drawing.Point(322, 29);
57 | this.SetForestNameButton.Name = "SetForestNameButton";
58 | this.SetForestNameButton.Size = new System.Drawing.Size(75, 23);
59 | this.SetForestNameButton.TabIndex = 2;
60 | this.SetForestNameButton.Text = "OK";
61 | this.SetForestNameButton.UseVisualStyleBackColor = true;
62 | this.SetForestNameButton.Click += new System.EventHandler(this.SetForestNameButton_Click);
63 | //
64 | // SaveForestCheckBox
65 | //
66 | this.SaveForestCheckBox.AutoSize = true;
67 | this.SaveForestCheckBox.Location = new System.Drawing.Point(15, 56);
68 | this.SaveForestCheckBox.Name = "SaveForestCheckBox";
69 | this.SaveForestCheckBox.Size = new System.Drawing.Size(51, 17);
70 | this.SaveForestCheckBox.TabIndex = 3;
71 | this.SaveForestCheckBox.Text = "Save";
72 | this.SaveForestCheckBox.UseVisualStyleBackColor = true;
73 | //
74 | // SetForestNameForm
75 | //
76 | this.AcceptButton = this.SetForestNameButton;
77 | this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
78 | this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
79 | this.ClientSize = new System.Drawing.Size(406, 83);
80 | this.Controls.Add(this.SaveForestCheckBox);
81 | this.Controls.Add(this.SetForestNameButton);
82 | this.Controls.Add(this.SetForestNameTextBox);
83 | this.Controls.Add(this.EnterForestNameLabel);
84 | this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.Fixed3D;
85 | this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon")));
86 | this.MaximizeBox = false;
87 | this.MinimizeBox = false;
88 | this.Name = "SetForestNameForm";
89 | this.ShowInTaskbar = false;
90 | this.Text = "Enter AD Forest Name";
91 | this.Load += new System.EventHandler(this.SetForestNameForm_Load);
92 | this.ResumeLayout(false);
93 | this.PerformLayout();
94 |
95 | }
96 |
97 | #endregion
98 |
99 | private System.Windows.Forms.Label EnterForestNameLabel;
100 | private System.Windows.Forms.TextBox SetForestNameTextBox;
101 | private System.Windows.Forms.Button SetForestNameButton;
102 | private System.Windows.Forms.CheckBox SaveForestCheckBox;
103 | }
104 | }
--------------------------------------------------------------------------------
/SetForestNameForm.cs:
--------------------------------------------------------------------------------
1 | using Microsoft.Win32;
2 | using System;
3 | using System.Collections.Generic;
4 | using System.ComponentModel;
5 | using System.Data;
6 | using System.Drawing;
7 | using System.Linq;
8 | using System.Text;
9 | using System.Threading.Tasks;
10 | using System.Windows.Forms;
11 |
12 | namespace ADReplStatus
13 | {
14 | public partial class SetForestNameForm : Form
15 | {
16 | public SetForestNameForm()
17 | {
18 | InitializeComponent();
19 | }
20 |
21 | private void SetForestNameForm_Load(object sender, EventArgs e)
22 | {
23 | if (ADReplStatusForm.gDarkMode == true)
24 | {
25 | this.BackColor = Color.FromArgb(32, 32, 32);
26 |
27 | EnterForestNameLabel.BackColor = Color.FromArgb(32, 32, 32);
28 |
29 | EnterForestNameLabel.ForeColor = Color.White;
30 |
31 | SetForestNameTextBox.BackColor = Color.FromArgb(32, 32, 32);
32 |
33 | SetForestNameTextBox.ForeColor = Color.White;
34 |
35 | SetForestNameButton.BackColor = Color.FromArgb(32, 32, 32);
36 |
37 | SetForestNameButton.ForeColor = Color.White;
38 |
39 | SaveForestCheckBox.ForeColor = Color.White;
40 | }
41 | }
42 |
43 | private void SetForestNameButton_Click(object sender, EventArgs e)
44 | {
45 | if (SetForestNameTextBox.Text.Length > 0)
46 | {
47 | ADReplStatusForm.gForestName = SetForestNameTextBox.Text;
48 |
49 | if (SaveForestCheckBox.Checked)
50 | {
51 | try
52 | {
53 | var key = Registry.CurrentUser.CreateSubKey("SOFTWARE\\ADREPLSTATUS", true);
54 |
55 | if (key != null)
56 | {
57 | key.SetValue("ForestName", SetForestNameTextBox.Text);
58 |
59 | key.Dispose();
60 | }
61 | }
62 | catch (Exception ex)
63 | {
64 | string errorMessage = $"ERROR: Failed to write to the HKCU\\ADREPLSTATUS registry key!\n{ex.Message}\n";
65 |
66 | MessageBox.Show(errorMessage, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
67 |
68 | if (ADReplStatusForm.gLoggingEnabled)
69 | {
70 | System.IO.File.AppendAllText(ADReplStatusForm.gLogfileName, $"[{DateTime.Now}] {errorMessage}\n");
71 | }
72 | }
73 | }
74 |
75 | if (ADReplStatusForm.gLoggingEnabled)
76 | {
77 | System.IO.File.AppendAllText(ADReplStatusForm.gLogfileName, $"[{DateTime.Now}] Forest name set to: {ADReplStatusForm.gForestName}\n");
78 | }
79 |
80 | this.Dispose();
81 | }
82 | }
83 | }
84 | }
85 |
--------------------------------------------------------------------------------
/SetForestNameForm.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 | AAABAAYAICAQAAEABADoAgAAZgAAABAQEAABAAQAKAEAAE4DAAAgIAAAAQAIAKgIAAB2BAAAEBAAAAEA
124 | CABoBQAAHg0AACAgAAABACAAqBAAAIYSAAAQEAAAAQAgAGgEAAAuIwAAKAAAACAAAABAAAAAAQAEAAAA
125 | AAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAIAAAACAgACAAAAAgACAAICAAACAgIAAwMDAAAAA
126 | /wAA/wAAAP//AP8AAAD/AP8A//8AAP///wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
127 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACP/////////////////wAAj/////////////////
128 | 8AAP//////+P/4/4/4/4//AACP93Bzh3dw93dz93dw/wAAj/f/h/eI9/eIh4eI9/8AAP/3j4eH/4eH/4
129 | f3+IePAACP94iH94iH9/iH94+H/wAAj/eHd/eHd/d3d/eHd/8AAP//+P//+P//////+P//AACP//j4j4
130 | ////iIiI///wAAj////4///////////48AAP///3d3T////3d1L///AACP//94+D//+P94j3///wAAj/
131 | //f4h/////f4h4/48AAP///3j4f/j//3j4f///AACP//93d3////93d3///wAAj/////////////////
132 | 8AAP////+IiIiIiIiP//+PAACP////////////////+AAAj///////d3V/////iIgAAP///////3j4L/
133 | //eHiIAACP//////9/iH///4/4iAAAj///////ePh///+P+AAAAP///////3d3f///j4AAAACP////j/
134 | //////+IgAAAAAj/////////////iIAAAAAPiIiIiIiIj4iIiPAAAAAAAAAAAAAAAAAAAAAAAAAAAP//
135 | //////////////////+AAAAHgAAAB4AAAAeAAAAHgAAAB4AAAAeAAAAHgAAAB4AAAAeAAAAHgAAAB4AA
136 | AAeAAAAHgAAAB4AAAAeAAAAHgAAAB4AAAAeAAAAHgAAAB4AAAAeAAAAHgAAAH4AAAD+AAAB/gAAAf4AA
137 | Af//////KAAAABAAAAAgAAAAAQAEAAAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAIAAAACA
138 | gACAAAAAgACAAICAAACAgIAAwMDAAAAA/wAA/wAAAP//AP8AAAD/AP8A//8AAP///wAAAAAAAAAAAHd3
139 | d3d3d3dwf/j//////3B///j4+P+PcH93f3d/d39wj3h4f3h/f4CId393f3d/cI/4//j/+P+Aj/iIiIiI
140 | /4CP///4////gI///3d///iAj///f3/4iICPj/93f/j4gI//////+IgAiIiIiIiI8AAAAAAAAAAAAP//
141 | AAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAwAAAAcAAP//
142 | AAAoAAAAIAAAAEAAAAABAAgAAAAAAAAEAAAAAAAAAAAAAAABAAAAAQAAAAAAAFxcXABjY2MAaWlpAHZ2
143 | dgCAgIAAhYWFAImJiQCOjo4AkpKSAKmpqQCurq4AsrKyALi4uAC+vr4Aw8PDAMbGxgDJyckAzc3NANLS
144 | 0gDV1dUA3t7eAOPj4wDk5OQA6urqAPX29gD3+PgA+fn5APv8/AD9/f0AAAAAAAAAAAAAAAAAAAAAAAAA
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 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA////AAAAAAAAAAAAAAAAAAAA
160 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
161 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQbGxsb
162 | GxsbGxsbGhoaGhoaGhoaGhoaGhoaGhoAAAAAFBsbGxsbGxsbGxsbGxsbGxoaGhoaGhoaGhoaGgAAAAAU
163 | GxsbGxsbGxsbGxsbGxsbGxoaGhoaGhoaGhoaAAAAABQbGwQDAgEBGwQDAgEBGwQDAgEBGgQDAgEBGhoA
164 | AAAAFBsbBRoYFQEbBRoYFQEbBRoYFQEaBRoYFQEaGgAAAAAUGxsFGBUUAhsFGBUUAhsFGBUUAhsFGBUU
165 | AhoaAAAAABQbGwgVFBAEGwgVFBAEGwgVFBAEGwgVFBAEGhoAAAAAFBsbCQkJCAgbCQkJCAgaCQkJCAga
166 | CQkJCAUbGgAAAAAUGxsbGxUbGxsbGxQbGxsbGxQbGhobGxQbGxoaAAAAABUbGxsbFBQUFRQUFRobGxsb
167 | FBQUFBQUFBsbGhoAAAAAFBsbGxsbGxsUGxsbGxsbGxsbGxsUGxsbGxsbGgAAAAAUGxsbGxsFAwIBARsb
168 | GxsbGxsEAwIBARsbGxsbAAAAABUbGxsbGwUaGBUBGxsbGxsbGwUaGBUBGxsbGxsAAAAAFBsbGxsbCBgV
169 | FAIbGxsbGxsbCBgVFAIbGxsbGwAAAAAUGxsbGxsIFRQQBRsbGxsbGxsIFRQQBBsbGxsbAAAAABUbGxsb
170 | GwkJCQgFGxsbGxsbGwkJCAgIGhsbGxsAAAAAFBsbGxsbGxsUGxsbGxsbGxsbGxsVGhsbGxsbGwAAAAAU
171 | GxsbGxsbGxUUFRQVFBUUFRQVFBQbGxsbGxsbAAAAABUbGxsbGxsbGxsbGxsbFBsbGxsbGxsbGxsbGxQA
172 | AAAAFBsbGxsbGxsbGxsbBQMCAgEbGxsbGxsbFRIODQAAAAAUGxsbGxsbGxsbGxsFGhgVARsbGxsbDQsK
173 | CwsNAAAAABUbGxsbGxsbGxsbGwgYFRQCGxsbGxsSGhgVDQwAAAAAFBsbGxsbGxsbGxsbCBUUEAQbGxsb
174 | GxIbGBIAAAAAAAAUGxsbGxsbGxsbGxsJCQkICBsbGxsbFBUSAAAAAAAAABUbGxsbGxsbGxsbGxsbGxsb
175 | GxsbGxgQEgAAAAAAAAAAFBsbGxsbGxsbGxsbGxsbGxsbGxsbFQ0MAAAAAAAAAAAUFRQVFBUUFRQVFBUU
176 | FRQVFBUUFRQSAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/////////////
177 | ////////gAAAB4AAAAeAAAAHgAAAB4AAAAeAAAAHgAAAB4AAAAeAAAAHgAAAB4AAAAeAAAAHgAAAB4AA
178 | AAeAAAAHgAAAB4AAAAeAAAAHgAAAB4AAAAeAAAAHgAAAB4AAAB+AAAA/gAAAf4AAAH+AAAH//////ygA
179 | AAAQAAAAIAAAAAEACAAAAAAAAAEAAAAAAAAAAAAAAAEAAAABAAAAAAAAZGRkAG5ubgB2dnYAenp6AIaG
180 | hgCJiYkAkZGRAJ2dnQCsrKwAsrKyALm5uQC9vb0AwMDAAMXFxQDKysoAzc3NAN/f4ADl5eYA6urqAOzt
181 | 7ADw8fIA8vL0APP09QD09fUA9vf4APf4+QD5+foA+/v8APv8/AD+/v4AAAAAAAAAAAAAAAAAAAAAAAAA
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 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
195 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
196 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD///8AAAAAAAAAAAAAAAAAAAAAAAQE
197 | BAQEBAQEBAQEBAQEBAAFFRUVFRUVFRUZFRoZGgUABxUVFRUVGRUaGRoZGhoHAAgVAwIBFQQCARUEAgEa
198 | CAAJFQYVBBUGFQQaBhUEGgkACRUHBwYaBwcGGgcHBhoKAAoZGRAZGRoQGhoaEBoaCgAKFRoQEBAQEBAQ
199 | EBAaGgsADBoZGhoaGhAaGhoaGhoMAAwaGhoaGgQCARoaGhQRDAAMGhoaGhoGGQQaGg0LCwwADBoaGhoa
200 | CAcGGhoQFQwSAA0aGhoaGhoaGhoaEAwUAAANDQ4ODQ4ODQ4ODQ0ZAAAAAAAAAAAAAAAAAAAAAAAAAP//
201 | AAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAwAAAAcAAP//
202 | AAAoAAAAIAAAAEAAAAABACAAAAAAAIAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
203 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
204 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
205 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
206 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
207 | AAAAAAAIAAAAGAAAACAAAAAgAAAAIAAAACAAAAAgAAAAIAAAACAAAAAgAAAAIAAAACAAAAAgAAAAIAAA
208 | ACAAAAAgAAAAIAAAACAAAAAgAAAAIAAAACAAAAAgAAAAIAAAACAAAAAgAAAAIAAAACAAAAAgAAAAGAAA
209 | AAgAAAAAAAAAAAAAABgAAABIAAAAYAAAAGAAAABgAAAAYAAAAGAAAABgAAAAYAAAAGAAAABgAAAAYAAA
210 | AGAAAABgAAAAYAAAAGAAAABgAAAAYAAAAGAAAABgAAAAYAAAAGAAAABgAAAAYAAAAGAAAABgAAAAYAAA
211 | AGAAAABIAAAAGAAAAAAAAAAA1tbW//j5+f/4+fn/+Pn5//j5+f/4+fn/+Pn5//j5+f/4+fn/+Pj4//j4
212 | +P/3+Pj/9/j4//f4+P/3+Pj/9/j4//f39//29/f/9vf3//b39//29/f/9vf3//b39//29/f/9fb2//X2
213 | 9v/19vb/9fb2/wAAAGAAAAAgAAAAAAAAAADW1tb/+fr6//n6+v/5+vr/+fr6//n6+v/5+vr/+fr6//n5
214 | +f/5+fn/+Pn5//j5+f/4+fn/+Pn5//j4+P/4+Pj/9/j4//f4+P/3+Pj/9/j4//f4+P/39/f/9vf3//b3
215 | 9//29/f/9vf3//b39//29/f/AAAAYAAAACAAAAAAAAAAANbW1v/6+vr/+fr6//r6+v/5+vr/+vr6//n6
216 | +v/5+vr/+fr6//n5+f/5+fn/+fn5//j5+f/4+fn/+Pn5//j4+P/4+Pj/9/j4//f4+P/3+Pj/9/j4//f4
217 | +P/39/f/9vf3//b39//29/f/9vf3//b39/8AAABgAAAAIAAAAAAAAAAA1tbW//r6+v/6+vr/dnZ2/2lp
218 | af9jY2P/XV1d/1xcXP/5+vr/dnZ2/2lpaf9jY2P/XV1d/1xcXP/4+fn/dnZ2/2lpaf9jY2P/XV1d/1xc
219 | XP/3+Pj/dnZ2/2lpaf9jY2P/XV1d/1xcXP/29/f/9vf3/wAAAGAAAAAgAAAAAAAAAADW1tb/+vv7//r6
220 | +v+AgID/9vb2/+vr6//f39//XFxc//r6+v+AgID/9vb2/+vr6//f39//XFxc//j5+f+AgID/9vb2/+vr
221 | 6//f39//XFxc//f4+P+AgID/9vb2/+vr6//f39//XFxc//b39//29/f/AAAAYAAAACAAAAAAAAAAANbW
222 | 1v/6+/v/+vv7/4WFhf/r6+v/39/f/9LS0v9jY2P/+vr6/4WFhf/r6+v/39/f/9LS0v9jY2P/+fn5/4WF
223 | hf/r6+v/39/f/9LS0v9jY2P/+Pj4/4WFhf/r6+v/39/f/9LS0v9jY2P/9/f3//b39/8AAABgAAAAIAAA
224 | AAAAAAAA1tbW//v7+//6+/v/ioqK/9/f3//S0tL/x8fH/3Z2dv/6+vr/ioqK/9/f3//S0tL/x8fH/3Z2
225 | dv/5+fn/ioqK/9/f3//S0tL/x8fH/3Z2dv/4+Pj/ioqK/9/f3//S0tL/x8fH/3Z2dv/3+Pj/9/f3/wAA
226 | AGAAAAAgAAAAAAAAAADW1tb/+/v7//v7+/+Tk5P/kpKS/5GRkf+Ojo7/iIiI//r7+/+Tk5P/kpKS/5GR
227 | kf+Ojo7/iIiI//n6+v+Tk5P/kpKS/5GRkf+Ojo7/iIiI//j5+f+Tk5P/kpKS/5GRkf+Ojo7/iIiI//f4
228 | +P/3+Pj/AAAAYAAAACAAAAAAAAAAANbW1v/7+/v/+/v7//v7+//7+/v/1tbW//v7+//7+/v/+/v7//r7
229 | +//6+/v/1tbW//r6+v/6+vr/+fr6//n6+v/5+vr/1tbW//n5+f/4+fn/+Pn5//j5+f/4+fn/1tbW//j4
230 | +P/3+Pj/9/j4//f4+P8AAABgAAAAIAAAAAAAAAAA1tbW//v8/P/7+/v/+/z8//v7+//W1tb/1tbW/9bW
231 | 1v/W1tb/1tbW/9bW1v/W1tb/+vr6//r6+v/6+vr/+fr6//n6+v/W1tb/1tbW/9bW1v/W1tb/1tbW/9bW
232 | 1v/W1tb/+Pj4//j4+P/3+Pj/9/j4/wAAAGAAAAAgAAAAAAAAAADW1tb/+/z8//v8/P/7/Pz/+/z8//v8
233 | /P/7/Pz/+/v7/9bW1v/7+/v/+/v7//r7+//6+/v/+vr6//r6+v/6+vr/+fr6//n6+v/5+vr/+fn5/9bW
234 | 1v/5+fn/+Pn5//j5+f/4+fn/+Pj4//j4+P/3+Pj/AAAAYAAAACAAAAAAAAAAANbW1v/8/Pz//Pz8//z8
235 | /P/8/Pz//Pz8/3Z2dv9paWn/Y2Nj/11dXf9cXFz/+/v7//r7+//6+/v/+vv7//r6+v/6+vr/+vr6/3Z2
236 | dv9paWn/Y2Nj/11dXf9cXFz/+Pn5//j5+f/4+fn/+Pn5//j4+P8AAABgAAAAIAAAAAAAAAAA1tbW//z8
237 | /P/8/Pz//Pz8//z8/P/8/Pz/gICA//b29v/r6+v/39/f/1xcXP/7+/v/+/v7//v7+//6+/v/+vv7//r6
238 | +v/6+vr/gICA//b29v/r6+v/39/f/1xcXP/5+fn/+Pn5//j5+f/4+fn/+Pn5/wAAAGAAAAAgAAAAAAAA
239 | AADW1tb//Pz8//z8/P/8/Pz//Pz8//z8/P+FhYX/6+vr/9/f3//S0tL/Y2Nj//v7+//7+/v/+/v7//v7
240 | +//6+/v/+vv7//r6+v+FhYX/6+vr/9/f3//S0tL/Y2Nj//n5+f/5+fn/+Pn5//j5+f/4+fn/AAAAYAAA
241 | ACAAAAAAAAAAANbW1v/8/f3//Pz8//z9/f/8/Pz//P39/4qKiv/f39//0tLS/8fHx/92dnb/+/z8//v7
242 | +//7+/v/+/v7//v7+//6+/v/+vv7/4qKiv/f39//0tLS/8fHx/92dnb/+fr6//n5+f/5+fn/+fn5//j5
243 | +f8AAABgAAAAIAAAAAAAAAAA1tbW//39/f/8/f3//f39//z9/f/9/f3/k5OT/5KSkv+RkZH/jo6O/4iI
244 | iP/8/Pz/+/z8//v8/P/7+/v/+/v7//v7+//6+/v/k5OT/5KSkv+RkZH/jo6O/4iIiP/5+vr/+fr6//n6
245 | +v/5+fn/+fn5/wAAAGAAAAAgAAAAAAAAAADW1tb//f39//39/f/9/f3//f39//39/f/9/f3//P39/9bW
246 | 1v/8/Pz//Pz8//z8/P/8/Pz/+/z8//v8/P/7+/v/+/v7//v7+//7+/v/+vv7/9bW1v/6+vr/+vr6//r6
247 | +v/5+vr/+fr6//n6+v/5+fn/AAAAYAAAACAAAAAAAAAAANbW1v/9/f3//f39//39/f/9/f3//f39//39
248 | /f/9/f3/1tbW/9bW1v/W1tb/1tbW/9bW1v/W1tb/1tbW/9bW1v/W1tb/1tbW/9bW1v/W1tb/1tbW//r7
249 | +//6+vr/+vr6//r6+v/5+vr/+fr6//n6+v8AAABgAAAAIAAAAAAAAAAA1tbW//39/f/9/f3//f39//39
250 | /f/9/f3//f39//39/f/9/f3//P39//z9/f/8/Pz//Pz8//z8/P/W1tb//Pz8//v8/P/7+/v/+/v7//v7
251 | +//7+/v/+vv7//r7+//6+vr/+vr6//r6+v/5+vr/1NTU/wAAAGAAAAAgAAAAAAAAAADW1tb//f39//39
252 | /f/9/f3//f39//39/f/9/f3//f39//39/f/9/f3//f39//z9/f92dnb/aWlp/2NjY/9dXV3/XFxc//v8
253 | /P/7/Pz/+/v7//v7+//7+/v/+vv7//r7+//W1tb/zs7O/7+/v/+4uLj/AAAAVQAAABsAAAAAAAAAANbW
254 | 1v/9/f3//f39//39/f/9/f3//f39//39/f/9/f3//f39//39/f/9/f3//f39/4CAgP/29vb/6+vr/9/f
255 | 3/9cXFz//Pz8//v8/P/7/Pz/+/v7//v7+/+ysrL/q6ur/6mpqf+pqan/r6+v/7i4uP4AAAA3AAAADgAA
256 | AAAAAAAA1tbW//7+/v/9/f3//v7+//39/f/+/v7//f39//39/f/9/f3//f39//39/f/9/f3/hYWF/+vr
257 | 6//f39//0tLS/2NjY//8/Pz//Pz8//v8/P/7/Pz/+/v7/8bGxv/19fX/9PT0/+Pj4/+8vLz+ZGRkhAAA
258 | ABQAAAADAAAAAAAAAADW1tb//v7+//7+/v/+/v7//v7+//7+/v/+/v7//f7+//39/f/9/f3//f39//39
259 | /f+Kior/39/f/9LS0v/Hx8f/dnZ2//z8/P/8/Pz//Pz8//z8/P/7/Pz/zs7O//r6+v/r6+v/ysrK/m1t
260 | bX8AAAAXAAAAAwAAAAAAAAAAAAAAANbW1v/+/v7//v7+//7+/v/+/v7//v7+//7+/v/+/v7//f7+//39
261 | /f/9/f3//f39/5OTk/+SkpL/kZGR/46Ojv+IiIj//Pz8//z8/P/8/Pz//Pz8//z8/P/Nzc3/5OTk/8nJ
262 | yf5oaGh/AAAAFwAAAAMAAAAAAAAAAAAAAAAAAAAA1tbW//7+/v/+/v7//v7+//7+/v/+/v7//v7+//7+
263 | /v/+/v7//f7+//39/f/9/f3//f39//39/f/9/f3//f39//39/f/8/f3//Pz8//z8/P/8/Pz/6urq/8PD
264 | w//Hx8f+ZWVlfgAAABcAAAADAAAAAAAAAAAAAAAAAAAAAAAAAADW1tb//v7+//7+/v/+/v7//v7+//7+
265 | /v/+/v7//v7+//7+/v/+/v7//v7+//39/f/9/f3//f39//39/f/9/f3//f39//39/f/8/f3//Pz8//z8
266 | /P/c3Nz/v7+//mtra4IAAAAZAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANbW1v/W1tb/1tbW/9bW
267 | 1v/W1tb/1tbW/9bW1v/W1tb/1tbW/9bW1v/W1tb/1tbW/9bW1v/W1tb/1tbW/9bW1v/W1tb/1tbW/9bW
268 | 1v/W1tb/1tbW/8zMzPiCgoJvAAAAEgAAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
269 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
270 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP//
271 | ////////gAAAAYAAAAGAAAABgAAAAYAAAAGAAAABgAAAAYAAAAGAAAABgAAAAYAAAAGAAAABgAAAAYAA
272 | AAGAAAABgAAAAYAAAAGAAAABgAAAAYAAAAGAAAABgAAAAYAAAAGAAAABgAAAA4AAAAeAAAAPgAAAH4AA
273 | AD//////KAAAABAAAAAgAAAAAQAgAAAAAABABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
274 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB6enr/enp6/3p6
275 | ev96enr/enp6/3p6ev96enr/enp6/3p6ev96enr/enp6/3p6ev96enr/enp6/3p6ev8AAAAAhoaG//Dw
276 | 8v/w8PL/8PDy//Hx8//x8vP/8vL0//Pz9P/z9PX/9PX2//X19//29vf/9/f4//f4+f+Ghob/AAAAAJCQ
277 | kP/x8fP/8fHz//Hx8//x8vP/8vL0//Pz9f/z9PX/9PX2//X19//29vf/9/f4//f4+f/4+fr/kJCQ/wAA
278 | AACdnZ3/8vLz/3Z2dv9ubm7/ZGRk//Pz9f92dnb/bm5u/2RkZP/29vf/dnZ2/25ubv9kZGT/+fr6/52d
279 | nf8AAAAArKys//Ly9P+Kior/9PT0/3t7e//09PX/ioqK//T09P97e3v/9/f4/4qKiv/09PT/e3t7//r7
280 | +/+srKz/AAAAAK2trf/z8/X/k5OT/5CQkP+IiIj/9PX2/5OTk/+QkJD/iIiI//j4+f+Tk5P/kJCQ/4iI
281 | iP/7+/z/ra2t/wAAAACxsbH/9PT2//T09v/Nzc3/9fX2//X29//29/j/zc3N//j4+f/5+fr/+fr7/83N
282 | zf/7/Pz/+/z8/7Gxsf8AAAAAs7Oz//X19v/19fb/zc3N/83Nzf/Nzc3/zc3N/83Nzf/Nzc3/zc3N/83N
283 | zf/Nzc3/+/z9//z9/f+zs7P/AAAAALq6uv/3+Pn/9/j5//f4+f/4+fr/+fr6//r6+//Nzc3/+/z8//z9
284 | /f/8/f3//P39//3+/v/9/v7/uLi4/wAAAAC8vLz/+Pn6//j5+v/4+fr/+fr6//r6+/92dnb/bm5u/2Rk
285 | ZP/8/f3//f7+//3+/v/l5eb/39/g/7q6uv8AAAAAvb29//n6+v/5+vr/+fr6//r7+//7+/z/ioqK//T0
286 | 9P97e3v//f7+//3+/v+6urr/uLi4/7i4uP+6urr/AAAAAL+/v//6+/v/+vv7//r7+//7+/z/+/z8/5OT
287 | k/+QkJD/iIiI//3+/v/9/v7/xcXF//b29v+6urr/3d3dmwAAAADAwMD/+/v8//v7/P/7+/z/+/z8//z9
288 | /f/8/f3//f7+//3+/v/7/Pz//f7+/8rKyv+6urr/4+XipwAAAAAAAAAAwMDA/8DAwP/AwMD/wMDA/8DA
289 | wP/AwMD/wMDA/8DAwP/AwMD/wMDA/8DAwP+/v7//9fX1uQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
290 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD//wAAAAEAAAAB
291 | AAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAMAAAAHAAD//wAA
292 |
293 |
294 |
--------------------------------------------------------------------------------
/SetUserDomainControllerForm.Designer.cs:
--------------------------------------------------------------------------------
1 | namespace ADReplStatus
2 | {
3 | partial class SetUserDomainControllerForm
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(SetUserDomainControllerForm));
32 | this.SetUserDomainControllerButton = new System.Windows.Forms.Button();
33 | this.SetUserDomainControllerTextBox = new System.Windows.Forms.TextBox();
34 | this.SetUserDomainControllerLabel = new System.Windows.Forms.Label();
35 | this.SuspendLayout();
36 | //
37 | // SetUserDomainControllerButton
38 | //
39 | this.SetUserDomainControllerButton.Location = new System.Drawing.Point(226, 25);
40 | this.SetUserDomainControllerButton.Name = "SetUserDomainControllerButton";
41 | this.SetUserDomainControllerButton.Size = new System.Drawing.Size(75, 20);
42 | this.SetUserDomainControllerButton.TabIndex = 3;
43 | this.SetUserDomainControllerButton.Text = "Set";
44 | this.SetUserDomainControllerButton.UseVisualStyleBackColor = true;
45 | this.SetUserDomainControllerButton.Click += new System.EventHandler(this.SetForestNameButton_Click);
46 | //
47 | // SetUserDomainControllerTextBox
48 | //
49 | this.SetUserDomainControllerTextBox.Location = new System.Drawing.Point(15, 25);
50 | this.SetUserDomainControllerTextBox.Name = "SetUserDomainControllerTextBox";
51 | this.SetUserDomainControllerTextBox.Size = new System.Drawing.Size(205, 20);
52 | this.SetUserDomainControllerTextBox.TabIndex = 4;
53 | this.SetUserDomainControllerTextBox.Text = "DC1.contoso.com";
54 | this.SetUserDomainControllerTextBox.KeyDown += new System.Windows.Forms.KeyEventHandler(this.SetUserDomainControllerTextBox_KeyDown);
55 |
56 | //
57 | // SetUserDomainControllerLabel
58 | //
59 | this.SetUserDomainControllerLabel.AutoSize = true;
60 | this.SetUserDomainControllerLabel.Location = new System.Drawing.Point(12, 9);
61 | this.SetUserDomainControllerLabel.Name = "SetUserDomainControllerLabel";
62 | this.SetUserDomainControllerLabel.Size = new System.Drawing.Size(137, 13);
63 | this.SetUserDomainControllerLabel.TabIndex = 5;
64 | this.SetUserDomainControllerLabel.Text = "Specify a domain controller:";
65 | //
66 | // SetUserDomainControllerForm
67 | //
68 | this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
69 | this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
70 | this.ClientSize = new System.Drawing.Size(303, 50);
71 | this.Controls.Add(this.SetUserDomainControllerLabel);
72 | this.Controls.Add(this.SetUserDomainControllerTextBox);
73 | this.Controls.Add(this.SetUserDomainControllerButton);
74 | this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon")));
75 | this.Name = "SetUserDomainControllerForm";
76 | this.Text = "Set Domain Controller";
77 | this.Load += new System.EventHandler(this.SetUserDomainControllerForm_Load);
78 | this.ResumeLayout(false);
79 | this.PerformLayout();
80 |
81 | }
82 |
83 | #endregion
84 |
85 | private System.Windows.Forms.Button SetUserDomainControllerButton;
86 | private System.Windows.Forms.TextBox SetUserDomainControllerTextBox;
87 | private System.Windows.Forms.Label SetUserDomainControllerLabel;
88 | }
89 | }
--------------------------------------------------------------------------------
/SetUserDomainControllerForm.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 ADReplStatus
12 | {
13 | public partial class SetUserDomainControllerForm : Form
14 | {
15 | public SetUserDomainControllerForm()
16 | {
17 | InitializeComponent();
18 | }
19 |
20 | private void SetForestNameButton_Click(object sender, EventArgs e)
21 | {
22 |
23 | if (ADReplStatusForm.gUseUserDomainController)
24 | {
25 | //The user cleared out the input box and clicked set
26 | if(SetUserDomainControllerTextBox.Text.Length < 1)
27 | {
28 | if (ADReplStatusForm.gLoggingEnabled)
29 | {
30 | System.IO.File.AppendAllText(ADReplStatusForm.gLogfileName, $"[{DateTime.Now}] Clearing user specified domain controller and disabling global. Previous value:{ADReplStatusForm.gUserDomainController}\n");
31 | }
32 |
33 | ADReplStatusForm.gUseUserDomainController = false;
34 | }
35 | else
36 | {
37 | if (ADReplStatusForm.gLoggingEnabled)
38 | {
39 | System.IO.File.AppendAllText(ADReplStatusForm.gLogfileName, $"[{DateTime.Now}] Changing user specified domain controller to {SetUserDomainControllerTextBox.Text}\n");
40 | }
41 |
42 | ADReplStatusForm.gUserDomainController = SetUserDomainControllerTextBox.Text;
43 | }
44 |
45 | this.Dispose();
46 | return;
47 | }
48 |
49 | if (ADReplStatusForm.gLoggingEnabled)
50 | {
51 | System.IO.File.AppendAllText(ADReplStatusForm.gLogfileName, $"[{DateTime.Now}] Setting user specified domain controller to {SetUserDomainControllerTextBox.Text} and enabling global.\n");
52 | }
53 |
54 | ADReplStatusForm.gUseUserDomainController = true;
55 | ADReplStatusForm.gUserDomainController = SetUserDomainControllerTextBox.Text;
56 |
57 | this.Dispose();
58 | return;
59 | }
60 |
61 | private void SetUserDomainControllerForm_Load(object sender, EventArgs e)
62 | {
63 | if(ADReplStatusForm.gUseUserDomainController)
64 | {
65 | SetUserDomainControllerTextBox.Text = ADReplStatusForm.gUserDomainController;
66 | }
67 | else
68 | {
69 | SetUserDomainControllerTextBox.Text = string.Empty;
70 | }
71 | }
72 |
73 | private void SetUserDomainControllerTextBox_KeyDown(object sender, KeyEventArgs e)
74 | {
75 | if (e.KeyCode == Keys.Enter)
76 | {
77 | SetForestNameButton_Click(this, new EventArgs());
78 | }
79 | }
80 | }
81 | }
82 |
--------------------------------------------------------------------------------
/SetUserDomainControllerForm.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 | AAABAAYAICAQAAEABADoAgAAZgAAABAQEAABAAQAKAEAAE4DAAAgIAAAAQAIAKgIAAB2BAAAEBAAAAEA
124 | CABoBQAAHg0AACAgAAABACAAqBAAAIYSAAAQEAAAAQAgAGgEAAAuIwAAKAAAACAAAABAAAAAAQAEAAAA
125 | AAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAIAAAACAgACAAAAAgACAAICAAACAgIAAwMDAAAAA
126 | /wAA/wAAAP//AP8AAAD/AP8A//8AAP///wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
127 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACP/////////////////wAAj/////////////////
128 | 8AAP//////+P/4/4/4/4//AACP93Bzh3dw93dz93dw/wAAj/f/h/eI9/eIh4eI9/8AAP/3j4eH/4eH/4
129 | f3+IePAACP94iH94iH9/iH94+H/wAAj/eHd/eHd/d3d/eHd/8AAP//+P//+P//////+P//AACP//j4j4
130 | ////iIiI///wAAj////4///////////48AAP///3d3T////3d1L///AACP//94+D//+P94j3///wAAj/
131 | //f4h/////f4h4/48AAP///3j4f/j//3j4f///AACP//93d3////93d3///wAAj/////////////////
132 | 8AAP////+IiIiIiIiP//+PAACP////////////////+AAAj///////d3V/////iIgAAP///////3j4L/
133 | //eHiIAACP//////9/iH///4/4iAAAj///////ePh///+P+AAAAP///////3d3f///j4AAAACP////j/
134 | //////+IgAAAAAj/////////////iIAAAAAPiIiIiIiIj4iIiPAAAAAAAAAAAAAAAAAAAAAAAAAAAP//
135 | //////////////////+AAAAHgAAAB4AAAAeAAAAHgAAAB4AAAAeAAAAHgAAAB4AAAAeAAAAHgAAAB4AA
136 | AAeAAAAHgAAAB4AAAAeAAAAHgAAAB4AAAAeAAAAHgAAAB4AAAAeAAAAHgAAAH4AAAD+AAAB/gAAAf4AA
137 | Af//////KAAAABAAAAAgAAAAAQAEAAAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAIAAAACA
138 | gACAAAAAgACAAICAAACAgIAAwMDAAAAA/wAA/wAAAP//AP8AAAD/AP8A//8AAP///wAAAAAAAAAAAHd3
139 | d3d3d3dwf/j//////3B///j4+P+PcH93f3d/d39wj3h4f3h/f4CId393f3d/cI/4//j/+P+Aj/iIiIiI
140 | /4CP///4////gI///3d///iAj///f3/4iICPj/93f/j4gI//////+IgAiIiIiIiI8AAAAAAAAAAAAP//
141 | AAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAwAAAAcAAP//
142 | AAAoAAAAIAAAAEAAAAABAAgAAAAAAAAEAAAAAAAAAAAAAAABAAAAAQAAAAAAAFxcXABjY2MAaWlpAHZ2
143 | dgCAgIAAhYWFAImJiQCOjo4AkpKSAKmpqQCurq4AsrKyALi4uAC+vr4Aw8PDAMbGxgDJyckAzc3NANLS
144 | 0gDV1dUA3t7eAOPj4wDk5OQA6urqAPX29gD3+PgA+fn5APv8/AD9/f0AAAAAAAAAAAAAAAAAAAAAAAAA
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 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA////AAAAAAAAAAAAAAAAAAAA
160 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
161 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQbGxsb
162 | GxsbGxsbGhoaGhoaGhoaGhoaGhoaGhoAAAAAFBsbGxsbGxsbGxsbGxsbGxoaGhoaGhoaGhoaGgAAAAAU
163 | GxsbGxsbGxsbGxsbGxsbGxoaGhoaGhoaGhoaAAAAABQbGwQDAgEBGwQDAgEBGwQDAgEBGgQDAgEBGhoA
164 | AAAAFBsbBRoYFQEbBRoYFQEbBRoYFQEaBRoYFQEaGgAAAAAUGxsFGBUUAhsFGBUUAhsFGBUUAhsFGBUU
165 | AhoaAAAAABQbGwgVFBAEGwgVFBAEGwgVFBAEGwgVFBAEGhoAAAAAFBsbCQkJCAgbCQkJCAgaCQkJCAga
166 | CQkJCAUbGgAAAAAUGxsbGxUbGxsbGxQbGxsbGxQbGhobGxQbGxoaAAAAABUbGxsbFBQUFRQUFRobGxsb
167 | FBQUFBQUFBsbGhoAAAAAFBsbGxsbGxsUGxsbGxsbGxsbGxsUGxsbGxsbGgAAAAAUGxsbGxsFAwIBARsb
168 | GxsbGxsEAwIBARsbGxsbAAAAABUbGxsbGwUaGBUBGxsbGxsbGwUaGBUBGxsbGxsAAAAAFBsbGxsbCBgV
169 | FAIbGxsbGxsbCBgVFAIbGxsbGwAAAAAUGxsbGxsIFRQQBRsbGxsbGxsIFRQQBBsbGxsbAAAAABUbGxsb
170 | GwkJCQgFGxsbGxsbGwkJCAgIGhsbGxsAAAAAFBsbGxsbGxsUGxsbGxsbGxsbGxsVGhsbGxsbGwAAAAAU
171 | GxsbGxsbGxUUFRQVFBUUFRQVFBQbGxsbGxsbAAAAABUbGxsbGxsbGxsbGxsbFBsbGxsbGxsbGxsbGxQA
172 | AAAAFBsbGxsbGxsbGxsbBQMCAgEbGxsbGxsbFRIODQAAAAAUGxsbGxsbGxsbGxsFGhgVARsbGxsbDQsK
173 | CwsNAAAAABUbGxsbGxsbGxsbGwgYFRQCGxsbGxsSGhgVDQwAAAAAFBsbGxsbGxsbGxsbCBUUEAQbGxsb
174 | GxIbGBIAAAAAAAAUGxsbGxsbGxsbGxsJCQkICBsbGxsbFBUSAAAAAAAAABUbGxsbGxsbGxsbGxsbGxsb
175 | GxsbGxgQEgAAAAAAAAAAFBsbGxsbGxsbGxsbGxsbGxsbGxsbFQ0MAAAAAAAAAAAUFRQVFBUUFRQVFBUU
176 | FRQVFBUUFRQSAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/////////////
177 | ////////gAAAB4AAAAeAAAAHgAAAB4AAAAeAAAAHgAAAB4AAAAeAAAAHgAAAB4AAAAeAAAAHgAAAB4AA
178 | AAeAAAAHgAAAB4AAAAeAAAAHgAAAB4AAAAeAAAAHgAAAB4AAAB+AAAA/gAAAf4AAAH+AAAH//////ygA
179 | AAAQAAAAIAAAAAEACAAAAAAAAAEAAAAAAAAAAAAAAAEAAAABAAAAAAAAZGRkAG5ubgB2dnYAenp6AIaG
180 | hgCJiYkAkZGRAJ2dnQCsrKwAsrKyALm5uQC9vb0AwMDAAMXFxQDKysoAzc3NAN/f4ADl5eYA6urqAOzt
181 | 7ADw8fIA8vL0APP09QD09fUA9vf4APf4+QD5+foA+/v8APv8/AD+/v4AAAAAAAAAAAAAAAAAAAAAAAAA
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 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
195 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
196 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD///8AAAAAAAAAAAAAAAAAAAAAAAQE
197 | BAQEBAQEBAQEBAQEBAAFFRUVFRUVFRUZFRoZGgUABxUVFRUVGRUaGRoZGhoHAAgVAwIBFQQCARUEAgEa
198 | CAAJFQYVBBUGFQQaBhUEGgkACRUHBwYaBwcGGgcHBhoKAAoZGRAZGRoQGhoaEBoaCgAKFRoQEBAQEBAQ
199 | EBAaGgsADBoZGhoaGhAaGhoaGhoMAAwaGhoaGgQCARoaGhQRDAAMGhoaGhoGGQQaGg0LCwwADBoaGhoa
200 | CAcGGhoQFQwSAA0aGhoaGhoaGhoaEAwUAAANDQ4ODQ4ODQ4ODQ0ZAAAAAAAAAAAAAAAAAAAAAAAAAP//
201 | AAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAwAAAAcAAP//
202 | AAAoAAAAIAAAAEAAAAABACAAAAAAAIAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
203 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
204 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
205 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
206 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
207 | AAAAAAAIAAAAGAAAACAAAAAgAAAAIAAAACAAAAAgAAAAIAAAACAAAAAgAAAAIAAAACAAAAAgAAAAIAAA
208 | ACAAAAAgAAAAIAAAACAAAAAgAAAAIAAAACAAAAAgAAAAIAAAACAAAAAgAAAAIAAAACAAAAAgAAAAGAAA
209 | AAgAAAAAAAAAAAAAABgAAABIAAAAYAAAAGAAAABgAAAAYAAAAGAAAABgAAAAYAAAAGAAAABgAAAAYAAA
210 | AGAAAABgAAAAYAAAAGAAAABgAAAAYAAAAGAAAABgAAAAYAAAAGAAAABgAAAAYAAAAGAAAABgAAAAYAAA
211 | AGAAAABIAAAAGAAAAAAAAAAA1tbW//j5+f/4+fn/+Pn5//j5+f/4+fn/+Pn5//j5+f/4+fn/+Pj4//j4
212 | +P/3+Pj/9/j4//f4+P/3+Pj/9/j4//f39//29/f/9vf3//b39//29/f/9vf3//b39//29/f/9fb2//X2
213 | 9v/19vb/9fb2/wAAAGAAAAAgAAAAAAAAAADW1tb/+fr6//n6+v/5+vr/+fr6//n6+v/5+vr/+fr6//n5
214 | +f/5+fn/+Pn5//j5+f/4+fn/+Pn5//j4+P/4+Pj/9/j4//f4+P/3+Pj/9/j4//f4+P/39/f/9vf3//b3
215 | 9//29/f/9vf3//b39//29/f/AAAAYAAAACAAAAAAAAAAANbW1v/6+vr/+fr6//r6+v/5+vr/+vr6//n6
216 | +v/5+vr/+fr6//n5+f/5+fn/+fn5//j5+f/4+fn/+Pn5//j4+P/4+Pj/9/j4//f4+P/3+Pj/9/j4//f4
217 | +P/39/f/9vf3//b39//29/f/9vf3//b39/8AAABgAAAAIAAAAAAAAAAA1tbW//r6+v/6+vr/dnZ2/2lp
218 | af9jY2P/XV1d/1xcXP/5+vr/dnZ2/2lpaf9jY2P/XV1d/1xcXP/4+fn/dnZ2/2lpaf9jY2P/XV1d/1xc
219 | XP/3+Pj/dnZ2/2lpaf9jY2P/XV1d/1xcXP/29/f/9vf3/wAAAGAAAAAgAAAAAAAAAADW1tb/+vv7//r6
220 | +v+AgID/9vb2/+vr6//f39//XFxc//r6+v+AgID/9vb2/+vr6//f39//XFxc//j5+f+AgID/9vb2/+vr
221 | 6//f39//XFxc//f4+P+AgID/9vb2/+vr6//f39//XFxc//b39//29/f/AAAAYAAAACAAAAAAAAAAANbW
222 | 1v/6+/v/+vv7/4WFhf/r6+v/39/f/9LS0v9jY2P/+vr6/4WFhf/r6+v/39/f/9LS0v9jY2P/+fn5/4WF
223 | hf/r6+v/39/f/9LS0v9jY2P/+Pj4/4WFhf/r6+v/39/f/9LS0v9jY2P/9/f3//b39/8AAABgAAAAIAAA
224 | AAAAAAAA1tbW//v7+//6+/v/ioqK/9/f3//S0tL/x8fH/3Z2dv/6+vr/ioqK/9/f3//S0tL/x8fH/3Z2
225 | dv/5+fn/ioqK/9/f3//S0tL/x8fH/3Z2dv/4+Pj/ioqK/9/f3//S0tL/x8fH/3Z2dv/3+Pj/9/f3/wAA
226 | AGAAAAAgAAAAAAAAAADW1tb/+/v7//v7+/+Tk5P/kpKS/5GRkf+Ojo7/iIiI//r7+/+Tk5P/kpKS/5GR
227 | kf+Ojo7/iIiI//n6+v+Tk5P/kpKS/5GRkf+Ojo7/iIiI//j5+f+Tk5P/kpKS/5GRkf+Ojo7/iIiI//f4
228 | +P/3+Pj/AAAAYAAAACAAAAAAAAAAANbW1v/7+/v/+/v7//v7+//7+/v/1tbW//v7+//7+/v/+/v7//r7
229 | +//6+/v/1tbW//r6+v/6+vr/+fr6//n6+v/5+vr/1tbW//n5+f/4+fn/+Pn5//j5+f/4+fn/1tbW//j4
230 | +P/3+Pj/9/j4//f4+P8AAABgAAAAIAAAAAAAAAAA1tbW//v8/P/7+/v/+/z8//v7+//W1tb/1tbW/9bW
231 | 1v/W1tb/1tbW/9bW1v/W1tb/+vr6//r6+v/6+vr/+fr6//n6+v/W1tb/1tbW/9bW1v/W1tb/1tbW/9bW
232 | 1v/W1tb/+Pj4//j4+P/3+Pj/9/j4/wAAAGAAAAAgAAAAAAAAAADW1tb/+/z8//v8/P/7/Pz/+/z8//v8
233 | /P/7/Pz/+/v7/9bW1v/7+/v/+/v7//r7+//6+/v/+vr6//r6+v/6+vr/+fr6//n6+v/5+vr/+fn5/9bW
234 | 1v/5+fn/+Pn5//j5+f/4+fn/+Pj4//j4+P/3+Pj/AAAAYAAAACAAAAAAAAAAANbW1v/8/Pz//Pz8//z8
235 | /P/8/Pz//Pz8/3Z2dv9paWn/Y2Nj/11dXf9cXFz/+/v7//r7+//6+/v/+vv7//r6+v/6+vr/+vr6/3Z2
236 | dv9paWn/Y2Nj/11dXf9cXFz/+Pn5//j5+f/4+fn/+Pn5//j4+P8AAABgAAAAIAAAAAAAAAAA1tbW//z8
237 | /P/8/Pz//Pz8//z8/P/8/Pz/gICA//b29v/r6+v/39/f/1xcXP/7+/v/+/v7//v7+//6+/v/+vv7//r6
238 | +v/6+vr/gICA//b29v/r6+v/39/f/1xcXP/5+fn/+Pn5//j5+f/4+fn/+Pn5/wAAAGAAAAAgAAAAAAAA
239 | AADW1tb//Pz8//z8/P/8/Pz//Pz8//z8/P+FhYX/6+vr/9/f3//S0tL/Y2Nj//v7+//7+/v/+/v7//v7
240 | +//6+/v/+vv7//r6+v+FhYX/6+vr/9/f3//S0tL/Y2Nj//n5+f/5+fn/+Pn5//j5+f/4+fn/AAAAYAAA
241 | ACAAAAAAAAAAANbW1v/8/f3//Pz8//z9/f/8/Pz//P39/4qKiv/f39//0tLS/8fHx/92dnb/+/z8//v7
242 | +//7+/v/+/v7//v7+//6+/v/+vv7/4qKiv/f39//0tLS/8fHx/92dnb/+fr6//n5+f/5+fn/+fn5//j5
243 | +f8AAABgAAAAIAAAAAAAAAAA1tbW//39/f/8/f3//f39//z9/f/9/f3/k5OT/5KSkv+RkZH/jo6O/4iI
244 | iP/8/Pz/+/z8//v8/P/7+/v/+/v7//v7+//6+/v/k5OT/5KSkv+RkZH/jo6O/4iIiP/5+vr/+fr6//n6
245 | +v/5+fn/+fn5/wAAAGAAAAAgAAAAAAAAAADW1tb//f39//39/f/9/f3//f39//39/f/9/f3//P39/9bW
246 | 1v/8/Pz//Pz8//z8/P/8/Pz/+/z8//v8/P/7+/v/+/v7//v7+//7+/v/+vv7/9bW1v/6+vr/+vr6//r6
247 | +v/5+vr/+fr6//n6+v/5+fn/AAAAYAAAACAAAAAAAAAAANbW1v/9/f3//f39//39/f/9/f3//f39//39
248 | /f/9/f3/1tbW/9bW1v/W1tb/1tbW/9bW1v/W1tb/1tbW/9bW1v/W1tb/1tbW/9bW1v/W1tb/1tbW//r7
249 | +//6+vr/+vr6//r6+v/5+vr/+fr6//n6+v8AAABgAAAAIAAAAAAAAAAA1tbW//39/f/9/f3//f39//39
250 | /f/9/f3//f39//39/f/9/f3//P39//z9/f/8/Pz//Pz8//z8/P/W1tb//Pz8//v8/P/7+/v/+/v7//v7
251 | +//7+/v/+vv7//r7+//6+vr/+vr6//r6+v/5+vr/1NTU/wAAAGAAAAAgAAAAAAAAAADW1tb//f39//39
252 | /f/9/f3//f39//39/f/9/f3//f39//39/f/9/f3//f39//z9/f92dnb/aWlp/2NjY/9dXV3/XFxc//v8
253 | /P/7/Pz/+/v7//v7+//7+/v/+vv7//r7+//W1tb/zs7O/7+/v/+4uLj/AAAAVQAAABsAAAAAAAAAANbW
254 | 1v/9/f3//f39//39/f/9/f3//f39//39/f/9/f3//f39//39/f/9/f3//f39/4CAgP/29vb/6+vr/9/f
255 | 3/9cXFz//Pz8//v8/P/7/Pz/+/v7//v7+/+ysrL/q6ur/6mpqf+pqan/r6+v/7i4uP4AAAA3AAAADgAA
256 | AAAAAAAA1tbW//7+/v/9/f3//v7+//39/f/+/v7//f39//39/f/9/f3//f39//39/f/9/f3/hYWF/+vr
257 | 6//f39//0tLS/2NjY//8/Pz//Pz8//v8/P/7/Pz/+/v7/8bGxv/19fX/9PT0/+Pj4/+8vLz+ZGRkhAAA
258 | ABQAAAADAAAAAAAAAADW1tb//v7+//7+/v/+/v7//v7+//7+/v/+/v7//f7+//39/f/9/f3//f39//39
259 | /f+Kior/39/f/9LS0v/Hx8f/dnZ2//z8/P/8/Pz//Pz8//z8/P/7/Pz/zs7O//r6+v/r6+v/ysrK/m1t
260 | bX8AAAAXAAAAAwAAAAAAAAAAAAAAANbW1v/+/v7//v7+//7+/v/+/v7//v7+//7+/v/+/v7//f7+//39
261 | /f/9/f3//f39/5OTk/+SkpL/kZGR/46Ojv+IiIj//Pz8//z8/P/8/Pz//Pz8//z8/P/Nzc3/5OTk/8nJ
262 | yf5oaGh/AAAAFwAAAAMAAAAAAAAAAAAAAAAAAAAA1tbW//7+/v/+/v7//v7+//7+/v/+/v7//v7+//7+
263 | /v/+/v7//f7+//39/f/9/f3//f39//39/f/9/f3//f39//39/f/8/f3//Pz8//z8/P/8/Pz/6urq/8PD
264 | w//Hx8f+ZWVlfgAAABcAAAADAAAAAAAAAAAAAAAAAAAAAAAAAADW1tb//v7+//7+/v/+/v7//v7+//7+
265 | /v/+/v7//v7+//7+/v/+/v7//v7+//39/f/9/f3//f39//39/f/9/f3//f39//39/f/8/f3//Pz8//z8
266 | /P/c3Nz/v7+//mtra4IAAAAZAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANbW1v/W1tb/1tbW/9bW
267 | 1v/W1tb/1tbW/9bW1v/W1tb/1tbW/9bW1v/W1tb/1tbW/9bW1v/W1tb/1tbW/9bW1v/W1tb/1tbW/9bW
268 | 1v/W1tb/1tbW/8zMzPiCgoJvAAAAEgAAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
269 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
270 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP//
271 | ////////gAAAAYAAAAGAAAABgAAAAYAAAAGAAAABgAAAAYAAAAGAAAABgAAAAYAAAAGAAAABgAAAAYAA
272 | AAGAAAABgAAAAYAAAAGAAAABgAAAAYAAAAGAAAABgAAAAYAAAAGAAAABgAAAA4AAAAeAAAAPgAAAH4AA
273 | AD//////KAAAABAAAAAgAAAAAQAgAAAAAABABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
274 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB6enr/enp6/3p6
275 | ev96enr/enp6/3p6ev96enr/enp6/3p6ev96enr/enp6/3p6ev96enr/enp6/3p6ev8AAAAAhoaG//Dw
276 | 8v/w8PL/8PDy//Hx8//x8vP/8vL0//Pz9P/z9PX/9PX2//X19//29vf/9/f4//f4+f+Ghob/AAAAAJCQ
277 | kP/x8fP/8fHz//Hx8//x8vP/8vL0//Pz9f/z9PX/9PX2//X19//29vf/9/f4//f4+f/4+fr/kJCQ/wAA
278 | AACdnZ3/8vLz/3Z2dv9ubm7/ZGRk//Pz9f92dnb/bm5u/2RkZP/29vf/dnZ2/25ubv9kZGT/+fr6/52d
279 | nf8AAAAArKys//Ly9P+Kior/9PT0/3t7e//09PX/ioqK//T09P97e3v/9/f4/4qKiv/09PT/e3t7//r7
280 | +/+srKz/AAAAAK2trf/z8/X/k5OT/5CQkP+IiIj/9PX2/5OTk/+QkJD/iIiI//j4+f+Tk5P/kJCQ/4iI
281 | iP/7+/z/ra2t/wAAAACxsbH/9PT2//T09v/Nzc3/9fX2//X29//29/j/zc3N//j4+f/5+fr/+fr7/83N
282 | zf/7/Pz/+/z8/7Gxsf8AAAAAs7Oz//X19v/19fb/zc3N/83Nzf/Nzc3/zc3N/83Nzf/Nzc3/zc3N/83N
283 | zf/Nzc3/+/z9//z9/f+zs7P/AAAAALq6uv/3+Pn/9/j5//f4+f/4+fr/+fr6//r6+//Nzc3/+/z8//z9
284 | /f/8/f3//P39//3+/v/9/v7/uLi4/wAAAAC8vLz/+Pn6//j5+v/4+fr/+fr6//r6+/92dnb/bm5u/2Rk
285 | ZP/8/f3//f7+//3+/v/l5eb/39/g/7q6uv8AAAAAvb29//n6+v/5+vr/+fr6//r7+//7+/z/ioqK//T0
286 | 9P97e3v//f7+//3+/v+6urr/uLi4/7i4uP+6urr/AAAAAL+/v//6+/v/+vv7//r7+//7+/z/+/z8/5OT
287 | k/+QkJD/iIiI//3+/v/9/v7/xcXF//b29v+6urr/3d3dmwAAAADAwMD/+/v8//v7/P/7+/z/+/z8//z9
288 | /f/8/f3//f7+//3+/v/7/Pz//f7+/8rKyv+6urr/4+XipwAAAAAAAAAAwMDA/8DAwP/AwMD/wMDA/8DA
289 | wP/AwMD/wMDA/8DAwP/AwMD/wMDA/8DAwP+/v7//9fX1uQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
290 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD//wAAAAEAAAAB
291 | AAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAMAAAAHAAD//wAA
292 |
293 |
294 |
--------------------------------------------------------------------------------
/images/Darkmode.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ryanries/ADReplStatus/f29710dcce76266e09d79413fd3e231d8aee269f/images/Darkmode.png
--------------------------------------------------------------------------------
/images/DomainController.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ryanries/ADReplStatus/f29710dcce76266e09d79413fd3e231d8aee269f/images/DomainController.png
--------------------------------------------------------------------------------
/images/Error.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ryanries/ADReplStatus/f29710dcce76266e09d79413fd3e231d8aee269f/images/Error.png
--------------------------------------------------------------------------------
/images/Forest.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ryanries/ADReplStatus/f29710dcce76266e09d79413fd3e231d8aee269f/images/Forest.ico
--------------------------------------------------------------------------------
/images/Forest.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ryanries/ADReplStatus/f29710dcce76266e09d79413fd3e231d8aee269f/images/Forest.png
--------------------------------------------------------------------------------
/images/Go.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ryanries/ADReplStatus/f29710dcce76266e09d79413fd3e231d8aee269f/images/Go.png
--------------------------------------------------------------------------------
/images/KeyLock.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ryanries/ADReplStatus/f29710dcce76266e09d79413fd3e231d8aee269f/images/KeyLock.png
--------------------------------------------------------------------------------
/images/Logging.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ryanries/ADReplStatus/f29710dcce76266e09d79413fd3e231d8aee269f/images/Logging.png
--------------------------------------------------------------------------------
/packages.config:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
--------------------------------------------------------------------------------
/screenshot01.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ryanries/ADReplStatus/f29710dcce76266e09d79413fd3e231d8aee269f/screenshot01.png
--------------------------------------------------------------------------------
/screenshot02.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ryanries/ADReplStatus/f29710dcce76266e09d79413fd3e231d8aee269f/screenshot02.png
--------------------------------------------------------------------------------
/screenshot03.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ryanries/ADReplStatus/f29710dcce76266e09d79413fd3e231d8aee269f/screenshot03.png
--------------------------------------------------------------------------------
/screenshot04.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ryanries/ADReplStatus/f29710dcce76266e09d79413fd3e231d8aee269f/screenshot04.png
--------------------------------------------------------------------------------