summaryrefslogtreecommitdiff
path: root/python/openvino/demo/ip/intel_ai_ip/verilog/dla_xbar_wrapper.sv
diff options
context:
space:
mode:
authorEric Dao <eric@erickhangdao.com>2025-03-10 17:54:31 -0400
committerEric Dao <eric@erickhangdao.com>2025-03-10 17:54:31 -0400
commitab224e2e6ba65f5a369ec392f99cd8845ad06c98 (patch)
treea1e757e9341863ed52b8ad4c5a1c45933aab9da4 /python/openvino/demo/ip/intel_ai_ip/verilog/dla_xbar_wrapper.sv
parent40da1752f2c8639186b72f6838aa415e854d0b1d (diff)
downloadthesis-master.tar.gz
thesis-master.tar.bz2
thesis-master.zip
completed thesisHEADmaster
Diffstat (limited to 'python/openvino/demo/ip/intel_ai_ip/verilog/dla_xbar_wrapper.sv')
-rw-r--r--python/openvino/demo/ip/intel_ai_ip/verilog/dla_xbar_wrapper.sv194
1 files changed, 194 insertions, 0 deletions
diff --git a/python/openvino/demo/ip/intel_ai_ip/verilog/dla_xbar_wrapper.sv b/python/openvino/demo/ip/intel_ai_ip/verilog/dla_xbar_wrapper.sv
new file mode 100644
index 0000000..a30e07e
--- /dev/null
+++ b/python/openvino/demo/ip/intel_ai_ip/verilog/dla_xbar_wrapper.sv
@@ -0,0 +1,194 @@
+`pragma protect begin_protected
+`pragma protect version=1
+`pragma protect author="Intel Corporation"
+`pragma protect encrypt_agent="Quartus Prime Pro Software"
+`pragma protect encrypt_agent_info="17.1"
+
+`pragma protect key_keyowner="Intel Corporation"
+`pragma protect key_method="rsa"
+`pragma protect key_keyname="Intel-FPGA-Quartus-RSA-1"
+`pragma protect encoding=(enctype = "base64", line_length = 76, bytes = 256)
+`pragma protect key_block
+X1jVmizm9hgO3FeIP3VxvVPucPYyOGq8Czjk5VC16LrB4J8srBYevkFP1mqfXLP7JGKgq9vMFxEB
+IsTIAZmBpynXe8p0gAa5SFU5DTwHOngIW6bphyUKcXReoDrF9xlyNZ2Q0W52KBFbYkbiDnEzjv6U
+53jewnMwkcHw97fBgWfT5aeDnK5zFm/reJd2m7kTRU3lgNkuHdQaSjtRTZEh4krDD9MwAEIo/2nh
+M1xeULndok4W6bP0AJhnX9hwzMmz4TOrR88jNH2/Qf6hALqpUZSd2p83TtMItmTBjfPxPG141Og3
+wV7wjkkjMVL561D74pFMdajsiAuqQ0MMBrHrjQ==
+
+`pragma protect data_method="aes128-cbc"
+`pragma protect encoding=(enctype = "base64", line_length = 76, bytes = 9824)
+`pragma protect data_block
+RSEuSF+ScE66xkO2yvlES1PcFiwCTZcDziXrGjHcfeLoTEtiq2rRjzPVkCN3R3csHDzljwo1bCDR
+jx1tbyr56pxA+d5k7H4SEts63M45rP9MIKpLBpqngK+BzgE8AfGfhZ0BWT//g3kpnhsYxQL8ggFt
+It6Q/iBw73MFulw7erm3mg61D00QpmwPe2hum5aArjILAJNMWQ8PdMH6z8IYdSup+fXncqKulLnr
+dzzyP4tazDeC9qQAlagQWZoCHPXmuzDa6yoiaM+em0eS8Vc0CestS5U5Y5xxbAMMR4Tp3+Cl9qx8
+o/XrzdLd/92L51t50hCZxOWNwhsmKhN3166ISksUnXyasAgk7l3+MpBzlokoQBpT4hxQCrxZRW/k
+kjjvJGyya1UgYYkzC5dFJ1vEUIA3X7o34+E1kgGIyR0Z1yK9EK2lqKitLqpXQmRv2lFlaHdVYPrA
+YfykVcM19R4DJBuN77lB15ymlZRS65VpPrgm6M1T5jEFZ6hUaPZ4ZT208G9RmhKbdBLJxcHL4A0C
+2RAdnYBX790S38GkSChoLkRbH/v3KJ4sKgcZO1yIcSJ0hiQCYipl7sjodyh2vD01HVC9wFAjOOk7
+oTLkQ5mFIwIjFEM4FknUot3uYiTca7JZDKHKd4zd9wbm4VI3+08zOTCR1vVmwfRPTkPi9lMl/GGB
++alxWsCY44zMKt76nbTZ88UN3O/yG/rLiVcDKC9MShbAGK8lTys0Qecyr1PJSIi6lAIv+dKfxp2k
+dZJD/6W+PGu5lQfZjpQgHTi8Bll4OVXkhDgE082Sa7fxqmvQuH1maDzOllhoo+O9N//iPEkOG5R6
+97o0ZM7Zc3n/+c49az3aLHlLtHQDgISKgEcZeJRDihpSBdcH8CV3CMp3mElwqCmTN7YoQ0cUi3sC
+G/397r1lXadE6j+m1a0TLzJeLpEQ2faX5G2q+TB9SoGz5YSSrNqtxZdaBns+9cOoP70MYluPuCaC
+a4lBvn8QeYsKeIsNLhIDwdN3vqSwaUmL0x5RT6GJwdVni6qbnFDV5Czmz/gZ0QPHjC9hQbAdKcsB
+QdVVE14QxgrU4KQXST03YaDwH9cQLHPs6pAx+7a+S7Xt+oo/d/Zwnr9qKnqzhQv6gynoRrdi7ZUO
+GeUF/hy0EZBUDZTakaV95QKRlWWKCIGmvv71miWbBWmjlLxtHg20sGsmLGI9riTl3eMaxjnHmEN/
+035qYiNKbyZyr/ZtMQbS0t+czBVMsVJvsfVAusmALIPZNoDXpcfbE6kFD8qb1SbHEtmq0zzDlgRr
+wjbHR3CwkhlQDsT1x/Jy7KZ6XteVvmLU3DI2Ovg6scjvuf6yAp8sQAfUil22rfGo1WUEKTOvQO5z
+7iLgQbrbS/kPlC8uUQ1u299mnyshMP4l7sulkNs48SDE6Eai9vMJj630T+O/lWt6hnhiUzZuX+J6
+rYY91gcNZs9H6Svt+8rnV3nB7pWvNUr5/PtKbRTkEz0OTg46Bss1+aCvT/tQvd8dIJOWAJma0SLC
+mo93GqeHgVuZBXtpUQRJuXlHUt52m6f83MjmNIJP+8c4B0S+6HwaNh2LCQLnMJ6wza/5DqJdpdcD
+sp50VrbDSo3vIn/AtVpuwGo2kve8jHDQQuVgZIG3yChbIFLRpSIphTKCYzIvdoovHO8ENGI/DGqz
+86UE7+yI3PSOcXut2rSGM9Ot6FeX38yfGzG1ZGjIHNRhPNXYBBVVJLq7ZqUqv7A5pdngkJf0ltRv
+KkMHf4rWBLeXgWbJIkemsPqboD5AMRpOHZB/vRaD+FC5A+1enWFxSYzpQR62SC7j4mV5dp/3L8NG
+OKH1jWj3gkUT+TSaKhgEez2c1bvHPdUXYqVgIcFachfipDeKAav6h0w87mQSLUE2pD5qJsna1qh6
++J12bOowshwyVsCnsCZnsmVaPBck5MYTgWCobqrlcgmiot3jVvMDteKjET8GBvLFn3urPCpSWvSi
+KOtuthV7bFeI9FlSOOOc2ApMGkeXTMumJvAjo8MCgxeRtdFZiGJpbw19ouYFwIeLdDsvADwvIEw4
+cU6OvuQ12GBOMsACFhJg5tT1V9zPXzazZ/Mu0zn5b6YdSyvOI0qXZgUIeeZmdsFTVPXnjSX1ng31
+wF9NY49bj2aVLTPENOW5LvvywRB4GXrflWmfljAdv3M1L6ZEtOWnW7DP2/ovAxK0EJBjEVpBRJf/
+hWUsu0yJ5q5g7Ybbk9VxnUXM7jxJDX8NaHShtxtgp+/IAn1PJv/RN7zqZiFwOCfwcGNxM7fYWkQx
+mqiAI46WWglOKujsLh0gZLPRyvYQ29K85jVHOOFpFTRZMGDuCiMVKn7pFnpp8ZTS1MYB52USX1hz
+6OIWoQukfy4U67GSLkood4VHcnn0oA6Z9EVn1AmKn1a8Xg/eCs5+4tK5653SD9kv4wcdpLGAARpw
+GBoxpLTcu4KfKpaPuLqX+tlYMVERug2vI3Jai1dPiinCWfuZcNVC8ttFA7aIzpoi0aniDqt6Iwfb
+kyV8K51l0JbtVJqifdvXbEpoBvXAp2u23WbexNVu6nq+Knj1h2cSfVS0lGtvkb59O1pmvGybM6FO
+iWm8Y6C7QqAaQwQ922Ta5xu/YEC1Fm3LD47tYJFxaL4C83DHLeKWS8UduEwHu2Y4hmJj2T4EXZXA
+A5ff+W/OIfxbhT1j+EglxIC5YHS/i1X4mvFYALLiSFEHboI9EXUyj6PjoppE/FsU49xxjrTubWHB
+8vOFWTw0Z0bUC/dLiAUsZ8LvQoyHdlSDlOa4MfeFMhAPFeE5bx8/7fsi6bUKrgtLOF76EzwLPdK1
+p+/fb3DTwwedb4qCD6guJ73K7IYYqMMVaA3bRQK2ERW2w2hhMWS20kDAwgD24m1p20eLBh+svvpU
+m3GhispvLk96Xy0ifR1wNKi6Nl3eMRh7WaHXSFA1urWr7tUqY+1cMbXzYbcpgNKJ0dK82/RqtLCX
+vAAdVr9hQWVX2W4xB0jhMAkrl/ay4FFd/a5/2lgW9KkFYHYlxHzpAOARlarB4S/z2u9oi70VnJ8U
+Y3KQNO4TXfBKLPBvbs1Ibmk7zI2Sc9XF0hGCS9xVdci0UhEXM4dgcEMPDQudHE5F7TsZMfkRwMp5
+4EmLbaub6K+bgqS5XOH3wqjfSYQ7Wbj2Wy8BzhUbHQoPyf4YamAGhX74Oykgvbo6eSsKVK1PuBcA
+3nJjuARlzPDUJuFKjUztYl+d49HKj0bXZGNZkwIRxcbTtKNOONoBd3AONkPZHjas8B560u4o16by
+rxuHIpYJYaW5sezjYKQTBc1F0tue+DCrJwUbZmwCVl6xxl7AtO5iGZT0JWNw/O7iWKNvmbxB0YeC
+73RV872UXIO8H/TVOsKXu/+Xr5/RJR0oW7EN+qRkffX/Y+iA9SiV8EO57ladHj1sqD75cC5sc8S4
+RQ1EWB8Hz2e3X8WqmkakdtzVz4HqIyafjeL8cJlp2W4WQsMa4ynRoPQKjlgUbmP8E2XTIVZTg+r5
+0KokAEH7M9B5M4iRgWu2imdfBOK6t297/orEjXG85x2skiZMuAftgJULkYSq9wD3ausIPIBJGl98
+z6ndURA/DQRRBmi8pwtERfofSJ86SzOXRRRQAphwsyHiCQ0rukhYcJTGQzQ7YhH0B+KOvR9dowoy
+EbKZ1a1tRgd6aC5JnpRvzeDpCAZHpm9sH3BQE41siESdX+oW9BMIspTqoM9DwhR6Dk0fGccSQxOa
+2ld3OtKdlmA14tFvCvy/oHKakBLkaDLyEcEChb2yxLQmqTBzPw0Lgi3pavuwVDubDw3Dcsy+kmE6
+n+H2IcAE+eL1nAOoEVII8CHonTs0VpUPjMoHjXD+Xry2J0Fl7JgYAmCfIDGh+4Rj9EVV6oW9itui
+gly+RXySsmQ4Y7gjRpkSI8cWizG3ERVoMDm1QW+nP7zaivdV5M7z7heosIEO8iXiV8RE9rW+ZPiS
+khrRzwoLYGpweI7YAWP6JCmlf50WywuImytylW/g6laIVu1MMxxFt8ZrQLR1BxD5rhLpkZkB69tP
+8pvJfslwtCQxWEgl1A7oZ/PHSGlaALy66CunofeUYNALI60bxRoEzCKa97dzr8fD+vR5MLt4CVcl
+ThVmSP8xkTWT/Is2GLMLpxgJarXD0cX4ewgtGMNhPbEBqb+qv530jPCYR7TxckcpebL363JBXIgd
+0pDF+RJhcy/Cy4JRBOi7NSom/loJfzIqXxCpRXV91Z0TQVN5Bgrnc0uJszaSwsFK3jqrXB4MO31/
+uagU2MMfAZ8D7e1N4w7hL3O/wasa3/hU5+TdhN2/jrcKwjAHCm7XP4I8K+sX4ZJxAOTpamREouRP
+jFLlysuF8ON2lXy0P2gNZkda9eXPOn/4y0oB14kCEx/rKZq5AUIY2uQPqfCuZv5bgMb2rTH9ohoi
+YGflsG149HBEeLX8KpWZdSXOJbn9vv1hmEuRKlWoHuhUKKUVi/+podUF8vUrtHw/JLdU0V+rYfNO
+4hAP9oH+0P6lkx0n9pQP6xUK4SL+OdX0FUUEDKBprWHmv0AbY0fUOU2SmL2QCmIZaV/k2gtoAtAC
+CDWEBZOpKziLxgVsIuy14pes0GV2U29aozJ5iYpBdttjNVPUYlNHN+wJq9zdmxEBRqUW/3KUN4/K
+VoJqxDMJyQL1NJkqrGE7s+3EoSlpfDITBJdywJq+38hdV6kfeVHiWZS14dGrtJ870faCQ08knb5Y
+o/eUaz1bJBLGnh42ZDnACLh06XLgCcVvckGKqqhfPvPapKFmFB2cXcQffvU8S+WOmlJMAQCIXNNu
+qqNrTKVUu+0Aa2d1qVrT+b1l5NivGB9y9W7UJKzxKPr/ApOdd0CvfC9BA1RAFC2+2f3Vk1SIO6X6
+wLQWsDa/ATgLLpaOqRUMfVGavBJmEs/JagdE7AeDZQysNtU+g1qsKt8x1p8TM4PhSeNB4lRllgDv
+kb0hG7rMQ2SvzMC5yni5A8Bf6nAft7Zp/RnFwpM7p1b4GjdY6ycmqumxqg2fFNk4uD8Z5Eesxga1
+prGfKUBqtCX2cbTWuwAslBJ45nhoaDkKczBuSuSaavRZiqfcyDh3+/kPYdGYEWE06AnofRk+iTga
+B5iKLGQWoLr1nTSIHsLCc7XVtNUJgGG9gJ/6CYToDATiAp8AzDshkDyTK9dksgWpalOZD1ty4kpz
+Z6vCJJ9H9cFWqYIO9BQ11Z2mCAUFIAXtNpUaJC9zrSstrTu7jzsy19OJbLCKCo8PkkudOSvEz+F2
+8yWX+kAbt8FAOV9RqKYHxFYoBjgAc5MsRYtG+ujEDQZnyt7a+8Iqv3PUuZDDPxuGuLX8BR5fBcfS
+3vQSiyOTEffPwn/4kU3LW+anQejksZ4IKQOuWGavpZLBnajhq9Lq9EbvPzRu+jCG6prJtgm0/eln
+SNgNWvC/JIsb0ZIzR53MQfTZcsbQ+IwlvgilcB9FiyQSuRnNPwdJgx9NtsdblDtjp/i26xjnHdKA
+SFLgg2EmO0fNNn1AC8sber4zi1060twGAjL81OFIiYPqVqNL+Lg8UhLCNIHeuxxx7DPPl2q2O3uU
+MREaSIQgBeSOF89xDZbOGoSL8DHGt2tguDT2uqsMoQyyTkK0J8yFpCDqAMsbpsahS7x4gE3DHxMI
+dxpgb9xxstTdUKl0XynSWxwZyCn+WIPxiSsfsrPJrKTDc2sG9ALxxZXm9cfx6+ErRiN+I7rPFApT
+uPuPbBghsUSmKQGqZJFohahAKAAn1WumSHMF6rBBLoDMRsqQA33rdbcYXo+Hq8quJRIDOmHZSI+N
+151rCSbXb1ZAcm/aavWNdQFqp5yO5zaS/pPcIUhKMhsrDx7+gBvNEfPk8XyvJ9hvXHT5XBIEnH9n
+mzMGXXu+C7PzmRUyxRhpVK9uWJndwQwlg3cqKCUitSeY4RBTFIvis8wdZMsXLHZGLCSYtdUHNxpu
+gocUWu8IaTfSWaLFfSSVPEv8PxrranwSBD6cZ0jSl8mlM9Y6np1XXTaiH8bMhM6XYLGVXOPxqKSY
+nGF8sDII1KaMi/bJZUIkWcWdItQE6q86bhztxlVyTpXILWltB6XcKLv9kUMrniUfQXWvVEmdNwxz
+pQgmXl49TZGy3jbM9CqXrJQobhBEymo2Z+YHzPjtiM+eQZwWuuoUmUzlRr/PABhNi1Q+5gZCHnKf
+TBpKQAdX9YrrDGep68pbzsoT+uv71T6bMEGixHzsKmaZoiQaj9nmAY9f65NfrfUjP3gvBFWjctp7
+rD2NtL/O70/08YPgqvfb0LRkJ+0K9n6R9Kd7WPhvHt00vJH1v4ELxtEh3EKHqa3VgC7qP6RSz6Ql
+CnYxBoGa4UvXaCtuPr8sWZMDF0ni17j5PcOPjdzB5lgEccgCBj+mgBbSzyW28D7XyCCT4CxLKhSK
+YOrnnhIbPlHHQ/BxsGht6zkh3GJWDGo7YacfDDBxIcRp3Klh1qW7Ag2/ZhP2QajwO+9bdH612O74
+SfaFyAEeOsC1KNhxlgumbeWo9mxB0qaPm3tHRO2ZcUBtU+WHu37hww8CWBytU6wNYwhgmBwy9rhg
+26QJYl2L6O+OC00OZTDvlUCV/ywloBIQ3o2CSwHA8WUnpFSRLpGy6MOh1Ncn8KdObrdjoB/C3SqW
+QHkdHbIrkwiuDIJOt77xIh56FX/mpxSBn8IdbropSU9+2DKXJ6t8wGHAe0kTSMVgmCgtNG6GQudL
+XH1HuIwpvU8vGLIE4Wx1wGv34JI0PMSGw9A1QWR33rvCGkbixoyN7+W9zFG4iX682bdR1Fm+RceR
+meJK926pDIxrpMUB8tc6gnpSLfbQ/NMPsUw2o9s8Eui7FqXEnvnjSrv6Cs8vONpRRhWisRmOLR+m
+ybPsPjAd9ZAQJxlrJtFWbXbibu780BvGW6W/ok+cqn+JN5mGyoFGUol8ciQ2BBv67KTw3y5d2BCe
+lHUM/NPjFAKxICsEeU3wRGlKsDEmme9auU2YCoEzL8omucHUlfSBKwMAii+6ww465xE/3JJn3ViS
+A6eYmIolaIrjUooPQUUl+Qs4GWPHZmmMeEUrp4hPWzDa/jQ/4uFMvDVLnW62MgZLi42ejWdz1VFs
+OwZGjODPm6J5NzpqS84NJ2Hv9xYM/2vYi1TM/Tq42lXTaP7ipV1Wc+f2roE9QB/puJefZU3RwrAm
+i5svaNsEdWKb7La+SuboGlck6eXHD8YC/Nbil59ThEOficDW1BYI6D/gmxigO4m8fDLY4l+E5ivW
+ozGGKqeC2DsyuKAdx3S/fXLNJuibLkdd4o8LeTobg4dTJTFpm2PLlfIMEBbKinsh4OQ7iina+zFS
+SgjftXJXj4B5lVUFlHUUDtq/zqLqBIt3xg+zhMjTYtCeuFJXpbYdQbvz2CAhVWGTS1i/efUCx+gY
+fGA6atnotAoQg6gFgHd8pkVRLzJRUw7GjTNHodkKzDUGv5qWvCJ9lXnLhF6QY4VwVuZtLbYY+5Tg
+MZhuCcFf392LEu0+9MNxifAjlPKvXRmDruDDY8hSSPy4lGj3FJqoPle2AQDWJ/XenaxXmK0ZzUxm
+7fCZlly+alD6lDXad8O6RlsjtrgpDSoke88B8X7v2iWAT/gHcu72YkXbz82PliVy1WG7ZtqSQJ/1
+sO4XzgZd5EDp+STbauzGUwt+yg40AIthV1fNi1neWxF9IY/SoBJeVsgllKH4FJ41m6OLcHCf8M0c
+34pHWu6Bakd260wPJP07hY+Zi8m9VMzrHW6lB2J4hMyyhr99LU+DjAusx2UlBBXQN+zUGR84a4HZ
+Pg/aFFsgVAUVyxCh7NA0ePWCT19fIoiwEUNYQBJKXycTaQm5w1mu1K3qMUIKUcwCzuTjks2dCB8P
+Zl5kfvz5F2ILTnrKl76IW4boYIMEDg9Ptao8lcRTp3uPxrDQiG1ns3fYRxLM/rmCKwPP4CJYtFDJ
+Byw5yQNu0bq6K84VfAeNLaQdmnFjXMM+6iuLpgWdWqfoLul4bnc5x+4sLX6D9O4ndiq7Mxd7tGXd
+E/sT8VUqNn2UOQiZA5hdrYyujPHPp52XK1lOEpUaTqPEhKefCTRKMX/+xzrOI7MbkHpK/GBBvCAL
+MRmYbJuFhlwRS3yZ4BryJt59gLDvwTskIXdCQZhj9JQX0ktY00gHl70ecP8OuaEe6DNwNYl5mliD
+sYfiifyLVumEipdbCfetzpI1FCtc1wyATDZ5g88hzz8Se0I97vlDu9kWlikkYDDFm5d+VJ1XJJF+
+5MSC4NkTvmqtbkFwtpIztwvKRCQhrLUFiGr064CE/EMnLtCJOZUwB+cp00bAOsp4Pi/EnhZhcXBL
+aL/CDEJgw8/aP3Bh3SlvuVAZiYH2VR4fgx8T6CbZMvJv+neRlbjuR3Q23Htv4yxOz+TSBRGkWR7k
+3Ji+sFVz/f7kHswP7UUKKN7XqIedfDDV3Iw4RkmBuETGggDBKwisQ/DCYd9t7blS6V5wnJhQUI6V
+bnVjWOuCCvMRQIQb3k0JZdz1cC4refWTiymIBugB5rXaHVQBjzEeC3gdxWROxvHQ8e9qQUCSwCei
+TuRIAQbtXKP0TSBufyoQm7c04zKCw4VzQG2sTyaP1hhAa56EbKWzsLhmK3kf6/HHD1GuUInZwvf3
+VPedi/Nr7Rpf928pWMVtFV/dDXNLx2rg3MLdDywAQheYNmvRbc4R8BFc6Xaigt7MWIdQct9fas/f
+TygPb8ClJsPqhoSrWic4SlmdLrC7XEWvc9kD8c+4KC8aRSdeS2pEYFls2Oxtij/yIfoA3N/d6U7J
+23elr/yL2rdikpQd6/YC0ESbdx1gqMmGRGWsbOQxe0HujRe6kIOzQzc1yhlzrHeJt91VmrGOFHaU
+WP1YHeAQvdmqHBZ4cyNotLXYyV8XYIf9er59qeeD5uqP+zEzsNOKAJNXdJWvSXCJBhNQvV5xEc+S
+1kh95E3p9UVK7WnxvBXujxT0++Pj7nU9/Ly2kwKiVwRbt980mQ9wTQpqxuWBN8hFqkhs3U5eW6yQ
+zysn+c2hZhJtq2Hg6HyHctrs99YNYJwckKSVE9biPKP3cBo1Rks/ZixyYiUXWSv63vGyOeXLalt1
+uY2Y0vHzYAvM9msoeseYWbr8YrBcMSZTO08xR09LDeNCCmatiOkrTRFRW1r7tmsmzdBZ60UeUQEC
+Cfe7l7HUkzQHw2K3bbZc+h/wjPJRv5k8Fz+9oyb7SRArYHdzGvRmhRkL807mMSPTNE/vj5peeHuw
+YXDVlurjTs50+EPtk5w7IDWH/t/w8Q0u1DptxY22PAG07xHc5eErC2c05aV/ZPnTFxjlrDcgv3sN
+P5fIUhuVNvWvaPwXJr9FhUXgQt1jGG6Z4oeN15g/TwR5hTLSQXDc6AY3QL83Yga4E20xX4jUFNj1
+EZm4gGIpderFiX64Wx5yWAqJKgUcAjZ6+KOIm83XsU2lIog4FJBbGdOsqAC+lp7GlclNq60H8TZl
+zJwA1ua9TiQY3KtliRJRcKSO4Sc0sdKk6++4Ud1Gy0rU68CS56aMkKiKVav5gYP4AGNCwyPWWC+j
++45zYOijdxqATceIGcXk9YYZlNOU7gjzokWTvo4Y5U8uEfuQV+mDMgMkU5Yu8LEpp6szEjILKdDr
+TUwyakQYzAEu9xNh1OrW01h8NYHYYXNgWgtHeRyQfLqgvRLva4MLbGMjCOeA7/g3MAq6EbZFaBXA
+KMwPXG+BR/bV98NBPA34SYGd0ldbN0fkShwV8w89G0/ra3pvHUkvEeJd2YemATFnORkancLuC5s9
+FSLkiFM0QA+TkQsFKaS/cVj951l0LiS6QslxfJKpODIUGh2EymfnfYXPzNeTQb7Ug9AVEKOt5ZPF
+KiiYCieJ2t8xx/mz1QBvJT4CFikQf0a1jAiOcUkKjykHvxPxIKoOuApNSIUbXHySHaBVNE6RLmSQ
+ncI0bMiEN52Tik8xAqlY4BQE4V1s5QtIEh04OgL8iQNSPpe8Qy0dF+qcySsYqiIZveJiRRUNvYAn
+BN3crTq51n2yUumXscEEXZyM9u0V2Mbu4uWwW51k1St6RxHCKkJNsrMyku9GbGjSWZ21RNcuQN7X
+u1HGmIto4y4oCdYDWrOzM2GrlrjVD+a/xYD3zgriGjC+7uCNE4oFcm4eZBmAGRlmalhUrjnFm6xp
+El53ndHqEjCB/cxh/FQ+mzJEAw39+LgMYXvK/PId5xGS0jyx4rAkYiFDZItBOgiZODB0PaXe1/Vd
+d2UsnElVw9kowcnirAqhsvIqsHL/hUHDW+oBl09IbDn0tgc/4KWaFtah35MzJ+Smf2E/2MdDxn/U
+8iSSqNPR55FULlmNftDi4CwO69tr+50mq1H2yTwH228eL6UUbu4fclIKlEHlxLJO6rivexefO7zI
+cvqvh4HYUvz0VEpPdwkDHEx0IRJ6hI50YWgNmvRRhwzV+jhuHkGQ8ff81SxMRV4VEroPnbIDXdid
+KLtWJKcxKjSrf0DSV4ONd6JNl/X+zL3uzH95Zeo6lJI19ufvmhvin8ATTf7JKhgU4e7S0e4GOlNI
+a5T+WknVeA9BRFogSSLysx0Dy2ZyK6PaktfdeeO3gh54CesS5XpretzzoEahccBdV/NxAIXCkc4s
+bknA/uCjpDCma0m629zgOvYTPEPXV/7sut29S8KRxeXrXw0Wp9bH3xCoGPrS4h7OhvCc4lQ1QyAF
+Vf5rtzNPHSLKN73cIcCBBqjuTB714b6RLnVrutymUjQwRzQtejytflO8yluDvlsYnpUfL+BpFDpl
+Oxn3Sj1ytAaivNRbf2M49XrKvk1gXy7Hecwo3YrJltcsj8OQqvxUcC7eKkV8YIXqT1mmEROQjPRI
+K2U27rq3aa7QjEEGfrmIWv6FAieVwPOT6e2l4B1N7TaHym3amPnC7TZSg5C2TRZxEnlaQF4JfOo9
+o3OYLz9n+T+gTQvRYWxBD4PCI1S3WhRQoGGdsALBptQj2aTkA62WOfzq+AsMIuVQ/nbYyBxphcS6
+jJO83KhnYJ144c/m3CgQ/G0CXAieLqJte2+GWAD6u2RZ647rf9UPtcBCD2DahvEcVJ+bOaOlwoJQ
+INB+9WN+Q+k6do2o6SAgaqA6ok5SYFnBhbHXjbHEVYNQDryBgIEJtVq6TX9mlu6Hbm76OwR97kj6
+Yr19uHwl8wLBTnNPXNWjjVhbeNT1/Dqncgs4iJb42elikDW9DOuKD4UbMCuGvx2m6NmjNZ9126Di
+Wus4Bujuud4hn+JxtO9+un30vCXYXQeEXZpGsqKHu+vmEhUyPmNFUp1hCzmcNpgbiah4Xezz85MC
++d/cS+cFLekaExONiktfVvZUka+4u8gg757zf8Wk31PHq4ETOwdqdwfxvbST6n1YnkNc8+ef9yfa
+SOhOEAPAe0/5JWHkUn3B1AbPsuqqOHQvmvt7omh0uHAbPdeYo9MORuSkPZgeQSd3u6CiBLAG2gKY
+83TCtiacSk8Z3zWKHXUQR1HED4bw9djXfddSGUzPD6rjxrmR/oMF/QXs1YR75vpVshKugYhIeqW6
+lBoBUd/nI0PKzaH2odsRfv7XlPZslY5gkQr+1kjcynZSLY1q/avgGpG2RzgkOAzfkoLrZnSCx8C6
+pacjQeEmzV4J83jjFQ/ksUOi14Frx6TfmLu9dUUWcV+tnl93OBFCsXnPQNevOMjG4iU52yKNcsV6
+NIVk0mJnFZKgY2wbpYyVeq4tFPInCgwGYtiN5RIr3pQCVhLL/DgRSIUrqROKv6zBdG5EygC7TvoN
+OciMW227BBlJJ16IMAFPrmgzVRWbpT2ZAVN7RyLXSIinFwy1TnZth/CJa9OilFBG2f98E9yTqJis
+yanxnr495tckKajYaSrMlGCUug0jWA+3vgASk9PHsRd7kw5LPNKQHD0Dd+5LTuTJz74+Ks6v50bv
+bpb/MWVoX83f1LNdm41Tke8H1zYCTBgWi4k4hmaEZ1QwBf9Adu50lodDqQu3sdgX2cPYCkB3t4yA
+rxlGBoNYvDrDaZZEhhuXSCNI38cWML1vbDbFPiaoTMA6dAaNLNJXKyrCV6HZ6u38b9WUWmmIWqEh
+mrCY2Vo6NYT+laGicz9SAlItPA7mWk+WpOD2VOigxU5awP/SYge2VFdxrh0qbhfg4LDWUz7TI/MM
+bWkj92xyuw43c3JIfI8NKaL34nquj/wi3ZJ4P6Xd85vfuTgHnU9SflIH7J7EUznH4a2R7ZNPqt2Y
+D8q9x4FP/i5hNbjHS4hHpofDsQLYtd4DSGjpGlgGDmqq9nf4IbTfhiMLvRogsgHjVTWvKCrG/qH2
+pnsABXDKLwq+IjOQuDJ5cP/mVAhpYiSCjtw7ocxZnh2jEIzZ76C2ApFxXNBQ3HYdUOSYcmWVCc9t
+L7+6Z9LZeTc5E+O1ioWF9jH+H11VztH1gmmzcP2V5G17raDyGfv+UttOlWZgwbmi5N8xGTsb8rQb
+gHz0HZm1Y7C/bqdLFJD8x61uSGoobsLYlIq818p80Istzjwd+aU4jyXfUHU8qzDCY1wFVQq21Ndv
+YBlbFZTJcwjH+hVeTHmqKoY9IqZXliKsSPgg2s/vCv7d5fiLUt7HkDk3jptMTOYaTGJVbBiu/MY4
+WBZuWHgvCctwRaJe4XYcGoubyUfhLAfkVo6ozqIt1rOzjz3FuL+x3GyJX226IuibJSgKWVtuFtTa
+FnCam4nDui/aVyyN++29IqjTghQEsIrmf9rdbGQKp2y4vvvNAvS+dHuPVNOW7kZ0mraTjJyW3eaz
+T36/jukJZeg1cgcQubJDfEZiV9ftXUJVgoUKd4ABml5lv/eAaVwclXpp6UQxWwz6QqW1En5z+6f5
+B6rQSmPJQ09+pNVOcmMpMmvTEul0rk+j/UWGPO285mTYLwnbPCSVT44FEuU02RlrgXfnsHP0KpR0
+IAKZWfqDMg+ie/efAJWrgWrIWgluV5vyFEXD9n1yKIVa7e1YKXiND0/D8o3lf1/aHSprBuvqyZp4
+jCaFqX0MisomR75DB0h0cffutvXhVhVQWMj8EW4dJ+xG+n73MSym8U/09E4LwbdU3ln5Oyt9zTTw
+GgC5EKrPcJAbMB1YI9M30wpk1+bTbRHHkY9Qidm/hnt/GEbgivzFFCkpZbj5XUxWkAX+J2XHPKUr
+oMqEmpvKeAz0po4fMkgdoL+mEhU=
+`pragma protect end_protected