reverting two last commits

This commit is contained in:
Perry Skountrianos
2016-03-25 12:18:02 -07:00
parent 169fe5efc1
commit 17111719c3
31 changed files with 1775 additions and 2055 deletions
-279
View File
@@ -1,279 +0,0 @@
commit 941728b552486e36f0512e60a39126cdc64c3017
Merge: 09cbf61 67e523f
Author: Jos de Bruijn <jodebrui@microsoft.com>
Date: Fri Mar 25 11:43:57 2016 -0700
fix
commit 09cbf61f9a02c8c2fbab1962430f56c8e0dbe4d1
Author: Jos de Bruijn <jodebrui@microsoft.com>
Date: Fri Mar 25 11:29:04 2016 -0700
maxTPS chart now picks up actual max TPS from the config on startup
commit 67e523f61fb65203656cf125279e7e7314a248d2
Author: Perry Skountrianos <peskount@microsoft.com>
Date: Fri Mar 25 10:53:00 2016 -0700
Readme Files edits
commit 5aa4a06ad261ef92a099e00488f7eac22337399a
Author: Perry Skountrianos - MSFT <perrysk-msft@users.noreply.github.com>
Date: Fri Mar 25 10:35:07 2016 -0700
Update README_samples_template.md
{minor} Fixing image link
commit 0eab92b6896d344ddc1a0667f64f7f406d591d78
Author: Perry Skountrianos - MSFT <perrysk-msft@users.noreply.github.com>
Date: Fri Mar 25 10:31:31 2016 -0700
Update README.md
commit cf7739f64d2e44b6596c68103627417a802f7f79
Author: Perry Skountrianos - MSFT <perrysk-msft@users.noreply.github.com>
Date: Fri Mar 25 10:27:27 2016 -0700
Update README.md
commit 93280eceed3a60c2cf391e22d14096389fc5f057
Merge: 4ab4739 3b7b1d9
Author: Barbara Kess <barbkess@users.noreply.github.com>
Date: Fri Mar 25 10:22:55 2016 -0700
Merge pull request #8 from barbkess/barb1
template
commit 3b7b1d9f380730f99f1b818fbcd4c36c4536d8ee
Author: barbkess <barbkess@microsoft.com>
Date: Fri Mar 25 10:21:39 2016 -0700
template
commit 4ab473960e1c13b4f0b84394b1b3147d8b6f1ce7
Merge: 8a7cd20 3caf055
Author: Barbara Kess <barbkess@users.noreply.github.com>
Date: Fri Mar 25 10:16:59 2016 -0700
Merge pull request #7 from barbkess/barb1
readme additions
commit 3caf055cf3a15b19e241a80cc60b149d600a9325
Author: barbkess <barbkess@microsoft.com>
Date: Fri Mar 25 10:16:32 2016 -0700
readme additions
commit 8a7cd2057475f17cb753c5ba8ba966ec94623b83
Author: Perry Skountrianos <peskount@microsoft.com>
Date: Fri Mar 25 09:32:42 2016 -0700
SQL Server main README
commit e9f789963a966dce42ce74e43a3a31bc9ac3b6c1
Merge: 3dfab3d 7c92bb2
Author: Barbara Kess <barbkess@users.noreply.github.com>
Date: Thu Mar 24 16:40:52 2016 -0700
Merge pull request #6 from barbkess/barb1
add SQL Server
commit 7c92bb2e8b0a4be887e22d6ad4e0965d9c0a6af4
Author: barbkess <barbkess@microsoft.com>
Date: Thu Mar 24 16:40:14 2016 -0700
add SQL Server
commit 3dfab3d049186eb7a84092668e67a28f9ed750c9
Merge: b8e285e bcf9774
Author: Barbara Kess <barbkess@users.noreply.github.com>
Date: Thu Mar 24 16:37:30 2016 -0700
Merge pull request #5 from barbkess/barb1
Barb1
commit bcf97740845737afdc1f4af11efd3e734e56cb3d
Author: barbkess <barbkess@microsoft.com>
Date: Thu Mar 24 16:36:59 2016 -0700
Add SQL Server
commit b8e285ed8c47f0b16ce356cead98dbbdeb96a153
Merge: c7ef59c 2ae7ee2
Author: Barbara Kess <barbkess@users.noreply.github.com>
Date: Thu Mar 24 16:13:27 2016 -0700
Merge pull request #4 from barbkess/barb1
new folders
commit 4e3ecef68616facf24b0e46095795b5bb08490cd
Merge: 2ae7ee2 c7ef59c
Author: barbkess <barbkess@microsoft.com>
Date: Thu Mar 24 16:11:49 2016 -0700
Merge branch 'master' of https://github.com/microsoft/sql-server-samples into barb1
commit 2ae7ee23e3c0b17c0be6d69223dde36b8a72eacb
Author: barbkess <barbkess@microsoft.com>
Date: Thu Mar 24 16:10:01 2016 -0700
new folders
commit c7ef59c3d5d982534e416d4e9bc61b9417d00c57
Merge: ab4366e 8fd70a4
Author: Barbara Kess <barbkess@users.noreply.github.com>
Date: Thu Mar 24 16:02:10 2016 -0700
Merge pull request #3 from barbkess/barb1
Barb1
commit 8fd70a46b8ea9735a13e935f830040c58b7cbbfe
Author: barbkess <barbkess@microsoft.com>
Date: Thu Mar 24 16:00:50 2016 -0700
license
commit b593b970abe8bb0f5bc5180603840e3206f1336d
Author: barbkess <barbkess@microsoft.com>
Date: Thu Mar 24 15:56:03 2016 -0700
initial folders
commit ab4366e421741163d9099f46d821760fc17407f2
Author: Perry Skountrianos - MSFT <perrysk-msft@users.noreply.github.com>
Date: Wed Mar 23 16:16:37 2016 -0700
Update FrmMain.cs
{minor} Removed try/catch for UpdateElapsed() as it was throwing on App Exit() while threads where still executing.
commit 02f5038d9892b3c98cf1b41da018af0f3430fbfc
Merge: fe728cc 5cce415
Author: Jos de Bruijn <jodebrui@users.noreply.github.com>
Date: Wed Mar 23 13:01:54 2016 -0700
Merge pull request #2 from jodebrui/master
Merge remote-tracking branch 'refs/remotes/Microsoft/master'
commit 5cce41548e742a6a363c304d6ef7dd4b0ef4ac44
Author: Jos de Bruijn <jodebrui@microsoft.com>
Date: Wed Mar 23 13:00:35 2016 -0700
Cleaned up unused data source references
commit 21cb882b86c713ca41be9cbf9eb79e3f84b2196c
Merge: ddff99f fe728cc
Author: Jos de Bruijn <jodebrui@microsoft.com>
Date: Wed Mar 23 12:23:42 2016 -0700
Merge remote-tracking branch 'refs/remotes/Microsoft/master'
commit fe728cc11ad81cc47f5442320d510ee527918222
Author: Jos de Bruijn <jodebrui@users.noreply.github.com>
Date: Wed Mar 23 12:18:27 2016 -0700
Update README.md
added elaboration on configuration and perf gain
commit ddff99f68e90822b9ab52cc07fe69b8ff4da0f6e
Author: Jos de Bruijn <jodebrui@microsoft.com>
Date: Wed Mar 23 10:59:25 2016 -0700
cleaning up workload
commit 0b7169cb0b6cdd61f0befded1c4938d1a3856d92
Merge: a6b5dfd 2a5bc88
Author: Jos de Bruijn <jodebrui@microsoft.com>
Date: Tue Mar 22 12:51:02 2016 -0700
Merge remote-tracking branch 'refs/remotes/Microsoft/master'
commit 2a5bc88ed64a96d92a26bb07cedd6c920addf69e
Author: Perry Skountrianos - MSFT <perrysk-msft@users.noreply.github.com>
Date: Tue Mar 22 12:39:36 2016 -0700
Update README.md
Initial Commit
commit 664318390f7bb8df1433c2c58d8fd8a947b68eb6
Merge: 2c74712 4d0578d
Author: Perry Skountrianos <peskount@microsoft.com>
Date: Tue Mar 22 12:28:18 2016 -0700
Merge branch 'master' of https://github.com/Microsoft/SQL-Server-Samples
commit 2c7471218b9bfe2648a396a78e4c4613c058b89d
Author: Perry Skountrianos <peskount@microsoft.com>
Date: Tue Mar 22 12:26:10 2016 -0700
readme.md Initial Checkin
commit 4d0578d95bb445006e179b233aec0e7240ebea86
Author: Perry Skountrianos - MSFT <perrysk-msft@users.noreply.github.com>
Date: Tue Mar 22 12:22:26 2016 -0700
Update README.md
Initial Commit
commit f29f0cc75dbedf1f2eaac7649a8bedc3b3203bb3
Author: Perry Skountrianos <peskount@microsoft.com>
Date: Tue Mar 22 12:19:58 2016 -0700
readme.md Initial Checkin
commit 10d0c27c35db84f2cbf3887bdf52a5e42913b7a4
Author: Perry Skountrianos <peskount@microsoft.com>
Date: Tue Mar 22 12:17:11 2016 -0700
readme.md Initial Checkin
commit 22eb0ed964f4237a4be0ccfd6f1075e5e99b118a
Author: Perry Skountrianos <peskount@microsoft.com>
Date: Tue Mar 22 10:54:16 2016 -0700
Basic Error Handling, Renaming HekatonDemoFramework to DemoWorkload
commit 837e4a5f117eb0b9d0a25304523c484664de83a2
Merge: 5216b48 a6b5dfd
Author: Perry Skountrianos - MSFT <perrysk-msft@users.noreply.github.com>
Date: Fri Mar 18 16:47:11 2016 -0700
Merge pull request #1 from jodebrui/master
* added persistence of configuration changes
commit a6b5dfd8cdee90f1c6af24f65d74fc83de9efd20
Author: Jos de Bruijn <jodebrui@microsoft.com>
Date: Fri Mar 18 16:36:04 2016 -0700
* added persistence of configuration changes
* reverted server name in app.config to '.'
commit 5216b48686352c6fcf476d69acd731762533f4c8
Author: Perry Skountrianos <peskount@microsoft.com>
Date: Wed Mar 16 17:16:41 2016 -0700
Initial Commit
commit 163743c49200016b84f7dd7f638051dc1f39d0fe
Author: Perry Skountrianos <peskount@microsoft.com>
Date: Wed Mar 16 17:15:01 2016 -0700
Initial Commit
commit 0cd204129c9b9674c31837bf857059be782bbdeb
Author: Microsoft GitHub User <msftgits@microsoft.com>
Date: Fri Mar 11 13:42:57 2016 -0800
Initial commit
@@ -1,14 +1,14 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<ProjectView>ShowAllFiles</ProjectView>
<PublishUrlHistory>publish\</PublishUrlHistory>
<InstallUrlHistory />
<SupportUrlHistory />
<UpdateUrlHistory />
<BootstrapperUrlHistory />
<ErrorReportUrlHistory />
<FallbackCulture>en-US</FallbackCulture>
<VerifyUploadedFiles>false</VerifyUploadedFiles>
</PropertyGroup>
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<ProjectView>ShowAllFiles</ProjectView>
<PublishUrlHistory>publish\</PublishUrlHistory>
<InstallUrlHistory />
<SupportUrlHistory />
<UpdateUrlHistory />
<BootstrapperUrlHistory />
<ErrorReportUrlHistory />
<FallbackCulture>en-US</FallbackCulture>
<VerifyUploadedFiles>false</VerifyUploadedFiles>
</PropertyGroup>
</Project>
@@ -1,237 +1,237 @@
<?xml version="1.0" encoding="utf-8"?>
<RuleSet Name="Rules for DemoWorkload" Description="Code analysis rules for DemoWorkload.csproj." ToolsVersion="14.0">
<Rules AnalyzerId="Microsoft.Analyzers.ManagedCodeAnalysis" RuleNamespace="Microsoft.Rules.Managed">
<Rule Id="CA1000" Action="Warning" />
<Rule Id="CA1001" Action="Warning" />
<Rule Id="CA1002" Action="Warning" />
<Rule Id="CA1003" Action="Warning" />
<Rule Id="CA1004" Action="Warning" />
<Rule Id="CA1005" Action="Warning" />
<Rule Id="CA1006" Action="Warning" />
<Rule Id="CA1007" Action="Warning" />
<Rule Id="CA1008" Action="Warning" />
<Rule Id="CA1009" Action="Warning" />
<Rule Id="CA1010" Action="Warning" />
<Rule Id="CA1011" Action="Warning" />
<Rule Id="CA1012" Action="Warning" />
<Rule Id="CA1013" Action="Warning" />
<Rule Id="CA1014" Action="Warning" />
<Rule Id="CA1016" Action="Warning" />
<Rule Id="CA1017" Action="Warning" />
<Rule Id="CA1018" Action="Warning" />
<Rule Id="CA1019" Action="Warning" />
<Rule Id="CA1020" Action="Warning" />
<Rule Id="CA1021" Action="Warning" />
<Rule Id="CA1023" Action="Warning" />
<Rule Id="CA1024" Action="Warning" />
<Rule Id="CA1025" Action="Warning" />
<Rule Id="CA1026" Action="Warning" />
<Rule Id="CA1027" Action="Warning" />
<Rule Id="CA1028" Action="Warning" />
<Rule Id="CA1030" Action="Warning" />
<Rule Id="CA1031" Action="Warning" />
<Rule Id="CA1032" Action="Warning" />
<Rule Id="CA1033" Action="Warning" />
<Rule Id="CA1034" Action="Warning" />
<Rule Id="CA1035" Action="Warning" />
<Rule Id="CA1036" Action="Warning" />
<Rule Id="CA1038" Action="Warning" />
<Rule Id="CA1039" Action="Warning" />
<Rule Id="CA1040" Action="Warning" />
<Rule Id="CA1041" Action="Warning" />
<Rule Id="CA1043" Action="Warning" />
<Rule Id="CA1044" Action="Warning" />
<Rule Id="CA1045" Action="Warning" />
<Rule Id="CA1046" Action="Warning" />
<Rule Id="CA1047" Action="Warning" />
<Rule Id="CA1048" Action="Warning" />
<Rule Id="CA1049" Action="Warning" />
<Rule Id="CA1050" Action="Warning" />
<Rule Id="CA1051" Action="Warning" />
<Rule Id="CA1052" Action="Warning" />
<Rule Id="CA1053" Action="Warning" />
<Rule Id="CA1054" Action="Warning" />
<Rule Id="CA1055" Action="Warning" />
<Rule Id="CA1056" Action="Warning" />
<Rule Id="CA1057" Action="Warning" />
<Rule Id="CA1058" Action="Warning" />
<Rule Id="CA1059" Action="Warning" />
<Rule Id="CA1060" Action="Warning" />
<Rule Id="CA1061" Action="Warning" />
<Rule Id="CA1062" Action="Warning" />
<Rule Id="CA1063" Action="Warning" />
<Rule Id="CA1064" Action="Warning" />
<Rule Id="CA1065" Action="Warning" />
<Rule Id="CA1300" Action="Warning" />
<Rule Id="CA1301" Action="Warning" />
<Rule Id="CA1302" Action="Warning" />
<Rule Id="CA1303" Action="Warning" />
<Rule Id="CA1304" Action="Warning" />
<Rule Id="CA1305" Action="Warning" />
<Rule Id="CA1306" Action="Warning" />
<Rule Id="CA1307" Action="Warning" />
<Rule Id="CA1308" Action="Warning" />
<Rule Id="CA1309" Action="Warning" />
<Rule Id="CA1400" Action="Warning" />
<Rule Id="CA1401" Action="Warning" />
<Rule Id="CA1402" Action="Warning" />
<Rule Id="CA1403" Action="Warning" />
<Rule Id="CA1404" Action="Warning" />
<Rule Id="CA1405" Action="Warning" />
<Rule Id="CA1406" Action="Warning" />
<Rule Id="CA1407" Action="Warning" />
<Rule Id="CA1408" Action="Warning" />
<Rule Id="CA1409" Action="Warning" />
<Rule Id="CA1410" Action="Warning" />
<Rule Id="CA1411" Action="Warning" />
<Rule Id="CA1412" Action="Warning" />
<Rule Id="CA1413" Action="Warning" />
<Rule Id="CA1414" Action="Warning" />
<Rule Id="CA1415" Action="Warning" />
<Rule Id="CA1500" Action="Warning" />
<Rule Id="CA1501" Action="Warning" />
<Rule Id="CA1502" Action="Warning" />
<Rule Id="CA1504" Action="Warning" />
<Rule Id="CA1505" Action="Warning" />
<Rule Id="CA1506" Action="Warning" />
<Rule Id="CA1600" Action="Warning" />
<Rule Id="CA1601" Action="Warning" />
<Rule Id="CA1700" Action="Warning" />
<Rule Id="CA1701" Action="Warning" />
<Rule Id="CA1702" Action="Warning" />
<Rule Id="CA1703" Action="Warning" />
<Rule Id="CA1704" Action="Warning" />
<Rule Id="CA1707" Action="Warning" />
<Rule Id="CA1708" Action="Warning" />
<Rule Id="CA1709" Action="Warning" />
<Rule Id="CA1710" Action="Warning" />
<Rule Id="CA1711" Action="Warning" />
<Rule Id="CA1712" Action="Warning" />
<Rule Id="CA1713" Action="Warning" />
<Rule Id="CA1714" Action="Warning" />
<Rule Id="CA1715" Action="Warning" />
<Rule Id="CA1716" Action="Warning" />
<Rule Id="CA1717" Action="Warning" />
<Rule Id="CA1719" Action="Warning" />
<Rule Id="CA1720" Action="Warning" />
<Rule Id="CA1721" Action="Warning" />
<Rule Id="CA1722" Action="Warning" />
<Rule Id="CA1724" Action="Warning" />
<Rule Id="CA1725" Action="Warning" />
<Rule Id="CA1726" Action="Warning" />
<Rule Id="CA1800" Action="Warning" />
<Rule Id="CA1801" Action="Warning" />
<Rule Id="CA1802" Action="Warning" />
<Rule Id="CA1804" Action="Warning" />
<Rule Id="CA1806" Action="Warning" />
<Rule Id="CA1809" Action="Warning" />
<Rule Id="CA1810" Action="Warning" />
<Rule Id="CA1811" Action="Warning" />
<Rule Id="CA1812" Action="Warning" />
<Rule Id="CA1813" Action="Warning" />
<Rule Id="CA1814" Action="Warning" />
<Rule Id="CA1815" Action="Warning" />
<Rule Id="CA1816" Action="Warning" />
<Rule Id="CA1819" Action="Warning" />
<Rule Id="CA1820" Action="Warning" />
<Rule Id="CA1821" Action="Warning" />
<Rule Id="CA1822" Action="Warning" />
<Rule Id="CA1823" Action="Warning" />
<Rule Id="CA1824" Action="Warning" />
<Rule Id="CA1900" Action="Warning" />
<Rule Id="CA1901" Action="Warning" />
<Rule Id="CA1903" Action="Warning" />
<Rule Id="CA2000" Action="Warning" />
<Rule Id="CA2001" Action="Warning" />
<Rule Id="CA2002" Action="Warning" />
<Rule Id="CA2003" Action="Warning" />
<Rule Id="CA2004" Action="Warning" />
<Rule Id="CA2006" Action="Warning" />
<Rule Id="CA2100" Action="Warning" />
<Rule Id="CA2101" Action="Warning" />
<Rule Id="CA2102" Action="Warning" />
<Rule Id="CA2103" Action="Warning" />
<Rule Id="CA2104" Action="Warning" />
<Rule Id="CA2105" Action="Warning" />
<Rule Id="CA2106" Action="Warning" />
<Rule Id="CA2107" Action="Warning" />
<Rule Id="CA2108" Action="Warning" />
<Rule Id="CA2109" Action="Warning" />
<Rule Id="CA2111" Action="Warning" />
<Rule Id="CA2112" Action="Warning" />
<Rule Id="CA2114" Action="Warning" />
<Rule Id="CA2115" Action="Warning" />
<Rule Id="CA2116" Action="Warning" />
<Rule Id="CA2117" Action="Warning" />
<Rule Id="CA2118" Action="Warning" />
<Rule Id="CA2119" Action="Warning" />
<Rule Id="CA2120" Action="Warning" />
<Rule Id="CA2121" Action="Warning" />
<Rule Id="CA2122" Action="Warning" />
<Rule Id="CA2123" Action="Warning" />
<Rule Id="CA2124" Action="Warning" />
<Rule Id="CA2126" Action="Warning" />
<Rule Id="CA2130" Action="Warning" />
<Rule Id="CA2131" Action="Warning" />
<Rule Id="CA2132" Action="Warning" />
<Rule Id="CA2133" Action="Warning" />
<Rule Id="CA2134" Action="Warning" />
<Rule Id="CA2135" Action="Warning" />
<Rule Id="CA2136" Action="Warning" />
<Rule Id="CA2137" Action="Warning" />
<Rule Id="CA2138" Action="Warning" />
<Rule Id="CA2139" Action="Warning" />
<Rule Id="CA2140" Action="Warning" />
<Rule Id="CA2141" Action="Warning" />
<Rule Id="CA2142" Action="Warning" />
<Rule Id="CA2143" Action="Warning" />
<Rule Id="CA2144" Action="Warning" />
<Rule Id="CA2145" Action="Warning" />
<Rule Id="CA2146" Action="Warning" />
<Rule Id="CA2147" Action="Warning" />
<Rule Id="CA2149" Action="Warning" />
<Rule Id="CA2151" Action="Warning" />
<Rule Id="CA2200" Action="Warning" />
<Rule Id="CA2201" Action="Warning" />
<Rule Id="CA2202" Action="Warning" />
<Rule Id="CA2204" Action="Warning" />
<Rule Id="CA2205" Action="Warning" />
<Rule Id="CA2207" Action="Warning" />
<Rule Id="CA2208" Action="Warning" />
<Rule Id="CA2210" Action="Warning" />
<Rule Id="CA2211" Action="Warning" />
<Rule Id="CA2212" Action="Warning" />
<Rule Id="CA2213" Action="Warning" />
<Rule Id="CA2214" Action="Warning" />
<Rule Id="CA2215" Action="Warning" />
<Rule Id="CA2216" Action="Warning" />
<Rule Id="CA2217" Action="Warning" />
<Rule Id="CA2218" Action="Warning" />
<Rule Id="CA2219" Action="Warning" />
<Rule Id="CA2220" Action="Warning" />
<Rule Id="CA2221" Action="Warning" />
<Rule Id="CA2222" Action="Warning" />
<Rule Id="CA2223" Action="Warning" />
<Rule Id="CA2224" Action="Warning" />
<Rule Id="CA2225" Action="Warning" />
<Rule Id="CA2226" Action="Warning" />
<Rule Id="CA2227" Action="Warning" />
<Rule Id="CA2228" Action="Warning" />
<Rule Id="CA2229" Action="Warning" />
<Rule Id="CA2230" Action="Warning" />
<Rule Id="CA2231" Action="Warning" />
<Rule Id="CA2232" Action="Warning" />
<Rule Id="CA2233" Action="Warning" />
<Rule Id="CA2234" Action="Warning" />
<Rule Id="CA2235" Action="Warning" />
<Rule Id="CA2236" Action="Warning" />
<Rule Id="CA2237" Action="Warning" />
<Rule Id="CA2238" Action="Warning" />
<Rule Id="CA2239" Action="Warning" />
<Rule Id="CA2240" Action="Warning" />
<Rule Id="CA2241" Action="Warning" />
<Rule Id="CA2242" Action="Warning" />
<Rule Id="CA2243" Action="Warning" />
<Rule Id="CA5122" Action="Warning" />
</Rules>
<?xml version="1.0" encoding="utf-8"?>
<RuleSet Name="Rules for DemoWorkload" Description="Code analysis rules for DemoWorkload.csproj." ToolsVersion="14.0">
<Rules AnalyzerId="Microsoft.Analyzers.ManagedCodeAnalysis" RuleNamespace="Microsoft.Rules.Managed">
<Rule Id="CA1000" Action="Warning" />
<Rule Id="CA1001" Action="Warning" />
<Rule Id="CA1002" Action="Warning" />
<Rule Id="CA1003" Action="Warning" />
<Rule Id="CA1004" Action="Warning" />
<Rule Id="CA1005" Action="Warning" />
<Rule Id="CA1006" Action="Warning" />
<Rule Id="CA1007" Action="Warning" />
<Rule Id="CA1008" Action="Warning" />
<Rule Id="CA1009" Action="Warning" />
<Rule Id="CA1010" Action="Warning" />
<Rule Id="CA1011" Action="Warning" />
<Rule Id="CA1012" Action="Warning" />
<Rule Id="CA1013" Action="Warning" />
<Rule Id="CA1014" Action="Warning" />
<Rule Id="CA1016" Action="Warning" />
<Rule Id="CA1017" Action="Warning" />
<Rule Id="CA1018" Action="Warning" />
<Rule Id="CA1019" Action="Warning" />
<Rule Id="CA1020" Action="Warning" />
<Rule Id="CA1021" Action="Warning" />
<Rule Id="CA1023" Action="Warning" />
<Rule Id="CA1024" Action="Warning" />
<Rule Id="CA1025" Action="Warning" />
<Rule Id="CA1026" Action="Warning" />
<Rule Id="CA1027" Action="Warning" />
<Rule Id="CA1028" Action="Warning" />
<Rule Id="CA1030" Action="Warning" />
<Rule Id="CA1031" Action="Warning" />
<Rule Id="CA1032" Action="Warning" />
<Rule Id="CA1033" Action="Warning" />
<Rule Id="CA1034" Action="Warning" />
<Rule Id="CA1035" Action="Warning" />
<Rule Id="CA1036" Action="Warning" />
<Rule Id="CA1038" Action="Warning" />
<Rule Id="CA1039" Action="Warning" />
<Rule Id="CA1040" Action="Warning" />
<Rule Id="CA1041" Action="Warning" />
<Rule Id="CA1043" Action="Warning" />
<Rule Id="CA1044" Action="Warning" />
<Rule Id="CA1045" Action="Warning" />
<Rule Id="CA1046" Action="Warning" />
<Rule Id="CA1047" Action="Warning" />
<Rule Id="CA1048" Action="Warning" />
<Rule Id="CA1049" Action="Warning" />
<Rule Id="CA1050" Action="Warning" />
<Rule Id="CA1051" Action="Warning" />
<Rule Id="CA1052" Action="Warning" />
<Rule Id="CA1053" Action="Warning" />
<Rule Id="CA1054" Action="Warning" />
<Rule Id="CA1055" Action="Warning" />
<Rule Id="CA1056" Action="Warning" />
<Rule Id="CA1057" Action="Warning" />
<Rule Id="CA1058" Action="Warning" />
<Rule Id="CA1059" Action="Warning" />
<Rule Id="CA1060" Action="Warning" />
<Rule Id="CA1061" Action="Warning" />
<Rule Id="CA1062" Action="Warning" />
<Rule Id="CA1063" Action="Warning" />
<Rule Id="CA1064" Action="Warning" />
<Rule Id="CA1065" Action="Warning" />
<Rule Id="CA1300" Action="Warning" />
<Rule Id="CA1301" Action="Warning" />
<Rule Id="CA1302" Action="Warning" />
<Rule Id="CA1303" Action="Warning" />
<Rule Id="CA1304" Action="Warning" />
<Rule Id="CA1305" Action="Warning" />
<Rule Id="CA1306" Action="Warning" />
<Rule Id="CA1307" Action="Warning" />
<Rule Id="CA1308" Action="Warning" />
<Rule Id="CA1309" Action="Warning" />
<Rule Id="CA1400" Action="Warning" />
<Rule Id="CA1401" Action="Warning" />
<Rule Id="CA1402" Action="Warning" />
<Rule Id="CA1403" Action="Warning" />
<Rule Id="CA1404" Action="Warning" />
<Rule Id="CA1405" Action="Warning" />
<Rule Id="CA1406" Action="Warning" />
<Rule Id="CA1407" Action="Warning" />
<Rule Id="CA1408" Action="Warning" />
<Rule Id="CA1409" Action="Warning" />
<Rule Id="CA1410" Action="Warning" />
<Rule Id="CA1411" Action="Warning" />
<Rule Id="CA1412" Action="Warning" />
<Rule Id="CA1413" Action="Warning" />
<Rule Id="CA1414" Action="Warning" />
<Rule Id="CA1415" Action="Warning" />
<Rule Id="CA1500" Action="Warning" />
<Rule Id="CA1501" Action="Warning" />
<Rule Id="CA1502" Action="Warning" />
<Rule Id="CA1504" Action="Warning" />
<Rule Id="CA1505" Action="Warning" />
<Rule Id="CA1506" Action="Warning" />
<Rule Id="CA1600" Action="Warning" />
<Rule Id="CA1601" Action="Warning" />
<Rule Id="CA1700" Action="Warning" />
<Rule Id="CA1701" Action="Warning" />
<Rule Id="CA1702" Action="Warning" />
<Rule Id="CA1703" Action="Warning" />
<Rule Id="CA1704" Action="Warning" />
<Rule Id="CA1707" Action="Warning" />
<Rule Id="CA1708" Action="Warning" />
<Rule Id="CA1709" Action="Warning" />
<Rule Id="CA1710" Action="Warning" />
<Rule Id="CA1711" Action="Warning" />
<Rule Id="CA1712" Action="Warning" />
<Rule Id="CA1713" Action="Warning" />
<Rule Id="CA1714" Action="Warning" />
<Rule Id="CA1715" Action="Warning" />
<Rule Id="CA1716" Action="Warning" />
<Rule Id="CA1717" Action="Warning" />
<Rule Id="CA1719" Action="Warning" />
<Rule Id="CA1720" Action="Warning" />
<Rule Id="CA1721" Action="Warning" />
<Rule Id="CA1722" Action="Warning" />
<Rule Id="CA1724" Action="Warning" />
<Rule Id="CA1725" Action="Warning" />
<Rule Id="CA1726" Action="Warning" />
<Rule Id="CA1800" Action="Warning" />
<Rule Id="CA1801" Action="Warning" />
<Rule Id="CA1802" Action="Warning" />
<Rule Id="CA1804" Action="Warning" />
<Rule Id="CA1806" Action="Warning" />
<Rule Id="CA1809" Action="Warning" />
<Rule Id="CA1810" Action="Warning" />
<Rule Id="CA1811" Action="Warning" />
<Rule Id="CA1812" Action="Warning" />
<Rule Id="CA1813" Action="Warning" />
<Rule Id="CA1814" Action="Warning" />
<Rule Id="CA1815" Action="Warning" />
<Rule Id="CA1816" Action="Warning" />
<Rule Id="CA1819" Action="Warning" />
<Rule Id="CA1820" Action="Warning" />
<Rule Id="CA1821" Action="Warning" />
<Rule Id="CA1822" Action="Warning" />
<Rule Id="CA1823" Action="Warning" />
<Rule Id="CA1824" Action="Warning" />
<Rule Id="CA1900" Action="Warning" />
<Rule Id="CA1901" Action="Warning" />
<Rule Id="CA1903" Action="Warning" />
<Rule Id="CA2000" Action="Warning" />
<Rule Id="CA2001" Action="Warning" />
<Rule Id="CA2002" Action="Warning" />
<Rule Id="CA2003" Action="Warning" />
<Rule Id="CA2004" Action="Warning" />
<Rule Id="CA2006" Action="Warning" />
<Rule Id="CA2100" Action="Warning" />
<Rule Id="CA2101" Action="Warning" />
<Rule Id="CA2102" Action="Warning" />
<Rule Id="CA2103" Action="Warning" />
<Rule Id="CA2104" Action="Warning" />
<Rule Id="CA2105" Action="Warning" />
<Rule Id="CA2106" Action="Warning" />
<Rule Id="CA2107" Action="Warning" />
<Rule Id="CA2108" Action="Warning" />
<Rule Id="CA2109" Action="Warning" />
<Rule Id="CA2111" Action="Warning" />
<Rule Id="CA2112" Action="Warning" />
<Rule Id="CA2114" Action="Warning" />
<Rule Id="CA2115" Action="Warning" />
<Rule Id="CA2116" Action="Warning" />
<Rule Id="CA2117" Action="Warning" />
<Rule Id="CA2118" Action="Warning" />
<Rule Id="CA2119" Action="Warning" />
<Rule Id="CA2120" Action="Warning" />
<Rule Id="CA2121" Action="Warning" />
<Rule Id="CA2122" Action="Warning" />
<Rule Id="CA2123" Action="Warning" />
<Rule Id="CA2124" Action="Warning" />
<Rule Id="CA2126" Action="Warning" />
<Rule Id="CA2130" Action="Warning" />
<Rule Id="CA2131" Action="Warning" />
<Rule Id="CA2132" Action="Warning" />
<Rule Id="CA2133" Action="Warning" />
<Rule Id="CA2134" Action="Warning" />
<Rule Id="CA2135" Action="Warning" />
<Rule Id="CA2136" Action="Warning" />
<Rule Id="CA2137" Action="Warning" />
<Rule Id="CA2138" Action="Warning" />
<Rule Id="CA2139" Action="Warning" />
<Rule Id="CA2140" Action="Warning" />
<Rule Id="CA2141" Action="Warning" />
<Rule Id="CA2142" Action="Warning" />
<Rule Id="CA2143" Action="Warning" />
<Rule Id="CA2144" Action="Warning" />
<Rule Id="CA2145" Action="Warning" />
<Rule Id="CA2146" Action="Warning" />
<Rule Id="CA2147" Action="Warning" />
<Rule Id="CA2149" Action="Warning" />
<Rule Id="CA2151" Action="Warning" />
<Rule Id="CA2200" Action="Warning" />
<Rule Id="CA2201" Action="Warning" />
<Rule Id="CA2202" Action="Warning" />
<Rule Id="CA2204" Action="Warning" />
<Rule Id="CA2205" Action="Warning" />
<Rule Id="CA2207" Action="Warning" />
<Rule Id="CA2208" Action="Warning" />
<Rule Id="CA2210" Action="Warning" />
<Rule Id="CA2211" Action="Warning" />
<Rule Id="CA2212" Action="Warning" />
<Rule Id="CA2213" Action="Warning" />
<Rule Id="CA2214" Action="Warning" />
<Rule Id="CA2215" Action="Warning" />
<Rule Id="CA2216" Action="Warning" />
<Rule Id="CA2217" Action="Warning" />
<Rule Id="CA2218" Action="Warning" />
<Rule Id="CA2219" Action="Warning" />
<Rule Id="CA2220" Action="Warning" />
<Rule Id="CA2221" Action="Warning" />
<Rule Id="CA2222" Action="Warning" />
<Rule Id="CA2223" Action="Warning" />
<Rule Id="CA2224" Action="Warning" />
<Rule Id="CA2225" Action="Warning" />
<Rule Id="CA2226" Action="Warning" />
<Rule Id="CA2227" Action="Warning" />
<Rule Id="CA2228" Action="Warning" />
<Rule Id="CA2229" Action="Warning" />
<Rule Id="CA2230" Action="Warning" />
<Rule Id="CA2231" Action="Warning" />
<Rule Id="CA2232" Action="Warning" />
<Rule Id="CA2233" Action="Warning" />
<Rule Id="CA2234" Action="Warning" />
<Rule Id="CA2235" Action="Warning" />
<Rule Id="CA2236" Action="Warning" />
<Rule Id="CA2237" Action="Warning" />
<Rule Id="CA2238" Action="Warning" />
<Rule Id="CA2239" Action="Warning" />
<Rule Id="CA2240" Action="Warning" />
<Rule Id="CA2241" Action="Warning" />
<Rule Id="CA2242" Action="Warning" />
<Rule Id="CA2243" Action="Warning" />
<Rule Id="CA5122" Action="Warning" />
</Rules>
</RuleSet>
@@ -1,68 +1,68 @@
using System;
using System.Configuration;
using System.Windows.Forms;
namespace DemoWorkload
{
public partial class FrmConfig : Form
{
public FrmConfig()
{
InitializeComponent();
}
private void ConfigForm_Load(object sender, EventArgs e)
{
tbConnectionString.Text = Program.CONN_STR;
TransactionCount.Value = Program.TRANSACTION_COUNT;
ThreadCount.Value = Program.THREAD_COUNT;
ReadsPerWrite.Value = Program.READS_PER_WRITE;
RequestCount.Value = Program.REQUEST_COUNT;
RowCount.Value = Program.ROW_COUNT;
txtMaxLatch.Text = Program.MAX_LATCH_WAIT.ToString();
txtMaxTPS.Text = Program.MAX_TPS.ToString();
}
private void btnSave_Click(object sender, EventArgs e)
{
Program.THREAD_COUNT = (int)this.ThreadCount.Value;
Program.READS_PER_WRITE = (int)this.ReadsPerWrite.Value;
Program.REQUEST_COUNT = (int)this.RequestCount.Value;
Program.ROW_COUNT = (int)this.RowCount.Value;
Program.TRANSACTION_COUNT = (int)this.TransactionCount.Value;
Program.CONN_STR = this.tbConnectionString.Text;
Program.MAX_TPS = Convert.ToInt32(this.txtMaxTPS.Text);
Program.MAX_LATCH_WAIT = Convert.ToInt32(this.txtMaxLatch.Text);
// also persist changes in app config
Configuration config = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);
KeyValueConfigurationCollection settings = config.AppSettings.Settings;
ConnectionStringSettingsCollection connStrs = config.ConnectionStrings.ConnectionStrings;
// update SaveBeforeExit
settings["ThreadCount"].Value = Program.THREAD_COUNT.ToString();
settings["ReadsPerWrite"].Value = Program.READS_PER_WRITE.ToString();
settings["RequestCount"].Value = Program.REQUEST_COUNT.ToString();
settings["RowCount"].Value = Program.ROW_COUNT.ToString();
settings["TransactionCount"].Value = Program.TRANSACTION_COUNT.ToString();
settings["MaxTps"].Value = Program.MAX_TPS.ToString();
settings["MaxLatchWaits"].Value = Program.MAX_LATCH_WAIT.ToString();
connStrs["TicketReservations"].ConnectionString = Program.CONN_STR;
//save the file
config.Save(ConfigurationSaveMode.Modified);
}
private void tbInstance_TextChanged(object sender, EventArgs e)
{
}
private void label1_Click(object sender, EventArgs e)
{
}
}
}
using System;
using System.Configuration;
using System.Windows.Forms;
namespace DemoWorkload
{
public partial class FrmConfig : Form
{
public FrmConfig()
{
InitializeComponent();
}
private void ConfigForm_Load(object sender, EventArgs e)
{
tbConnectionString.Text = Program.CONN_STR;
TransactionCount.Value = Program.TRANSACTION_COUNT;
ThreadCount.Value = Program.THREAD_COUNT;
ReadsPerWrite.Value = Program.READS_PER_WRITE;
RequestCount.Value = Program.REQUEST_COUNT;
RowCount.Value = Program.ROW_COUNT;
txtMaxLatch.Text = Program.MAX_LATCH_WAIT.ToString();
txtMaxTPS.Text = Program.MAX_TPS.ToString();
}
private void btnSave_Click(object sender, EventArgs e)
{
Program.THREAD_COUNT = (int)this.ThreadCount.Value;
Program.READS_PER_WRITE = (int)this.ReadsPerWrite.Value;
Program.REQUEST_COUNT = (int)this.RequestCount.Value;
Program.ROW_COUNT = (int)this.RowCount.Value;
Program.TRANSACTION_COUNT = (int)this.TransactionCount.Value;
Program.CONN_STR = this.tbConnectionString.Text;
Program.MAX_TPS = Convert.ToInt32(this.txtMaxTPS.Text);
Program.MAX_LATCH_WAIT = Convert.ToInt32(this.txtMaxLatch.Text);
// also persist changes in app config
Configuration config = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);
KeyValueConfigurationCollection settings = config.AppSettings.Settings;
ConnectionStringSettingsCollection connStrs = config.ConnectionStrings.ConnectionStrings;
// update SaveBeforeExit
settings["ThreadCount"].Value = Program.THREAD_COUNT.ToString();
settings["ReadsPerWrite"].Value = Program.READS_PER_WRITE.ToString();
settings["RequestCount"].Value = Program.REQUEST_COUNT.ToString();
settings["RowCount"].Value = Program.ROW_COUNT.ToString();
settings["TransactionCount"].Value = Program.TRANSACTION_COUNT.ToString();
settings["MaxTps"].Value = Program.MAX_TPS.ToString();
settings["MaxLatchWaits"].Value = Program.MAX_LATCH_WAIT.ToString();
connStrs["TicketReservations"].ConnectionString = Program.CONN_STR;
//save the file
config.Save(ConfigurationSaveMode.Modified);
}
private void tbInstance_TextChanged(object sender, EventArgs e)
{
}
private void label1_Click(object sender, EventArgs e)
{
}
}
}
@@ -1,500 +1,500 @@
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
Version 2.0
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value>
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" use="required" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="assembly">
<xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<data name="$this.Icon" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
AAABAAYAEBAAAAEACABoBQAAZgAAABAQAAABACAAaAQAAM4FAAAgIAAAAQAIAKgIAAA2CgAAICAAAAEA
IACoEAAA3hIAADAwAAABAAgAqA4AAIYjAAAwMAAAAQAgAKglAAAuMgAAKAAAABAAAAAgAAAAAQAIAAAA
AAAAAQAAAAAAAAAAAAAAAQAAAAEAAAAAAADIxsYAx6SUAPLSwwDz18sAsaCYAMa5swD56+UA0MfDAPvy
7gDGopAAxqOSAMellADHppUAyKiYANW0pACeh3wA17mqAMmuoACgin8AyrCjAKOOhADy1MUA8tXHAPPX
yQD13tMA9d/UAPbi2AD35NsA+OXcALmtpwD46uMAxqSSAMiolwDIq5sAqZaMAM25rgC7raUA1sa9ALit
pwDQycUAkX90AKaThwCxoJYArZySAK+flQC2p54AwLStAL2zrQDCurUAYk5AAG9cTwCfiHgAlIByAL2p
mwCZiH0AxLCiAKWVigCll44A3tTNAMrBuwDGwLwAW0U0AGVNOwBaRjcAcFlIAG9ZSAB8ZlYAkXppAIhz
ZACmkYEArpmKAL6snwD68uwA/Pj1AGdVRgB2ZFYAf21fALaikgDXyb4A4dzYAMW9tgDT0c4AV41YAM76
/gDH8/oAu+z2AMX0/QDm6+wA3O3xAKDq/gCsy9QAu9jgALPX4gCgqq0AleP9AJXi/ACYzeAAss3XAJmr
sQCksLQAaL7iAHDL7gCSxdoAjbXFAGbB6ABmveQAlcjeAHGPngCsws4AgZajAK2+yQCmqq8A////APz8
/AD///8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKzVFQ0JBQT86AAAAAAAAABBRIQ0MIAsKPgAAAAAAAAAT
cRgXFgNTAkAAAAAAAAAAFXEBY15sJg4yAAAAAAAAACpxaGBVZXAiSwAAAAAAAAAjcWdfVWluEjMAAAAA
AAAALHFrX1VqbxRMAAAAAAAAAAVxYVpVZm0bTQAAAAAAAAAuO11XVFZkREQAAAAAAAAAJXFZXFtiWCQp
AAAAAAAAAC9xcXFxcXFxNwAAAAAAAAAGTzg2TkdGNDQAAAAAAAAACHFKSR8cGREtAAAAAAAAAChycXFx
cXFQSAAAAAAAAABSPTEwJx4eHh4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAgD8AAIA/AACAPwAAgD8AAIA/
AACAPwAAgD8AAIA/AACAPwAAgD8AAIA/AACAPwAAgD8AAIA/AACAPwAA//8AACgAAAAQAAAAIAAAAAEA
IAAAAAAAQAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAsaCW/5SAcv+Ic2T/fGZW/29ZSP9wWUj/cFlI/2VN
O/+ll47/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJ6HfP/Fvbb/yKiX/8emlf/HpZT/xqSS/8aj
kv/GopD/W0U0/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACgin////////PXyf/y1cf/8tTF//LS
w/9XjVj/x6SU/1pGN/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAo46E///////Ixsb/maux/6Cq
rf9xj57/1sa9/8iomP9iTkD/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKaTh///////jbXF/5Xi
/P/H8/r/aL7i/6aqr//Iq5v/Z1VG/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACploz//////5LF
2v+V4/3/x/P6/2bB6P+BlqP/ya6g/29cT/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAArZyS////
//+VyN7/leP9/8fz+v9mveT/rb7J/8qwo/92ZFb/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALGg
mP//////mM3g/6Dq/v/H8/r/cMvu/6zCzv/24tj/f21f/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAC2p57/3tTN/7PX4v/F9P3/zvr+/7vs9v+ksLT/kXpp/5F6af8AAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAu62l///////c7fH/u9jg/6zL1P+yzdf/5uvs/825rv+Rf3T/AAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAMC0rf//////////////////////////////////////mYh9/wAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAADGubP/18m+/8Swov+9qZv/tqKS/66Ziv+mkYH/n4h4/5+IeP8AAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAA0MfD///////8+PX/+vLs//jq4//35Nv/9d7T/9e5qv+vn5X/AAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAANDJxf/8/Pz////////////////////////////h3Nj/vqyf/wAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADT0c7/xsC8/8K6tf+9s63/uK2n/7mtp/+5raf/tqmh/9HG
wP8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgD8AAIA/AACAPwAAgD8AAIA/AACAPwAAgD8AAIA/
AACAPwAAgD8AAIA/AACAPwAAgD8AAIA/AACAPwAA//8AACgAAAAgAAAAQAAAAAEACAAAAAAAAAQAAAAA
AAAAAAAAAAEAAAABAAAAAAAA//7+AP339gD++fgA/vr5AP329AD88/AA/PTxAPvz8ADn4d8A/vv6APXa
zwD45t8A++/qAO3j3wDSsaIA89XHAPTWyQDz1skA9NjLAPPXygD129AA9dzRAPXd0gD239UA9+HXAPjo
4QD56uMA+OniAPrs5gD56+UA/PPvAPz18gDGo5IAx6aWANW0pADava4AyrCjAPXazQD02cwA5Mu/APbf
0wD13tMA9+PZAPjl3AD88u0A+/HsAPz28wD9+fcA/vz7AMirmwDz2csAzbmuAOfZ0QDe080A+/LtAOXe
2gDi29cA28/IANzRygD67+gA+/HrAOHZ1AD89O8A+/PuAPPr5gD9+PUAg29hAJB+cgCNfHAA8O3rAHpl
VQB7ZlcAfmlaAH5qWwB/a1wAgW1eAIBsXQCCbl8Ag3BiAI17bgCUhHgAk4N3AJeHewCcjoQApZiOAKeb
kgCrn5YAraKaAKyhmQCuo5sA4NjSAMG6tQDo5OEA5+PgAHxoWAB9aVkAhXJjAIFvYACFc2UAh3VnAIl3
aQCLeWsAi3psAI5+cQCRgXQAj39yAJWGegCYiX0Am42CAJ+RhgChlIkAoJOIAKebkQCpnpUAq6CXAK+l
nQC4r6gA39bPAOXg3ACRgnUAlYZ5AJmLfgCekIQAm42BAKOXjACilosAoZWKALGnngCupJsAtaykALKp
oQC2raUAwLmzAL+4sgC9trAApZqPAKedkwC5sakAt6+nALOrowC8ta4AurOsAL+4sQC+t7AAwry2AP36
9wD9+/kA6eflAP79/ACyqqEAsamgALy1rQC6s6sAubKqALy2rwC7ta0Awby1APb08QD9/PoAOcEAADHJ
AAAuzAAAJ9UAANP4/ADd+/4A2/n8ANv6/gDV8/cA0Pb9AM/s8QC77/kAvO/5AMTx+gDM6e8Atez5ALbs
+QC16vYAve76AMXj6gDe6+4ApuX3AKfm9wCo5vcAsNrmAMDc5ACZ4PYAqOb5AKfj9gC10tsAu9jhAMrg
5wB70/QAe9T0AJDc9gCN1fAAkt32AJHY8QCY3fQAsczVAMPX3gDA09oA2eLlANDY2wBqzPIAaszxAGrL
8QBqyO4AasjtAGvF6gBrxekAfs3rAJ/J2QCryNMAq8fSAG7B5QB2v94Am73NAK3J1QCsxtEAtc/aALfN
1wB9tM4AoLzKAKS/zACnws8ApsHOAJ63xACpxNEApL3KAKK7yACqxNEAts3YAMfP0wCRs8YAj62+AKK+
zgCIqb0Am7PBAKC4xgCasb8Ap7/NAJKpuACYr74AlKq5AJWrugCRprYAl629AI2hsgCQpLQAjaCxAP//
/wD///8AAAAAAAAAAAAAAAAAAAAAAAAAAGRjYU9DTkxNTUpJYF9ISEdHAAAAAAAAAAAAAAAAAAAAZQoP
ISEhISEhISEhISEhIkgAAAAAAAAAAAAAAAAAAABmCicTExMTExMSFBESEhAyXwAAAAAAAAAAAAAAAAAA
AFAKCwsnJicnJycTFKKgEjJgAAAAAAAAAAAAAAAAAAAAaDELCwsLCwsmJycTo6EUMksAAAAAAAAAAAAA
AAAAAABpMRYWFhYVFRULCwsmJzMyTAAAAAAAAAAAAAAAAAAAAFIxKSrL3d/18uvq7OkLJjJiAAAAAAAA
AAAAAAAAAAAAazEY3NnUuLHG09je7fELMk8AAAAAAAAAAAAAAAAAAABsMRnjxbWrsLrBztDX+hUyYwAA
AAAAAAAAAAAAAAAAAHwxK+/CtquwusHN0NL4FzJkAAAAAAAAAAAAAAAAAAAAVJUs5sS2q6+6wc3P0fkp
MmUAAAAAAAAAAAAAAAAAAABulQzlxLassLrBzs/R9hgyZwAAAAAAAAAAAAAAAAAAAG+VGuDEt6yvusHO
0NHyGTJFAAAAAAAAAAAAAAAAAAAAfZUb4sS3rLC6wM7P0vQZImoAAAAAAAAAAAAAAAAAAACIlR7hxLes
sLrBzNDS9SwkeAAAAAAAAAAAAAAAAAAAAIkBCuTEt6ywusHN0NL3AwJRAAAAAAAAAAAAAAAAAAAAV0YO
1sS2q7C6wc7Q0vM1NVMAAAAAAAAAAAAAAAAAAABZkYbVu62kpaepsrzD8ExgegAAAAAAAAAAAAAAAAAA
AIEBN9qlpaWlpaWlpaXuGiV8AAAAAAAAAAAAAAAAAAAAgAEfv76zqqamqK65x8kcNHsAAAAAAAAAAAAA
AAAAAACWAQeetL+95+Hb6MjKQRs0cAAAAAAAAAAAAAAAAAAAAIIBBS8vIAcfQDc9DTwdHiV+AAAAAAAA
AAAAAAAAAAAAi/v7+/v7+/v7+/v7+/v7lVUAAAAAAAAAAAAAAAAAAACKkYaci4NYVn9teURmYUxgcQAA
AAAAAAAAAAAAAAAAAJmUXV1eCXc4ODk+W3Y2OzpyAAAAAAAAAAAAAAAAAAAAmPsKkwSSMEIvIAhALg08
I3MAAAAAAAAAAAAAAAAAAACH+zEKnwQDMAUgBx83PTwjWgAAAAAAAAAAAAAAAAAAAIb7lZUKBAMwQi8H
Bi09PCN0AAAAAAAAAAAAAAAAAAAAhfsBAZUKBDACBQc/LT08KJcAAAAAAAAAAAAAAAAAAABc+/v7AQEB
AQGVlZUxMTEFjAAAAAAAAAAAAAAAAAAAAJGdXFyFho+Qm42cjpqKdYuEAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAP4AAP/+AAD//gAA//4AAP/+AAD//gAA//4AAP/+AAD//gAA//4A
AP/+AAD//gAA//4AAP/+AAD//gAA//4AAP/+AAD//gAA//4AAP/+AAD//gAA//4AAP/+AAD//gAA//4A
AP/+AAD//gAA//4AAP/+AAD//gAA//4AAP//////KAAAACAAAABAAAAAAQAgAAAAAACAEAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAId0Zv+Fc2X/hXJj/4Nw
Yv+Db2H/gm5f/4FtXv+AbF3/gGxc/35qW/9+aVr/fWlZ/3xnWP97Z1f/e2ZW/3pmVv96ZVX/AAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAiXdp//77
+v/SsaL/xqOS/8ajkv/Go5L/xqOS/8ajkv/Go5L/xqOS/8ajkv/Go5L/xqOS/8ajkv/Go5L/x6aW/3tm
V/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AACLeWv//vv6//TZzP/02Mz/9NjM//TYy//02Mv/9NfL//TYyv/z18n/89fK//TWyf/z1sn/89bI//PV
x//Iq5v/fGhY/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
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
q//p5+X/6OTh/+jk4f/n4+D/5+Hf/+Xg3P/l3tv/5N3Z/+Lb1//h2dT/4NjS/9/Wz//e083/3NHK/9vP
yP+pnpX/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAvLWt///////++/r//fv5//76+f/9+vf//fj3//349f/89/P//PXy//vz8P/78+7/+/Hs//vv
6v/67uj/1bSk/6ugl/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAC9trD////////8+////Pr//fz6//77+f/++fj//fn2//329P/89fL//PTx//zz
7//78u3/+/Dr//vv6P/VtKT/rqOb/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAL+4sv////////38//79/P/+/Pr//vv5//75+P/9+fb//fj1//z2
8//89PH//PPw//zy7f/78ev/+u/p/9W0pP+vpZ3/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwLmz///////+/v3///39//79/P/+/Pr//vr5//35
9//99/b//ffz//z08f/89O///PLt//vw6//67+n/5Mu//7GpoP8AAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADBurX///////////////////7+///+
/v///v7///79///+/f/+/f3//v38//79/P/+/Pz//vz7//78+//99vT/s6uj/wAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMK8tv/BvLX/wbu1/8C6
tP/AubP/v7iy/7+4sf++t7D/vLav/7y1rv+7tK3/urOs/7myqv+5sKn/uK+o/7evp/+2raX/AAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD//////gAA//4AAP/+AAD//gAA//4AAP/+AAD//gAA//4A
AP/+AAD//gAA//4AAP/+AAD//gAA//4AAP/+AAD//gAA//4AAP/+AAD//gAA//4AAP/+AAD//gAA//4A
AP/+AAD//gAA//4AAP/+AAD//gAA//4AAP/+AAD//gAA/ygAAAAwAAAAYAAAAAEACAAAAAAAAAkAAAAA
AAAAAAAAAAEAAAABAAAAAAAA/vn4AP349wD++vkA/PHtAPzz8AD78/AA/ff1AP77+gD12s8A9+HYAPjm
3wD56uQA++/qAO3j3wDn4uAA0rGiAPPVxwD01skA89bJAPTYywDz18oA9dvQAPbd0gD13NEA9t7TAPXd
0gD239UA9+HXAPfj2gD45NsA+erjAPjp4gD67OYA+/DrAPzz7wDl3tsA/PXyAMajkgDHppYA1bSkAMqw
owD12s0A9NnMAPbd0QD13tMA9uDVAPXf1AD24tgA9+TbAPjl3AD46OAA+u7oAPzy7QD78ewA4trWAPz2
8wDu6ugA/vz7AMirmwDz2csA59nRAN7TzQD78u0A/PXxAOnc1ADc0MkA/PTvAPvz7gD9+PUAkH5yAI18
cADw7esAemVVAHtmVwB+aVoAfmpbAH9rXACBbV4AgGxdAIJuXwCDcGIAgm9hAI17bgCUhHgAloZ6AJyO
hACtopoA9vLvAOjk4QB8aFgAfWlZAIVyYwCFc2UAh3VnAIl3aQCLemwAjn5xAJGBdACPf3IAmYp+AJuN
ggCgk4gApZmPAKqflgCroJcAr6WdALivqACKeWoAkYJ1AJuNgQCfkYUAo5eMAKGVigCnnJIAsaeeAK6k
mwC1rKQAtq2lAODY0QDAubMAv7iyALmxqQC3r6cAvLWuALqzrAC/uLEAvrewAMK8tgDAurQA/fr3AP37
+QDp5+UA//79AP79/ACyqqEAvLWtALy2rwC7ta0A/fz6ADXFAAAr0QAA2/v9ANP4/ADd+/4A3Pr9ANv5
/ADb+v4A1vT4AMjz+gDB6fAAz+zxANHt8gC77/kAvO/5AMLw+gDS9v0A2+rtALXs+QC27PkAter2AKbl
9wCn5vcAqOb3AKvm9wDG4egAl971AJjg9gCo5vkAttnkAGvN8QBszvEAbc3xAG7O8gBvzvEAcM7xAHTP
8QB40vMAetP0AHvU9AB81PQAfNPzAJDc9gCN1fAAkt32AJHY8QCe3/UAydvhAGzO8wBtzPIAb8zzAG3K
7gBtyO0Aa8XqAHDO8gBwzfEAb8zwAG/M7wBvy+8Ab8ntAG7H7ABuyOsAbsfqAHLO8QBxy+8AcMnsAG3E
5gBwx+kAd9HzAHLG6ABxxecAccHiAHXH5wByv94AeszsAHjC4QCfydkAq8jTALfR2wC2ztgAbsLmAG/A
4wB0wOIAfLnUAJm8zAChvssArMnWAKzG0gCxy9YAjrXJAKS/zACnws8AnrfEAKnE0QCkvcoAorvIAKrE
0QCFqb0AjbLGAI6uwACrxdMAnrbDAJuzwQCasb8AobnHAJKpuACYr74Alau6AJGnuACQpbUAl629AI2h
sgCPo7MAjaCxAP///wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAABeXVxcUVFRUVJQTk9PTEtbW1tbWkpKSUkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABfCBAQJiYm
JiYmJiYmJiYmJiYmJiYmJ0oAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABgCCsrFBQUFBQUFBQUExUSEhIS
ExMRO1oAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABTCAkJCQkJCSsqKysrKxQVFRUVjYwTO1sAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAABhOgkJCQkJCQkJCQkqKysUFBQUjYwVO00AAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAABiOhgYGBgYGBgYFhYWCQkJCQkJKis8O04AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABUOhkZLS0t
LS0aGhoYGBYJCQkJCQkqO1IAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABVOhsbLi4uLhsuLy0ZGRcsLCws
FhYJO1EAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABkOhwcCrvi4fHx9/Xv5e7l5fAtGhgWO10AAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAABuOh0d2uDYqZaWoKbW0dTX3+3uGS0aO14AAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAABWhjIy6LmhmZWVn6bQxsbH0t39LhsZO18AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABvhgsL9Lai
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
AAAf/wAA/+AAAB//AAD/4AAAH/8AAP/gAAAf/wAA/+AAAB//AAD/4AAAH/8AAP/gAAAf/wAA/+AAAB//
AAD/4AAAH/8AAP/gAAAf/wAA/+AAAB//AAD/4AAAH/8AAP/gAAAf/wAA/+AAAB//AAD/4AAAH/8AAP/g
AAAf/wAA/+AAAB//AAD/4AAAH/8AAP/gAAAf/wAA/+AAAB//AAD/4AAAH/8AAP/gAAAf/wAA/+AAAB//
AAD/4AAAH/8AAP/gAAAf/wAA/+AAAB//AAD/4AAAH/8AAP/gAAAf/wAA/+AAAB//AAD///////8AAP//
/////wAAKAAAADAAAABgAAAAAQAgAAAAAACAJQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAId0
Zv+Fc2X/hXJj/4VyY/+DcGL/g3Bi/4NwYv+DcGL/g29h/4JuX/+BbV7/gGxd/4BsXP9+alv/fmla/31p
Wf99aVn/fWlZ/31pWf98Z1j/e2dX/3tmVv96Zlb/emVV/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAIl3af/++/r/0rGi/9Kxov/Go5L/xqOS/8ajkv/Go5L/xqOS/8ajkv/Go5L/xqOS/8aj
kv/Go5L/xqOS/8ajkv/Go5L/xqOS/8ajkv/Go5L/xqOS/8ajkv/Hppb/e2ZX/wAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAIt5a//++/r/9NnM//TZzP/02Mz/9NjM//TYzP/02Mz/9NjM//TY
y//02Mv/9NfL//TYyv/z18n/89fK//TWyf/01sn/9NbJ//TWyf/z1sn/89bI//PVx//Iq5v/fGhY/wAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAI17bv/+/Pr/9NrO//Tazv/12s7/9drO//Xa
zv/12s7/9NnN//Tazf/02c3/9NnN//TZzP/02cz/9NjL//PXyv/z18r/89fK//PXyv8uzAD/OcEA//PW
yP/Iq5v/fWlZ/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAI5+cf/+/Pv/9dvP//Xb
z//028//9NvP//Tbz//028//9dvP//Taz//12s7/9drO//Xazf/02c3/9NnM//TYzP/02Mz/9NjM//TY
zP8n1QD/MckA//PYyv/Iq5v/f2tc/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJGB
dP/+/Pv/9dzS//Xc0v/13NH/9dzR//Xc0f/13NH/9d3R//Xd0f/13ND/9dzQ//Xb0P/028//9NvP//Xa
zv/12s7/9drO//Xazv/12c3/9NnM//PZy//Iq5v/gW1e/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAJODd//+/Pv/9t7T//be0//13tP/9d7T//Xe0//13tP/9d7T//Xe0v/13dL/9d3S//Xc
0v/13dH/9dvQ//Tbz//028//9NvP//Tbz//1287/9drO//Xazf/Iq5v/gW9g/wAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAJWGev/+/Pv/9t/V//bf1f/24NX/9uDV//bg1f/24NX/9t/V//bg
1f/139T/9d7U//bf0//23tP/9t3S//bd0f/23dH/9t3R//bd0f/13ND/9dvQ//Xaz//Iq5v/g3Bi/wAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJiJff/+/Pv/9+HX//fh1//34dj/0dnd/6vJ
1v+hvsv/nbXD/562w/+Vq7r/kqm4/46uwP+Ptsr/jrLE/4+1yP+MtMr/q8XT//Xe0//13dL/9d3R//Xc
0P/Iq5v/hXNl/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJqMgP/+/Pz/9+PZ//fj
2f+10Nv/mbzM/5/J2f+w2ub/wenw/8Hp8P+16vb/l930/3rM7P9yxuj/dcfn/3jC4f98udT/ham9/4yy
x//23tT/9d7T//Xd0v/Iq5v/h3Vn/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJyO
hP/+/fz/+OXc//jl3P+et8T/kdjx/6bl9/+77/n/yPP6/8jz+v+27Pn/l9/2/3fR8/9uy+//b8ru/2/J
7f9xxef/b8Dj/42gsf/24Nb/9t/V//bf0//Iq5v/iXdp/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAJ+Rhv/+/fz/+Obf//jm3/+guMb/kNz2/6fm9/+77/n/yPP6/8jz+v+27Pn/mOD2/3nT
9P9tzfH/b8vv/3DJ7P9ux+r/bcTm/42hsv/34df/9uDW//bf1f/Iq5v/i3ps/wAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAKGUif/+/fz/+Ojh//jo4f+husf/kNz2/6bm9/+87/n/yPP6/8jz
+v+17Pj/meD2/3zU9P9szvP/b83w/2/L7v9uyOv/bcTm/4+js//34tn/9+HY//fh1v/Iq5v/jXxw/wAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKOXjP/+/fz/+erj//nq4/+iu8j/kt32/6fm
9/+77/n/yPP6/8jz+v+17Pn/meD2/3vU9P9tzPL/b83x/27L7/9tyOz/bcHn/5CktP/35Nv/9+Pa//bi
2P/Hppb/j39y/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKOXjP/+/fz/+erj//nq
4/+kvcr/kt32/6fm9/+87/n/yPP6/8jz+v+27Pn/mOD2/3vU9P9tzPL/b87x/2/L7/9tx+z/b8Pm/5Gm
tv/35Nv/9+Pa//bi2P/Hppb/j39y/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKOX
jP/+/fz/+erj//nq4/+et8T/kdjx/6bl9/+77/n/yPP6/8jz+v+27Pn/mOD2/3vU9P9szfP/cc7x/2/L
7/9ux+z/ccDi/42gsf/35Nv/9+Pa//bi2P/Hppb/j39y/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAKOXjP/+/fz/+erj//nq4/+guMb/kNz2/6fm9/+77/n/yPP6/8jz+v+27Pn/mOD2/3vU
9P9rzPH/cM7y/2/M7/9tyOr/b8Hl/42hsv/35Nv/9+Pa//bi2P/Hppb/kYJ1/wAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAKOXjP/+/fz/+erj//nq4/+husf/kNz2/6bm9/+87/n/yPP6/8jz
+v+17Pj/meD2/3vU9P9szvH/bs7x/3DL7/9vx+n/ccLi/5Cltv/35Nv/9+Pa//bi2P/Hppb/kYJ1/wAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKWaj//+/f3/+evl//nr5f+iu8j/kt32/6fm
9/+77/n/yPP6/8jz+v+17Pn/meD2/3vV9P9rzvH/b87w/3DL7v9wx+n/cr7d/5KouP/45d3/9+Tc//jk
2//Hppb/kYJ1/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKedk////v7//vv6//77
+v+kvcr/kt32/6fm9/+87/n/yPP6/8jz+v+27Pn/mOD2/3vU9P9tzPL/b87x/3HL7v9vx+r/c7/f/5Gn
uP/++vn//vr4//76+P/99/X/lIR4/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKuf
lv/w7ev/7ePf/+3j3/+kv8z/kt32/6jm9/+87/n/yPP6/8jz+v+17Pn/mOD2/3vU9P9vzPP/cM3x/3HL
7/9vx+r/ccDf/5KpuP/p3NX/6NvT/+fa0v/m2ND/l4d7/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAKyhmf/CvLb/v7iy/7+4sv+mwc7/kt32/6jm9/+87/n/yPP6/8jz+v+27Pn/meD2/3vT
9P9uzvH/cM7x/3HL7/9ux+r/dMDi/5Squv+KeGr/hXNk/4BtXv99aFn/mYt+/wAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAK6km////v3/+/Lt//vy7f+nws//kt32/6jm9/+87/n/yPP6/8jz
+v+27Pn/mOD2/3vT9P9uzvL/cM7x/2/M7/9ux+v/ccLi/5Wruv/56uT/+eri//jo4P/KsKP/m42B/wAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAK6km////v3/+/Lt//vy7f+pxNH/kt32/6jm
9/+87/n/yPP6/8jz+v+27Pn/l9/2/3jS8/9uzPD/cs7x/3DM8P9tyO3/bcTn/5etvf/56uT/+eri//jo
4P/KsKP/m42B/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAK6km////v3/+/Lt//vy
7f+rx9L/kt32/6fm9/+77/n/yPP6/8jz+v+27Pn/mOD2/3zT8/9vzPD/dM/x/2/M8P9tyu7/a8Xq/5iv
vv/56uT/+eri//jo4P/KsKP/m42B/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAK6k
m////v3/+/Lt//vy7f+ryNP/qOb5/8Tx+v/T+Pz/2/v9/9v7/f/c+/7/2/r+/9L2/f/B7/r/we/6/6vm
9/+e3/X/jdXw/5qxv//56uT/+eri//jo4P/KsKP/m42B/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAK6km////v3/+/Lt//vy7f+tydX/3fv+/937/v/d+/7/3fv+/937/v/d+/7/3Pv9/9z6
/f/c+v3/3Pr9/9v6/f/b+v3/3fv+/5uzwf/56uT/+eri//jo4P/KsKP/m42B/wAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAK6km////v3/+/Lt//vy7f/K4Of/u9jh/8Xj6v/P7PH/1vT4/9b0
+P/b+fz/2/n8/9b0+P/R7fL/1/X5/9Dt8v/C3+b/sszW/7PM1v/56uT/+eri//jo4P/KsKP/m42B/wAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALGnnv///v7//PPv//zz7//28u//2+rt/8Pd
5f+4093/r8vW/7HL1v+qxNH/p8LP/6zG0v+2ztj/q8bS/7DL1v+30dr/yNzh/+7q6P/56+X/+evk//jp
4v/KsKP/npCE/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALKqof///v7//PXx//z1
8f/89fH//PXx//z18f/89fH//PTx//z08P/88+///PLu//zx7f/78Oz/+vDq//ru6P/67uj/+u7o//ru
6P/67Of/+ezl//nq4//KsKP/oJOI/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALWs
pP///v7//fbz//328//89vP//Pbz//z28//89vP//Pbz//z18v/89fD//PPv//vz7v/78u3/+vHr//vv
6v/77+r/++/q//vv6v/67uj/+uzm//nr5P/KsKP/opaL/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAALeup///////////////////////////////////////////////////////////////
///////////////////////////////////////////////////+/fz/pZiO/wAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAALixqf/CvLb/v7my/7+5sv+7ta3/u7Wt/7u1rf+7ta3/t6+n/7Kp
of+topr/p5uS/6GViv+bjYL/lYZ5/5B+cv+QfnL/kH5y/5B+cv+KeWr/hXJj/4BtXv99aFn/p5uR/wAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALqzq//p5+X/6OTh/+jk4f/o5OH/6OTh/+jk
4f/o5OH/5+Pg/+fh3//l4Nz/5d7b/+Td2f/i29f/4dnU/+DY0v/g2NL/4NjS/+DY0v/f1s//3tPN/9zR
yv/bz8j/qZ6V/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALy1rf///////vv6//77
+v/9+/n//fv5//37+f/9+/n//vr5//369//9+Pf//fj1//z38//89fL/+/Pw//vz7v/78+7/+/Pu//vz
7v/78ez/++/q//ru6P/VtKT/q6CX/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALy1
rf///////vv6//77+v/9+/n//fv5//37+f/9+/n//vr5//369//9+Pf//fj1//z38//89fL/+/Pw//vz
7v/78+7/+/Pu//vz7v/78ez/++/q//ru6P/VtKT/q6CX/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAALy1rf///////vv6//77+v/9+/n//fv5//37+f/9+/n//vr5//369//9+Pf//fj1//z3
8//89fL/+/Pw//vz7v/78+7/+/Pu//vz7v/78ez/++/q//ru6P/VtKT/q6CX/wAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAALy1rf///////vv6//77+v/9+/n//fv5//37+f/9+/n//vr5//36
9//9+Pf//fj1//z38//89fL/+/Pw//vz7v/78+7/+/Pu//vz7v/78ez/++/q//ru6P/VtKT/q6CX/wAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALy1rf///////vv6//77+v/9+/n//fv5//37
+f/9+/n//vr5//369//9+Pf//fj1//z38//89fL/+/Pw//vz7v/78+7/+/Pu//vz7v/78ez/++/q//ru
6P/VtKT/q6CX/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAL22sP////////z7///8
+////Pr///z6///8+v///Pr//fz6//77+f/++fj//fn2//329P/89fL//PTx//zz7//88+///PPv//zz
7//78u3/+/Dr//vv6P/VtKT/rqOb/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAL+4
sv////////38///9/P/+/fz//v38//79/P/+/fz//vz6//77+f/++fj//fn2//349f/89vP//PTx//zz
8P/88/D//PPw//zz8P/88u3/+/Hr//rv6f/VtKT/r6Wd/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAMC5s////////v79//7+/f///f3///39///9/f///f3//v38//78+v/++vn//fn3//33
9v/99/P//PTx//z07//89O///PTv//z07//88u3/+/Dr//rv6f/VtKT/samg/wAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAMG6tf////////////////////////////////////////7+///+
/v///v7///79///+/f/+/f3//v38//79/P/+/fz//v38//79/P/+/Pz//vz7//78+//99vT/s6uj/wAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMK8tv/BvLX/wbu1/8G7tf/AurT/wLq0/8C6
tP/AurT/wLmz/7+4sv+/uLH/vrew/7y2r/+8ta7/u7St/7qzrP+6s6z/urOs/7qzrP+5sqr/ubCp/7iv
qP+3r6f/tq2l/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAP///////wAA////////AAD/8AAAD/8AAP/wAAAP/wAA//AAAA//
AAD/8AAAD/8AAP/wAAAP/wAA//AAAA//AAD/8AAAD/8AAP/wAAAP/wAA//AAAA//AAD/8AAAD/8AAP/w
AAAP/wAA//AAAA//AAD/8AAAD/8AAP/wAAAP/wAA//AAAA//AAD/8AAAD/8AAP/wAAAP/wAA//AAAA//
AAD/8AAAD/8AAP/wAAAP/wAA//AAAA//AAD/8AAAD/8AAP/wAAAP/wAA//AAAA//AAD/8AAAD/8AAP/w
AAAP/wAA//AAAA//AAD/8AAAD/8AAP/wAAAP/wAA//AAAA//AAD/8AAAD/8AAP/wAAAP/wAA//AAAA//
AAD/8AAAD/8AAP/wAAAP/wAA//AAAA//AAD/8AAAD/8AAP/wAAAP/wAA//AAAA//AAD/8AAAD/8AAP/w
AAAP/wAA//AAAA//AAD/8AAAD/8AAP/wAAAP/wAA////////AAD///////8AAA==
</value>
</data>
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
Version 2.0
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value>
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" use="required" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="assembly">
<xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<data name="$this.Icon" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
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
zwD45t8A++/qAO3j3wDSsaIA89XHAPTWyQDz1skA9NjLAPPXygD129AA9dzRAPXd0gD239UA9+HXAPjo
4QD56uMA+OniAPrs5gD56+UA/PPvAPz18gDGo5IAx6aWANW0pADava4AyrCjAPXazQD02cwA5Mu/APbf
0wD13tMA9+PZAPjl3AD88u0A+/HsAPz28wD9+fcA/vz7AMirmwDz2csAzbmuAOfZ0QDe080A+/LtAOXe
2gDi29cA28/IANzRygD67+gA+/HrAOHZ1AD89O8A+/PuAPPr5gD9+PUAg29hAJB+cgCNfHAA8O3rAHpl
VQB7ZlcAfmlaAH5qWwB/a1wAgW1eAIBsXQCCbl8Ag3BiAI17bgCUhHgAk4N3AJeHewCcjoQApZiOAKeb
kgCrn5YAraKaAKyhmQCuo5sA4NjSAMG6tQDo5OEA5+PgAHxoWAB9aVkAhXJjAIFvYACFc2UAh3VnAIl3
aQCLeWsAi3psAI5+cQCRgXQAj39yAJWGegCYiX0Am42CAJ+RhgChlIkAoJOIAKebkQCpnpUAq6CXAK+l
nQC4r6gA39bPAOXg3ACRgnUAlYZ5AJmLfgCekIQAm42BAKOXjACilosAoZWKALGnngCupJsAtaykALKp
oQC2raUAwLmzAL+4sgC9trAApZqPAKedkwC5sakAt6+nALOrowC8ta4AurOsAL+4sQC+t7AAwry2AP36
9wD9+/kA6eflAP79/ACyqqEAsamgALy1rQC6s6sAubKqALy2rwC7ta0Awby1APb08QD9/PoAOcEAADHJ
AAAuzAAAJ9UAANP4/ADd+/4A2/n8ANv6/gDV8/cA0Pb9AM/s8QC77/kAvO/5AMTx+gDM6e8Atez5ALbs
+QC16vYAve76AMXj6gDe6+4ApuX3AKfm9wCo5vcAsNrmAMDc5ACZ4PYAqOb5AKfj9gC10tsAu9jhAMrg
5wB70/QAe9T0AJDc9gCN1fAAkt32AJHY8QCY3fQAsczVAMPX3gDA09oA2eLlANDY2wBqzPIAaszxAGrL
8QBqyO4AasjtAGvF6gBrxekAfs3rAJ/J2QCryNMAq8fSAG7B5QB2v94Am73NAK3J1QCsxtEAtc/aALfN
1wB9tM4AoLzKAKS/zACnws8ApsHOAJ63xACpxNEApL3KAKK7yACqxNEAts3YAMfP0wCRs8YAj62+AKK+
zgCIqb0Am7PBAKC4xgCasb8Ap7/NAJKpuACYr74AlKq5AJWrugCRprYAl629AI2hsgCQpLQAjaCxAP//
/wD///8AAAAAAAAAAAAAAAAAAAAAAAAAAGRjYU9DTkxNTUpJYF9ISEdHAAAAAAAAAAAAAAAAAAAAZQoP
ISEhISEhISEhISEhIkgAAAAAAAAAAAAAAAAAAABmCicTExMTExMSFBESEhAyXwAAAAAAAAAAAAAAAAAA
AFAKCwsnJicnJycTFKKgEjJgAAAAAAAAAAAAAAAAAAAAaDELCwsLCwsmJycTo6EUMksAAAAAAAAAAAAA
AAAAAABpMRYWFhYVFRULCwsmJzMyTAAAAAAAAAAAAAAAAAAAAFIxKSrL3d/18uvq7OkLJjJiAAAAAAAA
AAAAAAAAAAAAazEY3NnUuLHG09je7fELMk8AAAAAAAAAAAAAAAAAAABsMRnjxbWrsLrBztDX+hUyYwAA
AAAAAAAAAAAAAAAAAHwxK+/CtquwusHN0NL4FzJkAAAAAAAAAAAAAAAAAAAAVJUs5sS2q6+6wc3P0fkp
MmUAAAAAAAAAAAAAAAAAAABulQzlxLassLrBzs/R9hgyZwAAAAAAAAAAAAAAAAAAAG+VGuDEt6yvusHO
0NHyGTJFAAAAAAAAAAAAAAAAAAAAfZUb4sS3rLC6wM7P0vQZImoAAAAAAAAAAAAAAAAAAACIlR7hxLes
sLrBzNDS9SwkeAAAAAAAAAAAAAAAAAAAAIkBCuTEt6ywusHN0NL3AwJRAAAAAAAAAAAAAAAAAAAAV0YO
1sS2q7C6wc7Q0vM1NVMAAAAAAAAAAAAAAAAAAABZkYbVu62kpaepsrzD8ExgegAAAAAAAAAAAAAAAAAA
AIEBN9qlpaWlpaWlpaXuGiV8AAAAAAAAAAAAAAAAAAAAgAEfv76zqqamqK65x8kcNHsAAAAAAAAAAAAA
AAAAAACWAQeetL+95+Hb6MjKQRs0cAAAAAAAAAAAAAAAAAAAAIIBBS8vIAcfQDc9DTwdHiV+AAAAAAAA
AAAAAAAAAAAAi/v7+/v7+/v7+/v7+/v7lVUAAAAAAAAAAAAAAAAAAACKkYaci4NYVn9teURmYUxgcQAA
AAAAAAAAAAAAAAAAAJmUXV1eCXc4ODk+W3Y2OzpyAAAAAAAAAAAAAAAAAAAAmPsKkwSSMEIvIAhALg08
I3MAAAAAAAAAAAAAAAAAAACH+zEKnwQDMAUgBx83PTwjWgAAAAAAAAAAAAAAAAAAAIb7lZUKBAMwQi8H
Bi09PCN0AAAAAAAAAAAAAAAAAAAAhfsBAZUKBDACBQc/LT08KJcAAAAAAAAAAAAAAAAAAABc+/v7AQEB
AQGVlZUxMTEFjAAAAAAAAAAAAAAAAAAAAJGdXFyFho+Qm42cjpqKdYuEAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAP4AAP/+AAD//gAA//4AAP/+AAD//gAA//4AAP/+AAD//gAA//4A
AP/+AAD//gAA//4AAP/+AAD//gAA//4AAP/+AAD//gAA//4AAP/+AAD//gAA//4AAP/+AAD//gAA//4A
AP/+AAD//gAA//4AAP/+AAD//gAA//4AAP//////KAAAACAAAABAAAAAAQAgAAAAAACAEAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAId0Zv+Fc2X/hXJj/4Nw
Yv+Db2H/gm5f/4FtXv+AbF3/gGxc/35qW/9+aVr/fWlZ/3xnWP97Z1f/e2ZW/3pmVv96ZVX/AAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAiXdp//77
+v/SsaL/xqOS/8ajkv/Go5L/xqOS/8ajkv/Go5L/xqOS/8ajkv/Go5L/xqOS/8ajkv/Go5L/x6aW/3tm
V/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AACLeWv//vv6//TZzP/02Mz/9NjM//TYy//02Mv/9NfL//TYyv/z18n/89fK//TWyf/z1sn/89bI//PV
x//Iq5v/fGhY/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAI17bv/+/Pr/9NrO//Xazv/02c3/9NrN//TZzf/02c3/9NnM//TZzP/02Mv/89fK/y7M
AP85wQD/89bI/8irm/99aVn/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAjn5x//78+//128//9NvP//Xbz//02s//9drO//Xazv/12s3/9NnN//TZ
zP/02Mz/J9UA/zHJAP/z2Mr/yKub/39rXP8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACRgXT//vz7//Xc0v/13NH/9d3R//Xd0f/13ND/9dzQ//Xb
0P/028//9NvP//Xazv/12c3/9NnM//PZy//Iq5v/gW1e/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJODd//+/Pv/9t7T//Xe0//Q2Nv/t83X/6C8
yv+Vq7r/kqm4/4+tvv+Rs8b/or7O/8fP0//12s7/9drN/8irm/+Bb2D/AAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAlYZ6//78+//239X/tc/a/5u9
zf+fydn/sNrm/7Xq9v+Y3fT/fs3r/3a/3v99tM7/iKm9/6e/zf/12s//yKub/4NwYv8AAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACYiX3//vz7//fh
1/+et8T/kdjx/6bl9/+77/n/tuz5/5jg9v971PT/asvx/2rI7f9uweX/jaCx//Xc0P/Iq5v/hXNl/wAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJqM
gP/+/Pz/9+PZ/6C4xv+Q3Pb/p+b3/7vv+f+27Pn/mOD2/3vU9P9qzPH/asjt/2vF6f+NobL/9d3S/8ir
m/+HdWf/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAnI6E//79/P/45dz/orvI/5Ld9v+n5vf/u+/5/7Xs+f+Z4Pb/e9T0/2rM8f9qyO7/a8Tq/5Ck
tP/239P/yKub/4l3af8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAACfkYb//v38//jm3/+kvcr/kt32/6fm9/+87/n/tuz5/5jg9v971PT/asvx/2rI
7v9rxer/kaa2//bf1f/Iq5v/i3ps/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAKGUif/+/fz/+Ojh/6S/zP+S3fb/qOb3/7zv+f+17Pn/mOD2/3vU
9P9qy/H/asjt/2vF6v+SqLj/9+HW/8irm/+NfHD/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAo5eM//79/P/56uP/psHO/5Ld9v+o5vf/vO/5/7bs
+f+Z4Pb/e9P0/2rL8f9qyO7/a8Xp/5Squf/24tj/x6aW/49/cv8AAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAClmo///v39//nr5f+nws//kt32/6jm
9/+87/n/tuz5/5ng9v971PT/aszy/2rI7f9rxen/lau6//jk2//ava7/kYJ1/wAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKedk////v7//vv6/6nE
0f+S3fb/qOb3/7zv+f+27Pn/meD2/3vU9P9qzPH/asjt/2vF6f+Xrb3//vr4//339f+UhHj/AAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAq5+W//Dt
6//t49//q8fS/5Ld9v+n5vf/u+/5/7bs+f+Z4Pb/e9T0/2rL8f9qyO3/a8Tp/5ivvv/n2tL/5tjQ/5eH
e/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AACsoZn/wry2/7+4sv+ryNP/qOb5/8Tx+v/T+Pz/3Pv+/9v6/v/Q9v3/ve76/6fj9v+N1fD/mrG//4Bt
Xv99aFn/mYt+/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAK6km////v3/+/Lt/63J1f/d+/7/3fv+/937/v/d+/7/3fv+/937/v/d+/7/3fv+/937
/v+bs8H/+Ojg/8qwo/+bjYH/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAsaee///+/v/88+//yuDn/7vY4f/F4+r/z+zx/9v5/P/b+fz/1fP3/8zp
7//A3OT/sczV/8DT2v/46eL/zbmu/56QhP8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACyqqH///7+//z18f/29PH/3uvu/8rg5v+10tv/qsTR/6fC
z/+sxtH/ts3Y/8PX3v/Z4uX/8+vm//nq4//Nua7/oJOI/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALWspP///v7//fbz//z28//89vP//PXy//z1
8P/88+//+/Pu//vy7f/68ev/++/q//ru6P/67Ob/+evk/8qwo/+ilov/AAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAt66n////////////////////
/////////////////////////////////////////////////////////v38/6WYjv8AAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC4san/wry2/7+5
sv+7ta3/t6+n/7Kpof+topr/p5uS/6GViv+bjYL/lYZ5/5B+cv+KeWr/hXJj/4BtXv99aFn/p5uR/wAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALqz
q//p5+X/6OTh/+jk4f/n4+D/5+Hf/+Xg3P/l3tv/5N3Z/+Lb1//h2dT/4NjS/9/Wz//e083/3NHK/9vP
yP+pnpX/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAvLWt///////++/r//fv5//76+f/9+vf//fj3//349f/89/P//PXy//vz8P/78+7/+/Hs//vv
6v/67uj/1bSk/6ugl/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAC9trD////////8+////Pr//fz6//77+f/++fj//fn2//329P/89fL//PTx//zz
7//78u3/+/Dr//vv6P/VtKT/rqOb/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAL+4sv////////38//79/P/+/Pr//vv5//75+P/9+fb//fj1//z2
8//89PH//PPw//zy7f/78ev/+u/p/9W0pP+vpZ3/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwLmz///////+/v3///39//79/P/+/Pr//vr5//35
9//99/b//ffz//z08f/89O///PLt//vw6//67+n/5Mu//7GpoP8AAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADBurX///////////////////7+///+
/v///v7///79///+/f/+/f3//v38//79/P/+/Pz//vz7//78+//99vT/s6uj/wAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMK8tv/BvLX/wbu1/8C6
tP/AubP/v7iy/7+4sf++t7D/vLav/7y1rv+7tK3/urOs/7myqv+5sKn/uK+o/7evp/+2raX/AAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD//////gAA//4AAP/+AAD//gAA//4AAP/+AAD//gAA//4A
AP/+AAD//gAA//4AAP/+AAD//gAA//4AAP/+AAD//gAA//4AAP/+AAD//gAA//4AAP/+AAD//gAA//4A
AP/+AAD//gAA//4AAP/+AAD//gAA//4AAP/+AAD//gAA/ygAAAAwAAAAYAAAAAEACAAAAAAAAAkAAAAA
AAAAAAAAAAEAAAABAAAAAAAA/vn4AP349wD++vkA/PHtAPzz8AD78/AA/ff1AP77+gD12s8A9+HYAPjm
3wD56uQA++/qAO3j3wDn4uAA0rGiAPPVxwD01skA89bJAPTYywDz18oA9dvQAPbd0gD13NEA9t7TAPXd
0gD239UA9+HXAPfj2gD45NsA+erjAPjp4gD67OYA+/DrAPzz7wDl3tsA/PXyAMajkgDHppYA1bSkAMqw
owD12s0A9NnMAPbd0QD13tMA9uDVAPXf1AD24tgA9+TbAPjl3AD46OAA+u7oAPzy7QD78ewA4trWAPz2
8wDu6ugA/vz7AMirmwDz2csA59nRAN7TzQD78u0A/PXxAOnc1ADc0MkA/PTvAPvz7gD9+PUAkH5yAI18
cADw7esAemVVAHtmVwB+aVoAfmpbAH9rXACBbV4AgGxdAIJuXwCDcGIAgm9hAI17bgCUhHgAloZ6AJyO
hACtopoA9vLvAOjk4QB8aFgAfWlZAIVyYwCFc2UAh3VnAIl3aQCLemwAjn5xAJGBdACPf3IAmYp+AJuN
ggCgk4gApZmPAKqflgCroJcAr6WdALivqACKeWoAkYJ1AJuNgQCfkYUAo5eMAKGVigCnnJIAsaeeAK6k
mwC1rKQAtq2lAODY0QDAubMAv7iyALmxqQC3r6cAvLWuALqzrAC/uLEAvrewAMK8tgDAurQA/fr3AP37
+QDp5+UA//79AP79/ACyqqEAvLWtALy2rwC7ta0A/fz6ADXFAAAr0QAA2/v9ANP4/ADd+/4A3Pr9ANv5
/ADb+v4A1vT4AMjz+gDB6fAAz+zxANHt8gC77/kAvO/5AMLw+gDS9v0A2+rtALXs+QC27PkAter2AKbl
9wCn5vcAqOb3AKvm9wDG4egAl971AJjg9gCo5vkAttnkAGvN8QBszvEAbc3xAG7O8gBvzvEAcM7xAHTP
8QB40vMAetP0AHvU9AB81PQAfNPzAJDc9gCN1fAAkt32AJHY8QCe3/UAydvhAGzO8wBtzPIAb8zzAG3K
7gBtyO0Aa8XqAHDO8gBwzfEAb8zwAG/M7wBvy+8Ab8ntAG7H7ABuyOsAbsfqAHLO8QBxy+8AcMnsAG3E
5gBwx+kAd9HzAHLG6ABxxecAccHiAHXH5wByv94AeszsAHjC4QCfydkAq8jTALfR2wC2ztgAbsLmAG/A
4wB0wOIAfLnUAJm8zAChvssArMnWAKzG0gCxy9YAjrXJAKS/zACnws8AnrfEAKnE0QCkvcoAorvIAKrE
0QCFqb0AjbLGAI6uwACrxdMAnrbDAJuzwQCasb8AobnHAJKpuACYr74Alau6AJGnuACQpbUAl629AI2h
sgCPo7MAjaCxAP///wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAABeXVxcUVFRUVJQTk9PTEtbW1tbWkpKSUkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABfCBAQJiYm
JiYmJiYmJiYmJiYmJiYmJ0oAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABgCCsrFBQUFBQUFBQUExUSEhIS
ExMRO1oAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABTCAkJCQkJCSsqKysrKxQVFRUVjYwTO1sAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAABhOgkJCQkJCQkJCQkqKysUFBQUjYwVO00AAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAABiOhgYGBgYGBgYFhYWCQkJCQkJKis8O04AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABUOhkZLS0t
LS0aGhoYGBYJCQkJCQkqO1IAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABVOhsbLi4uLhsuLy0ZGRcsLCws
FhYJO1EAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABkOhwcCrvi4fHx9/Xv5e7l5fAtGhgWO10AAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAABuOh0d2uDYqZaWoKbW0dTX3+3uGS0aO14AAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAABWhjIy6LmhmZWVn6bQxsbH0t39LhsZO18AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABvhgsL9Lai
mZWVn6eyrMbNys77HC4bO2AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABxhjMz9LahmpWVnqe0vMTGyc78
CgocO0cAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABwhh8f67iimZWVnqezva7GwNz5MR0wJ2MAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAABwhh8f6riimpWVn6ezva7GyNz5MR0wJ2MAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAABwhh8f6LmhmZWVn6ezvK/GyNP9MR0wJ2MAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABwhh8f9Lai
mZWVn6ezqsLFydz7MR0wJ20AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABwhh8f9LahmpWVnqezq63Gz9P5
MR0wJ20AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABnhgwM67iimZWVnqezqq7Gz9X1MjEeJ20AAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAByhQgI6riimpWVn6ezva7MytX4AwEBB1QAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAABoSA4O5rijmpWVnqezvsPMytX1QUE9PVUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABXgHl557ij
mpWVn6eyra/Myt73bF1OW2QAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB0hT8/57ijmpWVn6eyra/FyNP3
DB8zKW4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB0hT8/6bijmpWVn6axxMvEwM76DB8zKW4AAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAB0hT8/2biimZWVn6e1xLDEv8H2DB8zKW4AAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAB0hT8/2aibj46OkJOcm5ukurfzDB8zKW4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB0hT8/4pCQ
kJCQkI6RkZGOjpDyDB8zKW4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB0hT8/pamll5SUkpKUmJSYpeTk
DB8zKW4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABzhSMjWJ2l2uTk7Ofj2+Pk2rs5DAwgKW8AAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAACHhUBAQEBAQEAFIzUEIg00NDQ0ISEfKWYAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAB1hTg4ODg4ODglQCNEPyINDQ0NNCEMKXAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB7/v7+/v7+
/v7+/v7+/v7+/v7+/v7+hmcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB6gHl5ioqKinuHV3JxZVVGRkZG
bFxOW3IAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB9hFlZWVlZWQ8PJCQkNzd3d3d3dz5CQmgAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAACI/ggIg4ODgwOCAkU4JQZERERENg00KGkAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAACI/ggIg4ODgwOCAkU4JQZERERENg00KGkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACI/ggIg4OD
gwOCAkU4JQZERERENg00KGkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACI/ggIg4ODgwOCAkU4JQZERERE
Ng00KGkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACI/ggIg4ODgwOCAkU4JQZERERENg00KGkAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAB//jo6CAgICIsDAQIHJUAjIyMjPyI0KHQAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAB5/oaGhoaGhggDAQJFOEAFBQUFNSINKGoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB4/oWFhYWF
hYYIAwIHOEBDQ0NDNSINKIcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACB/v7+/v7+/oWFhYWFhoaGhoaG
Ojo6B3UAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAgICAgYGBgXh5fn+JfIp9fX19enpre3YAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA////////AAD///////8AAP/g
AAAf/wAA/+AAAB//AAD/4AAAH/8AAP/gAAAf/wAA/+AAAB//AAD/4AAAH/8AAP/gAAAf/wAA/+AAAB//
AAD/4AAAH/8AAP/gAAAf/wAA/+AAAB//AAD/4AAAH/8AAP/gAAAf/wAA/+AAAB//AAD/4AAAH/8AAP/g
AAAf/wAA/+AAAB//AAD/4AAAH/8AAP/gAAAf/wAA/+AAAB//AAD/4AAAH/8AAP/gAAAf/wAA/+AAAB//
AAD/4AAAH/8AAP/gAAAf/wAA/+AAAB//AAD/4AAAH/8AAP/gAAAf/wAA/+AAAB//AAD/4AAAH/8AAP/g
AAAf/wAA/+AAAB//AAD/4AAAH/8AAP/gAAAf/wAA/+AAAB//AAD/4AAAH/8AAP/gAAAf/wAA/+AAAB//
AAD/4AAAH/8AAP/gAAAf/wAA/+AAAB//AAD/4AAAH/8AAP/gAAAf/wAA/+AAAB//AAD///////8AAP//
/////wAAKAAAADAAAABgAAAAAQAgAAAAAACAJQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAId0
Zv+Fc2X/hXJj/4VyY/+DcGL/g3Bi/4NwYv+DcGL/g29h/4JuX/+BbV7/gGxd/4BsXP9+alv/fmla/31p
Wf99aVn/fWlZ/31pWf98Z1j/e2dX/3tmVv96Zlb/emVV/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAIl3af/++/r/0rGi/9Kxov/Go5L/xqOS/8ajkv/Go5L/xqOS/8ajkv/Go5L/xqOS/8aj
kv/Go5L/xqOS/8ajkv/Go5L/xqOS/8ajkv/Go5L/xqOS/8ajkv/Hppb/e2ZX/wAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAIt5a//++/r/9NnM//TZzP/02Mz/9NjM//TYzP/02Mz/9NjM//TY
y//02Mv/9NfL//TYyv/z18n/89fK//TWyf/01sn/9NbJ//TWyf/z1sn/89bI//PVx//Iq5v/fGhY/wAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAI17bv/+/Pr/9NrO//Tazv/12s7/9drO//Xa
zv/12s7/9NnN//Tazf/02c3/9NnN//TZzP/02cz/9NjL//PXyv/z18r/89fK//PXyv8uzAD/OcEA//PW
yP/Iq5v/fWlZ/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAI5+cf/+/Pv/9dvP//Xb
z//028//9NvP//Tbz//028//9dvP//Taz//12s7/9drO//Xazf/02c3/9NnM//TYzP/02Mz/9NjM//TY
zP8n1QD/MckA//PYyv/Iq5v/f2tc/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJGB
dP/+/Pv/9dzS//Xc0v/13NH/9dzR//Xc0f/13NH/9d3R//Xd0f/13ND/9dzQ//Xb0P/028//9NvP//Xa
zv/12s7/9drO//Xazv/12c3/9NnM//PZy//Iq5v/gW1e/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAJODd//+/Pv/9t7T//be0//13tP/9d7T//Xe0//13tP/9d7T//Xe0v/13dL/9d3S//Xc
0v/13dH/9dvQ//Tbz//028//9NvP//Tbz//1287/9drO//Xazf/Iq5v/gW9g/wAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAJWGev/+/Pv/9t/V//bf1f/24NX/9uDV//bg1f/24NX/9t/V//bg
1f/139T/9d7U//bf0//23tP/9t3S//bd0f/23dH/9t3R//bd0f/13ND/9dvQ//Xaz//Iq5v/g3Bi/wAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJiJff/+/Pv/9+HX//fh1//34dj/0dnd/6vJ
1v+hvsv/nbXD/562w/+Vq7r/kqm4/46uwP+Ptsr/jrLE/4+1yP+MtMr/q8XT//Xe0//13dL/9d3R//Xc
0P/Iq5v/hXNl/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJqMgP/+/Pz/9+PZ//fj
2f+10Nv/mbzM/5/J2f+w2ub/wenw/8Hp8P+16vb/l930/3rM7P9yxuj/dcfn/3jC4f98udT/ham9/4yy
x//23tT/9d7T//Xd0v/Iq5v/h3Vn/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJyO
hP/+/fz/+OXc//jl3P+et8T/kdjx/6bl9/+77/n/yPP6/8jz+v+27Pn/l9/2/3fR8/9uy+//b8ru/2/J
7f9xxef/b8Dj/42gsf/24Nb/9t/V//bf0//Iq5v/iXdp/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAJ+Rhv/+/fz/+Obf//jm3/+guMb/kNz2/6fm9/+77/n/yPP6/8jz+v+27Pn/mOD2/3nT
9P9tzfH/b8vv/3DJ7P9ux+r/bcTm/42hsv/34df/9uDW//bf1f/Iq5v/i3ps/wAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAKGUif/+/fz/+Ojh//jo4f+husf/kNz2/6bm9/+87/n/yPP6/8jz
+v+17Pj/meD2/3zU9P9szvP/b83w/2/L7v9uyOv/bcTm/4+js//34tn/9+HY//fh1v/Iq5v/jXxw/wAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKOXjP/+/fz/+erj//nq4/+iu8j/kt32/6fm
9/+77/n/yPP6/8jz+v+17Pn/meD2/3vU9P9tzPL/b83x/27L7/9tyOz/bcHn/5CktP/35Nv/9+Pa//bi
2P/Hppb/j39y/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKOXjP/+/fz/+erj//nq
4/+kvcr/kt32/6fm9/+87/n/yPP6/8jz+v+27Pn/mOD2/3vU9P9tzPL/b87x/2/L7/9tx+z/b8Pm/5Gm
tv/35Nv/9+Pa//bi2P/Hppb/j39y/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKOX
jP/+/fz/+erj//nq4/+et8T/kdjx/6bl9/+77/n/yPP6/8jz+v+27Pn/mOD2/3vU9P9szfP/cc7x/2/L
7/9ux+z/ccDi/42gsf/35Nv/9+Pa//bi2P/Hppb/j39y/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAKOXjP/+/fz/+erj//nq4/+guMb/kNz2/6fm9/+77/n/yPP6/8jz+v+27Pn/mOD2/3vU
9P9rzPH/cM7y/2/M7/9tyOr/b8Hl/42hsv/35Nv/9+Pa//bi2P/Hppb/kYJ1/wAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAKOXjP/+/fz/+erj//nq4/+husf/kNz2/6bm9/+87/n/yPP6/8jz
+v+17Pj/meD2/3vU9P9szvH/bs7x/3DL7/9vx+n/ccLi/5Cltv/35Nv/9+Pa//bi2P/Hppb/kYJ1/wAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKWaj//+/f3/+evl//nr5f+iu8j/kt32/6fm
9/+77/n/yPP6/8jz+v+17Pn/meD2/3vV9P9rzvH/b87w/3DL7v9wx+n/cr7d/5KouP/45d3/9+Tc//jk
2//Hppb/kYJ1/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKedk////v7//vv6//77
+v+kvcr/kt32/6fm9/+87/n/yPP6/8jz+v+27Pn/mOD2/3vU9P9tzPL/b87x/3HL7v9vx+r/c7/f/5Gn
uP/++vn//vr4//76+P/99/X/lIR4/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKuf
lv/w7ev/7ePf/+3j3/+kv8z/kt32/6jm9/+87/n/yPP6/8jz+v+17Pn/mOD2/3vU9P9vzPP/cM3x/3HL
7/9vx+r/ccDf/5KpuP/p3NX/6NvT/+fa0v/m2ND/l4d7/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAKyhmf/CvLb/v7iy/7+4sv+mwc7/kt32/6jm9/+87/n/yPP6/8jz+v+27Pn/meD2/3vT
9P9uzvH/cM7x/3HL7/9ux+r/dMDi/5Squv+KeGr/hXNk/4BtXv99aFn/mYt+/wAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAK6km////v3/+/Lt//vy7f+nws//kt32/6jm9/+87/n/yPP6/8jz
+v+27Pn/mOD2/3vT9P9uzvL/cM7x/2/M7/9ux+v/ccLi/5Wruv/56uT/+eri//jo4P/KsKP/m42B/wAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAK6km////v3/+/Lt//vy7f+pxNH/kt32/6jm
9/+87/n/yPP6/8jz+v+27Pn/l9/2/3jS8/9uzPD/cs7x/3DM8P9tyO3/bcTn/5etvf/56uT/+eri//jo
4P/KsKP/m42B/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAK6km////v3/+/Lt//vy
7f+rx9L/kt32/6fm9/+77/n/yPP6/8jz+v+27Pn/mOD2/3zT8/9vzPD/dM/x/2/M8P9tyu7/a8Xq/5iv
vv/56uT/+eri//jo4P/KsKP/m42B/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAK6k
m////v3/+/Lt//vy7f+ryNP/qOb5/8Tx+v/T+Pz/2/v9/9v7/f/c+/7/2/r+/9L2/f/B7/r/we/6/6vm
9/+e3/X/jdXw/5qxv//56uT/+eri//jo4P/KsKP/m42B/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAK6km////v3/+/Lt//vy7f+tydX/3fv+/937/v/d+/7/3fv+/937/v/d+/7/3Pv9/9z6
/f/c+v3/3Pr9/9v6/f/b+v3/3fv+/5uzwf/56uT/+eri//jo4P/KsKP/m42B/wAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAK6km////v3/+/Lt//vy7f/K4Of/u9jh/8Xj6v/P7PH/1vT4/9b0
+P/b+fz/2/n8/9b0+P/R7fL/1/X5/9Dt8v/C3+b/sszW/7PM1v/56uT/+eri//jo4P/KsKP/m42B/wAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALGnnv///v7//PPv//zz7//28u//2+rt/8Pd
5f+4093/r8vW/7HL1v+qxNH/p8LP/6zG0v+2ztj/q8bS/7DL1v+30dr/yNzh/+7q6P/56+X/+evk//jp
4v/KsKP/npCE/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALKqof///v7//PXx//z1
8f/89fH//PXx//z18f/89fH//PTx//z08P/88+///PLu//zx7f/78Oz/+vDq//ru6P/67uj/+u7o//ru
6P/67Of/+ezl//nq4//KsKP/oJOI/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALWs
pP///v7//fbz//328//89vP//Pbz//z28//89vP//Pbz//z18v/89fD//PPv//vz7v/78u3/+vHr//vv
6v/77+r/++/q//vv6v/67uj/+uzm//nr5P/KsKP/opaL/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAALeup///////////////////////////////////////////////////////////////
///////////////////////////////////////////////////+/fz/pZiO/wAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAALixqf/CvLb/v7my/7+5sv+7ta3/u7Wt/7u1rf+7ta3/t6+n/7Kp
of+topr/p5uS/6GViv+bjYL/lYZ5/5B+cv+QfnL/kH5y/5B+cv+KeWr/hXJj/4BtXv99aFn/p5uR/wAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALqzq//p5+X/6OTh/+jk4f/o5OH/6OTh/+jk
4f/o5OH/5+Pg/+fh3//l4Nz/5d7b/+Td2f/i29f/4dnU/+DY0v/g2NL/4NjS/+DY0v/f1s//3tPN/9zR
yv/bz8j/qZ6V/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALy1rf///////vv6//77
+v/9+/n//fv5//37+f/9+/n//vr5//369//9+Pf//fj1//z38//89fL/+/Pw//vz7v/78+7/+/Pu//vz
7v/78ez/++/q//ru6P/VtKT/q6CX/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALy1
rf///////vv6//77+v/9+/n//fv5//37+f/9+/n//vr5//369//9+Pf//fj1//z38//89fL/+/Pw//vz
7v/78+7/+/Pu//vz7v/78ez/++/q//ru6P/VtKT/q6CX/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAALy1rf///////vv6//77+v/9+/n//fv5//37+f/9+/n//vr5//369//9+Pf//fj1//z3
8//89fL/+/Pw//vz7v/78+7/+/Pu//vz7v/78ez/++/q//ru6P/VtKT/q6CX/wAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAALy1rf///////vv6//77+v/9+/n//fv5//37+f/9+/n//vr5//36
9//9+Pf//fj1//z38//89fL/+/Pw//vz7v/78+7/+/Pu//vz7v/78ez/++/q//ru6P/VtKT/q6CX/wAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALy1rf///////vv6//77+v/9+/n//fv5//37
+f/9+/n//vr5//369//9+Pf//fj1//z38//89fL/+/Pw//vz7v/78+7/+/Pu//vz7v/78ez/++/q//ru
6P/VtKT/q6CX/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAL22sP////////z7///8
+////Pr///z6///8+v///Pr//fz6//77+f/++fj//fn2//329P/89fL//PTx//zz7//88+///PPv//zz
7//78u3/+/Dr//vv6P/VtKT/rqOb/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAL+4
sv////////38///9/P/+/fz//v38//79/P/+/fz//vz6//77+f/++fj//fn2//349f/89vP//PTx//zz
8P/88/D//PPw//zz8P/88u3/+/Hr//rv6f/VtKT/r6Wd/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAMC5s////////v79//7+/f///f3///39///9/f///f3//v38//78+v/++vn//fn3//33
9v/99/P//PTx//z07//89O///PTv//z07//88u3/+/Dr//rv6f/VtKT/samg/wAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAMG6tf////////////////////////////////////////7+///+
/v///v7///79///+/f/+/f3//v38//79/P/+/fz//v38//79/P/+/Pz//vz7//78+//99vT/s6uj/wAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMK8tv/BvLX/wbu1/8G7tf/AurT/wLq0/8C6
tP/AurT/wLmz/7+4sv+/uLH/vrew/7y2r/+8ta7/u7St/7qzrP+6s6z/urOs/7qzrP+5sqr/ubCp/7iv
qP+3r6f/tq2l/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAP///////wAA////////AAD/8AAAD/8AAP/wAAAP/wAA//AAAA//
AAD/8AAAD/8AAP/wAAAP/wAA//AAAA//AAD/8AAAD/8AAP/wAAAP/wAA//AAAA//AAD/8AAAD/8AAP/w
AAAP/wAA//AAAA//AAD/8AAAD/8AAP/wAAAP/wAA//AAAA//AAD/8AAAD/8AAP/wAAAP/wAA//AAAA//
AAD/8AAAD/8AAP/wAAAP/wAA//AAAA//AAD/8AAAD/8AAP/wAAAP/wAA//AAAA//AAD/8AAAD/8AAP/w
AAAP/wAA//AAAA//AAD/8AAAD/8AAP/wAAAP/wAA//AAAA//AAD/8AAAD/8AAP/wAAAP/wAA//AAAA//
AAD/8AAAD/8AAP/wAAAP/wAA//AAAA//AAD/8AAAD/8AAP/wAAAP/wAA//AAAA//AAD/8AAAD/8AAP/w
AAAP/wAA//AAAA//AAD/8AAAD/8AAP/wAAAP/wAA////////AAD///////8AAA==
</value>
</data>
</root>
@@ -1,4 +1,4 @@
//----------------------------------------------------------------------------------
//----------------------------------------------------------------------------------
// Copyright (c) Microsoft Corporation. All rights reserved.
//
// THIS CODE AND INFORMATION ARE PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND,
@@ -92,8 +92,7 @@ namespace DemoWorkload
/// </summary>
private void UpdateElapsed(string Elapsed)
{
try { this.lblTime.Text = Elapsed.ToString(); }
catch (Exception ex) { ShowThreadExceptionDialog("UpdateElapsed", ex); }
this.lblTime.Text = Elapsed.ToString();
}
/// <summary>
@@ -1,30 +1,30 @@
using System;
using System.Configuration;
using System.Windows.Forms;
using System.Globalization;
namespace DemoWorkload
{
static class Program
{
public static int THREAD_COUNT = int.Parse(ConfigurationManager.AppSettings["ThreadCount"], CultureInfo.InvariantCulture);
public static int READS_PER_WRITE = int.Parse(ConfigurationManager.AppSettings["ReadsPerWrite"], CultureInfo.InvariantCulture);
public static int REQUEST_COUNT = int.Parse(ConfigurationManager.AppSettings["RequestCount"], CultureInfo.InvariantCulture);
public static int ROW_COUNT = int.Parse(ConfigurationManager.AppSettings["RowCount"], CultureInfo.InvariantCulture);
public static int TRANSACTION_COUNT = int.Parse(ConfigurationManager.AppSettings["TransactionCount"], CultureInfo.InvariantCulture);
public static long MAX_TPS = int.Parse(ConfigurationManager.AppSettings["MaxTps"], CultureInfo.InvariantCulture);
public static long MAX_LATCH_WAIT = int.Parse(ConfigurationManager.AppSettings["MaxLatchWaits"], CultureInfo.InvariantCulture);
public static string CONN_STR = ConfigurationManager.ConnectionStrings["TicketReservations"].ConnectionString;
/// <summary>
/// The main entry point for the application.
/// </summary>
[STAThread]
static void Main()
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(new FrmMain());
}
}
}
using System;
using System.Configuration;
using System.Windows.Forms;
using System.Globalization;
namespace DemoWorkload
{
static class Program
{
public static int THREAD_COUNT = int.Parse(ConfigurationManager.AppSettings["ThreadCount"], CultureInfo.InvariantCulture);
public static int READS_PER_WRITE = int.Parse(ConfigurationManager.AppSettings["ReadsPerWrite"], CultureInfo.InvariantCulture);
public static int REQUEST_COUNT = int.Parse(ConfigurationManager.AppSettings["RequestCount"], CultureInfo.InvariantCulture);
public static int ROW_COUNT = int.Parse(ConfigurationManager.AppSettings["RowCount"], CultureInfo.InvariantCulture);
public static int TRANSACTION_COUNT = int.Parse(ConfigurationManager.AppSettings["TransactionCount"], CultureInfo.InvariantCulture);
public static long MAX_TPS = int.Parse(ConfigurationManager.AppSettings["MaxTps"], CultureInfo.InvariantCulture);
public static long MAX_LATCH_WAIT = int.Parse(ConfigurationManager.AppSettings["MaxLatchWaits"], CultureInfo.InvariantCulture);
public static string CONN_STR = ConfigurationManager.ConnectionStrings["TicketReservations"].ConnectionString;
/// <summary>
/// The main entry point for the application.
/// </summary>
[STAThread]
static void Main()
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(new FrmMain());
}
}
}
@@ -1,93 +1,93 @@
//------------------------------------------------------------------------------
// <auto-generated>
// This code was generated by a tool.
// Runtime Version:4.0.30319.42000
//
// Changes to this file may cause incorrect behavior and will be lost if
// the code is regenerated.
// </auto-generated>
//------------------------------------------------------------------------------
namespace DemoWorkload.Properties {
using System;
/// <summary>
/// A strongly-typed resource class, for looking up localized strings, etc.
/// </summary>
// This class was auto-generated by the StronglyTypedResourceBuilder
// class via a tool like ResGen or Visual Studio.
// To add or remove a member, edit your .ResX file then rerun ResGen
// with the /str option, or rebuild your VS project.
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "4.0.0.0")]
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
internal class Resources {
private static global::System.Resources.ResourceManager resourceMan;
private static global::System.Globalization.CultureInfo resourceCulture;
[global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")]
internal Resources() {
}
/// <summary>
/// Returns the cached ResourceManager instance used by this class.
/// </summary>
[global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
internal static global::System.Resources.ResourceManager ResourceManager {
get {
if (object.ReferenceEquals(resourceMan, null)) {
global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("DemoWorkload.Properties.Resources", typeof(Resources).Assembly);
resourceMan = temp;
}
return resourceMan;
}
}
/// <summary>
/// Overrides the current thread's CurrentUICulture property for all
/// resource lookups using this strongly typed resource class.
/// </summary>
[global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
internal static global::System.Globalization.CultureInfo Culture {
get {
return resourceCulture;
}
set {
resourceCulture = value;
}
}
/// <summary>
/// Looks up a localized resource of type System.Drawing.Bitmap.
/// </summary>
internal static System.Drawing.Bitmap SQLBackground {
get {
object obj = ResourceManager.GetObject("SQLBackground", resourceCulture);
return ((System.Drawing.Bitmap)(obj));
}
}
/// <summary>
/// Looks up a localized resource of type System.Drawing.Bitmap.
/// </summary>
internal static System.Drawing.Bitmap SQLBackground1 {
get {
object obj = ResourceManager.GetObject("SQLBackground1", resourceCulture);
return ((System.Drawing.Bitmap)(obj));
}
}
/// <summary>
/// Looks up a localized resource of type System.Drawing.Icon similar to (Icon).
/// </summary>
internal static System.Drawing.Icon sqlserver {
get {
object obj = ResourceManager.GetObject("sqlserver", resourceCulture);
return ((System.Drawing.Icon)(obj));
}
}
}
}
//------------------------------------------------------------------------------
// <auto-generated>
// This code was generated by a tool.
// Runtime Version:4.0.30319.42000
//
// Changes to this file may cause incorrect behavior and will be lost if
// the code is regenerated.
// </auto-generated>
//------------------------------------------------------------------------------
namespace DemoWorkload.Properties {
using System;
/// <summary>
/// A strongly-typed resource class, for looking up localized strings, etc.
/// </summary>
// This class was auto-generated by the StronglyTypedResourceBuilder
// class via a tool like ResGen or Visual Studio.
// To add or remove a member, edit your .ResX file then rerun ResGen
// with the /str option, or rebuild your VS project.
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "4.0.0.0")]
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
internal class Resources {
private static global::System.Resources.ResourceManager resourceMan;
private static global::System.Globalization.CultureInfo resourceCulture;
[global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")]
internal Resources() {
}
/// <summary>
/// Returns the cached ResourceManager instance used by this class.
/// </summary>
[global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
internal static global::System.Resources.ResourceManager ResourceManager {
get {
if (object.ReferenceEquals(resourceMan, null)) {
global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("DemoWorkload.Properties.Resources", typeof(Resources).Assembly);
resourceMan = temp;
}
return resourceMan;
}
}
/// <summary>
/// Overrides the current thread's CurrentUICulture property for all
/// resource lookups using this strongly typed resource class.
/// </summary>
[global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
internal static global::System.Globalization.CultureInfo Culture {
get {
return resourceCulture;
}
set {
resourceCulture = value;
}
}
/// <summary>
/// Looks up a localized resource of type System.Drawing.Bitmap.
/// </summary>
internal static System.Drawing.Bitmap SQLBackground {
get {
object obj = ResourceManager.GetObject("SQLBackground", resourceCulture);
return ((System.Drawing.Bitmap)(obj));
}
}
/// <summary>
/// Looks up a localized resource of type System.Drawing.Bitmap.
/// </summary>
internal static System.Drawing.Bitmap SQLBackground1 {
get {
object obj = ResourceManager.GetObject("SQLBackground1", resourceCulture);
return ((System.Drawing.Bitmap)(obj));
}
}
/// <summary>
/// Looks up a localized resource of type System.Drawing.Icon similar to (Icon).
/// </summary>
internal static System.Drawing.Icon sqlserver {
get {
object obj = ResourceManager.GetObject("sqlserver", resourceCulture);
return ((System.Drawing.Icon)(obj));
}
}
}
}
@@ -1,130 +1,130 @@
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
Version 2.0
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value>
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" use="required" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="assembly">
<xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<assembly alias="System.Windows.Forms" name="System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
<data name="SQLBackground" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\SQLBackground.jpg;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="SQLBackground1" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\SQLBackground.jpg;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="sqlserver" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\sqlserver.ico;System.Drawing.Icon, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
Version 2.0
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value>
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" use="required" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="assembly">
<xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<assembly alias="System.Windows.Forms" name="System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
<data name="SQLBackground" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\SQLBackground.jpg;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="SQLBackground1" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\SQLBackground.jpg;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="sqlserver" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\sqlserver.ico;System.Drawing.Icon, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
</root>
@@ -1,26 +1,26 @@
//------------------------------------------------------------------------------
// <auto-generated>
// This code was generated by a tool.
// Runtime Version:4.0.30319.42000
//
// Changes to this file may cause incorrect behavior and will be lost if
// the code is regenerated.
// </auto-generated>
//------------------------------------------------------------------------------
namespace DemoWorkload.Properties {
[global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "14.0.0.0")]
internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase {
private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings())));
public static Settings Default {
get {
return defaultInstance;
}
}
}
}
//------------------------------------------------------------------------------
// <auto-generated>
// This code was generated by a tool.
// Runtime Version:4.0.30319.42000
//
// Changes to this file may cause incorrect behavior and will be lost if
// the code is regenerated.
// </auto-generated>
//------------------------------------------------------------------------------
namespace DemoWorkload.Properties {
[global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "14.0.0.0")]
internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase {
private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings())));
public static Settings Default {
get {
return defaultInstance;
}
}
}
}
@@ -1,7 +1,7 @@
<?xml version='1.0' encoding='utf-8'?>
<SettingsFile xmlns="http://schemas.microsoft.com/VisualStudio/2004/01/settings" CurrentProfile="(Default)">
<Profiles>
<Profile Name="(Default)" />
</Profiles>
<Settings />
</SettingsFile>
<?xml version='1.0' encoding='utf-8'?>
<SettingsFile xmlns="http://schemas.microsoft.com/VisualStudio/2004/01/settings" CurrentProfile="(Default)">
<Profiles>
<Profile Name="(Default)" />
</Profiles>
<Settings />
</SettingsFile>

