PowerShell.Module.InvokeWinGet.psm1

<#
  ╓──────────────────────────────────────────────────────────────────────────────────────
  ║ PowerShell PowerShell.Module.InvokeWinGet Module
  ║ Version 1.0.80.0 , Generated on Tue, 24 Jan 2023 23:44:37 GMT
  ║ Description:
  ║ Current Git Revision 91542a8aa9fde1d437d223fbf2fab84edef2007f
  ╙──────────────────────────────────────────────────────────────────────────────────────
 #>



# ------------------------------------
# Script file - Aliases -
# ------------------------------------
$ScriptBlockAliases = "H4sIAAAAAAAACqXOQQqDMBAF0L3gHQb3OYRQK26KVLDrqY42NM1IkmqP30RRKHbVbv8f3p84OtEkUiXRgjjhg2Cwk9Q9ORA1qicBFHrkO4myukidh7xqeCDIFV9RgciMYZM2TrKGotdsCMSRTUPxjl7gAd1twz0oFjd7UTk3f/IjGRuO9wv12vy84HnLnWvR4eoHvtDWoVLUVr6ccAO+2weyjZHDnCVnckbSSBYQlLQOuANPQZiZJbnayeff0RvCyJ0WugEAAA=="

# ------------------------------------
# Script file - ConvertArrayToAppInfoObjects -
# ------------------------------------
$ScriptBlockConvertArrayToAppInfoObjects = "H4sIAAAAAAAACqVX+1PqRhT+3Rn/hzORGUNLMnAf09YpbalS61wFRlQ6Fcpdk0VSk2y6uxGt8r/3bB6QDVGuvXFGk5zn951H1t2d3eRnFoeO9FgIhyy8p1xaHc7J4wXrRNFJOGP9m7+pIwU8QXbtQa/f/WPQP79Q1urN9WHg+lT+6oWuF96awziKGJdiOGex7w44c6gQ9UmqGxFOAjO9T2wH6gWVlJtnJHSJZPyxXZM8pg2ImPBUZu1mbp1YiEchaWA7zPcxM5QLm6iUfU/ISW2BKVA5dQJ3yqmIfSkab4zWekM0h0h6y7hHt0eZEV9Q3fXCk858UjtFJ0JeUS7Q/VqOV/pQT//UBJvJBeF0qmJDe0tuBwchXZi57Uno0odTL6RoV8ERPAOM5pRTK603PJm1KVgBwQShgPK6OamD1QldeEHe+kr5uy3y9yhfYrb9WFpDyRFICjD97c3MAlKL/gO1Xuz79SeQc84WYBySULWgoOCwIMDiAItlFEtjmTfzHiQOqLBtO+POc6dCEq4oX3u3k7s+BtTRrW1wmL7Q7F3RzCdCoul2K6SikCB3vjDYB2WWYz0jD+DT8HYubTgB13ORKE8AdUiMHAkWUKTLuSO3VMCcuPD75XEXep2zrmiA791R2B/h1LOFgGHWnHBE76nPooCGEj55EiwYnfSO+qMhDI8+4dNR92ofPWM4J5YYjgaADrK+rwXkYYoJTUMcIIVlxb0FrWZJB7Nt61Rbpka8tbbHroKPJfuUZWh9SBdhIqscjSFV85WPhjW88yJooXal5BTrh9Jn+I3xLnHmq4laT3aNRFEOcGoP4xuRdLLZbBQSti+4F3RDNx/hxDAiEtdK2Db+Mn/+8fi8fzlQxfjperwYm+M6jG0YW8T6t2P92bR+GH8zeWo23n9c1o3K2Oc0Ih63sILHVPaTOViLrYylUkn2wMpyWCWTc5d7T8qi4VqBSvFV1uc1uOgvAdzDDLZiNcfi23qJHbugmeh9v8FJkvVLjKBwkw/18jUurlP0+JGIOVegESmvoibno6HNf0pOLqvkB9edoXk3kp1nXIZ3IY6UgXsPytGNlt20m2rfvcSyRlxGWOs7nbCS00reNJ1N+hKMnkgQquNHZWetuExdD9JdlH0q18yqj2GlRvoR1FIp8FdRK3JPPL+AbB/Jspv7Guf6B7teGOxXXW3UPat0Q1/gad0zWWXZ/2fR0k4vJVXd8ZrSV5au0GmSP5bIqkV3t1M8IRFVwcHwMBaSBenCnPxS0lWX2gDF53aB7nRxbdqcuPqzbuO5mxZZZYsWr/ef7qKAeIkfXmdeAjLinqTWiPAQkwADT4tC3VDOGT+Az0Zt+tko1G35hubbeyFRkld026SsFEujoq51sZ6h47rWGQ1uVCf0mKR4zI/wn4fHpEBairr8ivgxLXVYJdTre+a5E/3Ma2NUc5VFlt3q5Kbr7u4sd/4DW78wxuMMAAA="

