<?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>91135</bug_id>
          
          <creation_ts>2012-07-12 12:47:40 -0700</creation_ts>
          <short_desc>DFG property access stubs should use structure transition watchpoints</short_desc>
          <delta_ts>2012-07-12 23:41:45 -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>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>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Filip Pizlo">fpizlo</reporter>
          <assigned_to name="Filip Pizlo">fpizlo</assigned_to>
          <cc>gustavo</cc>
    
    <cc>rakuco</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>xan.lopez</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>668101</commentid>
    <comment_count>0</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2012-07-12 12:47:40 -0700</bug_when>
    <thetext>Patch forthcoming.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>668108</commentid>
    <comment_count>1</comment_count>
      <attachid>152030</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2012-07-12 12:52:43 -0700</bug_when>
    <thetext>Created attachment 152030
work in progress</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>668266</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-07-12 14:57:36 -0700</bug_when>
    <thetext>Attachment 152030 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;Source/JavaScriptCore/ChangeLog&apos;, u&apos;Source...&quot; exit_code: 1
Source/JavaScriptCore/bytecode/StructureStubClearingWatchpoint.h:93:  The parameter name &quot;codeBlock&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
Source/JavaScriptCore/bytecode/StructureStubClearingWatchpoint.h:94:  The parameter name &quot;stubInfo&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
Total errors found: 2 in 9 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>668270</commentid>
    <comment_count>3</comment_count>
      <attachid>152030</attachid>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2012-07-12 15:01:58 -0700</bug_when>
    <thetext>Comment on attachment 152030
work in progress

Attachment 152030 did not pass efl-ews (efl):
Output: http://queues.webkit.org/results/13199867</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>668273</commentid>
    <comment_count>4</comment_count>
      <attachid>152030</attachid>
    <who name="Gustavo Noronha (kov)">gustavo</who>
    <bug_when>2012-07-12 15:03:52 -0700</bug_when>
    <thetext>Comment on attachment 152030
work in progress

Attachment 152030 did not pass gtk-ews (gtk):
Output: http://queues.webkit.org/results/13180971</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>668276</commentid>
    <comment_count>5</comment_count>
      <attachid>152030</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2012-07-12 15:06:12 -0700</bug_when>
    <thetext>Comment on attachment 152030
work in progress

Attachment 152030 did not pass win-ews (win):
Output: http://queues.webkit.org/results/13182960</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>668277</commentid>
    <comment_count>6</comment_count>
      <attachid>152073</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2012-07-12 15:08:56 -0700</bug_when>
    <thetext>Created attachment 152073
the patch

Actually added build foo this time.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>668318</commentid>
    <comment_count>7</comment_count>
      <attachid>152073</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2012-07-12 15:32:55 -0700</bug_when>
    <thetext>Comment on attachment 152073
the patch

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>668643</commentid>
    <comment_count>8</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2012-07-12 23:41:45 -0700</bug_when>
    <thetext>Landed in http://trac.webkit.org/changeset/122544</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>152030</attachid>
            <date>2012-07-12 12:52:43 -0700</date>
            <delta_ts>2012-07-12 15:08:56 -0700</delta_ts>
            <desc>work in progress</desc>
            <filename>stubwatch_patch_1.diff</filename>
            <type>text/plain</type>
            <size>25728</size>
            <attacher name="Filip Pizlo">fpizlo</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTIyNDkyKQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDUyIEBA
