<?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>72061</bug_id>
          
          <creation_ts>2011-11-10 14:36:33 -0800</creation_ts>
          <short_desc>Add ARMv7 support to the DFG JIT</short_desc>
          <delta_ts>2011-11-10 15:02:46 -0800</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>528+ (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></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Gavin Barraclough">barraclough</reporter>
          <assigned_to name="Gavin Barraclough">barraclough</assigned_to>
          <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>500295</commentid>
    <comment_count>0</comment_count>
    <who name="Gavin Barraclough">barraclough</who>
    <bug_when>2011-11-10 14:36:33 -0800</bug_when>
    <thetext>Remaining tasks mainly consist of bug fixes &amp; calling convention issues.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>500302</commentid>
    <comment_count>1</comment_count>
      <attachid>114575</attachid>
    <who name="Gavin Barraclough">barraclough</who>
    <bug_when>2011-11-10 14:40:48 -0800</bug_when>
    <thetext>Created attachment 114575
Fix</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>500305</commentid>
    <comment_count>2</comment_count>
      <attachid>114577</attachid>
    <who name="Gavin Barraclough">barraclough</who>
    <bug_when>2011-11-10 14:42:56 -0800</bug_when>
    <thetext>Created attachment 114577
Added missing bug link</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>500312</commentid>
    <comment_count>3</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-11-10 14:49:36 -0800</bug_when>
    <thetext>Attachment 114577 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;Source/JavaScriptCore/ChangeLog&apos;, u&apos;Source...&quot; exit_code: 1

Source/JavaScriptCore/dfg/DFGOperations.cpp:70:  Extra space before ( in function call  [whitespace/parens] [4]
Source/JavaScriptCore/dfg/DFGOperations.cpp:83:  Extra space before ( in function call  [whitespace/parens] [4]
Source/JavaScriptCore/dfg/DFGOperations.cpp:96:  Extra space before ( in function call  [whitespace/parens] [4]
Source/JavaScriptCore/dfg/DFGOperations.cpp:567:  Extra space before ( in function call  [whitespace/parens] [4]
Source/JavaScriptCore/dfg/DFGOperations.cpp:578:  The parameter name &quot;&quot;&quot;&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
Source/JavaScriptCore/dfg/DFGAssemblyHelpers.h:193:  This { should be at the end of the previous line  [whitespace/braces] [4]
Total errors found: 6 in 11 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>500320</commentid>
    <comment_count>4</comment_count>
      <attachid>114577</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2011-11-10 14:55:35 -0800</bug_when>
    <thetext>Comment on attachment 114577
Added missing bug link

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>500327</commentid>
    <comment_count>5</comment_count>
    <who name="Gavin Barraclough">barraclough</who>
    <bug_when>2011-11-10 15:02:46 -0800</bug_when>
    <thetext>Fixed in r99904</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>114575</attachid>
            <date>2011-11-10 14:40:48 -0800</date>
            <delta_ts>2011-11-10 14:42:56 -0800</delta_ts>
            <desc>Fix</desc>
            <filename>72061.patch</filename>
            <type>text/plain</type>
            <size>23018</size>
            <attacher name="Gavin Barraclough">barraclough</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gOTk4OTYpCisrKyBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsNTUgQEAK
KzIwMTEtMTEtMTAgIEdhdmluIEJhcnJhY2xvdWdoICA8YmFycmFjbG91Z2hAYXBwbGUuY29tPgor
CisgICAgICAgIEFkZCBBUk12NyBzdXBwb3J0IHRvIHRoZSBERkcgSklUCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03MjA2MQorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogZGZnL0RGR0Fzc2VtYmx5SGVscGVy
cy5oOgorICAgICAgICAoSlNDOjpERkc6OkFzc2VtYmx5SGVscGVyczo6cHJlc2VydmVSZXR1cm5B
ZGRyZXNzQWZ0ZXJDYWxsKToKKyAgICAgICAgKEpTQzo6REZHOjpBc3NlbWJseUhlbHBlcnM6OnJl
c3RvcmVSZXR1cm5BZGRyZXNzQmVmb3JlUmV0dXJuKToKKyAgICAgICAgKEpTQzo6REZHOjpBc3Nl
bWJseUhlbHBlcnM6OmVtaXRQdXRJbW1lZGlhdGVUb0NhbGxGcmFtZUhlYWRlcik6CisgICAgICAg
IChKU0M6OkRGRzo6QXNzZW1ibHlIZWxwZXJzOjpib3hEb3VibGUpOgorICAgICAgICAoSlNDOjpE
Rkc6OkFzc2VtYmx5SGVscGVyczo6dW5ib3hEb3VibGUpOgorICAgICAgICAgICAgLSBBZGQgQ1BV
KEFSTSkgY29waWVzIG9mIHRoZXNlIGZ1bmN0aW9ucy4KKyAgICAgICAgKiBkZmcvREZHSklUQ29k
ZUdlbmVyYXRvci5oOgorICAgICAgICAoSlNDOjpERkc6OkpJVENvZGVHZW5lcmF0b3I6OnNwaWxs
KToKKyAgICAgICAgICAgIC0gRml4IG1hdGNoaW5nIG9mICd9JyByZSAjaWYgYmxvY2tzLCBtYWtl
cyBzb21lIHRvb2xzIGhhcHB5LgorICAgICAgICAoSlNDOjpERkc6OkpJVENvZGVHZW5lcmF0b3I6
OnNldHVwQXJndW1lbnRzKToKKyAgICAgICAgKEpTQzo6REZHOjpKSVRDb2RlR2VuZXJhdG9yOjpz
ZXR1cEFyZ3VtZW50c1dpdGhFeGVjU3RhdGUpOgorICAgICAgICAoSlNDOjpERkc6OkpJVENvZGVH
ZW5lcmF0b3I6OmFwcGVuZENhbGxXaXRoRXhjZXB0aW9uQ2hlY2tTZXRSZXN1bHQpOgorICAgICAg
ICAoSlNDOjpERkc6OkpJVENvZGVHZW5lcmF0b3I6OmFwcGVuZENhbGxTZXRSZXN1bHQpOgorICAg
ICAgICAgICAgLSBBZGQgQ1BVKEFSTSkgLyA0IGFyZ3VtZW50IHJlZ2lzdGVyIGNvcGllcyBvZiB0
aGVzZSBmdW5jdGlvbnMuCisgICAgICAgICogZGZnL0RGR0pJVENvZGVHZW5lcmF0b3IzMl82NC5j
cHA6CisgICAgICAgIChKU0M6OkRGRzo6SklUQ29kZUdlbmVyYXRvcjo6bm9uU3BlY3VsYXRpdmVW
YWx1ZVRvSW50MzIpOgorICAgICAgICAgICAgLSBTaG91bGQgdXNlIGNhbGxPcGVyYXRpb24gdG8g
cGxhbnQgYSBjYWxsIHRvIGEgREZHX09QRVJBVElPTi4KKyAgICAgICAgKEpTQzo6REZHOjpKSVRD
b2RlR2VuZXJhdG9yOjpjYWNoZWRHZXRCeUlkKToKKyAgICAgICAgKEpTQzo6REZHOjpKSVRDb2Rl
R2VuZXJhdG9yOjpjYWNoZWRQdXRCeUlkKToKKyAgICAgICAgICAgIC0gVGhlc2UgbWV0aG9kcyBu
ZWVkIHRvIHBsYW50IGEgcmVsaW5rYWJsZSBqdW1wOyB3ZSBjdXJyZW50bHkgZG8gc28KKyAgICAg
ICAgICAgICAgdXNpbmcgYmVnaW5VbmludGVycnVwdGVkU2VxdWVuY2UoKSAvIGVuZFVuaW50ZXJy
dXB0ZWRTZXF1ZW5jZSgpLgorICAgICAgICAqIGRmZy9ERkdKSVRDb2RlR2VuZXJhdG9yNjQuY3Bw
OgorICAgICAgICAoSlNDOjpERkc6OkpJVENvZGVHZW5lcmF0b3I6Om5vblNwZWN1bGF0aXZlVmFs
dWVUb0ludDMyKToKKyAgICAgICAgICAgIC0gU2hvdWxkIHVzZSBjYWxsT3BlcmF0aW9uIHRvIHBs
YW50IGEgY2FsbCB0byBhIERGR19PUEVSQVRJT04uCisgICAgICAgICogZGZnL0RGR0pJVENvbXBp
bGVyLmNwcDoKKyAgICAgICAgKEpTQzo6REZHOjpKSVRDb21waWxlcjo6bGlua09TUkV4aXRzKToK
KyAgICAgICAgICAgIC0gVGhpcyBtZXRob2QgbmVlZHMgdG8gcGxhbnQgYSByZWxpbmthYmxlIGp1
bXA7IHdlIGN1cnJlbnRseSBkbyBzbworICAgICAgICAgICAgICB1c2luZyBiZWdpblVuaW50ZXJy
dXB0ZWRTZXF1ZW5jZSgpIC8gZW5kVW5pbnRlcnJ1cHRlZFNlcXVlbmNlKCkuCisgICAgICAgIChK
U0M6OkRGRzo6SklUQ29tcGlsZXI6OmNvbXBpbGVCb2R5KToKKyAgICAgICAgICAgIC0gQWRkIGFi
c3RyYWN0aW9uIHRvIHJldHJpZXZlIHRoZSBwYyBhZnRlciBhIGNhbGwuCisgICAgICAgICogZGZn
L0RGR09TUkV4aXRDb21waWxlci5jcHA6CisgICAgICAgICAgICAtIEZpeCBhIGJ1ZyAtIENvZGVM
b2NhdGlvbkxhYmVsIG5lZWRzIGEgZGF0YSBhZGRyZXNzIHJhdGhlciB0aGFuIGFuCisgICAgICAg
ICAgICAgIGV4ZWN1dGFibGUgb25lLCBidXQgY2FuIGp1c3QgdGFrZSBhIE1hY3JvQXNzZW1ibGVy
Q29kZVB0ciBpbnN0ZWFkIQorICAgICAgICAqIGRmZy9ERkdPcGVyYXRpb25zLmNwcDoKKyAgICAg
ICAgKiBkZmcvREZHU3BlY3VsYXRpdmVKSVQuY3BwOgorICAgICAgICAoSlNDOjpERkc6OmNvbXBp
bGVDbGFtcERvdWJsZVRvQnl0ZSk6CisgICAgICAgICAgICAtIEFkZCBGSVhNRSBjb21tZW50IHRv
IGNvbWUgYmFjayB0byEgLSBidWcjNzIwNTQuCisgICAgICAgICogZGZnL0RGR1NwZWN1bGF0aXZl
SklULmg6CisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OnNwZWN1bGF0aW9uQ2hl
Y2spOgorICAgICAgICAgICAgLSBBZGQgbWlzc2luZyBtZXRob2QgKG9vb3BzLCByZXF1aXJlZCBi
eSBidWcjNzIwNDcpCisgICAgICAgICogZGZnL0RGR1NwZWN1bGF0aXZlSklUMzJfNjQuY3BwOgor
ICAgICAgICAgICAgLSBOZWVkIHRvIHdyYXAgZm1vZCBvbiBBUk12Ny4KKworCiAyMDExLTExLTEw
ICBHYXZpbiBCYXJyYWNsb3VnaCAgPGJhcnJhY2xvdWdoQGFwcGxlLmNvbT4KIAogICAgICAgICBB
ZGQgQVJNdjcgcmVnaXN0ZXIgaW5mbyBmb3IgdGhlIERGRyBKSVQKSW5kZXg6IFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9kZmcvREZHQXNzZW1ibHlIZWxwZXJzLmgKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L0phdmFTY3JpcHRDb3JlL2RmZy9ERkdBc3NlbWJseUhlbHBlcnMuaAkocmV2aXNpb24gOTk4OTUp
CisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0Fzc2VtYmx5SGVscGVycy5oCSh3b3Jr
aW5nIGNvcHkpCkBAIC03MSw2ICs3MSwzNCBAQCBwdWJsaWM6CiAgICAgICAgIHB1c2goYWRkcmVz
cyk7CiAgICAgfQogCisgICAgdm9pZCBnZXRQQ0FmdGVyQ2FsbChHUFJSZWcgZ3ByKQorICAgIHsK
KyAgICAgICAgICBwZWVrKGdwciwgLTEpOworICAgIH0KKyNlbmRpZiAvLyBDUFUoWDg2XzY0KSB8
fCBDUFUoWDg2KQorCisjaWYgQ1BVKEFSTSkKKyAgICBBTFdBWVNfSU5MSU5FIHZvaWQgcHJlc2Vy
dmVSZXR1cm5BZGRyZXNzQWZ0ZXJDYWxsKFJlZ2lzdGVySUQgcmVnKQorICAgIHsKKyAgICAgICAg
bW92ZShsaW5rUmVnaXN0ZXIsIHJlZyk7CisgICAgfQorCisgICAgQUxXQVlTX0lOTElORSB2b2lk
IHJlc3RvcmVSZXR1cm5BZGRyZXNzQmVmb3JlUmV0dXJuKFJlZ2lzdGVySUQgcmVnKQorICAgIHsK
KyAgICAgICAgbW92ZShyZWcsIGxpbmtSZWdpc3Rlcik7CisgICAgfQorCisgICAgQUxXQVlTX0lO
TElORSB2b2lkIHJlc3RvcmVSZXR1cm5BZGRyZXNzQmVmb3JlUmV0dXJuKEFkZHJlc3MgYWRkcmVz
cykKKyAgICB7CisgICAgICAgIGxvYWRQdHIoYWRkcmVzcywgbGlua1JlZ2lzdGVyKTsKKyAgICB9
CisKKyAgICBBTFdBWVNfSU5MSU5FIHZvaWQgZ2V0UENBZnRlckNhbGwoR1BSUmVnIGdwcikKKyAg
ICB7CisgICAgICAgIG1vdmUoQVJNUmVnaXN0ZXJzOjpsciwgZ3ByKTsKKyAgICB9CisjZW5kaWYK
KwogICAgIHZvaWQgZW1pdEdldEZyb21DYWxsRnJhbWVIZWFkZXJQdHIoUmVnaXN0ZXJGaWxlOjpD
YWxsRnJhbWVIZWFkZXJFbnRyeSBlbnRyeSwgR1BSUmVnIHRvKQogICAgIHsKICAgICAgICAgbG9h
ZFB0cihBZGRyZXNzKEdQUkluZm86OmNhbGxGcmFtZVJlZ2lzdGVyLCBlbnRyeSAqIHNpemVvZihS
ZWdpc3RlcikpLCB0byk7CkBAIC04NCw3ICsxMTIsNiBAQCBwdWJsaWM6CiAgICAgewogICAgICAg
ICBzdG9yZVB0cihUcnVzdGVkSW1tUHRyKHZhbHVlKSwgQWRkcmVzcyhHUFJJbmZvOjpjYWxsRnJh
bWVSZWdpc3RlciwgZW50cnkgKiBzaXplb2YoUmVnaXN0ZXIpKSk7CiAgICAgfQotI2VuZGlmIC8v
IENQVShYODZfNjQpIHx8IENQVShYODYpCiAKICAgICBKdW1wIGJyYW5jaElmTm90Q2VsbChHUFJS
ZWcgcmVnKQogICAgIHsKQEAgLTEzMiw2ICsxNTksNyBAQCBwdWJsaWM6CiAKICNpZm5kZWYgTkRF
QlVHCiAgICAgLy8gQWRkIGEgZGVidWcgY2FsbC4gVGhpcyBjYWxsIGhhcyBubyBlZmZlY3Qgb24g
SklUIGNvZGUgZXhlY3V0aW9uIHN0YXRlLgorI2lmIENQVShYODZfNjQpIHx8IENQVShYODYpCiAg
ICAgdm9pZCBkZWJ1Z0NhbGwoVl9ERkdEZWJ1Z09wZXJhdGlvbl9FUCBmdW5jdGlvbiwgdm9pZCog
YXJndW1lbnQpCiAgICAgewogICAgICAgICBFbmNvZGVkSlNWYWx1ZSogYnVmZmVyID0gc3RhdGlj
X2Nhc3Q8RW5jb2RlZEpTVmFsdWUqPihtX2dsb2JhbERhdGEtPnNjcmF0Y2hCdWZmZXJGb3JTaXpl
KHNpemVvZihFbmNvZGVkSlNWYWx1ZSkgKiAoR1BSSW5mbzo6bnVtYmVyT2ZSZWdpc3RlcnMgKyBG
UFJJbmZvOjpudW1iZXJPZlJlZ2lzdGVycykpKTsKQEAgLTE2MCw2ICsxODgsMTUgQEAgcHVibGlj
OgogICAgICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgR1BSSW5mbzo6bnVtYmVyT2ZSZWdp
c3RlcnM7ICsraSkKICAgICAgICAgICAgIGxvYWRQdHIoYnVmZmVyICsgaSwgR1BSSW5mbzo6dG9S
ZWdpc3RlcihpKSk7CiAgICAgfQorI2Vsc2UKKyAgICB2b2lkIGRlYnVnQ2FsbChWX0RGR0RlYnVn
T3BlcmF0aW9uX0VQIGZ1bmN0aW9uLCB2b2lkKiBhcmd1bWVudCkgTk9fUkVUVVJOX0RVRV9UT19B
U1NFUlQKKyAgICB7CisgICAgICAgIC8vIGRlYnVnQ2FsbCBub3Qgc3VwcG9ydGVkIG9uIHRoaXMg
cGxhdGZvcm0uCisgICAgICAgIFVOVVNFRF9QQVJBTShmdW5jdGlvbik7CisgICAgICAgIFVOVVNF
RF9QQVJBTShhcmd1bWVudCk7CisgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgIH0K
KyNlbmRpZgogI2VuZGlmCiAKICAgICAvLyBUaGVzZSBtZXRob2RzIEpJVCBnZW5lcmF0ZSBkeW5h
bWljLCBkZWJ1Zy1vbmx5IGNoZWNrcyAtIGFraW4gdG8gQVNTRVJUcy4KQEAgLTE5MiwyNCArMjI5
LDM1IEBAIHB1YmxpYzoKICAgICAgICAgbW92ZVB0clRvRG91YmxlKGdwciwgZnByKTsKICAgICAg
ICAgcmV0dXJuIGZwcjsKICAgICB9Ci0jZWxpZiBVU0UoSlNWQUxVRTMyXzY0KQorI2VuZGlmCisK
KyNpZiBVU0UoSlNWQUxVRTMyXzY0KSAmJiBDUFUoWDg2KQogICAgIHZvaWQgYm94RG91YmxlKEZQ
UlJlZyBmcHIsIEdQUlJlZyB0YWdHUFIsIEdQUlJlZyBwYXlsb2FkR1BSKQogICAgIHsKLSNpZiBD
UFUoWDg2KQogICAgICAgICBtb3ZlUGFja2VkVG9JbnQzMihmcHIsIHBheWxvYWRHUFIpOwogICAg
ICAgICByc2hpZnRQYWNrZWQoVHJ1c3RlZEltbTMyKDMyKSwgZnByKTsKICAgICAgICAgbW92ZVBh
Y2tlZFRvSW50MzIoZnByLCB0YWdHUFIpOwotI2VuZGlmCiAgICAgfQogICAgIHZvaWQgdW5ib3hE
b3VibGUoR1BSUmVnIHRhZ0dQUiwgR1BSUmVnIHBheWxvYWRHUFIsIEZQUlJlZyBmcHIsIEZQUlJl
ZyBzY3JhdGNoRlBSKQogICAgIHsKICAgICAgICAgaml0QXNzZXJ0SXNKU0RvdWJsZSh0YWdHUFIp
OwotI2lmIENQVShYODYpCiAgICAgICAgIG1vdmVJbnQzMlRvUGFja2VkKHBheWxvYWRHUFIsIGZw
cik7CiAgICAgICAgIG1vdmVJbnQzMlRvUGFja2VkKHRhZ0dQUiwgc2NyYXRjaEZQUik7CiAgICAg
ICAgIGxzaGlmdFBhY2tlZChUcnVzdGVkSW1tMzIoMzIpLCBzY3JhdGNoRlBSKTsKICAgICAgICAg
b3JQYWNrZWQoc2NyYXRjaEZQUiwgZnByKTsKKyAgICB9CiAjZW5kaWYKKworI2lmIFVTRShKU1ZB
TFVFMzJfNjQpICYmIENQVShBUk0pCisgICAgdm9pZCBib3hEb3VibGUoRlBSUmVnIGZwciwgR1BS
UmVnIHRhZ0dQUiwgR1BSUmVnIHBheWxvYWRHUFIpCisgICAgeworICAgICAgICBtX2Fzc2VtYmxl
ci52bW92KHBheWxvYWRHUFIsIHRhZ0dQUiwgZnByKTsKKyAgICB9CisgICAgdm9pZCB1bmJveERv
dWJsZShHUFJSZWcgdGFnR1BSLCBHUFJSZWcgcGF5bG9hZEdQUiwgRlBSUmVnIGZwciwgRlBSUmVn
IHNjcmF0Y2hGUFIpCisgICAgeworICAgICAgICBqaXRBc3NlcnRJc0pTRG91YmxlKHRhZ0dQUik7
CisgICAgICAgIFVOVVNFRF9QQVJBTShzY3JhdGNoRlBSKTsKKyAgICAgICAgbV9hc3NlbWJsZXIu
dm1vdihmcHIsIHBheWxvYWRHUFIsIHRhZ0dQUik7CiAgICAgfQogI2VuZGlmCiAKSW5kZXg6IFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHSklUQ29kZUdlbmVyYXRvcjMyXzY0LmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0pJVENvZGVHZW5lcmF0b3Iz
Ml82NC5jcHAJKHJldmlzaW9uIDk5ODk1KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9E
RkdKSVRDb2RlR2VuZXJhdG9yMzJfNjQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00MjEsMTMgKzQy
MSw3IEBAIHZvaWQgSklUQ29kZUdlbmVyYXRvcjo6bm9uU3BlY3VsYXRpdmVWYWwKICAgICAgICAg
SklUQ29tcGlsZXI6Okp1bXAgdHJ1bmNhdGVkVG9JbnRlZ2VyID0gbV9qaXQuYnJhbmNoVHJ1bmNh
dGVEb3VibGVUb0ludDMyKGZwciwgZ3ByLCBKSVRDb21waWxlcjo6QnJhbmNoSWZUcnVuY2F0ZVN1
Y2Nlc3NmdWwpOwogCiAgICAgICAgIHNpbGVudFNwaWxsQWxsUmVnaXN0ZXJzKGdwcik7Ci0KLSAg
ICAgICAgbV9qaXQuc3ViUHRyKFRydXN0ZWRJbW0zMihzaXplb2YoZG91YmxlKSksIEpJVENvbXBp
bGVyOjpzdGFja1BvaW50ZXJSZWdpc3Rlcik7Ci0gICAgICAgIG1faml0LnN0b3JlRG91YmxlKGZw
ciwgSklUQ29tcGlsZXI6OnN0YWNrUG9pbnRlclJlZ2lzdGVyKTsKLSAgICAgICAgYXBwZW5kQ2Fs
bFdpdGhFeGNlcHRpb25DaGVjayh0b0ludDMyKTsKLSAgICAgICAgbV9qaXQubW92ZShHUFJJbmZv
OjpyZXR1cm5WYWx1ZUdQUiwgZ3ByKTsKLSAgICAgICAgbV9qaXQuYWRkUHRyKFRydXN0ZWRJbW0z
MihzaXplb2YoZG91YmxlKSksIEpJVENvbXBpbGVyOjpzdGFja1BvaW50ZXJSZWdpc3Rlcik7Ci0K
KyAgICAgICAgY2FsbE9wZXJhdGlvbih0b0ludDMyLCBncHIsIGZwcik7CiAgICAgICAgIHNpbGVu
dEZpbGxBbGxSZWdpc3RlcnMoZ3ByKTsKIAogICAgICAgICB0cnVuY2F0ZWRUb0ludGVnZXIubGlu
aygmbV9qaXQpOwpAQCAtODU3LDggKzg1MSwxMCBAQCBKSVRDb21waWxlcjo6Q2FsbCBKSVRDb2Rl
R2VuZXJhdG9yOjpjYWNoCiB7CiAgICAgQVNTRVJUKG5vZGVUeXBlID09IEdldEJ5SWQgfHwgbm9k
ZVR5cGUgPT0gR2V0TWV0aG9kKTsKIAorICAgIG1faml0LmJlZ2luVW5pbnRlcnJ1cHRlZFNlcXVl
bmNlKCk7CiAgICAgSklUQ29tcGlsZXI6OkRhdGFMYWJlbFB0ciBzdHJ1Y3R1cmVUb0NvbXBhcmU7
CiAgICAgSklUQ29tcGlsZXI6Okp1bXAgc3RydWN0dXJlQ2hlY2sgPSBtX2ppdC5icmFuY2hQdHJX
aXRoUGF0Y2goSklUQ29tcGlsZXI6Ok5vdEVxdWFsLCBKSVRDb21waWxlcjo6QWRkcmVzcyhiYXNl
UGF5bG9hZEdQUiwgSlNDZWxsOjpzdHJ1Y3R1cmVPZmZzZXQoKSksIHN0cnVjdHVyZVRvQ29tcGFy
ZSwgSklUQ29tcGlsZXI6OlRydXN0ZWRJbW1QdHIocmVpbnRlcnByZXRfY2FzdDx2b2lkKj4oLTEp
KSk7CisgICAgbV9qaXQuZW5kVW5pbnRlcnJ1cHRlZFNlcXVlbmNlKCk7CiAgICAgCiAgICAgbV9q
aXQubG9hZFB0cihKSVRDb21waWxlcjo6QWRkcmVzcyhiYXNlUGF5bG9hZEdQUiwgSlNPYmplY3Q6
Om9mZnNldE9mUHJvcGVydHlTdG9yYWdlKCkpLCByZXN1bHRQYXlsb2FkR1BSKTsKICAgICBKSVRD
b21waWxlcjo6RGF0YUxhYmVsQ29tcGFjdCB0YWdMb2FkV2l0aFBhdGNoID0gbV9qaXQubG9hZDMy
V2l0aENvbXBhY3RBZGRyZXNzT2Zmc2V0UGF0Y2goSklUQ29tcGlsZXI6OkFkZHJlc3MocmVzdWx0
UGF5bG9hZEdQUiwgT0JKRUNUX09GRlNFVE9GKEVuY29kZWRWYWx1ZURlc2NyaXB0b3IsIGFzQml0
cy50YWcpKSwgcmVzdWx0VGFnR1BSKTsKQEAgLTg4OCw4ICs4ODQsMTAgQEAgSklUQ29tcGlsZXI6
OkNhbGwgSklUQ29kZUdlbmVyYXRvcjo6Y2FjaAogCiB2b2lkIEpJVENvZGVHZW5lcmF0b3I6OmNh
Y2hlZFB1dEJ5SWQoR1BSUmVnIGJhc2VQYXlsb2FkR1BSLCBHUFJSZWcgdmFsdWVUYWdHUFIsIEdQ
UlJlZyB2YWx1ZVBheWxvYWRHUFIsIE5vZGVJbmRleCB2YWx1ZUluZGV4LCBHUFJSZWcgc2NyYXRj
aEdQUiwgdW5zaWduZWQgaWRlbnRpZmllck51bWJlciwgUHV0S2luZCBwdXRLaW5kLCBKSVRDb21w
aWxlcjo6SnVtcCBzbG93UGF0aFRhcmdldCkKIHsKKyAgICBtX2ppdC5iZWdpblVuaW50ZXJydXB0
ZWRTZXF1ZW5jZSgpOwogICAgIEpJVENvbXBpbGVyOjpEYXRhTGFiZWxQdHIgc3RydWN0dXJlVG9D
b21wYXJlOwogICAgIEpJVENvbXBpbGVyOjpKdW1wIHN0cnVjdHVyZUNoZWNrID0gbV9qaXQuYnJh
bmNoUHRyV2l0aFBhdGNoKEpJVENvbXBpbGVyOjpOb3RFcXVhbCwgSklUQ29tcGlsZXI6OkFkZHJl
c3MoYmFzZVBheWxvYWRHUFIsIEpTQ2VsbDo6c3RydWN0dXJlT2Zmc2V0KCkpLCBzdHJ1Y3R1cmVU
b0NvbXBhcmUsIEpJVENvbXBpbGVyOjpUcnVzdGVkSW1tUHRyKHJlaW50ZXJwcmV0X2Nhc3Q8dm9p
ZCo+KC0xKSkpOworICAgIG1faml0LmVuZFVuaW50ZXJydXB0ZWRTZXF1ZW5jZSgpOwogCiAgICAg
d3JpdGVCYXJyaWVyKGJhc2VQYXlsb2FkR1BSLCB2YWx1ZVRhZ0dQUiwgdmFsdWVJbmRleCwgV3Jp
dGVCYXJyaWVyRm9yUHJvcGVydHlBY2Nlc3MsIHNjcmF0Y2hHUFIpOwogCkluZGV4OiBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvZGZnL0RGR0pJVENvZGVHZW5lcmF0b3I2NC5jcHAKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdKSVRDb2RlR2VuZXJhdG9yNjQuY3BwCShy
ZXZpc2lvbiA5OTg5NSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHSklUQ29kZUdl
bmVyYXRvcjY0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDI2LDExICs0MjYsNyBAQCB2b2lkIEpJ
VENvZGVHZW5lcmF0b3I6Om5vblNwZWN1bGF0aXZlVmFsCiAgICAgICAgIEpJVENvbXBpbGVyOjpK
dW1wIHRydW5jYXRlZFRvSW50ZWdlciA9IG1faml0LmJyYW5jaFRydW5jYXRlRG91YmxlVG9JbnQz
MihmcHIsIGdwciwgSklUQ29tcGlsZXI6OkJyYW5jaElmVHJ1bmNhdGVTdWNjZXNzZnVsKTsKICAg
ICAgICAgCiAgICAgICAgIHNpbGVudFNwaWxsQWxsUmVnaXN0ZXJzKGdwcik7Ci0gICAgICAgIAot
ICAgICAgICBtX2ppdC5tb3ZlRG91YmxlKGZwciwgRlBSSW5mbzo6YXJndW1lbnRGUFIwKTsKLSAg
ICAgICAgYXBwZW5kQ2FsbFdpdGhFeGNlcHRpb25DaGVjayh0b0ludDMyKTsKLSAgICAgICAgbV9q
aXQuemVyb0V4dGVuZDMyVG9QdHIoR1BSSW5mbzo6cmV0dXJuVmFsdWVHUFIsIGdwcik7Ci0gICAg
ICAgIAorICAgICAgICBjYWxsT3BlcmF0aW9uKHRvSW50MzIsIGdwciwgZnByKTsKICAgICAgICAg
c2lsZW50RmlsbEFsbFJlZ2lzdGVycyhncHIpOwogICAgICAgICAKICAgICAgICAgdHJ1bmNhdGVk
VG9JbnRlZ2VyLmxpbmsoJm1faml0KTsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcv
REZHSklUQ29kZUdlbmVyYXRvci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9kZmcvREZHSklUQ29kZUdlbmVyYXRvci5oCShyZXZpc2lvbiA5OTg5NSkKKysrIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9kZmcvREZHSklUQ29kZUdlbmVyYXRvci5oCSh3b3JraW5nIGNvcHkpCkBA
IC01OTIsNyArNTkyLDYgQEAgcHJvdGVjdGVkOgogICAgICAgICAgICAgbV9qaXQuc3RvcmVQdHIo
cmVnLCBKSVRDb21waWxlcjo6YWRkcmVzc0ZvcihzcGlsbE1lKSk7CiAgICAgICAgICAgICBpbmZv
LnNwaWxsKChEYXRhRm9ybWF0KShzcGlsbEZvcm1hdCB8IERhdGFGb3JtYXRKUykpOwogICAgICAg
ICAgICAgcmV0dXJuOwotICAgICAgICB9CiAjZWxpZiBVU0UoSlNWQUxVRTMyXzY0KQogICAgICAg
ICBjYXNlIERhdGFGb3JtYXREb3VibGU6CiAgICAgICAgIGNhc2UgRGF0YUZvcm1hdEpTRG91Ymxl
OiB7CkBAIC02MjEsOCArNjIwLDggQEAgcHJvdGVjdGVkOgogICAgICAgICAgICAgfQogICAgICAg
ICAgICAgaW5mby5zcGlsbCgoRGF0YUZvcm1hdCkoc3BpbGxGb3JtYXQgfCBEYXRhRm9ybWF0SlMp
KTsKICAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgfQogI2VuZGlmCisgICAgICAgIH0KICAg
ICB9CiAgICAgCiAgICAgYm9vbCBpc1N0cmljdEludDMyKE5vZGVJbmRleCk7CkBAIC05NzIsNyAr
OTcxLDcgQEAgcHJvdGVjdGVkOgogICAgIC8vIE9uIFg4NiB3ZSB1c2UgY2RlY2wgY2FsbGluZyBj
b252ZW50aW9ucywgd2hpY2ggcGFzcyBhbGwgYXJndW1lbnRzIG9uIHRoZQogICAgIC8vIHN0YWNr
LiBPbiBvdGhlciBhcmNoaXRlY3R1cmVzIHdlIG1heSBuZWVkIHRvIHNvcnQgdmFsdWVzIGludG8g
dGhlCiAgICAgLy8gY29ycmVjdCByZWdpc3RlcnMuCi0jaWYgQ1BVKFg4NikKKyNpZiAhTlVNQkVS
X09GX0FSR1VNRU5UX1JFR0lTVEVSUwogICAgIHVuc2lnbmVkIG1fY2FsbEFyZ3VtZW50SW5kZXg7
CiAgICAgdm9pZCByZXNldENhbGxBcmd1bWVudHMoKSB7IG1fY2FsbEFyZ3VtZW50SW5kZXggPSAw
OyB9CiAKQEAgLTExMjgsNyArMTEyNywxMCBAQCBwcm90ZWN0ZWQ6CiAgICAgICAgIGFkZENhbGxB
cmd1bWVudChhcmc0KTsKICAgICAgICAgYWRkQ2FsbEFyZ3VtZW50KGFyZzUpOwogICAgIH0KLSNl
bHNlCisjZW5kaWYgLy8gIU5VTUJFUl9PRl9BUkdVTUVOVF9SRUdJU1RFUlMKKyAgICAvLyBUaGVz
ZSBtZXRob2RzIGFyZSBzdWl0YWJsZSBmb3IgYW55IGNhbGxpbmcgY29udmVudGlvbiB0aGF0IHBy
b3ZpZGVzIGZvcgorICAgIC8vIGF0IGxlYXN0IDQgYXJndW1lbnQgcmVnaXN0ZXJzLCBlLmcuIFg4
Nl82NCwgQVJNdjcuCisjaWYgTlVNQkVSX09GX0FSR1VNRU5UX1JFR0lTVEVSUyA+PSA0CiAgICAg
dGVtcGxhdGU8R1BSUmVnIGRlc3RBLCBHUFJSZWcgZGVzdEI+CiAgICAgdm9pZCBzZXR1cFR3b1N0
dWJBcmdzKEdQUlJlZyBzcmNBLCBHUFJSZWcgc3JjQikKICAgICB7CkBAIC0xMTU3LDYgKzExNTks
NyBAQCBwcm90ZWN0ZWQ6CiAgICAgICAgIH0gZWxzZQogICAgICAgICAgICAgbV9qaXQuc3dhcChk
ZXN0QSwgZGVzdEIpOwogICAgIH0KKyNpZiBDUFUoWDg2XzY0KQogICAgIHRlbXBsYXRlPEZQUlJl
ZyBkZXN0QSwgRlBSUmVnIGRlc3RCPgogICAgIHZvaWQgc2V0dXBUd29TdHViQXJncyhGUFJSZWcg
c3JjQSwgRlBSUmVnIHNyY0IpCiAgICAgewpAQCAtMTIwMyw2ICsxMjA2LDcgQEAgcHJvdGVjdGVk
OgogICAgICAgICBtX2ppdC5tb3ZlRG91YmxlKGRlc3RCLCBkZXN0QSk7CiAgICAgICAgIG1faml0
Lm1vdmVEb3VibGUodGVtcCwgZGVzdEIpOwogICAgIH0KKyNlbmRpZgogICAgIHZvaWQgc2V0dXBT
dHViQXJndW1lbnRzKEdQUlJlZyBhcmcxLCBHUFJSZWcgYXJnMikKICAgICB7CiAgICAgICAgIHNl
dHVwVHdvU3R1YkFyZ3M8R1BSSW5mbzo6YXJndW1lbnRHUFIxLCBHUFJJbmZvOjphcmd1bWVudEdQ
UjI+KGFyZzEsIGFyZzIpOwpAQCAtMTI1OSw2ICsxMjYzLDcgQEAgcHJvdGVjdGVkOgogICAgICAg
ICAgICAgbV9qaXQuc3dhcChHUFJJbmZvOjphcmd1bWVudEdQUjIsIEdQUkluZm86OmFyZ3VtZW50
R1BSMyk7CiAgICAgfQogCisjaWYgQ1BVKFg4Nl82NCkKICAgICBBTFdBWVNfSU5MSU5FIHZvaWQg
c2V0dXBBcmd1bWVudHMoRlBSUmVnIGFyZzEpCiAgICAgewogICAgICAgICBtX2ppdC5tb3ZlRG91
YmxlKGFyZzEsIEZQUkluZm86OmFyZ3VtZW50RlBSMCk7CkBAIC0xMjY4LDYgKzEyNzMsMTggQEAg
cHJvdGVjdGVkOgogICAgIHsKICAgICAgICAgc2V0dXBUd29TdHViQXJnczxGUFJJbmZvOjphcmd1
bWVudEZQUjAsIEZQUkluZm86OmFyZ3VtZW50RlBSMT4oYXJnMSwgYXJnMik7CiAgICAgfQorI2Vs
c2UKKyAgICBBTFdBWVNfSU5MSU5FIHZvaWQgc2V0dXBBcmd1bWVudHMoRlBSUmVnIGFyZzEpCisg
ICAgeworICAgICAgICBtX2ppdC5hc3NlbWJsZXIoKS52bW92KEdQUkluZm86OmFyZ3VtZW50R1BS
MCwgR1BSSW5mbzo6YXJndW1lbnRHUFIxLCBhcmcxKTsKKyAgICB9CisKKyAgICBBTFdBWVNfSU5M
SU5FIHZvaWQgc2V0dXBBcmd1bWVudHMoRlBSUmVnIGFyZzEsIEZQUlJlZyBhcmcyKQorICAgIHsK
KyAgICAgICAgbV9qaXQuYXNzZW1ibGVyKCkudm1vdihHUFJJbmZvOjphcmd1bWVudEdQUjAsIEdQ
UkluZm86OmFyZ3VtZW50R1BSMSwgYXJnMSk7CisgICAgICAgIG1faml0LmFzc2VtYmxlcigpLnZt
b3YoR1BSSW5mbzo6YXJndW1lbnRHUFIyLCBHUFJJbmZvOjphcmd1bWVudEdQUjMsIGFyZzIpOwor
ICAgIH0KKyNlbmRpZgogCiAgICAgQUxXQVlTX0lOTElORSB2b2lkIHNldHVwQXJndW1lbnRzRXhl
Y1N0YXRlKCkKICAgICB7CkBAIC0xMzI2LDEzICsxMzQzLDYzIEBAIHByb3RlY3RlZDoKICAgICAg
ICAgbV9qaXQubW92ZShHUFJJbmZvOjpjYWxsRnJhbWVSZWdpc3RlciwgR1BSSW5mbzo6YXJndW1l
bnRHUFIwKTsKICAgICB9CiAKKyAgICBBTFdBWVNfSU5MSU5FIHZvaWQgc2V0dXBBcmd1bWVudHNX
aXRoRXhlY1N0YXRlKEdQUlJlZyBhcmcxLCBHUFJSZWcgYXJnMiwgVHJ1c3RlZEltbTMyIGFyZzMp
CisgICAgeworICAgICAgICBzZXR1cFN0dWJBcmd1bWVudHMoYXJnMSwgYXJnMik7CisgICAgICAg
IG1faml0Lm1vdmUoYXJnMywgR1BSSW5mbzo6YXJndW1lbnRHUFIzKTsKKyAgICAgICAgbV9qaXQu
bW92ZShHUFJJbmZvOjpjYWxsRnJhbWVSZWdpc3RlciwgR1BSSW5mbzo6YXJndW1lbnRHUFIwKTsK
KyAgICB9CisKICAgICBBTFdBWVNfSU5MSU5FIHZvaWQgc2V0dXBBcmd1bWVudHNXaXRoRXhlY1N0
YXRlKEdQUlJlZyBhcmcxLCBHUFJSZWcgYXJnMiwgVHJ1c3RlZEltbVB0ciBhcmczKQogICAgIHsK
ICAgICAgICAgc2V0dXBTdHViQXJndW1lbnRzKGFyZzEsIGFyZzIpOwogICAgICAgICBtX2ppdC5t
b3ZlKGFyZzMsIEdQUkluZm86OmFyZ3VtZW50R1BSMyk7CiAgICAgICAgIG1faml0Lm1vdmUoR1BS
SW5mbzo6Y2FsbEZyYW1lUmVnaXN0ZXIsIEdQUkluZm86OmFyZ3VtZW50R1BSMCk7CiAgICAgfQot
I2VuZGlmCisKKyAgICBBTFdBWVNfSU5MSU5FIHZvaWQgc2V0dXBBcmd1bWVudHNXaXRoRXhlY1N0
YXRlKFRydXN0ZWRJbW0zMiBhcmcxLCBUcnVzdGVkSW1tMzIgYXJnMiwgR1BSUmVnIGFyZzMpCisg
ICAgeworICAgICAgICBtX2ppdC5tb3ZlKGFyZzEsIEdQUkluZm86OmFyZ3VtZW50R1BSMSk7Cisg
ICAgICAgIG1faml0Lm1vdmUoYXJnMiwgR1BSSW5mbzo6YXJndW1lbnRHUFIyKTsKKyAgICAgICAg
bV9qaXQubW92ZShhcmczLCBHUFJJbmZvOjphcmd1bWVudEdQUjMpOworICAgICAgICBtX2ppdC5t
b3ZlKEdQUkluZm86OmNhbGxGcmFtZVJlZ2lzdGVyLCBHUFJJbmZvOjphcmd1bWVudEdQUjApOwor
ICAgIH0KKworI2VuZGlmIC8vIE5VTUJFUl9PRl9BUkdVTUVOVF9SRUdJU1RFUlMgPj0gNAorICAg
IC8vIFRoZXNlIG1ldGhvZHMgYXJlIHN1aXRhYmxlIGZvciBhbnkgY2FsbGluZyBjb252ZW50aW9u
IHRoYXQgcHJvdmlkZXMgZm9yCisgICAgLy8gZXhhY3RseSA0IGFyZ3VtZW50IHJlZ2lzdGVycywg
ZS5nLiBBUk12Ny4KKyNpZiBOVU1CRVJfT0ZfQVJHVU1FTlRfUkVHSVNURVJTID09IDQKKyAgICBB
TFdBWVNfSU5MSU5FIHZvaWQgc2V0dXBBcmd1bWVudHNXaXRoRXhlY1N0YXRlKEdQUlJlZyBhcmcx
LCBHUFJSZWcgYXJnMiwgR1BSUmVnIGFyZzMsIEdQUlJlZyBhcmc0KQorICAgIHsKKyAgICAgICAg
bV9qaXQucG9rZShhcmc0KTsKKyAgICAgICAgc2V0dXBBcmd1bWVudHNXaXRoRXhlY1N0YXRlKGFy
ZzEsIGFyZzIsIGFyZzMpOworICAgIH0KKworICAgIEFMV0FZU19JTkxJTkUgdm9pZCBzZXR1cEFy
Z3VtZW50c1dpdGhFeGVjU3RhdGUoR1BSUmVnIGFyZzEsIEdQUlJlZyBhcmcyLCBUcnVzdGVkSW1t
MzIgYXJnMywgVHJ1c3RlZEltbTMyIGFyZzQpCisgICAgeworICAgICAgICBtX2ppdC5wb2tlKGFy
ZzQpOworICAgICAgICBzZXR1cEFyZ3VtZW50c1dpdGhFeGVjU3RhdGUoYXJnMSwgYXJnMiwgYXJn
Myk7CisgICAgfQorCisgICAgQUxXQVlTX0lOTElORSB2b2lkIHNldHVwQXJndW1lbnRzV2l0aEV4
ZWNTdGF0ZShUcnVzdGVkSW1tMzIgYXJnMSwgVHJ1c3RlZEltbTMyIGFyZzIsIEdQUlJlZyBhcmcz
LCBHUFJSZWcgYXJnNCkKKyAgICB7CisgICAgICAgIG1faml0LnBva2UoYXJnNCk7CisgICAgICAg
IHNldHVwQXJndW1lbnRzV2l0aEV4ZWNTdGF0ZShhcmcxLCBhcmcyLCBhcmczKTsKKyAgICB9CisK
KyAgICBBTFdBWVNfSU5MSU5FIHZvaWQgc2V0dXBBcmd1bWVudHNXaXRoRXhlY1N0YXRlKEdQUlJl
ZyBhcmcxLCBHUFJSZWcgYXJnMiwgR1BSUmVnIGFyZzMsIFRydXN0ZWRJbW1QdHIgYXJnNCkKKyAg
ICB7CisgICAgICAgIG1faml0LnBva2UoYXJnNCk7CisgICAgICAgIHNldHVwQXJndW1lbnRzV2l0
aEV4ZWNTdGF0ZShhcmcxLCBhcmcyLCBhcmczKTsKKyAgICB9CisKKyAgICBBTFdBWVNfSU5MSU5F
IHZvaWQgc2V0dXBBcmd1bWVudHNXaXRoRXhlY1N0YXRlKEdQUlJlZyBhcmcxLCBHUFJSZWcgYXJn
MiwgR1BSUmVnIGFyZzMsIEdQUlJlZyBhcmc0LCBHUFJSZWcgYXJnNSkKKyAgICB7CisgICAgICAg
IG1faml0LnBva2UoYXJnNSwgMSk7CisgICAgICAgIG1faml0LnBva2UoYXJnNCk7CisgICAgICAg
IHNldHVwQXJndW1lbnRzV2l0aEV4ZWNTdGF0ZShhcmcxLCBhcmcyLCBhcmczKTsKKyAgICB9Cisj
ZW5kaWYgLy8gTlVNQkVSX09GX0FSR1VNRU5UX1JFR0lTVEVSUyA9PSA0CiAKICAgICAvLyBUaGVz
ZSBtZXRob2RzIGFkZCBjYWxscyB0byBDKysgaGVscGVyIGZ1bmN0aW9ucy4KICAgICAvLyBUaGVz
ZSBtZXRob2RzIGFyZSBicm9hZGx5IHZhbHVlIHJlcHJlc2VudGF0aW9uIHNwZWNpZmljIChpLmUu
CkBAIC0xNjg3LDYgKzE3NTQsMTkgQEAgcHJvdGVjdGVkOgogICAgICAgICBtX2ppdC5sb2FkRG91
YmxlKEpJVENvbXBpbGVyOjpzdGFja1BvaW50ZXJSZWdpc3RlciwgcmVzdWx0KTsKICAgICAgICAg
cmV0dXJuIGNhbGw7CiAgICAgfQorI2VsaWYgQ1BVKEFSTSkKKyAgICBKSVRDb21waWxlcjo6Q2Fs
bCBhcHBlbmRDYWxsV2l0aEV4Y2VwdGlvbkNoZWNrU2V0UmVzdWx0KGNvbnN0IEZ1bmN0aW9uUHRy
JiBmdW5jdGlvbiwgRlBSUmVnIHJlc3VsdCkKKyAgICB7CisgICAgICAgIEpJVENvbXBpbGVyOjpD
YWxsIGNhbGwgPSBhcHBlbmRDYWxsV2l0aEV4Y2VwdGlvbkNoZWNrKGZ1bmN0aW9uKTsKKyAgICAg
ICAgbV9qaXQuYXNzZW1ibGVyKCkudm1vdihyZXN1bHQsIEdQUkluZm86OnJldHVyblZhbHVlR1BS
LCBHUFJJbmZvOjpyZXR1cm5WYWx1ZUdQUjIpOworICAgICAgICByZXR1cm4gY2FsbDsKKyAgICB9
CisgICAgSklUQ29tcGlsZXI6OkNhbGwgYXBwZW5kQ2FsbFNldFJlc3VsdChjb25zdCBGdW5jdGlv
blB0ciYgZnVuY3Rpb24sIEZQUlJlZyByZXN1bHQpCisgICAgeworICAgICAgICBKSVRDb21waWxl
cjo6Q2FsbCBjYWxsID0gbV9qaXQuYXBwZW5kQ2FsbChmdW5jdGlvbik7CisgICAgICAgIG1faml0
LmFzc2VtYmxlcigpLnZtb3YocmVzdWx0LCBHUFJJbmZvOjpyZXR1cm5WYWx1ZUdQUiwgR1BSSW5m
bzo6cmV0dXJuVmFsdWVHUFIyKTsKKyAgICAgICAgcmV0dXJuIGNhbGw7CisgICAgfQogI2Vsc2UK
ICAgICBKSVRDb21waWxlcjo6Q2FsbCBhcHBlbmRDYWxsV2l0aEV4Y2VwdGlvbkNoZWNrU2V0UmVz
dWx0KGNvbnN0IEZ1bmN0aW9uUHRyJiBmdW5jdGlvbiwgRlBSUmVnIHJlc3VsdCkKICAgICB7Cklu
ZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0pJVENvbXBpbGVyLmNwcAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0pJVENvbXBpbGVyLmNwcAkocmV2
aXNpb24gOTk4OTUpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0pJVENvbXBpbGVy
LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDYsNyArNDYsOSBAQCB2b2lkIEpJVENvbXBpbGVyOjps
aW5rT1NSRXhpdHMoKQogICAgICAgICBPU1JFeGl0JiBleGl0ID0gY29kZUJsb2NrKCktPm9zckV4
aXQoaSk7CiAgICAgICAgIGV4aXQubV9jaGVjay5pbml0aWFsSnVtcCgpLmxpbmsodGhpcyk7CiAg
ICAgICAgIHN0b3JlMzIoSW1tMzIoaSksICZnbG9iYWxEYXRhKCktPm9zckV4aXRJbmRleCk7Cisg
ICAgICAgIGJlZ2luVW5pbnRlcnJ1cHRlZFNlcXVlbmNlKCk7CiAgICAgICAgIGV4aXQubV9jaGVj
ay5zd2l0Y2hUb0xhdGVKdW1wKGp1bXAoKSk7CisgICAgICAgIGVuZFVuaW50ZXJydXB0ZWRTZXF1
ZW5jZSgpOwogICAgIH0KIH0KIApAQCAtOTgsNyArMTAwLDcgQEAgdm9pZCBKSVRDb21waWxlcjo6
Y29tcGlsZUJvZHkoU3BlY3VsYXRpdgogICAgICAgICAvLyBvZiB0aGUgY2FsbCBvdXQgZnJvbSBK
SVQgY29kZSB0aGF0IHRocmV3IHRoZSBleGNlcHRpb247IHRoaXMgaXMgc3RpbGwKICAgICAgICAg
Ly8gYXZhaWxhYmxlIG9uIHRoZSBzdGFjaywganVzdCBiZWxvdyB0aGUgc3RhY2sgcG9pbnRlciEK
ICAgICAgICAgbW92ZShHUFJJbmZvOjpjYWxsRnJhbWVSZWdpc3RlciwgR1BSSW5mbzo6YXJndW1l
bnRHUFIwKTsKLSAgICAgICAgcGVlayhHUFJJbmZvOjphcmd1bWVudEdQUjEsIC0xKTsKKyAgICAg
ICAgZ2V0UENBZnRlckNhbGwoR1BSSW5mbzo6YXJndW1lbnRHUFIxKTsKICAgICAgICAgbV9jYWxs
cy5hcHBlbmQoQ2FsbExpbmtSZWNvcmQoY2FsbCgpLCBsb29rdXBFeGNlcHRpb25IYW5kbGVyKSk7
CiAgICAgICAgIC8vIGxvb2t1cEV4Y2VwdGlvbkhhbmRsZXIgbGVhdmVzIHRoZSBoYW5kbGVyIENh
bGxGcmFtZSogaW4gdGhlIHJldHVyblZhbHVlR1BSLAogICAgICAgICAvLyBhbmQgdGhlIGFkZHJl
c3Mgb2YgdGhlIGhhbmRsZXIgaW4gcmV0dXJuVmFsdWVHUFIyLgpJbmRleDogU291cmNlL0phdmFT
Y3JpcHRDb3JlL2RmZy9ERkdPU1JFeGl0Q29tcGlsZXIuY3BwCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHT1NSRXhpdENvbXBpbGVyLmNwcAkocmV2aXNpb24gOTk4
OTUpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR09TUkV4aXRDb21waWxlci5jcHAJ
KHdvcmtpbmcgY29weSkKQEAgLTY0LDcgKzY0LDcgQEAgdm9pZCBjb21waWxlT1NSRXhpdChFeGVj
U3RhdGUqIGV4ZWMpCiAgICAgCiAgICAgewogICAgICAgICBSZXBhdGNoQnVmZmVyIHJlcGF0Y2hC
dWZmZXIoY29kZUJsb2NrKTsKLSAgICAgICAgcmVwYXRjaEJ1ZmZlci5yZWxpbmsoZXhpdC5tX2No
ZWNrLmNvZGVMb2NhdGlvbkZvclJlcGF0Y2goY29kZUJsb2NrKSwgQ29kZUxvY2F0aW9uTGFiZWwo
ZXhpdC5tX2NvZGUuY29kZSgpLmV4ZWN1dGFibGVBZGRyZXNzKCkpKTsKKyAgICAgICAgcmVwYXRj
aEJ1ZmZlci5yZWxpbmsoZXhpdC5tX2NoZWNrLmNvZGVMb2NhdGlvbkZvclJlcGF0Y2goY29kZUJs
b2NrKSwgQ29kZUxvY2F0aW9uTGFiZWwoZXhpdC5tX2NvZGUuY29kZSgpKSk7CiAgICAgfQogICAg
IAogICAgIGdsb2JhbERhdGEtPm9zckV4aXRKdW1wRGVzdGluYXRpb24gPSBleGl0Lm1fY29kZS5j
b2RlKCkuZXhlY3V0YWJsZUFkZHJlc3MoKTsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9k
ZmcvREZHT3BlcmF0aW9ucy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3Jl
L2RmZy9ERkdPcGVyYXRpb25zLmNwcAkocmV2aXNpb24gOTk4OTUpCisrKyBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvZGZnL0RGR09wZXJhdGlvbnMuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC02NCw2ICs2
NCw0NyBAQAogI2RlZmluZSBGVU5DVElPTl9XUkFQUEVSX1dJVEhfUkVUVVJOX0FERFJFU1NfRUNJ
KGZ1bmN0aW9uKSAgRlVOQ1RJT05fV1JBUFBFUl9XSVRIX1JFVFVSTl9BRERSRVNTKGZ1bmN0aW9u
LCAxNikKICNkZWZpbmUgRlVOQ1RJT05fV1JBUFBFUl9XSVRIX1JFVFVSTl9BRERSRVNTX0VKQ0ko
ZnVuY3Rpb24pIEZVTkNUSU9OX1dSQVBQRVJfV0lUSF9SRVRVUk5fQUREUkVTUyhmdW5jdGlvbiwg
MjQpCiAKKyNlbGlmIENPTVBJTEVSKEdDQykgJiYgQ1BVKEFSTV9USFVNQjIpCisKKyNkZWZpbmUg
RlVOQ1RJT05fV1JBUFBFUl9XSVRIX1JFVFVSTl9BRERSRVNTX0UoZnVuY3Rpb24pIFwKKyAgICBh
c20gKCBcCisgICAgIi50ZXh0IiAiXG4iIFwKKyAgICAiLmFsaWduIDIiICJcbiIgXAorICAgICIu
Z2xvYmwgIiBTWU1CT0xfU1RSSU5HKGZ1bmN0aW9uKSAiXG4iIFwKKyAgICBISURFX1NZTUJPTChm
dW5jdGlvbikgIlxuIiBcCisgICAgIi50aHVtYiIgIlxuIiBcCisgICAgIi50aHVtYl9mdW5jICIg
VEhVTUJfRlVOQ19QQVJBTShmdW5jdGlvbikgIlxuIiBcCisgICAgU1lNQk9MX1NUUklORyhmdW5j
dGlvbikgIjoiICJcbiIgXAorICAgICAgICAiY3B5IGEyLCBsciIgIlxuIiBcCisgICAgICAgICJi
ICIgU1lNQk9MX1NUUklOR19SRUxPQ0FUSU9OKGZ1bmN0aW9uKSAiV2l0aFJldHVybkFkZHJlc3Mi
ICJcbiIgXAorICAgICk7CisKKyNkZWZpbmUgRlVOQ1RJT05fV1JBUFBFUl9XSVRIX1JFVFVSTl9B
RERSRVNTX0VDSShmdW5jdGlvbikgXAorICAgIGFzbSAoIFwKKyAgICAiLnRleHQiICJcbiIgXAor
ICAgICIuYWxpZ24gMiIgIlxuIiBcCisgICAgIi5nbG9ibCAiIFNZTUJPTF9TVFJJTkcoZnVuY3Rp
b24pICJcbiIgXAorICAgIEhJREVfU1lNQk9MKGZ1bmN0aW9uKSAiXG4iIFwKKyAgICAiLnRodW1i
IiAiXG4iIFwKKyAgICAiLnRodW1iX2Z1bmMgIiBUSFVNQl9GVU5DX1BBUkFNKGZ1bmN0aW9uKSAi
XG4iIFwKKyAgICBTWU1CT0xfU1RSSU5HKGZ1bmN0aW9uKSAiOiIgIlxuIiBcCisgICAgICAgICJj
cHkgYTQsIGxyIiAiXG4iIFwKKyAgICAgICAgImIgIiBTWU1CT0xfU1RSSU5HX1JFTE9DQVRJT04o
ZnVuY3Rpb24pICJXaXRoUmV0dXJuQWRkcmVzcyIgIlxuIiBcCisgICAgKTsKKworI2RlZmluZSBG
VU5DVElPTl9XUkFQUEVSX1dJVEhfUkVUVVJOX0FERFJFU1NfRUpDSShmdW5jdGlvbikgXAorICAg
IGFzbSAoIFwKKyAgICAiLnRleHQiICJcbiIgXAorICAgICIuYWxpZ24gMiIgIlxuIiBcCisgICAg
Ii5nbG9ibCAiIFNZTUJPTF9TVFJJTkcoZnVuY3Rpb24pICJcbiIgXAorICAgIEhJREVfU1lNQk9M
KGZ1bmN0aW9uKSAiXG4iIFwKKyAgICAiLnRodW1iIiAiXG4iIFwKKyAgICAiLnRodW1iX2Z1bmMg
IiBUSFVNQl9GVU5DX1BBUkFNKGZ1bmN0aW9uKSAiXG4iIFwKKyAgICBTWU1CT0xfU1RSSU5HKGZ1
bmN0aW9uKSAiOiIgIlxuIiBcCisgICAgICAgICJzdHIgbHIsIFtzcCwgIzRdIiAiXG4iIFwKKyAg
ICAgICAgImIgIiBTWU1CT0xfU1RSSU5HX1JFTE9DQVRJT04oZnVuY3Rpb24pICJXaXRoUmV0dXJu
QWRkcmVzcyIgIlxuIiBcCisgICAgKTsKKwogI2VuZGlmCiAKICNkZWZpbmUgUF9GVU5DVElPTl9X
UkFQUEVSX1dJVEhfUkVUVVJOX0FERFJFU1NfRShmdW5jdGlvbikgXApAQCAtNTIyLDYgKzU2Mywx
OSBAQCBTWU1CT0xfU1RSSU5HKGdldEhvc3RDYWxsUmV0dXJuVmFsdWUpICI6CiAgICAgIm1vdiAl
ZWRpLCA0KCVlc3ApXG4iCiAgICAgImptcCAiIFNZTUJPTF9TVFJJTkdfUkVMT0NBVElPTihnZXRI
b3N0Q2FsbFJldHVyblZhbHVlV2l0aEV4ZWNTdGF0ZSkgIlxuIgogKTsKKyNlbGlmIENQVShBUk1f
VEhVTUIyKQorYXNtICgKKyIudGV4dCIgIlxuIgorIi5hbGlnbiAyIiAiXG4iCisiLmdsb2JsICIg
U1lNQk9MX1NUUklORyhnZXRIb3N0Q2FsbFJldHVyblZhbHVlKSAiXG4iCitISURFX1NZTUJPTChn
ZXRIb3N0Q2FsbFJldHVyblZhbHVlKSAiXG4iCisiLnRodW1iIiAiXG4iCisiLnRodW1iX2Z1bmMg
IiBUSFVNQl9GVU5DX1BBUkFNKGdldEhvc3RDYWxsUmV0dXJuVmFsdWUpICJcbiIKK1NZTUJPTF9T
VFJJTkcoZ2V0SG9zdENhbGxSZXR1cm5WYWx1ZSkgIjoiICJcbiIKKyAgICAibGRyIHI1LCBbcjUs
ICMtNDBdIiAiXG4iCisgICAgImNweSByMCwgcjUiICJcbiIKKyAgICAiYiAiIFNZTUJPTF9TVFJJ
TkdfUkVMT0NBVElPTihnZXRIb3N0Q2FsbFJldHVyblZhbHVlV2l0aEV4ZWNTdGF0ZSkgIlxuIgor
KTsKICNlbmRpZgogCiBFbmNvZGVkSlNWYWx1ZSBERkdfT1BFUkFUSU9OIGdldEhvc3RDYWxsUmV0
dXJuVmFsdWVXaXRoRXhlY1N0YXRlKEV4ZWNTdGF0ZSogZXhlYykKSW5kZXg6IFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQzMl82NC5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVDMyXzY0LmNwcAkocmV2
aXNpb24gOTk4OTUpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZl
SklUMzJfNjQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zNSw3ICszNSw4IEBACiBuYW1lc3BhY2Ug
SlNDIHsgbmFtZXNwYWNlIERGRyB7CiAKIC8vIE9uIFdpbmRvd3Mgd2UgbmVlZCB0byB3cmFwIGZt
b2Q7IG9uIG90aGVyIHBsYXRmb3JtcyB3ZSBjYW4gY2FsbCBpdCBkaXJlY3RseS4KLSNpZiBDQUxM
SU5HX0NPTlZFTlRJT05fSVNfU1REQ0FMTAorLy8gT24gQVJNdjcgd2UgYXNzZXJ0IHRoYXQgYWxs
IGZ1bmN0aW9uIHBvaW50ZXJzIGhhdmUgdG8gbG93IGJpdCBzZXQgKHBvaW50IHRvIHRodW1iIGNv
ZGUpLgorI2lmIENBTExJTkdfQ09OVkVOVElPTl9JU19TVERDQUxMIHx8IENQVShBUk1fVEhVTUIy
KQogc3RhdGljIGRvdWJsZSBERkdfT1BFUkFUSU9OIGZtb2RBc0RGR09wZXJhdGlvbihkb3VibGUg
eCwgZG91YmxlIHkpCiB7CiAgICAgcmV0dXJuIGZtb2QoeCwgeSk7CkluZGV4OiBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklULmNwcAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklULmNwcAkocmV2aXNpb24gOTk4
OTUpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklULmNwcAko
d29ya2luZyBjb3B5KQpAQCAtNjUyLDYgKzY1Miw3IEBAIHN0YXRpYyB2b2lkIGNvbXBpbGVDbGFt
cERvdWJsZVRvQnl0ZShKSVQKICAgICBNYWNyb0Fzc2VtYmxlcjo6SnVtcCB0b29CaWcgPSBqaXQu
YnJhbmNoRG91YmxlKE1hY3JvQXNzZW1ibGVyOjpEb3VibGVHcmVhdGVyVGhhbiwgc291cmNlLCBz
Y3JhdGNoKTsKICAgICAKICAgICBqaXQubG9hZERvdWJsZSgmaGFsZiwgc2NyYXRjaCk7CisgICAg
Ly8gRklYTUU6IFRoaXMgc2hvdWxkIGp1c3QgdXNlIGEgZmxvYXRpbmcgcG9pbnQgcm91bmQhCiAg
ICAgaml0LmFkZERvdWJsZShzb3VyY2UsIHNjcmF0Y2gpOwogICAgIGppdC50cnVuY2F0ZURvdWJs
ZVRvSW50MzIoc2NyYXRjaCwgcmVzdWx0KTsgICAKICAgICBNYWNyb0Fzc2VtYmxlcjo6SnVtcCB0
cnVuY2F0ZWRJbnQgPSBqaXQuanVtcCgpOwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2Rm
Zy9ERkdTcGVjdWxhdGl2ZUpJVC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQuaAkocmV2aXNpb24gOTk4OTUpCisrKyBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklULmgJKHdvcmtpbmcgY29weSkKQEAgLTIy
OCw2ICsyMjgsMTMgQEAgcHJpdmF0ZToKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgbV9q
aXQuY29kZUJsb2NrKCktPmFwcGVuZE9TUkV4aXQoT1NSRXhpdChqc1ZhbHVlU291cmNlLCBtX2pp
dC52YWx1ZVByb2ZpbGVGb3Iobm9kZUluZGV4KSwganVtcFRvRmFpbCwgdGhpcykpOwogICAgIH0K
KyAgICAvLyBBZGQgYSBzZXQgb2Ygc3BlY3VsYXRpb24gY2hlY2tzIHdpdGhvdXQgYWRkaXRpb25h
bCByZWNvdmVyeS4KKyAgICB2b2lkIHNwZWN1bGF0aW9uQ2hlY2soSlNWYWx1ZVNvdXJjZSBqc1Zh
bHVlU291cmNlLCBOb2RlSW5kZXggbm9kZUluZGV4LCBNYWNyb0Fzc2VtYmxlcjo6SnVtcExpc3Qm
IGp1bXBzVG9GYWlsKQorICAgIHsKKyAgICAgICAgVmVjdG9yPE1hY3JvQXNzZW1ibGVyOjpKdW1w
LCAxNj4gSnVtcFZlY3RvciA9IGp1bXBzVG9GYWlsLmp1bXBzKCk7CisgICAgICAgIGZvciAodW5z
aWduZWQgaSA9IDA7IGkgPCBKdW1wVmVjdG9yLnNpemUoKTsgKytpKQorICAgICAgICAgICAgc3Bl
Y3VsYXRpb25DaGVjayhqc1ZhbHVlU291cmNlLCBub2RlSW5kZXgsIEp1bXBWZWN0b3JbaV0pOwor
ICAgIH0KICAgICAvLyBBZGQgYSBzcGVjdWxhdGlvbiBjaGVjayB3aXRoIGFkZGl0aW9uYWwgcmVj
b3ZlcnkuCiAgICAgdm9pZCBzcGVjdWxhdGlvbkNoZWNrKEpTVmFsdWVTb3VyY2UganNWYWx1ZVNv
dXJjZSwgTm9kZUluZGV4IG5vZGVJbmRleCwgTWFjcm9Bc3NlbWJsZXI6Okp1bXAganVtcFRvRmFp
bCwgY29uc3QgU3BlY3VsYXRpb25SZWNvdmVyeSYgcmVjb3ZlcnkpCiAgICAgewo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>114577</attachid>
            <date>2011-11-10 14:42:56 -0800</date>
            <delta_ts>2011-11-10 14:55:35 -0800</delta_ts>
            <desc>Added missing bug link</desc>
            <filename>72061.1.patch</filename>
            <type>text/plain</type>
            <size>23081</size>
            <attacher name="Gavin Barraclough">barraclough</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gOTk4OTYpCisrKyBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsNTUgQEAK
KzIwMTEtMTEtMTAgIEdhdmluIEJhcnJhY2xvdWdoICA8YmFycmFjbG91Z2hAYXBwbGUuY29tPgor
CisgICAgICAgIEFkZCBBUk12NyBzdXBwb3J0IHRvIHRoZSBERkcgSklUCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03MjA2MQorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogZGZnL0RGR0Fzc2VtYmx5SGVscGVy
cy5oOgorICAgICAgICAoSlNDOjpERkc6OkFzc2VtYmx5SGVscGVyczo6cHJlc2VydmVSZXR1cm5B
ZGRyZXNzQWZ0ZXJDYWxsKToKKyAgICAgICAgKEpTQzo6REZHOjpBc3NlbWJseUhlbHBlcnM6OnJl
c3RvcmVSZXR1cm5BZGRyZXNzQmVmb3JlUmV0dXJuKToKKyAgICAgICAgKEpTQzo6REZHOjpBc3Nl
bWJseUhlbHBlcnM6OmVtaXRQdXRJbW1lZGlhdGVUb0NhbGxGcmFtZUhlYWRlcik6CisgICAgICAg
IChKU0M6OkRGRzo6QXNzZW1ibHlIZWxwZXJzOjpib3hEb3VibGUpOgorICAgICAgICAoSlNDOjpE
Rkc6OkFzc2VtYmx5SGVscGVyczo6dW5ib3hEb3VibGUpOgorICAgICAgICAgICAgLSBBZGQgQ1BV
KEFSTSkgY29waWVzIG9mIHRoZXNlIGZ1bmN0aW9ucy4KKyAgICAgICAgKiBkZmcvREZHSklUQ29k
ZUdlbmVyYXRvci5oOgorICAgICAgICAoSlNDOjpERkc6OkpJVENvZGVHZW5lcmF0b3I6OnNwaWxs
KToKKyAgICAgICAgICAgIC0gRml4IG1hdGNoaW5nIG9mICd9JyByZSAjaWYgYmxvY2tzLCBtYWtl
cyBzb21lIHRvb2xzIGhhcHB5LgorICAgICAgICAoSlNDOjpERkc6OkpJVENvZGVHZW5lcmF0b3I6
OnNldHVwQXJndW1lbnRzKToKKyAgICAgICAgKEpTQzo6REZHOjpKSVRDb2RlR2VuZXJhdG9yOjpz
ZXR1cEFyZ3VtZW50c1dpdGhFeGVjU3RhdGUpOgorICAgICAgICAoSlNDOjpERkc6OkpJVENvZGVH
ZW5lcmF0b3I6OmFwcGVuZENhbGxXaXRoRXhjZXB0aW9uQ2hlY2tTZXRSZXN1bHQpOgorICAgICAg
ICAoSlNDOjpERkc6OkpJVENvZGVHZW5lcmF0b3I6OmFwcGVuZENhbGxTZXRSZXN1bHQpOgorICAg
ICAgICAgICAgLSBBZGQgQ1BVKEFSTSkgLyA0IGFyZ3VtZW50IHJlZ2lzdGVyIGNvcGllcyBvZiB0
aGVzZSBmdW5jdGlvbnMuCisgICAgICAgICogZGZnL0RGR0pJVENvZGVHZW5lcmF0b3IzMl82NC5j
cHA6CisgICAgICAgIChKU0M6OkRGRzo6SklUQ29kZUdlbmVyYXRvcjo6bm9uU3BlY3VsYXRpdmVW
YWx1ZVRvSW50MzIpOgorICAgICAgICAgICAgLSBTaG91bGQgdXNlIGNhbGxPcGVyYXRpb24gdG8g
cGxhbnQgYSBjYWxsIHRvIGEgREZHX09QRVJBVElPTi4KKyAgICAgICAgKEpTQzo6REZHOjpKSVRD
b2RlR2VuZXJhdG9yOjpjYWNoZWRHZXRCeUlkKToKKyAgICAgICAgKEpTQzo6REZHOjpKSVRDb2Rl
R2VuZXJhdG9yOjpjYWNoZWRQdXRCeUlkKToKKyAgICAgICAgICAgIC0gVGhlc2UgbWV0aG9kcyBu
ZWVkIHRvIHBsYW50IGEgcmVsaW5rYWJsZSBqdW1wOyB3ZSBjdXJyZW50bHkgZG8gc28KKyAgICAg
ICAgICAgICAgdXNpbmcgYmVnaW5VbmludGVycnVwdGVkU2VxdWVuY2UoKSAvIGVuZFVuaW50ZXJy
dXB0ZWRTZXF1ZW5jZSgpLgorICAgICAgICAqIGRmZy9ERkdKSVRDb2RlR2VuZXJhdG9yNjQuY3Bw
OgorICAgICAgICAoSlNDOjpERkc6OkpJVENvZGVHZW5lcmF0b3I6Om5vblNwZWN1bGF0aXZlVmFs
dWVUb0ludDMyKToKKyAgICAgICAgICAgIC0gU2hvdWxkIHVzZSBjYWxsT3BlcmF0aW9uIHRvIHBs
YW50IGEgY2FsbCB0byBhIERGR19PUEVSQVRJT04uCisgICAgICAgICogZGZnL0RGR0pJVENvbXBp
bGVyLmNwcDoKKyAgICAgICAgKEpTQzo6REZHOjpKSVRDb21waWxlcjo6bGlua09TUkV4aXRzKToK
KyAgICAgICAgICAgIC0gVGhpcyBtZXRob2QgbmVlZHMgdG8gcGxhbnQgYSByZWxpbmthYmxlIGp1
bXA7IHdlIGN1cnJlbnRseSBkbyBzbworICAgICAgICAgICAgICB1c2luZyBiZWdpblVuaW50ZXJy
dXB0ZWRTZXF1ZW5jZSgpIC8gZW5kVW5pbnRlcnJ1cHRlZFNlcXVlbmNlKCkuCisgICAgICAgIChK
U0M6OkRGRzo6SklUQ29tcGlsZXI6OmNvbXBpbGVCb2R5KToKKyAgICAgICAgICAgIC0gQWRkIGFi
c3RyYWN0aW9uIHRvIHJldHJpZXZlIHRoZSBwYyBhZnRlciBhIGNhbGwuCisgICAgICAgICogZGZn
L0RGR09TUkV4aXRDb21waWxlci5jcHA6CisgICAgICAgICAgICAtIEZpeCBhIGJ1ZyAtIENvZGVM
b2NhdGlvbkxhYmVsIG5lZWRzIGEgZGF0YSBhZGRyZXNzIHJhdGhlciB0aGFuIGFuCisgICAgICAg
ICAgICAgIGV4ZWN1dGFibGUgb25lLCBidXQgY2FuIGp1c3QgdGFrZSBhIE1hY3JvQXNzZW1ibGVy
Q29kZVB0ciBpbnN0ZWFkIQorICAgICAgICAqIGRmZy9ERkdPcGVyYXRpb25zLmNwcDoKKyAgICAg
ICAgKiBkZmcvREZHU3BlY3VsYXRpdmVKSVQuY3BwOgorICAgICAgICAoSlNDOjpERkc6OmNvbXBp
bGVDbGFtcERvdWJsZVRvQnl0ZSk6CisgICAgICAgICAgICAtIEFkZCBGSVhNRSBjb21tZW50IHRv
IGNvbWUgYmFjayB0byEgLSBidWcjNzIwNTQuCisgICAgICAgICogZGZnL0RGR1NwZWN1bGF0aXZl
SklULmg6CisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OnNwZWN1bGF0aW9uQ2hl
Y2spOgorICAgICAgICAgICAgLSBBZGQgbWlzc2luZyBtZXRob2QgKG9vb3BzLCByZXF1aXJlZCBi
eSBidWcjNzIwNDcpCisgICAgICAgICogZGZnL0RGR1NwZWN1bGF0aXZlSklUMzJfNjQuY3BwOgor
ICAgICAgICAgICAgLSBOZWVkIHRvIHdyYXAgZm1vZCBvbiBBUk12Ny4KKworCiAyMDExLTExLTEw
ICBHYXZpbiBCYXJyYWNsb3VnaCAgPGJhcnJhY2xvdWdoQGFwcGxlLmNvbT4KIAogICAgICAgICBB
ZGQgQVJNdjcgcmVnaXN0ZXIgaW5mbyBmb3IgdGhlIERGRyBKSVQKSW5kZXg6IFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9kZmcvREZHQXNzZW1ibHlIZWxwZXJzLmgKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L0phdmFTY3JpcHRDb3JlL2RmZy9ERkdBc3NlbWJseUhlbHBlcnMuaAkocmV2aXNpb24gOTk4OTUp
CisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0Fzc2VtYmx5SGVscGVycy5oCSh3b3Jr
aW5nIGNvcHkpCkBAIC03MSw2ICs3MSwzNCBAQCBwdWJsaWM6CiAgICAgICAgIHB1c2goYWRkcmVz
cyk7CiAgICAgfQogCisgICAgdm9pZCBnZXRQQ0FmdGVyQ2FsbChHUFJSZWcgZ3ByKQorICAgIHsK
KyAgICAgICAgICBwZWVrKGdwciwgLTEpOworICAgIH0KKyNlbmRpZiAvLyBDUFUoWDg2XzY0KSB8
fCBDUFUoWDg2KQorCisjaWYgQ1BVKEFSTSkKKyAgICBBTFdBWVNfSU5MSU5FIHZvaWQgcHJlc2Vy
dmVSZXR1cm5BZGRyZXNzQWZ0ZXJDYWxsKFJlZ2lzdGVySUQgcmVnKQorICAgIHsKKyAgICAgICAg
bW92ZShsaW5rUmVnaXN0ZXIsIHJlZyk7CisgICAgfQorCisgICAgQUxXQVlTX0lOTElORSB2b2lk
IHJlc3RvcmVSZXR1cm5BZGRyZXNzQmVmb3JlUmV0dXJuKFJlZ2lzdGVySUQgcmVnKQorICAgIHsK
KyAgICAgICAgbW92ZShyZWcsIGxpbmtSZWdpc3Rlcik7CisgICAgfQorCisgICAgQUxXQVlTX0lO
TElORSB2b2lkIHJlc3RvcmVSZXR1cm5BZGRyZXNzQmVmb3JlUmV0dXJuKEFkZHJlc3MgYWRkcmVz
cykKKyAgICB7CisgICAgICAgIGxvYWRQdHIoYWRkcmVzcywgbGlua1JlZ2lzdGVyKTsKKyAgICB9
CisKKyAgICBBTFdBWVNfSU5MSU5FIHZvaWQgZ2V0UENBZnRlckNhbGwoR1BSUmVnIGdwcikKKyAg
ICB7CisgICAgICAgIG1vdmUoQVJNUmVnaXN0ZXJzOjpsciwgZ3ByKTsKKyAgICB9CisjZW5kaWYK
KwogICAgIHZvaWQgZW1pdEdldEZyb21DYWxsRnJhbWVIZWFkZXJQdHIoUmVnaXN0ZXJGaWxlOjpD
YWxsRnJhbWVIZWFkZXJFbnRyeSBlbnRyeSwgR1BSUmVnIHRvKQogICAgIHsKICAgICAgICAgbG9h
ZFB0cihBZGRyZXNzKEdQUkluZm86OmNhbGxGcmFtZVJlZ2lzdGVyLCBlbnRyeSAqIHNpemVvZihS
ZWdpc3RlcikpLCB0byk7CkBAIC04NCw3ICsxMTIsNiBAQCBwdWJsaWM6CiAgICAgewogICAgICAg
ICBzdG9yZVB0cihUcnVzdGVkSW1tUHRyKHZhbHVlKSwgQWRkcmVzcyhHUFJJbmZvOjpjYWxsRnJh
bWVSZWdpc3RlciwgZW50cnkgKiBzaXplb2YoUmVnaXN0ZXIpKSk7CiAgICAgfQotI2VuZGlmIC8v
IENQVShYODZfNjQpIHx8IENQVShYODYpCiAKICAgICBKdW1wIGJyYW5jaElmTm90Q2VsbChHUFJS
ZWcgcmVnKQogICAgIHsKQEAgLTEzMiw2ICsxNTksNyBAQCBwdWJsaWM6CiAKICNpZm5kZWYgTkRF
QlVHCiAgICAgLy8gQWRkIGEgZGVidWcgY2FsbC4gVGhpcyBjYWxsIGhhcyBubyBlZmZlY3Qgb24g
SklUIGNvZGUgZXhlY3V0aW9uIHN0YXRlLgorI2lmIENQVShYODZfNjQpIHx8IENQVShYODYpCiAg
ICAgdm9pZCBkZWJ1Z0NhbGwoVl9ERkdEZWJ1Z09wZXJhdGlvbl9FUCBmdW5jdGlvbiwgdm9pZCog
YXJndW1lbnQpCiAgICAgewogICAgICAgICBFbmNvZGVkSlNWYWx1ZSogYnVmZmVyID0gc3RhdGlj
X2Nhc3Q8RW5jb2RlZEpTVmFsdWUqPihtX2dsb2JhbERhdGEtPnNjcmF0Y2hCdWZmZXJGb3JTaXpl
KHNpemVvZihFbmNvZGVkSlNWYWx1ZSkgKiAoR1BSSW5mbzo6bnVtYmVyT2ZSZWdpc3RlcnMgKyBG
UFJJbmZvOjpudW1iZXJPZlJlZ2lzdGVycykpKTsKQEAgLTE2MCw2ICsxODgsMTUgQEAgcHVibGlj
OgogICAgICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgR1BSSW5mbzo6bnVtYmVyT2ZSZWdp
c3RlcnM7ICsraSkKICAgICAgICAgICAgIGxvYWRQdHIoYnVmZmVyICsgaSwgR1BSSW5mbzo6dG9S
ZWdpc3RlcihpKSk7CiAgICAgfQorI2Vsc2UKKyAgICB2b2lkIGRlYnVnQ2FsbChWX0RGR0RlYnVn
T3BlcmF0aW9uX0VQIGZ1bmN0aW9uLCB2b2lkKiBhcmd1bWVudCkgTk9fUkVUVVJOX0RVRV9UT19B
U1NFUlQKKyAgICB7CisgICAgICAgIC8vIGRlYnVnQ2FsbCBub3Qgc3VwcG9ydGVkIG9uIHRoaXMg
cGxhdGZvcm0uCisgICAgICAgIFVOVVNFRF9QQVJBTShmdW5jdGlvbik7CisgICAgICAgIFVOVVNF
RF9QQVJBTShhcmd1bWVudCk7CisgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgIH0K
KyNlbmRpZgogI2VuZGlmCiAKICAgICAvLyBUaGVzZSBtZXRob2RzIEpJVCBnZW5lcmF0ZSBkeW5h
bWljLCBkZWJ1Zy1vbmx5IGNoZWNrcyAtIGFraW4gdG8gQVNTRVJUcy4KQEAgLTE5MiwyNCArMjI5
LDM1IEBAIHB1YmxpYzoKICAgICAgICAgbW92ZVB0clRvRG91YmxlKGdwciwgZnByKTsKICAgICAg
ICAgcmV0dXJuIGZwcjsKICAgICB9Ci0jZWxpZiBVU0UoSlNWQUxVRTMyXzY0KQorI2VuZGlmCisK
KyNpZiBVU0UoSlNWQUxVRTMyXzY0KSAmJiBDUFUoWDg2KQogICAgIHZvaWQgYm94RG91YmxlKEZQ
UlJlZyBmcHIsIEdQUlJlZyB0YWdHUFIsIEdQUlJlZyBwYXlsb2FkR1BSKQogICAgIHsKLSNpZiBD
UFUoWDg2KQogICAgICAgICBtb3ZlUGFja2VkVG9JbnQzMihmcHIsIHBheWxvYWRHUFIpOwogICAg
ICAgICByc2hpZnRQYWNrZWQoVHJ1c3RlZEltbTMyKDMyKSwgZnByKTsKICAgICAgICAgbW92ZVBh
Y2tlZFRvSW50MzIoZnByLCB0YWdHUFIpOwotI2VuZGlmCiAgICAgfQogICAgIHZvaWQgdW5ib3hE
b3VibGUoR1BSUmVnIHRhZ0dQUiwgR1BSUmVnIHBheWxvYWRHUFIsIEZQUlJlZyBmcHIsIEZQUlJl
ZyBzY3JhdGNoRlBSKQogICAgIHsKICAgICAgICAgaml0QXNzZXJ0SXNKU0RvdWJsZSh0YWdHUFIp
OwotI2lmIENQVShYODYpCiAgICAgICAgIG1vdmVJbnQzMlRvUGFja2VkKHBheWxvYWRHUFIsIGZw
cik7CiAgICAgICAgIG1vdmVJbnQzMlRvUGFja2VkKHRhZ0dQUiwgc2NyYXRjaEZQUik7CiAgICAg
ICAgIGxzaGlmdFBhY2tlZChUcnVzdGVkSW1tMzIoMzIpLCBzY3JhdGNoRlBSKTsKICAgICAgICAg
b3JQYWNrZWQoc2NyYXRjaEZQUiwgZnByKTsKKyAgICB9CiAjZW5kaWYKKworI2lmIFVTRShKU1ZB
TFVFMzJfNjQpICYmIENQVShBUk0pCisgICAgdm9pZCBib3hEb3VibGUoRlBSUmVnIGZwciwgR1BS
UmVnIHRhZ0dQUiwgR1BSUmVnIHBheWxvYWRHUFIpCisgICAgeworICAgICAgICBtX2Fzc2VtYmxl
ci52bW92KHBheWxvYWRHUFIsIHRhZ0dQUiwgZnByKTsKKyAgICB9CisgICAgdm9pZCB1bmJveERv
dWJsZShHUFJSZWcgdGFnR1BSLCBHUFJSZWcgcGF5bG9hZEdQUiwgRlBSUmVnIGZwciwgRlBSUmVn
IHNjcmF0Y2hGUFIpCisgICAgeworICAgICAgICBqaXRBc3NlcnRJc0pTRG91YmxlKHRhZ0dQUik7
CisgICAgICAgIFVOVVNFRF9QQVJBTShzY3JhdGNoRlBSKTsKKyAgICAgICAgbV9hc3NlbWJsZXIu
dm1vdihmcHIsIHBheWxvYWRHUFIsIHRhZ0dQUik7CiAgICAgfQogI2VuZGlmCiAKSW5kZXg6IFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHSklUQ29kZUdlbmVyYXRvcjMyXzY0LmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0pJVENvZGVHZW5lcmF0b3Iz
Ml82NC5jcHAJKHJldmlzaW9uIDk5ODk1KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9E
RkdKSVRDb2RlR2VuZXJhdG9yMzJfNjQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00MjEsMTMgKzQy
MSw3IEBAIHZvaWQgSklUQ29kZUdlbmVyYXRvcjo6bm9uU3BlY3VsYXRpdmVWYWwKICAgICAgICAg
SklUQ29tcGlsZXI6Okp1bXAgdHJ1bmNhdGVkVG9JbnRlZ2VyID0gbV9qaXQuYnJhbmNoVHJ1bmNh
dGVEb3VibGVUb0ludDMyKGZwciwgZ3ByLCBKSVRDb21waWxlcjo6QnJhbmNoSWZUcnVuY2F0ZVN1
Y2Nlc3NmdWwpOwogCiAgICAgICAgIHNpbGVudFNwaWxsQWxsUmVnaXN0ZXJzKGdwcik7Ci0KLSAg
ICAgICAgbV9qaXQuc3ViUHRyKFRydXN0ZWRJbW0zMihzaXplb2YoZG91YmxlKSksIEpJVENvbXBp
bGVyOjpzdGFja1BvaW50ZXJSZWdpc3Rlcik7Ci0gICAgICAgIG1faml0LnN0b3JlRG91YmxlKGZw
ciwgSklUQ29tcGlsZXI6OnN0YWNrUG9pbnRlclJlZ2lzdGVyKTsKLSAgICAgICAgYXBwZW5kQ2Fs
bFdpdGhFeGNlcHRpb25DaGVjayh0b0ludDMyKTsKLSAgICAgICAgbV9qaXQubW92ZShHUFJJbmZv
OjpyZXR1cm5WYWx1ZUdQUiwgZ3ByKTsKLSAgICAgICAgbV9qaXQuYWRkUHRyKFRydXN0ZWRJbW0z
MihzaXplb2YoZG91YmxlKSksIEpJVENvbXBpbGVyOjpzdGFja1BvaW50ZXJSZWdpc3Rlcik7Ci0K
KyAgICAgICAgY2FsbE9wZXJhdGlvbih0b0ludDMyLCBncHIsIGZwcik7CiAgICAgICAgIHNpbGVu
dEZpbGxBbGxSZWdpc3RlcnMoZ3ByKTsKIAogICAgICAgICB0cnVuY2F0ZWRUb0ludGVnZXIubGlu
aygmbV9qaXQpOwpAQCAtODU3LDggKzg1MSwxMCBAQCBKSVRDb21waWxlcjo6Q2FsbCBKSVRDb2Rl
R2VuZXJhdG9yOjpjYWNoCiB7CiAgICAgQVNTRVJUKG5vZGVUeXBlID09IEdldEJ5SWQgfHwgbm9k
ZVR5cGUgPT0gR2V0TWV0aG9kKTsKIAorICAgIG1faml0LmJlZ2luVW5pbnRlcnJ1cHRlZFNlcXVl
bmNlKCk7CiAgICAgSklUQ29tcGlsZXI6OkRhdGFMYWJlbFB0ciBzdHJ1Y3R1cmVUb0NvbXBhcmU7
CiAgICAgSklUQ29tcGlsZXI6Okp1bXAgc3RydWN0dXJlQ2hlY2sgPSBtX2ppdC5icmFuY2hQdHJX
aXRoUGF0Y2goSklUQ29tcGlsZXI6Ok5vdEVxdWFsLCBKSVRDb21waWxlcjo6QWRkcmVzcyhiYXNl
UGF5bG9hZEdQUiwgSlNDZWxsOjpzdHJ1Y3R1cmVPZmZzZXQoKSksIHN0cnVjdHVyZVRvQ29tcGFy
ZSwgSklUQ29tcGlsZXI6OlRydXN0ZWRJbW1QdHIocmVpbnRlcnByZXRfY2FzdDx2b2lkKj4oLTEp
KSk7CisgICAgbV9qaXQuZW5kVW5pbnRlcnJ1cHRlZFNlcXVlbmNlKCk7CiAgICAgCiAgICAgbV9q
aXQubG9hZFB0cihKSVRDb21waWxlcjo6QWRkcmVzcyhiYXNlUGF5bG9hZEdQUiwgSlNPYmplY3Q6
Om9mZnNldE9mUHJvcGVydHlTdG9yYWdlKCkpLCByZXN1bHRQYXlsb2FkR1BSKTsKICAgICBKSVRD
b21waWxlcjo6RGF0YUxhYmVsQ29tcGFjdCB0YWdMb2FkV2l0aFBhdGNoID0gbV9qaXQubG9hZDMy
V2l0aENvbXBhY3RBZGRyZXNzT2Zmc2V0UGF0Y2goSklUQ29tcGlsZXI6OkFkZHJlc3MocmVzdWx0
UGF5bG9hZEdQUiwgT0JKRUNUX09GRlNFVE9GKEVuY29kZWRWYWx1ZURlc2NyaXB0b3IsIGFzQml0
cy50YWcpKSwgcmVzdWx0VGFnR1BSKTsKQEAgLTg4OCw4ICs4ODQsMTAgQEAgSklUQ29tcGlsZXI6
OkNhbGwgSklUQ29kZUdlbmVyYXRvcjo6Y2FjaAogCiB2b2lkIEpJVENvZGVHZW5lcmF0b3I6OmNh
Y2hlZFB1dEJ5SWQoR1BSUmVnIGJhc2VQYXlsb2FkR1BSLCBHUFJSZWcgdmFsdWVUYWdHUFIsIEdQ
UlJlZyB2YWx1ZVBheWxvYWRHUFIsIE5vZGVJbmRleCB2YWx1ZUluZGV4LCBHUFJSZWcgc2NyYXRj
aEdQUiwgdW5zaWduZWQgaWRlbnRpZmllck51bWJlciwgUHV0S2luZCBwdXRLaW5kLCBKSVRDb21w
aWxlcjo6SnVtcCBzbG93UGF0aFRhcmdldCkKIHsKKyAgICBtX2ppdC5iZWdpblVuaW50ZXJydXB0
ZWRTZXF1ZW5jZSgpOwogICAgIEpJVENvbXBpbGVyOjpEYXRhTGFiZWxQdHIgc3RydWN0dXJlVG9D
b21wYXJlOwogICAgIEpJVENvbXBpbGVyOjpKdW1wIHN0cnVjdHVyZUNoZWNrID0gbV9qaXQuYnJh
bmNoUHRyV2l0aFBhdGNoKEpJVENvbXBpbGVyOjpOb3RFcXVhbCwgSklUQ29tcGlsZXI6OkFkZHJl
c3MoYmFzZVBheWxvYWRHUFIsIEpTQ2VsbDo6c3RydWN0dXJlT2Zmc2V0KCkpLCBzdHJ1Y3R1cmVU
b0NvbXBhcmUsIEpJVENvbXBpbGVyOjpUcnVzdGVkSW1tUHRyKHJlaW50ZXJwcmV0X2Nhc3Q8dm9p
ZCo+KC0xKSkpOworICAgIG1faml0LmVuZFVuaW50ZXJydXB0ZWRTZXF1ZW5jZSgpOwogCiAgICAg
d3JpdGVCYXJyaWVyKGJhc2VQYXlsb2FkR1BSLCB2YWx1ZVRhZ0dQUiwgdmFsdWVJbmRleCwgV3Jp
dGVCYXJyaWVyRm9yUHJvcGVydHlBY2Nlc3MsIHNjcmF0Y2hHUFIpOwogCkluZGV4OiBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvZGZnL0RGR0pJVENvZGVHZW5lcmF0b3I2NC5jcHAKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdKSVRDb2RlR2VuZXJhdG9yNjQuY3BwCShy
ZXZpc2lvbiA5OTg5NSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHSklUQ29kZUdl
bmVyYXRvcjY0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDI2LDExICs0MjYsNyBAQCB2b2lkIEpJ
VENvZGVHZW5lcmF0b3I6Om5vblNwZWN1bGF0aXZlVmFsCiAgICAgICAgIEpJVENvbXBpbGVyOjpK
dW1wIHRydW5jYXRlZFRvSW50ZWdlciA9IG1faml0LmJyYW5jaFRydW5jYXRlRG91YmxlVG9JbnQz
MihmcHIsIGdwciwgSklUQ29tcGlsZXI6OkJyYW5jaElmVHJ1bmNhdGVTdWNjZXNzZnVsKTsKICAg
ICAgICAgCiAgICAgICAgIHNpbGVudFNwaWxsQWxsUmVnaXN0ZXJzKGdwcik7Ci0gICAgICAgIAot
ICAgICAgICBtX2ppdC5tb3ZlRG91YmxlKGZwciwgRlBSSW5mbzo6YXJndW1lbnRGUFIwKTsKLSAg
ICAgICAgYXBwZW5kQ2FsbFdpdGhFeGNlcHRpb25DaGVjayh0b0ludDMyKTsKLSAgICAgICAgbV9q
aXQuemVyb0V4dGVuZDMyVG9QdHIoR1BSSW5mbzo6cmV0dXJuVmFsdWVHUFIsIGdwcik7Ci0gICAg
ICAgIAorICAgICAgICBjYWxsT3BlcmF0aW9uKHRvSW50MzIsIGdwciwgZnByKTsKICAgICAgICAg
c2lsZW50RmlsbEFsbFJlZ2lzdGVycyhncHIpOwogICAgICAgICAKICAgICAgICAgdHJ1bmNhdGVk
VG9JbnRlZ2VyLmxpbmsoJm1faml0KTsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcv
REZHSklUQ29kZUdlbmVyYXRvci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9kZmcvREZHSklUQ29kZUdlbmVyYXRvci5oCShyZXZpc2lvbiA5OTg5NSkKKysrIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9kZmcvREZHSklUQ29kZUdlbmVyYXRvci5oCSh3b3JraW5nIGNvcHkpCkBA
IC01OTIsNyArNTkyLDYgQEAgcHJvdGVjdGVkOgogICAgICAgICAgICAgbV9qaXQuc3RvcmVQdHIo
cmVnLCBKSVRDb21waWxlcjo6YWRkcmVzc0ZvcihzcGlsbE1lKSk7CiAgICAgICAgICAgICBpbmZv
LnNwaWxsKChEYXRhRm9ybWF0KShzcGlsbEZvcm1hdCB8IERhdGFGb3JtYXRKUykpOwogICAgICAg
ICAgICAgcmV0dXJuOwotICAgICAgICB9CiAjZWxpZiBVU0UoSlNWQUxVRTMyXzY0KQogICAgICAg
ICBjYXNlIERhdGFGb3JtYXREb3VibGU6CiAgICAgICAgIGNhc2UgRGF0YUZvcm1hdEpTRG91Ymxl
OiB7CkBAIC02MjEsOCArNjIwLDggQEAgcHJvdGVjdGVkOgogICAgICAgICAgICAgfQogICAgICAg
ICAgICAgaW5mby5zcGlsbCgoRGF0YUZvcm1hdCkoc3BpbGxGb3JtYXQgfCBEYXRhRm9ybWF0SlMp
KTsKICAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgfQogI2VuZGlmCisgICAgICAgIH0KICAg
ICB9CiAgICAgCiAgICAgYm9vbCBpc1N0cmljdEludDMyKE5vZGVJbmRleCk7CkBAIC05NzIsNyAr
OTcxLDcgQEAgcHJvdGVjdGVkOgogICAgIC8vIE9uIFg4NiB3ZSB1c2UgY2RlY2wgY2FsbGluZyBj
b252ZW50aW9ucywgd2hpY2ggcGFzcyBhbGwgYXJndW1lbnRzIG9uIHRoZQogICAgIC8vIHN0YWNr
LiBPbiBvdGhlciBhcmNoaXRlY3R1cmVzIHdlIG1heSBuZWVkIHRvIHNvcnQgdmFsdWVzIGludG8g
dGhlCiAgICAgLy8gY29ycmVjdCByZWdpc3RlcnMuCi0jaWYgQ1BVKFg4NikKKyNpZiAhTlVNQkVS
X09GX0FSR1VNRU5UX1JFR0lTVEVSUwogICAgIHVuc2lnbmVkIG1fY2FsbEFyZ3VtZW50SW5kZXg7
CiAgICAgdm9pZCByZXNldENhbGxBcmd1bWVudHMoKSB7IG1fY2FsbEFyZ3VtZW50SW5kZXggPSAw
OyB9CiAKQEAgLTExMjgsNyArMTEyNywxMCBAQCBwcm90ZWN0ZWQ6CiAgICAgICAgIGFkZENhbGxB
cmd1bWVudChhcmc0KTsKICAgICAgICAgYWRkQ2FsbEFyZ3VtZW50KGFyZzUpOwogICAgIH0KLSNl
bHNlCisjZW5kaWYgLy8gIU5VTUJFUl9PRl9BUkdVTUVOVF9SRUdJU1RFUlMKKyAgICAvLyBUaGVz
ZSBtZXRob2RzIGFyZSBzdWl0YWJsZSBmb3IgYW55IGNhbGxpbmcgY29udmVudGlvbiB0aGF0IHBy
b3ZpZGVzIGZvcgorICAgIC8vIGF0IGxlYXN0IDQgYXJndW1lbnQgcmVnaXN0ZXJzLCBlLmcuIFg4
Nl82NCwgQVJNdjcuCisjaWYgTlVNQkVSX09GX0FSR1VNRU5UX1JFR0lTVEVSUyA+PSA0CiAgICAg
dGVtcGxhdGU8R1BSUmVnIGRlc3RBLCBHUFJSZWcgZGVzdEI+CiAgICAgdm9pZCBzZXR1cFR3b1N0
dWJBcmdzKEdQUlJlZyBzcmNBLCBHUFJSZWcgc3JjQikKICAgICB7CkBAIC0xMTU3LDYgKzExNTks
NyBAQCBwcm90ZWN0ZWQ6CiAgICAgICAgIH0gZWxzZQogICAgICAgICAgICAgbV9qaXQuc3dhcChk
ZXN0QSwgZGVzdEIpOwogICAgIH0KKyNpZiBDUFUoWDg2XzY0KQogICAgIHRlbXBsYXRlPEZQUlJl
ZyBkZXN0QSwgRlBSUmVnIGRlc3RCPgogICAgIHZvaWQgc2V0dXBUd29TdHViQXJncyhGUFJSZWcg
c3JjQSwgRlBSUmVnIHNyY0IpCiAgICAgewpAQCAtMTIwMyw2ICsxMjA2LDcgQEAgcHJvdGVjdGVk
OgogICAgICAgICBtX2ppdC5tb3ZlRG91YmxlKGRlc3RCLCBkZXN0QSk7CiAgICAgICAgIG1faml0
Lm1vdmVEb3VibGUodGVtcCwgZGVzdEIpOwogICAgIH0KKyNlbmRpZgogICAgIHZvaWQgc2V0dXBT
dHViQXJndW1lbnRzKEdQUlJlZyBhcmcxLCBHUFJSZWcgYXJnMikKICAgICB7CiAgICAgICAgIHNl
dHVwVHdvU3R1YkFyZ3M8R1BSSW5mbzo6YXJndW1lbnRHUFIxLCBHUFJJbmZvOjphcmd1bWVudEdQ
UjI+KGFyZzEsIGFyZzIpOwpAQCAtMTI1OSw2ICsxMjYzLDcgQEAgcHJvdGVjdGVkOgogICAgICAg
ICAgICAgbV9qaXQuc3dhcChHUFJJbmZvOjphcmd1bWVudEdQUjIsIEdQUkluZm86OmFyZ3VtZW50
R1BSMyk7CiAgICAgfQogCisjaWYgQ1BVKFg4Nl82NCkKICAgICBBTFdBWVNfSU5MSU5FIHZvaWQg
c2V0dXBBcmd1bWVudHMoRlBSUmVnIGFyZzEpCiAgICAgewogICAgICAgICBtX2ppdC5tb3ZlRG91
YmxlKGFyZzEsIEZQUkluZm86OmFyZ3VtZW50RlBSMCk7CkBAIC0xMjY4LDYgKzEyNzMsMTggQEAg
cHJvdGVjdGVkOgogICAgIHsKICAgICAgICAgc2V0dXBUd29TdHViQXJnczxGUFJJbmZvOjphcmd1
bWVudEZQUjAsIEZQUkluZm86OmFyZ3VtZW50RlBSMT4oYXJnMSwgYXJnMik7CiAgICAgfQorI2Vs
c2UKKyAgICBBTFdBWVNfSU5MSU5FIHZvaWQgc2V0dXBBcmd1bWVudHMoRlBSUmVnIGFyZzEpCisg
ICAgeworICAgICAgICBtX2ppdC5hc3NlbWJsZXIoKS52bW92KEdQUkluZm86OmFyZ3VtZW50R1BS
MCwgR1BSSW5mbzo6YXJndW1lbnRHUFIxLCBhcmcxKTsKKyAgICB9CisKKyAgICBBTFdBWVNfSU5M
SU5FIHZvaWQgc2V0dXBBcmd1bWVudHMoRlBSUmVnIGFyZzEsIEZQUlJlZyBhcmcyKQorICAgIHsK
KyAgICAgICAgbV9qaXQuYXNzZW1ibGVyKCkudm1vdihHUFJJbmZvOjphcmd1bWVudEdQUjAsIEdQ
UkluZm86OmFyZ3VtZW50R1BSMSwgYXJnMSk7CisgICAgICAgIG1faml0LmFzc2VtYmxlcigpLnZt
b3YoR1BSSW5mbzo6YXJndW1lbnRHUFIyLCBHUFJJbmZvOjphcmd1bWVudEdQUjMsIGFyZzIpOwor
ICAgIH0KKyNlbmRpZgogCiAgICAgQUxXQVlTX0lOTElORSB2b2lkIHNldHVwQXJndW1lbnRzRXhl
Y1N0YXRlKCkKICAgICB7CkBAIC0xMzI2LDEzICsxMzQzLDYzIEBAIHByb3RlY3RlZDoKICAgICAg
ICAgbV9qaXQubW92ZShHUFJJbmZvOjpjYWxsRnJhbWVSZWdpc3RlciwgR1BSSW5mbzo6YXJndW1l
bnRHUFIwKTsKICAgICB9CiAKKyAgICBBTFdBWVNfSU5MSU5FIHZvaWQgc2V0dXBBcmd1bWVudHNX
aXRoRXhlY1N0YXRlKEdQUlJlZyBhcmcxLCBHUFJSZWcgYXJnMiwgVHJ1c3RlZEltbTMyIGFyZzMp
CisgICAgeworICAgICAgICBzZXR1cFN0dWJBcmd1bWVudHMoYXJnMSwgYXJnMik7CisgICAgICAg
IG1faml0Lm1vdmUoYXJnMywgR1BSSW5mbzo6YXJndW1lbnRHUFIzKTsKKyAgICAgICAgbV9qaXQu
bW92ZShHUFJJbmZvOjpjYWxsRnJhbWVSZWdpc3RlciwgR1BSSW5mbzo6YXJndW1lbnRHUFIwKTsK
KyAgICB9CisKICAgICBBTFdBWVNfSU5MSU5FIHZvaWQgc2V0dXBBcmd1bWVudHNXaXRoRXhlY1N0
YXRlKEdQUlJlZyBhcmcxLCBHUFJSZWcgYXJnMiwgVHJ1c3RlZEltbVB0ciBhcmczKQogICAgIHsK
ICAgICAgICAgc2V0dXBTdHViQXJndW1lbnRzKGFyZzEsIGFyZzIpOwogICAgICAgICBtX2ppdC5t
b3ZlKGFyZzMsIEdQUkluZm86OmFyZ3VtZW50R1BSMyk7CiAgICAgICAgIG1faml0Lm1vdmUoR1BS
SW5mbzo6Y2FsbEZyYW1lUmVnaXN0ZXIsIEdQUkluZm86OmFyZ3VtZW50R1BSMCk7CiAgICAgfQot
I2VuZGlmCisKKyAgICBBTFdBWVNfSU5MSU5FIHZvaWQgc2V0dXBBcmd1bWVudHNXaXRoRXhlY1N0
YXRlKFRydXN0ZWRJbW0zMiBhcmcxLCBUcnVzdGVkSW1tMzIgYXJnMiwgR1BSUmVnIGFyZzMpCisg
ICAgeworICAgICAgICBtX2ppdC5tb3ZlKGFyZzEsIEdQUkluZm86OmFyZ3VtZW50R1BSMSk7Cisg
ICAgICAgIG1faml0Lm1vdmUoYXJnMiwgR1BSSW5mbzo6YXJndW1lbnRHUFIyKTsKKyAgICAgICAg
bV9qaXQubW92ZShhcmczLCBHUFJJbmZvOjphcmd1bWVudEdQUjMpOworICAgICAgICBtX2ppdC5t
b3ZlKEdQUkluZm86OmNhbGxGcmFtZVJlZ2lzdGVyLCBHUFJJbmZvOjphcmd1bWVudEdQUjApOwor
ICAgIH0KKworI2VuZGlmIC8vIE5VTUJFUl9PRl9BUkdVTUVOVF9SRUdJU1RFUlMgPj0gNAorICAg
IC8vIFRoZXNlIG1ldGhvZHMgYXJlIHN1aXRhYmxlIGZvciBhbnkgY2FsbGluZyBjb252ZW50aW9u
IHRoYXQgcHJvdmlkZXMgZm9yCisgICAgLy8gZXhhY3RseSA0IGFyZ3VtZW50IHJlZ2lzdGVycywg
ZS5nLiBBUk12Ny4KKyNpZiBOVU1CRVJfT0ZfQVJHVU1FTlRfUkVHSVNURVJTID09IDQKKyAgICBB
TFdBWVNfSU5MSU5FIHZvaWQgc2V0dXBBcmd1bWVudHNXaXRoRXhlY1N0YXRlKEdQUlJlZyBhcmcx
LCBHUFJSZWcgYXJnMiwgR1BSUmVnIGFyZzMsIEdQUlJlZyBhcmc0KQorICAgIHsKKyAgICAgICAg
bV9qaXQucG9rZShhcmc0KTsKKyAgICAgICAgc2V0dXBBcmd1bWVudHNXaXRoRXhlY1N0YXRlKGFy
ZzEsIGFyZzIsIGFyZzMpOworICAgIH0KKworICAgIEFMV0FZU19JTkxJTkUgdm9pZCBzZXR1cEFy
Z3VtZW50c1dpdGhFeGVjU3RhdGUoR1BSUmVnIGFyZzEsIEdQUlJlZyBhcmcyLCBUcnVzdGVkSW1t
MzIgYXJnMywgVHJ1c3RlZEltbTMyIGFyZzQpCisgICAgeworICAgICAgICBtX2ppdC5wb2tlKGFy
ZzQpOworICAgICAgICBzZXR1cEFyZ3VtZW50c1dpdGhFeGVjU3RhdGUoYXJnMSwgYXJnMiwgYXJn
Myk7CisgICAgfQorCisgICAgQUxXQVlTX0lOTElORSB2b2lkIHNldHVwQXJndW1lbnRzV2l0aEV4
ZWNTdGF0ZShUcnVzdGVkSW1tMzIgYXJnMSwgVHJ1c3RlZEltbTMyIGFyZzIsIEdQUlJlZyBhcmcz
LCBHUFJSZWcgYXJnNCkKKyAgICB7CisgICAgICAgIG1faml0LnBva2UoYXJnNCk7CisgICAgICAg
IHNldHVwQXJndW1lbnRzV2l0aEV4ZWNTdGF0ZShhcmcxLCBhcmcyLCBhcmczKTsKKyAgICB9CisK
KyAgICBBTFdBWVNfSU5MSU5FIHZvaWQgc2V0dXBBcmd1bWVudHNXaXRoRXhlY1N0YXRlKEdQUlJl
ZyBhcmcxLCBHUFJSZWcgYXJnMiwgR1BSUmVnIGFyZzMsIFRydXN0ZWRJbW1QdHIgYXJnNCkKKyAg
ICB7CisgICAgICAgIG1faml0LnBva2UoYXJnNCk7CisgICAgICAgIHNldHVwQXJndW1lbnRzV2l0
aEV4ZWNTdGF0ZShhcmcxLCBhcmcyLCBhcmczKTsKKyAgICB9CisKKyAgICBBTFdBWVNfSU5MSU5F
IHZvaWQgc2V0dXBBcmd1bWVudHNXaXRoRXhlY1N0YXRlKEdQUlJlZyBhcmcxLCBHUFJSZWcgYXJn
MiwgR1BSUmVnIGFyZzMsIEdQUlJlZyBhcmc0LCBHUFJSZWcgYXJnNSkKKyAgICB7CisgICAgICAg
IG1faml0LnBva2UoYXJnNSwgMSk7CisgICAgICAgIG1faml0LnBva2UoYXJnNCk7CisgICAgICAg
IHNldHVwQXJndW1lbnRzV2l0aEV4ZWNTdGF0ZShhcmcxLCBhcmcyLCBhcmczKTsKKyAgICB9Cisj
ZW5kaWYgLy8gTlVNQkVSX09GX0FSR1VNRU5UX1JFR0lTVEVSUyA9PSA0CiAKICAgICAvLyBUaGVz
ZSBtZXRob2RzIGFkZCBjYWxscyB0byBDKysgaGVscGVyIGZ1bmN0aW9ucy4KICAgICAvLyBUaGVz
ZSBtZXRob2RzIGFyZSBicm9hZGx5IHZhbHVlIHJlcHJlc2VudGF0aW9uIHNwZWNpZmljIChpLmUu
CkBAIC0xNjg3LDYgKzE3NTQsMTkgQEAgcHJvdGVjdGVkOgogICAgICAgICBtX2ppdC5sb2FkRG91
YmxlKEpJVENvbXBpbGVyOjpzdGFja1BvaW50ZXJSZWdpc3RlciwgcmVzdWx0KTsKICAgICAgICAg
cmV0dXJuIGNhbGw7CiAgICAgfQorI2VsaWYgQ1BVKEFSTSkKKyAgICBKSVRDb21waWxlcjo6Q2Fs
bCBhcHBlbmRDYWxsV2l0aEV4Y2VwdGlvbkNoZWNrU2V0UmVzdWx0KGNvbnN0IEZ1bmN0aW9uUHRy
JiBmdW5jdGlvbiwgRlBSUmVnIHJlc3VsdCkKKyAgICB7CisgICAgICAgIEpJVENvbXBpbGVyOjpD
YWxsIGNhbGwgPSBhcHBlbmRDYWxsV2l0aEV4Y2VwdGlvbkNoZWNrKGZ1bmN0aW9uKTsKKyAgICAg
ICAgbV9qaXQuYXNzZW1ibGVyKCkudm1vdihyZXN1bHQsIEdQUkluZm86OnJldHVyblZhbHVlR1BS
LCBHUFJJbmZvOjpyZXR1cm5WYWx1ZUdQUjIpOworICAgICAgICByZXR1cm4gY2FsbDsKKyAgICB9
CisgICAgSklUQ29tcGlsZXI6OkNhbGwgYXBwZW5kQ2FsbFNldFJlc3VsdChjb25zdCBGdW5jdGlv
blB0ciYgZnVuY3Rpb24sIEZQUlJlZyByZXN1bHQpCisgICAgeworICAgICAgICBKSVRDb21waWxl
cjo6Q2FsbCBjYWxsID0gbV9qaXQuYXBwZW5kQ2FsbChmdW5jdGlvbik7CisgICAgICAgIG1faml0
LmFzc2VtYmxlcigpLnZtb3YocmVzdWx0LCBHUFJJbmZvOjpyZXR1cm5WYWx1ZUdQUiwgR1BSSW5m
bzo6cmV0dXJuVmFsdWVHUFIyKTsKKyAgICAgICAgcmV0dXJuIGNhbGw7CisgICAgfQogI2Vsc2UK
ICAgICBKSVRDb21waWxlcjo6Q2FsbCBhcHBlbmRDYWxsV2l0aEV4Y2VwdGlvbkNoZWNrU2V0UmVz
dWx0KGNvbnN0IEZ1bmN0aW9uUHRyJiBmdW5jdGlvbiwgRlBSUmVnIHJlc3VsdCkKICAgICB7Cklu
ZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0pJVENvbXBpbGVyLmNwcAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0pJVENvbXBpbGVyLmNwcAkocmV2
aXNpb24gOTk4OTUpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0pJVENvbXBpbGVy
LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDYsNyArNDYsOSBAQCB2b2lkIEpJVENvbXBpbGVyOjps
aW5rT1NSRXhpdHMoKQogICAgICAgICBPU1JFeGl0JiBleGl0ID0gY29kZUJsb2NrKCktPm9zckV4
aXQoaSk7CiAgICAgICAgIGV4aXQubV9jaGVjay5pbml0aWFsSnVtcCgpLmxpbmsodGhpcyk7CiAg
ICAgICAgIHN0b3JlMzIoSW1tMzIoaSksICZnbG9iYWxEYXRhKCktPm9zckV4aXRJbmRleCk7Cisg
ICAgICAgIGJlZ2luVW5pbnRlcnJ1cHRlZFNlcXVlbmNlKCk7CiAgICAgICAgIGV4aXQubV9jaGVj
ay5zd2l0Y2hUb0xhdGVKdW1wKGp1bXAoKSk7CisgICAgICAgIGVuZFVuaW50ZXJydXB0ZWRTZXF1
ZW5jZSgpOwogICAgIH0KIH0KIApAQCAtOTgsNyArMTAwLDcgQEAgdm9pZCBKSVRDb21waWxlcjo6
Y29tcGlsZUJvZHkoU3BlY3VsYXRpdgogICAgICAgICAvLyBvZiB0aGUgY2FsbCBvdXQgZnJvbSBK
SVQgY29kZSB0aGF0IHRocmV3IHRoZSBleGNlcHRpb247IHRoaXMgaXMgc3RpbGwKICAgICAgICAg
Ly8gYXZhaWxhYmxlIG9uIHRoZSBzdGFjaywganVzdCBiZWxvdyB0aGUgc3RhY2sgcG9pbnRlciEK
ICAgICAgICAgbW92ZShHUFJJbmZvOjpjYWxsRnJhbWVSZWdpc3RlciwgR1BSSW5mbzo6YXJndW1l
bnRHUFIwKTsKLSAgICAgICAgcGVlayhHUFJJbmZvOjphcmd1bWVudEdQUjEsIC0xKTsKKyAgICAg
ICAgZ2V0UENBZnRlckNhbGwoR1BSSW5mbzo6YXJndW1lbnRHUFIxKTsKICAgICAgICAgbV9jYWxs
cy5hcHBlbmQoQ2FsbExpbmtSZWNvcmQoY2FsbCgpLCBsb29rdXBFeGNlcHRpb25IYW5kbGVyKSk7
CiAgICAgICAgIC8vIGxvb2t1cEV4Y2VwdGlvbkhhbmRsZXIgbGVhdmVzIHRoZSBoYW5kbGVyIENh
bGxGcmFtZSogaW4gdGhlIHJldHVyblZhbHVlR1BSLAogICAgICAgICAvLyBhbmQgdGhlIGFkZHJl
c3Mgb2YgdGhlIGhhbmRsZXIgaW4gcmV0dXJuVmFsdWVHUFIyLgpJbmRleDogU291cmNlL0phdmFT
Y3JpcHRDb3JlL2RmZy9ERkdPU1JFeGl0Q29tcGlsZXIuY3BwCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHT1NSRXhpdENvbXBpbGVyLmNwcAkocmV2aXNpb24gOTk4
OTUpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR09TUkV4aXRDb21waWxlci5jcHAJ
KHdvcmtpbmcgY29weSkKQEAgLTY0LDcgKzY0LDcgQEAgdm9pZCBjb21waWxlT1NSRXhpdChFeGVj
U3RhdGUqIGV4ZWMpCiAgICAgCiAgICAgewogICAgICAgICBSZXBhdGNoQnVmZmVyIHJlcGF0Y2hC
dWZmZXIoY29kZUJsb2NrKTsKLSAgICAgICAgcmVwYXRjaEJ1ZmZlci5yZWxpbmsoZXhpdC5tX2No
ZWNrLmNvZGVMb2NhdGlvbkZvclJlcGF0Y2goY29kZUJsb2NrKSwgQ29kZUxvY2F0aW9uTGFiZWwo
ZXhpdC5tX2NvZGUuY29kZSgpLmV4ZWN1dGFibGVBZGRyZXNzKCkpKTsKKyAgICAgICAgcmVwYXRj
aEJ1ZmZlci5yZWxpbmsoZXhpdC5tX2NoZWNrLmNvZGVMb2NhdGlvbkZvclJlcGF0Y2goY29kZUJs
b2NrKSwgQ29kZUxvY2F0aW9uTGFiZWwoZXhpdC5tX2NvZGUuY29kZSgpKSk7CiAgICAgfQogICAg
IAogICAgIGdsb2JhbERhdGEtPm9zckV4aXRKdW1wRGVzdGluYXRpb24gPSBleGl0Lm1fY29kZS5j
b2RlKCkuZXhlY3V0YWJsZUFkZHJlc3MoKTsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9k
ZmcvREZHT3BlcmF0aW9ucy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3Jl
L2RmZy9ERkdPcGVyYXRpb25zLmNwcAkocmV2aXNpb24gOTk4OTUpCisrKyBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvZGZnL0RGR09wZXJhdGlvbnMuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC02NCw2ICs2
NCw0NyBAQAogI2RlZmluZSBGVU5DVElPTl9XUkFQUEVSX1dJVEhfUkVUVVJOX0FERFJFU1NfRUNJ
KGZ1bmN0aW9uKSAgRlVOQ1RJT05fV1JBUFBFUl9XSVRIX1JFVFVSTl9BRERSRVNTKGZ1bmN0aW9u
LCAxNikKICNkZWZpbmUgRlVOQ1RJT05fV1JBUFBFUl9XSVRIX1JFVFVSTl9BRERSRVNTX0VKQ0ko
ZnVuY3Rpb24pIEZVTkNUSU9OX1dSQVBQRVJfV0lUSF9SRVRVUk5fQUREUkVTUyhmdW5jdGlvbiwg
MjQpCiAKKyNlbGlmIENPTVBJTEVSKEdDQykgJiYgQ1BVKEFSTV9USFVNQjIpCisKKyNkZWZpbmUg
RlVOQ1RJT05fV1JBUFBFUl9XSVRIX1JFVFVSTl9BRERSRVNTX0UoZnVuY3Rpb24pIFwKKyAgICBh
c20gKCBcCisgICAgIi50ZXh0IiAiXG4iIFwKKyAgICAiLmFsaWduIDIiICJcbiIgXAorICAgICIu
Z2xvYmwgIiBTWU1CT0xfU1RSSU5HKGZ1bmN0aW9uKSAiXG4iIFwKKyAgICBISURFX1NZTUJPTChm
dW5jdGlvbikgIlxuIiBcCisgICAgIi50aHVtYiIgIlxuIiBcCisgICAgIi50aHVtYl9mdW5jICIg
VEhVTUJfRlVOQ19QQVJBTShmdW5jdGlvbikgIlxuIiBcCisgICAgU1lNQk9MX1NUUklORyhmdW5j
dGlvbikgIjoiICJcbiIgXAorICAgICAgICAiY3B5IGEyLCBsciIgIlxuIiBcCisgICAgICAgICJi
ICIgU1lNQk9MX1NUUklOR19SRUxPQ0FUSU9OKGZ1bmN0aW9uKSAiV2l0aFJldHVybkFkZHJlc3Mi
ICJcbiIgXAorICAgICk7CisKKyNkZWZpbmUgRlVOQ1RJT05fV1JBUFBFUl9XSVRIX1JFVFVSTl9B
RERSRVNTX0VDSShmdW5jdGlvbikgXAorICAgIGFzbSAoIFwKKyAgICAiLnRleHQiICJcbiIgXAor
ICAgICIuYWxpZ24gMiIgIlxuIiBcCisgICAgIi5nbG9ibCAiIFNZTUJPTF9TVFJJTkcoZnVuY3Rp
b24pICJcbiIgXAorICAgIEhJREVfU1lNQk9MKGZ1bmN0aW9uKSAiXG4iIFwKKyAgICAiLnRodW1i
IiAiXG4iIFwKKyAgICAiLnRodW1iX2Z1bmMgIiBUSFVNQl9GVU5DX1BBUkFNKGZ1bmN0aW9uKSAi
XG4iIFwKKyAgICBTWU1CT0xfU1RSSU5HKGZ1bmN0aW9uKSAiOiIgIlxuIiBcCisgICAgICAgICJj
cHkgYTQsIGxyIiAiXG4iIFwKKyAgICAgICAgImIgIiBTWU1CT0xfU1RSSU5HX1JFTE9DQVRJT04o
ZnVuY3Rpb24pICJXaXRoUmV0dXJuQWRkcmVzcyIgIlxuIiBcCisgICAgKTsKKworI2RlZmluZSBG
VU5DVElPTl9XUkFQUEVSX1dJVEhfUkVUVVJOX0FERFJFU1NfRUpDSShmdW5jdGlvbikgXAorICAg
IGFzbSAoIFwKKyAgICAiLnRleHQiICJcbiIgXAorICAgICIuYWxpZ24gMiIgIlxuIiBcCisgICAg
Ii5nbG9ibCAiIFNZTUJPTF9TVFJJTkcoZnVuY3Rpb24pICJcbiIgXAorICAgIEhJREVfU1lNQk9M
KGZ1bmN0aW9uKSAiXG4iIFwKKyAgICAiLnRodW1iIiAiXG4iIFwKKyAgICAiLnRodW1iX2Z1bmMg
IiBUSFVNQl9GVU5DX1BBUkFNKGZ1bmN0aW9uKSAiXG4iIFwKKyAgICBTWU1CT0xfU1RSSU5HKGZ1
bmN0aW9uKSAiOiIgIlxuIiBcCisgICAgICAgICJzdHIgbHIsIFtzcCwgIzRdIiAiXG4iIFwKKyAg
ICAgICAgImIgIiBTWU1CT0xfU1RSSU5HX1JFTE9DQVRJT04oZnVuY3Rpb24pICJXaXRoUmV0dXJu
QWRkcmVzcyIgIlxuIiBcCisgICAgKTsKKwogI2VuZGlmCiAKICNkZWZpbmUgUF9GVU5DVElPTl9X
UkFQUEVSX1dJVEhfUkVUVVJOX0FERFJFU1NfRShmdW5jdGlvbikgXApAQCAtNTIyLDYgKzU2Mywx
OSBAQCBTWU1CT0xfU1RSSU5HKGdldEhvc3RDYWxsUmV0dXJuVmFsdWUpICI6CiAgICAgIm1vdiAl
ZWRpLCA0KCVlc3ApXG4iCiAgICAgImptcCAiIFNZTUJPTF9TVFJJTkdfUkVMT0NBVElPTihnZXRI
b3N0Q2FsbFJldHVyblZhbHVlV2l0aEV4ZWNTdGF0ZSkgIlxuIgogKTsKKyNlbGlmIENQVShBUk1f
VEhVTUIyKQorYXNtICgKKyIudGV4dCIgIlxuIgorIi5hbGlnbiAyIiAiXG4iCisiLmdsb2JsICIg
U1lNQk9MX1NUUklORyhnZXRIb3N0Q2FsbFJldHVyblZhbHVlKSAiXG4iCitISURFX1NZTUJPTChn
ZXRIb3N0Q2FsbFJldHVyblZhbHVlKSAiXG4iCisiLnRodW1iIiAiXG4iCisiLnRodW1iX2Z1bmMg
IiBUSFVNQl9GVU5DX1BBUkFNKGdldEhvc3RDYWxsUmV0dXJuVmFsdWUpICJcbiIKK1NZTUJPTF9T
VFJJTkcoZ2V0SG9zdENhbGxSZXR1cm5WYWx1ZSkgIjoiICJcbiIKKyAgICAibGRyIHI1LCBbcjUs
ICMtNDBdIiAiXG4iCisgICAgImNweSByMCwgcjUiICJcbiIKKyAgICAiYiAiIFNZTUJPTF9TVFJJ
TkdfUkVMT0NBVElPTihnZXRIb3N0Q2FsbFJldHVyblZhbHVlV2l0aEV4ZWNTdGF0ZSkgIlxuIgor
KTsKICNlbmRpZgogCiBFbmNvZGVkSlNWYWx1ZSBERkdfT1BFUkFUSU9OIGdldEhvc3RDYWxsUmV0
dXJuVmFsdWVXaXRoRXhlY1N0YXRlKEV4ZWNTdGF0ZSogZXhlYykKSW5kZXg6IFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQzMl82NC5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVDMyXzY0LmNwcAkocmV2
aXNpb24gOTk4OTUpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZl
SklUMzJfNjQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zNSw3ICszNSw4IEBACiBuYW1lc3BhY2Ug
SlNDIHsgbmFtZXNwYWNlIERGRyB7CiAKIC8vIE9uIFdpbmRvd3Mgd2UgbmVlZCB0byB3cmFwIGZt
b2Q7IG9uIG90aGVyIHBsYXRmb3JtcyB3ZSBjYW4gY2FsbCBpdCBkaXJlY3RseS4KLSNpZiBDQUxM
SU5HX0NPTlZFTlRJT05fSVNfU1REQ0FMTAorLy8gT24gQVJNdjcgd2UgYXNzZXJ0IHRoYXQgYWxs
IGZ1bmN0aW9uIHBvaW50ZXJzIGhhdmUgdG8gbG93IGJpdCBzZXQgKHBvaW50IHRvIHRodW1iIGNv
ZGUpLgorI2lmIENBTExJTkdfQ09OVkVOVElPTl9JU19TVERDQUxMIHx8IENQVShBUk1fVEhVTUIy
KQogc3RhdGljIGRvdWJsZSBERkdfT1BFUkFUSU9OIGZtb2RBc0RGR09wZXJhdGlvbihkb3VibGUg
eCwgZG91YmxlIHkpCiB7CiAgICAgcmV0dXJuIGZtb2QoeCwgeSk7CkluZGV4OiBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklULmNwcAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklULmNwcAkocmV2aXNpb24gOTk4
OTUpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklULmNwcAko
d29ya2luZyBjb3B5KQpAQCAtNjUyLDYgKzY1Miw4IEBAIHN0YXRpYyB2b2lkIGNvbXBpbGVDbGFt
cERvdWJsZVRvQnl0ZShKSVQKICAgICBNYWNyb0Fzc2VtYmxlcjo6SnVtcCB0b29CaWcgPSBqaXQu
YnJhbmNoRG91YmxlKE1hY3JvQXNzZW1ibGVyOjpEb3VibGVHcmVhdGVyVGhhbiwgc291cmNlLCBz
Y3JhdGNoKTsKICAgICAKICAgICBqaXQubG9hZERvdWJsZSgmaGFsZiwgc2NyYXRjaCk7CisgICAg
Ly8gRklYTUU6IFRoaXMgc2hvdWxkIHByb2JhYmx5IGp1c3QgdXNlIGEgZmxvYXRpbmcgcG9pbnQg
cm91bmQhCisgICAgLy8gaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTcy
MDU0CiAgICAgaml0LmFkZERvdWJsZShzb3VyY2UsIHNjcmF0Y2gpOwogICAgIGppdC50cnVuY2F0
ZURvdWJsZVRvSW50MzIoc2NyYXRjaCwgcmVzdWx0KTsgICAKICAgICBNYWNyb0Fzc2VtYmxlcjo6
SnVtcCB0cnVuY2F0ZWRJbnQgPSBqaXQuanVtcCgpOwpJbmRleDogU291cmNlL0phdmFTY3JpcHRD
b3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQuaAkocmV2aXNpb24gOTk4OTUpCisrKyBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklULmgJKHdvcmtpbmcgY29weSkK
QEAgLTIyOCw2ICsyMjgsMTMgQEAgcHJpdmF0ZToKICAgICAgICAgICAgIHJldHVybjsKICAgICAg
ICAgbV9qaXQuY29kZUJsb2NrKCktPmFwcGVuZE9TUkV4aXQoT1NSRXhpdChqc1ZhbHVlU291cmNl
LCBtX2ppdC52YWx1ZVByb2ZpbGVGb3Iobm9kZUluZGV4KSwganVtcFRvRmFpbCwgdGhpcykpOwog
ICAgIH0KKyAgICAvLyBBZGQgYSBzZXQgb2Ygc3BlY3VsYXRpb24gY2hlY2tzIHdpdGhvdXQgYWRk
aXRpb25hbCByZWNvdmVyeS4KKyAgICB2b2lkIHNwZWN1bGF0aW9uQ2hlY2soSlNWYWx1ZVNvdXJj
ZSBqc1ZhbHVlU291cmNlLCBOb2RlSW5kZXggbm9kZUluZGV4LCBNYWNyb0Fzc2VtYmxlcjo6SnVt
cExpc3QmIGp1bXBzVG9GYWlsKQorICAgIHsKKyAgICAgICAgVmVjdG9yPE1hY3JvQXNzZW1ibGVy
OjpKdW1wLCAxNj4gSnVtcFZlY3RvciA9IGp1bXBzVG9GYWlsLmp1bXBzKCk7CisgICAgICAgIGZv
ciAodW5zaWduZWQgaSA9IDA7IGkgPCBKdW1wVmVjdG9yLnNpemUoKTsgKytpKQorICAgICAgICAg
ICAgc3BlY3VsYXRpb25DaGVjayhqc1ZhbHVlU291cmNlLCBub2RlSW5kZXgsIEp1bXBWZWN0b3Jb
aV0pOworICAgIH0KICAgICAvLyBBZGQgYSBzcGVjdWxhdGlvbiBjaGVjayB3aXRoIGFkZGl0aW9u
YWwgcmVjb3ZlcnkuCiAgICAgdm9pZCBzcGVjdWxhdGlvbkNoZWNrKEpTVmFsdWVTb3VyY2UganNW
YWx1ZVNvdXJjZSwgTm9kZUluZGV4IG5vZGVJbmRleCwgTWFjcm9Bc3NlbWJsZXI6Okp1bXAganVt
cFRvRmFpbCwgY29uc3QgU3BlY3VsYXRpb25SZWNvdmVyeSYgcmVjb3ZlcnkpCiAgICAgewo=
</data>
<flag name="review"
          id="113268"
          type_id="1"
          status="+"
          setter="ggaren"
    />
          </attachment>
      

    </bug>

</bugzilla>