# ------------------------------------
# Script file - GetInstalledSoftware -
# ------------------------------------
$ScriptBlockGetInstalledSoftware = "H4sIAAAAAAAACsVVa0/bMBT9jsR/sFCkJAJX46Fp61SJUspDpQ81lGojHQqJ2xpSu3Icqijkv+/mCWkb0PZlVtXEzr3H5557r727M/WZLSln6JJIfM08abkucQw+lStLkHB3B8G47/ty6cvbYEm0eyPwJFnUuhazZmRBmKw1fckXVoxSGxj9xydiy4k+yVxbC8cl8owyh7KZli8vLWEtkJZOErtBvEIkEYVNsnxnudSxJOlx2fNdty/ai6UMyjaeFIA9UXoAkC7r6UMZMZqG1CGBhxpo76pz062beXhml9qCezAzx0CQrzyz5QsBMd0R4UE8ZgGwd1A49y9ux81h2xzz1deT46Med/4KKKPGIBpg1CMrPDDOBX0hCMcBoKvOCMHSQPAX6hCBhmRGIcIA4SHnspjW61ed9s+HkdEeGluj3W8kOW3NqetcQ8Zi4DrCbSG4aKY5N6gLFN2gxZmkzCfoFY3nRBCcJhGFSHmoJaQw5NeeI9XApgO/fazFf3p4eHB4EsGroqIIvC+4aFv2/M0fNBvVTUUDnIGRUInh9H/KAIrSOOkUaZiBFOWAdZRVazzGgkqCAeORe8C+SzwPqhWpPY68bGskcmGfY7mm3GeOmiJEiLjg9g5vygWBwJBW2hNR9hGJnKwyMM5i9KLEvVqsuAV+4KOpsSSqvuGa5DTJx5nL7WcolhCtCVnk5Xd438S/vuDvk/BbhLVichJBko6jYn54FEWKqiNsMScBgxKBFvOJpp5Tb+laQUoGYZoiJ02l59LnY1Og/014k2J5qsxsmugfHwOnW4gPLDnP3xvlrG4av2+iBnTFWh+pH1PxiAvdAQ2+JEJSkjB6dxTm4zRkDfVydH2u/kCkEZaFjKIDVOGSCJK7VMgVRRXOWdtt8c+/VPtmO1RDrBl8yqJrPXFRTSX9/DkKZR+iJJ+rUYpKMJJrZgvQukU1VnbB3nA7uS63YK1bbGBlV1s+ykf86VuVZ0d5qSFfkZGUXn4+46wGg82afNsl2x8e8Nv5A4YJaKUyCAAA"

# ------------------------------------
# Script file - GetWinGetExePath -
# ------------------------------------
$ScriptBlockGetWinGetExePath = "H4sIAAAAAAAACo2TwWrbQBCG7wa/wyAMkQ4ScVuKG+hBVZw0bRJEbZJDHMxaGtmLpV2xu0IOoce8RZ6uT9JRFKy145Qi0CLtzD//fLPb7/XpySqRGC4FnKPxb7mgZbzBmJnVIwD0e/SCu6hIczTfuEi5WLqTqiylMnqyklWexkomqLV338aWTLHC9Rrp5nNQUwYaEoCvLyUiWRRMpHDUbgS4wSPwx0pJFbZGLpZCKmzTeea6loQvEAbXVZ6DB35IKq5BbfyS3ILfeAZnYMUHE1mpBD2n3Zw+lAiXyDLPe2zlLYdhWZLDN7ld3K3iBv0bVAupEZw/z09wJivy0DUC0dUp3HWC906X/gtNpYRdrd37vcOJ/m9ilqzZEl952X/8a1ZQ6SueKKllZoJT1GsjS4q5ENqwPEflbMEdkLT4vUfgh+RiH6UlEbwWupQJa6ZFbJ0OgNUvzw4NZ6v3ZiSWn/+lHcYxxGH0Mzwf0zr9/h76w/i3p9uaAi3749hFEp3M6Lwv6YjDGc9Rz+jGpLLWFKhn/5zLfBgMR8GH4y/D4Hi++fxpPh/VuH5YfExHi0WNhzDSDDuCnSMbldpva+dQTVdK1mS6uaYgpIG8mRpaDKnSS8+9vzXR+OQNBAAA"