CisyMDEyLTA3LTEyICBGaWxpcCBQaXpsbyAgPGZwaXpsb0BhcHBsZS5jb20+CisKKyAgICAgICAg
REZHIHByb3BlcnR5IGFjY2VzcyBzdHVicyBzaG91bGQgdXNlIHN0cnVjdHVyZSB0cmFuc2l0aW9u
IHdhdGNocG9pbnRzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD05MTEzNQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIFRoaXMgYWRkcyBhIFdhdGNocG9pbnQgc3ViY2xhc3MgdGhhdCB3aWxsIGNsZWFyIGEgc3Ry
dWN0dXJlIHN0dWIgKGkuZS4KKyAgICAgICAgYSBwcm9wZXJ0eSBhY2Nlc3Mgc3R1Yikgd2hlbiBm
aXJlZC4gVGhlIERGRyBzdHViIGdlbmVyYXRpb24gY29kZSBub3cKKyAgICAgICAgdXNlcyB0aGlz
IG9wdGltaXphdGlvbi4KKyAgICAgICAgCisgICAgICAgIFdvcmsgaW4gcHJvZ3Jlc3MuCisKKyAg
ICAgICAgKiBKYXZhU2NyaXB0Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAg
ICAqIGJ5dGVjb2RlL0NvZGVCbG9jay5jcHA6CisgICAgICAgIChKU0MpOgorICAgICAgICAoSlND
OjpDb2RlQmxvY2s6OmZpbmFsaXplVW5jb25kaXRpb25hbGx5KToKKyAgICAgICAgKEpTQzo6Q29k
ZUJsb2NrOjpyZXNldFN0dWIpOgorICAgICAgICAoSlNDOjpDb2RlQmxvY2s6OnJlc2V0U3R1Yklu
dGVybmFsKToKKyAgICAgICAgKiBieXRlY29kZS9Db2RlQmxvY2suaDoKKyAgICAgICAgKEpTQyk6
CisgICAgICAgIChDb2RlQmxvY2spOgorICAgICAgICAqIGJ5dGVjb2RlL1N0cnVjdHVyZVN0dWJD
bGVhcmluZ1dhdGNocG9pbnQuY3BwOiBBZGRlZC4KKyAgICAgICAgKEpTQyk6CisgICAgICAgIChK
U0M6OlN0cnVjdHVyZVN0dWJDbGVhcmluZ1dhdGNocG9pbnQ6On5TdHJ1Y3R1cmVTdHViQ2xlYXJp
bmdXYXRjaHBvaW50KToKKyAgICAgICAgKEpTQzo6U3RydWN0dXJlU3R1YkNsZWFyaW5nV2F0Y2hw
b2ludDo6cHVzaCk6CisgICAgICAgIChKU0M6OlN0cnVjdHVyZVN0dWJDbGVhcmluZ1dhdGNocG9p
bnQ6OmZpcmVJbnRlcm5hbCk6CisgICAgICAgIChKU0M6OldhdGNocG9pbnRzT25TdHJ1Y3R1cmVT
dHViSW5mbzo6fldhdGNocG9pbnRzT25TdHJ1Y3R1cmVTdHViSW5mbyk6CisgICAgICAgIChKU0M6
OldhdGNocG9pbnRzT25TdHJ1Y3R1cmVTdHViSW5mbzo6YWRkV2F0Y2hwb2ludCk6CisgICAgICAg
IChKU0M6OldhdGNocG9pbnRzT25TdHJ1Y3R1cmVTdHViSW5mbzo6ZW5zdXJlUmVmZXJlbmNlQW5k
QWRkV2F0Y2hwb2ludCk6CisgICAgICAgICogYnl0ZWNvZGUvU3RydWN0dXJlU3R1YkNsZWFyaW5n
V2F0Y2hwb2ludC5oOiBBZGRlZC4KKyAgICAgICAgKEpTQyk6CisgICAgICAgIChTdHJ1Y3R1cmVT
dHViQ2xlYXJpbmdXYXRjaHBvaW50KToKKyAgICAgICAgKEpTQzo6U3RydWN0dXJlU3R1YkNsZWFy
aW5nV2F0Y2hwb2ludDo6U3RydWN0dXJlU3R1YkNsZWFyaW5nV2F0Y2hwb2ludCk6CisgICAgICAg
IChXYXRjaHBvaW50c09uU3RydWN0dXJlU3R1YkluZm8pOgorICAgICAgICAoSlNDOjpXYXRjaHBv
aW50c09uU3RydWN0dXJlU3R1YkluZm86OldhdGNocG9pbnRzT25TdHJ1Y3R1cmVTdHViSW5mbyk6
CisgICAgICAgIChKU0M6OldhdGNocG9pbnRzT25TdHJ1Y3R1cmVTdHViSW5mbzo6Y29kZUJsb2Nr
KToKKyAgICAgICAgKEpTQzo6V2F0Y2hwb2ludHNPblN0cnVjdHVyZVN0dWJJbmZvOjpzdHViSW5m
byk6CisgICAgICAgICogYnl0ZWNvZGUvU3RydWN0dXJlU3R1YkluZm8uaDoKKyAgICAgICAgKEpT
Qzo6U3RydWN0dXJlU3R1YkluZm86OnJlc2V0KToKKyAgICAgICAgKEpTQzo6U3RydWN0dXJlU3R1
YkluZm86OmFkZFdhdGNocG9pbnQpOgorICAgICAgICAoU3RydWN0dXJlU3R1YkluZm8pOgorICAg
ICAgICAqIGRmZy9ERkdSZXBhdGNoLmNwcDoKKyAgICAgICAgKEpTQzo6REZHOjphZGRTdHJ1Y3R1
cmVUcmFuc2l0aW9uQ2hlY2spOgorICAgICAgICAoREZHKToKKyAgICAgICAgKEpTQzo6REZHOjpn
ZW5lcmF0ZVByb3RvQ2hhaW5BY2Nlc3NTdHViKToKKyAgICAgICAgKEpTQzo6REZHOjplbWl0UHV0
VHJhbnNpdGlvblN0dWIpOgorICAgICAgICAqIGppdC9KdW1wUmVwbGFjZW1lbnRXYXRjaHBvaW50
Lmg6CisKIDIwMTItMDctMTIgIEFsbGFuIFNhbmRmZWxkIEplbnNlbiAgPGFsbGFuLmplbnNlbkBu
b2tpYS5jb20+CiAKICAgICAgICAgW1F0XSBJbXBsZW1lbnQgTWVtb3J5VXNhZ2VTdXBwb3J0Cklu
ZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvago9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlw
dENvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagkocmV2aXNpb24gMTIyMzg1KQorKysgU291
cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHBy
b2oJKHdvcmtpbmcgY29weSkKQEAgLTE0OCw2ICsxNDgsOCBAQAogCQkwRjc2NkQzMTE1QUE4MTEy
MDA4RjM2M0UgLyogSklUU3R1YlJvdXRpbmUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDBGNzY2RDFDMTVBNTAyOEQwMDhGMzYzRSAvKiBKSVRTdHViUm91
dGluZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJ
CTBGNzY2RDM0MTVBRTI1MzgwMDhGMzYzRSAvKiBKdW1wUmVwbGFjZW1lbnRXYXRjaHBvaW50LmNw
cCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGNzY2RDMy
MTVBRTI1MzUwMDhGMzYzRSAvKiBKdW1wUmVwbGFjZW1lbnRXYXRjaHBvaW50LmNwcCAqLzsgfTsK
IAkJMEY3NjZEMzUxNUFFMjUzQjAwOEYzNjNFIC8qIEp1bXBSZXBsYWNlbWVudFdhdGNocG9pbnQu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGNzY2RDMz
MTVBRTI1MzUwMDhGMzYzRSAvKiBKdW1wUmVwbGFjZW1lbnRXYXRjaHBvaW50LmggKi87IHNldHRp
bmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJMEY3NjZEMzgxNUFFNEEx
QzAwOEYzNjNFIC8qIFN0cnVjdHVyZVN0dWJDbGVhcmluZ1dhdGNocG9pbnQuY3BwIGluIFNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEY3NjZEMzYxNUFFNEExQTAw
OEYzNjNFIC8qIFN0cnVjdHVyZVN0dWJDbGVhcmluZ1dhdGNocG9pbnQuY3BwICovOyB9OworCQkw
Rjc2NkQzOTE1QUU0QTFGMDA4RjM2M0UgLyogU3RydWN0dXJlU3R1YkNsZWFyaW5nV2F0Y2hwb2lu
dC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEY3NjZE
MzcxNUFFNEExQTAwOEYzNjNFIC8qIFN0cnVjdHVyZVN0dWJDbGVhcmluZ1dhdGNocG9pbnQuaCAq
Lzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkwRjc3MDA5
MjE0MDJGRjNDMDA3OEVCMzkgLyogU2FtcGxpbmdDb3VudGVyLmNwcCBpbiBTb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGNzcwMDkxMTQwMkZGMjgwMDc4RUIzOSAv
KiBTYW1wbGluZ0NvdW50ZXIuY3BwICovOyB9OwogCQkwRjdCMjk0QTE0QzNDRDI5MDA3QzNEQjEg
LyogREZHQ0NhbGxIZWxwZXJzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSAwRjdCMjk0ODE0QzNDRDIzMDA3QzNEQjEgLyogREZHQ0NhbGxIZWxwZXJzLmgg
Ki87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJMEY3QjI5
NEIxNEMzQ0QyRjAwN0MzREIxIC8qIERGR0NhcGFiaWxpdGllcy5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEZEODJFMUYxNDE3MkMyRjAwMTc5Qzk0IC8q
IERGR0NhcGFiaWxpdGllcy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUs
ICk7IH07IH07CkBAIC04OTEsNiArODkzLDggQEAKIAkJMEY3NjZEMkUxNUE4RENERDAwOEYzNjNF
IC8qIEdDQXdhcmVKSVRTdHViUm91dGluZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBHQ0F3YXJlSklUU3R1YlJvdXRpbmUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJMEY3NjZEMzIxNUFFMjUzNTAwOEYzNjNFIC8qIEp1bXBSZXBsYWNlbWVudFdhdGNocG9pbnQu
Y3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSnVtcFJlcGxhY2VtZW50
V2F0Y2hwb2ludC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTBGNzY2RDMzMTVB
RTI1MzUwMDhGMzYzRSAvKiBKdW1wUmVwbGFjZW1lbnRXYXRjaHBvaW50LmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEp1bXBSZXBsYWNlbWVudFdhdGNocG9pbnQuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMEY3NjZEMzYxNUFFNEExQTAwOEYzNjNFIC8qIFN0cnVj
dHVyZVN0dWJDbGVhcmluZ1dhdGNocG9pbnQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
Y3BwOyBwYXRoID0gU3RydWN0dXJlU3R1YkNsZWFyaW5nV2F0Y2hwb2ludC5jcHA7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CisJCTBGNzY2RDM3MTVBRTRBMUEwMDhGMzYzRSAvKiBTdHJ1Y3R1
cmVTdHViQ2xlYXJpbmdXYXRjaHBvaW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IFN0cnVjdHVyZVN0dWJDbGVhcmluZ1dhdGNocG9pbnQuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJMEY3NzAwOEUxNDAyRkRENjAwNzhFQjM5IC8qIFNhbXBsaW5nQ291bnRlci5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTYW1wbGluZ0NvdW50ZXIuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMEY3NzAwOTExNDAyRkYyODAwNzhFQjM5IC8qIFNh
bXBsaW5nQ291bnRlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBT
YW1wbGluZ0NvdW50ZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwRjdCMjk0
ODE0QzNDRDIzMDA3QzNEQjEgLyogREZHQ0NhbGxIZWxwZXJzLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgbmFtZSA9IERGR0NDYWxsSGVscGVycy5oOyBwYXRoID0gZGZnL0RGR0NDYWxsSGVs
cGVycy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMjQzOSw2ICsyNDQzLDggQEAK
IAkJCQkwRkQ4MkU0RjE0MURBRUExMDAxNzlDOTQgLyogU3BlY3VsYXRlZFR5cGUuaCAqLywKIAkJ
CQkxNDI5RDg4MzBFRDIxQzNEMDBCODk2MTkgLyogU2FtcGxpbmdUb29sLmNwcCAqLywKIAkJCQkx
NDI5RDg4NDBFRDIxQzNEMDBCODk2MTkgLyogU2FtcGxpbmdUb29sLmggKi8sCisJCQkJMEY3NjZE
MzYxNUFFNEExQTAwOEYzNjNFIC8qIFN0cnVjdHVyZVN0dWJDbGVhcmluZ1dhdGNocG9pbnQuY3Bw
ICovLAorCQkJCTBGNzY2RDM3MTVBRTRBMUEwMDhGMzYzRSAvKiBTdHJ1Y3R1cmVTdHViQ2xlYXJp
bmdXYXRjaHBvaW50LmggKi8sCiAJCQkJQkNDRjBEMEIwRUYwQjhBNTAwNDEzQzhGIC8qIFN0cnVj
dHVyZVN0dWJJbmZvLmNwcCAqLywKIAkJCQlCQ0NGMEQwNzBFRjBBQUI5MDA0MTNDOEYgLyogU3Ry
dWN0dXJlU3R1YkluZm8uaCAqLywKIAkJCQkwRjk2M0IzNjEzRkM2RkRFMDAwMkQ5QjIgLyogVmFs
dWVQcm9maWxlLmggKi8sCkBAIC0yODQzLDYgKzI4NDksNyBAQAogCQkJCTBGNzY2RDMwMTVBOERD
RTIwMDhGMzYzRSAvKiBHQ0F3YXJlSklUU3R1YlJvdXRpbmUuaCBpbiBIZWFkZXJzICovLAogCQkJ
CTBGNzY2RDMxMTVBQTgxMTIwMDhGMzYzRSAvKiBKSVRTdHViUm91dGluZS5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJMEY3NjZEMzUxNUFFMjUzQjAwOEYzNjNFIC8qIEp1bXBSZXBsYWNlbWVudFdhdGNo
cG9pbnQuaCBpbiBIZWFkZXJzICovLAorCQkJCTBGNzY2RDM5MTVBRTRBMUYwMDhGMzYzRSAvKiBT
dHJ1Y3R1cmVTdHViQ2xlYXJpbmdXYXRjaHBvaW50LmggaW4gSGVhZGVycyAqLywKIAkJCSk7CiAJ
CQlydW5Pbmx5Rm9yRGVwbG95bWVudFBvc3Rwcm9jZXNzaW5nID0gMDsKIAkJfTsKQEAgLTM0Mzks
NiArMzQ0Niw3IEBACiAJCQkJMEY3NjZEMkIxNUE4Q0MzODAwOEYzNjNFIC8qIEpJVFN0dWJSb3V0
aW5lU2V0LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTBGNzY2RDJGMTVBOERDRTAwMDhGMzYzRSAv
KiBHQ0F3YXJlSklUU3R1YlJvdXRpbmUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMEY3NjZEMzQx
NUFFMjUzODAwOEYzNjNFIC8qIEp1bXBSZXBsYWNlbWVudFdhdGNocG9pbnQuY3BwIGluIFNvdXJj
ZXMgKi8sCisJCQkJMEY3NjZEMzgxNUFFNEExQzAwOEYzNjNFIC8qIFN0cnVjdHVyZVN0dWJDbGVh
cmluZ1dhdGNocG9pbnQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkpOwogCQkJcnVuT25seUZvckRl
cGxveW1lbnRQb3N0cHJvY2Vzc2luZyA9IDA7CiAJCX07CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvYnl0ZWNvZGUvQ29kZUJsb2NrLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvYnl0ZWNvZGUvQ29kZUJsb2NrLmNwcAkocmV2aXNpb24gMTIyMjk2KQorKysgU291
cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0NvZGVCbG9jay5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTIwMjYsMTYgKzIwMjYsMTYgQEAgdm9pZCBDb2RlQmxvY2s6OnZpc2l0V2Vha1JlZmVyZW5j
ZXMoU2xvdAogICAgIHBlcmZvcm1UcmFjaW5nRml4cG9pbnRJdGVyYXRpb24odmlzaXRvcik7CiB9
CiAKLXZvaWQgQ29kZUJsb2NrOjpmaW5hbGl6ZVVuY29uZGl0aW9uYWxseSgpCi17CiAjaWYgRU5B
QkxFKEpJVCkKICNpZiBFTkFCTEUoSklUX1ZFUkJPU0VfT1NSKQotICAgIHN0YXRpYyBjb25zdCBi
b29sIHZlcmJvc2VVbmxpbmtpbmcgPSB0cnVlOworc3RhdGljIGNvbnN0IGJvb2wgdmVyYm9zZVVu
bGlua2luZyA9IHRydWU7CiAjZWxzZQotICAgIHN0YXRpYyBjb25zdCBib29sIHZlcmJvc2VVbmxp
bmtpbmcgPSBmYWxzZTsKK3N0YXRpYyBjb25zdCBib29sIHZlcmJvc2VVbmxpbmtpbmcgPSBmYWxz
ZTsKICNlbmRpZgogI2VuZGlmIC8vIEVOQUJMRShKSVQpCiAgICAgCit2b2lkIENvZGVCbG9jazo6
ZmluYWxpemVVbmNvbmRpdGlvbmFsbHkoKQorewogI2lmIEVOQUJMRShMTElOVCkKICAgICBJbnRl
cnByZXRlciogaW50ZXJwcmV0ZXIgPSBtX2dsb2JhbERhdGEtPmludGVycHJldGVyOwogICAgIC8v
IGludGVycHJldGVyLT5jbGFzc2ljRW5hYmxlZCgpIHJldHVybnMgdHJ1ZSBpZiB0aGUgb2xkIEMr
KyBpbnRlcnByZXRlciBpcyBlbmFibGVkLiBJZiB0aGF0J3MgZW5hYmxlZApAQCAtMjE0MSwyOCAr
MjE0MSwxMCBAQCB2b2lkIENvZGVCbG9jazo6ZmluYWxpemVVbmNvbmRpdGlvbmFsbHkoCiAgICAg
ICAgIGZvciAoc2l6ZV90IHNpemUgPSBtX3N0cnVjdHVyZVN0dWJJbmZvcy5zaXplKCksIGkgPSAw
OyBpIDwgc2l6ZTsgKytpKSB7CiAgICAgICAgICAgICBTdHJ1Y3R1cmVTdHViSW5mbyYgc3R1Yklu
Zm8gPSBtX3N0cnVjdHVyZVN0dWJJbmZvc1tpXTsKICAgICAgICAgICAgIAotICAgICAgICAgICAg
QWNjZXNzVHlwZSBhY2Nlc3NUeXBlID0gc3RhdGljX2Nhc3Q8QWNjZXNzVHlwZT4oc3R1YkluZm8u
YWNjZXNzVHlwZSk7Ci0gICAgICAgICAgICAKICAgICAgICAgICAgIGlmIChzdHViSW5mby52aXNp
dFdlYWtSZWZlcmVuY2VzKCkpCiAgICAgICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgICAg
ICAKLSAgICAgICAgICAgIGlmICh2ZXJib3NlVW5saW5raW5nKQotICAgICAgICAgICAgICAgIGRh
dGFMb2coIkNsZWFyaW5nIHN0cnVjdHVyZSBjYWNoZSAoa2luZCAlZCkgaW4gJXAuXG4iLCBzdHVi
SW5mby5hY2Nlc3NUeXBlLCB0aGlzKTsKLSAgICAgICAgICAgIAotICAgICAgICAgICAgaWYgKGlz
R2V0QnlJZEFjY2VzcyhhY2Nlc3NUeXBlKSkgewotICAgICAgICAgICAgICAgIGlmIChnZXRKSVRD
b2RlKCkuaml0VHlwZSgpID09IEpJVENvZGU6OkRGR0pJVCkKLSAgICAgICAgICAgICAgICAgICAg
REZHOjpkZmdSZXNldEdldEJ5SUQocmVwYXRjaEJ1ZmZlciwgc3R1YkluZm8pOwotICAgICAgICAg
ICAgICAgIGVsc2UKLSAgICAgICAgICAgICAgICAgICAgSklUOjpyZXNldFBhdGNoR2V0QnlJZChy
ZXBhdGNoQnVmZmVyLCAmc3R1YkluZm8pOwotICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAg
ICAgICAgICBBU1NFUlQoaXNQdXRCeUlkQWNjZXNzKGFjY2Vzc1R5cGUpKTsKLSAgICAgICAgICAg
ICAgICBpZiAoZ2V0SklUQ29kZSgpLmppdFR5cGUoKSA9PSBKSVRDb2RlOjpERkdKSVQpCi0gICAg
ICAgICAgICAgICAgICAgIERGRzo6ZGZnUmVzZXRQdXRCeUlEKHJlcGF0Y2hCdWZmZXIsIHN0dWJJ
bmZvKTsKLSAgICAgICAgICAgICAgICBlbHNlIAotICAgICAgICAgICAgICAgICAgICBKSVQ6OnJl
c2V0UGF0Y2hQdXRCeUlkKHJlcGF0Y2hCdWZmZXIsICZzdHViSW5mbyk7Ci0gICAgICAgICAgICB9
Ci0gICAgICAgICAgICAKLSAgICAgICAgICAgIHN0dWJJbmZvLnJlc2V0KCk7CisgICAgICAgICAg
ICByZXNldFN0dWJJbnRlcm5hbChyZXBhdGNoQnVmZmVyLCBzdHViSW5mbyk7CiAgICAgICAgIH0K
IAogICAgICAgICBmb3IgKHNpemVfdCBzaXplID0gbV9tZXRob2RDYWxsTGlua0luZm9zLnNpemUo
KSwgaSA9IDA7IGkgPCBzaXplOyArK2kpIHsKQEAgLTIxOTgsNiArMjE4MCw0MCBAQCB2b2lkIENv
ZGVCbG9jazo6ZmluYWxpemVVbmNvbmRpdGlvbmFsbHkoCiAjZW5kaWYKIH0KIAorI2lmIEVOQUJM
RShKSVQpCit2b2lkIENvZGVCbG9jazo6cmVzZXRTdHViKFN0cnVjdHVyZVN0dWJJbmZvJiBzdHVi
SW5mbykKK3sKKyAgICBpZiAoc3R1YkluZm8uYWNjZXNzVHlwZSA9PSBhY2Nlc3NfdW5zZXQpCisg
ICAgICAgIHJldHVybjsKKyAgICAKKyAgICBSZXBhdGNoQnVmZmVyIHJlcGF0Y2hCdWZmZXIodGhp
cyk7CisgICAgcmVzZXRTdHViSW50ZXJuYWwocmVwYXRjaEJ1ZmZlciwgc3R1YkluZm8pOworfQor
Cit2b2lkIENvZGVCbG9jazo6cmVzZXRTdHViSW50ZXJuYWwoUmVwYXRjaEJ1ZmZlciYgcmVwYXRj
aEJ1ZmZlciwgU3RydWN0dXJlU3R1YkluZm8mIHN0dWJJbmZvKQoreworICAgIEFjY2Vzc1R5cGUg
YWNjZXNzVHlwZSA9IHN0YXRpY19jYXN0PEFjY2Vzc1R5cGU+KHN0dWJJbmZvLmFjY2Vzc1R5cGUp
OworICAgIAorICAgIGlmICh2ZXJib3NlVW5saW5raW5nKQorICAgICAgICBkYXRhTG9nKCJDbGVh
cmluZyBzdHJ1Y3R1cmUgY2FjaGUgKGtpbmQgJWQpIGluICVwLlxuIiwgc3R1YkluZm8uYWNjZXNz
VHlwZSwgdGhpcyk7CisgICAgCisgICAgaWYgKGlzR2V0QnlJZEFjY2VzcyhhY2Nlc3NUeXBlKSkg
eworICAgICAgICBpZiAoZ2V0SklUQ29kZSgpLmppdFR5cGUoKSA9PSBKSVRDb2RlOjpERkdKSVQp
CisgICAgICAgICAgICBERkc6OmRmZ1Jlc2V0R2V0QnlJRChyZXBhdGNoQnVmZmVyLCBzdHViSW5m
byk7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIEpJVDo6cmVzZXRQYXRjaEdldEJ5SWQocmVw
YXRjaEJ1ZmZlciwgJnN0dWJJbmZvKTsKKyAgICB9IGVsc2UgeworICAgICAgICBBU1NFUlQoaXNQ
dXRCeUlkQWNjZXNzKGFjY2Vzc1R5cGUpKTsKKyAgICAgICAgaWYgKGdldEpJVENvZGUoKS5qaXRU
eXBlKCkgPT0gSklUQ29kZTo6REZHSklUKQorICAgICAgICAgICAgREZHOjpkZmdSZXNldFB1dEJ5
SUQocmVwYXRjaEJ1ZmZlciwgc3R1YkluZm8pOworICAgICAgICBlbHNlIAorICAgICAgICAgICAg
SklUOjpyZXNldFBhdGNoUHV0QnlJZChyZXBhdGNoQnVmZmVyLCAmc3R1YkluZm8pOworICAgIH0K
KyAgICAKKyAgICBzdHViSW5mby5yZXNldCgpOworfQorI2VuZGlmCisKIHZvaWQgQ29kZUJsb2Nr
OjpzdHJvbmdseVZpc2l0U3Ryb25nUmVmZXJlbmNlcyhTbG90VmlzaXRvciYgdmlzaXRvcikKIHsK
ICAgICB2aXNpdG9yLmFwcGVuZCgmbV9nbG9iYWxPYmplY3QpOwpJbmRleDogU291cmNlL0phdmFT
Y3JpcHRDb3JlL2J5dGVjb2RlL0NvZGVCbG9jay5oCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ieXRlY29kZS9Db2RlQmxvY2suaAkocmV2aXNpb24gMTIyMzg1KQorKysgU291
cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0NvZGVCbG9jay5oCSh3b3JraW5nIGNvcHkpCkBA
IC0xMDQsNiArMTA0LDcgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgY2xhc3MgREZHQ29kZUJsb2Nr
czsKICAgICBjbGFzcyBFeGVjU3RhdGU7CiAgICAgY2xhc3MgTExJbnRPZmZzZXRzRXh0cmFjdG9y
OworICAgIGNsYXNzIFJlcGF0Y2hCdWZmZXI7CiAKICAgICBpbmxpbmUgaW50IHVubW9kaWZpZWRB
cmd1bWVudHNSZWdpc3RlcihpbnQgYXJndW1lbnRzUmVnaXN0ZXIpIHsgcmV0dXJuIGFyZ3VtZW50
c1JlZ2lzdGVyIC0gMTsgfQogCkBAIC0yMDUsNiArMjA2LDggQEAgbmFtZXNwYWNlIEpTQyB7CiAg
ICAgICAgIHsKICAgICAgICAgICAgIHJldHVybiAqKGJpbmFyeVNlYXJjaDxTdHJ1Y3R1cmVTdHVi
SW5mbywgdW5zaWduZWQsIGdldFN0cnVjdHVyZVN0dWJJbmZvQnl0ZWNvZGVJbmRleD4obV9zdHJ1
Y3R1cmVTdHViSW5mb3MuYmVnaW4oKSwgbV9zdHJ1Y3R1cmVTdHViSW5mb3Muc2l6ZSgpLCBieXRl
Y29kZUluZGV4KSk7CiAgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIHZvaWQgcmVzZXRTdHVi
KFN0cnVjdHVyZVN0dWJJbmZvJik7CiAKICAgICAgICAgQ2FsbExpbmtJbmZvJiBnZXRDYWxsTGlu
a0luZm8oUmV0dXJuQWRkcmVzc1B0ciByZXR1cm5BZGRyZXNzKQogICAgICAgICB7CkBAIC0xMjMz
LDYgKzEyMzYsMTAgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgICAgICBpZiAoIW1fcmFyZURh
dGEpCiAgICAgICAgICAgICAgICAgbV9yYXJlRGF0YSA9IGFkb3B0UHRyKG5ldyBSYXJlRGF0YSk7
CiAgICAgICAgIH0KKworI2lmIEVOQUJMRShKSVQpCisgICAgICAgIHZvaWQgcmVzZXRTdHViSW50
ZXJuYWwoUmVwYXRjaEJ1ZmZlciYsIFN0cnVjdHVyZVN0dWJJbmZvJik7CisjZW5kaWYKICAgICAg
ICAgCiAgICAgICAgIGludCBtX251bVBhcmFtZXRlcnM7CiAKSW5kZXg6IFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ieXRlY29kZS9TdHJ1Y3R1cmVTdHViQ2xlYXJpbmdXYXRjaHBvaW50LmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvU3RydWN0dXJlU3R1YkNs
ZWFyaW5nV2F0Y2hwb2ludC5jcHAJKHJldmlzaW9uIDApCisrKyBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvYnl0ZWNvZGUvU3RydWN0dXJlU3R1YkNsZWFyaW5nV2F0Y2hwb2ludC5jcHAJKHJldmlzaW9u
IDApCkBAIC0wLDAgKzEsODAgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIgQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisg
KiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAq
IElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxM
IEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFV
RU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VS
RU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEs
IE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4gCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlN0cnVjdHVyZVN0dWJD
bGVhcmluZ1dhdGNocG9pbnQuaCIKKworI2lmIEVOQUJMRShKSVQpCisKKyNpbmNsdWRlICJDb2Rl
QmxvY2suaCIKKyNpbmNsdWRlICJTdHJ1Y3R1cmVTdHViSW5mby5oIgorCituYW1lc3BhY2UgSlND
IHsKKworU3RydWN0dXJlU3R1YkNsZWFyaW5nV2F0Y2hwb2ludDo6flN0cnVjdHVyZVN0dWJDbGVh
cmluZ1dhdGNocG9pbnQoKSB7IH0KKworU3RydWN0dXJlU3R1YkNsZWFyaW5nV2F0Y2hwb2ludCog
U3RydWN0dXJlU3R1YkNsZWFyaW5nV2F0Y2hwb2ludDo6cHVzaCgKKyAgICBXYXRjaHBvaW50c09u
U3RydWN0dXJlU3R1YkluZm8mIGhvbGRlciwKKyAgICBPd25QdHI8U3RydWN0dXJlU3R1YkNsZWFy
aW5nV2F0Y2hwb2ludD4mIGhlYWQpCit7CisgICAgaGVhZCA9IGFkb3B0UHRyKG5ldyBTdHJ1Y3R1
cmVTdHViQ2xlYXJpbmdXYXRjaHBvaW50KGhvbGRlciwgaGVhZC5yZWxlYXNlKCkpKTsKKyAgICBy
ZXR1cm4gaGVhZC5nZXQoKTsKK30KKwordm9pZCBTdHJ1Y3R1cmVTdHViQ2xlYXJpbmdXYXRjaHBv
aW50OjpmaXJlSW50ZXJuYWwoKQoreworICAgIC8vIFRoaXMgd2lsbCBpbXBsaWNpdGx5IGNhdXNl
IG15IG93biBkZW1pc2U6IHN0dWIgcmVzZXQgcmVtb3ZlcyBhbGwgd2F0Y2hwb2ludHMuCisgICAg
Ly8gVGhhdCB3b3JrcywgYmVjYXVzZSBkZWxldGluZyBhIHdhdGNocG9pbnQgcmVtb3ZlcyBpdCBm
cm9tIHRoZSBzZXQncyBsaXN0LCBhbmQKKyAgICAvLyB0aGUgc2V0J3MgbGlzdCB0cmF2ZXJzYWwg
Zm9yIGZpcmluZyBpcyByb2J1c3QgYWdhaW5zdCB0aGUgc2V0IGNoYW5naW5nLgorICAgIG1faG9s
ZGVyLmNvZGVCbG9jaygpLT5yZXNldFN0dWIoKm1faG9sZGVyLnN0dWJJbmZvKCkpOworfQorCitX
YXRjaHBvaW50c09uU3RydWN0dXJlU3R1YkluZm86On5XYXRjaHBvaW50c09uU3RydWN0dXJlU3R1
YkluZm8oKQoreworfQorCitTdHJ1Y3R1cmVTdHViQ2xlYXJpbmdXYXRjaHBvaW50KiBXYXRjaHBv
aW50c09uU3RydWN0dXJlU3R1YkluZm86OmFkZFdhdGNocG9pbnQoKQoreworICAgIHJldHVybiBT
dHJ1Y3R1cmVTdHViQ2xlYXJpbmdXYXRjaHBvaW50OjpwdXNoKCp0aGlzLCBtX2hlYWQpOworfQor
CitTdHJ1Y3R1cmVTdHViQ2xlYXJpbmdXYXRjaHBvaW50KiBXYXRjaHBvaW50c09uU3RydWN0dXJl
U3R1YkluZm86OmVuc3VyZVJlZmVyZW5jZUFuZEFkZFdhdGNocG9pbnQoCisgICAgUmVmUHRyPFdh
dGNocG9pbnRzT25TdHJ1Y3R1cmVTdHViSW5mbz4mIGhvbGRlclJlZiwgQ29kZUJsb2NrKiBjb2Rl
QmxvY2ssCisgICAgU3RydWN0dXJlU3R1YkluZm8qIHN0dWJJbmZvKQoreworICAgIGlmICghaG9s
ZGVyUmVmKQorICAgICAgICBob2xkZXJSZWYgPSBhZG9wdFJlZihuZXcgV2F0Y2hwb2ludHNPblN0
cnVjdHVyZVN0dWJJbmZvKGNvZGVCbG9jaywgc3R1YkluZm8pKTsKKyAgICBlbHNlIHsKKyAgICAg
ICAgQVNTRVJUKGhvbGRlclJlZi0+bV9jb2RlQmxvY2sgPT0gY29kZUJsb2NrKTsKKyAgICAgICAg
QVNTRVJUKGhvbGRlclJlZi0+bV9zdHViSW5mbyA9PSBzdHViSW5mbyk7CisgICAgfQorICAgIAor
ICAgIHJldHVybiBob2xkZXJSZWYtPmFkZFdhdGNocG9pbnQoKTsKK30KKworfSAvLyBuYW1lc3Bh
Y2UgSlNDCisKKyNlbmRpZiAvLyBFTkFCTEUoSklUKQorCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvYnl0ZWNvZGUvU3RydWN0dXJlU3R1YkNsZWFyaW5nV2F0Y2hwb2ludC5oCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9TdHJ1Y3R1cmVTdHViQ2xlYXJp
bmdXYXRjaHBvaW50LmgJKHJldmlzaW9uIDApCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0
ZWNvZGUvU3RydWN0dXJlU3R1YkNsZWFyaW5nV2F0Y2hwb2ludC5oCShyZXZpc2lvbiAwKQpAQCAt
MCwwICsxLDExMCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMiBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBt
ZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBp
biB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElF
RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUg
SU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwg
REFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBP
RiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAq
IFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
IEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAq
LworCisjaWZuZGVmIFN0cnVjdHVyZVN0dWJDbGVhcmluZ1dhdGNocG9pbnRfaAorI2RlZmluZSBT
dHJ1Y3R1cmVTdHViQ2xlYXJpbmdXYXRjaHBvaW50X2gKKworI2luY2x1ZGUgIldhdGNocG9pbnQu
aCIKKyNpbmNsdWRlIDx3dGYvUGxhdGZvcm0uaD4KKworI2lmIEVOQUJMRShKSVQpCisKKyNpbmNs
dWRlIDx3dGYvRmFzdEFsbG9jQmFzZS5oPgorI2luY2x1ZGUgPHd0Zi9Ob25jb3B5YWJsZS5oPgor
I2luY2x1ZGUgPHd0Zi9Pd25QdHIuaD4KKyNpbmNsdWRlIDx3dGYvUGFzc093blB0ci5oPgorI2lu
Y2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CisjaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgorCituYW1l
c3BhY2UgSlNDIHsKKworY2xhc3MgQ29kZUJsb2NrOworY2xhc3MgV2F0Y2hwb2ludHNPblN0cnVj
dHVyZVN0dWJJbmZvOworc3RydWN0IFN0cnVjdHVyZVN0dWJJbmZvOworCitjbGFzcyBTdHJ1Y3R1
cmVTdHViQ2xlYXJpbmdXYXRjaHBvaW50IDogcHVibGljIFdhdGNocG9pbnQgeworICAgIFdURl9N
QUtFX05PTkNPUFlBQkxFKFN0cnVjdHVyZVN0dWJDbGVhcmluZ1dhdGNocG9pbnQpOworICAgIFdU
Rl9NQUtFX0ZBU1RfQUxMT0NBVEVEOworcHVibGljOgorICAgIFN0cnVjdHVyZVN0dWJDbGVhcmlu
Z1dhdGNocG9pbnQoCisgICAgICAgIFdhdGNocG9pbnRzT25TdHJ1Y3R1cmVTdHViSW5mbyYgaG9s
ZGVyKQorICAgICAgICA6IG1faG9sZGVyKGhvbGRlcikKKyAgICB7CisgICAgfQorICAgIAorICAg
IFN0cnVjdHVyZVN0dWJDbGVhcmluZ1dhdGNocG9pbnQoCisgICAgICAgIFdhdGNocG9pbnRzT25T
dHJ1Y3R1cmVTdHViSW5mbyYgaG9sZGVyLAorICAgICAgICBQYXNzT3duUHRyPFN0cnVjdHVyZVN0
dWJDbGVhcmluZ1dhdGNocG9pbnQ+IG5leHQpCisgICAgICAgIDogbV9ob2xkZXIoaG9sZGVyKQor
ICAgICAgICAsIG1fbmV4dChuZXh0KQorICAgIHsKKyAgICB9CisgICAgCisgICAgdmlydHVhbCB+
U3RydWN0dXJlU3R1YkNsZWFyaW5nV2F0Y2hwb2ludCgpOworICAgIAorICAgIHN0YXRpYyBTdHJ1
Y3R1cmVTdHViQ2xlYXJpbmdXYXRjaHBvaW50KiBwdXNoKAorICAgICAgICBXYXRjaHBvaW50c09u
U3RydWN0dXJlU3R1YkluZm8mIGhvbGRlciwKKyAgICAgICAgT3duUHRyPFN0cnVjdHVyZVN0dWJD
bGVhcmluZ1dhdGNocG9pbnQ+JiBoZWFkKTsKKworcHJvdGVjdGVkOgorICAgIHZvaWQgZmlyZUlu
dGVybmFsKCk7CisKK3ByaXZhdGU6CisgICAgV2F0Y2hwb2ludHNPblN0cnVjdHVyZVN0dWJJbmZv
JiBtX2hvbGRlcjsKKyAgICBPd25QdHI8U3RydWN0dXJlU3R1YkNsZWFyaW5nV2F0Y2hwb2ludD4g
bV9uZXh0OworfTsKKworY2xhc3MgV2F0Y2hwb2ludHNPblN0cnVjdHVyZVN0dWJJbmZvIDogcHVi
bGljIFJlZkNvdW50ZWQ8V2F0Y2hwb2ludHNPblN0cnVjdHVyZVN0dWJJbmZvPiB7CitwdWJsaWM6
CisgICAgV2F0Y2hwb2ludHNPblN0cnVjdHVyZVN0dWJJbmZvKENvZGVCbG9jayogY29kZUJsb2Nr
LCBTdHJ1Y3R1cmVTdHViSW5mbyogc3R1YkluZm8pCisgICAgICAgIDogbV9jb2RlQmxvY2soY29k
ZUJsb2NrKQorICAgICAgICAsIG1fc3R1YkluZm8oc3R1YkluZm8pCisgICAgeworICAgIH0KKyAg
ICAKKyAgICB+V2F0Y2hwb2ludHNPblN0cnVjdHVyZVN0dWJJbmZvKCk7CisgICAgCisgICAgU3Ry
dWN0dXJlU3R1YkNsZWFyaW5nV2F0Y2hwb2ludCogYWRkV2F0Y2hwb2ludCgpOworICAgIAorICAg
IHN0YXRpYyBTdHJ1Y3R1cmVTdHViQ2xlYXJpbmdXYXRjaHBvaW50KiBlbnN1cmVSZWZlcmVuY2VB
bmRBZGRXYXRjaHBvaW50KAorICAgICAgICBSZWZQdHI8V2F0Y2hwb2ludHNPblN0cnVjdHVyZVN0
dWJJbmZvPiYgaG9sZGVyUmVmLAorICAgICAgICBDb2RlQmxvY2sqIGNvZGVCbG9jaywKKyAgICAg
ICAgU3RydWN0dXJlU3R1YkluZm8qIHN0dWJJbmZvKTsKKyAgICAKKyAgICBDb2RlQmxvY2sqIGNv
ZGVCbG9jaygpIGNvbnN0IHsgcmV0dXJuIG1fY29kZUJsb2NrOyB9CisgICAgU3RydWN0dXJlU3R1
YkluZm8qIHN0dWJJbmZvKCkgY29uc3QgeyByZXR1cm4gbV9zdHViSW5mbzsgfQorICAgIAorcHJp
dmF0ZToKKyAgICBDb2RlQmxvY2sqIG1fY29kZUJsb2NrOworICAgIFN0cnVjdHVyZVN0dWJJbmZv
KiBtX3N0dWJJbmZvOworICAgIE93blB0cjxTdHJ1Y3R1cmVTdHViQ2xlYXJpbmdXYXRjaHBvaW50
PiBtX2hlYWQ7Cit9OworCit9IC8vIG5hbWVzcGFjZSBKU0MKKworI2VuZGlmIC8vIEVOQUJMRShK
SVQpCisKKyNlbmRpZiAvLyBTdHJ1Y3R1cmVTdHViQ2xlYXJpbmdXYXRjaHBvaW50X2gKKwpJbmRl
eDogU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL1N0cnVjdHVyZVN0dWJJbmZvLmgKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL1N0cnVjdHVyZVN0dWJJ
bmZvLmgJKHJldmlzaW9uIDEyMjI5NikKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29k
ZS9TdHJ1Y3R1cmVTdHViSW5mby5oCSh3b3JraW5nIGNvcHkpCkBAIC0zNiw2ICszNiw4IEBACiAj
aW5jbHVkZSAiTWFjcm9Bc3NlbWJsZXIuaCIKICNpbmNsdWRlICJPcGNvZGUuaCIKICNpbmNsdWRl
ICJTdHJ1Y3R1cmUuaCIKKyNpbmNsdWRlICJTdHJ1Y3R1cmVTdHViQ2xlYXJpbmdXYXRjaHBvaW50
LmgiCisjaW5jbHVkZSA8d3RmL093blB0ci5oPgogCiBuYW1lc3BhY2UgSlNDIHsKIApAQCAtMTcw
LDYgKzE3Miw3IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICAgICAgZGVyZWYoKTsKICAgICAg
ICAgICAgIGFjY2Vzc1R5cGUgPSBhY2Nlc3NfdW5zZXQ7CiAgICAgICAgICAgICBzdHViUm91dGlu
ZS5jbGVhcigpOworICAgICAgICAgICAgd2F0Y2hwb2ludHMuY2xlYXIoKTsKICAgICAgICAgfQog
CiAgICAgICAgIHZvaWQgZGVyZWYoKTsKQEAgLTE4Niw2ICsxODksMTIgQEAgbmFtZXNwYWNlIEpT
QyB7CiAgICAgICAgICAgICBzZWVuID0gdHJ1ZTsKICAgICAgICAgfQogICAgICAgICAKKyAgICAg
ICAgU3RydWN0dXJlU3R1YkNsZWFyaW5nV2F0Y2hwb2ludCogYWRkV2F0Y2hwb2ludChDb2RlQmxv
Y2sqIGNvZGVCbG9jaykKKyAgICAgICAgeworICAgICAgICAgICAgcmV0dXJuIFdhdGNocG9pbnRz
T25TdHJ1Y3R1cmVTdHViSW5mbzo6ZW5zdXJlUmVmZXJlbmNlQW5kQWRkV2F0Y2hwb2ludCgKKyAg
ICAgICAgICAgICAgICB3YXRjaHBvaW50cywgY29kZUJsb2NrLCB0aGlzKTsKKyAgICAgICAgfQor
ICAgICAgICAKICAgICAgICAgdW5zaWduZWQgYnl0ZWNvZGVJbmRleDsKIAogICAgICAgICBpbnQ4
X3QgYWNjZXNzVHlwZTsKQEAgLTI5MCw2ICsyOTksNyBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAg
ICAgUmVmUHRyPEpJVFN0dWJSb3V0aW5lPiBzdHViUm91dGluZTsKICAgICAgICAgQ29kZUxvY2F0
aW9uQ2FsbCBjYWxsUmV0dXJuTG9jYXRpb247CiAgICAgICAgIENvZGVMb2NhdGlvbkxhYmVsIGhv
dFBhdGhCZWdpbjsKKyAgICAgICAgUmVmUHRyPFdhdGNocG9pbnRzT25TdHJ1Y3R1cmVTdHViSW5m
bz4gd2F0Y2hwb2ludHM7CiAgICAgfTsKIAogICAgIGlubGluZSB2b2lkKiBnZXRTdHJ1Y3R1cmVT
dHViSW5mb1JldHVybkxvY2F0aW9uKFN0cnVjdHVyZVN0dWJJbmZvKiBzdHJ1Y3R1cmVTdHViSW5m
bykKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHUmVwYXRjaC5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdSZXBhdGNoLmNwcAkocmV2aXNp
b24gMTIyMjk2KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdSZXBhdGNoLmNwcAko
d29ya2luZyBjb3B5KQpAQCAtNzAsNiArNzAsNDggQEAgc3RhdGljIHZvaWQgZGZnUmVwYXRjaEJ5
SWRTZWxmQWNjZXNzKENvZAogI2VuZGlmCiB9CiAKK3N0YXRpYyB2b2lkIGFkZFN0cnVjdHVyZVRy
YW5zaXRpb25DaGVjaygKKyAgICBKU0NlbGwqIG9iamVjdCwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUs
IENvZGVCbG9jayogY29kZUJsb2NrLCBTdHJ1Y3R1cmVTdHViSW5mbyYgc3R1YkluZm8sCisgICAg
TWFjcm9Bc3NlbWJsZXImIGppdCwgTWFjcm9Bc3NlbWJsZXI6Okp1bXBMaXN0JiBmYWlsdXJlQ2Fz
ZXMsIEdQUlJlZyBzY3JhdGNoR1BSKQoreworICAgIGlmIChvYmplY3QtPnN0cnVjdHVyZSgpID09
IHN0cnVjdHVyZSAmJiBzdHJ1Y3R1cmUtPnRyYW5zaXRpb25XYXRjaHBvaW50U2V0SXNTdGlsbFZh
bGlkKCkpIHsKKyAgICAgICAgc3RydWN0dXJlLT5hZGRUcmFuc2l0aW9uV2F0Y2hwb2ludChzdHVi
SW5mby5hZGRXYXRjaHBvaW50KGNvZGVCbG9jaykpOworI2lmIERGR19FTkFCTEUoSklUX0FTU0VS
VCkKKyAgICAgICAgLy8gSWYgd2UgZXhlY3V0ZSB0aGlzIGNvZGUsIHRoZSBvYmplY3QgbXVzdCBo
YXZlIHRoZSBzdHJ1Y3R1cmUgd2UgZXhwZWN0LiBBc3NlcnQKKyAgICAgICAgLy8gdGhpcyBpbiBk
ZWJ1ZyBtb2Rlcy4KKyAgICAgICAgaml0Lm1vdmUoTWFjcm9Bc3NlbWJsZXI6OlRydXN0ZWRJbW1Q
dHIob2JqZWN0KSwgc2NyYXRjaEdQUik7CisgICAgICAgIE1hY3JvQXNzZW1ibGVyOjpKdW1wIG9r
ID0gaml0LmJyYW5jaFB0cigKKyAgICAgICAgICAgIE1hY3JvQXNzZW1ibGVyOjpFcXVhbCwKKyAg
ICAgICAgICAgIE1hY3JvQXNzZW1ibGVyOjpBZGRyZXNzKHNjcmF0Y2hHUFIsIEpTQ2VsbDo6c3Ry
dWN0dXJlT2Zmc2V0KCkpLAorICAgICAgICAgICAgTWFjcm9Bc3NlbWJsZXI6OlRydXN0ZWRJbW1Q
dHIoc3RydWN0dXJlKSk7CisgICAgICAgIGppdC5icmVha3BvaW50KCk7CisgICAgICAgIG9rLmxp
bmsoJmppdCk7CisjZW5kaWYKKyAgICAgICAgcmV0dXJuOworICAgIH0KKyAgICAKKyAgICBqaXQu
bW92ZShNYWNyb0Fzc2VtYmxlcjo6VHJ1c3RlZEltbVB0cihvYmplY3QpLCBzY3JhdGNoR1BSKTsK
KyAgICBmYWlsdXJlQ2FzZXMuYXBwZW5kKAorICAgICAgICBqaXQuYnJhbmNoUHRyKAorICAgICAg
ICAgICAgTWFjcm9Bc3NlbWJsZXI6Ok5vdEVxdWFsLAorICAgICAgICAgICAgTWFjcm9Bc3NlbWJs
ZXI6OkFkZHJlc3Moc2NyYXRjaEdQUiwgSlNDZWxsOjpzdHJ1Y3R1cmVPZmZzZXQoKSksCisgICAg
ICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6VHJ1c3RlZEltbVB0cihzdHJ1Y3R1cmUpKSk7Cit9CisK
K3N0YXRpYyB2b2lkIGFkZFN0cnVjdHVyZVRyYW5zaXRpb25DaGVjaygKKyAgICBKU1ZhbHVlIHBy
b3RvdHlwZSwgQ29kZUJsb2NrKiBjb2RlQmxvY2ssIFN0cnVjdHVyZVN0dWJJbmZvJiBzdHViSW5m
bywKKyAgICBNYWNyb0Fzc2VtYmxlciYgaml0LCBNYWNyb0Fzc2VtYmxlcjo6SnVtcExpc3QmIGZh
aWx1cmVDYXNlcywgR1BSUmVnIHNjcmF0Y2hHUFIpCit7CisgICAgaWYgKHByb3RvdHlwZS5pc051
bGwoKSkKKyAgICAgICAgcmV0dXJuOworICAgIAorICAgIEFTU0VSVChwcm90b3R5cGUuaXNDZWxs
KCkpOworICAgIAorICAgIGFkZFN0cnVjdHVyZVRyYW5zaXRpb25DaGVjaygKKyAgICAgICAgcHJv
dG90eXBlLmFzQ2VsbCgpLCBwcm90b3R5cGUuYXNDZWxsKCktPnN0cnVjdHVyZSgpLCBjb2RlQmxv
Y2ssIHN0dWJJbmZvLCBqaXQsCisgICAgICAgIGZhaWx1cmVDYXNlcywgc2NyYXRjaEdQUik7Cit9
CisKIHN0YXRpYyB2b2lkIGVtaXRSZXN0b3JlU2NyYXRjaChNYWNyb0Fzc2VtYmxlciYgc3R1Ykpp
dCwgYm9vbCBuZWVkVG9SZXN0b3JlU2NyYXRjaCwgR1BSUmVnIHNjcmF0Y2hHUFIsIE1hY3JvQXNz
ZW1ibGVyOjpKdW1wJiBzdWNjZXNzLCBNYWNyb0Fzc2VtYmxlcjo6SnVtcCYgZmFpbCwgTWFjcm9B
c3NlbWJsZXI6Okp1bXBMaXN0IGZhaWx1cmVDYXNlcykKIHsKICAgICBpZiAobmVlZFRvUmVzdG9y
ZVNjcmF0Y2gpIHsKQEAgLTEzNiw4ICsxNzgsOSBAQCBzdGF0aWMgdm9pZCBnZW5lcmF0ZVByb3Rv
Q2hhaW5BY2Nlc3NTdHViCiAgICAgSlNPYmplY3QqIHByb3RvT2JqZWN0ID0gMDsKICAgICBmb3Ig
KHVuc2lnbmVkIGkgPSAwOyBpIDwgY291bnQ7ICsraSwgKytpdCkgewogICAgICAgICBwcm90b09i
amVjdCA9IGFzT2JqZWN0KGN1cnJTdHJ1Y3R1cmUtPnByb3RvdHlwZUZvckxvb2t1cChleGVjKSk7
Ci0gICAgICAgIHN0dWJKaXQubW92ZShNYWNyb0Fzc2VtYmxlcjo6VHJ1c3RlZEltbVB0cihwcm90
b09iamVjdCksIHNjcmF0Y2hHUFIpOwotICAgICAgICBmYWlsdXJlQ2FzZXMuYXBwZW5kKHN0dWJK
aXQuYnJhbmNoUHRyKE1hY3JvQXNzZW1ibGVyOjpOb3RFcXVhbCwgTWFjcm9Bc3NlbWJsZXI6OkFk
ZHJlc3Moc2NyYXRjaEdQUiwgSlNDZWxsOjpzdHJ1Y3R1cmVPZmZzZXQoKSksIE1hY3JvQXNzZW1i
bGVyOjpUcnVzdGVkSW1tUHRyKHByb3RvT2JqZWN0LT5zdHJ1Y3R1cmUoKSkpKTsKKyAgICAgICAg
YWRkU3RydWN0dXJlVHJhbnNpdGlvbkNoZWNrKAorICAgICAgICAgICAgcHJvdG9PYmplY3QsIHBy
b3RvT2JqZWN0LT5zdHJ1Y3R1cmUoKSwgZXhlYy0+Y29kZUJsb2NrKCksIHN0dWJJbmZvLCBzdHVi
Sml0LAorICAgICAgICAgICAgZmFpbHVyZUNhc2VzLCBzY3JhdGNoR1BSKTsKICAgICAgICAgY3Vy
clN0cnVjdHVyZSA9IGl0LT5nZXQoKTsKICAgICB9CiAgICAgCkBAIC01NjgsMTcgKzYxMSw2IEBA
IHN0YXRpYyBWX0RGR09wZXJhdGlvbl9FSkNJIGFwcHJvcHJpYXRlTGkKICAgICByZXR1cm4gb3Bl
cmF0aW9uUHV0QnlJZE5vblN0cmljdEJ1aWxkTGlzdDsKIH0KIAotc3RhdGljIHZvaWQgdGVzdFBy
b3RvdHlwZShNYWNyb0Fzc2VtYmxlciAmc3R1YkppdCwgR1BSUmVnIHNjcmF0Y2hHUFIsIEpTVmFs
dWUgcHJvdG90eXBlLCBNYWNyb0Fzc2VtYmxlcjo6SnVtcExpc3QmIGZhaWx1cmVDYXNlcykKLXsK
LSAgICBpZiAocHJvdG90eXBlLmlzTnVsbCgpKQotICAgICAgICByZXR1cm47Ci0gICAgCi0gICAg
QVNTRVJUKHByb3RvdHlwZS5pc0NlbGwoKSk7Ci0gICAgCi0gICAgc3R1YkppdC5tb3ZlKE1hY3Jv
QXNzZW1ibGVyOjpUcnVzdGVkSW1tUHRyKHByb3RvdHlwZS5hc0NlbGwoKSksIHNjcmF0Y2hHUFIp
OwotICAgIGZhaWx1cmVDYXNlcy5hcHBlbmQoc3R1YkppdC5icmFuY2hQdHIoTWFjcm9Bc3NlbWJs
ZXI6Ok5vdEVxdWFsLCBNYWNyb0Fzc2VtYmxlcjo6QWRkcmVzcyhzY3JhdGNoR1BSLCBKU0NlbGw6
OnN0cnVjdHVyZU9mZnNldCgpKSwgTWFjcm9Bc3NlbWJsZXI6OlRydXN0ZWRJbW1QdHIocHJvdG90
eXBlLmFzQ2VsbCgpLT5zdHJ1Y3R1cmUoKSkpKTsKLX0KLQogc3RhdGljIHZvaWQgZW1pdFB1dFJl
cGxhY2VTdHViKAogICAgIEV4ZWNTdGF0ZSogZXhlYywKICAgICBKU1ZhbHVlLApAQCAtNzA3LDEy
ICs3MzksMTcgQEAgc3RhdGljIHZvaWQgZW1pdFB1dFRyYW5zaXRpb25TdHViKAogICAgIEFTU0VS
VChvbGRTdHJ1Y3R1cmUtPnRyYW5zaXRpb25XYXRjaHBvaW50U2V0SGFzQmVlbkludmFsaWRhdGVk
KCkpOwogICAgIAogICAgIGZhaWx1cmVDYXNlcy5hcHBlbmQoc3R1YkppdC5icmFuY2hQdHIoTWFj
cm9Bc3NlbWJsZXI6Ok5vdEVxdWFsLCBNYWNyb0Fzc2VtYmxlcjo6QWRkcmVzcyhiYXNlR1BSLCBK
U0NlbGw6OnN0cnVjdHVyZU9mZnNldCgpKSwgTWFjcm9Bc3NlbWJsZXI6OlRydXN0ZWRJbW1QdHIo
b2xkU3RydWN0dXJlKSkpOwotICAgICAgICAgICAgCi0gICAgdGVzdFByb3RvdHlwZShzdHViSml0
LCBzY3JhdGNoR1BSLCBvbGRTdHJ1Y3R1cmUtPnN0b3JlZFByb3RvdHlwZSgpLCBmYWlsdXJlQ2Fz
ZXMpOworICAgIAorICAgIGFkZFN0cnVjdHVyZVRyYW5zaXRpb25DaGVjaygKKyAgICAgICAgb2xk
U3RydWN0dXJlLT5zdG9yZWRQcm90b3R5cGUoKSwgZXhlYy0+Y29kZUJsb2NrKCksIHN0dWJJbmZv
LCBzdHViSml0LCBmYWlsdXJlQ2FzZXMsCisgICAgICAgIHNjcmF0Y2hHUFIpOwogICAgICAgICAg
ICAgCiAgICAgaWYgKHB1dEtpbmQgPT0gTm90RGlyZWN0KSB7Ci0gICAgICAgIGZvciAoV3JpdGVC
YXJyaWVyPFN0cnVjdHVyZT4qIGl0ID0gcHJvdG90eXBlQ2hhaW4tPmhlYWQoKTsgKml0OyArK2l0
KQotICAgICAgICAgICAgdGVzdFByb3RvdHlwZShzdHViSml0LCBzY3JhdGNoR1BSLCAoKml0KS0+
c3RvcmVkUHJvdG90eXBlKCksIGZhaWx1cmVDYXNlcyk7CisgICAgICAgIGZvciAoV3JpdGVCYXJy
aWVyPFN0cnVjdHVyZT4qIGl0ID0gcHJvdG90eXBlQ2hhaW4tPmhlYWQoKTsgKml0OyArK2l0KSB7
CisgICAgICAgICAgICBhZGRTdHJ1Y3R1cmVUcmFuc2l0aW9uQ2hlY2soCisgICAgICAgICAgICAg
ICAgKCppdCktPnN0b3JlZFByb3RvdHlwZSgpLCBleGVjLT5jb2RlQmxvY2soKSwgc3R1YkluZm8s
IHN0dWJKaXQsIGZhaWx1cmVDYXNlcywKKyAgICAgICAgICAgICAgICBzY3JhdGNoR1BSKTsKKyAg
ICAgICAgfQogICAgIH0KIAogI2lmIEVOQUJMRShHR0MpIHx8IEVOQUJMRShXUklURV9CQVJSSUVS
X1BST0ZJTElORykKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSnVtcFJlcGxhY2Vt
ZW50V2F0Y2hwb2ludC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQv
SnVtcFJlcGxhY2VtZW50V2F0Y2hwb2ludC5oCShyZXZpc2lvbiAxMjIzODUpCisrKyBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvaml0L0p1bXBSZXBsYWNlbWVudFdhdGNocG9pbnQuaAkod29ya2luZyBj
b3B5KQpAQCAtMzAsNiArMzAsNyBAQAogI2RlZmluZSBKdW1wUmVwbGFjZW1lbnRXYXRjaHBvaW50
X2gKIAogI2luY2x1ZGUgIldhdGNocG9pbnQuaCIKKyNpbmNsdWRlIDx3dGYvUGxhdGZvcm0uaD4K
IAogI2lmIEVOQUJMRShKSVQpCiAK
</data>
<flag name="commit-queue"
          id="160669"
          type_id="3"
          status="-"
          setter="gyuyoung.kim"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>152073</attachid>
            <date>2012-07-12 15:08:56 -0700</date>
            <delta_ts>2012-07-12 15:32:55 -0700</delta_ts>
            <desc>the patch</desc>
            <filename>stubwatch_patch_2.diff</filename>
            <type>text/plain</type>
            <size>28254</size>
            <attacher name="Filip Pizlo">fpizlo</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTIyNTEzKQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDU0IEBA
