<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<!DOCTYPE bugzilla SYSTEM "https://bugs.webkit.org/page.cgi?id=bugzilla.dtd">

<bugzilla version="5.0.4.1"
          urlbase="https://bugs.webkit.org/"
          
          maintainer="admin@webkit.org"
>

    <bug>
          <bug_id>184976</bug_id>
          
          <creation_ts>2018-04-25 09:43:42 -0700</creation_ts>
          <short_desc>Push the definition of PtrTag down to the WTF layer.</short_desc>
          <delta_ts>2018-04-26 16:00:04 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>JavaScriptCore</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Mark Lam">mark.lam</reporter>
          <assigned_to name="Mark Lam">mark.lam</assigned_to>
          <cc>benjamin</cc>
    
    <cc>cdumez</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>dbates</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>fpizlo</cc>
    
    <cc>jfbastien</cc>
    
    <cc>keith_miller</cc>
    
    <cc>msaboff</cc>
    
    <cc>rmorisset</cc>
    
    <cc>ryanhaddad</cc>
    
    <cc>saam</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1417583</commentid>
    <comment_count>0</comment_count>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2018-04-25 09:43:42 -0700</bug_when>
    <thetext>This is in preparation for doing pointer profiling at the WTF later as well.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1417586</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2018-04-25 09:44:52 -0700</bug_when>
    <thetext>&lt;rdar://problem/39723901&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1417695</commentid>
    <comment_count>2</comment_count>
      <attachid>338772</attachid>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2018-04-25 12:57:44 -0700</bug_when>
    <thetext>Created attachment 338772
proposed patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1417746</commentid>
    <comment_count>3</comment_count>
      <attachid>338783</attachid>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2018-04-25 13:39:20 -0700</bug_when>
    <thetext>Created attachment 338783
patch for landing + CMake fixes.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1417822</commentid>
    <comment_count>4</comment_count>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2018-04-25 15:32:03 -0700</bug_when>
    <thetext>Thanks for the review.  Landed in r231027: &lt;http://trac.webkit.org/r231027&gt;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1417829</commentid>
    <comment_count>5</comment_count>
    <who name="Ryan Haddad">ryanhaddad</who>
    <bug_when>2018-04-25 15:57:59 -0700</bug_when>
    <thetext>This change broke the Windows build:

c:\cygwin\home\buildbot\slave\win-debug\build\source\javascriptcore\runtime\JSCPtrTag.h(56): error C2220: warning treated as error - no &apos;object&apos; file generated [C:\cygwin\home\buildbot\slave\win-debug\build\WebKitBuild\Debug\Source\JavaScriptCore\LLIntOffsetsExtractor.vcxproj]
c:\cygwin\home\buildbot\slave\win-debug\build\source\javascriptcore\runtime\JSCPtrTag.h(56): warning C4307: &apos;*&apos;: integral constant overflow [C:\cygwin\home\buildbot\slave\win-debug\build\WebKitBuild\Debug\Source\JavaScriptCore\LLIntOffsetsExtractor.vcxproj]
c:\cygwin\home\buildbot\slave\win-debug\build\source\javascriptcore\runtime\JSCPtrTag.h(56): warning C4307: &apos;+&apos;: integral constant overflow [C:\cygwin\home\buildbot\slave\win-debug\build\WebKitBuild\Debug\Source\JavaScriptCore\LLIntOffsetsExtractor.vcxproj]