# ------------------------------------
# Script file - GetWinGetVersion -
# ------------------------------------
$ScriptBlockGetWinGetVersion = "H4sIAAAAAAAACmVPywrCMBC8F/oPIYjYQ4s/4MFHLF5qaUEPpYdSQlvQCMm2KOK/uzHRFjMJTHaZzM763r4XNXQ3QWIO4bkTSCcule48fc/3CGLD4kNintjTpFEokJ1oirIkM/NxLRtFVoSG4WAsqFG/DKXZccvy3DEC+ZiWGtaQ3Tn6jcmwTito/7QZV/0FUFjYseViTuhoQaf5gghTXxVUEhZ0oMHoZVNq1BXUrZPJnUOX0efYPSculliyc9aVHHopvnY/OV7vDaBTMIGPAQAA"

# ------------------------------------
# Script file - InvokePsWinGet -
# ------------------------------------
$ScriptBlockInvokePsWinGet = "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"

# ------------------------------------
# Script file - RepairWinGetOutput -
# ------------------------------------
$ScriptBlockRepairWinGetOutput = "H4sIAAAAAAAACtVUy27aQBTdR8o/XLmWbKvYCu2mi7AgkYVQg43sJFSKEAz4AiPBjDszToiifEdX/bl+ScfYBgONGiXqouPFPHwf5577OD053XyzjE0V5QwiTAkV7oCyDqowU2mm4AngAwSh/60fRte5NOh1d7lKlqguKEsom9txlqZcKBkveLZM+oJPUUpnWMimRJCVXZw3uv38ARUKu0dYQhQXjy1TiQwbkHJJcySts0p7oxErod0MTbnZG3+zNSNLiXsGKFNDc0XWoyVq228wUCFIidKyrGUYbzAiH6iaLoYmlaN7FFLH+Q4kc8GzdMS0SsvoROFNP2j3fGMnqFdxcYrNZPgwKgiEFpRUFr/ozK5hcp52RsxDBU+XyJJM0bZcq2F5Vmn82IF9pHCuFSzHuxZ0ZRebzxLbcXR5xWHPh6vwsn0Ft34Ud8MAgpvehR9BO/Kh0731A2jHYAGcQ9M785pN78vnTxZMcEoyiaAW+AhE6APnMCNC/1jo0nwJW+3mxdmkONn11y5LcB3ObAss52PTKZksuTI2kkUeDHAZglEGa9S5y9dAUIXuLYoJ1zCNXz9/DNpR0A06+gR3AueA6+FY3aQ63zm2cWVpbOhY8usO1Ngwajj2slOT2kk870rguerbPNP9+IJnLNmWm/QuOVOEMvkVH22rrHDLARe/g3mt+7IeVW6hdOuuiC5nqHriMPYDznu5MEqvVrg1rP8lwVtyX0ltOYBeotYkaZrTksvM1aLWdFfFw34WDqTdOUI14pynw0AUj3DF7zE3eqi4VavK5Q8ZbJlH/XLWOMYAW0dObTL8o+zmThfq9dnVM2kfr/OefG8n6PPJbwUCiF1IBwAA"