Before

Width:  |  Height:  |  Size: 19 KiB

After

Width:  |  Height:  |  Size: 19 KiB

Before

Width:  |  Height:  |  Size: 22 KiB

After

Width:  |  Height:  |  Size: 22 KiB

@@ -1,60 +1,60 @@
//----------------------------------------------------------------------------------
// Copyright (c) Microsoft Corporation. All rights reserved.
//
// THIS CODE AND INFORMATION ARE PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND,
// EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED WARRANTIES
// OF MERCHANTABILITY AND/OR FITNESS FOR A PARTICULAR PURPOSE.
//----------------------------------------------------------------------------------
// The example companies, organizations, products, domain names,
// e-mail addresses, logos, people, places, and events depicted
// herein are fictitious. No association with any real company,
// organization, product, domain name, email address, logo, person,
// places, or events is intended or should be inferred.
using Gauge = CircularGauge.CircularGaugeControl;
using MediaColor = System.Windows.Media.Color;
using System;
namespace DemoWorkload
{
public class UIControls
{
Gauge _speedDial = new Gauge();
public Gauge speedDial { get { return _speedDial; }}
public UIControls()
{
SpeedDialInit();
}
private void SpeedDialInit()
{
// Initialize CircularGauge Control
_speedDial.Radius = 120;
_speedDial.DialBorderThickness = 0;
_speedDial.ScaleRadius = 110;
_speedDial.ScaleStartAngle = 120;
_speedDial.ResetPointerOnStartUp = true;
_speedDial.ScaleSweepAngle = 300;
_speedDial.PointerLength = 85;
_speedDial.PointerCapRadius = 0;
_speedDial.MinValue = 0;
_speedDial.MaxValue = 60;
_speedDial.DialText = "0";
_speedDial.MajorDivisionsCount = 10;
_speedDial.MinorDivisionsCount = 5;
_speedDial.RangeIndicatorThickness = 0;
_speedDial.RangeIndicatorRadius = 0;
_speedDial.ScaleLabelRadius = 90;
_speedDial.ScaleLabelFontSize = 12;
_speedDial.ScaleLabelForeground = MediaColor.FromRgb(0, 0, 0); // Black
_speedDial.MajorTickColor = MediaColor.FromRgb(169, 169, 169); // DarkGray
_speedDial.MinorTickColor = MediaColor.FromRgb(169, 169, 169); // DarkGray
_speedDial.ImageOffset = -50;
_speedDial.GaugeBackgroundColor = MediaColor.FromRgb(255, 255, 255); // White
_speedDial.PointerThickness = 5;
_speedDial.DialTextOffset = 100;
_speedDial.DialTextColor = MediaColor.FromRgb(0, 0, 0); // Red
_speedDial.DialBorderThickness = 0;
}
}
}
//----------------------------------------------------------------------------------
// Copyright (c) Microsoft Corporation. All rights reserved.
//
// THIS CODE AND INFORMATION ARE PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND,
// EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED WARRANTIES
// OF MERCHANTABILITY AND/OR FITNESS FOR A PARTICULAR PURPOSE.
//----------------------------------------------------------------------------------
// The example companies, organizations, products, domain names,
// e-mail addresses, logos, people, places, and events depicted
// herein are fictitious. No association with any real company,
// organization, product, domain name, email address, logo, person,
// places, or events is intended or should be inferred.
using Gauge = CircularGauge.CircularGaugeControl;
using MediaColor = System.Windows.Media.Color;
using System;
namespace DemoWorkload
{
public class UIControls
{
Gauge _speedDial = new Gauge();
public Gauge speedDial { get { return _speedDial; }}
public UIControls()
{
SpeedDialInit();
}
private void SpeedDialInit()
{
// Initialize CircularGauge Control
_speedDial.Radius = 120;
_speedDial.DialBorderThickness = 0;
_speedDial.ScaleRadius = 110;
_speedDial.ScaleStartAngle = 120;
_speedDial.ResetPointerOnStartUp = true;
_speedDial.ScaleSweepAngle = 300;
_speedDial.PointerLength = 85;
_speedDial.PointerCapRadius = 0;
_speedDial.MinValue = 0;
_speedDial.MaxValue = 60;
_speedDial.DialText = "0";
_speedDial.MajorDivisionsCount = 10;
_speedDial.MinorDivisionsCount = 5;
_speedDial.RangeIndicatorThickness = 0;
_speedDial.RangeIndicatorRadius = 0;
_speedDial.ScaleLabelRadius = 90;
_speedDial.ScaleLabelFontSize = 12;
_speedDial.ScaleLabelForeground = MediaColor.FromRgb(0, 0, 0); // Black
_speedDial.MajorTickColor = MediaColor.FromRgb(169, 169, 169); // DarkGray
_speedDial.MinorTickColor = MediaColor.FromRgb(169, 169, 169); // DarkGray
_speedDial.ImageOffset = -50;
_speedDial.GaugeBackgroundColor = MediaColor.FromRgb(255, 255, 255); // White
_speedDial.PointerThickness = 5;
_speedDial.DialTextOffset = 100;
_speedDial.DialTextColor = MediaColor.FromRgb(0, 0, 0); // Red
_speedDial.DialBorderThickness = 0;
}
}
}
@@ -1,4 +1,4 @@
<?xml version="1.0" encoding="utf-8"?>
<packages>
<package id="CircularGauge" version="1.0.0" targetFramework="net46" />
<?xml version="1.0" encoding="utf-8"?>
<packages>
<package id="CircularGauge" version="1.0.0" targetFramework="net46" />
</packages>
@@ -1,38 +1,38 @@

Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio 2013
VisualStudioVersion = 12.0.40629.0
MinimumVisualStudioVersion = 10.0.40219.1
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "DemoWorkload", "DemoWorkload\DemoWorkload.csproj", "{2881A3C4-9153-46F2-8196-9929ED9C17D6}"
EndProject
Project("{00D1A9C2-B5F0-4AF3-8072-F6C62B433612}") = "TicketReservations", "TicketReservations\TicketReservations.sqlproj", "{38641248-77EA-479B-B496-3EDA463ACEAD}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
Debug|x86 = Debug|x86
Release|Any CPU = Release|Any CPU
Release|x86 = Release|x86
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{2881A3C4-9153-46F2-8196-9929ED9C17D6}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{2881A3C4-9153-46F2-8196-9929ED9C17D6}.Debug|Any CPU.Build.0 = Debug|Any CPU
{2881A3C4-9153-46F2-8196-9929ED9C17D6}.Debug|x86.ActiveCfg = Debug|x86
{2881A3C4-9153-46F2-8196-9929ED9C17D6}.Debug|x86.Build.0 = Debug|x86
{2881A3C4-9153-46F2-8196-9929ED9C17D6}.Release|Any CPU.ActiveCfg = Release|Any CPU
{2881A3C4-9153-46F2-8196-9929ED9C17D6}.Release|Any CPU.Build.0 = Release|Any CPU
{2881A3C4-9153-46F2-8196-9929ED9C17D6}.Release|x86.ActiveCfg = Release|x86
{2881A3C4-9153-46F2-8196-9929ED9C17D6}.Release|x86.Build.0 = Release|x86
{38641248-77EA-479B-B496-3EDA463ACEAD}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{38641248-77EA-479B-B496-3EDA463ACEAD}.Debug|Any CPU.Build.0 = Debug|Any CPU
{38641248-77EA-479B-B496-3EDA463ACEAD}.Debug|Any CPU.Deploy.0 = Debug|Any CPU
{38641248-77EA-479B-B496-3EDA463ACEAD}.Debug|x86.ActiveCfg = Debug|Any CPU
{38641248-77EA-479B-B496-3EDA463ACEAD}.Release|Any CPU.ActiveCfg = Release|Any CPU
{38641248-77EA-479B-B496-3EDA463ACEAD}.Release|Any CPU.Build.0 = Release|Any CPU
{38641248-77EA-479B-B496-3EDA463ACEAD}.Release|Any CPU.Deploy.0 = Release|Any CPU
{38641248-77EA-479B-B496-3EDA463ACEAD}.Release|x86.ActiveCfg = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
EndGlobalSection
EndGlobal

Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio 2013
VisualStudioVersion = 12.0.40629.0
MinimumVisualStudioVersion = 10.0.40219.1
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "DemoWorkload", "DemoWorkload\DemoWorkload.csproj", "{2881A3C4-9153-46F2-8196-9929ED9C17D6}"
EndProject
Project("{00D1A9C2-B5F0-4AF3-8072-F6C62B433612}") = "TicketReservations", "TicketReservations\TicketReservations.sqlproj", "{38641248-77EA-479B-B496-3EDA463ACEAD}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
Debug|x86 = Debug|x86
Release|Any CPU = Release|Any CPU
Release|x86 = Release|x86
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{2881A3C4-9153-46F2-8196-9929ED9C17D6}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{2881A3C4-9153-46F2-8196-9929ED9C17D6}.Debug|Any CPU.Build.0 = Debug|Any CPU
{2881A3C4-9153-46F2-8196-9929ED9C17D6}.Debug|x86.ActiveCfg = Debug|x86
{2881A3C4-9153-46F2-8196-9929ED9C17D6}.Debug|x86.Build.0 = Debug|x86
{2881A3C4-9153-46F2-8196-9929ED9C17D6}.Release|Any CPU.ActiveCfg = Release|Any CPU
{2881A3C4-9153-46F2-8196-9929ED9C17D6}.Release|Any CPU.Build.0 = Release|Any CPU
{2881A3C4-9153-46F2-8196-9929ED9C17D6}.Release|x86.ActiveCfg = Release|x86
{2881A3C4-9153-46F2-8196-9929ED9C17D6}.Release|x86.Build.0 = Release|x86
{38641248-77EA-479B-B496-3EDA463ACEAD}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{38641248-77EA-479B-B496-3EDA463ACEAD}.Debug|Any CPU.Build.0 = Debug|Any CPU
{38641248-77EA-479B-B496-3EDA463ACEAD}.Debug|Any CPU.Deploy.0 = Debug|Any CPU
{38641248-77EA-479B-B496-3EDA463ACEAD}.Debug|x86.ActiveCfg = Debug|Any CPU
{38641248-77EA-479B-B496-3EDA463ACEAD}.Release|Any CPU.ActiveCfg = Release|Any CPU
{38641248-77EA-479B-B496-3EDA463ACEAD}.Release|Any CPU.Build.0 = Release|Any CPU
{38641248-77EA-479B-B496-3EDA463ACEAD}.Release|Any CPU.Deploy.0 = Release|Any CPU
{38641248-77EA-479B-B496-3EDA463ACEAD}.Release|x86.ActiveCfg = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
EndGlobalSection
EndGlobal
@@ -1,56 +1,56 @@
# Ticket Reservations Sample
Ticket Reservations is a Windows Forms sample application built on .NET Framework 4.6 that demonstrates the performance benefits of using SQL Server memory optimized tables and native compiled stored procedures. You can compare the performance before and after enabling In-Memory OLTP by observing the transactions/sec as well as the current CPU Usage and latches/sec.
![Alt text](Screenshots/1.png "Ticket Reservations")
## Running this sample
1. Before you can run this sample, you must have the following perquisites:
- SQL Server 2016 CTP3 (or higher)
- Visual Studio 2015 (or higher) with the latest SSDT installed.
2. Clone this repository using Git for Windows (http://www.git-scm.com/), or download the zip file.
3. From Visual Studio, open the **InMemoryOLTPDemo.sln** file from the root directory.
4. In Visual Studio Build menu, select **Build Solution** (or Press F6).
5. In the **App.config** file, located in the project root, find the **TicketReservations** app setting and edit the connectionString if needed. Currently it is configured to connect to the local default SQL Server Instance using Integrated Security.
6. Publish the TicketReservations Database
- Right click on the TicketReservations SQL Server Database Project and Select **Publish**
- Click Edit... to choose your connection string
- Click Publish
- Note: For publishing to Azure SQL you need to change the DB project target platform to **Microsoft Azure SQL Database V12**
7. You can now run and debug the application locally by pressing **F5** in Visual Studio.
8. Start the workload with the **Start** button, and run for a while to show perf profile. Then press stop to stop the workload.
9. In the database project,
- Change TicketReservations.sql to a memory-optimized table (instructions commented in the file itself)
- Change InsertTicketReservations.sql to natively compiled (instructions in the same file)
10. Publish the database project to the same database the tool will take care of making the necessary changes.
Note that, as part of publication, the data is copied from the old disk-based table to the new memory-optimized table, so the longer you run the initial workload, the longer this publication takes.
11. Go back to the app and run the workload again. No need to recompile or restart the application.
The perf gains from In-Memory OLTP as shown by the load generation app depend on two factors:
- Hardware
- more cores => higher perf gain
- slower log IO => lower perf gain
- Configuration settings in the load generator
- more rows per transaction => higher perf gain
- more reads per write => lower perf gain
- default setting is 10 rows per transaction and 1 read per write
With default settings on one machine with 24 logical cores and relatively slow SSD for the log the app shows around performance 40X gain, and in this case the bottleneck was log IO.
## About the code
The code included in this sample is not intended to be a set of best practices on how to build scalable enterprise grade web applications. This is beyond the scope of this quick start sample.
## More information
- [In-Memory OLTP (In-Memory Optimization)] (https://msdn.microsoft.com/en-us/library/dn133186.aspx)
- [OLTP and database management] (https://www.microsoft.com/en-us/server-cloud/solutions/oltp-database-management.aspx)
# Ticket Reservations Sample
Ticket Reservations is a Windows Forms sample application built on .NET Framework 4.6 that demonstrates the performance benefits of using SQL Server memory optimized tables and native compiled stored procedures. You can compare the performance before and after enabling In-Memory OLTP by observing the transactions/sec as well as the current CPU Usage and latches/sec.
![Alt text](Screenshots/1.png "Ticket Reservations")
## Running this sample
1. Before you can run this sample, you must have the following perquisites:
- SQL Server 2016 CTP3 (or higher)
- Visual Studio 2015 (or higher) with the latest SSDT installed.
2. Clone this repository using Git for Windows (http://www.git-scm.com/), or download the zip file.
3. From Visual Studio, open the **InMemoryOLTPDemo.sln** file from the root directory.
4. In Visual Studio Build menu, select **Build Solution** (or Press F6).
5. In the **App.config** file, located in the project root, find the **TicketReservations** app setting and edit the connectionString if needed. Currently it is configured to connect to the local default SQL Server Instance using Integrated Security.
6. Publish the TicketReservations Database
- Right click on the TicketReservations SQL Server Database Project and Select **Publish**
- Click Edit... to choose your connection string
- Click Publish
- Note: For publishing to Azure SQL you need to change the DB project target platform to **Microsoft Azure SQL Database V12**
7. You can now run and debug the application locally by pressing **F5** in Visual Studio.
8. Start the workload with the **Start** button, and run for a while to show perf profile. Then press stop to stop the workload.
9. In the database project,
- Change TicketReservations.sql to a memory-optimized table (instructions commented in the file itself)
- Change InsertTicketReservations.sql to natively compiled (instructions in the same file)
10. Publish the database project to the same database the tool will take care of making the necessary changes.
Note that, as part of publication, the data is copied from the old disk-based table to the new memory-optimized table, so the longer you run the initial workload, the longer this publication takes.
11. Go back to the app and run the workload again. No need to recompile or restart the application.
The perf gains from In-Memory OLTP as shown by the load generation app depend on two factors:
- Hardware
- more cores => higher perf gain
- slower log IO => lower perf gain
- Configuration settings in the load generator
- more rows per transaction => higher perf gain
- more reads per write => lower perf gain
- default setting is 10 rows per transaction and 1 read per write
With default settings on one machine with 24 logical cores and relatively slow SSD for the log the app shows around performance 40X gain, and in this case the bottleneck was log IO.
## About the code
The code included in this sample is not intended to be a set of best practices on how to build scalable enterprise grade web applications. This is beyond the scope of this quick start sample.
## More information
- [In-Memory OLTP (In-Memory Optimization)] (https://msdn.microsoft.com/en-us/library/dn133186.aspx)
- [OLTP and database management] (https://www.microsoft.com/en-us/server-cloud/solutions/oltp-database-management.aspx)

Before

Width:  |  Height:  |  Size: 43 KiB

After

Width:  |  Height:  |  Size: 43 KiB

@@ -1,6 +1,6 @@
CREATE SEQUENCE [dbo].[TicketReservationSequence]
AS INT
START WITH 1
INCREMENT BY 1
CACHE 50000;
CREATE SEQUENCE [dbo].[TicketReservationSequence]
AS INT
START WITH 1
INCREMENT BY 1
CACHE 50000;
@@ -1,4 +1,4 @@

create proc Demo_Reset
as
TRUNCATE TABLE dbo.TicketReservationDetail;

create proc Demo_Reset
as
TRUNCATE TABLE dbo.TicketReservationDetail;