public inbox for gcc-prs@sourceware.org
help / color / mirror / Atom feed
From: Marc Mengel <mengel@fnal.gov>
To: nobody@gcc.gnu.org
Cc: gcc-prs@gcc.gnu.org,
Subject: Re: c++/8549: --pedantic-errors problems on RedHat 6.1
Date: Tue, 19 Nov 2002 18:36:00 -0000	[thread overview]
Message-ID: <20021113170602.22163.qmail@sources.redhat.com> (raw)

The following reply was made to PR c++/8549; it has been noted by GNATS.

From: Marc Mengel <mengel@fnal.gov>
To: bangerth@dealii.org, gcc-bugs@gcc.gnu.org, gcc-prs@gcc.gnu.org,
 mengel@fnal.gov, nobody@gcc.gnu.org, gcc-gnats@gcc.gnu.org
Cc:  
Subject: Re: c++/8549: --pedantic-errors problems on RedHat 6.1
Date: Wed, 13 Nov 2002 10:58:17 -0600

 This is a multi-part message in MIME format.
 --------------000801000200090106090205
 Content-Type: text/plain; charset=us-ascii; format=flowed
 Content-Transfer-Encoding: 7bit
 
 bangerth@dealii.org wrote:
 > Synopsis: --pedantic-errors problems on RedHat 6.1
 > 
 > State-Changed-From-To: open->feedback
 > State-Changed-By: bangerth
 > State-Changed-When: Tue Nov 12 10:21:26 2002
 > State-Changed-Why:
 >     You have a very old system... I cannot reproduce this
 >     problem with a more recent distribtion, neither with
 >     3.0, 3.1, or 3.2.
 >     
 >     Nevertheless, if you want us
 >     to look at the problem, please tell us what happens exactly
 >     at the lines indicated in std_cmath. Probably, there are
 >     initializers used that come from system headers. Please also 
 >     provide preprocessed files as described on the gcc homepage.
 >     (However, in this case we would need both information I
 >     mentioned above.)
 >     
 >     Could you please also test 3.2.1 once it will be released in
 >     a few days?
 > 
 > http://gcc.gnu.org/cgi-bin/gnatsweb.pl?cmd=view%20audit-trail&database=gcc&pr=8549
 
 I did not include a preprocessed file, as the problem goes away if you
 preprocess it and run on the preprocessed file.
 
 Instead, I have built a tarfile of all the include files touched in the build, 
 and a script that uses -nostdinc -Ifoo -Ibar ... which reproduces the problem 
 on other platforms.
 
 As I mentioned this is a very hard to reproduce bug.
 
 Hopefully the attached tarfile makes it clear; unpack it in an empty 
 directory, and run ./reproduce_it (a shell script).
 
 Marc
 
 --------------000801000200090106090205
 Content-Type: application/x-tar;
  name="reproduce_it.tar"
 Content-Transfer-Encoding: base64
 Content-Disposition: inline;
  filename="reproduce_it.tar"
 
 Li8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAwNDA3NzUA
 MDAwMzMwNQAwMDExNjM3ADAwMDAwMDAwMDAwADA3NTY0NTAxNTcxADAxMDA3MwAgNQAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB1c3RhciAgAG1lbmdl
 bAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAb3NzAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAuL2xpYi8AAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAMDA0MDc3NQAwMDAzMzA1ADAwMTE2MzcAMDAwMDAwMDAwMDAA
 MDc1NjQ1MDA2MzEAMDEwNjM1ACA1AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAHVzdGFyICAAbWVuZ2VsAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABv
 c3MAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC4v
 bGliL2djYy1saWIvAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwMDQwNzc1ADAw
 MDMzMDUAMDAxMTYzNwAwMDAwMDAwMDAwMAAwNzU2NDUwMDYzMQAwMTIxMzUAIDUAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAdXN0YXIgIABtZW5nZWwA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAG9zcwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALi9saWIvZ2NjLWxpYi9pNjg2LXBjLWxpbnV4LWdu
 dS8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAADAwNDA3NzUAMDAwMzMwNQAwMDExNjM3ADAwMDAwMDAwMDAwADA3
 NTY0NTAwNjMxADAxNTE1NQAgNQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAB1c3RhciAgAG1lbmdlbAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAb3Nz
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAuL2xp
 Yi9nY2MtbGliL2k2ODYtcGMtbGludXgtZ251LzMuMS8AAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDA0MDc3NQAwMDAz
 MzA1ADAwMTE2MzcAMDAwMDAwMDAwMDAAMDc1NjQ1MDA2MzIAMDE1NDU3ACA1AAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHVzdGFyICAAbWVuZ2VsAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAABvc3MAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAC4vbGliL2djYy1saWIvaTY4Ni1wYy1saW51eC1nbnUv
 My4xL3NwZWNzAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAwMTAwNjQ0ADAwMDMzMDUAMDAxMTYzNwAwMDAwMDAxNDMxNwAwNzQ3
 MzA0MjU1MQAwMTY1MjAAIDAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAdXN0YXIgIABtZW5nZWwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAG9zcwAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKmFzbToK
 JXt2Oi1WfSAle1F5On0gJXshUW46LVF5fSAle259ICV7VH0gJXtZbSwqfSAle1lkLCp9ICV7
 V2EsKjolKn0KCiphc21fZGVidWc6CiV7Z3N0YWJzKjotLWdzdGFic30leyFnc3RhYnMqOiV7
 Zyo6LS1nZHdhcmYyfX0KCiphc21fZmluYWw6CiV8CgoqYXNtX29wdGlvbnM6CiVhICVZICV7
 YzolV3tvKn0leyFvKjotbyAldyViJU99fSV7IWM6LW8gJWQldyV1JU99CgoqaW52b2tlX2Fz
 OgoleyFTOi1vICV7fCFwaXBlOiVnLnN9IHwKIGFzICUoYXNtX29wdGlvbnMpICV7IXBpcGU6
 JWcuc30gJUEgfQoKKmNwcDoKJShjcHBfY3B1KSAle2ZQSUM6LURfX1BJQ19fIC1EX19waWNf
 X30gJXtmcGljOi1EX19QSUNfXyAtRF9fcGljX199ICV7cG9zaXg6LURfUE9TSVhfU09VUkNF
 fSAle3B0aHJlYWQ6LURfUkVFTlRSQU5UfQoKKmNwcF9vcHRpb25zOgolKGNwcF91bmlxdWVf
 b3B0aW9ucykgJXtzdGQqfSAle2QqfSAle1cqfSAle3d9ICV7cGVkYW50aWMqfSAle2ZzaG93
 LWNvbHVtbn0gJXtmbm8tc2hvdy1jb2x1bW59ICV7ZnNpZ25lZC1jaGFyJmZ1bnNpZ25lZC1j
 aGFyfSAle2ZsZWFkaW5nLXVuZGVyc2NvcmV9ICV7Zm5vLWxlYWRpbmctdW5kZXJzY29yZX0g
 JXtmbm8tb3BlcmF0b3ItbmFtZXN9ICV7ZnRhYnN0b3A9Kn0KCipjcHBfdW5pcXVlX29wdGlv
 bnM6CiV7QzoleyFFOiVlR05VIEMgZG9lcyBub3Qgc3VwcG9ydCAtQyB3aXRob3V0IHVzaW5n
 IC1FfX0gJXtub3N0ZGluYyp9ICV7Q30gJXt2fSAle0kqfSAle1B9ICV7JH0gJUkgJXtNRDot
 TUQgJVd7IW86ICViLmR9JVd7byo6JS5kJSp9fSAle01NRDotTU1EICVXeyFvOiAlYi5kfSVX
 e28qOiUuZCUqfX0gJXtNfSAle01NfSAlV3tNRip9ICV7TUd9ICV7TVB9ICV7TVEqfSAle01U
 Kn0gJXshRToleyFNOiV7IU1NOiV7TUR8TU1EOiV7byo6LU1RICUqfX19fX0gJXshbm8tZ2Nj
 Oi1EX19HTlVDX189JXYxIC1EX19HTlVDX01JTk9SX189JXYyIC1EX19HTlVDX1BBVENITEVW
 RUxfXz0ldjN9ICV7IXVuZGVmOiV7IWFuc2k6JXshc3RkPSo6JXB9JXtzdGQ9Z251KjolcH19
 ICVQfSAle3RyaWdyYXBoc30gJXtPczotRF9fT1BUSU1JWkVfU0laRV9ffSAle08qOiV7IU8w
 Oi1EX19PUFRJTUlaRV9ffX0gJXtmbm8taW5saW5lfE8wfCFPKjotRF9fTk9fSU5MSU5FX199
 ICV7ZmZhc3QtbWF0aDotRF9fRkFTVF9NQVRIX199ICV7ZnNob3J0LXdjaGFyOi1VX19XQ0hB
 Ul9UWVBFX18gLURfX1dDSEFSX1RZUEVfXz1zaG9ydFwgdW5zaWduZWRcIGludH0gJXtmZnJl
 ZXN0YW5kaW5nOi1EX19TVERDX0hPU1RFRF9fPTB9ICV7Zm5vLWhvc3RlZDotRF9fU1REQ19I
 T1NURURfXz0wfSAleyFmZnJlZXN0YW5kaW5nOiV7IWZuby1ob3N0ZWQ6LURfX1NURENfSE9T
 VEVEX189MX19ICV7cmVtYXB9ICV7ZzM6LWREfSAle0h9ICVDICV7RComVSomQSp9ICV7aSp9
 ICVaICVpICV7RXxNfE1NOiVXe28qfX0KCip0cmFkX2NhcGFibGVfY3BwOgole3RyYWRpdGlv
 bmFsfGZ0cmFkaXRpb25hbHx0cmFkaXRpb25hbC1jcHA6dHJhZH1jcHAwCgoqY2MxOgolKGNj
 MV9jcHUpICV7cHJvZmlsZTotcH0KCipjYzFfb3B0aW9uczoKJXtwZzole2ZvbWl0LWZyYW1l
 LXBvaW50ZXI6JWUtcGcgYW5kIC1mb21pdC1mcmFtZS1wb2ludGVyIGFyZSBpbmNvbXBhdGli
 bGV9fSAlMSAleyFROi1xdWlldH0gLWR1bXBiYXNlICVCICV7ZCp9ICV7bSp9ICV7YSp9ICV7
 Zyp9ICV7Typ9ICV7Vyp9ICV7d30gJXtwZWRhbnRpYyp9ICV7c3RkKn0gJXthbnNpfSAle3Ry
 YWRpdGlvbmFsfSAle3Y6LXZlcnNpb259ICV7cGc6LXB9ICV7cH0gJXtmKn0gJXtRbjotZm5v
 LWlkZW50fSAley0taGVscDotLWhlbHB9ICV7LS10YXJnZXQtaGVscDotLXRhcmdldC1oZWxw
 fSAleyFmc3ludGF4LW9ubHk6JXtTOiVXe28qfSV7IW8qOi1vICViLnN9fX0gJXtmc3ludGF4
 LW9ubHk6LW8gJWp9ICV7LXBhcmFtKn0KCipjYzFwbHVzOgoKCipsaW5rX2djY19jX3NlcXVl
 bmNlOgolRyAlTCAlRwoKKmVuZGZpbGU6CiV7IXNoYXJlZDpjcnRlbmQubyVzfSAle3NoYXJl
 ZDpjcnRlbmRTLm8lc30gY3J0bi5vJXMKCipsaW5rOgotbSBlbGZfaTM4NiAle3NoYXJlZDot
 c2hhcmVkfSAgICV7IXNoYXJlZDogICAgICV7IWliY3M6ICAgICAgICV7IXN0YXRpYzogCSV7
 cmR5bmFtaWM6LWV4cG9ydC1keW5hbWljfSAJJXshZHluYW1pYy1saW5rZXI6LWR5bmFtaWMt
 bGlua2VyIC9saWIvbGQtbGludXguc28uMn19IAkle3N0YXRpYzotc3RhdGljfX19CgoqbGli
 Ogole3NoYXJlZDogLWxjfSAgICAleyFzaGFyZWQ6ICV7bWllZWUtZnA6LWxpZWVlfSAle3B0
 aHJlYWQ6LWxwdGhyZWFkfSAJJXtwcm9maWxlOi1sY19wfSAleyFwcm9maWxlOiAtbGN9fQoK
 KmxpYmdjYzoKLWxnY2MKCipzdGFydGZpbGU6CiV7IXNoYXJlZDogICAgICAle3BnOmdjcnQx
 Lm8lc30gJXshcGc6JXtwOmdjcnQxLm8lc30gCQkgICAgICAgJXshcDole3Byb2ZpbGU6Z2Ny
 dDEubyVzfSAJCQkgJXshcHJvZmlsZTpjcnQxLm8lc319fX0gICAgY3J0aS5vJXMgJXtzdGF0
 aWM6Y3J0YmVnaW5ULm8lc30gICAleyFzdGF0aWM6JXshc2hhcmVkOmNydGJlZ2luLm8lc30g
 JXtzaGFyZWQ6Y3J0YmVnaW5TLm8lc319Cgoqc3dpdGNoZXNfbmVlZF9zcGFjZXM6CgoKKnBy
 ZWRlZmluZXM6Ci1EX19FTEZfXyAtRHVuaXggLURfX2dudV9saW51eF9fIC1EbGludXggLUFz
 eXN0ZW09cG9zaXgKCipjcm9zc19jb21waWxlOgowCgoqdmVyc2lvbjoKMy4xCgoqbXVsdGls
 aWI6Ci4gOwoKKm11bHRpbGliX2RlZmF1bHRzOgoKCiptdWx0aWxpYl9leHRyYToKCgoqbXVs
 dGlsaWJfbWF0Y2hlczoKCgoqbXVsdGlsaWJfZXhjbHVzaW9uczoKCgoqbGlua2VyOgpjb2xs
 ZWN0MgoKKmxpbmtfbGliZ2NjOgolRAoKKm1kX2V4ZWNfcHJlZml4OgoKCiptZF9zdGFydGZp
 bGVfcHJlZml4OgoKCiptZF9zdGFydGZpbGVfcHJlZml4XzE6CgoKKmNwcF9jcHVfZGVmYXVs
 dDoKLURfX3R1bmVfaTY4Nl9fIC1EX190dW5lX3BlbnRpdW1wcm9fXwoKKmNwcF9jcHU6CiUo
 Y3BwX2NwdTMyKSAlKGNwcF9jcHVjb21tb24pCgoqY3BwX2NwdTMyOgotQWNwdT1pMzg2IC1B
 bWFjaGluZT1pMzg2ICV7IWFuc2k6JXshc3RkPWMqOiV7IXN0ZD1pKjotRGkzODZ9fX0gLURf
 X2kzODYgLURfX2kzODZfXyAlKGNwcF9jcHUzMnNpemV0KQoKKmNwcF9jcHU2NDoKLUFjcHU9
 eDg2XzY0IC1BbWFjaGluZT14ODZfNjQgLURfX3g4Nl82NCAtRF9feDg2XzY0X18gJShjcHBf
 Y3B1NjRzaXpldCkKCipjcHBfY3B1MzJzaXpldDoKCgoqY3BwX2NwdTY0c2l6ZXQ6CgoKKmNw
 cF9jcHVjb21tb246CiV7bWFyY2g9aTM4NjoleyFtY3B1KjotRF9fdHVuZV9pMzg2X18gfX0l
 e21hcmNoPWk0ODY6LURfX2k0ODYgLURfX2k0ODZfXyAleyFtY3B1KjotRF9fdHVuZV9pNDg2
 X18gfX0le21hcmNoPXBlbnRpdW18bWFyY2g9aTU4NjotRF9faTU4NiAtRF9faTU4Nl9fIC1E
 X19wZW50aXVtIC1EX19wZW50aXVtX18gICAleyFtY3B1KjotRF9fdHVuZV9pNTg2X18gLURf
 X3R1bmVfcGVudGl1bV9fIH19JXttYXJjaD1wZW50aXVtLW1teDotRF9faTU4NiAtRF9faTU4
 Nl9fIC1EX19wZW50aXVtIC1EX19wZW50aXVtX18gICAtRF9fcGVudGl1bV9fbW14X18gICAl
 eyFtY3B1KjotRF9fdHVuZV9pNTg2X18gLURfX3R1bmVfcGVudGl1bV9fIC1EX190dW5lX3Bl
 bnRpdW1fbW14X199fSV7bWFyY2g9cGVudGl1bXByb3xtYXJjaD1pNjg2Oi1EX19pNjg2IC1E
 X19pNjg2X18gICAtRF9fcGVudGl1bXBybyAtRF9fcGVudGl1bXByb19fICAgJXshbWNwdSo6
 LURfX3R1bmVfaTY4Nl9fIC1EX190dW5lX3BlbnRpdW1wcm9fXyB9fSV7bWFyY2g9azY6LURf
 X2s2IC1EX19rNl9fICV7IW1jcHUqOi1EX190dW5lX2s2X18gfX0le21hcmNoPWs2LTI6LURf
 X2s2IC1EX19rNl9fIC1EX19rNl8yX18gICAleyFtY3B1KjotRF9fdHVuZV9rNl9fIC1EX190
 dW5lX2s2XzJfXyB9fSV7bWFyY2g9azYtMzotRF9fazYgLURfX2s2X18gLURfX2s2XzNfXyAg
 ICV7IW1jcHUqOi1EX190dW5lX2s2X18gLURfX3R1bmVfazZfM19fIH19JXttYXJjaD1hdGhs
 b258bWFyY2g9YXRobG9uLXRiaXJkOi1EX19hdGhsb24gLURfX2F0aGxvbl9fICAgJXshbWNw
 dSo6LURfX3R1bmVfYXRobG9uX18gfX0le21hcmNoPWF0aGxvbi00fG1hcmNoPWF0aGxvbi14
 cHxtYXJjaD1hdGhsb24tbXA6LURfX2F0aGxvbiAtRF9fYXRobG9uX18gICAtRF9fYXRobG9u
 X3NzZV9fICAgJXshbWNwdSo6LURfX3R1bmVfYXRobG9uX18gLURfX3R1bmVfYXRobG9uX3Nz
 ZV9fIH19JXttYXJjaD1wZW50aXVtNDotRF9fcGVudGl1bTQgLURfX3BlbnRpdW00X18gJXsh
 bWNwdSo6LURfX3R1bmVfcGVudGl1bTRfXyB9fSV7bTM4NnxtY3B1PWkzODY6LURfX3R1bmVf
 aTM4Nl9fIH0le200ODZ8bWNwdT1pNDg2Oi1EX190dW5lX2k0ODZfXyB9JXttcGVudGl1bXxt
 Y3B1PXBlbnRpdW18bWNwdT1pNTg2fG1jcHU9cGVudGl1bS1tbXg6LURfX3R1bmVfaTU4Nl9f
 IC1EX190dW5lX3BlbnRpdW1fXyB9JXttcGVudGl1bXByb3xtY3B1PXBlbnRpdW1wcm98bWNw
 dT1pNjg2fGNwdT1wZW50aXVtMnxjcHU9cGVudGl1bTM6LURfX3R1bmVfaTY4Nl9fIC1EX190
 dW5lX3BlbnRpdW1wcm9fXyB9JXttY3B1PWs2fG1jcHU9azYtMnxtY3B1PWs2LTM6LURfX3R1
 bmVfazZfXyB9JXttY3B1PWF0aGxvbnxtY3B1PWF0aGxvbi10YmlyZHxtY3B1PWF0aGxvbi00
 fG1jcHU9YXRobG9uLXhwfG1jcHU9YXRobG9uLW1wOi1EX190dW5lX2F0aGxvbl9fIH0le21j
 cHU9YXRobG9uLTR8bWNwdT1hdGhsb24teHB8bWNwdT1hdGhsb24tbXA6LURfX3R1bmVfYXRo
 bG9uX3NzZV9fIH0le21jcHU9cGVudGl1bTQ6LURfX3R1bmVfcGVudGl1bTRfXyB9JXttYXJj
 aD1hdGhsb24tdGJpcmR8bWFyY2g9YXRobG9uLXhwfG1hcmNoPWF0aGxvbi1tcHxtYXJjaD1w
 ZW50aXVtM3xtYXJjaD1wZW50aXVtNDotRF9fU1NFX18gfSV7bWFyY2g9cGVudGl1bS1tbXh8
 bWFyY2g9azZ8bWFyY2g9azYtMnxtYXJjaD1rNi0zfG1hcmNoPWF0aGxvbnxtYXJjaD1hdGhs
 b24tdGJpcmR8bWFyY2g9YXRobG9uLTR8bWFyY2g9YXRobG9uLXhwfG1hcmNoPWF0aGxvbi1t
 cHxtYXJjaD1wZW50aXVtMnxtYXJjaD1wZW50aXVtM3xtYXJjaD1wZW50aXVtNDogLURfX01N
 WF9fIH0le21hcmNoPWs2LTJ8bWFyY2g9azYtM3xtYXJjaD1hdGhsb258bWFyY2g9YXRobG9u
 LXRiaXJkfG1hcmNoPWF0aGxvbi00fG1hcmNoPWF0aGxvbi14cHxtYXJjaD1hdGhsb24tbXA6
 IC1EX18zZE5PV19fIH0le21hcmNoPWF0aGxvbnxtYXJjaD1hdGhsb24tdGJpcmR8bWFyY2g9
 YXRobG9uLTR8bWFyY2g9YXRobG9uLXhwfG1hcmNoPWF0aGxvbi1tcDogLURfXzNkTk9XX0Ff
 XyB9JXttYXJjaD1wZW50aXVtNDogLURfX1NTRTJfXyB9JXshbWFyY2gqOiV7IW1jcHUqOiV7
 IW0zODY6JXshbTQ4NjoleyFtcGVudGl1bSo6JShjcHBfY3B1X2RlZmF1bHQpfX19fX0KCipj
 YzFfY3B1OgoleyFtY3B1KjogJXttMzg2Oi1tY3B1PWkzODYgJW5gLW0zODYnIGlzIGRlcHJl
 Y2F0ZWQuIFVzZSBgLW1hcmNoPWkzODYnIG9yIGAtbWNwdT1pMzg2JyBpbnN0ZWFkLgp9ICV7
 bTQ4NjotbWNwdT1pNDg2ICVuYC1tNDg2JyBpcyBkZXByZWNhdGVkLiBVc2UgYC1tYXJjaD1p
 NDg2JyBvciBgLW1jcHU9aTQ4NicgaW5zdGVhZC4KfSAle21wZW50aXVtOi1tY3B1PXBlbnRp
 dW0gJW5gLW1wZW50aXVtJyBpcyBkZXByZWNhdGVkLiBVc2UgYC1tYXJjaD1wZW50aXVtJyBv
 ciBgLW1jcHU9cGVudGl1bScgaW5zdGVhZC4KfSAle21wZW50aXVtcHJvOi1tY3B1PXBlbnRp
 dW1wcm8gJW5gLW1wZW50aXVtcHJvJyBpcyBkZXByZWNhdGVkLiBVc2UgYC1tYXJjaD1wZW50
 aXVtcHJvJyBvciBgLW1jcHU9cGVudGl1bXBybycgaW5zdGVhZC4KfX0gJXttaW50ZWwtc3lu
 dGF4Oi1tYXNtPWludGVsICVuYC1taW50ZWwtc3ludGF4JyBpcyBkZXByZWNhdGVkLiBVc2Ug
 YC1tYXNtPWludGVsJyBpbnN0ZWFkLgp9ICV7bW5vLWludGVsLXN5bnRheDotbWFzbT1hdHQg
 JW5gLW1uby1pbnRlbC1zeW50YXgnIGlzIGRlcHJlY2F0ZWQuIFVzZSBgLW1hc209YXR0JyBp
 bnN0ZWFkLgp9CgoqbGlua19jb21tYW5kOgoleyFmc3ludGF4LW9ubHk6JXshYzoleyFNOiV7
 IU1NOiV7IUU6JXshUzogICAgJShsaW5rZXIpICVsICVYICV7byp9ICV7QX0gJXtkfSAle2Uq
 fSAle219ICV7Tn0gJXtufSAle3J9ICV7c30gJXt0fSAgICAle3UqfSAle3h9ICV7en0gJXta
 fSAleyFBOiV7IW5vc3RkbGliOiV7IW5vc3RhcnRmaWxlczolU319fSAgICAle3N0YXRpYzp9
 ICV7TCp9ICUobGlua19saWJnY2MpICVvICV7IW5vc3RkbGliOiV7IW5vZGVmYXVsdGxpYnM6
 JShsaW5rX2djY19jX3NlcXVlbmNlKX19ICAgICV7IUE6JXshbm9zdGRsaWI6JXshbm9zdGFy
 dGZpbGVzOiVFfX19ICV7VCp9IH19fX19fQoKAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAuL2xpYi9nY2MtbGliL2k2ODYtcGMtbGludXgtZ251LzMuMS9pbmNsdWRlLwAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 MDA0MDc3NQAwMDAzMzA1ADAwMTE2MzcAMDAwMDAwMDAwMDAAMDc1NjQ1MDA2MzIAMDE3MTAy
 ACA1AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHVzdGFy
 ICAAbWVuZ2VsAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABvc3MAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC4vbGliL2djYy1saWIvaTY4Ni1w
 Yy1saW51eC1nbnUvMy4xL2luY2x1ZGUvZmxvYXQuaAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwMTAwNjY0ADAwMDMzMDUAMDAxMTYzNwAwMDAw
 MDAxMDYzNQAwNzQ3MzAyMTcwMgAwMjAzNTUAIDAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAdXN0YXIgIABtZW5nZWwAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAG9zcwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAALyogZmxvYXQuaCBmb3IgdGFyZ2V0IHdpdGggSUVFRSAzMi82NCBiaXQgYW5kIElu
 dGVsIDM4NiBzdHlsZSA4MCBiaXQKICAgZmxvYXRpbmcgcG9pbnQgZm9ybWF0cyAqLwojaWZu
 ZGVmIF9GTE9BVF9IXwojZGVmaW5lIF9GTE9BVF9IXwovKiBQcm9kdWNlZCBieSBlbnF1aXJl
 IHZlcnNpb24gNC4zLCBDV0ksIEFtc3RlcmRhbSAqLwoKICAgLyogUmFkaXggb2YgZXhwb25l
 bnQgcmVwcmVzZW50YXRpb24gKi8KI3VuZGVmIEZMVF9SQURJWAojZGVmaW5lIEZMVF9SQURJ
 WCAyCiAgIC8qIE51bWJlciBvZiBiYXNlLUZMVF9SQURJWCBkaWdpdHMgaW4gdGhlIHNpZ25p
 ZmljYW5kIG9mIGEgZmxvYXQgKi8KI3VuZGVmIEZMVF9NQU5UX0RJRwojZGVmaW5lIEZMVF9N
 QU5UX0RJRyAyNAogICAvKiBOdW1iZXIgb2YgZGVjaW1hbCBkaWdpdHMgb2YgcHJlY2lzaW9u
 IGluIGEgZmxvYXQgKi8KI3VuZGVmIEZMVF9ESUcKI2RlZmluZSBGTFRfRElHIDYKICAgLyog
 QWRkaXRpb24gcm91bmRzIHRvIDA6IHplcm8sIDE6IG5lYXJlc3QsIDI6ICtpbmYsIDM6IC1p
 bmYsIC0xOiB1bmtub3duICovCiN1bmRlZiBGTFRfUk9VTkRTCiNkZWZpbmUgRkxUX1JPVU5E
 UyAxCiAgIC8qIERpZmZlcmVuY2UgYmV0d2VlbiAxLjAgYW5kIHRoZSBtaW5pbXVtIGZsb2F0
 IGdyZWF0ZXIgdGhhbiAxLjAgKi8KI3VuZGVmIEZMVF9FUFNJTE9OCiNkZWZpbmUgRkxUX0VQ
 U0lMT04gMS4xOTIwOTI5MGUtMDdGCiAgIC8qIE1pbmltdW0gaW50IHggc3VjaCB0aGF0IEZM
 VF9SQURJWCoqKHgtMSkgaXMgYSBub3JtYWxpc2VkIGZsb2F0ICovCiN1bmRlZiBGTFRfTUlO
 X0VYUAojZGVmaW5lIEZMVF9NSU5fRVhQICgtMTI1KQogICAvKiBNaW5pbXVtIG5vcm1hbGlz
 ZWQgZmxvYXQgKi8KI3VuZGVmIEZMVF9NSU4KI2RlZmluZSBGTFRfTUlOIDEuMTc1NDk0MzVl
 LTM4RgogICAvKiBNaW5pbXVtIGludCB4IHN1Y2ggdGhhdCAxMCoqeCBpcyBhIG5vcm1hbGlz
 ZWQgZmxvYXQgKi8KI3VuZGVmIEZMVF9NSU5fMTBfRVhQCiNkZWZpbmUgRkxUX01JTl8xMF9F
 WFAgKC0zNykKICAgLyogTWF4aW11bSBpbnQgeCBzdWNoIHRoYXQgRkxUX1JBRElYKiooeC0x
 KSBpcyBhIHJlcHJlc2VudGFibGUgZmxvYXQgKi8KI3VuZGVmIEZMVF9NQVhfRVhQCiNkZWZp
 bmUgRkxUX01BWF9FWFAgMTI4CiAgIC8qIE1heGltdW0gZmxvYXQgKi8KI3VuZGVmIEZMVF9N
 QVgKI2RlZmluZSBGTFRfTUFYIDMuNDAyODIzNDdlKzM4RgogICAvKiBNYXhpbXVtIGludCB4
 IHN1Y2ggdGhhdCAxMCoqeCBpcyBhIHJlcHJlc2VudGFibGUgZmxvYXQgKi8KI3VuZGVmIEZM
 VF9NQVhfMTBfRVhQCiNkZWZpbmUgRkxUX01BWF8xMF9FWFAgMzgKCiAgIC8qIE51bWJlciBv
 ZiBiYXNlLUZMVF9SQURJWCBkaWdpdHMgaW4gdGhlIHNpZ25pZmljYW5kIG9mIGEgZG91Ymxl
 ICovCiN1bmRlZiBEQkxfTUFOVF9ESUcKI2RlZmluZSBEQkxfTUFOVF9ESUcgNTMKICAgLyog
 TnVtYmVyIG9mIGRlY2ltYWwgZGlnaXRzIG9mIHByZWNpc2lvbiBpbiBhIGRvdWJsZSAqLwoj
 dW5kZWYgREJMX0RJRwojZGVmaW5lIERCTF9ESUcgMTUKICAgLyogRGlmZmVyZW5jZSBiZXR3
 ZWVuIDEuMCBhbmQgdGhlIG1pbmltdW0gZG91YmxlIGdyZWF0ZXIgdGhhbiAxLjAgKi8KI3Vu
 ZGVmIERCTF9FUFNJTE9OCiNkZWZpbmUgREJMX0VQU0lMT04gMi4yMjA0NDYwNDkyNTAzMTMx
 ZS0xNgogICAvKiBNaW5pbXVtIGludCB4IHN1Y2ggdGhhdCBGTFRfUkFESVgqKih4LTEpIGlz
 IGEgbm9ybWFsaXNlZCBkb3VibGUgKi8KI3VuZGVmIERCTF9NSU5fRVhQCiNkZWZpbmUgREJM
 X01JTl9FWFAgKC0xMDIxKQogICAvKiBNaW5pbXVtIG5vcm1hbGlzZWQgZG91YmxlICovCiN1
 bmRlZiBEQkxfTUlOCiNkZWZpbmUgREJMX01JTiAyLjIyNTA3Mzg1ODUwNzIwMTRlLTMwOAog
 ICAvKiBNaW5pbXVtIGludCB4IHN1Y2ggdGhhdCAxMCoqeCBpcyBhIG5vcm1hbGlzZWQgZG91
 YmxlICovCiN1bmRlZiBEQkxfTUlOXzEwX0VYUAojZGVmaW5lIERCTF9NSU5fMTBfRVhQICgt
 MzA3KQogICAvKiBNYXhpbXVtIGludCB4IHN1Y2ggdGhhdCBGTFRfUkFESVgqKih4LTEpIGlz
 IGEgcmVwcmVzZW50YWJsZSBkb3VibGUgKi8KI3VuZGVmIERCTF9NQVhfRVhQCiNkZWZpbmUg
 REJMX01BWF9FWFAgMTAyNAogICAvKiBNYXhpbXVtIGRvdWJsZSAqLwojdW5kZWYgREJMX01B
 WAojZGVmaW5lIERCTF9NQVggMS43OTc2OTMxMzQ4NjIzMTU3ZSszMDgKICAgLyogTWF4aW11
 bSBpbnQgeCBzdWNoIHRoYXQgMTAqKnggaXMgYSByZXByZXNlbnRhYmxlIGRvdWJsZSAqLwoj
 dW5kZWYgREJMX01BWF8xMF9FWFAKI2RlZmluZSBEQkxfTUFYXzEwX0VYUCAzMDgKCiAgIC8q
 IE51bWJlciBvZiBiYXNlLUZMVF9SQURJWCBkaWdpdHMgaW4gdGhlIHNpZ25pZmljYW5kIG9m
 IGEgbG9uZyBkb3VibGUgKi8KI3VuZGVmIExEQkxfTUFOVF9ESUcKI2RlZmluZSBMREJMX01B
 TlRfRElHIDY0CiAgIC8qIE51bWJlciBvZiBkZWNpbWFsIGRpZ2l0cyBvZiBwcmVjaXNpb24g
 aW4gYSBsb25nIGRvdWJsZSAqLwojdW5kZWYgTERCTF9ESUcKI2RlZmluZSBMREJMX0RJRyAx
 OAogICAvKiBEaWZmZXJlbmNlIGJldHdlZW4gMS4wIGFuZCB0aGUgbWluaW11bSBsb25nIGRv
 dWJsZSBncmVhdGVyIHRoYW4gMS4wICovCiN1bmRlZiBMREJMX0VQU0lMT04KI2RlZmluZSBM
 REJMX0VQU0lMT04gMS4wODQyMDIxNzI0ODU1MDQ0MzQwMWUtMTlMCiAgIC8qIE1pbmltdW0g
 aW50IHggc3VjaCB0aGF0IEZMVF9SQURJWCoqKHgtMSkgaXMgYSBub3JtYWxpc2VkIGxvbmcg
 ZG91YmxlICovCiN1bmRlZiBMREJMX01JTl9FWFAKI2RlZmluZSBMREJMX01JTl9FWFAgKC0x
 NjM4MSkKICAgLyogTWluaW11bSBub3JtYWxpc2VkIGxvbmcgZG91YmxlICovCiN1bmRlZiBM
 REJMX01JTgojZGVmaW5lIExEQkxfTUlOIDMuMzYyMTAzMTQzMTEyMDkzNTA2MjZlLTQ5MzJM
 CiAgIC8qIE1pbmltdW0gaW50IHggc3VjaCB0aGF0IDEwKip4IGlzIGEgbm9ybWFsaXNlZCBs
 b25nIGRvdWJsZSAqLwojdW5kZWYgTERCTF9NSU5fMTBfRVhQCiNkZWZpbmUgTERCTF9NSU5f
 MTBfRVhQICgtNDkzMSkKICAgLyogTWF4aW11bSBpbnQgeCBzdWNoIHRoYXQgRkxUX1JBRElY
 KiooeC0xKSBpcyBhIHJlcHJlc2VudGFibGUgbG9uZyBkb3VibGUgKi8KI3VuZGVmIExEQkxf
 TUFYX0VYUAojZGVmaW5lIExEQkxfTUFYX0VYUCAxNjM4NAogICAvKiBNYXhpbXVtIGxvbmcg
 ZG91YmxlICovCiN1bmRlZiBMREJMX01BWAojZGVmaW5lIExEQkxfTUFYIDEuMTg5NzMxNDk1
 MzU3MjMxNzY1MDJlKzQ5MzJMCiAgIC8qIE1heGltdW0gaW50IHggc3VjaCB0aGF0IDEwKip4
 IGlzIGEgcmVwcmVzZW50YWJsZSBsb25nIGRvdWJsZSAqLwojdW5kZWYgTERCTF9NQVhfMTBf
 RVhQCiNkZWZpbmUgTERCTF9NQVhfMTBfRVhQIDQ5MzIKCiNpZiBkZWZpbmVkIChfX1NURENf
 VkVSU0lPTl9fKSAmJiBfX1NURENfVkVSU0lPTl9fID49IDE5OTkwMUwKICAgLyogVGhlIGZs
 b2F0aW5nLXBvaW50IGV4cHJlc3Npb24gZXZhbHVhdGlvbiBtZXRob2QuCiAgICAgICAgLTEg
 IGluZGV0ZXJtaW5hdGUKICAgICAgICAgMCAgZXZhbHVhdGUgYWxsIG9wZXJhdGlvbnMgYW5k
 IGNvbnN0YW50cyBqdXN0IHRvIHRoZSByYW5nZSBhbmQKICAgICAgICAgICAgcHJlY2lzaW9u
 IG9mIHRoZSB0eXBlCiAgICAgICAgIDEgIGV2YWx1YXRlIG9wZXJhdGlvbnMgYW5kIGNvbnN0
 YW50cyBvZiB0eXBlIGZsb2F0IGFuZCBkb3VibGUKICAgICAgICAgICAgdG8gdGhlIHJhbmdl
 IGFuZCBwcmVjaXNpb24gb2YgdGhlIGRvdWJsZSB0eXBlLCBldmFsdWF0ZQogICAgICAgICAg
 ICBsb25nIGRvdWJsZSBvcGVyYXRpb25zIGFuZCBjb25zdGFudHMgdG8gdGhlIHJhbmdlIGFu
 ZAogICAgICAgICAgICBwcmVjaXNpb24gb2YgdGhlIGxvbmcgZG91YmxlIHR5cGUKICAgICAg
 ICAgMiAgZXZhbHVhdGUgYWxsIG9wZXJhdGlvbnMgYW5kIGNvbnN0YW50cyB0byB0aGUgcmFu
 Z2UgYW5kCiAgICAgICAgICAgIHByZWNpc2lvbiBvZiB0aGUgbG9uZyBkb3VibGUgdHlwZQog
 ICAqLwojIHVuZGVmIEZMVF9FVkFMX01FVEhPRAojIGRlZmluZSBGTFRfRVZBTF9NRVRIT0QJ
 MgoKICAgLyogTnVtYmVyIG9mIGRlY2ltYWwgZGlnaXRzIHRvIGVuYWJsZSByb3VuZGluZyB0
 byB0aGUgZ2l2ZW4gbnVtYmVyIG9mCiAgICAgIGRlY2ltYWwgZGlnaXRzIHdpdGhvdXQgbG9z
 cyBvZiBwcmVjaXNpb24uCiAgICAgICAgIGlmIEZMVF9SQURJWCA9PSAxMF5uOiAgI21hbnRp
 c3NhICogbG9nMTAgKEZMVF9SQURJWCkKICAgICAgICAgZWxzZSAgICAgICAgICAgICAgICA6
 ICBjZWlsICgxICsgI21hbnRpc3NhICogbG9nMTAgKEZMVF9SQURJWCkpCiAgICAgIHdoZXJl
 ICNtYW50aXNzYSBpcyB0aGUgbnVtYmVyIG9mIGJpdHMgaW4gdGhlIG1hbnRpc3NhIG9mIHRo
 ZSB3aWRlc3QKICAgICAgc3VwcG9ydGVkIGZsb2F0aW5nLXBvaW50IHR5cGUuCiAgICovCiMg
 dW5kZWYgREVDSU1BTF9ESUcKIyBkZWZpbmUgREVDSU1BTF9ESUcJMjEKCiNlbmRpZgkvKiBD
 OTkgKi8KCiNlbmRpZiAvKiAgX0ZMT0FUX0hfX18gKi8KAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALi9pbmNsdWRlLwAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAADAwNDA3NzUAMDAwMzMwNQAwMDExNjM3ADAwMDAwMDAwMDAwADA3
 NTY0NTAwNjMyADAxMTUxMwAgNQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAB1c3RhciAgAG1lbmdlbAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAb3Nz
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAuL2lu
 Y2x1ZGUvZysrLXYzLwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDA0MDc3NQAwMDAz
 MzA1ADAwMTE2MzcAMDAwMDAwMDAwMDAAMDc1NjQ1MDA2MzIAMDEyNDE1ACA1AAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHVzdGFyICAAbWVuZ2VsAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAABvc3MAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAC4vaW5jbHVkZS9nKystdjMvY21hdGgAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAwMTAwNjQ0ADAwMDMzMDUAMDAxMTYzNwAwMDAwMDAzNjAxMAAwNzQ3
 MzA0MjY1NwAwMTM0MzYAIDAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAdXN0YXIgIABtZW5nZWwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAG9zcwAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALy8gLSot
 IEMrKyAtKi0gQyBmb3J3YXJkaW5nIGhlYWRlci4KCi8vIENvcHlyaWdodCAoQykgMTk5Nywg
 MTk5OCwgMTk5OSwgMjAwMCwgMjAwMSwgMjAwMgovLyBGcmVlIFNvZnR3YXJlIEZvdW5kYXRp
 b24sIEluYy4KLy8KLy8gVGhpcyBmaWxlIGlzIHBhcnQgb2YgdGhlIEdOVSBJU08gQysrIExp
 YnJhcnkuICBUaGlzIGxpYnJhcnkgaXMgZnJlZQovLyBzb2Z0d2FyZTsgeW91IGNhbiByZWRp
 c3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeSBpdCB1bmRlciB0aGUKLy8gdGVybXMgb2YgdGhl
 IEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUKLy8gRnJl
 ZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyLCBvciAoYXQgeW91ciBv
 cHRpb24pCi8vIGFueSBsYXRlciB2ZXJzaW9uLgoKLy8gVGhpcyBsaWJyYXJ5IGlzIGRpc3Ry
 aWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCi8vIGJ1dCBXSVRI
 T1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9m
 Ci8vIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9T
 RS4gIFNlZSB0aGUKLy8gR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0
 YWlscy4KCi8vIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBH
 ZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFsb25nCi8vIHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUg
 dGhlIGZpbGUgQ09QWUlORy4gIElmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUKLy8gU29mdHdh
 cmUgRm91bmRhdGlvbiwgNTkgVGVtcGxlIFBsYWNlIC0gU3VpdGUgMzMwLCBCb3N0b24sIE1B
 IDAyMTExLTEzMDcsCi8vIFVTQS4KCi8vIEFzIGEgc3BlY2lhbCBleGNlcHRpb24sIHlvdSBt
 YXkgdXNlIHRoaXMgZmlsZSBhcyBwYXJ0IG9mIGEgZnJlZSBzb2Z0d2FyZQovLyBsaWJyYXJ5
 IHdpdGhvdXQgcmVzdHJpY3Rpb24uICBTcGVjaWZpY2FsbHksIGlmIG90aGVyIGZpbGVzIGlu
 c3RhbnRpYXRlCi8vIHRlbXBsYXRlcyBvciB1c2UgbWFjcm9zIG9yIGlubGluZSBmdW5jdGlv
 bnMgZnJvbSB0aGlzIGZpbGUsIG9yIHlvdSBjb21waWxlCi8vIHRoaXMgZmlsZSBhbmQgbGlu
 ayBpdCB3aXRoIG90aGVyIGZpbGVzIHRvIHByb2R1Y2UgYW4gZXhlY3V0YWJsZSwgdGhpcwov
 LyBmaWxlIGRvZXMgbm90IGJ5IGl0c2VsZiBjYXVzZSB0aGUgcmVzdWx0aW5nIGV4ZWN1dGFi
 bGUgdG8gYmUgY292ZXJlZCBieQovLyB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2Uu
 ICBUaGlzIGV4Y2VwdGlvbiBkb2VzIG5vdCBob3dldmVyCi8vIGludmFsaWRhdGUgYW55IG90
 aGVyIHJlYXNvbnMgd2h5IHRoZSBleGVjdXRhYmxlIGZpbGUgbWlnaHQgYmUgY292ZXJlZCBi
 eQovLyB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UuCgovLwovLyBJU08gQysrIDE0
 ODgyOiAyNi41ICBDIGxpYnJhcnkKLy8KCi8qKiBAZmlsZSBjbWF0aAogKiAgVGhpcyBpcyBh
 IFN0YW5kYXJkIEMrKyBMaWJyYXJ5IGZpbGUuICBZb3Ugc2hvdWxkIEBjICNpbmNsdWRlIHRo
 aXMgZmlsZQogKiAgaW4geW91ciBwcm9ncmFtcywgcmF0aGVyIHRoYW4gYW55IG9mIHRoZSAi
 Ki5oIiBpbXBsZW1lbnRhdGlvbiBmaWxlcy4KICoKICogIFRoaXMgaXMgdGhlIEMrKyB2ZXJz
 aW9uIG9mIHRoZSBTdGFuZGFyZCBDIExpYnJhcnkgaGVhZGVyIEBjIG1hdGguaCwKICogIGFu
 ZCBpdHMgY29udGVudHMgYXJlIChtb3N0bHkpIHRoZSBzYW1lIGFzIHRoYXQgaGVhZGVyLCBi
 dXQgYXJlIGFsbAogKiAgY29udGFpbmVkIGluIHRoZSBuYW1lc3BhY2UgQGMgc3RkLgogKi8K
 CiNpZm5kZWYgX0NQUF9DTUFUSAojZGVmaW5lIF9DUFBfQ01BVEggMQoKI3ByYWdtYSBHQ0Mg
 c3lzdGVtX2hlYWRlcgoKI2luY2x1ZGUgPGJpdHMvYysrY29uZmlnLmg+CgojaW5jbHVkZSA8
 bWF0aC5oPgoKLy8gR2V0IHJpZCBvZiB0aG9zZSBtYWNyb3MgZGVmaW5lZCBpbiA8bWF0aC5o
 PiBpbiBsaWV1IG9mIHJlYWwgZnVuY3Rpb25zLgojdW5kZWYgYWJzCiN1bmRlZiBkaXYKI3Vu
 ZGVmIGFjb3MKI3VuZGVmIGFzaW4KI3VuZGVmIGF0YW4KI3VuZGVmIGF0YW4yCiN1bmRlZiBj
 ZWlsCiN1bmRlZiBjb3MKI3VuZGVmIGNvc2gKI3VuZGVmIGV4cAojdW5kZWYgZmFicwojdW5k
 ZWYgZmxvb3IKI3VuZGVmIGZtb2QKI3VuZGVmIGZyZXhwCiN1bmRlZiBsZGV4cAojdW5kZWYg
 bG9nCiN1bmRlZiBsb2cxMAojdW5kZWYgbW9kZgojdW5kZWYgcG93CiN1bmRlZiBzaW4KI3Vu
 ZGVmIHNpbmgKI3VuZGVmIHNxcnQKI3VuZGVmIHRhbgojdW5kZWYgdGFuaAoKbmFtZXNwYWNl
 IHN0ZCAKewogIC8vIEZvcndhcmQgZGVjbGFyYXRpb24gb2YgYSBoZWxwZXIgZnVuY3Rpb24u
 ICBUaGlzIHJlYWxseSBzaG91bGQgYmUKICAvLyBhbiBgZXhwb3J0ZWQnIGZvcndhcmQgZGVj
 bGFyYXRpb24uCiAgdGVtcGxhdGU8dHlwZW5hbWUgX1RwPiBfVHAgX19jbWF0aF9wb3dlcihf
 VHAsIHVuc2lnbmVkIGludCk7CgogIHRlbXBsYXRlPHR5cGVuYW1lIF9UcD4KICBpbmxpbmUg
 X1RwCiAgICBfX2NtYXRoX2FicyhfVHAgX194KQogICAgewogICAgICByZXR1cm4gX194IDwg
 X1RwKCkgPyAtX194IDogX194OwogICAgfQoKICBpbmxpbmUgZG91YmxlCiAgYWJzKGRvdWJs
 ZSBfX3gpCiAgeyByZXR1cm4gX19idWlsdGluX2ZhYnMoX194KTsgfQoKICBpbmxpbmUgZmxv
 YXQKICBhYnMoZmxvYXQgX194KQogIHsgcmV0dXJuIF9fYnVpbHRpbl9mYWJzZihfX3gpOyB9
 CgogIGlubGluZSBsb25nIGRvdWJsZQogIGFicyhsb25nIGRvdWJsZSBfX3gpCiAgeyByZXR1
 cm4gX19idWlsdGluX2ZhYnNsKF9feCk7IH0KCiNpZiBfR0xJQkNQUF9IQVZFX0FDT1NGCiAg
 aW5saW5lIGZsb2F0IAogIGFjb3MoZmxvYXQgX194KSB7IHJldHVybiA6OmFjb3NmKF9feCk7
 IH0KI2Vsc2UKICBpbmxpbmUgZmxvYXQgCiAgYWNvcyhmbG9hdCBfX3gpIHsgcmV0dXJuIDo6
 YWNvcyhzdGF0aWNfY2FzdDxkb3VibGU+KF9feCkpOyB9CiNlbmRpZgoKICB1c2luZyA6OmFj
 b3M7CiAgCiNpZiBfR0xJQkNQUF9IQVZFX0FDT1NMCiAgaW5saW5lIGxvbmcgZG91YmxlIAog
 IGFjb3MobG9uZyBkb3VibGUgX194KSB7IHJldHVybiA6OmFjb3NsKF9feCk7IH0KI2Vsc2UK
 ICBpbmxpbmUgbG9uZyBkb3VibGUgCiAgYWNvcyhsb25nIGRvdWJsZSBfX3gpIHsgcmV0dXJu
 IDo6YWNvcyhzdGF0aWNfY2FzdDxkb3VibGU+KF9feCkpOyB9CiNlbmRpZgoKICB1c2luZyA6
 OmFzaW47CgojaWYgX0dMSUJDUFBfSEFWRV9BU0lORgogIGlubGluZSBmbG9hdCAKICBhc2lu
 KGZsb2F0IF9feCkgeyByZXR1cm4gOjphc2luZihfX3gpOyB9CiNlbHNlCiAgaW5saW5lIGZs
 b2F0IAogIGFzaW4oZmxvYXQgX194KSB7IHJldHVybiA6OmFzaW4oc3RhdGljX2Nhc3Q8ZG91
 YmxlPihfX3gpKTsgfQojZW5kaWYKCiNpZiBfR0xJQkNQUF9IQVZFX0FTSU5MCiAgaW5saW5l
 IGxvbmcgZG91YmxlIAogIGFzaW4obG9uZyBkb3VibGUgX194KSB7IHJldHVybiA6OmFzaW5s
 KF9feCk7IH0KI2Vsc2UKICBpbmxpbmUgbG9uZyBkb3VibGUgCiAgYXNpbihsb25nIGRvdWJs
 ZSBfX3gpIHsgcmV0dXJuIDo6YXNpbihzdGF0aWNfY2FzdDxkb3VibGU+KF9feCkpOyB9CiNl
 bmRpZgoKICB1c2luZyA6OmF0YW47CgojaWYgX0dMSUJDUFBfSEFWRV9BVEFORgogIGlubGlu
 ZSBmbG9hdCAKICBhdGFuKGZsb2F0IF9feCkgeyByZXR1cm4gOjphdGFuZihfX3gpOyB9CiNl
 bHNlCiAgaW5saW5lIGZsb2F0IAogIGF0YW4oZmxvYXQgX194KSB7IHJldHVybiA6OmF0YW4o
 c3RhdGljX2Nhc3Q8ZG91YmxlPihfX3gpKTsgfQojZW5kaWYKCiNpZiBfR0xJQkNQUF9IQVZF
 X0FUQU5MCiAgaW5saW5lIGxvbmcgZG91YmxlIAogIGF0YW4obG9uZyBkb3VibGUgX194KSB7
 IHJldHVybiA6OmF0YW5sKF9feCk7IH0KI2Vsc2UKICBpbmxpbmUgbG9uZyBkb3VibGUgCiAg
 YXRhbihsb25nIGRvdWJsZSBfX3gpIHsgcmV0dXJuIDo6YXRhbihzdGF0aWNfY2FzdDxkb3Vi
 bGU+KF9feCkpOyB9CiNlbmRpZgoKICB1c2luZyA6OmF0YW4yOwoKI2lmIF9HTElCQ1BQX0hB
 VkVfQVRBTjJGCiAgaW5saW5lIGZsb2F0IAogIGF0YW4yKGZsb2F0IF9feSwgZmxvYXQgX194
 KSB7IHJldHVybiA6OmF0YW4yZihfX3ksIF9feCk7IH0KI2Vsc2UKICBpbmxpbmUgZmxvYXQg
 CiAgYXRhbjIoZmxvYXQgX195LCBmbG9hdCBfX3gpCiAgeyByZXR1cm4gOjphdGFuMihzdGF0
 aWNfY2FzdDxkb3VibGU+KF9feSksIHN0YXRpY19jYXN0PGRvdWJsZT4oX194KSk7IH0KI2Vu
 ZGlmCgojaWYgX0dMSUJDUFBfSEFWRV9BVEFOMkwKICBpbmxpbmUgbG9uZyBkb3VibGUgCiAg
 YXRhbjIobG9uZyBkb3VibGUgX195LCBsb25nIGRvdWJsZSBfX3gpIHsgcmV0dXJuIDo6YXRh
 bjJsKF9feSwgX194KTsgfQojZWxzZQogIGlubGluZSBsb25nIGRvdWJsZSAKICBhdGFuMihs
 b25nIGRvdWJsZSBfX3ksIGxvbmcgZG91YmxlIF9feCkgCiAgeyByZXR1cm4gOjphdGFuMihz
 dGF0aWNfY2FzdDxkb3VibGU+KF9feSksIHN0YXRpY19jYXN0PGRvdWJsZT4oX194KSk7IH0K
 I2VuZGlmCgogIHVzaW5nIDo6Y2VpbDsKCiNpZiBfR0xJQkNQUF9IQVZFX0NFSUxGCiAgaW5s
 aW5lIGZsb2F0IAogIGNlaWwoZmxvYXQgX194KSB7IHJldHVybiA6OmNlaWxmKF9feCk7IH0K
 I2Vsc2UKICBpbmxpbmUgZmxvYXQgCiAgY2VpbChmbG9hdCBfX3gpIHsgcmV0dXJuIDo6Y2Vp
 bChzdGF0aWNfY2FzdDxkb3VibGU+KF9feCkpOyB9CiNlbmRpZgoKI2lmIF9HTElCQ1BQX0hB
 VkVfQ0VJTEwKICBpbmxpbmUgbG9uZyBkb3VibGUgCiAgY2VpbChsb25nIGRvdWJsZSBfX3gp
 IHsgcmV0dXJuIDo6Y2VpbGwoX194KTsgfQojZWxzZQogIGlubGluZSBsb25nIGRvdWJsZSAK
 ICBjZWlsKGxvbmcgZG91YmxlIF9feCkgeyByZXR1cm4gOjpjZWlsKHN0YXRpY19jYXN0PGRv
 dWJsZT4oX194KSk7IH0KI2VuZGlmCgogIHVzaW5nIDo6Y29zOwoKICBpbmxpbmUgZmxvYXQK
 ICBjb3MoZmxvYXQgX194KQogIHsgcmV0dXJuIF9fYnVpbHRpbl9jb3NmKF9feCk7IH0KCiAg
 aW5saW5lIGxvbmcgZG91YmxlCiAgY29zKGxvbmcgZG91YmxlIF9feCkKICB7IHJldHVybiBf
 X2J1aWx0aW5fY29zbChfX3gpOyB9CgogIHVzaW5nIDo6Y29zaDsKCiNpZiBfR0xJQkNQUF9I
 QVZFX0NPU0hGCiAgaW5saW5lIGZsb2F0IAogIGNvc2goZmxvYXQgX194KSB7IHJldHVybiA6
 OmNvc2hmKF9feCk7IH0KI2Vsc2UKICBpbmxpbmUgZmxvYXQgCiAgY29zaChmbG9hdCBfX3gp
 IHsgcmV0dXJuIDo6Y29zaChzdGF0aWNfY2FzdDxkb3VibGU+KF9feCkpOyB9CiNlbmRpZgoK
 I2lmIF9HTElCQ1BQX0hBVkVfQ09TSEwKICBpbmxpbmUgbG9uZyBkb3VibGUgCiAgY29zaChs
 b25nIGRvdWJsZSBfX3gpIHsgcmV0dXJuIDo6Y29zaGwoX194KTsgfQojZWxzZQogIGlubGlu
 ZSBsb25nIGRvdWJsZSAKICBjb3NoKGxvbmcgZG91YmxlIF9feCkgeyByZXR1cm4gOjpjb3No
 KHN0YXRpY19jYXN0PGRvdWJsZT4oX194KSk7IH0KI2VuZGlmCgogIHVzaW5nIDo6ZXhwOwoK
 I2lmIF9HTElCQ1BQX0hBVkVfRVhQRgogIGlubGluZSBmbG9hdCAKICBleHAoZmxvYXQgX194
 KSB7IHJldHVybiA6OmV4cGYoX194KTsgfQojZWxzZQogIGlubGluZSBmbG9hdCAKICBleHAo
 ZmxvYXQgX194KSB7IHJldHVybiA6OmV4cChzdGF0aWNfY2FzdDxkb3VibGU+KF9feCkpOyB9
 CiNlbmRpZgoKI2lmIF9HTElCQ1BQX0hBVkVfRVhQTAogIGlubGluZSBsb25nIGRvdWJsZSAK
 ICBleHAobG9uZyBkb3VibGUgX194KSB7IHJldHVybiA6OmV4cGwoX194KTsgfQojZWxzZQog
 IGlubGluZSBsb25nIGRvdWJsZSAKICBleHAobG9uZyBkb3VibGUgX194KSB7IHJldHVybiA6
 OmV4cChzdGF0aWNfY2FzdDxkb3VibGU+KF9feCkpOyB9CiNlbmRpZgoKICB1c2luZyA6OmZh
 YnM7CgogIGlubGluZSBmbG9hdAogIGZhYnMoZmxvYXQgX194KQogIHsgcmV0dXJuIF9fYnVp
 bHRpbl9mYWJzZihfX3gpOyB9CgogIGlubGluZSBsb25nIGRvdWJsZQogIGZhYnMobG9uZyBk
 b3VibGUgX194KQogIHsgcmV0dXJuIF9fYnVpbHRpbl9mYWJzbChfX3gpOyB9CgogIHVzaW5n
 IDo6Zmxvb3I7CgojaWYgX0dMSUJDUFBfSEFWRV9GTE9PUkYKICBpbmxpbmUgZmxvYXQgCiAg
 Zmxvb3IoZmxvYXQgX194KSB7IHJldHVybiA6OmZsb29yZihfX3gpOyB9CiNlbHNlCiAgaW5s
 aW5lIGZsb2F0IAogIGZsb29yKGZsb2F0IF9feCkgeyByZXR1cm4gOjpmbG9vcihzdGF0aWNf
 Y2FzdDxkb3VibGU+KF9feCkpOyB9CiNlbmRpZgoKI2lmIF9HTElCQ1BQX0hBVkVfRkxPT1JM
 CiAgaW5saW5lIGxvbmcgZG91YmxlIAogIGZsb29yKGxvbmcgZG91YmxlIF9feCkgeyByZXR1
 cm4gOjpmbG9vcmwoX194KTsgfQojZWxzZQogIGlubGluZSBsb25nIGRvdWJsZSAKICBmbG9v
 cihsb25nIGRvdWJsZSBfX3gpIHsgcmV0dXJuIDo6Zmxvb3Ioc3RhdGljX2Nhc3Q8ZG91Ymxl
 PihfX3gpKTsgfQojZW5kaWYKCiAgdXNpbmcgOjpmbW9kOwoKI2lmIF9HTElCQ1BQX0hBVkVf
 Rk1PREYKICBpbmxpbmUgZmxvYXQgCiAgZm1vZChmbG9hdCBfX3gsIGZsb2F0IF9feSkgeyBy
 ZXR1cm4gOjpmbW9kZihfX3gsIF9feSk7IH0KI2Vsc2UKICBpbmxpbmUgZmxvYXQgCiAgZm1v
 ZChmbG9hdCBfX3gsIGZsb2F0IF9feSkKICB7IHJldHVybiA6OmZtb2Qoc3RhdGljX2Nhc3Q8
 ZG91YmxlPihfX3gpLCBzdGF0aWNfY2FzdDxkb3VibGU+KF9feSkpOyB9CiNlbmRpZgoKI2lm
 IF9HTElCQ1BQX0hBVkVfRk1PREwKICBpbmxpbmUgbG9uZyBkb3VibGUgCiAgZm1vZChsb25n
 IGRvdWJsZSBfX3gsIGxvbmcgZG91YmxlIF9feSkgeyByZXR1cm4gOjpmbW9kbChfX3gsIF9f
 eSk7IH0KI2Vsc2UKICBpbmxpbmUgbG9uZyBkb3VibGUgCiAgZm1vZChsb25nIGRvdWJsZSBf
 X3gsIGxvbmcgZG91YmxlIF9feSkgCiAgeyByZXR1cm4gOjpmbW9kKHN0YXRpY19jYXN0PGRv
 dWJsZT4oX194KSwgc3RhdGljX2Nhc3Q8ZG91YmxlPihfX3kpKTsgfQojZW5kaWYKCiAgdXNp
 bmcgOjpmcmV4cDsKCiNpZiBfR0xJQkNQUF9IQVZFX0ZSRVhQRgogIGlubGluZSBmbG9hdCAK
 ICBmcmV4cChmbG9hdCBfX3gsIGludCogX19leHApIHsgcmV0dXJuIDo6ZnJleHBmKF9feCwg
 X19leHApOyB9CiNlbHNlCiAgaW5saW5lIGZsb2F0IAogIGZyZXhwKGZsb2F0IF9feCwgaW50
 KiBfX2V4cCkgeyByZXR1cm4gOjpmcmV4cChfX3gsIF9fZXhwKTsgfQojZW5kaWYKCiNpZiBf
 R0xJQkNQUF9IQVZFX0ZSRVhQTAogIGlubGluZSBsb25nIGRvdWJsZSAKICBmcmV4cChsb25n
 IGRvdWJsZSBfX3gsIGludCogX19leHApIHsgcmV0dXJuIDo6ZnJleHBsKF9feCwgX19leHAp
 OyB9CiNlbHNlCiAgaW5saW5lIGxvbmcgZG91YmxlIAogIGZyZXhwKGxvbmcgZG91YmxlIF9f
 eCwgaW50KiBfX2V4cCkgCiAgeyByZXR1cm4gOjpmcmV4cChzdGF0aWNfY2FzdDxkb3VibGU+
 KF9feCksIF9fZXhwKTsgfQojZW5kaWYKCiAgdXNpbmcgOjpsZGV4cDsKCiNpZiBfR0xJQkNQ
 UF9IQVZFX0xERVhQRgogIGlubGluZSBmbG9hdCAKICBsZGV4cChmbG9hdCBfX3gsIGludCBf
 X2V4cCkgeyByZXR1cm4gOjpsZGV4cGYoX194LCBfX2V4cCk7IH0KI2Vsc2UKICBpbmxpbmUg
 ZmxvYXQgCiAgbGRleHAoZmxvYXQgX194LCBpbnQgX19leHApCiAgeyByZXR1cm4gOjpsZGV4
 cChzdGF0aWNfY2FzdDxkb3VibGU+KF9feCksIF9fZXhwKTsgfQojZW5kaWYKCiNpZiBfR0xJ
 QkNQUF9IQVZFX0xERVhQTAogIGlubGluZSBsb25nIGRvdWJsZSAKICBsZGV4cChsb25nIGRv
 dWJsZSBfX3gsIGludCBfX2V4cCkgeyByZXR1cm4gOjpsZGV4cGwoX194LCBfX2V4cCk7IH0K
 I2Vsc2UKICBpbmxpbmUgbG9uZyBkb3VibGUgCiAgbGRleHAobG9uZyBkb3VibGUgX194LCBp
 bnQgX19leHApIAogIHsgcmV0dXJuIDo6bGRleHAoc3RhdGljX2Nhc3Q8ZG91YmxlPihfX3gp
 LCBfX2V4cCk7IH0KI2VuZGlmCgogIHVzaW5nIDo6bG9nOwoKI2lmIF9HTElCQ1BQX0hBVkVf
 TE9HRgogIGlubGluZSBmbG9hdCAKICBsb2coZmxvYXQgX194KSB7IHJldHVybiA6OmxvZ2Yo
 X194KTsgfQojZWxzZQogIGlubGluZSBmbG9hdCBsb2coZmxvYXQgX194KQogIHsgcmV0dXJu
 IDo6bG9nKHN0YXRpY19jYXN0PGRvdWJsZT4oX194KSk7IH0KI2VuZGlmCgojaWYgX0dMSUJD
 UFBfSEFWRV9MT0dMCiAgaW5saW5lIGxvbmcgZG91YmxlIAogIGxvZyhsb25nIGRvdWJsZSBf
 X3gpIHsgcmV0dXJuIDo6bG9nbChfX3gpOyB9CiNlbHNlCiAgaW5saW5lIGxvbmcgZG91Ymxl
 IAogIGxvZyhsb25nIGRvdWJsZSBfX3gpIHsgcmV0dXJuIDo6bG9nKHN0YXRpY19jYXN0PGRv
 dWJsZT4oX194KSk7IH0KI2VuZGlmCgogIHVzaW5nIDo6bG9nMTA7CgojaWYgX0dMSUJDUFBf
 SEFWRV9MT0cxMEYKICBpbmxpbmUgZmxvYXQgCiAgbG9nMTAoZmxvYXQgX194KSB7IHJldHVy
 biA6OmxvZzEwZihfX3gpOyB9CiNlbHNlCiAgaW5saW5lIGZsb2F0IAogIGxvZzEwKGZsb2F0
 IF9feCkgeyByZXR1cm4gOjpsb2cxMChzdGF0aWNfY2FzdDxkb3VibGU+KF9feCkpOyB9CiNl
 bmRpZgoKI2lmIF9HTElCQ1BQX0hBVkVfTE9HMTBMCiAgaW5saW5lIGxvbmcgZG91YmxlIAog
 IGxvZzEwKGxvbmcgZG91YmxlIF9feCkgeyByZXR1cm4gOjpsb2cxMGwoX194KTsgfQojZWxz
 ZQogIGlubGluZSBsb25nIGRvdWJsZSAKICBsb2cxMChsb25nIGRvdWJsZSBfX3gpIHsgcmV0
 dXJuIDo6bG9nMTAoc3RhdGljX2Nhc3Q8ZG91YmxlPihfX3gpKTsgfQojZW5kaWYKCiAgdXNp
 bmcgOjptb2RmOwoKI2lmIF9HTElCQ1BQX0hBVkVfTU9ERkYKICBpbmxpbmUgZmxvYXQgCiAg
 bW9kZihmbG9hdCBfX3gsIGZsb2F0KiBfX2lwdHIpIHsgcmV0dXJuIDo6bW9kZmYoX194LCBf
 X2lwdHIpOyB9CiNlbHNlCiAgaW5saW5lIGZsb2F0IAogIG1vZGYoZmxvYXQgX194LCBmbG9h
 dCogX19pcHRyKQogIHsKICAgIGRvdWJsZSBfX3RtcDsKICAgIGRvdWJsZSBfX3JlcyA9IDo6
 bW9kZihzdGF0aWNfY2FzdDxkb3VibGU+KF9feCksICZfX3RtcCk7CiAgICAqX19pcHRyID0g
 c3RhdGljX2Nhc3Q8ZmxvYXQ+KF9fdG1wKTsKICAgIHJldHVybiBfX3JlczsKICB9CiNlbmRp
 ZgoKI2lmIF9HTElCQ1BQX0hBVkVfTU9ERkwKICBpbmxpbmUgbG9uZyBkb3VibGUgCiAgbW9k
 Zihsb25nIGRvdWJsZSBfX3gsIGxvbmcgZG91YmxlKiBfX2lwdHIpIHsgcmV0dXJuIDo6bW9k
 ZmwoX194LCBfX2lwdHIpOyB9CiNlbHNlCiAgaW5saW5lIGxvbmcgZG91YmxlIAogIG1vZGYo
 bG9uZyBkb3VibGUgX194LCBsb25nIGRvdWJsZSogX19pcHRyKSAKICB7IAogICAgZG91Ymxl
 IF9fdG1wOwogICAgZG91YmxlIF9fcmVzID0gOjptb2RmKHN0YXRpY19jYXN0PGRvdWJsZT4o
 X194KSwgJl9fdG1wKTsKICAgICogX19pcHRyID0gc3RhdGljX2Nhc3Q8bG9uZyBkb3VibGU+
 KF9fdG1wKTsKICAgIHJldHVybiBfX3JlczsKICB9CiNlbmRpZgoKICB0ZW1wbGF0ZTx0eXBl
 bmFtZSBfVHA+CiAgICBpbmxpbmUgX1RwCiAgICBfX3Bvd19oZWxwZXIoX1RwIF9feCwgaW50
 IF9fbikKICAgIHsKICAgICAgcmV0dXJuIF9fbiA8IDAKICAgICAgICA/IF9UcCgxKS9fX2Nt
 YXRoX3Bvd2VyKF9feCwgLV9fbikKICAgICAgICA6IF9fY21hdGhfcG93ZXIoX194LCBfX24p
 OwogICAgfQoKICB1c2luZyA6OnBvdzsKCiNpZiBfR0xJQkNQUF9IQVZFX1BPV0YKICBpbmxp
 bmUgZmxvYXQgCiAgcG93KGZsb2F0IF9feCwgZmxvYXQgX195KSB7IHJldHVybiA6OnBvd2Yo
 X194LCBfX3kpOyB9CiNlbHNlCiAgaW5saW5lIGZsb2F0IAogIHBvdyhmbG9hdCBfX3gsIGZs
 b2F0IF9feSkKICB7IHJldHVybiA6OnBvdyhzdGF0aWNfY2FzdDxkb3VibGU+KF9feCksIHN0
 YXRpY19jYXN0PGRvdWJsZT4oX195KSk7IH0KI2VuZGlmCgojaWYgX0dMSUJDUFBfSEFWRV9Q
 T1dMCiAgaW5saW5lIGxvbmcgZG91YmxlIAogIHBvdyhsb25nIGRvdWJsZSBfX3gsIGxvbmcg
 ZG91YmxlIF9feSkgeyByZXR1cm4gOjpwb3dsKF9feCwgX195KTsgfQojZWxzZQogIGlubGlu
 ZSBsb25nIGRvdWJsZSAKICBwb3cobG9uZyBkb3VibGUgX194LCBsb25nIGRvdWJsZSBfX3kp
 IAogIHsgcmV0dXJuIDo6cG93KHN0YXRpY19jYXN0PGRvdWJsZT4oX194KSwgc3RhdGljX2Nh
 c3Q8ZG91YmxlPihfX3kpKTsgfQojZW5kaWYKCiAgaW5saW5lIGRvdWJsZSAKICBwb3coZG91
 YmxlIF9feCwgaW50IF9faSkKICB7IHJldHVybiBfX3Bvd19oZWxwZXIoX194LCBfX2kpOyB9
 CgogIGlubGluZSBmbG9hdCAKICBwb3coZmxvYXQgX194LCBpbnQgX19uKQogIHsgcmV0dXJu
 IF9fcG93X2hlbHBlcihfX3gsIF9fbik7IH0KCiAgaW5saW5lIGxvbmcgZG91YmxlIAogIHBv
 dyhsb25nIGRvdWJsZSBfX3gsIGludCBfX24pCiAgeyByZXR1cm4gX19wb3dfaGVscGVyKF9f
 eCwgX19uKTsgfQoKICB1c2luZyA6OnNpbjsKCiAgaW5saW5lIGZsb2F0CiAgc2luKGZsb2F0
 IF9feCkKICB7IHJldHVybiBfX2J1aWx0aW5fc2luZihfX3gpOyB9CgogIGlubGluZSBsb25n
 IGRvdWJsZQogIHNpbihsb25nIGRvdWJsZSBfX3gpCiAgeyByZXR1cm4gX19idWlsdGluX3Np
 bmwoX194KTsgfQoKICB1c2luZyA6OnNpbmg7CgojaWYgX0dMSUJDUFBfSEFWRV9TSU5IRgog
 IGlubGluZSBmbG9hdCAKICBzaW5oKGZsb2F0IF9feCkgeyByZXR1cm4gOjpzaW5oZihfX3gp
 OyB9CiNlbHNlCiAgaW5saW5lIGZsb2F0IAogIHNpbmgoZmxvYXQgX194KSB7IHJldHVybiA6
 OnNpbmgoc3RhdGljX2Nhc3Q8ZG91YmxlPihfX3gpKTsgfQojZW5kaWYKCiNpZiBfR0xJQkNQ
 UF9IQVZFX1NJTkhMCiAgaW5saW5lIGxvbmcgZG91YmxlIAogIHNpbmgobG9uZyBkb3VibGUg
 X194KSB7IHJldHVybiA6OnNpbmhsKF9feCk7IH0KI2Vsc2UKICBpbmxpbmUgbG9uZyBkb3Vi
 bGUgCiAgc2luaChsb25nIGRvdWJsZSBfX3gpIHsgcmV0dXJuIDo6c2luaChzdGF0aWNfY2Fz
 dDxkb3VibGU+KF9feCkpOyB9CiNlbmRpZgoKICB1c2luZyA6OnNxcnQ7CgogIGlubGluZSBm
 bG9hdAogIHNxcnQoZmxvYXQgX194KQogIHsgcmV0dXJuIF9fYnVpbHRpbl9zcXJ0ZihfX3gp
 OyB9CgogIGlubGluZSBsb25nIGRvdWJsZQogIHNxcnQobG9uZyBkb3VibGUgX194KQogIHsg
 cmV0dXJuIF9fYnVpbHRpbl9zcXJ0bChfX3gpOyB9CgogIHVzaW5nIDo6dGFuOwoKI2lmIF9H
 TElCQ1BQX0hBVkVfVEFORgogIGlubGluZSBmbG9hdCAKICB0YW4oZmxvYXQgX194KSB7IHJl
 dHVybiA6OnRhbmYoX194KTsgfQojZWxzZQogIGlubGluZSBmbG9hdCAKICB0YW4oZmxvYXQg
 X194KSB7IHJldHVybiA6OnRhbihzdGF0aWNfY2FzdDxkb3VibGU+KF9feCkpOyB9CiNlbmRp
 ZgoKI2lmIF9HTElCQ1BQX0hBVkVfVEFOTAogIGlubGluZSBsb25nIGRvdWJsZSAKICB0YW4o
 bG9uZyBkb3VibGUgX194KSB7IHJldHVybiA6OnRhbmwoX194KTsgfQojZWxzZQogIGlubGlu
 ZSBsb25nIGRvdWJsZSAKICB0YW4obG9uZyBkb3VibGUgX194KSB7IHJldHVybiA6OnRhbihz
 dGF0aWNfY2FzdDxkb3VibGU+KF9feCkpOyB9CiNlbmRpZgoKICB1c2luZyA6OnRhbmg7Cgoj
 aWYgX0dMSUJDUFBfSEFWRV9UQU5IRgogIGlubGluZSBmbG9hdCAKICB0YW5oKGZsb2F0IF9f
 eCkgeyByZXR1cm4gOjp0YW5oZihfX3gpOyB9CiNlbHNlCiAgaW5saW5lIGZsb2F0IAogIHRh
 bmgoZmxvYXQgX194KSB7IHJldHVybiA6OnRhbmgoc3RhdGljX2Nhc3Q8ZG91YmxlPihfX3gp
 KTsgfQojZW5kaWYKCiNpZiBfR0xJQkNQUF9IQVZFX1RBTkhMCiAgaW5saW5lIGxvbmcgZG91
 YmxlIAogIHRhbmgobG9uZyBkb3VibGUgX194KSB7IHJldHVybiA6OnRhbmhsKF9feCk7IH0K
 I2Vsc2UKICBpbmxpbmUgbG9uZyBkb3VibGUgCiAgdGFuaChsb25nIGRvdWJsZSBfX3gpIHsg
 cmV0dXJuIDo6dGFuaChzdGF0aWNfY2FzdDxkb3VibGU+KF9feCkpOyB9CiNlbmRpZgp9IAoK
 CiNpZiBfR0xJQkNQUF9VU0VfQzk5Ci8vIFRoZXNlIGFyZSBwb3NzaWJsZSBtYWNyb3MgaW1w
 b3J0ZWQgZnJvbSBDOTktbGFuZC4gRm9yIHN0cmljdAovLyBjb25mb3JtYW5jZSwgcmVtb3Zl
 IHBvc3NpYmxlIEM5OS1pbmplY3RlZCBuYW1lcyBmcm9tIHRoZSBnbG9iYWwKLy8gbmFtZXNw
 YWNlLCBhbmQgc2VxdWVzdGVyIHRoZW0gaW4gdGhlIF9fZ251X2N4eCBleHRlbnNpb24gbmFt
 ZXNwYWNlLiAKbmFtZXNwYWNlIF9fZ251X2N4eAp7CiAgdGVtcGxhdGU8dHlwZW5hbWUgX1Rw
 PgogICAgaW50IAogICAgX19jYXB0dXJlX2ZwY2xhc3NpZnkoX1RwIF9fZikgeyByZXR1cm4g
 ZnBjbGFzc2lmeShfX2YpOyB9CgogIHRlbXBsYXRlPHR5cGVuYW1lIF9UcD4KICAgIGludCAK
 ICAgIF9fY2FwdHVyZV9pc2Zpbml0ZShfVHAgX19mKSB7IHJldHVybiBpc2Zpbml0ZShfX2Yp
 OyB9CgogIHRlbXBsYXRlPHR5cGVuYW1lIF9UcD4KICAgIGludCAKICAgIF9fY2FwdHVyZV9p
 c2luZihfVHAgX19mKSB7IHJldHVybiBpc2luZihfX2YpOyB9CgogIHRlbXBsYXRlPHR5cGVu
 YW1lIF9UcD4KICAgIGludCAKICAgIF9fY2FwdHVyZV9pc25hbihfVHAgX19mKSB7IHJldHVy
 biBpc25hbihfX2YpOyB9CgogIHRlbXBsYXRlPHR5cGVuYW1lIF9UcD4KICAgIGludCAKICAg
 IF9fY2FwdHVyZV9pc25vcm1hbChfVHAgX19mKSB7IHJldHVybiBpc25vcm1hbChfX2YpOyB9
 CgogIHRlbXBsYXRlPHR5cGVuYW1lIF9UcD4KICAgIGludCAKICAgIF9fY2FwdHVyZV9zaWdu
 Yml0KF9UcCBfX2YpIHsgcmV0dXJuIHNpZ25iaXQoX19mKTsgfQoKICB0ZW1wbGF0ZTx0eXBl
 bmFtZSBfVHA+CiAgICBpbnQgCiAgICBfX2NhcHR1cmVfaXNncmVhdGVyKF9UcCBfX2YxLCBf
 VHAgX19mMikKICAgIHsgcmV0dXJuIGlzZ3JlYXRlcihfX2YxLCBfX2YyKTsgfQoKICB0ZW1w
 bGF0ZTx0eXBlbmFtZSBfVHA+CiAgICAgaW50IAogICAgIF9fY2FwdHVyZV9pc2dyZWF0ZXJl
 cXVhbChfVHAgX19mMSwgX1RwIF9fZjIpIAogICAgIHsgcmV0dXJuIGlzZ3JlYXRlcmVxdWFs
 KF9fZjEsIF9fZjIpOyB9CgogIHRlbXBsYXRlPHR5cGVuYW1lIF9UcD4KICAgICBpbnQgCiAg
 ICAgX19jYXB0dXJlX2lzbGVzcyhfVHAgX19mMSwgX1RwIF9fZjIpIHsgcmV0dXJuIGlzbGVz
 cyhfX2YxLCBfX2YyKTsgfQoKICB0ZW1wbGF0ZTx0eXBlbmFtZSBfVHA+CiAgICAgaW50IAog
 ICAgIF9fY2FwdHVyZV9pc2xlc3NlcXVhbChfVHAgX19mMSwgX1RwIF9fZjIpIAogICAgIHsg
 cmV0dXJuIGlzbGVzc2VxdWFsKF9fZjEsIF9fZjIpOyB9CgogIHRlbXBsYXRlPHR5cGVuYW1l
 IF9UcD4KICAgICBpbnQgCiAgICAgX19jYXB0dXJlX2lzbGVzc2dyZWF0ZXIoX1RwIF9fZjEs
 IF9UcCBfX2YyKSAKICAgICB7IHJldHVybiBpc2xlc3NncmVhdGVyKF9fZjEsIF9fZjIpOyB9
 CgogIHRlbXBsYXRlPHR5cGVuYW1lIF9UcD4KICAgICBpbnQgCiAgICAgX19jYXB0dXJlX2lz
 dW5vcmRlcmVkKF9UcCBfX2YxLCBfVHAgX19mMikgCiAgICAgeyByZXR1cm4gaXN1bm9yZGVy
 ZWQoX19mMSwgX19mMik7IH0KfSAKI2VuZGlmCgojdW5kZWYgZnBjbGFzc2lmeQojdW5kZWYg
 aXNmaW5pdGUKI3VuZGVmIGlzaW5mCiN1bmRlZiBpc25hbgojdW5kZWYgaXNub3JtYWwKI3Vu
 ZGVmIHNpZ25iaXQKI3VuZGVmIGlzZ3JlYXRlcgojdW5kZWYgaXNncmVhdGVyZXF1YWwKI3Vu
 ZGVmIGlzbGVzcwojdW5kZWYgaXNsZXNzZXF1YWwKI3VuZGVmIGlzbGVzc2dyZWF0ZXIKI3Vu
 ZGVmIGlzdW5vcmRlcmVkCgojaWYgX0dMSUJDUFBfVVNFX0M5OQpuYW1lc3BhY2UgX19nbnVf
 Y3h4CnsKICB0ZW1wbGF0ZTx0eXBlbmFtZSBfVHA+CiAgICBpbnQKICAgIGZwY2xhc3NpZnko
 X1RwIF9fZikgeyByZXR1cm4gX19jYXB0dXJlX2ZwY2xhc3NpZnkoX19mKTsgfQoKICB0ZW1w
 bGF0ZTx0eXBlbmFtZSBfVHA+CiAgICBpbnQKICAgIGlzZmluaXRlKF9UcCBfX2YpIHsgcmV0
 dXJuIF9fY2FwdHVyZV9pc2Zpbml0ZShfX2YpOyB9CgogIHRlbXBsYXRlPHR5cGVuYW1lIF9U
 cD4KICAgIGludCAKICAgIGlzaW5mKF9UcCBfX2YpIHsgcmV0dXJuIF9fY2FwdHVyZV9pc2lu
 ZihfX2YpOyB9CgogIHRlbXBsYXRlPHR5cGVuYW1lIF9UcD4KICAgIGludCAKICAgIGlzbmFu
 KF9UcCBfX2YpIHsgcmV0dXJuIF9fY2FwdHVyZV9pc25hbihfX2YpOyB9CgogIHRlbXBsYXRl
 PHR5cGVuYW1lIF9UcD4KICAgIGludCAKICAgIGlzbm9ybWFsKF9UcCBfX2YpIHsgcmV0dXJu
 IF9fY2FwdHVyZV9pc25vcm1hbChfX2YpOyB9CgogIHRlbXBsYXRlPHR5cGVuYW1lIF9UcD4K
 ICAgIGludCAKICAgIHNpZ25iaXQoX1RwIF9fZikgeyByZXR1cm4gX19jYXB0dXJlX3NpZ25i
 aXQoX19mKTsgfQoKICB0ZW1wbGF0ZTx0eXBlbmFtZSBfVHA+CiAgICBpbnQgCiAgICBpc2dy
 ZWF0ZXIoX1RwIF9fZjEsIF9UcCBfX2YyKSB7IHJldHVybiBfX2NhcHR1cmVfaXNncmVhdGVy
 KF9fZjEsIF9fZjIpOyB9CgogIHRlbXBsYXRlPHR5cGVuYW1lIF9UcD4KICAgIGludCAKICAg
 IGlzZ3JlYXRlcmVxdWFsKF9UcCBfX2YxLCBfVHAgX19mMikgCiAgICB7IHJldHVybiBfX2Nh
 cHR1cmVfaXNncmVhdGVyZXF1YWwoX19mMSwgX19mMik7IH0KCiAgdGVtcGxhdGU8dHlwZW5h
 bWUgX1RwPgogICAgaW50IAogICAgaXNsZXNzKF9UcCBfX2YxLCBfVHAgX19mMikgeyByZXR1
 cm4gX19jYXB0dXJlX2lzbGVzcyhfX2YxLCBfX2YyKTsgfQoKICB0ZW1wbGF0ZTx0eXBlbmFt
 ZSBfVHA+CiAgICBpbnQgCiAgICBpc2xlc3NlcXVhbChfVHAgX19mMSwgX1RwIF9fZjIpIAog
 ICAgeyByZXR1cm4gX19jYXB0dXJlX2lzbGVzc2VxdWFsKF9fZjEsIF9fZjIpOyB9CgogIHRl
 bXBsYXRlPHR5cGVuYW1lIF9UcD4KICAgIGludCAKICAgIGlzbGVzc2dyZWF0ZXIoX1RwIF9f
 ZjEsIF9UcCBfX2YyKSAKICAgIHsgcmV0dXJuIF9fY2FwdHVyZV9pc2xlc3NncmVhdGVyKF9f
 ZjEsIF9fZjIpOyB9CgogIHRlbXBsYXRlPHR5cGVuYW1lIF9UcD4KICAgIGludCAKICAgIGlz
 dW5vcmRlcmVkKF9UcCBfX2YxLCBfVHAgX19mMikgCiAgICB7IHJldHVybiBfX2NhcHR1cmVf
 aXN1bm9yZGVyZWQoX19mMSwgX19mMik7IH0KfQoKbmFtZXNwYWNlIHN0ZAp7CiAgdXNpbmcg
 X19nbnVfY3h4OjpmcGNsYXNzaWZ5OwogIHVzaW5nIF9fZ251X2N4eDo6aXNmaW5pdGU7CiAg
 dXNpbmcgX19nbnVfY3h4Ojppc2luZjsKICB1c2luZyBfX2dudV9jeHg6OmlzbmFuOwogIHVz
 aW5nIF9fZ251X2N4eDo6aXNub3JtYWw7CiAgdXNpbmcgX19nbnVfY3h4OjpzaWduYml0Owog
 IHVzaW5nIF9fZ251X2N4eDo6aXNncmVhdGVyOwogIHVzaW5nIF9fZ251X2N4eDo6aXNncmVh
 dGVyZXF1YWw7CiAgdXNpbmcgX19nbnVfY3h4Ojppc2xlc3M7CiAgdXNpbmcgX19nbnVfY3h4
 Ojppc2xlc3NlcXVhbDsKICB1c2luZyBfX2dudV9jeHg6OmlzbGVzc2dyZWF0ZXI7CiAgdXNp
 bmcgX19nbnVfY3h4Ojppc3Vub3JkZXJlZDsKfQojZW5kaWYKICAKI2lmZGVmIF9HTElCQ1BQ
 X05PX1RFTVBMQVRFX0VYUE9SVAojICBkZWZpbmUgZXhwb3J0CiMgIGluY2x1ZGUgPGJpdHMv
 Y21hdGgudGNjPgojZW5kaWYKCiNlbmRpZgoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAuL2luY2x1ZGUv
 ZysrLXYzL2k2ODYtcGMtbGludXgtZ251LwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDA0MDc3NQAwMDAzMzA1ADAw
 MTE2MzcAMDAwMDAwMDAwMDAAMDc1NjQ1MDA2MzIAMDE1NDM1ACA1AAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHVzdGFyICAAbWVuZ2VsAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAABvc3MAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAC4vaW5jbHVkZS9nKystdjMvaTY4Ni1wYy1saW51eC1nbnUvYml0
 cy8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAwMDQwNzc1ADAwMDMzMDUAMDAxMTYzNwAwMDAwMDAwMDAwMAAwNzU2NDUwMDYz
 MgAwMTYzNzYAIDUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAdXN0YXIgIABtZW5nZWwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAG9zcwAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALi9pbmNsdWRlL2cr
 Ky12My9pNjg2LXBjLWxpbnV4LWdudS9iaXRzL2MrK2NvbmZpZy5oAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAxMDA2NDQAMDAwMzMwNQAwMDEx
 NjM3ADAwMDAwMTAxMDMwADA3NDczMDQyNjcwADAyMDI3NQAgMAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB1c3RhciAgAG1lbmdlbAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAb3NzAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAvLyBQcmVkZWZpbmVkIHN5bWJvbHMgYW5kIG1hY3JvcyAtKi0gQysr
 IC0qLQoKLy8gQ29weXJpZ2h0IChDKSAxOTk3LCAxOTk4LCAxOTk5LCAyMDAwLCAyMDAxIEZy
 ZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgovLwovLyBUaGlzIGZpbGUgaXMgcGFydCBv
 ZiB0aGUgR05VIElTTyBDKysgTGlicmFyeS4gIFRoaXMgbGlicmFyeSBpcyBmcmVlCi8vIHNv
 ZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5IGl0IHVuZGVy
 IHRoZQovLyB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVi
 bGlzaGVkIGJ5IHRoZQovLyBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJz
 aW9uIDIsIG9yIChhdCB5b3VyIG9wdGlvbikKLy8gYW55IGxhdGVyIHZlcnNpb24uCgovLyBU
 aGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJl
 IHVzZWZ1bCwKLy8gYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhl
 IGltcGxpZWQgd2FycmFudHkgb2YKLy8gTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9S
 IEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQovLyBHTlUgR2VuZXJhbCBQdWJsaWMg
 TGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgoKLy8gWW91IHNob3VsZCBoYXZlIHJlY2VpdmVk
 IGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYWxvbmcKLy8gd2l0
 aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLiAgSWYgbm90LCB3cml0ZSB0
 byB0aGUgRnJlZQovLyBTb2Z0d2FyZSBGb3VuZGF0aW9uLCA1OSBUZW1wbGUgUGxhY2UgLSBT
 dWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNywKLy8gVVNBLgoKLy8gQXMgYSBzcGVj
 aWFsIGV4Y2VwdGlvbiwgeW91IG1heSB1c2UgdGhpcyBmaWxlIGFzIHBhcnQgb2YgYSBmcmVl
 IHNvZnR3YXJlCi8vIGxpYnJhcnkgd2l0aG91dCByZXN0cmljdGlvbi4gIFNwZWNpZmljYWxs
 eSwgaWYgb3RoZXIgZmlsZXMgaW5zdGFudGlhdGUKLy8gdGVtcGxhdGVzIG9yIHVzZSBtYWNy
 b3Mgb3IgaW5saW5lIGZ1bmN0aW9ucyBmcm9tIHRoaXMgZmlsZSwgb3IgeW91IGNvbXBpbGUK
 Ly8gdGhpcyBmaWxlIGFuZCBsaW5rIGl0IHdpdGggb3RoZXIgZmlsZXMgdG8gcHJvZHVjZSBh
 biBleGVjdXRhYmxlLCB0aGlzCi8vIGZpbGUgZG9lcyBub3QgYnkgaXRzZWxmIGNhdXNlIHRo
 ZSByZXN1bHRpbmcgZXhlY3V0YWJsZSB0byBiZSBjb3ZlcmVkIGJ5Ci8vIHRoZSBHTlUgR2Vu
 ZXJhbCBQdWJsaWMgTGljZW5zZS4gIFRoaXMgZXhjZXB0aW9uIGRvZXMgbm90IGhvd2V2ZXIK
 Ly8gaW52YWxpZGF0ZSBhbnkgb3RoZXIgcmVhc29ucyB3aHkgdGhlIGV4ZWN1dGFibGUgZmls
 ZSBtaWdodCBiZSBjb3ZlcmVkIGJ5Ci8vIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5z
 ZS4KCiNpZm5kZWYgX0NQUF9DUFBDT05GSUcKI2RlZmluZSBfQ1BQX0NQUENPTkZJRyAxCgov
 LyBQaWNrIHVwIGFueSBPUy1zcGVjaWZpYyBkZWZpbml0aW9ucy4KI2luY2x1ZGUgPGJpdHMv
 b3NfZGVmaW5lcy5oPgoKLy8gVGhlIGN1cnJlbnQgdmVyc2lvbiBvZiB0aGUgQysrIGxpYnJh
 cnkgaW4gY29tcHJlc3NlZCBJU08gZGF0ZSBmb3JtYXQuCiNkZWZpbmUgX19HTElCQ1BQX18g
 MjAwMjA1MTQKCi8vIFRoaXMgaXMgbmVjZXNzYXJ5IHVudGlsIEdDQyBzdXBwb3J0cyBzZXBh
 cmF0ZSB0ZW1wbGF0ZQovLyBjb21waWxhdGlvbi4gIAojZGVmaW5lIF9HTElCQ1BQX05PX1RF
 TVBMQVRFX0VYUE9SVCAxCgovLyBUaGlzIGlzIGEgaGFjayBhcm91bmQgbm90IGhhdmluZyBl
 aXRoZXIgcHJlLWNvbXBpbGVkIGhlYWRlcnMgb3IKLy8gZXhwb3J0IGNvbXBpbGF0aW9uLiBJ
 ZiBkZWZpbmVkLCB0aGUgaW8sIHN0cmluZywgYW5kIHZhbGFycmF5Ci8vIGhlYWRlcnMgd2ls
 bCBpbmNsdWRlIGFsbCB0aGUgbmVjZXNzYXJ5IGJpdHMuIElmIG5vdCBkZWZpbmVkLCB0aGUK
 Ly8gaW1wbGVtZW50YXRpb24gb3B0aW1pemVzIHRoZSBoZWFkZXJzIGZvciB0aGUgbW9zdCBj
 b21tb25seS11c2VkCi8vIHR5cGVzLiBGb3IgdGhlIGlvIGxpYnJhcnksIHRoaXMgbWVhbnMg
 dGhhdCBsYXJnZXIsIG91dC1vZi1saW5lCi8vIG1lbWJlciBmdW5jdGlvbnMgYXJlIG9ubHkg
 ZGVjbGFyZWQsIGFuZCBkZWZpbml0aW9ucyBhcmUgbm90IHBhcnNlZAovLyBieSB0aGUgY29t
 cGlsZXIsIGJ1dCBpbnN0ZWFkIGluc3RhbnRpYXRlZCBpbnRvIHRoZSBsaWJyYXJ5IGJpbmFy
 eS4KI2RlZmluZSBfR0xJQkNQUF9GVUxMWV9DT01QTElBTlRfSEVBREVSUyAxCgovLyBUbyBl
 bmFibGUgb2xkZXIsIEFSTS1zdHlsZSBpb3N0cmVhbXMgYW5kIG90aGVyIGFuYWNocm9uaXNt
 cyB1c2UgdGhpcy4KLy8jZGVmaW5lIF9HTElCQ1BQX0RFUFJFQ0FURUQgMQoKLy8gVXNlIGNv
 cnJlY3RlZCBjb2RlIGZyb20gdGhlIGNvbW1pdHRlZSBsaWJyYXJ5IGdyb3VwJ3MgaXNzdWVz
 IGxpc3QuCiNkZWZpbmUgX0dMSUJDUFBfUkVTT0xWRV9MSUJfREVGRUNUUyAxCgovLyBJbiB0
 aG9zZSBwYXJ0cyBvZiB0aGUgc3RhbmRhcmQgQysrIGxpYnJhcnkgdGhhdCB1c2UgYSBtdXRl
 eCBpbnN0ZWFkCi8vIG9mIGEgc3Bpbi1sb2NrLCB3ZSBub3cgdW5jb25kaXRpb25hbGx5IHVz
 ZSBHQ0MncyBndGhyLmggbXV0ZXgKLy8gYWJzdHJhY3Rpb24gbGF5ZXIuICBBbGwgc3VwcG9y
 dCB0byBkaXJlY3RseSBtYXAgdG8gdmFyaW91cwovLyB0aHJlYWRpbmcgbW9kZWxzIGhhcyBi
 ZWVuIHJlbW92ZWQuICBOb3RlOiBndGhyLmggbWF5IHdlbGwgbWFwIHRvCi8vIGd0aHItc2lu
 Z2xlLmggd2hpY2ggaXMgYSBjb3JyZWN0IHdheSB0byBleHByZXNzIG5vIHRocmVhZHMgc3Vw
 cG9ydAovLyBpbiBnY2MuICBTdXBwb3J0IGZvciB0aGUgdW5kb2N1bWVudGVkIF9OT1RIUkVB
 RFMgaGFzIGJlZW4gcmVtb3ZlZC4KCi8vIERlZmF1bHQgdG8gdGhlIHR5cGljYWxseSBoaWdo
 LXNwZWVkLCBwb29sLWJhc2VkIGFsbG9jYXRvciAoYXMKLy8gbGlic3RkYysrLXYyKSBpbnN0
 ZWFkIG9mIHRoZSBtYWxsb2MtYmFzZWQgYWxsb2NhdG9yIChsaWJzdGRjKystdjMKLy8gc25h
 cHNob3RzKS4gIFNlZSBsaWJzdGRjKystdjMvZG9jcy9odG1sLzE3X2ludHJvL2hvd3RvLmh0
 bWwgZm9yCi8vIGRldGFpbHMgb24gd2h5IHlvdSBkb24ndCB3YW50IHRvIG92ZXJyaWRlIHRo
 aXMgc2V0dGluZy4gIEVuc3VyZQovLyB0aGF0IHRocmVhZHMgYXJlIHByb3Blcmx5IGNvbmZp
 Z3VyZWQgb24geW91ciBwbGF0Zm9ybSBiZWZvcmUKLy8gYXNzaWduaW5nIGJsYW1lIHRvIHRo
 ZSBTVEwgY29udGFpbmVyLW1lbW9yeSBhbGxvY2F0b3IuICBBZnRlciBkb2luZwovLyBzbywg
 cGxlYXNlIHJlcG9ydCBhbnkgcG9zc2libGUgaXNzdWVzIHRvIGxpYnN0ZGMrK0BnY2MuZ251
 Lm9yZyAuCi8vIERvIG5vdCBibGluZGx5ICNkZWZpbmUgX19VU0VfTUFMTE9DIGhlcmUgb3Ig
 b24gdGhlIGNvbW1hbmQgbGluZS4KCi8vIFRoZSByZW1haW5kZXIgb2YgdGhlIHByZXdyaXR0
 ZW4gY29uZmlnIGlzIG1vc3RseSBhdXRvbWF0aWM7IGFsbCB0aGUKLy8gdXNlciBob29rcyBh
 cmUgbGlzdGVkIGFib3ZlLgoKLy8gRW5kIG9mIHByZXdyaXR0ZW4gY29uZmlnOyB0aGUgZGlz
 Y292ZXJlZCBzZXR0aW5ncyBmb2xsb3cuCi8qIGNvbmZpZy5oLiAgR2VuZXJhdGVkIGF1dG9t
 YXRpY2FsbHkgYnkgY29uZmlndXJlLiAgKi8KLyogY29uZmlnLmguaW4uICBHZW5lcmF0ZWQg
 YXV0b21hdGljYWxseSBmcm9tIGNvbmZpZ3VyZS5pbiBieSBhdXRvaGVhZGVyLiAgKi8KCi8q
 IERlZmluZSBpZiB5b3UgaGF2ZSBhIHdvcmtpbmcgYG1tYXAnIHN5c3RlbSBjYWxsLiAgKi8K
 I2RlZmluZSBfR0xJQkNQUF9IQVZFX01NQVAgMQoKLy8gRGVmaW5lIGlmIEdDQyBzdXBwb3J0
 cyB3ZWFrIHN5bWJvbHMuCiNkZWZpbmUgX0dMSUJDUFBfU1VQUE9SVFNfV0VBSyBfX0dYWF9X
 RUFLX18KCi8vIERlZmluZSBpZiBndGhyLWRlZmF1bHQuaCBleGlzdHMgKG1lYW5pbmcgdGhh
 dCB0aHJlYWRpbmcgc3VwcG9ydCBpcyBlbmFibGVkKS4KI2RlZmluZSBfR0xJQkNQUF9IQVZF
 X0dUSFJfREVGQVVMVCAxCgovLyBJbmNsdWRlIEkvTyBzdXBwb3J0IGZvciAnbG9uZyBsb25n
 JyBhbmQgJ3Vuc2lnbmVkIGxvbmcgbG9uZycuCiNkZWZpbmUgX0dMSUJDUFBfVVNFX0xPTkdf
 TE9ORyAxCgovLyBEZWZpbmUgaWYgQzk5IGZlYXR1cmVzIHN1Y2ggYXMgbGxkaXZfdCwgbGxh
 YnMsIGxsZGl2IHNob3VsZCBiZSBleHBvc2VkLgojZGVmaW5lIF9HTElCQ1BQX1VTRV9DOTkg
 MQoKLy8gRGVmaW5lIGlmIGNvZGUgc3BlY2lhbGl6ZWQgZm9yIHdjaGFyX3Qgc2hvdWxkIGJl
 IHVzZWQuCi8qICN1bmRlZiBfR0xJQkNQUF9VU0VfV0NIQVJfVCAqLwoKLy8gRGVmaW5lIGlm
 IHVzaW5nIHNldHJsaW1pdCB0byBsaW1pdCBtZW1vcnkgdXNhZ2UgZHVyaW5nICdtYWtlIGNo
 ZWNrJy4KI2RlZmluZSBfR0xJQkNQUF9NRU1fTElNSVRTIDEKCi8vIERlZmluZSB0byB1c2Ug
 Y29uY2VwdCBjaGVja2luZyBjb2RlIGZyb20gdGhlIGJvb3N0IGxpYnJhcmllcy4KLyogI3Vu
 ZGVmIF9HTElCQ1BQX0NPTkNFUFRfQ0hFQ0tTICovCgovLyBEZWZpbmUgaWYgbWJzdGF0ZV90
 IGV4aXN0cyBpbiB3Y2hhci5oLgojZGVmaW5lIF9HTElCQ1BQX0hBVkVfTUJTVEFURV9UIDEK
 Ci8vIERlZmluZSBpZiB5b3UgaGF2ZSB0aGUgbW9kZmYgZnVuY3Rpb24uCiNkZWZpbmUgX0dM
 SUJDUFBfSEFWRV9NT0RGRiAxCgovLyBEZWZpbmUgaWYgeW91IGhhdmUgdGhlIG1vZGZsIGZ1
 bmN0aW9uLgojZGVmaW5lIF9HTElCQ1BQX0hBVkVfTU9ERkwgMQoKLy8gRGVmaW5lIGlmIHlv
 dSBoYXZlIHRoZSBleHBmIGZ1bmN0aW9uLgojZGVmaW5lIF9HTElCQ1BQX0hBVkVfRVhQRiAx
 CgovLyBEZWZpbmUgaWYgeW91IGhhdmUgdGhlIGV4cGwgZnVuY3Rpb24uCiNkZWZpbmUgX0dM
 SUJDUFBfSEFWRV9FWFBMIDEKCi8vIERlZmluZSBpZiB5b3UgaGF2ZSB0aGUgaHlwb3RmIGZ1
 bmN0aW9uLgojZGVmaW5lIF9HTElCQ1BQX0hBVkVfSFlQT1RGIDEKCi8vIERlZmluZSBpZiB5
 b3UgaGF2ZSB0aGUgaHlwb3RsIGZ1bmN0aW9uLgojZGVmaW5lIF9HTElCQ1BQX0hBVkVfSFlQ
 T1RMIDEKCi8vIERlZmluZSBpZiB0aGUgY29tcGlsZXIvaG9zdCBjb21iaW5hdGlvbiBoYXMg
 X19idWlsdGluX2FicwojZGVmaW5lIF9HTElCQ1BQX0hBVkVfX19CVUlMVElOX0FCUyAxCgov
 LyBEZWZpbmUgaWYgdGhlIGNvbXBpbGVyL2hvc3QgY29tYmluYXRpb24gaGFzIF9fYnVpbHRp
 bl9sYWJzCiNkZWZpbmUgX0dMSUJDUFBfSEFWRV9fX0JVSUxUSU5fTEFCUyAxCgovLyBEZWZp
 bmUgaWYgdGhlIGNvbXBpbGVyL2hvc3QgY29tYmluYXRpb24gaGFzIF9fYnVpbHRpbl9jb3MK
 LyogI3VuZGVmIF9HTElCQ1BQX0hBVkVfX19CVUlMVElOX0NPUyAqLwoKLy8gRGVmaW5lIGlm
 IHRoZSBjb21waWxlci9ob3N0IGNvbWJpbmF0aW9uIGhhcyBfX2J1aWx0aW5fY29zZgovKiAj
 dW5kZWYgX0dMSUJDUFBfSEFWRV9fX0JVSUxUSU5fQ09TRiAqLwoKLy8gRGVmaW5lIGlmIHRo
 ZSBjb21waWxlci9ob3N0IGNvbWJpbmF0aW9uIGhhcyBfX2J1aWx0aW5fY29zbAovKiAjdW5k
 ZWYgX0dMSUJDUFBfSEFWRV9fX0JVSUxUSU5fQ09TTCAqLwoKLy8gRGVmaW5lIGlmIHRoZSBj
 b21waWxlci9ob3N0IGNvbWJpbmF0aW9uIGhhcyBfX2J1aWx0aW5fZmFicwojZGVmaW5lIF9H
 TElCQ1BQX0hBVkVfX19CVUlMVElOX0ZBQlMgMQoKLy8gRGVmaW5lIGlmIHRoZSBjb21waWxl
 ci9ob3N0IGNvbWJpbmF0aW9uIGhhcyBfX2J1aWx0aW5fZmFic2YKI2RlZmluZSBfR0xJQkNQ
 UF9IQVZFX19fQlVJTFRJTl9GQUJTRiAxCgovLyBEZWZpbmUgaWYgdGhlIGNvbXBpbGVyL2hv
 c3QgY29tYmluYXRpb24gaGFzIF9fYnVpbHRpbl9mYWJzbAojZGVmaW5lIF9HTElCQ1BQX0hB
 VkVfX19CVUlMVElOX0ZBQlNMIDEKCi8vIERlZmluZSBpZiB0aGUgY29tcGlsZXIvaG9zdCBj
 b21iaW5hdGlvbiBoYXMgX19idWlsdGluX3NpbgovKiAjdW5kZWYgX0dMSUJDUFBfSEFWRV9f
 X0JVSUxUSU5fU0lOICovCgovLyBEZWZpbmUgaWYgdGhlIGNvbXBpbGVyL2hvc3QgY29tYmlu
 YXRpb24gaGFzIF9fYnVpbHRpbl9zaW5mCi8qICN1bmRlZiBfR0xJQkNQUF9IQVZFX19fQlVJ
 TFRJTl9TSU5GICovCgovLyBEZWZpbmUgaWYgdGhlIGNvbXBpbGVyL2hvc3QgY29tYmluYXRp
 b24gaGFzIF9fYnVpbHRpbl9zaW5sCi8qICN1bmRlZiBfR0xJQkNQUF9IQVZFX19fQlVJTFRJ
 Tl9TSU5MICovCgovLyBEZWZpbmUgaWYgdGhlIGNvbXBpbGVyL2hvc3QgY29tYmluYXRpb24g
 aGFzIF9fYnVpbHRpbl9zcXJ0Ci8qICN1bmRlZiBfR0xJQkNQUF9IQVZFX19fQlVJTFRJTl9T
 UVJUICovCgovLyBEZWZpbmUgaWYgdGhlIGNvbXBpbGVyL2hvc3QgY29tYmluYXRpb24gaGFz
 IF9fYnVpbHRpbl9zcXJ0ZgovKiAjdW5kZWYgX0dMSUJDUFBfSEFWRV9fX0JVSUxUSU5fU1FS
 VEYgKi8KCi8vIERlZmluZSBpZiB0aGUgY29tcGlsZXIvaG9zdCBjb21iaW5hdGlvbiBoYXMg
 X19idWlsdGluX3NxcnRsCi8qICN1bmRlZiBfR0xJQkNQUF9IQVZFX19fQlVJTFRJTl9TUVJU
 TCAqLwoKLy8gRGVmaW5lIGlmIExDX01FU1NBR0VTIGlzIGF2YWlsYWJsZSBpbiA8bG9jYWxl
 Lmg+LgojZGVmaW5lIF9HTElCQ1BQX0hBVkVfTENfTUVTU0FHRVMgMQoKLyogRGVmaW5lIGlm
 IHlvdSBoYXZlIHRoZSBfX3NpZ25iaXQgZnVuY3Rpb24uICAqLwojZGVmaW5lIF9HTElCQ1BQ
 X0hBVkVfX19TSUdOQklUIDEKCi8qIERlZmluZSBpZiB5b3UgaGF2ZSB0aGUgX19zaWduYml0
 ZiBmdW5jdGlvbi4gICovCiNkZWZpbmUgX0dMSUJDUFBfSEFWRV9fX1NJR05CSVRGIDEKCi8q
 IERlZmluZSBpZiB5b3UgaGF2ZSB0aGUgX19zaWduYml0bCBmdW5jdGlvbi4gICovCiNkZWZp
 bmUgX0dMSUJDUFBfSEFWRV9fX1NJR05CSVRMIDEKCi8qIERlZmluZSBpZiB5b3UgaGF2ZSB0
 aGUgX2Fjb3NmIGZ1bmN0aW9uLiAgKi8KLyogI3VuZGVmIF9HTElCQ1BQX0hBVkVfX0FDT1NG
 ICovCgovKiBEZWZpbmUgaWYgeW91IGhhdmUgdGhlIF9hY29zbCBmdW5jdGlvbi4gICovCi8q
 ICN1bmRlZiBfR0xJQkNQUF9IQVZFX19BQ09TTCAqLwoKLyogRGVmaW5lIGlmIHlvdSBoYXZl
 IHRoZSBfYXNpbmYgZnVuY3Rpb24uICAqLwovKiAjdW5kZWYgX0dMSUJDUFBfSEFWRV9fQVNJ
 TkYgKi8KCi8qIERlZmluZSBpZiB5b3UgaGF2ZSB0aGUgX2FzaW5sIGZ1bmN0aW9uLiAgKi8K
 LyogI3VuZGVmIF9HTElCQ1BQX0hBVkVfX0FTSU5MICovCgovKiBEZWZpbmUgaWYgeW91IGhh
 dmUgdGhlIF9hdGFuMmYgZnVuY3Rpb24uICAqLwovKiAjdW5kZWYgX0dMSUJDUFBfSEFWRV9f
 QVRBTjJGICovCgovKiBEZWZpbmUgaWYgeW91IGhhdmUgdGhlIF9hdGFuMmwgZnVuY3Rpb24u
 ICAqLwovKiAjdW5kZWYgX0dMSUJDUFBfSEFWRV9fQVRBTjJMICovCgovKiBEZWZpbmUgaWYg
 eW91IGhhdmUgdGhlIF9hdGFuZiBmdW5jdGlvbi4gICovCi8qICN1bmRlZiBfR0xJQkNQUF9I
 QVZFX19BVEFORiAqLwoKLyogRGVmaW5lIGlmIHlvdSBoYXZlIHRoZSBfYXRhbmwgZnVuY3Rp
 b24uICAqLwovKiAjdW5kZWYgX0dMSUJDUFBfSEFWRV9fQVRBTkwgKi8KCi8qIERlZmluZSBp
 ZiB5b3UgaGF2ZSB0aGUgX2NlaWxmIGZ1bmN0aW9uLiAgKi8KLyogI3VuZGVmIF9HTElCQ1BQ
 X0hBVkVfX0NFSUxGICovCgovKiBEZWZpbmUgaWYgeW91IGhhdmUgdGhlIF9jZWlsbCBmdW5j
 dGlvbi4gICovCi8qICN1bmRlZiBfR0xJQkNQUF9IQVZFX19DRUlMTCAqLwoKLyogRGVmaW5l
 IGlmIHlvdSBoYXZlIHRoZSBfY29weXNpZ24gZnVuY3Rpb24uICAqLwovKiAjdW5kZWYgX0dM
 SUJDUFBfSEFWRV9fQ09QWVNJR04gKi8KCi8qIERlZmluZSBpZiB5b3UgaGF2ZSB0aGUgX2Nv
 cHlzaWdubCBmdW5jdGlvbi4gICovCi8qICN1bmRlZiBfR0xJQkNQUF9IQVZFX19DT1BZU0lH
 TkwgKi8KCi8qIERlZmluZSBpZiB5b3UgaGF2ZSB0aGUgX2Nvc2YgZnVuY3Rpb24uICAqLwov
 KiAjdW5kZWYgX0dMSUJDUFBfSEFWRV9fQ09TRiAqLwoKLyogRGVmaW5lIGlmIHlvdSBoYXZl
 IHRoZSBfY29zaGYgZnVuY3Rpb24uICAqLwovKiAjdW5kZWYgX0dMSUJDUFBfSEFWRV9fQ09T
 SEYgKi8KCi8qIERlZmluZSBpZiB5b3UgaGF2ZSB0aGUgX2Nvc2hsIGZ1bmN0aW9uLiAgKi8K
 LyogI3VuZGVmIF9HTElCQ1BQX0hBVkVfX0NPU0hMICovCgovKiBEZWZpbmUgaWYgeW91IGhh
 dmUgdGhlIF9jb3NsIGZ1bmN0aW9uLiAgKi8KLyogI3VuZGVmIF9HTElCQ1BQX0hBVkVfX0NP
 U0wgKi8KCi8qIERlZmluZSBpZiB5b3UgaGF2ZSB0aGUgX2V4cGYgZnVuY3Rpb24uICAqLwov
 KiAjdW5kZWYgX0dMSUJDUFBfSEFWRV9fRVhQRiAqLwoKLyogRGVmaW5lIGlmIHlvdSBoYXZl
 IHRoZSBfZXhwbCBmdW5jdGlvbi4gICovCi8qICN1bmRlZiBfR0xJQkNQUF9IQVZFX19FWFBM
 ICovCgovKiBEZWZpbmUgaWYgeW91IGhhdmUgdGhlIF9mYWJzZiBmdW5jdGlvbi4gICovCi8q
 ICN1bmRlZiBfR0xJQkNQUF9IQVZFX19GQUJTRiAqLwoKLyogRGVmaW5lIGlmIHlvdSBoYXZl
 IHRoZSBfZmFic2wgZnVuY3Rpb24uICAqLwovKiAjdW5kZWYgX0dMSUJDUFBfSEFWRV9fRkFC
 U0wgKi8KCi8qIERlZmluZSBpZiB5b3UgaGF2ZSB0aGUgX2Zpbml0ZSBmdW5jdGlvbi4gICov
 Ci8qICN1bmRlZiBfR0xJQkNQUF9IQVZFX19GSU5JVEUgKi8KCi8qIERlZmluZSBpZiB5b3Ug
 aGF2ZSB0aGUgX2Zpbml0ZWYgZnVuY3Rpb24uICAqLwovKiAjdW5kZWYgX0dMSUJDUFBfSEFW
 RV9fRklOSVRFRiAqLwoKLyogRGVmaW5lIGlmIHlvdSBoYXZlIHRoZSBfZmluaXRlbCBmdW5j
 dGlvbi4gICovCi8qICN1bmRlZiBfR0xJQkNQUF9IQVZFX19GSU5JVEVMICovCgovKiBEZWZp
 bmUgaWYgeW91IGhhdmUgdGhlIF9mbG9vcmYgZnVuY3Rpb24uICAqLwovKiAjdW5kZWYgX0dM
 SUJDUFBfSEFWRV9fRkxPT1JGICovCgovKiBEZWZpbmUgaWYgeW91IGhhdmUgdGhlIF9mbG9v
 cmwgZnVuY3Rpb24uICAqLwovKiAjdW5kZWYgX0dMSUJDUFBfSEFWRV9fRkxPT1JMICovCgov
 KiBEZWZpbmUgaWYgeW91IGhhdmUgdGhlIF9mbW9kZiBmdW5jdGlvbi4gICovCi8qICN1bmRl
 ZiBfR0xJQkNQUF9IQVZFX19GTU9ERiAqLwoKLyogRGVmaW5lIGlmIHlvdSBoYXZlIHRoZSBf
 Zm1vZGwgZnVuY3Rpb24uICAqLwovKiAjdW5kZWYgX0dMSUJDUFBfSEFWRV9fRk1PREwgKi8K
 Ci8qIERlZmluZSBpZiB5b3UgaGF2ZSB0aGUgX2ZwY2xhc3MgZnVuY3Rpb24uICAqLwovKiAj
 dW5kZWYgX0dMSUJDUFBfSEFWRV9fRlBDTEFTUyAqLwoKLyogRGVmaW5lIGlmIHlvdSBoYXZl
 IHRoZSBfZnJleHBmIGZ1bmN0aW9uLiAgKi8KLyogI3VuZGVmIF9HTElCQ1BQX0hBVkVfX0ZS
 RVhQRiAqLwoKLyogRGVmaW5lIGlmIHlvdSBoYXZlIHRoZSBfZnJleHBsIGZ1bmN0aW9uLiAg
 Ki8KLyogI3VuZGVmIF9HTElCQ1BQX0hBVkVfX0ZSRVhQTCAqLwoKLyogRGVmaW5lIGlmIHlv
 dSBoYXZlIHRoZSBfaHlwb3QgZnVuY3Rpb24uICAqLwovKiAjdW5kZWYgX0dMSUJDUFBfSEFW
 RV9fSFlQT1QgKi8KCi8qIERlZmluZSBpZiB5b3UgaGF2ZSB0aGUgX2h5cG90ZiBmdW5jdGlv
 bi4gICovCi8qICN1bmRlZiBfR0xJQkNQUF9IQVZFX19IWVBPVEYgKi8KCi8qIERlZmluZSBp
 ZiB5b3UgaGF2ZSB0aGUgX2h5cG90bCBmdW5jdGlvbi4gICovCi8qICN1bmRlZiBfR0xJQkNQ
 UF9IQVZFX19IWVBPVEwgKi8KCi8qIERlZmluZSBpZiB5b3UgaGF2ZSB0aGUgX2lzaW5mIGZ1
 bmN0aW9uLiAgKi8KLyogI3VuZGVmIF9HTElCQ1BQX0hBVkVfX0lTSU5GICovCgovKiBEZWZp
 bmUgaWYgeW91IGhhdmUgdGhlIF9pc2luZmYgZnVuY3Rpb24uICAqLwovKiAjdW5kZWYgX0dM
 SUJDUFBfSEFWRV9fSVNJTkZGICovCgovKiBEZWZpbmUgaWYgeW91IGhhdmUgdGhlIF9pc2lu
 ZmwgZnVuY3Rpb24uICAqLwovKiAjdW5kZWYgX0dMSUJDUFBfSEFWRV9fSVNJTkZMICovCgov
 KiBEZWZpbmUgaWYgeW91IGhhdmUgdGhlIF9pc25hbiBmdW5jdGlvbi4gICovCi8qICN1bmRl
 ZiBfR0xJQkNQUF9IQVZFX19JU05BTiAqLwoKLyogRGVmaW5lIGlmIHlvdSBoYXZlIHRoZSBf
 aXNuYW5mIGZ1bmN0aW9uLiAgKi8KLyogI3VuZGVmIF9HTElCQ1BQX0hBVkVfX0lTTkFORiAq
 LwoKLyogRGVmaW5lIGlmIHlvdSBoYXZlIHRoZSBfaXNuYW5sIGZ1bmN0aW9uLiAgKi8KLyog
 I3VuZGVmIF9HTElCQ1BQX0hBVkVfX0lTTkFOTCAqLwoKLyogRGVmaW5lIGlmIHlvdSBoYXZl
 IHRoZSBfbGRleHBmIGZ1bmN0aW9uLiAgKi8KLyogI3VuZGVmIF9HTElCQ1BQX0hBVkVfX0xE
 RVhQRiAqLwoKLyogRGVmaW5lIGlmIHlvdSBoYXZlIHRoZSBfbGRleHBsIGZ1bmN0aW9uLiAg
 Ki8KLyogI3VuZGVmIF9HTElCQ1BQX0hBVkVfX0xERVhQTCAqLwoKLyogRGVmaW5lIGlmIHlv
 dSBoYXZlIHRoZSBfbG9nMTBmIGZ1bmN0aW9uLiAgKi8KLyogI3VuZGVmIF9HTElCQ1BQX0hB
 VkVfX0xPRzEwRiAqLwoKLyogRGVmaW5lIGlmIHlvdSBoYXZlIHRoZSBfbG9nMTBsIGZ1bmN0
 aW9uLiAgKi8KLyogI3VuZGVmIF9HTElCQ1BQX0hBVkVfX0xPRzEwTCAqLwoKLyogRGVmaW5l
 IGlmIHlvdSBoYXZlIHRoZSBfbG9nZiBmdW5jdGlvbi4gICovCi8qICN1bmRlZiBfR0xJQkNQ
 UF9IQVZFX19MT0dGICovCgovKiBEZWZpbmUgaWYgeW91IGhhdmUgdGhlIF9sb2dsIGZ1bmN0
 aW9uLiAgKi8KLyogI3VuZGVmIF9HTElCQ1BQX0hBVkVfX0xPR0wgKi8KCi8qIERlZmluZSBp
 ZiB5b3UgaGF2ZSB0aGUgX21vZGZmIGZ1bmN0aW9uLiAgKi8KLyogI3VuZGVmIF9HTElCQ1BQ
 X0hBVkVfX01PREZGICovCgovKiBEZWZpbmUgaWYgeW91IGhhdmUgdGhlIF9tb2RmbCBmdW5j
 dGlvbi4gICovCi8qICN1bmRlZiBfR0xJQkNQUF9IQVZFX19NT0RGTCAqLwoKLyogRGVmaW5l
 IGlmIHlvdSBoYXZlIHRoZSBfcG93ZiBmdW5jdGlvbi4gICovCi8qICN1bmRlZiBfR0xJQkNQ
 UF9IQVZFX19QT1dGICovCgovKiBEZWZpbmUgaWYgeW91IGhhdmUgdGhlIF9wb3dsIGZ1bmN0
 aW9uLiAgKi8KLyogI3VuZGVmIF9HTElCQ1BQX0hBVkVfX1BPV0wgKi8KCi8qIERlZmluZSBp
 ZiB5b3UgaGF2ZSB0aGUgX3FmcGNsYXNzIGZ1bmN0aW9uLiAgKi8KLyogI3VuZGVmIF9HTElC
 Q1BQX0hBVkVfX1FGUENMQVNTICovCgovKiBEZWZpbmUgaWYgeW91IGhhdmUgdGhlIF9zaW5j
 b3MgZnVuY3Rpb24uICAqLwovKiAjdW5kZWYgX0dMSUJDUFBfSEFWRV9fU0lOQ09TICovCgov
 KiBEZWZpbmUgaWYgeW91IGhhdmUgdGhlIF9zaW5jb3NmIGZ1bmN0aW9uLiAgKi8KLyogI3Vu
 ZGVmIF9HTElCQ1BQX0hBVkVfX1NJTkNPU0YgKi8KCi8qIERlZmluZSBpZiB5b3UgaGF2ZSB0
 aGUgX3NpbmNvc2wgZnVuY3Rpb24uICAqLwovKiAjdW5kZWYgX0dMSUJDUFBfSEFWRV9fU0lO
 Q09TTCAqLwoKLyogRGVmaW5lIGlmIHlvdSBoYXZlIHRoZSBfc2luZiBmdW5jdGlvbi4gICov
 Ci8qICN1bmRlZiBfR0xJQkNQUF9IQVZFX19TSU5GICovCgovKiBEZWZpbmUgaWYgeW91IGhh
 dmUgdGhlIF9zaW5oZiBmdW5jdGlvbi4gICovCi8qICN1bmRlZiBfR0xJQkNQUF9IQVZFX19T
 SU5IRiAqLwoKLyogRGVmaW5lIGlmIHlvdSBoYXZlIHRoZSBfc2luaGwgZnVuY3Rpb24uICAq
 LwovKiAjdW5kZWYgX0dMSUJDUFBfSEFWRV9fU0lOSEwgKi8KCi8qIERlZmluZSBpZiB5b3Ug
 aGF2ZSB0aGUgX3NpbmwgZnVuY3Rpb24uICAqLwovKiAjdW5kZWYgX0dMSUJDUFBfSEFWRV9f
 U0lOTCAqLwoKLyogRGVmaW5lIGlmIHlvdSBoYXZlIHRoZSBfc3FydGYgZnVuY3Rpb24uICAq
 LwovKiAjdW5kZWYgX0dMSUJDUFBfSEFWRV9fU1FSVEYgKi8KCi8qIERlZmluZSBpZiB5b3Ug
 aGF2ZSB0aGUgX3NxcnRsIGZ1bmN0aW9uLiAgKi8KLyogI3VuZGVmIF9HTElCQ1BQX0hBVkVf
 X1NRUlRMICovCgovKiBEZWZpbmUgaWYgeW91IGhhdmUgdGhlIF90YW5mIGZ1bmN0aW9uLiAg
 Ki8KLyogI3VuZGVmIF9HTElCQ1BQX0hBVkVfX1RBTkYgKi8KCi8qIERlZmluZSBpZiB5b3Ug
 aGF2ZSB0aGUgX3RhbmhmIGZ1bmN0aW9uLiAgKi8KLyogI3VuZGVmIF9HTElCQ1BQX0hBVkVf
 X1RBTkhGICovCgovKiBEZWZpbmUgaWYgeW91IGhhdmUgdGhlIF90YW5obCBmdW5jdGlvbi4g
 ICovCi8qICN1bmRlZiBfR0xJQkNQUF9IQVZFX19UQU5ITCAqLwoKLyogRGVmaW5lIGlmIHlv
 dSBoYXZlIHRoZSBfdGFubCBmdW5jdGlvbi4gICovCi8qICN1bmRlZiBfR0xJQkNQUF9IQVZF
 X19UQU5MICovCgovKiBEZWZpbmUgaWYgeW91IGhhdmUgdGhlIGFjb3NmIGZ1bmN0aW9uLiAg
 Ki8KI2RlZmluZSBfR0xJQkNQUF9IQVZFX0FDT1NGIDEKCi8qIERlZmluZSBpZiB5b3UgaGF2
 ZSB0aGUgYWNvc2wgZnVuY3Rpb24uICAqLwojZGVmaW5lIF9HTElCQ1BQX0hBVkVfQUNPU0wg
 MQoKLyogRGVmaW5lIGlmIHlvdSBoYXZlIHRoZSBhc2luZiBmdW5jdGlvbi4gICovCiNkZWZp
 bmUgX0dMSUJDUFBfSEFWRV9BU0lORiAxCgovKiBEZWZpbmUgaWYgeW91IGhhdmUgdGhlIGFz
 aW5sIGZ1bmN0aW9uLiAgKi8KI2RlZmluZSBfR0xJQkNQUF9IQVZFX0FTSU5MIDEKCi8qIERl
 ZmluZSBpZiB5b3UgaGF2ZSB0aGUgYXRhbjJmIGZ1bmN0aW9uLiAgKi8KI2RlZmluZSBfR0xJ
 QkNQUF9IQVZFX0FUQU4yRiAxCgovKiBEZWZpbmUgaWYgeW91IGhhdmUgdGhlIGF0YW4ybCBm
 dW5jdGlvbi4gICovCiNkZWZpbmUgX0dMSUJDUFBfSEFWRV9BVEFOMkwgMQoKLyogRGVmaW5l
 IGlmIHlvdSBoYXZlIHRoZSBhdGFuZiBmdW5jdGlvbi4gICovCiNkZWZpbmUgX0dMSUJDUFBf
 SEFWRV9BVEFORiAxCgovKiBEZWZpbmUgaWYgeW91IGhhdmUgdGhlIGF0YW5sIGZ1bmN0aW9u
 LiAgKi8KI2RlZmluZSBfR0xJQkNQUF9IQVZFX0FUQU5MIDEKCi8qIERlZmluZSBpZiB5b3Ug
 aGF2ZSB0aGUgYnRvd2MgZnVuY3Rpb24uICAqLwojZGVmaW5lIF9HTElCQ1BQX0hBVkVfQlRP
 V0MgMQoKLyogRGVmaW5lIGlmIHlvdSBoYXZlIHRoZSBjZWlsZiBmdW5jdGlvbi4gICovCiNk
 ZWZpbmUgX0dMSUJDUFBfSEFWRV9DRUlMRiAxCgovKiBEZWZpbmUgaWYgeW91IGhhdmUgdGhl
 IGNlaWxsIGZ1bmN0aW9uLiAgKi8KI2RlZmluZSBfR0xJQkNQUF9IQVZFX0NFSUxMIDEKCi8q
 IERlZmluZSBpZiB5b3UgaGF2ZSB0aGUgY29weXNpZ24gZnVuY3Rpb24uICAqLwojZGVmaW5l
 IF9HTElCQ1BQX0hBVkVfQ09QWVNJR04gMQoKLyogRGVmaW5lIGlmIHlvdSBoYXZlIHRoZSBj
 b3B5c2lnbmYgZnVuY3Rpb24uICAqLwojZGVmaW5lIF9HTElCQ1BQX0hBVkVfQ09QWVNJR05G
 IDEKCi8qIERlZmluZSBpZiB5b3UgaGF2ZSB0aGUgY29weXNpZ25sIGZ1bmN0aW9uLiAgKi8K
 I2RlZmluZSBfR0xJQkNQUF9IQVZFX0NPUFlTSUdOTCAxCgovKiBEZWZpbmUgaWYgeW91IGhh
 dmUgdGhlIGNvc2YgZnVuY3Rpb24uICAqLwojZGVmaW5lIF9HTElCQ1BQX0hBVkVfQ09TRiAx
 CgovKiBEZWZpbmUgaWYgeW91IGhhdmUgdGhlIGNvc2hmIGZ1bmN0aW9uLiAgKi8KI2RlZmlu
 ZSBfR0xJQkNQUF9IQVZFX0NPU0hGIDEKCi8qIERlZmluZSBpZiB5b3UgaGF2ZSB0aGUgY29z
 aGwgZnVuY3Rpb24uICAqLwojZGVmaW5lIF9HTElCQ1BQX0hBVkVfQ09TSEwgMQoKLyogRGVm
 aW5lIGlmIHlvdSBoYXZlIHRoZSBjb3NsIGZ1bmN0aW9uLiAgKi8KI2RlZmluZSBfR0xJQkNQ
 UF9IQVZFX0NPU0wgMQoKLyogRGVmaW5lIGlmIHlvdSBoYXZlIHRoZSBkcmFuZDQ4IGZ1bmN0
 aW9uLiAgKi8KI2RlZmluZSBfR0xJQkNQUF9IQVZFX0RSQU5ENDggMQoKLyogRGVmaW5lIGlm
 IHlvdSBoYXZlIHRoZSBleHBmIGZ1bmN0aW9uLiAgKi8KI2RlZmluZSBfR0xJQkNQUF9IQVZF
 X0VYUEYgMQoKLyogRGVmaW5lIGlmIHlvdSBoYXZlIHRoZSBleHBsIGZ1bmN0aW9uLiAgKi8K
 I2RlZmluZSBfR0xJQkNQUF9IQVZFX0VYUEwgMQoKLyogRGVmaW5lIGlmIHlvdSBoYXZlIHRo
 ZSBmYWJzZiBmdW5jdGlvbi4gICovCiNkZWZpbmUgX0dMSUJDUFBfSEFWRV9GQUJTRiAxCgov
 KiBEZWZpbmUgaWYgeW91IGhhdmUgdGhlIGZhYnNsIGZ1bmN0aW9uLiAgKi8KI2RlZmluZSBf
 R0xJQkNQUF9IQVZFX0ZBQlNMIDEKCi8qIERlZmluZSBpZiB5b3UgaGF2ZSB0aGUgZmdldHdj
 IGZ1bmN0aW9uLiAgKi8KLyogI3VuZGVmIF9HTElCQ1BQX0hBVkVfRkdFVFdDICovCgovKiBE
 ZWZpbmUgaWYgeW91IGhhdmUgdGhlIGZnZXR3cyBmdW5jdGlvbi4gICovCi8qICN1bmRlZiBf
 R0xJQkNQUF9IQVZFX0ZHRVRXUyAqLwoKLyogRGVmaW5lIGlmIHlvdSBoYXZlIHRoZSBmaW5p
 dGUgZnVuY3Rpb24uICAqLwojZGVmaW5lIF9HTElCQ1BQX0hBVkVfRklOSVRFIDEKCi8qIERl
 ZmluZSBpZiB5b3UgaGF2ZSB0aGUgZmluaXRlZiBmdW5jdGlvbi4gICovCiNkZWZpbmUgX0dM
 SUJDUFBfSEFWRV9GSU5JVEVGIDEKCi8qIERlZmluZSBpZiB5b3UgaGF2ZSB0aGUgZmluaXRl
 bCBmdW5jdGlvbi4gICovCiNkZWZpbmUgX0dMSUJDUFBfSEFWRV9GSU5JVEVMIDEKCi8qIERl
 ZmluZSBpZiB5b3UgaGF2ZSB0aGUgZmxvb3JmIGZ1bmN0aW9uLiAgKi8KI2RlZmluZSBfR0xJ
 QkNQUF9IQVZFX0ZMT09SRiAxCgovKiBEZWZpbmUgaWYgeW91IGhhdmUgdGhlIGZsb29ybCBm
 dW5jdGlvbi4gICovCiNkZWZpbmUgX0dMSUJDUFBfSEFWRV9GTE9PUkwgMQoKLyogRGVmaW5l
 IGlmIHlvdSBoYXZlIHRoZSBmbW9kZiBmdW5jdGlvbi4gICovCiNkZWZpbmUgX0dMSUJDUFBf
 SEFWRV9GTU9ERiAxCgovKiBEZWZpbmUgaWYgeW91IGhhdmUgdGhlIGZtb2RsIGZ1bmN0aW9u
 LiAgKi8KI2RlZmluZSBfR0xJQkNQUF9IQVZFX0ZNT0RMIDEKCi8qIERlZmluZSBpZiB5b3Ug
 aGF2ZSB0aGUgZnBjbGFzcyBmdW5jdGlvbi4gICovCi8qICN1bmRlZiBfR0xJQkNQUF9IQVZF
 X0ZQQ0xBU1MgKi8KCi8qIERlZmluZSBpZiB5b3UgaGF2ZSB0aGUgZnB1dHdjIGZ1bmN0aW9u
 LiAgKi8KLyogI3VuZGVmIF9HTElCQ1BQX0hBVkVfRlBVVFdDICovCgovKiBEZWZpbmUgaWYg
 eW91IGhhdmUgdGhlIGZwdXR3cyBmdW5jdGlvbi4gICovCi8qICN1bmRlZiBfR0xJQkNQUF9I
 QVZFX0ZQVVRXUyAqLwoKLyogRGVmaW5lIGlmIHlvdSBoYXZlIHRoZSBmcmV4cGYgZnVuY3Rp
 b24uICAqLwojZGVmaW5lIF9HTElCQ1BQX0hBVkVfRlJFWFBGIDEKCi8qIERlZmluZSBpZiB5
 b3UgaGF2ZSB0aGUgZnJleHBsIGZ1bmN0aW9uLiAgKi8KI2RlZmluZSBfR0xJQkNQUF9IQVZF
 X0ZSRVhQTCAxCgovKiBEZWZpbmUgaWYgeW91IGhhdmUgdGhlIGZ3aWRlIGZ1bmN0aW9uLiAg
 Ki8KLyogI3VuZGVmIF9HTElCQ1BQX0hBVkVfRldJREUgKi8KCi8qIERlZmluZSBpZiB5b3Ug
 aGF2ZSB0aGUgZndwcmludGYgZnVuY3Rpb24uICAqLwovKiAjdW5kZWYgX0dMSUJDUFBfSEFW
 RV9GV1BSSU5URiAqLwoKLyogRGVmaW5lIGlmIHlvdSBoYXZlIHRoZSBmd3NjYW5mIGZ1bmN0
 aW9uLiAgKi8KLyogI3VuZGVmIF9HTElCQ1BQX0hBVkVfRldTQ0FORiAqLwoKLyogRGVmaW5l
 IGlmIHlvdSBoYXZlIHRoZSBnZXRwYWdlc2l6ZSBmdW5jdGlvbi4gICovCiNkZWZpbmUgX0dM
 SUJDUFBfSEFWRV9HRVRQQUdFU0laRSAxCgovKiBEZWZpbmUgaWYgeW91IGhhdmUgdGhlIGdl
 dHdjIGZ1bmN0aW9uLiAgKi8KLyogI3VuZGVmIF9HTElCQ1BQX0hBVkVfR0VUV0MgKi8KCi8q
 IERlZmluZSBpZiB5b3UgaGF2ZSB0aGUgZ2V0d2NoYXIgZnVuY3Rpb24uICAqLwovKiAjdW5k
 ZWYgX0dMSUJDUFBfSEFWRV9HRVRXQ0hBUiAqLwoKLyogRGVmaW5lIGlmIHlvdSBoYXZlIHRo
 ZSBoeXBvdCBmdW5jdGlvbi4gICovCiNkZWZpbmUgX0dMSUJDUFBfSEFWRV9IWVBPVCAxCgov
 KiBEZWZpbmUgaWYgeW91IGhhdmUgdGhlIGh5cG90ZiBmdW5jdGlvbi4gICovCiNkZWZpbmUg
 X0dMSUJDUFBfSEFWRV9IWVBPVEYgMQoKLyogRGVmaW5lIGlmIHlvdSBoYXZlIHRoZSBoeXBv
 dGwgZnVuY3Rpb24uICAqLwojZGVmaW5lIF9HTElCQ1BQX0hBVkVfSFlQT1RMIDEKCi8qIERl
 ZmluZSBpZiB5b3UgaGF2ZSB0aGUgaWNvbnYgZnVuY3Rpb24uICAqLwojZGVmaW5lIF9HTElC
 Q1BQX0hBVkVfSUNPTlYgMQoKLyogRGVmaW5lIGlmIHlvdSBoYXZlIHRoZSBpY29udl9jbG9z
 ZSBmdW5jdGlvbi4gICovCiNkZWZpbmUgX0dMSUJDUFBfSEFWRV9JQ09OVl9DTE9TRSAxCgov
 KiBEZWZpbmUgaWYgeW91IGhhdmUgdGhlIGljb252X29wZW4gZnVuY3Rpb24uICAqLwojZGVm
 aW5lIF9HTElCQ1BQX0hBVkVfSUNPTlZfT1BFTiAxCgovKiBEZWZpbmUgaWYgeW91IGhhdmUg
 dGhlIGlzaW5mIGZ1bmN0aW9uLiAgKi8KI2RlZmluZSBfR0xJQkNQUF9IQVZFX0lTSU5GIDEK
 Ci8qIERlZmluZSBpZiB5b3UgaGF2ZSB0aGUgaXNpbmZmIGZ1bmN0aW9uLiAgKi8KI2RlZmlu
 ZSBfR0xJQkNQUF9IQVZFX0lTSU5GRiAxCgovKiBEZWZpbmUgaWYgeW91IGhhdmUgdGhlIGlz
 aW5mbCBmdW5jdGlvbi4gICovCiNkZWZpbmUgX0dMSUJDUFBfSEFWRV9JU0lORkwgMQoKLyog
 RGVmaW5lIGlmIHlvdSBoYXZlIHRoZSBpc25hbiBmdW5jdGlvbi4gICovCiNkZWZpbmUgX0dM
 SUJDUFBfSEFWRV9JU05BTiAxCgovKiBEZWZpbmUgaWYgeW91IGhhdmUgdGhlIGlzbmFuZiBm
 dW5jdGlvbi4gICovCiNkZWZpbmUgX0dMSUJDUFBfSEFWRV9JU05BTkYgMQoKLyogRGVmaW5l
 IGlmIHlvdSBoYXZlIHRoZSBpc25hbmwgZnVuY3Rpb24uICAqLwojZGVmaW5lIF9HTElCQ1BQ
 X0hBVkVfSVNOQU5MIDEKCi8qIERlZmluZSBpZiB5b3UgaGF2ZSB0aGUgbGRleHBmIGZ1bmN0
 aW9uLiAgKi8KI2RlZmluZSBfR0xJQkNQUF9IQVZFX0xERVhQRiAxCgovKiBEZWZpbmUgaWYg
 eW91IGhhdmUgdGhlIGxkZXhwbCBmdW5jdGlvbi4gICovCiNkZWZpbmUgX0dMSUJDUFBfSEFW
 RV9MREVYUEwgMQoKLyogRGVmaW5lIGlmIHlvdSBoYXZlIHRoZSBsb2cxMGYgZnVuY3Rpb24u
 ICAqLwojZGVmaW5lIF9HTElCQ1BQX0hBVkVfTE9HMTBGIDEKCi8qIERlZmluZSBpZiB5b3Ug
 aGF2ZSB0aGUgbG9nMTBsIGZ1bmN0aW9uLiAgKi8KI2RlZmluZSBfR0xJQkNQUF9IQVZFX0xP
 RzEwTCAxCgovKiBEZWZpbmUgaWYgeW91IGhhdmUgdGhlIGxvZ2YgZnVuY3Rpb24uICAqLwoj
 ZGVmaW5lIF9HTElCQ1BQX0hBVkVfTE9HRiAxCgovKiBEZWZpbmUgaWYgeW91IGhhdmUgdGhl
 IGxvZ2wgZnVuY3Rpb24uICAqLwojZGVmaW5lIF9HTElCQ1BQX0hBVkVfTE9HTCAxCgovKiBE
 ZWZpbmUgaWYgeW91IGhhdmUgdGhlIG1icmxlbiBmdW5jdGlvbi4gICovCiNkZWZpbmUgX0dM
 SUJDUFBfSEFWRV9NQlJMRU4gMQoKLyogRGVmaW5lIGlmIHlvdSBoYXZlIHRoZSBtYnJ0b3dj
 IGZ1bmN0aW9uLiAgKi8KI2RlZmluZSBfR0xJQkNQUF9IQVZFX01CUlRPV0MgMQoKLyogRGVm
 aW5lIGlmIHlvdSBoYXZlIHRoZSBtYnNpbml0IGZ1bmN0aW9uLiAgKi8KI2RlZmluZSBfR0xJ
 QkNQUF9IQVZFX01CU0lOSVQgMQoKLyogRGVmaW5lIGlmIHlvdSBoYXZlIHRoZSBtYnNydG93
 Y3MgZnVuY3Rpb24uICAqLwojZGVmaW5lIF9HTElCQ1BQX0hBVkVfTUJTUlRPV0NTIDEKCi8q
 IERlZmluZSBpZiB5b3UgaGF2ZSB0aGUgbW9kZmYgZnVuY3Rpb24uICAqLwojZGVmaW5lIF9H
 TElCQ1BQX0hBVkVfTU9ERkYgMQoKLyogRGVmaW5lIGlmIHlvdSBoYXZlIHRoZSBtb2RmbCBm
 dW5jdGlvbi4gICovCiNkZWZpbmUgX0dMSUJDUFBfSEFWRV9NT0RGTCAxCgovKiBEZWZpbmUg
 aWYgeW91IGhhdmUgdGhlIG5hbiBmdW5jdGlvbi4gICovCiNkZWZpbmUgX0dMSUJDUFBfSEFW
 RV9OQU4gMQoKLyogRGVmaW5lIGlmIHlvdSBoYXZlIHRoZSBubF9sYW5naW5mbyBmdW5jdGlv
 bi4gICovCiNkZWZpbmUgX0dMSUJDUFBfSEFWRV9OTF9MQU5HSU5GTyAxCgovKiBEZWZpbmUg
 aWYgeW91IGhhdmUgdGhlIHBvd2YgZnVuY3Rpb24uICAqLwojZGVmaW5lIF9HTElCQ1BQX0hB
 VkVfUE9XRiAxCgovKiBEZWZpbmUgaWYgeW91IGhhdmUgdGhlIHBvd2wgZnVuY3Rpb24uICAq
 LwojZGVmaW5lIF9HTElCQ1BQX0hBVkVfUE9XTCAxCgovKiBEZWZpbmUgaWYgeW91IGhhdmUg
 dGhlIHB1dHdjIGZ1bmN0aW9uLiAgKi8KLyogI3VuZGVmIF9HTElCQ1BQX0hBVkVfUFVUV0Mg
 Ki8KCi8qIERlZmluZSBpZiB5b3UgaGF2ZSB0aGUgcHV0d2NoYXIgZnVuY3Rpb24uICAqLwov
 KiAjdW5kZWYgX0dMSUJDUFBfSEFWRV9QVVRXQ0hBUiAqLwoKLyogRGVmaW5lIGlmIHlvdSBo
 YXZlIHRoZSBxZnBjbGFzcyBmdW5jdGlvbi4gICovCi8qICN1bmRlZiBfR0xJQkNQUF9IQVZF
 X1FGUENMQVNTICovCgovKiBEZWZpbmUgaWYgeW91IGhhdmUgdGhlIHNldGVudiBmdW5jdGlv
 bi4gICovCiNkZWZpbmUgX0dMSUJDUFBfSEFWRV9TRVRFTlYgMQoKLyogRGVmaW5lIGlmIHlv
 dSBoYXZlIHRoZSBzaW5jb3MgZnVuY3Rpb24uICAqLwojZGVmaW5lIF9HTElCQ1BQX0hBVkVf
 U0lOQ09TIDEKCi8qIERlZmluZSBpZiB5b3UgaGF2ZSB0aGUgc2luY29zZiBmdW5jdGlvbi4g
 ICovCiNkZWZpbmUgX0dMSUJDUFBfSEFWRV9TSU5DT1NGIDEKCi8qIERlZmluZSBpZiB5b3Ug
 aGF2ZSB0aGUgc2luY29zbCBmdW5jdGlvbi4gICovCiNkZWZpbmUgX0dMSUJDUFBfSEFWRV9T
 SU5DT1NMIDEKCi8qIERlZmluZSBpZiB5b3UgaGF2ZSB0aGUgc2luZiBmdW5jdGlvbi4gICov
 CiNkZWZpbmUgX0dMSUJDUFBfSEFWRV9TSU5GIDEKCi8qIERlZmluZSBpZiB5b3UgaGF2ZSB0
 aGUgc2luaGYgZnVuY3Rpb24uICAqLwojZGVmaW5lIF9HTElCQ1BQX0hBVkVfU0lOSEYgMQoK
 LyogRGVmaW5lIGlmIHlvdSBoYXZlIHRoZSBzaW5obCBmdW5jdGlvbi4gICovCiNkZWZpbmUg
 X0dMSUJDUFBfSEFWRV9TSU5ITCAxCgovKiBEZWZpbmUgaWYgeW91IGhhdmUgdGhlIHNpbmwg
 ZnVuY3Rpb24uICAqLwojZGVmaW5lIF9HTElCQ1BQX0hBVkVfU0lOTCAxCgovKiBEZWZpbmUg
 aWYgeW91IGhhdmUgdGhlIHNxcnRmIGZ1bmN0aW9uLiAgKi8KI2RlZmluZSBfR0xJQkNQUF9I
 QVZFX1NRUlRGIDEKCi8qIERlZmluZSBpZiB5b3UgaGF2ZSB0aGUgc3FydGwgZnVuY3Rpb24u
 ICAqLwojZGVmaW5lIF9HTElCQ1BQX0hBVkVfU1FSVEwgMQoKLyogRGVmaW5lIGlmIHlvdSBo
 YXZlIHRoZSBzdHJ0b2YgZnVuY3Rpb24uICAqLwojZGVmaW5lIF9HTElCQ1BQX0hBVkVfU1RS
 VE9GIDEKCi8qIERlZmluZSBpZiB5b3UgaGF2ZSB0aGUgc3RydG9sZCBmdW5jdGlvbi4gICov
 CiNkZWZpbmUgX0dMSUJDUFBfSEFWRV9TVFJUT0xEIDEKCi8qIERlZmluZSBpZiB5b3UgaGF2
 ZSB0aGUgc3dwcmludGYgZnVuY3Rpb24uICAqLwovKiAjdW5kZWYgX0dMSUJDUFBfSEFWRV9T
 V1BSSU5URiAqLwoKLyogRGVmaW5lIGlmIHlvdSBoYXZlIHRoZSBzd3NjYW5mIGZ1bmN0aW9u
 LiAgKi8KLyogI3VuZGVmIF9HTElCQ1BQX0hBVkVfU1dTQ0FORiAqLwoKLyogRGVmaW5lIGlm
 IHlvdSBoYXZlIHRoZSB0YW5mIGZ1bmN0aW9uLiAgKi8KI2RlZmluZSBfR0xJQkNQUF9IQVZF
 X1RBTkYgMQoKLyogRGVmaW5lIGlmIHlvdSBoYXZlIHRoZSB0YW5oZiBmdW5jdGlvbi4gICov
 CiNkZWZpbmUgX0dMSUJDUFBfSEFWRV9UQU5IRiAxCgovKiBEZWZpbmUgaWYgeW91IGhhdmUg
 dGhlIHRhbmhsIGZ1bmN0aW9uLiAgKi8KI2RlZmluZSBfR0xJQkNQUF9IQVZFX1RBTkhMIDEK
 Ci8qIERlZmluZSBpZiB5b3UgaGF2ZSB0aGUgdGFubCBmdW5jdGlvbi4gICovCiNkZWZpbmUg
 X0dMSUJDUFBfSEFWRV9UQU5MIDEKCi8qIERlZmluZSBpZiB5b3UgaGF2ZSB0aGUgdW5nZXR3
 YyBmdW5jdGlvbi4gICovCi8qICN1bmRlZiBfR0xJQkNQUF9IQVZFX1VOR0VUV0MgKi8KCi8q
 IERlZmluZSBpZiB5b3UgaGF2ZSB0aGUgdmZ3cHJpbnRmIGZ1bmN0aW9uLiAgKi8KLyogI3Vu
 ZGVmIF9HTElCQ1BQX0hBVkVfVkZXUFJJTlRGICovCgovKiBEZWZpbmUgaWYgeW91IGhhdmUg
 dGhlIHZmd3NjYW5mIGZ1bmN0aW9uLiAgKi8KLyogI3VuZGVmIF9HTElCQ1BQX0hBVkVfVkZX
 U0NBTkYgKi8KCi8qIERlZmluZSBpZiB5b3UgaGF2ZSB0aGUgdnN3cHJpbnRmIGZ1bmN0aW9u
 LiAgKi8KLyogI3VuZGVmIF9HTElCQ1BQX0hBVkVfVlNXUFJJTlRGICovCgovKiBEZWZpbmUg
 aWYgeW91IGhhdmUgdGhlIHZzd3NjYW5mIGZ1bmN0aW9uLiAgKi8KLyogI3VuZGVmIF9HTElC
 Q1BQX0hBVkVfVlNXU0NBTkYgKi8KCi8qIERlZmluZSBpZiB5b3UgaGF2ZSB0aGUgdndwcmlu
 dGYgZnVuY3Rpb24uICAqLwovKiAjdW5kZWYgX0dMSUJDUFBfSEFWRV9WV1BSSU5URiAqLwoK
 LyogRGVmaW5lIGlmIHlvdSBoYXZlIHRoZSB2d3NjYW5mIGZ1bmN0aW9uLiAgKi8KLyogI3Vu
 ZGVmIF9HTElCQ1BQX0hBVkVfVldTQ0FORiAqLwoKLyogRGVmaW5lIGlmIHlvdSBoYXZlIHRo
 ZSB3Y3J0b21iIGZ1bmN0aW9uLiAgKi8KI2RlZmluZSBfR0xJQkNQUF9IQVZFX1dDUlRPTUIg
 MQoKLyogRGVmaW5lIGlmIHlvdSBoYXZlIHRoZSB3Y3NjYXQgZnVuY3Rpb24uICAqLwojZGVm
 aW5lIF9HTElCQ1BQX0hBVkVfV0NTQ0FUIDEKCi8qIERlZmluZSBpZiB5b3UgaGF2ZSB0aGUg
 d2NzY2hyIGZ1bmN0aW9uLiAgKi8KI2RlZmluZSBfR0xJQkNQUF9IQVZFX1dDU0NIUiAxCgov
 KiBEZWZpbmUgaWYgeW91IGhhdmUgdGhlIHdjc2NtcCBmdW5jdGlvbi4gICovCiNkZWZpbmUg
 X0dMSUJDUFBfSEFWRV9XQ1NDTVAgMQoKLyogRGVmaW5lIGlmIHlvdSBoYXZlIHRoZSB3Y3Nj
 b2xsIGZ1bmN0aW9uLiAgKi8KI2RlZmluZSBfR0xJQkNQUF9IQVZFX1dDU0NPTEwgMQoKLyog
 RGVmaW5lIGlmIHlvdSBoYXZlIHRoZSB3Y3NjcHkgZnVuY3Rpb24uICAqLwojZGVmaW5lIF9H
 TElCQ1BQX0hBVkVfV0NTQ1BZIDEKCi8qIERlZmluZSBpZiB5b3UgaGF2ZSB0aGUgd2NzY3Nw
 biBmdW5jdGlvbi4gICovCiNkZWZpbmUgX0dMSUJDUFBfSEFWRV9XQ1NDU1BOIDEKCi8qIERl
 ZmluZSBpZiB5b3UgaGF2ZSB0aGUgd2NzZnRpbWUgZnVuY3Rpb24uICAqLwovKiAjdW5kZWYg
 X0dMSUJDUFBfSEFWRV9XQ1NGVElNRSAqLwoKLyogRGVmaW5lIGlmIHlvdSBoYXZlIHRoZSB3
 Y3NsZW4gZnVuY3Rpb24uICAqLwojZGVmaW5lIF9HTElCQ1BQX0hBVkVfV0NTTEVOIDEKCi8q
 IERlZmluZSBpZiB5b3UgaGF2ZSB0aGUgd2NzbmNhdCBmdW5jdGlvbi4gICovCiNkZWZpbmUg
 X0dMSUJDUFBfSEFWRV9XQ1NOQ0FUIDEKCi8qIERlZmluZSBpZiB5b3UgaGF2ZSB0aGUgd2Nz
 bmNtcCBmdW5jdGlvbi4gICovCiNkZWZpbmUgX0dMSUJDUFBfSEFWRV9XQ1NOQ01QIDEKCi8q
 IERlZmluZSBpZiB5b3UgaGF2ZSB0aGUgd2NzbmNweSBmdW5jdGlvbi4gICovCiNkZWZpbmUg
 X0dMSUJDUFBfSEFWRV9XQ1NOQ1BZIDEKCi8qIERlZmluZSBpZiB5b3UgaGF2ZSB0aGUgd2Nz
 cGJyayBmdW5jdGlvbi4gICovCiNkZWZpbmUgX0dMSUJDUFBfSEFWRV9XQ1NQQlJLIDEKCi8q
 IERlZmluZSBpZiB5b3UgaGF2ZSB0aGUgd2NzcmNociBmdW5jdGlvbi4gICovCiNkZWZpbmUg
 X0dMSUJDUFBfSEFWRV9XQ1NSQ0hSIDEKCi8qIERlZmluZSBpZiB5b3UgaGF2ZSB0aGUgd2Nz
 cnRvbWJzIGZ1bmN0aW9uLiAgKi8KI2RlZmluZSBfR0xJQkNQUF9IQVZFX1dDU1JUT01CUyAx
 CgovKiBEZWZpbmUgaWYgeW91IGhhdmUgdGhlIHdjc3NwbiBmdW5jdGlvbi4gICovCiNkZWZp
 bmUgX0dMSUJDUFBfSEFWRV9XQ1NTUE4gMQoKLyogRGVmaW5lIGlmIHlvdSBoYXZlIHRoZSB3
 Y3NzdHIgZnVuY3Rpb24uICAqLwojZGVmaW5lIF9HTElCQ1BQX0hBVkVfV0NTU1RSIDEKCi8q
 IERlZmluZSBpZiB5b3UgaGF2ZSB0aGUgd2NzdG9kIGZ1bmN0aW9uLiAgKi8KI2RlZmluZSBf
 R0xJQkNQUF9IQVZFX1dDU1RPRCAxCgovKiBEZWZpbmUgaWYgeW91IGhhdmUgdGhlIHdjc3Rv
 ZiBmdW5jdGlvbi4gICovCiNkZWZpbmUgX0dMSUJDUFBfSEFWRV9XQ1NUT0YgMQoKLyogRGVm
 aW5lIGlmIHlvdSBoYXZlIHRoZSB3Y3N0b2sgZnVuY3Rpb24uICAqLwojZGVmaW5lIF9HTElC
 Q1BQX0hBVkVfV0NTVE9LIDEKCi8qIERlZmluZSBpZiB5b3UgaGF2ZSB0aGUgd2NzdG9sIGZ1
 bmN0aW9uLiAgKi8KI2RlZmluZSBfR0xJQkNQUF9IQVZFX1dDU1RPTCAxCgovKiBEZWZpbmUg
 aWYgeW91IGhhdmUgdGhlIHdjc3RvdWwgZnVuY3Rpb24uICAqLwojZGVmaW5lIF9HTElCQ1BQ
 X0hBVkVfV0NTVE9VTCAxCgovKiBEZWZpbmUgaWYgeW91IGhhdmUgdGhlIHdjc3hmcm0gZnVu
 Y3Rpb24uICAqLwojZGVmaW5lIF9HTElCQ1BQX0hBVkVfV0NTWEZSTSAxCgovKiBEZWZpbmUg
 aWYgeW91IGhhdmUgdGhlIHdjdG9iIGZ1bmN0aW9uLiAgKi8KI2RlZmluZSBfR0xJQkNQUF9I
 QVZFX1dDVE9CIDEKCi8qIERlZmluZSBpZiB5b3UgaGF2ZSB0aGUgd21lbWNociBmdW5jdGlv
 bi4gICovCiNkZWZpbmUgX0dMSUJDUFBfSEFWRV9XTUVNQ0hSIDEKCi8qIERlZmluZSBpZiB5
 b3UgaGF2ZSB0aGUgd21lbWNtcCBmdW5jdGlvbi4gICovCiNkZWZpbmUgX0dMSUJDUFBfSEFW
 RV9XTUVNQ01QIDEKCi8qIERlZmluZSBpZiB5b3UgaGF2ZSB0aGUgd21lbWNweSBmdW5jdGlv
 bi4gICovCiNkZWZpbmUgX0dMSUJDUFBfSEFWRV9XTUVNQ1BZIDEKCi8qIERlZmluZSBpZiB5
 b3UgaGF2ZSB0aGUgd21lbW1vdmUgZnVuY3Rpb24uICAqLwojZGVmaW5lIF9HTElCQ1BQX0hB
 VkVfV01FTU1PVkUgMQoKLyogRGVmaW5lIGlmIHlvdSBoYXZlIHRoZSB3bWVtc2V0IGZ1bmN0
 aW9uLiAgKi8KI2RlZmluZSBfR0xJQkNQUF9IQVZFX1dNRU1TRVQgMQoKLyogRGVmaW5lIGlm
 IHlvdSBoYXZlIHRoZSB3cHJpbnRmIGZ1bmN0aW9uLiAgKi8KLyogI3VuZGVmIF9HTElCQ1BQ
 X0hBVkVfV1BSSU5URiAqLwoKLyogRGVmaW5lIGlmIHlvdSBoYXZlIHRoZSB3c2NhbmYgZnVu
 Y3Rpb24uICAqLwovKiAjdW5kZWYgX0dMSUJDUFBfSEFWRV9XU0NBTkYgKi8KCi8qIERlZmlu
 ZSBpZiB5b3UgaGF2ZSB0aGUgPGVuZGlhbi5oPiBoZWFkZXIgZmlsZS4gICovCiNkZWZpbmUg
 X0dMSUJDUFBfSEFWRV9FTkRJQU5fSCAxCgovKiBEZWZpbmUgaWYgeW91IGhhdmUgdGhlIDxm
 bG9hdC5oPiBoZWFkZXIgZmlsZS4gICovCiNkZWZpbmUgX0dMSUJDUFBfSEFWRV9GTE9BVF9I
 IDEKCi8qIERlZmluZSBpZiB5b3UgaGF2ZSB0aGUgPGZwLmg+IGhlYWRlciBmaWxlLiAgKi8K
 LyogI3VuZGVmIF9HTElCQ1BQX0hBVkVfRlBfSCAqLwoKLyogRGVmaW5lIGlmIHlvdSBoYXZl
 IHRoZSA8Z2NvbnYuaD4gaGVhZGVyIGZpbGUuICAqLwojZGVmaW5lIF9HTElCQ1BQX0hBVkVf
 R0NPTlZfSCAxCgovKiBEZWZpbmUgaWYgeW91IGhhdmUgdGhlIDxpZWVlZnAuaD4gaGVhZGVy
 IGZpbGUuICAqLwovKiAjdW5kZWYgX0dMSUJDUFBfSEFWRV9JRUVFRlBfSCAqLwoKLyogRGVm
 aW5lIGlmIHlvdSBoYXZlIHRoZSA8aW50dHlwZXMuaD4gaGVhZGVyIGZpbGUuICAqLwojZGVm
 aW5lIF9HTElCQ1BQX0hBVkVfSU5UVFlQRVNfSCAxCgovKiBEZWZpbmUgaWYgeW91IGhhdmUg
 dGhlIDxsb2NhbGUuaD4gaGVhZGVyIGZpbGUuICAqLwojZGVmaW5lIF9HTElCQ1BQX0hBVkVf
 TE9DQUxFX0ggMQoKLyogRGVmaW5lIGlmIHlvdSBoYXZlIHRoZSA8bWFjaGluZS9lbmRpYW4u
 aD4gaGVhZGVyIGZpbGUuICAqLwovKiAjdW5kZWYgX0dMSUJDUFBfSEFWRV9NQUNISU5FX0VO
 RElBTl9IICovCgovKiBEZWZpbmUgaWYgeW91IGhhdmUgdGhlIDxtYWNoaW5lL3BhcmFtLmg+
 IGhlYWRlciBmaWxlLiAgKi8KLyogI3VuZGVmIF9HTElCQ1BQX0hBVkVfTUFDSElORV9QQVJB
 TV9IICovCgovKiBEZWZpbmUgaWYgeW91IGhhdmUgdGhlIDxuYW4uaD4gaGVhZGVyIGZpbGUu
 ICAqLwovKiAjdW5kZWYgX0dMSUJDUFBfSEFWRV9OQU5fSCAqLwoKLyogRGVmaW5lIGlmIHlv
 dSBoYXZlIHRoZSA8c3RkbGliLmg+IGhlYWRlciBmaWxlLiAgKi8KLyogI3VuZGVmIF9HTElC
 Q1BQX0hBVkVfU1RETElCX0ggKi8KCi8qIERlZmluZSBpZiB5b3UgaGF2ZSB0aGUgPHN5cy9p
 c2FfZGVmcy5oPiBoZWFkZXIgZmlsZS4gICovCi8qICN1bmRlZiBfR0xJQkNQUF9IQVZFX1NZ
 U19JU0FfREVGU19IICovCgovKiBEZWZpbmUgaWYgeW91IGhhdmUgdGhlIDxzeXMvbWFjaGlu
 ZS5oPiBoZWFkZXIgZmlsZS4gICovCi8qICN1bmRlZiBfR0xJQkNQUF9IQVZFX1NZU19NQUNI
 SU5FX0ggKi8KCi8qIERlZmluZSBpZiB5b3UgaGF2ZSB0aGUgPHN5cy9yZXNvdXJjZS5oPiBo
 ZWFkZXIgZmlsZS4gICovCiNkZWZpbmUgX0dMSUJDUFBfSEFWRV9TWVNfUkVTT1VSQ0VfSCAx
 CgovKiBEZWZpbmUgaWYgeW91IGhhdmUgdGhlIDxzeXMvc3RhdC5oPiBoZWFkZXIgZmlsZS4g
 ICovCi8qICN1bmRlZiBfR0xJQkNQUF9IQVZFX1NZU19TVEFUX0ggKi8KCi8qIERlZmluZSBp
 ZiB5b3UgaGF2ZSB0aGUgPHN5cy90eXBlcy5oPiBoZWFkZXIgZmlsZS4gICovCi8qICN1bmRl
 ZiBfR0xJQkNQUF9IQVZFX1NZU19UWVBFU19IICovCgovKiBEZWZpbmUgaWYgeW91IGhhdmUg
 dGhlIDx1bmlzdGQuaD4gaGVhZGVyIGZpbGUuICAqLwojZGVmaW5lIF9HTElCQ1BQX0hBVkVf
 VU5JU1REX0ggMQoKLyogRGVmaW5lIGlmIHlvdSBoYXZlIHRoZSA8d2NoYXIuaD4gaGVhZGVy
 IGZpbGUuICAqLwojZGVmaW5lIF9HTElCQ1BQX0hBVkVfV0NIQVJfSCAxCgovKiBEZWZpbmUg
 aWYgeW91IGhhdmUgdGhlIDx3Y3R5cGUuaD4gaGVhZGVyIGZpbGUuICAqLwojZGVmaW5lIF9H
 TElCQ1BQX0hBVkVfV0NUWVBFX0ggMQoKLyogRGVmaW5lIGlmIHlvdSBoYXZlIHRoZSBtIGxp
 YnJhcnkgKC1sbSkuICAqLwojZGVmaW5lIF9HTElCQ1BQX0hBVkVfTElCTSAxCgovKiBOYW1l
 IG9mIHBhY2thZ2UgKi8KI2RlZmluZSBfR0xJQkNQUF9QQUNLQUdFICJsaWJzdGRjKysiCgov
 KiBWZXJzaW9uIG51bWJlciBvZiBwYWNrYWdlICovCiNkZWZpbmUgX0dMSUJDUFBfVkVSU0lP
 TiAiMy4xLjAiCgovKiBEZWZpbmUgaWYgdGhlIGNvbXBpbGVyIGlzIGNvbmZpZ3VyZWQgZm9y
 IHNldGptcC9sb25nam1wIGV4Y2VwdGlvbnMuICovCi8qICN1bmRlZiBfR0xJQkNQUF9TSkxK
 X0VYQ0VQVElPTlMgKi8KCi8qIERlZmluZSBpZiBzaWdzZXRqbXAgaXMgYXZhaWxhYmxlLiAg
 ICovCiNkZWZpbmUgX0dMSUJDUFBfSEFWRV9TSUdTRVRKTVAgMQoKLyogT25seSB1c2VkIGlu
 IGJ1aWxkIGRpcmVjdG9yeSB0ZXN0c3VpdGVfaG9va3MuaC4gKi8KI2RlZmluZSBfR0xJQkNQ
 UF9IQVZFX01FTUxJTUlUX0RBVEEgMQoKLyogT25seSB1c2VkIGluIGJ1aWxkIGRpcmVjdG9y
 eSB0ZXN0c3VpdGVfaG9va3MuaC4gKi8KI2RlZmluZSBfR0xJQkNQUF9IQVZFX01FTUxJTUlU
 X1JTUyAxCgovKiBPbmx5IHVzZWQgaW4gYnVpbGQgZGlyZWN0b3J5IHRlc3RzdWl0ZV9ob29r
 cy5oLiAqLwojZGVmaW5lIF9HTElCQ1BQX0hBVkVfTUVNTElNSVRfVk1FTSAwCgovKiBPbmx5
 IHVzZWQgaW4gYnVpbGQgZGlyZWN0b3J5IHRlc3RzdWl0ZV9ob29rcy5oLiAqLwojZGVmaW5l
 IF9HTElCQ1BQX0hBVkVfTUVNTElNSVRfQVMgMQoKLy8KLy8gU3lzdGVtcyB0aGF0IGhhdmUg
 Y2VydGFpbiBub24tc3RhbmRhcmQgZnVuY3Rpb25zIHByZWZpeGVkIHdpdGggYW4KLy8gdW5k
 ZXJzY29yZSwgd2UnbGwgaGFuZGxlIHRob3NlIGhlcmUuIE11c3QgY29tZSBhZnRlciBjb25m
 aWcuaC5pbi4KLy8KI2lmIGRlZmluZWQgKF9HTElCQ1BQX0hBVkVfX0lTTkFOKSAmJiAhIGRl
 ZmluZWQgKF9HTElCQ1BQX0hBVkVfSVNOQU4pCiMgZGVmaW5lIF9HTElCQ1BQX0hBVkVfSVNO
 QU4gMQojIGRlZmluZSBpc25hbiBfaXNuYW4KI2VuZGlmCgojaWYgZGVmaW5lZCAoX0dMSUJD
 UFBfSEFWRV9fSVNOQU5GKSAmJiAhIGRlZmluZWQgKF9HTElCQ1BQX0hBVkVfSVNOQU5GKQoj
 IGRlZmluZSBfR0xJQkNQUF9IQVZFX0lTTkFORiAxCiMgZGVmaW5lIGlzbmFuZiBfaXNuYW5m
 CiNlbmRpZgoKI2lmIGRlZmluZWQgKF9HTElCQ1BQX0hBVkVfX0lTTkFOTCkgJiYgISBkZWZp
 bmVkIChfR0xJQkNQUF9IQVZFX0lTTkFOTCkKIyBkZWZpbmUgX0dMSUJDUFBfSEFWRV9JU05B
 TkwgMQojIGRlZmluZSBpc25hbmwgX2lzbmFubAojZW5kaWYKCiNpZiBkZWZpbmVkIChfR0xJ
 QkNQUF9IQVZFX19JU0lORikgJiYgISBkZWZpbmVkIChfR0xJQkNQUF9IQVZFX0lTSU5GKQoj
 IGRlZmluZSBfR0xJQkNQUF9IQVZFX0lTSU5GIDEKIyBkZWZpbmUgaXNpbmYgX2lzaW5mCiNl
 bmRpZgoKI2lmIGRlZmluZWQgKF9HTElCQ1BQX0hBVkVfX0lTSU5GRikgJiYgISBkZWZpbmVk
 IChfR0xJQkNQUF9IQVZFX0lTSU5GRikKIyBkZWZpbmUgX0dMSUJDUFBfSEFWRV9JU0lORkYg
 MQojIGRlZmluZSBpc2luZmYgX2lzaW5mZgojZW5kaWYKCiNpZiBkZWZpbmVkIChfR0xJQkNQ
 UF9IQVZFX19JU0lORkwpICYmICEgZGVmaW5lZCAoX0dMSUJDUFBfSEFWRV9JU0lORkwpCiMg
 ZGVmaW5lIF9HTElCQ1BQX0hBVkVfSVNJTkZMIDEKIyBkZWZpbmUgaXNpbmZsIF9pc2luZmwK
 I2VuZGlmCgojaWYgZGVmaW5lZCAoX0dMSUJDUFBfSEFWRV9fQ09QWVNJR04pICYmICEgZGVm
 aW5lZCAoX0dMSUJDUFBfSEFWRV9DT1BZU0lHTikKIyBkZWZpbmUgX0dMSUJDUFBfSEFWRV9D
 T1BZU0lHTiAxCiMgZGVmaW5lIGNvcHlzaWduIF9jb3B5c2lnbgojZW5kaWYKCiNpZiBkZWZp
 bmVkIChfR0xJQkNQUF9IQVZFX19DT1BZU0lHTkwpICYmICEgZGVmaW5lZCAoX0dMSUJDUFBf
 SEFWRV9DT1BZU0lHTkwpCiMgZGVmaW5lIF9HTElCQ1BQX0hBVkVfQ09QWVNJR05MIDEKIyBk
 ZWZpbmUgY29weXNpZ25sIF9jb3B5c2lnbmwKI2VuZGlmCgojaWYgZGVmaW5lZCAoX0dMSUJD
 UFBfSEFWRV9fQ09TRikgJiYgISBkZWZpbmVkIChfR0xJQkNQUF9IQVZFX0NPU0YpCiMgZGVm
 aW5lIF9HTElCQ1BQX0hBVkVfQ09TRiAxCiMgZGVmaW5lIGNvc2YgX2Nvc2YKI2VuZGlmCgoj
 aWYgZGVmaW5lZCAoX0dMSUJDUFBfSEFWRV9fQUNPU0YpICYmICEgZGVmaW5lZCAoX0dMSUJD
 UFBfSEFWRV9BQ09TRikKIyBkZWZpbmUgX0dMSUJDUFBfSEFWRV9BQ09TRiAxCiMgZGVmaW5l
 IGFjb3NmIF9hY29zZgojZW5kaWYKCiNpZiBkZWZpbmVkIChfR0xJQkNQUF9IQVZFX19BQ09T
 TCkgJiYgISBkZWZpbmVkIChfR0xJQkNQUF9IQVZFX0FDT1NMKQojIGRlZmluZSBfR0xJQkNQ
 UF9IQVZFX0FDT1NMIDEKIyBkZWZpbmUgYWNvc2wgX2Fjb3NsCiNlbmRpZgoKI2lmIGRlZmlu
 ZWQgKF9HTElCQ1BQX0hBVkVfX0FTSU5GKSAmJiAhIGRlZmluZWQgKF9HTElCQ1BQX0hBVkVf
 QVNJTkYpCiMgZGVmaW5lIF9HTElCQ1BQX0hBVkVfQVNJTkYgMQojIGRlZmluZSBhc2luZiBf
 YXNpbmYKI2VuZGlmCgojaWYgZGVmaW5lZCAoX0dMSUJDUFBfSEFWRV9fQVNJTkwpICYmICEg
 ZGVmaW5lZCAoX0dMSUJDUFBfSEFWRV9BU0lOTCkKIyBkZWZpbmUgX0dMSUJDUFBfSEFWRV9B
 U0lOTCAxCiMgZGVmaW5lIGFzaW5sIF9hc2lubAojZW5kaWYKCiNpZiBkZWZpbmVkIChfR0xJ
 QkNQUF9IQVZFX19BVEFORikgJiYgISBkZWZpbmVkIChfR0xJQkNQUF9IQVZFX0FUQU5GKQoj
 IGRlZmluZSBfR0xJQkNQUF9IQVZFX0FUQU5GIDEKIyBkZWZpbmUgYXRhbmYgX2F0YW5mCiNl
 bmRpZgoKI2lmIGRlZmluZWQgKF9HTElCQ1BQX0hBVkVfX0FUQU5MKSAmJiAhIGRlZmluZWQg
 KF9HTElCQ1BQX0hBVkVfQVRBTkwpCiMgZGVmaW5lIF9HTElCQ1BQX0hBVkVfQVRBTkwgMQoj
 IGRlZmluZSBhdGFubCBfYXRhbmwKI2VuZGlmCgojaWYgZGVmaW5lZCAoX0dMSUJDUFBfSEFW
 RV9fQ0VJTEYpICYmICEgZGVmaW5lZCAoX0dMSUJDUFBfSEFWRV9DRUlMRikKIyBkZWZpbmUg
 X0dMSUJDUFBfSEFWRV9DRUlMRiAxCiMgZGVmaW5lIGFjZWlsIF9jZWlsZgojZW5kaWYKCiNp
 ZiBkZWZpbmVkIChfR0xJQkNQUF9IQVZFX19DRUlMTCkgJiYgISBkZWZpbmVkIChfR0xJQkNQ
 UF9IQVZFX0NFSUxMKQojIGRlZmluZSBfR0xJQkNQUF9IQVZFX0NFSUxMIDEKIyBkZWZpbmUg
 YWNlaWwgX2NlaWxsCiNlbmRpZgoKI2lmIGRlZmluZWQgKF9HTElCQ1BQX0hBVkVfX0NPU0hG
 KSAmJiAhIGRlZmluZWQgKF9HTElCQ1BQX0hBVkVfQ09TSEYpCiMgZGVmaW5lIF9HTElCQ1BQ
 X0hBVkVfQ09TSEYgMQojIGRlZmluZSBjb3NoZiBfY29zaGYKI2VuZGlmCgojaWYgZGVmaW5l
 ZCAoX0dMSUJDUFBfSEFWRV9fQ09TTCkgJiYgISBkZWZpbmVkIChfR0xJQkNQUF9IQVZFX0NP
 U0wpCiMgZGVmaW5lIF9HTElCQ1BQX0hBVkVfQ09TTCAxCiMgZGVmaW5lIGNvc2wgX2Nvc2wK
 I2VuZGlmCgojaWYgZGVmaW5lZCAoX0dMSUJDUFBfSEFWRV9fTE9HRikgJiYgISBkZWZpbmVk
 IChfR0xJQkNQUF9IQVZFX0xPR0YpCiMgZGVmaW5lIF9HTElCQ1BQX0hBVkVfTE9HRiAxCiMg
 ZGVmaW5lIGxvZ2YgX2xvZ2YKI2VuZGlmCgojaWYgZGVmaW5lZCAoX0dMSUJDUFBfSEFWRV9f
 Q09TSEwpICYmICEgZGVmaW5lZCAoX0dMSUJDUFBfSEFWRV9DT1NITCkKIyBkZWZpbmUgX0dM
 SUJDUFBfSEFWRV9DT1NITCAxCiMgZGVmaW5lIGNvc2hsIF9jb3NobAojZW5kaWYKCiNpZiBk
 ZWZpbmVkIChfR0xJQkNQUF9IQVZFX19FWFBGKSAmJiAhIGRlZmluZWQgKF9HTElCQ1BQX0hB
 VkVfRVhQRikKIyBkZWZpbmUgX0dMSUJDUFBfSEFWRV9FWFBGIDEKIyBkZWZpbmUgZXhwZiBf
 ZXhwZgojZW5kaWYKCiNpZiBkZWZpbmVkIChfR0xJQkNQUF9IQVZFX19FWFBMKSAmJiAhIGRl
 ZmluZWQgKF9HTElCQ1BQX0hBVkVfRVhQTCkKIyBkZWZpbmUgX0dMSUJDUFBfSEFWRV9FWFBM
 IDEKIyBkZWZpbmUgZXhwbCBfZXhwbAojZW5kaWYKCiNpZiBkZWZpbmVkIChfR0xJQkNQUF9I
 QVZFX19GQUJTRikgJiYgISBkZWZpbmVkIChfR0xJQkNQUF9IQVZFX0ZBQlNGKQojIGRlZmlu
 ZSBfR0xJQkNQUF9IQVZFX0ZBQlNGIDEKIyBkZWZpbmUgZmFic2YgX2ZhYnNmCiNlbmRpZgoK
 I2lmIGRlZmluZWQgKF9HTElCQ1BQX0hBVkVfX0ZBQlNMKSAmJiAhIGRlZmluZWQgKF9HTElC
 Q1BQX0hBVkVfRkFCU0wpCiMgZGVmaW5lIF9HTElCQ1BQX0hBVkVfRkFCU0wgMQojIGRlZmlu
 ZSBmYWJzbCBfZmFic2wKI2VuZGlmCgojaWYgZGVmaW5lZCAoX0dMSUJDUFBfSEFWRV9fRkxP
 T1JGKSAmJiAhIGRlZmluZWQgKF9HTElCQ1BQX0hBVkVfRkxPT1JGKQojIGRlZmluZSBfR0xJ
 QkNQUF9IQVZFX0ZMT09SRiAxCiMgZGVmaW5lIGZsb29yZiBfZmxvb3JmCiNlbmRpZgoKI2lm
 IGRlZmluZWQgKF9HTElCQ1BQX0hBVkVfX0ZMT09STCkgJiYgISBkZWZpbmVkIChfR0xJQkNQ
 UF9IQVZFX0ZMT09STCkKIyBkZWZpbmUgX0dMSUJDUFBfSEFWRV9GTE9PUkwgMQojIGRlZmlu
 ZSBmbG9vcmwgX2Zsb29ybAojZW5kaWYKCiNpZiBkZWZpbmVkIChfR0xJQkNQUF9IQVZFX19G
 TU9ERikgJiYgISBkZWZpbmVkIChfR0xJQkNQUF9IQVZFX0ZNT0RGKQojIGRlZmluZSBfR0xJ
 QkNQUF9IQVZFX0ZNT0RGIDEKIyBkZWZpbmUgZm1vZGYgX2Ztb2RmCiNlbmRpZgoKI2lmIGRl
 ZmluZWQgKF9HTElCQ1BQX0hBVkVfX0ZNT0RMKSAmJiAhIGRlZmluZWQgKF9HTElCQ1BQX0hB
 VkVfRk1PREwpCiMgZGVmaW5lIF9HTElCQ1BQX0hBVkVfRk1PREwgMQojIGRlZmluZSBmbW9k
 bCBfZm1vZGwKI2VuZGlmCgojaWYgZGVmaW5lZCAoX0dMSUJDUFBfSEFWRV9fRlJFWFBGKSAm
 JiAhIGRlZmluZWQgKF9HTElCQ1BQX0hBVkVfRlJFWFBGKQojIGRlZmluZSBfR0xJQkNQUF9I
 QVZFX0ZSRVhQRiAxCiMgZGVmaW5lIGZyZXhwZiBfZnJleHBmCiNlbmRpZgoKI2lmIGRlZmlu
 ZWQgKF9HTElCQ1BQX0hBVkVfX0ZSRVhQTCkgJiYgISBkZWZpbmVkIChfR0xJQkNQUF9IQVZF
 X0ZSRVhQTCkKIyBkZWZpbmUgX0dMSUJDUFBfSEFWRV9GUkVYUEwgMQojIGRlZmluZSBmcmV4
 cGwgX2ZyZXhwbAojZW5kaWYKCiNpZiBkZWZpbmVkIChfR0xJQkNQUF9IQVZFX19MREVYUEYp
 ICYmICEgZGVmaW5lZCAoX0dMSUJDUFBfSEFWRV9MREVYUEYpCiMgZGVmaW5lIF9HTElCQ1BQ
 X0hBVkVfTERFWFBGIDEKIyBkZWZpbmUgbGRleHBmIF9sZGV4cGYKI2VuZGlmCgojaWYgZGVm
 aW5lZCAoX0dMSUJDUFBfSEFWRV9fTERFWFBMKSAmJiAhIGRlZmluZWQgKF9HTElCQ1BQX0hB
 VkVfTERFWFBMKQojIGRlZmluZSBfR0xJQkNQUF9IQVZFX0xERVhQTCAxCiMgZGVmaW5lIGxk
 ZXhwbCBfbGRleHBsCiNlbmRpZgoKI2lmIGRlZmluZWQgKF9HTElCQ1BQX0hBVkVfX0xPRzEw
 RikgJiYgISBkZWZpbmVkIChfR0xJQkNQUF9IQVZFX0xPRzEwRikKIyBkZWZpbmUgX0dMSUJD
 UFBfSEFWRV9MT0cxMEYgMQojIGRlZmluZSBsb2cxMGYgX2xvZzEwZgojZW5kaWYKCiNpZiBk
 ZWZpbmVkIChfR0xJQkNQUF9IQVZFX19MT0dMKSAmJiAhIGRlZmluZWQgKF9HTElCQ1BQX0hB
 VkVfTE9HTCkKIyBkZWZpbmUgX0dMSUJDUFBfSEFWRV9MT0dMIDEKIyBkZWZpbmUgbG9nbCBf
 bG9nbAojZW5kaWYKCiNpZiBkZWZpbmVkIChfR0xJQkNQUF9IQVZFX19QT1dGKSAmJiAhIGRl
 ZmluZWQgKF9HTElCQ1BQX0hBVkVfUE9XRikKIyBkZWZpbmUgX0dMSUJDUFBfSEFWRV9QT1dG
 IDEKIyBkZWZpbmUgcG93ZiBfcG93ZgojZW5kaWYKCiNpZiBkZWZpbmVkIChfR0xJQkNQUF9I
 QVZFX19MT0cxMEwpICYmICEgZGVmaW5lZCAoX0dMSUJDUFBfSEFWRV9MT0cxMEwpCiMgZGVm
 aW5lIF9HTElCQ1BQX0hBVkVfTE9HMTBMIDEKIyBkZWZpbmUgbG9nMTBsIF9sb2cxMGwKI2Vu
 ZGlmCgojaWYgZGVmaW5lZCAoX0dMSUJDUFBfSEFWRV9fTU9ERikgJiYgISBkZWZpbmVkIChf
 R0xJQkNQUF9IQVZFX01PREYpCiMgZGVmaW5lIF9HTElCQ1BQX0hBVkVfTU9ERiAxCiMgZGVm
 aW5lIG1vZGYgX21vZGYKI2VuZGlmCgojaWYgZGVmaW5lZCAoX0dMSUJDUFBfSEFWRV9fTU9E
 TCkgJiYgISBkZWZpbmVkIChfR0xJQkNQUF9IQVZFX01PREwpCiMgZGVmaW5lIF9HTElCQ1BQ
 X0hBVkVfTU9ETCAxCiMgZGVmaW5lIG1vZGwgX21vZGwKI2VuZGlmCgojaWYgZGVmaW5lZCAo
 X0dMSUJDUFBfSEFWRV9fU0lORikgJiYgISBkZWZpbmVkIChfR0xJQkNQUF9IQVZFX1NJTkYp
 CiMgZGVmaW5lIF9HTElCQ1BQX0hBVkVfU0lORiAxCiMgZGVmaW5lIHNpbmYgX3NpbmYKI2Vu
 ZGlmCgojaWYgZGVmaW5lZCAoX0dMSUJDUFBfSEFWRV9fUE9XTCkgJiYgISBkZWZpbmVkIChf
 R0xJQkNQUF9IQVZFX1BPV0wpCiMgZGVmaW5lIF9HTElCQ1BQX0hBVkVfUE9XTCAxCiMgZGVm
 aW5lIHBvd2wgX3Bvd2wKI2VuZGlmCgojaWYgZGVmaW5lZCAoX0dMSUJDUFBfSEFWRV9fU0lO
 SEYpICYmICEgZGVmaW5lZCAoX0dMSUJDUFBfSEFWRV9TSU5IRikKIyBkZWZpbmUgX0dMSUJD
 UFBfSEFWRV9TSU5IRiAxCiMgZGVmaW5lIHNpbmhmIF9zaW5oZgojZW5kaWYKCiNpZiBkZWZp
 bmVkIChfR0xJQkNQUF9IQVZFX19TSU5MKSAmJiAhIGRlZmluZWQgKF9HTElCQ1BQX0hBVkVf
 U0lOTCkKIyBkZWZpbmUgX0dMSUJDUFBfSEFWRV9TSU5MIDEKIyBkZWZpbmUgc2lubCBfc2lu
 bAojZW5kaWYKCiNpZiBkZWZpbmVkIChfR0xJQkNQUF9IQVZFX19TUVJURikgJiYgISBkZWZp
 bmVkIChfR0xJQkNQUF9IQVZFX1NRUlRGKQojIGRlZmluZSBfR0xJQkNQUF9IQVZFX1NRUlRG
 IDEKIyBkZWZpbmUgc3FydGYgX3NxcnRmCiNlbmRpZgoKI2lmIGRlZmluZWQgKF9HTElCQ1BQ
 X0hBVkVfX1NJTkhMKSAmJiAhIGRlZmluZWQgKF9HTElCQ1BQX0hBVkVfU0lOSEwpCiMgZGVm
 aW5lIF9HTElCQ1BQX0hBVkVfU0lOSEwgMQojIGRlZmluZSBzaW5obCBfc2luaGwKI2VuZGlm
 CgojaWYgZGVmaW5lZCAoX0dMSUJDUFBfSEFWRV9fVEFORikgJiYgISBkZWZpbmVkIChfR0xJ
 QkNQUF9IQVZFX1RBTkYpCiMgZGVmaW5lIF9HTElCQ1BQX0hBVkVfVEFORiAxCiMgZGVmaW5l
 IHRhbmYgX3RhbmYKI2VuZGlmCgojaWYgZGVmaW5lZCAoX0dMSUJDUFBfSEFWRV9fU1FSVEwp
 ICYmICEgZGVmaW5lZCAoX0dMSUJDUFBfSEFWRV9TUVJUTCkKIyBkZWZpbmUgX0dMSUJDUFBf
 SEFWRV9TUVJUTCAxCiMgZGVmaW5lIHNxcnRsIF9zcXJ0bAojZW5kaWYKCiNpZiBkZWZpbmVk
 IChfR0xJQkNQUF9IQVZFX19UQU5IRikgJiYgISBkZWZpbmVkIChfR0xJQkNQUF9IQVZFX1RB
 TkhGKQojIGRlZmluZSBfR0xJQkNQUF9IQVZFX1RBTkhGIDEKIyBkZWZpbmUgdGFuaGYgX3Rh
 bmhmCiNlbmRpZgoKI2lmIGRlZmluZWQgKF9HTElCQ1BQX0hBVkVfX1RBTkwpICYmICEgZGVm
 aW5lZCAoX0dMSUJDUFBfSEFWRV9UQU5MKQojIGRlZmluZSBfR0xJQkNQUF9IQVZFX1RBTkYg
 MQojIGRlZmluZSB0YW5mIF90YW5mCiNlbmRpZgoKI2lmIGRlZmluZWQgKF9HTElCQ1BQX0hB
 VkVfX1NUUlRPRikgJiYgISBkZWZpbmVkIChfR0xJQkNQUF9IQVZFX1NUUlRPRikKIyBkZWZp
 bmUgX0dMSUJDUFBfSEFWRV9TVFJUT0YgMQojIGRlZmluZSBzdHJ0b2YgX3N0cnRvZgojZW5k
 aWYKCiNpZiBkZWZpbmVkIChfR0xJQkNQUF9IQVZFX19UQU5ITCkgJiYgISBkZWZpbmVkIChf
 R0xJQkNQUF9IQVZFX1RBTkhMKQojIGRlZmluZSBfR0xJQkNQUF9IQVZFX1RBTkhMIDEKIyBk
 ZWZpbmUgdGFuaGwgX3RhbmhsCiNlbmRpZgoKI2lmIGRlZmluZWQgKF9HTElCQ1BQX0hBVkVf
 X1NUUlRPTEQpICYmICEgZGVmaW5lZCAoX0dMSUJDUFBfSEFWRV9TVFJUT0xEKQojIGRlZmlu
 ZSBfR0xJQkNQUF9IQVZFX1NUUlRPTEQgMQojIGRlZmluZSBzdHJ0b2xkIF9zdHJ0b2xkCiNl
 bmRpZgoKI2lmIGRlZmluZWQgKF9HTElCQ1BQX0hBVkVfX1NJTkNPUykgJiYgISBkZWZpbmVk
 IChfR0xJQkNQUF9IQVZFX1NJTkNPUykKIyBkZWZpbmUgX0dMSUJDUFBfSEFWRV9TSU5DT1Mg
 MQojIGRlZmluZSBzaW5jb3MgX3NpbmNvcwojZW5kaWYKCiNpZiBkZWZpbmVkIChfR0xJQkNQ
 UF9IQVZFX19TSU5DT1NGKSAmJiAhIGRlZmluZWQgKF9HTElCQ1BQX0hBVkVfU0lOQ09TRikK
 IyBkZWZpbmUgX0dMSUJDUFBfSEFWRV9TSU5DT1NGIDEKIyBkZWZpbmUgc2luY29zZiBfc2lu
 Y29zZgojZW5kaWYKCiNpZiBkZWZpbmVkIChfR0xJQkNQUF9IQVZFX19TSU5DT1NMKSAmJiAh
 IGRlZmluZWQgKF9HTElCQ1BQX0hBVkVfU0lOQ09TTCkKIyBkZWZpbmUgX0dMSUJDUFBfSEFW
 RV9TSU5DT1NMIDEKIyBkZWZpbmUgc2luY29zbCBfc2luY29zbAojZW5kaWYKCiNpZiBkZWZp
 bmVkIChfR0xJQkNQUF9IQVZFX19GSU5JVEUpICYmICEgZGVmaW5lZCAoX0dMSUJDUFBfSEFW
 RV9GSU5JVEUpCiMgZGVmaW5lIF9HTElCQ1BQX0hBVkVfRklOSVRFIDEKIyBkZWZpbmUgZmlu
 aXRlIF9maW5pdGUKI2VuZGlmCgojaWYgZGVmaW5lZCAoX0dMSUJDUFBfSEFWRV9fRklOSVRF
 RikgJiYgISBkZWZpbmVkIChfR0xJQkNQUF9IQVZFX0ZJTklURUYpCiMgZGVmaW5lIF9HTElC
 Q1BQX0hBVkVfRklOSVRFRiAxCiMgZGVmaW5lIGZpbml0ZWYgX2Zpbml0ZWYKI2VuZGlmCgoj
 aWYgZGVmaW5lZCAoX0dMSUJDUFBfSEFWRV9fRklOSVRFTCkgJiYgISBkZWZpbmVkIChfR0xJ
 QkNQUF9IQVZFX0ZJTklURUwpCiMgZGVmaW5lIF9HTElCQ1BQX0hBVkVfRklOSVRFTCAxCiMg
 ZGVmaW5lIGZpbml0ZWwgX2Zpbml0ZWwKI2VuZGlmCgojaWYgZGVmaW5lZCAoX0dMSUJDUFBf
 SEFWRV9fUUZJTklURSkgJiYgISBkZWZpbmVkIChfR0xJQkNQUF9IQVZFX1FGSU5JVEUpCiMg
 ZGVmaW5lIF9HTElCQ1BQX0hBVkVfUUZJTklURSAxCiMgZGVmaW5lIHFmaW5pdGUgX3FmaW5p
 dGUKI2VuZGlmCgojaWYgZGVmaW5lZCAoX0dMSUJDUFBfSEFWRV9fRlBDTEFTUykgJiYgISBk
 ZWZpbmVkIChfR0xJQkNQUF9IQVZFX0ZQQ0xBU1MpCiMgZGVmaW5lIF9HTElCQ1BQX0hBVkVf
 RlBDTEFTUyAxCiMgZGVmaW5lIGZwY2xhc3MgX2ZwY2xhc3MKI2VuZGlmCgojaWYgZGVmaW5l
 ZCAoX0dMSUJDUFBfSEFWRV9fUUZQQ0xBU1MpICYmICEgZGVmaW5lZCAoX0dMSUJDUFBfSEFW
 RV9RRlBDTEFTUykKIyBkZWZpbmUgX0dMSUJDUFBfSEFWRV9RRlBDTEFTUyAxCiMgZGVmaW5l
 IHFmcGNsYXNzIF9xZnBjbGFzcwojZW5kaWYKCiNlbmRpZiAvLyBfQ1BQX0NQUENPTkZJR18K
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAuL2luY2x1ZGUvZysrLXYzL2k2ODYtcGMtbGludXgtZ251L2JpdHMvb3NfZGVmaW5lcy5o
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDEwMDY0
 NAAwMDAzMzA1ADAwMTE2MzcAMDAwMDAwMDU0MjUAMDc0NzMwNDI2NjcAMDIwNjc2ACAwAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHVzdGFyICAAbWVu
 Z2VsAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABvc3MAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC8vIFNwZWNpZmljIGRlZmluaXRpb25zIGZv
 ciBHTlUvTGludXggIC0qLSBDKysgLSotCgovLyBDb3B5cmlnaHQgKEMpIDIwMDAsIDIwMDEg
 RnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCi8vCi8vIFRoaXMgZmlsZSBpcyBwYXJ0
 IG9mIHRoZSBHTlUgSVNPIEMrKyBMaWJyYXJ5LiAgVGhpcyBsaWJyYXJ5IGlzIGZyZWUKLy8g
 c29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkgaXQgdW5k
 ZXIgdGhlCi8vIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBw
 dWJsaXNoZWQgYnkgdGhlCi8vIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZl
 cnNpb24gMiwgb3IgKGF0IHlvdXIgb3B0aW9uKQovLyBhbnkgbGF0ZXIgdmVyc2lvbi4KCi8v
 IFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwg
 YmUgdXNlZnVsLAovLyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0
 aGUgaW1wbGllZCB3YXJyYW50eSBvZgovLyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBG
 T1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCi8vIEdOVSBHZW5lcmFsIFB1Ymxp
 YyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCgovLyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2
 ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhbG9uZwovLyB3
 aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuICBJZiBub3QsIHdyaXRl
 IHRvIHRoZSBGcmVlCi8vIFNvZnR3YXJlIEZvdW5kYXRpb24sIDU5IFRlbXBsZSBQbGFjZSAt
 IFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3LAovLyBVU0EuCgovLyBBcyBhIHNw
 ZWNpYWwgZXhjZXB0aW9uLCB5b3UgbWF5IHVzZSB0aGlzIGZpbGUgYXMgcGFydCBvZiBhIGZy
 ZWUgc29mdHdhcmUKLy8gbGlicmFyeSB3aXRob3V0IHJlc3RyaWN0aW9uLiAgU3BlY2lmaWNh
 bGx5LCBpZiBvdGhlciBmaWxlcyBpbnN0YW50aWF0ZQovLyB0ZW1wbGF0ZXMgb3IgdXNlIG1h
 Y3JvcyBvciBpbmxpbmUgZnVuY3Rpb25zIGZyb20gdGhpcyBmaWxlLCBvciB5b3UgY29tcGls
 ZQovLyB0aGlzIGZpbGUgYW5kIGxpbmsgaXQgd2l0aCBvdGhlciBmaWxlcyB0byBwcm9kdWNl
 IGFuIGV4ZWN1dGFibGUsIHRoaXMKLy8gZmlsZSBkb2VzIG5vdCBieSBpdHNlbGYgY2F1c2Ug
 dGhlIHJlc3VsdGluZyBleGVjdXRhYmxlIHRvIGJlIGNvdmVyZWQgYnkKLy8gdGhlIEdOVSBH
 ZW5lcmFsIFB1YmxpYyBMaWNlbnNlLiAgVGhpcyBleGNlcHRpb24gZG9lcyBub3QgaG93ZXZl
 cgovLyBpbnZhbGlkYXRlIGFueSBvdGhlciByZWFzb25zIHdoeSB0aGUgZXhlY3V0YWJsZSBm
 aWxlIG1pZ2h0IGJlIGNvdmVyZWQgYnkKLy8gdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNl
 bnNlLgoKI2lmbmRlZiBfR0xJQkNQUF9PU19ERUZJTkVTCiNkZWZpbmUgX0dMSUJDUFBfT1Nf
 REVGSU5FUyAxCgovLyBTeXN0ZW0tc3BlY2lmaWMgI2RlZmluZSwgdHlwZWRlZnMsIGNvcnJl
 Y3Rpb25zLCBldGMsIGdvIGhlcmUuICBUaGlzCi8vIGZpbGUgd2lsbCBjb21lIGJlZm9yZSBh
 bGwgb3RoZXJzLgoKLy8gVGhpcyBrZWVwcyBpc2FudW0sIGV0IGFsIGZyb20gYmVpbmcgcHJv
 cGFnYXRlZCBhcyBtYWNyb3MuCiNkZWZpbmUgX19OT19DVFlQRSAxCgojaW5jbHVkZSA8ZmVh
 dHVyZXMuaD4KCiNpZiAhZGVmaW5lZCAoX19HTElCQ19fKSB8fCAoX19HTElCQ19fID09IDIg
 JiYgX19HTElCQ19NSU5PUl9fKyAwID09IDApCgovLyBUaGUgdHlwZXMgX19vZmZfdCBhbmQg
 X19vZmY2NF90IGFyZSBub3QgZGVmaW5lZCB0aHJvdWdoIDxzeXMvdHlwZXMuaD4KLy8gYXMg
 X0dfY29uZmlnIGFzc3VtZXMuICBGb3IgbGliYzUgYW5kIGdsaWJjIDIuMCBpbnN0ZWFkIHVz
 ZQovLyA8Z251L3R5cGVzLmg+IGFuZCB0aGUgb2xkIG5hbWUgZm9yIF9fb2ZmNjRfdC4KI2lu
 Y2x1ZGUgPGdudS90eXBlcy5oPgp0eXBlZGVmIF9fbG9mZl90IF9fb2ZmNjRfdDsKCi8vIFRo
 ZXNlIHN5c3RlbXMgaGF2ZSBkZWNsYXJhdGlvbnMgbWlzbWF0Y2hpbmcgdGhvc2UgaW4gbGli
 aW8uaCBieQovLyBvbWl0dGluZyB0aHJvdyBxdWFsaWZpZXJzLiAgQ2xlYW5lc3Qgd2F5IG91
 dCBpcyB0byBub3QgcHJvdmlkZQovLyB0aHJvdy1xdWFsaWZpZXJzIGF0IGFsbC4gIERlZmlu
 aW5nIGl0IGFzIGVtcHR5IGhlcmUgd2lsbCBtYWtlIGxpYmlvLmgKLy8gbm90IGRlZmluZSBp
 dC4KI3VuZGVmIF9fVEhST1cKI2RlZmluZSBfX1RIUk9XCgovLyBUZWxsIEdsaWJjIG5vdCB0
 byB0cnkgdG8gcHJvdmlkZSBpdHMgb3duIGlubGluZSB2ZXJzaW9ucyBvZgovLyBzb21lIG1h
 dGggZnVuY3Rpb25zLiAgVGhvc2UgY2F1c2UgYXNzZW1ibHktdGltZSBjbGFzaGVzIHdpdGgK
 Ly8gb3VyIGRlZmluaXRpb25zLgojZGVmaW5lIF9fTk9fTUFUSF9JTkxJTkVTCgojZW5kaWYg
 CgojaWYgZGVmaW5lZCBfX0dMSUJDX18gJiYgX19HTElCQ19fID49IDIKLy8gV2UgbXVzdCBu
 b3Qgc2VlIHRoZSBvcHRpbWl6ZWQgc3RyaW5nIGZ1bmN0aW9ucyBHTlUgbGliYyBkZWZpbmVz
 LgojZGVmaW5lIF9fTk9fU1RSSU5HX0lOTElORVMKI2VuZGlmCgojaWYgZGVmaW5lZChfX3Bv
 d2VycGM2NF9fKSB8fCBkZWZpbmVkKF9fczM5MHhfXykgfHwgKGRlZmluZWQoX19zcGFyY19f
 KSAmJiBkZWZpbmVkKF9fYXJjaDY0X18pKQojZGVmaW5lIF9fZ2xpYmNwcF9sb25nX2JpdHMg
 NjQKI2VuZGlmCgojaWYgZGVmaW5lZChfX3NwYXJjX18pICYmICFkZWZpbmVkKF9fYXJjaDY0
 X18pCiNkZWZpbmUgX19nbGliY3BwX2xvbmdfZG91YmxlX2JpdHMgNjQKI2VuZGlmCgojZW5k
 aWYKAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAC4vaW5jbHVkZS9nKystdjMvYml0cy8AAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAwMDQwNzc1ADAwMDMzMDUAMDAxMTYzNwAwMDAwMDAwMDAwMAAwNzU2
 NDUwMDYzMgAwMTMzNTYAIDUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAdXN0YXIgIABtZW5nZWwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAG9zcwAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALi9pbmNs
 dWRlL2crKy12My9iaXRzL2NtYXRoLnRjYwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAxMDA2NDQAMDAwMzMw
 NQAwMDExNjM3ADAwMDAwMDAzNDYwADA3NDczMDQyNjYxADAxNTE0NQAgMAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB1c3RhciAgAG1lbmdlbAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAb3NzAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAvLyAtKi0gQysrIC0qLSBDIG1hdGggbGlicmFyeS4KCi8v
 IENvcHlyaWdodCAoQykgMjAwMCBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KLy8K
 Ly8gVGhpcyBmaWxlIGlzIHBhcnQgb2YgdGhlIEdOVSBJU08gQysrIExpYnJhcnkuICBUaGlz
 IGxpYnJhcnkgaXMgZnJlZQovLyBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQg
 YW5kL29yIG1vZGlmeSBpdCB1bmRlciB0aGUKLy8gdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFs
 IFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUKLy8gRnJlZSBTb2Z0d2FyZSBG
 b3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyLCBvciAoYXQgeW91ciBvcHRpb24pCi8vIGFu
 eSBsYXRlciB2ZXJzaW9uLgoKLy8gVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRo
 ZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCi8vIGJ1dCBXSVRIT1VUIEFOWSBXQVJS
 QU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCi8vIE1FUkNIQU5U
 QUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUK
 Ly8gR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KCi8vIFlv
 dSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1Ymxp
 YyBMaWNlbnNlIGFsb25nCi8vIHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09Q
 WUlORy4gIElmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUKLy8gU29mdHdhcmUgRm91bmRhdGlv
 biwgNTkgVGVtcGxlIFBsYWNlIC0gU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcs
 Ci8vIFVTQS4KCi8vIEFzIGEgc3BlY2lhbCBleGNlcHRpb24sIHlvdSBtYXkgdXNlIHRoaXMg
 ZmlsZSBhcyBwYXJ0IG9mIGEgZnJlZSBzb2Z0d2FyZQovLyBsaWJyYXJ5IHdpdGhvdXQgcmVz
 dHJpY3Rpb24uICBTcGVjaWZpY2FsbHksIGlmIG90aGVyIGZpbGVzIGluc3RhbnRpYXRlCi8v
 IHRlbXBsYXRlcyBvciB1c2UgbWFjcm9zIG9yIGlubGluZSBmdW5jdGlvbnMgZnJvbSB0aGlz
 IGZpbGUsIG9yIHlvdSBjb21waWxlCi8vIHRoaXMgZmlsZSBhbmQgbGluayBpdCB3aXRoIG90
 aGVyIGZpbGVzIHRvIHByb2R1Y2UgYW4gZXhlY3V0YWJsZSwgdGhpcwovLyBmaWxlIGRvZXMg
 bm90IGJ5IGl0c2VsZiBjYXVzZSB0aGUgcmVzdWx0aW5nIGV4ZWN1dGFibGUgdG8gYmUgY292
 ZXJlZCBieQovLyB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UuICBUaGlzIGV4Y2Vw
 dGlvbiBkb2VzIG5vdCBob3dldmVyCi8vIGludmFsaWRhdGUgYW55IG90aGVyIHJlYXNvbnMg
 d2h5IHRoZSBleGVjdXRhYmxlIGZpbGUgbWlnaHQgYmUgY292ZXJlZCBieQovLyB0aGUgR05V
 IEdlbmVyYWwgUHVibGljIExpY2Vuc2UuCgovLyBUaGlzIGZpbGUgd2FzIHdyaXR0ZW4gYnkg
 R2FicmllbCBEb3MgUmVpcyA8Z2RyQGNvZGVzb3VyY2VyeS5jb20+CgojaWZuZGVmIF9DUFBf
 QklUU19DTUFUSF9UQ0MKI2RlZmluZSBfQ1BQX0JJVFNfQ01BVEhfVENDIDEKCm5hbWVzcGFj
 ZSBzdGQgCnsKICBleHBvcnQgdGVtcGxhdGU8dHlwZW5hbWUgX1RwPgogICAgX1RwCiAgICBf
 X2NtYXRoX3Bvd2VyKF9UcCBfX3gsIHVuc2lnbmVkIGludCBfX24pCiAgICB7CiAgICAgIF9U
 cCBfX3kgPSBfX24gJSAyID8gX194IDogMTsKCiAgICAgIHdoaWxlIChfX24gPj49IDEpCiAg
 ICAgICAgewogICAgICAgICAgX194ID0gX194ICogX194OwogICAgICAgICAgaWYgKF9fbiAl
 IDIpCiAgICAgICAgICAgIF9feSA9IF9feSAqIF9feDsKICAgICAgICB9CgogICAgICByZXR1
 cm4gX195OwogICAgfQp9CgojZW5kaWYKAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAC4vdXNyLwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAwMDQwNzc1ADAwMDMzMDUAMDAxMTYzNwAwMDAwMDAwMDAwMAAwNzU2NDUwMDYz
 MgAwMTA3MDEAIDUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAdXN0YXIgIABtZW5nZWwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAG9zcwAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALi91c3IvaW5jbHVk
 ZS8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAwNDA3NzUAMDAwMzMwNQAwMDEx
 NjM3ADAwMDAwMDAwMDAwADA3NTY0NTAwNjMyADAxMjMyNAAgNQAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB1c3RhciAgAG1lbmdlbAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAb3NzAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAuL3Vzci9pbmNsdWRlL2ZlYXR1cmVzLmgAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAMDEwMDY0NAAwMDAzMzA1ADAwMTE2MzcAMDAwMDAwMjI0NTAAMDc1Mzc3MTUzNDEA
 MDE0MzE2ACAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AHVzdGFyICAAbWVuZ2VsAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABvc3MAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC8qIENvcHlyaWdodCAo
 QykgMTk5MSw5Miw5Myw5NSw5Niw5Nyw5OCw5OSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24s
 IEluYy4KICAgVGhpcyBmaWxlIGlzIHBhcnQgb2YgdGhlIEdOVSBDIExpYnJhcnkuCgogICBU
 aGUgR05VIEMgTGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0
 ZSBpdCBhbmQvb3IKICAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExp
 YnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcwogICBwdWJsaXNoZWQgYnkgdGhlIEZy
 ZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUKICAgTGlj
 ZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KCiAgIFRoZSBH
 TlUgQyBMaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBi
 ZSB1c2VmdWwsCiAgIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRo
 ZSBpbXBsaWVkIHdhcnJhbnR5IG9mCiAgIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZP
 UiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCiAgIExpYnJhcnkgR2VuZXJh
 bCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgoKICAgWW91IHNob3VsZCBoYXZl
 IHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKICAg
 TGljZW5zZSBhbG9uZyB3aXRoIHRoZSBHTlUgQyBMaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09Q
 WUlORy5MSUIuICBJZiBub3QsCiAgIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5k
 YXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSAtIFN1aXRlIDMzMCwKICAgQm9zdG9uLCBN
 QSAwMjExMS0xMzA3LCBVU0EuICAqLwoKI2lmbmRlZglfRkVBVFVSRVNfSAojZGVmaW5lCV9G
 RUFUVVJFU19ICTEKCi8qIFRoZXNlIGFyZSBkZWZpbmVkIGJ5IHRoZSB1c2VyIChvciB0aGUg
 Y29tcGlsZXIpCiAgIHRvIHNwZWNpZnkgdGhlIGRlc2lyZWQgZW52aXJvbm1lbnQ6CgogICBf
 X1NUUklDVF9BTlNJX18JSVNPIFN0YW5kYXJkIEMuCiAgIF9JU09DOTlfU09VUkNFCUV4dGVu
 c2lvbnMgdG8gSVNPIEMgODkgZnJvbSBJU08gQyA5OS4KICAgX0lTT0M5WF9TT1VSQ0UJU2lt
 aWxhciwga2VwdCBmb3IgY29tcGF0aWJpbGl0eS4KICAgX1BPU0lYX1NPVVJDRQlJRUVFIFN0
 ZCAxMDAzLjEuCiAgIF9QT1NJWF9DX1NPVVJDRQlJZiA9PTEsIGxpa2UgX1BPU0lYX1NPVVJD
 RTsgaWYgPj0yIGFkZCBJRUVFIFN0ZCAxMDAzLjI7CgkJCWlmID49MTk5MzA5TCwgYWRkIElF
 RUUgU3RkIDEwMDMuMWItMTk5MzsKCQkJaWYgPj0xOTk1MDZMLCBhZGQgSUVFRSBTdGQgMTAw
 My4xYy0xOTk1CiAgIF9YT1BFTl9TT1VSQ0UJSW5jbHVkZXMgUE9TSVggYW5kIFhQRyB0aGlu
 Z3MuICBTZXQgdG8gNTAwIGlmCgkJCVNpbmdsZSBVbml4IGNvbmZvcm1hbmNlIGlzIHdhbnRl
 ZC4KICAgX1hPUEVOX1NPVVJDRV9FWFRFTkRFRCBYUEcgdGhpbmdzIGFuZCBYL09wZW4gVW5p
 eCBleHRlbnNpb25zLgogICBfTEFSR0VGSUxFX1NPVVJDRQlTb21lIG1vcmUgZnVuY3Rpb25z
 IGZvciBjb3JyZWN0IHN0YW5kYXJkIEkvTy4KICAgX0xBUkdFRklMRTY0X1NPVVJDRQlBZGRp
 dGlvbmFsIGZ1bmN0aW9uYWxpdHkgZnJvbSBMRlMgZm9yIGxhcmdlIGZpbGVzLgogICBfRklM
 RV9PRkZTRVRfQklUUz1OCVNlbGVjdCBkZWZhdWx0IGZpbGVzeXN0ZW0gaW50ZXJmYWNlLgog
 ICBfQlNEX1NPVVJDRQkJSVNPIEMsIFBPU0lYLCBhbmQgNC4zQlNEIHRoaW5ncy4KICAgX1NW
 SURfU09VUkNFCQlJU08gQywgUE9TSVgsIGFuZCBTVklEIHRoaW5ncy4KICAgX0dOVV9TT1VS
 Q0UJCUFsbCBvZiB0aGUgYWJvdmUsIHBsdXMgR05VIGV4dGVuc2lvbnMuCiAgIF9SRUVOVFJB
 TlQJCVNlbGVjdCBhZGRpdGlvbmFsbHkgcmVlbnRyYW50IG9iamVjdC4KICAgX1RIUkVBRF9T
 QUZFCQlTYW1lIGFzIF9SRUVOVFJBTlQsIG9mdGVuIHVzZWQgYnkgb3RoZXIgc3lzdGVtcy4K
 CiAgIFRoZSBgLWFuc2knIHN3aXRjaCB0byB0aGUgR05VIEMgY29tcGlsZXIgZGVmaW5lcyBf
 X1NUUklDVF9BTlNJX18uCiAgIElmIG5vbmUgb2YgdGhlc2UgYXJlIGRlZmluZWQsIHRoZSBk
 ZWZhdWx0IGlzIGFsbCBidXQgX0dOVV9TT1VSQ0UuCiAgIElmIG1vcmUgdGhhbiBvbmUgb2Yg
 dGhlc2UgYXJlIGRlZmluZWQsIHRoZXkgYWNjdW11bGF0ZS4KICAgRm9yIGV4YW1wbGUgX19T
 VFJJQ1RfQU5TSV9fLCBfUE9TSVhfU09VUkNFIGFuZCBfUE9TSVhfQ19TT1VSQ0UKICAgdG9n
 ZXRoZXIgZ2l2ZSB5b3UgSVNPIEMsIDEwMDMuMSwgYW5kIDEwMDMuMiwgYnV0IG5vdGhpbmcg
 ZWxzZS4KCiAgIFRoZXNlIGFyZSBkZWZpbmVkIGJ5IHRoaXMgZmlsZSBhbmQgYXJlIHVzZWQg
 YnkgdGhlCiAgIGhlYWRlciBmaWxlcyB0byBkZWNpZGUgd2hhdCB0byBkZWNsYXJlIG9yIGRl
 ZmluZToKCiAgIF9fVVNFX0lTT0M5WAkJRGVmaW5lIElTTyBDIDlYIHRoaW5ncy4KICAgX19V
 U0VfUE9TSVgJCURlZmluZSBJRUVFIFN0ZCAxMDAzLjEgdGhpbmdzLgogICBfX1VTRV9QT1NJ
 WDIJCURlZmluZSBJRUVFIFN0ZCAxMDAzLjIgdGhpbmdzLgogICBfX1VTRV9QT1NJWDE5OTMw
 OQlEZWZpbmUgSUVFRSBTdGQgMTAwMy4xLCBhbmQgLjFiIHRoaW5ncy4KICAgX19VU0VfUE9T
 SVgxOTk1MDYJRGVmaW5lIElFRUUgU3RkIDEwMDMuMSwgLjFiLCAuMWMgYW5kIC4xaSB0aGlu
 Z3MuCiAgIF9fVVNFX1hPUEVOCQlEZWZpbmUgWFBHIHRoaW5ncy4KICAgX19VU0VfWE9QRU5f
 RVhURU5ERUQJRGVmaW5lIFgvT3BlbiBVbml4IHRoaW5ncy4KICAgX19VU0VfVU5JWDk4CQlE
 ZWZpbmUgU2luZ2xlIFVuaXggVjIgdGhpbmdzLgogICBfX1VTRV9MQVJHRUZJTEU2NAlEZWZp
 bmUgTEZTIHRoaW5ncyB3aXRoIHNlcGFyYXRlIG5hbWVzLgogICBfX1VTRV9GSUxFX09GRlNF
 VDY0CURlZmluZSA2NGJpdCBpbnRlcmZhY2UgYXMgZGVmYXVsdC4KICAgX19VU0VfQlNECQlE
 ZWZpbmUgNC4zQlNEIHRoaW5ncy4KICAgX19VU0VfU1ZJRAkJRGVmaW5lIFNWSUQgdGhpbmdz
 LgogICBfX1VTRV9NSVNDCQlEZWZpbmUgdGhpbmdzIGNvbW1vbiB0byBCU0QgYW5kIFN5c3Rl
 bSBWIFVuaXguCiAgIF9fVVNFX0dOVQkJRGVmaW5lIEdOVSBleHRlbnNpb25zLgogICBfX1VT
 RV9SRUVOVFJBTlQJRGVmaW5lIHJlZW50cmFudC90aHJlYWQtc2FmZSAqX3IgZnVuY3Rpb25z
 LgogICBfX0ZBVk9SX0JTRAkJRmF2b3IgNC4zQlNEIHRoaW5ncyBpbiBjYXNlcyBvZiBjb25m
 bGljdC4KCiAgIFRoZSBtYWNyb3MgYF9fR05VX0xJQlJBUllfXycsIGBfX0dMSUJDX18nLCBh
 bmQgYF9fR0xJQkNfTUlOT1JfXycgYXJlCiAgIGRlZmluZWQgYnkgdGhpcyBmaWxlIHVuY29u
 ZGl0aW9uYWxseS4gIGBfX0dOVV9MSUJSQVJZX18nIGlzIHByb3ZpZGVkCiAgIG9ubHkgZm9y
 IGNvbXBhdGliaWxpdHkuICBBbGwgbmV3IGNvZGUgc2hvdWxkIHVzZSB0aGUgb3RoZXIgc3lt
 Ym9scwogICB0byB0ZXN0IGZvciBmZWF0dXJlcy4KCiAgIEFsbCBtYWNyb3MgbGlzdGVkIGFi
 b3ZlIGFzIHBvc3NpYmx5IGJlaW5nIGRlZmluZWQgYnkgdGhpcyBmaWxlIGFyZQogICBleHBs
 aWNpdGx5IHVuZGVmaW5lZCBpZiB0aGV5IGFyZSBub3QgZXhwbGljaXRseSBkZWZpbmVkLgog
 ICBGZWF0dXJlLXRlc3QgbWFjcm9zIHRoYXQgYXJlIG5vdCBkZWZpbmVkIGJ5IHRoZSB1c2Vy
 IG9yIGNvbXBpbGVyCiAgIGJ1dCBhcmUgaW1wbGllZCBieSB0aGUgb3RoZXIgZmVhdHVyZS10
 ZXN0IG1hY3JvcyBkZWZpbmVkIChvciBieSB0aGUKICAgbGFjayBvZiBhbnkgZGVmaW5pdGlv
 bnMpIGFyZSBkZWZpbmVkIGJ5IHRoZSBmaWxlLiAgKi8KCgovKiBVbmRlZmluZSBldmVyeXRo
 aW5nLCBzbyB3ZSBnZXQgYSBjbGVhbiBzbGF0ZS4gICovCiN1bmRlZglfX1VTRV9JU09DOVgK
 I3VuZGVmCV9fVVNFX1BPU0lYCiN1bmRlZglfX1VTRV9QT1NJWDIKI3VuZGVmCV9fVVNFX1BP
 U0lYMTk5MzA5CiN1bmRlZglfX1VTRV9QT1NJWDE5OTUwNgojdW5kZWYJX19VU0VfWE9QRU4K
 I3VuZGVmCV9fVVNFX1hPUEVOX0VYVEVOREVECiN1bmRlZglfX1VTRV9VTklYOTgKI3VuZGVm
 CV9fVVNFX0xBUkdFRklMRQojdW5kZWYJX19VU0VfTEFSR0VGSUxFNjQKI3VuZGVmCV9fVVNF
 X0ZJTEVfT0ZGU0VUNjQKI3VuZGVmCV9fVVNFX0JTRAojdW5kZWYJX19VU0VfU1ZJRAojdW5k
 ZWYJX19VU0VfTUlTQwojdW5kZWYJX19VU0VfR05VCiN1bmRlZglfX1VTRV9SRUVOVFJBTlQK
 I3VuZGVmCV9fRkFWT1JfQlNECiN1bmRlZglfX0tFUk5FTF9TVFJJQ1RfTkFNRVMKCi8qIFN1
 cHByZXNzIGtlcm5lbC1uYW1lIHNwYWNlIHBvbGx1dGlvbiB1bmxlc3MgdXNlciBleHByZXNz
 ZWRseSBhc2tzCiAgIGZvciBpdC4gICovCiNpZm5kZWYgX0xPT1NFX0tFUk5FTF9OQU1FUwoj
 IGRlZmluZSBfX0tFUk5FTF9TVFJJQ1RfTkFNRVMKI2VuZGlmCgovKiBBbHdheXMgdXNlIElT
 TyBDIHRoaW5ncy4gICovCiNkZWZpbmUJX19VU0VfQU5TSQkxCgoKLyogSWYgX0JTRF9TT1VS
 Q0Ugd2FzIGRlZmluZWQgYnkgdGhlIHVzZXIsIGZhdm9yIEJTRCBvdmVyIFBPU0lYLiAgKi8K
 I2lmIGRlZmluZWQgX0JTRF9TT1VSQ0UgJiYgXAogICAgIShkZWZpbmVkIF9QT1NJWF9TT1VS
 Q0UgfHwgZGVmaW5lZCBfUE9TSVhfQ19TT1VSQ0UgfHwgXAogICAgICBkZWZpbmVkIF9YT1BF
 Tl9TT1VSQ0UgfHwgZGVmaW5lZCBfWE9QRU5fU09VUkNFX0VYVEVOREVEIHx8IFwKICAgICAg
 ZGVmaW5lZCBfR05VX1NPVVJDRSB8fCBkZWZpbmVkIF9TVklEX1NPVVJDRSkKIyBkZWZpbmUg
 X19GQVZPUl9CU0QJMQojZW5kaWYKCi8qIElmIF9HTlVfU09VUkNFIHdhcyBkZWZpbmVkIGJ5
 IHRoZSB1c2VyLCB0dXJuIG9uIGFsbCB0aGUgb3RoZXIgZmVhdHVyZXMuICAqLwojaWZkZWYg
 X0dOVV9TT1VSQ0UKIyB1bmRlZiAgX0lTT0M5WF9TT1VSQ0UKIyBkZWZpbmUgX0lTT0M5WF9T
 T1VSQ0UJMQojIHVuZGVmICBfUE9TSVhfU09VUkNFCiMgZGVmaW5lIF9QT1NJWF9TT1VSQ0UJ
 MQojIHVuZGVmICBfUE9TSVhfQ19TT1VSQ0UKIyBkZWZpbmUgX1BPU0lYX0NfU09VUkNFCTE5
 OTUwNkwKIyB1bmRlZiAgX1hPUEVOX1NPVVJDRQojIGRlZmluZSBfWE9QRU5fU09VUkNFCTUw
 MAojIHVuZGVmICBfWE9QRU5fU09VUkNFX0VYVEVOREVECiMgZGVmaW5lIF9YT1BFTl9TT1VS
 Q0VfRVhURU5ERUQJMQojIHVuZGVmCSBfTEFSR0VGSUxFNjRfU09VUkNFCiMgZGVmaW5lIF9M
 QVJHRUZJTEU2NF9TT1VSQ0UJMQojIHVuZGVmICBfQlNEX1NPVVJDRQojIGRlZmluZSBfQlNE
 X1NPVVJDRQkxCiMgdW5kZWYgIF9TVklEX1NPVVJDRQojIGRlZmluZSBfU1ZJRF9TT1VSQ0UJ
 MQojZW5kaWYKCi8qIElmIG5vdGhpbmcgKG90aGVyIHRoYW4gX0dOVV9TT1VSQ0UpIGlzIGRl
 ZmluZWQsCiAgIGRlZmluZSBfQlNEX1NPVVJDRSBhbmQgX1NWSURfU09VUkNFLiAgKi8KI2lm
 ICghZGVmaW5lZCBfX1NUUklDVF9BTlNJX18gJiYgIWRlZmluZWQgX0lTT0M5WF9TT1VSQ0Ug
 JiYgXAogICAgICFkZWZpbmVkIF9QT1NJWF9TT1VSQ0UgJiYgIWRlZmluZWQgX1BPU0lYX0Nf
 U09VUkNFICYmIFwKICAgICAhZGVmaW5lZCBfWE9QRU5fU09VUkNFICYmICFkZWZpbmVkIF9Y
 T1BFTl9TT1VSQ0VfRVhURU5ERUQgJiYgXAogICAgICFkZWZpbmVkIF9CU0RfU09VUkNFICYm
 ICFkZWZpbmVkIF9TVklEX1NPVVJDRSkKIyBkZWZpbmUgX0JTRF9TT1VSQ0UJMQojIGRlZmlu
 ZSBfU1ZJRF9TT1VSQ0UJMQojZW5kaWYKCi8qIFRoaXMgaXMgdG8gZW5hYmxlIHRoZSBJU08g
 QyA5eCBleHRlbnNpb24uICBJdCB3aWxsIGdvIGF3YXkgYXMgc29vbgogICBhcyB0aGlzIHN0
 YW5kYXJkIGlzIG9mZmljaWFsbHkgcmVsZWFzZWQuICAqLwojaWYgZGVmaW5lZCBfSVNPQzlY
 X1NPVVJDRSB8fCBkZWZpbmVkIF9JU09DOTlfU09VUkNFCiMgZGVmaW5lIF9fVVNFX0lTT0M5
 WAkxCiNlbmRpZgoKLyogSWYgbm9uZSBvZiB0aGUgQU5TSS9QT1NJWCBtYWNyb3MgYXJlIGRl
 ZmluZWQsIHVzZSBQT1NJWC4xIGFuZCBQT1NJWC4yCiAgIChhbmQgSUVFRSBTdGQgMTAwMy4x
 Yi0xOTkzIHVubGVzcyBfWE9QRU5fU09VUkNFIGlzIGRlZmluZWQpLiAgKi8KI2lmICghZGVm
 aW5lZCBfX1NUUklDVF9BTlNJX18gJiYgIWRlZmluZWQgX1BPU0lYX1NPVVJDRSAmJiBcCiAg
 ICAgIWRlZmluZWQgX1BPU0lYX0NfU09VUkNFKQojIGRlZmluZSBfUE9TSVhfU09VUkNFCTEK
 IyBpZiBkZWZpbmVkIF9YT1BFTl9TT1VSQ0UgJiYgKF9YT1BFTl9TT1VSQ0UgLSAwKSAhPSA1
 MDAKIyAgZGVmaW5lIF9QT1NJWF9DX1NPVVJDRQkyCiMgZWxzZQojICBkZWZpbmUgX1BPU0lY
 X0NfU09VUkNFCTE5OTUwNkwKIyBlbmRpZgojZW5kaWYKCiNpZiBkZWZpbmVkIF9QT1NJWF9T
 T1VSQ0UgfHwgX1BPU0lYX0NfU09VUkNFID49IDEgfHwgZGVmaW5lZCBfWE9QRU5fU09VUkNF
 CiMgZGVmaW5lIF9fVVNFX1BPU0lYCTEKI2VuZGlmCgojaWYgZGVmaW5lZCBfUE9TSVhfQ19T
 T1VSQ0UgJiYgX1BPU0lYX0NfU09VUkNFID49IDIgfHwgZGVmaW5lZCBfWE9QRU5fU09VUkNF
 CiMgZGVmaW5lIF9fVVNFX1BPU0lYMgkxCiNlbmRpZgoKI2lmIChfUE9TSVhfQ19TT1VSQ0Ug
 LSAwKSA+PSAxOTkzMDlMCiMgZGVmaW5lIF9fVVNFX1BPU0lYMTk5MzA5CTEKI2VuZGlmCgoj
 aWYgKF9QT1NJWF9DX1NPVVJDRSAtIDApID49IDE5OTUwNkwKIyBkZWZpbmUgX19VU0VfUE9T
 SVgxOTk1MDYJMQojZW5kaWYKCiNpZmRlZglfWE9QRU5fU09VUkNFCiMgZGVmaW5lIF9fVVNF
 X1hPUEVOCTEKIyBpZiAoX1hPUEVOX1NPVVJDRSAtIDApID09IDUwMAojICBkZWZpbmUgX19V
 U0VfWE9QRU5fRVhURU5ERUQJMQojICBkZWZpbmUgX19VU0VfVU5JWDk4CTEKIyAgdW5kZWYg
 X0xBUkdFRklMRV9TT1VSQ0UKIyAgZGVmaW5lIF9MQVJHRUZJTEVfU09VUkNFCTEKIyBlbHNl
 CiMgIGlmZGVmIF9YT1BFTl9TT1VSQ0VfRVhURU5ERUQKIyAgIGRlZmluZSBfX1VTRV9YT1BF
 Tl9FWFRFTkRFRAkxCiMgIGVuZGlmCiMgZW5kaWYKI2VuZGlmCgojaWZkZWYgX0xBUkdFRklM
 RV9TT1VSQ0UKIyBkZWZpbmUgX19VU0VfTEFSR0VGSUxFCTEKI2VuZGlmCgojaWZkZWYgX0xB
 UkdFRklMRTY0X1NPVVJDRQojIGRlZmluZSBfX1VTRV9MQVJHRUZJTEU2NAkxCiNlbmRpZgoK
 I2lmIGRlZmluZWQgX0ZJTEVfT0ZGU0VUX0JJVFMgJiYgX0ZJTEVfT0ZGU0VUX0JJVFMgPT0g
 NjQKIyBkZWZpbmUgX19VU0VfRklMRV9PRkZTRVQ2NAkxCiNlbmRpZgoKI2lmIGRlZmluZWQg
 X0JTRF9TT1VSQ0UgfHwgZGVmaW5lZCBfU1ZJRF9TT1VSQ0UKIyBkZWZpbmUgX19VU0VfTUlT
 QwkxCiNlbmRpZgoKI2lmZGVmCV9CU0RfU09VUkNFCiMgZGVmaW5lIF9fVVNFX0JTRAkxCiNl
 bmRpZgoKI2lmZGVmCV9TVklEX1NPVVJDRQojIGRlZmluZSBfX1VTRV9TVklECTEKI2VuZGlm
 CgojaWZkZWYJX0dOVV9TT1VSQ0UKIyBkZWZpbmUgX19VU0VfR05VCTEKI2VuZGlmCgojaWYg
 ZGVmaW5lZCBfUkVFTlRSQU5UIHx8IGRlZmluZWQgX1RIUkVBRF9TQUZFCiMgZGVmaW5lIF9f
 VVNFX1JFRU5UUkFOVAkxCiNlbmRpZgoKLyogV2UgZG8gc3VwcG9ydCB0aGUgSUVDIDU1OSBt
 YXRoIGZ1bmN0aW9uYWxpdHksIHJlYWwgYW5kIGNvbXBsZXguICAqLwojZGVmaW5lIF9fU1RE
 Q19JRUNfNTU5X18JCTEKI2RlZmluZSBfX1NURENfSUVDXzU1OV9DT01QTEVYX18JMQoKLyog
 VGhpcyBtYWNybyBpbmRpY2F0ZXMgdGhhdCB0aGUgaW5zdGFsbGVkIGxpYnJhcnkgaXMgdGhl
 IEdOVSBDIExpYnJhcnkuCiAgIEZvciBoaXN0b3JpYyByZWFzb25zIHRoZSB2YWx1ZSBub3cg
 aXMgNiBhbmQgdGhpcyB3aWxsIHN0YXkgZnJvbSBub3cKICAgb24uICBUaGUgdXNlIG9mIHRo
 aXMgdmFyaWFibGUgaXMgZGVwcmVjYXRlZC4gIFVzZSBfX0dMSUJDX18gYW5kCiAgIF9fR0xJ
 QkNfTUlOT1JfXyBub3cgKHNlZSBiZWxvdykgd2hlbiB5b3Ugd2FudCB0byB0ZXN0IGZvciBh
 IHNwZWNpZmljCiAgIEdOVSBDIGxpYnJhcnkgdmVyc2lvbiBhbmQgdXNlIHRoZSB2YWx1ZXMg
 aW4gPGdudS9saWItbmFtZXMuaD4gdG8gZ2V0CiAgIHRoZSBzb25hbWVzIG9mIHRoZSBzaGFy
 ZWQgbGlicmFyaWVzLiAgKi8KI3VuZGVmICBfX0dOVV9MSUJSQVJZX18KI2RlZmluZSBfX0dO
 VV9MSUJSQVJZX18gNgoKLyogTWFqb3IgYW5kIG1pbm9yIHZlcnNpb24gbnVtYmVyIG9mIHRo
 ZSBHTlUgQyBsaWJyYXJ5IHBhY2thZ2UuICBVc2UKICAgdGhlc2UgbWFjcm9zIHRvIHRlc3Qg
 Zm9yIGZlYXR1cmVzIGluIHNwZWNpZmljIHJlbGVhc2VzLiAgKi8KI2RlZmluZQlfX0dMSUJD
 X18JMgojZGVmaW5lCV9fR0xJQkNfTUlOT1JfXwkxCgovKiBUaGlzIGlzIGhlcmUgb25seSBi
 ZWNhdXNlIGV2ZXJ5IGhlYWRlciBmaWxlIGFscmVhZHkgaW5jbHVkZXMgdGhpcyBvbmUuICAq
 LwojaWZuZGVmIF9fQVNTRU1CTEVSX18KIyBpbmNsdWRlIDxzeXMvY2RlZnMuaD4KCi8qIElm
 IHdlIGRvbid0IGhhdmUgX19SRURJUkVDVCwgcHJvdG90eXBlcyB3aWxsIGJlIG1pc3Npbmcg
 aWYKICAgX19VU0VfRklMRV9PRkZTRVQ2NCBidXQgbm90IF9fVVNFX0xBUkdFRklMRVs2NF0u
 ICovCiMgaWYgZGVmaW5lZCBfX1VTRV9GSUxFX09GRlNFVDY0ICYmICFkZWZpbmVkIF9fUkVE
 SVJFQ1QKIyAgZGVmaW5lIF9fVVNFX0xBUkdFRklMRQojICBkZWZpbmUgX19VU0VfTEFSR0VG
 SUxFNjQKIyBlbmRpZgoKI2VuZGlmCS8qICFBU1NFTUJMRVIgKi8KCi8qIERlY2lkZSB3aGV0
 aGVyIHdlIGNhbiBkZWZpbmUgJ2V4dGVybiBpbmxpbmUnIGZ1bmN0aW9ucyBpbiBoZWFkZXJz
 LiAgKi8KI2lmIGRlZmluZWQgX19HTlVDX18gJiYgKF9fR05VQ19fID4gMiB8fCBfX0dOVUNf
 XyA9PSAyICYmIF9fR05VQ19NSU5PUl9fID49IDcpXAogICAgJiYgZGVmaW5lZCBfX09QVElN
 SVpFX18gJiYgIWRlZmluZWQgX19PUFRJTUlaRV9TSVpFX18KIyBkZWZpbmUgX19VU0VfRVhU
 RVJOX0lOTElORVMJMQojZW5kaWYKCi8qIFRoaXMgaXMgaGVyZSBvbmx5IGJlY2F1c2UgZXZl
 cnkgaGVhZGVyIGZpbGUgYWxyZWFkeSBpbmNsdWRlcyB0aGlzIG9uZS4gICovCiNpZm5kZWYg
 X0xJQkMKLyogR2V0IHRoZSBkZWZpbml0aW9ucyBvZiBhbGwgdGhlIGFwcHJvcHJpYXRlIGBf
 X3N0dWJfRlVOQ1RJT04nIHN5bWJvbHMuCiAgIDxnbnUvc3R1YnMuaD4gY29udGFpbnMgYCNk
 ZWZpbmUgX19zdHViX0ZVTkNUSU9OJyB3aGVuIEZVTkNUSU9OIGlzIGEgc3R1YgogICB3aGlj
 aCB3aWxsIGFsd2F5cyByZXR1cm4gZmFpbHVyZSAoYW5kIHNldCBlcnJubyB0byBFTk9TWVMp
 LgoKICAgV2UgYXZvaWQgaW5jbHVkaW5nIDxnbnUvc3R1YnMuaD4gd2hlbiBjb21waWxpbmcg
 dGhlIEMgbGlicmFyeSBpdHNlbGYgdG8KICAgYXZvaWQgYSBkZXBlbmRlbmN5IGxvb3AuICBz
 dHVicy5oIGRlcGVuZHMgb24gZXZlcnkgb2JqZWN0IGZpbGUuICBJZgogICB0aGlzICNpbmNs
 dWRlIHdlcmUgZG9uZSBmb3IgdGhlIGxpYnJhcnkgc291cmNlIGNvZGUsIHRoZW4gZXZlcnkg
 b2JqZWN0CiAgIGZpbGUgd291bGQgZGVwZW5kIG9uIHN0dWJzLmguICAqLwoKIyBpbmNsdWRl
 IDxnbnUvc3R1YnMuaD4KI2VuZGlmCgojZW5kaWYJLyogZmVhdHVyZXMuaCAgKi8KAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALi91c3Iv
 aW5jbHVkZS9zeXMvAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAwNDA3NzUAMDAwMzMw
 NQAwMDExNjM3ADAwMDAwMDAwMDAwADA3NTY0NTAwNjMyADAxMzE0MgAgNQAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB1c3RhciAgAG1lbmdlbAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAb3NzAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAuL3Vzci9pbmNsdWRlL3N5cy9jZGVmcy5oAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAMDEwMDY0NAAwMDAzMzA1ADAwMTE2MzcAMDAwMDAwMTE1MjcAMDc1Mzc3
 MTU0NTQAMDE0NDEyACAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAHVzdGFyICAAbWVuZ2VsAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABvc3MAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC8qIENvcHly
 aWdodCAoQykgMTk5Miw5Myw5NCw5NSw5Niw5Nyw5OCw5OSBGcmVlIFNvZnR3YXJlIEZvdW5k
 YXRpb24sIEluYy4KICAgVGhpcyBmaWxlIGlzIHBhcnQgb2YgdGhlIEdOVSBDIExpYnJhcnku
 CgogICBUaGUgR05VIEMgTGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlz
 dHJpYnV0ZSBpdCBhbmQvb3IKICAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUg
 R05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcwogICBwdWJsaXNoZWQgYnkg
 dGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUK
 ICAgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KCiAg
 IFRoZSBHTlUgQyBMaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQg
 d2lsbCBiZSB1c2VmdWwsCiAgIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBl
 dmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCiAgIE1FUkNIQU5UQUJJTElUWSBvciBGSVRO
 RVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCiAgIExpYnJhcnkg
 R2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgoKICAgWW91IHNob3Vs
 ZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJs
 aWMKICAgTGljZW5zZSBhbG9uZyB3aXRoIHRoZSBHTlUgQyBMaWJyYXJ5OyBzZWUgdGhlIGZp
 bGUgQ09QWUlORy5MSUIuICBJZiBub3QsCiAgIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJl
 IEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSAtIFN1aXRlIDMzMCwKICAgQm9z
 dG9uLCBNQSAwMjExMS0xMzA3LCBVU0EuICAqLwoKI2lmbmRlZglfU1lTX0NERUZTX0gKI2Rl
 ZmluZQlfU1lTX0NERUZTX0gJMQoKLyogV2UgYXJlIGFsbW9zdCBhbHdheXMgaW5jbHVkZWQg
 ZnJvbSBmZWF0dXJlcy5oLiAqLwojaWZuZGVmIF9GRUFUVVJFU19ICiNpbmNsdWRlIDxmZWF0
 dXJlcy5oPgojZW5kaWYKCi8qIFNvbWUgdXNlciBoZWFkZXIgZmlsZSBtaWdodCBoYXZlIGRl
 ZmluZWQgdGhpcyBiZWZvcmUuICAqLwojdW5kZWYJX19QCiN1bmRlZglfX1BNVAoKI2lmZGVm
 IF9fR05VQ19fCgovKiBHQ0MgY2FuIGFsd2F5cyBncm9rIHByb3RvdHlwZXMuICBGb3IgQysr
 IHByb2dyYW1zIHdlIGFkZCB0aHJvdygpCiAgIHRvIGhlbHAgaXQgb3B0aW1pemUgdGhlIGZ1
 bmN0aW9uIGNhbGxzLiAgQnV0IHRoaXMgd29ya3Mgb25seSB3aXRoCiAgIGdjYyAyLjgueCBh
 bmQgZWdjcy4gICovCiMgaWYgZGVmaW5lZCBfX2NwbHVzcGx1cyAmJiAoX19HTlVDX18gPj0g
 MyB8fCBfX0dOVUNfTUlOT1JfXyA+PSA4KQojICBkZWZpbmUgX19USFJPVwl0aHJvdyAoKQoj
 IGVsc2UKIyAgZGVmaW5lIF9fVEhST1cKIyBlbmRpZgojIGRlZmluZSBfX1AoYXJncykJYXJn
 cyBfX1RIUk9XCi8qIFRoaXMgbWFjcm8gd2lsbCBiZSB1c2VkIGZvciBmdW5jdGlvbnMgd2hp
 Y2ggbWlnaHQgdGFrZSBDKysgY2FsbGJhY2sKICAgZnVuY3Rpb25zLiAgKi8KIyBkZWZpbmUg
 X19QTVQoYXJncykJYXJncwojIGRlZmluZSBfX0RPVFMJCSwgLi4uCgojZWxzZQkvKiBOb3Qg
 R0NDLiAgKi8KCiMgZGVmaW5lIF9faW5saW5lCQkvKiBObyBpbmxpbmUgZnVuY3Rpb25zLiAg
 Ki8KCiMgaWYgKGRlZmluZWQgX19TVERDX18gJiYgX19TVERDX18pIHx8IGRlZmluZWQgX19j
 cGx1c3BsdXMKCiMgIGRlZmluZSBfX1AoYXJncykJYXJncwojICBkZWZpbmUgX19QTVQoYXJn
 cykJYXJncwojICBkZWZpbmUgX19jb25zdAljb25zdAojICBkZWZpbmUgX19zaWduZWQJc2ln
 bmVkCiMgIGRlZmluZSBfX3ZvbGF0aWxlCXZvbGF0aWxlCiMgIGRlZmluZSBfX0RPVFMJLCAu
 Li4KCiMgZWxzZQkvKiBOb3QgQU5TSSBDIG9yIEMrKy4gICovCgojICBkZWZpbmUgX19QKGFy
 Z3MpCSgpCS8qIE5vIHByb3RvdHlwZXMuICAqLwojICBkZWZpbmUgX19QTVQoYXJncykJKCkK
 IyAgZGVmaW5lIF9fY29uc3QJCS8qIE5vIEFOU0kgQyBrZXl3b3Jkcy4gICovCiMgIGRlZmlu
 ZSBfX3NpZ25lZAojICBkZWZpbmUgX192b2xhdGlsZQojICBkZWZpbmUgX19ET1RTCgojIGVu
 ZGlmCS8qIEFOU0kgQyBvciBDKysuICAqLwoKI2VuZGlmCS8qIEdDQy4gICovCgovKiBGb3Ig
 dGhlc2UgdGhpbmdzLCBHQ0MgYmVoYXZlcyB0aGUgQU5TSSB3YXkgbm9ybWFsbHksCiAgIGFu
 ZCB0aGUgbm9uLUFOU0kgd2F5IHVuZGVyIC10cmFkaXRpb25hbC4gICovCgojaWYgZGVmaW5l
 ZCBfX1NURENfXyAmJiBfX1NURENfXwoKIyBkZWZpbmUgX19DT05DQVQoeCx5KQl4ICMjIHkK
 IyBkZWZpbmUgX19TVFJJTkcoeCkJI3gKCi8qIFRoaXMgaXMgbm90IGEgdHlwZWRlZiBzbyBg
 Y29uc3QgX19wdHJfdCcgZG9lcyB0aGUgcmlnaHQgdGhpbmcuICAqLwojIGRlZmluZSBfX3B0
 cl90IHZvaWQgKgojIGRlZmluZSBfX2xvbmdfZG91YmxlX3QgIGxvbmcgZG91YmxlCgojZWxz
 ZQoKIyBkZWZpbmUgX19DT05DQVQoeCx5KQl4LyoqL3kKIyBkZWZpbmUgX19TVFJJTkcoeCkJ
 IngiCgojIGRlZmluZSBfX3B0cl90IGNoYXIgKgojIGRlZmluZSBfX2xvbmdfZG91YmxlX3Qg
 IGxvbmcgZG91YmxlCgovKiBUaGUgQlNEIGhlYWRlciBmaWxlcyB1c2UgdGhlIEFOU0kga2V5
 d29yZHMgdW5tb2RpZmllZCAodGhpcyBtZWFucyB0aGF0CiAgIG9sZCBwcm9ncmFtcyBtYXkg
 bG9zZSBpZiB0aGV5IHVzZSB0aGUgbmV3IGtleXdvcmRzIGFzIGlkZW50aWZpZXJzKSwgYnV0
 CiAgIHRob3NlIG5hbWVzIGFyZSBub3QgYXZhaWxhYmxlIHVuZGVyIC10cmFkaXRpb25hbC4g
 IFdlIGRlZmluZSB0aGVtIHRvCiAgIHRoZWlyIF9fIHZlcnNpb25zLCB3aGljaCBhcmUgdGFr
 ZW4gY2FyZSBvZiBhYm92ZS4gICovCiNpZmRlZglfX1VTRV9CU0QKIyBkZWZpbmUgY29uc3QJ
 CV9fY29uc3QKIyBkZWZpbmUgc2lnbmVkCQlfX3NpZ25lZAojIGRlZmluZSB2b2xhdGlsZQlf
 X3ZvbGF0aWxlCiNlbmRpZgoKI2VuZGlmCS8qIF9fU1REQ19fICovCgoKLyogQysrIG5lZWRz
 IHRvIGtub3cgdGhhdCB0eXBlcyBhbmQgZGVjbGFyYXRpb25zIGFyZSBDLCBub3QgQysrLiAg
 Ki8KI2lmZGVmCV9fY3BsdXNwbHVzCiMgZGVmaW5lIF9fQkVHSU5fREVDTFMJZXh0ZXJuICJD
 IiB7CiMgZGVmaW5lIF9fRU5EX0RFQ0xTCX0KI2Vsc2UKIyBkZWZpbmUgX19CRUdJTl9ERUNM
 UwojIGRlZmluZSBfX0VORF9ERUNMUwojZW5kaWYKCi8qIF9fYXNtX18gKCJ4eXoiKSBpcyB1
 c2VkIHRocm91Z2hvdXQgdGhlIGhlYWRlcnMgdG8gcmVuYW1lIGZ1bmN0aW9ucwogICBhdCB0
 aGUgYXNzZW1ibHkgbGFuZ3VhZ2UgbGV2ZWwuICBUaGlzIGlzIHdyYXBwZWQgYnkgdGhlIF9f
 UkVESVJFQ1QKICAgbWFjcm8sIGluIG9yZGVyIHRvIHN1cHBvcnQgY29tcGlsZXJzIHRoYXQg
 Y2FuIGRvIHRoaXMgc29tZSBvdGhlcgogICB3YXkuICBXaGVuIGNvbXBpbGVycyBkb24ndCBz
 dXBwb3J0IGFzbS1uYW1lcyBhdCBhbGwsIHdlIGhhdmUgdG8gZG8KICAgcHJlcHJvY2Vzc29y
 IHRyaWNrcyBpbnN0ZWFkICh3aGljaCBkb24ndCBoYXZlIGV4YWN0bHkgdGhlIHJpZ2h0CiAg
 IHNlbWFudGljcywgYnV0IGl0J3MgdGhlIGJlc3Qgd2UgY2FuIGRvKS4KCiAgIEV4YW1wbGU6
 CiAgIGludCBfX1JFRElSRUNUKHNldHBncnAsIF9fUCgoX19waWRfdCBwaWQsIF9fcGlkX3Qg
 cGdycCkpLCBzZXRwZ2lkKTsgKi8KCiNpZiBkZWZpbmVkIF9fR05VQ19fICYmIF9fR05VQ19f
 ID49IDIKCiMgZGVmaW5lIF9fUkVESVJFQ1QobmFtZSwgcHJvdG8sIGFsaWFzKSBuYW1lIHBy
 b3RvIF9fYXNtX18gKF9fQVNNTkFNRSAoI2FsaWFzKSkKIyBkZWZpbmUgX19BU01OQU1FKGNu
 YW1lKSAgX19BU01OQU1FMiAoX19VU0VSX0xBQkVMX1BSRUZJWF9fLCBjbmFtZSkKIyBkZWZp
 bmUgX19BU01OQU1FMihwcmVmaXgsIGNuYW1lKSBfX1NUUklORyAocHJlZml4KSBjbmFtZQoK
 LyoKI2VsaWYgX19TT01FX09USEVSX0NPTVBJTEVSX18KCiMgZGVmaW5lIF9fYXR0cmlidXRl
 X18oeHl6KQojIGRlZmluZSBfX1JFRElSRUNUKG5hbWUsIHByb3RvLCBhbGlhcykgbmFtZSBw
 cm90bzsgXAoJX1ByYWdtYSgibGV0ICIgI25hbWUgIiA9ICIgI2FsaWFzKQoqLwojZW5kaWYK
 Ci8qIEdDQyBoYXMgdmFyaW91cyB1c2VmdWwgZGVjbGFyYXRpb25zIHRoYXQgY2FuIGJlIG1h
 ZGUgd2l0aCB0aGUKICAgYF9fYXR0cmlidXRlX18nIHN5bnRheC4gIEFsbCBvZiB0aGUgd2F5
 cyB3ZSB1c2UgdGhpcyBkbyBmaW5lIGlmCiAgIHRoZXkgYXJlIG9taXR0ZWQgZm9yIGNvbXBp
 bGVycyB0aGF0IGRvbid0IHVuZGVyc3RhbmQgaXQuICovCiNpZiAhZGVmaW5lZCBfX0dOVUNf
 XyB8fCBfX0dOVUNfXyA8IDIKCiMgZGVmaW5lIF9fYXR0cmlidXRlX18oeHl6KQkvKiBJZ25v
 cmUuICovCgojZW5kaWYKCi8qIEl0IGlzIHBvc3NpYmxlIHRvIGNvbXBpbGUgY29udGFpbmlu
 ZyBHQ0MgZXh0ZW5zaW9ucyBldmVuIGlmIEdDQyBpcwogICBydW4gaW4gcGVkYW50aWMgbW9k
 ZSBpZiB0aGUgdXNlcyBhcmUgY2FyZWZ1bGx5IG1hcmtlZCB1c2luZyB0aGUKICAgYF9fZXh0
 ZW5zaW9uX18nIGtleXdvcmQuICBCdXQgdGhpcyBpcyBub3QgZ2VuZXJhbGx5IGF2YWlsYWJs
 ZSBiZWZvcmUKICAgdmVyc2lvbiAyLjguICAqLwojaWYgIWRlZmluZWQgX19HTlVDX18gfHwg
 X19HTlVDX18gPCAyIHx8IChfX0dOVUNfXyA9PSAyICYmIF9fR05VQ19NSU5PUl9fIDwgOCkK
 CiMgZGVmaW5lIF9fZXh0ZW5zaW9uX18JCS8qIElnbm9yZSAqLwoKI2VuZGlmCgovKiBfX3Jl
 c3RyaWN0IGlzIGtub3duIGluIEVHQ1MgMS4yIGFuZCBhYm92ZS4gKi8KI2lmICFkZWZpbmVk
 IF9fR05VQ19fIHx8IF9fR05VQ19fIDwgMiB8fCAoX19HTlVDX18gPT0gMiAmJiBfX0dOVUNf
 TUlOT1JfXyA8IDkyKQoKIyBkZWZpbmUgX19yZXN0cmljdAkvKiBJZ25vcmUgKi8KCiNlbmRp
 ZgoKI2VuZGlmCSAvKiBzeXMvY2RlZnMuaCAqLwoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALi91c3IvaW5jbHVkZS9nbnUv
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAwNDA3NzUAMDAwMzMwNQAwMDExNjM3ADAw
 MDAwMDAwMDAwADA3NTY0NTAwNjMyADAxMzExNQAgNQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB1c3RhciAgAG1lbmdlbAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAb3NzAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAuL3Vzci9pbmNsdWRlL2dudS9zdHVicy5oAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 MDEwMDY0NAAwMDAzMzA1ADAwMTE2MzcAMDAwMDAwMDE3NzUAMDc1Mzc3MTU2MzEAMDE0NDQy
 ACAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHVzdGFy
 ICAAbWVuZ2VsAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABvc3MAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC8qIFRoaXMgZmlsZSBpcyBhdXRv
 bWF0aWNhbGx5IGdlbmVyYXRlZC4KICAgSXQgZGVmaW5lcyBhIHN5bWJvbCBgX19zdHViX0ZV
 TkNUSU9OJyBmb3IgZWFjaCBmdW5jdGlvbgogICBpbiB0aGUgQyBsaWJyYXJ5IHdoaWNoIGlz
 IGEgc3R1YiwgbWVhbmluZyBpdCB3aWxsIGZhaWwKICAgZXZlcnkgdGltZSBjYWxsZWQsIHVz
 dWFsbHkgc2V0dGluZyBlcnJubyB0byBFTk9TWVMuICAqLwojZGVmaW5lIF9fc3R1Yl9fX2tl
 cm5lbF9jb3NsCiNkZWZpbmUgX19zdHViX19fa2VybmVsX3NpbmwKI2RlZmluZSBfX3N0dWJf
 X19rZXJuZWxfdGFubAojZGVmaW5lIF9fc3R1Yl9jaGZsYWdzCiNkZWZpbmUgX19zdHViX2Vy
 ZmNsCiNkZWZpbmUgX19zdHViX2VyZmwKI2RlZmluZSBfX3N0dWJfZmF0dGFjaAojZGVmaW5l
 IF9fc3R1Yl9mY2hmbGFncwojZGVmaW5lIF9fc3R1Yl9mZGV0YWNoCiNkZWZpbmUgX19zdHVi
 X2ZleGVjdmUKI2RlZmluZSBfX3N0dWJfZ2V0Y29udGV4dAojZGVmaW5lIF9fc3R1Yl9nZXRt
 c2cKI2RlZmluZSBfX3N0dWJfZ2V0cG1zZwojZGVmaW5lIF9fc3R1Yl9ndHR5CiNkZWZpbmUg
 X19zdHViX2owbAojZGVmaW5lIF9fc3R1Yl9qMWwKI2RlZmluZSBfX3N0dWJfam5sCiNkZWZp
 bmUgX19zdHViX2xnYW1tYWwKI2RlZmluZSBfX3N0dWJfbGdhbW1hbAojZGVmaW5lIF9fc3R1
 Yl9sZ2FtbWFsX3IKI2RlZmluZSBfX3N0dWJfbGdhbW1hbF9yCiNkZWZpbmUgX19zdHViX21h
 ZHZpc2UKI2RlZmluZSBfX3N0dWJfbWFrZWNvbnRleHQKI2RlZmluZSBfX3N0dWJfcHV0bXNn
 CiNkZWZpbmUgX19zdHViX3B1dHBtc2cKI2RlZmluZSBfX3N0dWJfcmV2b2tlCiNkZWZpbmUg
 X19zdHViX3NldGNvbnRleHQKI2RlZmluZSBfX3N0dWJfc2V0bG9naW4KI2RlZmluZSBfX3N0
 dWJfc2lncmV0dXJuCiNkZWZpbmUgX19zdHViX3NzdGsKI2RlZmluZSBfX3N0dWJfc3R0eQoj
 ZGVmaW5lIF9fc3R1Yl9zd2FwY29udGV4dAojZGVmaW5lIF9fc3R1Yl95MGwKI2RlZmluZSBf
 X3N0dWJfeTFsCiNkZWZpbmUgX19zdHViX3lubAoAAAAuL3Vzci9pbmNsdWRlL21hdGguaAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDEwMDY0NAAwMDAzMzA1ADAwMTE2MzcAMDAwMDAw
 MzIyNDMAMDc1Mzc3MTU0MDcAMDEzNDM1ACAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAHVzdGFyICAAbWVuZ2VsAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAABvc3MAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAC8qIERlY2xhcmF0aW9ucyBmb3IgbWF0aCBmdW5jdGlvbnMuCiAgIENvcHlyaWdodCAo
 QykgMTk5MSw5Miw5Myw5NSw5Niw5Nyw5OCw5OSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24s
 IEluYy4KICAgVGhpcyBmaWxlIGlzIHBhcnQgb2YgdGhlIEdOVSBDIExpYnJhcnkuCgogICBU
 aGUgR05VIEMgTGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0
 ZSBpdCBhbmQvb3IKICAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExp
 YnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcwogICBwdWJsaXNoZWQgYnkgdGhlIEZy
 ZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUKICAgTGlj
 ZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KCiAgIFRoZSBH
 TlUgQyBMaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBi
 ZSB1c2VmdWwsCiAgIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRo
 ZSBpbXBsaWVkIHdhcnJhbnR5IG9mCiAgIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZP
 UiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCiAgIExpYnJhcnkgR2VuZXJh
 bCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgoKICAgWW91IHNob3VsZCBoYXZl
 IHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKICAg
 TGljZW5zZSBhbG9uZyB3aXRoIHRoZSBHTlUgQyBMaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09Q
 WUlORy5MSUIuICBJZiBub3QsCiAgIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5k
 YXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSAtIFN1aXRlIDMzMCwKICAgQm9zdG9uLCBN
 QSAwMjExMS0xMzA3LCBVU0EuICAqLwoKLyoKICoJSVNPIEMgU3RhbmRhcmQ6IDQuNSBNQVRI
 RU1BVElDUwk8bWF0aC5oPgogKi8KCiNpZm5kZWYJX01BVEhfSAojZGVmaW5lCV9NQVRIX0gJ
 MQoKI2luY2x1ZGUgPGZlYXR1cmVzLmg+CgpfX0JFR0lOX0RFQ0xTCgovKiBHZXQgbWFjaGlu
 ZS1kZXBlbmRlbnQgSFVHRV9WQUwgdmFsdWUgKHJldHVybmVkIG9uIG92ZXJmbG93KS4KICAg
 T24gYWxsIElFRUU3NTQgbWFjaGluZXMsIHRoaXMgaXMgK0luZmluaXR5LiAgKi8KI2luY2x1
 ZGUgPGJpdHMvaHVnZV92YWwuaD4KCi8qIEdldCBtYWNoaW5lLWRlcGVuZGVudCBOQU4gdmFs
 dWUgKHJldHVybmVkIGZvciBzb21lIGRvbWFpbiBlcnJvcnMpLiAgKi8KI2lmZGVmCSBfX1VT
 RV9JU09DOVgKIyBpbmNsdWRlIDxiaXRzL25hbi5oPgojZW5kaWYKLyogR2V0IGdlbmVyYWwg
 YW5kIElTTyBDIDlYIHNwZWNpZmljIGluZm9ybWF0aW9uLiAgKi8KI2luY2x1ZGUgPGJpdHMv
 bWF0aGRlZi5oPgoKCi8qIFRoZSBmaWxlIDxiaXRzL21hdGhjYWxscy5oPiBjb250YWlucyB0
 aGUgcHJvdG90eXBlcyBmb3IgYWxsIHRoZQogICBhY3R1YWwgbWF0aCBmdW5jdGlvbnMuICBU
 aGVzZSBtYWNyb3MgYXJlIHVzZWQgZm9yIHRob3NlIHByb3RvdHlwZXMsCiAgIHNvIHdlIGNh
 biBlYXNpbHkgZGVjbGFyZSBlYWNoIGZ1bmN0aW9uIGFzIGJvdGggYG5hbWUnIGFuZCBgX19u
 YW1lJywKICAgYW5kIGNhbiBkZWNsYXJlIHRoZSBmbG9hdCB2ZXJzaW9ucyBgbmFtZWYnIGFu
 ZCBgX19uYW1lZicuICAqLwoKI2RlZmluZSBfX01BVEhDQUxMKGZ1bmN0aW9uLHN1ZmZpeCwg
 YXJncykJXAogIF9fTUFUSERFQ0wgKF9NZG91YmxlXyxmdW5jdGlvbixzdWZmaXgsIGFyZ3Mp
 CiNkZWZpbmUgX19NQVRIREVDTCh0eXBlLCBmdW5jdGlvbixzdWZmaXgsIGFyZ3MpIFwKICBf
 X01BVEhERUNMXzEodHlwZSwgZnVuY3Rpb24sc3VmZml4LCBhcmdzKTsgXAogIF9fTUFUSERF
 Q0xfMSh0eXBlLCBfX0NPTkNBVChfXyxmdW5jdGlvbiksc3VmZml4LCBhcmdzKQojZGVmaW5l
 IF9fTUFUSENBTExYKGZ1bmN0aW9uLHN1ZmZpeCwgYXJncywgYXR0cmliKQlcCiAgX19NQVRI
 REVDTFggKF9NZG91YmxlXyxmdW5jdGlvbixzdWZmaXgsIGFyZ3MsIGF0dHJpYikKI2RlZmlu
 ZSBfX01BVEhERUNMWCh0eXBlLCBmdW5jdGlvbixzdWZmaXgsIGFyZ3MsIGF0dHJpYikgXAog
 IF9fTUFUSERFQ0xfMSh0eXBlLCBmdW5jdGlvbixzdWZmaXgsIGFyZ3MpIF9fYXR0cmlidXRl
 X18gKGF0dHJpYik7IFwKICBfX01BVEhERUNMXzEodHlwZSwgX19DT05DQVQoX18sZnVuY3Rp
 b24pLHN1ZmZpeCwgYXJncykgX19hdHRyaWJ1dGVfXyAoYXR0cmliKQojZGVmaW5lIF9fTUFU
 SERFQ0xfMSh0eXBlLCBmdW5jdGlvbixzdWZmaXgsIGFyZ3MpIFwKICBleHRlcm4gdHlwZSBf
 X01BVEhfUFJFQ05BTUUoZnVuY3Rpb24sc3VmZml4KSBhcmdzCgojZGVmaW5lIF9NZG91Ymxl
 XyAJCWRvdWJsZQojZGVmaW5lIF9fTUFUSF9QUkVDTkFNRShuYW1lLHIpCV9fQ09OQ0FUKG5h
 bWUscikKI2luY2x1ZGUgPGJpdHMvbWF0aGNhbGxzLmg+CiN1bmRlZglfTWRvdWJsZV8KI3Vu
 ZGVmCV9fTUFUSF9QUkVDTkFNRQoKI2lmIGRlZmluZWQgX19VU0VfTUlTQyB8fCBkZWZpbmVk
 IF9fVVNFX0lTT0M5WAoKCi8qIEluY2x1ZGUgdGhlIGZpbGUgb2YgZGVjbGFyYXRpb25zIGFn
 YWluLCB0aGlzIHRpbWUgdXNpbmcgYGZsb2F0JwogICBpbnN0ZWFkIG9mIGBkb3VibGUnIGFu
 ZCBhcHBlbmRpbmcgZiB0byBlYWNoIGZ1bmN0aW9uIG5hbWUuICAqLwoKIyBpZm5kZWYgX01m
 bG9hdF8KIyAgZGVmaW5lIF9NZmxvYXRfCQlmbG9hdAojIGVuZGlmCiMgZGVmaW5lIF9NZG91
 YmxlXyAJCV9NZmxvYXRfCiMgaWZkZWYgX19TVERDX18KIyAgZGVmaW5lIF9fTUFUSF9QUkVD
 TkFNRShuYW1lLHIpIG5hbWUjI2YjI3IKIyBlbHNlCiMgIGRlZmluZSBfX01BVEhfUFJFQ05B
 TUUobmFtZSxyKSBuYW1lLyoqL2YvKiovcgojIGVuZGlmCiMgaW5jbHVkZSA8Yml0cy9tYXRo
 Y2FsbHMuaD4KIyB1bmRlZglfTWRvdWJsZV8KIyB1bmRlZglfX01BVEhfUFJFQ05BTUUKCiMg
 aWYgKF9fU1REQ19fIC0gMCB8fCBfX0dOVUNfXyAtIDApICYmICFkZWZpbmVkIF9fTk9fTE9O
 R19ET1VCTEVfTUFUSAovKiBJbmNsdWRlIHRoZSBmaWxlIG9mIGRlY2xhcmF0aW9ucyBhZ2Fp
 biwgdGhpcyB0aW1lIHVzaW5nIGBsb25nIGRvdWJsZScKICAgaW5zdGVhZCBvZiBgZG91Ymxl
 JyBhbmQgYXBwZW5kaW5nIGwgdG8gZWFjaCBmdW5jdGlvbiBuYW1lLiAgKi8KCiMgIGlmbmRl
 ZiBfTWxvbmdfZG91YmxlXwojICAgZGVmaW5lIF9NbG9uZ19kb3VibGVfCWxvbmcgZG91Ymxl
 CiMgIGVuZGlmCiMgIGRlZmluZSBfTWRvdWJsZV8gCQlfTWxvbmdfZG91YmxlXwojICBpZmRl
 ZiBfX1NURENfXwojICAgZGVmaW5lIF9fTUFUSF9QUkVDTkFNRShuYW1lLHIpIG5hbWUjI2wj
 I3IKIyAgZWxzZQojICAgZGVmaW5lIF9fTUFUSF9QUkVDTkFNRShuYW1lLHIpIG5hbWUvKiov
 bC8qKi9yCiMgIGVuZGlmCiMgIGluY2x1ZGUgPGJpdHMvbWF0aGNhbGxzLmg+CiMgIHVuZGVm
 IF9NZG91YmxlXwojICB1bmRlZiBfX01BVEhfUFJFQ05BTUUKCiMgZW5kaWYgLyogX19TVERD
 X18gfHwgX19HTlVDX18gKi8KCiNlbmRpZgkvKiBVc2UgbWlzYyBvciBJU08gQyA5WC4gICov
 CiN1bmRlZglfX01BVEhERUNMXzEKI3VuZGVmCV9fTUFUSERFQ0wKI3VuZGVmCV9fTUFUSENB
 TEwKCgojaWYgZGVmaW5lZCBfX1VTRV9NSVNDIHx8IGRlZmluZWQgX19VU0VfWE9QRU4gfHwg
 ZGVmaW5lZCBfX1VTRV9JU09DOVgKLyogVGhpcyB2YXJpYWJsZSBpcyB1c2VkIGJ5IGBnYW1t
 YScgYW5kIGBsZ2FtbWEnLiAgKi8KZXh0ZXJuIGludCBzaWduZ2FtOwojZW5kaWYKCgovKiBJ
 U08gQyA5WCBkZWZpbmVzIHNvbWUgZ2VuZXJpYyBtYWNyb3Mgd2hpY2ggd29yayBvbiBhbnkg
 ZGF0YSB0eXBlLiAgKi8KI2lmIF9fVVNFX0lTT0M5WAoKLyogR2V0IHRoZSBhcmNoaXRlY3R1
 cmUgc3BlY2lmaWMgdmFsdWVzIGRlc2NyaWJpbmcgdGhlIGZsb2F0aW5nLXBvaW50CiAgIGV2
 YWx1YXRpb24uICBUaGUgZm9sbG93aW5nIHN5bWJvbHMgd2lsbCBnZXQgZGVmaW5lZDoKCiAg
 ICBmbG9hdF90CWZsb2F0aW5nLXBvaW50IHR5cGUgYXQgbGVhc3QgYXMgd2lkZSBhcyBgZmxv
 YXQnIHVzZWQKCQl0byBldmFsdWF0ZSBgZmxvYXQnIGV4cHJlc3Npb25zCiAgICBkb3VibGVf
 dAlmbG9hdGluZy1wb2ludCB0eXBlIGF0IGxlYXN0IGFzIHdpZGUgYXMgYGRvdWJsZScgdXNl
 ZAoJCXRvIGV2YWx1YXRlIGBkb3VibGUnIGV4cHJlc3Npb25zCgogICAgRkxUX0VWQUxfTUVU
 SE9ECgkJRGVmaW5lZCB0bwoJCSAgMAlpZiBgZmxvYXRfdCcgaXMgYGZsb2F0JyBhbmQgYGRv
 dWJsZV90JyBpcyBgZG91YmxlJwoJCSAgMQlpZiBgZmxvYXRfdCcgYW5kIGBkb3VibGVfdCcg
 YXJlIGBkb3VibGUnCgkJICAyCWlmIGBmbG9hdF90JyBhbmQgYGRvdWJsZV90JyBhcmUgYGxv
 bmcgZG91YmxlJwoJCSAgZWxzZQlgZmxvYXRfdCcgYW5kIGBkb3VibGVfdCcgYXJlIHVuc3Bl
 Y2lmaWVkCgogICAgSU5GSU5JVFkJcmVwcmVzZW50YXRpb24gb2YgdGhlIGluZmluaXR5IHZh
 bHVlIG9mIHR5cGUgYGZsb2F0JwoKICAgIEZQX0ZBU1RfRk1BCiAgICBGUF9GQVNUX0ZNQUYK
 ICAgIEZQX0ZBU1RfRk1BTAoJCUlmIGRlZmluZWQgaXQgaW5kaWNhdGVzIHRoYXQgdGhlIGBm
 bWEnIGZ1bmN0aW9uCgkJZ2VuZXJhbGx5IGV4ZWN1dGVzIGFib3V0IGFzIGZhc3QgYXMgYSBt
 dWx0aXBseSBhbmQgYW4gYWRkLgoJCVRoaXMgbWFjcm8gaXMgZGVmaW5lZCBvbmx5IGlmZiB0
 aGUgYGZtYScgZnVuY3Rpb24gaXMKCQlpbXBsZW1lbnRlZCBkaXJlY3RseSB3aXRoIGEgaGFy
 ZHdhcmUgbXVsdGlwbHktYWRkIGluc3RydWN0aW9ucy4KCiAgICBGUF9JTE9HQjAJRXhwYW5k
 cyB0byBhIHZhbHVlIHJldHVybmVkIGJ5IGBpbG9nYiAoMC4wKScuCiAgICBGUF9JTE9HQk5B
 TglFeHBhbmRzIHRvIGEgdmFsdWUgcmV0dXJuZWQgYnkgYGlsb2diIChOQU4pJy4KCiAgICBE
 RUNJTUFMX0RJRwlOdW1iZXIgb2YgZGVjaW1hbCBkaWdpdHMgc3VwcG9ydGVkIGJ5IGNvbnZl
 cnNpb24gYmV0d2VlbgoJCWRlY2ltYWwgYW5kIGFsbCBpbnRlcm5hbCBmbG9hdGluZy1wb2lu
 dCBmb3JtYXRzLgoKKi8KCi8qIEFsbCBmbG9hdGluZy1wb2ludCBudW1iZXJzIGNhbiBiZSBw
 dXQgaW4gb25lIG9mIHRoZXNlIGNhdGVnb3JpZXMuICAqLwplbnVtCiAgewogICAgRlBfTkFO
 LAojIGRlZmluZSBGUF9OQU4gRlBfTkFOCiAgICBGUF9JTkZJTklURSwKIyBkZWZpbmUgRlBf
 SU5GSU5JVEUgRlBfSU5GSU5JVEUKICAgIEZQX1pFUk8sCiMgZGVmaW5lIEZQX1pFUk8gRlBf
 WkVSTwogICAgRlBfU1VCTk9STUFMLAojIGRlZmluZSBGUF9TVUJOT1JNQUwgRlBfU1VCTk9S
 TUFMCiAgICBGUF9OT1JNQUwKIyBkZWZpbmUgRlBfTk9STUFMIEZQX05PUk1BTAogIH07Cgov
 KiBSZXR1cm4gbnVtYmVyIG9mIGNsYXNzaWZpY2F0aW9uIGFwcHJvcHJpYXRlIGZvciBYLiAg
 Ki8KIyBpZmRlZiBfX05PX0xPTkdfRE9VQkxFX01BVEgKIyAgZGVmaW5lIGZwY2xhc3NpZnko
 eCkgXAogICAgIChzaXplb2YgKHgpID09IHNpemVvZiAoZmxvYXQpID8gX19mcGNsYXNzaWZ5
 ZiAoeCkgOiBfX2ZwY2xhc3NpZnkgKHgpKQojIGVsc2UKIyAgZGVmaW5lIGZwY2xhc3NpZnko
 eCkgXAogICAgIChzaXplb2YgKHgpID09IHNpemVvZiAoZmxvYXQpID8JCQkJCSAgICAgIFwK
 ICAgICAgICBfX2ZwY2xhc3NpZnlmICh4KQkJCQkJCSAgICAgIFwKICAgICAgOiBzaXplb2Yg
 KHgpID09IHNpemVvZiAoZG91YmxlKSA/CQkJCQkgICAgICBcCiAgICAgICAgX19mcGNsYXNz
 aWZ5ICh4KSA6IF9fZnBjbGFzc2lmeWwgKHgpKQojIGVuZGlmCgovKiBSZXR1cm4gbm9uemVy
 byB2YWx1ZSBpZiBzaWduIG9mIFggaXMgbmVnYXRpdmUuICAqLwojIGlmZGVmIF9fTk9fTE9O
 R19ET1VCTEVfTUFUSAojICBkZWZpbmUgc2lnbmJpdCh4KSBcCiAgICAgKHNpemVvZiAoeCkg
 PT0gc2l6ZW9mIChmbG9hdCkgPyBfX3NpZ25iaXRmICh4KSA6IF9fc2lnbmJpdCAoeCkpCiMg
 ZWxzZQojICBkZWZpbmUgc2lnbmJpdCh4KSBcCiAgICAgKHNpemVvZiAoeCkgPT0gc2l6ZW9m
 IChmbG9hdCkgPwkJCQkJICAgICAgXAogICAgICAgIF9fc2lnbmJpdGYgKHgpCQkJCQkJCSAg
 ICAgIFwKICAgICAgOiBzaXplb2YgKHgpID09IHNpemVvZiAoZG91YmxlKSA/CQkJCQkgICAg
 ICBcCiAgICAgICAgX19zaWduYml0ICh4KSA6IF9fc2lnbmJpdGwgKHgpKQojIGVuZGlmCgov
 KiBSZXR1cm4gbm9uemVybyB2YWx1ZSBpZiBYIGlzIG5vdCArLUluZiBvciBOYU4uICAqLwoj
 IGlmZGVmIF9fTk9fTE9OR19ET1VCTEVfTUFUSAojICBkZWZpbmUgaXNmaW5pdGUoeCkgXAog
 ICAgIChzaXplb2YgKHgpID09IHNpemVvZiAoZmxvYXQpID8gX19maW5pdGVmICh4KSA6IF9f
 ZmluaXRlICh4KSkKIyBlbHNlCiMgIGRlZmluZSBpc2Zpbml0ZSh4KSBcCiAgICAgKHNpemVv
 ZiAoeCkgPT0gc2l6ZW9mIChmbG9hdCkgPwkJCQkJICAgICAgXAogICAgICAgIF9fZmluaXRl
 ZiAoeCkJCQkJCQkJICAgICAgXAogICAgICA6IHNpemVvZiAoeCkgPT0gc2l6ZW9mIChkb3Vi
 bGUpID8JCQkJCSAgICAgIFwKICAgICAgICBfX2Zpbml0ZSAoeCkgOiBfX2Zpbml0ZWwgKHgp
 KQojIGVuZGlmCgovKiBSZXR1cm4gbm9uemVybyB2YWx1ZSBpZiBYIGlzIG5laXRoZXIgemVy
 bywgc3Vibm9ybWFsLCBJbmYsIG5vciBOYU4uICAqLwojIGRlZmluZSBpc25vcm1hbCh4KSAo
 ZnBjbGFzc2lmeSAoeCkgPT0gRlBfTk9STUFMKQoKLyogUmV0dXJuIG5vbnplcm8gdmFsdWUg
 aWYgWCBpcyBhIE5hTi4gIFdlIGNvdWxkIHVzZSBgZnBjbGFzc2lmeScgYnV0CiAgIHdlIGFs
 cmVhZHkgaGF2ZSB0aGlzIGZ1bmN0aW9ucyBgX19pc25hbicgYW5kIGl0IGlzIGZhc3Rlci4g
 ICovCiMgaWZkZWYgX19OT19MT05HX0RPVUJMRV9NQVRICiMgIGRlZmluZSBpc25hbih4KSBc
 CiAgICAgKHNpemVvZiAoeCkgPT0gc2l6ZW9mIChmbG9hdCkgPyBfX2lzbmFuZiAoeCkgOiBf
 X2lzbmFuICh4KSkKIyBlbHNlCiMgIGRlZmluZSBpc25hbih4KSBcCiAgICAgKHNpemVvZiAo
 eCkgPT0gc2l6ZW9mIChmbG9hdCkgPwkJCQkJICAgICAgXAogICAgICAgIF9faXNuYW5mICh4
 KQkJCQkJCQkgICAgICBcCiAgICAgIDogc2l6ZW9mICh4KSA9PSBzaXplb2YgKGRvdWJsZSkg
 PwkJCQkJICAgICAgXAogICAgICAgIF9faXNuYW4gKHgpIDogX19pc25hbmwgKHgpKQojIGVu
 ZGlmCgovKiBSZXR1cm4gbm9uemVybyB2YWx1ZSBpcyBYIGlzIHBvc2l0aXZlIG9yIG5lZ2F0
 aXZlIGluZmluaXR5LiAgKi8KIyBpZmRlZiBfX05PX0xPTkdfRE9VQkxFX01BVEgKIyAgZGVm
 aW5lIGlzaW5mKHgpIFwKICAgICAoc2l6ZW9mICh4KSA9PSBzaXplb2YgKGZsb2F0KSA/IF9f
 aXNpbmZmICh4KSA6IF9faXNpbmYgKHgpKQojIGVsc2UKIyAgZGVmaW5lIGlzaW5mKHgpIFwK
 ICAgICAoc2l6ZW9mICh4KSA9PSBzaXplb2YgKGZsb2F0KSA/CQkJCQkgICAgICBcCiAgICAg
 ICAgX19pc2luZmYgKHgpCQkJCQkJCSAgICAgIFwKICAgICAgOiBzaXplb2YgKHgpID09IHNp
 emVvZiAoZG91YmxlKSA/CQkJCQkgICAgICBcCiAgICAgICAgX19pc2luZiAoeCkgOiBfX2lz
 aW5mbCAoeCkpCiMgZW5kaWYKCiNlbmRpZiAvKiBVc2UgSVNPIEMgOVguICAqLwoKI2lmZGVm
 CV9fVVNFX01JU0MKLyogU3VwcG9ydCBmb3IgdmFyaW91cyBkaWZmZXJlbnQgc3RhbmRhcmQg
 ZXJyb3IgaGFuZGxpbmcgYmVoYXZpb3JzLiAgKi8KdHlwZWRlZiBlbnVtCnsKICBfSUVFRV8g
 PSAtMSwJLyogQWNjb3JkaW5nIHRvIElFRUUgNzU0L0lFRUUgODU0LiAgKi8KICBfU1ZJRF8s
 CS8qIEFjY29yZGluZyB0byBTeXN0ZW0gViwgcmVsZWFzZSA0LiAgKi8KICBfWE9QRU5fLAkv
 KiBOb3dhZGF5cyBhbHNvIFVuaXg5OC4gICovCiAgX1BPU0lYXywKICBfSVNPQ18JLyogQWN0
 dWFsbHkgdGhpcyBpcyBJU08gQyA5WC4gICovCn0gX0xJQl9WRVJTSU9OX1RZUEU7CgovKiBU
 aGlzIHZhcmlhYmxlIGNhbiBiZSBjaGFuZ2VkIGF0IHJ1bi10aW1lIHRvIGFueSBvZiB0aGUg
 dmFsdWVzIGFib3ZlIHRvCiAgIGFmZmVjdCBmbG9hdGluZyBwb2ludCBlcnJvciBoYW5kbGlu
 ZyBiZWhhdmlvciAoaXQgbWF5IGFsc28gYmUgbmVjZXNzYXJ5CiAgIHRvIGNoYW5nZSB0aGUg
 aGFyZHdhcmUgRlBVIGV4Y2VwdGlvbiBzZXR0aW5ncykuICAqLwpleHRlcm4gX0xJQl9WRVJT
 SU9OX1RZUEUgX0xJQl9WRVJTSU9OOwojZW5kaWYKCgojaWZkZWYgX19VU0VfU1ZJRAovKiBJ
 biBTVklEIGVycm9yIGhhbmRsaW5nLCBgbWF0aGVycicgaXMgY2FsbGVkIHdpdGggdGhpcyBk
 ZXNjcmlwdGlvbgogICBvZiB0aGUgZXhjZXB0aW9uYWwgY29uZGl0aW9uLgoKICAgV2UgaGF2
 ZSBhIHByb2JsZW0gd2hlbiB1c2luZyBDKysgc2luY2UgYGV4Y2VwdGlvbicgaXMgYSByZXNl
 cnZlZAogICBuYW1lIGluIEMrKy4gICovCiMgaWZkZWYgX19jcGx1c3BsdXMKc3RydWN0IF9f
 ZXhjZXB0aW9uCiMgZWxzZQpzdHJ1Y3QgZXhjZXB0aW9uCiMgZW5kaWYKICB7CiAgICBpbnQg
 dHlwZTsKICAgIGNoYXIgKm5hbWU7CiAgICBkb3VibGUgYXJnMTsKICAgIGRvdWJsZSBhcmcy
 OwogICAgZG91YmxlIHJldHZhbDsKICB9OwoKIyBpZmRlZiBfX2NwbHVzcGx1cwpleHRlcm4g
 aW50IG1hdGhlcnIgX19QICgoc3RydWN0IF9fZXhjZXB0aW9uICpfX2V4YykpOwojIGVsc2UK
 ZXh0ZXJuIGludCBtYXRoZXJyIF9fUCAoKHN0cnVjdCBleGNlcHRpb24gKl9fZXhjKSk7CiMg
 ZW5kaWYKCiMgZGVmaW5lIFhfVExPU1MJMS40MTQ4NDc1NTA0MDU2ODgwMDAwMGUrMTYKCi8q
 IFR5cGVzIG9mIGV4Y2VwdGlvbnMgaW4gdGhlIGB0eXBlJyBmaWVsZC4gICovCiMgZGVmaW5l
 IERPTUFJTgkJMQojIGRlZmluZSBTSU5HCQkyCiMgZGVmaW5lIE9WRVJGTE9XCTMKIyBkZWZp
 bmUgVU5ERVJGTE9XCTQKIyBkZWZpbmUgVExPU1MJCTUKIyBkZWZpbmUgUExPU1MJCTYKCi8q
 IFNWSUQgbW9kZSBzcGVjaWZpZXMgcmV0dXJuaW5nIHRoaXMgbGFyZ2UgdmFsdWUgaW5zdGVh
 ZCBvZiBpbmZpbml0eS4gICovCiMgZGVmaW5lIEhVR0UJCUZMVF9NQVgKIyBpbmNsdWRlIDxm
 bG9hdC5oPgkJLyogRGVmaW5lcyBGTFRfTUFYLiAgKi8KCiNlbHNlCS8qICFTVklEICovCgoj
 IGlmZGVmIF9fVVNFX1hPUEVOCi8qIFgvT3BlbiB3YW50cyBhbm90aGVyIHN0cmFuZ2UgY29u
 c3RhbnQuICAqLwojICBkZWZpbmUgTUFYRkxPQVQJRkxUX01BWAojICBpbmNsdWRlIDxmbG9h
 dC5oPgojIGVuZGlmCgojZW5kaWYJLyogU1ZJRCAqLwoKCi8qIFNvbWUgdXNlZnVsIGNvbnN0
 YW50cy4gICovCiNpZiBkZWZpbmVkIF9fVVNFX0JTRCB8fCBkZWZpbmVkIF9fVVNFX1hPUEVO
 CiMgZGVmaW5lIE1fRQkJMi43MTgyODE4Mjg0NTkwNDUyMzU0CS8qIGUgKi8KIyBkZWZpbmUg
 TV9MT0cyRQkxLjQ0MjY5NTA0MDg4ODk2MzQwNzQJLyogbG9nXzIgZSAqLwojIGRlZmluZSBN
 X0xPRzEwRQkwLjQzNDI5NDQ4MTkwMzI1MTgyNzY1CS8qIGxvZ18xMCBlICovCiMgZGVmaW5l
 IE1fTE4yCQkwLjY5MzE0NzE4MDU1OTk0NTMwOTQyCS8qIGxvZ19lIDIgKi8KIyBkZWZpbmUg
 TV9MTjEwCQkyLjMwMjU4NTA5Mjk5NDA0NTY4NDAyCS8qIGxvZ19lIDEwICovCiMgZGVmaW5l
 IE1fUEkJCTMuMTQxNTkyNjUzNTg5NzkzMjM4NDYJLyogcGkgKi8KIyBkZWZpbmUgTV9QSV8y
 CQkxLjU3MDc5NjMyNjc5NDg5NjYxOTIzCS8qIHBpLzIgKi8KIyBkZWZpbmUgTV9QSV80CQkw
 Ljc4NTM5ODE2MzM5NzQ0ODMwOTYyCS8qIHBpLzQgKi8KIyBkZWZpbmUgTV8xX1BJCQkwLjMx
 ODMwOTg4NjE4Mzc5MDY3MTU0CS8qIDEvcGkgKi8KIyBkZWZpbmUgTV8yX1BJCQkwLjYzNjYx
 OTc3MjM2NzU4MTM0MzA4CS8qIDIvcGkgKi8KIyBkZWZpbmUgTV8yX1NRUlRQSQkxLjEyODM3
 OTE2NzA5NTUxMjU3MzkwCS8qIDIvc3FydChwaSkgKi8KIyBkZWZpbmUgTV9TUVJUMgkxLjQx
 NDIxMzU2MjM3MzA5NTA0ODgwCS8qIHNxcnQoMikgKi8KIyBkZWZpbmUgTV9TUVJUMV8yCTAu
 NzA3MTA2NzgxMTg2NTQ3NTI0NDAJLyogMS9zcXJ0KDIpICovCiNlbmRpZgoKLyogVGhlIGFi
 b3ZlIGNvbnN0YW50cyBhcmUgbm90IGFkZXF1YXRlIGZvciBjb21wdXRhdGlvbiB1c2luZyBg
 bG9uZyBkb3VibGUncy4KICAgVGhlcmVmb3JlIHdlIHByb3ZpZGUgYXMgYW4gZXh0ZW5zaW9u
 IGNvbnN0YW50cyB3aXRoIHNpbWlsYXIgbmFtZXMgYXMgYQogICBHTlUgZXh0ZW5zaW9uLiAg
 UHJvdmlkZSBlbm91Z2ggZGlnaXRzIGZvciB0aGUgMTI4LWJpdCBJRUVFIHF1YWQuICAqLwoj
 aWZkZWYgX19VU0VfR05VCiMgZGVmaW5lIE1fRWwJCTIuNzE4MjgxODI4NDU5MDQ1MjM1MzYw
 Mjg3NDcxMzUyNjYyNUwgIC8qIGUgKi8KIyBkZWZpbmUgTV9MT0cyRWwJMS40NDI2OTUwNDA4
 ODg5NjM0MDczNTk5MjQ2ODEwMDE4OTIyTCAgLyogbG9nXzIgZSAqLwojIGRlZmluZSBNX0xP
 RzEwRWwJMC40MzQyOTQ0ODE5MDMyNTE4Mjc2NTExMjg5MTg5MTY2MDUxTCAgLyogbG9nXzEw
 IGUgKi8KIyBkZWZpbmUgTV9MTjJsCQkwLjY5MzE0NzE4MDU1OTk0NTMwOTQxNzIzMjEyMTQ1
 ODE3NjZMICAvKiBsb2dfZSAyICovCiMgZGVmaW5lIE1fTE4xMGwJMi4zMDI1ODUwOTI5OTQw
 NDU2ODQwMTc5OTE0NTQ2ODQzNjQyTCAgLyogbG9nX2UgMTAgKi8KIyBkZWZpbmUgTV9QSWwJ
 CTMuMTQxNTkyNjUzNTg5NzkzMjM4NDYyNjQzMzgzMjc5NTAyOUwgIC8qIHBpICovCiMgZGVm
 aW5lIE1fUElfMmwJMS41NzA3OTYzMjY3OTQ4OTY2MTkyMzEzMjE2OTE2Mzk3NTE0TCAgLyog
 cGkvMiAqLwojIGRlZmluZSBNX1BJXzRsCTAuNzg1Mzk4MTYzMzk3NDQ4MzA5NjE1NjYwODQ1
 ODE5ODc1N0wgIC8qIHBpLzQgKi8KIyBkZWZpbmUgTV8xX1BJbAkwLjMxODMwOTg4NjE4Mzc5
 MDY3MTUzNzc2NzUyNjc0NTAyODdMICAvKiAxL3BpICovCiMgZGVmaW5lIE1fMl9QSWwJMC42
 MzY2MTk3NzIzNjc1ODEzNDMwNzU1MzUwNTM0OTAwNTc0TCAgLyogMi9waSAqLwojIGRlZmlu
 ZSBNXzJfU1FSVFBJbAkxLjEyODM3OTE2NzA5NTUxMjU3Mzg5NjE1ODkwMzEyMTU0NTJMICAv
 KiAyL3NxcnQocGkpICovCiMgZGVmaW5lIE1fU1FSVDJsCTEuNDE0MjEzNTYyMzczMDk1MDQ4
 ODAxNjg4NzI0MjA5Njk4MUwgIC8qIHNxcnQoMikgKi8KIyBkZWZpbmUgTV9TUVJUMV8ybAkw
 LjcwNzEwNjc4MTE4NjU0NzUyNDQwMDg0NDM2MjEwNDg0OTBMICAvKiAxL3NxcnQoMikgKi8K
 I2VuZGlmCgoKLyogV2hlbiBjb21waWxpbmcgaW4gc3RyaWN0IElTTyBDIGNvbXBhdGlibGUg
 bW9kZSB3ZSBtdXN0IG5vdCB1c2UgdGhlCiAgIGlubGluZSBmdW5jdGlvbnMgc2luY2UgdGhl
 eSwgYW1vbmcgb3RoZXIgdGhpbmdzLCBkbyBub3Qgc2V0IHRoZQogICBgZXJybm8nIHZhcmlh
 YmxlIGNvcnJlY3RseS4gICovCiNpZiBkZWZpbmVkIF9fU1RSSUNUX0FOU0lfXyAmJiAhZGVm
 aW5lZCBfX05PX01BVEhfSU5MSU5FUwojIGRlZmluZSBfX05PX01BVEhfSU5MSU5FUwkxCiNl
 bmRpZgoKLyogR2V0IG1hY2hpbmUtZGVwZW5kZW50IGlubGluZSB2ZXJzaW9ucyAoaWYgdGhl
 cmUgYXJlIGFueSkuICAqLwojaWZkZWYgX19VU0VfRVhURVJOX0lOTElORVMKIyBpbmNsdWRl
 IDxiaXRzL21hdGhpbmxpbmUuaD4KI2VuZGlmCgoKI2lmIF9fVVNFX0lTT0M5WAovKiBJU08g
 QyA5WCBkZWZpbmVzIHNvbWUgbWFjcm9zIHRvIGNvbXBhcmUgbnVtYmVyIHdoaWxlIHRha2lu
 ZyBjYXJlCiAgIGZvciB1bm9yZGVyZWQgbnVtYmVycy4gIFNpbmNlIG1hbnkgRlBVcyBwcm92
 aWRlIHNwZWNpYWwKICAgaW5zdHJ1Y3Rpb25zIHRvIHN1cHBvcnQgdGhlc2Ugb3BlcmF0aW9u
 cyBhbmQgdGhlc2UgdGVzdHMgYXJlCiAgIGRlZmluZWQgaW4gPGJpdHMvbWF0aGlubGluZS5o
 Piwgd2UgZGVmaW5lIHRoZSBnZW5lcmljIG1hY3JvcyBhdAogICB0aGlzIGxhdGUgcG9pbnQg
 YW5kIG9ubHkgaWYgdGhleSBhcmUgbm90IGRlZmluZWQgeWV0LiAgKi8KCi8qIFJldHVybiBu
 b256ZXJvIHZhbHVlIGlmIFggaXMgZ3JlYXRlciB0aGFuIFkuICAqLwojIGlmbmRlZiBpc2dy
 ZWF0ZXIKIyAgZGVmaW5lIGlzZ3JlYXRlcih4LCB5KSBcCiAgKF9fZXh0ZW5zaW9uX18JCQkJ
 CQkJICAgICAgXAogICAoeyBfX3R5cGVvZl9fKHgpIF9feCA9ICh4KTsgX190eXBlb2ZfXyh5
 KSBfX3kgPSAoeSk7CQkJICAgICAgXAogICAgICAhaXN1bm9yZGVyZWQgKF9feCwgX195KSAm
 JiBfX3ggPiBfX3k7IH0pKQojIGVuZGlmCgovKiBSZXR1cm4gbm9uemVybyB2YWx1ZSBpZiBY
 IGlzIGdyZWF0ZXIgdGhhbiBvciBlcXVhbCB0byBZLiAgKi8KIyBpZm5kZWYgaXNncmVhdGVy
 ZXF1YWwKIyAgZGVmaW5lIGlzZ3JlYXRlcmVxdWFsKHgsIHkpIFwKICAoX19leHRlbnNpb25f
 XwkJCQkJCQkgICAgICBcCiAgICh7IF9fdHlwZW9mX18oeCkgX194ID0gKHgpOyBfX3R5cGVv
 Zl9fKHkpIF9feSA9ICh5KTsJCQkgICAgICBcCiAgICAgICFpc3Vub3JkZXJlZCAoX194LCBf
 X3kpICYmIF9feCA+PSBfX3k7IH0pKQojIGVuZGlmCgovKiBSZXR1cm4gbm9uemVybyB2YWx1
 ZSBpZiBYIGlzIGxlc3MgdGhhbiBZLiAgKi8KIyBpZm5kZWYgaXNsZXNzCiMgIGRlZmluZSBp
 c2xlc3MoeCwgeSkgXAogIChfX2V4dGVuc2lvbl9fCQkJCQkJCSAgICAgIFwKICAgKHsgX190
 eXBlb2ZfXyh4KSBfX3ggPSAoeCk7IF9fdHlwZW9mX18oeSkgX195ID0gKHkpOwkJCSAgICAg
 IFwKICAgICAgIWlzdW5vcmRlcmVkIChfX3gsIF9feSkgJiYgX194IDwgX195OyB9KSkKIyBl
 bmRpZgoKLyogUmV0dXJuIG5vbnplcm8gdmFsdWUgaWYgWCBpcyBsZXNzIHRoYW4gb3IgZXF1
 YWwgdG8gWS4gICovCiMgaWZuZGVmIGlzbGVzc2VxdWFsCiMgIGRlZmluZSBpc2xlc3NlcXVh
 bCh4LCB5KSBcCiAgKF9fZXh0ZW5zaW9uX18JCQkJCQkJICAgICAgXAogICAoeyBfX3R5cGVv
 Zl9fKHgpIF9feCA9ICh4KTsgX190eXBlb2ZfXyh5KSBfX3kgPSAoeSk7CQkJICAgICAgXAog
 ICAgICAhaXN1bm9yZGVyZWQgKF9feCwgX195KSAmJiBfX3ggPD0gX195OyB9KSkKIyBlbmRp
 ZgoKLyogUmV0dXJuIG5vbnplcm8gdmFsdWUgaWYgZWl0aGVyIFggaXMgbGVzcyB0aGFuIFkg
 b3IgWSBpcyBsZXNzIHRoYW4gWC4gICovCiMgaWZuZGVmIGlzbGVzc2dyZWF0ZXIKIyAgZGVm
 aW5lIGlzbGVzc2dyZWF0ZXIoeCwgeSkgXAogIChfX2V4dGVuc2lvbl9fCQkJCQkJCSAgICAg
 IFwKICAgKHsgX190eXBlb2ZfXyh4KSBfX3ggPSAoeCk7IF9fdHlwZW9mX18oeSkgX195ID0g
 KHkpOwkJCSAgICAgIFwKICAgICAgIWlzdW5vcmRlcmVkIChfX3gsIF9feSkgJiYgKF9feCA8
 IF9feSB8fCBfX3kgPCBfX3gpOyB9KSkKIyBlbmRpZgoKLyogUmV0dXJuIG5vbnplcm8gdmFs
 dWUgaWYgYXJndW1lbnRzIGFyZSB1bm9yZGVyZWQuICAqLwojIGlmbmRlZiBpc3Vub3JkZXJl
 ZAojICBkZWZpbmUgaXN1bm9yZGVyZWQodSwgdikgXAogIChfX2V4dGVuc2lvbl9fCQkJCQkJ
 CSAgICAgIFwKICAgKHsgX190eXBlb2ZfXyh1KSBfX3UgPSAodSk7IF9fdHlwZW9mX18odikg
 X192ID0gKHYpOwkJCSAgICAgIFwKICAgICAgZnBjbGFzc2lmeSAoX191KSA9PSBGUF9OQU4g
 fHwgZnBjbGFzc2lmeSAoX192KSA9PSBGUF9OQU47IH0pKQojIGVuZGlmCgojZW5kaWYKCl9f
 RU5EX0RFQ0xTCgoKI2VuZGlmIC8qIG1hdGguaCAgKi8KAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAC4vdXNyL2luY2x1ZGUvYml0cy8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwMDQw
 Nzc1ADAwMDMzMDUAMDAxMTYzNwAwMDAwMDAwMDAwMAAwNzU2NDUwMTMyMQAwMTMyNjEAIDUA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAdXN0YXIgIABt
 ZW5nZWwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAG9zcwAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALi91c3IvaW5jbHVkZS9iaXRzL2h1Z2Vf
 dmFsLmgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAADAxMDA2NDQAMDAwMzMwNQAwMDExNjM3ADAwMDAwMDA0
 NjIyADA3NTM3NzE1NDA3ADAxNTIzNwAgMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAB1c3RhciAgAG1lbmdlbAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAb3NzAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAvKiBgSFVHRV9WQUwnIGNvbnN0YW50cyBmb3IgaXg4NiAod2hlcmUgaXQgaXMgaW5maW5p
 dHkpLgogICBVc2VkIGJ5IDxzdGRsaWIuaD4gYW5kIDxtYXRoLmg+IGZ1bmN0aW9ucyBmb3Ig
 b3ZlcmZsb3cuCiAgIENvcHlyaWdodCAoQykgMTk5MiwgMTk5NSwgMTk5NiwgMTk5NyBGcmVl
 IFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KICAgVGhpcyBmaWxlIGlzIHBhcnQgb2YgdGhl
 IEdOVSBDIExpYnJhcnkuCgogICBUaGUgR05VIEMgTGlicmFyeSBpcyBmcmVlIHNvZnR3YXJl
 OyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKICAgbW9kaWZ5IGl0IHVuZGVyIHRo
 ZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcwog
 ICBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZl
 cnNpb24gMiBvZiB0aGUKICAgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0
 ZXIgdmVyc2lvbi4KCiAgIFRoZSBHTlUgQyBMaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRo
 ZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiAgIGJ1dCBXSVRIT1VUIEFOWSBXQVJS
 QU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCiAgIE1FUkNIQU5U
 QUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUg
 R05VCiAgIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxz
 LgoKICAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJh
 cnkgR2VuZXJhbCBQdWJsaWMKICAgTGljZW5zZSBhbG9uZyB3aXRoIHRoZSBHTlUgQyBMaWJy
 YXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3QsCiAgIHdyaXRlIHRvIHRo
 ZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSAtIFN1
 aXRlIDMzMCwKICAgQm9zdG9uLCBNQSAwMjExMS0xMzA3LCBVU0EuICAqLwoKI2lmbmRlZiBf
 TUFUSF9ICiMgZXJyb3IgIk5ldmVyIHVzZSA8Yml0cy9odWdlX3ZhbC5oPiBkaXJlY3RseTsg
 aW5jbHVkZSA8bWF0aC5oPiBpbnN0ZWFkLiIKI2VuZGlmCgojaW5jbHVkZSA8ZmVhdHVyZXMu
 aD4KCi8qIElFRUUgcG9zaXRpdmUgaW5maW5pdHkgKC1IVUdFX1ZBTCBpcyBuZWdhdGl2ZSBp
 bmZpbml0eSkuICAqLwoKI2RlZmluZQlfX0hVR0VfVkFMX2J5dGVzCXsgMCwgMCwgMCwgMCwg
 MCwgMCwgMHhmMCwgMHg3ZiB9CgojZGVmaW5lIF9faHVnZV92YWxfdAl1bmlvbiB7IHVuc2ln
 bmVkIGNoYXIgX19jWzhdOyBkb3VibGUgX19kOyB9CiNpZmRlZglfX0dOVUNfXwojIGRlZmlu
 ZSBIVUdFX1ZBTAkoX19leHRlbnNpb25fXyBcCgkJCSAoKF9faHVnZV92YWxfdCkgeyBfX2M6
 IF9fSFVHRV9WQUxfYnl0ZXMgfSkuX19kKQojZWxzZQkvKiBOb3QgR0NDLiAgKi8Kc3RhdGlj
 IF9faHVnZV92YWxfdCBfX2h1Z2VfdmFsID0geyBfX0hVR0VfVkFMX2J5dGVzIH07CiMgZGVm
 aW5lIEhVR0VfVkFMCShfX2h1Z2VfdmFsLl9fZCkKI2VuZGlmCS8qIEdDQy4gICovCgoKLyog
 SVNPIEMgOVggZXh0ZW5zaW9uczogKGZsb2F0KSBIVUdFX1ZBTEYgYW5kIChsb25nIGRvdWJs
 ZSkgSFVHRV9WQUxMLiAgKi8KCiNpZmRlZiBfX1VTRV9JU09DOVgKCiMgZGVmaW5lIF9fSFVH
 RV9WQUxGX2J5dGVzCXsgMCwgMCwgMHg4MCwgMHg3ZiB9CgojIGRlZmluZSBfX2h1Z2VfdmFs
 Zl90CXVuaW9uIHsgdW5zaWduZWQgY2hhciBfX2NbNF07IGZsb2F0IF9fZjsgfQojIGlmZGVm
 CV9fR05VQ19fCiMgIGRlZmluZSBIVUdFX1ZBTEYJKF9fZXh0ZW5zaW9uX18gXAoJCQkgKChf
 X2h1Z2VfdmFsZl90KSB7IF9fYzogX19IVUdFX1ZBTEZfYnl0ZXMgfSkuX19mKQojIGVsc2UJ
 LyogTm90IEdDQy4gICovCnN0YXRpYyBfX2h1Z2VfdmFsZl90IF9faHVnZV92YWxmID0geyBf
 X0hVR0VfVkFMRl9ieXRlcyB9OwojICBkZWZpbmUgSFVHRV9WQUxGCShfX2h1Z2VfdmFsZi5f
 X2YpCiMgZW5kaWYJLyogR0NDLiAgKi8KCgojIGRlZmluZSBfX0hVR0VfVkFMTF9ieXRlcwl7
 IDAsIDAsIDAsIDAsIDAsIDAsIDAsIDB4ODAsIDB4ZmYsIDB4N2YsIDAsIDAgfQoKIyBkZWZp
 bmUgX19odWdlX3ZhbGxfdAl1bmlvbiB7IHVuc2lnbmVkIGNoYXIgX19jWzEyXTsgbG9uZyBk
 b3VibGUgX19sZDsgfQojIGlmZGVmCV9fR05VQ19fCiMgIGRlZmluZSBIVUdFX1ZBTEwJKF9f
 ZXh0ZW5zaW9uX18gXAoJCQkgKChfX2h1Z2VfdmFsbF90KSB7IF9fYzogX19IVUdFX1ZBTExf
 Ynl0ZXMgfSkuX19sZCkKIyBlbHNlCS8qIE5vdCBHQ0MuICAqLwpzdGF0aWMgX19odWdlX3Zh
 bGxfdCBfX2h1Z2VfdmFsbCA9IHsgX19IVUdFX1ZBTExfYnl0ZXMgfTsKIyAgZGVmaW5lIEhV
 R0VfVkFMTAkoX19odWdlX3ZhbGwuX19sZCkKIyBlbmRpZgkvKiBHQ0MuICAqLwoKI2VuZGlm
 CS8qIF9fVVNFX0lTT0M5WC4gICovCgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALi91c3IvaW5jbHVkZS9iaXRzL25hbi5oAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAADAxMDA2NDQAMDAwMzMwNQAwMDExNjM3ADAwMDAwMDAzMTIzADA3
 NTM3NzE1NDA3ADAxNDIxNAAgMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAB1c3RhciAgAG1lbmdlbAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAb3Nz
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAvKiBg
 TkFOJyBjb25zdGFudCBmb3IgSUVFRSA3NTQgbWFjaGluZXMuCiAgIENvcHlyaWdodCAoQykg
 MTk5MiwgMTk5NiwgMTk5NywgMTk5OSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4K
 ICAgVGhpcyBmaWxlIGlzIHBhcnQgb2YgdGhlIEdOVSBDIExpYnJhcnkuCgogICBUaGUgR05V
 IEMgTGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBh
 bmQvb3IKICAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkg
 R2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcwogICBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29m
 dHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUKICAgTGljZW5zZSwg
 b3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KCiAgIFRoZSBHTlUgQyBM
 aWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2Vm
 dWwsCiAgIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBs
 aWVkIHdhcnJhbnR5IG9mCiAgIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBB
 UlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCiAgIExpYnJhcnkgR2VuZXJhbCBQdWJs
 aWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgoKICAgWW91IHNob3VsZCBoYXZlIHJlY2Vp
 dmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKICAgTGljZW5z
 ZSBhbG9uZyB3aXRoIHRoZSBHTlUgQyBMaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5M
 SUIuICBJZiBub3QsCiAgIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24s
 IEluYy4sIDU5IFRlbXBsZSBQbGFjZSAtIFN1aXRlIDMzMCwKICAgQm9zdG9uLCBNQSAwMjEx
 MS0xMzA3LCBVU0EuICAqLwoKI2lmbmRlZiBfTUFUSF9ICiMgZXJyb3IgIk5ldmVyIHVzZSA8
 Yml0cy9uYW4uaD4gZGlyZWN0bHk7IGluY2x1ZGUgPG1hdGguaD4gaW5zdGVhZC4iCiNlbmRp
 ZgoKCi8qIElFRUUgTm90IEEgTnVtYmVyLiAgKi8KCiNpZmRlZglfX0dOVUNfXwoKIyBkZWZp
 bmUgTkFOIFwKICAoX19leHRlbnNpb25fXyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
 ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgKCh1bmlvbiB7IHVuc2lnbmVk
 IF9fbCBfX2F0dHJpYnV0ZV9fKChfX21vZGVfXyhfX1NJX18pKSk7IGZsb2F0IF9fZDsgfSkg
 IFwKICAgIHsgX19sOiAweDdmYzAwMDAwVUwgfSkuX19kKQoKI2Vsc2UKCiMgaW5jbHVkZSA8
 ZW5kaWFuLmg+CgojIGlmIF9fQllURV9PUkRFUiA9PSBfX0JJR19FTkRJQU4KIyAgZGVmaW5l
 IF9fbmFuX2J5dGVzCQl7IDB4N2YsIDB4YzAsIDAsIDAgfQojIGVuZGlmCiMgaWYgX19CWVRF
 X09SREVSID09IF9fTElUVExFX0VORElBTgojICBkZWZpbmUgX19uYW5fYnl0ZXMJCXsgMCwg
 MCwgMHhjMCwgMHg3ZiB9CiMgZW5kaWYKCnN0YXRpYyB1bmlvbiB7IHVuc2lnbmVkIGNoYXIg
 X19jWzRdOyBmbG9hdCBfX2Q7IH0gX19uYW5fdW5pb24gPSB7IF9fbmFuX2J5dGVzIH07CiMg
 ZGVmaW5lIE5BTgkoX19uYW5fdW5pb24uX19kKQoKI2VuZGlmCS8qIEdDQy4gICovCgAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC4vdXNyL2lu
 Y2x1ZGUvYml0cy9tYXRoZGVmLmgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwMTAwNjQ0ADAwMDMzMDUA
 MDAxMTYzNwAwMDAwMDAwMzUwNgAwNzUzNzcxNTQwNwAwMTUwNTUAIDAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAdXN0YXIgIABtZW5nZWwAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAG9zcwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAALyogQ29weXJpZ2h0IChDKSAxOTk3LCAxOTk4LCAxOTk5IEZy
 ZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgogICBUaGlzIGZpbGUgaXMgcGFydCBvZiB0
 aGUgR05VIEMgTGlicmFyeS4KCiAgIFRoZSBHTlUgQyBMaWJyYXJ5IGlzIGZyZWUgc29mdHdh
 cmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgogICBtb2RpZnkgaXQgdW5kZXIg
 dGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFz
 CiAgIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIg
 dmVyc2lvbiAyIG9mIHRoZQogICBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBs
 YXRlciB2ZXJzaW9uLgoKICAgVGhlIEdOVSBDIExpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4g
 dGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKICAgYnV0IFdJVEhPVVQgQU5ZIFdB
 UlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKICAgTUVSQ0hB
 TlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRo
 ZSBHTlUKICAgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFp
 bHMuCgogICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGli
 cmFyeSBHZW5lcmFsIFB1YmxpYwogICBMaWNlbnNlIGFsb25nIHdpdGggdGhlIEdOVSBDIExp
 YnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwKICAgd3JpdGUgdG8g
 dGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlIC0g
 U3VpdGUgMzMwLAogICBCb3N0b24sIE1BIDAyMTExLTEzMDcsIFVTQS4gICovCgojaWYgIWRl
 ZmluZWQgX01BVEhfSCAmJiAhZGVmaW5lZCBfQ09NUExFWF9ICiMgZXJyb3IgIk5ldmVyIHVz
 ZSA8Yml0cy9tYXRoZGVmLmg+IGRpcmVjdGx5OyBpbmNsdWRlIDxtYXRoLmg+IGluc3RlYWQi
 CiNlbmRpZgoKI2lmIGRlZmluZWQgX19VU0VfSVNPQzlYICYmIGRlZmluZWQgX01BVEhfSCAm
 JiAhZGVmaW5lZCBfTUFUSF9IX01BVEhERUYKIyBkZWZpbmUgX01BVEhfSF9NQVRIREVGCTEK
 Ci8qIFRoZSBpeDg3IEZQVXMgZXZhbHVhdGUgYWxsIHZhbHVlcyBpbiB0aGUgODAgYml0IGZs
 b2F0aW5nLXBvaW50IGZvcm1hdAogICB3aGljaCBpcyBhbHNvIGF2YWlsYWJsZSBmb3IgdGhl
 IHVzZXIgYXMgYGxvbmcgZG91YmxlJy4gIFRoZXJlZm9yZSB3ZQogICBkZWZpbmU6ICAqLwp0
 eXBlZGVmIGxvbmcgZG91YmxlIGZsb2F0X3Q7CS8qIGBmbG9hdCcgZXhwcmVzc2lvbnMgYXJl
 IGV2YWx1YXRlZCBhcwoJCQkJICAgYGxvbmcgZG91YmxlJy4gICovCnR5cGVkZWYgbG9uZyBk
 b3VibGUgZG91YmxlX3Q7CS8qIGBkb3VibGUnIGV4cHJlc3Npb25zIGFyZSBldmFsdWF0ZWQg
 YXMKCQkJCSAgIGBsb25nIGRvdWJsZScuICAqLwoKLyogU2lnbmFsIHRoYXQgYm90aCB0eXBl
 cyBhcmUgYGxvbmcgZG91YmxlJy4gICovCiMgZGVmaW5lIEZMVF9FVkFMX01FVEhPRAkyCgov
 KiBEZWZpbmUgYElORklOSVRZJyBhcyB2YWx1ZSBvZiB0eXBlIGBmbG9hdCcuICAqLwojIGRl
 ZmluZSBJTkZJTklUWQlIVUdFX1ZBTEYKCi8qIFRoZSB2YWx1ZXMgcmV0dXJuZWQgYnkgYGls
 b2diJyBmb3IgMCBhbmQgTmFOIHJlc3BlY3RpdmVseS4gICovCiMgZGVmaW5lIEZQX0lMT0dC
 MAkweDgwMDAwMDAwCiMgZGVmaW5lIEZQX0lMT0dCTkFOCTB4ODAwMDAwMDAKCi8qIE51bWJl
 ciBvZiBkZWNpbWFsIGRpZ2l0cyBmb3IgdGhlIGBsb25nIGRvdWJsZScgdHlwZS4gICovCiMg
 ZGVmaW5lIERFQ0lNQUxfRElHCTE4CgojZW5kaWYJLyogSVNPIEM5OSAqLwoAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAuL3Vzci9pbmNsdWRlL2JpdHMvbWF0aGNhbGxzLmgAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAMDEwMDY0NAAwMDAzMzA1ADAwMTE2MzcAMDAwMDAwMjU0MzcAMDc1Mzc3MTU0MDcA
 MDE1NDI0ACAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AHVzdGFyICAAbWVuZ2VsAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABvc3MAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC8qIFByb3RvdHlwZSBk
 ZWNsYXJhdGlvbnMgZm9yIG1hdGggZnVuY3Rpb25zOyBoZWxwZXIgZmlsZSBmb3IgPG1hdGgu
 aD4uCiAgIENvcHlyaWdodCAoQykgMTk5NiwgMTk5NywgMTk5OCwgMTk5OSBGcmVlIFNvZnR3
 YXJlIEZvdW5kYXRpb24sIEluYy4KICAgVGhpcyBmaWxlIGlzIHBhcnQgb2YgdGhlIEdOVSBD
 IExpYnJhcnkuCgogICBUaGUgR05VIEMgTGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3Ug
 Y2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKICAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJt
 cyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcwogICBwdWJs
 aXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24g
 MiBvZiB0aGUKICAgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVy
 c2lvbi4KCiAgIFRoZSBHTlUgQyBMaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3Bl
 IHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiAgIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsg
 d2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCiAgIE1FUkNIQU5UQUJJTElU
 WSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCiAg
 IExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgoKICAg
 WW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkgR2Vu
 ZXJhbCBQdWJsaWMKICAgTGljZW5zZSBhbG9uZyB3aXRoIHRoZSBHTlUgQyBMaWJyYXJ5OyBz
 ZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3QsCiAgIHdyaXRlIHRvIHRoZSBGcmVl
 IFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSAtIFN1aXRlIDMz
 MCwKICAgQm9zdG9uLCBNQSAwMjExMS0xMzA3LCBVU0EuICAqLwoKLyogTk9URTogQmVjYXVz
 ZSBvZiB0aGUgc3BlY2lhbCB3YXkgdGhpcyBmaWxlIGlzIHVzZWQgYnkgPG1hdGguaD4sIHRo
 aXMKICAgZmlsZSBtdXN0IE5PVCBiZSBwcm90ZWN0ZWQgZnJvbSBtdWx0aXBsZSBpbmNsdXNp
 b24gYXMgaGVhZGVyIGZpbGVzCiAgIHVzdWFsbHkgYXJlLgoKICAgVGhpcyBmaWxlIHByb3Zp
 ZGVzIHByb3RvdHlwZSBkZWNsYXJhdGlvbnMgZm9yIHRoZSBtYXRoIGZ1bmN0aW9ucy4KICAg
 TW9zdCBmdW5jdGlvbnMgYXJlIGRlY2xhcmVkIHVzaW5nIHRoZSBtYWNybzoKCiAgIF9fTUFU
 SENBTEwgKE5BTUUsW19yXSwgKEFSR1MuLi4pKTsKCiAgIFRoaXMgbWVhbnMgdGhlcmUgaXMg
 YSBmdW5jdGlvbiBgTkFNRScgcmV0dXJuaW5nIGBkb3VibGUnIGFuZCBhIGZ1bmN0aW9uCiAg
 IGBOQU1FZicgcmV0dXJuaW5nIGBmbG9hdCcuICBFYWNoIHBsYWNlIGBfTWRvdWJsZV8nIGFw
 cGVhcnMgaW4gdGhlCiAgIHByb3RvdHlwZSwgdGhhdCBpcyBhY3R1YWxseSBgZG91YmxlJyBp
 biB0aGUgcHJvdG90eXBlIGZvciBgTkFNRScgYW5kCiAgIGBmbG9hdCcgaW4gdGhlIHByb3Rv
 dHlwZSBmb3IgYE5BTUVmJy4gIFJlZW50cmFudCB2YXJpYW50IGZ1bmN0aW9ucyBhcmUKICAg
 Y2FsbGVkIGBOQU1FX3InIGFuZCBgTkFNRWZfcicuCgogICBGdW5jdGlvbnMgcmV0dXJuaW5n
 IG90aGVyIHR5cGVzIGxpa2UgYGludCcgYXJlIGRlY2xhcmVkIHVzaW5nIHRoZSBtYWNybzoK
 CiAgIF9fTUFUSERFQ0wgKFRZUEUsIE5BTUUsW19yXSwgKEFSR1MuLi4pKTsKCiAgIFRoaXMg
 aXMganVzdCBsaWtlIF9fTUFUSENBTEwgYnV0IGZvciBhIGZ1bmN0aW9uIHJldHVybmluZyBg
 VFlQRScKICAgaW5zdGVhZCBvZiBgX01kb3VibGVfJy4gIEluIGFsbCBvZiB0aGVzZSBjYXNl
 cywgdGhlcmUgaXMgc3RpbGwKICAgYm90aCBhIGBOQU1FJyBhbmQgYSBgTkFNRWYnIHRoYXQg
 dGFrZXMgYGZsb2F0JyBhcmd1bWVudHMuCgogICBOb3RlIHRoYXQgdGhlcmUgbXVzdCBiZSBu
 byB3aGl0ZXNwYWNlIGJlZm9yZSB0aGUgYXJndW1lbnQgcGFzc2VkIGZvcgogICBOQU1FLCB0
 byBtYWtlIHRva2VuIHBhc3Rpbmcgd29yayB3aXRoIC10cmFkaXRpb25hbC4gICovCgojaWZu
 ZGVmIF9NQVRIX0gKICNlcnJvciAiTmV2ZXIgaW5jbHVkZSA8Yml0cy9tYXRoY2FsbHMuaD4g
 ZGlyZWN0bHk7IGluY2x1ZGUgPG1hdGguaD4gaW5zdGVhZC4iCiNlbmRpZgoKCi8qIFRyaWdv
 bm9tZXRyaWMgZnVuY3Rpb25zLiAgKi8KCi8qIEFyYyBjb3NpbmUgb2YgWC4gICovCl9fTUFU
 SENBTEwgKGFjb3MsLCAoX01kb3VibGVfIF9feCkpOwovKiBBcmMgc2luZSBvZiBYLiAgKi8K
 X19NQVRIQ0FMTCAoYXNpbiwsIChfTWRvdWJsZV8gX194KSk7Ci8qIEFyYyB0YW5nZW50IG9m
 IFguICAqLwpfX01BVEhDQUxMIChhdGFuLCwgKF9NZG91YmxlXyBfX3gpKTsKLyogQXJjIHRh
 bmdlbnQgb2YgWS9YLiAgKi8KX19NQVRIQ0FMTCAoYXRhbjIsLCAoX01kb3VibGVfIF9feSwg
 X01kb3VibGVfIF9feCkpOwoKLyogQ29zaW5lIG9mIFguICAqLwpfX01BVEhDQUxMIChjb3Ms
 LCAoX01kb3VibGVfIF9feCkpOwovKiBTaW5lIG9mIFguICAqLwpfX01BVEhDQUxMIChzaW4s
 LCAoX01kb3VibGVfIF9feCkpOwovKiBUYW5nZW50IG9mIFguICAqLwpfX01BVEhDQUxMICh0
 YW4sLCAoX01kb3VibGVfIF9feCkpOwoKI2lmZGVmIF9fVVNFX0dOVQovKiBDb3NpbmUgYW5k
 IHNpbmUgb2YgWC4gICovCl9fTUFUSERFQ0wgKHZvaWQsc2luY29zLCwKCSAgICAoX01kb3Vi
 bGVfIF9feCwgX01kb3VibGVfICpfX3NpbngsIF9NZG91YmxlXyAqX19jb3N4KSk7CiNlbmRp
 ZgoKLyogSHlwZXJib2xpYyBmdW5jdGlvbnMuICAqLwoKLyogSHlwZXJib2xpYyBjb3NpbmUg
 b2YgWC4gICovCl9fTUFUSENBTEwgKGNvc2gsLCAoX01kb3VibGVfIF9feCkpOwovKiBIeXBl
 cmJvbGljIHNpbmUgb2YgWC4gICovCl9fTUFUSENBTEwgKHNpbmgsLCAoX01kb3VibGVfIF9f
 eCkpOwovKiBIeXBlcmJvbGljIHRhbmdlbnQgb2YgWC4gICovCl9fTUFUSENBTEwgKHRhbmgs
 LCAoX01kb3VibGVfIF9feCkpOwoKI2lmIGRlZmluZWQgX19VU0VfTUlTQyB8fCBkZWZpbmVk
 IF9fVVNFX1hPUEVOX0VYVEVOREVEIHx8IGRlZmluZWQgX19VU0VfSVNPQzlYCi8qIEh5cGVy
 Ym9saWMgYXJjIGNvc2luZSBvZiBYLiAgKi8KX19NQVRIQ0FMTCAoYWNvc2gsLCAoX01kb3Vi
 bGVfIF9feCkpOwovKiBIeXBlcmJvbGljIGFyYyBzaW5lIG9mIFguICAqLwpfX01BVEhDQUxM
 IChhc2luaCwsIChfTWRvdWJsZV8gX194KSk7Ci8qIEh5cGVyYm9saWMgYXJjIHRhbmdlbnQg
 b2YgWC4gICovCl9fTUFUSENBTEwgKGF0YW5oLCwgKF9NZG91YmxlXyBfX3gpKTsKI2VuZGlm
 CgovKiBFeHBvbmVudGlhbCBhbmQgbG9nYXJpdGhtaWMgZnVuY3Rpb25zLiAgKi8KCi8qIEV4
 cG9uZW50aWFsIGZ1bmN0aW9uIG9mIFguICAqLwpfX01BVEhDQUxMIChleHAsLCAoX01kb3Vi
 bGVfIF9feCkpOwoKI2lmZGVmIF9fVVNFX0dOVQovKiBBIGZ1bmN0aW9uIG1pc3NpbmcgaW4g
 YWxsIHN0YW5kYXJkczogY29tcHV0ZSBleHBvbmVudCB0byBiYXNlIHRlbi4gICovCl9fTUFU
 SENBTEwgKGV4cDEwLCwgKF9NZG91YmxlXyBfX3gpKTsKLyogQW5vdGhlciBuYW1lIG9jY2Fz
 aW9uYWxseSB1c2VkLiAgKi8KX19NQVRIQ0FMTCAocG93MTAsLCAoX01kb3VibGVfIF9feCkp
 OwojZW5kaWYKCi8qIEJyZWFrIFZBTFVFIGludG8gYSBub3JtYWxpemVkIGZyYWN0aW9uIGFu
 ZCBhbiBpbnRlZ3JhbCBwb3dlciBvZiAyLiAgKi8KX19NQVRIQ0FMTCAoZnJleHAsLCAoX01k
 b3VibGVfIF9feCwgaW50ICpfX2V4cG9uZW50KSk7CgovKiBYIHRpbWVzICh0d28gdG8gdGhl
 IEVYUCBwb3dlcikuICAqLwpfX01BVEhDQUxMIChsZGV4cCwsIChfTWRvdWJsZV8gX194LCBp
 bnQgX19leHBvbmVudCkpOwoKLyogTmF0dXJhbCBsb2dhcml0aG0gb2YgWC4gICovCl9fTUFU
 SENBTEwgKGxvZywsIChfTWRvdWJsZV8gX194KSk7CgovKiBCYXNlLXRlbiBsb2dhcml0aG0g
 b2YgWC4gICovCl9fTUFUSENBTEwgKGxvZzEwLCwgKF9NZG91YmxlXyBfX3gpKTsKCi8qIEJy
 ZWFrIFZBTFVFIGludG8gaW50ZWdyYWwgYW5kIGZyYWN0aW9uYWwgcGFydHMuICAqLwpfX01B
 VEhDQUxMIChtb2RmLCwgKF9NZG91YmxlXyBfX3gsIF9NZG91YmxlXyAqX19pcHRyKSk7Cgoj
 aWYgZGVmaW5lZCBfX1VTRV9NSVNDIHx8IGRlZmluZWQgX19VU0VfWE9QRU5fRVhURU5ERUQg
 fHwgZGVmaW5lZCBfX1VTRV9JU09DOVgKLyogUmV0dXJuIGV4cChYKSAtIDEuICAqLwpfX01B
 VEhDQUxMIChleHBtMSwsIChfTWRvdWJsZV8gX194KSk7CgovKiBSZXR1cm4gbG9nKDEgKyBY
 KS4gICovCl9fTUFUSENBTEwgKGxvZzFwLCwgKF9NZG91YmxlXyBfX3gpKTsKCi8qIFJldHVy
 biB0aGUgYmFzZSAyIHNpZ25lZCBpbnRlZ3JhbCBleHBvbmVudCBvZiBYLiAgKi8KX19NQVRI
 Q0FMTCAobG9nYiwsIChfTWRvdWJsZV8gX194KSk7CiNlbmRpZgoKI2lmZGVmIF9fVVNFX0lT
 T0M5WAovKiBDb21wdXRlIGJhc2UtMiBleHBvbmVudGlhbCBvZiBYLiAgKi8KX19NQVRIQ0FM
 TCAoZXhwMiwsIChfTWRvdWJsZV8gX194KSk7CgovKiBDb21wdXRlIGJhc2UtMiBsb2dhcml0
 aG0gb2YgWC4gICovCl9fTUFUSENBTEwgKGxvZzIsLCAoX01kb3VibGVfIF9feCkpOwojZW5k
 aWYKCgovKiBQb3dlciBmdW5jdGlvbnMuICAqLwoKLyogUmV0dXJuIFggdG8gdGhlIFkgcG93
 ZXIuICAqLwpfX01BVEhDQUxMIChwb3csLCAoX01kb3VibGVfIF9feCwgX01kb3VibGVfIF9f
 eSkpOwoKLyogUmV0dXJuIHRoZSBzcXVhcmUgcm9vdCBvZiBYLiAgKi8KX19NQVRIQ0FMTCAo
 c3FydCwsIChfTWRvdWJsZV8gX194KSk7CgojaWYgZGVmaW5lZCBfX1VTRV9NSVNDIHx8IGRl
 ZmluZWQgX19VU0VfWE9QRU4gfHwgZGVmaW5lZCBfX1VTRV9JU09DOVgKLyogUmV0dXJuIGBz
 cXJ0KFgqWCArIFkqWSknLiAgKi8KX19NQVRIQ0FMTCAoaHlwb3QsLCAoX01kb3VibGVfIF9f
 eCwgX01kb3VibGVfIF9feSkpOwojZW5kaWYKCiNpZiBkZWZpbmVkIF9fVVNFX01JU0MgfHwg
 ZGVmaW5lZCBfX1VTRV9YT1BFTl9FWFRFTkRFRCB8fCBkZWZpbmVkIF9fVVNFX0lTT0M5WAov
 KiBSZXR1cm4gdGhlIGN1YmUgcm9vdCBvZiBYLiAgKi8KX19NQVRIQ0FMTCAoY2JydCwsIChf
 TWRvdWJsZV8gX194KSk7CiNlbmRpZgoKCi8qIE5lYXJlc3QgaW50ZWdlciwgYWJzb2x1dGUg
 dmFsdWUsIGFuZCByZW1haW5kZXIgZnVuY3Rpb25zLiAgKi8KCi8qIFNtYWxsZXN0IGludGVn
 cmFsIHZhbHVlIG5vdCBsZXNzIHRoYW4gWC4gICovCl9fTUFUSENBTEwgKGNlaWwsLCAoX01k
 b3VibGVfIF9feCkpOwoKLyogQWJzb2x1dGUgdmFsdWUgb2YgWC4gICovCl9fTUFUSENBTExY
 IChmYWJzLCwgKF9NZG91YmxlXyBfX3gpLCAoX19jb25zdF9fKSk7CgovKiBMYXJnZXN0IGlu
 dGVnZXIgbm90IGdyZWF0ZXIgdGhhbiBYLiAgKi8KX19NQVRIQ0FMTCAoZmxvb3IsLCAoX01k
 b3VibGVfIF9feCkpOwoKLyogRmxvYXRpbmctcG9pbnQgbW9kdWxvIHJlbWFpbmRlciBvZiBY
 L1kuICAqLwpfX01BVEhDQUxMIChmbW9kLCwgKF9NZG91YmxlXyBfX3gsIF9NZG91YmxlXyBf
 X3kpKTsKCgovKiBSZXR1cm4gMCBpZiBWQUxVRSBpcyBmaW5pdGUgb3IgTmFOLCArMSBpZiBp
 dAogICBpcyArSW5maW5pdHksIC0xIGlmIGl0IGlzIC1JbmZpbml0eS4gICovCl9fTUFUSERF
 Q0xfMSAoaW50LF9faXNpbmYsLCAoX01kb3VibGVfIF9fdmFsdWUpKSBfX2F0dHJpYnV0ZV9f
 ICgoX19jb25zdF9fKSk7CgovKiBSZXR1cm4gbm9uemVybyBpZiBWQUxVRSBpcyBmaW5pdGUg
 YW5kIG5vdCBOYU4uICAqLwpfX01BVEhERUNMXzEgKGludCxfX2Zpbml0ZSwsIChfTWRvdWJs
 ZV8gX192YWx1ZSkpIF9fYXR0cmlidXRlX18gKChfX2NvbnN0X18pKTsKCiNpZmRlZiBfX1VT
 RV9NSVNDCi8qIFJldHVybiAwIGlmIFZBTFVFIGlzIGZpbml0ZSBvciBOYU4sICsxIGlmIGl0
 CiAgIGlzICtJbmZpbml0eSwgLTEgaWYgaXQgaXMgLUluZmluaXR5LiAgKi8KX19NQVRIREVD
 TF8xIChpbnQsaXNpbmYsLCAoX01kb3VibGVfIF9fdmFsdWUpKSBfX2F0dHJpYnV0ZV9fICgo
 X19jb25zdF9fKSk7CgovKiBSZXR1cm4gbm9uemVybyBpZiBWQUxVRSBpcyBmaW5pdGUgYW5k
 IG5vdCBOYU4uICAqLwpfX01BVEhERUNMXzEgKGludCxmaW5pdGUsLCAoX01kb3VibGVfIF9f
 dmFsdWUpKSBfX2F0dHJpYnV0ZV9fICgoX19jb25zdF9fKSk7CgovKiBEZWFsIHdpdGggYW4g
 aW5maW5pdGUgb3IgTmFOIHJlc3VsdC4KICAgSWYgRVJST1IgaXMgRVJBTkdFLCByZXN1bHQg
 aXMgK0luZjsKICAgaWYgRVJST1IgaXMgLSBFUkFOR0UsIHJlc3VsdCBpcyAtSW5mOwogICBv
 dGhlcndpc2UgcmVzdWx0IGlzIE5hTi4KICAgVGhpcyB3aWxsIHNldCBgZXJybm8nIHRvIGVp
 dGhlciBFUkFOR0Ugb3IgRURPTSwKICAgYW5kIG1heSByZXR1cm4gYW4gaW5maW5pdHkgb3Ig
 TmFOLCBvciBtYXkgZG8gc29tZXRoaW5nIGVsc2UuICAqLwpfX01BVEhDQUxMWCAoaW5mbmFu
 LCwgKGludCBfX2Vycm9yKSwgKF9fY29uc3RfXykpOwoKLyogUmV0dXJuIHRoZSByZW1haW5k
 ZXIgb2YgWC9ZLiAgKi8KX19NQVRIQ0FMTCAoZHJlbSwsIChfTWRvdWJsZV8gX194LCBfTWRv
 dWJsZV8gX195KSk7CgoKLyogUmV0dXJuIHRoZSBmcmFjdGlvbmFsIHBhcnQgb2YgWCBhZnRl
 ciBkaXZpZGluZyBvdXQgYGlsb2diIChYKScuICAqLwpfX01BVEhDQUxMIChzaWduaWZpY2Fu
 ZCwsIChfTWRvdWJsZV8gX194KSk7CiNlbmRpZiAvKiBVc2UgbWlzYy4gICovCgojaWYgZGVm
 aW5lZCBfX1VTRV9NSVNDIHx8IGRlZmluZWQgX19VU0VfSVNPQzlYCi8qIFJldHVybiBYIHdp
 dGggaXRzIHNpZ25lZCBjaGFuZ2VkIHRvIFkncy4gICovCl9fTUFUSENBTExYIChjb3B5c2ln
 biwsIChfTWRvdWJsZV8gX194LCBfTWRvdWJsZV8gX195KSwgKF9fY29uc3RfXykpOwojZW5k
 aWYKCiNpZmRlZiBfX1VTRV9JU09DOVgKLyogUmV0dXJuIHJlcHJlc2VudGF0aW9uIG9mIE5h
 TiBmb3IgZG91YmxlIHR5cGUuICAqLwpfX01BVEhDQUxMWCAobmFuLCwgKF9fY29uc3QgY2hh
 ciAqX190YWdiKSwgKF9fY29uc3RfXykpOwojZW5kaWYKCgovKiBSZXR1cm4gbm9uemVybyBp
 ZiBWQUxVRSBpcyBub3QgYSBudW1iZXIuICAqLwpfX01BVEhERUNMXzEgKGludCxfX2lzbmFu
 LCwgKF9NZG91YmxlXyBfX3ZhbHVlKSkgX19hdHRyaWJ1dGVfXyAoKF9fY29uc3RfXykpOwoK
 I2lmIGRlZmluZWQgX19VU0VfTUlTQyB8fCBkZWZpbmVkIF9fVVNFX1hPUEVOCi8qIFJldHVy
 biBub256ZXJvIGlmIFZBTFVFIGlzIG5vdCBhIG51bWJlci4gICovCl9fTUFUSERFQ0xfMSAo
 aW50LGlzbmFuLCwgKF9NZG91YmxlXyBfX3ZhbHVlKSkgX19hdHRyaWJ1dGVfXyAoKF9fY29u
 c3RfXykpOwoKLyogQmVzc2VsIGZ1bmN0aW9ucy4gICovCl9fTUFUSENBTEwgKGowLCwgKF9N
 ZG91YmxlXykpOwpfX01BVEhDQUxMIChqMSwsIChfTWRvdWJsZV8pKTsKX19NQVRIQ0FMTCAo
 am4sLCAoaW50LCBfTWRvdWJsZV8pKTsKX19NQVRIQ0FMTCAoeTAsLCAoX01kb3VibGVfKSk7
 Cl9fTUFUSENBTEwgKHkxLCwgKF9NZG91YmxlXykpOwpfX01BVEhDQUxMICh5biwsIChpbnQs
 IF9NZG91YmxlXykpOwojZW5kaWYKCgojaWYgZGVmaW5lZCBfX1VTRV9NSVNDIHx8IGRlZmlu
 ZWQgX19VU0VfWE9QRU4gfHwgZGVmaW5lZCBfX1VTRV9JU09DOVgKLyogRXJyb3IgYW5kIGdh
 bW1hIGZ1bmN0aW9ucy4gICovCl9fTUFUSENBTEwgKGVyZiwsIChfTWRvdWJsZV8pKTsKX19N
 QVRIQ0FMTCAoZXJmYywsIChfTWRvdWJsZV8pKTsKX19NQVRIQ0FMTCAobGdhbW1hLCwgKF9N
 ZG91YmxlXykpOwpfX01BVEhDQUxMICh0Z2FtbWEsLCAoX01kb3VibGVfKSk7CiNlbmRpZgoK
 I2lmIGRlZmluZWQgX19VU0VfTUlTQyB8fCBkZWZpbmVkIF9fVVNFX1hPUEVOCi8qIE9ic29s
 ZXRlIGFsaWFzIGZvciBgbGdhbW1hJy4gICovCl9fTUFUSENBTEwgKGdhbW1hLCwgKF9NZG91
 YmxlXykpOwojZW5kaWYKCiNpZmRlZiBfX1VTRV9NSVNDCi8qIFJlZW50cmFudCB2ZXJzaW9u
 IG9mIGxnYW1tYS4gIFRoaXMgZnVuY3Rpb24gdXNlcyB0aGUgZ2xvYmFsIHZhcmlhYmxlCiAg
 IGBzaWduZ2FtJy4gIFRoZSByZWVudHJhbnQgdmVyc2lvbiBpbnN0ZWFkIHRha2VzIGEgcG9p
 bnRlciBhbmQgc3RvcmVzCiAgIHRoZSB2YWx1ZSB0aHJvdWdoIGl0LiAgKi8KX19NQVRIQ0FM
 TCAobGdhbW1hLF9yLCAoX01kb3VibGVfLCBpbnQgKl9fc2lnbmdhbXApKTsKI2VuZGlmCgoK
 I2lmIGRlZmluZWQgX19VU0VfTUlTQyB8fCBkZWZpbmVkIF9fVVNFX1hPUEVOX0VYVEVOREVE
 IHx8IGRlZmluZWQgX19VU0VfSVNPQzlYCi8qIFJldHVybiB0aGUgaW50ZWdlciBuZWFyZXN0
 IFggaW4gdGhlIGRpcmVjdGlvbiBvZiB0aGUKICAgcHJldmFpbGluZyByb3VuZGluZyBtb2Rl
 LiAgKi8KX19NQVRIQ0FMTCAocmludCwsIChfTWRvdWJsZV8gX194KSk7CgovKiBSZXR1cm4g
 WCArIGVwc2lsb24gaWYgWCA8IFksIFggLSBlcHNpbG9uIGlmIFggPiBZLiAgKi8KX19NQVRI
 Q0FMTFggKG5leHRhZnRlciwsIChfTWRvdWJsZV8gX194LCBfTWRvdWJsZV8gX195KSwgKF9f
 Y29uc3RfXykpOwojIGlmZGVmIF9fVVNFX0lTT0M5WApfX01BVEhDQUxMWCAobmV4dHRvd2Fy
 ZCwsIChfTWRvdWJsZV8gX194LCBsb25nIGRvdWJsZSBfX3kpLCAoX19jb25zdF9fKSk7CiMg
 ZW5kaWYKCi8qIFJldHVybiB0aGUgcmVtYWluZGVyIG9mIGludGVnZXIgZGl2aXNvbiBYIC8g
 WSB3aXRoIGluZmluaXRlIHByZWNpc2lvbi4gICovCl9fTUFUSENBTEwgKHJlbWFpbmRlciws
 IChfTWRvdWJsZV8gX194LCBfTWRvdWJsZV8gX195KSk7CgojIGlmIGRlZmluZWQgX19VU0Vf
 TUlTQyB8fCBkZWZpbmVkIF9fVVNFX1hPUEVOX0VYVEVOREVECi8qIFJldHVybiBYIHRpbWVz
 ICgyIHRvIHRoZSBOdGggcG93ZXIpLiAgKi8KX19NQVRIQ0FMTCAoc2NhbGIsLCAoX01kb3Vi
 bGVfIF9feCwgX01kb3VibGVfIF9fbikpOwojIGVuZGlmCgovKiBSZXR1cm4gWCB0aW1lcyAo
 MiB0byB0aGUgTnRoIHBvd2VyKS4gICovCl9fTUFUSENBTEwgKHNjYWxibiwsIChfTWRvdWJs
 ZV8gX194LCBpbnQgX19uKSk7CgovKiBSZXR1cm4gdGhlIGJpbmFyeSBleHBvbmVudCBvZiBY
 LCB3aGljaCBtdXN0IGJlIG5vbnplcm8uICAqLwpfX01BVEhERUNMIChpbnQsaWxvZ2IsLCAo
 X01kb3VibGVfIF9feCkpOwojZW5kaWYKCiNpZmRlZiBfX1VTRV9JU09DOVgKLyogUmV0dXJu
 IFggdGltZXMgKDIgdG8gdGhlIE50aCBwb3dlcikuICAqLwpfX01BVEhDQUxMIChzY2FsYmxu
 LCwgKF9NZG91YmxlXyBfX3gsIGxvbmcgaW50IF9fbikpOwoKLyogUm91bmQgWCB0byBpbnRl
 Z3JhbCB2YWx1ZSBpbiBmbG9hdGluZy1wb2ludCBmb3JtYXQgdXNpbmcgY3VycmVudAogICBy
 b3VuZGluZyBkaXJlY3Rpb24sIGJ1dCBkbyBub3QgcmFpc2UgaW5leGFjdCBleGNlcHRpb24u
 ICAqLwpfX01BVEhDQUxMIChuZWFyYnlpbnQsLCAoX01kb3VibGVfIF9feCkpOwoKLyogUm91
 bmQgWCB0byBuZWFyZXN0IGludGVncmFsIHZhbHVlLCByb3VuZGluZyBoYWxmd2F5IGNhc2Vz
 IGF3YXkgZnJvbQogICB6ZXJvLiAgKi8KX19NQVRIQ0FMTCAocm91bmQsLCAoX01kb3VibGVf
 IF9feCkpOwoKLyogUm91bmQgWCB0byB0aGUgaW50ZWdyYWwgdmFsdWUgaW4gZmxvYXRpbmct
 cG9pbnQgZm9ybWF0IG5lYXJlc3QgYnV0CiAgIG5vdCBsYXJnZXIgaW4gbWFnbml0dWRlLiAg
 Ki8KX19NQVRIQ0FMTFggKHRydW5jLCwgKF9NZG91YmxlXyBfX3gpLCAoX19jb25zdF9fKSk7
 CgovKiBDb21wdXRlIHJlbWFpbmRlciBvZiBYIGFuZCBZIGFuZCBwdXQgaW4gKlFVTyBhIHZh
 bHVlIHdpdGggc2lnbiBvZiB4L3kKICAgYW5kIG1hZ25pdHVkZSBjb25ncnVlbnQgYG1vZCAy
 Xm4nIHRvIHRoZSBtYWduaXR1ZGUgb2YgdGhlIGludGVncmFsCiAgIHF1b3RpZW50IHgveSwg
 d2l0aCBuID49IDMuICAqLwpfX01BVEhDQUxMIChyZW1xdW8sLCAoX01kb3VibGVfIF9feCwg
 X01kb3VibGVfIF9feSwgaW50ICpfX3F1bykpOwoKCi8qIENvbnZlcnNpb24gZnVuY3Rpb25z
 LiAgKi8KCi8qIFJvdW5kIFggdG8gbmVhcmVzdCBpbnRlZ3JhbCB2YWx1ZSBhY2NvcmRpbmcg
 dG8gY3VycmVudCByb3VuZGluZwogICBkaXJlY3Rpb24uICAqLwpfX01BVEhERUNMIChsb25n
 IGludCxscmludCwsIChfTWRvdWJsZV8gX194KSk7Cl9fTUFUSERFQ0wgKGxvbmcgbG9uZyBp
 bnQsbGxyaW50LCwgKF9NZG91YmxlXyBfX3gpKTsKCi8qIFJvdW5kIFggdG8gbmVhcmVzdCBp
 bnRlZ3JhbCB2YWx1ZSwgcm91bmRpbmcgaGFsZndheSBjYXNlcyBhd2F5IGZyb20KICAgemVy
 by4gICovCl9fTUFUSERFQ0wgKGxvbmcgaW50LGxyb3VuZCwsIChfTWRvdWJsZV8gX194KSk7
 Cl9fTUFUSERFQ0wgKGxvbmcgbG9uZyBpbnQsbGxyb3VuZCwsIChfTWRvdWJsZV8gX194KSk7
 CgoKLyogUmV0dXJuIHBvc2l0aXZlIGRpZmZlcmVuY2UgYmV0d2VlbiBYIGFuZCBZLiAgKi8K
 X19NQVRIQ0FMTCAoZmRpbSwsIChfTWRvdWJsZV8gX194LCBfTWRvdWJsZV8gX195KSk7Cgov
 KiBSZXR1cm4gbWF4aW11bSBudW1lcmljIHZhbHVlIGZyb20gWCBhbmQgWS4gICovCl9fTUFU
 SENBTEwgKGZtYXgsLCAoX01kb3VibGVfIF9feCwgX01kb3VibGVfIF9feSkpOwoKLyogUmV0
 dXJuIG1pbmltdW0gbnVtZXJpYyB2YWx1ZSBmcm9tIFggYW5kIFkuICAqLwpfX01BVEhDQUxM
 IChmbWluLCwgKF9NZG91YmxlXyBfX3gsIF9NZG91YmxlXyBfX3kpKTsKCgovKiBDbGFzc2lm
 eSBnaXZlbiBudW1iZXIuICAqLwpfX01BVEhERUNMXzEgKGludCwgX19mcGNsYXNzaWZ5LCwg
 KF9NZG91YmxlXyBfX3ZhbHVlKSkKICAgICBfX2F0dHJpYnV0ZV9fICgoX19jb25zdF9fKSk7
 CgovKiBUZXN0IGZvciBuZWdhdGl2ZSBudW1iZXIuICAqLwpfX01BVEhERUNMXzEgKGludCwg
 X19zaWduYml0LCwgKF9NZG91YmxlXyBfX3ZhbHVlKSkKICAgICBfX2F0dHJpYnV0ZV9fICgo
 X19jb25zdF9fKSk7CgoKLyogTXVsdGlwbHktYWRkIGZ1bmN0aW9uIGNvbXB1dGVkIGFzIGEg
 dGVybmFyeSBvcGVyYXRpb24uICAqLwpfX01BVEhDQUxMIChmbWEsLCAoX01kb3VibGVfIF9f
 eCwgX01kb3VibGVfIF9feSwgX01kb3VibGVfIF9feikpOwojZW5kaWYgLyogVXNlIElTTyBD
 IDlYLiAgKi8KAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAALi91c3IvaW5jbHVkZS9iaXRzL21hdGhpbmxpbmUuaAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAADAxMDA2NDQAMDAwMzMwNQAwMDExNjM3ADAwMDAwMDU1MTU3ADA3NTY0NTAx
 MzIxADAxNTU3MgAgMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAB1c3RhciAgAG1lbmdlbAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAb3NzAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAvKiBJbmxpbmUg
 bWF0aCBmdW5jdGlvbnMgZm9yIGkzODcuCiAgIENvcHlyaWdodCAoQykgMTk5NSwgMTk5Niwg
 MTk5NywgMTk5OCwgMTk5OSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KICAgVGhp
 cyBmaWxlIGlzIHBhcnQgb2YgdGhlIEdOVSBDIExpYnJhcnkuCiAgIENvbnRyaWJ1dGVkIGJ5
 IEpvaG4gQy4gQm93bWFuIDxib3dtYW5AbWF0aC51YWxiZXJ0YS5jYT4sIDE5OTUuCgogICBU
 aGUgR05VIEMgTGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0
 ZSBpdCBhbmQvb3IKICAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExp
 YnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcwogICBwdWJsaXNoZWQgYnkgdGhlIEZy
 ZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUKICAgTGlj
 ZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KCiAgIFRoZSBH
 TlUgQyBMaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBi
 ZSB1c2VmdWwsCiAgIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRo
 ZSBpbXBsaWVkIHdhcnJhbnR5IG9mCiAgIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZP
 UiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCiAgIExpYnJhcnkgR2VuZXJh
 bCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgoKICAgWW91IHNob3VsZCBoYXZl
 IHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKICAg
 TGljZW5zZSBhbG9uZyB3aXRoIHRoZSBHTlUgQyBMaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09Q
 WUlORy5MSUIuICBJZiBub3QsCiAgIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5k
 YXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSAtIFN1aXRlIDMzMCwKICAgQm9zdG9uLCBN
 QSAwMjExMS0xMzA3LCBVU0EuICAqLwoKI2lmbmRlZiBfTUFUSF9ICiMgZXJyb3IgIk5ldmVy
 IHVzZSA8Yml0cy9tYXRoaW5saW5lLmg+IGRpcmVjdGx5OyBpbmNsdWRlIDxtYXRoLmg+IGlu
 c3RlYWQuIgojZW5kaWYKCiNpZmRlZiBfX2NwbHVzcGx1cwojIGRlZmluZSBfX01BVEhfSU5M
 SU5FIF9faW5saW5lCiNlbHNlCiMgZGVmaW5lIF9fTUFUSF9JTkxJTkUgZXh0ZXJuIF9faW5s
 aW5lCiNlbmRpZgoKCiNpZiBkZWZpbmVkIF9fVVNFX0lTT0M5WCAmJiBkZWZpbmVkIF9fR05V
 Q19fICYmIF9fR05VQ19fID49IDIKLyogSVNPIEMgOVggZGVmaW5lcyBzb21lIG1hY3JvcyB0
 byBwZXJmb3JtIHVub3JkZXJlZCBjb21wYXJpc29ucy4gIFRoZQogICBpeDg3IEZQVSBzdXBw
 b3J0cyB0aGlzIHdpdGggc3BlY2lhbCBvcGNvZGVzIGFuZCB3ZSBzaG91bGQgdXNlIHRoZW0u
 CiAgIFRoZXNlIG11c3Qgbm90IGJlIGlubGluZSBmdW5jdGlvbnMgc2luY2Ugd2UgaGF2ZSB0
 byBiZSBhYmxlIHRvIGhhbmRsZQogICBhbGwgZmxvYXRpbmctcG9pbnQgdHlwZXMuICAqLwoj
 IGlmZGVmIF9faTY4Nl9fCi8qIEZvciB0aGUgUGVudGl1bVBybyBhbmQgbW9yZSByZWNlbnQg
 cHJvY2Vzc29ycyB3ZSBjYW4gcHJvdmlkZQogICBiZXR0ZXIgY29kZS4gICovCiMgIGRlZmlu
 ZSBpc2dyZWF0ZXIoeCwgeSkgXAogICAgICh7IHJlZ2lzdGVyIGNoYXIgX19yZXN1bHQ7CQkJ
 CQkJICAgICAgXAoJX19hc21fXyAoImZ1Y29taXAgJSVzdCgxKSwgJSVzdDsgc2V0YSAlJWFs
 IgkJCSAgICAgIFwKCQkgOiAiPWEiIChfX3Jlc3VsdCkgOiAidSIgKHkpLCAidCIgKHgpIDog
 ImNjIiwgInN0Iik7CSAgICAgIFwKCV9fcmVzdWx0OyB9KQojICBkZWZpbmUgaXNncmVhdGVy
 ZXF1YWwoeCwgeSkgXAogICAgICh7IHJlZ2lzdGVyIGNoYXIgX19yZXN1bHQ7CQkJCQkJICAg
 ICAgXAoJX19hc21fXyAoImZ1Y29taXAgJSVzdCgxKSwgJSVzdDsgc2V0YWUgJSVhbCIJCQkg
 ICAgICBcCgkJIDogIj1hIiAoX19yZXN1bHQpIDogInUiICh5KSwgInQiICh4KSA6ICJjYyIs
 ICJzdCIpOwkgICAgICBcCglfX3Jlc3VsdDsgfSkKCiMgIGRlZmluZSBpc2xlc3MoeCwgeSkg
 XAogICAgICh7IHJlZ2lzdGVyIGNoYXIgX19yZXN1bHQ7CQkJCQkJICAgICAgXAoJX19hc21f
 XyAoImZ1Y29taXAgJSVzdCgxKSwgJSVzdDsgc2V0YSAlJWFsIgkJCSAgICAgIFwKCQkgOiAi
 PWEiIChfX3Jlc3VsdCkgOiAidSIgKHgpLCAidCIgKHkpIDogImNjIiwgInN0Iik7CSAgICAg
 IFwKCV9fcmVzdWx0OyB9KQoKIyAgZGVmaW5lIGlzbGVzc2VxdWFsKHgsIHkpIFwKICAgICAo
 eyByZWdpc3RlciBjaGFyIF9fcmVzdWx0OwkJCQkJCSAgICAgIFwKCV9fYXNtX18gKCJmdWNv
 bWlwICUlc3QoMSksICUlc3Q7IHNldGFlICUlYWwiCQkJICAgICAgXAoJCSA6ICI9YSIgKF9f
 cmVzdWx0KSA6ICJ1IiAoeCksICJ0IiAoeSkgOiAiY2MiLCAic3QiKTsJICAgICAgXAoJX19y
 ZXN1bHQ7IH0pCgojICBkZWZpbmUgaXNsZXNzZ3JlYXRlcih4LCB5KSBcCiAgICAgKHsgcmVn
 aXN0ZXIgY2hhciBfX3Jlc3VsdDsJCQkJCQkgICAgICBcCglfX2FzbV9fICgiZnVjb21pcCAl
 JXN0KDEpLCAlJXN0OyBzZXRuZSAlJWFsIgkJCSAgICAgIFwKCQkgOiAiPWEiIChfX3Jlc3Vs
 dCkgOiAidSIgKHkpLCAidCIgKHgpIDogImNjIiwgInN0Iik7CSAgICAgIFwKCV9fcmVzdWx0
 OyB9KQoKIyAgZGVmaW5lIGlzdW5vcmRlcmVkKHgsIHkpIFwKICAgICAoeyByZWdpc3RlciBj
 aGFyIF9fcmVzdWx0OwkJCQkJCSAgICAgIFwKCV9fYXNtX18gKCJmdWNvbWlwICUlc3QoMSks
 ICUlc3Q7IHNldHAgJSVhbCIJCQkgICAgICBcCgkJIDogIj1hIiAoX19yZXN1bHQpIDogInUi
 ICh5KSwgInQiICh4KSA6ICJjYyIsICJzdCIpOwkgICAgICBcCglfX3Jlc3VsdDsgfSkKIyBl
 bHNlCi8qIFRoaXMgaXMgdGhlIGR1bWIsIHBvcnRhYmxlIGNvZGUgZm9yIGkzODYgYW5kIGFi
 b3ZlLiAgKi8KIyAgZGVmaW5lIGlzZ3JlYXRlcih4LCB5KSBcCiAgICAgKHsgcmVnaXN0ZXIg
 Y2hhciBfX3Jlc3VsdDsJCQkJCQkgICAgICBcCglfX2FzbV9fICgiZnVjb21wcDsgZm5zdHN3
 OyB0ZXN0YiAkMHg0NSwgJSVhaDsgc2V0eiAlJWFsIgkgICAgICBcCgkJIDogIj1hIiAoX19y
 ZXN1bHQpIDogInUiICh5KSwgInQiICh4KSA6ICJjYyIsICJzdCIsICJzdCgxKSIpOyBcCglf
 X3Jlc3VsdDsgfSkKCiMgIGRlZmluZSBpc2dyZWF0ZXJlcXVhbCh4LCB5KSBcCiAgICAgKHsg
 cmVnaXN0ZXIgY2hhciBfX3Jlc3VsdDsJCQkJCQkgICAgICBcCglfX2FzbV9fICgiZnVjb21w
 cDsgZm5zdHN3OyB0ZXN0YiAkMHgwNSwgJSVhaDsgc2V0eiAlJWFsIgkgICAgICBcCgkJIDog
 Ij1hIiAoX19yZXN1bHQpIDogInUiICh5KSwgInQiICh4KSA6ICJjYyIsICJzdCIsICJzdCgx
 KSIpOyBcCglfX3Jlc3VsdDsgfSkKCiMgIGRlZmluZSBpc2xlc3MoeCwgeSkgXAogICAgICh7
 IHJlZ2lzdGVyIGNoYXIgX19yZXN1bHQ7CQkJCQkJICAgICAgXAoJX19hc21fXyAoImZ1Y29t
 cHA7IGZuc3RzdzsgdGVzdGIgJDB4NDUsICUlYWg7IHNldHogJSVhbCIJICAgICAgXAoJCSA6
 ICI9YSIgKF9fcmVzdWx0KSA6ICJ1IiAoeCksICJ0IiAoeSkgOiAiY2MiLCAic3QiLCAic3Qo
 MSkiKTsgXAoJX19yZXN1bHQ7IH0pCgojICBkZWZpbmUgaXNsZXNzZXF1YWwoeCwgeSkgXAog
 ICAgICh7IHJlZ2lzdGVyIGNoYXIgX19yZXN1bHQ7CQkJCQkJICAgICAgXAoJX19hc21fXyAo
 ImZ1Y29tcHA7IGZuc3RzdzsgdGVzdGIgJDB4MDUsICUlYWg7IHNldHogJSVhbCIJICAgICAg
 XAoJCSA6ICI9YSIgKF9fcmVzdWx0KSA6ICJ1IiAoeCksICJ0IiAoeSkgOiAiY2MiLCAic3Qi
 LCAic3QoMSkiKTsgXAoJX19yZXN1bHQ7IH0pCgojICBkZWZpbmUgaXNsZXNzZ3JlYXRlcih4
 LCB5KSBcCiAgICAgKHsgcmVnaXN0ZXIgY2hhciBfX3Jlc3VsdDsJCQkJCQkgICAgICBcCglf
 X2FzbV9fICgiZnVjb21wcDsgZm5zdHN3OyB0ZXN0YiAkMHg0NCwgJSVhaDsgc2V0eiAlJWFs
 IgkgICAgICBcCgkJIDogIj1hIiAoX19yZXN1bHQpIDogInUiICh5KSwgInQiICh4KSA6ICJj
 YyIsICJzdCIsICJzdCgxKSIpOyBcCglfX3Jlc3VsdDsgfSkKCiMgIGRlZmluZSBpc3Vub3Jk
 ZXJlZCh4LCB5KSBcCiAgICAgKHsgcmVnaXN0ZXIgY2hhciBfX3Jlc3VsdDsJCQkJCQkgICAg
 ICBcCglfX2FzbV9fICgiZnVjb21wcDsgZm5zdHN3OyBzYWhmOyBzZXRwICUlYWwiCQkJICAg
 ICAgXAoJCSA6ICI9YSIgKF9fcmVzdWx0KSA6ICJ1IiAoeSksICJ0IiAoeCkgOiAiY2MiLCAi
 c3QiLCAic3QoMSkiKTsgXAoJX19yZXN1bHQ7IH0pCiMgZW5kaWYJLyogX19pNjg2X18gKi8K
 Ci8qIFRoZSBnY2MsIHZlcnNpb24gMi43IG9yIGJlbG93LCBoYXMgcHJvYmxlbXMgd2l0aCBh
 bGwgdGhpcyBpbmxpbmluZwogICBjb2RlLiAgU28gZGlzYWJsZSBpdCBmb3IgdGhpcyB2ZXJz
 aW9uIG9mIHRoZSBjb21waWxlci4gICovCiMgaWYgKF9fR05VQ19fID4gMiB8fCAoX19HTlVD
 X18gPT0gMiAmJiBfX0dOVUNfTUlOT1JfXyA+IDcpKQovKiBUZXN0IGZvciBuZWdhdGl2ZSBu
 dW1iZXIuICBVc2VkIGluIHRoZSBzaWduYml0KCkgbWFjcm8uICAqLwpfX01BVEhfSU5MSU5F
 IGludApfX3NpZ25iaXRmIChmbG9hdCBfX3gpCnsKICBfX2V4dGVuc2lvbl9fIHVuaW9uIHsg
 ZmxvYXQgX19mOyBpbnQgX19pOyB9IF9fdSA9IHsgX19mOiBfX3ggfTsKICByZXR1cm4gX191
 Ll9faSA8IDA7Cn0KX19NQVRIX0lOTElORSBpbnQKX19zaWduYml0IChkb3VibGUgX194KQp7
 CiAgX19leHRlbnNpb25fXyB1bmlvbiB7IGRvdWJsZSBfX2Q7IGludCBfX2lbMl07IH0gX191
 ID0geyBfX2Q6IF9feCB9OwogIHJldHVybiBfX3UuX19pWzFdIDwgMDsKfQpfX01BVEhfSU5M
 SU5FIGludApfX3NpZ25iaXRsIChsb25nIGRvdWJsZSBfX3gpCnsKICBfX2V4dGVuc2lvbl9f
 IHVuaW9uIHsgbG9uZyBkb3VibGUgX19sOyBpbnQgX19pWzNdOyB9IF9fdSA9IHsgX19sOiBf
 X3ggfTsKICByZXR1cm4gKF9fdS5fX2lbMl0gJiAweDgwMDApICE9IDA7Cn0KIyBlbmRpZgoj
 ZW5kaWYKCgovKiBUaGUgZ2NjLCB2ZXJzaW9uIDIuNyBvciBiZWxvdywgaGFzIHByb2JsZW1z
 IHdpdGggYWxsIHRoaXMgaW5saW5pbmcKICAgY29kZS4gIFNvIGRpc2FibGUgaXQgZm9yIHRo
 aXMgdmVyc2lvbiBvZiB0aGUgY29tcGlsZXIuICAqLwojaWYgZGVmaW5lZCBfX0dOVUNfXyAm
 JiAoX19HTlVDX18gPiAyIHx8IChfX0dOVUNfXyA9PSAyICYmIF9fR05VQ19NSU5PUl9fID4g
 NykpCgojaWYgKCghZGVmaW5lZCBfX05PX01BVEhfSU5MSU5FUyB8fCBkZWZpbmVkIF9fTElC
 Q19JTlRFUk5BTF9NQVRIX0lOTElORVMpIFwKICAgICAmJiBkZWZpbmVkIF9fT1BUSU1JWkVf
 XykKCi8qIEEgbWFjcm8gdG8gZGVmaW5lIGZsb2F0LCBkb3VibGUsIGFuZCBsb25nIGRvdWJs
 ZSB2ZXJzaW9ucyBvZiB2YXJpb3VzCiAgIG1hdGggZnVuY3Rpb25zIGZvciB0aGUgaXg4NyBG
 UFUuICBGVU5DIGlzIHRoZSBmdW5jdGlvbiBuYW1lICh3aGljaCB3aWxsCiAgIGJlIHN1ZmZp
 eGVkIHdpdGggZiBhbmQgbCBmb3IgdGhlIGZsb2F0IGFuZCBsb25nIGRvdWJsZSB2ZXJzaW9u
 LAogICByZXNwZWN0aXZlbHkpLiAgT1AgaXMgdGhlIG5hbWUgb2YgdGhlIEZQVSBvcGVyYXRp
 b24uICAqLwoKI2lmIGRlZmluZWQgX19VU0VfTUlTQyB8fCBkZWZpbmVkIF9fVVNFX0lTT0M5
 WAojIGRlZmluZSBfX2lubGluZV9tYXRob3AoZnVuYywgb3ApIFwKICBfX2lubGluZV9tYXRo
 b3BfIChkb3VibGUsIGZ1bmMsIG9wKQkJCQkJICAgICAgXAogIF9faW5saW5lX21hdGhvcF8g
 KGZsb2F0LCBfX0NPTkNBVChmdW5jLGYpLCBvcCkJCQkgICAgICBcCiAgX19pbmxpbmVfbWF0
 aG9wXyAobG9uZyBkb3VibGUsIF9fQ09OQ0FUKGZ1bmMsbCksIG9wKQojZWxzZQojIGRlZmlu
 ZSBfX2lubGluZV9tYXRob3AoZnVuYywgb3ApIFwKICBfX2lubGluZV9tYXRob3BfIChkb3Vi
 bGUsIGZ1bmMsIG9wKQojZW5kaWYKCiNkZWZpbmUgX19pbmxpbmVfbWF0aG9wXyhmbG9hdF90
 eXBlLCBmdW5jLCBvcCkgXAogIF9faW5saW5lX21hdGhvcF9kZWNsXyAoZmxvYXRfdHlwZSwg
 ZnVuYywgb3AsICIwIiAoX194KSkKCgojaWYgZGVmaW5lZCBfX1VTRV9NSVNDIHx8IGRlZmlu
 ZWQgX19VU0VfSVNPQzlYCiMgZGVmaW5lIF9faW5saW5lX21hdGhvcF9kZWNsKGZ1bmMsIG9w
 LCBwYXJhbXMuLi4pIFwKICBfX2lubGluZV9tYXRob3BfZGVjbF8gKGRvdWJsZSwgZnVuYywg
 b3AsIHBhcmFtcykJCQkgICAgICBcCiAgX19pbmxpbmVfbWF0aG9wX2RlY2xfIChmbG9hdCwg
 X19DT05DQVQoZnVuYyxmKSwgb3AsIHBhcmFtcykJCSAgICAgIFwKICBfX2lubGluZV9tYXRo
 b3BfZGVjbF8gKGxvbmcgZG91YmxlLCBfX0NPTkNBVChmdW5jLGwpLCBvcCwgcGFyYW1zKQoj
 ZWxzZQojIGRlZmluZSBfX2lubGluZV9tYXRob3BfZGVjbChmdW5jLCBvcCwgcGFyYW1zLi4u
 KSBcCiAgX19pbmxpbmVfbWF0aG9wX2RlY2xfIChkb3VibGUsIGZ1bmMsIG9wLCBwYXJhbXMp
 CiNlbmRpZgoKI2RlZmluZSBfX2lubGluZV9tYXRob3BfZGVjbF8oZmxvYXRfdHlwZSwgZnVu
 Yywgb3AsIHBhcmFtcy4uLikgXAogIF9fTUFUSF9JTkxJTkUgZmxvYXRfdHlwZSBmdW5jIChm
 bG9hdF90eXBlKTsJCQkJICAgICAgXAogIF9fTUFUSF9JTkxJTkUgZmxvYXRfdHlwZSBmdW5j
 IChmbG9hdF90eXBlIF9feCkJCQkgICAgICBcCiAgewkJCQkJCQkJCSAgICAgIFwKICAgIHJl
 Z2lzdGVyIGZsb2F0X3R5cGUgX19yZXN1bHQ7CQkJCQkgICAgICBcCiAgICBfX2FzbSBfX3Zv
 bGF0aWxlX18gKG9wIDogIj10IiAoX19yZXN1bHQpIDogcGFyYW1zKTsJCQkgICAgICBcCiAg
 ICByZXR1cm4gX19yZXN1bHQ7CQkJCQkJCSAgICAgIFwKICB9CgoKI2lmIGRlZmluZWQgX19V
 U0VfTUlTQyB8fCBkZWZpbmVkIF9fVVNFX0lTT0M5WAojIGRlZmluZSBfX2lubGluZV9tYXRo
 Y29kZShmdW5jLCBhcmcsIGNvZGUpIFwKICBfX2lubGluZV9tYXRoY29kZV8gKGRvdWJsZSwg
 ZnVuYywgYXJnLCBjb2RlKQkJCQkgICAgICBcCiAgX19pbmxpbmVfbWF0aGNvZGVfIChmbG9h
 dCwgX19DT05DQVQoZnVuYyxmKSwgYXJnLCBjb2RlKQkJICAgICAgXAogIF9faW5saW5lX21h
 dGhjb2RlXyAobG9uZyBkb3VibGUsIF9fQ09OQ0FUKGZ1bmMsbCksIGFyZywgY29kZSkKIyBk
 ZWZpbmUgX19pbmxpbmVfbWF0aGNvZGUyKGZ1bmMsIGFyZzEsIGFyZzIsIGNvZGUpIFwKICBf
 X2lubGluZV9tYXRoY29kZTJfIChkb3VibGUsIGZ1bmMsIGFyZzEsIGFyZzIsIGNvZGUpCQkJ
 ICAgICAgXAogIF9faW5saW5lX21hdGhjb2RlMl8gKGZsb2F0LCBfX0NPTkNBVChmdW5jLGYp
 LCBhcmcxLCBhcmcyLCBjb2RlKQkgICAgICBcCiAgX19pbmxpbmVfbWF0aGNvZGUyXyAobG9u
 ZyBkb3VibGUsIF9fQ09OQ0FUKGZ1bmMsbCksIGFyZzEsIGFyZzIsIGNvZGUpCiMgZGVmaW5l
 IF9faW5saW5lX21hdGhjb2RlMyhmdW5jLCBhcmcxLCBhcmcyLCBhcmczLCBjb2RlKSBcCiAg
 X19pbmxpbmVfbWF0aGNvZGUzXyAoZG91YmxlLCBmdW5jLCBhcmcxLCBhcmcyLCBhcmczLCBj
 b2RlKQkJICAgICAgXAogIF9faW5saW5lX21hdGhjb2RlM18gKGZsb2F0LCBfX0NPTkNBVChm
 dW5jLGYpLCBhcmcxLCBhcmcyLCBhcmczLCBjb2RlKQkgICAgICBcCiAgX19pbmxpbmVfbWF0
 aGNvZGUzXyAobG9uZyBkb3VibGUsIF9fQ09OQ0FUKGZ1bmMsbCksIGFyZzEsIGFyZzIsIGFy
 ZzMsIGNvZGUpCiNlbHNlCiMgZGVmaW5lIF9faW5saW5lX21hdGhjb2RlKGZ1bmMsIGFyZywg
 Y29kZSkgXAogIF9faW5saW5lX21hdGhjb2RlXyAoZG91YmxlLCBmdW5jLCAoYXJnKSwgY29k
 ZSkKIyBkZWZpbmUgX19pbmxpbmVfbWF0aGNvZGUyKGZ1bmMsIGFyZzEsIGFyZzIsIGNvZGUp
 IFwKICBfX2lubGluZV9tYXRoY29kZTJfIChkb3VibGUsIGZ1bmMsIGFyZzEsIGFyZzIsIGNv
 ZGUpCiMgZGVmaW5lIF9faW5saW5lX21hdGhjb2RlMyhmdW5jLCBhcmcxLCBhcmcyLCBhcmcz
 LCBjb2RlKSBcCiAgX19pbmxpbmVfbWF0aGNvZGUzXyAoZG91YmxlLCBmdW5jLCBhcmcxLCBh
 cmcyLCBhcmczLCBjb2RlKQojZW5kaWYKCiNkZWZpbmUgX19pbmxpbmVfbWF0aGNvZGVfKGZs
 b2F0X3R5cGUsIGZ1bmMsIGFyZywgY29kZSkgXAogIF9fTUFUSF9JTkxJTkUgZmxvYXRfdHlw
 ZSBmdW5jIChmbG9hdF90eXBlKTsJCQkJICAgICAgXAogIF9fTUFUSF9JTkxJTkUgZmxvYXRf
 dHlwZSBmdW5jIChmbG9hdF90eXBlIGFyZykJCQkgICAgICBcCiAgewkJCQkJCQkJCSAgICAg
 IFwKICAgIGNvZGU7CQkJCQkJCQkgICAgICBcCiAgfQoKI2RlZmluZSBfX2lubGluZV9tYXRo
 Y29kZTJfKGZsb2F0X3R5cGUsIGZ1bmMsIGFyZzEsIGFyZzIsIGNvZGUpIFwKICBfX01BVEhf
 SU5MSU5FIGZsb2F0X3R5cGUgZnVuYyAoZmxvYXRfdHlwZSwgZmxvYXRfdHlwZSk7CQkgICAg
 ICBcCiAgX19NQVRIX0lOTElORSBmbG9hdF90eXBlIGZ1bmMgKGZsb2F0X3R5cGUgYXJnMSwg
 ZmxvYXRfdHlwZSBhcmcyKQkgICAgICBcCiAgewkJCQkJCQkJCSAgICAgIFwKICAgIGNvZGU7
 CQkJCQkJCQkgICAgICBcCiAgfQoKI2RlZmluZSBfX2lubGluZV9tYXRoY29kZTNfKGZsb2F0
 X3R5cGUsIGZ1bmMsIGFyZzEsIGFyZzIsIGFyZzMsIGNvZGUpIFwKICBfX01BVEhfSU5MSU5F
 IGZsb2F0X3R5cGUgZnVuYyAoZmxvYXRfdHlwZSwgZmxvYXRfdHlwZSwgZmxvYXRfdHlwZSk7
 CSAgICAgIFwKICBfX01BVEhfSU5MSU5FIGZsb2F0X3R5cGUgZnVuYyAoZmxvYXRfdHlwZSBh
 cmcxLCBmbG9hdF90eXBlIGFyZzIsCSAgICAgIFwKCQkJCSBmbG9hdF90eXBlIGFyZzMpCQkJ
 ICAgICAgXAogIHsJCQkJCQkJCQkgICAgICBcCiAgICBjb2RlOwkJCQkJCQkJICAgICAgXAog
 IH0KI2VuZGlmCgoKI2lmICFkZWZpbmVkIF9fTk9fTUFUSF9JTkxJTkVTICYmIGRlZmluZWQg
 X19PUFRJTUlaRV9fCi8qIE1pc2NlbGxhbmVvdXMgZnVuY3Rpb25zICovCgpfX2lubGluZV9t
 YXRoY29kZSAoX19zZ24sIF9feCwgXAogIHJldHVybiBfX3ggPT0gMC4wID8gMC4wIDogKF9f
 eCA+IDAuMCA/IDEuMCA6IC0xLjApKQoKX19pbmxpbmVfbWF0aGNvZGUgKF9fcG93MiwgX194
 LCBcCiAgcmVnaXN0ZXIgbG9uZyBkb3VibGUgX192YWx1ZTsJCQkJCQkgICAgICBcCiAgcmVn
 aXN0ZXIgbG9uZyBkb3VibGUgX19leHBvbmVudDsJCQkJCSAgICAgIFwKICBfX2V4dGVuc2lv
 bl9fIGxvbmcgbG9uZyBpbnQgX19wID0gKGxvbmcgbG9uZyBpbnQpIF9feDsJCSAgICAgIFwK
 ICBpZiAoX194ID09IChsb25nIGRvdWJsZSkgX19wKQkJCQkJCSAgICAgIFwKICAgIHsJCQkJ
 CQkJCQkgICAgICBcCiAgICAgIF9fYXNtIF9fdm9sYXRpbGVfXwkJCQkJCSAgICAgIFwKCSgi
 ZnNjYWxlIgkJCQkJCQkgICAgICBcCgkgOiAiPXQiIChfX3ZhbHVlKSA6ICIwIiAoMS4wKSwg
 InUiIChfX3gpKTsJCQkgICAgICBcCiAgICAgIHJldHVybiBfX3ZhbHVlOwkJCQkJCQkgICAg
 ICBcCiAgICB9CQkJCQkJCQkJICAgICAgXAogIF9fYXNtIF9fdm9sYXRpbGVfXwkJCQkJCQkg
 ICAgICBcCiAgICAoImZsZAklJXN0KDApXG5cdCIJCQkJCQkgICAgICBcCiAgICAgImZybmRp
 bnQJCQkjIGludCh4KVxuXHQiCQkJCSAgICAgIFwKICAgICAiZnhjaFxuXHQiCQkJCQkJCQkg
 ICAgICBcCiAgICAgImZzdWIJJSVzdCgxKQkJIyBmcmFjdCh4KVxuXHQiCQkJCSAgICAgIFwK
 ICAgICAiZjJ4bTEJCQkjIDJeKGZyYWN0KHgpKSAtIDFcblx0IgkJCSAgICAgIFwKICAgICA6
 ICI9dCIgKF9fdmFsdWUpLCAiPXUiIChfX2V4cG9uZW50KSA6ICIwIiAoX194KSk7CQkJICAg
 ICAgXAogIF9fdmFsdWUgKz0gMS4wOwkJCQkJCQkgICAgICBcCiAgX19hc20gX192b2xhdGls
 ZV9fCQkJCQkJCSAgICAgIFwKICAgICgiZnNjYWxlIgkJCQkJCQkJICAgICAgXAogICAgIDog
 Ij10IiAoX192YWx1ZSkgOiAiMCIgKF9fdmFsdWUpLCAidSIgKF9fZXhwb25lbnQpKTsJCSAg
 ICAgIFwKICByZXR1cm4gX192YWx1ZSkKCiNkZWZpbmUgX19zaW5jb3NfY29kZSBcCiAgcmVn
 aXN0ZXIgbG9uZyBkb3VibGUgX19jb3NyOwkJCQkJCSAgICAgIFwKICByZWdpc3RlciBsb25n
 IGRvdWJsZSBfX3NpbnI7CQkJCQkJICAgICAgXAogIF9fYXNtIF9fdm9sYXRpbGVfXwkJCQkJ
 CQkgICAgICBcCiAgICAoImZzaW5jb3Ncblx0IgkJCQkJCQkgICAgICBcCiAgICAgImZuc3Rz
 dwklJWF4XG5cdCIJCQkJCQkgICAgICBcCiAgICAgInRlc3RsCSQweDQwMCwgJSVlYXhcblx0
 IgkJCQkJICAgICAgXAogICAgICJqegkxZlxuXHQiCQkJCQkJCSAgICAgIFwKICAgICAiZmxk
 cGlcblx0IgkJCQkJCQkgICAgICBcCiAgICAgImZhZGQJJSVzdCgwKVxuXHQiCQkJCQkJICAg
 ICAgXAogICAgICJmeGNoCSUlc3QoMSlcblx0IgkJCQkJCSAgICAgIFwKICAgICAiMjogZnBy
 ZW0xXG5cdCIJCQkJCQkJICAgICAgXAogICAgICJmbnN0c3cJJSVheFxuXHQiCQkJCQkJICAg
 ICAgXAogICAgICJ0ZXN0bAkkMHg0MDAsICUlZWF4XG5cdCIJCQkJCSAgICAgIFwKICAgICAi
 am56CTJiXG5cdCIJCQkJCQkJICAgICAgXAogICAgICJmc3RwCSUlc3QoMSlcblx0IgkJCQkJ
 CSAgICAgIFwKICAgICAiZnNpbmNvc1xuXHQiCQkJCQkJCSAgICAgIFwKICAgICAiMToiCQkJ
 CQkJCQkgICAgICBcCiAgICAgOiAiPXQiIChfX2Nvc3IpLCAiPXUiIChfX3NpbnIpIDogIjAi
 IChfX3gpKTsJCQkgICAgICBcCiAgKl9fc2lueCA9IF9fc2lucjsJCQkJCQkJICAgICAgXAog
 ICpfX2Nvc3ggPSBfX2Nvc3IKCl9fTUFUSF9JTkxJTkUgdm9pZCBfX3NpbmNvcyAoZG91Ymxl
 IF9feCwgZG91YmxlICpfX3NpbngsIGRvdWJsZSAqX19jb3N4KTsKX19NQVRIX0lOTElORSB2
 b2lkCl9fc2luY29zIChkb3VibGUgX194LCBkb3VibGUgKl9fc2lueCwgZG91YmxlICpfX2Nv
 c3gpCnsKICBfX3NpbmNvc19jb2RlOwp9CgpfX01BVEhfSU5MSU5FIHZvaWQgX19zaW5jb3Nm
 IChmbG9hdCBfX3gsIGZsb2F0ICpfX3NpbngsIGZsb2F0ICpfX2Nvc3gpOwpfX01BVEhfSU5M
 SU5FIHZvaWQKX19zaW5jb3NmIChmbG9hdCBfX3gsIGZsb2F0ICpfX3NpbngsIGZsb2F0ICpf
 X2Nvc3gpCnsKICBfX3NpbmNvc19jb2RlOwp9CgpfX01BVEhfSU5MSU5FIHZvaWQgX19zaW5j
 b3NsIChsb25nIGRvdWJsZSBfX3gsIGxvbmcgZG91YmxlICpfX3NpbngsCgkJCSAgICAgIGxv
 bmcgZG91YmxlICpfX2Nvc3gpOwpfX01BVEhfSU5MSU5FIHZvaWQKX19zaW5jb3NsIChsb25n
 IGRvdWJsZSBfX3gsIGxvbmcgZG91YmxlICpfX3NpbngsIGxvbmcgZG91YmxlICpfX2Nvc3gp
 CnsKICBfX3NpbmNvc19jb2RlOwp9CgoKLyogT3B0aW1pemVkIGlubGluZSBpbXBsZW1lbnRh
 dGlvbiwgc29tZXRpbWVzIHdpdGggcmVkdWNlZCBwcmVjaXNpb24KICAgYW5kL29yIGFyZ3Vt
 ZW50IHJhbmdlLiAgKi8KCiNkZWZpbmUgX19leHBtMV9jb2RlIFwKICByZWdpc3RlciBsb25n
 IGRvdWJsZSBfX3ZhbHVlOwkJCQkJCSAgICAgIFwKICByZWdpc3RlciBsb25nIGRvdWJsZSBf
 X2V4cG9uZW50OwkJCQkJICAgICAgXAogIHJlZ2lzdGVyIGxvbmcgZG91YmxlIF9fdGVtcDsJ
 CQkJCQkgICAgICBcCiAgX19hc20gX192b2xhdGlsZV9fCQkJCQkJCSAgICAgIFwKICAgICgi
 ZmxkbDJlCQkJIyBlXnggLSAxID0gMl4oeCAqIGxvZzIoZSkpIC0gMVxuXHQiCSAgICAgIFwK
 ICAgICAiZm11bAklJXN0KDEpCQkjIHggKiBsb2cyKGUpXG5cdCIJCQkgICAgICBcCiAgICAg
 ImZzdAklJXN0KDEpXG5cdCIJCQkJCQkgICAgICBcCiAgICAgImZybmRpbnQJCQkjIGludCh4
 ICogbG9nMihlKSlcblx0IgkJCSAgICAgIFwKICAgICAiZnhjaFxuXHQiCQkJCQkJCQkgICAg
 ICBcCiAgICAgImZzdWIJJSVzdCgxKQkJIyBmcmFjdCh4ICogbG9nMihlKSlcblx0IgkJICAg
 ICAgXAogICAgICJmMnhtMQkJCSMgMl4oZnJhY3QoeCAqIGxvZzIoZSkpKSAtIDFcblx0Igkg
 ICAgICBcCiAgICAgImZzY2FsZQkJCSMgMl4oeCAqIGxvZzIoZSkpIC0gMl4oaW50KHggKiBs
 b2cyKGUpKSlcblx0IiBcCiAgICAgOiAiPXQiIChfX3ZhbHVlKSwgIj11IiAoX19leHBvbmVu
 dCkgOiAiMCIgKF9feCkpOwkJCSAgICAgIFwKICBfX2FzbSBfX3ZvbGF0aWxlX18JCQkJCQkJ
 ICAgICAgXAogICAgKCJmc2NhbGUJCQkjIDJeaW50KHggKiBsb2cyKGUpKVxuXHQiCQkgICAg
 ICBcCiAgICAgOiAiPXQiIChfX3RlbXApIDogIjAiICgxLjApLCAidSIgKF9fZXhwb25lbnQp
 KTsJCQkgICAgICBcCiAgX190ZW1wIC09IDEuMDsJCQkJCQkJICAgICAgXAogIHJldHVybiBf
 X3RlbXAgKyBfX3ZhbHVlCl9faW5saW5lX21hdGhjb2RlXyAobG9uZyBkb3VibGUsIF9fZXhw
 bTFsLCBfX3gsIF9fZXhwbTFfY29kZSkKCgojZGVmaW5lIF9fZXhwX2NvZGUgXAogIHJlZ2lz
 dGVyIGxvbmcgZG91YmxlIF9fdmFsdWU7CQkJCQkJICAgICAgXAogIHJlZ2lzdGVyIGxvbmcg
 ZG91YmxlIF9fZXhwb25lbnQ7CQkJCQkgICAgICBcCiAgX19hc20gX192b2xhdGlsZV9fCQkJ
 CQkJCSAgICAgIFwKICAgICgiZmxkbDJlCQkJIyBlXnggPSAyXih4ICogbG9nMihlKSlcblx0
 IgkJICAgICAgXAogICAgICJmbXVsCSUlc3QoMSkJCSMgeCAqIGxvZzIoZSlcblx0IgkJCSAg
 ICAgIFwKICAgICAiZnN0CSUlc3QoMSlcblx0IgkJCQkJCSAgICAgIFwKICAgICAiZnJuZGlu
 dAkJCSMgaW50KHggKiBsb2cyKGUpKVxuXHQiCQkJICAgICAgXAogICAgICJmeGNoXG5cdCIJ
 CQkJCQkJCSAgICAgIFwKICAgICAiZnN1YgklJXN0KDEpCQkjIGZyYWN0KHggKiBsb2cyKGUp
 KVxuXHQiCQkgICAgICBcCiAgICAgImYyeG0xCQkJIyAyXihmcmFjdCh4ICogbG9nMihlKSkp
 IC0gMVxuXHQiCSAgICAgIFwKICAgICA6ICI9dCIgKF9fdmFsdWUpLCAiPXUiIChfX2V4cG9u
 ZW50KSA6ICIwIiAoX194KSk7CQkJICAgICAgXAogIF9fdmFsdWUgKz0gMS4wOwkJCQkJCQkg
 ICAgICBcCiAgX19hc20gX192b2xhdGlsZV9fCQkJCQkJCSAgICAgIFwKICAgICgiZnNjYWxl
 IgkJCQkJCQkJICAgICAgXAogICAgIDogIj10IiAoX192YWx1ZSkgOiAiMCIgKF9fdmFsdWUp
 LCAidSIgKF9fZXhwb25lbnQpKTsJCSAgICAgIFwKICByZXR1cm4gX192YWx1ZQpfX2lubGlu
 ZV9tYXRoY29kZSAoZXhwLCBfX3gsIF9fZXhwX2NvZGUpCl9faW5saW5lX21hdGhjb2RlXyAo
 bG9uZyBkb3VibGUsIF9fZXhwbCwgX194LCBfX2V4cF9jb2RlKQoKCl9faW5saW5lX21hdGhj
 b2RlICh0YW4sIF9feCwgXAogIHJlZ2lzdGVyIGxvbmcgZG91YmxlIF9fdmFsdWU7CQkJCQkJ
 ICAgICAgXAogIHJlZ2lzdGVyIGxvbmcgZG91YmxlIF9fdmFsdWUyIF9fYXR0cmlidXRlX18g
 KChfX3VudXNlZF9fKSk7CQkgICAgICBcCiAgX19hc20gX192b2xhdGlsZV9fCQkJCQkJCSAg
 ICAgIFwKICAgICgiZnB0YW4iCQkJCQkJCQkgICAgICBcCiAgICAgOiAiPXQiIChfX3ZhbHVl
 MiksICI9dSIgKF9fdmFsdWUpIDogIjAiIChfX3gpKTsJCQkgICAgICBcCiAgcmV0dXJuIF9f
 dmFsdWUpCgoKI2RlZmluZSBfX2F0YW4yX2NvZGUgXAogIHJlZ2lzdGVyIGxvbmcgZG91Ymxl
 IF9fdmFsdWU7CQkJCQkJICAgICAgXAogIF9fYXNtIF9fdm9sYXRpbGVfXwkJCQkJCQkgICAg
 ICBcCiAgICAoImZwYXRhbiIJCQkJCQkJCSAgICAgIFwKICAgICA6ICI9dCIgKF9fdmFsdWUp
 IDogIjAiIChfX3gpLCAidSIgKF9feSkgOiAic3QoMSkiKTsJCSAgICAgIFwKICByZXR1cm4g
 X192YWx1ZQpfX2lubGluZV9tYXRoY29kZTIgKGF0YW4yLCBfX3ksIF9feCwgX19hdGFuMl9j
 b2RlKQpfX2lubGluZV9tYXRoY29kZTJfIChsb25nIGRvdWJsZSwgX19hdGFuMmwsIF9feSwg
 X194LCBfX2F0YW4yX2NvZGUpCgoKX19pbmxpbmVfbWF0aGNvZGUyIChmbW9kLCBfX3gsIF9f
 eSwgXAogIHJlZ2lzdGVyIGxvbmcgZG91YmxlIF9fdmFsdWU7CQkJCQkJICAgICAgXAogIF9f
 YXNtIF9fdm9sYXRpbGVfXwkJCQkJCQkgICAgICBcCiAgICAoIjE6CWZwcmVtXG5cdCIJCQkJ
 CQkgICAgICBcCiAgICAgImZuc3RzdwklJWF4XG5cdCIJCQkJCQkgICAgICBcCiAgICAgInNh
 aGZcblx0IgkJCQkJCQkJICAgICAgXAogICAgICJqcAkxYiIJCQkJCQkJICAgICAgXAogICAg
 IDogIj10IiAoX192YWx1ZSkgOiAiMCIgKF9feCksICJ1IiAoX195KSA6ICJheCIsICJjYyIp
 OwkJICAgICAgXAogIHJldHVybiBfX3ZhbHVlKQoKCl9faW5saW5lX21hdGhjb2RlMiAocG93
 LCBfX3gsIF9feSwgXAogIHJlZ2lzdGVyIGxvbmcgZG91YmxlIF9fdmFsdWU7CQkJCQkJICAg
 ICAgXAogIHJlZ2lzdGVyIGxvbmcgZG91YmxlIF9fZXhwb25lbnQ7CQkJCQkgICAgICBcCiAg
 X19leHRlbnNpb25fXyBsb25nIGxvbmcgaW50IF9fcCA9IChsb25nIGxvbmcgaW50KSBfX3k7
 CQkgICAgICBcCiAgaWYgKF9feCA9PSAwLjAgJiYgX195ID4gMC4wKQkJCQkJCSAgICAgIFwK
 ICAgIHJldHVybiAwLjA7CQkJCQkJCQkgICAgICBcCiAgaWYgKF9feSA9PSAoZG91YmxlKSBf
 X3ApCQkJCQkJICAgICAgXAogICAgewkJCQkJCQkJCSAgICAgIFwKICAgICAgbG9uZyBkb3Vi
 bGUgX19yID0gMS4wOwkJCQkJCSAgICAgIFwKICAgICAgaWYgKF9fcCA9PSAwKQkJCQkJCQkg
 ICAgICBcCglyZXR1cm4gMS4wOwkJCQkJCQkgICAgICBcCiAgICAgIGlmIChfX3AgPCAwKQkJ
 CQkJCQkgICAgICBcCgl7CQkJCQkJCQkgICAgICBcCgkgIF9fcCA9IC1fX3A7CQkJCQkJCSAg
 ICAgIFwKCSAgX194ID0gMS4wIC8gX194OwkJCQkJCSAgICAgIFwKCX0JCQkJCQkJCSAgICAg
 IFwKICAgICAgd2hpbGUgKDEpCQkJCQkJCQkgICAgICBcCgl7CQkJCQkJCQkgICAgICBcCgkg
 IGlmIChfX3AgJiAxKQkJCQkJCQkgICAgICBcCgkgICAgX19yICo9IF9feDsJCQkJCQkJICAg
 ICAgXAoJICBfX3AgPj49IDE7CQkJCQkJCSAgICAgIFwKCSAgaWYgKF9fcCA9PSAwKQkJCQkJ
 CQkgICAgICBcCgkgICAgcmV0dXJuIF9fcjsJCQkJCQkJICAgICAgXAoJICBfX3ggKj0gX194
 OwkJCQkJCQkgICAgICBcCgl9CQkJCQkJCQkgICAgICBcCiAgICAgIC8qIE5PVFJFQUNIRUQg
 Ki8JCQkJCQkJICAgICAgXAogICAgfQkJCQkJCQkJCSAgICAgIFwKICBfX2FzbSBfX3ZvbGF0
 aWxlX18JCQkJCQkJICAgICAgXAogICAgKCJmeWwyeCIgOiAiPXQiIChfX3ZhbHVlKSA6ICIw
 IiAoX194KSwgInUiICgxLjApIDogInN0KDEpIik7CSAgICAgIFwKICBfX2FzbSBfX3ZvbGF0
 aWxlX18JCQkJCQkJICAgICAgXAogICAgKCJmbXVsCSUlc3QoMSkJCSMgeSAqIGxvZzIoeClc
 blx0IgkJCSAgICAgIFwKICAgICAiZnN0CSUlc3QoMSlcblx0IgkJCQkJCSAgICAgIFwKICAg
 ICAiZnJuZGludAkJCSMgaW50KHkgKiBsb2cyKHgpKVxuXHQiCQkJICAgICAgXAogICAgICJm
 eGNoXG5cdCIJCQkJCQkJCSAgICAgIFwKICAgICAiZnN1YgklJXN0KDEpCQkjIGZyYWN0KHkg
 KiBsb2cyKHgpKVxuXHQiCQkgICAgICBcCiAgICAgImYyeG0xCQkJIyAyXihmcmFjdCh5ICog
 bG9nMih4KSkpIC0gMVxuXHQiCSAgICAgIFwKICAgICA6ICI9dCIgKF9fdmFsdWUpLCAiPXUi
 IChfX2V4cG9uZW50KSA6ICIwIiAoX195KSwgIjEiIChfX3ZhbHVlKSk7CSAgICAgIFwKICBf
 X3ZhbHVlICs9IDEuMDsJCQkJCQkJICAgICAgXAogIF9fYXNtIF9fdm9sYXRpbGVfXwkJCQkJ
 CQkgICAgICBcCiAgICAoImZzY2FsZSIJCQkJCQkJCSAgICAgIFwKICAgICA6ICI9dCIgKF9f
 dmFsdWUpIDogIjAiIChfX3ZhbHVlKSwgInUiIChfX2V4cG9uZW50KSk7CQkgICAgICBcCiAg
 cmV0dXJuIF9fdmFsdWUpCgoKX19pbmxpbmVfbWF0aG9wIChzcXJ0LCAiZnNxcnQiKQpfX2lu
 bGluZV9tYXRob3BfIChsb25nIGRvdWJsZSwgX19zcXJ0bCwgImZzcXJ0IikKCiNpZiBkZWZp
 bmVkIF9fR05VQ19fICYmIChfX0dOVUNfXyA+IDIgfHwgX19HTlVDX18gPT0gMiAmJiBfX0dO
 VUNfTUlOT1JfXyA+PSA4KQpfX2lubGluZV9tYXRoY29kZV8gKGRvdWJsZSwgZmFicywgX194
 LCByZXR1cm4gX19idWlsdGluX2ZhYnMgKF9feCkpCl9faW5saW5lX21hdGhjb2RlXyAoZmxv
 YXQsIGZhYnNmLCBfX3gsIHJldHVybiBfX2J1aWx0aW5fZmFic2YgKF9feCkpCl9faW5saW5l
 X21hdGhjb2RlXyAobG9uZyBkb3VibGUsIGZhYnNsLCBfX3gsIHJldHVybiBfX2J1aWx0aW5f
 ZmFic2wgKF9feCkpCl9faW5saW5lX21hdGhjb2RlXyAobG9uZyBkb3VibGUsIF9fZmFic2ws
 IF9feCwgcmV0dXJuIF9fYnVpbHRpbl9mYWJzbCAoX194KSkKI2Vsc2UKX19pbmxpbmVfbWF0
 aG9wIChmYWJzLCAiZmFicyIpCl9faW5saW5lX21hdGhvcF8gKGxvbmcgZG91YmxlLCBfX2Zh
 YnNsLCAiZmFicyIpCiNlbmRpZgoKLyogVGhlIGFyZ3VtZW50IHJhbmdlIG9mIHRoaXMgaW5s
 aW5lIHZlcnNpb24gaXMgcmVkdWNlZC4gICovCl9faW5saW5lX21hdGhvcCAoc2luLCAiZnNp
 biIpCi8qIFRoZSBhcmd1bWVudCByYW5nZSBvZiB0aGlzIGlubGluZSB2ZXJzaW9uIGlzIHJl
 ZHVjZWQuICAqLwpfX2lubGluZV9tYXRob3AgKGNvcywgImZjb3MiKQoKX19pbmxpbmVfbWF0
 aG9wX2RlY2wgKGF0YW4sICJmbGQxOyBmcGF0YW4iLCAiMCIgKF9feCkgOiAic3QoMSkiKQpf
 X2lubGluZV9tYXRob3BfZGVjbCAobG9nLCAiZmxkbG4yOyBmeGNoOyBmeWwyeCIsICIwIiAo
 X194KSA6ICJzdCgxKSIpCl9faW5saW5lX21hdGhvcF9kZWNsIChsb2cxMCwgImZsZGxnMjsg
 ZnhjaDsgZnlsMngiLCAiMCIgKF9feCkgOiAic3QoMSkiKQoKX19pbmxpbmVfbWF0aGNvZGUg
 KGFzaW4sIF9feCwgcmV0dXJuIF9fYXRhbjJsIChfX3gsIF9fc3FydGwgKDEuMCAtIF9feCAq
 IF9feCkpKQpfX2lubGluZV9tYXRoY29kZSAoYWNvcywgX194LCByZXR1cm4gX19hdGFuMmwg
 KF9fc3FydGwgKDEuMCAtIF9feCAqIF9feCksIF9feCkpCgpfX2lubGluZV9tYXRoY29kZV8g
 KGxvbmcgZG91YmxlLCBfX3NnbjFsLCBfX3gsIHJldHVybiBfX3ggPj0gMC4wID8gMS4wIDog
 LTEuMCkKCgovKiBUaGUgYXJndW1lbnQgcmFuZ2Ugb2YgdGhlIGlubGluZSB2ZXJzaW9uIG9m
 IHNpbmhsIGlzIHNsaWdodGx5IHJlZHVjZWQuICAqLwpfX2lubGluZV9tYXRoY29kZSAoc2lu
 aCwgX194LCBcCiAgcmVnaXN0ZXIgbG9uZyBkb3VibGUgX19leG0xID0gX19leHBtMWwgKF9f
 ZmFic2wgKF9feCkpOwkJICAgICAgXAogIHJldHVybiAwLjUgKiAoX19leG0xIC8gKF9fZXht
 MSArIDEuMCkgKyBfX2V4bTEpICogX19zZ24xbCAoX194KSkKCl9faW5saW5lX21hdGhjb2Rl
 IChjb3NoLCBfX3gsIFwKICByZWdpc3RlciBsb25nIGRvdWJsZSBfX2V4ID0gX19leHBsIChf
 X3gpOwkJCQkgICAgICBcCiAgcmV0dXJuIDAuNSAqIChfX2V4ICsgMS4wIC8gX19leCkpCgpf
 X2lubGluZV9tYXRoY29kZSAodGFuaCwgX194LCBcCiAgcmVnaXN0ZXIgbG9uZyBkb3VibGUg
 X19leG0xID0gX19leHBtMWwgKC1fX2ZhYnNsIChfX3ggKyBfX3gpKTsJICAgICAgXAogIHJl
 dHVybiBfX2V4bTEgLyAoX19leG0xICsgMi4wKSAqIF9fc2duMWwgKC1fX3gpKQoKCl9faW5s
 aW5lX21hdGhjb2RlIChmbG9vciwgX194LCBcCiAgcmVnaXN0ZXIgbG9uZyBkb3VibGUgX192
 YWx1ZTsJCQkJCQkgICAgICBcCiAgX192b2xhdGlsZSB1bnNpZ25lZCBzaG9ydCBpbnQgX19j
 dzsJCQkJCSAgICAgIFwKICBfX3ZvbGF0aWxlIHVuc2lnbmVkIHNob3J0IGludCBfX2N3dG1w
 OwkJCQkgICAgICBcCiAgX19hc20gX192b2xhdGlsZSAoImZuc3RjdyAlMCIgOiAiPW0iIChf
 X2N3KSk7CQkJCSAgICAgIFwKICBfX2N3dG1wID0gKF9fY3cgJiAweGYzZmYpIHwgMHgwNDAw
 OyAvKiByb3VuZGluZyBkb3duICovCQkgICAgICBcCiAgX19hc20gX192b2xhdGlsZSAoImZs
 ZGN3ICUwIiA6IDogIm0iIChfX2N3dG1wKSk7CQkJICAgICAgXAogIF9fYXNtIF9fdm9sYXRp
 bGUgKCJmcm5kaW50IiA6ICI9dCIgKF9fdmFsdWUpIDogIjAiIChfX3gpKTsJCSAgICAgIFwK
 ICBfX2FzbSBfX3ZvbGF0aWxlICgiZmxkY3cgJTAiIDogOiAibSIgKF9fY3cpKTsJCQkJICAg
 ICAgXAogIHJldHVybiBfX3ZhbHVlKQoKX19pbmxpbmVfbWF0aGNvZGUgKGNlaWwsIF9feCwg
 XAogIHJlZ2lzdGVyIGxvbmcgZG91YmxlIF9fdmFsdWU7CQkJCQkJICAgICAgXAogIF9fdm9s
 YXRpbGUgdW5zaWduZWQgc2hvcnQgaW50IF9fY3c7CQkJCQkgICAgICBcCiAgX192b2xhdGls
 ZSB1bnNpZ25lZCBzaG9ydCBpbnQgX19jd3RtcDsJCQkJICAgICAgXAogIF9fYXNtIF9fdm9s
 YXRpbGUgKCJmbnN0Y3cgJTAiIDogIj1tIiAoX19jdykpOwkJCQkgICAgICBcCiAgX19jd3Rt
 cCA9IChfX2N3ICYgMHhmM2ZmKSB8IDB4MDgwMDsgLyogcm91bmRpbmcgdXAgKi8JCQkgICAg
 ICBcCiAgX19hc20gX192b2xhdGlsZSAoImZsZGN3ICUwIiA6IDogIm0iIChfX2N3dG1wKSk7
 CQkJICAgICAgXAogIF9fYXNtIF9fdm9sYXRpbGUgKCJmcm5kaW50IiA6ICI9dCIgKF9fdmFs
 dWUpIDogIjAiIChfX3gpKTsJCSAgICAgIFwKICBfX2FzbSBfX3ZvbGF0aWxlICgiZmxkY3cg
 JTAiIDogOiAibSIgKF9fY3cpKTsJCQkJICAgICAgXAogIHJldHVybiBfX3ZhbHVlKQoKI2Rl
 ZmluZSBfX2xkZXhwX2NvZGUgXAogIHJlZ2lzdGVyIGxvbmcgZG91YmxlIF9fdmFsdWU7CQkJ
 CQkJICAgICAgXAogIF9fYXNtIF9fdm9sYXRpbGVfXwkJCQkJCQkgICAgICBcCiAgICAoImZz
 Y2FsZSIJCQkJCQkJCSAgICAgIFwKICAgICA6ICI9dCIgKF9fdmFsdWUpIDogIjAiIChfX3gp
 LCAidSIgKChsb25nIGRvdWJsZSkgX195KSk7CQkgICAgICBcCiAgcmV0dXJuIF9fdmFsdWUK
 Cl9fTUFUSF9JTkxJTkUgZG91YmxlIGxkZXhwIChkb3VibGUgX194LCBpbnQgX195KTsKX19N
 QVRIX0lOTElORSBkb3VibGUKbGRleHAgKGRvdWJsZSBfX3gsIGludCBfX3kpCnsKICBfX2xk
 ZXhwX2NvZGU7Cn0KCgovKiBPcHRpbWl6ZWQgdmVyc2lvbnMgZm9yIHNvbWUgbm9uLXN0YW5k
 YXJkaXplZCBmdW5jdGlvbnMuICAqLwojaWYgZGVmaW5lZCBfX1VTRV9JU09DOVggfHwgZGVm
 aW5lZCBfX1VTRV9NSVNDCgpfX2lubGluZV9tYXRoY29kZSAoZXhwbTEsIF9feCwgX19leHBt
 MV9jb2RlKQoKLyogV2UgY2Fubm90IHJlbHkgb24gTV9TUVJUIGJlaW5nIGRlZmluZWQuICBT
 byB3ZSBkbyBpdCBmb3Igb3Vyc2VsZgogICBoZXJlLiAgKi8KIyBkZWZpbmUgX19NX1NRUlQy
 CTEuNDE0MjEzNTYyMzczMDk1MDQ4ODBMCS8qIHNxcnQoMikgKi8KCl9faW5saW5lX21hdGhj
 b2RlIChsb2cxcCwgX194LCBcCiAgcmVnaXN0ZXIgbG9uZyBkb3VibGUgX192YWx1ZTsJCQkJ
 CQkgICAgICBcCiAgaWYgKF9fZmFic2wgKF9feCkgPj0gMS4wIC0gMC41ICogX19NX1NRUlQy
 KQkJCQkgICAgICBcCiAgICBfX3ZhbHVlID0gbG9nbCAoMS4wICsgX194KTsJCQkJCQkgICAg
 ICBcCiAgZWxzZQkJCQkJCQkJCSAgICAgIFwKICAgIF9fYXNtIF9fdm9sYXRpbGVfXwkJCQkJ
 CQkgICAgICBcCiAgICAgICgiZmxkbG4yXG5cdCIJCQkJCQkJICAgICAgXAogICAgICAgImZ4
 Y2hcblx0IgkJCQkJCQkgICAgICBcCiAgICAgICAiZnlsMnhwMSIJCQkJCQkJICAgICAgXAog
 ICAgICAgOiAiPXQiIChfX3ZhbHVlKSA6ICIwIiAoX194KSA6ICJzdCgxKSIpOwkJCQkgICAg
 ICBcCiAgcmV0dXJuIF9fdmFsdWUpCgoKLyogVGhlIGFyZ3VtZW50IHJhbmdlIG9mIHRoZSBp
 bmxpbmUgdmVyc2lvbiBvZiBhc2luaGwgaXMgc2xpZ2h0bHkgcmVkdWNlZC4gICovCl9faW5s
 aW5lX21hdGhjb2RlIChhc2luaCwgX194LCBcCiAgcmVnaXN0ZXIgbG9uZyBkb3VibGUgIF9f
 eSA9IF9fZmFic2wgKF9feCk7CQkJCSAgICAgIFwKICByZXR1cm4gKGxvZzFwbCAoX195ICog
 X195IC8gKF9fc3FydGwgKF9feSAqIF9feSArIDEuMCkgKyAxLjApICsgX195KQkgICAgICBc
 CgkgICogX19zZ24xbCAoX194KSkpCgpfX2lubGluZV9tYXRoY29kZSAoYWNvc2gsIF9feCwg
 XAogIHJldHVybiBsb2dsIChfX3ggKyBfX3NxcnRsIChfX3ggLSAxLjApICogX19zcXJ0bCAo
 X194ICsgMS4wKSkpCgpfX2lubGluZV9tYXRoY29kZSAoYXRhbmgsIF9feCwgXAogIHJlZ2lz
 dGVyIGxvbmcgZG91YmxlIF9feSA9IF9fZmFic2wgKF9feCk7CQkJCSAgICAgIFwKICByZXR1
 cm4gLTAuNSAqIGxvZzFwbCAoLShfX3kgKyBfX3kpIC8gKDEuMCArIF9feSkpICogX19zZ24x
 bCAoX194KSkKCi8qIFRoZSBhcmd1bWVudCByYW5nZSBvZiB0aGUgaW5saW5lIHZlcnNpb24g
 b2YgaHlwb3RsIGlzIHNsaWdodGx5IHJlZHVjZWQuICAqLwpfX2lubGluZV9tYXRoY29kZTIg
 KGh5cG90LCBfX3gsIF9feSwgcmV0dXJuIF9fc3FydGwgKF9feCAqIF9feCArIF9feSAqIF9f
 eSkpCgpfX2lubGluZV9tYXRoY29kZShsb2diLCBfX3gsIFwKICByZWdpc3RlciBsb25nIGRv
 dWJsZSBfX3ZhbHVlOwkJCQkJCSAgICAgIFwKICByZWdpc3RlciBsb25nIGRvdWJsZSBfX2p1
 bms7CQkJCQkJICAgICAgXAogIF9fYXNtIF9fdm9sYXRpbGVfXwkJCQkJCQkgICAgICBcCiAg
 ICAoImZ4dHJhY3Rcblx0IgkJCQkJCQkgICAgICBcCiAgICAgOiAiPXQiIChfX2p1bmspLCAi
 PXUiIChfX3ZhbHVlKSA6ICIwIiAoX194KSk7CQkJICAgICAgXAogIHJldHVybiBfX3ZhbHVl
 KQoKI2VuZGlmCgojaWZkZWYgX19VU0VfSVNPQzlYCl9faW5saW5lX21hdGhvcF9kZWNsIChs
 b2cyLCAiZmxkMTsgZnhjaDsgZnlsMngiLCAiMCIgKF9feCkgOiAic3QoMSkiKQoKX19NQVRI
 X0lOTElORSBmbG9hdCBsZGV4cGYgKGZsb2F0IF9feCwgaW50IF9feSk7Cl9fTUFUSF9JTkxJ
 TkUgZmxvYXQKbGRleHBmIChmbG9hdCBfX3gsIGludCBfX3kpCnsKICBfX2xkZXhwX2NvZGU7
 Cn0KCl9fTUFUSF9JTkxJTkUgbG9uZyBkb3VibGUgbGRleHBsIChsb25nIGRvdWJsZSBfX3gs
 IGludCBfX3kpOwpfX01BVEhfSU5MSU5FIGxvbmcgZG91YmxlCmxkZXhwbCAobG9uZyBkb3Vi
 bGUgX194LCBpbnQgX195KQp7CiAgX19sZGV4cF9jb2RlOwp9CgpfX2lubGluZV9tYXRoY29k
 ZTMgKGZtYSwgX194LCBfX3ksIF9feiwgcmV0dXJuIChfX3ggKiBfX3kpICsgX196KQoKX19p
 bmxpbmVfbWF0aG9wKHJpbnQsICJmcm5kaW50IikKCiNkZWZpbmUgX19scmludF9jb2RlIFwK
 ICBsb25nIGludCBfX2xyaW50cmVzOwkJCQkJCQkgICAgICBcCiAgX19hc21fXyBfX3ZvbGF0
 aWxlX18JCQkJCQkJICAgICAgXAogICAgKCJmaXN0cGwgJTAiCQkJCQkJCSAgICAgIFwKICAg
 ICA6ICI9bSIgKF9fbHJpbnRyZXMpIDogInQiIChfX3gpIDogInN0Iik7CQkJCSAgICAgIFwK
 ICByZXR1cm4gX19scmludHJlcwpfX01BVEhfSU5MSU5FIGxvbmcgaW50CmxyaW50ZiAoZmxv
 YXQgX194KQp7CiAgX19scmludF9jb2RlOwp9Cl9fTUFUSF9JTkxJTkUgbG9uZyBpbnQKbHJp
 bnQgKGRvdWJsZSBfX3gpCnsKICBfX2xyaW50X2NvZGU7Cn0KX19NQVRIX0lOTElORSBsb25n
 IGludApscmludGwgKGxvbmcgZG91YmxlIF9feCkKewogIF9fbHJpbnRfY29kZTsKfQojdW5k
 ZWYgX19scmludF9jb2RlCgojZGVmaW5lIF9fbGxyaW50X2NvZGUgXAogIGxvbmcgbG9uZyBp
 bnQgX19sbHJpbnRyZXM7CQkJCQkJICAgICAgXAogIF9fYXNtX18gX192b2xhdGlsZV9fCQkJ
 CQkJCSAgICAgIFwKICAgICgiZmlzdHBsbCAlMCIJCQkJCQkJICAgICAgXAogICAgIDogIj1t
 IiAoX19sbHJpbnRyZXMpIDogInQiIChfX3gpIDogInN0Iik7CQkJCSAgICAgIFwKICByZXR1
 cm4gX19sbHJpbnRyZXMKX19NQVRIX0lOTElORSBsb25nIGxvbmcgaW50CmxscmludGYgKGZs
 b2F0IF9feCkKewogIF9fbGxyaW50X2NvZGU7Cn0KX19NQVRIX0lOTElORSBsb25nIGxvbmcg
 aW50CmxscmludCAoZG91YmxlIF9feCkKewogIF9fbGxyaW50X2NvZGU7Cn0KX19NQVRIX0lO
 TElORSBsb25nIGxvbmcgaW50CmxscmludGwgKGxvbmcgZG91YmxlIF9feCkKewogIF9fbGxy
 aW50X2NvZGU7Cn0KI3VuZGVmIF9fbGxyaW50X2NvZGUKCiNlbmRpZgoKCiNpZmRlZiBfX1VT
 RV9NSVNDCgpfX2lubGluZV9tYXRoY29kZTIgKGRyZW0sIF9feCwgX195LCBcCiAgcmVnaXN0
 ZXIgZG91YmxlIF9fdmFsdWU7CQkJCQkJICAgICAgXAogIHJlZ2lzdGVyIGludCBfX2Nsb2Ji
 ZXJlZDsJCQkJCQkgICAgICBcCiAgX19hc20gX192b2xhdGlsZV9fCQkJCQkJCSAgICAgIFwK
 ICAgICgiMToJZnByZW0xXG5cdCIJCQkJCQkgICAgICBcCiAgICAgImZzdHN3CSUlYXhcblx0
 IgkJCQkJCSAgICAgIFwKICAgICAic2FoZlxuXHQiCQkJCQkJCQkgICAgICBcCiAgICAgImpw
 CTFiIgkJCQkJCQkgICAgICBcCiAgICAgOiAiPXQiIChfX3ZhbHVlKSwgIj0mYSIgKF9fY2xv
 YmJlcmVkKSA6ICIwIiAoX194KSwgInUiIChfX3kpIDogImNjIik7ICAgIFwKICByZXR1cm4g
 X192YWx1ZSkKCgovKiBUaGlzIGZ1bmN0aW9uIGlzIHVzZWQgaW4gdGhlIGBpc2Zpbml0ZScg
 bWFjcm8uICAqLwpfX01BVEhfSU5MSU5FIGludCBfX2Zpbml0ZSAoZG91YmxlIF9feCkgX19h
 dHRyaWJ1dGVfXyAoKF9fY29uc3RfXykpOwpfX01BVEhfSU5MSU5FIGludApfX2Zpbml0ZSAo
 ZG91YmxlIF9feCkKewogIHJldHVybiAoX19leHRlbnNpb25fXwoJICAoKCgoKHVuaW9uIHsg
 ZG91YmxlIF9fZDsgaW50IF9faVsyXTsgfSkge19fZDogX194fSkuX19pWzFdCgkgICAgIHwg
 MHg4MDBmZmZmZnUpICsgMSkgPj4gMzEpKTsKfQoKLyogTWlzY2VsbGFuZW91cyBmdW5jdGlv
 bnMgKi8KCl9faW5saW5lX21hdGhjb2RlIChfX2Nvc2htMSwgX194LCBcCiAgcmVnaXN0ZXIg
 bG9uZyBkb3VibGUgX19leG0xID0gX19leHBtMWwgKF9fZmFic2wgKF9feCkpOwkJICAgICAg
 XAogIHJldHVybiAwLjUgKiAoX19leG0xIC8gKF9fZXhtMSArIDEuMCkpICogX19leG0xKQoK
 X19pbmxpbmVfbWF0aGNvZGUgKF9fYWNvc2gxcCwgX194LCBcCiAgcmV0dXJuIGxvZzFwbCAo
 X194ICsgX19zcXJ0bCAoX194KSAqIF9fc3FydGwgKF9feCArIDIuMCkpKQoKI2VuZGlmIC8q
 IF9fVVNFX01JU0MgICovCgovKiBVbmRlZmluZSBzb21lIG9mIHRoZSBsYXJnZSBtYWNyb3Mg
 d2hpY2ggYXJlIG5vdCB1c2VkIGFueW1vcmUuICAqLwojdW5kZWYgX19leHBtMV9jb2RlCiN1
 bmRlZiBfX2V4cF9jb2RlCiN1bmRlZiBfX2F0YW4yX2NvZGUKI3VuZGVmIF9fc2luY29zX2Nv
 ZGUKCiNlbmRpZiAvKiBfX05PX01BVEhfSU5MSU5FUyAgKi8KCgovKiBUaGlzIGNvZGUgaXMg
 dXNlZCBpbnRlcm5hbGx5IGluIHRoZSBHTlUgbGliYy4gICovCiNpZmRlZiBfX0xJQkNfSU5U
 RVJOQUxfTUFUSF9JTkxJTkVTCl9faW5saW5lX21hdGhvcCAoX19pZWVlNzU0X3NxcnQsICJm
 c3FydCIpCl9faW5saW5lX21hdGhjb2RlMiAoX19pZWVlNzU0X2F0YW4yLCBfX3ksIF9feCwK
 CQkgICAgcmVnaXN0ZXIgbG9uZyBkb3VibGUgX192YWx1ZTsKCQkgICAgX19hc20gX192b2xh
 dGlsZV9fICgiZnBhdGFuXG5cdCIKCQkJCQk6ICI9dCIgKF9fdmFsdWUpCgkJCQkJOiAiMCIg
 KF9feCksICJ1IiAoX195KSA6ICJzdCgxKSIpOwoJCSAgICByZXR1cm4gX192YWx1ZTspCiNl
 bmRpZgoKI2VuZGlmIC8qIF9fR05VQ19fICAqLwoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC4v
 Zm9vLmNjAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwMTAwNjY0ADAw
 MDMzMDUAMDAxMTYzNwAwMDAwMDAwMDAyMQAwNzU2NDIzMzYxNAAwMTExNTMAIDAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAdXN0YXIgIABtZW5nZWwA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAG9zcwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAI2luY2x1ZGUgPGNtYXRoPgoAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAuL3Jl
 cHJvZHVjZV9pdAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDEwMDc3NQAwMDAz
 MzA1ADAwMTE2MzcAMDAwMDAwMDA1NjMAMDc1NjQ1MDE1NTIAMDEyNTA1ACAwAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHVzdGFyICAAbWVuZ2VsAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAABvc3MAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAACMhL2Jpbi9zaAoKSU5DTFVERVM9IiAtbm9zdGRpbmMg
 LUkuL2xpYi9nY2MtbGliL2k2ODYtcGMtbGludXgtZ251LzMuMSAtSS4vbGliL2djYy1saWIv
 aTY4Ni1wYy1saW51eC1nbnUvMy4xL2luY2x1ZGUgLUkuL2luY2x1ZGUvZysrLXYzL2k2ODYt
 cGMtbGludXgtZ251IC1JLi9pbmNsdWRlL2crKy12MyAtSS4vdXNyL2luY2x1ZGUiCgplY2hv
 IHBsYWluCmcrKyAke0lOQ0xVREVTfSAtYyBmb28uY2MKCmVjaG8gd2l0aCAtTyAtLXBlZGFu
 dGljCmcrKyAke0lOQ0xVREVTfSAtYyAtTyAtLXBlZGFudGljIGZvby5jYwoKZWNobyB3aXRo
 IC1PIC0tcGVkYW50aWMtZXJyb3JzCmcrKyAke0lOQ0xVREVTfSAtYyAtTyAtLXBlZGFudGlj
 LWVycm9ycyBmb28uY2MKAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAA==
 --------------000801000200090106090205--
 


             reply	other threads:[~2002-11-13 17:06 UTC|newest]

Thread overview: 6+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2002-11-19 18:36 Marc Mengel [this message]
  -- strict thread matches above, loose matches on Subject: below --
2002-11-20  6:59 Marc Mengel
2002-11-20  6:56 Zack Weinberg
2002-11-19 18:37 bangerth
2002-11-19 18:02 bangerth
2002-11-19 16:10 mengel

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20021113170602.22163.qmail@sources.redhat.com \
    --to=mengel@fnal.gov \
    --cc=gcc-prs@gcc.gnu.org \
    --cc=nobody@gcc.gnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).