# ------------------------------------
# Script file - SetWinGetConfiguration -
# ------------------------------------
$ScriptBlockSetWinGetConfiguration = "H4sIAAAAAAAACqVU224aMRB9R+IfLIsHIrHQm6oIqVIISSuqJEUil4cQJcY7Cy7GXtljaNTm3zteQyEkqlSVXa2XnTnjOWdmXK/V6WqMpFMldr96a/rWFGrKPrEjHk0/6zVGP/7Q8HIGC8G7jM8QS9/tdMRctBe+s1JmCph5QKQ3306O7e8UjLdijBig02GfrWO5lWEBBgUqaxjdOAMPbINt0Rt02d83WGfkbXASKJ91itVHEdBelblAGBgEtxR6YM6VCQiePN+uPZ8oreSPoGEB6B734uTKi4mO0dEFSIYNims7nVIiexANS9BRHnDOOr6HMYAr6+bPMDy3K6OtyMFFHNFU5BY12zoMnZ068P5SLcAGHJgRSGvyis27N5XnU4tVK1eRspColgr/iZAyHoXWxzATS0W5P4eWDgpwYGSl4Y4lKe7kTCFIDK6y3/IfHz/wuy2JtTpWimr7WxLIZFcj3mK8cFm/x9kLZy9tGX158CTNvnVNZZCSvrCptltaFbU9hkvlg9AviCVtj0Wlv6M+sJu61Wt0x4sfpbUIhpSljh1RK94o8wUwjUpwqZkpcsLe9he5BjxWJqcuaY5CWVqHfjSzQedUT9LRH9wl31I4sWgebKANWUzvC6XBxwFs8sbpxXX37Fu/d9YbDk96l73xUMi5mIIfnyvprLcFtk/Az9GWvbJcSwLu/nAF88fJ+/xwMlnB+CyKP6Khg/GfKU3jyV7Z4k/kcaI5Hq0x/wce51CIoPG1PA4S/Xr1LKwDIWfNRhSCKbOjysFO+S5glQ0QFiwbCpxRLtGDs+rb5WMJrIJndOpIWk7jUPZSBQdTQ1uwX4wGKjNB623QWFwqK9IRtR/3WugA7JWjMjs10sZSs4DFIcsof7nTijeOxiO7BjexdNLx+JfCs4cU+IGzTcsRfeq52m99101XkwUAAA=="

# ------------------------------------
# Script file - Util -
# ------------------------------------
$ScriptBlockUtil = "H4sIAAAAAAAACn1UXU8iMRR9J+E/3LAkysNM0EejZiO66iYq7rDrJsbEOlygsbSTfoDE9b/vLR1gYIaZB7htzz095/a2zcbIydRyJeEabfTEJf3dqaETeCtHSk+ZX/uE5fcN7h+u/vYffg2ajWYjzAG0A/yeTRHOoH31ganzST0lLX7YOEFjaJhYZjEO2FJykmqe2T6zE08RRneLWzlT6VLAZvakOB3fLXpqOmVyGPvcetpDb/DW4hRapeVWJ77kGlOr9MIbKTD1nNYobcCuTNZr2WEolZMYvn9uAP4LmNXorFjUKmDB2Aa8mdxOqXRQmtzkfG1CjdZpWWGh2SBUc3/zXH1kSlvjxeTNs9M/q8oUD2dP93Xian/twiZE8VNxGS3jNe8BBsRBSFi5KeTt99Fn6Tsb4x/Uvnt7gpm1m8rtayqQ4/fY25ZeJD2oUhJn5mjHzx7i3FvB3YOz0QWTEjV8lo/jeRZ2eGlTsOUo3zr3MTPWL3tUPFCJ1VyODzth8Ulzi9GNMhZar9LfjneM+kmggQj6ao46maAQkM8NlBItiEZwIRyWSXoqW2g+nlg47HXguNvtRsfd4yO4dlwI5qiZ+4LRQ7OkuNZsUaZwhgTCnH5ou9lS/qss4L92KvTbULUr6rPNSZgT2DUIz6dpeATOXyhWmSc1FJ9Gj477CtzwIdLdM0qfb4nY3WAwQRgpIZTXDTmpAaYR2Ixxwd4EntTkv1oqcra+ejc0qEUL+AeCU+y/S24ywRbApbFMCBxCFnrQxLUkjkhcNtZsSE9ZMlFzEiwpGbVvShqslK9QppbOEJ1BplN65eAHJybPZogX3pjhKekbKVCjtbpatvAW5PXIrxmwYJo4qF4Vfv0ZFTql8R991rH3MAcAAA=="

