<?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>150430</bug_id>
          
          <creation_ts>2015-10-21 18:19:31 -0700</creation_ts>
          <short_desc>Air needs syntax for escaping StackSlots</short_desc>
          <delta_ts>2015-10-29 12:17:42 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>JavaScriptCore</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>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>
          
          <blocked>150279</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Filip Pizlo">fpizlo</reporter>
          <assigned_to name="Filip Pizlo">fpizlo</assigned_to>
          <cc>commit-queue</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1135513</commentid>
    <comment_count>0</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2015-10-21 18:19:31 -0700</bug_when>
    <thetext>It&apos;ll need it because otherwise we won&apos;t be able to select instructions for the StackSlot Value except if it&apos;s always used by Load/Store.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1137592</commentid>
    <comment_count>1</comment_count>
      <attachid>264328</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2015-10-29 11:46:30 -0700</bug_when>
    <thetext>Created attachment 264328
the patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1137595</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-10-29 11:50:14 -0700</bug_when>
    <thetext>Attachment 264328 did not pass style-queue:


ERROR: Source/JavaScriptCore/b3/air/AirAllocateStack.cpp:112:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
Total errors found: 1 in 21 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>1137597</commentid>
    <comment_count>3</comment_count>
      <attachid>264328</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2015-10-29 11:50:53 -0700</bug_when>
    <thetext>Comment on attachment 264328
the patch

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1137603</commentid>
    <comment_count>4</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2015-10-29 12:04:19 -0700</bug_when>
    <thetext>Hmmm, EWS is taking a long time.  I&apos;ll wait a bit before landing.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1137609</commentid>
    <comment_count>5</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2015-10-29 12:17:42 -0700</bug_when>
    <thetext>Landed in http://trac.webkit.org/changeset/191745</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>264328</attachid>
            <date>2015-10-29 11:46:30 -0700</date>
            <delta_ts>2015-10-29 11:50:53 -0700</delta_ts>
            <desc>the patch</desc>
            <filename>blah.patch</filename>
            <type>text/plain</type>
            <size>32045</size>
            <attacher name="Filip Pizlo">fpizlo</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTkxNzQwKQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDc5IEBA