https://build.webkit.org/builders/Apple%20Win%20Debug%20%28Build%29/builds/8648</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1417896</commentid>
    <comment_count>6</comment_count>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2018-04-25 17:14:26 -0700</bug_when>
    <thetext>Landed a speculative build fix for 32-bit Windows in r231035: &lt;http://trac.webkit.org/r231035&gt;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1418303</commentid>
    <comment_count>7</comment_count>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2018-04-26 16:00:04 -0700</bug_when>
    <thetext>(In reply to Mark Lam from comment #6)
&gt; Landed a speculative build fix for 32-bit Windows in r231035:
&gt; &lt;http://trac.webkit.org/r231035&gt;.

New revised speculative build fix for Windows landed in r231079: &lt;http://trac.webkit.org/r231079&gt;.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>338772</attachid>
            <date>2018-04-25 12:57:44 -0700</date>
            <delta_ts>2018-04-25 13:39:20 -0700</delta_ts>
            <desc>proposed patch.</desc>
            <filename>bug-184976.patch</filename>
            <type>text/plain</type>
            <size>46247</size>
            <attacher name="Mark Lam">mark.lam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMjMxMDAwKQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDMyIEBA
CisyMDE4LTA0LTI1ICBNYXJrIExhbSAgPG1hcmsubGFtQGFwcGxlLmNvbT4KKworICAgICAgICBQ
dXNoIHRoZSBkZWZpbml0aW9uIG9mIFB0clRhZyBkb3duIHRvIHRoZSBXVEYgbGF5ZXIuCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xODQ5NzYKKyAgICAg
ICAgPHJkYXI6Ly9wcm9ibGVtLzM5NzIzOTAxPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgICogSmF2YVNjcmlwdENvcmUueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvajoKKyAgICAgICAgKiBhc3NlbWJsZXIvQVJNNjRBc3NlbWJsZXIuaDoKKyAgICAgICAg
KiBhc3NlbWJsZXIvQWJzdHJhY3RNYWNyb0Fzc2VtYmxlci5oOgorICAgICAgICAqIGFzc2VtYmxl
ci9NYWNyb0Fzc2VtYmxlckNvZGVSZWYuY3BwOgorICAgICAgICAqIGFzc2VtYmxlci9NYWNyb0Fz
c2VtYmxlckNvZGVSZWYuaDoKKyAgICAgICAgKiBiMy9CM01hdGhFeHRyYXMuY3BwOgorICAgICAg
ICAqIGJ5dGVjb2RlL0xMSW50Q2FsbExpbmtJbmZvLmg6CisgICAgICAgICogZGlzYXNzZW1ibGVy
L0Rpc2Fzc2VtYmxlci5oOgorICAgICAgICAqIGZ0bC9GVExKSVRDb2RlLmNwcDoKKyAgICAgICAg
KiBpbnRlcnByZXRlci9JbnRlcnByZXRlcklubGluZXMuaDoKKyAgICAgICAgKiBqaXQvRXhlY3V0
YWJsZUFsbG9jYXRvci5oOgorICAgICAgICAqIGppdC9KSVRPcGVyYXRpb25zLmNwcDoKKyAgICAg
ICAgKiBqaXQvVGh1bmtHZW5lcmF0b3IuaDoKKyAgICAgICAgKiBqaXQvVGh1bmtHZW5lcmF0b3Jz
Lmg6CisgICAgICAgICogbGxpbnQvTExJbnRPZmZzZXRzRXh0cmFjdG9yLmNwcDoKKyAgICAgICAg
KiBsbGludC9MTEludFBDUmFuZ2VzLmg6CisgICAgICAgICogcnVudGltZS9KU0NQdHJUYWcuaDog
QWRkZWQuCisgICAgICAgICogcnVudGltZS9OYXRpdmVGdW5jdGlvbi5oOgorICAgICAgICAqIHJ1
bnRpbWUvUHRyVGFnLmg6IFJlbW92ZWQuCisgICAgICAgICogcnVudGltZS9WTVRyYXBzLmNwcDoK
KwogMjAxOC0wNC0yNSAgTWljaGFlbCBDYXRhbnphcm8gIDxtY2F0YW56YXJvQGlnYWxpYS5jb20+
CiAKICAgICAgICAgW0dUS10gTWlzY2VsbGFuZW91cyBidWlsZCBjbGVhbnVwcwpJbmRleDogU291
cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHBy
b2oKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2oJKHJldmlzaW9uIDIzMDk5OCkKKysrIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xNzcxLDggKzE3NzEsOCBAQAogCQlGRTYzREQ1NDFFQTlCNjFFMDAxMDNB
NjkgLyogUHJpbnRlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gRkU2M0RENTMxRUE5QjYwRTAwMTAzQTY5IC8qIFByaW50ZXIuaCAqLzsgc2V0dGluZ3Mg
PSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlGRTY0OTEzNzFENzhGMDFEMDBB
Njk0RDQgLyogRXhjZXB0aW9uU2NvcGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IEZFNjQ5MTM2MUQ3OEYwMTMwMEE2OTRENCAvKiBFeGNlcHRpb25TY29w
ZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUZF
NjhDNjM3MUI5MERFMDQwMDQyQkNCMyAvKiBNYWNyb0Fzc2VtYmxlclByaW50ZXIuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEZFNjhDNjM2MUI5MERERDkw
MDQyQkNCMyAvKiBNYWNyb0Fzc2VtYmxlclByaW50ZXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklC
VVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwotCQlGRTZDMUU0QTIwMzY2RjAxMDBCREMyQjcgLyog
UHRyVGFnLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBG
RTlBRTFDODIwMzJDODg3MDAyQjY5MzQgLyogUHRyVGFnLmggKi87IHNldHRpbmdzID0ge0FUVFJJ
QlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJRkU2RjU2REUxRTY0RUFENjAwRDE3ODAxIC8q
IFZNVHJhcHMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IEZFNkY1NkREMUU2NEU5MjAwMEQxNzgwMSAvKiBWTVRyYXBzLmggKi87IHNldHRpbmdzID0ge0FU
VFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJRkU3NDk3RTYyMDkwMDFCMTAwMDM1NjVC
IC8qIEpTQ1B0clRhZy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gRkU3NDk3RTUyMDkwMDFCMDAwMDM1NjVCIC8qIEpTQ1B0clRhZy5oICovOyBzZXR0aW5n
cyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUZFN0M0MTk2MUI5N0ZDNEIw
MEY0RDU5OCAvKiBQaW5nUG9uZ1N0YWNrT3ZlcmZsb3dUZXN0LmNwcCBpbiBTb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEZFREE1MEQ0MUI5N0Y0NDIwMDlBM0I0RiAv
KiBQaW5nUG9uZ1N0YWNrT3ZlcmZsb3dUZXN0LmNwcCAqLzsgfTsKIAkJRkU4MEMxOTcxRDc3NUNE
RDAwODUxMEMwIC8qIENhdGNoU2NvcGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IEZFODBDMTk2MUQ3NzVCMjcwMDg1MTBDMCAvKiBDYXRjaFNjb3BlLmgg
Ki87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJRkU5OUIy
NDkxQzI0QzNEMzAwQzgyMTU5IC8qIEpJVE5lZ0dlbmVyYXRvci5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRkU5OUIyNDgxQzI0QjZEMzAwQzgyMTU5IC8q
IEpJVE5lZ0dlbmVyYXRvci5oICovOyB9OwpAQCAtNDcwNyw2ICs0NzA3LDcgQEAKIAkJRkU2OEM2
MzYxQjkwREREOTAwNDJCQ0IzIC8qIE1hY3JvQXNzZW1ibGVyUHJpbnRlci5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBNYWNyb0Fzc2VtYmxlclByaW50ZXIuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRkU2RjU2REMxRTY0RTkyMDAwRDE3ODAxIC8qIFZNVHJhcHMu
Y3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gVk1UcmFwcy5jcHA7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUZFNkY1NkREMUU2NEU5MjAwMEQxNzgwMSAvKiBW
TVRyYXBzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFZNVHJhcHMuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRkU3NDk3RTUyMDkwMDFCMDAwMDM1NjVCIC8qIEpT
Q1B0clRhZy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU0NQdHJUYWcuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRkU4MEMxOTYxRDc3NUIyNzAwODUxMEMwIC8q
IENhdGNoU2NvcGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQ2F0Y2hTY29w
ZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGRTgwQzE5ODFENzc1RkI0MDA4NTEw
QzAgLyogQ2F0Y2hTY29wZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGgg
PSBDYXRjaFNjb3BlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRkU4MEMxOUEx
RDc3NjhGRDAwODUxMEMwIC8qIEV4Y2VwdGlvbkV2ZW50TG9jYXRpb24uY3BwICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gRXhjZXB0aW9uRXZlbnRMb2NhdGlvbi5jcHA7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC00NzE0LDcgKzQ3MTUsNiBAQAogCQlGRTk4QjVC
NjFCQjlBRTExMDA3M0U3QTYgLyogSklUU3ViR2VuZXJhdG9yLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IEpJVFN1YkdlbmVyYXRvci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQlGRTk5QjI0NzFDMjRCNkQzMDBDODIxNTkgLyogSklUTmVnR2VuZXJhdG9yLmNwcCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpJVE5lZ0dlbmVyYXRvci5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUZFOTlCMjQ4MUMyNEI2RDMwMEM4MjE1OSAv
KiBKSVROZWdHZW5lcmF0b3IuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSklU
TmVnR2VuZXJhdG9yLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUZFOUFFMUM4MjAz
MkM4ODcwMDJCNjkzNCAvKiBQdHJUYWcuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gUHRyVGFnLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUZFQTA4NjFFMTgyQjdB
MDQwMEY2RDg1MSAvKiBCcmVha3BvaW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IEJyZWFrcG9pbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRkVBMDg2MUYx
ODJCN0EwNDAwRjZEODUxIC8qIERlYnVnZ2VyUHJpbWl0aXZlcy5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBEZWJ1Z2dlclByaW1pdGl2ZXMuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJRkVBMEM0MDAxQ0REN0QwRTAwNDgxOTkxIC8qIEZ1bmN0aW9uV2hpdGVsaXN0
LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEZ1bmN0aW9uV2hpdGVs
aXN0LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTY3NDMsNiArNjc0Myw3IEBA
CiAJCQkJMkEwNUFCRDQxOTYxREYyNDAwMzQxNzUwIC8qIEpTUHJvcGVydHlOYW1lRW51bWVyYXRv
ci5oICovLAogCQkJCTg2MjU1M0NFMTYxMzZBQTUwMDlGMTdEMCAvKiBKU1Byb3h5LmNwcCAqLywK
IAkJCQk4NjI1NTNDRjE2MTM2QUE1MDA5RjE3RDAgLyogSlNQcm94eS5oICovLAorCQkJCUZFNzQ5
N0U1MjA5MDAxQjAwMDAzNTY1QiAvKiBKU0NQdHJUYWcuaCAqLywKIAkJCQk1MzQ2Mzg3MjFFNzBE
MDE1MDBGMTJBQzEgLyogSlNSdW5Mb29wVGltZXIuY3BwICovLAogCQkJCTUzNDYzODcwMUU3MENG
M0QwMEYxMkFDMSAvKiBKU1J1bkxvb3BUaW1lci5oICovLAogCQkJCTE0ODc0QUUxMTVFQkRFNEEw
MDJFMzU4NyAvKiBKU1Njb3BlLmNwcCAqLywKQEAgLTY4ODEsNyArNjg4Miw2IEBACiAJCQkJNzlC
MDBDQkIxQzZBQjA3RTAwODhDNjVEIC8qIFByb3h5T2JqZWN0LmggKi8sCiAJCQkJNzkxNjBEQkIx
QzhFM0VDODAwOEMwODVBIC8qIFByb3h5UmV2b2tlLmNwcCAqLywKIAkJCQk3OTE2MERCQzFDOEUz
RUM4MDA4QzA4NUEgLyogUHJveHlSZXZva2UuaCAqLywKLQkJCQlGRTlBRTFDODIwMzJDODg3MDAy
QjY5MzQgLyogUHRyVGFnLmggKi8sCiAJCQkJMEY1NzgwQTExOEZFMUU5ODAwMUU3MkQ5IC8qIFB1
cmVOYU4uaCAqLywKIAkJCQkwRjBDRDRDMDE1RjFBNjA0MDAzMkYxQzAgLyogUHV0RGlyZWN0SW5k
ZXhNb2RlLmggKi8sCiAJCQkJMTQ3Qjg0NjIwRTZERTZCMTAwNDc3NUE0IC8qIFB1dFByb3BlcnR5
U2xvdC5oICovLApAQCAtOTA2MSw2ICs5MDYxLDcgQEAKIAkJCQk3QzAwOENEQjE4NzEyNEJCMDA5
NTVDMjQgLyogSlNQcm9taXNlRGVmZXJyZWQuaCBpbiBIZWFkZXJzICovLAogCQkJCTdDMTg0RTFG
MTdCRUUyMkUwMDdDQjYzQSAvKiBKU1Byb21pc2VQcm90b3R5cGUuaCBpbiBIZWFkZXJzICovLAog
CQkJCTk5NkI3MzFGMUJEQTA4RUYwMDMzMUI4NCAvKiBKU1Byb21pc2VQcm90b3R5cGUubHV0Lmgg
aW4gSGVhZGVycyAqLywKKwkJCQlGRTc0OTdFNjIwOTAwMUIxMDAwMzU2NUIgLyogSlNDUHRyVGFn
LmggaW4gSGVhZGVycyAqLywKIAkJCQkyQTA1QUJENjE5NjFERjI0MDAzNDE3NTAgLyogSlNQcm9w
ZXJ0eU5hbWVFbnVtZXJhdG9yLmggaW4gSGVhZGVycyAqLywKIAkJCQk4NjI1NTNEMjE2MTM2RTFB
MDA5RjE3RDAgLyogSlNQcm94eS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTU1MkMzODAxQUREQjhG
RTAwMTM5NzI2IC8qIEpTUmVtb3RlSW5zcGVjdG9yLmggaW4gSGVhZGVycyAqLywKQEAgLTkyODcs
NyArOTI4OCw2IEBACiAJCQkJNzlCMDBDQkQxQzZBQjA3RTAwODhDNjVEIC8qIFByb3h5Q29uc3Ry
dWN0b3IuaCBpbiBIZWFkZXJzICovLAogCQkJCTc5QjAwQ0JGMUM2QUIwN0UwMDg4QzY1RCAvKiBQ
cm94eU9iamVjdC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNzkxNjBEQkUxQzhFM0VDODAwOEMwODVB
IC8qIFByb3h5UmV2b2tlLmggaW4gSGVhZGVycyAqLywKLQkJCQlGRTZDMUU0QTIwMzY2RjAxMDBC
REMyQjcgLyogUHRyVGFnLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRjU3ODBBMjE4RkUxRTk4MDAx
RTcyRDkgLyogUHVyZU5hTi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEYxNUNEMjMxQkE1Rjk4NjAw
MzFGRkQzIC8qIFB1dEJ5SWRGbGFncy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEY5MzMyQTQxNENB
N0REOTAwODVGM0M2IC8qIFB1dEJ5SWRTdGF0dXMuaCBpbiBIZWFkZXJzICovLApJbmRleDogU291
cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9BUk02NEFzc2VtYmxlci5oCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvQVJNNjRBc3NlbWJsZXIuaAkocmV2
aXNpb24gMjMwOTk4KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9BUk02NEFz
c2VtYmxlci5oCSh3b3JraW5nIGNvcHkpCkBAIC0yOSw3ICsyOSw3IEBACiAKICNpbmNsdWRlICJB
c3NlbWJsZXJCdWZmZXIuaCIKICNpbmNsdWRlICJBc3NlbWJsZXJDb21tb24uaCIKLSNpbmNsdWRl
ICJQdHJUYWcuaCIKKyNpbmNsdWRlICJKU0NQdHJUYWcuaCIKICNpbmNsdWRlIDxsaW1pdHMuaD4K
ICNpbmNsdWRlIDx3dGYvQXNzZXJ0aW9ucy5oPgogI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KSW5k
ZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvQWJzdHJhY3RNYWNyb0Fzc2VtYmxl
ci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvQWJzdHJh
Y3RNYWNyb0Fzc2VtYmxlci5oCShyZXZpc2lvbiAyMzA5OTgpCisrKyBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvYXNzZW1ibGVyL0Fic3RyYWN0TWFjcm9Bc3NlbWJsZXIuaAkod29ya2luZyBjb3B5KQpA
QCAtMzEsMTAgKzMxLDEwIEBACiAjaW5jbHVkZSAiQ1BVLmgiCiAjaW5jbHVkZSAiQ29kZUxvY2F0
aW9uLmgiCiAjaW5jbHVkZSAiSlNDSlNWYWx1ZS5oIgorI2luY2x1ZGUgIkpTQ1B0clRhZy5oIgog
I2luY2x1ZGUgIk1hY3JvQXNzZW1ibGVyQ29kZVJlZi5oIgogI2luY2x1ZGUgIk1hY3JvQXNzZW1i
bGVySGVscGVycy5oIgogI2luY2x1ZGUgIk9wdGlvbnMuaCIKLSNpbmNsdWRlICJQdHJUYWcuaCIK
ICNpbmNsdWRlIDx3dGYvQ3J5cHRvZ3JhcGhpY2FsbHlSYW5kb21OdW1iZXIuaD4KICNpbmNsdWRl
IDx3dGYvTm9uY29weWFibGUuaD4KICNpbmNsdWRlIDx3dGYvU2hhcmVkVGFzay5oPgpJbmRleDog
U291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9NYWNyb0Fzc2VtYmxlckNvZGVSZWYuY3Bw
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvTWFjcm9Bc3Nl
bWJsZXJDb2RlUmVmLmNwcAkocmV2aXNpb24gMjMwOTk4KQorKysgU291cmNlL0phdmFTY3JpcHRD
b3JlL2Fzc2VtYmxlci9NYWNyb0Fzc2VtYmxlckNvZGVSZWYuY3BwCSh3b3JraW5nIGNvcHkpCkBA
IC0yOCw3ICsyOCw3IEBACiAKICNpbmNsdWRlICJEaXNhc3NlbWJsZXIuaCIKICNpbmNsdWRlICJK
U0NJbmxpbmVzLmgiCi0jaW5jbHVkZSAiUHRyVGFnLmgiCisjaW5jbHVkZSAiSlNDUHRyVGFnLmgi
CiAjaW5jbHVkZSA8bXV0ZXg+CiAKIG5hbWVzcGFjZSBKU0MgewpJbmRleDogU291cmNlL0phdmFT
Y3JpcHRDb3JlL2Fzc2VtYmxlci9NYWNyb0Fzc2VtYmxlckNvZGVSZWYuaAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyQ29kZVJlZi5o
CShyZXZpc2lvbiAyMzA5OTgpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL01h
Y3JvQXNzZW1ibGVyQ29kZVJlZi5oCSh3b3JraW5nIGNvcHkpCkBAIC0yNyw3ICsyNyw3IEBACiAK
ICNpbmNsdWRlICJFeGVjdXRhYmxlQWxsb2NhdG9yLmgiCiAjaW5jbHVkZSAiSlNDUG9pc29uLmgi
Ci0jaW5jbHVkZSAiUHRyVGFnLmgiCisjaW5jbHVkZSAiSlNDUHRyVGFnLmgiCiAjaW5jbHVkZSA8
d3RmL0RhdGFMb2cuaD4KICNpbmNsdWRlIDx3dGYvUHJpbnRTdHJlYW0uaD4KICNpbmNsdWRlIDx3
dGYvUmVmUHRyLmg+CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNNYXRoRXh0cmFz
LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNNYXRoRXh0cmFz
LmNwcAkocmV2aXNpb24gMjMwOTk4KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzTWF0
aEV4dHJhcy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTM1LDggKzM1LDggQEAKICNpbmNsdWRlICJC
M0NvbnN0UHRyVmFsdWUuaCIKICNpbmNsdWRlICJCM1Vwc2lsb25WYWx1ZS5oIgogI2luY2x1ZGUg
IkIzVmFsdWVJbmxpbmVzLmgiCisjaW5jbHVkZSAiSlNDUHRyVGFnLmgiCiAjaW5jbHVkZSAiTWF0
aENvbW1vbi5oIgotI2luY2x1ZGUgIlB0clRhZy5oIgogCiBuYW1lc3BhY2UgSlNDIHsgbmFtZXNw
YWNlIEIzIHsKIApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0xMSW50Q2Fs
bExpbmtJbmZvLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2Rl
L0xMSW50Q2FsbExpbmtJbmZvLmgJKHJldmlzaW9uIDIzMDk5OCkKKysrIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ieXRlY29kZS9MTEludENhbGxMaW5rSW5mby5oCSh3b3JraW5nIGNvcHkpCkBAIC0y
NSw5ICsyNSw5IEBACiAKICNwcmFnbWEgb25jZQogCisjaW5jbHVkZSAiSlNDUHRyVGFnLmgiCiAj
aW5jbHVkZSAiSlNGdW5jdGlvbi5oIgogI2luY2x1ZGUgIk1hY3JvQXNzZW1ibGVyQ29kZVJlZi5o
IgotI2luY2x1ZGUgIlB0clRhZy5oIgogI2luY2x1ZGUgPHd0Zi9TZW50aW5lbExpbmtlZExpc3Qu
aD4KIAogbmFtZXNwYWNlIEpTQyB7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGlzYXNz
ZW1ibGVyL0Rpc2Fzc2VtYmxlci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9kaXNhc3NlbWJsZXIvRGlzYXNzZW1ibGVyLmgJKHJldmlzaW9uIDIzMDk5OCkKKysrIFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9kaXNhc3NlbWJsZXIvRGlzYXNzZW1ibGVyLmgJKHdvcmtpbmcgY29w
eSkKQEAgLTI1LDggKzI1LDggQEAKIAogI3ByYWdtYSBvbmNlCiAKKyNpbmNsdWRlICJKU0NQdHJU
YWcuaCIKICNpbmNsdWRlICJKU0V4cG9ydE1hY3Jvcy5oIgotI2luY2x1ZGUgIlB0clRhZy5oIgog
I2luY2x1ZGUgPGZ1bmN0aW9uYWw+CiAjaW5jbHVkZSA8d3RmL1ByaW50U3RyZWFtLmg+CiAjaW5j
bHVkZSA8d3RmL3RleHQvQ1N0cmluZy5oPgpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0
bC9GVExKSVRDb2RlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRs
L0ZUTEpJVENvZGUuY3BwCShyZXZpc2lvbiAyMzA5OTgpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvZnRsL0ZUTEpJVENvZGUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yOSw3ICsyOSw3IEBACiAj
aWYgRU5BQkxFKEZUTF9KSVQpCiAKICNpbmNsdWRlICJGVExTdGF0ZS5oIgotI2luY2x1ZGUgIlB0
clRhZy5oIgorI2luY2x1ZGUgIkpTQ1B0clRhZy5oIgogCiBuYW1lc3BhY2UgSlNDIHsgbmFtZXNw
YWNlIEZUTCB7CiAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnRlcnByZXRlci9JbnRl
cnByZXRlcklubGluZXMuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaW50
ZXJwcmV0ZXIvSW50ZXJwcmV0ZXJJbmxpbmVzLmgJKHJldmlzaW9uIDIzMDk5OCkKKysrIFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9pbnRlcnByZXRlci9JbnRlcnByZXRlcklubGluZXMuaAkod29ya2lu
ZyBjb3B5KQpAQCAtMjgsOCArMjgsOCBAQAogCiAjaW5jbHVkZSAiSW5zdHJ1Y3Rpb24uaCIKICNp
bmNsdWRlICJJbnRlcnByZXRlci5oIgorI2luY2x1ZGUgIkpTQ1B0clRhZy5oIgogI2luY2x1ZGUg
IkxMSW50RGF0YS5oIgotI2luY2x1ZGUgIlB0clRhZy5oIgogI2luY2x1ZGUgIlVubGlua2VkQ29k
ZUJsb2NrLmgiCiAKIG5hbWVzcGFjZSBKU0MgewpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3Jl
L2ppdC9FeGVjdXRhYmxlQWxsb2NhdG9yLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3Jp
cHRDb3JlL2ppdC9FeGVjdXRhYmxlQWxsb2NhdG9yLmgJKHJldmlzaW9uIDIzMDk5OCkKKysrIFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvRXhlY3V0YWJsZUFsbG9jYXRvci5oCSh3b3JraW5nIGNv
cHkpCkBAIC0yNiw3ICsyNiw3IEBACiAjcHJhZ21hIG9uY2UKIAogI2luY2x1ZGUgIkpJVENvbXBp
bGF0aW9uRWZmb3J0LmgiCi0jaW5jbHVkZSAiUHRyVGFnLmgiCisjaW5jbHVkZSAiSlNDUHRyVGFn
LmgiCiAjaW5jbHVkZSA8c3RkZGVmLmg+IC8vIGZvciBwdHJkaWZmX3QKICNpbmNsdWRlIDxsaW1p
dHM+CiAjaW5jbHVkZSA8d3RmL0Fzc2VydGlvbnMuaD4KSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9qaXQvSklUT3BlcmF0aW9ucy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3Jp
cHRDb3JlL2ppdC9KSVRPcGVyYXRpb25zLmNwcAkocmV2aXNpb24gMjMwOTk4KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL2ppdC9KSVRPcGVyYXRpb25zLmNwcAkod29ya2luZyBjb3B5KQpAQCAt
NTUsNiArNTUsNyBAQAogI2luY2x1ZGUgIkpTQXN5bmNGdW5jdGlvbi5oIgogI2luY2x1ZGUgIkpT
QXN5bmNHZW5lcmF0b3JGdW5jdGlvbi5oIgogI2luY2x1ZGUgIkpTQ0lubGluZXMuaCIKKyNpbmNs
dWRlICJKU0NQdHJUYWcuaCIKICNpbmNsdWRlICJKU0dlbmVyYXRvckZ1bmN0aW9uLmgiCiAjaW5j
bHVkZSAiSlNHbG9iYWxPYmplY3RGdW5jdGlvbnMuaCIKICNpbmNsdWRlICJKU0xleGljYWxFbnZp
cm9ubWVudC5oIgpAQCAtNjQsNyArNjUsNiBAQAogI2luY2x1ZGUgIlBvbHltb3JwaGljQWNjZXNz
LmgiCiAjaW5jbHVkZSAiUHJvZ3JhbUNvZGVCbG9jay5oIgogI2luY2x1ZGUgIlByb3BlcnR5TmFt
ZS5oIgotI2luY2x1ZGUgIlB0clRhZy5oIgogI2luY2x1ZGUgIlJlZ0V4cE9iamVjdC5oIgogI2lu
Y2x1ZGUgIlJlcGF0Y2guaCIKICNpbmNsdWRlICJTY29wZWRBcmd1bWVudHMuaCIKSW5kZXg6IFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvVGh1bmtHZW5lcmF0b3IuaAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L1RodW5rR2VuZXJhdG9yLmgJKHJldmlzaW9uIDIzMDk5
OCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvVGh1bmtHZW5lcmF0b3IuaAkod29ya2lu
ZyBjb3B5KQpAQCAtMjcsNyArMjcsNyBAQAogCiAjaWYgRU5BQkxFKEpJVCkKIAotI2luY2x1ZGUg
IlB0clRhZy5oIgorI2luY2x1ZGUgIkpTQ1B0clRhZy5oIgogCiBuYW1lc3BhY2UgSlNDIHsKIGNs
YXNzIFZNOwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9UaHVua0dlbmVyYXRvcnMu
aAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L1RodW5rR2VuZXJhdG9y
cy5oCShyZXZpc2lvbiAyMzA5OTgpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L1RodW5r
R2VuZXJhdG9ycy5oCSh3b3JraW5nIGNvcHkpCkBAIC0yNiw3ICsyNiw3IEBACiAjcHJhZ21hIG9u
Y2UKIAogI2luY2x1ZGUgIkNvZGVTcGVjaWFsaXphdGlvbktpbmQuaCIKLSNpbmNsdWRlICJQdHJU
YWcuaCIKKyNpbmNsdWRlICJKU0NQdHJUYWcuaCIKIAogI2lmIEVOQUJMRShKSVQpCiBuYW1lc3Bh
Y2UgSlNDIHsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9MTEludE9mZnNldHNF
eHRyYWN0b3IuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9M
TEludE9mZnNldHNFeHRyYWN0b3IuY3BwCShyZXZpc2lvbiAyMzA5OTgpCisrKyBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvbGxpbnQvTExJbnRPZmZzZXRzRXh0cmFjdG9yLmNwcAkod29ya2luZyBjb3B5
KQpAQCAtMzgsNiArMzgsNyBAQAogI2luY2x1ZGUgIkludGVycHJldGVyLmgiCiAjaW5jbHVkZSAi
SlNBcnJheS5oIgogI2luY2x1ZGUgIkpTQXJyYXlCdWZmZXJWaWV3LmgiCisjaW5jbHVkZSAiSlND
UHRyVGFnLmgiCiAjaW5jbHVkZSAiSlNDYXN0LmgiCiAjaW5jbHVkZSAiSlNGdW5jdGlvbi5oIgog
I2luY2x1ZGUgIkpTR2xvYmFsT2JqZWN0LmgiCkBAIC01MSw3ICs1Miw2IEBACiAjaW5jbHVkZSAi
TWFya2VkU3BhY2UuaCIKICNpbmNsdWRlICJOYXRpdmVFeGVjdXRhYmxlLmgiCiAjaW5jbHVkZSAi
UHJvdG9DYWxsRnJhbWUuaCIKLSNpbmNsdWRlICJQdHJUYWcuaCIKICNpbmNsdWRlICJTaGFkb3dD
aGlja2VuLmgiCiAjaW5jbHVkZSAiU3RydWN0dXJlLmgiCiAjaW5jbHVkZSAiU3RydWN0dXJlQ2hh
aW4uaCIKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9MTEludFBDUmFuZ2VzLmgK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xMSW50UENSYW5nZXMu
aAkocmV2aXNpb24gMjMwOTk4KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xMSW50
UENSYW5nZXMuaAkod29ya2luZyBjb3B5KQpAQCAtMjUsNyArMjUsNyBAQAogCiAjcHJhZ21hIG9u
Y2UKIAotI2luY2x1ZGUgIlB0clRhZy5oIgorI2luY2x1ZGUgIkpTQ1B0clRhZy5oIgogCiBuYW1l
c3BhY2UgSlNDIHsKIApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNDUHRy
VGFnLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNDUHRy
VGFnLmgJKG5vbmV4aXN0ZW50KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlND
UHRyVGFnLmgJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSw1OSBAQAorLyoKKyAqIENvcHlyaWdo
dCAoQykgMjAxOCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgor
ICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgor
ICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQg
QU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVE
LiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBF
WEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSA8
d3RmL1B0clRhZy5oPgorCituYW1lc3BhY2UgSlNDIHsKKwordXNpbmcgUHRyVGFnID0gV1RGOjpQ
dHJUYWc7CisKKyNkZWZpbmUgRk9SX0VBQ0hfSlNDX1BUUlRBRyh2KSBcCisgICAgdihCM0NDYWxs
UHRyVGFnKSBcCisgICAgdihCM0NvbXBpbGF0aW9uUHRyVGFnKSBcCisgICAgdihCeXRlY29kZVB0
clRhZykgXAorICAgIHYoRGlzYXNzZW1ibHlQdHJUYWcpIFwKKyAgICB2KEV4Y2VwdGlvbkhhbmRs
ZXJQdHJUYWcpIFwKKyAgICB2KEpJVFRodW5rUHRyVGFnKSBcCisgICAgdihKSVRTdHViUm91dGlu
ZVB0clRhZykgXAorICAgIHYoSlNFbnRyeVB0clRhZykgXAorICAgIHYoSlNJbnRlcm5hbFB0clRh
ZykgXAorICAgIHYoSlNTd2l0Y2hQdHJUYWcpIFwKKyAgICB2KExpbmtCdWZmZXJQdHJUYWcpIFwK
KyAgICB2KE9wZXJhdGlvblB0clRhZykgXAorICAgIHYoT1NSRXhpdFB0clRhZykgXAorICAgIHYo
U2xvd1BhdGhQdHJUYWcpIFwKKyAgICB2KFdhc21FbnRyeVB0clRhZykgXAorICAgIHYoWWFycjhC
aXRQdHJUYWcpIFwKKyAgICB2KFlhcnIxNkJpdFB0clRhZykgXAorICAgIHYoWWFyck1hdGNoT25s
eThCaXRQdHJUYWcpIFwKKyAgICB2KFlhcnJNYXRjaE9ubHkxNkJpdFB0clRhZykgXAorICAgIHYo
WWFyckJhY2t0cmFja1B0clRhZykgXAorCitGT1JfRUFDSF9KU0NfUFRSVEFHKFdURl9ERUNMQVJF
X1BUUlRBRykKKworfSAvLyBuYW1lc3BhY2UgSlNDCisKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL05hdGl2ZUZ1bmN0aW9uLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvTmF0aXZlRnVuY3Rpb24uaAkocmV2aXNpb24gMjMwOTk4KQorKysg
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTmF0aXZlRnVuY3Rpb24uaAkod29ya2luZyBj
b3B5KQpAQCAtMjYsNyArMjYsNyBAQAogI3ByYWdtYSBvbmNlCiAKICNpbmNsdWRlICJKU0NKU1Zh
bHVlLmgiCi0jaW5jbHVkZSAiUHRyVGFnLmgiCisjaW5jbHVkZSAiSlNDUHRyVGFnLmgiCiAKIG5h
bWVzcGFjZSBKU0MgewogCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9QdHJU
YWcuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9QdHJUYWcu
aAkocmV2aXNpb24gMjMwOTk4KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUHRy
VGFnLmgJKG5vbmV4aXN0ZW50KQpAQCAtMSwxODAgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAo
QykgMjAxOCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICog
Mi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICog
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5Z
Ci0gKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFRIRQotICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAg
SU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgotICogQ09OVFJJQlVUT1JTIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCi0gKiBFWEVN
UExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sCi0gKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwgREFUQSwgT1IKLSAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKLSAqIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFCi0gKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNwcmFnbWEgb25jZQotCi0jaW5jbHVkZSA8d3Rm
L1BvaW50ZXJQcmVwYXJhdGlvbnMuaD4KLQotbmFtZXNwYWNlIEpTQyB7Ci0KLSNkZWZpbmUgRk9S
X0VBQ0hfQkFTRV9QVFJUQUdfRU5VTSh2KSBcCi0gICAgdihOb1B0clRhZykgXAotICAgIHYoQ0Z1
bmN0aW9uUHRyVGFnKSBcCi0KLSNkZWZpbmUgRk9SX0VBQ0hfQURESVRJT05BTF9QVFJUQUdfRU5V
TSh2KSBcCi0gICAgdihCM0NDYWxsUHRyVGFnKSBcCi0gICAgdihCM0NvbXBpbGF0aW9uUHRyVGFn
KSBcCi0gICAgdihCeXRlY29kZVB0clRhZykgXAotICAgIHYoRGlzYXNzZW1ibHlQdHJUYWcpIFwK
LSAgICB2KEV4Y2VwdGlvbkhhbmRsZXJQdHJUYWcpIFwKLSAgICB2KEpJVFRodW5rUHRyVGFnKSBc
Ci0gICAgdihKSVRTdHViUm91dGluZVB0clRhZykgXAotICAgIHYoSlNFbnRyeVB0clRhZykgXAot
ICAgIHYoSlNJbnRlcm5hbFB0clRhZykgXAotICAgIHYoSlNTd2l0Y2hQdHJUYWcpIFwKLSAgICB2
KExpbmtCdWZmZXJQdHJUYWcpIFwKLSAgICB2KE9wZXJhdGlvblB0clRhZykgXAotICAgIHYoT1NS
RXhpdFB0clRhZykgXAotICAgIHYoU2xvd1BhdGhQdHJUYWcpIFwKLSAgICB2KFdhc21FbnRyeVB0
clRhZykgXAotICAgIHYoWWFycjhCaXRQdHJUYWcpIFwKLSAgICB2KFlhcnIxNkJpdFB0clRhZykg
XAotICAgIHYoWWFyck1hdGNoT25seThCaXRQdHJUYWcpIFwKLSAgICB2KFlhcnJNYXRjaE9ubHkx
NkJpdFB0clRhZykgXAotICAgIHYoWWFyckJhY2t0cmFja1B0clRhZykgXAotCi0jZGVmaW5lIEZP
Ul9FQUNIX1BUUlRBR19FTlVNKHYpIFwKLSAgICBGT1JfRUFDSF9CQVNFX1BUUlRBR19FTlVNKHYp
IFwKLSAgICBGT1JfRUFDSF9BRERJVElPTkFMX1BUUlRBR19FTlVNKHYpIFwKLQotZW51bSBQdHJU
YWcgOiB1aW50cHRyX3QgewotICAgIE5vUHRyVGFnLAotICAgIENGdW5jdGlvblB0clRhZywKLQot
I2lmbmRlZiBQVFJUQUdfRU5VTV9IQVNICi0jZGVmaW5lIERFQ0xBUkVfUFRSVEFHX0VOVU0odGFn
KSAgdGFnLAotI2Vsc2UKLSNkZWZpbmUgREVDTEFSRV9QVFJUQUdfRU5VTSh0YWcpICB0YWcgPSBQ
VFJUQUdfRU5VTV9IQVNIKHRhZyksCi0jZW5kaWYKLSAgICBGT1JfRUFDSF9BRERJVElPTkFMX1BU
UlRBR19FTlVNKERFQ0xBUkVfUFRSVEFHX0VOVU0pCi0jdW5kZWYgREVDTEFSRV9QVFJUQUdfRU5V
TQotfTsKLQotc3RhdGljX2Fzc2VydChzdGF0aWNfY2FzdDx1aW50cHRyX3Q+KE5vUHRyVGFnKSA9
PSBzdGF0aWNfY2FzdDx1aW50cHRyX3Q+KDApLCAiIik7Ci1zdGF0aWNfYXNzZXJ0KHN0YXRpY19j
YXN0PHVpbnRwdHJfdD4oQ0Z1bmN0aW9uUHRyVGFnKSA9PSBzdGF0aWNfY2FzdDx1aW50cHRyX3Q+
KDEpLCAiIik7Ci0KLWlubGluZSBjb25zdCBjaGFyKiBwdHJUYWdOYW1lKFB0clRhZyB0YWcpCi17
Ci0jZGVmaW5lIFJFVFVSTl9QVFJUQUdfTkFNRShfdGFnTmFtZSkgY2FzZSBfdGFnTmFtZTogcmV0
dXJuICNfdGFnTmFtZTsKLSAgICBzd2l0Y2ggKHRhZykgewotICAgICAgICBGT1JfRUFDSF9QVFJU
QUdfRU5VTShSRVRVUk5fUFRSVEFHX05BTUUpCi0gICAgZGVmYXVsdDogcmV0dXJuICI8dW5rbm93
bj4iOwotICAgIH0KLSN1bmRlZiBSRVRVUk5fUFRSVEFHX05BTUUKLX0KLQotI2lmICFVU0UoUE9J
TlRFUl9QUk9GSUxJTkcpCi0KLWlubGluZSBjb25zdCBjaGFyKiB0YWdGb3JQdHIoY29uc3Qgdm9p
ZCopIHsgcmV0dXJuICI8bm8gdGFnPiI7IH0KLQotdGVtcGxhdGU8dHlwZW5hbWUuLi4gQXJndW1l
bnRzPgotaW5saW5lIGNvbnN0ZXhwciBQdHJUYWcgcHRyVGFnKEFyZ3VtZW50cyYmLi4uKSB7IHJl
dHVybiBOb1B0clRhZzsgfQotCi10ZW1wbGF0ZTx0eXBlbmFtZSBULCB0eXBlbmFtZSBQdHJUeXBl
LCB0eXBlbmFtZSA9IHN0ZDo6ZW5hYmxlX2lmX3Q8c3RkOjppc19wb2ludGVyPFB0clR5cGU+Ojp2
YWx1ZSAmJiAhc3RkOjppc19zYW1lPFQsIFB0clR5cGU+Ojp2YWx1ZT4+Ci1pbmxpbmUgY29uc3Rl
eHByIFQgdGFnQ29kZVB0cihQdHJUeXBlIHB0ciwgUHRyVGFnKSB7IHJldHVybiBiaXR3aXNlX2Nh
c3Q8VD4ocHRyKTsgfQotCi10ZW1wbGF0ZTx0eXBlbmFtZSBULCBQdHJUYWcsIHR5cGVuYW1lIFB0
clR5cGUsIHR5cGVuYW1lID0gc3RkOjplbmFibGVfaWZfdDxzdGQ6OmlzX3BvaW50ZXI8UHRyVHlw
ZT46OnZhbHVlPj4KLWlubGluZSBUIHRhZ0NvZGVQdHIoUHRyVHlwZSBwdHIpIHsgcmV0dXJuIGJp
dHdpc2VfY2FzdDxUPihwdHIpOyB9Ci0KLXRlbXBsYXRlPHR5cGVuYW1lIFB0clR5cGUsIHR5cGVu
YW1lID0gc3RkOjplbmFibGVfaWZfdDxzdGQ6OmlzX3BvaW50ZXI8UHRyVHlwZT46OnZhbHVlPj4K
LWlubGluZSBjb25zdGV4cHIgUHRyVHlwZSB0YWdDb2RlUHRyKFB0clR5cGUgcHRyLCBQdHJUYWcp
IHsgcmV0dXJuIHB0cjsgfQotCi10ZW1wbGF0ZTxQdHJUYWcsIHR5cGVuYW1lIFB0clR5cGUsIHR5
cGVuYW1lID0gc3RkOjplbmFibGVfaWZfdDxzdGQ6OmlzX3BvaW50ZXI8UHRyVHlwZT46OnZhbHVl
Pj4KLWlubGluZSBQdHJUeXBlIHRhZ0NvZGVQdHIoUHRyVHlwZSBwdHIpIHsgcmV0dXJuIHB0cjsg
fQotCi10ZW1wbGF0ZTx0eXBlbmFtZSBULCB0eXBlbmFtZSBQdHJUeXBlLCB0eXBlbmFtZSA9IHN0
ZDo6ZW5hYmxlX2lmX3Q8c3RkOjppc19wb2ludGVyPFB0clR5cGU+Ojp2YWx1ZSAmJiAhc3RkOjpp
c19zYW1lPFQsIFB0clR5cGU+Ojp2YWx1ZT4+Ci1pbmxpbmUgY29uc3RleHByIFQgdW50YWdDb2Rl
UHRyKFB0clR5cGUgcHRyLCBQdHJUYWcpIHsgcmV0dXJuIGJpdHdpc2VfY2FzdDxUPihwdHIpOyB9
Ci0KLXRlbXBsYXRlPHR5cGVuYW1lIFQsIFB0clRhZywgdHlwZW5hbWUgUHRyVHlwZSwgdHlwZW5h
bWUgPSBzdGQ6OmVuYWJsZV9pZl90PHN0ZDo6aXNfcG9pbnRlcjxQdHJUeXBlPjo6dmFsdWU+Pgot
aW5saW5lIFQgdW50YWdDb2RlUHRyKFB0clR5cGUgcHRyKSAgeyByZXR1cm4gYml0d2lzZV9jYXN0
PFQ+KHB0cik7IH0KLQotdGVtcGxhdGU8dHlwZW5hbWUgUHRyVHlwZSwgdHlwZW5hbWUgPSBzdGQ6
OmVuYWJsZV9pZl90PHN0ZDo6aXNfcG9pbnRlcjxQdHJUeXBlPjo6dmFsdWU+PgotaW5saW5lIGNv
bnN0ZXhwciBQdHJUeXBlIHVudGFnQ29kZVB0cihQdHJUeXBlIHB0ciwgUHRyVGFnKSB7IHJldHVy
biBwdHI7IH0KLQotdGVtcGxhdGU8UHRyVGFnLCB0eXBlbmFtZSBQdHJUeXBlLCB0eXBlbmFtZSA9
IHN0ZDo6ZW5hYmxlX2lmX3Q8c3RkOjppc19wb2ludGVyPFB0clR5cGU+Ojp2YWx1ZT4+Ci1pbmxp
bmUgUHRyVHlwZSB1bnRhZ0NvZGVQdHIoUHRyVHlwZSBwdHIpIHsgcmV0dXJuIHB0cjsgfQotCi10
ZW1wbGF0ZTx0eXBlbmFtZSBULCB0eXBlbmFtZSBQdHJUeXBlLCB0eXBlbmFtZSA9IHN0ZDo6ZW5h
YmxlX2lmX3Q8c3RkOjppc19wb2ludGVyPFB0clR5cGU+Ojp2YWx1ZSAmJiAhc3RkOjppc19zYW1l
PFQsIFB0clR5cGU+Ojp2YWx1ZT4+Ci1pbmxpbmUgY29uc3RleHByIFQgcmV0YWdDb2RlUHRyKFB0
clR5cGUgcHRyLCBQdHJUYWcsIFB0clRhZykgeyByZXR1cm4gYml0d2lzZV9jYXN0PFQ+KHB0cik7
IH0KLQotdGVtcGxhdGU8dHlwZW5hbWUgVCwgUHRyVGFnLCBQdHJUYWcsIHR5cGVuYW1lIFB0clR5
cGUsIHR5cGVuYW1lID0gc3RkOjplbmFibGVfaWZfdDxzdGQ6OmlzX3BvaW50ZXI8UHRyVHlwZT46
OnZhbHVlPj4KLWlubGluZSBUIHJldGFnQ29kZVB0cihQdHJUeXBlIHB0cikgeyByZXR1cm4gYml0
d2lzZV9jYXN0PFQ+KHB0cik7IH0KLQotdGVtcGxhdGU8dHlwZW5hbWUgUHRyVHlwZSwgdHlwZW5h
bWUgPSBzdGQ6OmVuYWJsZV9pZl90PHN0ZDo6aXNfcG9pbnRlcjxQdHJUeXBlPjo6dmFsdWU+Pgot
aW5saW5lIGNvbnN0ZXhwciBQdHJUeXBlIHJldGFnQ29kZVB0cihQdHJUeXBlIHB0ciwgUHRyVGFn
LCBQdHJUYWcpIHsgcmV0dXJuIHB0cjsgfQotCi10ZW1wbGF0ZTxQdHJUYWcsIFB0clRhZywgdHlw
ZW5hbWUgUHRyVHlwZSwgdHlwZW5hbWUgPSBzdGQ6OmVuYWJsZV9pZl90PHN0ZDo6aXNfcG9pbnRl
cjxQdHJUeXBlPjo6dmFsdWU+PgotaW5saW5lIFB0clR5cGUgcmV0YWdDb2RlUHRyKFB0clR5cGUg
cHRyKSB7IHJldHVybiBwdHI7IH0KLQotdGVtcGxhdGU8dHlwZW5hbWUgVCwgdHlwZW5hbWUgUHRy
VHlwZSwgdHlwZW5hbWUgPSBzdGQ6OmVuYWJsZV9pZl90PHN0ZDo6aXNfcG9pbnRlcjxQdHJUeXBl
Pjo6dmFsdWUgJiYgIXN0ZDo6aXNfc2FtZTxULCBQdHJUeXBlPjo6dmFsdWU+PgotaW5saW5lIGNv
bnN0ZXhwciBUIHJlbW92ZUNvZGVQdHJUYWcoUHRyVHlwZSBwdHIpIHsgcmV0dXJuIGJpdHdpc2Vf
Y2FzdDxUPihwdHIpOyB9Ci0KLXRlbXBsYXRlPHR5cGVuYW1lIFB0clR5cGUsIHR5cGVuYW1lID0g
c3RkOjplbmFibGVfaWZfdDxzdGQ6OmlzX3BvaW50ZXI8UHRyVHlwZT46OnZhbHVlPj4KLWlubGlu
ZSBjb25zdGV4cHIgUHRyVHlwZSByZW1vdmVDb2RlUHRyVGFnKFB0clR5cGUgcHRyKSB7IHJldHVy
biBwdHI7IH0KLQotdGVtcGxhdGU8dHlwZW5hbWUgVCwgdHlwZW5hbWUgUHRyVHlwZSwgdHlwZW5h
bWUgPSBzdGQ6OmVuYWJsZV9pZl90PHN0ZDo6aXNfcG9pbnRlcjxQdHJUeXBlPjo6dmFsdWUgJiYg
IXN0ZDo6aXNfc2FtZTxULCBQdHJUeXBlPjo6dmFsdWU+PgotaW5saW5lIFQgdGFnQ0Z1bmN0aW9u
UHRyKFB0clR5cGUgcHRyLCBQdHJUYWcpIHsgcmV0dXJuIGJpdHdpc2VfY2FzdDxUPihwdHIpOyB9
Ci0KLXRlbXBsYXRlPHR5cGVuYW1lIFQsIFB0clRhZywgdHlwZW5hbWUgUHRyVHlwZSwgdHlwZW5h
bWUgPSBzdGQ6OmVuYWJsZV9pZl90PHN0ZDo6aXNfcG9pbnRlcjxQdHJUeXBlPjo6dmFsdWU+Pgot
aW5saW5lIFQgdGFnQ0Z1bmN0aW9uUHRyKFB0clR5cGUgcHRyKSB7IHJldHVybiBiaXR3aXNlX2Nh
c3Q8VD4ocHRyKTsgfQotCi10ZW1wbGF0ZTx0eXBlbmFtZSBQdHJUeXBlLCB0eXBlbmFtZSA9IHN0
ZDo6ZW5hYmxlX2lmX3Q8c3RkOjppc19wb2ludGVyPFB0clR5cGU+Ojp2YWx1ZT4+Ci1pbmxpbmUg
UHRyVHlwZSB0YWdDRnVuY3Rpb25QdHIoUHRyVHlwZSBwdHIsIFB0clRhZykgeyByZXR1cm4gcHRy
OyB9Ci0KLXRlbXBsYXRlPFB0clRhZywgdHlwZW5hbWUgUHRyVHlwZSwgdHlwZW5hbWUgPSBzdGQ6
OmVuYWJsZV9pZl90PHN0ZDo6aXNfcG9pbnRlcjxQdHJUeXBlPjo6dmFsdWU+PgotaW5saW5lIFB0
clR5cGUgdGFnQ0Z1bmN0aW9uUHRyKFB0clR5cGUgcHRyKSB7IHJldHVybiBwdHI7IH0KLQotdGVt
cGxhdGU8dHlwZW5hbWUgVCwgdHlwZW5hbWUgUHRyVHlwZSwgdHlwZW5hbWUgPSBzdGQ6OmVuYWJs
ZV9pZl90PHN0ZDo6aXNfcG9pbnRlcjxQdHJUeXBlPjo6dmFsdWUgJiYgIXN0ZDo6aXNfc2FtZTxU
LCBQdHJUeXBlPjo6dmFsdWU+PgotaW5saW5lIFQgdW50YWdDRnVuY3Rpb25QdHIoUHRyVHlwZSBw
dHIsIFB0clRhZykgeyByZXR1cm4gYml0d2lzZV9jYXN0PFQ+KHB0cik7IH0KLQotdGVtcGxhdGU8
dHlwZW5hbWUgVCwgUHRyVGFnLCB0eXBlbmFtZSBQdHJUeXBlLCB0eXBlbmFtZSA9IHN0ZDo6ZW5h
YmxlX2lmX3Q8c3RkOjppc19wb2ludGVyPFB0clR5cGU+Ojp2YWx1ZT4+Ci1pbmxpbmUgVCB1bnRh
Z0NGdW5jdGlvblB0cihQdHJUeXBlIHB0cikgeyByZXR1cm4gYml0d2lzZV9jYXN0PFQ+KHB0cik7
IH0KLQotdGVtcGxhdGU8dHlwZW5hbWUgUHRyVHlwZSwgdHlwZW5hbWUgPSBzdGQ6OmVuYWJsZV9p
Zl90PHN0ZDo6aXNfcG9pbnRlcjxQdHJUeXBlPjo6dmFsdWU+PgotaW5saW5lIFB0clR5cGUgdW50
YWdDRnVuY3Rpb25QdHIoUHRyVHlwZSBwdHIsIFB0clRhZykgeyByZXR1cm4gcHRyOyB9Ci0KLXRl
bXBsYXRlPFB0clRhZywgdHlwZW5hbWUgUHRyVHlwZSwgdHlwZW5hbWUgPSBzdGQ6OmVuYWJsZV9p
Zl90PHN0ZDo6aXNfcG9pbnRlcjxQdHJUeXBlPjo6dmFsdWU+PgotaW5saW5lIFB0clR5cGUgdW50
YWdDRnVuY3Rpb25QdHIoUHRyVHlwZSBwdHIpIHsgcmV0dXJuIHB0cjsgfQotCi10ZW1wbGF0ZTx0
eXBlbmFtZSBQdHJUeXBlPiB2b2lkIGFzc2VydElzQ0Z1bmN0aW9uUHRyKFB0clR5cGUpIHsgfQot
dGVtcGxhdGU8dHlwZW5hbWUgUHRyVHlwZT4gdm9pZCBhc3NlcnRJc051bGxPckNGdW5jdGlvblB0
cihQdHJUeXBlKSB7IH0KLQotdGVtcGxhdGU8dHlwZW5hbWUgUHRyVHlwZT4gdm9pZCBhc3NlcnRJ
c05vdFRhZ2dlZChQdHJUeXBlKSB7IH0KLXRlbXBsYXRlPHR5cGVuYW1lIFB0clR5cGU+IHZvaWQg
YXNzZXJ0SXNUYWdnZWQoUHRyVHlwZSkgeyB9Ci10ZW1wbGF0ZTx0eXBlbmFtZSBQdHJUeXBlPiB2
b2lkIGFzc2VydElzTnVsbE9yVGFnZ2VkKFB0clR5cGUpIHsgfQotCi10ZW1wbGF0ZTx0eXBlbmFt
ZSBQdHJUeXBlPiB2b2lkIGFzc2VydElzVGFnZ2VkV2l0aChQdHJUeXBlLCBQdHJUYWcpIHsgfQot
dGVtcGxhdGU8dHlwZW5hbWUgUHRyVHlwZT4gdm9pZCBhc3NlcnRJc051bGxPclRhZ2dlZFdpdGgo
UHRyVHlwZSwgUHRyVGFnKSB7IH0KLQotI2RlZmluZSBDQUxMX1dJVEhfUFRSVEFHKGNhbGxJbnN0
cnVjdGlvblN0cmluZywgdGFyZ2V0UmVnaXN0ZXJTdHJpbmcsIHRhZykgXAotICAgIGNhbGxJbnN0
cnVjdGlvblN0cmluZyAiICIgdGFyZ2V0UmVnaXN0ZXJTdHJpbmcgIlxuIgotCi0jZW5kaWYgLy8g
IVVTRShQT0lOVEVSX1BST0ZJTElORykKLQotfSAvLyBuYW1lc3BhY2UgSlNDCi0KLSNpZiBVU0Uo
QVBQTEVfSU5URVJOQUxfU0RLKSAmJiBfX2hhc19pbmNsdWRlKDxXZWJLaXRBZGRpdGlvbnMvUHRy
VGFnU3VwcG9ydC5oPikKLSNpbmNsdWRlIDxXZWJLaXRBZGRpdGlvbnMvUHRyVGFnU3VwcG9ydC5o
PgotI2VuZGlmCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9WTVRyYXBzLmNw
cAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9WTVRyYXBzLmNw
cAkocmV2aXNpb24gMjMwOTk4KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvVk1U
cmFwcy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTMyLDEyICszMiwxMiBAQAogI2luY2x1ZGUgIkRG
R0NvbW1vbkRhdGEuaCIKICNpbmNsdWRlICJFeGNlcHRpb25IZWxwZXJzLmgiCiAjaW5jbHVkZSAi
SGVhcElubGluZXMuaCIKKyNpbmNsdWRlICJKU0NQdHJUYWcuaCIKICNpbmNsdWRlICJMTEludFBD
UmFuZ2VzLmgiCiAjaW5jbHVkZSAiTWFjaGluZUNvbnRleHQuaCIKICNpbmNsdWRlICJNYWNoaW5l
U3RhY2tNYXJrZXIuaCIKICNpbmNsdWRlICJNYWNyb0Fzc2VtYmxlci5oIgogI2luY2x1ZGUgIk1h
Y3JvQXNzZW1ibGVyQ29kZVJlZi5oIgotI2luY2x1ZGUgIlB0clRhZy5oIgogI2luY2x1ZGUgIlZN
LmgiCiAjaW5jbHVkZSAiVk1JbnNwZWN0b3IuaCIKICNpbmNsdWRlICJXYXRjaGRvZy5oIgpJbmRl
eDogU291cmNlL1dURi9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dURi9DaGFuZ2VM
b2cJKHJldmlzaW9uIDIzMDk5OCkKKysrIFNvdXJjZS9XVEYvQ2hhbmdlTG9nCSh3b3JraW5nIGNv
cHkpCkBAIC0xLDMgKzEsMzQgQEAKKzIwMTgtMDQtMjUgIE1hcmsgTGFtICA8bWFyay5sYW1AYXBw
bGUuY29tPgorCisgICAgICAgIFB1c2ggdGhlIGRlZmluaXRpb24gb2YgUHRyVGFnIGRvd24gdG8g
dGhlIFdURiBsYXllci4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTE4NDk3NgorICAgICAgICA8cmRhcjovL3Byb2JsZW0vMzk3MjM5MDE+CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhpcyBpcyBpbiBwcmVw
YXJhdGlvbiBmb3IgZG9pbmcgcG9pbnRlciBwcm9maWxpbmcgYXQgdGhlIFdURiBsYXllciBhcyB3
ZWxsLgorICAgICAgICBBbHNvIGRlbGV0ZWQgYW4gdW51c2VkIHB0clRhZygpIGZ1bmN0aW9uLgor
CisgICAgICAgICogV1RGLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogd3Rm
L1B0clRhZy5oOiBDb3BpZWQgZnJvbSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9QdHJU
YWcuaC4KKyAgICAgICAgKFdURjo6bWFrZVB0clRhZ0hhc2gpOgorICAgICAgICAoSlNDOjpwdHJU
YWdOYW1lKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6dGFnRm9yUHRyKTogRGVsZXRlZC4KKyAg
ICAgICAgKEpTQzo6cHRyVGFnKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6dGFnQ29kZVB0cik6
IERlbGV0ZWQuCisgICAgICAgIChKU0M6OnVudGFnQ29kZVB0cik6IERlbGV0ZWQuCisgICAgICAg
IChKU0M6OnJldGFnQ29kZVB0cik6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OnJlbW92ZUNvZGVQ
dHJUYWcpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjp0YWdDRnVuY3Rpb25QdHIpOiBEZWxldGVk
LgorICAgICAgICAoSlNDOjp1bnRhZ0NGdW5jdGlvblB0cik6IERlbGV0ZWQuCisgICAgICAgIChK
U0M6OmFzc2VydElzQ0Z1bmN0aW9uUHRyKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6YXNzZXJ0
SXNOdWxsT3JDRnVuY3Rpb25QdHIpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjphc3NlcnRJc05v
dFRhZ2dlZCk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OmFzc2VydElzVGFnZ2VkKTogRGVsZXRl
ZC4KKyAgICAgICAgKEpTQzo6YXNzZXJ0SXNOdWxsT3JUYWdnZWQpOiBEZWxldGVkLgorICAgICAg
ICAoSlNDOjphc3NlcnRJc1RhZ2dlZFdpdGgpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjphc3Nl
cnRJc051bGxPclRhZ2dlZFdpdGgpOiBEZWxldGVkLgorCiAyMDE4LTA0LTI1ICBEZWFuIEphY2tz
b24gIDxkaW5vQGFwcGxlLmNvbT4KIAogICAgICAgICBNYWtlIGEgYmV0dGVyIGZsYWcgZm9yIHN5
c3RlbSBwcmV2aWV3LCBhbmQgZGlzYWJsZSBpdCB3aGVyZSBuZWNlc3NhcnkKSW5kZXg6IFNvdXJj
ZS9XVEYvV1RGLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dURi9XVEYueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagkocmV2aXNpb24gMjMwOTk4KQorKysg
U291cmNlL1dURi9XVEYueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagkod29ya2luZyBjb3B5KQpA
QCAtNjMzLDYgKzYzMyw3IEBACiAJCUZFMDVGQUU2MUZEQjIxNDMwMDA5MzIzMCAvKiBEdW1iUHRy
VHJhaXRzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IER1bWJQdHJUcmFpdHMu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRkUwNUZBRkUxRkU1MDA3NTAwMDkzMjMw
IC8qIFdURkFzc2VydGlvbnMuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRo
ID0gV1RGQXNzZXJ0aW9ucy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUZFMDVG
QjA0MUZFODQ1MzIwMDA5MzIzMCAvKiBQb2lzb25lZFVuaXF1ZVB0ci5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBQb2lzb25lZFVuaXF1ZVB0ci5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OworCQlGRTc0OTdFNDIwOEZGQ0FBMDAwMzU2NUIgLyogUHRyVGFnLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFB0clRhZy5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQlGRTgyMjUzMDFCMkExRTVCMDBCQTY4RkQgLyogTmFrZWRQdHIuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTmFrZWRQdHIuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJRkU4NTQxNkMxRkJFMjg1QjAwOERBNURBIC8qIFBvaXNvbmVkLmNwcCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFBvaXNvbmVkLmNwcDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRkU4NTQxNkQxRkJFMjg1QzAwOERBNURBIC8qIFBvaXNvbmVk
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFBvaXNvbmVkLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xMDEwLDYgKzEwMTEsNyBAQAogCQkJCTBGQzQ0ODgyMTZG
RTlGRTEwMDg0NEJFOSAvKiBQcm9jZXNzSUQuaCAqLywKIAkJCQk3QUYwMjNCNDIwNjFFMTZGMDBB
OEVGRDYgLyogUHJvY2Vzc1ByaXZpbGVnZS5jcHAgKi8sCiAJCQkJN0FGMDIzQjMyMDYxRTE2QzAw
QThFRkQ2IC8qIFByb2Nlc3NQcml2aWxlZ2UuaCAqLywKKwkJCQlGRTc0OTdFNDIwOEZGQ0FBMDAw
MzU2NUIgLyogUHRyVGFnLmggKi8sCiAJCQkJMTQzRjYxMUQxNTY1RjBGOTAwREI1MTRBIC8qIFJB
TVNpemUuY3BwICovLAogCQkJCTE0M0Y2MTFFMTU2NUYwRjkwMERCNTE0QSAvKiBSQU1TaXplLmgg
Ki8sCiAJCQkJQzhGNTk3Q0EyQTU3NDE3RkJBQjkyRkQ2IC8qIFJhbmRvbURldmljZS5jcHAgKi8s
CkluZGV4OiBTb3VyY2UvV1RGL3d0Zi9QdHJUYWcuaAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV1RG
L3d0Zi9QdHJUYWcuaAkocmV2aXNpb24gMjMwOTk4KQkoZnJvbSBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9QdHJUYWcuaDoyMzA5OTgpCisrKyBTb3VyY2UvV1RGL3d0Zi9QdHJUYWcuaAko
d29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDE4MCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAx
OCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBT
T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8g
RVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlks
IE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
CisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisg
KiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSA8d3RmL1BvaW50
ZXJQcmVwYXJhdGlvbnMuaD4KKworbmFtZXNwYWNlIEpTQyB7CisKKyNkZWZpbmUgRk9SX0VBQ0hf
QkFTRV9QVFJUQUdfRU5VTSh2KSBcCisgICAgdihOb1B0clRhZykgXAorICAgIHYoQ0Z1bmN0aW9u
UHRyVGFnKSBcCisKKyNkZWZpbmUgRk9SX0VBQ0hfQURESVRJT05BTF9QVFJUQUdfRU5VTSh2KSBc
CisgICAgdihCM0NDYWxsUHRyVGFnKSBcCisgICAgdihCM0NvbXBpbGF0aW9uUHRyVGFnKSBcCisg
ICAgdihCeXRlY29kZVB0clRhZykgXAorICAgIHYoRGlzYXNzZW1ibHlQdHJUYWcpIFwKKyAgICB2
KEV4Y2VwdGlvbkhhbmRsZXJQdHJUYWcpIFwKKyAgICB2KEpJVFRodW5rUHRyVGFnKSBcCisgICAg
dihKSVRTdHViUm91dGluZVB0clRhZykgXAorICAgIHYoSlNFbnRyeVB0clRhZykgXAorICAgIHYo
SlNJbnRlcm5hbFB0clRhZykgXAorICAgIHYoSlNTd2l0Y2hQdHJUYWcpIFwKKyAgICB2KExpbmtC
dWZmZXJQdHJUYWcpIFwKKyAgICB2KE9wZXJhdGlvblB0clRhZykgXAorICAgIHYoT1NSRXhpdFB0
clRhZykgXAorICAgIHYoU2xvd1BhdGhQdHJUYWcpIFwKKyAgICB2KFdhc21FbnRyeVB0clRhZykg
XAorICAgIHYoWWFycjhCaXRQdHJUYWcpIFwKKyAgICB2KFlhcnIxNkJpdFB0clRhZykgXAorICAg
IHYoWWFyck1hdGNoT25seThCaXRQdHJUYWcpIFwKKyAgICB2KFlhcnJNYXRjaE9ubHkxNkJpdFB0
clRhZykgXAorICAgIHYoWWFyckJhY2t0cmFja1B0clRhZykgXAorCisjZGVmaW5lIEZPUl9FQUNI
X1BUUlRBR19FTlVNKHYpIFwKKyAgICBGT1JfRUFDSF9CQVNFX1BUUlRBR19FTlVNKHYpIFwKKyAg
ICBGT1JfRUFDSF9BRERJVElPTkFMX1BUUlRBR19FTlVNKHYpIFwKKworZW51bSBQdHJUYWcgOiB1
aW50cHRyX3QgeworICAgIE5vUHRyVGFnLAorICAgIENGdW5jdGlvblB0clRhZywKKworI2lmbmRl
ZiBQVFJUQUdfRU5VTV9IQVNICisjZGVmaW5lIERFQ0xBUkVfUFRSVEFHX0VOVU0odGFnKSAgdGFn
LAorI2Vsc2UKKyNkZWZpbmUgREVDTEFSRV9QVFJUQUdfRU5VTSh0YWcpICB0YWcgPSBQVFJUQUdf
RU5VTV9IQVNIKHRhZyksCisjZW5kaWYKKyAgICBGT1JfRUFDSF9BRERJVElPTkFMX1BUUlRBR19F
TlVNKERFQ0xBUkVfUFRSVEFHX0VOVU0pCisjdW5kZWYgREVDTEFSRV9QVFJUQUdfRU5VTQorfTsK
Kworc3RhdGljX2Fzc2VydChzdGF0aWNfY2FzdDx1aW50cHRyX3Q+KE5vUHRyVGFnKSA9PSBzdGF0
aWNfY2FzdDx1aW50cHRyX3Q+KDApLCAiIik7CitzdGF0aWNfYXNzZXJ0KHN0YXRpY19jYXN0PHVp
bnRwdHJfdD4oQ0Z1bmN0aW9uUHRyVGFnKSA9PSBzdGF0aWNfY2FzdDx1aW50cHRyX3Q+KDEpLCAi
Iik7CisKK2lubGluZSBjb25zdCBjaGFyKiBwdHJUYWdOYW1lKFB0clRhZyB0YWcpCit7CisjZGVm
aW5lIFJFVFVSTl9QVFJUQUdfTkFNRShfdGFnTmFtZSkgY2FzZSBfdGFnTmFtZTogcmV0dXJuICNf
dGFnTmFtZTsKKyAgICBzd2l0Y2ggKHRhZykgeworICAgICAgICBGT1JfRUFDSF9QVFJUQUdfRU5V
TShSRVRVUk5fUFRSVEFHX05BTUUpCisgICAgZGVmYXVsdDogcmV0dXJuICI8dW5rbm93bj4iOwor
ICAgIH0KKyN1bmRlZiBSRVRVUk5fUFRSVEFHX05BTUUKK30KKworI2lmICFVU0UoUE9JTlRFUl9Q
Uk9GSUxJTkcpCisKK2lubGluZSBjb25zdCBjaGFyKiB0YWdGb3JQdHIoY29uc3Qgdm9pZCopIHsg
cmV0dXJuICI8bm8gdGFnPiI7IH0KKwordGVtcGxhdGU8dHlwZW5hbWUuLi4gQXJndW1lbnRzPgor
aW5saW5lIGNvbnN0ZXhwciBQdHJUYWcgcHRyVGFnKEFyZ3VtZW50cyYmLi4uKSB7IHJldHVybiBO
b1B0clRhZzsgfQorCit0ZW1wbGF0ZTx0eXBlbmFtZSBULCB0eXBlbmFtZSBQdHJUeXBlLCB0eXBl
bmFtZSA9IHN0ZDo6ZW5hYmxlX2lmX3Q8c3RkOjppc19wb2ludGVyPFB0clR5cGU+Ojp2YWx1ZSAm
JiAhc3RkOjppc19zYW1lPFQsIFB0clR5cGU+Ojp2YWx1ZT4+CitpbmxpbmUgY29uc3RleHByIFQg
dGFnQ29kZVB0cihQdHJUeXBlIHB0ciwgUHRyVGFnKSB7IHJldHVybiBiaXR3aXNlX2Nhc3Q8VD4o
cHRyKTsgfQorCit0ZW1wbGF0ZTx0eXBlbmFtZSBULCBQdHJUYWcsIHR5cGVuYW1lIFB0clR5cGUs
IHR5cGVuYW1lID0gc3RkOjplbmFibGVfaWZfdDxzdGQ6OmlzX3BvaW50ZXI8UHRyVHlwZT46OnZh
bHVlPj4KK2lubGluZSBUIHRhZ0NvZGVQdHIoUHRyVHlwZSBwdHIpIHsgcmV0dXJuIGJpdHdpc2Vf
Y2FzdDxUPihwdHIpOyB9CisKK3RlbXBsYXRlPHR5cGVuYW1lIFB0clR5cGUsIHR5cGVuYW1lID0g
c3RkOjplbmFibGVfaWZfdDxzdGQ6OmlzX3BvaW50ZXI8UHRyVHlwZT46OnZhbHVlPj4KK2lubGlu
ZSBjb25zdGV4cHIgUHRyVHlwZSB0YWdDb2RlUHRyKFB0clR5cGUgcHRyLCBQdHJUYWcpIHsgcmV0
dXJuIHB0cjsgfQorCit0ZW1wbGF0ZTxQdHJUYWcsIHR5cGVuYW1lIFB0clR5cGUsIHR5cGVuYW1l
ID0gc3RkOjplbmFibGVfaWZfdDxzdGQ6OmlzX3BvaW50ZXI8UHRyVHlwZT46OnZhbHVlPj4KK2lu
bGluZSBQdHJUeXBlIHRhZ0NvZGVQdHIoUHRyVHlwZSBwdHIpIHsgcmV0dXJuIHB0cjsgfQorCit0
ZW1wbGF0ZTx0eXBlbmFtZSBULCB0eXBlbmFtZSBQdHJUeXBlLCB0eXBlbmFtZSA9IHN0ZDo6ZW5h
YmxlX2lmX3Q8c3RkOjppc19wb2ludGVyPFB0clR5cGU+Ojp2YWx1ZSAmJiAhc3RkOjppc19zYW1l
PFQsIFB0clR5cGU+Ojp2YWx1ZT4+CitpbmxpbmUgY29uc3RleHByIFQgdW50YWdDb2RlUHRyKFB0
clR5cGUgcHRyLCBQdHJUYWcpIHsgcmV0dXJuIGJpdHdpc2VfY2FzdDxUPihwdHIpOyB9CisKK3Rl
bXBsYXRlPHR5cGVuYW1lIFQsIFB0clRhZywgdHlwZW5hbWUgUHRyVHlwZSwgdHlwZW5hbWUgPSBz
dGQ6OmVuYWJsZV9pZl90PHN0ZDo6aXNfcG9pbnRlcjxQdHJUeXBlPjo6dmFsdWU+PgoraW5saW5l
IFQgdW50YWdDb2RlUHRyKFB0clR5cGUgcHRyKSAgeyByZXR1cm4gYml0d2lzZV9jYXN0PFQ+KHB0
cik7IH0KKwordGVtcGxhdGU8dHlwZW5hbWUgUHRyVHlwZSwgdHlwZW5hbWUgPSBzdGQ6OmVuYWJs
ZV9pZl90PHN0ZDo6aXNfcG9pbnRlcjxQdHJUeXBlPjo6dmFsdWU+PgoraW5saW5lIGNvbnN0ZXhw
ciBQdHJUeXBlIHVudGFnQ29kZVB0cihQdHJUeXBlIHB0ciwgUHRyVGFnKSB7IHJldHVybiBwdHI7
IH0KKwordGVtcGxhdGU8UHRyVGFnLCB0eXBlbmFtZSBQdHJUeXBlLCB0eXBlbmFtZSA9IHN0ZDo6
ZW5hYmxlX2lmX3Q8c3RkOjppc19wb2ludGVyPFB0clR5cGU+Ojp2YWx1ZT4+CitpbmxpbmUgUHRy
VHlwZSB1bnRhZ0NvZGVQdHIoUHRyVHlwZSBwdHIpIHsgcmV0dXJuIHB0cjsgfQorCit0ZW1wbGF0
ZTx0eXBlbmFtZSBULCB0eXBlbmFtZSBQdHJUeXBlLCB0eXBlbmFtZSA9IHN0ZDo6ZW5hYmxlX2lm
X3Q8c3RkOjppc19wb2ludGVyPFB0clR5cGU+Ojp2YWx1ZSAmJiAhc3RkOjppc19zYW1lPFQsIFB0
clR5cGU+Ojp2YWx1ZT4+CitpbmxpbmUgY29uc3RleHByIFQgcmV0YWdDb2RlUHRyKFB0clR5cGUg
cHRyLCBQdHJUYWcsIFB0clRhZykgeyByZXR1cm4gYml0d2lzZV9jYXN0PFQ+KHB0cik7IH0KKwor
dGVtcGxhdGU8dHlwZW5hbWUgVCwgUHRyVGFnLCBQdHJUYWcsIHR5cGVuYW1lIFB0clR5cGUsIHR5
cGVuYW1lID0gc3RkOjplbmFibGVfaWZfdDxzdGQ6OmlzX3BvaW50ZXI8UHRyVHlwZT46OnZhbHVl
Pj4KK2lubGluZSBUIHJldGFnQ29kZVB0cihQdHJUeXBlIHB0cikgeyByZXR1cm4gYml0d2lzZV9j
YXN0PFQ+KHB0cik7IH0KKwordGVtcGxhdGU8dHlwZW5hbWUgUHRyVHlwZSwgdHlwZW5hbWUgPSBz
dGQ6OmVuYWJsZV9pZl90PHN0ZDo6aXNfcG9pbnRlcjxQdHJUeXBlPjo6dmFsdWU+PgoraW5saW5l
IGNvbnN0ZXhwciBQdHJUeXBlIHJldGFnQ29kZVB0cihQdHJUeXBlIHB0ciwgUHRyVGFnLCBQdHJU
YWcpIHsgcmV0dXJuIHB0cjsgfQorCit0ZW1wbGF0ZTxQdHJUYWcsIFB0clRhZywgdHlwZW5hbWUg
UHRyVHlwZSwgdHlwZW5hbWUgPSBzdGQ6OmVuYWJsZV9pZl90PHN0ZDo6aXNfcG9pbnRlcjxQdHJU
eXBlPjo6dmFsdWU+PgoraW5saW5lIFB0clR5cGUgcmV0YWdDb2RlUHRyKFB0clR5cGUgcHRyKSB7
IHJldHVybiBwdHI7IH0KKwordGVtcGxhdGU8dHlwZW5hbWUgVCwgdHlwZW5hbWUgUHRyVHlwZSwg
dHlwZW5hbWUgPSBzdGQ6OmVuYWJsZV9pZl90PHN0ZDo6aXNfcG9pbnRlcjxQdHJUeXBlPjo6dmFs
dWUgJiYgIXN0ZDo6aXNfc2FtZTxULCBQdHJUeXBlPjo6dmFsdWU+PgoraW5saW5lIGNvbnN0ZXhw
ciBUIHJlbW92ZUNvZGVQdHJUYWcoUHRyVHlwZSBwdHIpIHsgcmV0dXJuIGJpdHdpc2VfY2FzdDxU
PihwdHIpOyB9CisKK3RlbXBsYXRlPHR5cGVuYW1lIFB0clR5cGUsIHR5cGVuYW1lID0gc3RkOjpl
bmFibGVfaWZfdDxzdGQ6OmlzX3BvaW50ZXI8UHRyVHlwZT46OnZhbHVlPj4KK2lubGluZSBjb25z
dGV4cHIgUHRyVHlwZSByZW1vdmVDb2RlUHRyVGFnKFB0clR5cGUgcHRyKSB7IHJldHVybiBwdHI7
IH0KKwordGVtcGxhdGU8dHlwZW5hbWUgVCwgdHlwZW5hbWUgUHRyVHlwZSwgdHlwZW5hbWUgPSBz
dGQ6OmVuYWJsZV9pZl90PHN0ZDo6aXNfcG9pbnRlcjxQdHJUeXBlPjo6dmFsdWUgJiYgIXN0ZDo6
aXNfc2FtZTxULCBQdHJUeXBlPjo6dmFsdWU+PgoraW5saW5lIFQgdGFnQ0Z1bmN0aW9uUHRyKFB0
clR5cGUgcHRyLCBQdHJUYWcpIHsgcmV0dXJuIGJpdHdpc2VfY2FzdDxUPihwdHIpOyB9CisKK3Rl
bXBsYXRlPHR5cGVuYW1lIFQsIFB0clRhZywgdHlwZW5hbWUgUHRyVHlwZSwgdHlwZW5hbWUgPSBz
dGQ6OmVuYWJsZV9pZl90PHN0ZDo6aXNfcG9pbnRlcjxQdHJUeXBlPjo6dmFsdWU+PgoraW5saW5l
IFQgdGFnQ0Z1bmN0aW9uUHRyKFB0clR5cGUgcHRyKSB7IHJldHVybiBiaXR3aXNlX2Nhc3Q8VD4o
cHRyKTsgfQorCit0ZW1wbGF0ZTx0eXBlbmFtZSBQdHJUeXBlLCB0eXBlbmFtZSA9IHN0ZDo6ZW5h
YmxlX2lmX3Q8c3RkOjppc19wb2ludGVyPFB0clR5cGU+Ojp2YWx1ZT4+CitpbmxpbmUgUHRyVHlw
ZSB0YWdDRnVuY3Rpb25QdHIoUHRyVHlwZSBwdHIsIFB0clRhZykgeyByZXR1cm4gcHRyOyB9CisK
K3RlbXBsYXRlPFB0clRhZywgdHlwZW5hbWUgUHRyVHlwZSwgdHlwZW5hbWUgPSBzdGQ6OmVuYWJs
ZV9pZl90PHN0ZDo6aXNfcG9pbnRlcjxQdHJUeXBlPjo6dmFsdWU+PgoraW5saW5lIFB0clR5cGUg
dGFnQ0Z1bmN0aW9uUHRyKFB0clR5cGUgcHRyKSB7IHJldHVybiBwdHI7IH0KKwordGVtcGxhdGU8
dHlwZW5hbWUgVCwgdHlwZW5hbWUgUHRyVHlwZSwgdHlwZW5hbWUgPSBzdGQ6OmVuYWJsZV9pZl90
PHN0ZDo6aXNfcG9pbnRlcjxQdHJUeXBlPjo6dmFsdWUgJiYgIXN0ZDo6aXNfc2FtZTxULCBQdHJU
eXBlPjo6dmFsdWU+PgoraW5saW5lIFQgdW50YWdDRnVuY3Rpb25QdHIoUHRyVHlwZSBwdHIsIFB0
clRhZykgeyByZXR1cm4gYml0d2lzZV9jYXN0PFQ+KHB0cik7IH0KKwordGVtcGxhdGU8dHlwZW5h
bWUgVCwgUHRyVGFnLCB0eXBlbmFtZSBQdHJUeXBlLCB0eXBlbmFtZSA9IHN0ZDo6ZW5hYmxlX2lm
X3Q8c3RkOjppc19wb2ludGVyPFB0clR5cGU+Ojp2YWx1ZT4+CitpbmxpbmUgVCB1bnRhZ0NGdW5j
dGlvblB0cihQdHJUeXBlIHB0cikgeyByZXR1cm4gYml0d2lzZV9jYXN0PFQ+KHB0cik7IH0KKwor
dGVtcGxhdGU8dHlwZW5hbWUgUHRyVHlwZSwgdHlwZW5hbWUgPSBzdGQ6OmVuYWJsZV9pZl90PHN0
ZDo6aXNfcG9pbnRlcjxQdHJUeXBlPjo6dmFsdWU+PgoraW5saW5lIFB0clR5cGUgdW50YWdDRnVu
Y3Rpb25QdHIoUHRyVHlwZSBwdHIsIFB0clRhZykgeyByZXR1cm4gcHRyOyB9CisKK3RlbXBsYXRl
PFB0clRhZywgdHlwZW5hbWUgUHRyVHlwZSwgdHlwZW5hbWUgPSBzdGQ6OmVuYWJsZV9pZl90PHN0
ZDo6aXNfcG9pbnRlcjxQdHJUeXBlPjo6dmFsdWU+PgoraW5saW5lIFB0clR5cGUgdW50YWdDRnVu
Y3Rpb25QdHIoUHRyVHlwZSBwdHIpIHsgcmV0dXJuIHB0cjsgfQorCit0ZW1wbGF0ZTx0eXBlbmFt
ZSBQdHJUeXBlPiB2b2lkIGFzc2VydElzQ0Z1bmN0aW9uUHRyKFB0clR5cGUpIHsgfQordGVtcGxh
dGU8dHlwZW5hbWUgUHRyVHlwZT4gdm9pZCBhc3NlcnRJc051bGxPckNGdW5jdGlvblB0cihQdHJU
eXBlKSB7IH0KKwordGVtcGxhdGU8dHlwZW5hbWUgUHRyVHlwZT4gdm9pZCBhc3NlcnRJc05vdFRh
Z2dlZChQdHJUeXBlKSB7IH0KK3RlbXBsYXRlPHR5cGVuYW1lIFB0clR5cGU+IHZvaWQgYXNzZXJ0
SXNUYWdnZWQoUHRyVHlwZSkgeyB9Cit0ZW1wbGF0ZTx0eXBlbmFtZSBQdHJUeXBlPiB2b2lkIGFz
c2VydElzTnVsbE9yVGFnZ2VkKFB0clR5cGUpIHsgfQorCit0ZW1wbGF0ZTx0eXBlbmFtZSBQdHJU
eXBlPiB2b2lkIGFzc2VydElzVGFnZ2VkV2l0aChQdHJUeXBlLCBQdHJUYWcpIHsgfQordGVtcGxh
dGU8dHlwZW5hbWUgUHRyVHlwZT4gdm9pZCBhc3NlcnRJc051bGxPclRhZ2dlZFdpdGgoUHRyVHlw
ZSwgUHRyVGFnKSB7IH0KKworI2RlZmluZSBDQUxMX1dJVEhfUFRSVEFHKGNhbGxJbnN0cnVjdGlv
blN0cmluZywgdGFyZ2V0UmVnaXN0ZXJTdHJpbmcsIHRhZykgXAorICAgIGNhbGxJbnN0cnVjdGlv
blN0cmluZyAiICIgdGFyZ2V0UmVnaXN0ZXJTdHJpbmcgIlxuIgorCisjZW5kaWYgLy8gIVVTRShQ
T0lOVEVSX1BST0ZJTElORykKKworfSAvLyBuYW1lc3BhY2UgSlNDCisKKyNpZiBVU0UoQVBQTEVf
SU5URVJOQUxfU0RLKSAmJiBfX2hhc19pbmNsdWRlKDxXZWJLaXRBZGRpdGlvbnMvUHRyVGFnU3Vw
cG9ydC5oPikKKyNpbmNsdWRlIDxXZWJLaXRBZGRpdGlvbnMvUHRyVGFnU3VwcG9ydC5oPgorI2Vu
ZGlmCkluZGV4OiBTb3VyY2UvV1RGL3d0Zi9QdHJUYWcuaAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V1RGL3d0Zi9QdHJUYWcuaAkocmV2aXNpb24gMjMwOTk4KQorKysgU291cmNlL1dURi93dGYvUHRy
VGFnLmgJKHdvcmtpbmcgY29weSkKQEAgLTI3LDcxICsyNyw0OSBAQAogCiAjaW5jbHVkZSA8d3Rm
L1BvaW50ZXJQcmVwYXJhdGlvbnMuaD4KIAotbmFtZXNwYWNlIEpTQyB7CituYW1lc3BhY2UgV1RG
IHsKIAotI2RlZmluZSBGT1JfRUFDSF9CQVNFX1BUUlRBR19FTlVNKHYpIFwKKyNkZWZpbmUgRk9S
X0VBQ0hfQkFTRV9XVEZfUFRSVEFHKHYpIFwKICAgICB2KE5vUHRyVGFnKSBcCiAgICAgdihDRnVu
Y3Rpb25QdHJUYWcpIFwKIAotI2RlZmluZSBGT1JfRUFDSF9BRERJVElPTkFMX1BUUlRBR19FTlVN
KHYpIFwKLSAgICB2KEIzQ0NhbGxQdHJUYWcpIFwKLSAgICB2KEIzQ29tcGlsYXRpb25QdHJUYWcp
IFwKLSAgICB2KEJ5dGVjb2RlUHRyVGFnKSBcCi0gICAgdihEaXNhc3NlbWJseVB0clRhZykgXAot
ICAgIHYoRXhjZXB0aW9uSGFuZGxlclB0clRhZykgXAotICAgIHYoSklUVGh1bmtQdHJUYWcpIFwK
LSAgICB2KEpJVFN0dWJSb3V0aW5lUHRyVGFnKSBcCi0gICAgdihKU0VudHJ5UHRyVGFnKSBcCi0g
ICAgdihKU0ludGVybmFsUHRyVGFnKSBcCi0gICAgdihKU1N3aXRjaFB0clRhZykgXAotICAgIHYo
TGlua0J1ZmZlclB0clRhZykgXAotICAgIHYoT3BlcmF0aW9uUHRyVGFnKSBcCi0gICAgdihPU1JF
eGl0UHRyVGFnKSBcCi0gICAgdihTbG93UGF0aFB0clRhZykgXAotICAgIHYoV2FzbUVudHJ5UHRy
VGFnKSBcCi0gICAgdihZYXJyOEJpdFB0clRhZykgXAotICAgIHYoWWFycjE2Qml0UHRyVGFnKSBc
Ci0gICAgdihZYXJyTWF0Y2hPbmx5OEJpdFB0clRhZykgXAotICAgIHYoWWFyck1hdGNoT25seTE2
Qml0UHRyVGFnKSBcCi0gICAgdihZYXJyQmFja3RyYWNrUHRyVGFnKSBcCi0KLSNkZWZpbmUgRk9S
X0VBQ0hfUFRSVEFHX0VOVU0odikgXAotICAgIEZPUl9FQUNIX0JBU0VfUFRSVEFHX0VOVU0odikg
XAotICAgIEZPUl9FQUNIX0FERElUSU9OQUxfUFRSVEFHX0VOVU0odikgXAorI2RlZmluZSBGT1Jf
RUFDSF9BRERJVElPTkFMX1dURl9QVFJUQUcodikgXAorCisjZGVmaW5lIEZPUl9FQUNIX1dURl9Q
VFJUQUcodikgXAorICAgIEZPUl9FQUNIX0JBU0VfV1RGX1BUUlRBRyh2KSBcCisgICAgRk9SX0VB
Q0hfQURESVRJT05BTF9XVEZfUFRSVEFHKHYpIFwKIAogZW51bSBQdHJUYWcgOiB1aW50cHRyX3Qg
ewogICAgIE5vUHRyVGFnLAogICAgIENGdW5jdGlvblB0clRhZywKK307CiAKLSNpZm5kZWYgUFRS
VEFHX0VOVU1fSEFTSAotI2RlZmluZSBERUNMQVJFX1BUUlRBR19FTlVNKHRhZykgIHRhZywKLSNl
bHNlCi0jZGVmaW5lIERFQ0xBUkVfUFRSVEFHX0VOVU0odGFnKSAgdGFnID0gUFRSVEFHX0VOVU1f
SEFTSCh0YWcpLAorI2lmbmRlZiBXVEZfUFRSVEFHX0hBU0gKK3RlbXBsYXRlPHNpemVfdCBOPgor
Y29uc3RleHByIHVpbnRwdHJfdCBtYWtlUHRyVGFnSGFzaChjb25zdCBjaGFyICgmc3RyKVtOXSkK
K3sKKyAgICB1aW50cHRyX3QgcmVzdWx0ID0gMTM0Nzc1ODEzOworICAgIGZvciAoc2l6ZV90IGkg
PSAwOyBpIDwgTjsgKytpKQorICAgICAgICByZXN1bHQgKz0gKChyZXN1bHQgKiBzdHJbaV0pIF4g
KHJlc3VsdCA+PiAxNikpOworICAgIHJldHVybiByZXN1bHQgJiAweGZmZmY7Cit9CisKKyNkZWZp
bmUgV1RGX1BUUlRBR19IQVNIKHRhZykgV1RGOjptYWtlUHRyVGFnSGFzaCgjdGFnKQogI2VuZGlm
Ci0gICAgRk9SX0VBQ0hfQURESVRJT05BTF9QVFJUQUdfRU5VTShERUNMQVJFX1BUUlRBR19FTlVN
KQotI3VuZGVmIERFQ0xBUkVfUFRSVEFHX0VOVU0KLX07CisKKyNkZWZpbmUgV1RGX0RFQ0xBUkVf
UFRSVEFHKHRhZykgXAorICAgIGNvbnN0ZXhwciBQdHJUYWcgdGFnID0gc3RhdGljX2Nhc3Q8UHRy
VGFnPihXVEZfUFRSVEFHX0hBU0goI3RhZykpOyBcCisgICAgc3RhdGljX2Fzc2VydCh0YWcgIT0g
Tm9QdHJUYWcgJiYgdGFnICE9IENGdW5jdGlvblB0clRhZywgIiIpOwogCiBzdGF0aWNfYXNzZXJ0
KHN0YXRpY19jYXN0PHVpbnRwdHJfdD4oTm9QdHJUYWcpID09IHN0YXRpY19jYXN0PHVpbnRwdHJf
dD4oMCksICIiKTsKIHN0YXRpY19hc3NlcnQoc3RhdGljX2Nhc3Q8dWludHB0cl90PihDRnVuY3Rp
b25QdHJUYWcpID09IHN0YXRpY19jYXN0PHVpbnRwdHJfdD4oMSksICIiKTsKIAotaW5saW5lIGNv
bnN0IGNoYXIqIHB0clRhZ05hbWUoUHRyVGFnIHRhZykKLXsKLSNkZWZpbmUgUkVUVVJOX1BUUlRB
R19OQU1FKF90YWdOYW1lKSBjYXNlIF90YWdOYW1lOiByZXR1cm4gI190YWdOYW1lOwotICAgIHN3
aXRjaCAodGFnKSB7Ci0gICAgICAgIEZPUl9FQUNIX1BUUlRBR19FTlVNKFJFVFVSTl9QVFJUQUdf
TkFNRSkKLSAgICBkZWZhdWx0OiByZXR1cm4gIjx1bmtub3duPiI7Ci0gICAgfQotI3VuZGVmIFJF
VFVSTl9QVFJUQUdfTkFNRQotfQorRk9SX0VBQ0hfQURESVRJT05BTF9XVEZfUFRSVEFHKFdURl9E
RUNMQVJFX1BUUlRBRykKIAogI2lmICFVU0UoUE9JTlRFUl9QUk9GSUxJTkcpCiAKIGlubGluZSBj
b25zdCBjaGFyKiB0YWdGb3JQdHIoY29uc3Qgdm9pZCopIHsgcmV0dXJuICI8bm8gdGFnPiI7IH0K
IAotdGVtcGxhdGU8dHlwZW5hbWUuLi4gQXJndW1lbnRzPgotaW5saW5lIGNvbnN0ZXhwciBQdHJU
YWcgcHRyVGFnKEFyZ3VtZW50cyYmLi4uKSB7IHJldHVybiBOb1B0clRhZzsgfQotCiB0ZW1wbGF0
ZTx0eXBlbmFtZSBULCB0eXBlbmFtZSBQdHJUeXBlLCB0eXBlbmFtZSA9IHN0ZDo6ZW5hYmxlX2lm
X3Q8c3RkOjppc19wb2ludGVyPFB0clR5cGU+Ojp2YWx1ZSAmJiAhc3RkOjppc19zYW1lPFQsIFB0
clR5cGU+Ojp2YWx1ZT4+CiBpbmxpbmUgY29uc3RleHByIFQgdGFnQ29kZVB0cihQdHJUeXBlIHB0
ciwgUHRyVGFnKSB7IHJldHVybiBiaXR3aXNlX2Nhc3Q8VD4ocHRyKTsgfQogCkBAIC0xNzMsOCAr
MTUxLDI5IEBAIHRlbXBsYXRlPHR5cGVuYW1lIFB0clR5cGU+IHZvaWQgYXNzZXJ0SXMKIAogI2Vu
ZGlmIC8vICFVU0UoUE9JTlRFUl9QUk9GSUxJTkcpCiAKLX0gLy8gbmFtZXNwYWNlIEpTQworfSAv
LyBuYW1lc3BhY2UgV1RGCisKK3VzaW5nIFdURjo6Q0Z1bmN0aW9uUHRyVGFnOwordXNpbmcgV1RG
OjpOb1B0clRhZzsKK3VzaW5nIFdURjo6UHRyVGFnOwogCiAjaWYgVVNFKEFQUExFX0lOVEVSTkFM
X1NESykgJiYgX19oYXNfaW5jbHVkZSg8V2ViS2l0QWRkaXRpb25zL1B0clRhZ1N1cHBvcnQuaD4p
CiAjaW5jbHVkZSA8V2ViS2l0QWRkaXRpb25zL1B0clRhZ1N1cHBvcnQuaD4KICNlbmRpZgorCit1
c2luZyBXVEY6OnRhZ0ZvclB0cjsKKwordXNpbmcgV1RGOjp0YWdDb2RlUHRyOwordXNpbmcgV1RG
Ojp1bnRhZ0NvZGVQdHI7Cit1c2luZyBXVEY6OnJldGFnQ29kZVB0cjsKK3VzaW5nIFdURjo6cmVt
b3ZlQ29kZVB0clRhZzsKK3VzaW5nIFdURjo6dGFnQ0Z1bmN0aW9uUHRyOwordXNpbmcgV1RGOjp1
bnRhZ0NGdW5jdGlvblB0cjsKKwordXNpbmcgV1RGOjphc3NlcnRJc0NGdW5jdGlvblB0cjsKK3Vz
aW5nIFdURjo6YXNzZXJ0SXNOdWxsT3JDRnVuY3Rpb25QdHI7Cit1c2luZyBXVEY6OmFzc2VydElz
Tm90VGFnZ2VkOwordXNpbmcgV1RGOjphc3NlcnRJc1RhZ2dlZDsKK3VzaW5nIFdURjo6YXNzZXJ0
SXNOdWxsT3JUYWdnZWQ7Cit1c2luZyBXVEY6OmFzc2VydElzVGFnZ2VkV2l0aDsKK3VzaW5nIFdU
Rjo6YXNzZXJ0SXNOdWxsT3JUYWdnZWRXaXRoOwpJbmRleDogU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMjMw
OTk4KQorKysgU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMg
KzEsMjAgQEAKKzIwMTgtMDQtMjUgIE1hcmsgTGFtICA8bWFyay5sYW1AYXBwbGUuY29tPgorCisg
ICAgICAgIFB1c2ggdGhlIGRlZmluaXRpb24gb2YgUHRyVGFnIGRvd24gdG8gdGhlIFdURiBsYXll
ci4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE4NDk3
NgorICAgICAgICA8cmRhcjovL3Byb2JsZW0vMzk3MjM5MDE+CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTm8gbmV3IHRlc3RzIG5lZWRlZC4gIFRoaXMg
aXMgY292ZXJlZCBieSBleGlzdGluZyB0ZXN0cy4KKworICAgICAgICAqIGNzc2ppdC9DU1NQdHJU
YWcuaDoKKyAgICAgICAgKiBjc3NqaXQvU2VsZWN0b3JDb21waWxlci5oOgorICAgICAgICAoV2Vi
Q29yZTo6U2VsZWN0b3JDb21waWxlcjo6cnVsZUNvbGxlY3RvclNpbXBsZVNlbGVjdG9yQ2hlY2tl
ckZ1bmN0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OlNlbGVjdG9yQ29tcGlsZXI6OnF1ZXJ5U2Vs
ZWN0b3JTaW1wbGVTZWxlY3RvckNoZWNrZXJGdW5jdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpT
ZWxlY3RvckNvbXBpbGVyOjpydWxlQ29sbGVjdG9yU2VsZWN0b3JDaGVja2VyRnVuY3Rpb25XaXRo
Q2hlY2tpbmdDb250ZXh0KToKKyAgICAgICAgKFdlYkNvcmU6OlNlbGVjdG9yQ29tcGlsZXI6OnF1
ZXJ5U2VsZWN0b3JTZWxlY3RvckNoZWNrZXJGdW5jdGlvbldpdGhDaGVja2luZ0NvbnRleHQpOgor
CiAyMDE4LTA0LTI1ICBQZXIgQXJuZSBWb2xsYW4gIDxwdm9sbGFuQGFwcGxlLmNvbT4KIAogICAg
ICAgICBbV2luXSBDcmFzaCB1bmRlciBXZWJDb3JlOjpTaW1wbGVMaW5lTGF5b3V0OjpnZW5lcmF0
ZUxpbmVCb3hUcmVlCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9jc3NqaXQvQ1NTUHRyVGFnLmgKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvY3Nzaml0L0NTU1B0clRhZy5oCShyZXZpc2lvbiAy
MzA5OTgpCisrKyBTb3VyY2UvV2ViQ29yZS9jc3NqaXQvQ1NTUHRyVGFnLmgJKHdvcmtpbmcgY29w
eSkKQEAgLTI3LDEyICsyNywxNSBAQAogCiAjaWYgRU5BQkxFKENTU19TRUxFQ1RPUl9KSVQpCiAK
LSNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9QdHJUYWcuaD4KKyNpbmNsdWRlIDxKYXZhU2NyaXB0
Q29yZS9KU0NQdHJUYWcuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1zdGF0aWMgY29uc3Rl
eHByIEpTQzo6UHRyVGFnIENTU1NlbGVjdG9yUHRyVGFnID0gc3RhdGljX2Nhc3Q8SlNDOjpQdHJU
YWc+KDB4YzU1MSk7Ci1zdGF0aWMgY29uc3RleHByIEpTQzo6UHRyVGFnIENTU09wZXJhdGlvblB0
clRhZyA9IHN0YXRpY19jYXN0PEpTQzo6UHRyVGFnPigweGM1NTIpOworI2RlZmluZSBGT1JfRUFD
SF9DU1NfUFRSVEFHKHYpIFwKKyAgICB2KENTU1NlbGVjdG9yUHRyVGFnKSBcCisgICAgdihDU1NP
cGVyYXRpb25QdHJUYWcpIFwKKworRk9SX0VBQ0hfQ1NTX1BUUlRBRyhXVEZfREVDTEFSRV9QVFJU
QUcpCiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIApJbmRleDogU291cmNlL1dlYkNvcmUvY3Nz
aml0L1NlbGVjdG9yQ29tcGlsZXIuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9jc3Nq
aXQvU2VsZWN0b3JDb21waWxlci5oCShyZXZpc2lvbiAyMzA5OTgpCisrKyBTb3VyY2UvV2ViQ29y
ZS9jc3NqaXQvU2VsZWN0b3JDb21waWxlci5oCSh3b3JraW5nIGNvcHkpCkBAIC01OCwyNSArNTgs
MjUgQEAgU2VsZWN0b3JDb21waWxhdGlvblN0YXR1cyBjb21waWxlU2VsZWN0bwogaW5saW5lIFJ1
bGVDb2xsZWN0b3JTaW1wbGVTZWxlY3RvckNoZWNrZXIgcnVsZUNvbGxlY3RvclNpbXBsZVNlbGVj
dG9yQ2hlY2tlckZ1bmN0aW9uKHZvaWQqIGV4ZWN1dGFibGVBZGRyZXNzLCBTZWxlY3RvckNvbXBp
bGF0aW9uU3RhdHVzIGNvbXBpbGF0aW9uU3RhdHVzKQogewogICAgIEFTU0VSVF9VTlVTRUQoY29t
cGlsYXRpb25TdGF0dXMsIGNvbXBpbGF0aW9uU3RhdHVzID09IFNlbGVjdG9yQ29tcGlsYXRpb25T
dGF0dXM6OlNpbXBsZVNlbGVjdG9yQ2hlY2tlcik7Ci0gICAgcmV0dXJuIEpTQzo6dW50YWdDRnVu
Y3Rpb25QdHI8UnVsZUNvbGxlY3RvclNpbXBsZVNlbGVjdG9yQ2hlY2tlciwgQ1NTU2VsZWN0b3JQ
dHJUYWc+KGV4ZWN1dGFibGVBZGRyZXNzKTsKKyAgICByZXR1cm4gV1RGOjp1bnRhZ0NGdW5jdGlv
blB0cjxSdWxlQ29sbGVjdG9yU2ltcGxlU2VsZWN0b3JDaGVja2VyLCBDU1NTZWxlY3RvclB0clRh
Zz4oZXhlY3V0YWJsZUFkZHJlc3MpOwogfQogCiBpbmxpbmUgUXVlcnlTZWxlY3RvclNpbXBsZVNl
bGVjdG9yQ2hlY2tlciBxdWVyeVNlbGVjdG9yU2ltcGxlU2VsZWN0b3JDaGVja2VyRnVuY3Rpb24o
dm9pZCogZXhlY3V0YWJsZUFkZHJlc3MsIFNlbGVjdG9yQ29tcGlsYXRpb25TdGF0dXMgY29tcGls
YXRpb25TdGF0dXMpCiB7CiAgICAgQVNTRVJUX1VOVVNFRChjb21waWxhdGlvblN0YXR1cywgY29t
cGlsYXRpb25TdGF0dXMgPT0gU2VsZWN0b3JDb21waWxhdGlvblN0YXR1czo6U2ltcGxlU2VsZWN0
b3JDaGVja2VyKTsKLSAgICByZXR1cm4gSlNDOjp1bnRhZ0NGdW5jdGlvblB0cjxRdWVyeVNlbGVj
dG9yU2ltcGxlU2VsZWN0b3JDaGVja2VyLCBDU1NTZWxlY3RvclB0clRhZz4oZXhlY3V0YWJsZUFk
ZHJlc3MpOworICAgIHJldHVybiBXVEY6OnVudGFnQ0Z1bmN0aW9uUHRyPFF1ZXJ5U2VsZWN0b3JT
aW1wbGVTZWxlY3RvckNoZWNrZXIsIENTU1NlbGVjdG9yUHRyVGFnPihleGVjdXRhYmxlQWRkcmVz
cyk7CiB9CiAKIGlubGluZSBSdWxlQ29sbGVjdG9yU2VsZWN0b3JDaGVja2VyV2l0aENoZWNraW5n
Q29udGV4dCBydWxlQ29sbGVjdG9yU2VsZWN0b3JDaGVja2VyRnVuY3Rpb25XaXRoQ2hlY2tpbmdD
b250ZXh0KHZvaWQqIGV4ZWN1dGFibGVBZGRyZXNzLCBTZWxlY3RvckNvbXBpbGF0aW9uU3RhdHVz
IGNvbXBpbGF0aW9uU3RhdHVzKQogewogICAgIEFTU0VSVF9VTlVTRUQoY29tcGlsYXRpb25TdGF0
dXMsIGNvbXBpbGF0aW9uU3RhdHVzID09IFNlbGVjdG9yQ29tcGlsYXRpb25TdGF0dXM6OlNlbGVj
dG9yQ2hlY2tlcldpdGhDaGVja2luZ0NvbnRleHQpOwotICAgIHJldHVybiBKU0M6OnVudGFnQ0Z1
bmN0aW9uUHRyPFJ1bGVDb2xsZWN0b3JTZWxlY3RvckNoZWNrZXJXaXRoQ2hlY2tpbmdDb250ZXh0
LCBDU1NTZWxlY3RvclB0clRhZz4oZXhlY3V0YWJsZUFkZHJlc3MpOworICAgIHJldHVybiBXVEY6
OnVudGFnQ0Z1bmN0aW9uUHRyPFJ1bGVDb2xsZWN0b3JTZWxlY3RvckNoZWNrZXJXaXRoQ2hlY2tp
bmdDb250ZXh0LCBDU1NTZWxlY3RvclB0clRhZz4oZXhlY3V0YWJsZUFkZHJlc3MpOwogfQogCiBp
bmxpbmUgUXVlcnlTZWxlY3RvclNlbGVjdG9yQ2hlY2tlcldpdGhDaGVja2luZ0NvbnRleHQgcXVl
cnlTZWxlY3RvclNlbGVjdG9yQ2hlY2tlckZ1bmN0aW9uV2l0aENoZWNraW5nQ29udGV4dCh2b2lk
KiBleGVjdXRhYmxlQWRkcmVzcywgU2VsZWN0b3JDb21waWxhdGlvblN0YXR1cyBjb21waWxhdGlv
blN0YXR1cykKIHsKICAgICBBU1NFUlRfVU5VU0VEKGNvbXBpbGF0aW9uU3RhdHVzLCBjb21waWxh
dGlvblN0YXR1cyA9PSBTZWxlY3RvckNvbXBpbGF0aW9uU3RhdHVzOjpTZWxlY3RvckNoZWNrZXJX
aXRoQ2hlY2tpbmdDb250ZXh0KTsKLSAgICByZXR1cm4gSlNDOjp1bnRhZ0NGdW5jdGlvblB0cjxR
dWVyeVNlbGVjdG9yU2VsZWN0b3JDaGVja2VyV2l0aENoZWNraW5nQ29udGV4dCwgQ1NTU2VsZWN0
b3JQdHJUYWc+KGV4ZWN1dGFibGVBZGRyZXNzKTsKKyAgICByZXR1cm4gV1RGOjp1bnRhZ0NGdW5j
dGlvblB0cjxRdWVyeVNlbGVjdG9yU2VsZWN0b3JDaGVja2VyV2l0aENoZWNraW5nQ29udGV4dCwg
Q1NTU2VsZWN0b3JQdHJUYWc+KGV4ZWN1dGFibGVBZGRyZXNzKTsKIH0KIAogfSAvLyBuYW1lc3Bh
Y2UgU2VsZWN0b3JDb21waWxlcgo=
</data>
<flag name="review"
          id="357046"
          type_id="1"
          status="+"
          setter="saam"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>338783</attachid>
            <date>2018-04-25 13:39:20 -0700</date>
            <delta_ts>2018-04-25 13:39:20 -0700</delta_ts>
            <desc>patch for landing + CMake fixes.</desc>
            <filename>bug-184976.patch</filename>
            <type>text/plain</type>
            <size>47393</size>
            <attacher name="Mark Lam">mark.lam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMjMxMDAwKQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDMzIEBA
CisyMDE4LTA0LTI1ICBNYXJrIExhbSAgPG1hcmsubGFtQGFwcGxlLmNvbT4KKworICAgICAgICBQ
dXNoIHRoZSBkZWZpbml0aW9uIG9mIFB0clRhZyBkb3duIHRvIHRoZSBXVEYgbGF5ZXIuCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xODQ5NzYKKyAgICAg
ICAgPHJkYXI6Ly9wcm9ibGVtLzM5NzIzOTAxPgorCisgICAgICAgIFJldmlld2VkIGJ5IFNhYW0g
QmFyYXRpLgorCisgICAgICAgICogQ01ha2VMaXN0cy50eHQ6CisgICAgICAgICogSmF2YVNjcmlw
dENvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBhc3NlbWJsZXIvQVJN
NjRBc3NlbWJsZXIuaDoKKyAgICAgICAgKiBhc3NlbWJsZXIvQWJzdHJhY3RNYWNyb0Fzc2VtYmxl
ci5oOgorICAgICAgICAqIGFzc2VtYmxlci9NYWNyb0Fzc2VtYmxlckNvZGVSZWYuY3BwOgorICAg
ICAgICAqIGFzc2VtYmxlci9NYWNyb0Fzc2VtYmxlckNvZGVSZWYuaDoKKyAgICAgICAgKiBiMy9C
M01hdGhFeHRyYXMuY3BwOgorICAgICAgICAqIGJ5dGVjb2RlL0xMSW50Q2FsbExpbmtJbmZvLmg6
CisgICAgICAgICogZGlzYXNzZW1ibGVyL0Rpc2Fzc2VtYmxlci5oOgorICAgICAgICAqIGZ0bC9G
VExKSVRDb2RlLmNwcDoKKyAgICAgICAgKiBpbnRlcnByZXRlci9JbnRlcnByZXRlcklubGluZXMu
aDoKKyAgICAgICAgKiBqaXQvRXhlY3V0YWJsZUFsbG9jYXRvci5oOgorICAgICAgICAqIGppdC9K
SVRPcGVyYXRpb25zLmNwcDoKKyAgICAgICAgKiBqaXQvVGh1bmtHZW5lcmF0b3IuaDoKKyAgICAg
ICAgKiBqaXQvVGh1bmtHZW5lcmF0b3JzLmg6CisgICAgICAgICogbGxpbnQvTExJbnRPZmZzZXRz
RXh0cmFjdG9yLmNwcDoKKyAgICAgICAgKiBsbGludC9MTEludFBDUmFuZ2VzLmg6CisgICAgICAg
ICogcnVudGltZS9KU0NQdHJUYWcuaDogQWRkZWQuCisgICAgICAgICogcnVudGltZS9OYXRpdmVG
dW5jdGlvbi5oOgorICAgICAgICAqIHJ1bnRpbWUvUHRyVGFnLmg6IFJlbW92ZWQuCisgICAgICAg
ICogcnVudGltZS9WTVRyYXBzLmNwcDoKKwogMjAxOC0wNC0yNSAgTWljaGFlbCBDYXRhbnphcm8g
IDxtY2F0YW56YXJvQGlnYWxpYS5jb20+CiAKICAgICAgICAgW0dUS10gTWlzY2VsbGFuZW91cyBi
dWlsZCBjbGVhbnVwcwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL0NNYWtlTGlzdHMudHh0
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DTWFrZUxpc3RzLnR4dAkocmV2
aXNpb24gMjMwOTk4KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL0NNYWtlTGlzdHMudHh0CSh3
b3JraW5nIGNvcHkpCkBAIC03NzAsNiArNzcwLDcgQEAgc2V0KEphdmFTY3JpcHRDb3JlX1BSSVZB
VEVfRlJBTUVXT1JLX0hFQQogICAgIHJ1bnRpbWUvSlNDSlNWYWx1ZS5oCiAgICAgcnVudGltZS9K
U0NKU1ZhbHVlSW5saW5lcy5oCiAgICAgcnVudGltZS9KU0NQb2lzb24uaAorICAgIHJ1bnRpbWUv
SlNDUHRyVGFnLmgKICAgICBydW50aW1lL0pTQ2FsbGVlLmgKICAgICBydW50aW1lL0pTQ2FzdC5o
CiAgICAgcnVudGltZS9KU0NlbGwuaApAQCAtODM4LDcgKzgzOSw2IEBAIHNldChKYXZhU2NyaXB0
Q29yZV9QUklWQVRFX0ZSQU1FV09SS19IRUEKICAgICBydW50aW1lL09wZXJhdGlvbnMuaAogICAg
IHJ1bnRpbWUvT3B0aW9ucy5oCiAgICAgcnVudGltZS9QYXJzZUludC5oCi0gICAgcnVudGltZS9Q
dHJUYWcuaAogICAgIHJ1bnRpbWUvUHJpdmF0ZU5hbWUuaAogICAgIHJ1bnRpbWUvUHJvZ3JhbUV4
ZWN1dGFibGUuaAogICAgIHJ1bnRpbWUvUHJvbWlzZURlZmVycmVkVGltZXIuaApJbmRleDogU291
cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHBy
b2oKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2oJKHJldmlzaW9uIDIzMDk5OCkKKysrIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xNzcxLDggKzE3NzEsOCBAQAogCQlGRTYzREQ1NDFFQTlCNjFFMDAxMDNB
NjkgLyogUHJpbnRlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gRkU2M0RENTMxRUE5QjYwRTAwMTAzQTY5IC8qIFByaW50ZXIuaCAqLzsgc2V0dGluZ3Mg
PSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlGRTY0OTEzNzFENzhGMDFEMDBB
Njk0RDQgLyogRXhjZXB0aW9uU2NvcGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IEZFNjQ5MTM2MUQ3OEYwMTMwMEE2OTRENCAvKiBFeGNlcHRpb25TY29w
ZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUZF
NjhDNjM3MUI5MERFMDQwMDQyQkNCMyAvKiBNYWNyb0Fzc2VtYmxlclByaW50ZXIuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEZFNjhDNjM2MUI5MERERDkw
MDQyQkNCMyAvKiBNYWNyb0Fzc2VtYmxlclByaW50ZXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklC
VVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwotCQlGRTZDMUU0QTIwMzY2RjAxMDBCREMyQjcgLyog
UHRyVGFnLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBG
RTlBRTFDODIwMzJDODg3MDAyQjY5MzQgLyogUHRyVGFnLmggKi87IHNldHRpbmdzID0ge0FUVFJJ
QlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJRkU2RjU2REUxRTY0RUFENjAwRDE3ODAxIC8q
IFZNVHJhcHMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IEZFNkY1NkREMUU2NEU5MjAwMEQxNzgwMSAvKiBWTVRyYXBzLmggKi87IHNldHRpbmdzID0ge0FU
VFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJRkU3NDk3RTYyMDkwMDFCMTAwMDM1NjVC
IC8qIEpTQ1B0clRhZy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gRkU3NDk3RTUyMDkwMDFCMDAwMDM1NjVCIC8qIEpTQ1B0clRhZy5oICovOyBzZXR0aW5n
cyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUZFN0M0MTk2MUI5N0ZDNEIw
MEY0RDU5OCAvKiBQaW5nUG9uZ1N0YWNrT3ZlcmZsb3dUZXN0LmNwcCBpbiBTb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEZFREE1MEQ0MUI5N0Y0NDIwMDlBM0I0RiAv
KiBQaW5nUG9uZ1N0YWNrT3ZlcmZsb3dUZXN0LmNwcCAqLzsgfTsKIAkJRkU4MEMxOTcxRDc3NUNE
RDAwODUxMEMwIC8qIENhdGNoU2NvcGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IEZFODBDMTk2MUQ3NzVCMjcwMDg1MTBDMCAvKiBDYXRjaFNjb3BlLmgg
Ki87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJRkU5OUIy
NDkxQzI0QzNEMzAwQzgyMTU5IC8qIEpJVE5lZ0dlbmVyYXRvci5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRkU5OUIyNDgxQzI0QjZEMzAwQzgyMTU5IC8q
IEpJVE5lZ0dlbmVyYXRvci5oICovOyB9OwpAQCAtNDcwNyw2ICs0NzA3LDcgQEAKIAkJRkU2OEM2
MzYxQjkwREREOTAwNDJCQ0IzIC8qIE1hY3JvQXNzZW1ibGVyUHJpbnRlci5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBNYWNyb0Fzc2VtYmxlclByaW50ZXIuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRkU2RjU2REMxRTY0RTkyMDAwRDE3ODAxIC8qIFZNVHJhcHMu
Y3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gVk1UcmFwcy5jcHA7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUZFNkY1NkREMUU2NEU5MjAwMEQxNzgwMSAvKiBW
TVRyYXBzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFZNVHJhcHMuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRkU3NDk3RTUyMDkwMDFCMDAwMDM1NjVCIC8qIEpT
Q1B0clRhZy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU0NQdHJUYWcuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRkU4MEMxOTYxRDc3NUIyNzAwODUxMEMwIC8q
IENhdGNoU2NvcGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQ2F0Y2hTY29w
ZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGRTgwQzE5ODFENzc1RkI0MDA4NTEw
QzAgLyogQ2F0Y2hTY29wZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGgg
PSBDYXRjaFNjb3BlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRkU4MEMxOUEx
RDc3NjhGRDAwODUxMEMwIC8qIEV4Y2VwdGlvbkV2ZW50TG9jYXRpb24uY3BwICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gRXhjZXB0aW9uRXZlbnRMb2NhdGlvbi5jcHA7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC00NzE0LDcgKzQ3MTUsNiBAQAogCQlGRTk4QjVC
NjFCQjlBRTExMDA3M0U3QTYgLyogSklUU3ViR2VuZXJhdG9yLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IEpJVFN1YkdlbmVyYXRvci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQlGRTk5QjI0NzFDMjRCNkQzMDBDODIxNTkgLyogSklUTmVnR2VuZXJhdG9yLmNwcCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpJVE5lZ0dlbmVyYXRvci5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUZFOTlCMjQ4MUMyNEI2RDMwMEM4MjE1OSAv
KiBKSVROZWdHZW5lcmF0b3IuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSklU
TmVnR2VuZXJhdG9yLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUZFOUFFMUM4MjAz
MkM4ODcwMDJCNjkzNCAvKiBQdHJUYWcuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gUHRyVGFnLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUZFQTA4NjFFMTgyQjdB
MDQwMEY2RDg1MSAvKiBCcmVha3BvaW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IEJyZWFrcG9pbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRkVBMDg2MUYx
ODJCN0EwNDAwRjZEODUxIC8qIERlYnVnZ2VyUHJpbWl0aXZlcy5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBEZWJ1Z2dlclByaW1pdGl2ZXMuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJRkVBMEM0MDAxQ0REN0QwRTAwNDgxOTkxIC8qIEZ1bmN0aW9uV2hpdGVsaXN0
LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEZ1bmN0aW9uV2hpdGVs
aXN0LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTY3NDMsNiArNjc0Myw3IEBA
CiAJCQkJMkEwNUFCRDQxOTYxREYyNDAwMzQxNzUwIC8qIEpTUHJvcGVydHlOYW1lRW51bWVyYXRv
ci5oICovLAogCQkJCTg2MjU1M0NFMTYxMzZBQTUwMDlGMTdEMCAvKiBKU1Byb3h5LmNwcCAqLywK
IAkJCQk4NjI1NTNDRjE2MTM2QUE1MDA5RjE3RDAgLyogSlNQcm94eS5oICovLAorCQkJCUZFNzQ5
N0U1MjA5MDAxQjAwMDAzNTY1QiAvKiBKU0NQdHJUYWcuaCAqLywKIAkJCQk1MzQ2Mzg3MjFFNzBE
MDE1MDBGMTJBQzEgLyogSlNSdW5Mb29wVGltZXIuY3BwICovLAogCQkJCTUzNDYzODcwMUU3MENG
M0QwMEYxMkFDMSAvKiBKU1J1bkxvb3BUaW1lci5oICovLAogCQkJCTE0ODc0QUUxMTVFQkRFNEEw
MDJFMzU4NyAvKiBKU1Njb3BlLmNwcCAqLywKQEAgLTY4ODEsNyArNjg4Miw2IEBACiAJCQkJNzlC
MDBDQkIxQzZBQjA3RTAwODhDNjVEIC8qIFByb3h5T2JqZWN0LmggKi8sCiAJCQkJNzkxNjBEQkIx
QzhFM0VDODAwOEMwODVBIC8qIFByb3h5UmV2b2tlLmNwcCAqLywKIAkJCQk3OTE2MERCQzFDOEUz
RUM4MDA4QzA4NUEgLyogUHJveHlSZXZva2UuaCAqLywKLQkJCQlGRTlBRTFDODIwMzJDODg3MDAy
QjY5MzQgLyogUHRyVGFnLmggKi8sCiAJCQkJMEY1NzgwQTExOEZFMUU5ODAwMUU3MkQ5IC8qIFB1
cmVOYU4uaCAqLywKIAkJCQkwRjBDRDRDMDE1RjFBNjA0MDAzMkYxQzAgLyogUHV0RGlyZWN0SW5k
ZXhNb2RlLmggKi8sCiAJCQkJMTQ3Qjg0NjIwRTZERTZCMTAwNDc3NUE0IC8qIFB1dFByb3BlcnR5
U2xvdC5oICovLApAQCAtOTA2MSw2ICs5MDYxLDcgQEAKIAkJCQk3QzAwOENEQjE4NzEyNEJCMDA5
NTVDMjQgLyogSlNQcm9taXNlRGVmZXJyZWQuaCBpbiBIZWFkZXJzICovLAogCQkJCTdDMTg0RTFG
MTdCRUUyMkUwMDdDQjYzQSAvKiBKU1Byb21pc2VQcm90b3R5cGUuaCBpbiBIZWFkZXJzICovLAog
CQkJCTk5NkI3MzFGMUJEQTA4RUYwMDMzMUI4NCAvKiBKU1Byb21pc2VQcm90b3R5cGUubHV0Lmgg
aW4gSGVhZGVycyAqLywKKwkJCQlGRTc0OTdFNjIwOTAwMUIxMDAwMzU2NUIgLyogSlNDUHRyVGFn
LmggaW4gSGVhZGVycyAqLywKIAkJCQkyQTA1QUJENjE5NjFERjI0MDAzNDE3NTAgLyogSlNQcm9w
ZXJ0eU5hbWVFbnVtZXJhdG9yLmggaW4gSGVhZGVycyAqLywKIAkJCQk4NjI1NTNEMjE2MTM2RTFB
MDA5RjE3RDAgLyogSlNQcm94eS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTU1MkMzODAxQUREQjhG
RTAwMTM5NzI2IC8qIEpTUmVtb3RlSW5zcGVjdG9yLmggaW4gSGVhZGVycyAqLywKQEAgLTkyODcs
NyArOTI4OCw2IEBACiAJCQkJNzlCMDBDQkQxQzZBQjA3RTAwODhDNjVEIC8qIFByb3h5Q29uc3Ry
dWN0b3IuaCBpbiBIZWFkZXJzICovLAogCQkJCTc5QjAwQ0JGMUM2QUIwN0UwMDg4QzY1RCAvKiBQ
cm94eU9iamVjdC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNzkxNjBEQkUxQzhFM0VDODAwOEMwODVB
IC8qIFByb3h5UmV2b2tlLmggaW4gSGVhZGVycyAqLywKLQkJCQlGRTZDMUU0QTIwMzY2RjAxMDBC
REMyQjcgLyogUHRyVGFnLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRjU3ODBBMjE4RkUxRTk4MDAx
RTcyRDkgLyogUHVyZU5hTi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEYxNUNEMjMxQkE1Rjk4NjAw
MzFGRkQzIC8qIFB1dEJ5SWRGbGFncy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEY5MzMyQTQxNENB
N0REOTAwODVGM0M2IC8qIFB1dEJ5SWRTdGF0dXMuaCBpbiBIZWFkZXJzICovLApJbmRleDogU291
cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9BUk02NEFzc2VtYmxlci5oCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvQVJNNjRBc3NlbWJsZXIuaAkocmV2
aXNpb24gMjMwOTk4KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9BUk02NEFz
c2VtYmxlci5oCSh3b3JraW5nIGNvcHkpCkBAIC0yOSw3ICsyOSw3IEBACiAKICNpbmNsdWRlICJB
c3NlbWJsZXJCdWZmZXIuaCIKICNpbmNsdWRlICJBc3NlbWJsZXJDb21tb24uaCIKLSNpbmNsdWRl
ICJQdHJUYWcuaCIKKyNpbmNsdWRlICJKU0NQdHJUYWcuaCIKICNpbmNsdWRlIDxsaW1pdHMuaD4K
ICNpbmNsdWRlIDx3dGYvQXNzZXJ0aW9ucy5oPgogI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KSW5k
ZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvQWJzdHJhY3RNYWNyb0Fzc2VtYmxl
ci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvQWJzdHJh
Y3RNYWNyb0Fzc2VtYmxlci5oCShyZXZpc2lvbiAyMzA5OTgpCisrKyBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvYXNzZW1ibGVyL0Fic3RyYWN0TWFjcm9Bc3NlbWJsZXIuaAkod29ya2luZyBjb3B5KQpA
QCAtMzEsMTAgKzMxLDEwIEBACiAjaW5jbHVkZSAiQ1BVLmgiCiAjaW5jbHVkZSAiQ29kZUxvY2F0
aW9uLmgiCiAjaW5jbHVkZSAiSlNDSlNWYWx1ZS5oIgorI2luY2x1ZGUgIkpTQ1B0clRhZy5oIgog
I2luY2x1ZGUgIk1hY3JvQXNzZW1ibGVyQ29kZVJlZi5oIgogI2luY2x1ZGUgIk1hY3JvQXNzZW1i
bGVySGVscGVycy5oIgogI2luY2x1ZGUgIk9wdGlvbnMuaCIKLSNpbmNsdWRlICJQdHJUYWcuaCIK
ICNpbmNsdWRlIDx3dGYvQ3J5cHRvZ3JhcGhpY2FsbHlSYW5kb21OdW1iZXIuaD4KICNpbmNsdWRl
IDx3dGYvTm9uY29weWFibGUuaD4KICNpbmNsdWRlIDx3dGYvU2hhcmVkVGFzay5oPgpJbmRleDog
U291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9NYWNyb0Fzc2VtYmxlckNvZGVSZWYuY3Bw
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvTWFjcm9Bc3Nl
bWJsZXJDb2RlUmVmLmNwcAkocmV2aXNpb24gMjMwOTk4KQorKysgU291cmNlL0phdmFTY3JpcHRD
b3JlL2Fzc2VtYmxlci9NYWNyb0Fzc2VtYmxlckNvZGVSZWYuY3BwCSh3b3JraW5nIGNvcHkpCkBA
IC0yOCw3ICsyOCw3IEBACiAKICNpbmNsdWRlICJEaXNhc3NlbWJsZXIuaCIKICNpbmNsdWRlICJK
U0NJbmxpbmVzLmgiCi0jaW5jbHVkZSAiUHRyVGFnLmgiCisjaW5jbHVkZSAiSlNDUHRyVGFnLmgi
CiAjaW5jbHVkZSA8bXV0ZXg+CiAKIG5hbWVzcGFjZSBKU0MgewpJbmRleDogU291cmNlL0phdmFT
Y3JpcHRDb3JlL2Fzc2VtYmxlci9NYWNyb0Fzc2VtYmxlckNvZGVSZWYuaAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyQ29kZVJlZi5o
CShyZXZpc2lvbiAyMzA5OTgpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL01h
Y3JvQXNzZW1ibGVyQ29kZVJlZi5oCSh3b3JraW5nIGNvcHkpCkBAIC0yNyw3ICsyNyw3IEBACiAK
ICNpbmNsdWRlICJFeGVjdXRhYmxlQWxsb2NhdG9yLmgiCiAjaW5jbHVkZSAiSlNDUG9pc29uLmgi
Ci0jaW5jbHVkZSAiUHRyVGFnLmgiCisjaW5jbHVkZSAiSlNDUHRyVGFnLmgiCiAjaW5jbHVkZSA8
d3RmL0RhdGFMb2cuaD4KICNpbmNsdWRlIDx3dGYvUHJpbnRTdHJlYW0uaD4KICNpbmNsdWRlIDx3
dGYvUmVmUHRyLmg+CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNNYXRoRXh0cmFz
LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNNYXRoRXh0cmFz
LmNwcAkocmV2aXNpb24gMjMwOTk4KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzTWF0
aEV4dHJhcy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTM1LDggKzM1LDggQEAKICNpbmNsdWRlICJC
M0NvbnN0UHRyVmFsdWUuaCIKICNpbmNsdWRlICJCM1Vwc2lsb25WYWx1ZS5oIgogI2luY2x1ZGUg
IkIzVmFsdWVJbmxpbmVzLmgiCisjaW5jbHVkZSAiSlNDUHRyVGFnLmgiCiAjaW5jbHVkZSAiTWF0
aENvbW1vbi5oIgotI2luY2x1ZGUgIlB0clRhZy5oIgogCiBuYW1lc3BhY2UgSlNDIHsgbmFtZXNw
YWNlIEIzIHsKIApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0xMSW50Q2Fs
bExpbmtJbmZvLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2Rl
L0xMSW50Q2FsbExpbmtJbmZvLmgJKHJldmlzaW9uIDIzMDk5OCkKKysrIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ieXRlY29kZS9MTEludENhbGxMaW5rSW5mby5oCSh3b3JraW5nIGNvcHkpCkBAIC0y
NSw5ICsyNSw5IEBACiAKICNwcmFnbWEgb25jZQogCisjaW5jbHVkZSAiSlNDUHRyVGFnLmgiCiAj
aW5jbHVkZSAiSlNGdW5jdGlvbi5oIgogI2luY2x1ZGUgIk1hY3JvQXNzZW1ibGVyQ29kZVJlZi5o
IgotI2luY2x1ZGUgIlB0clRhZy5oIgogI2luY2x1ZGUgPHd0Zi9TZW50aW5lbExpbmtlZExpc3Qu
aD4KIAogbmFtZXNwYWNlIEpTQyB7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGlzYXNz
ZW1ibGVyL0Rpc2Fzc2VtYmxlci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9kaXNhc3NlbWJsZXIvRGlzYXNzZW1ibGVyLmgJKHJldmlzaW9uIDIzMDk5OCkKKysrIFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9kaXNhc3NlbWJsZXIvRGlzYXNzZW1ibGVyLmgJKHdvcmtpbmcgY29w
eSkKQEAgLTI1LDggKzI1LDggQEAKIAogI3ByYWdtYSBvbmNlCiAKKyNpbmNsdWRlICJKU0NQdHJU
YWcuaCIKICNpbmNsdWRlICJKU0V4cG9ydE1hY3Jvcy5oIgotI2luY2x1ZGUgIlB0clRhZy5oIgog
I2luY2x1ZGUgPGZ1bmN0aW9uYWw+CiAjaW5jbHVkZSA8d3RmL1ByaW50U3RyZWFtLmg+CiAjaW5j
bHVkZSA8d3RmL3RleHQvQ1N0cmluZy5oPgpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0
bC9GVExKSVRDb2RlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRs
L0ZUTEpJVENvZGUuY3BwCShyZXZpc2lvbiAyMzA5OTgpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvZnRsL0ZUTEpJVENvZGUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yOSw3ICsyOSw3IEBACiAj
aWYgRU5BQkxFKEZUTF9KSVQpCiAKICNpbmNsdWRlICJGVExTdGF0ZS5oIgotI2luY2x1ZGUgIlB0
clRhZy5oIgorI2luY2x1ZGUgIkpTQ1B0clRhZy5oIgogCiBuYW1lc3BhY2UgSlNDIHsgbmFtZXNw
YWNlIEZUTCB7CiAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnRlcnByZXRlci9JbnRl
cnByZXRlcklubGluZXMuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaW50
ZXJwcmV0ZXIvSW50ZXJwcmV0ZXJJbmxpbmVzLmgJKHJldmlzaW9uIDIzMDk5OCkKKysrIFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9pbnRlcnByZXRlci9JbnRlcnByZXRlcklubGluZXMuaAkod29ya2lu
ZyBjb3B5KQpAQCAtMjgsOCArMjgsOCBAQAogCiAjaW5jbHVkZSAiSW5zdHJ1Y3Rpb24uaCIKICNp
bmNsdWRlICJJbnRlcnByZXRlci5oIgorI2luY2x1ZGUgIkpTQ1B0clRhZy5oIgogI2luY2x1ZGUg
IkxMSW50RGF0YS5oIgotI2luY2x1ZGUgIlB0clRhZy5oIgogI2luY2x1ZGUgIlVubGlua2VkQ29k
ZUJsb2NrLmgiCiAKIG5hbWVzcGFjZSBKU0MgewpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3Jl
L2ppdC9FeGVjdXRhYmxlQWxsb2NhdG9yLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3Jp
cHRDb3JlL2ppdC9FeGVjdXRhYmxlQWxsb2NhdG9yLmgJKHJldmlzaW9uIDIzMDk5OCkKKysrIFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvRXhlY3V0YWJsZUFsbG9jYXRvci5oCSh3b3JraW5nIGNv
cHkpCkBAIC0yNiw3ICsyNiw3IEBACiAjcHJhZ21hIG9uY2UKIAogI2luY2x1ZGUgIkpJVENvbXBp
bGF0aW9uRWZmb3J0LmgiCi0jaW5jbHVkZSAiUHRyVGFnLmgiCisjaW5jbHVkZSAiSlNDUHRyVGFn
LmgiCiAjaW5jbHVkZSA8c3RkZGVmLmg+IC8vIGZvciBwdHJkaWZmX3QKICNpbmNsdWRlIDxsaW1p
dHM+CiAjaW5jbHVkZSA8d3RmL0Fzc2VydGlvbnMuaD4KSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9qaXQvSklUT3BlcmF0aW9ucy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3Jp
cHRDb3JlL2ppdC9KSVRPcGVyYXRpb25zLmNwcAkocmV2aXNpb24gMjMwOTk4KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL2ppdC9KSVRPcGVyYXRpb25zLmNwcAkod29ya2luZyBjb3B5KQpAQCAt
NTUsNiArNTUsNyBAQAogI2luY2x1ZGUgIkpTQXN5bmNGdW5jdGlvbi5oIgogI2luY2x1ZGUgIkpT
QXN5bmNHZW5lcmF0b3JGdW5jdGlvbi5oIgogI2luY2x1ZGUgIkpTQ0lubGluZXMuaCIKKyNpbmNs
dWRlICJKU0NQdHJUYWcuaCIKICNpbmNsdWRlICJKU0dlbmVyYXRvckZ1bmN0aW9uLmgiCiAjaW5j
bHVkZSAiSlNHbG9iYWxPYmplY3RGdW5jdGlvbnMuaCIKICNpbmNsdWRlICJKU0xleGljYWxFbnZp
cm9ubWVudC5oIgpAQCAtNjQsNyArNjUsNiBAQAogI2luY2x1ZGUgIlBvbHltb3JwaGljQWNjZXNz
LmgiCiAjaW5jbHVkZSAiUHJvZ3JhbUNvZGVCbG9jay5oIgogI2luY2x1ZGUgIlByb3BlcnR5TmFt
ZS5oIgotI2luY2x1ZGUgIlB0clRhZy5oIgogI2luY2x1ZGUgIlJlZ0V4cE9iamVjdC5oIgogI2lu
Y2x1ZGUgIlJlcGF0Y2guaCIKICNpbmNsdWRlICJTY29wZWRBcmd1bWVudHMuaCIKSW5kZXg6IFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvVGh1bmtHZW5lcmF0b3IuaAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L1RodW5rR2VuZXJhdG9yLmgJKHJldmlzaW9uIDIzMDk5
OCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvVGh1bmtHZW5lcmF0b3IuaAkod29ya2lu
ZyBjb3B5KQpAQCAtMjcsNyArMjcsNyBAQAogCiAjaWYgRU5BQkxFKEpJVCkKIAotI2luY2x1ZGUg
IlB0clRhZy5oIgorI2luY2x1ZGUgIkpTQ1B0clRhZy5oIgogCiBuYW1lc3BhY2UgSlNDIHsKIGNs
YXNzIFZNOwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9UaHVua0dlbmVyYXRvcnMu
aAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L1RodW5rR2VuZXJhdG9y
cy5oCShyZXZpc2lvbiAyMzA5OTgpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L1RodW5r
R2VuZXJhdG9ycy5oCSh3b3JraW5nIGNvcHkpCkBAIC0yNiw3ICsyNiw3IEBACiAjcHJhZ21hIG9u
Y2UKIAogI2luY2x1ZGUgIkNvZGVTcGVjaWFsaXphdGlvbktpbmQuaCIKLSNpbmNsdWRlICJQdHJU
YWcuaCIKKyNpbmNsdWRlICJKU0NQdHJUYWcuaCIKIAogI2lmIEVOQUJMRShKSVQpCiBuYW1lc3Bh
Y2UgSlNDIHsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9MTEludE9mZnNldHNF
eHRyYWN0b3IuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9M
TEludE9mZnNldHNFeHRyYWN0b3IuY3BwCShyZXZpc2lvbiAyMzA5OTgpCisrKyBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvbGxpbnQvTExJbnRPZmZzZXRzRXh0cmFjdG9yLmNwcAkod29ya2luZyBjb3B5
KQpAQCAtMzgsNiArMzgsNyBAQAogI2luY2x1ZGUgIkludGVycHJldGVyLmgiCiAjaW5jbHVkZSAi
SlNBcnJheS5oIgogI2luY2x1ZGUgIkpTQXJyYXlCdWZmZXJWaWV3LmgiCisjaW5jbHVkZSAiSlND
UHRyVGFnLmgiCiAjaW5jbHVkZSAiSlNDYXN0LmgiCiAjaW5jbHVkZSAiSlNGdW5jdGlvbi5oIgog
I2luY2x1ZGUgIkpTR2xvYmFsT2JqZWN0LmgiCkBAIC01MSw3ICs1Miw2IEBACiAjaW5jbHVkZSAi
TWFya2VkU3BhY2UuaCIKICNpbmNsdWRlICJOYXRpdmVFeGVjdXRhYmxlLmgiCiAjaW5jbHVkZSAi
UHJvdG9DYWxsRnJhbWUuaCIKLSNpbmNsdWRlICJQdHJUYWcuaCIKICNpbmNsdWRlICJTaGFkb3dD
aGlja2VuLmgiCiAjaW5jbHVkZSAiU3RydWN0dXJlLmgiCiAjaW5jbHVkZSAiU3RydWN0dXJlQ2hh
aW4uaCIKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9MTEludFBDUmFuZ2VzLmgK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xMSW50UENSYW5nZXMu
aAkocmV2aXNpb24gMjMwOTk4KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xMSW50
UENSYW5nZXMuaAkod29ya2luZyBjb3B5KQpAQCAtMjUsNyArMjUsNyBAQAogCiAjcHJhZ21hIG9u
Y2UKIAotI2luY2x1ZGUgIlB0clRhZy5oIgorI2luY2x1ZGUgIkpTQ1B0clRhZy5oIgogCiBuYW1l
c3BhY2UgSlNDIHsKIApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNDUHRy
VGFnLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNDUHRy
VGFnLmgJKG5vbmV4aXN0ZW50KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlND
UHRyVGFnLmgJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSw1OSBAQAorLyoKKyAqIENvcHlyaWdo
dCAoQykgMjAxOCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgor
ICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgor
ICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQg
QU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVE
LiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBF
WEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSA8
d3RmL1B0clRhZy5oPgorCituYW1lc3BhY2UgSlNDIHsKKwordXNpbmcgUHRyVGFnID0gV1RGOjpQ
dHJUYWc7CisKKyNkZWZpbmUgRk9SX0VBQ0hfSlNDX1BUUlRBRyh2KSBcCisgICAgdihCM0NDYWxs
UHRyVGFnKSBcCisgICAgdihCM0NvbXBpbGF0aW9uUHRyVGFnKSBcCisgICAgdihCeXRlY29kZVB0
clRhZykgXAorICAgIHYoRGlzYXNzZW1ibHlQdHJUYWcpIFwKKyAgICB2KEV4Y2VwdGlvbkhhbmRs
ZXJQdHJUYWcpIFwKKyAgICB2KEpJVFRodW5rUHRyVGFnKSBcCisgICAgdihKSVRTdHViUm91dGlu
ZVB0clRhZykgXAorICAgIHYoSlNFbnRyeVB0clRhZykgXAorICAgIHYoSlNJbnRlcm5hbFB0clRh
ZykgXAorICAgIHYoSlNTd2l0Y2hQdHJUYWcpIFwKKyAgICB2KExpbmtCdWZmZXJQdHJUYWcpIFwK
KyAgICB2KE9wZXJhdGlvblB0clRhZykgXAorICAgIHYoT1NSRXhpdFB0clRhZykgXAorICAgIHYo
U2xvd1BhdGhQdHJUYWcpIFwKKyAgICB2KFdhc21FbnRyeVB0clRhZykgXAorICAgIHYoWWFycjhC
aXRQdHJUYWcpIFwKKyAgICB2KFlhcnIxNkJpdFB0clRhZykgXAorICAgIHYoWWFyck1hdGNoT25s
eThCaXRQdHJUYWcpIFwKKyAgICB2KFlhcnJNYXRjaE9ubHkxNkJpdFB0clRhZykgXAorICAgIHYo
WWFyckJhY2t0cmFja1B0clRhZykgXAorCitGT1JfRUFDSF9KU0NfUFRSVEFHKFdURl9ERUNMQVJF
X1BUUlRBRykKKworfSAvLyBuYW1lc3BhY2UgSlNDCisKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL05hdGl2ZUZ1bmN0aW9uLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvTmF0aXZlRnVuY3Rpb24uaAkocmV2aXNpb24gMjMwOTk4KQorKysg
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTmF0aXZlRnVuY3Rpb24uaAkod29ya2luZyBj
b3B5KQpAQCAtMjYsNyArMjYsNyBAQAogI3ByYWdtYSBvbmNlCiAKICNpbmNsdWRlICJKU0NKU1Zh
bHVlLmgiCi0jaW5jbHVkZSAiUHRyVGFnLmgiCisjaW5jbHVkZSAiSlNDUHRyVGFnLmgiCiAKIG5h
bWVzcGFjZSBKU0MgewogCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9QdHJU
YWcuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9QdHJUYWcu
aAkocmV2aXNpb24gMjMwOTk4KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUHRy
VGFnLmgJKG5vbmV4aXN0ZW50KQpAQCAtMSwxODAgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAo
QykgMjAxOCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICog
Mi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICog
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5Z
Ci0gKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFRIRQotICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAg
SU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgotICogQ09OVFJJQlVUT1JTIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCi0gKiBFWEVN
UExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sCi0gKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwgREFUQSwgT1IKLSAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKLSAqIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFCi0gKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNwcmFnbWEgb25jZQotCi0jaW5jbHVkZSA8d3Rm
L1BvaW50ZXJQcmVwYXJhdGlvbnMuaD4KLQotbmFtZXNwYWNlIEpTQyB7Ci0KLSNkZWZpbmUgRk9S
X0VBQ0hfQkFTRV9QVFJUQUdfRU5VTSh2KSBcCi0gICAgdihOb1B0clRhZykgXAotICAgIHYoQ0Z1
bmN0aW9uUHRyVGFnKSBcCi0KLSNkZWZpbmUgRk9SX0VBQ0hfQURESVRJT05BTF9QVFJUQUdfRU5V
TSh2KSBcCi0gICAgdihCM0NDYWxsUHRyVGFnKSBcCi0gICAgdihCM0NvbXBpbGF0aW9uUHRyVGFn
KSBcCi0gICAgdihCeXRlY29kZVB0clRhZykgXAotICAgIHYoRGlzYXNzZW1ibHlQdHJUYWcpIFwK
LSAgICB2KEV4Y2VwdGlvbkhhbmRsZXJQdHJUYWcpIFwKLSAgICB2KEpJVFRodW5rUHRyVGFnKSBc
Ci0gICAgdihKSVRTdHViUm91dGluZVB0clRhZykgXAotICAgIHYoSlNFbnRyeVB0clRhZykgXAot
ICAgIHYoSlNJbnRlcm5hbFB0clRhZykgXAotICAgIHYoSlNTd2l0Y2hQdHJUYWcpIFwKLSAgICB2
KExpbmtCdWZmZXJQdHJUYWcpIFwKLSAgICB2KE9wZXJhdGlvblB0clRhZykgXAotICAgIHYoT1NS
RXhpdFB0clRhZykgXAotICAgIHYoU2xvd1BhdGhQdHJUYWcpIFwKLSAgICB2KFdhc21FbnRyeVB0
clRhZykgXAotICAgIHYoWWFycjhCaXRQdHJUYWcpIFwKLSAgICB2KFlhcnIxNkJpdFB0clRhZykg
XAotICAgIHYoWWFyck1hdGNoT25seThCaXRQdHJUYWcpIFwKLSAgICB2KFlhcnJNYXRjaE9ubHkx
NkJpdFB0clRhZykgXAotICAgIHYoWWFyckJhY2t0cmFja1B0clRhZykgXAotCi0jZGVmaW5lIEZP
Ul9FQUNIX1BUUlRBR19FTlVNKHYpIFwKLSAgICBGT1JfRUFDSF9CQVNFX1BUUlRBR19FTlVNKHYp
IFwKLSAgICBGT1JfRUFDSF9BRERJVElPTkFMX1BUUlRBR19FTlVNKHYpIFwKLQotZW51bSBQdHJU
YWcgOiB1aW50cHRyX3QgewotICAgIE5vUHRyVGFnLAotICAgIENGdW5jdGlvblB0clRhZywKLQot
I2lmbmRlZiBQVFJUQUdfRU5VTV9IQVNICi0jZGVmaW5lIERFQ0xBUkVfUFRSVEFHX0VOVU0odGFn
KSAgdGFnLAotI2Vsc2UKLSNkZWZpbmUgREVDTEFSRV9QVFJUQUdfRU5VTSh0YWcpICB0YWcgPSBQ
VFJUQUdfRU5VTV9IQVNIKHRhZyksCi0jZW5kaWYKLSAgICBGT1JfRUFDSF9BRERJVElPTkFMX1BU
UlRBR19FTlVNKERFQ0xBUkVfUFRSVEFHX0VOVU0pCi0jdW5kZWYgREVDTEFSRV9QVFJUQUdfRU5V
TQotfTsKLQotc3RhdGljX2Fzc2VydChzdGF0aWNfY2FzdDx1aW50cHRyX3Q+KE5vUHRyVGFnKSA9
PSBzdGF0aWNfY2FzdDx1aW50cHRyX3Q+KDApLCAiIik7Ci1zdGF0aWNfYXNzZXJ0KHN0YXRpY19j
YXN0PHVpbnRwdHJfdD4oQ0Z1bmN0aW9uUHRyVGFnKSA9PSBzdGF0aWNfY2FzdDx1aW50cHRyX3Q+
KDEpLCAiIik7Ci0KLWlubGluZSBjb25zdCBjaGFyKiBwdHJUYWdOYW1lKFB0clRhZyB0YWcpCi17
Ci0jZGVmaW5lIFJFVFVSTl9QVFJUQUdfTkFNRShfdGFnTmFtZSkgY2FzZSBfdGFnTmFtZTogcmV0
dXJuICNfdGFnTmFtZTsKLSAgICBzd2l0Y2ggKHRhZykgewotICAgICAgICBGT1JfRUFDSF9QVFJU
QUdfRU5VTShSRVRVUk5fUFRSVEFHX05BTUUpCi0gICAgZGVmYXVsdDogcmV0dXJuICI8dW5rbm93
bj4iOwotICAgIH0KLSN1bmRlZiBSRVRVUk5fUFRSVEFHX05BTUUKLX0KLQotI2lmICFVU0UoUE9J
TlRFUl9QUk9GSUxJTkcpCi0KLWlubGluZSBjb25zdCBjaGFyKiB0YWdGb3JQdHIoY29uc3Qgdm9p
ZCopIHsgcmV0dXJuICI8bm8gdGFnPiI7IH0KLQotdGVtcGxhdGU8dHlwZW5hbWUuLi4gQXJndW1l
bnRzPgotaW5saW5lIGNvbnN0ZXhwciBQdHJUYWcgcHRyVGFnKEFyZ3VtZW50cyYmLi4uKSB7IHJl
dHVybiBOb1B0clRhZzsgfQotCi10ZW1wbGF0ZTx0eXBlbmFtZSBULCB0eXBlbmFtZSBQdHJUeXBl
LCB0eXBlbmFtZSA9IHN0ZDo6ZW5hYmxlX2lmX3Q8c3RkOjppc19wb2ludGVyPFB0clR5cGU+Ojp2
YWx1ZSAmJiAhc3RkOjppc19zYW1lPFQsIFB0clR5cGU+Ojp2YWx1ZT4+Ci1pbmxpbmUgY29uc3Rl
eHByIFQgdGFnQ29kZVB0cihQdHJUeXBlIHB0ciwgUHRyVGFnKSB7IHJldHVybiBiaXR3aXNlX2Nh
c3Q8VD4ocHRyKTsgfQotCi10ZW1wbGF0ZTx0eXBlbmFtZSBULCBQdHJUYWcsIHR5cGVuYW1lIFB0
clR5cGUsIHR5cGVuYW1lID0gc3RkOjplbmFibGVfaWZfdDxzdGQ6OmlzX3BvaW50ZXI8UHRyVHlw
ZT46OnZhbHVlPj4KLWlubGluZSBUIHRhZ0NvZGVQdHIoUHRyVHlwZSBwdHIpIHsgcmV0dXJuIGJp
dHdpc2VfY2FzdDxUPihwdHIpOyB9Ci0KLXRlbXBsYXRlPHR5cGVuYW1lIFB0clR5cGUsIHR5cGVu
YW1lID0gc3RkOjplbmFibGVfaWZfdDxzdGQ6OmlzX3BvaW50ZXI8UHRyVHlwZT46OnZhbHVlPj4K
LWlubGluZSBjb25zdGV4cHIgUHRyVHlwZSB0YWdDb2RlUHRyKFB0clR5cGUgcHRyLCBQdHJUYWcp
IHsgcmV0dXJuIHB0cjsgfQotCi10ZW1wbGF0ZTxQdHJUYWcsIHR5cGVuYW1lIFB0clR5cGUsIHR5
cGVuYW1lID0gc3RkOjplbmFibGVfaWZfdDxzdGQ6OmlzX3BvaW50ZXI8UHRyVHlwZT46OnZhbHVl
Pj4KLWlubGluZSBQdHJUeXBlIHRhZ0NvZGVQdHIoUHRyVHlwZSBwdHIpIHsgcmV0dXJuIHB0cjsg
fQotCi10ZW1wbGF0ZTx0eXBlbmFtZSBULCB0eXBlbmFtZSBQdHJUeXBlLCB0eXBlbmFtZSA9IHN0
ZDo6ZW5hYmxlX2lmX3Q8c3RkOjppc19wb2ludGVyPFB0clR5cGU+Ojp2YWx1ZSAmJiAhc3RkOjpp
c19zYW1lPFQsIFB0clR5cGU+Ojp2YWx1ZT4+Ci1pbmxpbmUgY29uc3RleHByIFQgdW50YWdDb2Rl
UHRyKFB0clR5cGUgcHRyLCBQdHJUYWcpIHsgcmV0dXJuIGJpdHdpc2VfY2FzdDxUPihwdHIpOyB9
Ci0KLXRlbXBsYXRlPHR5cGVuYW1lIFQsIFB0clRhZywgdHlwZW5hbWUgUHRyVHlwZSwgdHlwZW5h
bWUgPSBzdGQ6OmVuYWJsZV9pZl90PHN0ZDo6aXNfcG9pbnRlcjxQdHJUeXBlPjo6dmFsdWU+Pgot
aW5saW5lIFQgdW50YWdDb2RlUHRyKFB0clR5cGUgcHRyKSAgeyByZXR1cm4gYml0d2lzZV9jYXN0
PFQ+KHB0cik7IH0KLQotdGVtcGxhdGU8dHlwZW5hbWUgUHRyVHlwZSwgdHlwZW5hbWUgPSBzdGQ6
OmVuYWJsZV9pZl90PHN0ZDo6aXNfcG9pbnRlcjxQdHJUeXBlPjo6dmFsdWU+PgotaW5saW5lIGNv
bnN0ZXhwciBQdHJUeXBlIHVudGFnQ29kZVB0cihQdHJUeXBlIHB0ciwgUHRyVGFnKSB7IHJldHVy
biBwdHI7IH0KLQotdGVtcGxhdGU8UHRyVGFnLCB0eXBlbmFtZSBQdHJUeXBlLCB0eXBlbmFtZSA9
IHN0ZDo6ZW5hYmxlX2lmX3Q8c3RkOjppc19wb2ludGVyPFB0clR5cGU+Ojp2YWx1ZT4+Ci1pbmxp
bmUgUHRyVHlwZSB1bnRhZ0NvZGVQdHIoUHRyVHlwZSBwdHIpIHsgcmV0dXJuIHB0cjsgfQotCi10
ZW1wbGF0ZTx0eXBlbmFtZSBULCB0eXBlbmFtZSBQdHJUeXBlLCB0eXBlbmFtZSA9IHN0ZDo6ZW5h
YmxlX2lmX3Q8c3RkOjppc19wb2ludGVyPFB0clR5cGU+Ojp2YWx1ZSAmJiAhc3RkOjppc19zYW1l
PFQsIFB0clR5cGU+Ojp2YWx1ZT4+Ci1pbmxpbmUgY29uc3RleHByIFQgcmV0YWdDb2RlUHRyKFB0
clR5cGUgcHRyLCBQdHJUYWcsIFB0clRhZykgeyByZXR1cm4gYml0d2lzZV9jYXN0PFQ+KHB0cik7
IH0KLQotdGVtcGxhdGU8dHlwZW5hbWUgVCwgUHRyVGFnLCBQdHJUYWcsIHR5cGVuYW1lIFB0clR5
cGUsIHR5cGVuYW1lID0gc3RkOjplbmFibGVfaWZfdDxzdGQ6OmlzX3BvaW50ZXI8UHRyVHlwZT46
OnZhbHVlPj4KLWlubGluZSBUIHJldGFnQ29kZVB0cihQdHJUeXBlIHB0cikgeyByZXR1cm4gYml0
d2lzZV9jYXN0PFQ+KHB0cik7IH0KLQotdGVtcGxhdGU8dHlwZW5hbWUgUHRyVHlwZSwgdHlwZW5h
bWUgPSBzdGQ6OmVuYWJsZV9pZl90PHN0ZDo6aXNfcG9pbnRlcjxQdHJUeXBlPjo6dmFsdWU+Pgot
aW5saW5lIGNvbnN0ZXhwciBQdHJUeXBlIHJldGFnQ29kZVB0cihQdHJUeXBlIHB0ciwgUHRyVGFn
LCBQdHJUYWcpIHsgcmV0dXJuIHB0cjsgfQotCi10ZW1wbGF0ZTxQdHJUYWcsIFB0clRhZywgdHlw
ZW5hbWUgUHRyVHlwZSwgdHlwZW5hbWUgPSBzdGQ6OmVuYWJsZV9pZl90PHN0ZDo6aXNfcG9pbnRl
cjxQdHJUeXBlPjo6dmFsdWU+PgotaW5saW5lIFB0clR5cGUgcmV0YWdDb2RlUHRyKFB0clR5cGUg
cHRyKSB7IHJldHVybiBwdHI7IH0KLQotdGVtcGxhdGU8dHlwZW5hbWUgVCwgdHlwZW5hbWUgUHRy
VHlwZSwgdHlwZW5hbWUgPSBzdGQ6OmVuYWJsZV9pZl90PHN0ZDo6aXNfcG9pbnRlcjxQdHJUeXBl
Pjo6dmFsdWUgJiYgIXN0ZDo6aXNfc2FtZTxULCBQdHJUeXBlPjo6dmFsdWU+PgotaW5saW5lIGNv
bnN0ZXhwciBUIHJlbW92ZUNvZGVQdHJUYWcoUHRyVHlwZSBwdHIpIHsgcmV0dXJuIGJpdHdpc2Vf
Y2FzdDxUPihwdHIpOyB9Ci0KLXRlbXBsYXRlPHR5cGVuYW1lIFB0clR5cGUsIHR5cGVuYW1lID0g
c3RkOjplbmFibGVfaWZfdDxzdGQ6OmlzX3BvaW50ZXI8UHRyVHlwZT46OnZhbHVlPj4KLWlubGlu
ZSBjb25zdGV4cHIgUHRyVHlwZSByZW1vdmVDb2RlUHRyVGFnKFB0clR5cGUgcHRyKSB7IHJldHVy
biBwdHI7IH0KLQotdGVtcGxhdGU8dHlwZW5hbWUgVCwgdHlwZW5hbWUgUHRyVHlwZSwgdHlwZW5h
bWUgPSBzdGQ6OmVuYWJsZV9pZl90PHN0ZDo6aXNfcG9pbnRlcjxQdHJUeXBlPjo6dmFsdWUgJiYg
IXN0ZDo6aXNfc2FtZTxULCBQdHJUeXBlPjo6dmFsdWU+PgotaW5saW5lIFQgdGFnQ0Z1bmN0aW9u
UHRyKFB0clR5cGUgcHRyLCBQdHJUYWcpIHsgcmV0dXJuIGJpdHdpc2VfY2FzdDxUPihwdHIpOyB9
Ci0KLXRlbXBsYXRlPHR5cGVuYW1lIFQsIFB0clRhZywgdHlwZW5hbWUgUHRyVHlwZSwgdHlwZW5h
bWUgPSBzdGQ6OmVuYWJsZV9pZl90PHN0ZDo6aXNfcG9pbnRlcjxQdHJUeXBlPjo6dmFsdWU+Pgot
aW5saW5lIFQgdGFnQ0Z1bmN0aW9uUHRyKFB0clR5cGUgcHRyKSB7IHJldHVybiBiaXR3aXNlX2Nh
c3Q8VD4ocHRyKTsgfQotCi10ZW1wbGF0ZTx0eXBlbmFtZSBQdHJUeXBlLCB0eXBlbmFtZSA9IHN0
ZDo6ZW5hYmxlX2lmX3Q8c3RkOjppc19wb2ludGVyPFB0clR5cGU+Ojp2YWx1ZT4+Ci1pbmxpbmUg
UHRyVHlwZSB0YWdDRnVuY3Rpb25QdHIoUHRyVHlwZSBwdHIsIFB0clRhZykgeyByZXR1cm4gcHRy
OyB9Ci0KLXRlbXBsYXRlPFB0clRhZywgdHlwZW5hbWUgUHRyVHlwZSwgdHlwZW5hbWUgPSBzdGQ6
OmVuYWJsZV9pZl90PHN0ZDo6aXNfcG9pbnRlcjxQdHJUeXBlPjo6dmFsdWU+PgotaW5saW5lIFB0
clR5cGUgdGFnQ0Z1bmN0aW9uUHRyKFB0clR5cGUgcHRyKSB7IHJldHVybiBwdHI7IH0KLQotdGVt
cGxhdGU8dHlwZW5hbWUgVCwgdHlwZW5hbWUgUHRyVHlwZSwgdHlwZW5hbWUgPSBzdGQ6OmVuYWJs
ZV9pZl90PHN0ZDo6aXNfcG9pbnRlcjxQdHJUeXBlPjo6dmFsdWUgJiYgIXN0ZDo6aXNfc2FtZTxU
LCBQdHJUeXBlPjo6dmFsdWU+PgotaW5saW5lIFQgdW50YWdDRnVuY3Rpb25QdHIoUHRyVHlwZSBw
dHIsIFB0clRhZykgeyByZXR1cm4gYml0d2lzZV9jYXN0PFQ+KHB0cik7IH0KLQotdGVtcGxhdGU8
dHlwZW5hbWUgVCwgUHRyVGFnLCB0eXBlbmFtZSBQdHJUeXBlLCB0eXBlbmFtZSA9IHN0ZDo6ZW5h
YmxlX2lmX3Q8c3RkOjppc19wb2ludGVyPFB0clR5cGU+Ojp2YWx1ZT4+Ci1pbmxpbmUgVCB1bnRh
Z0NGdW5jdGlvblB0cihQdHJUeXBlIHB0cikgeyByZXR1cm4gYml0d2lzZV9jYXN0PFQ+KHB0cik7
IH0KLQotdGVtcGxhdGU8dHlwZW5hbWUgUHRyVHlwZSwgdHlwZW5hbWUgPSBzdGQ6OmVuYWJsZV9p
Zl90PHN0ZDo6aXNfcG9pbnRlcjxQdHJUeXBlPjo6dmFsdWU+PgotaW5saW5lIFB0clR5cGUgdW50
YWdDRnVuY3Rpb25QdHIoUHRyVHlwZSBwdHIsIFB0clRhZykgeyByZXR1cm4gcHRyOyB9Ci0KLXRl
bXBsYXRlPFB0clRhZywgdHlwZW5hbWUgUHRyVHlwZSwgdHlwZW5hbWUgPSBzdGQ6OmVuYWJsZV9p
Zl90PHN0ZDo6aXNfcG9pbnRlcjxQdHJUeXBlPjo6dmFsdWU+PgotaW5saW5lIFB0clR5cGUgdW50
YWdDRnVuY3Rpb25QdHIoUHRyVHlwZSBwdHIpIHsgcmV0dXJuIHB0cjsgfQotCi10ZW1wbGF0ZTx0
eXBlbmFtZSBQdHJUeXBlPiB2b2lkIGFzc2VydElzQ0Z1bmN0aW9uUHRyKFB0clR5cGUpIHsgfQot
dGVtcGxhdGU8dHlwZW5hbWUgUHRyVHlwZT4gdm9pZCBhc3NlcnRJc051bGxPckNGdW5jdGlvblB0
cihQdHJUeXBlKSB7IH0KLQotdGVtcGxhdGU8dHlwZW5hbWUgUHRyVHlwZT4gdm9pZCBhc3NlcnRJ
c05vdFRhZ2dlZChQdHJUeXBlKSB7IH0KLXRlbXBsYXRlPHR5cGVuYW1lIFB0clR5cGU+IHZvaWQg
YXNzZXJ0SXNUYWdnZWQoUHRyVHlwZSkgeyB9Ci10ZW1wbGF0ZTx0eXBlbmFtZSBQdHJUeXBlPiB2
b2lkIGFzc2VydElzTnVsbE9yVGFnZ2VkKFB0clR5cGUpIHsgfQotCi10ZW1wbGF0ZTx0eXBlbmFt
ZSBQdHJUeXBlPiB2b2lkIGFzc2VydElzVGFnZ2VkV2l0aChQdHJUeXBlLCBQdHJUYWcpIHsgfQot
dGVtcGxhdGU8dHlwZW5hbWUgUHRyVHlwZT4gdm9pZCBhc3NlcnRJc051bGxPclRhZ2dlZFdpdGgo
UHRyVHlwZSwgUHRyVGFnKSB7IH0KLQotI2RlZmluZSBDQUxMX1dJVEhfUFRSVEFHKGNhbGxJbnN0
cnVjdGlvblN0cmluZywgdGFyZ2V0UmVnaXN0ZXJTdHJpbmcsIHRhZykgXAotICAgIGNhbGxJbnN0
cnVjdGlvblN0cmluZyAiICIgdGFyZ2V0UmVnaXN0ZXJTdHJpbmcgIlxuIgotCi0jZW5kaWYgLy8g
IVVTRShQT0lOVEVSX1BST0ZJTElORykKLQotfSAvLyBuYW1lc3BhY2UgSlNDCi0KLSNpZiBVU0Uo
QVBQTEVfSU5URVJOQUxfU0RLKSAmJiBfX2hhc19pbmNsdWRlKDxXZWJLaXRBZGRpdGlvbnMvUHRy
VGFnU3VwcG9ydC5oPikKLSNpbmNsdWRlIDxXZWJLaXRBZGRpdGlvbnMvUHRyVGFnU3VwcG9ydC5o
PgotI2VuZGlmCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9WTVRyYXBzLmNw
cAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9WTVRyYXBzLmNw
cAkocmV2aXNpb24gMjMwOTk4KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvVk1U
cmFwcy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTMyLDEyICszMiwxMiBAQAogI2luY2x1ZGUgIkRG
R0NvbW1vbkRhdGEuaCIKICNpbmNsdWRlICJFeGNlcHRpb25IZWxwZXJzLmgiCiAjaW5jbHVkZSAi
SGVhcElubGluZXMuaCIKKyNpbmNsdWRlICJKU0NQdHJUYWcuaCIKICNpbmNsdWRlICJMTEludFBD
UmFuZ2VzLmgiCiAjaW5jbHVkZSAiTWFjaGluZUNvbnRleHQuaCIKICNpbmNsdWRlICJNYWNoaW5l
U3RhY2tNYXJrZXIuaCIKICNpbmNsdWRlICJNYWNyb0Fzc2VtYmxlci5oIgogI2luY2x1ZGUgIk1h
Y3JvQXNzZW1ibGVyQ29kZVJlZi5oIgotI2luY2x1ZGUgIlB0clRhZy5oIgogI2luY2x1ZGUgIlZN
LmgiCiAjaW5jbHVkZSAiVk1JbnNwZWN0b3IuaCIKICNpbmNsdWRlICJXYXRjaGRvZy5oIgpJbmRl
eDogU291cmNlL1dURi9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dURi9DaGFuZ2VM
b2cJKHJldmlzaW9uIDIzMDk5OCkKKysrIFNvdXJjZS9XVEYvQ2hhbmdlTG9nCSh3b3JraW5nIGNv
cHkpCkBAIC0xLDMgKzEsMzUgQEAKKzIwMTgtMDQtMjUgIE1hcmsgTGFtICA8bWFyay5sYW1AYXBw
bGUuY29tPgorCisgICAgICAgIFB1c2ggdGhlIGRlZmluaXRpb24gb2YgUHRyVGFnIGRvd24gdG8g
dGhlIFdURiBsYXllci4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTE4NDk3NgorICAgICAgICA8cmRhcjovL3Byb2JsZW0vMzk3MjM5MDE+CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgU2FhbSBCYXJhdGkuCisKKyAgICAgICAgVGhpcyBpcyBpbiBwcmVwYXJh
dGlvbiBmb3IgZG9pbmcgcG9pbnRlciBwcm9maWxpbmcgYXQgdGhlIFdURiBsYXllciBhcyB3ZWxs
LgorICAgICAgICBBbHNvIGRlbGV0ZWQgYW4gdW51c2VkIHB0clRhZygpIGZ1bmN0aW9uLgorCisg
ICAgICAgICogV1RGLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogd3RmL0NN
YWtlTGlzdHMudHh0OgorICAgICAgICAqIHd0Zi9QdHJUYWcuaDogQ29waWVkIGZyb20gU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUHRyVGFnLmguCisgICAgICAgIChXVEY6Om1ha2VQdHJU
YWdIYXNoKToKKyAgICAgICAgKEpTQzo6cHRyVGFnTmFtZSk6IERlbGV0ZWQuCisgICAgICAgIChK
U0M6OnRhZ0ZvclB0cik6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OnB0clRhZyk6IERlbGV0ZWQu
CisgICAgICAgIChKU0M6OnRhZ0NvZGVQdHIpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjp1bnRh
Z0NvZGVQdHIpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpyZXRhZ0NvZGVQdHIpOiBEZWxldGVk
LgorICAgICAgICAoSlNDOjpyZW1vdmVDb2RlUHRyVGFnKTogRGVsZXRlZC4KKyAgICAgICAgKEpT
Qzo6dGFnQ0Z1bmN0aW9uUHRyKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6dW50YWdDRnVuY3Rp
b25QdHIpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjphc3NlcnRJc0NGdW5jdGlvblB0cik6IERl
bGV0ZWQuCisgICAgICAgIChKU0M6OmFzc2VydElzTnVsbE9yQ0Z1bmN0aW9uUHRyKTogRGVsZXRl
ZC4KKyAgICAgICAgKEpTQzo6YXNzZXJ0SXNOb3RUYWdnZWQpOiBEZWxldGVkLgorICAgICAgICAo
SlNDOjphc3NlcnRJc1RhZ2dlZCk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OmFzc2VydElzTnVs
bE9yVGFnZ2VkKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6YXNzZXJ0SXNUYWdnZWRXaXRoKTog
RGVsZXRlZC4KKyAgICAgICAgKEpTQzo6YXNzZXJ0SXNOdWxsT3JUYWdnZWRXaXRoKTogRGVsZXRl
ZC4KKwogMjAxOC0wNC0yNSAgRGVhbiBKYWNrc29uICA8ZGlub0BhcHBsZS5jb20+CiAKICAgICAg
ICAgTWFrZSBhIGJldHRlciBmbGFnIGZvciBzeXN0ZW0gcHJldmlldywgYW5kIGRpc2FibGUgaXQg
d2hlcmUgbmVjZXNzYXJ5CkluZGV4OiBTb3VyY2UvV1RGL1dURi54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XVEYvV1RGLnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2oJKHJldmlzaW9uIDIzMDk5OCkKKysrIFNvdXJjZS9XVEYvV1RGLnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2oJKHdvcmtpbmcgY29weSkKQEAgLTYzMyw2ICs2MzMsNyBAQAogCQlGRTA1RkFF
NjFGREIyMTQzMDAwOTMyMzAgLyogRHVtYlB0clRyYWl0cy5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBEdW1iUHRyVHJhaXRzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCUZFMDVGQUZFMUZFNTAwNzUwMDA5MzIzMCAvKiBXVEZBc3NlcnRpb25zLmNwcCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdURkFzc2VydGlvbnMuY3BwOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQlGRTA1RkIwNDFGRTg0NTMyMDAwOTMyMzAgLyogUG9pc29u
ZWRVbmlxdWVQdHIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUG9pc29uZWRV
bmlxdWVQdHIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRkU3NDk3RTQyMDhGRkNB
QTAwMDM1NjVCIC8qIFB0clRhZy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBQ
dHJUYWcuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRkU4MjI1MzAxQjJBMUU1QjAw
QkE2OEZEIC8qIE5ha2VkUHRyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE5h
a2VkUHRyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUZFODU0MTZDMUZCRTI4NUIw
MDhEQTVEQSAvKiBQb2lzb25lZC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBh
dGggPSBQb2lzb25lZC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUZFODU0MTZE
MUZCRTI4NUMwMDhEQTVEQSAvKiBQb2lzb25lZC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBQb2lzb25lZC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTAxMCw2
ICsxMDExLDcgQEAKIAkJCQkwRkM0NDg4MjE2RkU5RkUxMDA4NDRCRTkgLyogUHJvY2Vzc0lELmgg
Ki8sCiAJCQkJN0FGMDIzQjQyMDYxRTE2RjAwQThFRkQ2IC8qIFByb2Nlc3NQcml2aWxlZ2UuY3Bw
ICovLAogCQkJCTdBRjAyM0IzMjA2MUUxNkMwMEE4RUZENiAvKiBQcm9jZXNzUHJpdmlsZWdlLmgg
Ki8sCisJCQkJRkU3NDk3RTQyMDhGRkNBQTAwMDM1NjVCIC8qIFB0clRhZy5oICovLAogCQkJCTE0
M0Y2MTFEMTU2NUYwRjkwMERCNTE0QSAvKiBSQU1TaXplLmNwcCAqLywKIAkJCQkxNDNGNjExRTE1
NjVGMEY5MDBEQjUxNEEgLyogUkFNU2l6ZS5oICovLAogCQkJCUM4RjU5N0NBMkE1NzQxN0ZCQUI5
MkZENiAvKiBSYW5kb21EZXZpY2UuY3BwICovLApJbmRleDogU291cmNlL1dURi93dGYvQ01ha2VM
aXN0cy50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dURi93dGYvQ01ha2VMaXN0cy50eHQJKHJl
dmlzaW9uIDIzMDk5OCkKKysrIFNvdXJjZS9XVEYvd3RmL0NNYWtlTGlzdHMudHh0CSh3b3JraW5n
IGNvcHkpCkBAIC0xNjcsNiArMTY3LDcgQEAgc2V0KFdURl9QVUJMSUNfSEVBREVSUwogICAgIFBy
aW9yaXR5UXVldWUuaAogICAgIFByb2Nlc3NJRC5oCiAgICAgUHJvY2Vzc1ByaXZpbGVnZS5oCisg
ICAgUHRyVGFnLmgKICAgICBSQU1TaXplLmgKICAgICBSYW5kb21EZXZpY2UuaAogICAgIFJhbmRv
bU51bWJlci5oCkluZGV4OiBTb3VyY2UvV1RGL3d0Zi9QdHJUYWcuaAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV1RGL3d0Zi9QdHJUYWcuaAkocmV2aXNpb24gMjMwOTk4KQkoZnJvbSBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9QdHJUYWcuaDoyMzA5OTgpCisrKyBTb3VyY2UvV1RGL3d0Zi9Q
dHJUYWcuaAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDE4MCBAQAorLyoKKyAqIENvcHlyaWdo
dCAoQykgMjAxOCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgor
ICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgor
ICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQg
QU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVE
LiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBF
WEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSA8
d3RmL1BvaW50ZXJQcmVwYXJhdGlvbnMuaD4KKworbmFtZXNwYWNlIEpTQyB7CisKKyNkZWZpbmUg
Rk9SX0VBQ0hfQkFTRV9QVFJUQUdfRU5VTSh2KSBcCisgICAgdihOb1B0clRhZykgXAorICAgIHYo
Q0Z1bmN0aW9uUHRyVGFnKSBcCisKKyNkZWZpbmUgRk9SX0VBQ0hfQURESVRJT05BTF9QVFJUQUdf
RU5VTSh2KSBcCisgICAgdihCM0NDYWxsUHRyVGFnKSBcCisgICAgdihCM0NvbXBpbGF0aW9uUHRy
VGFnKSBcCisgICAgdihCeXRlY29kZVB0clRhZykgXAorICAgIHYoRGlzYXNzZW1ibHlQdHJUYWcp
IFwKKyAgICB2KEV4Y2VwdGlvbkhhbmRsZXJQdHJUYWcpIFwKKyAgICB2KEpJVFRodW5rUHRyVGFn
KSBcCisgICAgdihKSVRTdHViUm91dGluZVB0clRhZykgXAorICAgIHYoSlNFbnRyeVB0clRhZykg
XAorICAgIHYoSlNJbnRlcm5hbFB0clRhZykgXAorICAgIHYoSlNTd2l0Y2hQdHJUYWcpIFwKKyAg
ICB2KExpbmtCdWZmZXJQdHJUYWcpIFwKKyAgICB2KE9wZXJhdGlvblB0clRhZykgXAorICAgIHYo
T1NSRXhpdFB0clRhZykgXAorICAgIHYoU2xvd1BhdGhQdHJUYWcpIFwKKyAgICB2KFdhc21FbnRy
eVB0clRhZykgXAorICAgIHYoWWFycjhCaXRQdHJUYWcpIFwKKyAgICB2KFlhcnIxNkJpdFB0clRh
ZykgXAorICAgIHYoWWFyck1hdGNoT25seThCaXRQdHJUYWcpIFwKKyAgICB2KFlhcnJNYXRjaE9u
bHkxNkJpdFB0clRhZykgXAorICAgIHYoWWFyckJhY2t0cmFja1B0clRhZykgXAorCisjZGVmaW5l
IEZPUl9FQUNIX1BUUlRBR19FTlVNKHYpIFwKKyAgICBGT1JfRUFDSF9CQVNFX1BUUlRBR19FTlVN
KHYpIFwKKyAgICBGT1JfRUFDSF9BRERJVElPTkFMX1BUUlRBR19FTlVNKHYpIFwKKworZW51bSBQ
dHJUYWcgOiB1aW50cHRyX3QgeworICAgIE5vUHRyVGFnLAorICAgIENGdW5jdGlvblB0clRhZywK
KworI2lmbmRlZiBQVFJUQUdfRU5VTV9IQVNICisjZGVmaW5lIERFQ0xBUkVfUFRSVEFHX0VOVU0o
dGFnKSAgdGFnLAorI2Vsc2UKKyNkZWZpbmUgREVDTEFSRV9QVFJUQUdfRU5VTSh0YWcpICB0YWcg
PSBQVFJUQUdfRU5VTV9IQVNIKHRhZyksCisjZW5kaWYKKyAgICBGT1JfRUFDSF9BRERJVElPTkFM
X1BUUlRBR19FTlVNKERFQ0xBUkVfUFRSVEFHX0VOVU0pCisjdW5kZWYgREVDTEFSRV9QVFJUQUdf
RU5VTQorfTsKKworc3RhdGljX2Fzc2VydChzdGF0aWNfY2FzdDx1aW50cHRyX3Q+KE5vUHRyVGFn
KSA9PSBzdGF0aWNfY2FzdDx1aW50cHRyX3Q+KDApLCAiIik7CitzdGF0aWNfYXNzZXJ0KHN0YXRp
Y19jYXN0PHVpbnRwdHJfdD4oQ0Z1bmN0aW9uUHRyVGFnKSA9PSBzdGF0aWNfY2FzdDx1aW50cHRy
X3Q+KDEpLCAiIik7CisKK2lubGluZSBjb25zdCBjaGFyKiBwdHJUYWdOYW1lKFB0clRhZyB0YWcp
Cit7CisjZGVmaW5lIFJFVFVSTl9QVFJUQUdfTkFNRShfdGFnTmFtZSkgY2FzZSBfdGFnTmFtZTog
cmV0dXJuICNfdGFnTmFtZTsKKyAgICBzd2l0Y2ggKHRhZykgeworICAgICAgICBGT1JfRUFDSF9Q
VFJUQUdfRU5VTShSRVRVUk5fUFRSVEFHX05BTUUpCisgICAgZGVmYXVsdDogcmV0dXJuICI8dW5r
bm93bj4iOworICAgIH0KKyN1bmRlZiBSRVRVUk5fUFRSVEFHX05BTUUKK30KKworI2lmICFVU0Uo
UE9JTlRFUl9QUk9GSUxJTkcpCisKK2lubGluZSBjb25zdCBjaGFyKiB0YWdGb3JQdHIoY29uc3Qg
dm9pZCopIHsgcmV0dXJuICI8bm8gdGFnPiI7IH0KKwordGVtcGxhdGU8dHlwZW5hbWUuLi4gQXJn
dW1lbnRzPgoraW5saW5lIGNvbnN0ZXhwciBQdHJUYWcgcHRyVGFnKEFyZ3VtZW50cyYmLi4uKSB7
IHJldHVybiBOb1B0clRhZzsgfQorCit0ZW1wbGF0ZTx0eXBlbmFtZSBULCB0eXBlbmFtZSBQdHJU
eXBlLCB0eXBlbmFtZSA9IHN0ZDo6ZW5hYmxlX2lmX3Q8c3RkOjppc19wb2ludGVyPFB0clR5cGU+
Ojp2YWx1ZSAmJiAhc3RkOjppc19zYW1lPFQsIFB0clR5cGU+Ojp2YWx1ZT4+CitpbmxpbmUgY29u
c3RleHByIFQgdGFnQ29kZVB0cihQdHJUeXBlIHB0ciwgUHRyVGFnKSB7IHJldHVybiBiaXR3aXNl
X2Nhc3Q8VD4ocHRyKTsgfQorCit0ZW1wbGF0ZTx0eXBlbmFtZSBULCBQdHJUYWcsIHR5cGVuYW1l
IFB0clR5cGUsIHR5cGVuYW1lID0gc3RkOjplbmFibGVfaWZfdDxzdGQ6OmlzX3BvaW50ZXI8UHRy
VHlwZT46OnZhbHVlPj4KK2lubGluZSBUIHRhZ0NvZGVQdHIoUHRyVHlwZSBwdHIpIHsgcmV0dXJu
IGJpdHdpc2VfY2FzdDxUPihwdHIpOyB9CisKK3RlbXBsYXRlPHR5cGVuYW1lIFB0clR5cGUsIHR5
cGVuYW1lID0gc3RkOjplbmFibGVfaWZfdDxzdGQ6OmlzX3BvaW50ZXI8UHRyVHlwZT46OnZhbHVl
Pj4KK2lubGluZSBjb25zdGV4cHIgUHRyVHlwZSB0YWdDb2RlUHRyKFB0clR5cGUgcHRyLCBQdHJU
YWcpIHsgcmV0dXJuIHB0cjsgfQorCit0ZW1wbGF0ZTxQdHJUYWcsIHR5cGVuYW1lIFB0clR5cGUs
IHR5cGVuYW1lID0gc3RkOjplbmFibGVfaWZfdDxzdGQ6OmlzX3BvaW50ZXI8UHRyVHlwZT46OnZh
bHVlPj4KK2lubGluZSBQdHJUeXBlIHRhZ0NvZGVQdHIoUHRyVHlwZSBwdHIpIHsgcmV0dXJuIHB0
cjsgfQorCit0ZW1wbGF0ZTx0eXBlbmFtZSBULCB0eXBlbmFtZSBQdHJUeXBlLCB0eXBlbmFtZSA9
IHN0ZDo6ZW5hYmxlX2lmX3Q8c3RkOjppc19wb2ludGVyPFB0clR5cGU+Ojp2YWx1ZSAmJiAhc3Rk
Ojppc19zYW1lPFQsIFB0clR5cGU+Ojp2YWx1ZT4+CitpbmxpbmUgY29uc3RleHByIFQgdW50YWdD
b2RlUHRyKFB0clR5cGUgcHRyLCBQdHJUYWcpIHsgcmV0dXJuIGJpdHdpc2VfY2FzdDxUPihwdHIp
OyB9CisKK3RlbXBsYXRlPHR5cGVuYW1lIFQsIFB0clRhZywgdHlwZW5hbWUgUHRyVHlwZSwgdHlw
ZW5hbWUgPSBzdGQ6OmVuYWJsZV9pZl90PHN0ZDo6aXNfcG9pbnRlcjxQdHJUeXBlPjo6dmFsdWU+
PgoraW5saW5lIFQgdW50YWdDb2RlUHRyKFB0clR5cGUgcHRyKSAgeyByZXR1cm4gYml0d2lzZV9j
YXN0PFQ+KHB0cik7IH0KKwordGVtcGxhdGU8dHlwZW5hbWUgUHRyVHlwZSwgdHlwZW5hbWUgPSBz
dGQ6OmVuYWJsZV9pZl90PHN0ZDo6aXNfcG9pbnRlcjxQdHJUeXBlPjo6dmFsdWU+PgoraW5saW5l
IGNvbnN0ZXhwciBQdHJUeXBlIHVudGFnQ29kZVB0cihQdHJUeXBlIHB0ciwgUHRyVGFnKSB7IHJl
dHVybiBwdHI7IH0KKwordGVtcGxhdGU8UHRyVGFnLCB0eXBlbmFtZSBQdHJUeXBlLCB0eXBlbmFt
ZSA9IHN0ZDo6ZW5hYmxlX2lmX3Q8c3RkOjppc19wb2ludGVyPFB0clR5cGU+Ojp2YWx1ZT4+Citp
bmxpbmUgUHRyVHlwZSB1bnRhZ0NvZGVQdHIoUHRyVHlwZSBwdHIpIHsgcmV0dXJuIHB0cjsgfQor
Cit0ZW1wbGF0ZTx0eXBlbmFtZSBULCB0eXBlbmFtZSBQdHJUeXBlLCB0eXBlbmFtZSA9IHN0ZDo6
ZW5hYmxlX2lmX3Q8c3RkOjppc19wb2ludGVyPFB0clR5cGU+Ojp2YWx1ZSAmJiAhc3RkOjppc19z
YW1lPFQsIFB0clR5cGU+Ojp2YWx1ZT4+CitpbmxpbmUgY29uc3RleHByIFQgcmV0YWdDb2RlUHRy
KFB0clR5cGUgcHRyLCBQdHJUYWcsIFB0clRhZykgeyByZXR1cm4gYml0d2lzZV9jYXN0PFQ+KHB0
cik7IH0KKwordGVtcGxhdGU8dHlwZW5hbWUgVCwgUHRyVGFnLCBQdHJUYWcsIHR5cGVuYW1lIFB0
clR5cGUsIHR5cGVuYW1lID0gc3RkOjplbmFibGVfaWZfdDxzdGQ6OmlzX3BvaW50ZXI8UHRyVHlw
ZT46OnZhbHVlPj4KK2lubGluZSBUIHJldGFnQ29kZVB0cihQdHJUeXBlIHB0cikgeyByZXR1cm4g
Yml0d2lzZV9jYXN0PFQ+KHB0cik7IH0KKwordGVtcGxhdGU8dHlwZW5hbWUgUHRyVHlwZSwgdHlw
ZW5hbWUgPSBzdGQ6OmVuYWJsZV9pZl90PHN0ZDo6aXNfcG9pbnRlcjxQdHJUeXBlPjo6dmFsdWU+
PgoraW5saW5lIGNvbnN0ZXhwciBQdHJUeXBlIHJldGFnQ29kZVB0cihQdHJUeXBlIHB0ciwgUHRy
VGFnLCBQdHJUYWcpIHsgcmV0dXJuIHB0cjsgfQorCit0ZW1wbGF0ZTxQdHJUYWcsIFB0clRhZywg
dHlwZW5hbWUgUHRyVHlwZSwgdHlwZW5hbWUgPSBzdGQ6OmVuYWJsZV9pZl90PHN0ZDo6aXNfcG9p
bnRlcjxQdHJUeXBlPjo6dmFsdWU+PgoraW5saW5lIFB0clR5cGUgcmV0YWdDb2RlUHRyKFB0clR5
cGUgcHRyKSB7IHJldHVybiBwdHI7IH0KKwordGVtcGxhdGU8dHlwZW5hbWUgVCwgdHlwZW5hbWUg
UHRyVHlwZSwgdHlwZW5hbWUgPSBzdGQ6OmVuYWJsZV9pZl90PHN0ZDo6aXNfcG9pbnRlcjxQdHJU
eXBlPjo6dmFsdWUgJiYgIXN0ZDo6aXNfc2FtZTxULCBQdHJUeXBlPjo6dmFsdWU+PgoraW5saW5l
IGNvbnN0ZXhwciBUIHJlbW92ZUNvZGVQdHJUYWcoUHRyVHlwZSBwdHIpIHsgcmV0dXJuIGJpdHdp
c2VfY2FzdDxUPihwdHIpOyB9CisKK3RlbXBsYXRlPHR5cGVuYW1lIFB0clR5cGUsIHR5cGVuYW1l
ID0gc3RkOjplbmFibGVfaWZfdDxzdGQ6OmlzX3BvaW50ZXI8UHRyVHlwZT46OnZhbHVlPj4KK2lu
bGluZSBjb25zdGV4cHIgUHRyVHlwZSByZW1vdmVDb2RlUHRyVGFnKFB0clR5cGUgcHRyKSB7IHJl
dHVybiBwdHI7IH0KKwordGVtcGxhdGU8dHlwZW5hbWUgVCwgdHlwZW5hbWUgUHRyVHlwZSwgdHlw
ZW5hbWUgPSBzdGQ6OmVuYWJsZV9pZl90PHN0ZDo6aXNfcG9pbnRlcjxQdHJUeXBlPjo6dmFsdWUg
JiYgIXN0ZDo6aXNfc2FtZTxULCBQdHJUeXBlPjo6dmFsdWU+PgoraW5saW5lIFQgdGFnQ0Z1bmN0
aW9uUHRyKFB0clR5cGUgcHRyLCBQdHJUYWcpIHsgcmV0dXJuIGJpdHdpc2VfY2FzdDxUPihwdHIp
OyB9CisKK3RlbXBsYXRlPHR5cGVuYW1lIFQsIFB0clRhZywgdHlwZW5hbWUgUHRyVHlwZSwgdHlw
ZW5hbWUgPSBzdGQ6OmVuYWJsZV9pZl90PHN0ZDo6aXNfcG9pbnRlcjxQdHJUeXBlPjo6dmFsdWU+
PgoraW5saW5lIFQgdGFnQ0Z1bmN0aW9uUHRyKFB0clR5cGUgcHRyKSB7IHJldHVybiBiaXR3aXNl
X2Nhc3Q8VD4ocHRyKTsgfQorCit0ZW1wbGF0ZTx0eXBlbmFtZSBQdHJUeXBlLCB0eXBlbmFtZSA9
IHN0ZDo6ZW5hYmxlX2lmX3Q8c3RkOjppc19wb2ludGVyPFB0clR5cGU+Ojp2YWx1ZT4+Citpbmxp
bmUgUHRyVHlwZSB0YWdDRnVuY3Rpb25QdHIoUHRyVHlwZSBwdHIsIFB0clRhZykgeyByZXR1cm4g
cHRyOyB9CisKK3RlbXBsYXRlPFB0clRhZywgdHlwZW5hbWUgUHRyVHlwZSwgdHlwZW5hbWUgPSBz
dGQ6OmVuYWJsZV9pZl90PHN0ZDo6aXNfcG9pbnRlcjxQdHJUeXBlPjo6dmFsdWU+PgoraW5saW5l
IFB0clR5cGUgdGFnQ0Z1bmN0aW9uUHRyKFB0clR5cGUgcHRyKSB7IHJldHVybiBwdHI7IH0KKwor
dGVtcGxhdGU8dHlwZW5hbWUgVCwgdHlwZW5hbWUgUHRyVHlwZSwgdHlwZW5hbWUgPSBzdGQ6OmVu
YWJsZV9pZl90PHN0ZDo6aXNfcG9pbnRlcjxQdHJUeXBlPjo6dmFsdWUgJiYgIXN0ZDo6aXNfc2Ft
ZTxULCBQdHJUeXBlPjo6dmFsdWU+PgoraW5saW5lIFQgdW50YWdDRnVuY3Rpb25QdHIoUHRyVHlw
ZSBwdHIsIFB0clRhZykgeyByZXR1cm4gYml0d2lzZV9jYXN0PFQ+KHB0cik7IH0KKwordGVtcGxh
dGU8dHlwZW5hbWUgVCwgUHRyVGFnLCB0eXBlbmFtZSBQdHJUeXBlLCB0eXBlbmFtZSA9IHN0ZDo6
ZW5hYmxlX2lmX3Q8c3RkOjppc19wb2ludGVyPFB0clR5cGU+Ojp2YWx1ZT4+CitpbmxpbmUgVCB1
bnRhZ0NGdW5jdGlvblB0cihQdHJUeXBlIHB0cikgeyByZXR1cm4gYml0d2lzZV9jYXN0PFQ+KHB0
cik7IH0KKwordGVtcGxhdGU8dHlwZW5hbWUgUHRyVHlwZSwgdHlwZW5hbWUgPSBzdGQ6OmVuYWJs
ZV9pZl90PHN0ZDo6aXNfcG9pbnRlcjxQdHJUeXBlPjo6dmFsdWU+PgoraW5saW5lIFB0clR5cGUg
dW50YWdDRnVuY3Rpb25QdHIoUHRyVHlwZSBwdHIsIFB0clRhZykgeyByZXR1cm4gcHRyOyB9CisK
K3RlbXBsYXRlPFB0clRhZywgdHlwZW5hbWUgUHRyVHlwZSwgdHlwZW5hbWUgPSBzdGQ6OmVuYWJs
ZV9pZl90PHN0ZDo6aXNfcG9pbnRlcjxQdHJUeXBlPjo6dmFsdWU+PgoraW5saW5lIFB0clR5cGUg
dW50YWdDRnVuY3Rpb25QdHIoUHRyVHlwZSBwdHIpIHsgcmV0dXJuIHB0cjsgfQorCit0ZW1wbGF0
ZTx0eXBlbmFtZSBQdHJUeXBlPiB2b2lkIGFzc2VydElzQ0Z1bmN0aW9uUHRyKFB0clR5cGUpIHsg
fQordGVtcGxhdGU8dHlwZW5hbWUgUHRyVHlwZT4gdm9pZCBhc3NlcnRJc051bGxPckNGdW5jdGlv
blB0cihQdHJUeXBlKSB7IH0KKwordGVtcGxhdGU8dHlwZW5hbWUgUHRyVHlwZT4gdm9pZCBhc3Nl
cnRJc05vdFRhZ2dlZChQdHJUeXBlKSB7IH0KK3RlbXBsYXRlPHR5cGVuYW1lIFB0clR5cGU+IHZv
aWQgYXNzZXJ0SXNUYWdnZWQoUHRyVHlwZSkgeyB9Cit0ZW1wbGF0ZTx0eXBlbmFtZSBQdHJUeXBl
PiB2b2lkIGFzc2VydElzTnVsbE9yVGFnZ2VkKFB0clR5cGUpIHsgfQorCit0ZW1wbGF0ZTx0eXBl
bmFtZSBQdHJUeXBlPiB2b2lkIGFzc2VydElzVGFnZ2VkV2l0aChQdHJUeXBlLCBQdHJUYWcpIHsg
fQordGVtcGxhdGU8dHlwZW5hbWUgUHRyVHlwZT4gdm9pZCBhc3NlcnRJc051bGxPclRhZ2dlZFdp
dGgoUHRyVHlwZSwgUHRyVGFnKSB7IH0KKworI2RlZmluZSBDQUxMX1dJVEhfUFRSVEFHKGNhbGxJ
bnN0cnVjdGlvblN0cmluZywgdGFyZ2V0UmVnaXN0ZXJTdHJpbmcsIHRhZykgXAorICAgIGNhbGxJ
bnN0cnVjdGlvblN0cmluZyAiICIgdGFyZ2V0UmVnaXN0ZXJTdHJpbmcgIlxuIgorCisjZW5kaWYg
Ly8gIVVTRShQT0lOVEVSX1BST0ZJTElORykKKworfSAvLyBuYW1lc3BhY2UgSlNDCisKKyNpZiBV
U0UoQVBQTEVfSU5URVJOQUxfU0RLKSAmJiBfX2hhc19pbmNsdWRlKDxXZWJLaXRBZGRpdGlvbnMv
UHRyVGFnU3VwcG9ydC5oPikKKyNpbmNsdWRlIDxXZWJLaXRBZGRpdGlvbnMvUHRyVGFnU3VwcG9y
dC5oPgorI2VuZGlmCkluZGV4OiBTb3VyY2UvV1RGL3d0Zi9QdHJUYWcuaAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV1RGL3d0Zi9QdHJUYWcuaAkocmV2aXNpb24gMjMwOTk4KQorKysgU291cmNlL1dU
Ri93dGYvUHRyVGFnLmgJKHdvcmtpbmcgY29weSkKQEAgLTI3LDcxICsyNyw0OSBAQAogCiAjaW5j
bHVkZSA8d3RmL1BvaW50ZXJQcmVwYXJhdGlvbnMuaD4KIAotbmFtZXNwYWNlIEpTQyB7CituYW1l
c3BhY2UgV1RGIHsKIAotI2RlZmluZSBGT1JfRUFDSF9CQVNFX1BUUlRBR19FTlVNKHYpIFwKKyNk
ZWZpbmUgRk9SX0VBQ0hfQkFTRV9XVEZfUFRSVEFHKHYpIFwKICAgICB2KE5vUHRyVGFnKSBcCiAg
ICAgdihDRnVuY3Rpb25QdHJUYWcpIFwKIAotI2RlZmluZSBGT1JfRUFDSF9BRERJVElPTkFMX1BU
UlRBR19FTlVNKHYpIFwKLSAgICB2KEIzQ0NhbGxQdHJUYWcpIFwKLSAgICB2KEIzQ29tcGlsYXRp
b25QdHJUYWcpIFwKLSAgICB2KEJ5dGVjb2RlUHRyVGFnKSBcCi0gICAgdihEaXNhc3NlbWJseVB0
clRhZykgXAotICAgIHYoRXhjZXB0aW9uSGFuZGxlclB0clRhZykgXAotICAgIHYoSklUVGh1bmtQ
dHJUYWcpIFwKLSAgICB2KEpJVFN0dWJSb3V0aW5lUHRyVGFnKSBcCi0gICAgdihKU0VudHJ5UHRy
VGFnKSBcCi0gICAgdihKU0ludGVybmFsUHRyVGFnKSBcCi0gICAgdihKU1N3aXRjaFB0clRhZykg
XAotICAgIHYoTGlua0J1ZmZlclB0clRhZykgXAotICAgIHYoT3BlcmF0aW9uUHRyVGFnKSBcCi0g
ICAgdihPU1JFeGl0UHRyVGFnKSBcCi0gICAgdihTbG93UGF0aFB0clRhZykgXAotICAgIHYoV2Fz
bUVudHJ5UHRyVGFnKSBcCi0gICAgdihZYXJyOEJpdFB0clRhZykgXAotICAgIHYoWWFycjE2Qml0
UHRyVGFnKSBcCi0gICAgdihZYXJyTWF0Y2hPbmx5OEJpdFB0clRhZykgXAotICAgIHYoWWFyck1h
dGNoT25seTE2Qml0UHRyVGFnKSBcCi0gICAgdihZYXJyQmFja3RyYWNrUHRyVGFnKSBcCi0KLSNk
ZWZpbmUgRk9SX0VBQ0hfUFRSVEFHX0VOVU0odikgXAotICAgIEZPUl9FQUNIX0JBU0VfUFRSVEFH
X0VOVU0odikgXAotICAgIEZPUl9FQUNIX0FERElUSU9OQUxfUFRSVEFHX0VOVU0odikgXAorI2Rl
ZmluZSBGT1JfRUFDSF9BRERJVElPTkFMX1dURl9QVFJUQUcodikgXAorCisjZGVmaW5lIEZPUl9F
QUNIX1dURl9QVFJUQUcodikgXAorICAgIEZPUl9FQUNIX0JBU0VfV1RGX1BUUlRBRyh2KSBcCisg
ICAgRk9SX0VBQ0hfQURESVRJT05BTF9XVEZfUFRSVEFHKHYpIFwKIAogZW51bSBQdHJUYWcgOiB1
aW50cHRyX3QgewogICAgIE5vUHRyVGFnLAogICAgIENGdW5jdGlvblB0clRhZywKK307CiAKLSNp
Zm5kZWYgUFRSVEFHX0VOVU1fSEFTSAotI2RlZmluZSBERUNMQVJFX1BUUlRBR19FTlVNKHRhZykg
IHRhZywKLSNlbHNlCi0jZGVmaW5lIERFQ0xBUkVfUFRSVEFHX0VOVU0odGFnKSAgdGFnID0gUFRS
VEFHX0VOVU1fSEFTSCh0YWcpLAorI2lmbmRlZiBXVEZfUFRSVEFHX0hBU0gKK3RlbXBsYXRlPHNp
emVfdCBOPgorY29uc3RleHByIHVpbnRwdHJfdCBtYWtlUHRyVGFnSGFzaChjb25zdCBjaGFyICgm
c3RyKVtOXSkKK3sKKyAgICB1aW50cHRyX3QgcmVzdWx0ID0gMTM0Nzc1ODEzOworICAgIGZvciAo
c2l6ZV90IGkgPSAwOyBpIDwgTjsgKytpKQorICAgICAgICByZXN1bHQgKz0gKChyZXN1bHQgKiBz
dHJbaV0pIF4gKHJlc3VsdCA+PiAxNikpOworICAgIHJldHVybiByZXN1bHQgJiAweGZmZmY7Cit9
CisKKyNkZWZpbmUgV1RGX1BUUlRBR19IQVNIKHRhZykgV1RGOjptYWtlUHRyVGFnSGFzaCgjdGFn
KQogI2VuZGlmCi0gICAgRk9SX0VBQ0hfQURESVRJT05BTF9QVFJUQUdfRU5VTShERUNMQVJFX1BU
UlRBR19FTlVNKQotI3VuZGVmIERFQ0xBUkVfUFRSVEFHX0VOVU0KLX07CisKKyNkZWZpbmUgV1RG
X0RFQ0xBUkVfUFRSVEFHKHRhZykgXAorICAgIGNvbnN0ZXhwciBQdHJUYWcgdGFnID0gc3RhdGlj
X2Nhc3Q8UHRyVGFnPihXVEZfUFRSVEFHX0hBU0goI3RhZykpOyBcCisgICAgc3RhdGljX2Fzc2Vy
dCh0YWcgIT0gTm9QdHJUYWcgJiYgdGFnICE9IENGdW5jdGlvblB0clRhZywgIiIpOwogCiBzdGF0
aWNfYXNzZXJ0KHN0YXRpY19jYXN0PHVpbnRwdHJfdD4oTm9QdHJUYWcpID09IHN0YXRpY19jYXN0
PHVpbnRwdHJfdD4oMCksICIiKTsKIHN0YXRpY19hc3NlcnQoc3RhdGljX2Nhc3Q8dWludHB0cl90
PihDRnVuY3Rpb25QdHJUYWcpID09IHN0YXRpY19jYXN0PHVpbnRwdHJfdD4oMSksICIiKTsKIAot
aW5saW5lIGNvbnN0IGNoYXIqIHB0clRhZ05hbWUoUHRyVGFnIHRhZykKLXsKLSNkZWZpbmUgUkVU
VVJOX1BUUlRBR19OQU1FKF90YWdOYW1lKSBjYXNlIF90YWdOYW1lOiByZXR1cm4gI190YWdOYW1l
OwotICAgIHN3aXRjaCAodGFnKSB7Ci0gICAgICAgIEZPUl9FQUNIX1BUUlRBR19FTlVNKFJFVFVS
Tl9QVFJUQUdfTkFNRSkKLSAgICBkZWZhdWx0OiByZXR1cm4gIjx1bmtub3duPiI7Ci0gICAgfQot
I3VuZGVmIFJFVFVSTl9QVFJUQUdfTkFNRQotfQorRk9SX0VBQ0hfQURESVRJT05BTF9XVEZfUFRS
VEFHKFdURl9ERUNMQVJFX1BUUlRBRykKIAogI2lmICFVU0UoUE9JTlRFUl9QUk9GSUxJTkcpCiAK
IGlubGluZSBjb25zdCBjaGFyKiB0YWdGb3JQdHIoY29uc3Qgdm9pZCopIHsgcmV0dXJuICI8bm8g
dGFnPiI7IH0KIAotdGVtcGxhdGU8dHlwZW5hbWUuLi4gQXJndW1lbnRzPgotaW5saW5lIGNvbnN0
ZXhwciBQdHJUYWcgcHRyVGFnKEFyZ3VtZW50cyYmLi4uKSB7IHJldHVybiBOb1B0clRhZzsgfQot
CiB0ZW1wbGF0ZTx0eXBlbmFtZSBULCB0eXBlbmFtZSBQdHJUeXBlLCB0eXBlbmFtZSA9IHN0ZDo6
ZW5hYmxlX2lmX3Q8c3RkOjppc19wb2ludGVyPFB0clR5cGU+Ojp2YWx1ZSAmJiAhc3RkOjppc19z
YW1lPFQsIFB0clR5cGU+Ojp2YWx1ZT4+CiBpbmxpbmUgY29uc3RleHByIFQgdGFnQ29kZVB0cihQ
dHJUeXBlIHB0ciwgUHRyVGFnKSB7IHJldHVybiBiaXR3aXNlX2Nhc3Q8VD4ocHRyKTsgfQogCkBA
IC0xNzMsOCArMTUxLDI5IEBAIHRlbXBsYXRlPHR5cGVuYW1lIFB0clR5cGU+IHZvaWQgYXNzZXJ0
SXMKIAogI2VuZGlmIC8vICFVU0UoUE9JTlRFUl9QUk9GSUxJTkcpCiAKLX0gLy8gbmFtZXNwYWNl
IEpTQworfSAvLyBuYW1lc3BhY2UgV1RGCisKK3VzaW5nIFdURjo6Q0Z1bmN0aW9uUHRyVGFnOwor
dXNpbmcgV1RGOjpOb1B0clRhZzsKK3VzaW5nIFdURjo6UHRyVGFnOwogCiAjaWYgVVNFKEFQUExF
X0lOVEVSTkFMX1NESykgJiYgX19oYXNfaW5jbHVkZSg8V2ViS2l0QWRkaXRpb25zL1B0clRhZ1N1
cHBvcnQuaD4pCiAjaW5jbHVkZSA8V2ViS2l0QWRkaXRpb25zL1B0clRhZ1N1cHBvcnQuaD4KICNl
bmRpZgorCit1c2luZyBXVEY6OnRhZ0ZvclB0cjsKKwordXNpbmcgV1RGOjp0YWdDb2RlUHRyOwor
dXNpbmcgV1RGOjp1bnRhZ0NvZGVQdHI7Cit1c2luZyBXVEY6OnJldGFnQ29kZVB0cjsKK3VzaW5n
IFdURjo6cmVtb3ZlQ29kZVB0clRhZzsKK3VzaW5nIFdURjo6dGFnQ0Z1bmN0aW9uUHRyOwordXNp
bmcgV1RGOjp1bnRhZ0NGdW5jdGlvblB0cjsKKwordXNpbmcgV1RGOjphc3NlcnRJc0NGdW5jdGlv
blB0cjsKK3VzaW5nIFdURjo6YXNzZXJ0SXNOdWxsT3JDRnVuY3Rpb25QdHI7Cit1c2luZyBXVEY6
OmFzc2VydElzTm90VGFnZ2VkOwordXNpbmcgV1RGOjphc3NlcnRJc1RhZ2dlZDsKK3VzaW5nIFdU
Rjo6YXNzZXJ0SXNOdWxsT3JUYWdnZWQ7Cit1c2luZyBXVEY6OmFzc2VydElzVGFnZ2VkV2l0aDsK
K3VzaW5nIFdURjo6YXNzZXJ0SXNOdWxsT3JUYWdnZWRXaXRoOwpJbmRleDogU291cmNlL1dlYkNv
cmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwkocmV2
aXNpb24gMjMwOTk4KQorKysgU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkp
CkBAIC0xLDMgKzEsMjAgQEAKKzIwMTgtMDQtMjUgIE1hcmsgTGFtICA8bWFyay5sYW1AYXBwbGUu
Y29tPgorCisgICAgICAgIFB1c2ggdGhlIGRlZmluaXRpb24gb2YgUHRyVGFnIGRvd24gdG8gdGhl
IFdURiBsYXllci4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTE4NDk3NgorICAgICAgICA8cmRhcjovL3Byb2JsZW0vMzk3MjM5MDE+CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgU2FhbSBCYXJhdGkuCisKKyAgICAgICAgTm8gbmV3IHRlc3RzIG5lZWRlZC4g
IFRoaXMgaXMgY292ZXJlZCBieSBleGlzdGluZyB0ZXN0cy4KKworICAgICAgICAqIGNzc2ppdC9D
U1NQdHJUYWcuaDoKKyAgICAgICAgKiBjc3NqaXQvU2VsZWN0b3JDb21waWxlci5oOgorICAgICAg
ICAoV2ViQ29yZTo6U2VsZWN0b3JDb21waWxlcjo6cnVsZUNvbGxlY3RvclNpbXBsZVNlbGVjdG9y
Q2hlY2tlckZ1bmN0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OlNlbGVjdG9yQ29tcGlsZXI6OnF1
ZXJ5U2VsZWN0b3JTaW1wbGVTZWxlY3RvckNoZWNrZXJGdW5jdGlvbik6CisgICAgICAgIChXZWJD
b3JlOjpTZWxlY3RvckNvbXBpbGVyOjpydWxlQ29sbGVjdG9yU2VsZWN0b3JDaGVja2VyRnVuY3Rp
b25XaXRoQ2hlY2tpbmdDb250ZXh0KToKKyAgICAgICAgKFdlYkNvcmU6OlNlbGVjdG9yQ29tcGls
ZXI6OnF1ZXJ5U2VsZWN0b3JTZWxlY3RvckNoZWNrZXJGdW5jdGlvbldpdGhDaGVja2luZ0NvbnRl
eHQpOgorCiAyMDE4LTA0LTI1ICBQZXIgQXJuZSBWb2xsYW4gIDxwdm9sbGFuQGFwcGxlLmNvbT4K
IAogICAgICAgICBbV2luXSBDcmFzaCB1bmRlciBXZWJDb3JlOjpTaW1wbGVMaW5lTGF5b3V0Ojpn
ZW5lcmF0ZUxpbmVCb3hUcmVlCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9jc3NqaXQvQ1NTUHRyVGFn
LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvY3Nzaml0L0NTU1B0clRhZy5oCShyZXZp
c2lvbiAyMzA5OTgpCisrKyBTb3VyY2UvV2ViQ29yZS9jc3NqaXQvQ1NTUHRyVGFnLmgJKHdvcmtp
bmcgY29weSkKQEAgLTI3LDEyICsyNywxNSBAQAogCiAjaWYgRU5BQkxFKENTU19TRUxFQ1RPUl9K
SVQpCiAKLSNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9QdHJUYWcuaD4KKyNpbmNsdWRlIDxKYXZh
U2NyaXB0Q29yZS9KU0NQdHJUYWcuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1zdGF0aWMg
Y29uc3RleHByIEpTQzo6UHRyVGFnIENTU1NlbGVjdG9yUHRyVGFnID0gc3RhdGljX2Nhc3Q8SlND
OjpQdHJUYWc+KDB4YzU1MSk7Ci1zdGF0aWMgY29uc3RleHByIEpTQzo6UHRyVGFnIENTU09wZXJh
dGlvblB0clRhZyA9IHN0YXRpY19jYXN0PEpTQzo6UHRyVGFnPigweGM1NTIpOworI2RlZmluZSBG
T1JfRUFDSF9DU1NfUFRSVEFHKHYpIFwKKyAgICB2KENTU1NlbGVjdG9yUHRyVGFnKSBcCisgICAg
dihDU1NPcGVyYXRpb25QdHJUYWcpIFwKKworRk9SX0VBQ0hfQ1NTX1BUUlRBRyhXVEZfREVDTEFS
RV9QVFJUQUcpCiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIApJbmRleDogU291cmNlL1dlYkNv
cmUvY3Nzaml0L1NlbGVjdG9yQ29tcGlsZXIuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29y
ZS9jc3NqaXQvU2VsZWN0b3JDb21waWxlci5oCShyZXZpc2lvbiAyMzA5OTgpCisrKyBTb3VyY2Uv
V2ViQ29yZS9jc3NqaXQvU2VsZWN0b3JDb21waWxlci5oCSh3b3JraW5nIGNvcHkpCkBAIC01OCwy
NSArNTgsMjUgQEAgU2VsZWN0b3JDb21waWxhdGlvblN0YXR1cyBjb21waWxlU2VsZWN0bwogaW5s
aW5lIFJ1bGVDb2xsZWN0b3JTaW1wbGVTZWxlY3RvckNoZWNrZXIgcnVsZUNvbGxlY3RvclNpbXBs
ZVNlbGVjdG9yQ2hlY2tlckZ1bmN0aW9uKHZvaWQqIGV4ZWN1dGFibGVBZGRyZXNzLCBTZWxlY3Rv
ckNvbXBpbGF0aW9uU3RhdHVzIGNvbXBpbGF0aW9uU3RhdHVzKQogewogICAgIEFTU0VSVF9VTlVT
RUQoY29tcGlsYXRpb25TdGF0dXMsIGNvbXBpbGF0aW9uU3RhdHVzID09IFNlbGVjdG9yQ29tcGls
YXRpb25TdGF0dXM6OlNpbXBsZVNlbGVjdG9yQ2hlY2tlcik7Ci0gICAgcmV0dXJuIEpTQzo6dW50
YWdDRnVuY3Rpb25QdHI8UnVsZUNvbGxlY3RvclNpbXBsZVNlbGVjdG9yQ2hlY2tlciwgQ1NTU2Vs
ZWN0b3JQdHJUYWc+KGV4ZWN1dGFibGVBZGRyZXNzKTsKKyAgICByZXR1cm4gV1RGOjp1bnRhZ0NG
dW5jdGlvblB0cjxSdWxlQ29sbGVjdG9yU2ltcGxlU2VsZWN0b3JDaGVja2VyLCBDU1NTZWxlY3Rv
clB0clRhZz4oZXhlY3V0YWJsZUFkZHJlc3MpOwogfQogCiBpbmxpbmUgUXVlcnlTZWxlY3RvclNp
bXBsZVNlbGVjdG9yQ2hlY2tlciBxdWVyeVNlbGVjdG9yU2ltcGxlU2VsZWN0b3JDaGVja2VyRnVu
Y3Rpb24odm9pZCogZXhlY3V0YWJsZUFkZHJlc3MsIFNlbGVjdG9yQ29tcGlsYXRpb25TdGF0dXMg
Y29tcGlsYXRpb25TdGF0dXMpCiB7CiAgICAgQVNTRVJUX1VOVVNFRChjb21waWxhdGlvblN0YXR1
cywgY29tcGlsYXRpb25TdGF0dXMgPT0gU2VsZWN0b3JDb21waWxhdGlvblN0YXR1czo6U2ltcGxl
U2VsZWN0b3JDaGVja2VyKTsKLSAgICByZXR1cm4gSlNDOjp1bnRhZ0NGdW5jdGlvblB0cjxRdWVy
eVNlbGVjdG9yU2ltcGxlU2VsZWN0b3JDaGVja2VyLCBDU1NTZWxlY3RvclB0clRhZz4oZXhlY3V0
YWJsZUFkZHJlc3MpOworICAgIHJldHVybiBXVEY6OnVudGFnQ0Z1bmN0aW9uUHRyPFF1ZXJ5U2Vs
ZWN0b3JTaW1wbGVTZWxlY3RvckNoZWNrZXIsIENTU1NlbGVjdG9yUHRyVGFnPihleGVjdXRhYmxl
QWRkcmVzcyk7CiB9CiAKIGlubGluZSBSdWxlQ29sbGVjdG9yU2VsZWN0b3JDaGVja2VyV2l0aENo
ZWNraW5nQ29udGV4dCBydWxlQ29sbGVjdG9yU2VsZWN0b3JDaGVja2VyRnVuY3Rpb25XaXRoQ2hl
Y2tpbmdDb250ZXh0KHZvaWQqIGV4ZWN1dGFibGVBZGRyZXNzLCBTZWxlY3RvckNvbXBpbGF0aW9u
U3RhdHVzIGNvbXBpbGF0aW9uU3RhdHVzKQogewogICAgIEFTU0VSVF9VTlVTRUQoY29tcGlsYXRp
b25TdGF0dXMsIGNvbXBpbGF0aW9uU3RhdHVzID09IFNlbGVjdG9yQ29tcGlsYXRpb25TdGF0dXM6
OlNlbGVjdG9yQ2hlY2tlcldpdGhDaGVja2luZ0NvbnRleHQpOwotICAgIHJldHVybiBKU0M6OnVu
dGFnQ0Z1bmN0aW9uUHRyPFJ1bGVDb2xsZWN0b3JTZWxlY3RvckNoZWNrZXJXaXRoQ2hlY2tpbmdD
b250ZXh0LCBDU1NTZWxlY3RvclB0clRhZz4oZXhlY3V0YWJsZUFkZHJlc3MpOworICAgIHJldHVy
biBXVEY6OnVudGFnQ0Z1bmN0aW9uUHRyPFJ1bGVDb2xsZWN0b3JTZWxlY3RvckNoZWNrZXJXaXRo
Q2hlY2tpbmdDb250ZXh0LCBDU1NTZWxlY3RvclB0clRhZz4oZXhlY3V0YWJsZUFkZHJlc3MpOwog
fQogCiBpbmxpbmUgUXVlcnlTZWxlY3RvclNlbGVjdG9yQ2hlY2tlcldpdGhDaGVja2luZ0NvbnRl
eHQgcXVlcnlTZWxlY3RvclNlbGVjdG9yQ2hlY2tlckZ1bmN0aW9uV2l0aENoZWNraW5nQ29udGV4
dCh2b2lkKiBleGVjdXRhYmxlQWRkcmVzcywgU2VsZWN0b3JDb21waWxhdGlvblN0YXR1cyBjb21w
aWxhdGlvblN0YXR1cykKIHsKICAgICBBU1NFUlRfVU5VU0VEKGNvbXBpbGF0aW9uU3RhdHVzLCBj
b21waWxhdGlvblN0YXR1cyA9PSBTZWxlY3RvckNvbXBpbGF0aW9uU3RhdHVzOjpTZWxlY3RvckNo
ZWNrZXJXaXRoQ2hlY2tpbmdDb250ZXh0KTsKLSAgICByZXR1cm4gSlNDOjp1bnRhZ0NGdW5jdGlv
blB0cjxRdWVyeVNlbGVjdG9yU2VsZWN0b3JDaGVja2VyV2l0aENoZWNraW5nQ29udGV4dCwgQ1NT
U2VsZWN0b3JQdHJUYWc+KGV4ZWN1dGFibGVBZGRyZXNzKTsKKyAgICByZXR1cm4gV1RGOjp1bnRh
Z0NGdW5jdGlvblB0cjxRdWVyeVNlbGVjdG9yU2VsZWN0b3JDaGVja2VyV2l0aENoZWNraW5nQ29u
dGV4dCwgQ1NTU2VsZWN0b3JQdHJUYWc+KGV4ZWN1dGFibGVBZGRyZXNzKTsKIH0KIAogfSAvLyBu
YW1lc3BhY2UgU2VsZWN0b3JDb21waWxlcgo=
</data>

          </attachment>
      

    </bug>

</bugzilla>