# ------------------------------------
# Script file - WinGetPackageVersion -
# ------------------------------------
$ScriptBlockWinGetPackageVersion = "H4sIAAAAAAAACr1XbW/bNhD+HiD/4eAaiLROgrt1H9YuDdIs6AZsbZC0CzDHK2iLttnKZEJR6brA/3180QtJUUoNpNWHxDzePXyOfHgn7e+d5Kgo4JLQV1icocVHtMJ/YV4QRuEZ/H7CNteIo3mO4Q4A9vfkH/08guMswxkgkHGntNxgjgTjUQxvbjHnJMOt75RQMRv/iT4wbkNUZkJD5pclybOu+RzfapyQXQH59iqVl+Vyie3JQnBCV838BaLFOV6d/guHMPonOvploxZ5cZU9jqOrVI0VuB7HR8ZyjcRiXVnGowD0H2iOcwtUxXCsrS+mk+Tn4+RvlPw3a39eJVfp7Du9wGPpPFc78CXu/au/o0S0DAZQghBnFdszzq4xF59fow1WQGcXF3gjN07On+Mco8K4hSD0KQ6CtB6B+LfsQv+QqrprZ9VDltE4Gos1KdJaEjEk+AYmkBzTDOxJdXTBSUcclUd8BxyLklMY1W4GPW2GGq8Z6gTi0XaQ37egkHY2ZIDUV13XsegQn4l6vtZaaThHS17qsQlN54zlMzi9KVFeRNM38w94IWYwZmKtNseT3iNvWMfFQAqZ1E1JuKyLS1nUZLjeWaV8VRzTQaBmRwx7S/sKw5CxrE6wzMarfGAqN37Ldk+oDe3JKRd+CJKaTlaiN1WrkGuKoX4zGxO6YLLSrmQHkTXC0DWBvpAhcpz1DtEyz2MvN2tbnzzvKCCA2koREorBXqVSaGAFebHAiZQ7EYiULbThsgWcF7gxJNKyAz/dM7v8tP6H+ZnIDj9ToB6Kn2neHX7mDg/yqyJ9fibywfjV1aNLsakrgyzbeJ9o24wekmv4uJuKdy/X8KG3jemhuDoVt0vYLciDrD0kn7rXvnbl76+r6otrrcJVx9R8ZLH6DRXrE5ZhVZB9Ps50DF9OKFC43aXuq9XHFJgu77IyI1l/q5fvQhfqpjNtsFizzI8t1qyUty3alIU4ikG6sgbApTFIoqdtuZvi5txkfMtINvsVL1GZi8iXhF1SD2ESmjT1omeyuaYD8/pq9My7InScnHMLNbOeZJpUd4FqXqflf3k89yB7clcSNnGQkI36aIGDd/QjZZ/oQfPG99y/FeMMCaR6sAlNi+uciOggPYi76Mo1PWElFfV7pFhz9glGwY9KKS/G/fdBwT+Hy4EGn05mppi81h3e00Xtsh0AeBIEqM6+dhkC+CEEUIuvdhkC+DEEYAm09hrCeNqH4STydBDjpxCGL/Ta1QPaLpR8Agd1yYnAySXiVMoURqfqiIFQuK3OXNY1zOXHr/z7DMbv+1/Ft/fdBP1RL2Hfyw/078EaEmoP9bfz4cQ2cXwrY7o2Ql3bvFweTna7YmH1eiqtSPf61WdYZdPn12iuSXO/x9MWV7sBQ942BbM1fd4dwVQ75/p/E73o8rn3P+h2M7HIEgAA"

# ------------------------------------
# Script file - WriteLogEntry -
# ------------------------------------
$ScriptBlockWriteLogEntry = "H4sIAAAAAAAACq2UTW/aQBCG70j8h5HDwbQhSkhPlXyg1KRIYFumEq2iHDZ4sLcyu3R3iYOi/PfsYgwG81Wpc9kPj955djwz9VpvwSaKcgZjQRW2Bjx2mRJLeIPcrsDz3V+BH/6s18w56ISdoZ3vjT0GRJAZKhR2wCU1Us7tNQwJi4jiYuk0lFhg80l7SiUoi5+gUQS5Pi1ztyMzJak0Oo+UKa0G0BjhC2ropXY8LdQ+LLTh6XGmujzlwrGsM1L3Z5j6LEKmwIHbM0JfjjBlVE0SzeRxD7MBZZjLNPPlm/vQ9/Lt21afTu3tG6CFf8GymmUHY7ky2Ju0VTyMWXfWoetVJVxBn025mBHzAJJCiHLOmVwT7luJyJgD1jjRFWYd8R6ilCTGQGCPvhrvA47vB3jbp3jHRDD9iy8n1XF/Y5ry7GLMcSf0+t7DV41yGfD9KWBXCE3xL7ghRhezumHoh5r0EtbSsbTViF0+e9ZlKUElCCmPY5PgWR4KdEWv7ouzWs71pQQCc4FT+rpV2gwBDbZH+nn7sV7biZ13l9wJkSXI4IVihhHoMWY+yYlAZDdHghX7m4BEA5wqe3szQBarRAPYbfhUNHOzaL51HoLQ77qjUaULTb2ZGSo3WVG8hLPbrl7R3pUuzOfwDy4VtPznPzhRJfxWjwuMBV+wKK+Act+vNNPNyNj7dagnzP+KVQmwXlzveyUtAtVCrF+v3d5rH+pCeKl0BgAA"