CisyMDE1LTEwLTI5ICBGaWxpcCBQaXpsbyAgPGZwaXpsb0BhcHBsZS5jb20+CisKKyAgICAgICAg
QWlyIG5lZWRzIHN5bnRheCBmb3IgZXNjYXBpbmcgU3RhY2tTbG90cworICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTUwNDMwCisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhpcyBhZGRzIGxvd2VyaW5nIGZvciBG
cmFtZVBvaW50ZXIgYW5kIFN0YWNrU2xvdCwgYW5kIHRvIGVuYWJsZSB0aGlzLCBpdCBhZGRzIHRo
ZSBMZWEKKyAgICAgICAgaW5zdHJ1Y3Rpb24gZm9yIGdldHRpbmcgdGhlIHZhbHVlIG9mIGFuIGFk
ZHJlc3MuIFRoaXMgaXMgbmVjZXNzYXJ5IHRvIHN1cHBvcnQgYXJiaXRyYXJ5CisgICAgICAgIGxv
d2VyaW5ncyBvZiBTdGFja1Nsb3QsIHNpbmNlIHRoZSBvbmx5IHdheSB0byBnZXQgdGhlICJ2YWx1
ZSIgb2YgYSBTdGFja1Nsb3QgaW4gQWlyIGlzIHdpdGgKKyAgICAgICAgdGhpcyBuZXcgaW5zdHJ1
Y3Rpb24uCisKKyAgICAgICAgTGVhIHVzZXMgYSBuZXcgUm9sZSwgY2FsbGVkIFVzZUFkZHIuIFRo
aXMgZGVzY3JpYmVzIGV4YWN0bHkgd2hhdCB0aGUgSW50ZWwtc3R5bGUgTEVBIG9wY29kZQorICAg
ICAgICB3b3VsZCBkbzogaXQgZXZhbHVhdGVzIGFuIGFkZHJlc3MsIGJ1dCBkb2VzIG5vdCBsb2Fk
IGZyb20gaXQgb3Igc3RvcmUgdG8gaXQuCisKKyAgICAgICAgTGVhIGlzIGFsc28gdGhlIG9ubHkg
d2F5IHRvIGVzY2FwZSBhIFN0YWNrU2xvdC4gV2VsbCwgbW9yZSBhY2N1cmF0ZWx5LCBVc2VBZGRy
IGlzIHRoZSBvbmx5CisgICAgICAgIHdheSB0byBlc2NhcGUgYW5kIFVzZUFkZHIgaXMgb25seSB1
c2VkIGJ5IExlYS4gVGhlIHN0YWNrIGFsbG9jYXRpb24gcGhhc2Ugbm93IHVuZGVyc3RhbmRzCisg
ICAgICAgIHRoYXQgU3RhY2tTbG90cyBtYXkgZXNjYXBlLCBhbmQgZmFjdG9ycyB0aGlzIGludG8g
aXRzIGFuYWx5c2lzLgorCisgICAgICAgICogYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyLmg6Cisg
ICAgICAgIChKU0M6Ok1hY3JvQXNzZW1ibGVyOjpsZWEpOgorICAgICAgICAqIGIzL0IzQWRkcmVz
c01hdGNoZXIucGF0dGVybnM6CisgICAgICAgICogYjMvQjNMb3dlclRvQWlyLmNwcDoKKyAgICAg
ICAgKEpTQzo6QjM6OkFpcjo6TG93ZXJUb0Fpcjo6cnVuKToKKyAgICAgICAgKEpTQzo6QjM6OkFp
cjo6TG93ZXJUb0Fpcjo6YWRkcik6CisgICAgICAgIChKU0M6OkIzOjpBaXI6Okxvd2VyVG9BaXI6
OmxvYWRBZGRyKToKKyAgICAgICAgKEpTQzo6QjM6OkFpcjo6TG93ZXJUb0Fpcjo6QWRkcmVzc1Nl
bGVjdG9yOjp0cnlBZGQpOgorICAgICAgICAoSlNDOjpCMzo6QWlyOjpMb3dlclRvQWlyOjpBZGRy
ZXNzU2VsZWN0b3I6OnRyeUZyYW1lUG9pbnRlcik6CisgICAgICAgIChKU0M6OkIzOjpBaXI6Okxv
d2VyVG9BaXI6OkFkZHJlc3NTZWxlY3Rvcjo6dHJ5U3RhY2tTbG90KToKKyAgICAgICAgKEpTQzo6
QjM6OkFpcjo6TG93ZXJUb0Fpcjo6QWRkcmVzc1NlbGVjdG9yOjp0cnlEaXJlY3QpOgorICAgICAg
ICAoSlNDOjpCMzo6QWlyOjpMb3dlclRvQWlyOjp0cnlDb25zdDY0KToKKyAgICAgICAgKEpTQzo6
QjM6OkFpcjo6TG93ZXJUb0Fpcjo6dHJ5RnJhbWVQb2ludGVyKToKKyAgICAgICAgKEpTQzo6QjM6
OkFpcjo6TG93ZXJUb0Fpcjo6dHJ5U3RhY2tTbG90KToKKyAgICAgICAgKEpTQzo6QjM6OkFpcjo6
TG93ZXJUb0Fpcjo6dHJ5SWRlbnRpdHkpOgorICAgICAgICAqIGIzL0IzTG93ZXJpbmdNYXRjaGVy
LnBhdHRlcm5zOgorICAgICAgICAqIGIzL0IzTWVtb3J5VmFsdWUuY3BwOgorICAgICAgICAoSlND
OjpCMzo6TWVtb3J5VmFsdWU6On5NZW1vcnlWYWx1ZSk6CisgICAgICAgIChKU0M6OkIzOjpNZW1v
cnlWYWx1ZTo6YWNjZXNzQnl0ZVNpemUpOgorICAgICAgICAoSlNDOjpCMzo6TWVtb3J5VmFsdWU6
OmR1bXBNZXRhKToKKyAgICAgICAgKiBiMy9CM01lbW9yeVZhbHVlLmg6CisgICAgICAgICogYjMv
QjNSZWR1Y2VTdHJlbmd0aC5jcHA6CisgICAgICAgICogYjMvQjNTdGFja1Nsb3RWYWx1ZS5oOgor
ICAgICAgICAoSlNDOjpCMzo6U3RhY2tTbG90VmFsdWU6OmFjY2VwdHMpOiBEZWxldGVkLgorICAg
ICAgICAqIGIzL0IzVHlwZS5oOgorICAgICAgICAoSlNDOjpCMzo6cG9pbnRlclR5cGUpOgorICAg
ICAgICAoSlNDOjpCMzo6c2l6ZW9mVHlwZSk6CisgICAgICAgICogYjMvQjNWYWxpZGF0ZS5jcHA6
CisgICAgICAgICogYjMvQjNWYWx1ZS5oOgorICAgICAgICAqIGIzL2Fpci9BaXJBbGxvY2F0ZVN0
YWNrLmNwcDoKKyAgICAgICAgKEpTQzo6QjM6OkFpcjo6YWxsb2NhdGVTdGFjayk6CisgICAgICAg
ICogYjMvYWlyL0FpckFyZy5oOgorICAgICAgICAoSlNDOjpCMzo6QWlyOjpBcmc6OmlzVXNlKToK
KyAgICAgICAgKEpTQzo6QjM6OkFpcjo6QXJnOjppc0RlZik6CisgICAgICAgIChKU0M6OkIzOjpB
aXI6OkFyZzo6Zm9yRWFjaFRtcCk6CisgICAgICAgICogYjMvYWlyL0FpckNvZGUuY3BwOgorICAg
ICAgICAoSlNDOjpCMzo6QWlyOjpDb2RlOjphZGRTdGFja1Nsb3QpOgorICAgICAgICAoSlNDOjpC
Mzo6QWlyOjpDb2RlOjphZGRTcGVjaWFsKToKKyAgICAgICAgKiBiMy9haXIvQWlyQ29kZS5oOgor
ICAgICAgICAqIGIzL2Fpci9BaXJPcGNvZGUub3Bjb2RlczoKKyAgICAgICAgKiBiMy9haXIvQWly
U3BpbGxFdmVyeXRoaW5nLmNwcDoKKyAgICAgICAgKEpTQzo6QjM6OkFpcjo6c3BpbGxFdmVyeXRo
aW5nKToKKyAgICAgICAgKiBiMy9haXIvQWlyU3RhY2tTbG90Lmg6CisgICAgICAgIChKU0M6OkIz
OjpBaXI6OlN0YWNrU2xvdDo6Ynl0ZVNpemUpOgorICAgICAgICAoSlNDOjpCMzo6QWlyOjpTdGFj
a1Nsb3Q6OmtpbmQpOgorICAgICAgICAoSlNDOjpCMzo6QWlyOjpTdGFja1Nsb3Q6OmlzTG9ja2Vk
KToKKyAgICAgICAgKEpTQzo6QjM6OkFpcjo6U3RhY2tTbG90OjppbmRleCk6CisgICAgICAgIChK
U0M6OkIzOjpBaXI6OlN0YWNrU2xvdDo6YWxpZ25tZW50KToKKyAgICAgICAgKiBiMy9haXIvb3Bj
b2RlX2dlbmVyYXRvci5yYjoKKyAgICAgICAgKiBiMy90ZXN0YjMuY3BwOgorICAgICAgICAoSlND
OjpCMzo6dGVzdExvYWRPZmZzZXRVc2luZ0FkZE5vdENvbnN0YW50KToKKyAgICAgICAgKEpTQzo6
QjM6OnRlc3RGcmFtZVBvaW50ZXIpOgorICAgICAgICAoSlNDOjpCMzo6dGVzdFN0YWNrU2xvdCk6
CisgICAgICAgIChKU0M6OkIzOjp0ZXN0TG9hZEZyb21GcmFtZVBvaW50ZXIpOgorICAgICAgICAo
SlNDOjpCMzo6dGVzdFN0b3JlTG9hZFN0YWNrU2xvdCk6CisgICAgICAgIChKU0M6OkIzOjpydW4p
OgorCiAyMDE1LTEwLTI4ICBKb3NlcGggUGVjb3Jhcm8gIDxwZWNvcmFyb0BhcHBsZS5jb20+CiAK
ICAgICAgICAgV2ViIEluc3BlY3RvcjogUmVuYW1lIEluc3BlY3RvclJlc291cmNlQWdlbnQgdG8g
SW5zcGVjdG9yTmV0d29ya0FnZW50CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1i
bGVyL01hY3JvQXNzZW1ibGVyLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3Jl
L2Fzc2VtYmxlci9NYWNyb0Fzc2VtYmxlci5oCShyZXZpc2lvbiAxOTE3MzIpCisrKyBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyLmgJKHdvcmtpbmcgY29weSkK
QEAgLTEyMjYsNiArMTIyNiwxMSBAQCBwdWJsaWM6CiAKICNlbmRpZiAvLyAhQ1BVKFg4Nl82NCkK
IAorICAgIHZvaWQgbGVhKEFkZHJlc3MgYWRkcmVzcywgUmVnaXN0ZXJJRCBkZXN0KQorICAgIHsK
KyAgICAgICAgYWRkUHRyKFRydXN0ZWRJbW0zMihhZGRyZXNzLm9mZnNldCksIGFkZHJlc3MuYmFz
ZSwgZGVzdCk7CisgICAgfQorCiAgICAgYm9vbCBzaG91bGRCbGluZChJbW0zMiBpbW0pCiAgICAg
ewogI2lmIEVOQUJMRShGT1JDRURfSklUX0JMSU5ESU5HKQpJbmRleDogU291cmNlL0phdmFTY3Jp
cHRDb3JlL2IzL0IzQWRkcmVzc01hdGNoZXIucGF0dGVybnMKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L0phdmFTY3JpcHRDb3JlL2IzL0IzQWRkcmVzc01hdGNoZXIucGF0dGVybnMJKHJldmlzaW9uIDE5
MTczMikKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM0FkZHJlc3NNYXRjaGVyLnBhdHRl
cm5zCSh3b3JraW5nIGNvcHkpCkBAIC0zNiw0ICszNiw3IEBAIEFkZFNoaWZ0MiA9IEFkZChiYXNl
LCBTaGwoaW5kZXgsICRsb2dTY2EKIAogQWRkID0gQWRkKGxlZnQsIHJpZ2h0KQogCitGcmFtZVBv
aW50ZXIgPSBGcmFtZVBvaW50ZXIoKQorU3RhY2tTbG90ID0gU3RhY2tTbG90KCkKKwogRGlyZWN0
CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNMb3dlclRvQWlyLmNwcAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNMb3dlclRvQWlyLmNwcAkocmV2aXNp
b24gMTkxNzMyKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzTG93ZXJUb0Fpci5jcHAJ
KHdvcmtpbmcgY29weSkKQEAgLTMxLDYgKzMxLDcgQEAKICNpbmNsdWRlICJBaXJDb2RlLmgiCiAj
aW5jbHVkZSAiQWlySW5zZXJ0aW9uU2V0LmgiCiAjaW5jbHVkZSAiQWlySW5zdElubGluZXMuaCIK
KyNpbmNsdWRlICJBaXJTdGFja1Nsb3QuaCIKICNpbmNsdWRlICJCM0FkZHJlc3NNYXRjaGVyLmgi
CiAjaW5jbHVkZSAiQjNBcmd1bWVudFJlZ1ZhbHVlLmgiCiAjaW5jbHVkZSAiQjNCYXNpY0Jsb2Nr
SW5saW5lcy5oIgpAQCAtNDEsNiArNDIsNyBAQAogI2luY2x1ZGUgIkIzTWVtb3J5VmFsdWUuaCIK
ICNpbmNsdWRlICJCM1BoYXNlU2NvcGUuaCIKICNpbmNsdWRlICJCM1Byb2NlZHVyZS5oIgorI2lu
Y2x1ZGUgIkIzU3RhY2tTbG90VmFsdWUuaCIKICNpbmNsdWRlICJCM1VzZUNvdW50cy5oIgogI2lu
Y2x1ZGUgIkIzVmFsdWVJbmxpbmVzLmgiCiAjaW5jbHVkZSA8d3RmL0xpc3REdW1wLmg+CkBAIC02
Nyw2ICs2OSwxMCBAQCBwdWJsaWM6CiAgICAgewogICAgICAgICBmb3IgKEIzOjpCYXNpY0Jsb2Nr
KiBibG9jayA6IHByb2NlZHVyZSkKICAgICAgICAgICAgIGJsb2NrVG9CbG9ja1tibG9ja10gPSBj
b2RlLmFkZEJsb2NrKGJsb2NrLT5mcmVxdWVuY3koKSk7CisgICAgICAgIGZvciAoVmFsdWUqIHZh
bHVlIDogcHJvY2VkdXJlLnZhbHVlcygpKSB7CisgICAgICAgICAgICBpZiAoU3RhY2tTbG90VmFs
dWUqIHN0YWNrU2xvdFZhbHVlID0gdmFsdWUtPmFzPFN0YWNrU2xvdFZhbHVlPigpKQorICAgICAg
ICAgICAgICAgIHN0YWNrVG9TdGFjay5hZGQoc3RhY2tTbG90VmFsdWUsIGNvZGUuYWRkU3RhY2tT
bG90KHN0YWNrU2xvdFZhbHVlKSk7CisgICAgICAgIH0KIAogICAgICAgICAvLyBMb3dlciBkZWZz
IGJlZm9yZSB1c2VzIG9uIGEgZ2xvYmFsIGxldmVsLiBUaGlzIGlzIGEgZ29vZCBoZXVyaXN0aWMg
dG8gbG9jayBkb3duIGEKICAgICAgICAgLy8gaG9pc3RlZCBhZGRyZXNzIGV4cHJlc3Npb24gYmVm
b3JlIHdlIGR1cGxpY2F0ZSBpdCBiYWNrIGludG8gdGhlIGxvb3AuCkBAIC0xNjgsNyArMTc0LDcg
QEAgcHVibGljOgogICAgICAgICBpZiAoIXZhbHVlKQogICAgICAgICAgICAgcmV0dXJuIEFyZygp
OwogCi0gICAgICAgIHJldHVybiBlZmZlY3RpdmVBZGRyKHZhbHVlLT5jaGlsZHJlbigpLmxhc3Qo
KSwgdmFsdWUpOworICAgICAgICByZXR1cm4gZWZmZWN0aXZlQWRkcih2YWx1ZS0+bGFzdENoaWxk
KCksIHZhbHVlKTsKICAgICB9CiAKICAgICBBcmcgbG9hZEFkZHIoVmFsdWUqIGxvYWRWYWx1ZSkK
QEAgLTM0Miw2ICszNDgsNyBAQCBwdWJsaWM6CiAgICAgSW5kZXhTZXQ8VmFsdWU+IGxvY2tlZDsg
Ly8gVGhlc2UgYXJlIHZhbHVlcyB0aGF0IHdpbGwgaGF2ZSBubyBUbXAgaW4gQWlyLgogICAgIElu
ZGV4TWFwPFZhbHVlLCBUbXA+IHZhbHVlVG9UbXA7IC8vIFRoZXNlIGFyZSB2YWx1ZXMgdGhhdCBt
dXN0IGhhdmUgYSBUbXAgaW4gQWlyLiBXZSBzYXkgdGhhdCBhIFZhbHVlKiB3aXRoIGEgbm9uLW51
bGwgVG1wIGlzICJwaW5uZWQiLgogICAgIEluZGV4TWFwPEIzOjpCYXNpY0Jsb2NrLCBBaXI6OkJh
c2ljQmxvY2sqPiBibG9ja1RvQmxvY2s7CisgICAgSGFzaE1hcDxTdGFja1Nsb3RWYWx1ZSosIEFp
cjo6U3RhY2tTbG90Kj4gc3RhY2tUb1N0YWNrOwogCiAgICAgVXNlQ291bnRzIHVzZUNvdW50czsK
IApAQCAtNDI0LDYgKzQzMSwxOCBAQCBwdWJsaWM6CiAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsK
ICAgICAgICAgfQogCisgICAgICAgIGJvb2wgdHJ5RnJhbWVQb2ludGVyKCkKKyAgICAgICAgewor
ICAgICAgICAgICAgc2VsZWN0ZWRBZGRyZXNzID0gQXJnOjphZGRyKFRtcChHUFJJbmZvOjpjYWxs
RnJhbWVSZWdpc3RlcikpOworICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgIH0KKwor
ICAgICAgICBib29sIHRyeVN0YWNrU2xvdCgpCisgICAgICAgIHsKKyAgICAgICAgICAgIHNlbGVj
dGVkQWRkcmVzcyA9IEFyZzo6c3RhY2sobG93ZXIuc3RhY2tUb1N0YWNrLmdldChyb290LT5hczxT
dGFja1Nsb3RWYWx1ZT4oKSkpOworICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgIH0K
KwogICAgICAgICBib29sIHRyeURpcmVjdCgpCiAgICAgICAgIHsKICAgICAgICAgICAgIHNlbGVj
dGVkQWRkcmVzcyA9IEFyZzo6YWRkcihsb3dlci50bXAocm9vdCkpOwpAQCAtNTgxLDYgKzYwMCwy
MSBAQCBwdWJsaWM6CiAgICAgICAgIHJldHVybiB0cnVlOwogICAgIH0KIAorICAgIGJvb2wgdHJ5
RnJhbWVQb2ludGVyKCkKKyAgICB7CisgICAgICAgIGFwcGVuZChNb3ZlLCBUbXAoR1BSSW5mbzo6
Y2FsbEZyYW1lUmVnaXN0ZXIpLCB0bXAoY3VycmVudFZhbHVlKSk7CisgICAgICAgIHJldHVybiB0
cnVlOworICAgIH0KKworICAgIGJvb2wgdHJ5U3RhY2tTbG90KCkKKyAgICB7CisgICAgICAgIGFw
cGVuZCgKKyAgICAgICAgICAgIExlYSwKKyAgICAgICAgICAgIEFyZzo6c3RhY2soc3RhY2tUb1N0
YWNrLmdldChjdXJyZW50VmFsdWUtPmFzPFN0YWNrU2xvdFZhbHVlPigpKSksCisgICAgICAgICAg
ICB0bXAoY3VycmVudFZhbHVlKSk7CisgICAgICAgIHJldHVybiB0cnVlOworICAgIH0KKwogICAg
IGJvb2wgdHJ5SWRlbnRpdHkoVmFsdWUqIHZhbHVlKQogICAgIHsKICAgICAgICAgYXBwZW5kKHJl
bGF4ZWRNb3ZlRm9yVHlwZSh2YWx1ZS0+dHlwZSgpKSwgaW1tT3JUbXAodmFsdWUpLCB0bXAoY3Vy
cmVudFZhbHVlKSk7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNMb3dlcmluZ01h
dGNoZXIucGF0dGVybnMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0Iz
TG93ZXJpbmdNYXRjaGVyLnBhdHRlcm5zCShyZXZpc2lvbiAxOTE3MzIpCisrKyBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvYjMvQjNMb3dlcmluZ01hdGNoZXIucGF0dGVybnMJKHdvcmtpbmcgY29weSkK
QEAgLTQ1LDYgKzQ1LDkgQEAgQXJndW1lbnRSZWcgPSBBcmd1bWVudFJlZygpCiBDb25zdDMyID0g
Q29uc3QzMigpCiBDb25zdDY0ID0gQ29uc3Q2NCgpCiAKK1N0YWNrU2xvdCA9IFN0YWNrU2xvdCgp
CitGcmFtZVBvaW50ZXIgPSBGcmFtZVBvaW50ZXIoKQorCiAjIEl0IHdvdWxkIGJlIGZhbnRhc3Rp
YyB0byBub3QgaGF2ZSB0byBoYXZlIHRoaXMgaGVyZSwgYnV0IHRoZSBwaGlsb3NvcGh5IG9mIG91
ciBsb3dlcmluZyBpcyB0aGF0CiAjIGl0IHNob3VsZCBiZSBzb3VuZCBldmVuIGlmIHdlIGhhdmVu
J3QgcnVuIG9wdGltaXphdGlvbnMuCiBJZGVudGl0eSA9IElkZW50aXR5KHZhbHVlKQpJbmRleDog
U291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzTWVtb3J5VmFsdWUuY3BwCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM01lbW9yeVZhbHVlLmNwcAkocmV2aXNpb24gMTkx
NzMyKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzTWVtb3J5VmFsdWUuY3BwCSh3b3Jr
aW5nIGNvcHkpCkBAIC0zNCw2ICszNCwzMCBAQCBNZW1vcnlWYWx1ZTo6fk1lbW9yeVZhbHVlKCkK
IHsKIH0KIAorc2l6ZV90IE1lbW9yeVZhbHVlOjphY2Nlc3NCeXRlU2l6ZSgpIGNvbnN0Cit7Cisg
ICAgc3dpdGNoIChvcGNvZGUoKSkgeworICAgIGNhc2UgTG9hZDhaOgorICAgIGNhc2UgTG9hZDhT
OgorICAgIGNhc2UgU3RvcmU4OgorICAgICAgICByZXR1cm4gMTsKKyAgICBjYXNlIExvYWQxNlo6
CisgICAgY2FzZSBMb2FkMTZTOgorICAgIGNhc2UgU3RvcmUxNjoKKyAgICAgICAgcmV0dXJuIDI7
CisgICAgY2FzZSBMb2FkRmxvYXQ6CisgICAgY2FzZSBTdG9yZUZsb2F0OgorICAgICAgICByZXR1
cm4gNDsKKyAgICBjYXNlIExvYWQ6CisgICAgICAgIHJldHVybiBzaXplb2ZUeXBlKHR5cGUoKSk7
CisgICAgY2FzZSBTdG9yZToKKyAgICAgICAgcmV0dXJuIHNpemVvZlR5cGUoY2hpbGQoMCktPnR5
cGUoKSk7CisgICAgZGVmYXVsdDoKKyAgICAgICAgUkVMRUFTRV9BU1NFUlRfTk9UX1JFQUNIRUQo
KTsKKyAgICAgICAgcmV0dXJuIDA7CisgICAgfQorfQorCiB2b2lkIE1lbW9yeVZhbHVlOjpkdW1w
TWV0YShQcmludFN0cmVhbSYgb3V0KSBjb25zdAogewogICAgIGlmIChtX29mZnNldCkKSW5kZXg6
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM01lbW9yeVZhbHVlLmgKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzTWVtb3J5VmFsdWUuaAkocmV2aXNpb24gMTkxNzMy
KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzTWVtb3J5VmFsdWUuaAkod29ya2luZyBj
b3B5KQpAQCAtNjIsNiArNjIsOCBAQCBwdWJsaWM6CiAgICAgaW50MzJfdCBvZmZzZXQoKSBjb25z
dCB7IHJldHVybiBtX29mZnNldDsgfQogICAgIHZvaWQgc2V0T2Zmc2V0KGludDMyX3Qgb2Zmc2V0
KSB7IG1fb2Zmc2V0ID0gb2Zmc2V0OyB9CiAKKyAgICBzaXplX3QgYWNjZXNzQnl0ZVNpemUoKSBj
b25zdDsKKwogcHJvdGVjdGVkOgogICAgIHZvaWQgZHVtcE1ldGEoUHJpbnRTdHJlYW0mKSBjb25z
dCBvdmVycmlkZTsKIApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzUmVkdWNlU3Ry
ZW5ndGguY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM1JlZHVj
ZVN0cmVuZ3RoLmNwcAkocmV2aXNpb24gMTkxNzMyKQorKysgU291cmNlL0phdmFTY3JpcHRDb3Jl
L2IzL0IzUmVkdWNlU3RyZW5ndGguY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMzEsNyArMTMxLDcg
QEAgcHJpdmF0ZToKICAgICAgICAgY2FzZSBTdG9yZTE2OgogICAgICAgICBjYXNlIFN0b3JlRmxv
YXQ6CiAgICAgICAgIGNhc2UgU3RvcmU6IHsKLSAgICAgICAgICAgIFZhbHVlKiBhZGRyZXNzID0g
bV92YWx1ZS0+Y2hpbGRyZW4oKS5sYXN0KCk7CisgICAgICAgICAgICBWYWx1ZSogYWRkcmVzcyA9
IG1fdmFsdWUtPmxhc3RDaGlsZCgpOwogICAgICAgICAgICAgTWVtb3J5VmFsdWUqIG1lbW9yeSA9
IG1fdmFsdWUtPmFzPE1lbW9yeVZhbHVlPigpOwogCiAgICAgICAgICAgICAvLyBUdXJuIHRoaXM6
IExvYWQoQWRkKGFkZHJlc3MsIG9mZnNldDEpLCBvZmZzZXQgPSBvZmZzZXQyKQpAQCAtMTQ2LDcg
KzE0Niw3IEBAIHByaXZhdGU6CiAgICAgICAgICAgICAgICAgICAgIGludDMyX3Qgc21hbGxPZmZz
ZXQgPSBzdGF0aWNfY2FzdDxpbnQzMl90PihvZmZzZXQpOwogICAgICAgICAgICAgICAgICAgICBp
ZiAoc21hbGxPZmZzZXQgPT0gb2Zmc2V0KSB7CiAgICAgICAgICAgICAgICAgICAgICAgICBhZGRy
ZXNzID0gYWRkcmVzcy0+Y2hpbGQoMCk7Ci0gICAgICAgICAgICAgICAgICAgICAgICBtZW1vcnkt
PmNoaWxkcmVuKCkubGFzdCgpID0gYWRkcmVzczsKKyAgICAgICAgICAgICAgICAgICAgICAgIG1l
bW9yeS0+bGFzdENoaWxkKCkgPSBhZGRyZXNzOwogICAgICAgICAgICAgICAgICAgICAgICAgbWVt
b3J5LT5zZXRPZmZzZXQoc21hbGxPZmZzZXQpOwogICAgICAgICAgICAgICAgICAgICAgICAgbV9j
aGFuZ2VkID0gdHJ1ZTsKICAgICAgICAgICAgICAgICAgICAgfQpAQCAtMTY0LDcgKzE2NCw3IEBA
IHByaXZhdGU6CiAgICAgICAgICAgICAgICAgaWYgKFZhbHVlKiBuZXdBZGRyZXNzID0gYWRkcmVz
cy0+YWRkQ29uc3RhbnQobV9wcm9jLCBtZW1vcnktPm9mZnNldCgpKSkgewogICAgICAgICAgICAg
ICAgICAgICBtX2luc2VydGlvblNldC5pbnNlcnRWYWx1ZShtX2luZGV4LCBuZXdBZGRyZXNzKTsK
ICAgICAgICAgICAgICAgICAgICAgYWRkcmVzcyA9IG5ld0FkZHJlc3M7Ci0gICAgICAgICAgICAg
ICAgICAgIG1lbW9yeS0+Y2hpbGRyZW4oKS5sYXN0KCkgPSBuZXdBZGRyZXNzOworICAgICAgICAg
ICAgICAgICAgICBtZW1vcnktPmxhc3RDaGlsZCgpID0gbmV3QWRkcmVzczsKICAgICAgICAgICAg
ICAgICAgICAgbWVtb3J5LT5zZXRPZmZzZXQoMCk7CiAgICAgICAgICAgICAgICAgICAgIG1fY2hh
bmdlZCA9IHRydWU7CiAgICAgICAgICAgICAgICAgfQpJbmRleDogU291cmNlL0phdmFTY3JpcHRD
b3JlL2IzL0IzU3RhY2tTbG90VmFsdWUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvYjMvQjNTdGFja1Nsb3RWYWx1ZS5oCShyZXZpc2lvbiAxOTE3MzIpCisrKyBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvYjMvQjNTdGFja1Nsb3RWYWx1ZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0z
Nyw3ICszNyw3IEBAIG5hbWVzcGFjZSBBaXIgewogY2xhc3MgU3RhY2tTbG90OwogfSAvLyBuYW1l
c3BhY2UgQWlyCiAKLWNsYXNzIFN0YWNrU2xvdFZhbHVlIDogcHVibGljIFZhbHVlIHsKK2NsYXNz
IEpTX0VYUE9SVF9QUklWQVRFIFN0YWNrU2xvdFZhbHVlIDogcHVibGljIFZhbHVlIHsKIHB1Ymxp
YzoKICAgICBzdGF0aWMgYm9vbCBhY2NlcHRzKE9wY29kZSBvcGNvZGUpIHsgcmV0dXJuIG9wY29k
ZSA9PSBTdGFja1Nsb3Q7IH0KIApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzVHlw
ZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM1R5cGUuaAkocmV2
aXNpb24gMTkxNzMyKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzVHlwZS5oCSh3b3Jr
aW5nIGNvcHkpCkBAIC01Nyw2ICs1NywxOSBAQCBpbmxpbmUgVHlwZSBwb2ludGVyVHlwZSgpCiAg
ICAgcmV0dXJuIEludDY0OwogfQogCitpbmxpbmUgc2l6ZV90IHNpemVvZlR5cGUoVHlwZSB0eXBl
KQoreworICAgIHN3aXRjaCAodHlwZSkgeworICAgIGNhc2UgVm9pZDoKKyAgICAgICAgcmV0dXJu
IDA7CisgICAgY2FzZSBJbnQzMjoKKyAgICAgICAgcmV0dXJuIDQ7CisgICAgY2FzZSBJbnQ2NDoK
KyAgICBjYXNlIERvdWJsZToKKyAgICAgICAgcmV0dXJuIDg7CisgICAgfQorfQorCiB9IH0gLy8g
bmFtZXNwYWNlIEpTQzo6QjMKIAogbmFtZXNwYWNlIFdURiB7CkluZGV4OiBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvYjMvQjNWYWxpZGF0ZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3Jp
cHRDb3JlL2IzL0IzVmFsaWRhdGUuY3BwCShyZXZpc2lvbiAxOTE3MzIpCisrKyBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvYjMvQjNWYWxpZGF0ZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTMwLDcgKzMw
LDkgQEAKIAogI2luY2x1ZGUgIkIzQXJndW1lbnRSZWdWYWx1ZS5oIgogI2luY2x1ZGUgIkIzQmFz
aWNCbG9ja0lubGluZXMuaCIKKyNpbmNsdWRlICJCM01lbW9yeVZhbHVlLmgiCiAjaW5jbHVkZSAi
QjNQcm9jZWR1cmUuaCIKKyNpbmNsdWRlICJCM1N0YWNrU2xvdFZhbHVlLmgiCiAjaW5jbHVkZSAi
QjNVcHNpbG9uVmFsdWUuaCIKICNpbmNsdWRlICJCM1ZhbHVlSW5saW5lcy5oIgogI2luY2x1ZGUg
PHd0Zi9IYXNoU2V0Lmg+CkBAIC0yMjQsMTYgKzIyNiwxOSBAQCBwdWJsaWM6CiAgICAgICAgICAg
ICAgICAgVkFMSURBVEUodmFsdWUtPm51bUNoaWxkcmVuKCkgPT0gMSwgKCJBdCAiLCAqdmFsdWUp
KTsKICAgICAgICAgICAgICAgICBWQUxJREFURSh2YWx1ZS0+Y2hpbGQoMCktPnR5cGUoKSA9PSBw
b2ludGVyVHlwZSgpLCAoIkF0ICIsICp2YWx1ZSkpOwogICAgICAgICAgICAgICAgIFZBTElEQVRF
KHZhbHVlLT50eXBlKCkgPT0gSW50MzIsICgiQXQgIiwgKnZhbHVlKSk7CisgICAgICAgICAgICAg
ICAgdmFsaWRhdGVTdGFja0FjY2Vzcyh2YWx1ZSk7CiAgICAgICAgICAgICAgICAgYnJlYWs7CiAg
ICAgICAgICAgICBjYXNlIExvYWRGbG9hdDoKICAgICAgICAgICAgICAgICBWQUxJREFURSh2YWx1
ZS0+bnVtQ2hpbGRyZW4oKSA9PSAxLCAoIkF0ICIsICp2YWx1ZSkpOwogICAgICAgICAgICAgICAg
IFZBTElEQVRFKHZhbHVlLT5jaGlsZCgwKS0+dHlwZSgpID09IHBvaW50ZXJUeXBlKCksICgiQXQg
IiwgKnZhbHVlKSk7CiAgICAgICAgICAgICAgICAgVkFMSURBVEUodmFsdWUtPnR5cGUoKSA9PSBE
b3VibGUsICgiQXQgIiwgKnZhbHVlKSk7CisgICAgICAgICAgICAgICAgdmFsaWRhdGVTdGFja0Fj
Y2Vzcyh2YWx1ZSk7CiAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICBjYXNlIExv
YWQ6CiAgICAgICAgICAgICAgICAgVkFMSURBVEUodmFsdWUtPm51bUNoaWxkcmVuKCkgPT0gMSwg
KCJBdCAiLCAqdmFsdWUpKTsKICAgICAgICAgICAgICAgICBWQUxJREFURSh2YWx1ZS0+Y2hpbGQo
MCktPnR5cGUoKSA9PSBwb2ludGVyVHlwZSgpLCAoIkF0ICIsICp2YWx1ZSkpOwogICAgICAgICAg
ICAgICAgIFZBTElEQVRFKHZhbHVlLT50eXBlKCkgIT0gVm9pZCwgKCJBdCAiLCAqdmFsdWUpKTsK
KyAgICAgICAgICAgICAgICB2YWxpZGF0ZVN0YWNrQWNjZXNzKHZhbHVlKTsKICAgICAgICAgICAg
ICAgICBicmVhazsKICAgICAgICAgICAgIGNhc2UgU3RvcmU4OgogICAgICAgICAgICAgY2FzZSBT
dG9yZTE2OgpAQCAtMjQxLDE3ICsyNDYsMjAgQEAgcHVibGljOgogICAgICAgICAgICAgICAgIFZB
TElEQVRFKHZhbHVlLT5jaGlsZCgwKS0+dHlwZSgpID09IEludDMyLCAoIkF0ICIsICp2YWx1ZSkp
OwogICAgICAgICAgICAgICAgIFZBTElEQVRFKHZhbHVlLT5jaGlsZCgxKS0+dHlwZSgpID09IHBv
aW50ZXJUeXBlKCksICgiQXQgIiwgKnZhbHVlKSk7CiAgICAgICAgICAgICAgICAgVkFMSURBVEUo
dmFsdWUtPnR5cGUoKSA9PSBWb2lkLCAoIkF0ICIsICp2YWx1ZSkpOworICAgICAgICAgICAgICAg
IHZhbGlkYXRlU3RhY2tBY2Nlc3ModmFsdWUpOwogICAgICAgICAgICAgICAgIGJyZWFrOwogICAg
ICAgICAgICAgY2FzZSBTdG9yZUZsb2F0OgogICAgICAgICAgICAgICAgIFZBTElEQVRFKHZhbHVl
LT5udW1DaGlsZHJlbigpID09IDIsICgiQXQgIiwgKnZhbHVlKSk7CiAgICAgICAgICAgICAgICAg
VkFMSURBVEUodmFsdWUtPmNoaWxkKDApLT50eXBlKCkgPT0gRG91YmxlLCAoIkF0ICIsICp2YWx1
ZSkpOwogICAgICAgICAgICAgICAgIFZBTElEQVRFKHZhbHVlLT5jaGlsZCgxKS0+dHlwZSgpID09
IHBvaW50ZXJUeXBlKCksICgiQXQgIiwgKnZhbHVlKSk7CiAgICAgICAgICAgICAgICAgVkFMSURB
VEUodmFsdWUtPnR5cGUoKSA9PSBWb2lkLCAoIkF0ICIsICp2YWx1ZSkpOworICAgICAgICAgICAg
ICAgIHZhbGlkYXRlU3RhY2tBY2Nlc3ModmFsdWUpOwogICAgICAgICAgICAgICAgIGJyZWFrOwog
ICAgICAgICAgICAgY2FzZSBTdG9yZToKICAgICAgICAgICAgICAgICBWQUxJREFURSh2YWx1ZS0+
bnVtQ2hpbGRyZW4oKSA9PSAyLCAoIkF0ICIsICp2YWx1ZSkpOwogICAgICAgICAgICAgICAgIFZB
TElEQVRFKHZhbHVlLT5jaGlsZCgxKS0+dHlwZSgpID09IHBvaW50ZXJUeXBlKCksICgiQXQgIiwg
KnZhbHVlKSk7CiAgICAgICAgICAgICAgICAgVkFMSURBVEUodmFsdWUtPnR5cGUoKSA9PSBWb2lk
LCAoIkF0ICIsICp2YWx1ZSkpOworICAgICAgICAgICAgICAgIHZhbGlkYXRlU3RhY2tBY2Nlc3Mo
dmFsdWUpOwogICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgY2FzZSBDQ2FsbDoK
ICAgICAgICAgICAgICAgICAvLyBUaGlzIGlzIGEgd2lsZGNhcmQuIFlvdSBjYW4gcGFzcyBhbnkg
bm9uLXZvaWQgYXJndW1lbnRzIGFuZCB5b3UgY2FuIHNlbGVjdCBhbnkKQEAgLTMwOSw2ICszMTcs
MTcgQEAgcHJpdmF0ZToKICAgICAgICAgICAgICAgICBWQUxJREFURShpc0Zsb2F0KHZhbHVlLT5j
aGlsZChpKS0+dHlwZSgpKSwgKCJBdCAiLCAqdmFsdWUpKTsKICAgICAgICAgfQogICAgIH0KKwor
ICAgIHZvaWQgdmFsaWRhdGVTdGFja0FjY2VzcyhWYWx1ZSogdmFsdWUpCisgICAgeworICAgICAg
ICBNZW1vcnlWYWx1ZSogbWVtb3J5ID0gdmFsdWUtPmFzPE1lbW9yeVZhbHVlPigpOworICAgICAg
ICBTdGFja1Nsb3RWYWx1ZSogc3RhY2sgPSB2YWx1ZS0+bGFzdENoaWxkKCktPmFzPFN0YWNrU2xv
dFZhbHVlPigpOworICAgICAgICBpZiAoIXN0YWNrKQorICAgICAgICAgICAgcmV0dXJuOworCisg
ICAgICAgIFZBTElEQVRFKG1lbW9yeS0+b2Zmc2V0KCkgPj0gMCwgKCJBdCAiLCAqdmFsdWUpKTsK
KyAgICAgICAgVkFMSURBVEUobWVtb3J5LT5vZmZzZXQoKSArIG1lbW9yeS0+YWNjZXNzQnl0ZVNp
emUoKSA8PSBzdGFjay0+Ynl0ZVNpemUoKSwgKCJBdCAiLCAqdmFsdWUpKTsKKyAgICB9CiAgICAg
CiAgICAgTk9fUkVUVVJOX0RVRV9UT19DUkFTSCB2b2lkIGZhaWwoCiAgICAgICAgIGNvbnN0IGNo
YXIqIGZpbGVuYW1lLCBpbnQgbGluZU51bWJlciwgY29uc3QgY2hhciogZnVuY3Rpb24sIGNvbnN0
IGNoYXIqIGNvbmRpdGlvbiwKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM1ZhbHVl
LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzVmFsdWUuaAkocmV2
aXNpb24gMTkxNzMyKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzVmFsdWUuaAkod29y
a2luZyBjb3B5KQpAQCAtNjQsNiArNjQsOSBAQCBwdWJsaWM6CiAgICAgVmFsdWUqJiBjaGlsZCh1
bnNpZ25lZCBpbmRleCkgeyByZXR1cm4gbV9jaGlsZHJlbltpbmRleF07IH0KICAgICBWYWx1ZSog
Y2hpbGQodW5zaWduZWQgaW5kZXgpIGNvbnN0IHsgcmV0dXJuIG1fY2hpbGRyZW5baW5kZXhdOyB9
CiAKKyAgICBWYWx1ZSomIGxhc3RDaGlsZCgpIHsgcmV0dXJuIG1fY2hpbGRyZW4ubGFzdCgpOyB9
CisgICAgVmFsdWUqIGxhc3RDaGlsZCgpIGNvbnN0IHsgcmV0dXJuIG1fY2hpbGRyZW4ubGFzdCgp
OyB9CisKICAgICB1bnNpZ25lZCBudW1DaGlsZHJlbigpIGNvbnN0IHsgcmV0dXJuIG1fY2hpbGRy
ZW4uc2l6ZSgpOyB9CiAKICAgICAvLyBUaGlzIGNvbXB1dGVzIHRoZSB0eXBlIHVzaW5nIHRoZSBv
cGNvZGUuCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvdGVzdGIzLmNwcAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvdGVzdGIzLmNwcAkocmV2aXNpb24gMTkx
NzMyKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL3Rlc3RiMy5jcHAJKHdvcmtpbmcgY29w
eSkKQEAgLTMzLDYgKzMzLDcgQEAKICNpbmNsdWRlICJCM0dlbmVyYXRlLmgiCiAjaW5jbHVkZSAi
QjNNZW1vcnlWYWx1ZS5oIgogI2luY2x1ZGUgIkIzUHJvY2VkdXJlLmgiCisjaW5jbHVkZSAiQjNT
dGFja1Nsb3RWYWx1ZS5oIgogI2luY2x1ZGUgIkIzVmFsdWVJbmxpbmVzLmgiCiAjaW5jbHVkZSAi
Q0NhbGxIZWxwZXJzLmgiCiAjaW5jbHVkZSAiSW5pdGlhbGl6ZVRocmVhZGluZy5oIgpAQCAtMzE4
LDYgKzMxOSw3MCBAQCB2b2lkIHRlc3RMb2FkT2Zmc2V0VXNpbmdBZGROb3RDb25zdGFudCgpCiAg
ICAgQ0hFQ0soY29tcGlsZUFuZFJ1bjxpbnQ+KHByb2MsICZhcnJheVswXSkgPT0gYXJyYXlbMF0g
KyBhcnJheVsxXSk7CiB9CiAKK3ZvaWQgdGVzdEZyYW1lUG9pbnRlcigpCit7CisgICAgUHJvY2Vk
dXJlIHByb2M7CisgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKKyAgICBy
b290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICAgICAgcHJvYywgUmV0dXJuLCBPcmln
aW4oKSwKKyAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBGcmFtZVBvaW50ZXIs
IE9yaWdpbigpKSk7CisKKyAgICB2b2lkKiBmcCA9IGNvbXBpbGVBbmRSdW48dm9pZCo+KHByb2Mp
OworICAgIENIRUNLKGZwIDwgJnByb2MpOworICAgIENIRUNLKGZwID49IGJpdHdpc2VfY2FzdDxj
aGFyKj4oJnByb2MpIC0gMTAwMDApOworfQorCit2b2lkIHRlc3RTdGFja1Nsb3QoKQoreworICAg
IFByb2NlZHVyZSBwcm9jOworICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7
CisgICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgICAgIHByb2MsIFJldHVy
biwgT3JpZ2luKCksCisgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxTdGFja1Nsb3RWYWx1ZT4ocHJv
YywgT3JpZ2luKCksIDEsIFN0YWNrU2xvdEtpbmQ6OkFub255bW91cykpOworCisgICAgdm9pZCog
c3RhY2tTbG90ID0gY29tcGlsZUFuZFJ1bjx2b2lkKj4ocHJvYyk7CisgICAgQ0hFQ0soc3RhY2tT
bG90IDwgJnByb2MpOworICAgIENIRUNLKHN0YWNrU2xvdCA+PSBiaXR3aXNlX2Nhc3Q8Y2hhcio+
KCZwcm9jKSAtIDEwMDAwKTsKK30KKwordm9pZCB0ZXN0TG9hZEZyb21GcmFtZVBvaW50ZXIoKQor
eworICAgIFByb2NlZHVyZSBwcm9jOworICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJs
b2NrKCk7CisgICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgICAgIHByb2Ms
IFJldHVybiwgT3JpZ2luKCksCisgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxNZW1vcnlWYWx1ZT4o
CisgICAgICAgICAgICBwcm9jLCBMb2FkLCBwb2ludGVyVHlwZSgpLCBPcmlnaW4oKSwKKyAgICAg
ICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgRnJhbWVQb2ludGVyLCBPcmlnaW4o
KSkpKTsKKworICAgIHZvaWQqIGZwID0gY29tcGlsZUFuZFJ1bjx2b2lkKj4ocHJvYyk7CisgICAg
dm9pZCogbXlGUCA9IF9fYnVpbHRpbl9mcmFtZV9hZGRyZXNzKDApOworICAgIENIRUNLKGZwIDw9
IG15RlApOworICAgIENIRUNLKGZwID49IGJpdHdpc2VfY2FzdDxjaGFyKj4obXlGUCkgLSAxMDAw
MCk7Cit9CisKK3ZvaWQgdGVzdFN0b3JlTG9hZFN0YWNrU2xvdChpbnQgdmFsdWUpCit7CisgICAg
UHJvY2VkdXJlIHByb2M7CisgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsK
KworICAgIFN0YWNrU2xvdFZhbHVlKiBzdGFjayA9IHJvb3QtPmFwcGVuZE5ldzxTdGFja1Nsb3RW
YWx1ZT4oCisgICAgICAgIHByb2MsIE9yaWdpbigpLCBzaXplb2YoaW50KSwgU3RhY2tTbG90S2lu
ZDo6QW5vbnltb3VzKTsKKworICAgIHJvb3QtPmFwcGVuZE5ldzxNZW1vcnlWYWx1ZT4oCisgICAg
ICAgIHByb2MsIFN0b3JlLCBPcmlnaW4oKSwKKyAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVl
PigKKyAgICAgICAgICAgIHByb2MsIFRydW5jLCBPcmlnaW4oKSwKKyAgICAgICAgICAgIHJvb3Qt
PmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJn
dW1lbnRHUFIwKSksCisgICAgICAgIHN0YWNrKTsKKyAgICAKKyAgICByb290LT5hcHBlbmROZXc8
Q29udHJvbFZhbHVlPigKKyAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKKyAgICAgICAg
cm9vdC0+YXBwZW5kTmV3PE1lbW9yeVZhbHVlPihwcm9jLCBMb2FkLCBJbnQzMiwgT3JpZ2luKCks
IHN0YWNrKSk7CisKKyAgICBDSEVDSyhjb21waWxlQW5kUnVuPGludD4ocHJvYywgdmFsdWUpID09
IHZhbHVlKTsKK30KKwogI2RlZmluZSBSVU4odGVzdCkgZG8geyAgICAgICAgICAgICAgICAgICAg
ICAgICAgXAogICAgICAgICBkYXRhTG9nKCN0ZXN0ICI6XG4iKTsgICAgICAgICAgICAgICAgICAg
XAogICAgICAgICB0ZXN0OyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXApAQCAt
MzQ3LDYgKzQxMiwxMCBAQCB2b2lkIHJ1bigpCiAgICAgUlVOKHRlc3RMb2FkT2Zmc2V0Tm90Q29u
c3RhbnQoKSk7CiAgICAgUlVOKHRlc3RMb2FkT2Zmc2V0VXNpbmdBZGQoKSk7CiAgICAgUlVOKHRl
c3RMb2FkT2Zmc2V0VXNpbmdBZGROb3RDb25zdGFudCgpKTsKKyAgICBSVU4odGVzdEZyYW1lUG9p
bnRlcigpKTsKKyAgICBSVU4odGVzdFN0YWNrU2xvdCgpKTsKKyAgICBSVU4odGVzdExvYWRGcm9t
RnJhbWVQb2ludGVyKCkpOworICAgIFJVTih0ZXN0U3RvcmVMb2FkU3RhY2tTbG90KDUwKSk7CiB9
CiAKIH0gLy8gYW5vbnltb3VzIG5hbWVzcGFjZQpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3Jl
L2IzL2Fpci9BaXJBbGxvY2F0ZVN0YWNrLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvYjMvYWlyL0FpckFsbG9jYXRlU3RhY2suY3BwCShyZXZpc2lvbiAxOTE3MzIpCisr
KyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvYWlyL0FpckFsbG9jYXRlU3RhY2suY3BwCSh3b3Jr
aW5nIGNvcHkpCkBAIC05OSw0MSArOTksNDggQEAgdm9pZCBhbGxvY2F0ZVN0YWNrKENvZGUmIGNv
ZGUpCiB7CiAgICAgUGhhc2VTY29wZSBwaGFzZVNjb3BlKGNvZGUsICJhbGxvY2F0ZVN0YWNrIik7
CiAKLSAgICAvLyBBbGxvY2F0ZSBhbGwgb2YgdGhlIGxvY2tlZCBzbG90cyBpbiBvcmRlci4gVGhp
cyBpcyBraW5kIG9mIGEgY3JhenkgYWxnb3JpdGhtIHRvIGFsbG93IGZvcgorICAgIC8vIFBlcmZv
cm0gYW4gZXNjYXBlIGFuYWx5c2lzIG92ZXIgc3RhY2sgc2xvdHMuIEFuIGVzY2FwaW5nIHN0YWNr
IHNsb3QgaXMgb25lIHRoYXQgaXMgbG9ja2VkIG9yCisgICAgLy8gaXMgZXhwbGljaXRseSBlc2Nh
cGVkIGluIHRoZSBjb2RlLgorICAgIEluZGV4U2V0PFN0YWNrU2xvdD4gZXNjYXBpbmdTdGFja1Ns
b3RzOworICAgIGZvciAoU3RhY2tTbG90KiBzbG90IDogY29kZS5zdGFja1Nsb3RzKCkpIHsKKyAg
ICAgICAgaWYgKHNsb3QtPmlzTG9ja2VkKCkpCisgICAgICAgICAgICBlc2NhcGluZ1N0YWNrU2xv
dHMuYWRkKHNsb3QpOworICAgIH0KKyAgICBmb3IgKEJhc2ljQmxvY2sqIGJsb2NrIDogY29kZSkg
eworICAgICAgICBmb3IgKEluc3QmIGluc3QgOiAqYmxvY2spIHsKKyAgICAgICAgICAgIGluc3Qu
Zm9yRWFjaEFyZygKKyAgICAgICAgICAgICAgICBbJl0gKEFyZyYgYXJnLCBBcmc6OlJvbGUgcm9s
ZSwgQXJnOjpUeXBlKSB7CisgICAgICAgICAgICAgICAgICAgIGlmIChyb2xlID09IEFyZzo6VXNl
QWRkciAmJiBhcmcuaXNTdGFjaygpKQorICAgICAgICAgICAgICAgICAgICAgICAgZXNjYXBpbmdT
dGFja1Nsb3RzLmFkZChhcmcuc3RhY2tTbG90KCkpOworICAgICAgICAgICAgICAgIH0pOworICAg
ICAgICB9CisgICAgfQorCisgICAgLy8gQWxsb2NhdGUgYWxsIG9mIHRoZSBlc2NhcGVkIHNsb3Rz
IGluIG9yZGVyLiBUaGlzIGlzIGtpbmQgb2YgYSBjcmF6eSBhbGdvcml0aG0gdG8gYWxsb3cgZm9y
CiAgICAgLy8gdGhlIHBvc3NpYmlsaXR5IG9mIHN0YWNrIHNsb3RzIGJlaW5nIGFzc2lnbmVkIGZy
YW1lIG9mZnNldHMgYmVmb3JlIHdlIGV2ZW4gZ2V0IGhlcmUuCiAgICAgQVNTRVJUKCFjb2RlLmZy
YW1lU2l6ZSgpKTsKLSAgICBWZWN0b3I8U3RhY2tTbG90Kj4gYXNzaWduZWRMb2NrZWRTdGFja1Ns
b3RzOwotICAgIFZlY3RvcjxTdGFja1Nsb3QqPiBsb2NrZWRTdGFja1Nsb3RzV29ya2xpc3Q7Cisg
ICAgVmVjdG9yPFN0YWNrU2xvdCo+IGFzc2lnbmVkRXNjYXBlZFN0YWNrU2xvdHM7CisgICAgVmVj
dG9yPFN0YWNrU2xvdCo+IGVzY2FwZWRTdGFja1Nsb3RzV29ya2xpc3Q7CiAgICAgZm9yIChTdGFj
a1Nsb3QqIHNsb3QgOiBjb2RlLnN0YWNrU2xvdHMoKSkgewotICAgICAgICBzd2l0Y2ggKHNsb3Qt
PmtpbmQoKSkgewotICAgICAgICBjYXNlIFN0YWNrU2xvdEtpbmQ6OkxvY2tlZDoKKyAgICAgICAg
aWYgKGVzY2FwaW5nU3RhY2tTbG90cy5jb250YWlucyhzbG90KSkgewogICAgICAgICAgICAgaWYg
KHNsb3QtPm9mZnNldEZyb21GUCgpKQotICAgICAgICAgICAgICAgIGFzc2lnbmVkTG9ja2VkU3Rh
Y2tTbG90cy5hcHBlbmQoc2xvdCk7CisgICAgICAgICAgICAgICAgYXNzaWduZWRFc2NhcGVkU3Rh
Y2tTbG90cy5hcHBlbmQoc2xvdCk7CiAgICAgICAgICAgICBlbHNlCi0gICAgICAgICAgICAgICAg
bG9ja2VkU3RhY2tTbG90c1dvcmtsaXN0LmFwcGVuZChzbG90KTsKLSAgICAgICAgICAgIGJyZWFr
OwotICAgICAgICBjYXNlIFN0YWNrU2xvdEtpbmQ6OkFub255bW91czoKLSAgICAgICAgICAgIGlm
IChzbG90LT5vZmZzZXRGcm9tRlAoKSkgewotICAgICAgICAgICAgICAgIC8vIEFzIGEgbWF0dGVy
IG9mIHNhbml0eSwgdW5hc3NpZ24gdGhpcy4gTWF5YmUgaXQgd291bGQgYmUgZ29vZCB0byBldmVu
IGhhdmUgYQotICAgICAgICAgICAgICAgIC8vIHZhbGlkYXRpb24gcnVsZSB0aGF0IHRoaXMgY2Fu
bm90IGhhcHBlbi4KLSAgICAgICAgICAgICAgICBzbG90LT5zZXRPZmZzZXRGcm9tRlAoMCk7Ci0g
ICAgICAgICAgICB9Ci0gICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICBlc2NhcGVk
U3RhY2tTbG90c1dvcmtsaXN0LmFwcGVuZChzbG90KTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAg
ICAgICAgIC8vIEl0IHdvdWxkIGJlIHN1cGVyIHN0cmFuZ2UgdG8gaGF2ZSBhbiB1bmxvY2tlZCBz
dGFjayBzbG90IHRoYXQgaGFzIGFuIG9mZnNldCBhbHJlYWR5LgorICAgICAgICAgICAgQVNTRVJU
KCFzbG90LT5vZmZzZXRGcm9tRlAoKSk7CiAgICAgICAgIH0KICAgICB9CiAgICAgLy8gVGhpcyBp
cyBhIGZhaXJseSBleHBlbnNpdmUgbG9vcCwgYnV0IGl0J3MgT0sgYmVjYXVzZSB3ZSdsbCB1c3Vh
bGx5IG9ubHkgaGF2ZSBhIGhhbmRmdWwgb2YKLSAgICAvLyBsb2NrZWQgc3RhY2sgc2xvdHMuCi0g
ICAgd2hpbGUgKCFsb2NrZWRTdGFja1Nsb3RzV29ya2xpc3QuaXNFbXB0eSgpKSB7Ci0gICAgICAg
IFN0YWNrU2xvdCogc2xvdCA9IGxvY2tlZFN0YWNrU2xvdHNXb3JrbGlzdC50YWtlTGFzdCgpOwot
ICAgICAgICBhc3NpZ24oc2xvdCwgYXNzaWduZWRMb2NrZWRTdGFja1Nsb3RzKTsKLSAgICAgICAg
YXNzaWduZWRMb2NrZWRTdGFja1Nsb3RzLmFwcGVuZChzbG90KTsKKyAgICAvLyBlc2NhcGVkIHN0
YWNrIHNsb3RzLgorICAgIHdoaWxlICghZXNjYXBlZFN0YWNrU2xvdHNXb3JrbGlzdC5pc0VtcHR5
KCkpIHsKKyAgICAgICAgU3RhY2tTbG90KiBzbG90ID0gZXNjYXBlZFN0YWNrU2xvdHNXb3JrbGlz
dC50YWtlTGFzdCgpOworICAgICAgICBhc3NpZ24oc2xvdCwgYXNzaWduZWRFc2NhcGVkU3RhY2tT
bG90cyk7CisgICAgICAgIGFzc2lnbmVkRXNjYXBlZFN0YWNrU2xvdHMuYXBwZW5kKHNsb3QpOwog
ICAgIH0KIAotICAgIC8vIE5vdyB3ZSBoYW5kbGUgdGhlIGFub255bW91cyBzbG90cy4gTm90ZSB0
aGF0IHRoZW9yZXRpY2FsbHkgd2Ugc2hvdWxkIGRvIGFuIGVzY2FwZSBhbmFseXNpcwotICAgIC8v
IGhlcmUuIEJ1dCwgY3VycmVudGx5IEFpciBkb2Vzbid0IHN1cHBvcnQgZXNjYXBpbmcgYSBTdGFj
a1Nsb3QhCi0gICAgLy8gRklYTUU6IEFkZCBzdXBwb3J0IGZvciBlc2NhcGluZyBhIFN0YWNrU2xv
dCBhbmQgYWRkIGVzY2FwZSBhbmFseXNpcyB0byBhbGxvY2F0ZVN0YWNrKCkuCi0gICAgLy8gaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1MDQzMAotCisgICAgLy8gTm93
IHdlIGhhbmRsZSB0aGUgYW5vbnltb3VzIHNsb3RzLgogICAgIExpdmVuZXNzPEFyZz4gbGl2ZW5l
c3MoY29kZSk7CiAgICAgSW5kZXhNYXA8U3RhY2tTbG90LCBIYXNoU2V0PFN0YWNrU2xvdCo+PiBp
bnRlcmZlcmVuY2UoY29kZS5zdGFja1Nsb3RzKCkuc2l6ZSgpKTsKICAgICBWZWN0b3I8U3RhY2tT
bG90Kj4gc2xvdHM7CkBAIC0xOTQsNyArMjAxLDcgQEAgdm9pZCBhbGxvY2F0ZVN0YWNrKENvZGUm
IGNvZGUpCiAgICAgLy8gTm93IHdlIGFzc2lnbiBzdGFjayBsb2NhdGlvbnMuIEF0IGl0cyBoZWFy
dCB0aGlzIGFsZ29yaXRobSBpcyBqdXN0IGZpcnN0LWZpdC4gRm9yIGVhY2gKICAgICAvLyBTdGFj
a1Nsb3Qgd2UganVzdCB3YW50IHRvIGZpbmQgdGhlIG9mZnNldEZyb21GUCB0aGF0IGlzIGNsb3Nl
c3QgdG8gemVybyB3aGlsZSBlbnN1cmluZyBubwogICAgIC8vIG92ZXJsYXAgd2l0aCBvdGhlciBT
dGFja1Nsb3RzIHRoYXQgdGhpcyBvdmVybGFwcyB3aXRoLgotICAgIFZlY3RvcjxTdGFja1Nsb3Qq
PiBvdGhlclNsb3RzID0gYXNzaWduZWRMb2NrZWRTdGFja1Nsb3RzOworICAgIFZlY3RvcjxTdGFj
a1Nsb3QqPiBvdGhlclNsb3RzID0gYXNzaWduZWRFc2NhcGVkU3RhY2tTbG90czsKICAgICBmb3Ig
KFN0YWNrU2xvdCogc2xvdCA6IGNvZGUuc3RhY2tTbG90cygpKSB7CiAgICAgICAgIGlmIChzbG90
LT5vZmZzZXRGcm9tRlAoKSkgewogICAgICAgICAgICAgLy8gQWxyZWFkeSBhc3NpZ25lZCBhbiBv
ZmZzZXQuCkBAIC0yMDIsOSArMjA5LDkgQEAgdm9pZCBhbGxvY2F0ZVN0YWNrKENvZGUmIGNvZGUp
CiAgICAgICAgIH0KIAogICAgICAgICBIYXNoU2V0PFN0YWNrU2xvdCo+JiBpbnRlcmZlcmluZ1Ns
b3RzID0gaW50ZXJmZXJlbmNlW3Nsb3RdOwotICAgICAgICBvdGhlclNsb3RzLnJlc2l6ZShhc3Np
Z25lZExvY2tlZFN0YWNrU2xvdHMuc2l6ZSgpKTsKLSAgICAgICAgb3RoZXJTbG90cy5yZXNpemUo
YXNzaWduZWRMb2NrZWRTdGFja1Nsb3RzLnNpemUoKSArIGludGVyZmVyaW5nU2xvdHMuc2l6ZSgp
KTsKLSAgICAgICAgdW5zaWduZWQgbmV4dEluZGV4ID0gYXNzaWduZWRMb2NrZWRTdGFja1Nsb3Rz
LnNpemUoKTsKKyAgICAgICAgb3RoZXJTbG90cy5yZXNpemUoYXNzaWduZWRFc2NhcGVkU3RhY2tT
bG90cy5zaXplKCkpOworICAgICAgICBvdGhlclNsb3RzLnJlc2l6ZShhc3NpZ25lZEVzY2FwZWRT
dGFja1Nsb3RzLnNpemUoKSArIGludGVyZmVyaW5nU2xvdHMuc2l6ZSgpKTsKKyAgICAgICAgdW5z
aWduZWQgbmV4dEluZGV4ID0gYXNzaWduZWRFc2NhcGVkU3RhY2tTbG90cy5zaXplKCk7CiAgICAg
ICAgIGZvciAoU3RhY2tTbG90KiBvdGhlclNsb3QgOiBpbnRlcmZlcmluZ1Nsb3RzKQogICAgICAg
ICAgICAgb3RoZXJTbG90c1tuZXh0SW5kZXgrK10gPSBvdGhlclNsb3Q7CiAKSW5kZXg6IFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIvQWlyQXJnLmgKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0ph
dmFTY3JpcHRDb3JlL2IzL2Fpci9BaXJBcmcuaAkocmV2aXNpb24gMTkxNzMyKQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL2IzL2Fpci9BaXJBcmcuaAkod29ya2luZyBjb3B5KQpAQCAtNDQsMjIg
KzQ0LDYyIEBAIHB1YmxpYzoKICAgICAvLyBUaGVzZSBlbnVtIG1lbWJlcnMgYXJlIGludGVudGlv
bmFsbHkgdGVyc2UgYmVjYXVzZSB3ZSBoYXZlIHRvIG1lbnRpb24gdGhlbSBhIGxvdC4KICAgICBl
bnVtIEtpbmQgOiBpbnQ4X3QgewogICAgICAgICBJbnZhbGlkLAorCisgICAgICAgIC8vIFRoaXMg
aXMgZWl0aGVyIGFuIHVuYXNzaWduZWQgdGVtcG9yYXJ5IG9yIGEgcmVnaXN0ZXIuIEFsbCB1bmFz
c2lnbmVkIHRlbXBvcmFyaWVzCisgICAgICAgIC8vIGV2ZW50dWFsbHkgYmVjb21lIHJlZ2lzdGVy
cy4KICAgICAgICAgVG1wLAorCisgICAgICAgIC8vIFRoaXMgaXMgYW4gaW1tZWRpYXRlIHRoYXQg
dGhlIGluc3RydWN0aW9uIHdpbGwgbWF0ZXJpYWxpemUuCiAgICAgICAgIEltbSwKICAgICAgICAg
SW1tNjQsCisKKyAgICAgICAgLy8gVGhlc2UgYXJlIHRoZSBhZGRyZXNzZXMuIEluc3RydWN0aW9u
cyBtYXkgbG9hZCBmcm9tIChVc2UpLCBzdG9yZSB0byAoRGVmKSwgb3IgZXZhbHVhdGUKKyAgICAg
ICAgLy8gKFVzZUFkZHIpIGFkZHJlc3Nlcy4KICAgICAgICAgQWRkciwKICAgICAgICAgU3RhY2ss
CiAgICAgICAgIENhbGxBcmcsCiAgICAgICAgIEluZGV4LAorCisgICAgICAgIC8vIEltbWVkaWF0
ZSBvcGVyYW5kcyB0aGF0IGN1c3RvbWl6ZSB0aGUgYmVoYXZpb3Igb2YgYW4gb3BlcmF0aW9uLiBZ
b3UgY2FuIHRoaW5rIG9mIHRoZW0gYXMKKyAgICAgICAgLy8gc2Vjb25kYXJ5IG9wY29kZXMuIFRo
ZXkgYXJlIGFsd2F5cyAiVXNlIidkLgogICAgICAgICBSZWxDb25kLAogICAgICAgICBSZXNDb25k
LAogICAgICAgICBTcGVjaWFsCiAgICAgfTsKIAogICAgIGVudW0gUm9sZSA6IGludDhfdCB7Cisg
ICAgICAgIC8vIFVzZSBtZWFucyB0aGF0IHRoZSBJbnN0IHdpbGwgcmVhZCBmcm9tIHRoaXMgdmFs
dWUgYmVmb3JlIGRvaW5nIGFueXRoaW5nIGVsc2UuCisgICAgICAgIC8vCisgICAgICAgIC8vIEZv
ciBUbXA6IFRoZSBJbnN0IHdpbGwgcmVhZCB0aGlzIFRtcC4KKyAgICAgICAgLy8gRm9yIEFyZzo6
YWRkciBhbmQgZnJpZW5kczogVGhlIEluc3Qgd2lsbCBsb2FkIGZyb20gdGhpcyBhZGRyZXNzLgor
ICAgICAgICAvLyBGb3IgQXJnOjppbW0gYW5kIGZyaWVuZHM6IFRoZSBJbnN0IHdpbGwgbWF0ZXJp
YWxpemUgYW5kIHVzZSB0aGlzIGltbWVkaWF0ZS4KKyAgICAgICAgLy8gRm9yIFJlbENvbmQvUmVz
Q29uZC9TcGVjaWFsOiBUaGlzIGlzIHRoZSBvbmx5IHZhbGlkIHJvbGUgZm9yIHRoZXNlIGtpbmRz
LgorICAgICAgICAvLworICAgICAgICAvLyBOb3RlIHRoYXQgVXNlIG9mIGFuIGFkZHJlc3MgZG9l
cyBub3QgbWVhbiBlc2NhcGUuIEl0IG9ubHkgbWVhbnMgdGhhdCB0aGUgaW5zdHJ1Y3Rpb24gd2ls
bAorICAgICAgICAvLyBsb2FkIGZyb20gdGhlIGFkZHJlc3MgYmVmb3JlIGRvaW5nIGFueXRoaW5n
IGVsc2UuIFRoaXMgaXMgYSBiaXQgdHJpY2t5OyBmb3IgZXhhbXBsZQorICAgICAgICAvLyBTcGVj
aWFscyBjb3VsZCB0aGVvcmV0aWNhbGx5IHNxdWlycmVsIGF3YXkgdGhlIGFkZHJlc3MgYW5kIGVm
ZmVjdGl2ZWx5IGVzY2FwZSBpdC4gSG93ZXZlciwKKyAgICAgICAgLy8gdGhpcyBpcyBub3QgbGVn
YWwuIE9uIHRoZSBvdGhlciBoYW5kLCBhbnkgYWRkcmVzcyBvdGhlciB0aGFuIFN0YWNrIGlzIHBy
ZXN1bWVkIHRvIGJlCisgICAgICAgIC8vIGFsd2F5cyBlc2NhcGluZywgYW5kIFN0YWNrIGlzIHBy
ZXN1bWVkIHRvIGJlIGFsd2F5cyBlc2NhcGluZyBpZiBpdCdzIExvY2tlZC4KICAgICAgICAgVXNl
LAorCisgICAgICAgIC8vIERlZiBtZWFucyB0aGF0IHRoZSBJbnN0IHdpbGwgd3JpdGUgdG8gdGhp
cyB2YWx1ZSBhZnRlciBkb2luZyBldmVyeXRoaW5nIGVsc2UuCisgICAgICAgIC8vCisgICAgICAg
IC8vIEZvciBUbXA6IFRoZSBJbnN0IHdpbGwgd3JpdGUgdG8gdGhpcyBUbXAuCisgICAgICAgIC8v
IEZvciBBcmc6OmFkZHIgYW5kIGZyaWVuZHM6IFRoZSBJbnN0IHdpbGwgc3RvcmUgdG8gdGhpcyBh
ZGRyZXNzLgorICAgICAgICAvLyBUaGlzIGlzbid0IHZhbGlkIGZvciBhbnkgb3RoZXIga2luZHMu
CisgICAgICAgIC8vCisgICAgICAgIC8vIExpa2UgVXNlIG9mIGFkZHJlc3MsIERlZiBvZiBhZGRy
ZXNzIGRvZXMgbm90IG1lYW4gZXNjYXBlLgogICAgICAgICBEZWYsCi0gICAgICAgIFVzZURlZgor
CisgICAgICAgIC8vIFRoaXMgaXMgYSBjb21iaW5lZCBVc2UgYW5kIERlZi4gSXQgbWVhbnMgdGhh
dCBib3RoIHRoaW5ncyBoYXBwZW4uCisgICAgICAgIFVzZURlZiwKKworICAgICAgICAvLyBUaGlz
IGlzIGEgc3BlY2lhbCBraW5kIG9mIHVzZSB0aGF0IGlzIG9ubHkgdmFsaWQgZm9yIGFkZHJlc3Nl
cy4gSXQgbWVhbnMgdGhhdCB0aGUKKyAgICAgICAgLy8gaW5zdHJ1Y3Rpb24gd2lsbCBldmFsdWF0
ZSB0aGUgYWRkcmVzcyBleHByZXNzaW9uIGFuZCBjb25zdW1lIHRoZSBlZmZlY3RpdmUgYWRkcmVz
cywgYnV0IGl0CisgICAgICAgIC8vIHdpbGwgbmVpdGhlciBsb2FkIG5vciBzdG9yZS4gVGhpcyBp
cyBhbiBlc2NhcGluZyB1c2UsIGJlY2F1c2Ugbm93IHRoZSBhZGRyZXNzIG1heSBiZQorICAgICAg
ICAvLyBwYXNzZWQgYWxvbmcgdG8gd2hvLWtub3dzLXdoZXJlLiBOb3RlIHRoYXQgdGhpcyBpc24n
dCByZWFsbHkgYSBVc2Ugb2YgdGhlIEFyZywgYnV0IGl0IGRvZXMKKyAgICAgICAgLy8gaW1wbHkg
dGhhdCB3ZSdyZSBVc2UnaW5nIGFueSByZWdpc3RlcnMgdGhhdCB0aGUgQXJnIGNvbnRhaW5zLgor
ICAgICAgICBVc2VBZGRyCiAgICAgfTsKIAogICAgIGVudW0gVHlwZSA6IGludDhfdCB7CkBAIC02
OSw2ICsxMDksOCBAQCBwdWJsaWM6CiAKICAgICBzdGF0aWMgY29uc3QgdW5zaWduZWQgbnVtVHlw
ZXMgPSAyOwogCisgICAgLy8gUmV0dXJucyB0cnVlIGlmIHRoZSBSb2xlIGltcGxpZXMgdGhhdCB0
aGUgSW5zdCB3aWxsIFVzZSB0aGUgQXJnLiBJdCdzIGRlbGliZXJhdGVseSBmYWxzZSBmb3IKKyAg
ICAvLyBVc2VBZGRyLCBzaW5jZSBpc1VzZSgpIGZvciBhbiBBcmc6OmFkZHIgbWVhbnMgdGhhdCB3
ZSBhcmUgbG9hZGluZyBmcm9tIHRoZSBhZGRyZXNzLgogICAgIHN0YXRpYyBib29sIGlzVXNlKFJv
bGUgcm9sZSkKICAgICB7CiAgICAgICAgIHN3aXRjaCAocm9sZSkgewpAQCAtNzYsMTQgKzExOCwx
NyBAQCBwdWJsaWM6CiAgICAgICAgIGNhc2UgVXNlRGVmOgogICAgICAgICAgICAgcmV0dXJuIHRy
dWU7CiAgICAgICAgIGNhc2UgRGVmOgorICAgICAgICBjYXNlIFVzZUFkZHI6CiAgICAgICAgICAg
ICByZXR1cm4gZmFsc2U7CiAgICAgICAgIH0KICAgICB9CiAKKyAgICAvLyBSZXR1cm5zIHRydWUg
aWYgdGhlIFJvbGUgaW1wbGllcyB0aGF0IHRoZSBJbnN0IHdpbGwgRGVmIHRoZSBBcmcuCiAgICAg
c3RhdGljIGJvb2wgaXNEZWYoUm9sZSByb2xlKQogICAgIHsKICAgICAgICAgc3dpdGNoIChyb2xl
KSB7CiAgICAgICAgIGNhc2UgVXNlOgorICAgICAgICBjYXNlIFVzZUFkZHI6CiAgICAgICAgICAg
ICByZXR1cm4gZmFsc2U7CiAgICAgICAgIGNhc2UgRGVmOgogICAgICAgICBjYXNlIFVzZURlZjoK
QEAgLTU1Myw2ICs1OTgsNyBAQCBwdWJsaWM6CiAgICAgewogICAgICAgICBzd2l0Y2ggKG1fa2lu
ZCkgewogICAgICAgICBjYXNlIFRtcDoKKyAgICAgICAgICAgIEFTU0VSVChpc1VzZShhcmdSb2xl
KSB8fCBpc0RlZihhcmdSb2xlKSk7CiAgICAgICAgICAgICBmdW5jdG9yKG1fYmFzZSwgYXJnUm9s
ZSwgYXJnVHlwZSk7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgY2FzZSBBZGRyOgpJbmRl
eDogU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL2Fpci9BaXJDb2RlLmNwcAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvYWlyL0FpckNvZGUuY3BwCShyZXZpc2lvbiAxOTE3
MzIpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvYWlyL0FpckNvZGUuY3BwCSh3b3JraW5n
IGNvcHkpCkBAIC0zMCw2ICszMCw3IEBACiAKICNpbmNsdWRlICJBaXJDQ2FsbFNwZWNpYWwuaCIK
ICNpbmNsdWRlICJCM0Jhc2ljQmxvY2tVdGlscy5oIgorI2luY2x1ZGUgIkIzU3RhY2tTbG90VmFs
dWUuaCIKIAogbmFtZXNwYWNlIEpTQyB7IG5hbWVzcGFjZSBCMyB7IG5hbWVzcGFjZSBBaXIgewog
CkBAIC01OCw2ICs1OSwxMSBAQCBTdGFja1Nsb3QqIENvZGU6OmFkZFN0YWNrU2xvdCh1bnNpZ25l
ZCBiCiAgICAgcmV0dXJuIHJlc3VsdDsKIH0KIAorU3RhY2tTbG90KiBDb2RlOjphZGRTdGFja1Ns
b3QoU3RhY2tTbG90VmFsdWUqIHZhbHVlKQoreworICAgIHJldHVybiBhZGRTdGFja1Nsb3QodmFs
dWUtPmJ5dGVTaXplKCksIHZhbHVlLT5raW5kKCksIHZhbHVlKTsKK30KKwogU3BlY2lhbCogQ29k
ZTo6YWRkU3BlY2lhbChzdGQ6OnVuaXF1ZV9wdHI8U3BlY2lhbD4gc3BlY2lhbCkKIHsKICAgICBT
cGVjaWFsKiByZXN1bHQgPSBzcGVjaWFsLmdldCgpOwpJbmRleDogU291cmNlL0phdmFTY3JpcHRD
b3JlL2IzL2Fpci9BaXJDb2RlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3Jl
L2IzL2Fpci9BaXJDb2RlLmgJKHJldmlzaW9uIDE5MTczMikKKysrIFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9iMy9haXIvQWlyQ29kZS5oCSh3b3JraW5nIGNvcHkpCkBAIC01Niw2ICs1Niw3IEBAIHB1
YmxpYzoKICAgICBCYXNpY0Jsb2NrKiBhZGRCbG9jayhkb3VibGUgZnJlcXVlbmN5ID0gUE5hTik7
CiAKICAgICBTdGFja1Nsb3QqIGFkZFN0YWNrU2xvdCh1bnNpZ25lZCBieXRlU2l6ZSwgU3RhY2tT
bG90S2luZCwgU3RhY2tTbG90VmFsdWUqID0gbnVsbHB0cik7CisgICAgU3RhY2tTbG90KiBhZGRT
dGFja1Nsb3QoU3RhY2tTbG90VmFsdWUqKTsKIAogICAgIFNwZWNpYWwqIGFkZFNwZWNpYWwoc3Rk
Ojp1bmlxdWVfcHRyPFNwZWNpYWw+KTsKIApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2Iz
L2Fpci9BaXJPcGNvZGUub3Bjb2Rlcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvYjMvYWlyL0Fpck9wY29kZS5vcGNvZGVzCShyZXZpc2lvbiAxOTE3MzIpCisrKyBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvYjMvYWlyL0Fpck9wY29kZS5vcGNvZGVzCSh3b3JraW5nIGNvcHkpCkBA
IC0yNyw2ICsyNyw3IEBACiAjIFU6RyA9PiB1c2Ugb2YgYSBnZW5lcmFsLXB1cnBvc2UgcmVnaXN0
ZXIgb3IgdmFsdWUKICMgRDpHID0+IGRlZiBvZiBhIGdlbmVyYWwtcHVycG9zZSByZWdpc3RlciBv
ciB2YWx1ZQogIyBVRDpHID0+IHVzZSBhbmQgZGVmIG9mIGEgZ2VuZXJhbC1wdXJwb3NlIHJlZ2lz
dGVyIG9yIHZhbHVlCisjIFVBOkcgPT4gVXNlQWRkciAoc2VlIGNvbW1lbnQgaW4gQXJnLmgpCiAj
IFU6RiA9PiB1c2Ugb2YgYSBmbG9hdCByZWdpc3RlciBvciB2YWx1ZQogIyBEOkYgPT4gZGVmIG9m
IGEgZmxvYXQgcmVnaXN0ZXIgb3IgdmFsdWUKICMgVUQ6RiA9PiB1c2UgYW5kIGRlZiBvZiBhIGZs
b2F0IHJlZ2lzdGVyIG9yIHZhbHVlCkBAIC03Nyw2ICs3OCw5IEBAIEFkZDY0IFU6RywgVUQ6Rwog
QWRkNjQgVTpHLCBVOkcsIEQ6RwogICAgIEltbSwgVG1wLCBUbXAKIAorTGVhIFVBOkcsIEQ6Rwor
ICAgIEFkZHIsIFRtcAorCiBBbmQzMiBVOkcsIFVEOkcKICAgICBUbXAsIFRtcAogICAgIEltbSwg
VG1wCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvYWlyL0FpclNwaWxsRXZlcnl0aGlu
Zy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL2Fpci9BaXJTcGls
bEV2ZXJ5dGhpbmcuY3BwCShyZXZpc2lvbiAxOTE3MzIpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvYjMvYWlyL0FpclNwaWxsRXZlcnl0aGluZy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEzMCw2
ICsxMzAsMTAgQEAgdm9pZCBzcGlsbEV2ZXJ5dGhpbmcoQ29kZSYgY29kZSkKICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAg
ICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgY2FzZSBBcmc6OlVzZUFk
ZHI6CisgICAgICAgICAgICAgICAgICAgICAgICAvLyBXZSB3aWxsIG5ldmVyIFVzZUFkZHIgYSBU
bXAsIHRoYXQgZG9lc24ndCBtYWtlIHNlbnNlLgorICAgICAgICAgICAgICAgICAgICAgICAgUkVM
RUFTRV9BU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFr
OwogICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgIFJFTEVBU0VfQVNT
RVJUKGNob3NlblJlZyk7CiAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIvQWly
U3RhY2tTbG90LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL2Fpci9B
aXJTdGFja1Nsb3QuaAkocmV2aXNpb24gMTkxNzMyKQorKysgU291cmNlL0phdmFTY3JpcHRDb3Jl
L2IzL2Fpci9BaXJTdGFja1Nsb3QuaAkod29ya2luZyBjb3B5KQpAQCAtNDUsNiArNDUsNyBAQCBj
bGFzcyBTdGFja1Nsb3QgewogcHVibGljOgogICAgIHVuc2lnbmVkIGJ5dGVTaXplKCkgY29uc3Qg
eyByZXR1cm4gbV9ieXRlU2l6ZTsgfQogICAgIFN0YWNrU2xvdEtpbmQga2luZCgpIGNvbnN0IHsg
cmV0dXJuIG1fa2luZDsgfQorICAgIGJvb2wgaXNMb2NrZWQoKSBjb25zdCB7IHJldHVybiBtX2tp
bmQgPT0gU3RhY2tTbG90S2luZDo6TG9ja2VkOyB9CiAgICAgdW5zaWduZWQgaW5kZXgoKSBjb25z
dCB7IHJldHVybiBtX2luZGV4OyB9CiAKICAgICB1bnNpZ25lZCBhbGlnbm1lbnQoKSBjb25zdApJ
bmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL2Fpci9vcGNvZGVfZ2VuZXJhdG9yLnJiCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIvb3Bjb2RlX2dlbmVyYXRv
ci5yYgkocmV2aXNpb24gMTkxNzMyKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL2Fpci9v
cGNvZGVfZ2VuZXJhdG9yLnJiCSh3b3JraW5nIGNvcHkpCkBAIC0xNzIsNyArMTcyLDcgQEAgZGVm
IGxleChzdHIsIGZpbGVOYW1lKQogZW5kCiAKIGRlZiBpc1VEKHRva2VuKQotICAgIHRva2VuID1+
IC9cQSgoVSl8KEQpfChVRCkpXFovCisgICAgdG9rZW4gPX4gL1xBKChVKXwoRCl8KFVEKXwoVUEp
KVxaLwogZW5kCiAKIGRlZiBpc0dGKHRva2VuKQpAQCAtMjMyLDcgKzIzMiw3IEBAIGNsYXNzIFBh
cnNlcgogCiAgICAgZGVmIGNvbnN1bWVSb2xlCiAgICAgICAgIHJlc3VsdCA9IHRva2VuLnN0cmlu
ZwotICAgICAgICBwYXJzZUVycm9yKCJFeHBlY3RlZCByb2xlIChVLCBELCBvciBVRCkiKSB1bmxl
c3MgaXNVRChyZXN1bHQpCisgICAgICAgIHBhcnNlRXJyb3IoIkV4cGVjdGVkIHJvbGUgKFUsIEQs
IFVELCBvciBVQSkiKSB1bmxlc3MgaXNVRChyZXN1bHQpCiAgICAgICAgIGFkdmFuY2UKICAgICAg
ICAgcmVzdWx0CiAgICAgZW5kCkBAIC01MjgsNiArNTI4LDggQEAgd3JpdGVIKCJPcGNvZGVVdGls
cyIpIHsKICAgICAgICAgICAgICAgICAgICAgcm9sZSA9ICJEZWYiCiAgICAgICAgICAgICAgICAg
d2hlbiAiVUQiCiAgICAgICAgICAgICAgICAgICAgIHJvbGUgPSAiVXNlRGVmIgorICAgICAgICAg
ICAgICAgIHdoZW4gIlVBIgorICAgICAgICAgICAgICAgICAgICByb2xlID0gIlVzZUFkZHIiCiAg
ICAgICAgICAgICAgICAgZWxzZQogICAgICAgICAgICAgICAgICAgICByYWlzZQogICAgICAgICAg
ICAgICAgIGVuZAo=
</data>
<flag name="review"
          id="289458"
          type_id="1"
          status="+"
          setter="ggaren"
    />
          </attachment>
      

    </bug>

</bugzilla>