<?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>101718</bug_id>
          
          <creation_ts>2012-11-09 00:18:08 -0800</creation_ts>
          <short_desc>DFG should optimize out the NaN check on loads from double arrays if the array prototype chain is having a great time</short_desc>
          <delta_ts>2012-11-10 18:56:59 -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>All</rep_platform>
          <op_sys>All</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>
          <dependson>98606</dependson>
    
    <dependson>101719</dependson>
    
    <dependson>101720</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Filip Pizlo">fpizlo</reporter>
          <assigned_to name="Filip Pizlo">fpizlo</assigned_to>
          <cc>barraclough</cc>
    
    <cc>ggaren</cc>
    
    <cc>mark.lam</cc>
    
    <cc>mhahnenberg</cc>
    
    <cc>msaboff</cc>
    
    <cc>oliver</cc>
    
    <cc>sam</cc>
    
    <cc>webkit-ews</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>762648</commentid>
    <comment_count>0</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2012-11-09 00:18:08 -0800</bug_when>
    <thetext>Patch forthcoming.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>762664</commentid>
    <comment_count>1</comment_count>
      <attachid>173228</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2012-11-09 00:38:00 -0800</bug_when>
    <thetext>Created attachment 173228
work in progress</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>763722</commentid>
    <comment_count>2</comment_count>
      <attachid>173474</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2012-11-10 14:13:00 -0800</bug_when>
    <thetext>Created attachment 173474
the patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>763723</commentid>
    <comment_count>3</comment_count>
      <attachid>173474</attachid>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2012-11-10 14:19:41 -0800</bug_when>
    <thetext>Comment on attachment 173474
the patch

Attachment 173474 did not pass qt-ews (qt):
Output: http://queues.webkit.org/results/14790581</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>763724</commentid>
    <comment_count>4</comment_count>
      <attachid>173474</attachid>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2012-11-10 14:21:22 -0800</bug_when>
    <thetext>Comment on attachment 173474
the patch

