Download Activate.ps1 from gulle1155/Scripts: direct link, hf CLI and curl.
- Browser
- Download file 24.2 kB
-
https://huggingface.co/spaces/gulle1155/Scripts/resolve/main/Activate.ps1
- Command line
-
hf download hf://spaces/gulle1155/Scripts/Activate.ps1
-
curl -L -o Activate.ps1 https://huggingface.co/spaces/gulle1155/Scripts/resolve/main/Activate.ps1
24.2 kB
| <# | |
| .Synopsis | |
| Activate a Python virtual environment for the current PowerShell session. | |
| .Description | |
| Pushes the python executable for a virtual environment to the front of the | |
| $Env:PATH environment variable and sets the prompt to signify that you are | |
| in a Python virtual environment. Makes use of the command line switches as | |
| well as the `pyvenv.cfg` file values present in the virtual environment. | |
| .Parameter VenvDir | |
| Path to the directory that contains the virtual environment to activate. The | |
| default value for this is the parent of the directory that the Activate.ps1 | |
| script is located within. | |
| .Parameter Prompt | |
| The prompt prefix to display when this virtual environment is activated. By | |
| default, this prompt is the name of the virtual environment folder (VenvDir) | |
| surrounded by parentheses and followed by a single space (ie. '(.venv) '). | |
| .Example | |
| Activate.ps1 | |
| Activates the Python virtual environment that contains the Activate.ps1 script. | |
| .Example | |
| Activate.ps1 -Verbose | |
| Activates the Python virtual environment that contains the Activate.ps1 script, | |
| and shows extra information about the activation as it executes. | |
| .Example | |
| Activate.ps1 -VenvDir C:\Users\MyUser\Common\.venv | |
| Activates the Python virtual environment located in the specified location. | |
| .Example | |
| Activate.ps1 -Prompt "MyPython" | |
| Activates the Python virtual environment that contains the Activate.ps1 script, | |
| and prefixes the current prompt with the specified string (surrounded in | |
| parentheses) while the virtual environment is active. | |
| .Notes | |
| On Windows, it may be required to enable this Activate.ps1 script by setting the | |
| execution policy for the user. You can do this by issuing the following PowerShell | |
| command: | |
| PS C:\> Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser | |
| For more information on Execution Policies: | |
| https://go.microsoft.com/fwlink/?LinkID=135170 | |
| #> | |
| Param( | |
| [Parameter(Mandatory = $false)] | |
| [String] | |
| $VenvDir, | |
| [Parameter(Mandatory = $false)] | |
| [String] | |
| $Prompt | |
| ) | |
| <# Function declarations --------------------------------------------------- #> | |
| <# | |
| .Synopsis | |
| Remove all shell session elements added by the Activate script, including the | |
| addition of the virtual environment's Python executable from the beginning of | |
| the PATH variable. | |
| .Parameter NonDestructive | |
| If present, do not remove this function from the global namespace for the | |
| session. | |
| #> | |
| function global:deactivate ([switch]$NonDestructive) { | |
| # Revert to original values | |
| # The prior prompt: | |
| if (Test-Path -Path Function:_OLD_VIRTUAL_PROMPT) { | |
| Copy-Item -Path Function:_OLD_VIRTUAL_PROMPT -Destination Function:prompt | |
| Remove-Item -Path Function:_OLD_VIRTUAL_PROMPT | |
| } | |
| # The prior PYTHONHOME: | |
| if (Test-Path -Path Env:_OLD_VIRTUAL_PYTHONHOME) { | |
| Copy-Item -Path Env:_OLD_VIRTUAL_PYTHONHOME -Destination Env:PYTHONHOME | |
| Remove-Item -Path Env:_OLD_VIRTUAL_PYTHONHOME | |
| } | |
| # The prior PATH: | |
| if (Test-Path -Path Env:_OLD_VIRTUAL_PATH) { | |
| Copy-Item -Path Env:_OLD_VIRTUAL_PATH -Destination Env:PATH | |
| Remove-Item -Path Env:_OLD_VIRTUAL_PATH | |
| } | |
| # Just remove the VIRTUAL_ENV altogether: | |
| if (Test-Path -Path Env:VIRTUAL_ENV) { | |
| Remove-Item -Path env:VIRTUAL_ENV | |
| } | |
| # Just remove VIRTUAL_ENV_PROMPT altogether. | |
| if (Test-Path -Path Env:VIRTUAL_ENV_PROMPT) { | |
| Remove-Item -Path env:VIRTUAL_ENV_PROMPT | |
| } | |
| # Just remove the _PYTHON_VENV_PROMPT_PREFIX altogether: | |
| if (Get-Variable -Name "_PYTHON_VENV_PROMPT_PREFIX" -ErrorAction SilentlyContinue) { | |
| Remove-Variable -Name _PYTHON_VENV_PROMPT_PREFIX -Scope Global -Force | |
| } | |
| # Leave deactivate function in the global namespace if requested: | |
| if (-not $NonDestructive) { | |
| Remove-Item -Path function:deactivate | |
| } | |
| } | |
| <# | |
| .Description | |
| Get-PyVenvConfig parses the values from the pyvenv.cfg file located in the | |
| given folder, and returns them in a map. | |
| For each line in the pyvenv.cfg file, if that line can be parsed into exactly | |
| two strings separated by `=` (with any amount of whitespace surrounding the =) | |
| then it is considered a `key = value` line. The left hand string is the key, | |
| the right hand is the value. | |
| If the value starts with a `'` or a `"` then the first and last character is | |
| stripped from the value before being captured. | |
| .Parameter ConfigDir | |
| Path to the directory that contains the `pyvenv.cfg` file. | |
| #> | |
| function Get-PyVenvConfig( | |
| [String] | |
| $ConfigDir | |
| ) { | |
| Write-Verbose "Given ConfigDir=$ConfigDir, obtain values in pyvenv.cfg" | |
| # Ensure the file exists, and issue a warning if it doesn't (but still allow the function to continue). | |
| $pyvenvConfigPath = Join-Path -Resolve -Path $ConfigDir -ChildPath 'pyvenv.cfg' -ErrorAction Continue | |
| # An empty map will be returned if no config file is found. | |
| $pyvenvConfig = @{ } | |
| if ($pyvenvConfigPath) { | |
| Write-Verbose "File exists, parse `key = value` lines" | |
| $pyvenvConfigContent = Get-Content -Path $pyvenvConfigPath | |
| $pyvenvConfigContent | ForEach-Object { | |
| $keyval = $PSItem -split "\s*=\s*", 2 | |
| if ($keyval[0] -and $keyval[1]) { | |
| $val = $keyval[1] | |
| # Remove extraneous quotations around a string value. | |
| if ("'""".Contains($val.Substring(0, 1))) { | |
| $val = $val.Substring(1, $val.Length - 2) | |
| } | |
| $pyvenvConfig[$keyval[0]] = $val | |
| Write-Verbose "Adding Key: '$($keyval[0])'='$val'" | |
| } | |
| } | |
| } | |
| return $pyvenvConfig | |
| } | |
| <# Begin Activate script --------------------------------------------------- #> | |
| # Determine the containing directory of this script | |
| $VenvExecPath = Split-Path -Parent $MyInvocation.MyCommand.Definition | |
| $VenvExecDir = Get-Item -Path $VenvExecPath | |
| Write-Verbose "Activation script is located in path: '$VenvExecPath'" | |
| Write-Verbose "VenvExecDir Fullname: '$($VenvExecDir.FullName)" | |
| Write-Verbose "VenvExecDir Name: '$($VenvExecDir.Name)" | |
| # Set values required in priority: CmdLine, ConfigFile, Default | |
| # First, get the location of the virtual environment, it might not be | |
| # VenvExecDir if specified on the command line. | |
| if ($VenvDir) { | |
| Write-Verbose "VenvDir given as parameter, using '$VenvDir' to determine values" | |
| } | |
| else { | |
| Write-Verbose "VenvDir not given as a parameter, using parent directory name as VenvDir." | |
| $VenvDir = $VenvExecDir.Parent.FullName.TrimEnd("\\/") | |
| Write-Verbose "VenvDir=$VenvDir" | |
| } | |
| # Next, read the `pyvenv.cfg` file to determine any required value such | |
| # as `prompt`. | |
| $pyvenvCfg = Get-PyVenvConfig -ConfigDir $VenvDir | |
| # Next, set the prompt from the command line, or the config file, or | |
| # just use the name of the virtual environment folder. | |
| if ($Prompt) { | |
| Write-Verbose "Prompt specified as argument, using '$Prompt'" | |
| } | |
| else { | |
| Write-Verbose "Prompt not specified as argument to script, checking pyvenv.cfg value" | |
| if ($pyvenvCfg -and $pyvenvCfg['prompt']) { | |
| Write-Verbose " Setting based on value in pyvenv.cfg='$($pyvenvCfg['prompt'])'" | |
| $Prompt = $pyvenvCfg['prompt']; | |
| } | |
| else { | |
| Write-Verbose " Setting prompt based on parent's directory's name. (Is the directory name passed to venv module when creating the virtual environment)" | |
| Write-Verbose " Got leaf-name of $VenvDir='$(Split-Path -Path $venvDir -Leaf)'" | |
| $Prompt = Split-Path -Path $venvDir -Leaf | |
| } | |
| } | |
| Write-Verbose "Prompt = '$Prompt'" | |
| Write-Verbose "VenvDir='$VenvDir'" | |
| # Deactivate any currently active virtual environment, but leave the | |
| # deactivate function in place. | |
| deactivate -nondestructive | |
| # Now set the environment variable VIRTUAL_ENV, used by many tools to determine | |
| # that there is an activated venv. | |
| $env:VIRTUAL_ENV = $VenvDir | |
| if (-not $Env:VIRTUAL_ENV_DISABLE_PROMPT) { | |
| Write-Verbose "Setting prompt to '$Prompt'" | |
| # Set the prompt to include the env name | |
| # Make sure _OLD_VIRTUAL_PROMPT is global | |
| function global:_OLD_VIRTUAL_PROMPT { "" } | |
| Copy-Item -Path function:prompt -Destination function:_OLD_VIRTUAL_PROMPT | |
| New-Variable -Name _PYTHON_VENV_PROMPT_PREFIX -Description "Python virtual environment prompt prefix" -Scope Global -Option ReadOnly -Visibility Public -Value $Prompt | |
| function global:prompt { | |
| Write-Host -NoNewline -ForegroundColor Green "($_PYTHON_VENV_PROMPT_PREFIX) " | |
| _OLD_VIRTUAL_PROMPT | |
| } | |
| $env:VIRTUAL_ENV_PROMPT = $Prompt | |
| } | |
| # Clear PYTHONHOME | |
| if (Test-Path -Path Env:PYTHONHOME) { | |
| Copy-Item -Path Env:PYTHONHOME -Destination Env:_OLD_VIRTUAL_PYTHONHOME | |
| Remove-Item -Path Env:PYTHONHOME | |
| } | |
| # Add the venv to the PATH | |
| Copy-Item -Path Env:PATH -Destination Env:_OLD_VIRTUAL_PATH | |
| $Env:PATH = "$VenvExecDir$([System.IO.Path]::PathSeparator)$Env:PATH" | |
| # SIG # Begin signature block | |
| # MIIptAYJKoZIhvcNAQcCoIIppTCCKaECAQExDzANBglghkgBZQMEAgEFADB5Bgor | |
| # BgEEAYI3AgEEoGswaTA0BgorBgEEAYI3AgEeMCYCAwEAAAQQH8w7YFlLCE63JNLG | |
| # KX7zUQIBAAIBAAIBAAIBAAIBADAxMA0GCWCGSAFlAwQCAQUABCBnL745ElCYk8vk | |
| # dBtMuQhLeWJ3ZGfzKW4DHCYzAn+QB6CCDi8wggawMIIEmKADAgECAhAIrUCyYNKc | |
| # TJ9ezam9k67ZMA0GCSqGSIb3DQEBDAUAMGIxCzAJBgNVBAYTAlVTMRUwEwYDVQQK | |
| # EwxEaWdpQ2VydCBJbmMxGTAXBgNVBAsTEHd3dy5kaWdpY2VydC5jb20xITAfBgNV | |
| # BAMTGERpZ2lDZXJ0IFRydXN0ZWQgUm9vdCBHNDAeFw0yMTA0MjkwMDAwMDBaFw0z | |
| # NjA0MjgyMzU5NTlaMGkxCzAJBgNVBAYTAlVTMRcwFQYDVQQKEw5EaWdpQ2VydCwg | |
| # SW5jLjFBMD8GA1UEAxM4RGlnaUNlcnQgVHJ1c3RlZCBHNCBDb2RlIFNpZ25pbmcg | |
| # UlNBNDA5NiBTSEEzODQgMjAyMSBDQTEwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAw | |
| # ggIKAoICAQDVtC9C0CiteLdd1TlZG7GIQvUzjOs9gZdwxbvEhSYwn6SOaNhc9es0 | |
| # JAfhS0/TeEP0F9ce2vnS1WcaUk8OoVf8iJnBkcyBAz5NcCRks43iCH00fUyAVxJr | |
| # Q5qZ8sU7H/Lvy0daE6ZMswEgJfMQ04uy+wjwiuCdCcBlp/qYgEk1hz1RGeiQIXhF | |
| # LqGfLOEYwhrMxe6TSXBCMo/7xuoc82VokaJNTIIRSFJo3hC9FFdd6BgTZcV/sk+F | |
| # LEikVoQ11vkunKoAFdE3/hoGlMJ8yOobMubKwvSnowMOdKWvObarYBLj6Na59zHh | |
| # 3K3kGKDYwSNHR7OhD26jq22YBoMbt2pnLdK9RBqSEIGPsDsJ18ebMlrC/2pgVItJ | |
| # wZPt4bRc4G/rJvmM1bL5OBDm6s6R9b7T+2+TYTRcvJNFKIM2KmYoX7BzzosmJQay | |
| # g9Rc9hUZTO1i4F4z8ujo7AqnsAMrkbI2eb73rQgedaZlzLvjSFDzd5Ea/ttQokbI | |
| # YViY9XwCFjyDKK05huzUtw1T0PhH5nUwjewwk3YUpltLXXRhTT8SkXbev1jLchAp | |
| # QfDVxW0mdmgRQRNYmtwmKwH0iU1Z23jPgUo+QEdfyYFQc4UQIyFZYIpkVMHMIRro | |
| # OBl8ZhzNeDhFMJlP/2NPTLuqDQhTQXxYPUez+rbsjDIJAsxsPAxWEQIDAQABo4IB | |
| # WTCCAVUwEgYDVR0TAQH/BAgwBgEB/wIBADAdBgNVHQ4EFgQUaDfg67Y7+F8Rhvv+ | |
| # YXsIiGX0TkIwHwYDVR0jBBgwFoAU7NfjgtJxXWRM3y5nP+e6mK4cD08wDgYDVR0P | |
| # AQH/BAQDAgGGMBMGA1UdJQQMMAoGCCsGAQUFBwMDMHcGCCsGAQUFBwEBBGswaTAk | |
| # BggrBgEFBQcwAYYYaHR0cDovL29jc3AuZGlnaWNlcnQuY29tMEEGCCsGAQUFBzAC | |
| # hjVodHRwOi8vY2FjZXJ0cy5kaWdpY2VydC5jb20vRGlnaUNlcnRUcnVzdGVkUm9v | |
| # dEc0LmNydDBDBgNVHR8EPDA6MDigNqA0hjJodHRwOi8vY3JsMy5kaWdpY2VydC5j | |
| # b20vRGlnaUNlcnRUcnVzdGVkUm9vdEc0LmNybDAcBgNVHSAEFTATMAcGBWeBDAED | |
| # MAgGBmeBDAEEATANBgkqhkiG9w0BAQwFAAOCAgEAOiNEPY0Idu6PvDqZ01bgAhql | |
| # +Eg08yy25nRm95RysQDKr2wwJxMSnpBEn0v9nqN8JtU3vDpdSG2V1T9J9Ce7FoFF | |
| # UP2cvbaF4HZ+N3HLIvdaqpDP9ZNq4+sg0dVQeYiaiorBtr2hSBh+3NiAGhEZGM1h | |
| # mYFW9snjdufE5BtfQ/g+lP92OT2e1JnPSt0o618moZVYSNUa/tcnP/2Q0XaG3Ryw | |
| # YFzzDaju4ImhvTnhOE7abrs2nfvlIVNaw8rpavGiPttDuDPITzgUkpn13c5Ubdld | |
| # AhQfQDN8A+KVssIhdXNSy0bYxDQcoqVLjc1vdjcshT8azibpGL6QB7BDf5WIIIJw | |
| # 8MzK7/0pNVwfiThV9zeKiwmhywvpMRr/LhlcOXHhvpynCgbWJme3kuZOX956rEnP | |
| # LqR0kq3bPKSchh/jwVYbKyP/j7XqiHtwa+aguv06P0WmxOgWkVKLQcBIhEuWTatE | |
| # QOON8BUozu3xGFYHKi8QxAwIZDwzj64ojDzLj4gLDb879M4ee47vtevLt/B3E+bn | |
| # KD+sEq6lLyJsQfmCXBVmzGwOysWGw/YmMwwHS6DTBwJqakAwSEs0qFEgu60bhQji | |
| # WQ1tygVQK+pKHJ6l/aCnHwZ05/LWUpD9r4VIIflXO7ScA+2GRfS0YW6/aOImYIbq | |
| # yK+p/pQd52MbOoZWeE4wggd3MIIFX6ADAgECAhAHHxQbizANJfMU6yMM0NHdMA0G | |
| # CSqGSIb3DQEBCwUAMGkxCzAJBgNVBAYTAlVTMRcwFQYDVQQKEw5EaWdpQ2VydCwg | |
| # SW5jLjFBMD8GA1UEAxM4RGlnaUNlcnQgVHJ1c3RlZCBHNCBDb2RlIFNpZ25pbmcg | |
| # UlNBNDA5NiBTSEEzODQgMjAyMSBDQTEwHhcNMjIwMTE3MDAwMDAwWhcNMjUwMTE1 | |
| # MjM1OTU5WjB8MQswCQYDVQQGEwJVUzEPMA0GA1UECBMGT3JlZ29uMRIwEAYDVQQH | |
| # EwlCZWF2ZXJ0b24xIzAhBgNVBAoTGlB5dGhvbiBTb2Z0d2FyZSBGb3VuZGF0aW9u | |
| # MSMwIQYDVQQDExpQeXRob24gU29mdHdhcmUgRm91bmRhdGlvbjCCAiIwDQYJKoZI | |
| # hvcNAQEBBQADggIPADCCAgoCggIBAKgc0BTT+iKbtK6f2mr9pNMUTcAJxKdsuOiS | |
| # YgDFfwhjQy89koM7uP+QV/gwx8MzEt3c9tLJvDccVWQ8H7mVsk/K+X+IufBLCgUi | |
| # 0GGAZUegEAeRlSXxxhYScr818ma8EvGIZdiSOhqjYc4KnfgfIS4RLtZSrDFG2tN1 | |
| # 6yS8skFa3IHyvWdbD9PvZ4iYNAS4pjYDRjT/9uzPZ4Pan+53xZIcDgjiTwOh8VGu | |
| # ppxcia6a7xCyKoOAGjvCyQsj5223v1/Ig7Dp9mGI+nh1E3IwmyTIIuVHyK6Lqu35 | |
| # 2diDY+iCMpk9ZanmSjmB+GMVs+H/gOiofjjtf6oz0ki3rb7sQ8fTnonIL9dyGTJ0 | |
| # ZFYKeb6BLA66d2GALwxZhLe5WH4Np9HcyXHACkppsE6ynYjTOd7+jN1PRJahN1oE | |
| # RzTzEiV6nCO1M3U1HbPTGyq52IMFSBM2/07WTJSbOeXjvYR7aUxK9/ZkJiacl2iZ | |
| # I7IWe7JKhHohqKuceQNyOzxTakLcRkzynvIrk33R9YVqtB4L6wtFxhUjvDnQg16x | |
| # ot2KVPdfyPAWd81wtZADmrUtsZ9qG79x1hBdyOl4vUtVPECuyhCxaw+faVjumapP | |
| # Unwo8ygflJJ74J+BYxf6UuD7m8yzsfXWkdv52DjL74TxzuFTLHPyARWCSCAbzn3Z | |
| # Ily+qIqDAgMBAAGjggIGMIICAjAfBgNVHSMEGDAWgBRoN+Drtjv4XxGG+/5hewiI | |
| # ZfROQjAdBgNVHQ4EFgQUt/1Teh2XDuUj2WW3siYWJgkZHA8wDgYDVR0PAQH/BAQD | |
| # AgeAMBMGA1UdJQQMMAoGCCsGAQUFBwMDMIG1BgNVHR8Ega0wgaowU6BRoE+GTWh0 | |
| # dHA6Ly9jcmwzLmRpZ2ljZXJ0LmNvbS9EaWdpQ2VydFRydXN0ZWRHNENvZGVTaWdu | |
| # aW5nUlNBNDA5NlNIQTM4NDIwMjFDQTEuY3JsMFOgUaBPhk1odHRwOi8vY3JsNC5k | |
| # aWdpY2VydC5jb20vRGlnaUNlcnRUcnVzdGVkRzRDb2RlU2lnbmluZ1JTQTQwOTZT | |
| # SEEzODQyMDIxQ0ExLmNybDA+BgNVHSAENzA1MDMGBmeBDAEEATApMCcGCCsGAQUF | |
| # BwIBFhtodHRwOi8vd3d3LmRpZ2ljZXJ0LmNvbS9DUFMwgZQGCCsGAQUFBwEBBIGH | |
| # MIGEMCQGCCsGAQUFBzABhhhodHRwOi8vb2NzcC5kaWdpY2VydC5jb20wXAYIKwYB | |
| # BQUHMAKGUGh0dHA6Ly9jYWNlcnRzLmRpZ2ljZXJ0LmNvbS9EaWdpQ2VydFRydXN0 | |
| # ZWRHNENvZGVTaWduaW5nUlNBNDA5NlNIQTM4NDIwMjFDQTEuY3J0MAwGA1UdEwEB | |
| # /wQCMAAwDQYJKoZIhvcNAQELBQADggIBABxv4AeV/5ltkELHSC63fXAFYS5tadcW | |
| # TiNc2rskrNLrfH1Ns0vgSZFoQxYBFKI159E8oQQ1SKbTEubZ/B9kmHPhprHya08+ | |
| # VVzxC88pOEvz68nA82oEM09584aILqYmj8Pj7h/kmZNzuEL7WiwFa/U1hX+XiWfL | |
| # IJQsAHBla0i7QRF2de8/VSF0XXFa2kBQ6aiTsiLyKPNbaNtbcucaUdn6vVUS5izW | |
| # OXM95BSkFSKdE45Oq3FForNJXjBvSCpwcP36WklaHL+aHu1upIhCTUkzTHMh8b86 | |
| # WmjRUqbrnvdyR2ydI5l1OqcMBjkpPpIV6wcc+KY/RH2xvVuuoHjlUjwq2bHiNoX+ | |
| # W1scCpnA8YTs2d50jDHUgwUo+ciwpffH0Riq132NFmrH3r67VaN3TuBxjI8SIZM5 | |
| # 8WEDkbeoriDk3hxU8ZWV7b8AW6oyVBGfM06UgkfMb58h+tJPrFx8VI/WLq1dTqMf | |
| # ZOm5cuclMnUHs2uqrRNtnV8UfidPBL4ZHkTcClQbCoz0UbLhkiDvIS00Dn+BBcxw | |
| # /TKqVL4Oaz3bkMSsM46LciTeucHY9ExRVt3zy7i149sd+F4QozPqn7FrSVHXmem3 | |
| # r7bjyHTxOgqxRCVa18Vtx7P/8bYSBeS+WHCKcliFCecspusCDSlnRUjZwyPdP0VH | |
| # xaZg2unjHY3rMYIa2zCCGtcCAQEwfTBpMQswCQYDVQQGEwJVUzEXMBUGA1UEChMO | |
| # RGlnaUNlcnQsIEluYy4xQTA/BgNVBAMTOERpZ2lDZXJ0IFRydXN0ZWQgRzQgQ29k | |
| # ZSBTaWduaW5nIFJTQTQwOTYgU0hBMzg0IDIwMjEgQ0ExAhAHHxQbizANJfMU6yMM | |
| # 0NHdMA0GCWCGSAFlAwQCAQUAoIHEMBkGCSqGSIb3DQEJAzEMBgorBgEEAYI3AgEE | |
| # MBwGCisGAQQBgjcCAQsxDjAMBgorBgEEAYI3AgEVMC8GCSqGSIb3DQEJBDEiBCBn | |
| # AZ6P7YvTwq0fbF62o7E75R0LxsW5OtyYiFESQckLhjBYBgorBgEEAYI3AgEMMUow | |
| # SKBGgEQAQgB1AGkAbAB0ADoAIABSAGUAbABlAGEAcwBlAF8AdgAzAC4AMQAwAC4A | |
| # NgBfADIAMAAyADIAMAA4ADAAMQAuADAAMTANBgkqhkiG9w0BAQEFAASCAgAcCpWx | |
| # 6WbaIub3/y00WFRblGUQGlC7lg3fFr9fmUI46G6NtMyV82uGyZ/0WUyE3vuZVkPj | |
| # eX4L1bVObYFHBNxS+qc/MDCezWD8mrcMB0mo1xER4A5ej8Qz1FW3JpWjeekv2N8U | |
| # wAeD78EDS32IEWNkkbzjf6gyhBI8DVym3NGpgQrNREte3PpACxjbCxczJw6E5IfS | |
| # A36nvnZMe5fonhBlXWgvN5ue1CXu2kSqxB2txqnpxB9aHBpJk2vVQWpReHIwFW9U | |
| # SvZCFpX1Bj2ZI+B07rAQXHiPO4KXl3d7q7Ae8mMWiixiVkcHbaVJnHsdyrSKjK1+ | |
| # ZhH/pmMC9sxE/AXGUywfuyU9WCvMfFIlE7rRLcHc+mpjWYphOCykgcDOugRATEgJ | |
| # 3PZr5urfxYVnNIe4guEbpe5oyGsNkoyokUOIElvMF23bQ8qdToJ6Ddk9rdoTOyn9 | |
| # dcI9v37nF5nh1Bo/kVaIF5QLPyc/SGZS2RKDflE1kTcphL/yAzr9Mdkzt3Vdf2/5 | |
| # 37yBj9Gjlfvxk/xUKftU2KllD0mPfpuih4PrQU66SNAMYI1OYBeO16wUAxU6KTol | |
| # tmjVO6WMVDLhWnJA7CT02Oj+ylmlgDU9OmcD1i6uIrH2k96IjrvMs8t18F5Htepu | |
| # QmQMrvALl0pJxav1h1f3JMMVj5kyXPMnM2k1dKGCF2gwghdkBgorBgEEAYI3AwMB | |
| # MYIXVDCCF1AGCSqGSIb3DQEHAqCCF0Ewghc9AgEDMQ8wDQYJYIZIAWUDBAIBBQAw | |
| # eAYLKoZIhvcNAQkQAQSgaQRnMGUCAQEGCWCGSAGG/WwHATAxMA0GCWCGSAFlAwQC | |
| # AQUABCAR6bvA1mFV01SoyM5FicPWxtcLdUNFsDd1yl/kKfo2AgIRAMMi1cn8X92a | |
| # OjGj9p1thjcYDzIwMjIwODAxMjE1ODU4WqCCEzEwggbGMIIErqADAgECAhAKekqI | |
| # nsmZQpAGYzhNhpedMA0GCSqGSIb3DQEBCwUAMGMxCzAJBgNVBAYTAlVTMRcwFQYD | |
| # VQQKEw5EaWdpQ2VydCwgSW5jLjE7MDkGA1UEAxMyRGlnaUNlcnQgVHJ1c3RlZCBH | |
| # NCBSU0E0MDk2IFNIQTI1NiBUaW1lU3RhbXBpbmcgQ0EwHhcNMjIwMzI5MDAwMDAw | |
| # WhcNMzMwMzE0MjM1OTU5WjBMMQswCQYDVQQGEwJVUzEXMBUGA1UEChMORGlnaUNl | |
| # cnQsIEluYy4xJDAiBgNVBAMTG0RpZ2lDZXJ0IFRpbWVzdGFtcCAyMDIyIC0gMjCC | |
| # AiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBALkqliOmXLxf1knwFYIY9DPu | |
| # zFxs4+AlLtIx5DxArvurxON4XX5cNur1JY1Do4HrOGP5PIhp3jzSMFENMQe6Rm7p | |
| # o0tI6IlBfw2y1vmE8Zg+C78KhBJxbKFiJgHTzsNs/aw7ftwqHKm9MMYW2Nq867Lx | |
| # g9GfzQnFuUFqRUIjQVr4YNNlLD5+Xr2Wp/D8sfT0KM9CeR87x5MHaGjlRDRSXw9Q | |
| # 3tRZLER0wDJHGVvimC6P0Mo//8ZnzzyTlU6E6XYYmJkRFMUrDKAz200kheiClOEv | |
| # A+5/hQLJhuHVGBS3BEXz4Di9or16cZjsFef9LuzSmwCKrB2NO4Bo/tBZmCbO4O2u | |
| # fyguwp7gC0vICNEyu4P6IzzZ/9KMu/dDI9/nw1oFYn5wLOUrsj1j6siugSBrQ4nI | |
| # fl+wGt0ZvZ90QQqvuY4J03ShL7BUdsGQT5TshmH/2xEvkgMwzjC3iw9dRLNDHSNQ | |
| # zZHXL537/M2xwafEDsTvQD4ZOgLUMalpoEn5deGb6GjkagyP6+SxIXuGZ1h+fx/o | |
| # K+QUshbWgaHK2jCQa+5vdcCwNiayCDv/vb5/bBMY38ZtpHlJrYt/YYcFaPfUcONC | |
| # leieu5tLsuK2QT3nr6caKMmtYbCgQRgZTu1Hm2GV7T4LYVrqPnqYklHNP8lE54CL | |
| # KUJy93my3YTqJ+7+fXprAgMBAAGjggGLMIIBhzAOBgNVHQ8BAf8EBAMCB4AwDAYD | |
| # VR0TAQH/BAIwADAWBgNVHSUBAf8EDDAKBggrBgEFBQcDCDAgBgNVHSAEGTAXMAgG | |
| # BmeBDAEEAjALBglghkgBhv1sBwEwHwYDVR0jBBgwFoAUuhbZbU2FL3MpdpovdYxq | |
| # II+eyG8wHQYDVR0OBBYEFI1kt4kh/lZYRIRhp+pvHDaP3a8NMFoGA1UdHwRTMFEw | |
| # T6BNoEuGSWh0dHA6Ly9jcmwzLmRpZ2ljZXJ0LmNvbS9EaWdpQ2VydFRydXN0ZWRH | |
| # NFJTQTQwOTZTSEEyNTZUaW1lU3RhbXBpbmdDQS5jcmwwgZAGCCsGAQUFBwEBBIGD | |
| # MIGAMCQGCCsGAQUFBzABhhhodHRwOi8vb2NzcC5kaWdpY2VydC5jb20wWAYIKwYB | |
| # BQUHMAKGTGh0dHA6Ly9jYWNlcnRzLmRpZ2ljZXJ0LmNvbS9EaWdpQ2VydFRydXN0 | |
| # ZWRHNFJTQTQwOTZTSEEyNTZUaW1lU3RhbXBpbmdDQS5jcnQwDQYJKoZIhvcNAQEL | |
| # BQADggIBAA0tI3Sm0fX46kuZPwHk9gzkrxad2bOMl4IpnENvAS2rOLVwEb+EGYs/ | |
| # XeWGT76TOt4qOVo5TtiEWaW8G5iq6Gzv0UhpGThbz4k5HXBw2U7fIyJs1d/2Wcuh | |
| # wupMdsqh3KErlribVakaa33R9QIJT4LWpXOIxJiA3+5JlbezzMWn7g7h7x44ip/v | |
| # EckxSli23zh8y/pc9+RTv24KfH7X3pjVKWWJD6KcwGX0ASJlx+pedKZbNZJQfPQX | |
| # podkTz5GiRZjIGvL8nvQNeNKcEiptucdYL0EIhUlcAZyqUQ7aUcR0+7px6A+TxC5 | |
| # MDbk86ppCaiLfmSiZZQR+24y8fW7OK3NwJMR1TJ4Sks3KkzzXNy2hcC7cDBVeNaY | |
| # /lRtf3GpSBp43UZ3Lht6wDOK+EoojBKoc88t+dMj8p4Z4A2UKKDr2xpRoJWCjihr | |
| # pM6ddt6pc6pIallDrl/q+A8GQp3fBmiW/iqgdFtjZt5rLLh4qk1wbfAs8QcVfjW0 | |
| # 5rUMopml1xVrNQ6F1uAszOAMJLh8UgsemXzvyMjFjFhpr6s94c/MfRWuFL+Kcd/K | |
| # l7HYR+ocheBFThIcFClYzG/Tf8u+wQ5KbyCcrtlzMlkI5y2SoRoR/jKYpl0rl+CL | |
| # 05zMbbUNrkdjOEcXW28T2moQbh9Jt0RbtAgKh1pZBHYRoad3AhMcMIIGrjCCBJag | |
| # AwIBAgIQBzY3tyRUfNhHrP0oZipeWzANBgkqhkiG9w0BAQsFADBiMQswCQYDVQQG | |
| # EwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3d3cuZGlnaWNl | |
| # cnQuY29tMSEwHwYDVQQDExhEaWdpQ2VydCBUcnVzdGVkIFJvb3QgRzQwHhcNMjIw | |
| # MzIzMDAwMDAwWhcNMzcwMzIyMjM1OTU5WjBjMQswCQYDVQQGEwJVUzEXMBUGA1UE | |
| # ChMORGlnaUNlcnQsIEluYy4xOzA5BgNVBAMTMkRpZ2lDZXJ0IFRydXN0ZWQgRzQg | |
| # UlNBNDA5NiBTSEEyNTYgVGltZVN0YW1waW5nIENBMIICIjANBgkqhkiG9w0BAQEF | |
| # AAOCAg8AMIICCgKCAgEAxoY1BkmzwT1ySVFVxyUDxPKRN6mXUaHW0oPRnkyibaCw | |
| # zIP5WvYRoUQVQl+kiPNo+n3znIkLf50fng8zH1ATCyZzlm34V6gCff1DtITaEfFz | |
| # sbPuK4CEiiIY3+vaPcQXf6sZKz5C3GeO6lE98NZW1OcoLevTsbV15x8GZY2UKdPZ | |
| # 7Gnf2ZCHRgB720RBidx8ald68Dd5n12sy+iEZLRS8nZH92GDGd1ftFQLIWhuNyG7 | |
| # QKxfst5Kfc71ORJn7w6lY2zkpsUdzTYNXNXmG6jBZHRAp8ByxbpOH7G1WE15/teP | |
| # c5OsLDnipUjW8LAxE6lXKZYnLvWHpo9OdhVVJnCYJn+gGkcgQ+NDY4B7dW4nJZCY | |
| # OjgRs/b2nuY7W+yB3iIU2YIqx5K/oN7jPqJz+ucfWmyU8lKVEStYdEAoq3NDzt9K | |
| # oRxrOMUp88qqlnNCaJ+2RrOdOqPVA+C/8KI8ykLcGEh/FDTP0kyr75s9/g64ZCr6 | |
| # dSgkQe1CvwWcZklSUPRR8zZJTYsg0ixXNXkrqPNFYLwjjVj33GHek/45wPmyMKVM | |
| # 1+mYSlg+0wOI/rOP015LdhJRk8mMDDtbiiKowSYI+RQQEgN9XyO7ZONj4KbhPvbC | |
| # dLI/Hgl27KtdRnXiYKNYCQEoAA6EVO7O6V3IXjASvUaetdN2udIOa5kM0jO0zbEC | |
| # AwEAAaOCAV0wggFZMBIGA1UdEwEB/wQIMAYBAf8CAQAwHQYDVR0OBBYEFLoW2W1N | |
| # hS9zKXaaL3WMaiCPnshvMB8GA1UdIwQYMBaAFOzX44LScV1kTN8uZz/nupiuHA9P | |
| # MA4GA1UdDwEB/wQEAwIBhjATBgNVHSUEDDAKBggrBgEFBQcDCDB3BggrBgEFBQcB | |
| # AQRrMGkwJAYIKwYBBQUHMAGGGGh0dHA6Ly9vY3NwLmRpZ2ljZXJ0LmNvbTBBBggr | |
| # BgEFBQcwAoY1aHR0cDovL2NhY2VydHMuZGlnaWNlcnQuY29tL0RpZ2lDZXJ0VHJ1 | |
| # c3RlZFJvb3RHNC5jcnQwQwYDVR0fBDwwOjA4oDagNIYyaHR0cDovL2NybDMuZGln | |
| # aWNlcnQuY29tL0RpZ2lDZXJ0VHJ1c3RlZFJvb3RHNC5jcmwwIAYDVR0gBBkwFzAI | |
| # BgZngQwBBAIwCwYJYIZIAYb9bAcBMA0GCSqGSIb3DQEBCwUAA4ICAQB9WY7Ak7Zv | |
| # mKlEIgF+ZtbYIULhsBguEE0TzzBTzr8Y+8dQXeJLKftwig2qKWn8acHPHQfpPmDI | |
| # 2AvlXFvXbYf6hCAlNDFnzbYSlm/EUExiHQwIgqgWvalWzxVzjQEiJc6VaT9Hd/ty | |
| # dBTX/6tPiix6q4XNQ1/tYLaqT5Fmniye4Iqs5f2MvGQmh2ySvZ180HAKfO+ovHVP | |
| # ulr3qRCyXen/KFSJ8NWKcXZl2szwcqMj+sAngkSumScbqyQeJsG33irr9p6xeZmB | |
| # o1aGqwpFyd/EjaDnmPv7pp1yr8THwcFqcdnGE4AJxLafzYeHJLtPo0m5d2aR8XKc | |
| # 6UsCUqc3fpNTrDsdCEkPlM05et3/JWOZJyw9P2un8WbDQc1PtkCbISFA0LcTJM3c | |
| # HXg65J6t5TRxktcma+Q4c6umAU+9Pzt4rUyt+8SVe+0KXzM5h0F4ejjpnOHdI/0d | |
| # KNPH+ejxmF/7K9h+8kaddSweJywm228Vex4Ziza4k9Tm8heZWcpw8De/mADfIBZP | |
| # J/tgZxahZrrdVcA6KYawmKAr7ZVBtzrVFZgxtGIJDwq9gdkT/r+k0fNX2bwE+oLe | |
| # Mt8EifAAzV3C+dAjfwAL5HYCJtnwZXZCpimHCUcr5n8apIUP/JiW9lVUKx+A+sDy | |
| # Divl1vupL0QVSucTDh3bNzgaoSv27dZ8/DCCBbEwggSZoAMCAQICEAEkCvseOAuK | |
| # FvFLcZ3008AwDQYJKoZIhvcNAQEMBQAwZTELMAkGA1UEBhMCVVMxFTATBgNVBAoT | |
| # DERpZ2lDZXJ0IEluYzEZMBcGA1UECxMQd3d3LmRpZ2ljZXJ0LmNvbTEkMCIGA1UE | |
| # AxMbRGlnaUNlcnQgQXNzdXJlZCBJRCBSb290IENBMB4XDTIyMDYwOTAwMDAwMFoX | |
| # DTMxMTEwOTIzNTk1OVowYjELMAkGA1UEBhMCVVMxFTATBgNVBAoTDERpZ2lDZXJ0 | |
| # IEluYzEZMBcGA1UECxMQd3d3LmRpZ2ljZXJ0LmNvbTEhMB8GA1UEAxMYRGlnaUNl | |
| # cnQgVHJ1c3RlZCBSb290IEc0MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKC | |
| # AgEAv+aQc2jeu+RdSjwwIjBpM+zCpyUuySE98orYWcLhKac9WKt2ms2uexuEDcQw | |
| # H/MbpDgW61bGl20dq7J58soR0uRf1gU8Ug9SH8aeFaV+vp+pVxZZVXKvaJNwwrK6 | |
| # dZlqczKU0RBEEC7fgvMHhOZ0O21x4i0MG+4g1ckgHWMpLc7sXk7Ik/ghYZs06wXG | |
| # XuxbGrzryc/NrDRAX7F6Zu53yEioZldXn1RYjgwrt0+nMNlW7sp7XeOtyU9e5TXn | |
| # Mcvak17cjo+A2raRmECQecN4x7axxLVqGDgDEI3Y1DekLgV9iPWCPhCRcKtVgkEy | |
| # 19sEcypukQF8IUzUvK4bA3VdeGbZOjFEmjNAvwjXWkmkwuapoGfdpCe8oU85tRFY | |
| # F/ckXEaPZPfBaYh2mHY9WV1CdoeJl2l6SPDgohIbZpp0yt5LHucOY67m1O+Skjqe | |
| # PdwA5EUlibaaRBkrfsCUtNJhbesz2cXfSwQAzH0clcOP9yGyshG3u3/y1YxwLEFg | |
| # qrFjGESVGnZifvaAsPvoZKYz0YkH4b235kOkGLimdwHhD5QMIR2yVCkliWzlDlJR | |
| # R3S+Jqy2QXXeeqxfjT/JvNNBERJb5RBQ6zHFynIWIgnffEx1P2PsIV/EIFFrb7Gr | |
| # hotPwtZFX50g/KEexcCPorF+CiaZ9eRpL5gdLfXZqbId5RsCAwEAAaOCAV4wggFa | |
| # MA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFOzX44LScV1kTN8uZz/nupiuHA9P | |
| # MB8GA1UdIwQYMBaAFEXroq/0ksuCMS1Ri6enIZ3zbcgPMA4GA1UdDwEB/wQEAwIB | |
| # hjATBgNVHSUEDDAKBggrBgEFBQcDCDB5BggrBgEFBQcBAQRtMGswJAYIKwYBBQUH | |
| # MAGGGGh0dHA6Ly9vY3NwLmRpZ2ljZXJ0LmNvbTBDBggrBgEFBQcwAoY3aHR0cDov | |
| # L2NhY2VydHMuZGlnaWNlcnQuY29tL0RpZ2lDZXJ0QXNzdXJlZElEUm9vdENBLmNy | |
| # dDBFBgNVHR8EPjA8MDqgOKA2hjRodHRwOi8vY3JsMy5kaWdpY2VydC5jb20vRGln | |
| # aUNlcnRBc3N1cmVkSURSb290Q0EuY3JsMCAGA1UdIAQZMBcwCAYGZ4EMAQQCMAsG | |
| # CWCGSAGG/WwHATANBgkqhkiG9w0BAQwFAAOCAQEAmhYCpQHvgfsNtFiyeK2oIxnZ | |
| # czfaYJ5R18v4L0C5ox98QE4zPpA854kBdYXoYnsdVuBxut5exje8eVxiAE34SXpR | |
| # TQYy88XSAConIOqJLhU54Cw++HV8LIJBYTUPI9DtNZXSiJUpQ8vgplgQfFOOn0XJ | |
| # IDcUwO0Zun53OdJUlsemEd80M/Z1UkJLHJ2NltWVbEcSFCRfJkH6Gka93rDlkUcD | |
| # rBgIy8vbZol/K5xlv743Tr4t851Kw8zMR17IlZWt0cu7KgYg+T9y6jbrRXKSeil7 | |
| # FAM8+03WSHF6EBGKCHTNbBsEXNKKlQN2UVBT1i73SkbDrhAscUywh7YnN0RgRDGC | |
| # A3YwggNyAgEBMHcwYzELMAkGA1UEBhMCVVMxFzAVBgNVBAoTDkRpZ2lDZXJ0LCBJ | |
| # bmMuMTswOQYDVQQDEzJEaWdpQ2VydCBUcnVzdGVkIEc0IFJTQTQwOTYgU0hBMjU2 | |
| # IFRpbWVTdGFtcGluZyBDQQIQCnpKiJ7JmUKQBmM4TYaXnTANBglghkgBZQMEAgEF | |
| # AKCB0TAaBgkqhkiG9w0BCQMxDQYLKoZIhvcNAQkQAQQwHAYJKoZIhvcNAQkFMQ8X | |
| # DTIyMDgwMTIxNTg1OFowKwYLKoZIhvcNAQkQAgwxHDAaMBgwFgQUhQjzhlFcs9MH | |
| # fba0t8B/G0peQd4wLwYJKoZIhvcNAQkEMSIEIHyNQTONtnHz/YAa8LGmlY6N6PQ3 | |
| # 7DylBqoN5FA0dRnUMDcGCyqGSIb3DQEJEAIvMSgwJjAkMCIEIJ2mkBXDScbBiXhF | |
| # ujWCrXDIj6QpO9tqvpwr0lOSeeY7MA0GCSqGSIb3DQEBAQUABIICAKGdksbLZZtB | |
| # 9oAx3iJixYbXCrrGmVL7UVI0KcTVluymicFHhMgcl5eDkRuO/MMdB9LYL8ACGuaH | |
| # z1H5GNEqSN4POjOo4zLqlo7azaSIH7mW+0xdkhzH2sv8g/LyFDq9c2+6LI1QcrTf | |
| # tK7YCzH4lr3yRdpaHzIMoPK+kg73bytEBhxBRBlyILYt6SCtmn/kozPBiNEndk3+ | |
| # SwA1j7Dx4NlxUpAQKpPlsuBjkOZxgmAwk4nDaSVWDsd3RWlxhj7BkD49X2s4jmuR | |
| # LWxDb18ZCRdzELY3DnssjW/dr7o5dR4LTAkTWiX68ydG1qXbcmQEabAGHxcOE0gn | |
| # 5KSHlIAmX3SHS4yeWEI9hTxCVVW+i65rBCAE2F0elIRTZx88sqZFueNBhfPOBjec | |
| # LbMoJUh42iG9eWS7d7P/1POq6Zj9ZJsOG7Iq3vqwpq4pboLTbzzKPX0cxDj1Y4Db | |
| # dwinJaHYjckJjvHjspNX9qSIo48Jn66vDSsA/zysE6QUVsJ9Gmenc5H/5WeoULPu | |
| # YJMfdOijcTxI4NS2pqJno7zL4i/8VWnCiieqXT2JBmkULHId6jZ0PX/nyaQmybF4 | |
| # HL4lzFCGwdnC3V8ADBAqI9lzP9bnj0i/vblknG5hikERqNpWe9YrtXhCEyI8yYip | |
| # qe0PCJ71XjHWxpBw1Yt6yTommRnxHj5M | |
| # SIG # End signature block | |