├── Export2Dataflow.ps1 ├── Export2Dataflow_Logo.png ├── Export2Dataflow_Logo.svg ├── LICENSE ├── Publish2Dataflow_Logo.png ├── Publish2Dataflow_Logo.svg ├── README.md ├── export2dataflow.pbitool.json └── publish2dataflow.pbitool.json /Export2Dataflow.ps1: -------------------------------------------------------------------------------- 1 | <# 2 | .SYNOPSIS 3 | This script exports the Power Query to a Dataflow JSON file or publishes it to the Power BI service. 4 | .DESCRIPTION 5 | This Powershell script can be called as an External Tool from Power BI Desktop, which then extracts the Power Queries via the 6 | TOM (Tabular Object Model) and stores them in the Dataflow JSON format or publishes it to the Power BI service. 7 | .NOTES 8 | File Name : Export2Dataflow.ps1 9 | Date : 10/16/2023 10 | Version : 1.1.1 11 | Author : Marcus Wegener 12 | 13 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 14 | EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF 15 | MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. 16 | IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR 17 | OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, 18 | ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR 19 | OTHER DEALINGS IN THE SOFTWARE. 20 | .LINK 21 | https://github.com/MarcusWegener/Export2Dataflow 22 | .Parameter Server 23 | The server name and portnumber of the local instance of Analysis Services Tabular for imported/DirectQuery data models 24 | .Parameter Database 25 | The database name of the model hosted in the local instance of Analysis Services Tabular for imported/DirectQuery data models 26 | .Parameter Deployment 27 | Deployment options : 28 | 0 - saves to Dataflow JSON file 29 | 1 - published in Power BI service 30 | #> 31 | 32 | # Below section defines the server, database and deployment based on the input captured from the External tools integration 33 | # This is defined as arguments \"%server%\" and \"%database%\" in the external tools json 34 | Param( 35 | [string] $server = $null, 36 | [string] $database = $null, 37 | [int] $deployment = 0 38 | ) 39 | 40 | Set-StrictMode -Version Latest 41 | 42 | # ================================================================================================================================================= 43 | # DEFINE FUNCTIONS 44 | # ================================================================================================================================================= 45 | 46 | # Function of Marc Lelijveld 47 | # https://github.com/marclelijveld/Power-BI-Automation/blob/master/PowerBI_MoveDataflows.ps1 48 | function _postDataflowDefinition([string] $GroupID, [string]$DataflowDefinition, [string]$NameConflict) { 49 | 50 | $UserAccessToken = Get-PowerBIAccessToken 51 | $bearer = $UserAccessToken.Authorization.ToString() 52 | 53 | $url = [string]::Format("https://api.powerbi.com/v1.0/myorg/groups/{0}/imports?datasetDisplayName=model.json&nameConflict={1}", $GroupID, $NameConflict) 54 | 55 | $boundary = [System.Guid]::NewGuid().ToString("N") 56 | $LF = [System.Environment]::NewLine 57 | 58 | $body = ( 59 | "--$boundary", 60 | "Content-Disposition: form-data; name=`"`"; filename=`"model.json`"", 61 | "Content-Type: application/json$LF", 62 | $DataflowDefinition, 63 | "--$boundary--$LF" 64 | ) -join $LF 65 | 66 | $headers = @{ 67 | 'Authorization' = "$bearer" 68 | 'Content-Type' = "multipart/form-data; boundary=--$boundary" 69 | } 70 | 71 | $postFlow = Invoke-RestMethod -Uri $url -ContentType 'multipart/form-data' -Method POST -Headers $headers -Body ([System.Text.Encoding]::UTF8.GetBytes($body)) 72 | 73 | return $postFlow 74 | } 75 | 76 | # Form 77 | function _showSelectionForm($mode, $workspace, $selectionList){ 78 | 79 | #create GUI 80 | $watermarkText = "" 81 | $labelText = "" 82 | $textBoxWidth = 560 83 | if ($mode -eq "workspace") { 84 | $watermarkText = "Search" 85 | $labelText = "Select a destination:" 86 | } elseif ($mode -eq "dataflow") { 87 | $watermarkText = "name for a new dataflow" 88 | $labelText = "Workspace: " + $workspace + "`n" + "Create a new dataflow or select an existing dataflow:" 89 | $textBoxWidth = 480 90 | } 91 | #create the window settings 92 | $form = New-Object System.Windows.Forms.Form 93 | $form.Text = 'Publish to Power BI' 94 | $form.Size = New-Object System.Drawing.Size(620,400) 95 | $form.StartPosition = 'CenterScreen' 96 | $form.FormBorderStyle = 'FixedSingle' 97 | $form.MaximizeBox = $false 98 | $form.MinimizeBox = $false 99 | $form.BackColor = "White" 100 | $form.ShowIcon = $false 101 | 102 | #create the label settings 103 | $label = New-Object System.Windows.Forms.Label 104 | $label.Location = New-Object System.Drawing.Point(20,10) 105 | $label.Size = New-Object System.Drawing.Size(560,40) 106 | $label.Font = [System.Drawing.Font]::new($label.Font.FontFamily.Name, 10) 107 | $label.Text = $labelText 108 | $form.Controls.Add($label) 109 | 110 | #create Input settings 111 | $textBox = New-Object System.Windows.Forms.TextBox 112 | $textBox.Location = New-Object System.Drawing.Size(20,50) 113 | $textBox.Size = New-Object System.Drawing.Size($textBoxWidth,20) 114 | $textBox.Font = [System.Drawing.Font]::new($textBox.Font.FontFamily.Name, 10) 115 | $textBox.MaxLength = 250 116 | $textBox.ForeColor = 'LightGray' 117 | $textBox.Text = $watermarkText 118 | $form.Controls.Add($textBox) 119 | 120 | if ($mode -eq "dataflow") { 121 | #create the create button settings 122 | $createButton = New-Object System.Windows.Forms.Button 123 | $createButton.Location = New-Object System.Drawing.Point(500,49) 124 | $createButton.Size = New-Object System.Drawing.Size(80,25) 125 | $createButton.Font = [System.Drawing.Font]::new($createButton.Font.FontFamily.Name, 10) 126 | $createButton.Text = 'Create' 127 | $createButton.DialogResult = [System.Windows.Forms.DialogResult]::Yes 128 | $createButton.BackColor = "#f2c811" 129 | $form.AcceptButton = $createButton 130 | $form.Controls.Add($createButton) 131 | } 132 | 133 | #create list Box settings for the selection List 134 | $listBox = New-Object System.Windows.Forms.ListBox 135 | $listBox.Location = New-Object System.Drawing.Point(20,77) 136 | $listBox.Font = [System.Drawing.Font]::new($listBox.Font.FontFamily.Name, 10) 137 | $listBox.Height = 243 138 | $listBox.Width = 560 139 | $listBox.Sorted = $true 140 | $listBox.HorizontalScrollbar = $true 141 | 142 | #add selectionList to the listBox 143 | $listBox.Items.Clear() 144 | if ($selectionList) { 145 | [void] $listBox.Items.AddRange($selectionList) 146 | } 147 | 148 | $form.Controls.Add($listBox) 149 | 150 | #create the select button settings 151 | $selectButton = New-Object System.Windows.Forms.Button 152 | $selectButton.Location = New-Object System.Drawing.Point(400,318) 153 | $selectButton.Size = New-Object System.Drawing.Size(80,27) 154 | $selectButton.Font = [System.Drawing.Font]::new($selectButton.Font.FontFamily.Name, 10) 155 | $selectButton.Text = 'Select' 156 | $selectButton.DialogResult = [System.Windows.Forms.DialogResult]::OK 157 | $selectButton.Enabled = $false 158 | $selectButton.BackColor = "lightgray" 159 | $form.AcceptButton = $selectButton 160 | $form.Controls.Add($selectButton) 161 | 162 | #create the cancel button settings 163 | $cancelButton = New-Object System.Windows.Forms.Button 164 | $cancelButton.Location = New-Object System.Drawing.Point(500,318) 165 | $cancelButton.Size = New-Object System.Drawing.Size(80,27) 166 | $cancelButton.Font = [System.Drawing.Font]::new($cancelButton.Font.FontFamily.Name, 10) 167 | $cancelButton.Text = 'Cancel' 168 | $cancelButton.DialogResult = [System.Windows.Forms.DialogResult]::Cancel 169 | $form.CancelButton = $cancelButton 170 | $form.Controls.Add($cancelButton) 171 | 172 | $form.Topmost = $true 173 | 174 | #behavior if you enter the input textbox 175 | $textBox.Add_Enter({ 176 | if($textBox.Text -eq $watermarkText -and $textBox.ForeColor -eq 'LightGray') 177 | { 178 | #Clear the text 179 | $textBox.Text = "" 180 | $textBox.ForeColor = 'WindowText' 181 | $listBox.ClearSelected() 182 | } 183 | }) 184 | #behavior if you leave the input textbox 185 | $textBox.Add_Leave({ 186 | if($textBox.Text -eq "") 187 | { 188 | #Display the watermark 189 | $textBox.Text = $watermarkText 190 | $textBox.ForeColor = 'LightGray' 191 | if ($mode -eq "workspace") { 192 | $listBox.Items.Clear() 193 | [void] $listBox.Items.AddRange($selectionList) 194 | } 195 | } 196 | }) 197 | 198 | if ($mode -eq "workspace") { 199 | #behavior if you type inside the input textbox 200 | $textBox.Add_TextChanged({ 201 | $textBoxText = [regex]::Escape($textBox.Text) 202 | if ($textBoxText) { 203 | $listBox.Items.Clear() 204 | forEach ($selection in $selectionList) { 205 | if($selection -match $textBoxText){ 206 | [void] $listBox.Items.Add($selection) 207 | } 208 | } 209 | } 210 | }) 211 | } 212 | 213 | $listBox.Add_SelectedIndexChanged({ 214 | if($listBox.SelectedIndex -ge 0){ 215 | $selectButton.Enabled = $true 216 | $selectButton.BackColor = "#f2c811" 217 | } else { 218 | $selectButton.Enabled = $false 219 | $selectButton.BackColor = "lightgray" 220 | } 221 | }) 222 | 223 | $result = $form.ShowDialog() 224 | 225 | if($result -eq [System.Windows.Forms.DialogResult]::OK){ 226 | return $listBox.SelectedItem 227 | } elseif ($result -eq [System.Windows.Forms.DialogResult]::Yes){ 228 | if ($textBox.TextLength -lt 1 -or $textBox.Text -eq $watermarkText) { 229 | return $null 230 | } else { 231 | return $textBox.Text 232 | } 233 | } else { 234 | Write-Host -ForegroundColor Yellow "No " + $mode + " was selected.. Terminating.." 235 | Start-Sleep -Seconds 1.5 236 | exit 237 | } 238 | } 239 | 240 | # ================================================================================================================================================= 241 | # RUN APPLICATION 242 | # ================================================================================================================================================= 243 | 244 | # Write Intro, Server and Database information to screen 245 | Write-Host -ForegroundColor White '========================================================================================================================' 246 | if ($deployment -eq 0) { 247 | Write-Host -ForegroundColor Yellow ' ______ __ ___ ____ __ ____ __ ' 248 | Write-Host -ForegroundColor Yellow ' / ____/_ __ ____ ____ _____ / /_|__ \ / __ \ ____ _ / /_ ____ _ / __// /____ _ __ ' 249 | Write-Host -ForegroundColor Yellow ' / __/ | |/_// __ \ / __ \ / ___// __/__/ / / / / // __ `// __// __ `// /_ / // __ \| | /| / / ' 250 | Write-Host -ForegroundColor Yellow ' / /___ _> < / /_/ // /_/ // / / /_ / __/ / /_/ // /_/ // /_ / /_/ // __// // /_/ /| |/ |/ / ' 251 | Write-Host -ForegroundColor Yellow ' /_____//_/|_|/ .___/ \____//_/ \__//____//_____/ \__,_/ \__/ \__,_//_/ /_/ \____/ |__/|__/ ' 252 | Write-Host -ForegroundColor Yellow ' /_/ ' 253 | } else { 254 | Write-Host -ForegroundColor Yellow ' ____ __ __ _ __ ___ ____ __ ____ __ ' 255 | Write-Host -ForegroundColor Yellow ' / __ \ __ __ / /_ / /(_)_____ / /_ |__ \ / __ \ ____ _ / /_ ____ _ / __// /____ _ __ ' 256 | Write-Host -ForegroundColor Yellow ' / /_/ // / / // __ \ / // // ___// __ \ __/ / / / / // __ `// __// __ `// /_ / // __ \| | /| / / ' 257 | Write-Host -ForegroundColor Yellow ' / ____// /_/ // /_/ // // /(__ )/ / / // __/ / /_/ // /_/ // /_ / /_/ // __// // /_/ /| |/ |/ / ' 258 | Write-Host -ForegroundColor Yellow ' /_/ \__,_//_.___//_//_//____//_/ /_//____//_____/ \__,_/ \__/ \__,_//_/ /_/ \____/ |__/|__/ ' 259 | Write-Host -ForegroundColor Yellow ' ' 260 | } 261 | Write-Host -ForegroundColor Yellow ' By Marcus Wegener v1.1.0 03/28/2021 ' 262 | Write-Host -ForegroundColor White '========================================================================================================================' 263 | Write-Host -ForegroundColor White "Your Power BI Model currently runs with the following connection details:" 264 | Write-Host -ForegroundColor White "Server: " $server 265 | Write-Host -ForegroundColor White "Database: " $database 266 | 267 | # Install latest package (if not already installed) of Microsoft.AnalysisServices.retail.amd64 for current user 268 | Write-Host -ForegroundColor White '========================================================================================================================' 269 | Write-Host -ForegroundColor Gray "Install latest package (if not already installed) of Microsoft.AnalysisServices.retail.amd64 for current user..." 270 | [Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12 271 | Install-Package Microsoft.AnalysisServices.retail.amd64 -Scope CurrentUser -Source "https://www.nuget.org/api/v2" -SkipDependencies 272 | $installedPackages = Find-Package -Name Microsoft.AnalysisServices.retail.amd64 -Source "$env:USERPROFILE\AppData\Local\PackageManagement\NuGet\Packages\" -AllVersions 273 | $maxVersion = $installedPackages[0].Version 274 | 275 | # Load Assembly Files from insalled package Microsoft.AnalysisServices.retail.amd64 276 | Write-Host -ForegroundColor Gray "Load Assembly Files from insalled package Microsoft.AnalysisServices.retail.amd64..." 277 | $assemblyPathTabular = "$env:USERPROFILE\AppData\Local\PackageManagement\NuGet\Packages\Microsoft.AnalysisServices.retail.amd64.$maxVersion\lib\net45\Microsoft.AnalysisServices.Tabular.dll" 278 | 279 | Write-Host -ForegroundColor White '========================================================================================================================' 280 | 281 | # Connect to Power BI Model 282 | Write-Host -ForegroundColor Gray "Connect to Power BI Model..." 283 | 284 | Add-Type -Path $assemblyPathTabular 285 | 286 | $as = New-Object Microsoft.AnalysisServices.Tabular.Server 287 | $as.Connect($server) 288 | $db = $as.Databases[$database] 289 | $dbModel = $db.Model 290 | 291 | $modelCulture = $dbModel.Culture 292 | $modelModifiedTime = Get-Date($dbModel.ModifiedTime) -format s 293 | 294 | # Create query groups 295 | Write-Host -ForegroundColor Gray "`Create query groups..." 296 | 297 | $queryGroups = @{} 298 | foreach($queryGroup in $dbModel.QueryGroups) { 299 | $groupStructur = $queryGroup.Folder.Split("\") 300 | $groupName = $groupStructur[-1] 301 | $groupParentName = "" 302 | $groupParentId = $null 303 | 304 | if($groupStructur.Length -gt 1) { 305 | $groupParentName = $groupStructur[0..($groupStructur.Length -2)] -join "\" 306 | $groupParentId = $queryGroups[$groupParentName].id 307 | } 308 | 309 | $queryGroups[$queryGroup.Name] = [ordered]@{ 310 | "id" = New-Guid 311 | "name" = $groupName 312 | "description" = $queryGroup.Description 313 | "parentId" = $groupParentId 314 | "order" = $groupStructur.Length 315 | } 316 | } 317 | 318 | $pbiQueryGroups = "" 319 | 320 | if($queryGroups.Count -le 1) { 321 | $pbiQueryGroups = "[" 322 | } 323 | 324 | $pbiQueryGroups += $queryGroups.values | ConvertTo-Json -Compress 325 | 326 | if($queryGroups.Count -le 1) { 327 | $pbiQueryGroups += "]" 328 | } 329 | 330 | 331 | # Create queries 332 | Write-Host -ForegroundColor Gray "`nCreate queries..." 333 | 334 | $queriesMetadata = @{} 335 | $entities = @() 336 | $document = "section Section1;`n" 337 | 338 | 339 | foreach($e in $dbModel.Expressions) { 340 | $queriesMetadata[$e.Name] = [ordered]@{ 341 | queryId = New-Guid 342 | queryName = $e.Name 343 | } 344 | if($e.QueryGroup) { 345 | $queriesMetadata[$e.Name].queryGroupId = $queryGroups[$e.QueryGroup.Folder].id 346 | } 347 | 348 | $tableName = $e.Name 349 | if($tableName -notmatch '^[a-z0-9]+$') { 350 | $tableName = "#"""+$tableName+"""" 351 | } 352 | 353 | $document += "shared " + $tableName + " = " + $e.Expression + ";`n" 354 | } 355 | 356 | foreach($t in $dbModel.Tables) { 357 | if($t.Partitions.SourceType -eq "M") { 358 | $queriesMetadata[$t.Name] = [ordered]@{ 359 | queryId = New-Guid 360 | queryName = $t.Name 361 | "loadEnabled" = $true 362 | } 363 | if($t.Partitions.QueryGroup) { 364 | $queriesMetadata[$t.Name].queryGroupId = $queryGroups[$t.Partitions.QueryGroup.Folder].id 365 | } 366 | 367 | $tableName = $t.Name 368 | if($tableName -notmatch '^[a-z0-9]+$') { 369 | $tableName = "#"""+$tableName+"""" 370 | } 371 | 372 | $document += "shared " + $tableName + " = " + $t.Partitions.Source.Expression + ";`n" 373 | 374 | $attributes = @() 375 | 376 | foreach($c in $t.Columns) { 377 | if ($c.Type -eq "Data") { 378 | $attributes += [ordered]@{ 379 | name = $c.Name 380 | dataType = $c.DataType.ToString().ToLower() 381 | } 382 | } 383 | } 384 | 385 | $entities += [ordered]@{ 386 | '$type' = "LocalEntity" 387 | "name" = $t.Name 388 | "description" = $t.Description 389 | "pbi:refreshPolicy"= [ordered]@{ 390 | '$type' = "FullRefreshPolicy" 391 | "location" = [uri]::EscapeDataString($t.Name) + ".csv" 392 | } 393 | "attributes" = $attributes 394 | } 395 | } 396 | } 397 | 398 | $document = $document.Replace("`n","`r`n") 399 | 400 | Write-Host -ForegroundColor Gray "`nDisconnect from Power BI Model..." 401 | 402 | $as.Disconnect() 403 | 404 | $dataflowName = "" 405 | $conflict = "Ignore" 406 | 407 | if ($deployment -eq 0) { 408 | # Save file dialog 409 | Write-Host -ForegroundColor Gray "Export Dataflow model to file..." 410 | 411 | Add-Type -AssemblyName System.Windows.Forms 412 | 413 | $fileBrowser = New-Object System.Windows.Forms.SaveFileDialog -Property @{ 414 | InitialDirectory = [Environment]::GetFolderPath('Desktop') 415 | Filter = 'JSON Files (*.json)|*.json' 416 | Title = 'Export Dataflow model to file:' 417 | } 418 | 419 | $null = $fileBrowser.ShowDialog() 420 | $fileName = $fileBrowser.FileName 421 | 422 | if(!$fileName){ 423 | Write-Host -ForegroundColor Yellow "No file chosen. Terminating..." 424 | Start-Sleep -Seconds 1.5 425 | exit 426 | } 427 | 428 | $fileNameWithoutPath = Split-path $fileBrowser.FileName -leaf 429 | 430 | 431 | Write-Host -ForegroundColor Gray "$fileName chosen..." 432 | 433 | $dataflowName = [regex]::Match($fileNameWithoutPath, ".+?(?=\.json)").Value 434 | } else { 435 | 436 | Add-Type -AssemblyName System.Windows.Forms 437 | Add-Type -AssemblyName System.Drawing 438 | Add-Type -AssemblyName PresentationCore 439 | Add-Type -AssemblyName PresentationFramework 440 | 441 | [System.Windows.Forms.Application]::EnableVisualStyles() 442 | 443 | #Get Module "MicrosoftPowerBIMgmt" 444 | $moduleName = Get-Module -ListAvailable -Verbose:$false | Where-Object { $_.Name -eq "MicrosoftPowerBIMgmt" } | Select-Object -ExpandProperty Name 445 | if ([string]::IsNullOrEmpty($moduleName)) { 446 | Write-Host -ForegroundColor White "`n========================================================================================================================" 447 | Write-Host -ForegroundColor Gray "Install module MicrosoftPowerBIMgmt..." 448 | Install-Module MicrosoftPowerBIMgmt -SkipPublisherCheck -AllowClobber -Force -Scope CurrentUser 449 | Write-Host -ForegroundColor White "========================================================================================================================" 450 | } 451 | 452 | Write-Host -ForegroundColor Gray "`nConnect to PowerBI service" 453 | Connect-PowerBIServiceAccount 454 | 455 | #Get all Workspaces of connected user 456 | $workspaces = Get-PowerBIWorkspace -All 457 | 458 | $workspaceName = _showSelectionForm -mode "workspace" -workspace $null -selectionList $workspaces.Name 459 | 460 | $selectedWorkspace = $workspaces | Where Name -eq $workspaceName 461 | 462 | $dataflowsInWorkspace = Get-PowerBIDataflow -Workspace $selectedWorkspace 463 | 464 | $dataflowNames = $dataflowsInWorkspace | Select-Object -ExpandProperty Name 465 | 466 | do { 467 | $dataflowName = _showSelectionForm -mode "dataflow" -workspace $workspaceName -selectionList $dataflowNames 468 | 469 | if ($dataflowName -eq $null) { 470 | [void] [System.Windows.MessageBox]::Show("You need to write at least 1 character" 471 | ,"" 472 | ,[System.Windows.MessageBoxButton]::OK 473 | ,[System.Windows.MessageBoxImage]::Exclamation) 474 | } elseif ($dataflowsInWorkspace | Where Name -eq $dataflowName){ 475 | $confirmationResult = [System.Windows.MessageBox]::Show("Are you sure you want to overwrite the dataflow '$dataflowName'?" 476 | ,"Confirm Overwriting dataflow" 477 | ,[System.Windows.MessageBoxButton]::YesNoCancel 478 | ,[System.Windows.MessageBoxImage]::Exclamation) 479 | 480 | switch ($confirmationResult) { 481 | "Yes"{ 482 | Write-Host -ForegroundColor Yellow "Overwriting Dataflow '$dataflowName'" 483 | $conflict = "Overwrite" 484 | }"No"{ 485 | Write-Host "Not overwriting Dataflow '$dataflowName'.. Navigating back to Dataflow-Selection" 486 | $dataflowName = $null 487 | }"Cancel"{ 488 | Write-Host -ForegroundColor Yellow "Cancel-Button clicked.. Terminating.." 489 | Start-Sleep -Seconds 1 490 | exit 491 | } 492 | } 493 | } 494 | } while ($dataflowName -eq $null) 495 | 496 | Write-Host -ForegroundColor Gray $dataflowName 497 | 498 | } 499 | 500 | Write-Host -ForegroundColor White '========================================================================================================================' 501 | 502 | $json = [ordered]@{ 503 | "name" = $dataflowName 504 | "description" = "" 505 | "version" = "1.0" 506 | "culture" = $modelCulture 507 | "modifiedTime" = $modelModifiedTime 508 | "pbi:mashup" = [ordered]@{ 509 | "fastCombine" = $false 510 | "allowNativeQueries" = $false 511 | "skipAutomaticHeaderAndTypeDetection" = $false 512 | "queriesMetadata" = $queriesMetadata 513 | "document" = $document 514 | } 515 | "annotations" = @( 516 | [ordered]@{ 517 | "name" = "pbi:QueryGroups" 518 | "value" = $pbiQueryGroups 519 | } 520 | ) 521 | "entities" = $entities 522 | } 523 | 524 | 525 | if ($deployment -eq 0) { 526 | Write-Host -ForegroundColor Gray "`nWrite into JSON file..." 527 | 528 | $json | ConvertTo-Json -Depth 10 -Compress | Out-File -Encoding UTF8 "$fileName" 529 | 530 | Start-Process -FilePath C:\Windows\explorer.exe -ArgumentList "/select, ""$fileName""" 531 | 532 | Write-Host -ForegroundColor Gray "Dataflow model file ($fileName) created..." 533 | } else { 534 | Write-Host -ForegroundColor Gray "`nGenerate JSON..." 535 | 536 | $dataflowJSON = $json | ConvertTo-Json -Depth 10 -Compress 537 | 538 | $newDataFlow = _postDataflowDefinition -GroupID $selectedWorkspace.Id -DataflowDefinition $dataflowJSON -NameConflict $conflict 539 | 540 | Write-Host -ForegroundColor White ( [string]::Format("New dataflow with id '{0}' created in workspace '{1}'", $newDataFlow.id, $selectedWorkspace.Name )) 541 | } 542 | Write-Host -ForegroundColor White '========================================================================================================================' 543 | Start-Sleep -Seconds 1.5 -------------------------------------------------------------------------------- /Export2Dataflow_Logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MarcusWegener/Export2Dataflow/15b1f4aa1f2b4d11daefae198743b25b37751bb9/Export2Dataflow_Logo.png -------------------------------------------------------------------------------- /Export2Dataflow_Logo.svg: -------------------------------------------------------------------------------- 1 | 2 | 20 | 22 | 43 | 45 | 46 | 48 | image/svg+xml 49 | 51 | 52 | 53 | 54 | 55 | 59 | 61 | 68 | 71 | 74 | 78 | 82 | 86 | 91 | 92 | 97 | 100 | 105 | 109 | 114 | 115 | 116 | 119 | 137 | 145 | 146 | 149 | 156 | 163 | 170 | 174 | 178 | 179 | 180 | 181 | 182 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | This is free and unencumbered software released into the public domain. 2 | 3 | Anyone is free to copy, modify, publish, use, compile, sell, or 4 | distribute this software, either in source code form or as a compiled 5 | binary, for any purpose, commercial or non-commercial, and by any 6 | means. 7 | 8 | In jurisdictions that recognize copyright laws, the author or authors 9 | of this software dedicate any and all copyright interest in the 10 | software to the public domain. We make this dedication for the benefit 11 | of the public at large and to the detriment of our heirs and 12 | successors. We intend this dedication to be an overt act of 13 | relinquishment in perpetuity of all present and future rights to this 14 | software under copyright law. 15 | 16 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 17 | EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF 18 | MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. 19 | IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR 20 | OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, 21 | ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR 22 | OTHER DEALINGS IN THE SOFTWARE. 23 | 24 | For more information, please refer to 25 | -------------------------------------------------------------------------------- /Publish2Dataflow_Logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MarcusWegener/Export2Dataflow/15b1f4aa1f2b4d11daefae198743b25b37751bb9/Publish2Dataflow_Logo.png -------------------------------------------------------------------------------- /Publish2Dataflow_Logo.svg: -------------------------------------------------------------------------------- 1 | 2 | 20 | 22 | 43 | 45 | 46 | 48 | image/svg+xml 49 | 51 | 52 | 53 | 54 | 55 | 59 | 61 | 68 | 71 | 74 | 79 | 84 | 89 | 95 | 96 | 102 | 105 | 111 | 116 | 122 | 123 | 124 | 126 | 144 | 152 | 153 | 156 | 163 | 170 | 177 | 182 | 187 | 188 | 189 | 190 | 191 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Export2Dataflow 2 | This repository contains everything needed to run the Export2Dataflow PowerShell script as an External Tool in the Power BI Desktop and export the Power Query to a Dataflow JSON file or publishes it to the Power BI service. 3 | 4 | ## Disclaimer 5 | Please know, that everything I have created and shared on the blogpost and on GitHub is based on best effort. No rights can be derived, as well as I am not liable for the use or misuse of the solution or possible damage resulting from this. Use of the solutions and execution of the scripts is all on your own risk and your own responsibility. 6 | 7 | ## Getting Started 8 | ### Download everything you need from this repository. 9 | * External Tool integration file: _export2dataflow.pbitool.json_ 10 | * External Tool integration file: _publish2dataflow.pbitool.json_ 11 | * The PowerShell script: _Export2Dataflow.ps1_ 12 | 13 | ### Copy the External Tool integration file 14 | The External Tool integration file is needed to get the button in the Power BI ribbon. In order to achieve this, you need to copy the _export2dataflow.pbitool.json_ and _publish2dataflow.pbitool.json_ file in the External Tools folder. For me this location was: 15 | _C:\Program Files (x86)\Common Files\Microsoft Shared\Power BI Desktop\External Tools_ 16 | 17 | While copying the files, it can be that Windows asks you to login with admin privileges before you can continue. This is mandatory to copy the files. If you cannot do this yourself, please contact your administrator. 18 | 19 | ### Copy the PowerShell script 20 | Create a subfolder _Export2Dataflow_ in the _C:\Program Files\\_ folder and copy the PowerShell script _Export2Dataflow.ps1_ file into it. 21 | 22 | Identical to the previous step, Windows may ask you to authenticate with administrator privileges before you can proceed. 23 | 24 | ### Restart Power BI Desktop 25 | You have applied all required steps by now. The new buttons will appear in the Power BI Desktop top ribbon for External Tools. In case you had Power BI running already, please restart Power BI desktop first. 26 | 27 | Did something not workout as expected for you, kindly check the FAQ to see if your question is already listed there. If not, please let me know. 28 | 29 | ## Usage 30 | I want to shortly describe how this tool works and what you can expect. 31 | 1. Open a Power BI Desktop file whose Power Query transformations you want to export to a Dataflow. 32 | 2. In the Top Ribbon under External Tools, click _Export to Dataflow_. 33 | 3. After the click a PowerShell window opens which converts the Power Query transformations into the Dataflow JSON format. 34 | During the first execution it may be necessary to agree to the installation of _nuget_ and the _package source_ for the installation of the latest Microsoft.AnalysisServices.Tabular.dll version. 35 | 4. Then the script asks for the location where the Dataflow JSON file should be exported. 36 | 5. The exported Dataflow JSON file can then be uploaded to the Power BI Portal as Dataflow. To do this, create a new dataflow in the workspace with the Import Datamodel option. 37 | 38 | ## Author 39 | Marcus Wegener 40 | 41 | [Website](https://thinkbi.de) - 42 | [twitter](https://twitter.com/PowerBIler) - 43 | [LinkedIn](https://www.linkedin.com/in/marcuswegener/) - 44 | [Xing](https://www.xing.com/profile/Marcus_Wegener3/cv) 45 | 46 | ## Acknowledgements 47 | Marc Lelijveld, for his tutorial on creating external tools for Power BI and his GitHub repository [External-Tools-Model-Documentation](https://github.com/marclelijveld/External-Tools-Model-Documentation), from which I was able to adopt a lot. 48 | 49 | [Website](https://data-marc.com/) - 50 | [Blogpost](https://data-marc.com/2020/07/28/external-tools-document-your-power-bi-model/) - 51 | [twitter](https://twitter.com/PowerBIler) - 52 | [LinkedIn](https://www.linkedin.com/in/marclelijveld/) - 53 | [Github](https://github.com/marclelijveld/External-Tools-Model-Documentation) 54 | 55 | Julian Kaiser, for reviewing, testing and adding some features to the script. 56 | 57 | [LinkedIn](https://www.linkedin.com/in/julian-kaiser-5b849519a/) 58 | 59 | ## FAQ 60 | ### The Document model button does not appear in Power BI Desktop 61 | There are a few things that can cause this issue. There are a few things you can check up front: 62 | 63 | 1. Do you run the latest version of Power BI Desktop? If not, please update first. 64 | 2. Do you have other External Tools, such as DAX Studio, Tabular Editor or ALM Toolkit successfully running? 65 | 3. Did you put the export2dataflow.pbitool.json file in the correct location? Please check the blogpost to find the correct location. 66 | 67 | If still nothing happens, or you don't have the External Tools folder on your PC, I advise you to install any of the above mentioned external tools that will generate this location for you during installation. 68 | 69 | ### The buttons in the External Tools section in Power BI Desktop are greyed out 70 | External tools require Enhanced Meta Data to be enabled. You can enable this in the preview features of Power BI Desktop. 71 | 72 | 1. Open Power BI Desktop 73 | 2. Go to File 74 | 3. Options & Settings 75 | 4. Options 76 | 5. In the Global Settings go to Preview Features 77 | 6. Close all Power BI Desktop instances and re-open Power BI. 78 | 79 | ### I clicked the button, saw the PowerShell window flickering on the screen, but nothing happened 80 | Most likely, this is caused by the execution policies for PowerShell configured on the computer. As far as I know, this is not something I can change in my script, but has everything to do with the setup of your PC or how your company configured it. This results in the fact that PowerShell.exe application did start, but it did not execute the script, because this was prevented by the policy. The solution to fix this, is changing the execution policy (which is a register thing on your computer. Please know, that this is all at your own risk! I cannot take any responsibility for this. 81 | 82 | The following steps might help you 83 | 84 | 1. Open PowerShell.exe manually 85 | 2. Execute Get-ExecutionPolicy -List 86 | 3. As a result, you see the current configuration of your execution policies. Most probably everything is set to undefined at this moment. 87 | 4. The easiest way to fix this, is by changing the execution policy for the current user. The ensures that this does not happen again. We need to do this by setting it to Unrestricted by executing this task: Set-ExecutionPolicy Unrestricted -Scope CurrentUser (all on your own responsibility and risk!) 88 | 5. Confirm that you want to change this. 89 | 6. Close PowerShell and Power BI Desktop 90 | Try again if it works now. More information about Execution Policies can be found [in this article](https://winaero.com/change-powershell-execution-policy-windows-10/) 91 | 92 | ## License 93 | All code in this repository is licenses as specified by the [LICENSE](https://github.com/MarcusWegener/Export2Dataflow/blob/main/LICENSE) file. -------------------------------------------------------------------------------- /export2dataflow.pbitool.json: -------------------------------------------------------------------------------- 1 | { 2 | "version": "1.1.0", 3 | "name": "Export to Dataflow", 4 | "description": "Export to Dataflow", 5 | "path": "C:\\Windows\\System32\\WindowsPowerShell\\v1.0\\powershell.exe", 6 | "arguments": "C:\\'Program Files'\\Export2Dataflow\\Export2Dataflow.ps1 \"%server%\" \"%database%\" 0", 7 | "iconData": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAw0AAAMNCAYAAADa4ZjgAAAACXBIWXMAAC4jAAAuIwF4pT92AAAAGXRFWHRTb2Z0d2FyZQB3d3cuaW5rc2NhcGUub3Jnm+48GgAAIABJREFUeJzs3WmAFNd97/1fb7PvC8O+zAAChCS0ogUkoQ0tubJjJ05s59FjJ3YSRXH8WHGsBQkJydpiR/ES27Hj6+vISbwkj+LYEUJIQkIIEBIIbSCWYWZg2AaYtWft6em6LxD3ypjuqaru6u7T/f28FFXdh6bVdX71/59TEgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAPq9e2LKs4v7+nsWSf4mkBZal2T6pVlKlJL9X7wsAAADkuJikXkvq9PnULGmnFHu1rKxqi8/nG/LiDVMaGizL8ofD4Zt9lvVHPp9+x5JKU/n6AAAAAM7MJw1Ylv7b8vn+pby8fLXP54ul8LWTZ1lWIBwO/78+WXdLmpOK1wQAAADg2l5LvsfLy8v/2efzjSX7YkmHhr6+vit8in1P8p2T7GsBAAAASCXrXUv+2ysqKjYm8yqu1xZYlhXq7+t5widrPYEBAAAAyEa+c3yy1vf39TxhWVbI9au4Oam3t7fGL/1CPl3r9o0BAAAApNUG+fwfLy8vP+70RMehob+/v8GKja2TtMDpuQAAAAAyaqfPH7imrKysw8lJjkJDb29vjd+nDSIwAAAAAKbaGbO0tLKyssvuCbbXNFiWFfJLvxCBAQAAADDZAr9Pv7Qsq8DuCbZDQzjc+yhrGAAAAICcsDQc7n3E7sG22pP6+vqW+mS9LJ7kDAAAAOSKmCXf1RUVFRvGO3DcEGBZVsCn2HftHAsAAADAGH6frO9blhUc98DxDgiHw5+VfAtTMy4AAAAAWWR+OBz+zHgHJWxPsizL3x/u2yOpKVWjAgAAAJA9fFJraXnFHJ/PNxbvmISVhnA4/DsiMAAAAAA5y5JmhcPhWxIdkzA0+KTbUjskAAAAANnGJ/0/4/z5mR09erS0tLT4mCyVpH5YAAAAALKGT4MDA0MTJk6cOHCmP45baSgrK7qMwAAAAADkAUslZWVFl8b747ihwbJ8V3gzIgAAAADZxrJ8S+L9Wfw1DZbvbE9GAwAAACD7xLQg3h/FDw0+i12TAAAAgHzh1+x4fxT/6W+Wb4JkJfW+2996Szt37EjqNQAAyGcTGhp0/XXXZXoYAPJBTPXx/ijBI6OtsmTf9+mn/1Pf+MY3kn0ZAADy1pIlSwgNANLDp7jz/7jtST4p5M1oAAAAAGQbn1QQ788SPtwNAAAAAAgNAAAAABIiNAAAAABIiNAAAAAAICFCAwAAAICECA0AAAAAEiI0AAAAAEiI0AAAAAAgoQRPhE6fQCCgn//0XzM9DAAA0ua+lQ9o167dmR4GANiSFaFBkqZOnZrpIQAAkDYFBXEfvAoAWYf2JAAAAAAJERoAAAAAJERoAAAAAJAQoQEAAABAQoQGAAAAAAkRGgAAAAAkRGgAAAAAkBChAQAAAEBChAYAAAAACREaAAAAACREaAAAAACQEKEBAAAAQEKEBgAAAAAJERoAAAAAJERoAAAAAJAQoQEAAABAQoQGAAAAAAkRGgAAAAAkRGgAAAAAkBChAQAAAEBChAYAAAAACREaAAAAACREaAAAAACQEKEBAAAAQEKEBgAAAAAJERoAAAAAJERoAAAAAJAQoQEAAABAQoQGAAAAAAkRGgAAAAAkRGgAAAAAkBChAQAAAEBChAYAAAAACREaAAAAACREaAAAAACQEKEBAAAAQEKEBgAAAAAJERoAAAAAJERoAAAAAJAQoQEAAABAQoQGAAAAAAkRGgAAAAAkRGgAAAAAkBChAQAAAEBChAYAAAAACREaAAAAACREaAAAAACQEKEBAAAAQEKEBgAAAAAJERoAAAAAJERoAAAAAJAQoQEAAABAQp6GhtjYmJcvDwBAzhsdHdUY11MAGRb08sUPtB+wdVwsFtOK+1d6ORTkkAMHDmjv3uaUvJbf75ffn76CWyDgl98fSNv7pfvv5/f7FQik8+/nS/vnGQj4VV8/QbW1NWl7X+SmAwfsXSO3bNmi3bt3a8GCBR6PCADi8zQ02GVZll58cV2mh4E8FIvFFIvF0vZ+0Wja3goeOnTocKaHAABAWrGmAQAAAEBChAYAAAAACREaAAAAACREaAAAAACQEKEBAAAAQEKEBgAAAAAJERoAAAAAJERoAAAAAJCQpw93Ky+vsH1sVVWVgsGseNYcstzg4KAGBwdtHRsIBOTz+VL23pZlpey17LxXOt/v1HtifGVlZSoqKsr0MGC4kZERhcPhTA8DAGzxdJb+kY/cqp/85Ce2jv31r3+txYsXezkc5IgHH3xQjz76qK1jV69erWXLlnk8IrgxNDSk4eHhtL3fwMCARkdH4/75L3/5S9111122XuuJJ57Q5z//+VQNDXnqP/7jP/SpT30q08MAAFu4tQ/jxGIx28emssqA1CouLlZxcXHa3q+6ujrhn9fV1dl+Lb5XAIB8w5oGGMdJC43fz1cc9jgJo3yvAAD5hisfjOMkNHBHGHbxvQIAID5CA4zDHWF4gdAAAEB8zKhgHCZ38AJhFACA+LjywTgshIYXCKMAAMRHaIBxWAgNLxAaAACIjxkVjMPkDl6gPQkAgPi48sE4tCfBC4RRAADiIzTAOLQnwQuEUQAA4mNGBeNwRxheIIwCABAfVz4YhzvC8AJhFACA+AgNMA53hOEFFkIDABAfVz4YhzvC8ALfKwAA4iM0wDi0J8ELhAYAAOIjNMA4tCfBC7QnAQAQH1c+GIc7wvAC3ysAAOIjNMA43BGGFwgNAADEx4wKxmFyBy8QRgEAiI8rH4zDQmh4wUkYBQAg3xAaYBwWQsMLVLAAAIiPGRWMw+QOXqA9CQCA+LjywTi0J8ELhFEAAOIjNMA4tCfBC4RRAADiY0YF43BHGJlGGAUA5BuufDAOd4ThBcIoAADxERpgHNqT4AVCAwAA8TGjgnGY3MEL7J4EAEB8XPlgHNqT4AXCKAAA8REaYBwmd/ACbW8AAMTHlQ/GITTAC1SwAACIj9AA4zC5gxcIowAAxEdogHFoI4EX+F4BABAfVz4YhzvC8AIVLAAA4iM0wDjcEYYXCKMAAMTHjArGYXIHLxBGAQCIjysfjEMbCbzA9woAgPgIDTAOd4ThBSpYAADEx4wKxmFyBy84qTQQRgEA+YYrH4xDGwm8QBgFACA+QgOMQ3sSvEBoAAAgPmZUMA6TO3iB9iQAAOLjygfj0J4ELxBGAQCIj9AA49CeBC/wvQIAID6ufDAOd4ThBSpYAADER2iAcZjcwQuEUQAA4iM0wDi0kcALfK8AAIiPKx+Mwx1heIEKFgAA8REaYBwmd/ACYRQAgPgIDTCO3ckdEzs4QXsSAADxceWDcexWGpjYwQkqWAAAxMesCsah0gAv0J4EAEB8hAYYh9AALzipNFDFAgDkG658MA7tSfAClQYAAOJjVgXjUGmAFwgNAADER2iAcQgN8ALtSQAAxMeVD8ahPQleoNIAAEB8zKpgHCoN8IKT0AAAQL4hNMA4hAZ4gfYkAADi48oH49CeBC/QngQAQHzMqmAcKg3wgpPQQCAFAOQbrnwwjt3JHRM7OOGkPYlACgDIN8yqYBy7kzsmdvAK3y0AQL4hNMA4tCfBC7QnAQAQH1c+GIf2JHiB9iQAAOJjVgXj0J4EL7B7EgAA8REaYBzak+AFntMAAEB8XPlgHCoN8AKVBgAA4iM0wDhUGuAFQgMAAPERGmAcQgO8QHsSAADxceWDcexO7pjYwQkqDfCag68YAGSdYKYHADhFpQFeIDTArp6hUZ0YGFXX4KiO90fUOTSqzoGIBiIx9Y9E1T8ypoHRMY2OWRoaHdNY7De/W0G/T0WhgKKRmbrygZ9qpL9HI72divR3a+jEYQ10HNDAsXYNnjgsayyaob8lAPwmQgNyFhM7OEF7Ek7XEY6opWtQB3uGdah3RIf6hnW4d0QDkbGkXjcas9Q/EpUUUNnkRpXFOc4ai6rvYLN69+/UW11SVV9EkysKknpvAHCL0ADj0J4EL1BpyF+WJbX3Dqu1c0gtXYNq6RxSS+dg0uEgWb5AUJUz5qlyxjz9V7v0X+0tqi8NadHkUi2aWKpzJ5WqIMDvHID0IDTAOLQnwQuEhvxkSfr+a+1as+tEpodiy/GBUT2/t0fP7+1RScivi6aU69Lp5Vo0qVQBP99LAN4hNMA4did3VBrgBO1J+ceypG+9ul8vNXdleiiuDI7G9Epbr15p69WEspBuOqta1zZVqzBAeACQelz5YBwe7gYvUMHKLzHL0jc3mBsYTnesf1T/vO2Ybv9ls37x7nENjdoPwQBgB6EBxmFyBy/wvcofMcvStzYc0Mv7ciMwfNhAZEz//3ud+stf79OvdnYpMkZ4AJAahAYYh/YkeIEKVn4Yi1n6+1f252Rg+LD+kTH969vHdNeaNu06Ppjp4QDIAcyqYBwmd/ACYTT3nQwMbdrQ0p3poaTN4b6IHnzxgH60rUPDUaoOANzj6gfj0EYCL/C9ym2n1jC82tqT6aGknWVJz+3p1t1r2nSgZzjTwwFgKHZPgnG4IwwvUMHKXdGYpb97uU2b93sXGAoCflUVB1VRFFRZYVClIb9KC4Py+6SSgsBvHDsYGVPMkvpHouobjqp3OKqeoajCI94+/flIOKL71u7X5xdP0tIZFZ6+F4DcQ2iAcZjcwQuE0dwUjVn62kut2nKgN6nX8UmqKy3QlKoiTa4o1JSKQk0oL1B9aYFqSkKqKEr+cto/EtWRvogO9Q2rtWtIe48PqqVzMKVtRSNjlv5h02EdDUf0+wvrUva6AHIfoQHGoY0EXiCM5p5ozNLfvtSq110EhlDAp2VNNWqsLVFjbbFmVBerMOhtYCwrDGpOfVBz6kt0ddPJ/zYWs7T7+IDeOhzWtvY+7etMzaLm/3j3hLqHovrcRQ3y850GYAOhAcaxO7njjjCcIIzmlmjM0hPrWvRGe5/jc0MBn+5aNksXTav0YGTOBPw+LWgo04KGMn3q/Ek63Dei9fu6tW5vp44PRJJ67RebezQ8GtMXLpssvtYAxkNogHGY3MELtCfljtExS0+81KqtLgJDQcCvu6+ZpQumZmfP/+SKQn3y/In6xHkNeu1Ar375Xof2JrGl6sb9fSoM+vWnl0wUv5gAEiE0wDiEBniB9qTcEBmL6Yl1rdp20EVgCPp1zzWzdP6U7AwMHxbw+3TFzCpdMbNKrx/o1U+2HVa7y52R1u3rUWlBQH+0qD7FowSQS7hlBuPQngQvEEbNFxmL6fEkAsO9hgSG010yvVLf/Og8ffbiKa7XXfz6/U6tb01usTiA3MasCsZhcgcv0J5ktkg0psdebNWbLgJDYdCvFdc2apGBgeEUv8+njyycoG9+dL7mTSh19Rr/9MZR7e0cSvHIAOQKrn4wDpM7eIH2JHONRGN65MUWbT/kLjDce22jzptc7sHI0m9ieYEeuWmOPnZug+M1CqNjlp589bD6I2OejA2A2ZhVwThM7uAFwqiZRqIxPfpii94+HHZ8bmHQrxXX5U5gOCXg9+m2Cyfrr5bOUNDv7Hewa3BUP3j9qEcjA2Ayrn7IWYQGOEHbm3mGozE9/IK7wFAcCmjl9U06d1JuBYYPWza7RnddM0sFAWeX+i3tYW3Y77xqAyC3ERpgFLtVBok7wnCGCpZZRqIxPfJCi9474jwwFAX9WnHtLJ09scyDkWWXi6dV6p5rZykUcPa9/fG2DoVHaFMC8H8xq4JR7N4NlpjcwRnak8wxNDqmVWv36V0XgaGkIKAHbpithTlcYTjd+VMq9IUlMxytcegfGdNP3znu2ZgAmIerH4xCaIBXaE8yw9DomB56fp92dvQ7PrekIKAHrm/S/AZ3uwuZ7MrGav3eeRMdnbNuX4+au9w9+wFA7iE0wCi0J8ErTr5byIzByMkKw/sdA47PLS0I6MEbmnSWy+1Ic8Gnzp+kCx086dqypJ+9fczDEQEwCbMqGIVKA7xCe1J2G/ggMOw65i4wPHBDk+bW529gkCSfT/rCkumqKg7ZPufdo4N6r2PQw1EBMAVXPxjFyd1gQgOcYCF09hqIjOnBtc3afdx5YCgrDGrV8tl5HxhOqSoO6c8vm+bonF+8y9oGAIQGGMZJpYE7wnCCNQ3Z6VSFYe9x53e7T1UYZteVeDAyc106o1IXT7PfprT7+JD2nOBJ0UC+Y1YFo9CeBK/QnpR9+keiWrmmWXtcVBjKi4J6+MY5mkNgOKPPXzrN0fMbfr2r08PRADABVz8YhfYkeIVKQ3YJj0S18rl92tfpvMJQURTUw8tnq7G22IOR5YYJZQW6aX6d7eO3HhzQsf5RD0cEINsRGmAU2pPgFUJD9ugfiWrV2n1qcREYKouCeujG2ZpZQ2AYz8fPaVBJQcDWsTHL0kutPR6PCEA2Y1YFo9CeBK/QnpQd+oajum9Ns5pPOA8MVcWhk4GhmsBgR0VRUDeeZb/asL6lVzEHv8EAcgtXPxiF9iR4hd2TMq93OKr71zSrrcv5ottTgWEGgcGRWxbUK+i3953uHIzq7aNsvwrkK0IDjEJ7ErxCe1Jm9QyN6v41e7W/23lgqC4J6eEbZ2t6VZEHI8tttSUhXTGzyvbxm/f3eTgaANmMWRWM4iQ0AE7QnpQ5PUOjWvlcsw50Dzs+t6o4pFXLZ2sagcG16x20KL1xMKxojN9hIB9x9YNRnLQnMbmDE7QnZUbP0KhWrnEfGKgwJO/siWWaVFFo69jB0Zje5QnRQF5iVgWjsBAaXqHSkH5dg6Na8exeHehxHhhqSkJ69OY5VBhSwCfp6qYa28dvP9zv3WAAZC2ufjAKoQFeYU1DenUPjuqB55p1qHfE8bnVRUE9cvMcTbZ5dxzjWzKr2vaxO6k0AHmJ0ACj0J4Er9CelD7dg6O6f02z2l1UGCQpaknDo/Z/CzC+KZWFttu8DvaOqHc46vGIAGQbZlXIWUzu4ATtSelxYmBU967eq4O97gKDdPJp0fc9u1c7O2iTSaWLplfaOs6StKPD+S5XAMzG1Q9GoT0JXqHS4L0TA6O679k9OhJ23pJ0uoHImFat3aet7b0pGBkkaWFDme1jdx4f8HAkALIRoQFGoT0JXmFNg7dOBYaj4UjKXnMkGtNj61q1rrkrZa+Zz+Y3lNp+0NsO1jUAeYdZFYxCpQFeoT3JOycGRrUixYHhlLGYpW9v2K9f7TiW8tfON8WhgJrqSmwde7gvoq7BUY9HBCCbcPWDUZxUGggNcIL2JG8cH4jo3tV71OFBYDjFkvSj1w/pqW2HPXuPfHHupHLbx7Z0uV+XAsA8hAYYxUmlgTvCcIL2pNQ71h/RitV7dazfeWBoKCtw/AyGp9/p0A9eOygeHO/ewon21zW093oXBAFkH2ZVMArtSfAK7UmpdSQ8onue2eMqMEyuKNRjt8zVYzfP0fyGUkfnrn7/uL7xSpuiMZKDG3PrS2T3l7PdxTM2AJiLqx+MQnsSvEJ7Uuoc6RvRitV71emi531yRaEeuXmOakpCKisM6sEbZuuCqRWOXmN9S7eeWNeqSJRnOThVHAqovqzA1rEHCQ1AXgl6+eK9vfa3wjt06JBaWlo8HA1ywYEDB2wfOzAwwHcKttmtNIyMjPC9SuD4UEzffXtAvSPOJ+xTKgv11ZvmqLo49H/+W2HQr3uvbdQ3XmnTq609tl/rjfZerXp+n+69tlGlBQHHY8lnM6qLbVWIDvVFFI1ZtndcAmC2uP+n9/f19luSs7rwaW686SZt3LgpmZcAABiitGGGFt/5XRVV1Tk+d0ploR6+8WSF4UxilqXvbz6o53afcPS6jbUlWnl9o6qKz/y6+G1PbTusp9/psHXsk7fM0pSKQo9HBCBdfNJAWUXlGRc30Z4EAEial4FBkvw+n26/fJpuu3Cyo9du6RzUXc94s91rrpruYAF6ew+fK5AvCA0AgKSUTW7UpV/+R1eBYUZ1sR69eW7CwPBhHzu3QZ9bPFVOlpZ0hE9u+7q/e8jx+PLRjOpi28ce6iM0APmC0AAAcK18cpMuvfO7KqyocXzuzJpiPXzjbFUWOVte9zsL6vXFpTMUcNBL3zU4qhXPNmv3sQGnw8w7UyoL5beZyrqGeMAbkC8IDQAAV8omzdQlX/q2CsqrHZ87q6ZYDy2frQqHgeGUq5tqdPc1s1QQsH8Z6x+J6oHnmrX9UJ+r98wXBQG/qort/bt0D0U9Hg2AbEFoAAA4VjF1ji798vdVWFHr+NxkA8MpF0+r1MrrG1XiYHek4WhMj7zQok1t9ndiykd228W6BgkNQL4gNAAAHKmYNleXfOkfVFBW5fjcxtqTgaE8ycBwysJJ5Y5bnKIxS19/uU1r93SmZAy5qNrmblPdw4QGIF8QGgAAtlVMOyuJwFCiVSkMDKc01Zbo0Zvnqq7U/raqMcvS9zYe0NPv2ttaNN/U2vwse4ejPH0byBOEBgCALScDw7dVUFrp+Nym2hKtWt6k8kJvnik6pbJQj99ylqZU2n9mgCXpqa2H9dS2w2La+5vsVhosS+oZGvN4NACyAaEBADCuyulnafGX/iErA8MpdaUhPX7LXM2td/Zc0qff6dC3NuzXGHfM/49am2saJKlnmB2UgHzg7S+4A4888ojmzp2b6WEgy+3bt0933323rWNvvvlmffazn/V4RMgFQ0NDuu2222wdu2jRIq1YscLjEWWX49ECrQ1PUMRyfp9p3oRSrby+ydFi5WSUFwa1anmTHl/XqrcPh22f91JzlwYjY/rrq2c62pEpV9ldCC1JfSNUGoB8kDWh4corr9TixYszPQxkua1bt9o+tqmpSR/5yEc8HA1yRU+P/Z10Jk2alFffq+YTg3pw7T5FLOcLXtMdGE4pDgV033VN+rv1rXptf6/t87Yc6NXDz7fo3mtnqTiU3jFnm9JC+3//SJQKDZAPuJ0Co8RiMdvH+pw8MhZ5zbLsT3ry6Xu169iAVj7XrP4R54FhfkOpHrgh/YHhlFDAp68sm6Xr5jjbEvbdI2GtXNOsvjzfFag4aP/fbWTM/u8yAHMRGmAUJ5M7v5+vN+whNPy29zsGtGrtPg1GnLeeLGgo08rrmzJ+t97v8+mOJdP10YUTHJ2398Sg7l29V52D+durXxSy//s5QqUByAvMqmAUJnfwAhWs37TjaL8een6fhkadB4aFk8q18obMB4ZTfJI+c/EU3XbhZEfnHewd1j3P7NGRvhFvBpblioP2pwfDUdY0APmA0ACjOJncUWmAXYTR/2tnR7+++kKLq8Bw9sQyrbh2loocTDjT5WPnNujPLpsmJ/98x/ojumf1XrV2DXk3sCxV5CD0jYxRaQDyQfb9sgMJMLmDF/henfTukbAeWuuuwnDe5PKsaElK5KZ5dbrzypkK+u3/G/YMjeq+Z/dqZ0e/hyPLPi/stf+07JFR1jQA+YDQAKMwuYMXqGCdbEl69MVWDUedTwDPn1KhFdc2qjALKwynW9pYrfsdhpuByJhWrd2nre32d2Iy2do9nfrB5nbbx7MQGsgP2f8LD3wIkzt4Id/D6FuH+rTK5RqGC6ZW6J5rZ6nAgMBwynmTy/XQ8tkqL7K/6/hINKbH1rVqXXOXhyPLvGd3ndD3Nh5w9ITs4VHak4B8YM6vPCAmd/BGPu/Ktf1Qnx5d16qIiwrDBVMrdPc1s4x8GNqc+hI9ctMcRw8xG4tZ+vaG/frVjmMejixzTlUYnEYAKg1AfjDvlx55jdAAL+Tr9+rNg3167EV3geGiaZW655pGIwPDKdOrivT4LXM1qbzQ9jmWpB+9fkhPbTvs3cAywE2F4ZTZtUUpHw+A7GPurz3yEu1J8EI+hoY3D/bp8XWtiri4S3zh1Ap9ZdlMhQLmfxYTygr06M1zNLOm2NF5T7/ToR+8dlAOvjpZy22FQZJuXVCjW+c7e4AeADMxq4JR8nFyB+/lWxjdlkRguGhape42vMJwuuqSkL5642zNbyh1dN7q94/rG6+0KRozNzms3dPpusJw64Iaffo8Zw/OA2Cu3PnVR14gNMAL+fS92treq8fXtbgODHctm5UTFYbTlRUG9eANs3XB1ApH561v6dYTLteEZBqBAYAThAYYxckdYcCufAkNW9t79cRLrRp18TCuy2ZU6e5rcjMwnFIY9Oveaxu1ZFaVo/PeaO/Vquf3aSBizpORCQwAnCI0wCj5vMsNvJMP7UlvJBEYLp9Zpb++2tlD0UwV9Pt051UztfysOkfn7Tjar/vXNKtnaNSjkaUOgQGAG2Ze/ZC3nEzuTL4jjPTK9UrDprYePbEuicBwVX4EhlP8Pp9uv3yabrtwsqPzWjoHddcze3Q0HPFoZMkjMABwi9AAo+T65A6Zkcvfq01tPXpyvbvFuld8EBgCeRQYPuxj5zbo84unysk/eUc4ontX79H+7iHvBuYSgQFAMggNMArtSfBCrrYnbWzr0d+5DAxLZlXpzjwODKfcsqBeX1w6w9Hn0DU4qhXPNmv3sQEPR+YMgQFAssy5+gHK7TvCyJxc/F5t/KDCMOYqMFTrS1cSGE65uqnG8Taz/SNRPfBcs7Yf6vNwZPYQGACkAqEBRqHSAC/kWmh4tbXbdWBY2litO69ydmc9H1w8rUIrr29USUHA9jnD0ZgeeaFFm9p6PBxZYgQGAKnCrApGybXJHbJDLrUnvdrarb9/Zb+rwHDdnFrdeeVM+fl/54wWTirXwzfOVmVR0PY50Zilr7/cprV7Oj0c2ZkRGACkUnZf/YDTsHsSvJArYXRDS7eeXO8+MNxxxXRHi37zUVNtiR69ea7qSkO2z4lZlr638YCefrfDw5H9JgIDgFQjNMAotCfBC7nwvXphb6eefKVNMQd/l1Oun0tgcGJKZaEev+UsTakstH2OJemprYf11LbDribyThAYAHghO69+QBy5ckcY2cX0CtYLezr1nY0H5CIv6Ia5tfqLywkMTtWVhvT4LXM1t77U0XlPv9Ohb21wVw2yg8AAwCuEBhjbZC42AAAgAElEQVTF9MkdspPJYfT5PZ36zib3geF2AoNr5YVBrVrepPMmlzs676XmLv3tS62KjNn/PbODwADAS4QGGCUX2kiQfUxdCL12T6e+6zIwLD+rTrfTkpS04lBA913XpMtmVDk6b8uBXj38fIuGRsdSMg4CAwCvZc/VD7DB5DvCyF4mfq/W7j5xcpLoYpZ447w6/fnl05QdfxPzhQI+/c2ymbpuTq2j8949EtbKNc3qG44m9f4EBgDpQGiAUWhPghdMCw3P7T6h721qdzdJPHuC/uwyAkOq+X0+3bFkuj660NkEfO+JQd27eq86B0ddvS+BAUC6EBpgFNqT4AWT2pPW7Dqhf3QZGD6ycIL++JIpBAaP+CR95uIpuu3CyY7OO9g7rHue2aMjfSOOziMwAEgnZlUwCpUGeMGUSsOvdhzTP252Fxg+unCCPnvxlJSPCb/tY+c2nKzmOPiqHOuP6J7Ve9XaNWTreAIDgHQjNMAopkzuYBYTvle/fO+YfvT6IVfnfnRhgz5DYEirm+bV6c4rZyrot/996Rka1X3P7tXOjv6ExxEYAGQCoQFGoT0JXsj29qRfvtehH7/hLjB87JwGfeZiZ+0ySI2ljdW6//omFYcCts8ZiIxp1dp92tree8Y/JzAAyBRmVTAK7UnwQjZXGv7z3Q79+I3Drs792LkNuu0iAkMmnTe5XA8tn63yoqDtc0aiMT22rlXrmrt+478TGABkEqEBRqHSAC9ka2h4+t0O/fPWJAKDwwW58Mac+hI9ctMc1ZSEbJ8zFrP07Q379asdxyQRGABknv1bH0AWyNbJHcyWje1JT7/Toae2uQsMf7hoov7w/EkpHhGSMb2qSI/fMlcPrGnWkbC9XZIsST96/ZC2Hw7rrYN9BAYAGcWtWBiF9iR4IdvCaDKB4ZPnExiy1YSyAj168xzNrCl2dN52AgOALEBogFFoT4IXsik0/HT7UdeB4VPnT9IfLCIwZLPqkpC+euNszW8o9fR9CAwAUo1ZFYySTZM75I5saU/66fYj+vlbR1yd++kLJukTiyameETwQllhUA/eMFsXTK3w5PUJDAC8QGiAUWhPgheyIYz+2/Yj+vlbR12d++kLJun3zyMwmKQw6Ne91zZqyayqlL4ugQGAVwgNMArtSfBCpisN//rmEf3CZWD4owsJDKYK+n2686qZWn5WXUpej8AAwEvMqmCUbLgjjNzj5HuVav+y7Yj+/W3ngcEn6Y8vmaLfO5fAYDK/z6fbL5+W9Pa4BAYAXmPLVRiF9iR4IRNh9NR2mr/+YB9+J3yS/mTxVP3OgvqUjAWZV1YUlE9ilyQAWYvQAKPQngQvpDuMWpJ+tOWQfr3TXWD43OKpuoXAkDN4cBsAExAaYBTak+CFdIZRS9L/3HJQ/73zuONzfZI+d+lU3TKfwJArCAwATEFogFFoT4IX0hVGLUk/fO2gnnnfXWD4/KVTdTOBIWcQGACYhNAAo9CeBC+kIzRYkv7ptYNa7TIw/Oll03TTvNTssoPMIzAAMA2hAUah0gAveB1GLUk/2NyuZ3edcHwugSH3EBgAmIjQAKOwpgFe8PJ7lVRg8ElfWDJD18yucXwushOBAYCpCA0wCu1J8IJXFSzLkr796n6ta+5yPCa/z6cvLJmuZQSGnEFgAGAyQgOMQnsSvOBFGLUs6Vuv7tdLBAaIwADAfIQGGIX2JHgh1d+rmGXp268ecB0Y/mrpdF3dRGDIFQQGALmA0ACjEBrghVRWsGKWpW9tOKCX97kLDF9cOkNXNVU7PhfZicCAVBoeHtaOnTszPQwYrrioSAsWLHB8HqEBRqE9CV5IVXtSzLL0zQ37tX5ft/NBjEX16bNLNad4SIcPDzk/H1lnfUu3nnrjkKvAcMOcKi2rj+rw4cOOzissLFRtba2Ld4QJWltbdfXVyzI9DBhu3rx5euP1LY7PIzTAKCyEhhdSEUZjlqVvvrJf61ucBwa/z6dlZcf0yat+1/G5yE3rJN3t4rylS5do9TPPpHo4AEBogFloT4IXkg2jMcvSN17Zr1dcBIag36cvXz1LI229js8FACBduBULoxAa4IVkvlfRmKW/fanVdWD4m2WzdOmMSsfnAgCQTlQaYBTak+AFt+1J0Zilr73Uqi0HnFcJTgWGxdMJDACA7EdogFGoNMALbsJosoHhK8tm6RICAwDAEIQGGIXQAC84/V6dakl63WVguOuaWbp4GoEBAGAOQgOM4qSNhPYk2OXke2X5/HpiXaveaHceGEIBn76yrFEXT6twfC4AAJlEaIBRqDTAC3a/V/5gSG8GmnTUdWCYRWAAABiJ0ACj8HA3eMFOaPAHC3TBnz2mo3LeVlQQ9Ovea2Zp0RQCAwDATIQGGIXdk+CF8cJoIFSoC+/4uurmX+L4tQuDft17baPOm1zudngAAGQcsyoYhfYkeCHR9ypQUERgAADkPSoNMAoLoeGFeKEhUFCki+74umrnXez4NQuDfq24rlHnTiIwAADMR2iAUag0wAtnCqMnA8PfqXbeRY5fr+iDwHAOgQEAkCMIDTAKoQFeOP17FSgo0kV/+aRqz7rQ8WsVBf2677pGLSQwAAByCKEBRqE9CV748PcqUFh8ssLgNjBc36SFE8tSOTwAADKO0ACjUGmAF059rwKFxScrDHMvcPwapQUBrby+SWdNKE318AAAyDhCA4xCaIAXLMtSsKhUF3/xm6puPMfx+aUFAa28oUln1RMYAAC5idAAo9CeBC9ELL8u+eK3VNW40PG5pQUBPXBDk+YSGAAAOYzQAKNQaUCqDUTGtL3obFU1Ol+4XFoQ0IM3zNac+hIPRgYAQPYgNMAohAak0kBkTA+ubVZfwGVgWD5bc+oIDACA3EdogFFoT0KqnAoMe48POj63rDCoB29o0mwCAwAgTxAaYBQqDUiFgciYHnyuWXtPEBgAALCD0ACjEBqQrP6RqB5cu0/NLgJDZVFQq26crZnVxR6MDACA7EVogFFoT0IyeoejemBNs9q6hxyfW1kU1EM3ztYMAgMAIA8RGmAUKg1wq3c4qpVrmrXfRWCoKg5p1fImAgMAIG8RGmAUKg1wo2doVA88t891YHho+WxNry7yYGQAAJiB0ACjUGmAUz1Do1r5XLMOdA87PreqOKSHbpyt6VUEBgD5afny5aqvr8/0MHLa1q1btWvXrkwPY1yEBhiF0AAneoZGtXJNsw70uAsMD984W9NyODBcdtllKi6m5cpLO3bsUEdHR6aHAbh2//3364orrsj0MHLaF7/4RUIDkGq0J8GunqFR3b+mWe0uAkN1ycmWpFwODJL04x//WHPnzs30MHLaJz/5Sf3sZz/L9DAAIGmEBhiFSgPs6B482ZLkJjDUloT01ZvnaFJ5oQcjAwDATIQGGIXQgPF0Do7qvtV7dSQ84vjcutKQHr6JwAAAwOkIDTAK7UlI5MTAqO5/1n1g+OpNczWxvMCDkQEAYDZCA4xCpQHxnBgY1X3P7tHRcMTxuXWlIT1y01w1EBgAADgjQgOMQmjAmSQTGOpLC/TIzXM0oYzAAABAPIQGGIX2JJzuxMCoVjy7Rx0EBgAAPENogFGcVBqQ+44PRLRi9V4d63ceGCaUFeirNxEYAACwg9AAo9CehFOO9Ud037PuAsOkikJ99aY5qi0JeTAyAAByD6EBRqE9CZJ0pG9E9z27V52Do47PnfxBYKghMAAAYBuhAUah0oAjfSNa8exedbkMDI/cPEfVxQQGAACc4FYsjEKlIb8dTiIwTKkkMAAA4BaVBuQsKg255VDvyZak7iF3geHhGwkMAAC4xa1YGIX2pPyUisDAGgYAANyj0gCj0J6Ufw71juj+Ne4Cw9TKIj1842xVExgAAEgKoQFGodKQXw72Duv+Nc3qdrGGYWZNsR5aPlsVRfzMAQCQLK6mMAqhIX+0dQ3pgeea1TscdXzurJpirSIwAACQMlxRYRTak/JDW9eQVj7XrD6XgeGh5bNVTmAAACBlmFXBKFQacl9rEoGhsZbAAACAF7iywiiEhtzW0jmkB9Y2K+wqMJRo1fImlRfyswYAQKpRaYBRaE/KXS2dg64DQxOBAQAAT3GFhVGoNOSmls5BPfDcPoVH3AeGMgIDAACe4SoLoxAacs++zkE96DIwzJtQqpXXN6mkIODByAAAwCmEBhiF9qTcsvvYgFY9v0+DkTHH5xIYAABIH0IDjEKlIXfsOjagh1wGhvkNJwNDcYjAAABAOhAaYBQnoYFKQ/Z6v+NkYBgadR4YFjSU6f7rGwkMAACkEaEBRnHSnoTstLOjXw8/30JgAADAIIQGGMVupYEqQ3ZKJjCcPbFM911HYAAAIBOyJjTccccdKi8vz/QwkOV27Nhh6zjLsrRs2TKPRwMngg1NKr3281KwwPG5CyeWaQWBAQCAjMma0PDOO+9kegjIIZZlaePGjZkeBj5QM+d8XfwHf+wqMJw/pUL3XDNLBUGqRwAAZErWhAYAualu/iW68I6vKxAqdHwugQEAgOxAaADgmboFi3XhX3zNVWC4YGqF7r5mlgoCBAYAADKN0ADAE/VnX6oLb/+a/CHnLUkXTq3QXQQGAACyBldkAClXf/ZlBAYAAHIIlQYAKVW/8HJd+OdPuAoMF02r1F3LZikU4GneAABkE0IDgJSpX3i5Lrz9Cfld7JJEYAAAIHsRGgCkxIRzrtAFf/64q8Bw2Ywq/fXVMxX0ExgAAMhGhAYASZt4wTKd/7mvyhdw/pNy+cwq3XkVgQEAgGzmaWhoamrSxo2bbB27ZMkSVVVVeTkc5ICXX35Z/f394x4XCoW0fPnyNIwI1qT5si74Xcnv/GnNl8+s0l9fNVMBAgMAAFnN09Bw66236qmnfmLr2Mcee0yLFy/2cjjIAeecc45279497nHl5eV6+umn0zCi/LaprUdPrm9TNGY5PveKDyoMBAYAALIf7UkwSiwWs3Wcz8dE1GsbPwgMYy4Cw5JZVfrSlQQGAABMQWiAUSzL3gTV72ePfy+92tqjv3/FbWCo1peunEFgAADAIIQGGMVuaKDS4J1XW7v196/sdxUYljaeDAx+/n0AADAKoQFGoT0ps5IJDNfNqdUdV0wX/zQAAJiH0ACj0J6UOS/u7dQ/bDwgm/8Ev4HAAACA2QgNMIrdSgNS64W9nfqOy8Bw/dxa/cXlBAYAAExGaIBRWNOQfi/s6dR3NrkLDDfMrdXtBAYAAIxHaIBRaE9Kr+f3dOq7bgPDWXW6/bJpBAYAAHIAoQFGYSF0+qzd06nvuQwMy8+q059fPk38KwAAkBsIDTAK7UnpsXb3CX1vU7tc5AXdOK9Of3YZgQEAgFxCaEBOoj3JvTW7Tuj7m90FhlvPnqDPXjKFwAAAQI4hNMAotCd561c7jul/vX7IVWD4yMIJ+uzFU1I+JgAAkHmEBhiF9iTv/Nd7x/S/3jjk6tyPLpygzxAYAADIWYQGGIXdk7zxy/eO6ceuA0ODPnPx5BSPCAAAZBNCA4xCe1Lq/fK9Dv34jcOuzv3YOQ267SICAwAAuY7QAKNQaUit/3y3Q/+81WVgOLdBt11IYAAAIB8QGmAU1jSkztPvdugpAgMAALCB0ACj0J6UGk+/06GntrkLDH+4aKL+8PxJKR4RAADIZoQGGIX2pOT97K2j+tn2I67O/eT5E/UHiwgMAADkG0IDjEKlITk/3X5UP3/LXWD41PmT9IlFE1M8IgAAYAJCA4zCmgb3frr9iH7+1lFX5376gkn6/fMIDAAA5CtCA4xCe5I7/7b9iH5BYAAAAC4RGmAU2pOc+9c3j+jf33YXGP7owkn6vXMJDAAA5DtCA4xCe5Iz/7LtiP7jHeeBwSfps5dM0a1nT0j9oAAAgHEIDTAK7Un2WJJ+9Poh/XrHMcfn+iT9yeKp+p0F9SkfFwAAMBOhAUahPWl8lqQfbTmkX+90Fxg+t3iqbiEwAACADyE0wCi0JyVmSfrhloN6Zudxx+f6JH3u0qm6ZT6BAQAA/CZCA4xCe1J8lqQfvnZQz7zvLjB8/tKpupnAAAAAzoDQAKPQnnRmlqR/eu2gVrsMDH962TTdNK8u5eMCAAC5gdCAnJRPlQZL0g82t+vZXSccn0tgAAAAdhAaYAy7VQYpfyoNSQUGn/SFJTN0zeya1A8MAADkFEIDjGF3PYOUH6HBsqRvv7pf65q7HJ/r9/n0hSXTtYzAAAAAbCA0wBhOQkOutyfFLEvffvWAXiIwAACANCA0wBi0J52UbGD4q6XTdXUTgQEAANhHaIAxaE86GRi+teGAXt7nLjB8cekMXdVU7cHIAABALiM0wBhOKg252J4Usyx9c8N+rd/X7fhcv8+nL145Q1c1EhgAAIBzhAYYI58rDTHL0jdf2a/1Le4Cw5eunKGlBAYAAOASoQHGyNfQELMsfeOV/XrFRWAI+n368tWzdOmMSg9GBgAA8gWhAcbIx/akaMzS119u1Wv7ex2fG/T79DfLZmnxdAIDAABIDqEBxsi3SkM0ZulrL7VqywECAwAAyCxCA4yRT6Eh2cDwlWWzdAmBAQAApAihAcbIl/akaMzS377UqtddBoa7rpmli6cRGAAAQOoQGmCMfKg0RGOWnljXqjfanQeGUMCnryxr1MXTKjwYGQAAyGeEBhgj10PDycDQojfa+xyfezIwzCIwAAAATxAaYAwn7UmmhYbRsZMtSW4CQ0HQr3uvmaVFUwgMAADAG4QGGCNXKw2RaEyPrmvVW4ecB4bCoF/3Xtuo8yaXezAyAACAkwgNMIaT0GDKQuiRaEyPvtiitw+HHZ9LYAAAeO3WW29VKBTK9DByWjjsfA6QCYQGGCPX2pOSDQwrrmvUuZMIDHDvd3/3d1VYWJjpYeS0tra2TA8BSEpXV1emh4AsQWhATsr20DASjemRF1r0zhHngaHog8BwDoEhp2x1sWNWsnbu3Jn29wQAmInQAGPkynMahj8IDO+6DAz3XdeohQSGnLJ29wn9147jmR4GAABxERpgjFxYCD0cjemrL7ToPbeB4fomLZxY5sHIkClrd5/Q9za1y/63GwCA9CM0wBimh4ZkAkNpQUArr2/SWRNKPRgZMoXAAAAwBaEBxjC5PWkwMqZVz+/T7mMDjs8tLQho5Q1NOquewJBLCAwAAJMQGmAMUysNA5ExPbR2n3YfdxcYHrihSXMJDDmFwAAAMA2hAcYwMTQMRMa0au0+7XEZGB68Ybbm1Jd4MDJkCoEBAGAiQgOMYVp70kBkTA+ubdbe44OOzy0tCOjB5bM1p47AkEsIDAAAUxEaYAyTKg0DkTE9+Fyz9p5wHhjKCoN68IYmzSYw5BQCAwDAZIQGGMNJaMhkpSE8HNUDa5vV0jnk+NyKoqAeWj5bM2uKPRgZMmX1+8f1T68dJDAAAIyV+R4OwCYn7UmZqjT0j0S16vl9rgJDZVFQD91IYMg1a3efIDAAAIxHpQHGyOb2pO9sPCCfz6dtB3vVOTDq+Pyq4pBWLW/SjGoCQy6hJQkAkCsIDTBGtrYndYQjen5Pp+vzq4pDemj5bE2vLkrhqJBpBAYAQC4hNMAY2dqetHl/d1LnVxUHVVEUSNFokA1YwwAAyDWsaYAxsrU9aXNbb1Lnt3UN6S//83290Z7c6yA7sIYBAJCLqDTAGNnYntQ5OOrqwW2n6x8Z0yMvtKi8MKgLp1boilnVWjS5XKFAdjykDvYk05J0xYxybUn5iAAASA1CA4yRje1Jm9t6UnpHOTwS1cv7uvTyvi4VhwK6ZHqFls6q1qIpFQr6CRDZLJnAcOuCGk3vq9aTKR8VAACpQWiAMbKxPWnz/h7PXntodEzr93Vr/b5ulRcFtWRmla6fW6vGWh76lm2SWcPw8YV1+sQ5ddqwYU/KxwUAQKoQGmAMJ5WGdLQndQ+OamdHv+fvI518YNyzu07o2V0n1Fhbouvn1urqpmoVh1hAnWnJrGG4dUGNPnFOXcrHBABAqrEQGsbItkrDawd65WBIKdPSOajvb27Xn/xih3645aCOD0TSPwhISr4l6dPnTUj5mAAA8AKVBhgj60KDh61JdgxGxvTfO4/r2V0ntGRWlT5x3iRNqSzM6JjyCYEBAJBPCA0wRja1J4WHo3rvaHpak8YzFrO0fl+3NrT0aOmsKn1iEeHBawQGAEC+ITTAGNlUadjS3quxWHbtxB+zLK1v6dbGth7dPL9ef7BookoLWPOQagQGAEA+Yk0DjJFNoeG1/fYfxDa5ukrT62pUU1qqUMD7SXw0ZulXO47pjqff1/N7OjOy7iJXERgAAPmKSgOMkS3tSQORMb11qM/WsT6fT5OrKhUMBKSqk/9teHRUPYNDCg8NqXdoWNGxMU/G2TM0qu9sPKA1u07o85dO1bwJpZ68T74gMAAA8hmhAcbIlkrDG+29itpsTaooKjoZGD6kKBTSxMqQJlZWSJL6h4fVPTCk7oEBDUZSvxPSvs5B3fPMHl07t1Z/cskUtml1gcAAIBsEAgFVVFRkehhpMTIyopGRkbS9n8/nU3l5edreL5Pc/j0JDTCGk9DgZaVhU5v9XZNqysa/u19WVKSyoiJNq63W8OioOsMDOtHfr6EUBghL0gt7OrXjSL/uvGqm5tTzgDi7CAwAssXcuXN16GB7poeRFo8+9pgee+zxtL3fxIkTtWf3rrS9n4kIDTCGk/YkryoNQ6Njeutw2N4Y5LMVGj6sKBTSlJoqTamp0mAkouO9YR0P9ysaS00L05HwiO5ZvUd/sGiiPn5ug/xpenK2qdIZGK644nJ1dBx18U7m+eEP/6dWrFiRtvcrKChQe/uBtL1fJgXS8GBLIB2cXPNTwe/nejgeQgOMkQ3tSdsOhhWJ2vshKy8uTGrhc0lBgWbU12paXY26+gfU0dun8PCw69c7JRqz9K9vHtFbh8P60pUzVVcaSvo1c1G6Kwx+v18lxcUu3s08RYXp3RLYsqy8+WyBXDHm0Xq/eAJ+WnfHwy0JGCMb2pM2tXXbPramtCwl7+n3+VRXXqazp07WwqmTHVcv4tlxtF9f+tUu7ciS501kE1qSvJWOhy9+mJPfDgDZId2VBh9VunHxCcEYmW5PikRjevOgzV2TJFWXpX7dQFlRkeZObND5M6ZrQmWFfEru7xkejuqB55r1UnNXikZoPgKD97x++OLp0j35AJC8sbH0/n8bSMOW6KYjNMAYmW5P2n44rGGbrUmlRUUqDHrX/VcYCqqxvk7nTp+iypLkwkk0ZulbG/brZ28ddTVRziUEhvSg0gBgPFba1zQwJR4PnxCMkelKw8ZWB61JKWohGk9xQYHmT56o+VMmqThU4Pp1LEk/235EX3+p1faajVxDYEifdF+cCQ2AedK+poFKw7gIDTBGJisNo2OWttlsTZKk2jSFhlMqi4t1zvSpmlZbndTuKRvbevToulZF0lwWzjQCQ3plYtMuWpQAs6R/9ySmxOPhE4IxMhka3j7cp4GIvbsepYWFnrYmxeP3SVOqq3Xu9KmqSGKnmLcO9emJda0aHcuPu7MEhvTLxMWZagNglrEUbTVuVyDAlHg8fEIwRibbk5w90C2zD04rDAY1f8okzaivdb1QetvBPj22riXngwOBITPSvaZBotIAmIZKQ/bhE4IxMrXl6ljM0lYHrUmp2mo1GT5JkyordfbUySoKuXsOw5sH+/T1l1sVjeVmcCAwZE4mtjYkNABmSfeaBr+PKfF4+IRgjEy1J717JKy+4aitY0sKClRckD0PSysrKtQ506e6XmOx5UCvvrlhf87tqkRgyKxMVBpoTwLMEkvzDSsWQo+P0ABjZCo0bNrfa/vYdO2a5ETA59PsiQ2aWlPt6vwNLd36+VtHUzyqzCEwZF4m2gBihAbAKDzcLfvwCcEYmWhPsizpjXazQ4N0sl1pak21mhomuFrn8PPtR/RKi/0tZ7MVgSE7ZKLSIEIDYJQYW65mHUIDjJGJSsOOjn51D47aOra4IKSSAvfPSkiH+vIyzZs8UUGHocqS9A8bD2jv8UFvBpYGBIbskZFKA2saAKOwEDr78AnBGE5+QFL1P//m/Q52TSrNzirD6SpLijVv8kTHz3OIRGN6bF2LOm2GqGxCYMgubnf1SgZrGgCz8HC37ENogDHSXWmwJG1xEhrKMr9rkl1lRUWa7yI4dA2O6vF1LUbtqERgyD5UGgCMJ2alu9KQgbZJwxAaYIx0h4bdxwZ0YsDeXfXCYFAlhdndmnS6sqIizZs0yXFw2Ht8UP/+dodHo0otAkN2YvckAOOh0pB9CA0wRrrbk15zWGUw8R5FeXGh5k5qcNwu8u9vH9WOo/0ejSo1CAzZi0oDgPGkfU0Dz2kYF58QjJHuSoOT9Qy1GX4KdDIqi4vV1FDn6JyYZenJ9W0K23x+RboRGLJbZjZPotKgnHviCnLZ2Fh6QwOVhvERGmCMdIaGfZ2D6ghHbB1bEAyqtKgoqffLtLryck2qqnJ0TufgqL63ud2jEblHYMh+VBoyxcR6KPIVz2nIPnxCMEY625M2tTmoMpSW5sSleEZdjaod7gC1qa1Hrzl4+J3XCAxmYE0DgPGwpiH7EBpgjHRWGjY7CA3VWfpANzdmN9SrqCDk6JwfvNaugUh6f9zPhMBgDioNAMZj8ZyGrMMnBGM4uegnExrauod0uG/E1rGhQEDlxYWu3yvbBPx+ndXQIL+Dz69rcFRPbT3s4ajGR2AwSyYuzlQaALOku9LAlqvjIzTAGE4u+slMSja32W+3qS0rzciDqrxUXFigabU1js5Zu/uE3jkS9mhE4783gcEwGWhPihn0bBEA6X9OA+1J4yM0wBjpak/avL/b9rG51Jr0YROrKlVdan9HKEvSDzYfTPtD3wgMZqLSAGA8ad9ylfakcfEJwRjpaE861DuiA93Dto4NBgKqMHzXpHh8khon1Cvk4M7Lwd5hrX7/uHeDOg2BwVyZWAid7ruWAJKT9i1X/VQaxm6Kbb8AACAASURBVENogDHS0Z60qc1BlaG0JCOTn3QJBQKaUV/r6JxfvN2hvjQ8u4HAYLaM3NGj0gAYhUpD9uETgjHS0Z7k7IFuZa7ewyR1ZWWqLrHfptQ/EtVPtx/xcEQEhlyQiXVA7J4EmIUtV7MPoQHG8Po5Dcf6I2rtHLJ1bMDvV2VJbrYmnW7mhFoFHHyez+3u1P5ue5+jUwSG3MCaBgDj4eFu2YdPCMbwutKwqa3b9mS0urQk53ZNiqcwGNLUmmrbx8csSz/ZlvpqA4Ehd2RkTQOVBsAoMSoNWYfQAGN4HxocbLXq8MnJpptYVaGSggLbx29t79XOjv6UvT+BIbdkYj90Kg2AWdK/piE/bgQmg9AAY3jZntQ5OKq9xwdsHXuyNcl+n38u8MmnGXXOFkX//K2jKXlvAkPuodIAYDxjMSoN2YbQAGN4WWlw0ppUVVKcl3ckKkuKVeXg2Q1vHw7r3SQf+EZgyE2saQAwHnZPyj58QjCGl6HB2VOgc3/XpHhm1tXKSV76tyR2UiIw5C4qDQDGk+7nNPh9TInHwycEY3jVntQzNKpdx+y1Jvn9PlWWFNt+7VxTFAppQmWF7ePf7xjQ9kN9jt+HwJDbMnFHj9AAmCXd/8/SnjQ+QgOM4VWlYfP+XsVsvnZlcYmj7Udz0ZSqavkdfL7/su2Io8k/gSH3ZaLSQHcSYJZ0P6eB9qTx8QnBGE7uOjiZlLzm5IFu5fm1a9KZhIIBNVRW2j5+X+egtrbbqzYQGPIDlQYA40n7mgYqDeMiNMAYTioNdicl4eGo3jtqb2tQn3yqKs7f1qQPm1Jd5aji8o+b2se900tgyCMZqTRQagBMwpar2YfQAGN40Z60pb1XYzF7r1tVWqwgdyIkScGAXxMdrG3oHIzo6+vb4v45gSG/ZKTSYFFpAEzCw92yD6EBxvCiPWlzm/3WpJo8e6DbeCZXVzkKURtbu/VPrx38rYoDgSH/ZGZNA5UGwCTpDvqsaRgfnxCMker2pIHImN4+bO85Aj6fT9WEht8Q8DurNkjSM+8f1xMvtSjywVZ6BIb8lImtDS3WNABGSfeWq1QaxhfM9AAAu1LdnvRGe6+iNluTKoqLFQyQsU83qapSHb29GnXw4/7a/l498kKLFk0u11NbD7sKDB9fWKdPnFPn4kxkAyoNAMaT9jUNPKdhXIQGGCPVz2nY5KQ1qcz+k5DzScDv16SqKh3o7HJ03tuHw7arPKe7dUENgcFwmVhwyO5JgFnYcjX78AnBGKm8Uzg0Oqa37LYmycd6hgQaqioVSlNZl5ak3EClAcB4eLhb9iE0wBipbE/adjCsSNTeD1J5cWHaJsUmCvh8mlRl/7kNbhEYcgfPaQAwHioN2YdPCMZIZXvS5rZu269VU1pm+9h81VBZ4el2tB9fWEdgyCFUGgCMh+c0ZB9CA4yRqkpDJBrTm4fstiZJ1axnGNfJnZS8qTawhiH3UGnIAmQoZLm0VxroKBgXoQHGSFVo2H44rKFRez9GZUVFKgyyX4AdDZUV8qf4DjItSbkpE6GBQsNpuKmKLJfu6iDtSeNjNgRjpOo5DZta7bcmVZexAHo8AyMjOh4OqzM8oFgKf+QJDLkrE+1JVBoAs6S70sBC6PFlTWjYsmWLenrsb4GJ/NPc3Gz72BdeeEGHDh36rf8ek0+bYgsk2ftxqGXXpDMaikTU2T+gE+F+DY+Opvz1f++cOv3+QlqSclVmKg2UGgCT8JyG7JM1oeHLX/5ypoeAHPLkk0+e8b/XL7xcF3/h7229RklhoQpDWfO/SMZFolF19vfreLhfgyMRz97n1gU1BIYcl5FKg0WlATAJW65mH2ZEyCuTLrzW9rG1LIBWNBZTd/+AuvoH1DM05PndWlqS8oOPSgOABCzLysDuSVQaxkNoQN7w+QOacO4S28fX5ulWqzFL6h0cVGf/gLr6+1O6TiERAkP+YE0DgEQy8f9rIEBoGA+hAXmj9qwLVVBWZevY4sICFRWEPB5RdukbGtKJcL86+wc0luYf7CmVBQSGPJKJ3mEqDYA5MhEaqDSMj9CAvDHxgmtsH5svC6AHIxF19Q/oeF9YI9FoRsZwybRy/X+XT87IeyMzMlBokEWlATBGundOknhOgx2EBuQFn8+vhvOW2j4+l0PDSDSqroEBnegLa8DDBc1n4vf5dHZDsSqLgtq4v0//Yz4tSfmI3ZMAJJKuttgPo9IwPkID8kL1nEUqrLS3I09RKKTiwgKPR5Re0bExdQ8M6kS4X31DQ2l/GGxjdZGWNlZoyYxKVRSevJvzP+bVamZ1YZpHgmzAmgYAicQyUWkgNIyL0IC8MPGCZbaPrc2RB7rFLEu9g0M6Hg6ru39QVpqjwtTKQl06vVxXzqxUQ9lvrw8hMOSvTFycCQ2AOTKyENpPe9J4CA3IfT6fJi66yvbhpoeGvuHhkwuaw/1pX9BcWxLUJVPLden0cs2rZ8tanFkmKg20JwHmyMiaBioN4yI0IOdVz1qoouoGW8cWhoIqLjTvDvhgJKIT4X4dD4c1Gk3vj21JyK+LppwMCudPLpU/E6tcYZTMVBoIDYAp2HI1O3kaGi5dvFgvPL/Wy7dAHlm/fr3e3L79jH82NDgU987E/27vXoPkOs86gT+ne+5XyZIyiqy7I1uWZEtmfUti+YItu2zj+0124lx8IVDsBTZAEYraLXbZVJZiqS0Kalk+sUXg68bZhISQBFgHYjsBZ6FsCE4Mji/guzU3zfT0dO8HzxCVre7p6Z4+53TP7/fRM6fP4y67p//ned/n7fuRH2v4HptGRqJTvvLOlxfi9amZeGVyKuYWFlK9d28xifMmhuPSnaNx6c6x6C92yrtGHug0APXoNORTW0PD+Ph4XHLJJe28BetIs/8t/Zv/8/14ZbqxL9VnDOd7SU15cfHtEanTUzF9cj7VXQpJEnH25sG39ynsGo+Rfus/aY49DUA92XQa/E1bieVJdLVn35xrODD09fTE8MBAmytavUqlGm/Nzsark1Nx4uTJ1EfRLW9ovnLPeGwZXl8H3tEeOg1APQ53yyehga72+A+mGv7dTcPDuVmaVI1qTJ6ci1cnp+PNmfRPaN481BMXbR+NK/duMOWINZdJp6Gq0wCdIu2/eREOd2uE0EBXe+KFxkPDGaPZT02amZ+PV6em4vWpmVhIeU3nSF8xfmTbSFy+ZzwObR3KTYCi++g0APVkcYK7TsPKhAa61g/emouXJhs78bi3WIyRgWyeqJ8sleL16Zl4bWo69Q3NfcVCHJoYiiv2jMeF20eipyAq0H6JPQ1AHVlshHZOw8qEBrrW4y9MN/y7m0aGI0nx2XqpXI7XZ2bijenpmDo5n9p9IyIKSRL7Ng/EFbvH44O7x2Kgx9MV0pVFNNVpgM5hT0M+CQ10rcefb3xp0sbh9i9NKlcq8eb0TLwxPRNvnTyZ+peY7eP9ccXu8bhi71iMD/hfn+yYngTUk0mnwTkNK/LNga70T1OleP6txp7g9xSLMTbYnqlJlWrEidnZeH367a5C2pOPtgz3xvt3jcbVezfE1tG+VO8NtWSxpyF0GqBj6DTkk9BAV3psFVOTNg4PrfmXmMm5uXhjejpem5qO8mK6H34j/cW4ZMdoXL57LM7ZYkMz+aPTANTjcLd8EhroSqtZmrRpZGRN7jlbKr198NrkVMyXy2vymo3qLyZxwZkjcfnu8Tjy3uEo2tBMjmXxx9meBugclUr6/7863G1lQgNd59WZhfjHN+ca+t2eQiHGh5pfmjRfLscbMzPx2uRUzMw3NqlprRSSJA5ODMbR3eNx6c6x6C8KCnSGLJYnZfElBGjOYiX9TkMWU906jdBA13ns+clo9OvBhuHVT00qLy7GmzOz8drUdEyePNnwvdbK3o0DcXTvWFy2azzG+j0ZofM4pwGoJ4vlhDoNKxMa6DqP/2AVo1aHhxr6vUq1GidmT8arU1Px5vRsVFOOCtvH++PSnaNx+e7xmBjpTfXe0A6FQiHVLwb2NEDnqGSxpyHRaViJ0EBXeWN2Ib73+smGfrdYKMT4UP3QMDk3F69NTcfrU9OpH2u/aagnLt4+GpfuHI39WxoLN9Ap0u426DRA58im0yA0rERooKs8/sJ040uThgajcJoNw7OlUrw2NR2vTk3FQjndpx1DvYW48My3g8IF24ajkMVoSkhBoVBIdUKKTgN0DiNX80looKs0OzVpvrwQr0/NxCuTUzG3sNCO0mrqLSZx3sRwXLpz1IZm1o3UOw2p7z4CmpXN4W72NKxEaKBrnJgrx3dfbWxpUiFJYri/P145MRmvTk/F9Mn5VL9SJEnE2ZsH396nsGs8RmxoZp1J+6meTgN0jiymnek0rExooGs88XzjJy5XqxHfee751J8+7t04EJftGYsP7ByNjYM2NLN+2dMA1KLTkE9CA13j8RcmG/7dNMPC5qGeuGj7aFy5d0Ps3tif2n0hz9IODToN0DkqVXsa8khooCtMzy/G0680tjQpDSN9xfiRbSNx+Z7xOLR1aJUnQUD3ExqAWrLoNBR0GlYkNNAVvvXiVCxmfOJrfzGJi7ePxgd2j8XhrcNRPM1kJuBtaT/VszwJOkcm05Oc07AioYGu8PgPGp+atJYKSRL7Ng/EFbvH44O7x2Kgx4cONCL1PQ06DdAxMjnczYO+FQkNdLzZhUr8zcuzqd5z+3h/XLF7PK7YOxbjA/43gtVKv9OQ6u2AFmRzuJvlSSvxbYeO9+0Xp6KcwtKkLcO98f5do3H13g2xdbSv7feDbmZPA1BLJnsabIRekdBAx3v8+em2vfZIfzEu2TEal+8ei3O22NAMa8WeBqCWLM5p0GlYmdBAR5srV+Kv/3lmTV9zsLcQF28fjaO7x+PgxGAUUn4iCuuBTgNQi05DPgkNdLS/enEmSuXWvwwUkiQOTgzG0d3jcenOsegvCgrQTmn/gf7yl78c0zPNdyV7enpidGS06esLhSTGxsabvj4iYsOGDS1dP75hPJIW+qVjY6MtjaUcGR6O3t7mD7UcHByM/v7mz7oZGBiIgYGBpq8nPVl0BoWGlQkNdLQnVnGg2zslScT+LUNxdNdYXLJzNEb6tCYhLWl3Gr717W/Ht7797VTvSXfp7++PwcHBpq/v7e2N4eHhpq8vFosxNtpKcC3E2PhY09dHtB5cx8bGG5pS9Oyzz7Z0n2YIDSsTGuhYpcVKPPnS6pcmbR/vj0t3jsblu8djYqT5p15A8/yBptPMz8/H/Px8S6/x6quvrlE1rDV7GlYmNNCx/t8/zcRcg0uTNg31xMXbR+PSnaOxf8tQmysDVpJ2pwGgHg8yViY00LFWOtBtqLcQF575dlC4YNuwDc2QIw5SAvJEp2FlQgMdqVypxl/907uXJvUWkzhvYjgu3TlqQzPkWCHxVA/ID52GlQkNdKS/+eeZmCm9PZItSSLO3jz49j6FXeMx0u9pAeSezh+QE0mSWDLZAKGBjvTY89P/sqH5yj3jsWXYhmboJJ7qAXnh86gxQgMd6fj5m2LjoKAAncpTPSAv7GdojGhFRxIYoLN5sgfkhc+jxniXAEidTgOQF0JDY7xLAKTOH2kgL3weNca7BEDqdBqAvLCnoTFCAwCp82QPyAufR43xLgGQOp0GIC90GhojNACQukJBaADyQaehMd4lAFKn0wDkhU5DY4QGAFJXSPz5AfJB57MxPrUBSJ1OA5AXxYJOQyOEBgBSZw0xkBeJz6OGeJcASJ1OA5AXHmI0xrsEdXzx+38Sf//Gs1mXAV3Hkz0gL2yEboxPbajjb197Jn76q/85fu3x34k3505kXQ50DZ0GIC90GhrjXYI65iulqEY1vvbcX8THv/jz8dmnPhcLiwtZlwUdzx9pIC90GhrjUxvqmC//MCDML87H7z/1ufiJP/qleOKl72RYFXQ+nQYgLzzEaIx3CeooVUrv+mcvTb8c//Eb/z1+8c9+NX4w+WIGVUHn80cayIti0edRI7xLUEdpsVzzZ0++/HT81Ff+Q/z2k78fs+WTKVYFnU+nAcgLh002xrsEdZTK83V/Xq4sxiPP/HE8/KVPxZe+/6dRqVZTqgw6mxNYgbywp6ExPVkXAHlWqjS26fmNk2/Fb/zl78aXnv3T+MkLPhTnbt7X5sqgs6Xdabj88qPxs5/82Xf98xMnTkS1hbA/NTUZi4uVpq+fnpmO8kLtjuZKZk/Oxvx8/Ycb9cydnIu5+bmmry/Nl2L25GzT1y8slGNmZrrp68vlckxPNX99pVKJE5OTTV8fEfHWW2+1dP3k5GRUKs3/N0TrjIBujNAAdZy6EboRz7z5j/HJr386fnTX++PBw/fExoHxNlUGnS3tPQ2bN2+Oq666MtV7QhqmpqZicXGx6eunp2eivMq/daeanZ2N+dK79/81an5uLk6ebCG4luZjdrb5JcIL5YUYHhpq+vr1RGiAOhYa7DScanlE6zde+Mu4c//1cc/+G6O32NuG6qBzpb2GuJVuAuTZ6OhoS9dv2LBhjSqh2+nHQB3z5RaenhjRCjWlvTzJ8g+A1ggNUEcznYZ3MqIV3i3t5Uk6DQCtERqghkq1EguV5jcovpMRrfBD6XcahAaAVggNUMNadBneaXlE60N/+AtGtLKupT2tRKcBoDVCA9TQyn6Glbw5dyJ+4y9/N376q78cf/vaM227D+SVPQ0AnUVogBrqnQa9VpZHtP7a478Tb86daPv9IC/saQDoLEID1FCqtK/TcKrlEa0f/+LPx2ef+lwsLK79sijIm7Q7DVWdBoCWCA1Qw2oPdmv5fka0so7oNAB0FqEBalhIqdPwTka0sh6k3GiwpwGgRUID1DC/mE1oWGZEK91MpwGgswgNUMN8DvYWLI9o/fgXfz4+98xXjGila6Q+Pamq0wDQCqEBaljIuNNwqsn5qfifT/6BEa10jbQ7DZYnAbRGaIAa8tBpeKflEa2f/uZvxauzb2RdDjQt9elJunQALREaoIZSjjoNp6pGNR59/lvx8Jc+ZUQrHauQpN1pEBoAWiE0QA1pj1xdrVNHtD76/LeyLgdWRacBoLMIDVBDqZLv0LDspemX49Pf/K34xT/71XjuhBGtdAZ7GgA6i9AANeR1eVItT778dPzrP14a0bpgRCv5ptMA0FmEBqihUzoNp/rhiNafM6KVXEt0GgA6itAANZRyvqehnsnStBGt5JpOA0BnERqghvlKZy1POh0jWskrexoAOovQADWUumSUqRGt5FHanYbQaQBoidAANXTaRuiVGNFKnhQK6YYGnQaA1ggNUEMeT4ReC0a0kgdpL0+ypwGgNUID1LDQZZ2GdzKilSylvTypUtVpAGiF0AA1dGun4VRGtJIVnQaAziI0QA3d3mk4lRGtpC2JtPc0CA0ArRAaoIb5xXLWJaTOiFbSotMA0FmEBqih26YnNcqIVtKQ+p4G05MAWiI0QA3rNTQsM6KVdtJpAOgsQgPU0C2Hu7XKiFbaQacBoLMIDVDDeu80vJMRrawlnQaAziI0QA2lik7DO717RKuntzRJpwGgowgNcBoLiwvOLKhjeUTrz3ztV+K7b3w/63LoQIVCuqFBpwGgNUIDnIYuQ2P+/o1n42e++itGtLJq9jQAdBahAU7DJujGGdFKM1Lf0yA0ALREaIDTsAl69YxoZTXS7jRYngTQGqEBTmNeaGiaEa00Iu1Og037AK0RGuA0SpVy1iV0PCNaqSf9TkOqtwPoOkIDnEaprNOwFoxopRYboQE6i9AApzFvM++aWh7R+tNf/U/x9GvPZF0OOVBIHO4G0EmEBjiNBXsa2uKZN/8xfvbrnzaiFZ0GgA7Tk3UBdK75xVLT4zXLlcWYW5xv+t5TpZmmrz25MBeLKyyT+bs3/qHp16e+5RGtT7z013Hn/uvjnv03Rm+xN+uySFnqI1d1GgBa0rbQ8LXn/iKeO/HCqq9brFTi5OJcU/esVqsxszDb1LUREbMLJ5tecz2/uND8F+hqOU4uNPcFuhrR0r/zyfJcLFYWm74emrU8ovVPnvtmfOy8O+PojouyLokU6TQAdJa2hYb/+/wT8cRL32nXywNdYnlE65FnD8RPHPlQ7Bo/M+uSSIFOA0Bnadun9uKikZVA475jROu6otMA0FnaFhoWqkIDsDpGtK4fhYIToQE6SftCg3XyQJOWR7T+uz/+ZSNau1SS9onQOg0ALWnj8iRz7oHWfO+t54xo7VLpnwit0wDQCsuTgFxbHtH68Jc+FZ996nNNTykjX1LfCK3TANCStn1qly1PAtbQ8ojWn/ijX4pHn/9W1uXQotQ7DaneDaD7CA1AR1ke0fqpP/vVeO7Ei1mXQ5PS7jTY0wDQmjaGBsuTgPYxorWz2dMA0Fl0GoCOZURr5yokOg0AnaSNI1d1GoB0GNHaeXQaADpL+0KDE6GBlJ06ovUVI1pzzZ4GgM7SvnMajFwFMrA8ovXHl0a0loxozSWdBoDO0pbQUI1qLHqqA2RoeUTrTxrRmkuFQrqhIUJwAGhFW0JDubIYVVOxgRwwojWf0u40RFiiBNCKnna86KLJSUDOLI9ovfGsH42PHLo9hnoHsy7pXV544cW49tprsy4jFTMzM6nf89Ch8zIJK2nbvmNHfOWPvpx1GUCXaUtoMDkJyKPlEa1/8tw3496DN8fN77sm9dGf9SwuluP5F17Iuoyu9cKL66PTlKS8yRxYH9q0PEloAPLLiFYAWJ22hIYFy5OADmBEKwA0pk2dBiMOgc5gRCsArMzyJIAwohUA6mlTaDDWDuhMRrQCwLu1aU+DTgPQ2ZZHtP72k78fswsnsy4HADLVltCwKDQAXWB5ROvHv/hz8blnvhKVqi4qAOuT6UkAKzCiFYD1zkZogAYZ0QrAemXkKsAqGNEKwHrUptBgeRLQ3YxoBWA9ERoAWmBEKwDrQXs2QlftaQDWFyNaAehm7Rm5uig0AOuPEa0AdCsjVwHW2PKI1n//tf8cf/f697MuBwBaZnkSQJt8941/iE9+/b/EYy89mXUpANCSnna86KIRhABxwcSBePD843HWxp1ZlwIALWlLaLA8CVjPdo6dGR8+eGsc3XFR1qUAwJpoS2goV4UGYP3ZPLgx7jtwS1y39/IoJG1Z/QkAmWjP8iSdBmAdGejpjzvOuT7u2n9D9Bf7si4HANZcezoNFRuhge7XUyjGsT1H4/6Dt8XGgfGsywGAtmnPngbnNABd7uJtR+ITR+6NbSMTWZcCAG3Xpj0NQgPQnc4546x46PDdcWjLOVmXAgCpMT0JoAFnjm6Njx66Iy7bcWEkkWRdDgCkqk3nNOg0AN1hrG8k7tx/Q9x69rXRW2jLRyYA5F57Og2WJwEdbqDYFzftuyaOn3tTDPUOZl1O2/T19UWhYDxsO5XL5SiX/V0EOlubpidV2vGyAG1XSJL44PYL48HDx2NiaFPW5bTdF77whTh27FjWZXS1T33qU/GZz3wm6zIAWtKmcxoW2vGyAG11wcSBeOjwvbF3w46sSwGAXGnTRmhtWKBz7Nu4Ox48/544PHFu1qUAQC6ZngSsW1uGzoh7z705rtt7RRQSE5EAoBYnQgPrzkjfcNy9/8a4Zd+x6Cv2Zl0OAORee0KDkatADvUUinFsz9H46KE7Yrx/NOtyAKBjtOlEaMuTgPxIIonLdlwYHz/vrnjvyHuyLgcAOk6blicJDUA+nLvpffHw4Xvi3M37si4FADqW6UlAV9ox9t64/+DtcXTHRVmXAgAdr03nNAgNQDbG+0fj+IGb4qazro5ioZh1OQDQFXQagK7QX+yPm/ddHfceuDkGewayLgcAuorQAHS0YqEY1+45GvcfvC02DoxnXQ4AdKU2LU+yERpovwsmDsSPH7kvdo9vz7oUAOhqOg1AxznnjD3x4OF74rwt+7MuBQDWhTUPDZVqNSrVylq/LEBMDG2KD593e1y96wORRJJ1OQCwbqx5aCjrMgBrbLRvOO7af2Pcuu9Y9BZ7sy4HANadtQ8NVaEBWBu9hZ644ayr4v5Dt8Vw71DW5QDAurX2oWFRaABaU0iS+OD2C+PB8++OieEtWZcDAOteG5YnmZxEew309EdPobn/dHsLPdFf7Kv585mF2ZgqzTRbGmvggokD8eD5x+OsjTuzLgUAWLLmoaG32BvXn3Vl09ePtLAEYbBnoPkvk8We6C/U/jJZT7FQiMGewaaujYgY7htqelPnYE9/06fe9hV6o7+nuX/nJCnEcAsHaLXy79xOv/fU/44/eOqRrMtYl3aOnRkPnn9XXLztSNalAADvsOahYbRvOP7tv/rYWr8spKJkeV3qNg9tjPvOvSWu23t5FJJC1uUAAKfRlnMaoFOVyvNZl7BuDPT0xx3nXB937b+h7pIxACB7QgOcYr6ykHUJXa+nUIxje47G/Qdvi40D41mXAwA0QGiAUywsCg3tdPG2I/GJI/fGtpGJrEsBAFZBaIBTzC+Wsi6hK+3fdFY8dPieOLj57KxLAQCaIDTAKRaEhjW1ffS98ZFDt8dlOy7M5bQsAKAxQgOcwp6GtTHWPxp3nnN93Hr2tdHb5BhkACA//DWHU5TKQkMrBop9cdO+a+L4gZtiqIWzSwCAfBEa4BSliuVJzSgkSVy18/3xwPl3xxmDG7IuBwBYY0IDnKJketKqXTBxIB4+fF/s2bA961IAgDYRGuAUpbJOQ6PO3rg7Hjh8PA6/Z3/WpQAAbSY0wClKlXLWJeTexPCW+Nh5d8QVOy8xEQkA1gmhAU4xr9NQ00jfcNy9/8a4Zd+x6Cv2Zl0OAJAioQFOYSP0u/UWeuKaPZfFRw/dEeP9o1mXAwBkQGiAJZVqJcqVxazLyI0kkrhsx4XxwPl3x9bhLVmXAwBkSGiAJSYn/dDhiXPjocPH430bdmVdCgCQA0IDLCktWpq0Y2xb3H/wtji646KsSwEAckRogCXz67jTsGlwY3zowC1x3d7Lo5AUsi4HAMgZoQGWXk3qwwAAB7FJREFUrMdOQ3+xP27ed3Xce+DmGOwZyLocACCnhAZYsp46DcVCMa7dczTuP3hbbBwYz7ocACDnhAZYsrBOxq1eMHEgfvzIfbF7fHvWpQAAHUJogCXz5e7uNJx9xt54+PA9cWjLOVmXAgB0GKEBlsx3aadhYmhTfPi82+PqXR+IJJKsywEAOpDQAEsWumxPw1jfSNy5/4a4dd+x6C32Zl0OANDBhAZY0i0bofuLfXHzvmvi+Lk3xVDvYNblAABdQGiAJaXF+axLaEkhSeKD2y+Mhw7fE+8Z2px1OQBAFxEaYEmpXM66hKZdMHEgHjz/eJy1cWfWpQAAXUhogCWduBF61/iZ8cB5d8XF245kXQoA0MWEBlhS6qCRq5uHNsZ9594S1+29PApJIetyAIAuJzTAklIHdBoGevrjjnOuj7v23xD9xb6sywEA1gmhAZaUcjw9qadQjGN7jsZHDt4eGwbGsi4HAFhnhAZYUqrkMzRcvO1IfOLIvbFtZCLrUgCAdUpogCXzOdvTsH/TWfHQ4Xvi4Oazsy4FAFjnhAZYslDJxzkN20ffGx85dHsc3XFR1qUAAESE0AD/Yn4x23MaxvpH494DN8VNZ10dxUIx01oAAE4lNMCShXI205MGin1x075r4viBm2KoZzCTGgAA6hEaYMl8yhuhC0kSV+18fzxw/t1xxuCGVO8NALAaQgMsKZXT29NwwcSBePjwfbFnw/bU7gkA0CyhAZaUKu3f03D2xt3xwOHjcfg9+9t+LwCAtSI0wJL5xfbtaXjP0Blx/Nyb47q9V0QhSdp2HwCAdhAaYEk7ToQe7RuOu/bfGLfsOxZ9xd41f30AgDQIDbCktIadht5CT9xw1lVx/6HbYrh3aM1eFwAgC0IDLFmLTkMSSVy248J44Py7Y+vwljWoCgAge0IDREQ1qrHQ4sjVIxMH4sHD98T7Nuxao6oAAPJBaICIWFgsR6VaberaHWPb4v6Dt8XRHRetcVUAAPkgNEBEU12GzYMb474Dt8R1ey+PQlJoQ1UAAPkgNEBEzJcb3wTdX+yPm/ddHfceuDkGewbaWBUAQD4IDRARpQY6DT2FYhzbczTuP3hbbBwYT6EqAIB8EBogVh63esHEgfjEkQ/FrvEzU6oIACA/hAaIiPka41bPPmNvPHz4nji05ZyUKwIAyA+hAeLdnYZtIxPxsfPujMt2XBhJJBlVBQCQD0IDRERpsRwREWN9I3Hn/hvi1n3HorfYm3FVAAD5IDRARCQRcc+5PxZ3n3tjDPUMZl0OAECuCA0Qb5/mfGTiQNZlAADkkhOpAACAuoQGAACgLqEBAACoS2gAAADqEhoAAIC6hAYAAKAuoQEAAKhLaAAAAOoSGgAAgLqEBgAAoC6hAQAAqEtoAAAA6hIaAACAunqyLgCA7Pzmb/5mPPLII1mX0dUee+yxrEsAaJnQALCOff7zn8+6BAA6gOVJAABAXUIDAABQl9AAAADUJTQAAAB1CQ0AAEBdQgMAAFCX0AAAANQlNAAAAHUJDQAAQF1CAwAAUJfQAAAA1CU0AAAAdQkNAABAXUIDAABQl9AAAADUJTQAAAB1CQ0AAEBdQgMAAFCX0AAAANQlNAAAAHUJDQAAQF1CAwAAUFfN0FCNWEizEAAAIDvViFKtn9XpNCTT7SgGAADIoWrU/P5fOzQk1VfaUgwAAJA/hXi19o9qqSbfb0sxAABA/lTie7V+1FPzoqT6VFTjrrYUBMC7TExMxOcfeSTrMuhwg4MDWZcAdKpCPF3rRzVDQ5JU/7xaTdpTEADvMjAwEFdddWXWZQCwTiVJ9Ru1flZzedL09Nw3I4nZ9pQEAADkRhKz09Nzj9X6cc3QsHXr1pmoJn/YnqoAAIDcqCZf3Lp160ytH9c93K0a8XtrXxEAAJAn1YjP1vt53U0L1Wq1MD01+d2IeN+aVgUAAORCEvEPw6Nj+5IkWaz1O3U7DUmSVKqR/Ne1Lw0AAMiDSiSfrhcYIlboNEREVKvV4vTUiScjkvPWrjQAACAH/nZkdOz8JEnK9X6pbqchIiJJksVqFH4qIiprVhoAAJC1SjWST6wUGCIaCA0REWNjY49Wo/rrrdcFAADkQTWqvz42NvZoI7/b8Olt1Wq1d3py8kuRxNXNlwYAAOTAoyOjY9ckSVJq5Jcb6jRERCRJslCJuDui9vHSAABA7j1dqcatjQaGiFV0GpZNT09PVCuLX4+IA6u9FgAAyNTTSaH4oyMjIy+v5qKGOw3LRkZGXq5U42hU42urvRYAAMjMo5EUrlxtYIhootOwrFqt9s5MnfiVaiSfjIhis68DAAC01WIS1f82PDr+S0mSLDTzAk2HhmWTk5MfTKLyP5zjAAAAeVP9m2oUfnJsbOzPW3mVlkNDxNsHwE1NTX00ieovRMS+tXhNAACgac9UI/nM6Ojo/1rptOdGrEloWFatVgtTU1M3JNXqh5MkfqwaMbyWrw8AAJxeEjFTrcYXqkny2dHR0T9MkmTNDmde09Bwqmq1Ojg9/dYlEYXLIuJAtRrvSyI2RcR4NLEBGwAAiIiISkScqEa8niTxvYh4OqLyjZGRDY8nSXIy6+IAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC61v8HxpiS4botaREAAAAASUVORK5CYII=" 8 | } 9 | -------------------------------------------------------------------------------- /publish2dataflow.pbitool.json: -------------------------------------------------------------------------------- 1 | { 2 | "version": "1.1.0", 3 | "name": "Publish to Dataflow", 4 | "description": "Publish to Dataflow", 5 | "path": "C:\\Windows\\System32\\WindowsPowerShell\\v1.0\\powershell.exe", 6 | "arguments": "C:\\'Program Files'\\Export2Dataflow\\Export2Dataflow.ps1 \"%server%\" \"%database%\" 1", 7 | "iconData": "data:image/png;base64,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" 8 | } 9 | --------------------------------------------------------------------------------