# ------------------------------------
# Loader
# ------------------------------------
function ConvertFrom-Base64CompressedScriptBlock {

    [CmdletBinding()] param(
        [String]
        $ScriptBlock
    )

    # Take my B64 string and do a Base64 to Byte array conversion of compressed data
    $ScriptBlockCompressed = [System.Convert]::FromBase64String($ScriptBlock)

    # Then decompress script's data
    $InputStream = New-Object System.IO.MemoryStream(, $ScriptBlockCompressed)
    $GzipStream = New-Object System.IO.Compression.GzipStream $InputStream, ([System.IO.Compression.CompressionMode]::Decompress)
    $StreamReader = New-Object System.IO.StreamReader($GzipStream)
    $ScriptBlockDecompressed = $StreamReader.ReadToEnd()
    # And close the streams
    $GzipStream.Close()
    $InputStream.Close()

    $ScriptBlockDecompressed
}

$AssembliesFound = $False
$AssemblyFolder = "$PSScriptRoot\assemblies"
if(Test-Path "$AssemblyFolder" -PathType 'Container'){
    $Assembly = @( Get-ChildItem -Path "$AssemblyFolder\*.dll" -ErrorAction SilentlyContinue )    
    $AssemblyCount = $Assembly.Count
    if($AssemblyCount -gt 0 ){ $AssembliesFound = $True }
}


if($AssembliesFound){
    $FoundErrors = @(
      Foreach ($Import in @($Assembly)) {
        try {
            Add-Type -Path $Import.Fullname -ErrorAction Stop
        } catch [System.Reflection.ReflectionTypeLoadException] {
            Write-Warning "Processing $($Import.Name) Exception: $($_.Exception.Message)"
            $LoaderExceptions = $($_.Exception.LoaderExceptions) | Sort-Object -Unique
            foreach ($E in $LoaderExceptions) {
                Write-Warning "Processing $($Import.Name) LoaderExceptions: $($E.Message)"
            }
            $true
            #Write-Error -Message "StackTrace: $($_.Exception.StackTrace)"
        } catch {
            Write-Warning "Processing $($Import.Name) Exception: $($_.Exception.Message)"
            $LoaderExceptions = $($_.Exception.LoaderExceptions) | Sort-Object -Unique
            foreach ($E in $LoaderExceptions) {
                Write-Warning "Processing $($Import.Name) LoaderExceptions: $($E.Message)"
            }
            $true
            #Write-Error -Message "StackTrace: $($_.Exception.StackTrace)"
        }
      }
    )

    if ($FoundErrors.Count -gt 0) {
        $ModuleName = (Get-ChildItem $PSScriptRoot\*.psd1).BaseName
        Write-Warning "Importing module $ModuleName failed. Fix errors before continuing."
        break
    }
}

# For each scripts in the module, decompress and load it.
# Set a flag in the Script Scope so that the scripts know we are loading a module
# so he can have a specific logic
$Script:LoadingState = $True
$ScriptList = @('Aliases','ConvertArrayToAppInfoObjects','GetInstalledSoftware','GetWinGetExePath','GetWinGetVersion','InvokePsWinGet','RepairWinGetOutput','SetWinGetConfiguration','Util','WinGetPackageVersion','WriteLogEntry')
$ScriptList | ForEach-Object {
    $ScriptId = $_
     $ScriptBlock = "`$ScriptBlock$($ScriptId)" | Invoke-Expression
    $ClearScript = ConvertFrom-Base64CompressedScriptBlock -ScriptBlock $ScriptBlock
    try{
        $ClearScript | Invoke-Expression
    }catch{
        Write-Host "===============================" -f DarkGray
        Write-Host "$ClearScript" -f DarkGray
        Write-Host "===============================" -f DarkGray
        Write-Error "ERROR IN script $ScriptId . Details $_"
    }
}
$Script:LoadingState = $False