CisyMDEyLTA3LTEyICBGaWxpcCBQaXpsbyAgPGZwaXpsb0BhcHBsZS5jb20+CisKKyAgICAgICAg
REZHIHByb3BlcnR5IGFjY2VzcyBzdHVicyBzaG91bGQgdXNlIHN0cnVjdHVyZSB0cmFuc2l0aW9u
IHdhdGNocG9pbnRzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD05MTEzNQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIFRoaXMgYWRkcyBhIFdhdGNocG9pbnQgc3ViY2xhc3MgdGhhdCB3aWxsIGNsZWFyIGEgc3Ry
dWN0dXJlIHN0dWIgKGkuZS4KKyAgICAgICAgYSBwcm9wZXJ0eSBhY2Nlc3Mgc3R1Yikgd2hlbiBm
aXJlZC4gVGhlIERGRyBzdHViIGdlbmVyYXRpb24gY29kZSBub3cKKyAgICAgICAgdXNlcyB0aGlz
IG9wdGltaXphdGlvbi4KKworICAgICAgICAqIENNYWtlTGlzdHMudHh0OgorICAgICAgICAqIEdO
VW1ha2VmaWxlLmxpc3QuYW06CisgICAgICAgICogSmF2YVNjcmlwdENvcmUudmNwcm9qL0phdmFT
Y3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnZjcHJvajoKKyAgICAgICAgKiBKYXZhU2NyaXB0Q29y
ZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIFRhcmdldC5wcmk6CisgICAg
ICAgICogYnl0ZWNvZGUvQ29kZUJsb2NrLmNwcDoKKyAgICAgICAgKEpTQyk6CisgICAgICAgIChK
U0M6OkNvZGVCbG9jazo6ZmluYWxpemVVbmNvbmRpdGlvbmFsbHkpOgorICAgICAgICAoSlNDOjpD
b2RlQmxvY2s6OnJlc2V0U3R1Yik6CisgICAgICAgIChKU0M6OkNvZGVCbG9jazo6cmVzZXRTdHVi
SW50ZXJuYWwpOgorICAgICAgICAqIGJ5dGVjb2RlL0NvZGVCbG9jay5oOgorICAgICAgICAoSlND
KToKKyAgICAgICAgKENvZGVCbG9jayk6CisgICAgICAgICogYnl0ZWNvZGUvU3RydWN0dXJlU3R1
YkNsZWFyaW5nV2F0Y2hwb2ludC5jcHA6IEFkZGVkLgorICAgICAgICAoSlNDKToKKyAgICAgICAg
KEpTQzo6U3RydWN0dXJlU3R1YkNsZWFyaW5nV2F0Y2hwb2ludDo6flN0cnVjdHVyZVN0dWJDbGVh
cmluZ1dhdGNocG9pbnQpOgorICAgICAgICAoSlNDOjpTdHJ1Y3R1cmVTdHViQ2xlYXJpbmdXYXRj
aHBvaW50OjpwdXNoKToKKyAgICAgICAgKEpTQzo6U3RydWN0dXJlU3R1YkNsZWFyaW5nV2F0Y2hw
b2ludDo6ZmlyZUludGVybmFsKToKKyAgICAgICAgKEpTQzo6V2F0Y2hwb2ludHNPblN0cnVjdHVy
ZVN0dWJJbmZvOjp+V2F0Y2hwb2ludHNPblN0cnVjdHVyZVN0dWJJbmZvKToKKyAgICAgICAgKEpT
Qzo6V2F0Y2hwb2ludHNPblN0cnVjdHVyZVN0dWJJbmZvOjphZGRXYXRjaHBvaW50KToKKyAgICAg
ICAgKEpTQzo6V2F0Y2hwb2ludHNPblN0cnVjdHVyZVN0dWJJbmZvOjplbnN1cmVSZWZlcmVuY2VB
bmRBZGRXYXRjaHBvaW50KToKKyAgICAgICAgKiBieXRlY29kZS9TdHJ1Y3R1cmVTdHViQ2xlYXJp
bmdXYXRjaHBvaW50Lmg6IEFkZGVkLgorICAgICAgICAoSlNDKToKKyAgICAgICAgKFN0cnVjdHVy
ZVN0dWJDbGVhcmluZ1dhdGNocG9pbnQpOgorICAgICAgICAoSlNDOjpTdHJ1Y3R1cmVTdHViQ2xl
YXJpbmdXYXRjaHBvaW50OjpTdHJ1Y3R1cmVTdHViQ2xlYXJpbmdXYXRjaHBvaW50KToKKyAgICAg
ICAgKFdhdGNocG9pbnRzT25TdHJ1Y3R1cmVTdHViSW5mbyk6CisgICAgICAgIChKU0M6OldhdGNo
cG9pbnRzT25TdHJ1Y3R1cmVTdHViSW5mbzo6V2F0Y2hwb2ludHNPblN0cnVjdHVyZVN0dWJJbmZv
KToKKyAgICAgICAgKEpTQzo6V2F0Y2hwb2ludHNPblN0cnVjdHVyZVN0dWJJbmZvOjpjb2RlQmxv
Y2spOgorICAgICAgICAoSlNDOjpXYXRjaHBvaW50c09uU3RydWN0dXJlU3R1YkluZm86OnN0dWJJ
bmZvKToKKyAgICAgICAgKiBieXRlY29kZS9TdHJ1Y3R1cmVTdHViSW5mby5oOgorICAgICAgICAo
SlNDOjpTdHJ1Y3R1cmVTdHViSW5mbzo6cmVzZXQpOgorICAgICAgICAoSlNDOjpTdHJ1Y3R1cmVT
dHViSW5mbzo6YWRkV2F0Y2hwb2ludCk6CisgICAgICAgIChTdHJ1Y3R1cmVTdHViSW5mbyk6Cisg
ICAgICAgICogZGZnL0RGR1JlcGF0Y2guY3BwOgorICAgICAgICAoSlNDOjpERkc6OmFkZFN0cnVj
dHVyZVRyYW5zaXRpb25DaGVjayk6CisgICAgICAgIChERkcpOgorICAgICAgICAoSlNDOjpERkc6
OmdlbmVyYXRlUHJvdG9DaGFpbkFjY2Vzc1N0dWIpOgorICAgICAgICAoSlNDOjpERkc6OmVtaXRQ
dXRUcmFuc2l0aW9uU3R1Yik6CisgICAgICAgICogaml0L0p1bXBSZXBsYWNlbWVudFdhdGNocG9p
bnQuaDoKKwogMjAxMi0wNy0xMiAgQWxsYW4gU2FuZGZlbGQgSmVuc2VuICA8YWxsYW4uamVuc2Vu
QG5va2lhLmNvbT4KIAogICAgICAgICBbUXRdIEltcGxlbWVudCBNZW1vcnlVc2FnZVN1cHBvcnQK
SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DTWFrZUxpc3RzLnR4dAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvQ01ha2VMaXN0cy50eHQJKHJldmlzaW9uIDEyMjUwNCkK
KysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DTWFrZUxpc3RzLnR4dAkod29ya2luZyBjb3B5KQpA
QCAtNTYsNiArNTYsNyBAQCBTRVQoSmF2YVNjcmlwdENvcmVfU09VUkNFUwogICAgIGJ5dGVjb2Rl
L1B1dEJ5SWRTdGF0dXMuY3BwCiAgICAgYnl0ZWNvZGUvUmVzb2x2ZUdsb2JhbFN0YXR1cy5jcHAK
ICAgICBieXRlY29kZS9TYW1wbGluZ1Rvb2wuY3BwCisgICAgYnl0ZWNvZGUvU3RydWN0dXJlU3R1
YkNsZWFyaW5nV2F0Y2hwb2ludC5jcHAKICAgICBieXRlY29kZS9TdHJ1Y3R1cmVTdHViSW5mby5j
cHAKICAgICBieXRlY29kZS9XYXRjaHBvaW50LmNwcAogCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvR05VbWFrZWZpbGUubGlzdC5hbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvR05VbWFrZWZpbGUubGlzdC5hbQkocmV2aXNpb24gMTIyNTA0KQorKysgU291cmNlL0ph
dmFTY3JpcHRDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0JKHdvcmtpbmcgY29weSkKQEAgLTEzNCw2
ICsxMzQsOCBAQCBqYXZhc2NyaXB0Y29yZV9zb3VyY2VzICs9IFwKIAlTb3VyY2UvSmF2YVNjcmlw
dENvcmUvYnl0ZWNvZGUvU3RydWN0dXJlU2V0LmggXAogCVNvdXJjZS9KYXZhU2NyaXB0Q29yZS9i
eXRlY29kZS9TdHJ1Y3R1cmVTdHViSW5mby5jcHAgXAogCVNvdXJjZS9KYXZhU2NyaXB0Q29yZS9i
eXRlY29kZS9TdHJ1Y3R1cmVTdHViSW5mby5oIFwKKwlTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0
ZWNvZGUvU3RydWN0dXJlU3R1YkNsZWFyaW5nV2F0Y2hwb2ludC5jcHAgXAorCVNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ieXRlY29kZS9TdHJ1Y3R1cmVTdHViQ2xlYXJpbmdXYXRjaHBvaW50LmggXAog
CVNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9WYWx1ZVByb2ZpbGUuaCBcCiAJU291cmNl
L0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL1ZhbHVlUmVjb3ZlcnkuaCBcCiAJU291cmNlL0phdmFT
Y3JpcHRDb3JlL2J5dGVjb2RlL1ZpcnR1YWxSZWdpc3Rlci5oIFwKSW5kZXg6IFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9UYXJnZXQucHJpCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9UYXJnZXQucHJpCShyZXZpc2lvbiAxMjI1MDQpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
VGFyZ2V0LnByaQkod29ya2luZyBjb3B5KQpAQCAtNjcsNiArNjcsNyBAQCBTT1VSQ0VTICs9IFwK
ICAgICBieXRlY29kZS9SZXNvbHZlR2xvYmFsU3RhdHVzLmNwcCBcCiAgICAgYnl0ZWNvZGUvU2Ft
cGxpbmdUb29sLmNwcCBcCiAgICAgYnl0ZWNvZGUvU3BlY3VsYXRlZFR5cGUuY3BwIFwKKyAgICBi
eXRlY29kZS9TdHJ1Y3R1cmVTdHViQ2xlYXJpbmdXYXRjaHBvaW50LmNwcCBcCiAgICAgYnl0ZWNv
ZGUvU3RydWN0dXJlU3R1YkluZm8uY3BwIFwKICAgICBieXRlY29kZS9XYXRjaHBvaW50LmNwcCBc
CiAgICAgYnl0ZWNvbXBpbGVyL0J5dGVjb2RlR2VuZXJhdG9yLmNwcCBcCkluZGV4OiBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUudmNwcm9qL0phdmFTY3JpcHRDb3JlL0phdmFT
Y3JpcHRDb3JlLnZjcHJvago9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2
YVNjcmlwdENvcmUudmNwcm9qL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnZjcHJvagko
cmV2aXNpb24gMTIyNTA0KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3Jl
LnZjcHJvai9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS52Y3Byb2oJKHdvcmtpbmcgY29w
eSkKQEAgLTE2ODIsNiArMTY4MiwxNCBAQAogCQkJCT4KIAkJCTwvRmlsZT4KIAkJCTxGaWxlCisJ
CQkJUmVsYXRpdmVQYXRoPSIuLlwuLlxieXRlY29kZVxTdHJ1Y3R1cmVTdHViQ2xlYXJpbmdXYXRj
aHBvaW50LmNwcCIKKwkJCQk+CisJCQk8L0ZpbGU+CisJCQk8RmlsZQorCQkJCVJlbGF0aXZlUGF0
aD0iLi5cLi5cYnl0ZWNvZGVcU3RydWN0dXJlU3R1YkNsZWFyaW5nV2F0Y2hwb2ludC5oIgorCQkJ
CT4KKwkJCTwvRmlsZT4KKwkJCTxGaWxlCiAJCQkJUmVsYXRpdmVQYXRoPSIuLlwuLlxieXRlY29k
ZVxTdHJ1Y3R1cmVTdHViSW5mby5jcHAiCiAJCQkJPgogCQkJPC9GaWxlPgpJbmRleDogU291cmNl
L0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2oJKHJldmlzaW9uIDEyMjUwNCkKKysrIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9KYXZhU2NyaXB0Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCSh3b3JraW5n
IGNvcHkpCkBAIC0xNDgsNiArMTQ4LDggQEAKIAkJMEY3NjZEMzExNUFBODExMjAwOEYzNjNFIC8q
IEpJVFN0dWJSb3V0aW5lLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSAwRjc2NkQxQzE1QTUwMjhEMDA4RjM2M0UgLyogSklUU3R1YlJvdXRpbmUuaCAqLzsg
c2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkwRjc2NkQzNDE1
QUUyNTM4MDA4RjM2M0UgLyogSnVtcFJlcGxhY2VtZW50V2F0Y2hwb2ludC5jcHAgaW4gU291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjc2NkQzMjE1QUUyNTM1MDA4
RjM2M0UgLyogSnVtcFJlcGxhY2VtZW50V2F0Y2hwb2ludC5jcHAgKi87IH07CiAJCTBGNzY2RDM1
MTVBRTI1M0IwMDhGMzYzRSAvKiBKdW1wUmVwbGFjZW1lbnRXYXRjaHBvaW50LmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjc2NkQzMzE1QUUyNTM1MDA4
RjM2M0UgLyogSnVtcFJlcGxhY2VtZW50V2F0Y2hwb2ludC5oICovOyBzZXR0aW5ncyA9IHtBVFRS
SUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCTBGNzY2RDM4MTVBRTRBMUMwMDhGMzYzRSAv
KiBTdHJ1Y3R1cmVTdHViQ2xlYXJpbmdXYXRjaHBvaW50LmNwcCBpbiBTb3VyY2VzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGNzY2RDM2MTVBRTRBMUEwMDhGMzYzRSAvKiBT
dHJ1Y3R1cmVTdHViQ2xlYXJpbmdXYXRjaHBvaW50LmNwcCAqLzsgfTsKKwkJMEY3NjZEMzkxNUFF
NEExRjAwOEYzNjNFIC8qIFN0cnVjdHVyZVN0dWJDbGVhcmluZ1dhdGNocG9pbnQuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGNzY2RDM3MTVBRTRBMUEw
MDhGMzYzRSAvKiBTdHJ1Y3R1cmVTdHViQ2xlYXJpbmdXYXRjaHBvaW50LmggKi87IHNldHRpbmdz
ID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJMEY3NzAwOTIxNDAyRkYzQzAw
NzhFQjM5IC8qIFNhbXBsaW5nQ291bnRlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSAwRjc3MDA5MTE0MDJGRjI4MDA3OEVCMzkgLyogU2FtcGxpbmdD
b3VudGVyLmNwcCAqLzsgfTsKIAkJMEY3QjI5NEExNEMzQ0QyOTAwN0MzREIxIC8qIERGR0NDYWxs
SGVscGVycy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
MEY3QjI5NDgxNEMzQ0QyMzAwN0MzREIxIC8qIERGR0NDYWxsSGVscGVycy5oICovOyBzZXR0aW5n
cyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTBGN0IyOTRCMTRDM0NEMkYw
MDdDM0RCMSAvKiBERkdDYXBhYmlsaXRpZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDBGRDgyRTFGMTQxNzJDMkYwMDE3OUM5NCAvKiBERkdDYXBhYmls
aXRpZXMuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwpA
QCAtODkxLDYgKzg5Myw4IEBACiAJCTBGNzY2RDJFMTVBOERDREQwMDhGMzYzRSAvKiBHQ0F3YXJl
SklUU3R1YlJvdXRpbmUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gR0NBd2Fy
ZUpJVFN0dWJSb3V0aW5lLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTBGNzY2RDMy
MTVBRTI1MzUwMDhGMzYzRSAvKiBKdW1wUmVwbGFjZW1lbnRXYXRjaHBvaW50LmNwcCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEp1bXBSZXBsYWNlbWVudFdhdGNocG9pbnQu
Y3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwRjc2NkQzMzE1QUUyNTM1MDA4RjM2
M0UgLyogSnVtcFJlcGxhY2VtZW50V2F0Y2hwb2ludC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBKdW1wUmVwbGFjZW1lbnRXYXRjaHBvaW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CisJCTBGNzY2RDM2MTVBRTRBMUEwMDhGMzYzRSAvKiBTdHJ1Y3R1cmVTdHViQ2xl
YXJpbmdXYXRjaHBvaW50LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9
IFN0cnVjdHVyZVN0dWJDbGVhcmluZ1dhdGNocG9pbnQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OworCQkwRjc2NkQzNzE1QUU0QTFBMDA4RjM2M0UgLyogU3RydWN0dXJlU3R1YkNsZWFy
aW5nV2F0Y2hwb2ludC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTdHJ1Y3R1
cmVTdHViQ2xlYXJpbmdXYXRjaHBvaW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CTBGNzcwMDhFMTQwMkZERDYwMDc4RUIzOSAvKiBTYW1wbGluZ0NvdW50ZXIuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU2FtcGxpbmdDb3VudGVyLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTBGNzcwMDkxMTQwMkZGMjgwMDc4RUIzOSAvKiBTYW1wbGluZ0NvdW50
ZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gU2FtcGxpbmdDb3Vu
dGVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMEY3QjI5NDgxNEMzQ0QyMzAw
N0MzREIxIC8qIERGR0NDYWxsSGVscGVycy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5h
bWUgPSBERkdDQ2FsbEhlbHBlcnMuaDsgcGF0aCA9IGRmZy9ERkdDQ2FsbEhlbHBlcnMuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTI0MzksNiArMjQ0Myw4IEBACiAJCQkJMEZEODJF
NEYxNDFEQUVBMTAwMTc5Qzk0IC8qIFNwZWN1bGF0ZWRUeXBlLmggKi8sCiAJCQkJMTQyOUQ4ODMw
RUQyMUMzRDAwQjg5NjE5IC8qIFNhbXBsaW5nVG9vbC5jcHAgKi8sCiAJCQkJMTQyOUQ4ODQwRUQy
MUMzRDAwQjg5NjE5IC8qIFNhbXBsaW5nVG9vbC5oICovLAorCQkJCTBGNzY2RDM2MTVBRTRBMUEw
MDhGMzYzRSAvKiBTdHJ1Y3R1cmVTdHViQ2xlYXJpbmdXYXRjaHBvaW50LmNwcCAqLywKKwkJCQkw
Rjc2NkQzNzE1QUU0QTFBMDA4RjM2M0UgLyogU3RydWN0dXJlU3R1YkNsZWFyaW5nV2F0Y2hwb2lu
dC5oICovLAogCQkJCUJDQ0YwRDBCMEVGMEI4QTUwMDQxM0M4RiAvKiBTdHJ1Y3R1cmVTdHViSW5m
by5jcHAgKi8sCiAJCQkJQkNDRjBEMDcwRUYwQUFCOTAwNDEzQzhGIC8qIFN0cnVjdHVyZVN0dWJJ
bmZvLmggKi8sCiAJCQkJMEY5NjNCMzYxM0ZDNkZERTAwMDJEOUIyIC8qIFZhbHVlUHJvZmlsZS5o
ICovLApAQCAtMjg0Myw2ICsyODQ5LDcgQEAKIAkJCQkwRjc2NkQzMDE1QThEQ0UyMDA4RjM2M0Ug
LyogR0NBd2FyZUpJVFN0dWJSb3V0aW5lLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRjc2NkQzMTE1
QUE4MTEyMDA4RjM2M0UgLyogSklUU3R1YlJvdXRpbmUuaCBpbiBIZWFkZXJzICovLAogCQkJCTBG
NzY2RDM1MTVBRTI1M0IwMDhGMzYzRSAvKiBKdW1wUmVwbGFjZW1lbnRXYXRjaHBvaW50LmggaW4g
SGVhZGVycyAqLywKKwkJCQkwRjc2NkQzOTE1QUU0QTFGMDA4RjM2M0UgLyogU3RydWN0dXJlU3R1
YkNsZWFyaW5nV2F0Y2hwb2ludC5oIGluIEhlYWRlcnMgKi8sCiAJCQkpOwogCQkJcnVuT25seUZv
ckRlcGxveW1lbnRQb3N0cHJvY2Vzc2luZyA9IDA7CiAJCX07CkBAIC0zNDM5LDYgKzM0NDYsNyBA
QAogCQkJCTBGNzY2RDJCMTVBOENDMzgwMDhGMzYzRSAvKiBKSVRTdHViUm91dGluZVNldC5jcHAg
aW4gU291cmNlcyAqLywKIAkJCQkwRjc2NkQyRjE1QThEQ0UwMDA4RjM2M0UgLyogR0NBd2FyZUpJ
VFN0dWJSb3V0aW5lLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTBGNzY2RDM0MTVBRTI1MzgwMDhG
MzYzRSAvKiBKdW1wUmVwbGFjZW1lbnRXYXRjaHBvaW50LmNwcCBpbiBTb3VyY2VzICovLAorCQkJ
CTBGNzY2RDM4MTVBRTRBMUMwMDhGMzYzRSAvKiBTdHJ1Y3R1cmVTdHViQ2xlYXJpbmdXYXRjaHBv
aW50LmNwcCBpbiBTb3VyY2VzICovLAogCQkJKTsKIAkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9z
dHByb2Nlc3NpbmcgPSAwOwogCQl9OwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVj
b2RlL0NvZGVCbG9jay5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2J5
dGVjb2RlL0NvZGVCbG9jay5jcHAJKHJldmlzaW9uIDEyMjUwNCkKKysrIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ieXRlY29kZS9Db2RlQmxvY2suY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yMDI2LDE2
ICsyMDI2LDE2IEBAIHZvaWQgQ29kZUJsb2NrOjp2aXNpdFdlYWtSZWZlcmVuY2VzKFNsb3QKICAg
ICBwZXJmb3JtVHJhY2luZ0ZpeHBvaW50SXRlcmF0aW9uKHZpc2l0b3IpOwogfQogCi12b2lkIENv
ZGVCbG9jazo6ZmluYWxpemVVbmNvbmRpdGlvbmFsbHkoKQotewogI2lmIEVOQUJMRShKSVQpCiAj
aWYgRU5BQkxFKEpJVF9WRVJCT1NFX09TUikKLSAgICBzdGF0aWMgY29uc3QgYm9vbCB2ZXJib3Nl
VW5saW5raW5nID0gdHJ1ZTsKK3N0YXRpYyBjb25zdCBib29sIHZlcmJvc2VVbmxpbmtpbmcgPSB0
cnVlOwogI2Vsc2UKLSAgICBzdGF0aWMgY29uc3QgYm9vbCB2ZXJib3NlVW5saW5raW5nID0gZmFs
c2U7CitzdGF0aWMgY29uc3QgYm9vbCB2ZXJib3NlVW5saW5raW5nID0gZmFsc2U7CiAjZW5kaWYK
ICNlbmRpZiAvLyBFTkFCTEUoSklUKQogICAgIAordm9pZCBDb2RlQmxvY2s6OmZpbmFsaXplVW5j
b25kaXRpb25hbGx5KCkKK3sKICNpZiBFTkFCTEUoTExJTlQpCiAgICAgSW50ZXJwcmV0ZXIqIGlu
dGVycHJldGVyID0gbV9nbG9iYWxEYXRhLT5pbnRlcnByZXRlcjsKICAgICAvLyBpbnRlcnByZXRl
ci0+Y2xhc3NpY0VuYWJsZWQoKSByZXR1cm5zIHRydWUgaWYgdGhlIG9sZCBDKysgaW50ZXJwcmV0
ZXIgaXMgZW5hYmxlZC4gSWYgdGhhdCdzIGVuYWJsZWQKQEAgLTIxNDEsMjggKzIxNDEsMTAgQEAg
dm9pZCBDb2RlQmxvY2s6OmZpbmFsaXplVW5jb25kaXRpb25hbGx5KAogICAgICAgICBmb3IgKHNp
emVfdCBzaXplID0gbV9zdHJ1Y3R1cmVTdHViSW5mb3Muc2l6ZSgpLCBpID0gMDsgaSA8IHNpemU7
ICsraSkgewogICAgICAgICAgICAgU3RydWN0dXJlU3R1YkluZm8mIHN0dWJJbmZvID0gbV9zdHJ1
Y3R1cmVTdHViSW5mb3NbaV07CiAgICAgICAgICAgICAKLSAgICAgICAgICAgIEFjY2Vzc1R5cGUg
YWNjZXNzVHlwZSA9IHN0YXRpY19jYXN0PEFjY2Vzc1R5cGU+KHN0dWJJbmZvLmFjY2Vzc1R5cGUp
OwotICAgICAgICAgICAgCiAgICAgICAgICAgICBpZiAoc3R1YkluZm8udmlzaXRXZWFrUmVmZXJl
bmNlcygpKQogICAgICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICAgICAgCi0gICAgICAg
ICAgICBpZiAodmVyYm9zZVVubGlua2luZykKLSAgICAgICAgICAgICAgICBkYXRhTG9nKCJDbGVh
cmluZyBzdHJ1Y3R1cmUgY2FjaGUgKGtpbmQgJWQpIGluICVwLlxuIiwgc3R1YkluZm8uYWNjZXNz
VHlwZSwgdGhpcyk7Ci0gICAgICAgICAgICAKLSAgICAgICAgICAgIGlmIChpc0dldEJ5SWRBY2Nl
c3MoYWNjZXNzVHlwZSkpIHsKLSAgICAgICAgICAgICAgICBpZiAoZ2V0SklUQ29kZSgpLmppdFR5
cGUoKSA9PSBKSVRDb2RlOjpERkdKSVQpCi0gICAgICAgICAgICAgICAgICAgIERGRzo6ZGZnUmVz
ZXRHZXRCeUlEKHJlcGF0Y2hCdWZmZXIsIHN0dWJJbmZvKTsKLSAgICAgICAgICAgICAgICBlbHNl
Ci0gICAgICAgICAgICAgICAgICAgIEpJVDo6cmVzZXRQYXRjaEdldEJ5SWQocmVwYXRjaEJ1ZmZl
ciwgJnN0dWJJbmZvKTsKLSAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgQVNT
RVJUKGlzUHV0QnlJZEFjY2VzcyhhY2Nlc3NUeXBlKSk7Ci0gICAgICAgICAgICAgICAgaWYgKGdl
dEpJVENvZGUoKS5qaXRUeXBlKCkgPT0gSklUQ29kZTo6REZHSklUKQotICAgICAgICAgICAgICAg
ICAgICBERkc6OmRmZ1Jlc2V0UHV0QnlJRChyZXBhdGNoQnVmZmVyLCBzdHViSW5mbyk7Ci0gICAg
ICAgICAgICAgICAgZWxzZSAKLSAgICAgICAgICAgICAgICAgICAgSklUOjpyZXNldFBhdGNoUHV0
QnlJZChyZXBhdGNoQnVmZmVyLCAmc3R1YkluZm8pOwotICAgICAgICAgICAgfQotICAgICAgICAg
ICAgCi0gICAgICAgICAgICBzdHViSW5mby5yZXNldCgpOworICAgICAgICAgICAgcmVzZXRTdHVi
SW50ZXJuYWwocmVwYXRjaEJ1ZmZlciwgc3R1YkluZm8pOwogICAgICAgICB9CiAKICAgICAgICAg
Zm9yIChzaXplX3Qgc2l6ZSA9IG1fbWV0aG9kQ2FsbExpbmtJbmZvcy5zaXplKCksIGkgPSAwOyBp
IDwgc2l6ZTsgKytpKSB7CkBAIC0yMTk4LDYgKzIxODAsNDAgQEAgdm9pZCBDb2RlQmxvY2s6OmZp
bmFsaXplVW5jb25kaXRpb25hbGx5KAogI2VuZGlmCiB9CiAKKyNpZiBFTkFCTEUoSklUKQordm9p
ZCBDb2RlQmxvY2s6OnJlc2V0U3R1YihTdHJ1Y3R1cmVTdHViSW5mbyYgc3R1YkluZm8pCit7Cisg
ICAgaWYgKHN0dWJJbmZvLmFjY2Vzc1R5cGUgPT0gYWNjZXNzX3Vuc2V0KQorICAgICAgICByZXR1
cm47CisgICAgCisgICAgUmVwYXRjaEJ1ZmZlciByZXBhdGNoQnVmZmVyKHRoaXMpOworICAgIHJl
c2V0U3R1YkludGVybmFsKHJlcGF0Y2hCdWZmZXIsIHN0dWJJbmZvKTsKK30KKwordm9pZCBDb2Rl
QmxvY2s6OnJlc2V0U3R1YkludGVybmFsKFJlcGF0Y2hCdWZmZXImIHJlcGF0Y2hCdWZmZXIsIFN0
cnVjdHVyZVN0dWJJbmZvJiBzdHViSW5mbykKK3sKKyAgICBBY2Nlc3NUeXBlIGFjY2Vzc1R5cGUg
PSBzdGF0aWNfY2FzdDxBY2Nlc3NUeXBlPihzdHViSW5mby5hY2Nlc3NUeXBlKTsKKyAgICAKKyAg
ICBpZiAodmVyYm9zZVVubGlua2luZykKKyAgICAgICAgZGF0YUxvZygiQ2xlYXJpbmcgc3RydWN0
dXJlIGNhY2hlIChraW5kICVkKSBpbiAlcC5cbiIsIHN0dWJJbmZvLmFjY2Vzc1R5cGUsIHRoaXMp
OworICAgIAorICAgIGlmIChpc0dldEJ5SWRBY2Nlc3MoYWNjZXNzVHlwZSkpIHsKKyAgICAgICAg
aWYgKGdldEpJVENvZGUoKS5qaXRUeXBlKCkgPT0gSklUQ29kZTo6REZHSklUKQorICAgICAgICAg
ICAgREZHOjpkZmdSZXNldEdldEJ5SUQocmVwYXRjaEJ1ZmZlciwgc3R1YkluZm8pOworICAgICAg
ICBlbHNlCisgICAgICAgICAgICBKSVQ6OnJlc2V0UGF0Y2hHZXRCeUlkKHJlcGF0Y2hCdWZmZXIs
ICZzdHViSW5mbyk7CisgICAgfSBlbHNlIHsKKyAgICAgICAgQVNTRVJUKGlzUHV0QnlJZEFjY2Vz
cyhhY2Nlc3NUeXBlKSk7CisgICAgICAgIGlmIChnZXRKSVRDb2RlKCkuaml0VHlwZSgpID09IEpJ
VENvZGU6OkRGR0pJVCkKKyAgICAgICAgICAgIERGRzo6ZGZnUmVzZXRQdXRCeUlEKHJlcGF0Y2hC
dWZmZXIsIHN0dWJJbmZvKTsKKyAgICAgICAgZWxzZSAKKyAgICAgICAgICAgIEpJVDo6cmVzZXRQ
YXRjaFB1dEJ5SWQocmVwYXRjaEJ1ZmZlciwgJnN0dWJJbmZvKTsKKyAgICB9CisgICAgCisgICAg
c3R1YkluZm8ucmVzZXQoKTsKK30KKyNlbmRpZgorCiB2b2lkIENvZGVCbG9jazo6c3Ryb25nbHlW
aXNpdFN0cm9uZ1JlZmVyZW5jZXMoU2xvdFZpc2l0b3ImIHZpc2l0b3IpCiB7CiAgICAgdmlzaXRv
ci5hcHBlbmQoJm1fZ2xvYmFsT2JqZWN0KTsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9i
eXRlY29kZS9Db2RlQmxvY2suaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
Ynl0ZWNvZGUvQ29kZUJsb2NrLmgJKHJldmlzaW9uIDEyMjUwNCkKKysrIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ieXRlY29kZS9Db2RlQmxvY2suaAkod29ya2luZyBjb3B5KQpAQCAtMTA0LDYgKzEw
NCw3IEBAIG5hbWVzcGFjZSBKU0MgewogICAgIGNsYXNzIERGR0NvZGVCbG9ja3M7CiAgICAgY2xh
c3MgRXhlY1N0YXRlOwogICAgIGNsYXNzIExMSW50T2Zmc2V0c0V4dHJhY3RvcjsKKyAgICBjbGFz
cyBSZXBhdGNoQnVmZmVyOwogCiAgICAgaW5saW5lIGludCB1bm1vZGlmaWVkQXJndW1lbnRzUmVn
aXN0ZXIoaW50IGFyZ3VtZW50c1JlZ2lzdGVyKSB7IHJldHVybiBhcmd1bWVudHNSZWdpc3RlciAt
IDE7IH0KIApAQCAtMjA1LDYgKzIwNiw4IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICB7CiAg
ICAgICAgICAgICByZXR1cm4gKihiaW5hcnlTZWFyY2g8U3RydWN0dXJlU3R1YkluZm8sIHVuc2ln
bmVkLCBnZXRTdHJ1Y3R1cmVTdHViSW5mb0J5dGVjb2RlSW5kZXg+KG1fc3RydWN0dXJlU3R1Yklu
Zm9zLmJlZ2luKCksIG1fc3RydWN0dXJlU3R1YkluZm9zLnNpemUoKSwgYnl0ZWNvZGVJbmRleCkp
OwogICAgICAgICB9CisgICAgICAgIAorICAgICAgICB2b2lkIHJlc2V0U3R1YihTdHJ1Y3R1cmVT
dHViSW5mbyYpOwogCiAgICAgICAgIENhbGxMaW5rSW5mbyYgZ2V0Q2FsbExpbmtJbmZvKFJldHVy
bkFkZHJlc3NQdHIgcmV0dXJuQWRkcmVzcykKICAgICAgICAgewpAQCAtMTIzMyw2ICsxMjM2LDEw
IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICAgICAgaWYgKCFtX3JhcmVEYXRhKQogICAgICAg
ICAgICAgICAgIG1fcmFyZURhdGEgPSBhZG9wdFB0cihuZXcgUmFyZURhdGEpOwogICAgICAgICB9
CisKKyNpZiBFTkFCTEUoSklUKQorICAgICAgICB2b2lkIHJlc2V0U3R1YkludGVybmFsKFJlcGF0
Y2hCdWZmZXImLCBTdHJ1Y3R1cmVTdHViSW5mbyYpOworI2VuZGlmCiAgICAgICAgIAogICAgICAg
ICBpbnQgbV9udW1QYXJhbWV0ZXJzOwogCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0
ZWNvZGUvU3RydWN0dXJlU3R1YkNsZWFyaW5nV2F0Y2hwb2ludC5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL1N0cnVjdHVyZVN0dWJDbGVhcmluZ1dhdGNo
cG9pbnQuY3BwCShyZXZpc2lvbiAwKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2Rl
L1N0cnVjdHVyZVN0dWJDbGVhcmluZ1dhdGNocG9pbnQuY3BwCShyZXZpc2lvbiAwKQpAQCAtMCww
ICsxLDgwIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEyIEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoK
KyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRo
ZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIK
KyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMu
IE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJP
RklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5Z
IFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAorICovCisK
KyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJTdHJ1Y3R1cmVTdHViQ2xlYXJpbmdXYXRj
aHBvaW50LmgiCisKKyNpZiBFTkFCTEUoSklUKQorCisjaW5jbHVkZSAiQ29kZUJsb2NrLmgiCisj
aW5jbHVkZSAiU3RydWN0dXJlU3R1YkluZm8uaCIKKworbmFtZXNwYWNlIEpTQyB7CisKK1N0cnVj
dHVyZVN0dWJDbGVhcmluZ1dhdGNocG9pbnQ6On5TdHJ1Y3R1cmVTdHViQ2xlYXJpbmdXYXRjaHBv
aW50KCkgeyB9CisKK1N0cnVjdHVyZVN0dWJDbGVhcmluZ1dhdGNocG9pbnQqIFN0cnVjdHVyZVN0
dWJDbGVhcmluZ1dhdGNocG9pbnQ6OnB1c2goCisgICAgV2F0Y2hwb2ludHNPblN0cnVjdHVyZVN0
dWJJbmZvJiBob2xkZXIsCisgICAgT3duUHRyPFN0cnVjdHVyZVN0dWJDbGVhcmluZ1dhdGNocG9p
bnQ+JiBoZWFkKQoreworICAgIGhlYWQgPSBhZG9wdFB0cihuZXcgU3RydWN0dXJlU3R1YkNsZWFy
aW5nV2F0Y2hwb2ludChob2xkZXIsIGhlYWQucmVsZWFzZSgpKSk7CisgICAgcmV0dXJuIGhlYWQu
Z2V0KCk7Cit9CisKK3ZvaWQgU3RydWN0dXJlU3R1YkNsZWFyaW5nV2F0Y2hwb2ludDo6ZmlyZUlu
dGVybmFsKCkKK3sKKyAgICAvLyBUaGlzIHdpbGwgaW1wbGljaXRseSBjYXVzZSBteSBvd24gZGVt
aXNlOiBzdHViIHJlc2V0IHJlbW92ZXMgYWxsIHdhdGNocG9pbnRzLgorICAgIC8vIFRoYXQgd29y
a3MsIGJlY2F1c2UgZGVsZXRpbmcgYSB3YXRjaHBvaW50IHJlbW92ZXMgaXQgZnJvbSB0aGUgc2V0
J3MgbGlzdCwgYW5kCisgICAgLy8gdGhlIHNldCdzIGxpc3QgdHJhdmVyc2FsIGZvciBmaXJpbmcg
aXMgcm9idXN0IGFnYWluc3QgdGhlIHNldCBjaGFuZ2luZy4KKyAgICBtX2hvbGRlci5jb2RlQmxv
Y2soKS0+cmVzZXRTdHViKCptX2hvbGRlci5zdHViSW5mbygpKTsKK30KKworV2F0Y2hwb2ludHNP
blN0cnVjdHVyZVN0dWJJbmZvOjp+V2F0Y2hwb2ludHNPblN0cnVjdHVyZVN0dWJJbmZvKCkKK3sK
K30KKworU3RydWN0dXJlU3R1YkNsZWFyaW5nV2F0Y2hwb2ludCogV2F0Y2hwb2ludHNPblN0cnVj
dHVyZVN0dWJJbmZvOjphZGRXYXRjaHBvaW50KCkKK3sKKyAgICByZXR1cm4gU3RydWN0dXJlU3R1
YkNsZWFyaW5nV2F0Y2hwb2ludDo6cHVzaCgqdGhpcywgbV9oZWFkKTsKK30KKworU3RydWN0dXJl
U3R1YkNsZWFyaW5nV2F0Y2hwb2ludCogV2F0Y2hwb2ludHNPblN0cnVjdHVyZVN0dWJJbmZvOjpl
bnN1cmVSZWZlcmVuY2VBbmRBZGRXYXRjaHBvaW50KAorICAgIFJlZlB0cjxXYXRjaHBvaW50c09u
U3RydWN0dXJlU3R1YkluZm8+JiBob2xkZXJSZWYsIENvZGVCbG9jayogY29kZUJsb2NrLAorICAg
IFN0cnVjdHVyZVN0dWJJbmZvKiBzdHViSW5mbykKK3sKKyAgICBpZiAoIWhvbGRlclJlZikKKyAg
ICAgICAgaG9sZGVyUmVmID0gYWRvcHRSZWYobmV3IFdhdGNocG9pbnRzT25TdHJ1Y3R1cmVTdHVi
SW5mbyhjb2RlQmxvY2ssIHN0dWJJbmZvKSk7CisgICAgZWxzZSB7CisgICAgICAgIEFTU0VSVCho
b2xkZXJSZWYtPm1fY29kZUJsb2NrID09IGNvZGVCbG9jayk7CisgICAgICAgIEFTU0VSVChob2xk
ZXJSZWYtPm1fc3R1YkluZm8gPT0gc3R1YkluZm8pOworICAgIH0KKyAgICAKKyAgICByZXR1cm4g
aG9sZGVyUmVmLT5hZGRXYXRjaHBvaW50KCk7Cit9CisKK30gLy8gbmFtZXNwYWNlIEpTQworCisj
ZW5kaWYgLy8gRU5BQkxFKEpJVCkKKwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVj
b2RlL1N0cnVjdHVyZVN0dWJDbGVhcmluZ1dhdGNocG9pbnQuaAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvU3RydWN0dXJlU3R1YkNsZWFyaW5nV2F0Y2hwb2lu
dC5oCShyZXZpc2lvbiAwKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL1N0cnVj
dHVyZVN0dWJDbGVhcmluZ1dhdGNocG9pbnQuaAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwxMDkg
QEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4g
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAg
ICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUg
ZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUg
SU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVS
UE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAq
IENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBP
UiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZ
CisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKworI2lmbmRl
ZiBTdHJ1Y3R1cmVTdHViQ2xlYXJpbmdXYXRjaHBvaW50X2gKKyNkZWZpbmUgU3RydWN0dXJlU3R1
YkNsZWFyaW5nV2F0Y2hwb2ludF9oCisKKyNpbmNsdWRlICJXYXRjaHBvaW50LmgiCisjaW5jbHVk
ZSA8d3RmL1BsYXRmb3JtLmg+CisKKyNpZiBFTkFCTEUoSklUKQorCisjaW5jbHVkZSA8d3RmL0Zh
c3RBbGxvY0Jhc2UuaD4KKyNpbmNsdWRlIDx3dGYvTm9uY29weWFibGUuaD4KKyNpbmNsdWRlIDx3
dGYvT3duUHRyLmg+CisjaW5jbHVkZSA8d3RmL1Bhc3NPd25QdHIuaD4KKyNpbmNsdWRlIDx3dGYv
UmVmQ291bnRlZC5oPgorI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KKworbmFtZXNwYWNlIEpTQyB7
CisKK2NsYXNzIENvZGVCbG9jazsKK2NsYXNzIFdhdGNocG9pbnRzT25TdHJ1Y3R1cmVTdHViSW5m
bzsKK3N0cnVjdCBTdHJ1Y3R1cmVTdHViSW5mbzsKKworY2xhc3MgU3RydWN0dXJlU3R1YkNsZWFy
aW5nV2F0Y2hwb2ludCA6IHB1YmxpYyBXYXRjaHBvaW50IHsKKyAgICBXVEZfTUFLRV9OT05DT1BZ
QUJMRShTdHJ1Y3R1cmVTdHViQ2xlYXJpbmdXYXRjaHBvaW50KTsKKyAgICBXVEZfTUFLRV9GQVNU
X0FMTE9DQVRFRDsKK3B1YmxpYzoKKyAgICBTdHJ1Y3R1cmVTdHViQ2xlYXJpbmdXYXRjaHBvaW50
KAorICAgICAgICBXYXRjaHBvaW50c09uU3RydWN0dXJlU3R1YkluZm8mIGhvbGRlcikKKyAgICAg
ICAgOiBtX2hvbGRlcihob2xkZXIpCisgICAgeworICAgIH0KKyAgICAKKyAgICBTdHJ1Y3R1cmVT
dHViQ2xlYXJpbmdXYXRjaHBvaW50KAorICAgICAgICBXYXRjaHBvaW50c09uU3RydWN0dXJlU3R1
YkluZm8mIGhvbGRlciwKKyAgICAgICAgUGFzc093blB0cjxTdHJ1Y3R1cmVTdHViQ2xlYXJpbmdX
YXRjaHBvaW50PiBuZXh0KQorICAgICAgICA6IG1faG9sZGVyKGhvbGRlcikKKyAgICAgICAgLCBt
X25leHQobmV4dCkKKyAgICB7CisgICAgfQorICAgIAorICAgIHZpcnR1YWwgflN0cnVjdHVyZVN0
dWJDbGVhcmluZ1dhdGNocG9pbnQoKTsKKyAgICAKKyAgICBzdGF0aWMgU3RydWN0dXJlU3R1YkNs
ZWFyaW5nV2F0Y2hwb2ludCogcHVzaCgKKyAgICAgICAgV2F0Y2hwb2ludHNPblN0cnVjdHVyZVN0
dWJJbmZvJiBob2xkZXIsCisgICAgICAgIE93blB0cjxTdHJ1Y3R1cmVTdHViQ2xlYXJpbmdXYXRj
aHBvaW50PiYgaGVhZCk7CisKK3Byb3RlY3RlZDoKKyAgICB2b2lkIGZpcmVJbnRlcm5hbCgpOwor
Citwcml2YXRlOgorICAgIFdhdGNocG9pbnRzT25TdHJ1Y3R1cmVTdHViSW5mbyYgbV9ob2xkZXI7
CisgICAgT3duUHRyPFN0cnVjdHVyZVN0dWJDbGVhcmluZ1dhdGNocG9pbnQ+IG1fbmV4dDsKK307
CisKK2NsYXNzIFdhdGNocG9pbnRzT25TdHJ1Y3R1cmVTdHViSW5mbyA6IHB1YmxpYyBSZWZDb3Vu
dGVkPFdhdGNocG9pbnRzT25TdHJ1Y3R1cmVTdHViSW5mbz4geworcHVibGljOgorICAgIFdhdGNo
cG9pbnRzT25TdHJ1Y3R1cmVTdHViSW5mbyhDb2RlQmxvY2sqIGNvZGVCbG9jaywgU3RydWN0dXJl
U3R1YkluZm8qIHN0dWJJbmZvKQorICAgICAgICA6IG1fY29kZUJsb2NrKGNvZGVCbG9jaykKKyAg
ICAgICAgLCBtX3N0dWJJbmZvKHN0dWJJbmZvKQorICAgIHsKKyAgICB9CisgICAgCisgICAgfldh
dGNocG9pbnRzT25TdHJ1Y3R1cmVTdHViSW5mbygpOworICAgIAorICAgIFN0cnVjdHVyZVN0dWJD
bGVhcmluZ1dhdGNocG9pbnQqIGFkZFdhdGNocG9pbnQoKTsKKyAgICAKKyAgICBzdGF0aWMgU3Ry
dWN0dXJlU3R1YkNsZWFyaW5nV2F0Y2hwb2ludCogZW5zdXJlUmVmZXJlbmNlQW5kQWRkV2F0Y2hw
b2ludCgKKyAgICAgICAgUmVmUHRyPFdhdGNocG9pbnRzT25TdHJ1Y3R1cmVTdHViSW5mbz4mIGhv
bGRlclJlZiwKKyAgICAgICAgQ29kZUJsb2NrKiwgU3RydWN0dXJlU3R1YkluZm8qKTsKKyAgICAK
KyAgICBDb2RlQmxvY2sqIGNvZGVCbG9jaygpIGNvbnN0IHsgcmV0dXJuIG1fY29kZUJsb2NrOyB9
CisgICAgU3RydWN0dXJlU3R1YkluZm8qIHN0dWJJbmZvKCkgY29uc3QgeyByZXR1cm4gbV9zdHVi
SW5mbzsgfQorICAgIAorcHJpdmF0ZToKKyAgICBDb2RlQmxvY2sqIG1fY29kZUJsb2NrOworICAg
IFN0cnVjdHVyZVN0dWJJbmZvKiBtX3N0dWJJbmZvOworICAgIE93blB0cjxTdHJ1Y3R1cmVTdHVi
Q2xlYXJpbmdXYXRjaHBvaW50PiBtX2hlYWQ7Cit9OworCit9IC8vIG5hbWVzcGFjZSBKU0MKKwor
I2VuZGlmIC8vIEVOQUJMRShKSVQpCisKKyNlbmRpZiAvLyBTdHJ1Y3R1cmVTdHViQ2xlYXJpbmdX
YXRjaHBvaW50X2gKKwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL1N0cnVj
dHVyZVN0dWJJbmZvLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVj
b2RlL1N0cnVjdHVyZVN0dWJJbmZvLmgJKHJldmlzaW9uIDEyMjUwNCkKKysrIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ieXRlY29kZS9TdHJ1Y3R1cmVTdHViSW5mby5oCSh3b3JraW5nIGNvcHkpCkBA
IC0zNiw2ICszNiw4IEBACiAjaW5jbHVkZSAiTWFjcm9Bc3NlbWJsZXIuaCIKICNpbmNsdWRlICJP
cGNvZGUuaCIKICNpbmNsdWRlICJTdHJ1Y3R1cmUuaCIKKyNpbmNsdWRlICJTdHJ1Y3R1cmVTdHVi
Q2xlYXJpbmdXYXRjaHBvaW50LmgiCisjaW5jbHVkZSA8d3RmL093blB0ci5oPgogCiBuYW1lc3Bh
Y2UgSlNDIHsKIApAQCAtMTcwLDYgKzE3Miw3IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICAg
ICAgZGVyZWYoKTsKICAgICAgICAgICAgIGFjY2Vzc1R5cGUgPSBhY2Nlc3NfdW5zZXQ7CiAgICAg
ICAgICAgICBzdHViUm91dGluZS5jbGVhcigpOworICAgICAgICAgICAgd2F0Y2hwb2ludHMuY2xl
YXIoKTsKICAgICAgICAgfQogCiAgICAgICAgIHZvaWQgZGVyZWYoKTsKQEAgLTE4Niw2ICsxODks
MTIgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgICAgICBzZWVuID0gdHJ1ZTsKICAgICAgICAg
fQogICAgICAgICAKKyAgICAgICAgU3RydWN0dXJlU3R1YkNsZWFyaW5nV2F0Y2hwb2ludCogYWRk
V2F0Y2hwb2ludChDb2RlQmxvY2sqIGNvZGVCbG9jaykKKyAgICAgICAgeworICAgICAgICAgICAg
cmV0dXJuIFdhdGNocG9pbnRzT25TdHJ1Y3R1cmVTdHViSW5mbzo6ZW5zdXJlUmVmZXJlbmNlQW5k
QWRkV2F0Y2hwb2ludCgKKyAgICAgICAgICAgICAgICB3YXRjaHBvaW50cywgY29kZUJsb2NrLCB0
aGlzKTsKKyAgICAgICAgfQorICAgICAgICAKICAgICAgICAgdW5zaWduZWQgYnl0ZWNvZGVJbmRl
eDsKIAogICAgICAgICBpbnQ4X3QgYWNjZXNzVHlwZTsKQEAgLTI5MCw2ICsyOTksNyBAQCBuYW1l
c3BhY2UgSlNDIHsKICAgICAgICAgUmVmUHRyPEpJVFN0dWJSb3V0aW5lPiBzdHViUm91dGluZTsK
ICAgICAgICAgQ29kZUxvY2F0aW9uQ2FsbCBjYWxsUmV0dXJuTG9jYXRpb247CiAgICAgICAgIENv
ZGVMb2NhdGlvbkxhYmVsIGhvdFBhdGhCZWdpbjsKKyAgICAgICAgUmVmUHRyPFdhdGNocG9pbnRz
T25TdHJ1Y3R1cmVTdHViSW5mbz4gd2F0Y2hwb2ludHM7CiAgICAgfTsKIAogICAgIGlubGluZSB2
b2lkKiBnZXRTdHJ1Y3R1cmVTdHViSW5mb1JldHVybkxvY2F0aW9uKFN0cnVjdHVyZVN0dWJJbmZv
KiBzdHJ1Y3R1cmVTdHViSW5mbykKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZH
UmVwYXRjaC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdS
ZXBhdGNoLmNwcAkocmV2aXNpb24gMTIyNTA0KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2Rm
Zy9ERkdSZXBhdGNoLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNzEsNiArNzEsNDggQEAgc3RhdGlj
IHZvaWQgZGZnUmVwYXRjaEJ5SWRTZWxmQWNjZXNzKENvZAogI2VuZGlmCiB9CiAKK3N0YXRpYyB2
b2lkIGFkZFN0cnVjdHVyZVRyYW5zaXRpb25DaGVjaygKKyAgICBKU0NlbGwqIG9iamVjdCwgU3Ry
dWN0dXJlKiBzdHJ1Y3R1cmUsIENvZGVCbG9jayogY29kZUJsb2NrLCBTdHJ1Y3R1cmVTdHViSW5m
byYgc3R1YkluZm8sCisgICAgTWFjcm9Bc3NlbWJsZXImIGppdCwgTWFjcm9Bc3NlbWJsZXI6Okp1
bXBMaXN0JiBmYWlsdXJlQ2FzZXMsIEdQUlJlZyBzY3JhdGNoR1BSKQoreworICAgIGlmIChvYmpl
Y3QtPnN0cnVjdHVyZSgpID09IHN0cnVjdHVyZSAmJiBzdHJ1Y3R1cmUtPnRyYW5zaXRpb25XYXRj
aHBvaW50U2V0SXNTdGlsbFZhbGlkKCkpIHsKKyAgICAgICAgc3RydWN0dXJlLT5hZGRUcmFuc2l0
aW9uV2F0Y2hwb2ludChzdHViSW5mby5hZGRXYXRjaHBvaW50KGNvZGVCbG9jaykpOworI2lmIERG
R19FTkFCTEUoSklUX0FTU0VSVCkKKyAgICAgICAgLy8gSWYgd2UgZXhlY3V0ZSB0aGlzIGNvZGUs
IHRoZSBvYmplY3QgbXVzdCBoYXZlIHRoZSBzdHJ1Y3R1cmUgd2UgZXhwZWN0LiBBc3NlcnQKKyAg
ICAgICAgLy8gdGhpcyBpbiBkZWJ1ZyBtb2Rlcy4KKyAgICAgICAgaml0Lm1vdmUoTWFjcm9Bc3Nl
bWJsZXI6OlRydXN0ZWRJbW1QdHIob2JqZWN0KSwgc2NyYXRjaEdQUik7CisgICAgICAgIE1hY3Jv
QXNzZW1ibGVyOjpKdW1wIG9rID0gaml0LmJyYW5jaFB0cigKKyAgICAgICAgICAgIE1hY3JvQXNz
ZW1ibGVyOjpFcXVhbCwKKyAgICAgICAgICAgIE1hY3JvQXNzZW1ibGVyOjpBZGRyZXNzKHNjcmF0
Y2hHUFIsIEpTQ2VsbDo6c3RydWN0dXJlT2Zmc2V0KCkpLAorICAgICAgICAgICAgTWFjcm9Bc3Nl
bWJsZXI6OlRydXN0ZWRJbW1QdHIoc3RydWN0dXJlKSk7CisgICAgICAgIGppdC5icmVha3BvaW50
KCk7CisgICAgICAgIG9rLmxpbmsoJmppdCk7CisjZW5kaWYKKyAgICAgICAgcmV0dXJuOworICAg
IH0KKyAgICAKKyAgICBqaXQubW92ZShNYWNyb0Fzc2VtYmxlcjo6VHJ1c3RlZEltbVB0cihvYmpl
Y3QpLCBzY3JhdGNoR1BSKTsKKyAgICBmYWlsdXJlQ2FzZXMuYXBwZW5kKAorICAgICAgICBqaXQu
YnJhbmNoUHRyKAorICAgICAgICAgICAgTWFjcm9Bc3NlbWJsZXI6Ok5vdEVxdWFsLAorICAgICAg
ICAgICAgTWFjcm9Bc3NlbWJsZXI6OkFkZHJlc3Moc2NyYXRjaEdQUiwgSlNDZWxsOjpzdHJ1Y3R1
cmVPZmZzZXQoKSksCisgICAgICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6VHJ1c3RlZEltbVB0cihz
dHJ1Y3R1cmUpKSk7Cit9CisKK3N0YXRpYyB2b2lkIGFkZFN0cnVjdHVyZVRyYW5zaXRpb25DaGVj
aygKKyAgICBKU1ZhbHVlIHByb3RvdHlwZSwgQ29kZUJsb2NrKiBjb2RlQmxvY2ssIFN0cnVjdHVy
ZVN0dWJJbmZvJiBzdHViSW5mbywKKyAgICBNYWNyb0Fzc2VtYmxlciYgaml0LCBNYWNyb0Fzc2Vt
Ymxlcjo6SnVtcExpc3QmIGZhaWx1cmVDYXNlcywgR1BSUmVnIHNjcmF0Y2hHUFIpCit7CisgICAg
aWYgKHByb3RvdHlwZS5pc051bGwoKSkKKyAgICAgICAgcmV0dXJuOworICAgIAorICAgIEFTU0VS
VChwcm90b3R5cGUuaXNDZWxsKCkpOworICAgIAorICAgIGFkZFN0cnVjdHVyZVRyYW5zaXRpb25D
aGVjaygKKyAgICAgICAgcHJvdG90eXBlLmFzQ2VsbCgpLCBwcm90b3R5cGUuYXNDZWxsKCktPnN0
cnVjdHVyZSgpLCBjb2RlQmxvY2ssIHN0dWJJbmZvLCBqaXQsCisgICAgICAgIGZhaWx1cmVDYXNl
cywgc2NyYXRjaEdQUik7Cit9CisKIHN0YXRpYyB2b2lkIGVtaXRSZXN0b3JlU2NyYXRjaChNYWNy
b0Fzc2VtYmxlciYgc3R1YkppdCwgYm9vbCBuZWVkVG9SZXN0b3JlU2NyYXRjaCwgR1BSUmVnIHNj
cmF0Y2hHUFIsIE1hY3JvQXNzZW1ibGVyOjpKdW1wJiBzdWNjZXNzLCBNYWNyb0Fzc2VtYmxlcjo6
SnVtcCYgZmFpbCwgTWFjcm9Bc3NlbWJsZXI6Okp1bXBMaXN0IGZhaWx1cmVDYXNlcykKIHsKICAg
ICBpZiAobmVlZFRvUmVzdG9yZVNjcmF0Y2gpIHsKQEAgLTEzNyw4ICsxNzksOSBAQCBzdGF0aWMg
dm9pZCBnZW5lcmF0ZVByb3RvQ2hhaW5BY2Nlc3NTdHViCiAgICAgSlNPYmplY3QqIHByb3RvT2Jq
ZWN0ID0gMDsKICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgY291bnQ7ICsraSwgKytpdCkg
ewogICAgICAgICBwcm90b09iamVjdCA9IGFzT2JqZWN0KGN1cnJTdHJ1Y3R1cmUtPnByb3RvdHlw
ZUZvckxvb2t1cChleGVjKSk7Ci0gICAgICAgIHN0dWJKaXQubW92ZShNYWNyb0Fzc2VtYmxlcjo6
VHJ1c3RlZEltbVB0cihwcm90b09iamVjdCksIHNjcmF0Y2hHUFIpOwotICAgICAgICBmYWlsdXJl
Q2FzZXMuYXBwZW5kKHN0dWJKaXQuYnJhbmNoUHRyKE1hY3JvQXNzZW1ibGVyOjpOb3RFcXVhbCwg
TWFjcm9Bc3NlbWJsZXI6OkFkZHJlc3Moc2NyYXRjaEdQUiwgSlNDZWxsOjpzdHJ1Y3R1cmVPZmZz
ZXQoKSksIE1hY3JvQXNzZW1ibGVyOjpUcnVzdGVkSW1tUHRyKHByb3RvT2JqZWN0LT5zdHJ1Y3R1
cmUoKSkpKTsKKyAgICAgICAgYWRkU3RydWN0dXJlVHJhbnNpdGlvbkNoZWNrKAorICAgICAgICAg
ICAgcHJvdG9PYmplY3QsIHByb3RvT2JqZWN0LT5zdHJ1Y3R1cmUoKSwgZXhlYy0+Y29kZUJsb2Nr
KCksIHN0dWJJbmZvLCBzdHViSml0LAorICAgICAgICAgICAgZmFpbHVyZUNhc2VzLCBzY3JhdGNo
R1BSKTsKICAgICAgICAgY3VyclN0cnVjdHVyZSA9IGl0LT5nZXQoKTsKICAgICB9CiAgICAgCkBA
IC01NjksMTcgKzYxMiw2IEBAIHN0YXRpYyBWX0RGR09wZXJhdGlvbl9FSkNJIGFwcHJvcHJpYXRl
TGkKICAgICByZXR1cm4gb3BlcmF0aW9uUHV0QnlJZE5vblN0cmljdEJ1aWxkTGlzdDsKIH0KIAot
c3RhdGljIHZvaWQgdGVzdFByb3RvdHlwZShNYWNyb0Fzc2VtYmxlciAmc3R1YkppdCwgR1BSUmVn
IHNjcmF0Y2hHUFIsIEpTVmFsdWUgcHJvdG90eXBlLCBNYWNyb0Fzc2VtYmxlcjo6SnVtcExpc3Qm
IGZhaWx1cmVDYXNlcykKLXsKLSAgICBpZiAocHJvdG90eXBlLmlzTnVsbCgpKQotICAgICAgICBy
ZXR1cm47Ci0gICAgCi0gICAgQVNTRVJUKHByb3RvdHlwZS5pc0NlbGwoKSk7Ci0gICAgCi0gICAg
c3R1YkppdC5tb3ZlKE1hY3JvQXNzZW1ibGVyOjpUcnVzdGVkSW1tUHRyKHByb3RvdHlwZS5hc0Nl
bGwoKSksIHNjcmF0Y2hHUFIpOwotICAgIGZhaWx1cmVDYXNlcy5hcHBlbmQoc3R1YkppdC5icmFu
Y2hQdHIoTWFjcm9Bc3NlbWJsZXI6Ok5vdEVxdWFsLCBNYWNyb0Fzc2VtYmxlcjo6QWRkcmVzcyhz
Y3JhdGNoR1BSLCBKU0NlbGw6OnN0cnVjdHVyZU9mZnNldCgpKSwgTWFjcm9Bc3NlbWJsZXI6OlRy
dXN0ZWRJbW1QdHIocHJvdG90eXBlLmFzQ2VsbCgpLT5zdHJ1Y3R1cmUoKSkpKTsKLX0KLQogc3Rh
dGljIHZvaWQgZW1pdFB1dFJlcGxhY2VTdHViKAogICAgIEV4ZWNTdGF0ZSogZXhlYywKICAgICBK
U1ZhbHVlLApAQCAtNzA4LDEyICs3NDAsMTcgQEAgc3RhdGljIHZvaWQgZW1pdFB1dFRyYW5zaXRp
b25TdHViKAogICAgIEFTU0VSVChvbGRTdHJ1Y3R1cmUtPnRyYW5zaXRpb25XYXRjaHBvaW50U2V0
SGFzQmVlbkludmFsaWRhdGVkKCkpOwogICAgIAogICAgIGZhaWx1cmVDYXNlcy5hcHBlbmQoc3R1
YkppdC5icmFuY2hQdHIoTWFjcm9Bc3NlbWJsZXI6Ok5vdEVxdWFsLCBNYWNyb0Fzc2VtYmxlcjo6
QWRkcmVzcyhiYXNlR1BSLCBKU0NlbGw6OnN0cnVjdHVyZU9mZnNldCgpKSwgTWFjcm9Bc3NlbWJs
ZXI6OlRydXN0ZWRJbW1QdHIob2xkU3RydWN0dXJlKSkpOwotICAgICAgICAgICAgCi0gICAgdGVz
dFByb3RvdHlwZShzdHViSml0LCBzY3JhdGNoR1BSLCBvbGRTdHJ1Y3R1cmUtPnN0b3JlZFByb3Rv
dHlwZSgpLCBmYWlsdXJlQ2FzZXMpOworICAgIAorICAgIGFkZFN0cnVjdHVyZVRyYW5zaXRpb25D
aGVjaygKKyAgICAgICAgb2xkU3RydWN0dXJlLT5zdG9yZWRQcm90b3R5cGUoKSwgZXhlYy0+Y29k
ZUJsb2NrKCksIHN0dWJJbmZvLCBzdHViSml0LCBmYWlsdXJlQ2FzZXMsCisgICAgICAgIHNjcmF0
Y2hHUFIpOwogICAgICAgICAgICAgCiAgICAgaWYgKHB1dEtpbmQgPT0gTm90RGlyZWN0KSB7Ci0g
ICAgICAgIGZvciAoV3JpdGVCYXJyaWVyPFN0cnVjdHVyZT4qIGl0ID0gcHJvdG90eXBlQ2hhaW4t
PmhlYWQoKTsgKml0OyArK2l0KQotICAgICAgICAgICAgdGVzdFByb3RvdHlwZShzdHViSml0LCBz
Y3JhdGNoR1BSLCAoKml0KS0+c3RvcmVkUHJvdG90eXBlKCksIGZhaWx1cmVDYXNlcyk7CisgICAg
ICAgIGZvciAoV3JpdGVCYXJyaWVyPFN0cnVjdHVyZT4qIGl0ID0gcHJvdG90eXBlQ2hhaW4tPmhl
YWQoKTsgKml0OyArK2l0KSB7CisgICAgICAgICAgICBhZGRTdHJ1Y3R1cmVUcmFuc2l0aW9uQ2hl
Y2soCisgICAgICAgICAgICAgICAgKCppdCktPnN0b3JlZFByb3RvdHlwZSgpLCBleGVjLT5jb2Rl
QmxvY2soKSwgc3R1YkluZm8sIHN0dWJKaXQsIGZhaWx1cmVDYXNlcywKKyAgICAgICAgICAgICAg
ICBzY3JhdGNoR1BSKTsKKyAgICAgICAgfQogICAgIH0KIAogI2lmIEVOQUJMRShHR0MpIHx8IEVO
QUJMRShXUklURV9CQVJSSUVSX1BST0ZJTElORykKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9qaXQvSnVtcFJlcGxhY2VtZW50V2F0Y2hwb2ludC5oCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9qaXQvSnVtcFJlcGxhY2VtZW50V2F0Y2hwb2ludC5oCShyZXZpc2lvbiAx
MjI1MDQpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0p1bXBSZXBsYWNlbWVudFdhdGNo
cG9pbnQuaAkod29ya2luZyBjb3B5KQpAQCAtMjcsNiArMjcsNyBAQAogI2RlZmluZSBKdW1wUmVw
bGFjZW1lbnRXYXRjaHBvaW50X2gKIAogI2luY2x1ZGUgIldhdGNocG9pbnQuaCIKKyNpbmNsdWRl
IDx3dGYvUGxhdGZvcm0uaD4KIAogI2lmIEVOQUJMRShKSVQpCiAK
</data>
<flag name="review"
          id="160674"
          type_id="1"
          status="+"
          setter="ggaren"
    />
          </attachment>
      

    </bug>

</bugzilla>