`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="19.4"

`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
UEn+h6uqwaB6tsuqxCGJX+LhfA35wRq+uQeM76hzoPpk1ATKRq2PYBviHSTq
aVdvV1+Z9qyGuExW20lphGSJAXmzjDvFjs5ITIzTjbKq4iUnozWMpUsOAWTs
krQkQbezeN6kQj+c2DF7od2nU7CJzLTVVN9AuF0aeXwVsuLD+HCWJGWDRJzK
2QMifuQIqDtkQEt1jN3mHXsYw3fC/C0vVZ1D6aoDOZC1lAVX8tC7FUfrZaiD
1Ijw6Q4iPbpP4LBMJaSDs7QxR933ILdY8xwtmwV1Cdk7K6su3w3PIGDNJsoR
WKJ7Zr0Ryv0s3ky+GJSc8d+WjPNpPDQ8jSi5MAVfPA==


`pragma protect data_method="aes128-cbc"
`pragma protect encoding=(enctype = "base64", line_length = 76, bytes = 7456)
`pragma protect data_block
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

`pragma protect end_protected