Attachment 173474 did not pass qt-wk2-ews (qt):
Output: http://queues.webkit.org/results/14682467</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>763727</commentid>
    <comment_count>5</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2012-11-10 14:31:59 -0800</bug_when>
    <thetext>(In reply to comment #4)
&gt; (From update of attachment 173474 [details])
&gt; Attachment 173474 [details] did not pass qt-wk2-ews (qt):
&gt; Output: http://queues.webkit.org/results/14682467

Oops, simple compile error in 32-bit.  Will fix.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>763736</commentid>
    <comment_count>6</comment_count>
      <attachid>173477</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2012-11-10 14:46:17 -0800</bug_when>
    <thetext>Created attachment 173477
the patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>763746</commentid>
    <comment_count>7</comment_count>
      <attachid>173477</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2012-11-10 15:30:24 -0800</bug_when>
    <thetext>Comment on attachment 173477
the patch

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>763766</commentid>
    <comment_count>8</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2012-11-10 18:56:59 -0800</bug_when>
    <thetext>Landed in http://trac.webkit.org/changeset/134168</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>173228</attachid>
            <date>2012-11-09 00:38:00 -0800</date>
            <delta_ts>2012-11-10 14:13:00 -0800</delta_ts>
            <desc>work in progress</desc>
            <filename>optnan_1.patch</filename>
            <type>text/plain</type>
            <size>15104</size>
            <attacher name="Filip Pizlo">fpizlo</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTM0MDIzKQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDM2IEBA
CisyMDEyLTExLTA5ICBGaWxpcCBQaXpsbyAgPGZwaXpsb0BhcHBsZS5jb20+CisKKyAgICAgICAg
REZHIHNob3VsZCBvcHRpbWl6ZSBvdXQgdGhlIE5hTiBjaGVjayBvbiBsb2FkcyBmcm9tIGRvdWJs
ZSBhcnJheXMgaWYgdGhlIGFycmF5IHByb3RvdHlwZSBjaGFpbiBpcyBoYXZpbmcgYSBncmVhdCB0
aW1lCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDE3
MTgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBXb3Jr
IGluIHByb2dyZXNzLgorCisgICAgICAgICogZGZnL0RGR0Fic3RyYWN0U3RhdGUuY3BwOgorICAg
ICAgICAoSlNDOjpERkc6OkFic3RyYWN0U3RhdGU6OmV4ZWN1dGUpOgorICAgICAgICAqIGRmZy9E
RkdBcnJheU1vZGUuY3BwOgorICAgICAgICAoSlNDOjpERkc6OmFycmF5U3BlY3VsYXRpb25Ub1N0
cmluZyk6CisgICAgICAgICogZGZnL0RGR0FycmF5TW9kZS5oOgorICAgICAgICAoSlNDOjpERkc6
OkFycmF5TW9kZTo6aXNTYW5lQ2hhaW4pOgorICAgICAgICAoQXJyYXlNb2RlKToKKyAgICAgICAg
KEpTQzo6REZHOjpBcnJheU1vZGU6OmlzSW5Cb3VuZHMpOgorICAgICAgICAqIGRmZy9ERkdGaXh1
cFBoYXNlLmNwcDoKKyAgICAgICAgKEpTQzo6REZHOjpGaXh1cFBoYXNlOjpmaXh1cE5vZGUpOgor
ICAgICAgICAqIGRmZy9ERkdOb2RlRmxhZ3MuY3BwOgorICAgICAgICAoSlNDOjpERkc6Om5vZGVG
bGFnc0FzU3RyaW5nKToKKyAgICAgICAgKiBkZmcvREZHTm9kZUZsYWdzLmg6CisgICAgICAgIChE
RkcpOgorICAgICAgICAqIGRmZy9ERkdQcmVkaWN0aW9uUHJvcGFnYXRpb25QaGFzZS5jcHA6Cisg
ICAgICAgIChKU0M6OkRGRzo6UHJlZGljdGlvblByb3BhZ2F0aW9uUGhhc2U6OnByb3BhZ2F0ZSk6
CisgICAgICAgICogZGZnL0RGR1NwZWN1bGF0aXZlSklUNjQuY3BwOgorICAgICAgICAoSlNDOjpE
Rkc6OlNwZWN1bGF0aXZlSklUOjpjb21waWxlKToKKyAgICAgICAgKiBydW50aW1lL0pTR2xvYmFs
T2JqZWN0LmNwcDoKKyAgICAgICAgKEpTQzo6SlNHbG9iYWxPYmplY3Q6OmFycmF5UHJvdG90eXBl
Q2hhaW5Jc1NhbmUpOgorICAgICAgICAoSlNDKToKKyAgICAgICAgKiBydW50aW1lL0pTR2xvYmFs
T2JqZWN0Lmg6CisgICAgICAgIChKU0dsb2JhbE9iamVjdCk6CisKIDIwMTItMTEtMDggIEZpbGlw
IFBpemxvICA8ZnBpemxvQGFwcGxlLmNvbT4KIAogICAgICAgICBBcnJheVByb3RvdHlwZS5oIHNo
b3VsZCBoYXZlIGNvcnJlY3QgaW5kZW50YXRpb24KSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9kZmcvREZHQWJzdHJhY3RTdGF0ZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3Jp
cHRDb3JlL2RmZy9ERkdBYnN0cmFjdFN0YXRlLmNwcAkocmV2aXNpb24gMTM0MDAwKQorKysgU291
cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdBYnN0cmFjdFN0YXRlLmNwcAkod29ya2luZyBjb3B5
KQpAQCAtOTAxLDcgKzkwMSw5IEBAIGJvb2wgQWJzdHJhY3RTdGF0ZTo6ZXhlY3V0ZSh1bnNpZ25l
ZCBpbmQKICAgICAgICAgICAgIGlmIChub2RlLmFycmF5TW9kZSgpLmlzT3V0T2ZCb3VuZHMoKSkg
ewogICAgICAgICAgICAgICAgIGNsb2JiZXJXb3JsZChub2RlLmNvZGVPcmlnaW4sIGluZGV4SW5C
bG9jayk7CiAgICAgICAgICAgICAgICAgZm9yTm9kZShub2RlSW5kZXgpLm1ha2VUb3AoKTsKLSAg
ICAgICAgICAgIH0gZWxzZQorICAgICAgICAgICAgfSBlbHNlIGlmIChub2RlLmlzU2FuZUNoYWlu
KCkpCisgICAgICAgICAgICAgICAgZm9yTm9kZShub2RlSW5kZXgpLnNldChTcGVjRG91YmxlKTsK
KyAgICAgICAgICAgIGVsc2UKICAgICAgICAgICAgICAgICBmb3JOb2RlKG5vZGVJbmRleCkuc2V0
KFNwZWNEb3VibGVSZWFsKTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICBjYXNlIEFycmF5
OjpDb250aWd1b3VzOgpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdBcnJheU1v
ZGUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQXJyYXlN
b2RlLmNwcAkocmV2aXNpb24gMTM0MDAwKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9E
RkdBcnJheU1vZGUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zNjUsNiArMzY1LDggQEAgY29uc3Qg
Y2hhciogYXJyYXlDbGFzc1RvU3RyaW5nKEFycmF5OjpDbAogY29uc3QgY2hhciogYXJyYXlTcGVj
dWxhdGlvblRvU3RyaW5nKEFycmF5OjpTcGVjdWxhdGlvbiBzcGVjdWxhdGlvbikKIHsKICAgICBz
d2l0Y2ggKHNwZWN1bGF0aW9uKSB7CisgICAgY2FzZSBBcnJheTo6U2FuZUNoYWluOgorICAgICAg
ICByZXR1cm4gIlNhbmVDaGFpbiI7CiAgICAgY2FzZSBBcnJheTo6SW5Cb3VuZHM6CiAgICAgICAg
IHJldHVybiAiSW5Cb3VuZHMiOwogICAgIGNhc2UgQXJyYXk6OlRvSG9sZToKSW5kZXg6IFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQXJyYXlNb2RlLmgKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L0phdmFTY3JpcHRDb3JlL2RmZy9ERkdBcnJheU1vZGUuaAkocmV2aXNpb24gMTM0MDAwKQorKysg
U291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdBcnJheU1vZGUuaAkod29ya2luZyBjb3B5KQpA
QCAtODAsOSArODAsMTAgQEAgZW51bSBDbGFzcyB7CiB9OwogCiBlbnVtIFNwZWN1bGF0aW9uIHsK
LSAgICBJbkJvdW5kcywKLSAgICBUb0hvbGUsCi0gICAgT3V0T2ZCb3VuZHMKKyAgICBTYW5lQ2hh
aW4sIC8vIEluIGJvdW5kcyBhbmQgdGhlIGFycmF5IHByb3RvdHlwZSBjaGFpbiBpcyBzdGlsbCBp
bnRhY3QsIGkuZS4gbG9hZGluZyBhIGhvbGUgZG9lc24ndCByZXF1aXJlIHNwZWNpYWwgdHJlYXRt
ZW50LgorICAgIEluQm91bmRzLCAvLyBJbiBib3VuZHMgYW5kIG5vdCBsb2FkaW5nIGEgaG9sZS4K
KyAgICBUb0hvbGUsIC8vIFBvdGVudGlhbGx5IHN0b3JpbmcgdG8gYSBob2xlLgorICAgIE91dE9m
Qm91bmRzIC8vIE91dC1vZi1ib3VuZHMgYWNjZXNzIGFuZCBhbnl0aGluZyBjYW4gaGFwcGVuLgog
fTsKIGVudW0gQ29udmVyc2lvbiB7CiAgICAgQXNJcywKQEAgLTIxNyw5ICsyMTgsMjAgQEAgcHVi
bGljOgogICAgICAgICByZXR1cm4gYXJyYXlDbGFzcygpID09IEFycmF5OjpPcmlnaW5hbEFycmF5
OwogICAgIH0KICAgICAKKyAgICBib29sIGlzU2FuZUNoYWluKCkgY29uc3QKKyAgICB7CisgICAg
ICAgIHJldHVybiBzcGVjdWxhdGlvbigpID09IEFycmF5OjpTYW5lQ2hhaW47CisgICAgfQorICAg
IAogICAgIGJvb2wgaXNJbkJvdW5kcygpIGNvbnN0CiAgICAgewotICAgICAgICByZXR1cm4gc3Bl
Y3VsYXRpb24oKSA9PSBBcnJheTo6SW5Cb3VuZHM7CisgICAgICAgIHN3aXRjaCAoc3BlY3VsYXRp
b24oKSkgeworICAgICAgICBjYXNlIEFycmF5OjpTYW5lQ2hhaW46CisgICAgICAgIGNhc2UgQXJy
YXk6OkluQm91bmRzOgorICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgIGRlZmF1bHQ6
CisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIH0KICAgICB9CiAgICAgCiAgICAg
Ym9vbCBtYXlTdG9yZVRvSG9sZSgpIGNvbnN0CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
ZGZnL0RGR0ZpeHVwUGhhc2UuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9kZmcvREZHRml4dXBQaGFzZS5jcHAJKHJldmlzaW9uIDEzNDAwMCkKKysrIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9kZmcvREZHRml4dXBQaGFzZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEzNCw2
ICsxMzQsMTUgQEAgcHJpdmF0ZToKICAgICAgICAgICAgICAgICAgICAgbV9ncmFwaFtub2RlLmNo
aWxkMigpXS5wcmVkaWN0aW9uKCkpKTsKICAgICAgICAgICAgIAogICAgICAgICAgICAgYmxlc3NB
cnJheU9wZXJhdGlvbihub2RlLmNoaWxkMSgpLCBub2RlLmNoaWxkMigpLCAyKTsKKyAgICAgICAg
ICAgIAorICAgICAgICAgICAgQXJyYXlNb2RlIGFycmF5TW9kZSA9IG5vZGUuYXJyYXlNb2RlKCk7
CisgICAgICAgICAgICBpZiAoYXJyYXlNb2RlLnR5cGUoKSA9PSBBcnJheTo6RG91YmxlCisgICAg
ICAgICAgICAgICAgJiYgYXJyYXlNb2RlLmFycmF5Q2xhc3MoKSA9PSBBcnJheTo6T3JpZ2luYWxB
cnJheQorICAgICAgICAgICAgICAgICYmIGFycmF5TW9kZS5zcGVjdWxhdGlvbigpID09IEFycmF5
OjpJbkJvdW5kcworICAgICAgICAgICAgICAgICYmIGFycmF5TW9kZS5jb252ZXJzaW9uKCkgPT0g
QXJyYXk6OkFzSXMKKyAgICAgICAgICAgICAgICAmJiBtX2dyYXBoLmdsb2JhbE9iamVjdEZvcihu
b2RlLmNvZGVPcmlnaW4pLT5hcnJheVByb3RvdHlwZUNoYWluSXNTYW5lKCkKKyAgICAgICAgICAg
ICAgICAmJiAhKG5vZGUuZmxhZ3MoKSAmIE5vZGVVc2VkQXNPdGhlcikpCisgICAgICAgICAgICAg
ICAgbm9kZS5zZXRBcnJheU1vZGUoYXJyYXlNb2RlLndpdGhTcGVjdWxhdGlvbihOb2RlOjpTYW5l
Q2hhaW4pKTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9CiAgICAgICAgIGNhc2UgU3Ry
aW5nQ2hhckF0OgpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdOb2RlRmxhZ3Mu
Y3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHTm9kZUZsYWdz
LmNwcAkocmV2aXNpb24gMTM0MDAwKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdO
b2RlRmxhZ3MuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMTIsNiArMTEyLDEyIEBAIGNvbnN0IGNo
YXIqIG5vZGVGbGFnc0FzU3RyaW5nKE5vZGVGbGFncyAKICAgICAgICAgICAgIHB0ci5zdHJjYXQo
IlB1cmVOdW0iKTsKICAgICAgICAgICAgIGhhc1ByaW50ZWQgPSB0cnVlOwogICAgICAgICB9Cisg
ICAgICAgIGlmIChmbGFncyAmIE5vZGVVc2VkQXNPdGhlcikgeworICAgICAgICAgICAgaWYgKGhh
c1ByaW50ZWQpCisgICAgICAgICAgICAgICAgcHRyLnN0cmNhdCgifCIpOworICAgICAgICAgICAg
cHRyLnN0cmNhdCgiVXNlQXNPdGhlciIpOworICAgICAgICAgICAgaGFzUHJpbnRlZCA9IHRydWU7
CisgICAgICAgIH0KICAgICB9CiAgICAgCiAgICAgaWYgKGZsYWdzICYgTm9kZU1heU92ZXJmbG93
KSB7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR05vZGVGbGFncy5oCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHTm9kZUZsYWdzLmgJKHJldmlz
aW9uIDEzNDAwMCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHTm9kZUZsYWdzLmgJ
KHdvcmtpbmcgY29weSkKQEAgLTU2LDEwICs1NiwxMSBAQCBuYW1lc3BhY2UgSlNDIHsgbmFtZXNw
YWNlIERGRyB7CiAjZGVmaW5lIE5vZGVVc2VCb3R0b20gICAgICAgICAgICAgMHgwMDAKICNkZWZp
bmUgTm9kZVVzZWRBc051bWJlciAgICAgICAgICAweDQwMCAvLyBUaGUgcmVzdWx0IG9mIHRoaXMg
Y29tcHV0YXRpb24gbWF5IGJlIHVzZWQgaW4gYSBjb250ZXh0IHRoYXQgb2JzZXJ2ZXMgZnJhY3Rp
b25hbCByZXN1bHRzLgogI2RlZmluZSBOb2RlTmVlZHNOZWdaZXJvICAgICAgICAgIDB4ODAwIC8v
IFRoZSByZXN1bHQgb2YgdGhpcyBjb21wdXRhdGlvbiBtYXkgYmUgdXNlZCBpbiBhIGNvbnRleHQg
dGhhdCBvYnNlcnZlcyAtMC4KLSNkZWZpbmUgTm9kZVVzZWRBc1ZhbHVlICAgICAgICAgICAoTm9k
ZVVzZWRBc051bWJlciB8IE5vZGVOZWVkc05lZ1plcm8pCi0jZGVmaW5lIE5vZGVVc2VkQXNJbnQg
ICAgICAgICAgICAweDEwMDAgLy8gVGhlIHJlc3VsdCBvZiB0aGlzIGNvbXB1dGF0aW9uIGlzIGtu
b3duIHRvIGJlIHVzZWQgaW4gYSBjb250ZXh0IHRoYXQgcHJlZmVycywgYnV0IGRvZXMgbm90IHJl
cXVpcmUsIGludGVnZXIgdmFsdWVzLgorI2RlZmluZSBOb2RlVXNlZEFzT3RoZXIgICAgICAgICAg
MHgxMDAwIC8vIFRoZSByZXN1bHQgb2YgdGhpcyBjb21wdXRhdGlvbiBtYXkgYmUgdXNlZCBpbiBh
IGNvbnRleHQgdGhhdCBkaXN0aW5ndWlzaGVzIGJldHdlZW4gTmFOIGFuZCBvdGhlciB0aGluZ3Mg
KGxpa2UgdW5kZWZpbmVkKS4KKyNkZWZpbmUgTm9kZVVzZWRBc1ZhbHVlICAgICAgICAgIChOb2Rl
VXNlZEFzTnVtYmVyIHwgTm9kZU5lZWRzTmVnWmVybyB8IE5vZGVVc2VkQXNPdGhlcikKKyNkZWZp
bmUgTm9kZVVzZWRBc0ludCAgICAgICAgICAgIDB4MjAwMCAvLyBUaGUgcmVzdWx0IG9mIHRoaXMg
Y29tcHV0YXRpb24gaXMga25vd24gdG8gYmUgdXNlZCBpbiBhIGNvbnRleHQgdGhhdCBwcmVmZXJz
LCBidXQgZG9lcyBub3QgcmVxdWlyZSwgaW50ZWdlciB2YWx1ZXMuCiAKLSNkZWZpbmUgTm9kZURv
ZXNOb3RFeGl0ICAgICAgICAgIDB4MjAwMCAvLyBUaGlzIGZsYWcgaXMgbmVnYXRlZCB0byBtYWtl
IGl0IG5hdHVyYWwgZm9yIHRoZSBkZWZhdWx0IHRvIGJlIHRoYXQgYSBub2RlIGRvZXMgZXhpdC4K
KyNkZWZpbmUgTm9kZURvZXNOb3RFeGl0ICAgICAgICAgIDB4NDAwMCAvLyBUaGlzIGZsYWcgaXMg
bmVnYXRlZCB0byBtYWtlIGl0IG5hdHVyYWwgZm9yIHRoZSBkZWZhdWx0IHRvIGJlIHRoYXQgYSBu
b2RlIGRvZXMgZXhpdC4KIAogdHlwZWRlZiB1aW50MTZfdCBOb2RlRmxhZ3M7CiAKSW5kZXg6IFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHUHJlZGljdGlvblByb3BhZ2F0aW9uUGhhc2UuY3Bw
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHUHJlZGljdGlvblBy
b3BhZ2F0aW9uUGhhc2UuY3BwCShyZXZpc2lvbiAxMzQwMDApCisrKyBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvZGZnL0RGR1ByZWRpY3Rpb25Qcm9wYWdhdGlvblBoYXNlLmNwcAkod29ya2luZyBjb3B5
KQpAQCAtMTg0LDcgKzE4NCw3IEBAIHByaXZhdGU6CiAgICAgICAgIGNhc2UgQml0VVJTaGlmdDog
ewogICAgICAgICAgICAgY2hhbmdlZCB8PSBzZXRQcmVkaWN0aW9uKFNwZWNJbnQzMik7CiAgICAg
ICAgICAgICBmbGFncyB8PSBOb2RlVXNlZEFzSW50OwotICAgICAgICAgICAgZmxhZ3MgJj0gfihO
b2RlVXNlZEFzTnVtYmVyIHwgTm9kZU5lZWRzTmVnWmVybyk7CisgICAgICAgICAgICBmbGFncyAm
PSB+KE5vZGVVc2VkQXNOdW1iZXIgfCBOb2RlTmVlZHNOZWdaZXJvIHwgTm9kZVVzZWRBc090aGVy
KTsKICAgICAgICAgICAgIGNoYW5nZWQgfD0gbV9ncmFwaFtub2RlLmNoaWxkMSgpXS5tZXJnZUZs
YWdzKGZsYWdzKTsKICAgICAgICAgICAgIGNoYW5nZWQgfD0gbV9ncmFwaFtub2RlLmNoaWxkMigp
XS5tZXJnZUZsYWdzKGZsYWdzKTsKICAgICAgICAgICAgIGJyZWFrOwpAQCAtMTkzLDcgKzE5Myw3
IEBAIHByaXZhdGU6CiAgICAgICAgIGNhc2UgVmFsdWVUb0ludDMyOiB7CiAgICAgICAgICAgICBj
aGFuZ2VkIHw9IHNldFByZWRpY3Rpb24oU3BlY0ludDMyKTsKICAgICAgICAgICAgIGZsYWdzIHw9
IE5vZGVVc2VkQXNJbnQ7Ci0gICAgICAgICAgICBmbGFncyAmPSB+KE5vZGVVc2VkQXNOdW1iZXIg
fCBOb2RlTmVlZHNOZWdaZXJvKTsKKyAgICAgICAgICAgIGZsYWdzICY9IH4oTm9kZVVzZWRBc051
bWJlciB8IE5vZGVOZWVkc05lZ1plcm8gfCBOb2RlVXNlZEFzT3RoZXIpOwogICAgICAgICAgICAg
Y2hhbmdlZCB8PSBtX2dyYXBoW25vZGUuY2hpbGQxKCldLm1lcmdlRmxhZ3MoZmxhZ3MpOwogICAg
ICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KQEAgLTIyMSw3ICsyMjEsNyBAQCBwcml2YXRlOgog
ICAgICAgICBjYXNlIFN0cmluZ0NoYXJDb2RlQXQ6IHsKICAgICAgICAgICAgIGNoYW5nZWQgfD0g
bWVyZ2VQcmVkaWN0aW9uKFNwZWNJbnQzMik7CiAgICAgICAgICAgICBjaGFuZ2VkIHw9IG1fZ3Jh
cGhbbm9kZS5jaGlsZDEoKV0ubWVyZ2VGbGFncyhOb2RlVXNlZEFzVmFsdWUpOwotICAgICAgICAg
ICAgY2hhbmdlZCB8PSBtX2dyYXBoW25vZGUuY2hpbGQyKCldLm1lcmdlRmxhZ3MoTm9kZVVzZWRB
c051bWJlciB8IE5vZGVVc2VkQXNJbnQpOworICAgICAgICAgICAgY2hhbmdlZCB8PSBtX2dyYXBo
W25vZGUuY2hpbGQyKCldLm1lcmdlRmxhZ3MoTm9kZVVzZWRBc051bWJlciB8IE5vZGVVc2VkQXNP
dGhlciB8IE5vZGVVc2VkQXNJbnQpOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KIApA
QCAtMzg1LDcgKzM4NSw3IEBAIHByaXZhdGU6CiAgICAgICAgICAgICAgICAgICAgIGNoYW5nZWQg
fD0gbWVyZ2VQcmVkaWN0aW9uKFNwZWNEb3VibGUpOwogICAgICAgICAgICAgfQogICAgICAgICAg
ICAgCi0gICAgICAgICAgICBmbGFncyB8PSBOb2RlVXNlZEFzVmFsdWU7CisgICAgICAgICAgICBm
bGFncyB8PSBOb2RlVXNlZEFzTnVtYmVyIHwgTm9kZU5lZWRzTmVnWmVybzsKICAgICAgICAgICAg
IGNoYW5nZWQgfD0gbV9ncmFwaFtub2RlLmNoaWxkMSgpXS5tZXJnZUZsYWdzKGZsYWdzKTsKICAg
ICAgICAgICAgIGNoYW5nZWQgfD0gbV9ncmFwaFtub2RlLmNoaWxkMigpXS5tZXJnZUZsYWdzKGZs
YWdzKTsKICAgICAgICAgICAgIGJyZWFrOwpAQCAtMzkzLDcgKzM5Myw3IEBAIHByaXZhdGU6CiAg
ICAgICAgICAgICAKICAgICAgICAgY2FzZSBBcml0aFNxcnQ6IHsKICAgICAgICAgICAgIGNoYW5n
ZWQgfD0gc2V0UHJlZGljdGlvbihTcGVjRG91YmxlKTsKLSAgICAgICAgICAgIGNoYW5nZWQgfD0g
bV9ncmFwaFtub2RlLmNoaWxkMSgpXS5tZXJnZUZsYWdzKGZsYWdzIHwgTm9kZVVzZWRBc1ZhbHVl
KTsKKyAgICAgICAgICAgIGNoYW5nZWQgfD0gbV9ncmFwaFtub2RlLmNoaWxkMSgpXS5tZXJnZUZs
YWdzKGZsYWdzIHwgTm9kZVVzZWRBc051bWJlciB8IE5vZGVOZWVkc05lZ1plcm8pOwogICAgICAg
ICAgICAgYnJlYWs7CiAgICAgICAgIH0KICAgICAgICAgICAgIApAQCAtNDQ4LDEzICs0NDgsMTMg
QEAgcHJpdmF0ZToKICAgICAgICAgICAgICAgICBjaGFuZ2VkIHw9IG1lcmdlUHJlZGljdGlvbihu
b2RlLmdldEhlYXBQcmVkaWN0aW9uKCkpOwogCiAgICAgICAgICAgICBjaGFuZ2VkIHw9IG1fZ3Jh
cGhbbm9kZS5jaGlsZDEoKV0ubWVyZ2VGbGFncyhOb2RlVXNlZEFzVmFsdWUpOwotICAgICAgICAg
ICAgY2hhbmdlZCB8PSBtX2dyYXBoW25vZGUuY2hpbGQyKCldLm1lcmdlRmxhZ3MoTm9kZVVzZWRB
c051bWJlciB8IE5vZGVVc2VkQXNJbnQpOworICAgICAgICAgICAgY2hhbmdlZCB8PSBtX2dyYXBo
W25vZGUuY2hpbGQyKCldLm1lcmdlRmxhZ3MoTm9kZVVzZWRBc051bWJlciB8IE5vZGVVc2VkQXNP
dGhlciB8IE5vZGVVc2VkQXNJbnQpOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KICAg
ICAgICAgICAgIAogICAgICAgICBjYXNlIEdldE15QXJndW1lbnRCeVZhbFNhZmU6IHsKICAgICAg
ICAgICAgIGNoYW5nZWQgfD0gbWVyZ2VQcmVkaWN0aW9uKG5vZGUuZ2V0SGVhcFByZWRpY3Rpb24o
KSk7Ci0gICAgICAgICAgICBjaGFuZ2VkIHw9IG1fZ3JhcGhbbm9kZS5jaGlsZDEoKV0ubWVyZ2VG
bGFncyhOb2RlVXNlZEFzTnVtYmVyIHwgTm9kZVVzZWRBc0ludCk7CisgICAgICAgICAgICBjaGFu
Z2VkIHw9IG1fZ3JhcGhbbm9kZS5jaGlsZDEoKV0ubWVyZ2VGbGFncyhOb2RlVXNlZEFzTnVtYmVy
IHwgTm9kZVVzZWRBc090aGVyIHwgTm9kZVVzZWRBc0ludCk7CiAgICAgICAgICAgICBicmVhazsK
ICAgICAgICAgfQogICAgICAgICAgICAgCkBAIC01NTUsNyArNTU1LDcgQEAgcHJpdmF0ZToKICAg
ICAgICAgICAgIAogICAgICAgICBjYXNlIE5ld0FycmF5V2l0aFNpemU6IHsKICAgICAgICAgICAg
IGNoYW5nZWQgfD0gc2V0UHJlZGljdGlvbihTcGVjQXJyYXkpOwotICAgICAgICAgICAgY2hhbmdl
ZCB8PSBtX2dyYXBoW25vZGUuY2hpbGQxKCldLm1lcmdlRmxhZ3MoTm9kZVVzZWRBc051bWJlciB8
IE5vZGVVc2VkQXNJbnQpOworICAgICAgICAgICAgY2hhbmdlZCB8PSBtX2dyYXBoW25vZGUuY2hp
bGQxKCldLm1lcmdlRmxhZ3MoTm9kZVVzZWRBc1ZhbHVlIHwgTm9kZVVzZWRBc0ludCk7CiAgICAg
ICAgICAgICBicmVhazsKICAgICAgICAgfQogICAgICAgICAgICAgCkBAIC01NzIsNyArNTcyLDcg
QEAgcHJpdmF0ZToKICAgICAgICAgY2FzZSBTdHJpbmdDaGFyQXQ6IHsKICAgICAgICAgICAgIGNo
YW5nZWQgfD0gc2V0UHJlZGljdGlvbihTcGVjU3RyaW5nKTsKICAgICAgICAgICAgIGNoYW5nZWQg
fD0gbV9ncmFwaFtub2RlLmNoaWxkMSgpXS5tZXJnZUZsYWdzKE5vZGVVc2VkQXNWYWx1ZSk7Ci0g
ICAgICAgICAgICBjaGFuZ2VkIHw9IG1fZ3JhcGhbbm9kZS5jaGlsZDIoKV0ubWVyZ2VGbGFncyhO
b2RlVXNlZEFzTnVtYmVyIHwgTm9kZVVzZWRBc0ludCk7CisgICAgICAgICAgICBjaGFuZ2VkIHw9
IG1fZ3JhcGhbbm9kZS5jaGlsZDIoKV0ubWVyZ2VGbGFncyhOb2RlVXNlZEFzTnVtYmVyIHwgTm9k
ZVVzZWRBc090aGVyIHwgTm9kZVVzZWRBc0ludCk7CiAgICAgICAgICAgICBicmVhazsKICAgICAg
ICAgfQogICAgICAgICAgICAgCkBAIC01ODEsNyArNTgxLDcgQEAgcHJpdmF0ZToKICAgICAgICAg
ICAgIGZvciAodW5zaWduZWQgY2hpbGRJZHggPSBub2RlLmZpcnN0Q2hpbGQoKTsKICAgICAgICAg
ICAgICAgICAgY2hpbGRJZHggPCBub2RlLmZpcnN0Q2hpbGQoKSArIG5vZGUubnVtQ2hpbGRyZW4o
KTsKICAgICAgICAgICAgICAgICAgKytjaGlsZElkeCkKLSAgICAgICAgICAgICAgICBjaGFuZ2Vk
IHw9IG1fZ3JhcGhbbV9ncmFwaC5tX3ZhckFyZ0NoaWxkcmVuW2NoaWxkSWR4XV0ubWVyZ2VGbGFn
cyhOb2RlVXNlZEFzTnVtYmVyKTsKKyAgICAgICAgICAgICAgICBjaGFuZ2VkIHw9IG1fZ3JhcGhb
bV9ncmFwaC5tX3ZhckFyZ0NoaWxkcmVuW2NoaWxkSWR4XV0ubWVyZ2VGbGFncyhOb2RlVXNlZEFz
TnVtYmVyIHwgTm9kZVVzZWRBc090aGVyKTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9
CiAgICAgICAgICAgICAKQEAgLTY0Niw3ICs2NDYsNyBAQCBwcml2YXRlOgogICAgICAgICAKICAg
ICAgICAgY2FzZSBQdXRCeVZhbDoKICAgICAgICAgICAgIGNoYW5nZWQgfD0gbV9ncmFwaFttX2dy
YXBoLnZhckFyZ0NoaWxkKG5vZGUsIDApXS5tZXJnZUZsYWdzKE5vZGVVc2VkQXNWYWx1ZSk7Ci0g
ICAgICAgICAgICBjaGFuZ2VkIHw9IG1fZ3JhcGhbbV9ncmFwaC52YXJBcmdDaGlsZChub2RlLCAx
KV0ubWVyZ2VGbGFncyhOb2RlVXNlZEFzTnVtYmVyIHwgTm9kZVVzZWRBc0ludCk7CisgICAgICAg
ICAgICBjaGFuZ2VkIHw9IG1fZ3JhcGhbbV9ncmFwaC52YXJBcmdDaGlsZChub2RlLCAxKV0ubWVy
Z2VGbGFncyhOb2RlVXNlZEFzTnVtYmVyIHwgTm9kZVVzZWRBc090aGVyIHwgTm9kZVVzZWRBc0lu
dCk7CiAgICAgICAgICAgICBjaGFuZ2VkIHw9IG1fZ3JhcGhbbV9ncmFwaC52YXJBcmdDaGlsZChu
b2RlLCAyKV0ubWVyZ2VGbGFncyhOb2RlVXNlZEFzVmFsdWUpOwogICAgICAgICAgICAgYnJlYWs7
CiAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQ2NC5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2
ZUpJVDY0LmNwcAkocmV2aXNpb24gMTM0MDAwKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2Rm
Zy9ERkdTcGVjdWxhdGl2ZUpJVDY0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjY1NCw2ICsyNjU0
LDEzIEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGUoTm9kZSYgbm9kZSkKIAogICAgICAg
ICBjYXNlIEFycmF5OjpEb3VibGU6IHsKICAgICAgICAgICAgIGlmIChub2RlLmFycmF5TW9kZSgp
LmlzSW5Cb3VuZHMoKSkgeworICAgICAgICAgICAgICAgIGlmIChub2RlLmFycmF5TW9kZSgpLmlz
U2FuZUNoYWluKCkpIHsKKyAgICAgICAgICAgICAgICAgICAgSlNHbG9iYWxPYmplY3QqIGdsb2Jh
bE9iamVjdCA9IG1faml0Lmdsb2JhbE9iamVjdEZvcihub2RlLmNvZGVPcmlnaW4pOworICAgICAg
ICAgICAgICAgICAgICBBU1NFUlQoZ2xvYmFsT2JqZWN0LT5hcnJheVByb3RvdHlwZUNoYWluSXNT
YW5lKCkpOworICAgICAgICAgICAgICAgICAgICBnbG9iYWxPYmplY3QtPmFycmF5UHJvdG90eXBl
KCktPnN0cnVjdHVyZSgpLT5hZGRUcmFuc2l0aW9uV2F0Y2hwb2ludChzcGVjdWxhdGlvbldhdGNo
cG9pbnQoKSk7CisgICAgICAgICAgICAgICAgICAgIGdsb2JhbE9iamVjdC0+b2JqZWN0UHJvdG90
eXBlKCktPnN0cnVjdHVyZSgpLT5hZGRUcmFuc2l0aW9uV2F0Y2hwb2ludChzcGVjdWxhdGlvbldh
dGNocG9pbnQoKSk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIAogICAgICAg
ICAgICAgICAgIFNwZWN1bGF0ZVN0cmljdEludDMyT3BlcmFuZCBwcm9wZXJ0eSh0aGlzLCBub2Rl
LmNoaWxkMigpKTsKICAgICAgICAgICAgICAgICBTdG9yYWdlT3BlcmFuZCBzdG9yYWdlKHRoaXMs
IG5vZGUuY2hpbGQzKCkpOwogICAgICAgICAgICAgCkBAIC0yNjY3LDcgKzI2NzQsOCBAQCB2b2lk
IFNwZWN1bGF0aXZlSklUOjpjb21waWxlKE5vZGUmIG5vZGUpCiAgICAgICAgICAgICAKICAgICAg
ICAgICAgICAgICBGUFJUZW1wb3JhcnkgcmVzdWx0KHRoaXMpOwogICAgICAgICAgICAgICAgIG1f
aml0LmxvYWREb3VibGUoTWFjcm9Bc3NlbWJsZXI6OkJhc2VJbmRleChzdG9yYWdlUmVnLCBwcm9w
ZXJ0eVJlZywgTWFjcm9Bc3NlbWJsZXI6OlRpbWVzRWlnaHQpLCByZXN1bHQuZnByKCkpOwotICAg
ICAgICAgICAgICAgIHNwZWN1bGF0aW9uQ2hlY2soT3V0T2ZCb3VuZHMsIEpTVmFsdWVSZWdzKCks
IE5vTm9kZSwgbV9qaXQuYnJhbmNoRG91YmxlKE1hY3JvQXNzZW1ibGVyOjpEb3VibGVOb3RFcXVh
bE9yVW5vcmRlcmVkLCByZXN1bHQuZnByKCksIHJlc3VsdC5mcHIoKSkpOworICAgICAgICAgICAg
ICAgIGlmICghbm9kZS5hcnJheU1vZGUoKS5pc1NhbmVDaGFpbigpKQorICAgICAgICAgICAgICAg
ICAgICBzcGVjdWxhdGlvbkNoZWNrKE91dE9mQm91bmRzLCBKU1ZhbHVlUmVncygpLCBOb05vZGUs
IG1faml0LmJyYW5jaERvdWJsZShNYWNyb0Fzc2VtYmxlcjo6RG91YmxlTm90RXF1YWxPclVub3Jk
ZXJlZCwgcmVzdWx0LmZwcigpLCByZXN1bHQuZnByKCkpKTsKICAgICAgICAgICAgICAgICBkb3Vi
bGVSZXN1bHQocmVzdWx0LmZwcigpLCBtX2NvbXBpbGVJbmRleCk7CiAgICAgICAgICAgICAgICAg
YnJlYWs7CiAgICAgICAgICAgICB9CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9KU0dsb2JhbE9iamVjdC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvSlNHbG9iYWxPYmplY3QuY3BwCShyZXZpc2lvbiAxMzQwMDApCisrKyBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2JhbE9iamVjdC5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTQzNyw2ICs0MzcsMTQgQEAgdm9pZCBKU0dsb2JhbE9iamVjdDo6aGF2ZUFCYWRUaW1lKEpT
R2xvYgogICAgIH0KIH0KIAorYm9vbCBKU0dsb2JhbE9iamVjdDo6YXJyYXlQcm90b3R5cGVDaGFp
bklzU2FuZSgpCit7CisgICAgcmV0dXJuICFoYXNJbmRleGVkUHJvcGVydGllcyhtX2FycmF5UHJv
dG90eXBlLT5zdHJ1Y3R1cmUoKS0+aW5kZXhpbmdUeXBlKCkpCisgICAgICAgICYmIG1fYXJyYXlQ
cm90b3R5cGUtPnByb3RvdHlwZSgpID09IG1fb2JqZWN0UHJvdG90eXBlLmdldCgpCisgICAgICAg
ICYmICFoYXNJbmRleGVkUHJvcGVydGllcyhtX29iamVjdFByb3RvdHlwZS0+c3RydWN0dXJlKCkt
PmluZGV4aW5nVHlwZSgpKQorICAgICAgICAmJiBtX29iamVjdFByb3RvdHlwZS0+cHJvdG90eXBl
KCkuaXNOdWxsKCk7Cit9CisKIHZvaWQgSlNHbG9iYWxPYmplY3Q6OmNyZWF0ZVRocm93VHlwZUVy
cm9yKEV4ZWNTdGF0ZSogZXhlYykKIHsKICAgICBKU0Z1bmN0aW9uKiB0aHJvd2VyID0gSlNGdW5j
dGlvbjo6Y3JlYXRlKGV4ZWMsIHRoaXMsIDAsIFN0cmluZygpLCBnbG9iYWxGdW5jVGhyb3dUeXBl
RXJyb3IpOwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxPYmpl
Y3QuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2Jh
bE9iamVjdC5oCShyZXZpc2lvbiAxMzQwMDApCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9KU0dsb2JhbE9iamVjdC5oCSh3b3JraW5nIGNvcHkpCkBAIC0zMzMsNiArMzMzLDggQEAg
bmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIH0KICAgICAgICAgCiAgICAgICAgIHZvaWQgaGF2ZUFC
YWRUaW1lKEpTR2xvYmFsRGF0YSYpOworICAgICAgICAKKyAgICAgICAgYm9vbCBhcnJheVByb3Rv
dHlwZUNoYWluSXNTYW5lKCk7CiAKICAgICAgICAgdm9pZCBzZXRQcm9maWxlR3JvdXAodW5zaWdu
ZWQgdmFsdWUpIHsgY3JlYXRlUmFyZURhdGFJZk5lZWRlZCgpOyBtX3JhcmVEYXRhLT5wcm9maWxl
R3JvdXAgPSB2YWx1ZTsgfQogICAgICAgICB1bnNpZ25lZCBwcm9maWxlR3JvdXAoKSBjb25zdAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>173474</attachid>
            <date>2012-11-10 14:13:00 -0800</date>
            <delta_ts>2012-11-10 14:46:17 -0800</delta_ts>
            <desc>the patch</desc>
            <filename>nan.patch</filename>
            <type>text/plain</type>
            <size>20524</size>
            <attacher name="Filip Pizlo">fpizlo</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTM0MTYyKQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDQyIEBA
CisyMDEyLTExLTEwICBGaWxpcCBQaXpsbyAgPGZwaXpsb0BhcHBsZS5jb20+CisKKyAgICAgICAg
REZHIHNob3VsZCBvcHRpbWl6ZSBvdXQgdGhlIE5hTiBjaGVjayBvbiBsb2FkcyBmcm9tIGRvdWJs
ZSBhcnJheXMgaWYgdGhlIGFycmF5IHByb3RvdHlwZSBjaGFpbiBpcyBoYXZpbmcgYSBncmVhdCB0
aW1lCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDE3
MTgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBJZiB3
ZSdyZSByZWFkaW5nIGZyb20gYSBKU0FycmF5IGluIGRvdWJsZSBtb2RlLCB3aGVyZSB0aGUgYXJy
YXkncyBzdHJ1Y3R1cmUgaXMKKyAgICAgICAgcHJpbW9yZGlhbCAoYWxsIGFzcGVjdHMgb2YgdGhl
IHN0cnVjdHVyZSBhcmUgdW5jaGFuZ2VkIGV4Y2VwdCBmb3IgaW5kZXhpbmcgdHlwZSksCisgICAg
ICAgIGFuZCB0aGUgcmVzdWx0IG9mIHRoZSBsb2FkIGlzIHVzZWQgaW4gYXJpdGhtZXRpYyB0aGF0
IGlzIGtub3duIHRvIG5vdCBkaXN0aW5ndWlzaAorICAgICAgICBiZXR3ZWVuIE5hTiBhbmQgdW5k
ZWZpbmVkLCB0aGVuIHdlIHNob3VsZCBub3QgZW1pdCBhIE5hTiBjaGVjay4gTG9va3MgbGlrZSBh
IDUlCisgICAgICAgIHdpbiBvbiBuYXZpZXItc3Rva2VzLgorCisgICAgICAgICogZGZnL0RGR0Fi
c3RyYWN0U3RhdGUuY3BwOgorICAgICAgICAoSlNDOjpERkc6OkFic3RyYWN0U3RhdGU6OmV4ZWN1
dGUpOgorICAgICAgICAqIGRmZy9ERkdBcnJheU1vZGUuY3BwOgorICAgICAgICAoSlNDOjpERkc6
OmFycmF5U3BlY3VsYXRpb25Ub1N0cmluZyk6CisgICAgICAgICogZGZnL0RGR0FycmF5TW9kZS5o
OgorICAgICAgICAoSlNDOjpERkc6OkFycmF5TW9kZTo6aXNTYW5lQ2hhaW4pOgorICAgICAgICAo
QXJyYXlNb2RlKToKKyAgICAgICAgKEpTQzo6REZHOjpBcnJheU1vZGU6OmlzSW5Cb3VuZHMpOgor
ICAgICAgICAqIGRmZy9ERkdGaXh1cFBoYXNlLmNwcDoKKyAgICAgICAgKEpTQzo6REZHOjpGaXh1
cFBoYXNlOjpmaXh1cE5vZGUpOgorICAgICAgICAqIGRmZy9ERkdOb2RlRmxhZ3MuY3BwOgorICAg
ICAgICAoSlNDOjpERkc6Om5vZGVGbGFnc0FzU3RyaW5nKToKKyAgICAgICAgKiBkZmcvREZHTm9k
ZUZsYWdzLmg6CisgICAgICAgIChERkcpOgorICAgICAgICAqIGRmZy9ERkdQcmVkaWN0aW9uUHJv
cGFnYXRpb25QaGFzZS5jcHA6CisgICAgICAgIChKU0M6OkRGRzo6UHJlZGljdGlvblByb3BhZ2F0
aW9uUGhhc2U6OnByb3BhZ2F0ZSk6CisgICAgICAgICogZGZnL0RGR1NwZWN1bGF0aXZlSklUMzJf
NjQuY3BwOgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpjb21waWxlKToKKyAg
ICAgICAgKiBkZmcvREZHU3BlY3VsYXRpdmVKSVQ2NC5jcHA6CisgICAgICAgIChKU0M6OkRGRzo6
U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGUpOgorICAgICAgICAqIHJ1bnRpbWUvSlNHbG9iYWxPYmpl
Y3QuY3BwOgorICAgICAgICAoSlNDOjpKU0dsb2JhbE9iamVjdDo6YXJyYXlQcm90b3R5cGVDaGFp
bklzU2FuZSk6CisgICAgICAgIChKU0MpOgorICAgICAgICAqIHJ1bnRpbWUvSlNHbG9iYWxPYmpl
Y3QuaDoKKyAgICAgICAgKEpTR2xvYmFsT2JqZWN0KToKKwogMjAxMi0xMS0xMCAgU2hlcmlmZiBC
b3QgIDx3ZWJraXQucmV2aWV3LmJvdEBnbWFpbC5jb20+CiAKICAgICAgICAgVW5yZXZpZXdlZCwg
cm9sbGluZyBvdXQgcjEzMzk3MS4KSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZH
QWJzdHJhY3RTdGF0ZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2Rm
Zy9ERkdBYnN0cmFjdFN0YXRlLmNwcAkocmV2aXNpb24gMTM0MTU0KQorKysgU291cmNlL0phdmFT
Y3JpcHRDb3JlL2RmZy9ERkdBYnN0cmFjdFN0YXRlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtOTAx
LDcgKzkwMSw5IEBAIGJvb2wgQWJzdHJhY3RTdGF0ZTo6ZXhlY3V0ZSh1bnNpZ25lZCBpbmQKICAg
ICAgICAgICAgIGlmIChub2RlLmFycmF5TW9kZSgpLmlzT3V0T2ZCb3VuZHMoKSkgewogICAgICAg
ICAgICAgICAgIGNsb2JiZXJXb3JsZChub2RlLmNvZGVPcmlnaW4sIGluZGV4SW5CbG9jayk7CiAg
ICAgICAgICAgICAgICAgZm9yTm9kZShub2RlSW5kZXgpLm1ha2VUb3AoKTsKLSAgICAgICAgICAg
IH0gZWxzZQorICAgICAgICAgICAgfSBlbHNlIGlmIChub2RlLmFycmF5TW9kZSgpLmlzU2FuZUNo
YWluKCkpCisgICAgICAgICAgICAgICAgZm9yTm9kZShub2RlSW5kZXgpLnNldChTcGVjRG91Ymxl
KTsKKyAgICAgICAgICAgIGVsc2UKICAgICAgICAgICAgICAgICBmb3JOb2RlKG5vZGVJbmRleCku
c2V0KFNwZWNEb3VibGVSZWFsKTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICBjYXNlIEFy
cmF5OjpDb250aWd1b3VzOgpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdBcnJh
eU1vZGUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQXJy
YXlNb2RlLmNwcAkocmV2aXNpb24gMTM0MTU0KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2Rm
Zy9ERkdBcnJheU1vZGUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00MDksNiArNDA5LDggQEAgY29u
c3QgY2hhciogYXJyYXlDbGFzc1RvU3RyaW5nKEFycmF5OjpDbAogY29uc3QgY2hhciogYXJyYXlT
cGVjdWxhdGlvblRvU3RyaW5nKEFycmF5OjpTcGVjdWxhdGlvbiBzcGVjdWxhdGlvbikKIHsKICAg
ICBzd2l0Y2ggKHNwZWN1bGF0aW9uKSB7CisgICAgY2FzZSBBcnJheTo6U2FuZUNoYWluOgorICAg
ICAgICByZXR1cm4gIlNhbmVDaGFpbiI7CiAgICAgY2FzZSBBcnJheTo6SW5Cb3VuZHM6CiAgICAg
ICAgIHJldHVybiAiSW5Cb3VuZHMiOwogICAgIGNhc2UgQXJyYXk6OlRvSG9sZToKSW5kZXg6IFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQXJyYXlNb2RlLmgKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdBcnJheU1vZGUuaAkocmV2aXNpb24gMTM0MTU0KQor
KysgU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdBcnJheU1vZGUuaAkod29ya2luZyBjb3B5
KQpAQCAtODYsOSArODYsMTAgQEAgZW51bSBDbGFzcyB7CiB9OwogCiBlbnVtIFNwZWN1bGF0aW9u
IHsKLSAgICBJbkJvdW5kcywKLSAgICBUb0hvbGUsCi0gICAgT3V0T2ZCb3VuZHMKKyAgICBTYW5l
Q2hhaW4sIC8vIEluIGJvdW5kcyBhbmQgdGhlIGFycmF5IHByb3RvdHlwZSBjaGFpbiBpcyBzdGls
bCBpbnRhY3QsIGkuZS4gbG9hZGluZyBhIGhvbGUgZG9lc24ndCByZXF1aXJlIHNwZWNpYWwgdHJl
YXRtZW50LgorICAgIEluQm91bmRzLCAvLyBJbiBib3VuZHMgYW5kIG5vdCBsb2FkaW5nIGEgaG9s
ZS4KKyAgICBUb0hvbGUsIC8vIFBvdGVudGlhbGx5IHN0b3JpbmcgdG8gYSBob2xlLgorICAgIE91
dE9mQm91bmRzIC8vIE91dC1vZi1ib3VuZHMgYWNjZXNzIGFuZCBhbnl0aGluZyBjYW4gaGFwcGVu
LgogfTsKIGVudW0gQ29udmVyc2lvbiB7CiAgICAgQXNJcywKQEAgLTIyMyw5ICsyMjQsMjAgQEAg
cHVibGljOgogICAgICAgICByZXR1cm4gYXJyYXlDbGFzcygpID09IEFycmF5OjpPcmlnaW5hbEFy
cmF5OwogICAgIH0KICAgICAKKyAgICBib29sIGlzU2FuZUNoYWluKCkgY29uc3QKKyAgICB7Cisg
ICAgICAgIHJldHVybiBzcGVjdWxhdGlvbigpID09IEFycmF5OjpTYW5lQ2hhaW47CisgICAgfQor
ICAgIAogICAgIGJvb2wgaXNJbkJvdW5kcygpIGNvbnN0CiAgICAgewotICAgICAgICByZXR1cm4g
c3BlY3VsYXRpb24oKSA9PSBBcnJheTo6SW5Cb3VuZHM7CisgICAgICAgIHN3aXRjaCAoc3BlY3Vs
YXRpb24oKSkgeworICAgICAgICBjYXNlIEFycmF5OjpTYW5lQ2hhaW46CisgICAgICAgIGNhc2Ug
QXJyYXk6OkluQm91bmRzOgorICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgIGRlZmF1
bHQ6CisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIH0KICAgICB9CiAgICAgCiAg
ICAgYm9vbCBtYXlTdG9yZVRvSG9sZSgpIGNvbnN0CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvZGZnL0RGR0ZpeHVwUGhhc2UuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9kZmcvREZHRml4dXBQaGFzZS5jcHAJKHJldmlzaW9uIDEzNDE1NCkKKysrIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9kZmcvREZHRml4dXBQaGFzZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEz
NCw2ICsxMzQsMTUgQEAgcHJpdmF0ZToKICAgICAgICAgICAgICAgICAgICAgbV9ncmFwaFtub2Rl
LmNoaWxkMigpXS5wcmVkaWN0aW9uKCkpKTsKICAgICAgICAgICAgIAogICAgICAgICAgICAgYmxl
c3NBcnJheU9wZXJhdGlvbihub2RlLmNoaWxkMSgpLCBub2RlLmNoaWxkMigpLCAyKTsKKyAgICAg
ICAgICAgIAorICAgICAgICAgICAgQXJyYXlNb2RlIGFycmF5TW9kZSA9IG5vZGUuYXJyYXlNb2Rl
KCk7CisgICAgICAgICAgICBpZiAoYXJyYXlNb2RlLnR5cGUoKSA9PSBBcnJheTo6RG91YmxlCisg
ICAgICAgICAgICAgICAgJiYgYXJyYXlNb2RlLmFycmF5Q2xhc3MoKSA9PSBBcnJheTo6T3JpZ2lu
YWxBcnJheQorICAgICAgICAgICAgICAgICYmIGFycmF5TW9kZS5zcGVjdWxhdGlvbigpID09IEFy
cmF5OjpJbkJvdW5kcworICAgICAgICAgICAgICAgICYmIGFycmF5TW9kZS5jb252ZXJzaW9uKCkg
PT0gQXJyYXk6OkFzSXMKKyAgICAgICAgICAgICAgICAmJiBtX2dyYXBoLmdsb2JhbE9iamVjdEZv
cihub2RlLmNvZGVPcmlnaW4pLT5hcnJheVByb3RvdHlwZUNoYWluSXNTYW5lKCkKKyAgICAgICAg
ICAgICAgICAmJiAhKG5vZGUuZmxhZ3MoKSAmIE5vZGVVc2VkQXNPdGhlcikpCisgICAgICAgICAg
ICAgICAgbm9kZS5zZXRBcnJheU1vZGUoYXJyYXlNb2RlLndpdGhTcGVjdWxhdGlvbihBcnJheTo6
U2FuZUNoYWluKSk7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgfQogICAgICAgICBjYXNl
IFN0cmluZ0NoYXJBdDoKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHTm9kZUZs
YWdzLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR05vZGVG
bGFncy5jcHAJKHJldmlzaW9uIDEzNDE1NCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcv
REZHTm9kZUZsYWdzLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTEyLDYgKzExMiwxMiBAQCBjb25z
dCBjaGFyKiBub2RlRmxhZ3NBc1N0cmluZyhOb2RlRmxhZ3MgCiAgICAgICAgICAgICBwdHIuc3Ry
Y2F0KCJQdXJlTnVtIik7CiAgICAgICAgICAgICBoYXNQcmludGVkID0gdHJ1ZTsKICAgICAgICAg
fQorICAgICAgICBpZiAoZmxhZ3MgJiBOb2RlVXNlZEFzT3RoZXIpIHsKKyAgICAgICAgICAgIGlm
IChoYXNQcmludGVkKQorICAgICAgICAgICAgICAgIHB0ci5zdHJjYXQoInwiKTsKKyAgICAgICAg
ICAgIHB0ci5zdHJjYXQoIlVzZUFzT3RoZXIiKTsKKyAgICAgICAgICAgIGhhc1ByaW50ZWQgPSB0
cnVlOworICAgICAgICB9CiAgICAgfQogICAgIAogICAgIGlmIChmbGFncyAmIE5vZGVNYXlPdmVy
ZmxvdykgewpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdOb2RlRmxhZ3MuaAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR05vZGVGbGFncy5oCShy
ZXZpc2lvbiAxMzQxNTQpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR05vZGVGbGFn
cy5oCSh3b3JraW5nIGNvcHkpCkBAIC01NiwxMCArNTYsMTEgQEAgbmFtZXNwYWNlIEpTQyB7IG5h
bWVzcGFjZSBERkcgewogI2RlZmluZSBOb2RlVXNlQm90dG9tICAgICAgICAgICAgIDB4MDAwCiAj
ZGVmaW5lIE5vZGVVc2VkQXNOdW1iZXIgICAgICAgICAgMHg0MDAgLy8gVGhlIHJlc3VsdCBvZiB0
aGlzIGNvbXB1dGF0aW9uIG1heSBiZSB1c2VkIGluIGEgY29udGV4dCB0aGF0IG9ic2VydmVzIGZy
YWN0aW9uYWwgcmVzdWx0cy4KICNkZWZpbmUgTm9kZU5lZWRzTmVnWmVybyAgICAgICAgICAweDgw
MCAvLyBUaGUgcmVzdWx0IG9mIHRoaXMgY29tcHV0YXRpb24gbWF5IGJlIHVzZWQgaW4gYSBjb250
ZXh0IHRoYXQgb2JzZXJ2ZXMgLTAuCi0jZGVmaW5lIE5vZGVVc2VkQXNWYWx1ZSAgICAgICAgICAg
KE5vZGVVc2VkQXNOdW1iZXIgfCBOb2RlTmVlZHNOZWdaZXJvKQotI2RlZmluZSBOb2RlVXNlZEFz
SW50ICAgICAgICAgICAgMHgxMDAwIC8vIFRoZSByZXN1bHQgb2YgdGhpcyBjb21wdXRhdGlvbiBp
cyBrbm93biB0byBiZSB1c2VkIGluIGEgY29udGV4dCB0aGF0IHByZWZlcnMsIGJ1dCBkb2VzIG5v
dCByZXF1aXJlLCBpbnRlZ2VyIHZhbHVlcy4KKyNkZWZpbmUgTm9kZVVzZWRBc090aGVyICAgICAg
ICAgIDB4MTAwMCAvLyBUaGUgcmVzdWx0IG9mIHRoaXMgY29tcHV0YXRpb24gbWF5IGJlIHVzZWQg
aW4gYSBjb250ZXh0IHRoYXQgZGlzdGluZ3Vpc2hlcyBiZXR3ZWVuIE5hTiBhbmQgb3RoZXIgdGhp
bmdzIChsaWtlIHVuZGVmaW5lZCkuCisjZGVmaW5lIE5vZGVVc2VkQXNWYWx1ZSAgICAgICAgICAo
Tm9kZVVzZWRBc051bWJlciB8IE5vZGVOZWVkc05lZ1plcm8gfCBOb2RlVXNlZEFzT3RoZXIpCisj
ZGVmaW5lIE5vZGVVc2VkQXNJbnQgICAgICAgICAgICAweDIwMDAgLy8gVGhlIHJlc3VsdCBvZiB0
aGlzIGNvbXB1dGF0aW9uIGlzIGtub3duIHRvIGJlIHVzZWQgaW4gYSBjb250ZXh0IHRoYXQgcHJl
ZmVycywgYnV0IGRvZXMgbm90IHJlcXVpcmUsIGludGVnZXIgdmFsdWVzLgogCi0jZGVmaW5lIE5v
ZGVEb2VzTm90RXhpdCAgICAgICAgICAweDIwMDAgLy8gVGhpcyBmbGFnIGlzIG5lZ2F0ZWQgdG8g
bWFrZSBpdCBuYXR1cmFsIGZvciB0aGUgZGVmYXVsdCB0byBiZSB0aGF0IGEgbm9kZSBkb2VzIGV4
aXQuCisjZGVmaW5lIE5vZGVEb2VzTm90RXhpdCAgICAgICAgICAweDQwMDAgLy8gVGhpcyBmbGFn
IGlzIG5lZ2F0ZWQgdG8gbWFrZSBpdCBuYXR1cmFsIGZvciB0aGUgZGVmYXVsdCB0byBiZSB0aGF0
IGEgbm9kZSBkb2VzIGV4aXQuCiAKIHR5cGVkZWYgdWludDE2X3QgTm9kZUZsYWdzOwogCkluZGV4
OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1ByZWRpY3Rpb25Qcm9wYWdhdGlvblBoYXNl
LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1ByZWRpY3Rp
b25Qcm9wYWdhdGlvblBoYXNlLmNwcAkocmV2aXNpb24gMTM0MTU0KQorKysgU291cmNlL0phdmFT
Y3JpcHRDb3JlL2RmZy9ERkdQcmVkaWN0aW9uUHJvcGFnYXRpb25QaGFzZS5jcHAJKHdvcmtpbmcg
Y29weSkKQEAgLTE4NCw3ICsxODQsNyBAQCBwcml2YXRlOgogICAgICAgICBjYXNlIEJpdFVSU2hp
ZnQ6IHsKICAgICAgICAgICAgIGNoYW5nZWQgfD0gc2V0UHJlZGljdGlvbihTcGVjSW50MzIpOwog
ICAgICAgICAgICAgZmxhZ3MgfD0gTm9kZVVzZWRBc0ludDsKLSAgICAgICAgICAgIGZsYWdzICY9
IH4oTm9kZVVzZWRBc051bWJlciB8IE5vZGVOZWVkc05lZ1plcm8pOworICAgICAgICAgICAgZmxh
Z3MgJj0gfihOb2RlVXNlZEFzTnVtYmVyIHwgTm9kZU5lZWRzTmVnWmVybyB8IE5vZGVVc2VkQXNP
dGhlcik7CiAgICAgICAgICAgICBjaGFuZ2VkIHw9IG1fZ3JhcGhbbm9kZS5jaGlsZDEoKV0ubWVy
Z2VGbGFncyhmbGFncyk7CiAgICAgICAgICAgICBjaGFuZ2VkIHw9IG1fZ3JhcGhbbm9kZS5jaGls
ZDIoKV0ubWVyZ2VGbGFncyhmbGFncyk7CiAgICAgICAgICAgICBicmVhazsKQEAgLTE5Myw3ICsx
OTMsNyBAQCBwcml2YXRlOgogICAgICAgICBjYXNlIFZhbHVlVG9JbnQzMjogewogICAgICAgICAg
ICAgY2hhbmdlZCB8PSBzZXRQcmVkaWN0aW9uKFNwZWNJbnQzMik7CiAgICAgICAgICAgICBmbGFn
cyB8PSBOb2RlVXNlZEFzSW50OwotICAgICAgICAgICAgZmxhZ3MgJj0gfihOb2RlVXNlZEFzTnVt
YmVyIHwgTm9kZU5lZWRzTmVnWmVybyk7CisgICAgICAgICAgICBmbGFncyAmPSB+KE5vZGVVc2Vk
QXNOdW1iZXIgfCBOb2RlTmVlZHNOZWdaZXJvIHwgTm9kZVVzZWRBc090aGVyKTsKICAgICAgICAg
ICAgIGNoYW5nZWQgfD0gbV9ncmFwaFtub2RlLmNoaWxkMSgpXS5tZXJnZUZsYWdzKGZsYWdzKTsK
ICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9CkBAIC0yMjEsNyArMjIxLDcgQEAgcHJpdmF0
ZToKICAgICAgICAgY2FzZSBTdHJpbmdDaGFyQ29kZUF0OiB7CiAgICAgICAgICAgICBjaGFuZ2Vk
IHw9IG1lcmdlUHJlZGljdGlvbihTcGVjSW50MzIpOwogICAgICAgICAgICAgY2hhbmdlZCB8PSBt
X2dyYXBoW25vZGUuY2hpbGQxKCldLm1lcmdlRmxhZ3MoTm9kZVVzZWRBc1ZhbHVlKTsKLSAgICAg
ICAgICAgIGNoYW5nZWQgfD0gbV9ncmFwaFtub2RlLmNoaWxkMigpXS5tZXJnZUZsYWdzKE5vZGVV
c2VkQXNOdW1iZXIgfCBOb2RlVXNlZEFzSW50KTsKKyAgICAgICAgICAgIGNoYW5nZWQgfD0gbV9n
cmFwaFtub2RlLmNoaWxkMigpXS5tZXJnZUZsYWdzKE5vZGVVc2VkQXNOdW1iZXIgfCBOb2RlVXNl
ZEFzT3RoZXIgfCBOb2RlVXNlZEFzSW50KTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9
CiAKQEAgLTI1NCw2ICsyNTQsOCBAQCBwcml2YXRlOgogICAgICAgICAgICAgCiAgICAgICAgICAg
ICBpZiAoaXNOb3ROZWdaZXJvKG5vZGUuY2hpbGQxKCkuaW5kZXgoKSkgfHwgaXNOb3ROZWdaZXJv
KG5vZGUuY2hpbGQyKCkuaW5kZXgoKSkpCiAgICAgICAgICAgICAgICAgZmxhZ3MgJj0gfk5vZGVO
ZWVkc05lZ1plcm87CisgICAgICAgICAgICBpZiAobV9ncmFwaFtub2RlLmNoaWxkMSgpXS5oYXNO
dW1iZXJSZXN1bHQoKSB8fCBtX2dyYXBoW25vZGUuY2hpbGQyKCldLmhhc051bWJlclJlc3VsdCgp
KQorICAgICAgICAgICAgICAgIGZsYWdzICY9IH5Ob2RlVXNlZEFzT3RoZXI7CiAgICAgICAgICAg
ICAKICAgICAgICAgICAgIGNoYW5nZWQgfD0gbV9ncmFwaFtub2RlLmNoaWxkMSgpXS5tZXJnZUZs
YWdzKGZsYWdzKTsKICAgICAgICAgICAgIGNoYW5nZWQgfD0gbV9ncmFwaFtub2RlLmNoaWxkMigp
XS5tZXJnZUZsYWdzKGZsYWdzKTsKQEAgLTI3Myw2ICsyNzUsNyBAQCBwcml2YXRlOgogICAgICAg
ICAgICAgCiAgICAgICAgICAgICBpZiAoaXNOb3ROZWdaZXJvKG5vZGUuY2hpbGQxKCkuaW5kZXgo
KSkgfHwgaXNOb3ROZWdaZXJvKG5vZGUuY2hpbGQyKCkuaW5kZXgoKSkpCiAgICAgICAgICAgICAg
ICAgZmxhZ3MgJj0gfk5vZGVOZWVkc05lZ1plcm87CisgICAgICAgICAgICBmbGFncyAmPSB+Tm9k
ZVVzZWRBc090aGVyOwogICAgICAgICAgICAgCiAgICAgICAgICAgICBjaGFuZ2VkIHw9IG1fZ3Jh
cGhbbm9kZS5jaGlsZDEoKV0ubWVyZ2VGbGFncyhmbGFncyk7CiAgICAgICAgICAgICBjaGFuZ2Vk
IHw9IG1fZ3JhcGhbbm9kZS5jaGlsZDIoKV0ubWVyZ2VGbGFncyhmbGFncyk7CkBAIC0yOTIsNiAr
Mjk1LDcgQEAgcHJpdmF0ZToKIAogICAgICAgICAgICAgaWYgKGlzTm90WmVybyhub2RlLmNoaWxk
MSgpLmluZGV4KCkpIHx8IGlzTm90WmVybyhub2RlLmNoaWxkMigpLmluZGV4KCkpKQogICAgICAg
ICAgICAgICAgIGZsYWdzICY9IH5Ob2RlTmVlZHNOZWdaZXJvOworICAgICAgICAgICAgZmxhZ3Mg
Jj0gfk5vZGVVc2VkQXNPdGhlcjsKICAgICAgICAgICAgIAogICAgICAgICAgICAgY2hhbmdlZCB8
PSBtX2dyYXBoW25vZGUuY2hpbGQxKCldLm1lcmdlRmxhZ3MoZmxhZ3MpOwogICAgICAgICAgICAg
Y2hhbmdlZCB8PSBtX2dyYXBoW25vZGUuY2hpbGQyKCldLm1lcmdlRmxhZ3MoZmxhZ3MpOwpAQCAt
MzA2LDYgKzMxMCw4IEBAIHByaXZhdGU6CiAgICAgICAgICAgICAgICAgICAgIGNoYW5nZWQgfD0g
bWVyZ2VQcmVkaWN0aW9uKHNwZWN1bGF0ZWREb3VibGVUeXBlRm9yUHJlZGljdGlvbihtX2dyYXBo
W25vZGUuY2hpbGQxKCldLnByZWRpY3Rpb24oKSkpOwogICAgICAgICAgICAgfQogCisgICAgICAg
ICAgICBmbGFncyAmPSB+Tm9kZVVzZWRBc090aGVyOworCiAgICAgICAgICAgICBjaGFuZ2VkIHw9
IG1fZ3JhcGhbbm9kZS5jaGlsZDEoKV0ubWVyZ2VGbGFncyhmbGFncyk7CiAgICAgICAgICAgICBi
cmVhazsKICAgICAgICAgICAgIApAQCAtMzIzLDYgKzMyOSw4IEBAIHByaXZhdGU6CiAgICAgICAg
ICAgICB9CiAKICAgICAgICAgICAgIGZsYWdzIHw9IE5vZGVVc2VkQXNOdW1iZXI7CisgICAgICAg
ICAgICBmbGFncyAmPSB+Tm9kZVVzZWRBc090aGVyOworCiAgICAgICAgICAgICBjaGFuZ2VkIHw9
IG1fZ3JhcGhbbm9kZS5jaGlsZDEoKV0ubWVyZ2VGbGFncyhmbGFncyk7CiAgICAgICAgICAgICBj
aGFuZ2VkIHw9IG1fZ3JhcGhbbm9kZS5jaGlsZDIoKV0ubWVyZ2VGbGFncyhmbGFncyk7CiAgICAg
ICAgICAgICBicmVhazsKQEAgLTM0NSw2ICszNTMsOCBAQCBwcml2YXRlOgogICAgICAgICAgICAg
Ly8gbm8gbWF0dGVyIHdoYXQsIGFuZCBhbHdheXMgZm9yY2VzIGl0cyBpbnB1dHMgdG8gY2hlY2sg
YXMgd2VsbC4KICAgICAgICAgICAgIAogICAgICAgICAgICAgZmxhZ3MgfD0gTm9kZVVzZWRBc051
bWJlciB8IE5vZGVOZWVkc05lZ1plcm87CisgICAgICAgICAgICBmbGFncyAmPSB+Tm9kZVVzZWRB
c090aGVyOworCiAgICAgICAgICAgICBjaGFuZ2VkIHw9IG1fZ3JhcGhbbm9kZS5jaGlsZDEoKV0u
bWVyZ2VGbGFncyhmbGFncyk7CiAgICAgICAgICAgICBjaGFuZ2VkIHw9IG1fZ3JhcGhbbm9kZS5j
aGlsZDIoKV0ubWVyZ2VGbGFncyhmbGFncyk7CiAgICAgICAgICAgICBicmVhazsKQEAgLTM2OCw2
ICszNzgsOCBAQCBwcml2YXRlOgogICAgICAgICAgICAgLy8gbm8gbWF0dGVyIHdoYXQsIGFuZCBh
bHdheXMgZm9yY2VzIGl0cyBpbnB1dHMgdG8gY2hlY2sgYXMgd2VsbC4KICAgICAgICAgICAgIAog
ICAgICAgICAgICAgZmxhZ3MgfD0gTm9kZVVzZWRBc051bWJlciB8IE5vZGVOZWVkc05lZ1plcm87
CisgICAgICAgICAgICBmbGFncyAmPSB+Tm9kZVVzZWRBc090aGVyOworCiAgICAgICAgICAgICBj
aGFuZ2VkIHw9IG1fZ3JhcGhbbm9kZS5jaGlsZDEoKV0ubWVyZ2VGbGFncyhmbGFncyk7CiAgICAg
ICAgICAgICBjaGFuZ2VkIHw9IG1fZ3JhcGhbbm9kZS5jaGlsZDIoKV0ubWVyZ2VGbGFncyhmbGFn
cyk7CiAgICAgICAgICAgICBicmVhazsKQEAgLTM4NSw3ICszOTcsOSBAQCBwcml2YXRlOgogICAg
ICAgICAgICAgICAgICAgICBjaGFuZ2VkIHw9IG1lcmdlUHJlZGljdGlvbihTcGVjRG91YmxlKTsK
ICAgICAgICAgICAgIH0KICAgICAgICAgICAgIAotICAgICAgICAgICAgZmxhZ3MgfD0gTm9kZVVz
ZWRBc1ZhbHVlOworICAgICAgICAgICAgZmxhZ3MgfD0gTm9kZVVzZWRBc051bWJlciB8IE5vZGVO
ZWVkc05lZ1plcm87CisgICAgICAgICAgICBmbGFncyAmPSB+Tm9kZVVzZWRBc090aGVyOworCiAg
ICAgICAgICAgICBjaGFuZ2VkIHw9IG1fZ3JhcGhbbm9kZS5jaGlsZDEoKV0ubWVyZ2VGbGFncyhm
bGFncyk7CiAgICAgICAgICAgICBjaGFuZ2VkIHw9IG1fZ3JhcGhbbm9kZS5jaGlsZDIoKV0ubWVy
Z2VGbGFncyhmbGFncyk7CiAgICAgICAgICAgICBicmVhazsKQEAgLTM5Myw3ICs0MDcsOSBAQCBw
cml2YXRlOgogICAgICAgICAgICAgCiAgICAgICAgIGNhc2UgQXJpdGhTcXJ0OiB7CiAgICAgICAg
ICAgICBjaGFuZ2VkIHw9IHNldFByZWRpY3Rpb24oU3BlY0RvdWJsZSk7Ci0gICAgICAgICAgICBj
aGFuZ2VkIHw9IG1fZ3JhcGhbbm9kZS5jaGlsZDEoKV0ubWVyZ2VGbGFncyhmbGFncyB8IE5vZGVV
c2VkQXNWYWx1ZSk7CisgICAgICAgICAgICBmbGFncyB8PSBOb2RlVXNlZEFzTnVtYmVyIHwgTm9k
ZU5lZWRzTmVnWmVybzsKKyAgICAgICAgICAgIGZsYWdzICY9IH5Ob2RlVXNlZEFzT3RoZXI7Cisg
ICAgICAgICAgICBjaGFuZ2VkIHw9IG1fZ3JhcGhbbm9kZS5jaGlsZDEoKV0ubWVyZ2VGbGFncyhm
bGFncyk7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgfQogICAgICAgICAgICAgCkBAIC00
MDUsNyArNDIxLDYgQEAgcHJpdmF0ZToKICAgICAgICAgICAgIGVsc2UKICAgICAgICAgICAgICAg
ICBjaGFuZ2VkIHw9IG1lcmdlUHJlZGljdGlvbihzcGVjdWxhdGVkRG91YmxlVHlwZUZvclByZWRp
Y3Rpb24oY2hpbGQpKTsKIAotICAgICAgICAgICAgZmxhZ3MgJj0gfk5vZGVOZWVkc05lZ1plcm87
CiAgICAgICAgICAgICBjaGFuZ2VkIHw9IG1fZ3JhcGhbbm9kZS5jaGlsZDEoKV0ubWVyZ2VGbGFn
cyhmbGFncyk7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgfQpAQCAtNDQ4LDEzICs0NjMs
MTMgQEAgcHJpdmF0ZToKICAgICAgICAgICAgICAgICBjaGFuZ2VkIHw9IG1lcmdlUHJlZGljdGlv
bihub2RlLmdldEhlYXBQcmVkaWN0aW9uKCkpOwogCiAgICAgICAgICAgICBjaGFuZ2VkIHw9IG1f
Z3JhcGhbbm9kZS5jaGlsZDEoKV0ubWVyZ2VGbGFncyhOb2RlVXNlZEFzVmFsdWUpOwotICAgICAg
ICAgICAgY2hhbmdlZCB8PSBtX2dyYXBoW25vZGUuY2hpbGQyKCldLm1lcmdlRmxhZ3MoTm9kZVVz
ZWRBc051bWJlciB8IE5vZGVVc2VkQXNJbnQpOworICAgICAgICAgICAgY2hhbmdlZCB8PSBtX2dy
YXBoW25vZGUuY2hpbGQyKCldLm1lcmdlRmxhZ3MoTm9kZVVzZWRBc051bWJlciB8IE5vZGVVc2Vk
QXNPdGhlciB8IE5vZGVVc2VkQXNJbnQpOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0K
ICAgICAgICAgICAgIAogICAgICAgICBjYXNlIEdldE15QXJndW1lbnRCeVZhbFNhZmU6IHsKICAg
ICAgICAgICAgIGNoYW5nZWQgfD0gbWVyZ2VQcmVkaWN0aW9uKG5vZGUuZ2V0SGVhcFByZWRpY3Rp
b24oKSk7Ci0gICAgICAgICAgICBjaGFuZ2VkIHw9IG1fZ3JhcGhbbm9kZS5jaGlsZDEoKV0ubWVy
Z2VGbGFncyhOb2RlVXNlZEFzTnVtYmVyIHwgTm9kZVVzZWRBc0ludCk7CisgICAgICAgICAgICBj
aGFuZ2VkIHw9IG1fZ3JhcGhbbm9kZS5jaGlsZDEoKV0ubWVyZ2VGbGFncyhOb2RlVXNlZEFzTnVt
YmVyIHwgTm9kZVVzZWRBc090aGVyIHwgTm9kZVVzZWRBc0ludCk7CiAgICAgICAgICAgICBicmVh
azsKICAgICAgICAgfQogICAgICAgICAgICAgCkBAIC01NTUsNyArNTcwLDcgQEAgcHJpdmF0ZToK
ICAgICAgICAgICAgIAogICAgICAgICBjYXNlIE5ld0FycmF5V2l0aFNpemU6IHsKICAgICAgICAg
ICAgIGNoYW5nZWQgfD0gc2V0UHJlZGljdGlvbihTcGVjQXJyYXkpOwotICAgICAgICAgICAgY2hh
bmdlZCB8PSBtX2dyYXBoW25vZGUuY2hpbGQxKCldLm1lcmdlRmxhZ3MoTm9kZVVzZWRBc051bWJl
ciB8IE5vZGVVc2VkQXNJbnQpOworICAgICAgICAgICAgY2hhbmdlZCB8PSBtX2dyYXBoW25vZGUu
Y2hpbGQxKCldLm1lcmdlRmxhZ3MoTm9kZVVzZWRBc1ZhbHVlIHwgTm9kZVVzZWRBc0ludCk7CiAg
ICAgICAgICAgICBicmVhazsKICAgICAgICAgfQogICAgICAgICAgICAgCkBAIC01NzIsNyArNTg3
LDcgQEAgcHJpdmF0ZToKICAgICAgICAgY2FzZSBTdHJpbmdDaGFyQXQ6IHsKICAgICAgICAgICAg
IGNoYW5nZWQgfD0gc2V0UHJlZGljdGlvbihTcGVjU3RyaW5nKTsKICAgICAgICAgICAgIGNoYW5n
ZWQgfD0gbV9ncmFwaFtub2RlLmNoaWxkMSgpXS5tZXJnZUZsYWdzKE5vZGVVc2VkQXNWYWx1ZSk7
Ci0gICAgICAgICAgICBjaGFuZ2VkIHw9IG1fZ3JhcGhbbm9kZS5jaGlsZDIoKV0ubWVyZ2VGbGFn
cyhOb2RlVXNlZEFzTnVtYmVyIHwgTm9kZVVzZWRBc0ludCk7CisgICAgICAgICAgICBjaGFuZ2Vk
IHw9IG1fZ3JhcGhbbm9kZS5jaGlsZDIoKV0ubWVyZ2VGbGFncyhOb2RlVXNlZEFzTnVtYmVyIHwg
Tm9kZVVzZWRBc090aGVyIHwgTm9kZVVzZWRBc0ludCk7CiAgICAgICAgICAgICBicmVhazsKICAg
ICAgICAgfQogICAgICAgICAgICAgCkBAIC01ODEsNyArNTk2LDcgQEAgcHJpdmF0ZToKICAgICAg
ICAgICAgIGZvciAodW5zaWduZWQgY2hpbGRJZHggPSBub2RlLmZpcnN0Q2hpbGQoKTsKICAgICAg
ICAgICAgICAgICAgY2hpbGRJZHggPCBub2RlLmZpcnN0Q2hpbGQoKSArIG5vZGUubnVtQ2hpbGRy
ZW4oKTsKICAgICAgICAgICAgICAgICAgKytjaGlsZElkeCkKLSAgICAgICAgICAgICAgICBjaGFu
Z2VkIHw9IG1fZ3JhcGhbbV9ncmFwaC5tX3ZhckFyZ0NoaWxkcmVuW2NoaWxkSWR4XV0ubWVyZ2VG
bGFncyhOb2RlVXNlZEFzTnVtYmVyKTsKKyAgICAgICAgICAgICAgICBjaGFuZ2VkIHw9IG1fZ3Jh
cGhbbV9ncmFwaC5tX3ZhckFyZ0NoaWxkcmVuW2NoaWxkSWR4XV0ubWVyZ2VGbGFncyhOb2RlVXNl
ZEFzTnVtYmVyIHwgTm9kZVVzZWRBc090aGVyKTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAg
ICB9CiAgICAgICAgICAgICAKQEAgLTY0Niw3ICs2NjEsNyBAQCBwcml2YXRlOgogICAgICAgICAK
ICAgICAgICAgY2FzZSBQdXRCeVZhbDoKICAgICAgICAgICAgIGNoYW5nZWQgfD0gbV9ncmFwaFtt
X2dyYXBoLnZhckFyZ0NoaWxkKG5vZGUsIDApXS5tZXJnZUZsYWdzKE5vZGVVc2VkQXNWYWx1ZSk7
Ci0gICAgICAgICAgICBjaGFuZ2VkIHw9IG1fZ3JhcGhbbV9ncmFwaC52YXJBcmdDaGlsZChub2Rl
LCAxKV0ubWVyZ2VGbGFncyhOb2RlVXNlZEFzTnVtYmVyIHwgTm9kZVVzZWRBc0ludCk7CisgICAg
ICAgICAgICBjaGFuZ2VkIHw9IG1fZ3JhcGhbbV9ncmFwaC52YXJBcmdDaGlsZChub2RlLCAxKV0u
bWVyZ2VGbGFncyhOb2RlVXNlZEFzTnVtYmVyIHwgTm9kZVVzZWRBc090aGVyIHwgTm9kZVVzZWRB
c0ludCk7CiAgICAgICAgICAgICBjaGFuZ2VkIHw9IG1fZ3JhcGhbbV9ncmFwaC52YXJBcmdDaGls
ZChub2RlLCAyKV0ubWVyZ2VGbGFncyhOb2RlVXNlZEFzVmFsdWUpOwogICAgICAgICAgICAgYnJl
YWs7CiAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQz
Ml82NC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVj
dWxhdGl2ZUpJVDMyXzY0LmNwcAkocmV2aXNpb24gMTM0MTU0KQorKysgU291cmNlL0phdmFTY3Jp
cHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVDMyXzY0LmNwcAkod29ya2luZyBjb3B5KQpAQCAt
MjcwMiw2ICsyNzAyLDEzIEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGUoTm9kZSYgbm9k
ZSkKICAgICAgICAgfQogICAgICAgICBjYXNlIEFycmF5OjpEb3VibGU6IHsKICAgICAgICAgICAg
IGlmIChub2RlLmFycmF5TW9kZSgpLmlzSW5Cb3VuZHMoKSkgeworICAgICAgICAgICAgICAgIGlm
IChub2RlLmFycmF5TW9kZSgpLmlzU2FuZUNoYWluKCkpIHsKKyAgICAgICAgICAgICAgICAgICAg
SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCA9IG1faml0Lmdsb2JhbE9iamVjdEZvcihub2Rl
LmNvZGVPcmlnaW4pOworICAgICAgICAgICAgICAgICAgICBBU1NFUlQoZ2xvYmFsT2JqZWN0LT5h
cnJheVByb3RvdHlwZUNoYWluSXNTYW5lKCkpOworICAgICAgICAgICAgICAgICAgICBnbG9iYWxP
YmplY3QtPmFycmF5UHJvdG90eXBlKCktPnN0cnVjdHVyZSgpLT5hZGRUcmFuc2l0aW9uV2F0Y2hw
b2ludChzcGVjdWxhdGlvbldhdGNocG9pbnQoKSk7CisgICAgICAgICAgICAgICAgICAgIGdsb2Jh
bE9iamVjdC0+b2JqZWN0UHJvdG90eXBlKCktPnN0cnVjdHVyZSgpLT5hZGRUcmFuc2l0aW9uV2F0
Y2hwb2ludChzcGVjdWxhdGlvbldhdGNocG9pbnQoKSk7CisgICAgICAgICAgICAgICAgfQorICAg
ICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgIFNwZWN1bGF0ZVN0cmljdEludDMyT3BlcmFu
ZCBwcm9wZXJ0eSh0aGlzLCBub2RlLmNoaWxkMigpKTsKICAgICAgICAgICAgICAgICBTdG9yYWdl
T3BlcmFuZCBzdG9yYWdlKHRoaXMsIG5vZGUuY2hpbGQzKCkpOwogICAgICAgICAgICAgCkBAIC0y
NzE1LDcgKzI3MjIsOCBAQCB2b2lkIFNwZWN1bGF0aXZlSklUOjpjb21waWxlKE5vZGUmIG5vZGUp
CiAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICBGUFJUZW1wb3JhcnkgcmVzdWx0KHRoaXMp
OwogICAgICAgICAgICAgICAgIG1faml0LmxvYWREb3VibGUoTWFjcm9Bc3NlbWJsZXI6OkJhc2VJ
bmRleChzdG9yYWdlUmVnLCBwcm9wZXJ0eVJlZywgTWFjcm9Bc3NlbWJsZXI6OlRpbWVzRWlnaHQp
LCByZXN1bHQuZnByKCkpOwotICAgICAgICAgICAgICAgIHNwZWN1bGF0aW9uQ2hlY2soT3V0T2ZC
b3VuZHMsIEpTVmFsdWVSZWdzKCksIE5vTm9kZSwgbV9qaXQuYnJhbmNoRG91YmxlKE1hY3JvQXNz
ZW1ibGVyOjpEb3VibGVOb3RFcXVhbE9yVW5vcmRlcmVkLCByZXN1bHQuZnByKCksIHJlc3VsdC5m
cHIoKSkpOworICAgICAgICAgICAgICAgIGlmICghbm9kZS5hcnJheU1vZGUoKS5pc1NhbmVDaGFp
bigpKQorICAgICAgICAgICAgICAgICAgICBzcGVjdWxhdGlvbkNoZWNrKE91dE9mQm91bmRzLCBK
U1ZhbHVlUmVncygpLCBOb05vZGUsIG1faml0LmJyYW5jaERvdWJsZShNYWNyb0Fzc2VtYmxlcjo6
RG91YmxlTm90RXF1YWxPclVub3JkZXJlZCwgcmVzdWx0LmZwcigpLCByZXN1bHQuZnByKCkpKTsK
ICAgICAgICAgICAgICAgICBkb3VibGVSZXN1bHQocmVzdWx0LmZwcigpLCBtX2NvbXBpbGVJbmRl
eCk7CiAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICB9CkluZGV4OiBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklUNjQuY3BwCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQ2NC5jcHAJKHJldmlz
aW9uIDEzNDE1NCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVK
SVQ2NC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI5LDggKzI5LDEwIEBACiAjaWYgRU5BQkxFKERG
R19KSVQpCiAKICNpbmNsdWRlICJBcmd1bWVudHMuaCIKKyNpbmNsdWRlICJBcnJheVByb3RvdHlw
ZS5oIgogI2luY2x1ZGUgIkRGR0NhbGxBcnJheUFsbG9jYXRvclNsb3dQYXRoR2VuZXJhdG9yLmgi
CiAjaW5jbHVkZSAiREZHU2xvd1BhdGhHZW5lcmF0b3IuaCIKKyNpbmNsdWRlICJPYmplY3RQcm90
b3R5cGUuaCIKIAogbmFtZXNwYWNlIEpTQyB7IG5hbWVzcGFjZSBERkcgewogCkBAIC0yNjU0LDYg
KzI2NTYsMTMgQEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZShOb2RlJiBub2RlKQogCiAg
ICAgICAgIGNhc2UgQXJyYXk6OkRvdWJsZTogewogICAgICAgICAgICAgaWYgKG5vZGUuYXJyYXlN
b2RlKCkuaXNJbkJvdW5kcygpKSB7CisgICAgICAgICAgICAgICAgaWYgKG5vZGUuYXJyYXlNb2Rl
KCkuaXNTYW5lQ2hhaW4oKSkgeworICAgICAgICAgICAgICAgICAgICBKU0dsb2JhbE9iamVjdCog
Z2xvYmFsT2JqZWN0ID0gbV9qaXQuZ2xvYmFsT2JqZWN0Rm9yKG5vZGUuY29kZU9yaWdpbik7Cisg
ICAgICAgICAgICAgICAgICAgIEFTU0VSVChnbG9iYWxPYmplY3QtPmFycmF5UHJvdG90eXBlQ2hh
aW5Jc1NhbmUoKSk7CisgICAgICAgICAgICAgICAgICAgIGdsb2JhbE9iamVjdC0+YXJyYXlQcm90
b3R5cGUoKS0+c3RydWN0dXJlKCktPmFkZFRyYW5zaXRpb25XYXRjaHBvaW50KHNwZWN1bGF0aW9u
V2F0Y2hwb2ludCgpKTsKKyAgICAgICAgICAgICAgICAgICAgZ2xvYmFsT2JqZWN0LT5vYmplY3RQ
cm90b3R5cGUoKS0+c3RydWN0dXJlKCktPmFkZFRyYW5zaXRpb25XYXRjaHBvaW50KHNwZWN1bGF0
aW9uV2F0Y2hwb2ludCgpKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgCiAg
ICAgICAgICAgICAgICAgU3BlY3VsYXRlU3RyaWN0SW50MzJPcGVyYW5kIHByb3BlcnR5KHRoaXMs
IG5vZGUuY2hpbGQyKCkpOwogICAgICAgICAgICAgICAgIFN0b3JhZ2VPcGVyYW5kIHN0b3JhZ2Uo
dGhpcywgbm9kZS5jaGlsZDMoKSk7CiAgICAgICAgICAgICAKQEAgLTI2NjcsNyArMjY3Niw4IEBA
IHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGUoTm9kZSYgbm9kZSkKICAgICAgICAgICAgIAog
ICAgICAgICAgICAgICAgIEZQUlRlbXBvcmFyeSByZXN1bHQodGhpcyk7CiAgICAgICAgICAgICAg
ICAgbV9qaXQubG9hZERvdWJsZShNYWNyb0Fzc2VtYmxlcjo6QmFzZUluZGV4KHN0b3JhZ2VSZWcs
IHByb3BlcnR5UmVnLCBNYWNyb0Fzc2VtYmxlcjo6VGltZXNFaWdodCksIHJlc3VsdC5mcHIoKSk7
Ci0gICAgICAgICAgICAgICAgc3BlY3VsYXRpb25DaGVjayhPdXRPZkJvdW5kcywgSlNWYWx1ZVJl
Z3MoKSwgTm9Ob2RlLCBtX2ppdC5icmFuY2hEb3VibGUoTWFjcm9Bc3NlbWJsZXI6OkRvdWJsZU5v
dEVxdWFsT3JVbm9yZGVyZWQsIHJlc3VsdC5mcHIoKSwgcmVzdWx0LmZwcigpKSk7CisgICAgICAg
ICAgICAgICAgaWYgKCFub2RlLmFycmF5TW9kZSgpLmlzU2FuZUNoYWluKCkpCisgICAgICAgICAg
ICAgICAgICAgIHNwZWN1bGF0aW9uQ2hlY2soT3V0T2ZCb3VuZHMsIEpTVmFsdWVSZWdzKCksIE5v
Tm9kZSwgbV9qaXQuYnJhbmNoRG91YmxlKE1hY3JvQXNzZW1ibGVyOjpEb3VibGVOb3RFcXVhbE9y
VW5vcmRlcmVkLCByZXN1bHQuZnByKCksIHJlc3VsdC5mcHIoKSkpOwogICAgICAgICAgICAgICAg
IGRvdWJsZVJlc3VsdChyZXN1bHQuZnByKCksIG1fY29tcGlsZUluZGV4KTsKICAgICAgICAgICAg
ICAgICBicmVhazsKICAgICAgICAgICAgIH0KSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL0pTR2xvYmFsT2JqZWN0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9KU0dsb2JhbE9iamVjdC5jcHAJKHJldmlzaW9uIDEzNDE1NCkKKysrIFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsT2JqZWN0LmNwcAkod29ya2luZyBj
b3B5KQpAQCAtNDM3LDYgKzQzNywxNCBAQCB2b2lkIEpTR2xvYmFsT2JqZWN0OjpoYXZlQUJhZFRp
bWUoSlNHbG9iCiAgICAgfQogfQogCitib29sIEpTR2xvYmFsT2JqZWN0OjphcnJheVByb3RvdHlw
ZUNoYWluSXNTYW5lKCkKK3sKKyAgICByZXR1cm4gIWhhc0luZGV4ZWRQcm9wZXJ0aWVzKG1fYXJy
YXlQcm90b3R5cGUtPnN0cnVjdHVyZSgpLT5pbmRleGluZ1R5cGUoKSkKKyAgICAgICAgJiYgbV9h
cnJheVByb3RvdHlwZS0+cHJvdG90eXBlKCkgPT0gbV9vYmplY3RQcm90b3R5cGUuZ2V0KCkKKyAg
ICAgICAgJiYgIWhhc0luZGV4ZWRQcm9wZXJ0aWVzKG1fb2JqZWN0UHJvdG90eXBlLT5zdHJ1Y3R1
cmUoKS0+aW5kZXhpbmdUeXBlKCkpCisgICAgICAgICYmIG1fb2JqZWN0UHJvdG90eXBlLT5wcm90
b3R5cGUoKS5pc051bGwoKTsKK30KKwogdm9pZCBKU0dsb2JhbE9iamVjdDo6Y3JlYXRlVGhyb3dU
eXBlRXJyb3IoRXhlY1N0YXRlKiBleGVjKQogewogICAgIEpTRnVuY3Rpb24qIHRocm93ZXIgPSBK
U0Z1bmN0aW9uOjpjcmVhdGUoZXhlYywgdGhpcywgMCwgU3RyaW5nKCksIGdsb2JhbEZ1bmNUaHJv
d1R5cGVFcnJvcik7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2Jh
bE9iamVjdC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pT
R2xvYmFsT2JqZWN0LmgJKHJldmlzaW9uIDEzNDE1NCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL0pTR2xvYmFsT2JqZWN0LmgJKHdvcmtpbmcgY29weSkKQEAgLTMzMyw2ICszMzMs
OCBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgfQogICAgICAgICAKICAgICAgICAgdm9pZCBo
YXZlQUJhZFRpbWUoSlNHbG9iYWxEYXRhJik7CisgICAgICAgIAorICAgICAgICBib29sIGFycmF5
UHJvdG90eXBlQ2hhaW5Jc1NhbmUoKTsKIAogICAgICAgICB2b2lkIHNldFByb2ZpbGVHcm91cCh1
bnNpZ25lZCB2YWx1ZSkgeyBjcmVhdGVSYXJlRGF0YUlmTmVlZGVkKCk7IG1fcmFyZURhdGEtPnBy
b2ZpbGVHcm91cCA9IHZhbHVlOyB9CiAgICAgICAgIHVuc2lnbmVkIHByb2ZpbGVHcm91cCgpIGNv
bnN0Cg==
</data>
<flag name="commit-queue"
          id="188174"
          type_id="3"
          status="-"
          setter="webkit-ews"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>173477</attachid>
            <date>2012-11-10 14:46:17 -0800</date>
            <delta_ts>2012-11-10 15:30:23 -0800</delta_ts>
            <desc>the patch</desc>
            <filename>nan.patch</filename>
            <type>text/plain</type>
            <size>22339</size>
            <attacher name="Filip Pizlo">fpizlo</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTM0MTYzKQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDQ3IEBA
CisyMDEyLTExLTEwICBGaWxpcCBQaXpsbyAgPGZwaXpsb0BhcHBsZS5jb20+CisKKyAgICAgICAg
REZHIHNob3VsZCBvcHRpbWl6ZSBvdXQgdGhlIE5hTiBjaGVjayBvbiBsb2FkcyBmcm9tIGRvdWJs
ZSBhcnJheXMgaWYgdGhlIGFycmF5IHByb3RvdHlwZSBjaGFpbiBpcyBoYXZpbmcgYSBncmVhdCB0
aW1lCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDE3
MTgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBJZiB3
ZSdyZSByZWFkaW5nIGZyb20gYSBKU0FycmF5IGluIGRvdWJsZSBtb2RlLCB3aGVyZSB0aGUgYXJy
YXkncyBzdHJ1Y3R1cmUgaXMKKyAgICAgICAgcHJpbW9yZGlhbCAoYWxsIGFzcGVjdHMgb2YgdGhl
IHN0cnVjdHVyZSBhcmUgdW5jaGFuZ2VkIGV4Y2VwdCBmb3IgaW5kZXhpbmcgdHlwZSksCisgICAg
ICAgIGFuZCB0aGUgcmVzdWx0IG9mIHRoZSBsb2FkIGlzIHVzZWQgaW4gYXJpdGhtZXRpYyB0aGF0
IGlzIGtub3duIHRvIG5vdCBkaXN0aW5ndWlzaAorICAgICAgICBiZXR3ZWVuIE5hTiBhbmQgdW5k
ZWZpbmVkLCB0aGVuIHdlIHNob3VsZCBub3QgZW1pdCBhIE5hTiBjaGVjay4gTG9va3MgbGlrZSBh
IDUlCisgICAgICAgIHdpbiBvbiBuYXZpZXItc3Rva2VzLgorICAgICAgICAKKyAgICAgICAgQWxz
byBmaXhlZCBhbiBPcEluZm8gaW5pdGlhbGl6YXRpb24gZ29vZiBmb3IgU3RyaW5nIG9wcyB0aGF0
IHdhcyByZXZlYWxlZCBieSB0aGlzCisgICAgICAgIGNoYW5nZS4KKworICAgICAgICAqIGRmZy9E
RkdBYnN0cmFjdFN0YXRlLmNwcDoKKyAgICAgICAgKEpTQzo6REZHOjpBYnN0cmFjdFN0YXRlOjpl
eGVjdXRlKToKKyAgICAgICAgKiBkZmcvREZHQXJyYXlNb2RlLmNwcDoKKyAgICAgICAgKEpTQzo6
REZHOjphcnJheVNwZWN1bGF0aW9uVG9TdHJpbmcpOgorICAgICAgICAqIGRmZy9ERkdBcnJheU1v
ZGUuaDoKKyAgICAgICAgKEpTQzo6REZHOjpBcnJheU1vZGU6OmlzU2FuZUNoYWluKToKKyAgICAg
ICAgKEFycmF5TW9kZSk6CisgICAgICAgIChKU0M6OkRGRzo6QXJyYXlNb2RlOjppc0luQm91bmRz
KToKKyAgICAgICAgKiBkZmcvREZHQnl0ZUNvZGVQYXJzZXIuY3BwOgorICAgICAgICAoSlNDOjpE
Rkc6OkJ5dGVDb2RlUGFyc2VyOjpoYW5kbGVJbnRyaW5zaWMpOgorICAgICAgICAqIGRmZy9ERkdG
aXh1cFBoYXNlLmNwcDoKKyAgICAgICAgKEpTQzo6REZHOjpGaXh1cFBoYXNlOjpmaXh1cE5vZGUp
OgorICAgICAgICAqIGRmZy9ERkdOb2RlRmxhZ3MuY3BwOgorICAgICAgICAoSlNDOjpERkc6Om5v
ZGVGbGFnc0FzU3RyaW5nKToKKyAgICAgICAgKiBkZmcvREZHTm9kZUZsYWdzLmg6CisgICAgICAg
IChERkcpOgorICAgICAgICAqIGRmZy9ERkdQcmVkaWN0aW9uUHJvcGFnYXRpb25QaGFzZS5jcHA6
CisgICAgICAgIChKU0M6OkRGRzo6UHJlZGljdGlvblByb3BhZ2F0aW9uUGhhc2U6OnByb3BhZ2F0
ZSk6CisgICAgICAgICogZGZnL0RGR1NwZWN1bGF0aXZlSklUMzJfNjQuY3BwOgorICAgICAgICAo
SlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpjb21waWxlKToKKyAgICAgICAgKiBkZmcvREZHU3Bl
Y3VsYXRpdmVKSVQ2NC5jcHA6CisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNv
bXBpbGUpOgorICAgICAgICAqIHJ1bnRpbWUvSlNHbG9iYWxPYmplY3QuY3BwOgorICAgICAgICAo
SlNDOjpKU0dsb2JhbE9iamVjdDo6YXJyYXlQcm90b3R5cGVDaGFpbklzU2FuZSk6CisgICAgICAg
IChKU0MpOgorICAgICAgICAqIHJ1bnRpbWUvSlNHbG9iYWxPYmplY3QuaDoKKyAgICAgICAgKEpT
R2xvYmFsT2JqZWN0KToKKwogMjAxMi0xMS0xMCAgU2hlcmlmZiBCb3QgIDx3ZWJraXQucmV2aWV3
LmJvdEBnbWFpbC5jb20+CiAKICAgICAgICAgVW5yZXZpZXdlZCwgcm9sbGluZyBvdXQgcjEzMzk3
MS4KSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQWJzdHJhY3RTdGF0ZS5jcHAK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdBYnN0cmFjdFN0YXRl
LmNwcAkocmV2aXNpb24gMTM0MTU0KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdB
YnN0cmFjdFN0YXRlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtOTAxLDcgKzkwMSw5IEBAIGJvb2wg
QWJzdHJhY3RTdGF0ZTo6ZXhlY3V0ZSh1bnNpZ25lZCBpbmQKICAgICAgICAgICAgIGlmIChub2Rl
LmFycmF5TW9kZSgpLmlzT3V0T2ZCb3VuZHMoKSkgewogICAgICAgICAgICAgICAgIGNsb2JiZXJX
b3JsZChub2RlLmNvZGVPcmlnaW4sIGluZGV4SW5CbG9jayk7CiAgICAgICAgICAgICAgICAgZm9y
Tm9kZShub2RlSW5kZXgpLm1ha2VUb3AoKTsKLSAgICAgICAgICAgIH0gZWxzZQorICAgICAgICAg
ICAgfSBlbHNlIGlmIChub2RlLmFycmF5TW9kZSgpLmlzU2FuZUNoYWluKCkpCisgICAgICAgICAg
ICAgICAgZm9yTm9kZShub2RlSW5kZXgpLnNldChTcGVjRG91YmxlKTsKKyAgICAgICAgICAgIGVs
c2UKICAgICAgICAgICAgICAgICBmb3JOb2RlKG5vZGVJbmRleCkuc2V0KFNwZWNEb3VibGVSZWFs
KTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICBjYXNlIEFycmF5OjpDb250aWd1b3VzOgpJ
bmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdBcnJheU1vZGUuY3BwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQXJyYXlNb2RlLmNwcAkocmV2aXNp
b24gMTM0MTU0KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdBcnJheU1vZGUuY3Bw
CSh3b3JraW5nIGNvcHkpCkBAIC00MDksNiArNDA5LDggQEAgY29uc3QgY2hhciogYXJyYXlDbGFz
c1RvU3RyaW5nKEFycmF5OjpDbAogY29uc3QgY2hhciogYXJyYXlTcGVjdWxhdGlvblRvU3RyaW5n
KEFycmF5OjpTcGVjdWxhdGlvbiBzcGVjdWxhdGlvbikKIHsKICAgICBzd2l0Y2ggKHNwZWN1bGF0
aW9uKSB7CisgICAgY2FzZSBBcnJheTo6U2FuZUNoYWluOgorICAgICAgICByZXR1cm4gIlNhbmVD
aGFpbiI7CiAgICAgY2FzZSBBcnJheTo6SW5Cb3VuZHM6CiAgICAgICAgIHJldHVybiAiSW5Cb3Vu
ZHMiOwogICAgIGNhc2UgQXJyYXk6OlRvSG9sZToKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9kZmcvREZHQXJyYXlNb2RlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3Jl
L2RmZy9ERkdBcnJheU1vZGUuaAkocmV2aXNpb24gMTM0MTU0KQorKysgU291cmNlL0phdmFTY3Jp
cHRDb3JlL2RmZy9ERkdBcnJheU1vZGUuaAkod29ya2luZyBjb3B5KQpAQCAtODYsOSArODYsMTAg
QEAgZW51bSBDbGFzcyB7CiB9OwogCiBlbnVtIFNwZWN1bGF0aW9uIHsKLSAgICBJbkJvdW5kcywK
LSAgICBUb0hvbGUsCi0gICAgT3V0T2ZCb3VuZHMKKyAgICBTYW5lQ2hhaW4sIC8vIEluIGJvdW5k
cyBhbmQgdGhlIGFycmF5IHByb3RvdHlwZSBjaGFpbiBpcyBzdGlsbCBpbnRhY3QsIGkuZS4gbG9h
ZGluZyBhIGhvbGUgZG9lc24ndCByZXF1aXJlIHNwZWNpYWwgdHJlYXRtZW50LgorICAgIEluQm91
bmRzLCAvLyBJbiBib3VuZHMgYW5kIG5vdCBsb2FkaW5nIGEgaG9sZS4KKyAgICBUb0hvbGUsIC8v
IFBvdGVudGlhbGx5IHN0b3JpbmcgdG8gYSBob2xlLgorICAgIE91dE9mQm91bmRzIC8vIE91dC1v
Zi1ib3VuZHMgYWNjZXNzIGFuZCBhbnl0aGluZyBjYW4gaGFwcGVuLgogfTsKIGVudW0gQ29udmVy
c2lvbiB7CiAgICAgQXNJcywKQEAgLTIyMyw5ICsyMjQsMjAgQEAgcHVibGljOgogICAgICAgICBy
ZXR1cm4gYXJyYXlDbGFzcygpID09IEFycmF5OjpPcmlnaW5hbEFycmF5OwogICAgIH0KICAgICAK
KyAgICBib29sIGlzU2FuZUNoYWluKCkgY29uc3QKKyAgICB7CisgICAgICAgIHJldHVybiBzcGVj
dWxhdGlvbigpID09IEFycmF5OjpTYW5lQ2hhaW47CisgICAgfQorICAgIAogICAgIGJvb2wgaXNJ
bkJvdW5kcygpIGNvbnN0CiAgICAgewotICAgICAgICByZXR1cm4gc3BlY3VsYXRpb24oKSA9PSBB
cnJheTo6SW5Cb3VuZHM7CisgICAgICAgIHN3aXRjaCAoc3BlY3VsYXRpb24oKSkgeworICAgICAg
ICBjYXNlIEFycmF5OjpTYW5lQ2hhaW46CisgICAgICAgIGNhc2UgQXJyYXk6OkluQm91bmRzOgor
ICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICBy
ZXR1cm4gZmFsc2U7CisgICAgICAgIH0KICAgICB9CiAgICAgCiAgICAgYm9vbCBtYXlTdG9yZVRv
SG9sZSgpIGNvbnN0CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0J5dGVDb2Rl
UGFyc2VyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0J5
dGVDb2RlUGFyc2VyLmNwcAkocmV2aXNpb24gMTM0MTU0KQorKysgU291cmNlL0phdmFTY3JpcHRD
b3JlL2RmZy9ERkdCeXRlQ29kZVBhcnNlci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTE3MDMsNyAr
MTcwMyw3IEBAIGJvb2wgQnl0ZUNvZGVQYXJzZXI6OmhhbmRsZUludHJpbnNpYyhib28KIAogICAg
ICAgICBpbnQgdGhpc09wZXJhbmQgPSByZWdpc3Rlck9mZnNldCArIGFyZ3VtZW50VG9PcGVyYW5k
KDApOwogICAgICAgICBpbnQgaW5kZXhPcGVyYW5kID0gcmVnaXN0ZXJPZmZzZXQgKyBhcmd1bWVu
dFRvT3BlcmFuZCgxKTsKLSAgICAgICAgTm9kZUluZGV4IGNoYXJDb2RlID0gYWRkVG9HcmFwaChT
dHJpbmdDaGFyQ29kZUF0LCBPcEluZm8oQXJyYXk6OlN0cmluZyksIGdldCh0aGlzT3BlcmFuZCks
IGdldFRvSW50MzIoaW5kZXhPcGVyYW5kKSk7CisgICAgICAgIE5vZGVJbmRleCBjaGFyQ29kZSA9
IGFkZFRvR3JhcGgoU3RyaW5nQ2hhckNvZGVBdCwgT3BJbmZvKEFycmF5TW9kZShBcnJheTo6U3Ry
aW5nKS5hc1dvcmQoKSksIGdldCh0aGlzT3BlcmFuZCksIGdldFRvSW50MzIoaW5kZXhPcGVyYW5k
KSk7CiAKICAgICAgICAgaWYgKHVzZXNSZXN1bHQpCiAgICAgICAgICAgICBzZXQocmVzdWx0T3Bl
cmFuZCwgY2hhckNvZGUpOwpAQCAtMTcxNiw3ICsxNzE2LDcgQEAgYm9vbCBCeXRlQ29kZVBhcnNl
cjo6aGFuZGxlSW50cmluc2ljKGJvbwogCiAgICAgICAgIGludCB0aGlzT3BlcmFuZCA9IHJlZ2lz
dGVyT2Zmc2V0ICsgYXJndW1lbnRUb09wZXJhbmQoMCk7CiAgICAgICAgIGludCBpbmRleE9wZXJh
bmQgPSByZWdpc3Rlck9mZnNldCArIGFyZ3VtZW50VG9PcGVyYW5kKDEpOwotICAgICAgICBOb2Rl
SW5kZXggY2hhckNvZGUgPSBhZGRUb0dyYXBoKFN0cmluZ0NoYXJBdCwgT3BJbmZvKEFycmF5OjpT
dHJpbmcpLCBnZXQodGhpc09wZXJhbmQpLCBnZXRUb0ludDMyKGluZGV4T3BlcmFuZCkpOworICAg
ICAgICBOb2RlSW5kZXggY2hhckNvZGUgPSBhZGRUb0dyYXBoKFN0cmluZ0NoYXJBdCwgT3BJbmZv
KEFycmF5TW9kZShBcnJheTo6U3RyaW5nKS5hc1dvcmQoKSksIGdldCh0aGlzT3BlcmFuZCksIGdl
dFRvSW50MzIoaW5kZXhPcGVyYW5kKSk7CiAKICAgICAgICAgaWYgKHVzZXNSZXN1bHQpCiAgICAg
ICAgICAgICBzZXQocmVzdWx0T3BlcmFuZCwgY2hhckNvZGUpOwpJbmRleDogU291cmNlL0phdmFT
Y3JpcHRDb3JlL2RmZy9ERkdGaXh1cFBoYXNlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvZGZnL0RGR0ZpeHVwUGhhc2UuY3BwCShyZXZpc2lvbiAxMzQxNTQpCisrKyBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0ZpeHVwUGhhc2UuY3BwCSh3b3JraW5nIGNvcHkp
CkBAIC0xMzQsNiArMTM0LDE2IEBAIHByaXZhdGU6CiAgICAgICAgICAgICAgICAgICAgIG1fZ3Jh
cGhbbm9kZS5jaGlsZDIoKV0ucHJlZGljdGlvbigpKSk7CiAgICAgICAgICAgICAKICAgICAgICAg
ICAgIGJsZXNzQXJyYXlPcGVyYXRpb24obm9kZS5jaGlsZDEoKSwgbm9kZS5jaGlsZDIoKSwgMik7
CisgICAgICAgICAgICAKKyAgICAgICAgICAgIEFycmF5TW9kZSBhcnJheU1vZGUgPSBub2RlLmFy
cmF5TW9kZSgpOworICAgICAgICAgICAgaWYgKGFycmF5TW9kZS50eXBlKCkgPT0gQXJyYXk6OkRv
dWJsZQorICAgICAgICAgICAgICAgICYmIGFycmF5TW9kZS5hcnJheUNsYXNzKCkgPT0gQXJyYXk6
Ok9yaWdpbmFsQXJyYXkKKyAgICAgICAgICAgICAgICAmJiBhcnJheU1vZGUuc3BlY3VsYXRpb24o
KSA9PSBBcnJheTo6SW5Cb3VuZHMKKyAgICAgICAgICAgICAgICAmJiBhcnJheU1vZGUuY29udmVy
c2lvbigpID09IEFycmF5OjpBc0lzCisgICAgICAgICAgICAgICAgJiYgbV9ncmFwaC5nbG9iYWxP
YmplY3RGb3Iobm9kZS5jb2RlT3JpZ2luKS0+YXJyYXlQcm90b3R5cGVDaGFpbklzU2FuZSgpCisg
ICAgICAgICAgICAgICAgJiYgIShub2RlLmZsYWdzKCkgJiBOb2RlVXNlZEFzT3RoZXIpKQorICAg
ICAgICAgICAgICAgIG5vZGUuc2V0QXJyYXlNb2RlKGFycmF5TW9kZS53aXRoU3BlY3VsYXRpb24o
QXJyYXk6OlNhbmVDaGFpbikpOworICAgICAgICAgICAgCiAgICAgICAgICAgICBicmVhazsKICAg
ICAgICAgfQogICAgICAgICBjYXNlIFN0cmluZ0NoYXJBdDoKSW5kZXg6IFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9kZmcvREZHTm9kZUZsYWdzLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvZGZnL0RGR05vZGVGbGFncy5jcHAJKHJldmlzaW9uIDEzNDE1NCkKKysrIFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHTm9kZUZsYWdzLmNwcAkod29ya2luZyBjb3B5KQpAQCAt
MTEyLDYgKzExMiwxMiBAQCBjb25zdCBjaGFyKiBub2RlRmxhZ3NBc1N0cmluZyhOb2RlRmxhZ3Mg
CiAgICAgICAgICAgICBwdHIuc3RyY2F0KCJQdXJlTnVtIik7CiAgICAgICAgICAgICBoYXNQcmlu
dGVkID0gdHJ1ZTsKICAgICAgICAgfQorICAgICAgICBpZiAoZmxhZ3MgJiBOb2RlVXNlZEFzT3Ro
ZXIpIHsKKyAgICAgICAgICAgIGlmIChoYXNQcmludGVkKQorICAgICAgICAgICAgICAgIHB0ci5z
dHJjYXQoInwiKTsKKyAgICAgICAgICAgIHB0ci5zdHJjYXQoIlVzZUFzT3RoZXIiKTsKKyAgICAg
ICAgICAgIGhhc1ByaW50ZWQgPSB0cnVlOworICAgICAgICB9CiAgICAgfQogICAgIAogICAgIGlm
IChmbGFncyAmIE5vZGVNYXlPdmVyZmxvdykgewpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3Jl
L2RmZy9ERkdOb2RlRmxhZ3MuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
ZGZnL0RGR05vZGVGbGFncy5oCShyZXZpc2lvbiAxMzQxNTQpCisrKyBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvZGZnL0RGR05vZGVGbGFncy5oCSh3b3JraW5nIGNvcHkpCkBAIC01NiwxMCArNTYsMTEg
QEAgbmFtZXNwYWNlIEpTQyB7IG5hbWVzcGFjZSBERkcgewogI2RlZmluZSBOb2RlVXNlQm90dG9t
ICAgICAgICAgICAgIDB4MDAwCiAjZGVmaW5lIE5vZGVVc2VkQXNOdW1iZXIgICAgICAgICAgMHg0
MDAgLy8gVGhlIHJlc3VsdCBvZiB0aGlzIGNvbXB1dGF0aW9uIG1heSBiZSB1c2VkIGluIGEgY29u
dGV4dCB0aGF0IG9ic2VydmVzIGZyYWN0aW9uYWwgcmVzdWx0cy4KICNkZWZpbmUgTm9kZU5lZWRz
TmVnWmVybyAgICAgICAgICAweDgwMCAvLyBUaGUgcmVzdWx0IG9mIHRoaXMgY29tcHV0YXRpb24g
bWF5IGJlIHVzZWQgaW4gYSBjb250ZXh0IHRoYXQgb2JzZXJ2ZXMgLTAuCi0jZGVmaW5lIE5vZGVV
c2VkQXNWYWx1ZSAgICAgICAgICAgKE5vZGVVc2VkQXNOdW1iZXIgfCBOb2RlTmVlZHNOZWdaZXJv
KQotI2RlZmluZSBOb2RlVXNlZEFzSW50ICAgICAgICAgICAgMHgxMDAwIC8vIFRoZSByZXN1bHQg
b2YgdGhpcyBjb21wdXRhdGlvbiBpcyBrbm93biB0byBiZSB1c2VkIGluIGEgY29udGV4dCB0aGF0
IHByZWZlcnMsIGJ1dCBkb2VzIG5vdCByZXF1aXJlLCBpbnRlZ2VyIHZhbHVlcy4KKyNkZWZpbmUg
Tm9kZVVzZWRBc090aGVyICAgICAgICAgIDB4MTAwMCAvLyBUaGUgcmVzdWx0IG9mIHRoaXMgY29t
cHV0YXRpb24gbWF5IGJlIHVzZWQgaW4gYSBjb250ZXh0IHRoYXQgZGlzdGluZ3Vpc2hlcyBiZXR3
ZWVuIE5hTiBhbmQgb3RoZXIgdGhpbmdzIChsaWtlIHVuZGVmaW5lZCkuCisjZGVmaW5lIE5vZGVV
c2VkQXNWYWx1ZSAgICAgICAgICAoTm9kZVVzZWRBc051bWJlciB8IE5vZGVOZWVkc05lZ1plcm8g
fCBOb2RlVXNlZEFzT3RoZXIpCisjZGVmaW5lIE5vZGVVc2VkQXNJbnQgICAgICAgICAgICAweDIw
MDAgLy8gVGhlIHJlc3VsdCBvZiB0aGlzIGNvbXB1dGF0aW9uIGlzIGtub3duIHRvIGJlIHVzZWQg
aW4gYSBjb250ZXh0IHRoYXQgcHJlZmVycywgYnV0IGRvZXMgbm90IHJlcXVpcmUsIGludGVnZXIg
dmFsdWVzLgogCi0jZGVmaW5lIE5vZGVEb2VzTm90RXhpdCAgICAgICAgICAweDIwMDAgLy8gVGhp
cyBmbGFnIGlzIG5lZ2F0ZWQgdG8gbWFrZSBpdCBuYXR1cmFsIGZvciB0aGUgZGVmYXVsdCB0byBi
ZSB0aGF0IGEgbm9kZSBkb2VzIGV4aXQuCisjZGVmaW5lIE5vZGVEb2VzTm90RXhpdCAgICAgICAg
ICAweDQwMDAgLy8gVGhpcyBmbGFnIGlzIG5lZ2F0ZWQgdG8gbWFrZSBpdCBuYXR1cmFsIGZvciB0
aGUgZGVmYXVsdCB0byBiZSB0aGF0IGEgbm9kZSBkb2VzIGV4aXQuCiAKIHR5cGVkZWYgdWludDE2
X3QgTm9kZUZsYWdzOwogCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1ByZWRp
Y3Rpb25Qcm9wYWdhdGlvblBoYXNlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvZGZnL0RGR1ByZWRpY3Rpb25Qcm9wYWdhdGlvblBoYXNlLmNwcAkocmV2aXNpb24gMTM0
MTU0KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdQcmVkaWN0aW9uUHJvcGFnYXRp
b25QaGFzZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTE4NCw3ICsxODQsNyBAQCBwcml2YXRlOgog
ICAgICAgICBjYXNlIEJpdFVSU2hpZnQ6IHsKICAgICAgICAgICAgIGNoYW5nZWQgfD0gc2V0UHJl
ZGljdGlvbihTcGVjSW50MzIpOwogICAgICAgICAgICAgZmxhZ3MgfD0gTm9kZVVzZWRBc0ludDsK
LSAgICAgICAgICAgIGZsYWdzICY9IH4oTm9kZVVzZWRBc051bWJlciB8IE5vZGVOZWVkc05lZ1pl
cm8pOworICAgICAgICAgICAgZmxhZ3MgJj0gfihOb2RlVXNlZEFzTnVtYmVyIHwgTm9kZU5lZWRz
TmVnWmVybyB8IE5vZGVVc2VkQXNPdGhlcik7CiAgICAgICAgICAgICBjaGFuZ2VkIHw9IG1fZ3Jh
cGhbbm9kZS5jaGlsZDEoKV0ubWVyZ2VGbGFncyhmbGFncyk7CiAgICAgICAgICAgICBjaGFuZ2Vk
IHw9IG1fZ3JhcGhbbm9kZS5jaGlsZDIoKV0ubWVyZ2VGbGFncyhmbGFncyk7CiAgICAgICAgICAg
ICBicmVhazsKQEAgLTE5Myw3ICsxOTMsNyBAQCBwcml2YXRlOgogICAgICAgICBjYXNlIFZhbHVl
VG9JbnQzMjogewogICAgICAgICAgICAgY2hhbmdlZCB8PSBzZXRQcmVkaWN0aW9uKFNwZWNJbnQz
Mik7CiAgICAgICAgICAgICBmbGFncyB8PSBOb2RlVXNlZEFzSW50OwotICAgICAgICAgICAgZmxh
Z3MgJj0gfihOb2RlVXNlZEFzTnVtYmVyIHwgTm9kZU5lZWRzTmVnWmVybyk7CisgICAgICAgICAg
ICBmbGFncyAmPSB+KE5vZGVVc2VkQXNOdW1iZXIgfCBOb2RlTmVlZHNOZWdaZXJvIHwgTm9kZVVz
ZWRBc090aGVyKTsKICAgICAgICAgICAgIGNoYW5nZWQgfD0gbV9ncmFwaFtub2RlLmNoaWxkMSgp
XS5tZXJnZUZsYWdzKGZsYWdzKTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9CkBAIC0y
MjEsNyArMjIxLDcgQEAgcHJpdmF0ZToKICAgICAgICAgY2FzZSBTdHJpbmdDaGFyQ29kZUF0OiB7
CiAgICAgICAgICAgICBjaGFuZ2VkIHw9IG1lcmdlUHJlZGljdGlvbihTcGVjSW50MzIpOwogICAg
ICAgICAgICAgY2hhbmdlZCB8PSBtX2dyYXBoW25vZGUuY2hpbGQxKCldLm1lcmdlRmxhZ3MoTm9k
ZVVzZWRBc1ZhbHVlKTsKLSAgICAgICAgICAgIGNoYW5nZWQgfD0gbV9ncmFwaFtub2RlLmNoaWxk
MigpXS5tZXJnZUZsYWdzKE5vZGVVc2VkQXNOdW1iZXIgfCBOb2RlVXNlZEFzSW50KTsKKyAgICAg
ICAgICAgIGNoYW5nZWQgfD0gbV9ncmFwaFtub2RlLmNoaWxkMigpXS5tZXJnZUZsYWdzKE5vZGVV
c2VkQXNOdW1iZXIgfCBOb2RlVXNlZEFzT3RoZXIgfCBOb2RlVXNlZEFzSW50KTsKICAgICAgICAg
ICAgIGJyZWFrOwogICAgICAgICB9CiAKQEAgLTI1NCw2ICsyNTQsOCBAQCBwcml2YXRlOgogICAg
ICAgICAgICAgCiAgICAgICAgICAgICBpZiAoaXNOb3ROZWdaZXJvKG5vZGUuY2hpbGQxKCkuaW5k
ZXgoKSkgfHwgaXNOb3ROZWdaZXJvKG5vZGUuY2hpbGQyKCkuaW5kZXgoKSkpCiAgICAgICAgICAg
ICAgICAgZmxhZ3MgJj0gfk5vZGVOZWVkc05lZ1plcm87CisgICAgICAgICAgICBpZiAobV9ncmFw
aFtub2RlLmNoaWxkMSgpXS5oYXNOdW1iZXJSZXN1bHQoKSB8fCBtX2dyYXBoW25vZGUuY2hpbGQy
KCldLmhhc051bWJlclJlc3VsdCgpKQorICAgICAgICAgICAgICAgIGZsYWdzICY9IH5Ob2RlVXNl
ZEFzT3RoZXI7CiAgICAgICAgICAgICAKICAgICAgICAgICAgIGNoYW5nZWQgfD0gbV9ncmFwaFtu
b2RlLmNoaWxkMSgpXS5tZXJnZUZsYWdzKGZsYWdzKTsKICAgICAgICAgICAgIGNoYW5nZWQgfD0g
bV9ncmFwaFtub2RlLmNoaWxkMigpXS5tZXJnZUZsYWdzKGZsYWdzKTsKQEAgLTI3Myw2ICsyNzUs
NyBAQCBwcml2YXRlOgogICAgICAgICAgICAgCiAgICAgICAgICAgICBpZiAoaXNOb3ROZWdaZXJv
KG5vZGUuY2hpbGQxKCkuaW5kZXgoKSkgfHwgaXNOb3ROZWdaZXJvKG5vZGUuY2hpbGQyKCkuaW5k
ZXgoKSkpCiAgICAgICAgICAgICAgICAgZmxhZ3MgJj0gfk5vZGVOZWVkc05lZ1plcm87CisgICAg
ICAgICAgICBmbGFncyAmPSB+Tm9kZVVzZWRBc090aGVyOwogICAgICAgICAgICAgCiAgICAgICAg
ICAgICBjaGFuZ2VkIHw9IG1fZ3JhcGhbbm9kZS5jaGlsZDEoKV0ubWVyZ2VGbGFncyhmbGFncyk7
CiAgICAgICAgICAgICBjaGFuZ2VkIHw9IG1fZ3JhcGhbbm9kZS5jaGlsZDIoKV0ubWVyZ2VGbGFn
cyhmbGFncyk7CkBAIC0yOTIsNiArMjk1LDcgQEAgcHJpdmF0ZToKIAogICAgICAgICAgICAgaWYg
KGlzTm90WmVybyhub2RlLmNoaWxkMSgpLmluZGV4KCkpIHx8IGlzTm90WmVybyhub2RlLmNoaWxk
MigpLmluZGV4KCkpKQogICAgICAgICAgICAgICAgIGZsYWdzICY9IH5Ob2RlTmVlZHNOZWdaZXJv
OworICAgICAgICAgICAgZmxhZ3MgJj0gfk5vZGVVc2VkQXNPdGhlcjsKICAgICAgICAgICAgIAog
ICAgICAgICAgICAgY2hhbmdlZCB8PSBtX2dyYXBoW25vZGUuY2hpbGQxKCldLm1lcmdlRmxhZ3Mo
ZmxhZ3MpOwogICAgICAgICAgICAgY2hhbmdlZCB8PSBtX2dyYXBoW25vZGUuY2hpbGQyKCldLm1l
cmdlRmxhZ3MoZmxhZ3MpOwpAQCAtMzA2LDYgKzMxMCw4IEBAIHByaXZhdGU6CiAgICAgICAgICAg
ICAgICAgICAgIGNoYW5nZWQgfD0gbWVyZ2VQcmVkaWN0aW9uKHNwZWN1bGF0ZWREb3VibGVUeXBl
Rm9yUHJlZGljdGlvbihtX2dyYXBoW25vZGUuY2hpbGQxKCldLnByZWRpY3Rpb24oKSkpOwogICAg
ICAgICAgICAgfQogCisgICAgICAgICAgICBmbGFncyAmPSB+Tm9kZVVzZWRBc090aGVyOworCiAg
ICAgICAgICAgICBjaGFuZ2VkIHw9IG1fZ3JhcGhbbm9kZS5jaGlsZDEoKV0ubWVyZ2VGbGFncyhm
bGFncyk7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgIApAQCAtMzIzLDYgKzMyOSw4
IEBAIHByaXZhdGU6CiAgICAgICAgICAgICB9CiAKICAgICAgICAgICAgIGZsYWdzIHw9IE5vZGVV
c2VkQXNOdW1iZXI7CisgICAgICAgICAgICBmbGFncyAmPSB+Tm9kZVVzZWRBc090aGVyOworCiAg
ICAgICAgICAgICBjaGFuZ2VkIHw9IG1fZ3JhcGhbbm9kZS5jaGlsZDEoKV0ubWVyZ2VGbGFncyhm
bGFncyk7CiAgICAgICAgICAgICBjaGFuZ2VkIHw9IG1fZ3JhcGhbbm9kZS5jaGlsZDIoKV0ubWVy
Z2VGbGFncyhmbGFncyk7CiAgICAgICAgICAgICBicmVhazsKQEAgLTM0NSw2ICszNTMsOCBAQCBw
cml2YXRlOgogICAgICAgICAgICAgLy8gbm8gbWF0dGVyIHdoYXQsIGFuZCBhbHdheXMgZm9yY2Vz
IGl0cyBpbnB1dHMgdG8gY2hlY2sgYXMgd2VsbC4KICAgICAgICAgICAgIAogICAgICAgICAgICAg
ZmxhZ3MgfD0gTm9kZVVzZWRBc051bWJlciB8IE5vZGVOZWVkc05lZ1plcm87CisgICAgICAgICAg
ICBmbGFncyAmPSB+Tm9kZVVzZWRBc090aGVyOworCiAgICAgICAgICAgICBjaGFuZ2VkIHw9IG1f
Z3JhcGhbbm9kZS5jaGlsZDEoKV0ubWVyZ2VGbGFncyhmbGFncyk7CiAgICAgICAgICAgICBjaGFu
Z2VkIHw9IG1fZ3JhcGhbbm9kZS5jaGlsZDIoKV0ubWVyZ2VGbGFncyhmbGFncyk7CiAgICAgICAg
ICAgICBicmVhazsKQEAgLTM2OCw2ICszNzgsOCBAQCBwcml2YXRlOgogICAgICAgICAgICAgLy8g
bm8gbWF0dGVyIHdoYXQsIGFuZCBhbHdheXMgZm9yY2VzIGl0cyBpbnB1dHMgdG8gY2hlY2sgYXMg
d2VsbC4KICAgICAgICAgICAgIAogICAgICAgICAgICAgZmxhZ3MgfD0gTm9kZVVzZWRBc051bWJl
ciB8IE5vZGVOZWVkc05lZ1plcm87CisgICAgICAgICAgICBmbGFncyAmPSB+Tm9kZVVzZWRBc090
aGVyOworCiAgICAgICAgICAgICBjaGFuZ2VkIHw9IG1fZ3JhcGhbbm9kZS5jaGlsZDEoKV0ubWVy
Z2VGbGFncyhmbGFncyk7CiAgICAgICAgICAgICBjaGFuZ2VkIHw9IG1fZ3JhcGhbbm9kZS5jaGls
ZDIoKV0ubWVyZ2VGbGFncyhmbGFncyk7CiAgICAgICAgICAgICBicmVhazsKQEAgLTM4NSw3ICsz
OTcsOSBAQCBwcml2YXRlOgogICAgICAgICAgICAgICAgICAgICBjaGFuZ2VkIHw9IG1lcmdlUHJl
ZGljdGlvbihTcGVjRG91YmxlKTsKICAgICAgICAgICAgIH0KICAgICAgICAgICAgIAotICAgICAg
ICAgICAgZmxhZ3MgfD0gTm9kZVVzZWRBc1ZhbHVlOworICAgICAgICAgICAgZmxhZ3MgfD0gTm9k
ZVVzZWRBc051bWJlciB8IE5vZGVOZWVkc05lZ1plcm87CisgICAgICAgICAgICBmbGFncyAmPSB+
Tm9kZVVzZWRBc090aGVyOworCiAgICAgICAgICAgICBjaGFuZ2VkIHw9IG1fZ3JhcGhbbm9kZS5j
aGlsZDEoKV0ubWVyZ2VGbGFncyhmbGFncyk7CiAgICAgICAgICAgICBjaGFuZ2VkIHw9IG1fZ3Jh
cGhbbm9kZS5jaGlsZDIoKV0ubWVyZ2VGbGFncyhmbGFncyk7CiAgICAgICAgICAgICBicmVhazsK
QEAgLTM5Myw3ICs0MDcsOSBAQCBwcml2YXRlOgogICAgICAgICAgICAgCiAgICAgICAgIGNhc2Ug
QXJpdGhTcXJ0OiB7CiAgICAgICAgICAgICBjaGFuZ2VkIHw9IHNldFByZWRpY3Rpb24oU3BlY0Rv
dWJsZSk7Ci0gICAgICAgICAgICBjaGFuZ2VkIHw9IG1fZ3JhcGhbbm9kZS5jaGlsZDEoKV0ubWVy
Z2VGbGFncyhmbGFncyB8IE5vZGVVc2VkQXNWYWx1ZSk7CisgICAgICAgICAgICBmbGFncyB8PSBO
b2RlVXNlZEFzTnVtYmVyIHwgTm9kZU5lZWRzTmVnWmVybzsKKyAgICAgICAgICAgIGZsYWdzICY9
IH5Ob2RlVXNlZEFzT3RoZXI7CisgICAgICAgICAgICBjaGFuZ2VkIHw9IG1fZ3JhcGhbbm9kZS5j
aGlsZDEoKV0ubWVyZ2VGbGFncyhmbGFncyk7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAg
fQogICAgICAgICAgICAgCkBAIC00MDUsNyArNDIxLDYgQEAgcHJpdmF0ZToKICAgICAgICAgICAg
IGVsc2UKICAgICAgICAgICAgICAgICBjaGFuZ2VkIHw9IG1lcmdlUHJlZGljdGlvbihzcGVjdWxh
dGVkRG91YmxlVHlwZUZvclByZWRpY3Rpb24oY2hpbGQpKTsKIAotICAgICAgICAgICAgZmxhZ3Mg
Jj0gfk5vZGVOZWVkc05lZ1plcm87CiAgICAgICAgICAgICBjaGFuZ2VkIHw9IG1fZ3JhcGhbbm9k
ZS5jaGlsZDEoKV0ubWVyZ2VGbGFncyhmbGFncyk7CiAgICAgICAgICAgICBicmVhazsKICAgICAg
ICAgfQpAQCAtNDQ4LDEzICs0NjMsMTMgQEAgcHJpdmF0ZToKICAgICAgICAgICAgICAgICBjaGFu
Z2VkIHw9IG1lcmdlUHJlZGljdGlvbihub2RlLmdldEhlYXBQcmVkaWN0aW9uKCkpOwogCiAgICAg
ICAgICAgICBjaGFuZ2VkIHw9IG1fZ3JhcGhbbm9kZS5jaGlsZDEoKV0ubWVyZ2VGbGFncyhOb2Rl
VXNlZEFzVmFsdWUpOwotICAgICAgICAgICAgY2hhbmdlZCB8PSBtX2dyYXBoW25vZGUuY2hpbGQy
KCldLm1lcmdlRmxhZ3MoTm9kZVVzZWRBc051bWJlciB8IE5vZGVVc2VkQXNJbnQpOworICAgICAg
ICAgICAgY2hhbmdlZCB8PSBtX2dyYXBoW25vZGUuY2hpbGQyKCldLm1lcmdlRmxhZ3MoTm9kZVVz
ZWRBc051bWJlciB8IE5vZGVVc2VkQXNPdGhlciB8IE5vZGVVc2VkQXNJbnQpOwogICAgICAgICAg
ICAgYnJlYWs7CiAgICAgICAgIH0KICAgICAgICAgICAgIAogICAgICAgICBjYXNlIEdldE15QXJn
dW1lbnRCeVZhbFNhZmU6IHsKICAgICAgICAgICAgIGNoYW5nZWQgfD0gbWVyZ2VQcmVkaWN0aW9u
KG5vZGUuZ2V0SGVhcFByZWRpY3Rpb24oKSk7Ci0gICAgICAgICAgICBjaGFuZ2VkIHw9IG1fZ3Jh
cGhbbm9kZS5jaGlsZDEoKV0ubWVyZ2VGbGFncyhOb2RlVXNlZEFzTnVtYmVyIHwgTm9kZVVzZWRB
c0ludCk7CisgICAgICAgICAgICBjaGFuZ2VkIHw9IG1fZ3JhcGhbbm9kZS5jaGlsZDEoKV0ubWVy
Z2VGbGFncyhOb2RlVXNlZEFzTnVtYmVyIHwgTm9kZVVzZWRBc090aGVyIHwgTm9kZVVzZWRBc0lu
dCk7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgfQogICAgICAgICAgICAgCkBAIC01NTUs
NyArNTcwLDcgQEAgcHJpdmF0ZToKICAgICAgICAgICAgIAogICAgICAgICBjYXNlIE5ld0FycmF5
V2l0aFNpemU6IHsKICAgICAgICAgICAgIGNoYW5nZWQgfD0gc2V0UHJlZGljdGlvbihTcGVjQXJy
YXkpOwotICAgICAgICAgICAgY2hhbmdlZCB8PSBtX2dyYXBoW25vZGUuY2hpbGQxKCldLm1lcmdl
RmxhZ3MoTm9kZVVzZWRBc051bWJlciB8IE5vZGVVc2VkQXNJbnQpOworICAgICAgICAgICAgY2hh
bmdlZCB8PSBtX2dyYXBoW25vZGUuY2hpbGQxKCldLm1lcmdlRmxhZ3MoTm9kZVVzZWRBc1ZhbHVl
IHwgTm9kZVVzZWRBc0ludCk7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgfQogICAgICAg
ICAgICAgCkBAIC01NzIsNyArNTg3LDcgQEAgcHJpdmF0ZToKICAgICAgICAgY2FzZSBTdHJpbmdD
aGFyQXQ6IHsKICAgICAgICAgICAgIGNoYW5nZWQgfD0gc2V0UHJlZGljdGlvbihTcGVjU3RyaW5n
KTsKICAgICAgICAgICAgIGNoYW5nZWQgfD0gbV9ncmFwaFtub2RlLmNoaWxkMSgpXS5tZXJnZUZs
YWdzKE5vZGVVc2VkQXNWYWx1ZSk7Ci0gICAgICAgICAgICBjaGFuZ2VkIHw9IG1fZ3JhcGhbbm9k
ZS5jaGlsZDIoKV0ubWVyZ2VGbGFncyhOb2RlVXNlZEFzTnVtYmVyIHwgTm9kZVVzZWRBc0ludCk7
CisgICAgICAgICAgICBjaGFuZ2VkIHw9IG1fZ3JhcGhbbm9kZS5jaGlsZDIoKV0ubWVyZ2VGbGFn
cyhOb2RlVXNlZEFzTnVtYmVyIHwgTm9kZVVzZWRBc090aGVyIHwgTm9kZVVzZWRBc0ludCk7CiAg
ICAgICAgICAgICBicmVhazsKICAgICAgICAgfQogICAgICAgICAgICAgCkBAIC01ODEsNyArNTk2
LDcgQEAgcHJpdmF0ZToKICAgICAgICAgICAgIGZvciAodW5zaWduZWQgY2hpbGRJZHggPSBub2Rl
LmZpcnN0Q2hpbGQoKTsKICAgICAgICAgICAgICAgICAgY2hpbGRJZHggPCBub2RlLmZpcnN0Q2hp
bGQoKSArIG5vZGUubnVtQ2hpbGRyZW4oKTsKICAgICAgICAgICAgICAgICAgKytjaGlsZElkeCkK
LSAgICAgICAgICAgICAgICBjaGFuZ2VkIHw9IG1fZ3JhcGhbbV9ncmFwaC5tX3ZhckFyZ0NoaWxk
cmVuW2NoaWxkSWR4XV0ubWVyZ2VGbGFncyhOb2RlVXNlZEFzTnVtYmVyKTsKKyAgICAgICAgICAg
ICAgICBjaGFuZ2VkIHw9IG1fZ3JhcGhbbV9ncmFwaC5tX3ZhckFyZ0NoaWxkcmVuW2NoaWxkSWR4
XV0ubWVyZ2VGbGFncyhOb2RlVXNlZEFzTnVtYmVyIHwgTm9kZVVzZWRBc090aGVyKTsKICAgICAg
ICAgICAgIGJyZWFrOwogICAgICAgICB9CiAgICAgICAgICAgICAKQEAgLTY0Niw3ICs2NjEsNyBA
QCBwcml2YXRlOgogICAgICAgICAKICAgICAgICAgY2FzZSBQdXRCeVZhbDoKICAgICAgICAgICAg
IGNoYW5nZWQgfD0gbV9ncmFwaFttX2dyYXBoLnZhckFyZ0NoaWxkKG5vZGUsIDApXS5tZXJnZUZs
YWdzKE5vZGVVc2VkQXNWYWx1ZSk7Ci0gICAgICAgICAgICBjaGFuZ2VkIHw9IG1fZ3JhcGhbbV9n
cmFwaC52YXJBcmdDaGlsZChub2RlLCAxKV0ubWVyZ2VGbGFncyhOb2RlVXNlZEFzTnVtYmVyIHwg
Tm9kZVVzZWRBc0ludCk7CisgICAgICAgICAgICBjaGFuZ2VkIHw9IG1fZ3JhcGhbbV9ncmFwaC52
YXJBcmdDaGlsZChub2RlLCAxKV0ubWVyZ2VGbGFncyhOb2RlVXNlZEFzTnVtYmVyIHwgTm9kZVVz
ZWRBc090aGVyIHwgTm9kZVVzZWRBc0ludCk7CiAgICAgICAgICAgICBjaGFuZ2VkIHw9IG1fZ3Jh
cGhbbV9ncmFwaC52YXJBcmdDaGlsZChub2RlLCAyKV0ubWVyZ2VGbGFncyhOb2RlVXNlZEFzVmFs
dWUpOwogICAgICAgICAgICAgYnJlYWs7CiAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9k
ZmcvREZHU3BlY3VsYXRpdmVKSVQzMl82NC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFT
Y3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVDMyXzY0LmNwcAkocmV2aXNpb24gMTM0MTU0
KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVDMyXzY0LmNw
cAkod29ya2luZyBjb3B5KQpAQCAtMjksOSArMjksMTEgQEAKIAogI2lmIEVOQUJMRShERkdfSklU
KQogCisjaW5jbHVkZSAiQXJyYXlQcm90b3R5cGUuaCIKICNpbmNsdWRlICJERkdDYWxsQXJyYXlB
bGxvY2F0b3JTbG93UGF0aEdlbmVyYXRvci5oIgogI2luY2x1ZGUgIkRGR1Nsb3dQYXRoR2VuZXJh
dG9yLmgiCiAjaW5jbHVkZSAiSlNBY3RpdmF0aW9uLmgiCisjaW5jbHVkZSAiT2JqZWN0UHJvdG90
eXBlLmgiCiAKIG5hbWVzcGFjZSBKU0MgeyBuYW1lc3BhY2UgREZHIHsKIApAQCAtMjcwMiw2ICsy
NzA0LDEzIEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGUoTm9kZSYgbm9kZSkKICAgICAg
ICAgfQogICAgICAgICBjYXNlIEFycmF5OjpEb3VibGU6IHsKICAgICAgICAgICAgIGlmIChub2Rl
LmFycmF5TW9kZSgpLmlzSW5Cb3VuZHMoKSkgeworICAgICAgICAgICAgICAgIGlmIChub2RlLmFy
cmF5TW9kZSgpLmlzU2FuZUNoYWluKCkpIHsKKyAgICAgICAgICAgICAgICAgICAgSlNHbG9iYWxP
YmplY3QqIGdsb2JhbE9iamVjdCA9IG1faml0Lmdsb2JhbE9iamVjdEZvcihub2RlLmNvZGVPcmln
aW4pOworICAgICAgICAgICAgICAgICAgICBBU1NFUlQoZ2xvYmFsT2JqZWN0LT5hcnJheVByb3Rv
dHlwZUNoYWluSXNTYW5lKCkpOworICAgICAgICAgICAgICAgICAgICBnbG9iYWxPYmplY3QtPmFy
cmF5UHJvdG90eXBlKCktPnN0cnVjdHVyZSgpLT5hZGRUcmFuc2l0aW9uV2F0Y2hwb2ludChzcGVj
dWxhdGlvbldhdGNocG9pbnQoKSk7CisgICAgICAgICAgICAgICAgICAgIGdsb2JhbE9iamVjdC0+
b2JqZWN0UHJvdG90eXBlKCktPnN0cnVjdHVyZSgpLT5hZGRUcmFuc2l0aW9uV2F0Y2hwb2ludChz
cGVjdWxhdGlvbldhdGNocG9pbnQoKSk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAg
ICAgIAogICAgICAgICAgICAgICAgIFNwZWN1bGF0ZVN0cmljdEludDMyT3BlcmFuZCBwcm9wZXJ0
eSh0aGlzLCBub2RlLmNoaWxkMigpKTsKICAgICAgICAgICAgICAgICBTdG9yYWdlT3BlcmFuZCBz
dG9yYWdlKHRoaXMsIG5vZGUuY2hpbGQzKCkpOwogICAgICAgICAgICAgCkBAIC0yNzE1LDcgKzI3
MjQsOCBAQCB2b2lkIFNwZWN1bGF0aXZlSklUOjpjb21waWxlKE5vZGUmIG5vZGUpCiAgICAgICAg
ICAgICAKICAgICAgICAgICAgICAgICBGUFJUZW1wb3JhcnkgcmVzdWx0KHRoaXMpOwogICAgICAg
ICAgICAgICAgIG1faml0LmxvYWREb3VibGUoTWFjcm9Bc3NlbWJsZXI6OkJhc2VJbmRleChzdG9y
YWdlUmVnLCBwcm9wZXJ0eVJlZywgTWFjcm9Bc3NlbWJsZXI6OlRpbWVzRWlnaHQpLCByZXN1bHQu
ZnByKCkpOwotICAgICAgICAgICAgICAgIHNwZWN1bGF0aW9uQ2hlY2soT3V0T2ZCb3VuZHMsIEpT
VmFsdWVSZWdzKCksIE5vTm9kZSwgbV9qaXQuYnJhbmNoRG91YmxlKE1hY3JvQXNzZW1ibGVyOjpE
b3VibGVOb3RFcXVhbE9yVW5vcmRlcmVkLCByZXN1bHQuZnByKCksIHJlc3VsdC5mcHIoKSkpOwor
ICAgICAgICAgICAgICAgIGlmICghbm9kZS5hcnJheU1vZGUoKS5pc1NhbmVDaGFpbigpKQorICAg
ICAgICAgICAgICAgICAgICBzcGVjdWxhdGlvbkNoZWNrKE91dE9mQm91bmRzLCBKU1ZhbHVlUmVn
cygpLCBOb05vZGUsIG1faml0LmJyYW5jaERvdWJsZShNYWNyb0Fzc2VtYmxlcjo6RG91YmxlTm90
RXF1YWxPclVub3JkZXJlZCwgcmVzdWx0LmZwcigpLCByZXN1bHQuZnByKCkpKTsKICAgICAgICAg
ICAgICAgICBkb3VibGVSZXN1bHQocmVzdWx0LmZwcigpLCBtX2NvbXBpbGVJbmRleCk7CiAgICAg
ICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICB9CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklUNjQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQ2NC5jcHAJKHJldmlzaW9uIDEzNDE1
NCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQ2NC5jcHAJ
KHdvcmtpbmcgY29weSkKQEAgLTI5LDggKzI5LDEwIEBACiAjaWYgRU5BQkxFKERGR19KSVQpCiAK
ICNpbmNsdWRlICJBcmd1bWVudHMuaCIKKyNpbmNsdWRlICJBcnJheVByb3RvdHlwZS5oIgogI2lu
Y2x1ZGUgIkRGR0NhbGxBcnJheUFsbG9jYXRvclNsb3dQYXRoR2VuZXJhdG9yLmgiCiAjaW5jbHVk
ZSAiREZHU2xvd1BhdGhHZW5lcmF0b3IuaCIKKyNpbmNsdWRlICJPYmplY3RQcm90b3R5cGUuaCIK
IAogbmFtZXNwYWNlIEpTQyB7IG5hbWVzcGFjZSBERkcgewogCkBAIC0yNjU0LDYgKzI2NTYsMTMg
QEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZShOb2RlJiBub2RlKQogCiAgICAgICAgIGNh
c2UgQXJyYXk6OkRvdWJsZTogewogICAgICAgICAgICAgaWYgKG5vZGUuYXJyYXlNb2RlKCkuaXNJ
bkJvdW5kcygpKSB7CisgICAgICAgICAgICAgICAgaWYgKG5vZGUuYXJyYXlNb2RlKCkuaXNTYW5l
Q2hhaW4oKSkgeworICAgICAgICAgICAgICAgICAgICBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2Jq
ZWN0ID0gbV9qaXQuZ2xvYmFsT2JqZWN0Rm9yKG5vZGUuY29kZU9yaWdpbik7CisgICAgICAgICAg
ICAgICAgICAgIEFTU0VSVChnbG9iYWxPYmplY3QtPmFycmF5UHJvdG90eXBlQ2hhaW5Jc1NhbmUo
KSk7CisgICAgICAgICAgICAgICAgICAgIGdsb2JhbE9iamVjdC0+YXJyYXlQcm90b3R5cGUoKS0+
c3RydWN0dXJlKCktPmFkZFRyYW5zaXRpb25XYXRjaHBvaW50KHNwZWN1bGF0aW9uV2F0Y2hwb2lu
dCgpKTsKKyAgICAgICAgICAgICAgICAgICAgZ2xvYmFsT2JqZWN0LT5vYmplY3RQcm90b3R5cGUo
KS0+c3RydWN0dXJlKCktPmFkZFRyYW5zaXRpb25XYXRjaHBvaW50KHNwZWN1bGF0aW9uV2F0Y2hw
b2ludCgpKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgCiAgICAgICAgICAg
ICAgICAgU3BlY3VsYXRlU3RyaWN0SW50MzJPcGVyYW5kIHByb3BlcnR5KHRoaXMsIG5vZGUuY2hp
bGQyKCkpOwogICAgICAgICAgICAgICAgIFN0b3JhZ2VPcGVyYW5kIHN0b3JhZ2UodGhpcywgbm9k
ZS5jaGlsZDMoKSk7CiAgICAgICAgICAgICAKQEAgLTI2NjcsNyArMjY3Niw4IEBAIHZvaWQgU3Bl
Y3VsYXRpdmVKSVQ6OmNvbXBpbGUoTm9kZSYgbm9kZSkKICAgICAgICAgICAgIAogICAgICAgICAg
ICAgICAgIEZQUlRlbXBvcmFyeSByZXN1bHQodGhpcyk7CiAgICAgICAgICAgICAgICAgbV9qaXQu
bG9hZERvdWJsZShNYWNyb0Fzc2VtYmxlcjo6QmFzZUluZGV4KHN0b3JhZ2VSZWcsIHByb3BlcnR5
UmVnLCBNYWNyb0Fzc2VtYmxlcjo6VGltZXNFaWdodCksIHJlc3VsdC5mcHIoKSk7Ci0gICAgICAg
ICAgICAgICAgc3BlY3VsYXRpb25DaGVjayhPdXRPZkJvdW5kcywgSlNWYWx1ZVJlZ3MoKSwgTm9O
b2RlLCBtX2ppdC5icmFuY2hEb3VibGUoTWFjcm9Bc3NlbWJsZXI6OkRvdWJsZU5vdEVxdWFsT3JV
bm9yZGVyZWQsIHJlc3VsdC5mcHIoKSwgcmVzdWx0LmZwcigpKSk7CisgICAgICAgICAgICAgICAg
aWYgKCFub2RlLmFycmF5TW9kZSgpLmlzU2FuZUNoYWluKCkpCisgICAgICAgICAgICAgICAgICAg
IHNwZWN1bGF0aW9uQ2hlY2soT3V0T2ZCb3VuZHMsIEpTVmFsdWVSZWdzKCksIE5vTm9kZSwgbV9q
aXQuYnJhbmNoRG91YmxlKE1hY3JvQXNzZW1ibGVyOjpEb3VibGVOb3RFcXVhbE9yVW5vcmRlcmVk
LCByZXN1bHQuZnByKCksIHJlc3VsdC5mcHIoKSkpOwogICAgICAgICAgICAgICAgIGRvdWJsZVJl
c3VsdChyZXN1bHQuZnByKCksIG1fY29tcGlsZUluZGV4KTsKICAgICAgICAgICAgICAgICBicmVh
azsKICAgICAgICAgICAgIH0KSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pT
R2xvYmFsT2JqZWN0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9KU0dsb2JhbE9iamVjdC5jcHAJKHJldmlzaW9uIDEzNDE1NCkKKysrIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsT2JqZWN0LmNwcAkod29ya2luZyBjb3B5KQpAQCAt
NDM3LDYgKzQzNywxNCBAQCB2b2lkIEpTR2xvYmFsT2JqZWN0OjpoYXZlQUJhZFRpbWUoSlNHbG9i
CiAgICAgfQogfQogCitib29sIEpTR2xvYmFsT2JqZWN0OjphcnJheVByb3RvdHlwZUNoYWluSXNT
YW5lKCkKK3sKKyAgICByZXR1cm4gIWhhc0luZGV4ZWRQcm9wZXJ0aWVzKG1fYXJyYXlQcm90b3R5
cGUtPnN0cnVjdHVyZSgpLT5pbmRleGluZ1R5cGUoKSkKKyAgICAgICAgJiYgbV9hcnJheVByb3Rv
dHlwZS0+cHJvdG90eXBlKCkgPT0gbV9vYmplY3RQcm90b3R5cGUuZ2V0KCkKKyAgICAgICAgJiYg
IWhhc0luZGV4ZWRQcm9wZXJ0aWVzKG1fb2JqZWN0UHJvdG90eXBlLT5zdHJ1Y3R1cmUoKS0+aW5k
ZXhpbmdUeXBlKCkpCisgICAgICAgICYmIG1fb2JqZWN0UHJvdG90eXBlLT5wcm90b3R5cGUoKS5p
c051bGwoKTsKK30KKwogdm9pZCBKU0dsb2JhbE9iamVjdDo6Y3JlYXRlVGhyb3dUeXBlRXJyb3Io
RXhlY1N0YXRlKiBleGVjKQogewogICAgIEpTRnVuY3Rpb24qIHRocm93ZXIgPSBKU0Z1bmN0aW9u
OjpjcmVhdGUoZXhlYywgdGhpcywgMCwgU3RyaW5nKCksIGdsb2JhbEZ1bmNUaHJvd1R5cGVFcnJv
cik7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2JhbE9iamVjdC5o
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsT2Jq
ZWN0LmgJKHJldmlzaW9uIDEzNDE1NCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0pTR2xvYmFsT2JqZWN0LmgJKHdvcmtpbmcgY29weSkKQEAgLTMzMyw2ICszMzMsOCBAQCBuYW1l
c3BhY2UgSlNDIHsKICAgICAgICAgfQogICAgICAgICAKICAgICAgICAgdm9pZCBoYXZlQUJhZFRp
bWUoSlNHbG9iYWxEYXRhJik7CisgICAgICAgIAorICAgICAgICBib29sIGFycmF5UHJvdG90eXBl
Q2hhaW5Jc1NhbmUoKTsKIAogICAgICAgICB2b2lkIHNldFByb2ZpbGVHcm91cCh1bnNpZ25lZCB2
YWx1ZSkgeyBjcmVhdGVSYXJlRGF0YUlmTmVlZGVkKCk7IG1fcmFyZURhdGEtPnByb2ZpbGVHcm91
cCA9IHZhbHVlOyB9CiAgICAgICAgIHVuc2lnbmVkIHByb2ZpbGVHcm91cCgpIGNvbnN0Cg==
</data>
<flag name="review"
          id="188179"
          type_id="1"
          status="+"
          setter="ggaren"
    />
          </attachment>
      

    </bug>

</bugzilla>