├── Utils ├── devcon.exe ├── README.rst └── devcon.LICENSE ├── images ├── dlgbmp.bmp └── bannrbmp.bmp ├── Microsoft_VC142_CRT_x64.msm ├── BuildUtils.ps1 ├── BinariesFilter.xsl ├── ceph-windows-installer.sln ├── Dialogs ├── UserExit.wxs ├── MaintenanceWelcomeDlg.wxs ├── WelcomeDlg.wxs └── ExitDialog.wxs ├── CustomActions.wxs ├── README.rst ├── UI.wxs ├── .gitignore ├── ceph-windows-installer.wixproj ├── Build.ps1 ├── LICENSE ├── Actions └── CephActions.js ├── Product.wxs └── License.rtf /Utils/devcon.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cloudbase/ceph-windows-installer/HEAD/Utils/devcon.exe -------------------------------------------------------------------------------- /images/dlgbmp.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cloudbase/ceph-windows-installer/HEAD/images/dlgbmp.bmp -------------------------------------------------------------------------------- /images/bannrbmp.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cloudbase/ceph-windows-installer/HEAD/images/bannrbmp.bmp -------------------------------------------------------------------------------- /Utils/README.rst: -------------------------------------------------------------------------------- 1 | DevCon sources: 2 | https://github.com/microsoft/Windows-driver-samples/tree/main/setup/devcon 3 | -------------------------------------------------------------------------------- /Microsoft_VC142_CRT_x64.msm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cloudbase/ceph-windows-installer/HEAD/Microsoft_VC142_CRT_x64.msm -------------------------------------------------------------------------------- /BuildUtils.ps1: -------------------------------------------------------------------------------- 1 | function ExecRetry($command, $maxRetryCount = 10, $retryInterval=2) 2 | { 3 | $currErrorActionPreference = $ErrorActionPreference 4 | $ErrorActionPreference = "Continue" 5 | 6 | $retryCount = 0 7 | while ($true) { 8 | try { 9 | & $command 10 | break 11 | } 12 | catch [System.Exception] { 13 | $retryCount++ 14 | if ($retryCount -ge $maxRetryCount) { 15 | $ErrorActionPreference = $currErrorActionPreference 16 | throw 17 | } else { 18 | Write-Error $_.Exception 19 | Start-Sleep $retryInterval 20 | } 21 | } 22 | } 23 | 24 | $ErrorActionPreference = $currErrorActionPreference 25 | } 26 | -------------------------------------------------------------------------------- /BinariesFilter.xsl: -------------------------------------------------------------------------------- 1 | 2 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 16 | 17 | 18 | 19 | 20 | -------------------------------------------------------------------------------- /ceph-windows-installer.sln: -------------------------------------------------------------------------------- 1 | 2 | Microsoft Visual Studio Solution File, Format Version 12.00 3 | # Visual Studio 2019 4 | VisualStudioVersion = 12.0.31101.0 5 | MinimumVisualStudioVersion = 10.0.40219.1 6 | Project("{930C7802-8A8C-48F9-8165-68863BCCD9EE}") = "ceph-windows-installer", "ceph-windows-installer.wixproj", "{259905A2-7434-4190-8A33-8FBA67171DD7}" 7 | EndProject 8 | Global 9 | GlobalSection(SolutionConfigurationPlatforms) = preSolution 10 | Release|x64 = Release|x64 11 | EndGlobalSection 12 | GlobalSection(ProjectConfigurationPlatforms) = postSolution 13 | {259905A2-7434-4190-8A33-8FBA67171DD7}.Release|x64.ActiveCfg = Release|x64 14 | {259905A2-7434-4190-8A33-8FBA67171DD7}.Release|x64.Build.0 = Release|x64 15 | EndGlobalSection 16 | GlobalSection(SolutionProperties) = preSolution 17 | HideSolutionNode = FALSE 18 | EndGlobalSection 19 | EndGlobal 20 | -------------------------------------------------------------------------------- /Dialogs/UserExit.wxs: -------------------------------------------------------------------------------- 1 | 2 | 10 | 11 | 12 | 13 | 14 | 15 | 1 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | -------------------------------------------------------------------------------- /Dialogs/MaintenanceWelcomeDlg.wxs: -------------------------------------------------------------------------------- 1 | 2 | 10 | 11 | 12 | 13 | 14 | 15 | !(wix.WixUICostingPopupOptOut) OR CostingComplete = 1 16 | 17 | 18 | 1 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | Installed AND NOT RESUME AND NOT Preselected AND NOT PATCH 29 | 30 | 31 | 32 | -------------------------------------------------------------------------------- /Dialogs/WelcomeDlg.wxs: -------------------------------------------------------------------------------- 1 | 2 | 10 | 11 | 12 | 13 | 14 | 15 | Installed AND PATCH 16 | 17 | 18 | 1 19 | 20 | 21 | 22 | 23 | 24 | NOT Installed OR NOT PATCH 25 | Installed AND PATCH 26 | 27 | 28 | Installed AND PATCH 29 | NOT Installed OR NOT PATCH 30 | 31 | 32 | 33 | 34 | 35 | NOT Installed OR PATCH 36 | 37 | 38 | 39 | -------------------------------------------------------------------------------- /Dialogs/ExitDialog.wxs: -------------------------------------------------------------------------------- 1 | 2 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 24 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | -------------------------------------------------------------------------------- /CustomActions.wxs: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 9 | 12 | 13 | 16 | 19 | 20 | 23 | 26 | 27 | 30 | 33 | 34 | 37 | 40 | 41 | -------------------------------------------------------------------------------- /Utils/devcon.LICENSE: -------------------------------------------------------------------------------- 1 | The Microsoft Public License (MS-PL) 2 | Copyright (c) 2015 Microsoft 3 | 4 | This license governs use of the accompanying software. If you use the software, you 5 | accept this license. If you do not accept the license, do not use the software. 6 | 7 | 1. Definitions 8 | The terms "reproduce," "reproduction," "derivative works," and "distribution" have the 9 | same meaning here as under U.S. copyright law. 10 | A "contribution" is the original software, or any additions or changes to the software. 11 | A "contributor" is any person that distributes its contribution under this license. 12 | "Licensed patents" are a contributor's patent claims that read directly on its contribution. 13 | 14 | 2. Grant of Rights 15 | (A) Copyright Grant- Subject to the terms of this license, including the license conditions and limitations in section 3, each contributor grants you a non-exclusive, worldwide, royalty-free copyright license to reproduce its contribution, prepare derivative works of its contribution, and distribute its contribution or any derivative works that you create. 16 | (B) Patent Grant- Subject to the terms of this license, including the license conditions and limitations in section 3, each contributor grants you a non-exclusive, worldwide, royalty-free license under its licensed patents to make, have made, use, sell, offer for sale, import, and/or otherwise dispose of its contribution in the software or derivative works of the contribution in the software. 17 | 18 | 3. Conditions and Limitations 19 | (A) No Trademark License- This license does not grant you rights to use any contributors' name, logo, or trademarks. 20 | (B) If you bring a patent claim against any contributor over patents that you claim are infringed by the software, your patent license from such contributor to the software ends automatically. 21 | (C) If you distribute any portion of the software, you must retain all copyright, patent, trademark, and attribution notices that are present in the software. 22 | (D) If you distribute any portion of the software in source code form, you may do so only under this license by including a complete copy of this license with your distribution. If you distribute any portion of the software in compiled or object code form, you may only do so under a license that complies with this license. 23 | (E) The software is licensed "as-is." You bear the risk of using it. The contributors give no express warranties, guarantees or conditions. You may have additional consumer rights under your local laws which this license cannot change. To the extent permitted under your local laws, the contributors exclude the implied warranties of merchantability, fitness for a particular purpose and non-infringement. 24 | -------------------------------------------------------------------------------- /README.rst: -------------------------------------------------------------------------------- 1 | Ceph Windows Installer 2 | ====================== 3 | 4 | This project generates a MSI installer for Ceph on Windows. 5 | 6 | Requirements 7 | ------------ 8 | 9 | Visual Studio 2019 Community, Professional, Premium or Ultimate edition 10 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 11 | 12 | Visual Studio Community 2019 is freely available at: 13 | https://www.visualstudio.com/en-us/products/visual-studio-community-vs.aspx 14 | 15 | WiX Toolset 3.11 16 | ^^^^^^^^^^^^^^^^ 17 | 18 | Download and install from: 19 | http://wixtoolset.org/releases/v3.11/stable 20 | 21 | Copy the driver files built using the instructions from https://github.com/cloudbase/wnbd#how-to-build to the ``ceph-windows-installer/Driver`` folder. 22 | Copy also the ``*.pdb`` files generated when building the driver in the ``ceph-windows-installer/Symbols`` folder. Optionally Ceph 23 | symbols might be included as well. ``wnbd-client.exe`` as well as ``libwnbd.dll`` must be copied to the ``ceph-windows-installer/Binaries`` 24 | folder. 25 | 26 | Copy the binaries built using the instructions from https://github.com/petrutlucian94/ceph/blob/windows.12/README.windows.rst#building 27 | to the ``ceph-windows-installer/Binaries`` folder. 28 | 29 | For the ceph-rbd service to work, additional steps are required after installation: 30 | 31 | * Create the C:\\ProgramData folder. Inside, create a ceph.conf file with the required configuration (you can copy it from an osd server). 32 | * Create a ceph.client.admin.keyring file with the required configuration (you can copy it from an osd server). 33 | * Restart the service: :code:`Restart-Service ceph-rbd` 34 | 35 | Build instructions 36 | ------------------ 37 | 38 | Build the solution in the Visual Studio IDE or via command line: 39 | :: 40 | 41 | msbuild ceph-windows-installer.sln /p:Platform=x64 /p:Configuration=Release 42 | 43 | A complete build script that handles the Ceph and WNBD dependencies, plus the digital signature of both driver and MSI is also included. 44 | 45 | To perform a full build with digital signature, using WSL for building Ceph: 46 | :: 47 | 48 | .\Build.ps1 -UseWSL` 49 | -SignX509Thumbprint 1234...` 50 | -SignCrossCertPath path\to\the\cross\cert.cer` 51 | -SignTimestampUrl http://timestampurl 52 | 53 | To perform a full build with digital signature, copying the Ceph binaries from a separate location (can be a SSH, local or UNC path): 54 | :: 55 | 56 | .\Build.ps1 -CephZipPath user@host:ceph/build/ceph.zip` 57 | -SignX509Thumbprint 1234...` 58 | -SignCrossCertPath path\to\the\cross\cert.cer` 59 | -SignTimestampUrl http://timestampurl 60 | 61 | By default, the dependencies build directory is removed before every build. To retain it, please use the ``-RetainDependenciesBuildDir`` argument. 62 | 63 | To get a full list of the available command line arguments: 64 | :: 65 | 66 | help .\Build.ps1 67 | 68 | Automated installation 69 | ---------------------- 70 | 71 | For automated deployments, this package can be installed with the standard MSI silent mode, for example: 72 | :: 73 | 74 | msiexec.exe /i Ceph.msi /l*v log.txt /qn 75 | -------------------------------------------------------------------------------- /UI.wxs: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 1 22 | 23 | NOT Installed 24 | Installed AND PATCH 25 | 26 | 1 27 | LicenseAccepted = "1" 28 | 29 | NOT Installed OR WixUI_InstallMode = "Change" 30 | Installed AND NOT PATCH 31 | Installed AND PATCH 32 | 33 | 1 34 | 35 | 36 | 1 37 | 1 38 | 39 | 40 | 1 41 | 1 42 | 1 43 | 1 44 | 45 | Installed 46 | NOT Installed 47 | 48 | 1 49 | 1 50 | 51 | 52 | 53 | 54 | 55 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | ## Ignore Visual Studio temporary files, build results, and 2 | ## files generated by popular Visual Studio add-ons. 3 | 4 | # User-specific files 5 | *.suo 6 | *.user 7 | *.sln.docstates 8 | 9 | Binaries.wxs 10 | Symbols.wxs 11 | 12 | Binaries/ 13 | Symbols/ 14 | Driver/ 15 | Dependencies/ 16 | 17 | # Build results 18 | [Dd]ebug/ 19 | [Dd]ebugPublic/ 20 | [Rr]elease/ 21 | x64/ 22 | build/ 23 | bld/ 24 | [Bb]in/ 25 | [Oo]bj/ 26 | 27 | # MSTest test Results 28 | [Tt]est[Rr]esult*/ 29 | [Bb]uild[Ll]og.* 30 | 31 | #NUNIT 32 | *.VisualState.xml 33 | TestResult.xml 34 | 35 | # Build Results of an ATL Project 36 | [Dd]ebugPS/ 37 | [Rr]eleasePS/ 38 | dlldata.c 39 | 40 | *_i.c 41 | *_p.c 42 | *_i.h 43 | *.ilk 44 | *.meta 45 | *.obj 46 | *.pch 47 | *.pdb 48 | *.pgc 49 | *.pgd 50 | *.rsp 51 | *.sbr 52 | *.tlb 53 | *.tli 54 | *.tlh 55 | *.tmp 56 | *.tmp_proj 57 | *.log 58 | *.vspscc 59 | *.vssscc 60 | .builds 61 | *.pidb 62 | *.svclog 63 | *.scc 64 | 65 | # Chutzpah Test files 66 | _Chutzpah* 67 | 68 | # Visual C++ cache files 69 | ipch/ 70 | *.aps 71 | *.ncb 72 | *.opensdf 73 | *.sdf 74 | *.cachefile 75 | 76 | # Visual Studio profiler 77 | *.psess 78 | *.vsp 79 | *.vspx 80 | 81 | # TFS 2012 Local Workspace 82 | $tf/ 83 | 84 | # Guidance Automation Toolkit 85 | *.gpState 86 | 87 | # ReSharper is a .NET coding add-in 88 | _ReSharper*/ 89 | *.[Rr]e[Ss]harper 90 | *.DotSettings.user 91 | 92 | # JustCode is a .NET coding addin-in 93 | .JustCode 94 | 95 | # TeamCity is a build add-in 96 | _TeamCity* 97 | 98 | # DotCover is a Code Coverage Tool 99 | *.dotCover 100 | 101 | # NCrunch 102 | *.ncrunch* 103 | _NCrunch_* 104 | .*crunch*.local.xml 105 | 106 | # MightyMoose 107 | *.mm.* 108 | AutoTest.Net/ 109 | 110 | # Web workbench (sass) 111 | .sass-cache/ 112 | 113 | # Installshield output folder 114 | [Ee]xpress/ 115 | 116 | # DocProject is a documentation generator add-in 117 | DocProject/buildhelp/ 118 | DocProject/Help/*.HxT 119 | DocProject/Help/*.HxC 120 | DocProject/Help/*.hhc 121 | DocProject/Help/*.hhk 122 | DocProject/Help/*.hhp 123 | DocProject/Help/Html2 124 | DocProject/Help/html 125 | 126 | # Click-Once directory 127 | publish/ 128 | 129 | # Publish Web Output 130 | *.[Pp]ublish.xml 131 | *.azurePubxml 132 | 133 | # NuGet Packages Directory 134 | packages/* 135 | ## TODO: If the tool you use requires repositories.config uncomment the next line 136 | #!packages/repositories.config 137 | 138 | # Enable "build/" folder in the NuGet Packages folder since NuGet packages use it for MSBuild targets 139 | # This line needs to be after the ignore of the build folder (and the packages folder if the line above has been uncommented) 140 | !packages/build/ 141 | 142 | # Windows Azure Build Output 143 | csx/ 144 | *.build.csdef 145 | 146 | # Windows Store app package directory 147 | AppPackages/ 148 | 149 | # Others 150 | sql/ 151 | *.Cache 152 | ClientBin/ 153 | [Ss]tyle[Cc]op.* 154 | ~$* 155 | *~ 156 | *.dbmdl 157 | *.dbproj.schemaview 158 | *.pfx 159 | *.publishsettings 160 | node_modules/ 161 | 162 | # RIA/Silverlight projects 163 | Generated_Code/ 164 | 165 | # Backup & report files from converting an old project file to a newer 166 | # Visual Studio version. Backup files are not needed, because we have git ;-) 167 | _UpgradeReport_Files/ 168 | Backup*/ 169 | UpgradeLog*.XML 170 | UpgradeLog*.htm 171 | 172 | # SQL Server files 173 | *.mdf 174 | *.ldf 175 | 176 | # Business Intelligence projects 177 | *.rdl.data 178 | *.bim.layout 179 | *.bim_*.settings 180 | 181 | # Microsoft Fakes 182 | FakesAssemblies/ 183 | 184 | # ========================= 185 | # Windows detritus 186 | # ========================= 187 | 188 | # Windows image file caches 189 | Thumbs.db 190 | ehthumbs.db 191 | 192 | # Folder config file 193 | Desktop.ini 194 | 195 | # Recycle Bin used on file shares 196 | $RECYCLE.BIN/ 197 | -------------------------------------------------------------------------------- /ceph-windows-installer.wixproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Debug 5 | x64 6 | 3.8 7 | {259905a2-7434-4190-8a33-8fba67171dd7} 8 | 2.0 9 | Ceph 10 | Package 11 | false 12 | 13 | 14 | bin\$(Configuration)\ 15 | obj\$(Configuration)\ 16 | Debug 17 | 18 | 19 | bin\$(Configuration)\ 20 | obj\$(Configuration)\ 21 | 22 | 23 | 1.0.0.0 24 | $(CephMsiVersion) 25 | Ceph for Windows 26 | Ceph for Windows ($(CephRelease)) 27 | BinariesPath=Binaries;SymbolsPath=Symbols;CephMsiVersion=$(CephMsiVersionSafe);CephProductName=$(CephProductName) 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | $(WixExtDir)\WixUtilExtension.dll 59 | WixUtilExtension 60 | 61 | 62 | $(WixExtDir)\WixUIExtension.dll 63 | WixUIExtension 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | -------------------------------------------------------------------------------- /Build.ps1: -------------------------------------------------------------------------------- 1 | [CmdletBinding(DefaultParameterSetName='None')] 2 | Param( 3 | # Builds Ceph using WSL 4 | [Parameter(ParameterSetName="CephWSL", Mandatory=$true)] 5 | [Parameter(ParameterSetName="CephWSLSign", Mandatory=$true)] 6 | [switch]$UseWSL = $false, 7 | [Parameter(ParameterSetName="CephWSL")] 8 | [Parameter(ParameterSetName="CephWSLSign")] 9 | [ValidateNotNullOrEmpty()] 10 | [string]$WSLDistro = "Ubuntu-20.04", 11 | [Parameter(ParameterSetName="CephWSL")] 12 | [Parameter(ParameterSetName="CephWSLSign")] 13 | [ValidateNotNullOrEmpty()] 14 | [string]$CephRepoUrl = "https://github.com/ceph/ceph", 15 | [Parameter(ParameterSetName="CephWSL")] 16 | [Parameter(ParameterSetName="CephWSLSign")] 17 | [ValidateNotNullOrEmpty()] 18 | [string]$CephRepoBranch = "pacific", 19 | 20 | # Example: 16.0.0.0, default: 1.0.0.0. 21 | [string]$CephMsiVersion, 22 | # Example: Reef. If specified, it will be included in the product name. 23 | [string]$CephRelease, 24 | 25 | # Archive containing the Ceph Windows binaries, will be fetched using scp. 26 | # Can be a local path, a UNC path or a remote scp path. 27 | [Parameter(ParameterSetName="CephZipPath", Mandatory=$true)] 28 | [Parameter(ParameterSetName="CephZipPathSign", Mandatory=$true)] 29 | [ValidateNotNullOrEmpty()] 30 | [string]$CephZipPath, 31 | 32 | # The thumbprint of the X509 certificate used for signing the WNBD driver 33 | # and the MSI installer 34 | [Parameter(ParameterSetName="CephZipPathSign", Mandatory=$true)] 35 | [Parameter(ParameterSetName="CephWSLSign", Mandatory=$true)] 36 | [ValidateNotNullOrEmpty()] 37 | [string]$SignX509Thumbprint, 38 | [Parameter(ParameterSetName="CephZipPathSign", Mandatory=$true)] 39 | [Parameter(ParameterSetName="CephWSLSign", Mandatory=$true)] 40 | [ValidateNotNullOrEmpty()] 41 | [string]$SignTimestampUrl, 42 | [Parameter(ParameterSetName="CephZipPathSign")] 43 | [Parameter(ParameterSetName="CephWSLSign")] 44 | [ValidateNotNullOrEmpty()] 45 | [string]$SignCrossCertPath, 46 | 47 | # Don't remove the dependencies build directory if it exists. 48 | # This can be useful during development 49 | [switch]$RetainDependenciesBuildDir = $false, 50 | 51 | [switch]$IncludeCephDebugSymbols = $false, 52 | [switch]$MinimalCephDebugInfo = $true 53 | ) 54 | 55 | $ErrorActionPreference = "Stop" 56 | . "$PSScriptRoot\BuildUtils.ps1" 57 | 58 | function SetVCVars($version="2019", $platform="x86_amd64") { 59 | pushd "$ENV:ProgramFiles (x86)\Microsoft Visual Studio\$version\Community\VC\Auxiliary\Build" 60 | try { 61 | cmd /c "vcvarsall.bat $platform & set" | 62 | foreach { 63 | if ($_ -match "=") { 64 | $v = $_.split("="); set-item -force -path "ENV:\$($v[0])" -value "$($v[1])" 65 | } 66 | } 67 | } 68 | finally { 69 | popd 70 | } 71 | } 72 | 73 | function Sign($x509thumbprint, $crossCertPath, $timestampUrl, $path) { 74 | $crosscert_args = @() 75 | if ($crossCertPath) { 76 | $crosscert_args = @("/ac", $crossCertPath) 77 | } 78 | 79 | ExecRetry { 80 | & signtool.exe sign $crosscert_args /sha1 $x509thumbprint ` 81 | /tr $timestampUrl /td SHA256 /v $path 82 | if ($LASTEXITCODE) { throw "signtool failed" } 83 | } 84 | } 85 | 86 | function BuildWnbd() { 87 | pushd $depsBuildDir 88 | if (!(Test-Path wnbd)) { 89 | & git.exe clone https://github.com/cloudbase/wnbd 90 | if($LASTEXITCODE) { 91 | throw "git failed" 92 | } 93 | } 94 | cd wnbd 95 | 96 | & msbuild.exe vstudio\wnbd.sln /p:Configuration=Release 97 | if($LASTEXITCODE) { 98 | throw "msbuild failed" 99 | } 100 | 101 | if($SignX509Thumbprint) { 102 | Sign $SignX509Thumbprint $SignCrossCertPath $SignTimestampUrl .\vstudio\x64\Release\driver\wnbd.sys 103 | Sign $SignX509Thumbprint $SignCrossCertPath $SignTimestampUrl .\vstudio\x64\Release\driver\wnbd.cat 104 | } 105 | 106 | copy vstudio\x64\Release\driver\* ..\..\Driver\ 107 | copy vstudio\x64\Release\libwnbd.dll ..\..\Binaries\ 108 | copy vstudio\x64\Release\wnbd-client.exe ..\..\Binaries\ 109 | copy vstudio\wnbdevents.xml ..\..\Binaries\ 110 | copy vstudio\x64\Release\pdb\driver\* ..\..\Symbols\ 111 | copy vstudio\x64\Release\pdb\libwnbd\* ..\..\Symbols\ 112 | copy vstudio\x64\Release\pdb\wnbd-client\* ..\..\Symbols\ 113 | 114 | popd 115 | } 116 | 117 | function CopyCephBinaries($sourcePath, $targetPath) { 118 | $targetFullPath = (Get-Item $targetPath).FullName 119 | 120 | pushd $sourcePath 121 | copy -Recurse -Force -Path ` 122 | *.dll,` 123 | *.debug,` 124 | ceph-conf.exe,` 125 | rados.exe,` 126 | rbd.exe,` 127 | rbd-wnbd.exe,` 128 | ceph-dokan.exe ` 129 | -Destination $targetFullPath 130 | popd 131 | } 132 | 133 | function GetCephBinaries($cephZipPath) { 134 | pushd $depsBuildDir 135 | 136 | if (!(Test-Path cephzip)) { 137 | & scp.exe $cephZipPath ceph.zip 138 | if($LASTEXITCODE) { 139 | throw "scp failed" 140 | } 141 | 142 | Expand-Archive ceph.zip -DestinationPath cephzip 143 | rm ceph.zip 144 | } 145 | 146 | CopyCephBinaries "cephzip\ceph" "..\Binaries\" 147 | popd 148 | } 149 | 150 | function BuildCephWSL($includeDebugSymbols, $minimalDebugInfo) { 151 | pushd $depsBuildDir 152 | 153 | if (!(Test-Path ceph)) { 154 | & wsl.exe -d $WSLDistro -u root -e bash -c "git -c core.symlinks=true clone --recurse-submodules $CephRepoUrl -b $CephRepoBranch" 155 | if($LASTEXITCODE) { 156 | throw "git failed" 157 | } 158 | } 159 | cd ceph 160 | 161 | if ($includeDebugSymbols) { 162 | if ($minimalDebugInfo) { 163 | $buildModeFlags = "CFLAGS=-g1 CXXFLAGS=-g1 CMAKE_BUILD_TYPE=Release" 164 | } 165 | else { 166 | $buildModeFlags = "CMAKE_BUILD_TYPE=RelWithDebInfo" 167 | } 168 | } 169 | else { 170 | $buildModeFlags = "CMAKE_BUILD_TYPE=Release" 171 | } 172 | 173 | $buildCmd = ( 174 | "time ENABLE_SHARED=ON SKIP_TESTS=1 SKIP_BINDIR_CLEAN=1 " + 175 | "$buildModeFlags ./win32_build.sh") 176 | & wsl.exe -d $WSLDistro -u root -e bash -c $buildCmd 177 | if($LASTEXITCODE) { 178 | throw "Ceph WSL build failed" 179 | } 180 | 181 | $CephZipPath = (Resolve-Path "build\ceph.zip").Path 182 | GetCephBinaries -cephZipPath $CephZipPath 183 | 184 | popd 185 | } 186 | 187 | cd $PSScriptRoot 188 | $depsBuildDir = "${PSScriptRoot}\Dependencies" 189 | 190 | SetVCVars 191 | 192 | if ((Test-Path $depsBuildDir) -and !$RetainDependenciesBuildDir) { 193 | Write-Output "Removing dependencies build dir" 194 | cmd /c rmdir /s /q $depsBuildDir\ 195 | } 196 | 197 | mkdir -Force $depsBuildDir 198 | 199 | $RequiredDirs = "Driver", "Binaries", "Symbols" 200 | foreach ($dir in $RequiredDirs) 201 | { 202 | mkdir -Force $dir 203 | del -Recurse $dir\* 204 | } 205 | 206 | if($UseWSL) { 207 | BuildCephWSL -includeDebugSymbols $IncludeCephDebugSymbols ` 208 | -minimalDebugInfo $MinimalCephDebugInfo 209 | } else { 210 | GetCephBinaries -cephZipPath $CephZipPath 211 | } 212 | 213 | BuildWnbd 214 | 215 | $configuration = "Release" 216 | & msbuild.exe ceph-windows-installer.sln ` 217 | /p:Platform=x64 /p:Configuration=$configuration ` 218 | /p:CephMsiVersion=$CephMsiVersion /p:CephRelease=$CephRelease 219 | if($LASTEXITCODE) { 220 | throw "msbuild failed" 221 | } 222 | 223 | if($SignX509Thumbprint) { 224 | Sign $SignX509Thumbprint $SignCrossCertPath $SignTimestampUrl .\bin\Release\Ceph.msi 225 | } 226 | 227 | Write-Output "" 228 | Write-Output "Success! MSI location: $((Get-Item .\bin\$configuration\Ceph.msi).FullName)" 229 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | GNU LESSER GENERAL PUBLIC LICENSE 2 | Version 3, 29 June 2007 3 | 4 | Copyright (C) 2007 Free Software Foundation, Inc. 5 | Everyone is permitted to copy and distribute verbatim copies 6 | of this license document, but changing it is not allowed. 7 | 8 | 9 | This version of the GNU Lesser General Public License incorporates 10 | the terms and conditions of version 3 of the GNU General Public 11 | License, supplemented by the additional permissions listed below. 12 | 13 | 0. Additional Definitions. 14 | 15 | As used herein, "this License" refers to version 3 of the GNU Lesser 16 | General Public License, and the "GNU GPL" refers to version 3 of the GNU 17 | General Public License. 18 | 19 | "The Library" refers to a covered work governed by this License, 20 | other than an Application or a Combined Work as defined below. 21 | 22 | An "Application" is any work that makes use of an interface provided 23 | by the Library, but which is not otherwise based on the Library. 24 | Defining a subclass of a class defined by the Library is deemed a mode 25 | of using an interface provided by the Library. 26 | 27 | A "Combined Work" is a work produced by combining or linking an 28 | Application with the Library. The particular version of the Library 29 | with which the Combined Work was made is also called the "Linked 30 | Version". 31 | 32 | The "Minimal Corresponding Source" for a Combined Work means the 33 | Corresponding Source for the Combined Work, excluding any source code 34 | for portions of the Combined Work that, considered in isolation, are 35 | based on the Application, and not on the Linked Version. 36 | 37 | The "Corresponding Application Code" for a Combined Work means the 38 | object code and/or source code for the Application, including any data 39 | and utility programs needed for reproducing the Combined Work from the 40 | Application, but excluding the System Libraries of the Combined Work. 41 | 42 | 1. Exception to Section 3 of the GNU GPL. 43 | 44 | You may convey a covered work under sections 3 and 4 of this License 45 | without being bound by section 3 of the GNU GPL. 46 | 47 | 2. Conveying Modified Versions. 48 | 49 | If you modify a copy of the Library, and, in your modifications, a 50 | facility refers to a function or data to be supplied by an Application 51 | that uses the facility (other than as an argument passed when the 52 | facility is invoked), then you may convey a copy of the modified 53 | version: 54 | 55 | a) under this License, provided that you make a good faith effort to 56 | ensure that, in the event an Application does not supply the 57 | function or data, the facility still operates, and performs 58 | whatever part of its purpose remains meaningful, or 59 | 60 | b) under the GNU GPL, with none of the additional permissions of 61 | this License applicable to that copy. 62 | 63 | 3. Object Code Incorporating Material from Library Header Files. 64 | 65 | The object code form of an Application may incorporate material from 66 | a header file that is part of the Library. You may convey such object 67 | code under terms of your choice, provided that, if the incorporated 68 | material is not limited to numerical parameters, data structure 69 | layouts and accessors, or small macros, inline functions and templates 70 | (ten or fewer lines in length), you do both of the following: 71 | 72 | a) Give prominent notice with each copy of the object code that the 73 | Library is used in it and that the Library and its use are 74 | covered by this License. 75 | 76 | b) Accompany the object code with a copy of the GNU GPL and this license 77 | document. 78 | 79 | 4. Combined Works. 80 | 81 | You may convey a Combined Work under terms of your choice that, 82 | taken together, effectively do not restrict modification of the 83 | portions of the Library contained in the Combined Work and reverse 84 | engineering for debugging such modifications, if you also do each of 85 | the following: 86 | 87 | a) Give prominent notice with each copy of the Combined Work that 88 | the Library is used in it and that the Library and its use are 89 | covered by this License. 90 | 91 | b) Accompany the Combined Work with a copy of the GNU GPL and this license 92 | document. 93 | 94 | c) For a Combined Work that displays copyright notices during 95 | execution, include the copyright notice for the Library among 96 | these notices, as well as a reference directing the user to the 97 | copies of the GNU GPL and this license document. 98 | 99 | d) Do one of the following: 100 | 101 | 0) Convey the Minimal Corresponding Source under the terms of this 102 | License, and the Corresponding Application Code in a form 103 | suitable for, and under terms that permit, the user to 104 | recombine or relink the Application with a modified version of 105 | the Linked Version to produce a modified Combined Work, in the 106 | manner specified by section 6 of the GNU GPL for conveying 107 | Corresponding Source. 108 | 109 | 1) Use a suitable shared library mechanism for linking with the 110 | Library. A suitable mechanism is one that (a) uses at run time 111 | a copy of the Library already present on the user's computer 112 | system, and (b) will operate properly with a modified version 113 | of the Library that is interface-compatible with the Linked 114 | Version. 115 | 116 | e) Provide Installation Information, but only if you would otherwise 117 | be required to provide such information under section 6 of the 118 | GNU GPL, and only to the extent that such information is 119 | necessary to install and execute a modified version of the 120 | Combined Work produced by recombining or relinking the 121 | Application with a modified version of the Linked Version. (If 122 | you use option 4d0, the Installation Information must accompany 123 | the Minimal Corresponding Source and Corresponding Application 124 | Code. If you use option 4d1, you must provide the Installation 125 | Information in the manner specified by section 6 of the GNU GPL 126 | for conveying Corresponding Source.) 127 | 128 | 5. Combined Libraries. 129 | 130 | You may place library facilities that are a work based on the 131 | Library side by side in a single library together with other library 132 | facilities that are not Applications and are not covered by this 133 | License, and convey such a combined library under terms of your 134 | choice, if you do both of the following: 135 | 136 | a) Accompany the combined library with a copy of the same work based 137 | on the Library, uncombined with any other library facilities, 138 | conveyed under the terms of this License. 139 | 140 | b) Give prominent notice with the combined library that part of it 141 | is a work based on the Library, and explaining where to find the 142 | accompanying uncombined form of the same work. 143 | 144 | 6. Revised Versions of the GNU Lesser General Public License. 145 | 146 | The Free Software Foundation may publish revised and/or new versions 147 | of the GNU Lesser General Public License from time to time. Such new 148 | versions will be similar in spirit to the present version, but may 149 | differ in detail to address new problems or concerns. 150 | 151 | Each version is given a distinguishing version number. If the 152 | Library as you received it specifies that a certain numbered version 153 | of the GNU Lesser General Public License "or any later version" 154 | applies to it, you have the option of following the terms and 155 | conditions either of that published version or of any later version 156 | published by the Free Software Foundation. If the Library as you 157 | received it does not specify a version number of the GNU Lesser 158 | General Public License, you may choose any version of the GNU Lesser 159 | General Public License ever published by the Free Software Foundation. 160 | 161 | If the Library as you received it specifies that a proxy can decide 162 | whether future versions of the GNU Lesser General Public License shall 163 | apply, that proxy's public statement of acceptance of any version is 164 | permanent authorization for you to choose that version for the 165 | Library. 166 | -------------------------------------------------------------------------------- /Actions/CephActions.js: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright 2015 Cloudbase Solutions Srl 3 | All Rights Reserved. 4 | 5 | Licensed under the Apache License, Version 2.0 (the "License"); you may 6 | not use this file except in compliance with the License. You may obtain 7 | a copy of the License at 8 | 9 | http://www.apache.org/licenses/LICENSE-2.0 10 | 11 | Unless required by applicable law or agreed to in writing, software 12 | distributed under the License is distributed on an "AS IS" BASIS, WITHOUT 13 | WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the 14 | License for the specific language governing permissions and limitations 15 | under the License. 16 | */ 17 | 18 | // http://msdn.microsoft.com/en-us/library/sfw6660x(VS.85).aspx 19 | var Buttons = 20 | { 21 | OkOnly: 0, 22 | OkCancel: 1, 23 | AbortRetryIgnore: 2, 24 | YesNoCancel: 3 25 | }; 26 | 27 | var Icons = 28 | { 29 | Critical: 16, 30 | Question: 32, 31 | Exclamation: 48, 32 | Information: 64 33 | } 34 | 35 | var MsgKind = 36 | { 37 | Error: 0x01000000, 38 | Warning: 0x02000000, 39 | User: 0x03000000, 40 | Log: 0x04000000 41 | }; 42 | 43 | // http://msdn.microsoft.com/en-us/library/aa371254(VS.85).aspx 44 | var MsiActionStatus = 45 | { 46 | None: 0, 47 | Ok: 1, // success 48 | Cancel: 2, 49 | Abort: 3, 50 | Retry: 4, // aka suspend? 51 | Ignore: 5 // skip remaining actions; this is not an error. 52 | }; 53 | 54 | var ServiceStartAction = { 55 | Stop: "Stop", 56 | Start: "Start", 57 | Restart: "Restart" 58 | }; 59 | 60 | var ServiceStartMode = { 61 | Boot: "Boot", 62 | System: "System", 63 | Auto: "Auto", 64 | Manual: "Manual", 65 | Disabled: "Disabled" 66 | }; 67 | 68 | function throwException(num, msg) { 69 | throw { 70 | number: num, 71 | message: msg 72 | }; 73 | } 74 | 75 | function decimalToHexString(number) { 76 | if (number < 0) 77 | number = 0xFFFFFFFF + number + 1; 78 | return number.toString(16).toUpperCase(); 79 | } 80 | 81 | function logMessage(msg) { 82 | var record = Session.Installer.CreateRecord(0); 83 | record.StringData(0) = "CustomActions: " + msg; 84 | Session.Message(MsgKind.Log, record); 85 | } 86 | 87 | function logMessageEx(msg, type) { 88 | var record = Session.Installer.CreateRecord(0); 89 | record.StringData(0) = msg; 90 | Session.Message(type, record); 91 | } 92 | 93 | function logException(exc) { 94 | var record = Session.Installer.CreateRecord(0); 95 | record.StringData(0) = exc.message == "" ? "An exception occurred: 0x" + decimalToHexString(exc.number) : exc.message; 96 | Session.Message(MsgKind.Error + Icons.Critical + Buttons.OkOnly, record); 97 | 98 | // Log the full exception as well 99 | record.StringData(0) = "CustomAction exception details: 0x" + decimalToHexString(exc.number) + " : " + exc.message; 100 | Session.Message(MsgKind.Log, record); 101 | } 102 | 103 | function runCommand(cmd, expectedReturnValue, envVars, windowStyle, waitOnReturn, workingDir) { 104 | var shell = new ActiveXObject("WScript.Shell"); 105 | logMessage("Running command: " + cmd); 106 | 107 | if (envVars) { 108 | var env = shell.Environment("Process"); 109 | for (var k in envVars) 110 | env(k) = envVars[k]; 111 | } 112 | 113 | if (typeof windowStyle == 'undefined') 114 | windowStyle = 0; 115 | 116 | if (typeof waitOnReturn == 'undefined') 117 | waitOnReturn = true; 118 | 119 | if (typeof workingDir == 'undefined') 120 | workingDir = null; 121 | 122 | if (workingDir) { 123 | shell.CurrentDirectory = workingDir; 124 | } 125 | 126 | var retVal = shell.run(cmd, windowStyle, waitOnReturn); 127 | 128 | if (waitOnReturn && expectedReturnValue != undefined && expectedReturnValue != null && retVal != expectedReturnValue) 129 | throwException(-1, "Command failed. Return value: " + retVal.toString()); 130 | 131 | logMessage("Command completed. Return value: " + retVal); 132 | 133 | return retVal; 134 | } 135 | 136 | function getWmiCimV2Svc() { 137 | return GetObject("winmgmts:\\\\.\\root\\cimv2"); 138 | } 139 | 140 | function getSafeArray(jsArr) { 141 | var dict = new ActiveXObject("Scripting.Dictionary"); 142 | for (var i = 0; i < jsArr.length; i++) 143 | dict.add(i, jsArr[i]); 144 | return dict.Items(); 145 | } 146 | 147 | function invokeWMIMethod(svc, methodName, inParamsValues, wmiSvc, jobOutParamName) { 148 | logMessage("Invoking " + methodName); 149 | 150 | var inParams = null; 151 | if (inParamsValues) { 152 | for (var k in inParamsValues) { 153 | if (!inParams) 154 | inParams = svc.Methods_(methodName).InParameters.SpawnInstance_(); 155 | var val = inParamsValues[k]; 156 | if (val instanceof Array) 157 | inParams[k] = getSafeArray(val); 158 | else 159 | inParams[k] = val; 160 | } 161 | } 162 | 163 | var outParams = svc.ExecMethod_(methodName, inParams); 164 | if (outParams.ReturnValue == 4096) { 165 | var job = wmiSvc.Get(outParams[jobOutParamName]); 166 | waitForJob(wmiSvc, job); 167 | } 168 | else if (outParams.ReturnValue != 0) 169 | throwException(-1, methodName + " failed. Return value: " + outParams.ReturnValue.toString()); 170 | 171 | return outParams; 172 | } 173 | 174 | function sleep(interval) { 175 | // WScript.Sleep is not supported in MSI's WSH. Here's a workaround for the moment. 176 | 177 | // interval is ignored 178 | var numPings = 2; 179 | cmd = "ping -n " + numPings + " 127.0.0.1"; 180 | 181 | var shell = new ActiveXObject("WScript.Shell"); 182 | shell.run(cmd, 0, true); 183 | } 184 | 185 | function getService(serviceName) { 186 | var wmiSvc = getWmiCimV2Svc(); 187 | return wmiSvc.ExecQuery("SELECT * FROM Win32_Service WHERE Name='" + serviceName + "'").ItemIndex(0); 188 | } 189 | 190 | function changeService(serviceName, startMode, startAction) { 191 | var svc = getService(serviceName); 192 | 193 | if ((startAction == ServiceStartAction.Stop || startAction == ServiceStartAction.Restart) && svc.Started) 194 | invokeWMIMethod(svc, "StopService"); 195 | 196 | if (startMode && svc.StartMode != startMode) 197 | invokeWMIMethod(svc, "ChangeStartMode", 198 | { 199 | "StartMode": (startMode == ServiceStartMode.Auto ? "Automatic" : startMode) 200 | }); 201 | 202 | if (startAction == ServiceStartAction.Restart && svc.Started) { 203 | var wmiSvc = getWmiCimV2Svc(); 204 | do { 205 | sleep(200); 206 | svc = wmiSvc.Get(svc.Path_); 207 | } while (svc.Started); 208 | } 209 | 210 | if ((startAction == ServiceStartAction.Start || startAction == ServiceStartAction.Restart) && !svc.Started) 211 | invokeWMIMethod(svc, "StartService"); 212 | } 213 | 214 | function runCommandAction() { 215 | var exceptionMsg = null; 216 | 217 | try { 218 | var data = Session.Property("CustomActionData").split('|'); 219 | var i = 0; 220 | var cmd = data[i++]; 221 | var expectedRetValue = data.length > i ? data[i++] : 0; 222 | var exceptionMsg = data.length > i ? data[i++] : null; 223 | var workingDir = data.length > i ? data[i++] : null; 224 | 225 | runCommand(cmd, expectedRetValue, null, 0, true, workingDir); 226 | return MsiActionStatus.Ok; 227 | } 228 | catch (ex) { 229 | if (exceptionMsg) { 230 | logMessageEx(exceptionMsg, MsgKind.Error + Icons.Critical + Buttons.OkOnly); 231 | // log also the original exception 232 | logMessage(ex.message); 233 | } 234 | else 235 | logException(ex); 236 | 237 | return MsiActionStatus.Abort; 238 | } 239 | } 240 | 241 | function changeServiceAction() { 242 | try { 243 | var data = Session.Property("CustomActionData").split('|'); 244 | var serviceName = data[0]; 245 | var startMode = data[1]; 246 | var startAction = data[2]; 247 | 248 | logMessage("Changing service " + serviceName + ", startMode: " + startMode + ", startAction: " + startAction); 249 | 250 | changeService(serviceName, startMode, startAction); 251 | 252 | return MsiActionStatus.Ok; 253 | } 254 | catch (ex) { 255 | logMessage(ex.message); 256 | return MsiActionStatus.Abort; 257 | } 258 | } 259 | -------------------------------------------------------------------------------- /Product.wxs: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | 9 | 10 | 11 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 22 | 23 | 24 | 26 | 27 | 28 | 32 | 37 | 42 | 47 | 48 | 49 | 50 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | 63 | 64 | 65 | 66 | 67 | "ALL" AND (&WindowsCephDriver = 3)]]> 68 | "ALL" AND (&WindowsCephDriver = 3)]]> 69 | 70 | "ALL" AND (&WindowsCephDriver = 3)]]> 71 | "ALL" AND (&WindowsCephDriver = 3)]]> 72 | 73 | "ALL" AND (&WindowsCephDriver = 3)]]> 74 | "ALL" AND (&WindowsCephDriver = 3)]]> 75 | 76 | 77 | 78 | 79 | 80 | 81 | 82 | 83 | "ALL" AND (&WindowsCephDriver = 3)) OR ((&WindowsCephDriver=2) AND (!WindowsCephDriver=3))]]> 84 | 85 | 86 | 87 | 88 | 89 | 90 | 91 | 92 | 93 | 94 | 95 | 96 | 97 | 98 | 99 | 100 | 101 | 102 | 103 | 104 | 105 | 106 | 107 | 108 | 109 | 110 | 111 | 112 | 113 | 114 | 115 | 116 | 117 | 118 | 119 | 120 | 121 | 122 | 123 | 124 | 125 | 126 | 127 | 128 | 129 | 130 | 131 | 132 | 133 | 134 | 135 | 147 | 148 | 154 | 160 | 161 | 162 | 163 | 164 | 165 | 166 | 167 | 168 | 169 | 170 | 171 | 172 | 173 | 174 | 175 | 176 | 177 | 178 | 179 | 180 | -------------------------------------------------------------------------------- /License.rtf: -------------------------------------------------------------------------------- 1 | {\rtf1\adeflang1025\ansi\ansicpg1252\uc1\adeff0\deff0\stshfdbch0\stshfloch0\stshfhich0\stshfbi0\deflang2057\deflangfe2057\themelang3072\themelangfe0\themelangcs0{\fonttbl{\f0\fbidi \froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman;}{\f1\fbidi \fswiss\fcharset0\fprq2{\*\panose 020b0604020202020204}Arial;} 2 | {\f2\fbidi \fmodern\fcharset0\fprq1{\*\panose 02070309020205020404}Courier New;}{\f3\fbidi \fdecor\fcharset2\fprq2{\*\panose 05050102010706020507}Symbol;}{\f10\fbidi \fdecor\fcharset77\fprq2{\*\panose 05000000000000000000}Wingdings;} 3 | {\f34\fbidi \froman\fcharset0\fprq2{\*\panose 02040503050406030204}Cambria Math;}{\flomajor\f31500\fbidi \froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman;} 4 | {\fdbmajor\f31501\fbidi \froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman;}{\fhimajor\f31502\fbidi \fswiss\fcharset0\fprq2{\*\panose 020f0302020204030204}Calibri Light;} 5 | {\fbimajor\f31503\fbidi \froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman;}{\flominor\f31504\fbidi \froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman;} 6 | {\fdbminor\f31505\fbidi \froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman;}{\fhiminor\f31506\fbidi \fswiss\fcharset0\fprq2{\*\panose 020f0502020204030204}Calibri;} 7 | {\fbiminor\f31507\fbidi \froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman;}{\f55\fbidi \froman\fcharset238\fprq2 Times New Roman CE;}{\f56\fbidi \froman\fcharset204\fprq2 Times New Roman Cyr;} 8 | {\f58\fbidi \froman\fcharset161\fprq2 Times New Roman Greek;}{\f59\fbidi \froman\fcharset162\fprq2 Times New Roman Tur;}{\f60\fbidi \froman\fcharset177\fprq2 Times New Roman (Hebrew);}{\f61\fbidi \froman\fcharset178\fprq2 Times New Roman (Arabic);} 9 | {\f62\fbidi \froman\fcharset186\fprq2 Times New Roman Baltic;}{\f63\fbidi \froman\fcharset163\fprq2 Times New Roman (Vietnamese);}{\f65\fbidi \fswiss\fcharset238\fprq2 Arial CE;}{\f66\fbidi \fswiss\fcharset204\fprq2 Arial Cyr;} 10 | {\f68\fbidi \fswiss\fcharset161\fprq2 Arial Greek;}{\f69\fbidi \fswiss\fcharset162\fprq2 Arial Tur;}{\f70\fbidi \fswiss\fcharset177\fprq2 Arial (Hebrew);}{\f71\fbidi \fswiss\fcharset178\fprq2 Arial (Arabic);} 11 | {\f72\fbidi \fswiss\fcharset186\fprq2 Arial Baltic;}{\f73\fbidi \fswiss\fcharset163\fprq2 Arial (Vietnamese);}{\f75\fbidi \fmodern\fcharset238\fprq1 Courier New CE;}{\f76\fbidi \fmodern\fcharset204\fprq1 Courier New Cyr;} 12 | {\f78\fbidi \fmodern\fcharset161\fprq1 Courier New Greek;}{\f79\fbidi \fmodern\fcharset162\fprq1 Courier New Tur;}{\f80\fbidi \fmodern\fcharset177\fprq1 Courier New (Hebrew);}{\f81\fbidi \fmodern\fcharset178\fprq1 Courier New (Arabic);} 13 | {\f82\fbidi \fmodern\fcharset186\fprq1 Courier New Baltic;}{\f83\fbidi \fmodern\fcharset163\fprq1 Courier New (Vietnamese);}{\f395\fbidi \froman\fcharset238\fprq2 Cambria Math CE;}{\f396\fbidi \froman\fcharset204\fprq2 Cambria Math Cyr;} 14 | {\f398\fbidi \froman\fcharset161\fprq2 Cambria Math Greek;}{\f399\fbidi \froman\fcharset162\fprq2 Cambria Math Tur;}{\f402\fbidi \froman\fcharset186\fprq2 Cambria Math Baltic;}{\f403\fbidi \froman\fcharset163\fprq2 Cambria Math (Vietnamese);} 15 | {\flomajor\f31508\fbidi \froman\fcharset238\fprq2 Times New Roman CE;}{\flomajor\f31509\fbidi \froman\fcharset204\fprq2 Times New Roman Cyr;}{\flomajor\f31511\fbidi \froman\fcharset161\fprq2 Times New Roman Greek;} 16 | {\flomajor\f31512\fbidi \froman\fcharset162\fprq2 Times New Roman Tur;}{\flomajor\f31513\fbidi \froman\fcharset177\fprq2 Times New Roman (Hebrew);}{\flomajor\f31514\fbidi \froman\fcharset178\fprq2 Times New Roman (Arabic);} 17 | {\flomajor\f31515\fbidi \froman\fcharset186\fprq2 Times New Roman Baltic;}{\flomajor\f31516\fbidi \froman\fcharset163\fprq2 Times New Roman (Vietnamese);}{\fdbmajor\f31518\fbidi \froman\fcharset238\fprq2 Times New Roman CE;} 18 | {\fdbmajor\f31519\fbidi \froman\fcharset204\fprq2 Times New Roman Cyr;}{\fdbmajor\f31521\fbidi \froman\fcharset161\fprq2 Times New Roman Greek;}{\fdbmajor\f31522\fbidi \froman\fcharset162\fprq2 Times New Roman Tur;} 19 | {\fdbmajor\f31523\fbidi \froman\fcharset177\fprq2 Times New Roman (Hebrew);}{\fdbmajor\f31524\fbidi \froman\fcharset178\fprq2 Times New Roman (Arabic);}{\fdbmajor\f31525\fbidi \froman\fcharset186\fprq2 Times New Roman Baltic;} 20 | {\fdbmajor\f31526\fbidi \froman\fcharset163\fprq2 Times New Roman (Vietnamese);}{\fhimajor\f31528\fbidi \fswiss\fcharset238\fprq2 Calibri Light CE;}{\fhimajor\f31529\fbidi \fswiss\fcharset204\fprq2 Calibri Light Cyr;} 21 | {\fhimajor\f31531\fbidi \fswiss\fcharset161\fprq2 Calibri Light Greek;}{\fhimajor\f31532\fbidi \fswiss\fcharset162\fprq2 Calibri Light Tur;}{\fhimajor\f31533\fbidi \fswiss\fcharset177\fprq2 Calibri Light (Hebrew);} 22 | {\fhimajor\f31534\fbidi \fswiss\fcharset178\fprq2 Calibri Light (Arabic);}{\fhimajor\f31535\fbidi \fswiss\fcharset186\fprq2 Calibri Light Baltic;}{\fhimajor\f31536\fbidi \fswiss\fcharset163\fprq2 Calibri Light (Vietnamese);} 23 | {\fbimajor\f31538\fbidi \froman\fcharset238\fprq2 Times New Roman CE;}{\fbimajor\f31539\fbidi \froman\fcharset204\fprq2 Times New Roman Cyr;}{\fbimajor\f31541\fbidi \froman\fcharset161\fprq2 Times New Roman Greek;} 24 | {\fbimajor\f31542\fbidi \froman\fcharset162\fprq2 Times New Roman Tur;}{\fbimajor\f31543\fbidi \froman\fcharset177\fprq2 Times New Roman (Hebrew);}{\fbimajor\f31544\fbidi \froman\fcharset178\fprq2 Times New Roman (Arabic);} 25 | {\fbimajor\f31545\fbidi \froman\fcharset186\fprq2 Times New Roman Baltic;}{\fbimajor\f31546\fbidi \froman\fcharset163\fprq2 Times New Roman (Vietnamese);}{\flominor\f31548\fbidi \froman\fcharset238\fprq2 Times New Roman CE;} 26 | {\flominor\f31549\fbidi \froman\fcharset204\fprq2 Times New Roman Cyr;}{\flominor\f31551\fbidi \froman\fcharset161\fprq2 Times New Roman Greek;}{\flominor\f31552\fbidi \froman\fcharset162\fprq2 Times New Roman Tur;} 27 | {\flominor\f31553\fbidi \froman\fcharset177\fprq2 Times New Roman (Hebrew);}{\flominor\f31554\fbidi \froman\fcharset178\fprq2 Times New Roman (Arabic);}{\flominor\f31555\fbidi \froman\fcharset186\fprq2 Times New Roman Baltic;} 28 | {\flominor\f31556\fbidi \froman\fcharset163\fprq2 Times New Roman (Vietnamese);}{\fdbminor\f31558\fbidi \froman\fcharset238\fprq2 Times New Roman CE;}{\fdbminor\f31559\fbidi \froman\fcharset204\fprq2 Times New Roman Cyr;} 29 | {\fdbminor\f31561\fbidi \froman\fcharset161\fprq2 Times New Roman Greek;}{\fdbminor\f31562\fbidi \froman\fcharset162\fprq2 Times New Roman Tur;}{\fdbminor\f31563\fbidi \froman\fcharset177\fprq2 Times New Roman (Hebrew);} 30 | {\fdbminor\f31564\fbidi \froman\fcharset178\fprq2 Times New Roman (Arabic);}{\fdbminor\f31565\fbidi \froman\fcharset186\fprq2 Times New Roman Baltic;}{\fdbminor\f31566\fbidi \froman\fcharset163\fprq2 Times New Roman (Vietnamese);} 31 | {\fhiminor\f31568\fbidi \fswiss\fcharset238\fprq2 Calibri CE;}{\fhiminor\f31569\fbidi \fswiss\fcharset204\fprq2 Calibri Cyr;}{\fhiminor\f31571\fbidi \fswiss\fcharset161\fprq2 Calibri Greek;}{\fhiminor\f31572\fbidi \fswiss\fcharset162\fprq2 Calibri Tur;} 32 | {\fhiminor\f31573\fbidi \fswiss\fcharset177\fprq2 Calibri (Hebrew);}{\fhiminor\f31574\fbidi \fswiss\fcharset178\fprq2 Calibri (Arabic);}{\fhiminor\f31575\fbidi \fswiss\fcharset186\fprq2 Calibri Baltic;} 33 | {\fhiminor\f31576\fbidi \fswiss\fcharset163\fprq2 Calibri (Vietnamese);}{\fbiminor\f31578\fbidi \froman\fcharset238\fprq2 Times New Roman CE;}{\fbiminor\f31579\fbidi \froman\fcharset204\fprq2 Times New Roman Cyr;} 34 | {\fbiminor\f31581\fbidi \froman\fcharset161\fprq2 Times New Roman Greek;}{\fbiminor\f31582\fbidi \froman\fcharset162\fprq2 Times New Roman Tur;}{\fbiminor\f31583\fbidi \froman\fcharset177\fprq2 Times New Roman (Hebrew);} 35 | {\fbiminor\f31584\fbidi \froman\fcharset178\fprq2 Times New Roman (Arabic);}{\fbiminor\f31585\fbidi \froman\fcharset186\fprq2 Times New Roman Baltic;}{\fbiminor\f31586\fbidi \froman\fcharset163\fprq2 Times New Roman (Vietnamese);}} 36 | {\colortbl;\red0\green0\blue0;\red0\green0\blue255;\red0\green255\blue255;\red0\green255\blue0;\red255\green0\blue255;\red255\green0\blue0;\red255\green255\blue0;\red255\green255\blue255;\red0\green0\blue128;\red0\green128\blue128;\red0\green128\blue0; 37 | \red128\green0\blue128;\red128\green0\blue0;\red128\green128\blue0;\red128\green128\blue128;\red192\green192\blue192;\red0\green0\blue0;\red0\green0\blue0;\caccentone\ctint255\cshade127\red31\green55\blue99; 38 | \caccentone\ctint255\cshade191\red47\green84\blue150;}{\*\defchp }{\*\defpap \ql \li0\ri0\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 }\noqfpromote {\stylesheet{ 39 | \ql \li0\ri0\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \rtlch\fcs1 \af0\afs24\alang1025 \ltrch\fcs0 \fs24\lang3072\langfe2057\loch\f0\hich\af0\dbch\af31505\cgrid\langnp3072\langfenp2057 \snext0 \sqformat \spriority0 Normal;} 40 | {\s3\ql \li0\ri0\sb100\sa100\sbauto1\saauto1\widctlpar\wrapdefault\aspalpha\aspnum\faauto\outlinelevel2\adjustright\rin0\lin0\itap0 \rtlch\fcs1 \ab\af0\afs27\alang1025 \ltrch\fcs0 41 | \b\fs27\lang3072\langfe2057\loch\f0\hich\af0\dbch\af31505\cgrid\langnp3072\langfenp2057 \sbasedon0 \snext3 \slink16 \sqformat \spriority9 heading 3;}{ 42 | \s4\ql \li0\ri0\sb100\sa100\sbauto1\saauto1\widctlpar\wrapdefault\aspalpha\aspnum\faauto\outlinelevel3\adjustright\rin0\lin0\itap0 \rtlch\fcs1 \ab\af0\afs24\alang1025 \ltrch\fcs0 43 | \b\fs24\lang3072\langfe2057\loch\f0\hich\af0\dbch\af31505\cgrid\langnp3072\langfenp2057 \sbasedon0 \snext4 \slink20 \sqformat \spriority9 heading 4;}{\*\cs10 \additive \ssemihidden \sunhideused \spriority1 Default Paragraph Font;}{\* 44 | \ts11\tsrowd\trftsWidthB3\trpaddl108\trpaddr108\trpaddfl3\trpaddft3\trpaddfb3\trpaddfr3\tblind0\tblindtype3\tsvertalt\tsbrdrt\tsbrdrl\tsbrdrb\tsbrdrr\tsbrdrdgl\tsbrdrdgr\tsbrdrh\tsbrdrv 45 | \ql \li0\ri0\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \rtlch\fcs1 \af0\afs20\alang1025 \ltrch\fcs0 \fs20\lang3072\langfe2057\cgrid\langnp3072\langfenp2057 \snext11 \ssemihidden \sunhideused Normal Table;}{ 46 | \s15\ql \li0\ri0\sb100\sa100\sbauto1\saauto1\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \rtlch\fcs1 \af0\afs24\alang1025 \ltrch\fcs0 \fs24\lang3072\langfe2057\loch\f0\hich\af0\dbch\af31505\cgrid\langnp3072\langfenp2057 47 | \sbasedon0 \snext15 \spriority0 msonormal;}{\*\cs16 \additive \rtlch\fcs1 \af31503\afs24 \ltrch\fcs0 \fs24\cf19\loch\f31502\hich\af31502\dbch\af31501 \sbasedon10 \slink3 \slocked \ssemihidden \spriority9 Heading 3 Char;}{ 48 | \s17\ql \li0\ri0\sb100\sa100\sbauto1\saauto1\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \rtlch\fcs1 \af0\afs24\alang1025 \ltrch\fcs0 \fs24\lang3072\langfe2057\loch\f0\hich\af0\dbch\af31505\cgrid\langnp3072\langfenp2057 49 | \sbasedon0 \snext17 \ssemihidden \sunhideused Normal (Web);}{\*\cs18 \additive \rtlch\fcs1 \af0 \ltrch\fcs0 \ul\cf2 \sbasedon10 \ssemihidden \sunhideused Hyperlink;}{\*\cs19 \additive \rtlch\fcs1 \af0 \ltrch\fcs0 \ul\cf12 50 | \sbasedon10 \ssemihidden \sunhideused FollowedHyperlink;}{\*\cs20 \additive \rtlch\fcs1 \ai\af31503\afs24 \ltrch\fcs0 \i\fs24\cf20\loch\f31502\hich\af31502\dbch\af31501 \sbasedon10 \slink4 \slocked \ssemihidden \spriority9 Heading 4 Char;}}{\*\listtable 51 | {\list\listtemplateid2124822528{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext\'01\u-3913 _;}{\levelnumbers;}\f3\fs20\fbias0\hres0\chhres0 \fi-360\li720\jclisttab\tx720\lin720 } 52 | {\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext\'01o;}{\levelnumbers;}\f2\fs20\fbias0\hres0\chhres0 \fi-360\li1440\jclisttab\tx1440\lin1440 }{\listlevel\levelnfc23\levelnfcn23\leveljc0 53 | \leveljcn0\levelfollow0\levelstartat1\lvltentative\levelspace0\levelindent0{\leveltext\'01\u-3929 _;}{\levelnumbers;}\f10\fs20\fbias0\hres0\chhres0 \fi-360\li2160\jclisttab\tx2160\lin2160 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0 54 | \levelstartat1\lvltentative\levelspace0\levelindent0{\leveltext\'01\u-3929 _;}{\levelnumbers;}\f10\fs20\fbias0\hres0\chhres0 \fi-360\li2880\jclisttab\tx2880\lin2880 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1 55 | \lvltentative\levelspace0\levelindent0{\leveltext\'01\u-3929 _;}{\levelnumbers;}\f10\fs20\fbias0\hres0\chhres0 \fi-360\li3600\jclisttab\tx3600\lin3600 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\lvltentative 56 | \levelspace0\levelindent0{\leveltext\'01\u-3929 _;}{\levelnumbers;}\f10\fs20\fbias0\hres0\chhres0 \fi-360\li4320\jclisttab\tx4320\lin4320 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\lvltentative\levelspace0 57 | \levelindent0{\leveltext\'01\u-3929 _;}{\levelnumbers;}\f10\fs20\fbias0\hres0\chhres0 \fi-360\li5040\jclisttab\tx5040\lin5040 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\lvltentative\levelspace0\levelindent0 58 | {\leveltext\'01\u-3929 _;}{\levelnumbers;}\f10\fs20\fbias0\hres0\chhres0 \fi-360\li5760\jclisttab\tx5760\lin5760 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\lvltentative\levelspace0\levelindent0{\leveltext 59 | \'01\u-3929 _;}{\levelnumbers;}\f10\fs20\fbias0\hres0\chhres0 \fi-360\li6480\jclisttab\tx6480\lin6480 }{\listname ;}\listid320819566}{\list\listtemplateid741474482{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace0 60 | \levelindent0{\leveltext\'01\u-3913 _;}{\levelnumbers;}\f3\fs20\fbias0\hres0\chhres0 \fi-360\li720\jclisttab\tx720\lin720 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\lvltentative\levelspace0\levelindent0{\leveltext 61 | \'01o;}{\levelnumbers;}\f2\fs20\fbias0\hres0\chhres0 \fi-360\li1440\jclisttab\tx1440\lin1440 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\lvltentative\levelspace0\levelindent0{\leveltext\'01\u-3929 _;}{\levelnumbers;} 62 | \f10\fs20\fbias0\hres0\chhres0 \fi-360\li2160\jclisttab\tx2160\lin2160 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\lvltentative\levelspace0\levelindent0{\leveltext\'01\u-3929 _;}{\levelnumbers;} 63 | \f10\fs20\fbias0\hres0\chhres0 \fi-360\li2880\jclisttab\tx2880\lin2880 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\lvltentative\levelspace0\levelindent0{\leveltext\'01\u-3929 _;}{\levelnumbers;} 64 | \f10\fs20\fbias0\hres0\chhres0 \fi-360\li3600\jclisttab\tx3600\lin3600 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\lvltentative\levelspace0\levelindent0{\leveltext\'01\u-3929 _;}{\levelnumbers;} 65 | \f10\fs20\fbias0\hres0\chhres0 \fi-360\li4320\jclisttab\tx4320\lin4320 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\lvltentative\levelspace0\levelindent0{\leveltext\'01\u-3929 _;}{\levelnumbers;} 66 | \f10\fs20\fbias0\hres0\chhres0 \fi-360\li5040\jclisttab\tx5040\lin5040 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\lvltentative\levelspace0\levelindent0{\leveltext\'01\u-3929 _;}{\levelnumbers;} 67 | \f10\fs20\fbias0\hres0\chhres0 \fi-360\li5760\jclisttab\tx5760\lin5760 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\lvltentative\levelspace0\levelindent0{\leveltext\'01\u-3929 _;}{\levelnumbers;} 68 | \f10\fs20\fbias0\hres0\chhres0 \fi-360\li6480\jclisttab\tx6480\lin6480 }{\listname ;}\listid1236552178}{\list\listtemplateid601392650{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext 69 | \'01\u-3913 _;}{\levelnumbers;}\f3\fs20\fbias0\hres0\chhres0 \fi-360\li720\jclisttab\tx720\lin720 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\lvltentative\levelspace0\levelindent0{\leveltext\'01o;}{\levelnumbers;} 70 | \f2\fs20\fbias0\hres0\chhres0 \fi-360\li1440\jclisttab\tx1440\lin1440 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\lvltentative\levelspace0\levelindent0{\leveltext\'01\u-3929 _;}{\levelnumbers;} 71 | \f10\fs20\fbias0\hres0\chhres0 \fi-360\li2160\jclisttab\tx2160\lin2160 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\lvltentative\levelspace0\levelindent0{\leveltext\'01\u-3929 _;}{\levelnumbers;} 72 | \f10\fs20\fbias0\hres0\chhres0 \fi-360\li2880\jclisttab\tx2880\lin2880 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\lvltentative\levelspace0\levelindent0{\leveltext\'01\u-3929 _;}{\levelnumbers;} 73 | \f10\fs20\fbias0\hres0\chhres0 \fi-360\li3600\jclisttab\tx3600\lin3600 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\lvltentative\levelspace0\levelindent0{\leveltext\'01\u-3929 _;}{\levelnumbers;} 74 | \f10\fs20\fbias0\hres0\chhres0 \fi-360\li4320\jclisttab\tx4320\lin4320 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\lvltentative\levelspace0\levelindent0{\leveltext\'01\u-3929 _;}{\levelnumbers;} 75 | \f10\fs20\fbias0\hres0\chhres0 \fi-360\li5040\jclisttab\tx5040\lin5040 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\lvltentative\levelspace0\levelindent0{\leveltext\'01\u-3929 _;}{\levelnumbers;} 76 | \f10\fs20\fbias0\hres0\chhres0 \fi-360\li5760\jclisttab\tx5760\lin5760 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\lvltentative\levelspace0\levelindent0{\leveltext\'01\u-3929 _;}{\levelnumbers;} 77 | \f10\fs20\fbias0\hres0\chhres0 \fi-360\li6480\jclisttab\tx6480\lin6480 }{\listname ;}\listid1398475543}{\list\listtemplateid-2007717828{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext 78 | \'01\u-3913 _;}{\levelnumbers;}\f3\fs20\fbias0\hres0\chhres0 \fi-360\li720\jclisttab\tx720\lin720 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\lvltentative\levelspace0\levelindent0{\leveltext\'01o;}{\levelnumbers;} 79 | \f2\fs20\fbias0\hres0\chhres0 \fi-360\li1440\jclisttab\tx1440\lin1440 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\lvltentative\levelspace0\levelindent0{\leveltext\'01\u-3929 _;}{\levelnumbers;} 80 | \f10\fs20\fbias0\hres0\chhres0 \fi-360\li2160\jclisttab\tx2160\lin2160 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\lvltentative\levelspace0\levelindent0{\leveltext\'01\u-3929 _;}{\levelnumbers;} 81 | \f10\fs20\fbias0\hres0\chhres0 \fi-360\li2880\jclisttab\tx2880\lin2880 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\lvltentative\levelspace0\levelindent0{\leveltext\'01\u-3929 _;}{\levelnumbers;} 82 | \f10\fs20\fbias0\hres0\chhres0 \fi-360\li3600\jclisttab\tx3600\lin3600 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\lvltentative\levelspace0\levelindent0{\leveltext\'01\u-3929 _;}{\levelnumbers;} 83 | \f10\fs20\fbias0\hres0\chhres0 \fi-360\li4320\jclisttab\tx4320\lin4320 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\lvltentative\levelspace0\levelindent0{\leveltext\'01\u-3929 _;}{\levelnumbers;} 84 | \f10\fs20\fbias0\hres0\chhres0 \fi-360\li5040\jclisttab\tx5040\lin5040 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\lvltentative\levelspace0\levelindent0{\leveltext\'01\u-3929 _;}{\levelnumbers;} 85 | \f10\fs20\fbias0\hres0\chhres0 \fi-360\li5760\jclisttab\tx5760\lin5760 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\lvltentative\levelspace0\levelindent0{\leveltext\'01\u-3929 _;}{\levelnumbers;} 86 | \f10\fs20\fbias0\hres0\chhres0 \fi-360\li6480\jclisttab\tx6480\lin6480 }{\listname ;}\listid1902714816}}{\*\listoverridetable{\listoverride\listid1902714816\listoverridecount0\ls1}{\listoverride\listid1236552178\listoverridecount0\ls2} 87 | {\listoverride\listid320819566\listoverridecount0\ls3}{\listoverride\listid1398475543\listoverridecount0\ls4}}{\*\rsidtbl \rsid592286\rsid12473182}{\mmathPr\mmathFont34\mbrkBin0\mbrkBinSub0\msmallFrac0\mdispDef1\mlMargin0\mrMargin0\mdefJc1\mwrapIndent1440 88 | \mintLim0\mnaryLim1}{\info{\title GNU Lesser General Public License v3.0 - GNU Project - Free Software Foundation (FSF)}{\author Alessandro Pilotti}{\operator Alessandro Pilotti}{\creatim\yr2020\mo6\dy17\hr1\min18}{\revtim\yr2020\mo6\dy17\hr1\min18} 89 | {\version2}{\edmins1}{\nofpages2}{\nofwords1097}{\nofchars6253}{\nofcharsws7336}{\vern4747}}{\*\xmlnstbl {\xmlns1 http://schemas.microsoft.com/office/word/2003/wordml}}\paperw11906\paperh16838\margl1440\margr1440\margt1440\margb1440\gutter0\ltrsect 90 | \widowctrl\ftnbj\aenddoc\trackmoves0\trackformatting1\donotembedsysfont1\relyonvml0\donotembedlingdata0\grfdocevents0\validatexml1\showplaceholdtext0\ignoremixedcontent0\saveinvalidxml0\showxmlerrors1\noxlattoyen 91 | \expshrtn\noultrlspc\dntblnsbdb\nospaceforul\formshade\horzdoc\dgmargin\dghspace180\dgvspace180\dghorigin1440\dgvorigin1440\dghshow1\dgvshow1 92 | \jexpand\viewkind1\viewscale258\viewzk2\pgbrdrhead\pgbrdrfoot\splytwnine\ftnlytwnine\htmautsp\nolnhtadjtbl\useltbaln\alntblind\lytcalctblwd\lyttblrtgr\lnbrkrule\nobrkwrptbl\allowfieldendsel\nojkernpunct 93 | \rsidroot12473182\newtblstyruls\usenormstyforlist\noindnmbrts\felnbrelev\nocxsptable\indrlsweleven\noafcnsttbl\afelev\utinl\hwelev\spltpgpar\notcvasp\notbrkcnstfrctbl\notvatxbx\krnprsnet\cachedcolbal \nouicompat \fet0{\*\wgrffmtfilter 2450} 94 | \nofeaturethrottle1\ilfomacatclnup0\ltrpar \sectd \ltrsect\linex0\headery708\footery708\colsx708\endnhere\pgbrdropt32\sectlinegrid360\sectdefaultcl\sftnbj {\*\pnseclvl1\pnucrm\pnstart1\pnindent720\pnhang {\pntxta .}}{\*\pnseclvl2 95 | \pnucltr\pnstart1\pnindent720\pnhang {\pntxta .}}{\*\pnseclvl3\pndec\pnstart1\pnindent720\pnhang {\pntxta .}}{\*\pnseclvl4\pnlcltr\pnstart1\pnindent720\pnhang {\pntxta )}}{\*\pnseclvl5\pndec\pnstart1\pnindent720\pnhang {\pntxtb (}{\pntxta )}}{\*\pnseclvl6 96 | \pnlcltr\pnstart1\pnindent720\pnhang {\pntxtb (}{\pntxta )}}{\*\pnseclvl7\pnlcrm\pnstart1\pnindent720\pnhang {\pntxtb (}{\pntxta )}}{\*\pnseclvl8\pnlcltr\pnstart1\pnindent720\pnhang {\pntxtb (}{\pntxta )}}{\*\pnseclvl9\pnlcrm\pnstart1\pnindent720\pnhang 97 | {\pntxtb (}{\pntxta )}}\pard\plain \ltrpar\s3\qc \li0\ri0\sb100\sa100\sbauto1\saauto1\widctlpar\wrapdefault\aspalpha\aspnum\faauto\outlinelevel2\adjustright\rin0\lin0\itap0 \rtlch\fcs1 \ab\af0\afs27\alang1025 \ltrch\fcs0 98 | \b\fs27\lang3072\langfe2057\loch\af0\hich\af0\dbch\af31505\cgrid\langnp3072\langfenp2057 {\rtlch\fcs1 \af1\afs18 \ltrch\fcs0 \f1\fs18\lang9\langfe2057\langnp9\insrsid592286\charrsid12473182 GNU LESSER GENERAL PUBLIC LICENSE 99 | \par }\pard\plain \ltrpar\s17\qc \li0\ri0\sb100\sa100\sbauto1\saauto1\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \rtlch\fcs1 \af0\afs24\alang1025 \ltrch\fcs0 100 | \fs24\lang3072\langfe2057\loch\af0\hich\af0\dbch\af31505\cgrid\langnp3072\langfenp2057 {\rtlch\fcs1 \af1\afs18 \ltrch\fcs0 \f1\fs18\lang9\langfe2057\langnp9\insrsid592286\charrsid12473182 \hich\af1\dbch\af31505\loch\f1 Version 3, 29 June 2007 101 | \par }\pard \ltrpar\s17\ql \li0\ri0\sb100\sa100\sbauto1\saauto1\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 {\rtlch\fcs1 \af1\afs18 \ltrch\fcs0 \f1\fs18\lang9\langfe2057\langnp9\insrsid592286\charrsid12473182 102 | \hich\af1\dbch\af31505\loch\f1 \hich\f1 Copyright \'a9\loch\f1 2007 Free Software Foundation, Inc. <}{\field\fldedit{\*\fldinst {\rtlch\fcs1 \af1\afs18 \ltrch\fcs0 \f1\fs18\lang9\langfe2057\langnp9\insrsid592286\charrsid12473182 103 | \hich\af1\dbch\af31505\loch\f1 \hich\af1\dbch\af31505\loch\f1 HYPERLINK "https://fsf.org/"\hich\af1\dbch\af31505\loch\f1 }}{\fldrslt {\rtlch\fcs1 \af1\afs18 \ltrch\fcs0 \cs18\f1\fs18\ul\cf2\lang9\langfe2057\langnp9\insrsid592286\charrsid12473182 104 | \hich\af1\dbch\af31505\loch\f1 https://fsf.org/}}}\sectd \ltrsect\linex0\headery708\footery708\colsx708\endnhere\pgbrdropt32\sectlinegrid360\sectdefaultcl\sftnbj {\rtlch\fcs1 \af1\afs18 \ltrch\fcs0 105 | \f1\fs18\lang9\langfe2057\langnp9\insrsid592286\charrsid12473182 \hich\af1\dbch\af31505\loch\f1 > 106 | \par \hich\af1\dbch\af31505\loch\f1 Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed. 107 | \par \hich\af1\dbch\af31505\loch\f1 This version of the GNU Lesser General Public License incorporates the terms and conditions of version 3 of the GNU General Public Licens\hich\af1\dbch\af31505\loch\f1 108 | e, supplemented by the additional permissions listed below. 109 | \par }\pard\plain \ltrpar\s4\ql \li0\ri0\sb100\sa100\sbauto1\saauto1\widctlpar\wrapdefault\aspalpha\aspnum\faauto\outlinelevel3\adjustright\rin0\lin0\itap0 \rtlch\fcs1 \ab\af0\afs24\alang1025 \ltrch\fcs0 110 | \b\fs24\lang3072\langfe2057\loch\af0\hich\af0\dbch\af31505\cgrid\langnp3072\langfenp2057 {\rtlch\fcs1 \af1\afs18 \ltrch\fcs0 \f1\fs18\lang9\langfe2057\langnp9\insrsid592286\charrsid12473182 {\*\bkmkstart section0}{\*\bkmkend section0} 111 | 0. Additional Definitions. 112 | \par }\pard\plain \ltrpar\s17\ql \li0\ri0\sb100\sa100\sbauto1\saauto1\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \rtlch\fcs1 \af0\afs24\alang1025 \ltrch\fcs0 113 | \fs24\lang3072\langfe2057\loch\af0\hich\af0\dbch\af31505\cgrid\langnp3072\langfenp2057 {\rtlch\fcs1 \af1\afs18 \ltrch\fcs0 \f1\fs18\lang9\langfe2057\langnp9\insrsid592286\charrsid12473182 \hich\af1\dbch\af31505\loch\f1 \hich\f1 As used herein, \'93 114 | \loch\f1 \hich\f1 this License\'94\loch\f1 \hich\f1 refers to version 3 of the GNU Lesser General Public License, and the \'93\loch\f1 \hich\f1 GNU GPL\'94\loch\f1 refers to version 3 of the GNU General Public License. 115 | \par \loch\af1\dbch\af31505\hich\f1 \'93\loch\f1 Th\hich\af1\dbch\af31505\loch\f1 \hich\f1 e Library\'94\loch\f1 refers to a covered work governed by this License, other than an Application or a Combined Work as defined below. 116 | \par \hich\af1\dbch\af31505\loch\f1 \hich\f1 An \'93\loch\f1 \hich\f1 Application\'94\loch\f1 is any work that makes use of an interface provided by the Library, but which is not otherwise based on the Librar\hich\af1\dbch\af31505\loch\f1 117 | y. Defining a subclass of a class defined by the Library is deemed a mode of using an interface provided by the Library. 118 | \par \hich\af1\dbch\af31505\loch\f1 \hich\f1 A \'93\loch\f1 \hich\f1 Combined Work\'94\loch\f1 is a work produced by combining or linking an Application with the Library. The particular version of the Library wit\hich\af1\dbch\af31505\loch\f1 \hich\f1 119 | h which the Combined Work was made is also called the \'93\loch\f1 \hich\f1 Linked Version\'94. 120 | \par \hich\af1\dbch\af31505\loch\f1 \hich\f1 The \'93\loch\f1 \hich\f1 Minimal Corresponding Source\'94\loch\f1 121 | for a Combined Work means the Corresponding Source for the Combined Work, excluding any source code for portions of the Combined Work that, considere\hich\af1\dbch\af31505\loch\f1 122 | d in isolation, are based on the Application, and not on the Linked Version. 123 | \par \hich\af1\dbch\af31505\loch\f1 \hich\f1 The \'93\loch\f1 \hich\f1 Corresponding Application Code\'94\loch\f1 for a Combined Work means the object code and/or source code for the Application, including any data and utility programs needed for reproduci 124 | \hich\af1\dbch\af31505\loch\f1 ng the Combined Work from the Application, but excluding the System Libraries of the Combined Work. 125 | \par }\pard\plain \ltrpar\s4\ql \li0\ri0\sb100\sa100\sbauto1\saauto1\widctlpar\wrapdefault\aspalpha\aspnum\faauto\outlinelevel3\adjustright\rin0\lin0\itap0 \rtlch\fcs1 \ab\af0\afs24\alang1025 \ltrch\fcs0 126 | \b\fs24\lang3072\langfe2057\loch\af0\hich\af0\dbch\af31505\cgrid\langnp3072\langfenp2057 {\rtlch\fcs1 \af1\afs18 \ltrch\fcs0 \f1\fs18\lang9\langfe2057\langnp9\insrsid592286\charrsid12473182 {\*\bkmkstart section1}{\*\bkmkend section1} 127 | 1. Exception to Section 3 of the GNU GPL. 128 | \par }\pard\plain \ltrpar\s17\ql \li0\ri0\sb100\sa100\sbauto1\saauto1\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \rtlch\fcs1 \af0\afs24\alang1025 \ltrch\fcs0 129 | \fs24\lang3072\langfe2057\loch\af0\hich\af0\dbch\af31505\cgrid\langnp3072\langfenp2057 {\rtlch\fcs1 \af1\afs18 \ltrch\fcs0 \f1\fs18\lang9\langfe2057\langnp9\insrsid592286\charrsid12473182 \hich\af1\dbch\af31505\loch\f1 130 | You may convey a covered work under sections 3 and 4 of this License without being bound by section 3 of the GNU G\hich\af1\dbch\af31505\loch\f1 PL. 131 | \par }\pard\plain \ltrpar\s4\ql \li0\ri0\sb100\sa100\sbauto1\saauto1\widctlpar\wrapdefault\aspalpha\aspnum\faauto\outlinelevel3\adjustright\rin0\lin0\itap0 \rtlch\fcs1 \ab\af0\afs24\alang1025 \ltrch\fcs0 132 | \b\fs24\lang3072\langfe2057\loch\af0\hich\af0\dbch\af31505\cgrid\langnp3072\langfenp2057 {\rtlch\fcs1 \af1\afs18 \ltrch\fcs0 \f1\fs18\lang9\langfe2057\langnp9\insrsid592286\charrsid12473182 {\*\bkmkstart section2}{\*\bkmkend section2} 133 | 2. Conveying Modified Versions. 134 | \par }\pard\plain \ltrpar\s17\ql \li0\ri0\sb100\sa100\sbauto1\saauto1\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \rtlch\fcs1 \af0\afs24\alang1025 \ltrch\fcs0 135 | \fs24\lang3072\langfe2057\loch\af0\hich\af0\dbch\af31505\cgrid\langnp3072\langfenp2057 {\rtlch\fcs1 \af1\afs18 \ltrch\fcs0 \f1\fs18\lang9\langfe2057\langnp9\insrsid592286\charrsid12473182 \hich\af1\dbch\af31505\loch\f1 136 | If you modify a copy of the Library, and, in your modifications, a facility refers to a function or data to be supplied by an Application that uses the facility (other than as an argument passed when the facility is invo\hich\af1\dbch\af31505\loch\f1 137 | ked), then you may convey a copy of the modified version: 138 | \par {\listtext\pard\plain\ltrpar \rtlch\fcs1 \af1\afs18 \ltrch\fcs0 \f3\fs20\lang9\langfe2057\langnp9\charrsid12473182 \loch\af3\dbch\af0\hich\f3 \'b7\tab}}\pard\plain \ltrpar\ql \fi-360\li720\ri0\sb100\sa100\sbauto1\saauto1\widctlpar 139 | \jclisttab\tx720\wrapdefault\aspalpha\aspnum\faauto\ls1\adjustright\rin0\lin720\itap0 \rtlch\fcs1 \af0\afs24\alang1025 \ltrch\fcs0 \fs24\lang3072\langfe2057\loch\af0\hich\af0\dbch\af31505\cgrid\langnp3072\langfenp2057 {\rtlch\fcs1 \af1\afs18 \ltrch\fcs0 140 | \f1\fs18\lang9\langfe2057\langnp9\insrsid592286\charrsid12473182 141 | a) under this License, provided that you make a good faith effort to ensure that, in the event an Application does not supply the function or data, the facility still operates, and performs whatever part of its purpose remains meaningful, or 142 | \par {\listtext\pard\plain\ltrpar \rtlch\fcs1 \af1\afs18 \ltrch\fcs0 \f3\fs20\lang9\langfe2057\langnp9\charrsid12473182 \loch\af3\dbch\af0\hich\f3 \'b7\tab}b) under the GNU GPL, with none of the additional permissions of this License applicable to that copy. 143 | 144 | \par }\pard\plain \ltrpar\s4\ql \li0\ri0\sb100\sa100\sbauto1\saauto1\widctlpar\wrapdefault\aspalpha\aspnum\faauto\outlinelevel3\adjustright\rin0\lin0\itap0 \rtlch\fcs1 \ab\af0\afs24\alang1025 \ltrch\fcs0 145 | \b\fs24\lang3072\langfe2057\loch\af0\hich\af0\dbch\af31505\cgrid\langnp3072\langfenp2057 {\rtlch\fcs1 \af1\afs18 \ltrch\fcs0 \f1\fs18\lang9\langfe2057\langnp9\insrsid592286\charrsid12473182 {\*\bkmkstart section3}{\*\bkmkend section3} 146 | 3. Object Code Incorporating Material from Library Header Files. 147 | \par }\pard\plain \ltrpar\s17\ql \li0\ri0\sb100\sa100\sbauto1\saauto1\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \rtlch\fcs1 \af0\afs24\alang1025 \ltrch\fcs0 148 | \fs24\lang3072\langfe2057\loch\af0\hich\af0\dbch\af31505\cgrid\langnp3072\langfenp2057 {\rtlch\fcs1 \af1\afs18 \ltrch\fcs0 \f1\fs18\lang9\langfe2057\langnp9\insrsid592286\charrsid12473182 \hich\af1\dbch\af31505\loch\f1 149 | The object code form of an Application may i\hich\af1\dbch\af31505\loch\f1 150 | ncorporate material from a header file that is part of the Library. You may convey such object code under terms of your choice, provided that, if the incorporated material is not limited to numerical parameters, data structure layouts and accessors, or sm 151 | \hich\af1\dbch\af31505\loch\f1 a\hich\af1\dbch\af31505\loch\f1 ll macros, inline functions and templates (ten or fewer lines in length), you do both of the following: 152 | \par {\listtext\pard\plain\ltrpar \rtlch\fcs1 \af1\afs18 \ltrch\fcs0 \f3\fs20\lang9\langfe2057\langnp9\charrsid12473182 \loch\af3\dbch\af0\hich\f3 \'b7\tab}}\pard\plain \ltrpar\ql \fi-360\li720\ri0\sb100\sa100\sbauto1\saauto1\widctlpar 153 | \jclisttab\tx720\wrapdefault\aspalpha\aspnum\faauto\ls2\adjustright\rin0\lin720\itap0 \rtlch\fcs1 \af0\afs24\alang1025 \ltrch\fcs0 \fs24\lang3072\langfe2057\loch\af0\hich\af0\dbch\af31505\cgrid\langnp3072\langfenp2057 {\rtlch\fcs1 \af1\afs18 \ltrch\fcs0 154 | \f1\fs18\lang9\langfe2057\langnp9\insrsid592286\charrsid12473182 a) Give prominent notice with each copy of the object code that the Library is used in it and that the Library and its use are covered by this License. 155 | \par {\listtext\pard\plain\ltrpar \rtlch\fcs1 \af1\afs18 \ltrch\fcs0 \f3\fs20\lang9\langfe2057\langnp9\charrsid12473182 \loch\af3\dbch\af0\hich\f3 \'b7\tab}b) Accompany the object code with a copy of the GNU GPL and this license document. 156 | \par }\pard\plain \ltrpar\s4\ql \li0\ri0\sb100\sa100\sbauto1\saauto1\widctlpar\wrapdefault\aspalpha\aspnum\faauto\outlinelevel3\adjustright\rin0\lin0\itap0 \rtlch\fcs1 \ab\af0\afs24\alang1025 \ltrch\fcs0 157 | \b\fs24\lang3072\langfe2057\loch\af0\hich\af0\dbch\af31505\cgrid\langnp3072\langfenp2057 {\rtlch\fcs1 \af1\afs18 \ltrch\fcs0 \f1\fs18\lang9\langfe2057\langnp9\insrsid592286\charrsid12473182 {\*\bkmkstart section4}{\*\bkmkend section4}4. Combined Works. 158 | 159 | \par }\pard\plain \ltrpar\s17\ql \li0\ri0\sb100\sa100\sbauto1\saauto1\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \rtlch\fcs1 \af0\afs24\alang1025 \ltrch\fcs0 160 | \fs24\lang3072\langfe2057\loch\af0\hich\af0\dbch\af31505\cgrid\langnp3072\langfenp2057 {\rtlch\fcs1 \af1\afs18 \ltrch\fcs0 \f1\fs18\lang9\langfe2057\langnp9\insrsid592286\charrsid12473182 \hich\af1\dbch\af31505\loch\f1 161 | You may convey a Combined Work under terms of your choice that, taken together, effectively do not restrict modification of the portions of the Library co\hich\af1\dbch\af31505\loch\f1 162 | ntained in the Combined Work and reverse engineering for debugging such modifications, if you also do each of the following: 163 | \par {\listtext\pard\plain\ltrpar \rtlch\fcs1 \af1\afs18 \ltrch\fcs0 \f3\fs20\lang9\langfe2057\langnp9\charrsid12473182 \loch\af3\dbch\af0\hich\f3 \'b7\tab}}\pard\plain \ltrpar\ql \fi-360\li720\ri0\sb100\sa100\sbauto1\saauto1\widctlpar 164 | \jclisttab\tx720\wrapdefault\aspalpha\aspnum\faauto\ls3\adjustright\rin0\lin720\itap0 \rtlch\fcs1 \af0\afs24\alang1025 \ltrch\fcs0 \fs24\lang3072\langfe2057\loch\af0\hich\af0\dbch\af31505\cgrid\langnp3072\langfenp2057 {\rtlch\fcs1 \af1\afs18 \ltrch\fcs0 165 | \f1\fs18\lang9\langfe2057\langnp9\insrsid592286\charrsid12473182 a) Give prominent notice with each copy of the Combined Work that the Library is used in it and that the Library and its use are covered by this License. 166 | \par {\listtext\pard\plain\ltrpar \rtlch\fcs1 \af1\afs18 \ltrch\fcs0 \f3\fs20\lang9\langfe2057\langnp9\charrsid12473182 \loch\af3\dbch\af0\hich\f3 \'b7\tab}b) Accompany the Combined Work with a copy of the GNU GPL and this license document. 167 | \par {\listtext\pard\plain\ltrpar \rtlch\fcs1 \af1\afs18 \ltrch\fcs0 \f3\fs20\lang9\langfe2057\langnp9\charrsid12473182 \loch\af3\dbch\af0\hich\f3 \'b7\tab}c) For a Combined Work that displays copyright notices during 168 | execution, include the copyright notice for the Library among these notices, as well as a reference directing the user to the copies of the GNU GPL and this license document. 169 | \par {\listtext\pard\plain\ltrpar \rtlch\fcs1 \af1\afs18 \ltrch\fcs0 \f3\fs20\lang9\langfe2057\langnp9\charrsid12473182 \loch\af3\dbch\af0\hich\f3 \'b7\tab}d) Do one of the following: 170 | \par {\listtext\pard\plain\ltrpar \rtlch\fcs1 \af1\afs18 \ltrch\fcs0 \f2\fs20\lang9\langfe2057\langnp9\charrsid12473182 \hich\af2\dbch\af0\loch\f2 o\tab}}\pard \ltrpar\ql \fi-360\li1440\ri0\sb100\sa100\sbauto1\saauto1\widctlpar 171 | \jclisttab\tx1440\wrapdefault\aspalpha\aspnum\faauto\ls3\ilvl1\adjustright\rin0\lin1440\itap0 {\rtlch\fcs1 \af1\afs18 \ltrch\fcs0 \f1\fs18\lang9\langfe2057\langnp9\insrsid592286\charrsid12473182 0) Convey the Minimal Corresponding Source under the 172 | terms of this License, and the Corresponding Application Code in a form suitable for, and under terms that permit, the user to recombine or relink the Application with a modified version of the Linked Version to produce a modified Combined Work, in the m 173 | anner specified by section 6 of the GNU GPL for conveying Corresponding Source. 174 | \par {\listtext\pard\plain\ltrpar \rtlch\fcs1 \af1\afs18 \ltrch\fcs0 \f2\fs20\lang9\langfe2057\langnp9\charrsid12473182 \hich\af2\dbch\af0\loch\f2 o\tab} 175 | 1) Use a suitable shared library mechanism for linking with the Library. A suitable mechanism is one that (a) uses at run time a copy of the Library already present on the user' 176 | s computer system, and (b) will operate properly with a modified version of the Library that is interface-compatible with the Linked Version. 177 | \par {\listtext\pard\plain\ltrpar \rtlch\fcs1 \af1\afs18 \ltrch\fcs0 \f3\fs20\lang9\langfe2057\langnp9\charrsid12473182 \loch\af3\dbch\af0\hich\f3 \'b7\tab}}\pard \ltrpar\ql \fi-360\li720\ri0\sb100\sa100\sbauto1\saauto1\widctlpar 178 | \jclisttab\tx720\wrapdefault\aspalpha\aspnum\faauto\ls3\adjustright\rin0\lin720\itap0 {\rtlch\fcs1 \af1\afs18 \ltrch\fcs0 \f1\fs18\lang9\langfe2057\langnp9\insrsid592286\charrsid12473182 179 | e) Provide Installation Information, but only if you would otherwise be required to provide such information under 180 | section 6 of the GNU GPL, and only to the extent that such information is necessary to install and execute a modified version of the Combined Work produced by recombining or relinking the Application with a modified version of the Linked Version. (If you 181 | 182 | use option 4d0, the Installation Information must accompany the Minimal Corresponding Source and Corresponding Application Code. If you use option 4d1, you must provide the Installation Information in the manner specified by section 6 of the GNU GPL for c 183 | onveying Corresponding Source.) 184 | \par }\pard\plain \ltrpar\s4\ql \li0\ri0\sb100\sa100\sbauto1\saauto1\widctlpar\wrapdefault\aspalpha\aspnum\faauto\outlinelevel3\adjustright\rin0\lin0\itap0 \rtlch\fcs1 \ab\af0\afs24\alang1025 \ltrch\fcs0 185 | \b\fs24\lang3072\langfe2057\loch\af0\hich\af0\dbch\af31505\cgrid\langnp3072\langfenp2057 {\rtlch\fcs1 \af1\afs18 \ltrch\fcs0 \f1\fs18\lang9\langfe2057\langnp9\insrsid592286\charrsid12473182 {\*\bkmkstart section5}{\*\bkmkend section5} 186 | 5. Combined Libraries. 187 | \par }\pard\plain \ltrpar\s17\ql \li0\ri0\sb100\sa100\sbauto1\saauto1\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \rtlch\fcs1 \af0\afs24\alang1025 \ltrch\fcs0 188 | \fs24\lang3072\langfe2057\loch\af0\hich\af0\dbch\af31505\cgrid\langnp3072\langfenp2057 {\rtlch\fcs1 \af1\afs18 \ltrch\fcs0 \f1\fs18\lang9\langfe2057\langnp9\insrsid592286\charrsid12473182 \hich\af1\dbch\af31505\loch\f1 189 | You may place library facilities that are a work based on the Library side by side in a single library together with other library facilities that are not Applications and are not covered by this Licens\hich\af1\dbch\af31505\loch\f1 190 | e, and convey such a combined library under terms of your choice, if you do both of the following: 191 | \par {\listtext\pard\plain\ltrpar \rtlch\fcs1 \af1\afs18 \ltrch\fcs0 \f3\fs20\lang9\langfe2057\langnp9\charrsid12473182 \loch\af3\dbch\af0\hich\f3 \'b7\tab}}\pard\plain \ltrpar\ql \fi-360\li720\ri0\sb100\sa100\sbauto1\saauto1\widctlpar 192 | \jclisttab\tx720\wrapdefault\aspalpha\aspnum\faauto\ls4\adjustright\rin0\lin720\itap0 \rtlch\fcs1 \af0\afs24\alang1025 \ltrch\fcs0 \fs24\lang3072\langfe2057\loch\af0\hich\af0\dbch\af31505\cgrid\langnp3072\langfenp2057 {\rtlch\fcs1 \af1\afs18 \ltrch\fcs0 193 | \f1\fs18\lang9\langfe2057\langnp9\insrsid592286\charrsid12473182 a) Accompany the combined library with a copy of the same work based on the Library, uncombined with any other library facilities, conveyed under the terms of this License. 194 | \par {\listtext\pard\plain\ltrpar \rtlch\fcs1 \af1\afs18 \ltrch\fcs0 \f3\fs20\lang9\langfe2057\langnp9\charrsid12473182 \loch\af3\dbch\af0\hich\f3 \'b7\tab} 195 | b) Give prominent notice with the combined library that part of it is a work based on the Library, and explaining where to find the accompanying uncombined form of the same work. 196 | \par }\pard\plain \ltrpar\s4\ql \li0\ri0\sb100\sa100\sbauto1\saauto1\widctlpar\wrapdefault\aspalpha\aspnum\faauto\outlinelevel3\adjustright\rin0\lin0\itap0 \rtlch\fcs1 \ab\af0\afs24\alang1025 \ltrch\fcs0 197 | \b\fs24\lang3072\langfe2057\loch\af0\hich\af0\dbch\af31505\cgrid\langnp3072\langfenp2057 {\rtlch\fcs1 \af1\afs18 \ltrch\fcs0 \f1\fs18\lang9\langfe2057\langnp9\insrsid592286\charrsid12473182 {\*\bkmkstart section6}{\*\bkmkend section6} 198 | 6. Revised Versions of the GNU Lesser General Public License. 199 | \par }\pard\plain \ltrpar\s17\ql \li0\ri0\sb100\sa100\sbauto1\saauto1\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \rtlch\fcs1 \af0\afs24\alang1025 \ltrch\fcs0 200 | \fs24\lang3072\langfe2057\loch\af0\hich\af0\dbch\af31505\cgrid\langnp3072\langfenp2057 {\rtlch\fcs1 \af1\afs18 \ltrch\fcs0 \f1\fs18\lang9\langfe2057\langnp9\insrsid592286\charrsid12473182 \hich\af1\dbch\af31505\loch\f1 201 | The Free Software Foundation may publish revised and/or new versions of the GNU Lesser General Public License from time to time. Such new versions will be similar in spirit to the present version, but may differ in detail to address new problems or concer 202 | \hich\af1\dbch\af31505\loch\f1 ns. 203 | \par \hich\af1\dbch\af31505\loch\f1 \hich\f1 Each version is given a distinguishing version number. If the Library as you received it specifies that a certain numbered version of the GNU Lesser General Public License \'93\loch\f1 \hich\f1 or any later version 204 | \'94\loch\f1 applies to it, you have the option of following the terms\hich\af1\dbch\af31505\loch\f1 205 | and conditions either of that published version or of any later version published by the Free Software Foundation. If the Library as you received it does not specify a version number of the GNU Lesser General Public License, you may choose any version of 206 | \hich\af1\dbch\af31505\loch\f1 \hich\af1\dbch\af31505\loch\f1 the GNU Lesser General Public License ever published by the Free Software Foundation. 207 | \par \hich\af1\dbch\af31505\loch\f1 If the Library as you received it specifies that a proxy can decide whether future versions of the GNU Lesser General Public License shall apply, that proxy's public stat\hich\af1\dbch\af31505\loch\f1 208 | ement of acceptance of any version is permanent authorization for you to choose that version for the Library.}{\rtlch\fcs1 \af1\afs18 \ltrch\fcs0 \f1\fs18\lang9\langfe2057\langnp9\insrsid592286\charrsid12473182 209 | \par }{\*\themedata 504b030414000600080000002100e9de0fbfff0000001c020000130000005b436f6e74656e745f54797065735d2e786d6cac91cb4ec3301045f748fc83e52d4a 210 | 9cb2400825e982c78ec7a27cc0c8992416c9d8b2a755fbf74cd25442a820166c2cd933f79e3be372bd1f07b5c3989ca74aaff2422b24eb1b475da5df374fd9ad 211 | 5689811a183c61a50f98f4babebc2837878049899a52a57be670674cb23d8e90721f90a4d2fa3802cb35762680fd800ecd7551dc18eb899138e3c943d7e503b6 212 | b01d583deee5f99824e290b4ba3f364eac4a430883b3c092d4eca8f946c916422ecab927f52ea42b89a1cd59c254f919b0e85e6535d135a8de20f20b8c12c3b0 213 | 0c895fcf6720192de6bf3b9e89ecdbd6596cbcdd8eb28e7c365ecc4ec1ff1460f53fe813d3cc7f5b7f020000ffff0300504b030414000600080000002100a5d6 214 | a7e7c0000000360100000b0000005f72656c732f2e72656c73848fcf6ac3300c87ef85bd83d17d51d2c31825762fa590432fa37d00e1287f68221bdb1bebdb4f 215 | c7060abb0884a4eff7a93dfeae8bf9e194e720169aaa06c3e2433fcb68e1763dbf7f82c985a4a725085b787086a37bdbb55fbc50d1a33ccd311ba548b6309512 216 | 0f88d94fbc52ae4264d1c910d24a45db3462247fa791715fd71f989e19e0364cd3f51652d73760ae8fa8c9ffb3c330cc9e4fc17faf2ce545046e37944c69e462 217 | a1a82fe353bd90a865aad41ed0b5b8f9d6fd010000ffff0300504b0304140006000800000021006b799616830000008a0000001c0000007468656d652f746865 218 | 6d652f7468656d654d616e616765722e786d6c0ccc4d0ac3201040e17da17790d93763bb284562b2cbaebbf600439c1a41c7a0d29fdbd7e5e38337cedf14d59b 219 | 4b0d592c9c070d8a65cd2e88b7f07c2ca71ba8da481cc52c6ce1c715e6e97818c9b48d13df49c873517d23d59085adb5dd20d6b52bd521ef2cdd5eb9246a3d8b 220 | 4757e8d3f729e245eb2b260a0238fd010000ffff0300504b030414000600080000002100b6f4679893070000c9200000160000007468656d652f7468656d652f 221 | 7468656d65312e786d6cec59cd8b1bc915bf07f23f347d97f5d5ad8fc1f2a24fcfda33b6b164873dd648a5eef2547789aad28cc56208de532e81c026e49085bd 222 | ed21842cecc22eb9e48f31d8249b3f22afaa5bdd5552c99e191c3061463074977eefd5afde7bf5de53d5ddcf5e26d4bbc05c1096f6fcfa9d9aefe174ce16248d 223 | 7afeb3d9a4d2f13d2151ba4094a5b8e76fb0f03fbbf7eb5fdd454732c609f6403e1547a8e7c752ae8eaa5531876124eeb0154ee1bb25e30992f0caa3ea82a34b 224 | d09bd06aa3566b55134452df4b51026a1f2f97648ebd9952e9dfdb2a1f53784da5500373caa74a35b6243476715e5708b11143cabd0b447b3eccb3609733fc52 225 | fa1e4542c2173dbfa6fffceabdbb5574940b517940d6909be8bf5c2e17589c37f49c3c3a2b260d823068f50bfd1a40e53e6edc1eb7c6ad429f06a0f91c569a71 226 | b175b61bc320c71aa0ecd1a17bd41e35eb16ded0dfdce3dc0fd5c7c26b50a63fd8c34f2643b0a285d7a00c1feee1c3417730b2f56b50866fede1dbb5fe28685b 227 | fa3528a6243ddf43d7c25673b85d6d0159327aec8477c360d26ee4ca4b144443115d6a8a254be5a1584bd00bc6270050408a24493db959e1259a43140f112567 228 | 9c7827248a21f056286502866b8ddaa4d684ffea13e827ed5174849121ad780113b137a4f87862cec94af6fc07a0d537206f7ffef9cdeb1fdfbcfee9cd575fbd 229 | 79fdf77c6eadca923b466964cafdf2dd1ffef3cd6fbd7ffff0ed2f5fff319b7a172f4cfcbbbffdeedd3ffef93ef5b0e2d2146ffff4fdbb1fbf7ffbe7dfffebaf 230 | 5f3bb4f7393a33e1339260e13dc297de5396c0021dfcf119bf9ec42c46c494e8a791402952b338f48f656ca11f6d10450edc00db767cce21d5b880f7d72f2cc2 231 | d398af2571687c182716f094313a60dc6985876a2ec3ccb3751ab927e76b13f714a10bd7dc43945a5e1eaf579063894be530c616cd2714a5124538c5d253dfb1 232 | 738c1dabfb8210cbaea764ce99604be97d41bc01224e93ccc899154da5d03149c02f1b1741f0b7659bd3e7de8051d7aa47f8c246c2de40d4417e86a965c6fb68 233 | 2d51e252394309350d7e8264ec2239ddf0b9891b0b099e8e3065de78818570c93ce6b05ec3e90f21cdb8dd7e4a37898de4929cbb749e20c64ce4889d0f6394ac 234 | 5cd829496313fbb938871045de13265df05366ef10f50e7e40e941773f27d872f787b3c133c8b026a53240d4376beef0e57dccacf89d6ee8126157aae9f3c44a 235 | b17d4e9cd131584756689f604cd1255a60ec3dfbdcc160c05696cd4bd20f62c82ac7d815580f901dabea3dc5027a25d5dcece7c91322ac909de2881de073bad9 236 | 493c1b9426881fd2fc08bc6eda7c0ca52e7105c0633a3f37818f08f480102f4ea33c16a0c308ee835a9fc4c82a60ea5db8e375c32dff5d658fc1be7c61d1b8c2 237 | be04197c6d1948eca6cc7b6d3343d49aa00c9819822ec3956e41c4727f29a28aab165b3be596f6a62ddd00dd91d5f42424fd6007b4d3fb84ffbbde073a8cb77f 238 | f9c6b10f3e4ebfe3566c25ab6b763a8792c9f14e7f7308b7dbd50c195f904fbfa919a175fa04431dd9cf58b73dcd6d4fe3ffdff73487f6f36d2773a8dfb8ed64 239 | 7ce8306e3b99fc70e5e3743265f3027d8d3af0c80e7af4b14f72f0d46749289dca0dc527421ffc08f83db398c0a092d3279eb838055cc5f0a8ca1c4c60e1228e 240 | b48cc799fc0d91f134462b381daafb4a492472d591f0564cc0a1911e76ea5678ba4e4ed9223becacd7d5c16656590592e5782d2cc6e1a04a66e856bb3cc02bd4 241 | 6bb6913e68dd1250b2d721614c6693683a48b4b783ca48fa58178ce620a157f65158741d2c3a4afdd6557b2c805ae115f8c1edc1cff49e1f06200242701e07cd 242 | f942f92973f5d6bbda991fd3d3878c69450034d8db08283ddd555c0f2e4fad2e0bb52b78da2261849b4d425b46377822869fc17974aad1abd0b8aeafbba54b2d 243 | 7aca147a3e08ad9246bbf33e1637f535c8ede6069a9a9982a6de65cf6f35430899395af5fc251c1ac363b282d811ea3717a211dcbccc25cf36fc4d32cb8a0b39 244 | 4222ce0cae934e960d122231f728497abe5a7ee1069aea1ca2b9d51b90103e59725d482b9f1a3970baed64bc5ce2b934dd6e8c284b67af90e1b35ce1fc568bdf 245 | 1cac24d91adc3d8d1797de195df3a708422c6cd795011744c0dd413db3e682c0655891c8caf8db294c79da356fa3740c65e388ae62945714339967709dca0b3a 246 | faadb081f196af190c6a98242f8467912ab0a651ad6a5a548d8cc3c1aafb6121653923699635d3ca2aaa6abab39835c3b60cecd8f26645de60b53531e434b3c2 247 | 67a97b37e576b7b96ea74f28aa0418bcb09fa3ea5ea12018d4cac92c6a8af17e1a56393b1fb56bc776811fa07695226164fdd656ed8edd8a1ae19c0e066f54f9 248 | 416e376a6168b9ed2bb5a5f5adb979b1cdce5e40f2184197bba6526857c2c92e47d0104d754f92a50dd8222f65be35e0c95b73d2f3bfac85fd60d80887955a27 249 | 1c57826650ab74c27eb3d20fc3667d1cd66ba341e31514161927f530bbb19fc00506dde4f7f67a7cefee3ed9ded1dc99b3a4caf4dd7c5513d777f7f5c6e1bb7b 250 | 8f40d2f9b2d598749bdd41abd26df627956034e854bac3d6a0326a0ddba3c9681876ba9357be77a1c141bf390c5ae34ea5551f0e2b41aba6e877ba9576d068f4 251 | 8376bf330efaaff23606569ea58fdc16605ecdebde7f010000ffff0300504b0304140006000800000021000dd1909fb60000001b010000270000007468656d65 252 | 2f7468656d652f5f72656c732f7468656d654d616e616765722e786d6c2e72656c73848f4d0ac2301484f78277086f6fd3ba109126dd88d0add40384e4350d36 253 | 3f2451eced0dae2c082e8761be9969bb979dc9136332de3168aa1a083ae995719ac16db8ec8e4052164e89d93b64b060828e6f37ed1567914b284d262452282e 254 | 3198720e274a939cd08a54f980ae38a38f56e422a3a641c8bbd048f7757da0f19b017cc524bd62107bd5001996509affb3fd381a89672f1f165dfe514173d985 255 | 0528a2c6cce0239baa4c04ca5bbabac4df000000ffff0300504b01022d0014000600080000002100e9de0fbfff0000001c020000130000000000000000000000 256 | 0000000000005b436f6e74656e745f54797065735d2e786d6c504b01022d0014000600080000002100a5d6a7e7c0000000360100000b00000000000000000000 257 | 000000300100005f72656c732f2e72656c73504b01022d00140006000800000021006b799616830000008a0000001c0000000000000000000000000019020000 258 | 7468656d652f7468656d652f7468656d654d616e616765722e786d6c504b01022d0014000600080000002100b6f4679893070000c92000001600000000000000 259 | 000000000000d60200007468656d652f7468656d652f7468656d65312e786d6c504b01022d00140006000800000021000dd1909fb60000001b01000027000000 260 | 000000000000000000009d0a00007468656d652f7468656d652f5f72656c732f7468656d654d616e616765722e786d6c2e72656c73504b050600000000050005005d010000980b00000000} 261 | {\*\colorschememapping 3c3f786d6c2076657273696f6e3d22312e302220656e636f64696e673d225554462d3822207374616e64616c6f6e653d22796573223f3e0d0a3c613a636c724d 262 | 617020786d6c6e733a613d22687474703a2f2f736368656d61732e6f70656e786d6c666f726d6174732e6f72672f64726177696e676d6c2f323030362f6d6169 263 | 6e22206267313d226c743122207478313d22646b3122206267323d226c743222207478323d22646b322220616363656e74313d22616363656e74312220616363 264 | 656e74323d22616363656e74322220616363656e74333d22616363656e74332220616363656e74343d22616363656e74342220616363656e74353d22616363656e74352220616363656e74363d22616363656e74362220686c696e6b3d22686c696e6b2220666f6c486c696e6b3d22666f6c486c696e6b222f3e} 265 | {\*\latentstyles\lsdstimax376\lsdlockeddef0\lsdsemihiddendef0\lsdunhideuseddef0\lsdqformatdef0\lsdprioritydef99{\lsdlockedexcept \lsdqformat1 \lsdpriority0 \lsdlocked0 Normal;\lsdqformat1 \lsdpriority9 \lsdlocked0 heading 1; 266 | \lsdsemihidden1 \lsdunhideused1 \lsdqformat1 \lsdpriority9 \lsdlocked0 heading 2;\lsdqformat1 \lsdpriority9 \lsdlocked0 heading 3;\lsdqformat1 \lsdpriority9 \lsdlocked0 heading 4; 267 | \lsdsemihidden1 \lsdunhideused1 \lsdqformat1 \lsdpriority9 \lsdlocked0 heading 5;\lsdsemihidden1 \lsdunhideused1 \lsdqformat1 \lsdpriority9 \lsdlocked0 heading 6;\lsdsemihidden1 \lsdunhideused1 \lsdqformat1 \lsdpriority9 \lsdlocked0 heading 7; 268 | \lsdsemihidden1 \lsdunhideused1 \lsdqformat1 \lsdpriority9 \lsdlocked0 heading 8;\lsdsemihidden1 \lsdunhideused1 \lsdqformat1 \lsdpriority9 \lsdlocked0 heading 9;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 index 1; 269 | \lsdsemihidden1 \lsdunhideused1 \lsdlocked0 index 2;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 index 3;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 index 4;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 index 5; 270 | \lsdsemihidden1 \lsdunhideused1 \lsdlocked0 index 6;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 index 7;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 index 8;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 index 9; 271 | \lsdsemihidden1 \lsdunhideused1 \lsdpriority39 \lsdlocked0 toc 1;\lsdsemihidden1 \lsdunhideused1 \lsdpriority39 \lsdlocked0 toc 2;\lsdsemihidden1 \lsdunhideused1 \lsdpriority39 \lsdlocked0 toc 3; 272 | \lsdsemihidden1 \lsdunhideused1 \lsdpriority39 \lsdlocked0 toc 4;\lsdsemihidden1 \lsdunhideused1 \lsdpriority39 \lsdlocked0 toc 5;\lsdsemihidden1 \lsdunhideused1 \lsdpriority39 \lsdlocked0 toc 6; 273 | \lsdsemihidden1 \lsdunhideused1 \lsdpriority39 \lsdlocked0 toc 7;\lsdsemihidden1 \lsdunhideused1 \lsdpriority39 \lsdlocked0 toc 8;\lsdsemihidden1 \lsdunhideused1 \lsdpriority39 \lsdlocked0 toc 9;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Normal Indent; 274 | \lsdsemihidden1 \lsdunhideused1 \lsdlocked0 footnote text;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 annotation text;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 header;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 footer; 275 | \lsdsemihidden1 \lsdunhideused1 \lsdlocked0 index heading;\lsdsemihidden1 \lsdunhideused1 \lsdqformat1 \lsdpriority35 \lsdlocked0 caption;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 table of figures; 276 | \lsdsemihidden1 \lsdunhideused1 \lsdlocked0 envelope address;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 envelope return;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 footnote reference;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 annotation reference; 277 | \lsdsemihidden1 \lsdunhideused1 \lsdlocked0 line number;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 page number;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 endnote reference;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 endnote text; 278 | \lsdsemihidden1 \lsdunhideused1 \lsdlocked0 table of authorities;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 macro;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 toa heading;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List; 279 | \lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List Bullet;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List Number;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List 2;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List 3; 280 | \lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List 4;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List 5;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List Bullet 2;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List Bullet 3; 281 | \lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List Bullet 4;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List Bullet 5;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List Number 2;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List Number 3; 282 | \lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List Number 4;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List Number 5;\lsdqformat1 \lsdpriority10 \lsdlocked0 Title;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Closing; 283 | \lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Signature;\lsdsemihidden1 \lsdunhideused1 \lsdpriority1 \lsdlocked0 Default Paragraph Font;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Body Text;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Body Text Indent; 284 | \lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List Continue;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List Continue 2;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List Continue 3;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List Continue 4; 285 | \lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List Continue 5;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Message Header;\lsdqformat1 \lsdpriority11 \lsdlocked0 Subtitle;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Salutation; 286 | \lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Date;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Body Text First Indent;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Body Text First Indent 2;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Note Heading; 287 | \lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Body Text 2;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Body Text 3;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Body Text Indent 2;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Body Text Indent 3; 288 | \lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Block Text;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Hyperlink;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 FollowedHyperlink;\lsdqformat1 \lsdpriority22 \lsdlocked0 Strong; 289 | \lsdqformat1 \lsdpriority20 \lsdlocked0 Emphasis;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Document Map;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Plain Text;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 E-mail Signature; 290 | \lsdsemihidden1 \lsdunhideused1 \lsdlocked0 HTML Top of Form;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 HTML Bottom of Form;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Normal (Web);\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 HTML Acronym; 291 | \lsdsemihidden1 \lsdunhideused1 \lsdlocked0 HTML Address;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 HTML Cite;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 HTML Code;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 HTML Definition; 292 | \lsdsemihidden1 \lsdunhideused1 \lsdlocked0 HTML Keyboard;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 HTML Preformatted;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 HTML Sample;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 HTML Typewriter; 293 | \lsdsemihidden1 \lsdunhideused1 \lsdlocked0 HTML Variable;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Normal Table;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 annotation subject;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 No List; 294 | \lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Outline List 1;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Outline List 2;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Outline List 3;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Simple 1; 295 | \lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Simple 2;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Simple 3;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Classic 1;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Classic 2; 296 | \lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Classic 3;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Classic 4;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Colorful 1;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Colorful 2; 297 | \lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Colorful 3;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Columns 1;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Columns 2;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Columns 3; 298 | \lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Columns 4;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Columns 5;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Grid 1;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Grid 2; 299 | \lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Grid 3;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Grid 4;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Grid 5;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Grid 6; 300 | \lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Grid 7;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Grid 8;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table List 1;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table List 2; 301 | \lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table List 3;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table List 4;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table List 5;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table List 6; 302 | \lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table List 7;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table List 8;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table 3D effects 1;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table 3D effects 2; 303 | \lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table 3D effects 3;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Contemporary;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Elegant;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Professional; 304 | \lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Subtle 1;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Subtle 2;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Web 1;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Web 2; 305 | \lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Web 3;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Balloon Text;\lsdpriority39 \lsdlocked0 Table Grid;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Theme;\lsdsemihidden1 \lsdlocked0 Placeholder Text; 306 | \lsdqformat1 \lsdpriority1 \lsdlocked0 No Spacing;\lsdpriority60 \lsdlocked0 Light Shading;\lsdpriority61 \lsdlocked0 Light List;\lsdpriority62 \lsdlocked0 Light Grid;\lsdpriority63 \lsdlocked0 Medium Shading 1;\lsdpriority64 \lsdlocked0 Medium Shading 2; 307 | \lsdpriority65 \lsdlocked0 Medium List 1;\lsdpriority66 \lsdlocked0 Medium List 2;\lsdpriority67 \lsdlocked0 Medium Grid 1;\lsdpriority68 \lsdlocked0 Medium Grid 2;\lsdpriority69 \lsdlocked0 Medium Grid 3;\lsdpriority70 \lsdlocked0 Dark List; 308 | \lsdpriority71 \lsdlocked0 Colorful Shading;\lsdpriority72 \lsdlocked0 Colorful List;\lsdpriority73 \lsdlocked0 Colorful Grid;\lsdpriority60 \lsdlocked0 Light Shading Accent 1;\lsdpriority61 \lsdlocked0 Light List Accent 1; 309 | \lsdpriority62 \lsdlocked0 Light Grid Accent 1;\lsdpriority63 \lsdlocked0 Medium Shading 1 Accent 1;\lsdpriority64 \lsdlocked0 Medium Shading 2 Accent 1;\lsdpriority65 \lsdlocked0 Medium List 1 Accent 1;\lsdsemihidden1 \lsdlocked0 Revision; 310 | \lsdqformat1 \lsdpriority34 \lsdlocked0 List Paragraph;\lsdqformat1 \lsdpriority29 \lsdlocked0 Quote;\lsdqformat1 \lsdpriority30 \lsdlocked0 Intense Quote;\lsdpriority66 \lsdlocked0 Medium List 2 Accent 1;\lsdpriority67 \lsdlocked0 Medium Grid 1 Accent 1; 311 | \lsdpriority68 \lsdlocked0 Medium Grid 2 Accent 1;\lsdpriority69 \lsdlocked0 Medium Grid 3 Accent 1;\lsdpriority70 \lsdlocked0 Dark List Accent 1;\lsdpriority71 \lsdlocked0 Colorful Shading Accent 1;\lsdpriority72 \lsdlocked0 Colorful List Accent 1; 312 | \lsdpriority73 \lsdlocked0 Colorful Grid Accent 1;\lsdpriority60 \lsdlocked0 Light Shading Accent 2;\lsdpriority61 \lsdlocked0 Light List Accent 2;\lsdpriority62 \lsdlocked0 Light Grid Accent 2;\lsdpriority63 \lsdlocked0 Medium Shading 1 Accent 2; 313 | \lsdpriority64 \lsdlocked0 Medium Shading 2 Accent 2;\lsdpriority65 \lsdlocked0 Medium List 1 Accent 2;\lsdpriority66 \lsdlocked0 Medium List 2 Accent 2;\lsdpriority67 \lsdlocked0 Medium Grid 1 Accent 2;\lsdpriority68 \lsdlocked0 Medium Grid 2 Accent 2; 314 | \lsdpriority69 \lsdlocked0 Medium Grid 3 Accent 2;\lsdpriority70 \lsdlocked0 Dark List Accent 2;\lsdpriority71 \lsdlocked0 Colorful Shading Accent 2;\lsdpriority72 \lsdlocked0 Colorful List Accent 2;\lsdpriority73 \lsdlocked0 Colorful Grid Accent 2; 315 | \lsdpriority60 \lsdlocked0 Light Shading Accent 3;\lsdpriority61 \lsdlocked0 Light List Accent 3;\lsdpriority62 \lsdlocked0 Light Grid Accent 3;\lsdpriority63 \lsdlocked0 Medium Shading 1 Accent 3;\lsdpriority64 \lsdlocked0 Medium Shading 2 Accent 3; 316 | \lsdpriority65 \lsdlocked0 Medium List 1 Accent 3;\lsdpriority66 \lsdlocked0 Medium List 2 Accent 3;\lsdpriority67 \lsdlocked0 Medium Grid 1 Accent 3;\lsdpriority68 \lsdlocked0 Medium Grid 2 Accent 3;\lsdpriority69 \lsdlocked0 Medium Grid 3 Accent 3; 317 | \lsdpriority70 \lsdlocked0 Dark List Accent 3;\lsdpriority71 \lsdlocked0 Colorful Shading Accent 3;\lsdpriority72 \lsdlocked0 Colorful List Accent 3;\lsdpriority73 \lsdlocked0 Colorful Grid Accent 3;\lsdpriority60 \lsdlocked0 Light Shading Accent 4; 318 | \lsdpriority61 \lsdlocked0 Light List Accent 4;\lsdpriority62 \lsdlocked0 Light Grid Accent 4;\lsdpriority63 \lsdlocked0 Medium Shading 1 Accent 4;\lsdpriority64 \lsdlocked0 Medium Shading 2 Accent 4;\lsdpriority65 \lsdlocked0 Medium List 1 Accent 4; 319 | \lsdpriority66 \lsdlocked0 Medium List 2 Accent 4;\lsdpriority67 \lsdlocked0 Medium Grid 1 Accent 4;\lsdpriority68 \lsdlocked0 Medium Grid 2 Accent 4;\lsdpriority69 \lsdlocked0 Medium Grid 3 Accent 4;\lsdpriority70 \lsdlocked0 Dark List Accent 4; 320 | \lsdpriority71 \lsdlocked0 Colorful Shading Accent 4;\lsdpriority72 \lsdlocked0 Colorful List Accent 4;\lsdpriority73 \lsdlocked0 Colorful Grid Accent 4;\lsdpriority60 \lsdlocked0 Light Shading Accent 5;\lsdpriority61 \lsdlocked0 Light List Accent 5; 321 | \lsdpriority62 \lsdlocked0 Light Grid Accent 5;\lsdpriority63 \lsdlocked0 Medium Shading 1 Accent 5;\lsdpriority64 \lsdlocked0 Medium Shading 2 Accent 5;\lsdpriority65 \lsdlocked0 Medium List 1 Accent 5;\lsdpriority66 \lsdlocked0 Medium List 2 Accent 5; 322 | \lsdpriority67 \lsdlocked0 Medium Grid 1 Accent 5;\lsdpriority68 \lsdlocked0 Medium Grid 2 Accent 5;\lsdpriority69 \lsdlocked0 Medium Grid 3 Accent 5;\lsdpriority70 \lsdlocked0 Dark List Accent 5;\lsdpriority71 \lsdlocked0 Colorful Shading Accent 5; 323 | \lsdpriority72 \lsdlocked0 Colorful List Accent 5;\lsdpriority73 \lsdlocked0 Colorful Grid Accent 5;\lsdpriority60 \lsdlocked0 Light Shading Accent 6;\lsdpriority61 \lsdlocked0 Light List Accent 6;\lsdpriority62 \lsdlocked0 Light Grid Accent 6; 324 | \lsdpriority63 \lsdlocked0 Medium Shading 1 Accent 6;\lsdpriority64 \lsdlocked0 Medium Shading 2 Accent 6;\lsdpriority65 \lsdlocked0 Medium List 1 Accent 6;\lsdpriority66 \lsdlocked0 Medium List 2 Accent 6; 325 | \lsdpriority67 \lsdlocked0 Medium Grid 1 Accent 6;\lsdpriority68 \lsdlocked0 Medium Grid 2 Accent 6;\lsdpriority69 \lsdlocked0 Medium Grid 3 Accent 6;\lsdpriority70 \lsdlocked0 Dark List Accent 6;\lsdpriority71 \lsdlocked0 Colorful Shading Accent 6; 326 | \lsdpriority72 \lsdlocked0 Colorful List Accent 6;\lsdpriority73 \lsdlocked0 Colorful Grid Accent 6;\lsdqformat1 \lsdpriority19 \lsdlocked0 Subtle Emphasis;\lsdqformat1 \lsdpriority21 \lsdlocked0 Intense Emphasis; 327 | \lsdqformat1 \lsdpriority31 \lsdlocked0 Subtle Reference;\lsdqformat1 \lsdpriority32 \lsdlocked0 Intense Reference;\lsdqformat1 \lsdpriority33 \lsdlocked0 Book Title;\lsdsemihidden1 \lsdunhideused1 \lsdpriority37 \lsdlocked0 Bibliography; 328 | \lsdsemihidden1 \lsdunhideused1 \lsdqformat1 \lsdpriority39 \lsdlocked0 TOC Heading;\lsdpriority41 \lsdlocked0 Plain Table 1;\lsdpriority42 \lsdlocked0 Plain Table 2;\lsdpriority43 \lsdlocked0 Plain Table 3;\lsdpriority44 \lsdlocked0 Plain Table 4; 329 | \lsdpriority45 \lsdlocked0 Plain Table 5;\lsdpriority40 \lsdlocked0 Grid Table Light;\lsdpriority46 \lsdlocked0 Grid Table 1 Light;\lsdpriority47 \lsdlocked0 Grid Table 2;\lsdpriority48 \lsdlocked0 Grid Table 3;\lsdpriority49 \lsdlocked0 Grid Table 4; 330 | \lsdpriority50 \lsdlocked0 Grid Table 5 Dark;\lsdpriority51 \lsdlocked0 Grid Table 6 Colorful;\lsdpriority52 \lsdlocked0 Grid Table 7 Colorful;\lsdpriority46 \lsdlocked0 Grid Table 1 Light Accent 1;\lsdpriority47 \lsdlocked0 Grid Table 2 Accent 1; 331 | \lsdpriority48 \lsdlocked0 Grid Table 3 Accent 1;\lsdpriority49 \lsdlocked0 Grid Table 4 Accent 1;\lsdpriority50 \lsdlocked0 Grid Table 5 Dark Accent 1;\lsdpriority51 \lsdlocked0 Grid Table 6 Colorful Accent 1; 332 | \lsdpriority52 \lsdlocked0 Grid Table 7 Colorful Accent 1;\lsdpriority46 \lsdlocked0 Grid Table 1 Light Accent 2;\lsdpriority47 \lsdlocked0 Grid Table 2 Accent 2;\lsdpriority48 \lsdlocked0 Grid Table 3 Accent 2; 333 | \lsdpriority49 \lsdlocked0 Grid Table 4 Accent 2;\lsdpriority50 \lsdlocked0 Grid Table 5 Dark Accent 2;\lsdpriority51 \lsdlocked0 Grid Table 6 Colorful Accent 2;\lsdpriority52 \lsdlocked0 Grid Table 7 Colorful Accent 2; 334 | \lsdpriority46 \lsdlocked0 Grid Table 1 Light Accent 3;\lsdpriority47 \lsdlocked0 Grid Table 2 Accent 3;\lsdpriority48 \lsdlocked0 Grid Table 3 Accent 3;\lsdpriority49 \lsdlocked0 Grid Table 4 Accent 3; 335 | \lsdpriority50 \lsdlocked0 Grid Table 5 Dark Accent 3;\lsdpriority51 \lsdlocked0 Grid Table 6 Colorful Accent 3;\lsdpriority52 \lsdlocked0 Grid Table 7 Colorful Accent 3;\lsdpriority46 \lsdlocked0 Grid Table 1 Light Accent 4; 336 | \lsdpriority47 \lsdlocked0 Grid Table 2 Accent 4;\lsdpriority48 \lsdlocked0 Grid Table 3 Accent 4;\lsdpriority49 \lsdlocked0 Grid Table 4 Accent 4;\lsdpriority50 \lsdlocked0 Grid Table 5 Dark Accent 4; 337 | \lsdpriority51 \lsdlocked0 Grid Table 6 Colorful Accent 4;\lsdpriority52 \lsdlocked0 Grid Table 7 Colorful Accent 4;\lsdpriority46 \lsdlocked0 Grid Table 1 Light Accent 5;\lsdpriority47 \lsdlocked0 Grid Table 2 Accent 5; 338 | \lsdpriority48 \lsdlocked0 Grid Table 3 Accent 5;\lsdpriority49 \lsdlocked0 Grid Table 4 Accent 5;\lsdpriority50 \lsdlocked0 Grid Table 5 Dark Accent 5;\lsdpriority51 \lsdlocked0 Grid Table 6 Colorful Accent 5; 339 | \lsdpriority52 \lsdlocked0 Grid Table 7 Colorful Accent 5;\lsdpriority46 \lsdlocked0 Grid Table 1 Light Accent 6;\lsdpriority47 \lsdlocked0 Grid Table 2 Accent 6;\lsdpriority48 \lsdlocked0 Grid Table 3 Accent 6; 340 | \lsdpriority49 \lsdlocked0 Grid Table 4 Accent 6;\lsdpriority50 \lsdlocked0 Grid Table 5 Dark Accent 6;\lsdpriority51 \lsdlocked0 Grid Table 6 Colorful Accent 6;\lsdpriority52 \lsdlocked0 Grid Table 7 Colorful Accent 6; 341 | \lsdpriority46 \lsdlocked0 List Table 1 Light;\lsdpriority47 \lsdlocked0 List Table 2;\lsdpriority48 \lsdlocked0 List Table 3;\lsdpriority49 \lsdlocked0 List Table 4;\lsdpriority50 \lsdlocked0 List Table 5 Dark; 342 | \lsdpriority51 \lsdlocked0 List Table 6 Colorful;\lsdpriority52 \lsdlocked0 List Table 7 Colorful;\lsdpriority46 \lsdlocked0 List Table 1 Light Accent 1;\lsdpriority47 \lsdlocked0 List Table 2 Accent 1;\lsdpriority48 \lsdlocked0 List Table 3 Accent 1; 343 | \lsdpriority49 \lsdlocked0 List Table 4 Accent 1;\lsdpriority50 \lsdlocked0 List Table 5 Dark Accent 1;\lsdpriority51 \lsdlocked0 List Table 6 Colorful Accent 1;\lsdpriority52 \lsdlocked0 List Table 7 Colorful Accent 1; 344 | \lsdpriority46 \lsdlocked0 List Table 1 Light Accent 2;\lsdpriority47 \lsdlocked0 List Table 2 Accent 2;\lsdpriority48 \lsdlocked0 List Table 3 Accent 2;\lsdpriority49 \lsdlocked0 List Table 4 Accent 2; 345 | \lsdpriority50 \lsdlocked0 List Table 5 Dark Accent 2;\lsdpriority51 \lsdlocked0 List Table 6 Colorful Accent 2;\lsdpriority52 \lsdlocked0 List Table 7 Colorful Accent 2;\lsdpriority46 \lsdlocked0 List Table 1 Light Accent 3; 346 | \lsdpriority47 \lsdlocked0 List Table 2 Accent 3;\lsdpriority48 \lsdlocked0 List Table 3 Accent 3;\lsdpriority49 \lsdlocked0 List Table 4 Accent 3;\lsdpriority50 \lsdlocked0 List Table 5 Dark Accent 3; 347 | \lsdpriority51 \lsdlocked0 List Table 6 Colorful Accent 3;\lsdpriority52 \lsdlocked0 List Table 7 Colorful Accent 3;\lsdpriority46 \lsdlocked0 List Table 1 Light Accent 4;\lsdpriority47 \lsdlocked0 List Table 2 Accent 4; 348 | \lsdpriority48 \lsdlocked0 List Table 3 Accent 4;\lsdpriority49 \lsdlocked0 List Table 4 Accent 4;\lsdpriority50 \lsdlocked0 List Table 5 Dark Accent 4;\lsdpriority51 \lsdlocked0 List Table 6 Colorful Accent 4; 349 | \lsdpriority52 \lsdlocked0 List Table 7 Colorful Accent 4;\lsdpriority46 \lsdlocked0 List Table 1 Light Accent 5;\lsdpriority47 \lsdlocked0 List Table 2 Accent 5;\lsdpriority48 \lsdlocked0 List Table 3 Accent 5; 350 | \lsdpriority49 \lsdlocked0 List Table 4 Accent 5;\lsdpriority50 \lsdlocked0 List Table 5 Dark Accent 5;\lsdpriority51 \lsdlocked0 List Table 6 Colorful Accent 5;\lsdpriority52 \lsdlocked0 List Table 7 Colorful Accent 5; 351 | \lsdpriority46 \lsdlocked0 List Table 1 Light Accent 6;\lsdpriority47 \lsdlocked0 List Table 2 Accent 6;\lsdpriority48 \lsdlocked0 List Table 3 Accent 6;\lsdpriority49 \lsdlocked0 List Table 4 Accent 6; 352 | \lsdpriority50 \lsdlocked0 List Table 5 Dark Accent 6;\lsdpriority51 \lsdlocked0 List Table 6 Colorful Accent 6;\lsdpriority52 \lsdlocked0 List Table 7 Colorful Accent 6;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Mention; 353 | \lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Smart Hyperlink;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Hashtag;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Unresolved Mention;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Smart Link;}}{\*\datastore }} --------------------------------------------------------------------------------