<?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>87057</bug_id>
          
          <creation_ts>2012-05-21 16:28:34 -0700</creation_ts>
          <short_desc>DFG ConvertThis should just be a CheckStructure if the structure is known</short_desc>
          <delta_ts>2012-05-25 13:20:32 -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="Nobody">webkit-unassigned</assigned_to>
          
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>629693</commentid>
    <comment_count>0</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2012-05-21 16:28:34 -0700</bug_when>
    <thetext>Patch forthcoming.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>629709</commentid>
    <comment_count>1</comment_count>
      <attachid>143133</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2012-05-21 16:41:15 -0700</bug_when>
    <thetext>Created attachment 143133
the patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>629736</commentid>
    <comment_count>2</comment_count>
      <attachid>143141</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2012-05-21 17:06:58 -0700</bug_when>
    <thetext>Created attachment 143141
the patch

Found and fixed a bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>630708</commentid>
    <comment_count>3</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2012-05-22 13:38:27 -0700</bug_when>
    <thetext>Landed in http://trac.webkit.org/changeset/118021</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>634240</commentid>
    <comment_count>4</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2012-05-25 13:20:32 -0700</bug_when>
    <thetext>Merged in http://trac.webkit.org/changeset/118555</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>143133</attachid>
            <date>2012-05-21 16:41:15 -0700</date>
            <delta_ts>2012-05-21 17:06:58 -0700</delta_ts>
            <desc>the patch</desc>
            <filename>optconvertthis_patch_1.diff</filename>
            <type>text/plain</type>
            <size>19924</size>
            <attacher name="Filip Pizlo">fpizlo</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTE3ODMwKQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDU5IEBA
CisyMDEyLTA1LTIxICBGaWxpcCBQaXpsbyAgPGZwaXpsb0BhcHBsZS5jb20+CisKKyAgICAgICAg
REZHIENvbnZlcnRUaGlzIHNob3VsZCBqdXN0IGJlIGEgQ2hlY2tTdHJ1Y3R1cmUgaWYgdGhlIHN0
cnVjdHVyZSBpcyBrbm93bgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9ODcwNTcKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKyAg
ICAgICAgCisgICAgICAgIFRoaXMgZ2l2ZXMgVmFsdWVQcm9maWxlIHRoZSBhYmlsaXR5IHRvIHRy
YWNrIHNpbmdsZXRvbiB2YWx1ZXMgLSBpLmUuIHByb2ZpbGluZworICAgICAgICBzaXRlcyB0aGF0
IGFsd2F5cyBzZWUgdGhlIHNhbWUgdmFsdWUuCisgICAgICAgIAorICAgICAgICBUaGF0IGlzIHRo
ZW4gdXNlZCB0byBwcm9maWxlIHRoZSBzdHJ1Y3R1cmUgaW4gb3BfY29udmVydF90aGlzLgorICAg
ICAgICAKKyAgICAgICAgVGhpcyBpcyB0aGVuIHVzZWQgdG8gb3B0aW1pemUgb3BfY29udmVydF90
aGlzIGludG8gYSBDaGVja1N0cnVjdHVyZSBpZiB0aGUKKyAgICAgICAgc3RydWN0dXJlIGlzIGFs
d2F5cyB0aGUgc2FtZS4KKyAgICAgICAgCisgICAgICAgIFRoYXQgdGhlbiByZXN1bHRzIGluIGJl
dHRlciBDU0UgaW4gaW5saW5lZCBjb2RlIHRoYXQgdXNlcyAndGhpcycsIHNpbmNlCisgICAgICAg
IHByZXZpb3VzbHkgd2UgY291bGRuJ3QgQ1NFIGFjY2Vzc2VzIG9uICd0aGlzJyBmcm9tIGRpZmZl
cmVudCBpbmxpbmUgY2FsbCBmcmFtZXMuCisgICAgICAgIAorICAgICAgICBBbHNvIGZpeGVkIGEg
YnVnIHdoZXJlIHdlIHdlcmUgdW5uZWNlc3NhcmlseSBmbHVzaGluZyAndGhpcycuCisKKyAgICAg
ICAgKiBieXRlY29kZS9Db2RlQmxvY2suY3BwOgorICAgICAgICAoSlNDOjpDb2RlQmxvY2s6OmR1
bXApOgorICAgICAgICAoSlNDOjpDb2RlQmxvY2s6OnN0cm9uZ2x5VmlzaXRTdHJvbmdSZWZlcmVu
Y2VzKToKKyAgICAgICAgKiBieXRlY29kZS9MYXp5T3BlcmFuZFZhbHVlUHJvZmlsZS5jcHA6Cisg
ICAgICAgIChKU0M6OkNvbXByZXNzZWRMYXp5T3BlcmFuZFZhbHVlUHJvZmlsZUhvbGRlcjo6Y29t
cHV0ZVVwZGF0ZWRQcmVkaWN0aW9ucyk6CisgICAgICAgICogYnl0ZWNvZGUvTGF6eU9wZXJhbmRW
YWx1ZVByb2ZpbGUuaDoKKyAgICAgICAgKENvbXByZXNzZWRMYXp5T3BlcmFuZFZhbHVlUHJvZmls
ZUhvbGRlcik6CisgICAgICAgICogYnl0ZWNvZGUvT3Bjb2RlLmg6CisgICAgICAgIChKU0MpOgor
ICAgICAgICAoSlNDOjpwYWRPcGNvZGVOYW1lKToKKyAgICAgICAgKiBieXRlY29kZS9WYWx1ZVBy
b2ZpbGUuaDoKKyAgICAgICAgKEpTQzo6VmFsdWVQcm9maWxlQmFzZTo6VmFsdWVQcm9maWxlQmFz
ZSk6CisgICAgICAgIChKU0M6OlZhbHVlUHJvZmlsZUJhc2U6OmR1bXApOgorICAgICAgICAoSlND
OjpWYWx1ZVByb2ZpbGVCYXNlOjpjb21wdXRlVXBkYXRlZFByZWRpY3Rpb24pOgorICAgICAgICAo
VmFsdWVQcm9maWxlQmFzZSk6CisgICAgICAgICogYnl0ZWNvbXBpbGVyL0J5dGVjb2RlR2VuZXJh
dG9yLmNwcDoKKyAgICAgICAgKEpTQzo6Qnl0ZWNvZGVHZW5lcmF0b3I6OkJ5dGVjb2RlR2VuZXJh
dG9yKToKKyAgICAgICAgKiBkZmcvREZHQnl0ZUNvZGVQYXJzZXIuY3BwOgorICAgICAgICAoSlND
OjpERkc6OkJ5dGVDb2RlUGFyc2VyOjpzZXRBcmd1bWVudCk6CisgICAgICAgIChKU0M6OkRGRzo6
Qnl0ZUNvZGVQYXJzZXI6OnBhcnNlQmxvY2spOgorICAgICAgICAqIGppdC9KSVRPcGNvZGVzLmNw
cDoKKyAgICAgICAgKEpTQzo6SklUOjplbWl0X29wX2NvbnZlcnRfdGhpcyk6CisgICAgICAgIChK
U0M6OkpJVDo6ZW1pdFNsb3dfb3BfY29udmVydF90aGlzKToKKyAgICAgICAgKiBqaXQvSklUT3Bj
b2RlczMyXzY0LmNwcDoKKyAgICAgICAgKEpTQzo6SklUOjplbWl0X29wX2NvbnZlcnRfdGhpcyk6
CisgICAgICAgIChKU0M6OkpJVDo6ZW1pdFNsb3dfb3BfY29udmVydF90aGlzKToKKyAgICAgICAg
KiBsbGludC9MTEludFNsb3dQYXRocy5jcHA6CisgICAgICAgIChKU0M6OkxMSW50OjpMTElOVF9T
TE9XX1BBVEhfREVDTCk6CisgICAgICAgICogbGxpbnQvTG93TGV2ZWxJbnRlcnByZXRlcjMyXzY0
LmFzbToKKyAgICAgICAgKiBsbGludC9Mb3dMZXZlbEludGVycHJldGVyNjQuYXNtOgorICAgICAg
ICAqIHJ1bnRpbWUvSlNWYWx1ZS5oOgorICAgICAgICAoSlNWYWx1ZSk6CisgICAgICAgICogcnVu
dGltZS9TdHJ1Y3R1cmUuaDoKKyAgICAgICAgKEpTQzo6SlNWYWx1ZTo6c3RydWN0dXJlT3JVbmRl
ZmluZWQpOgorICAgICAgICAoSlNDKToKKwogMjAxMi0wNS0yMCAgRmlsaXAgUGl6bG8gIDxmcGl6
bG9AYXBwbGUuY29tPgogCiAgICAgICAgIERGRyBzaG91bGQgbm90IGRvIHVubmVjZXNzYXJ5IGlu
ZGlyZWN0aW9ucyB3aGVuIHN0b3JpbmcgdG8gb2JqZWN0cwpJbmRleDogU291cmNlL0phdmFTY3Jp
cHRDb3JlL2J5dGVjb2RlL0NvZGVCbG9jay5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFT
Y3JpcHRDb3JlL2J5dGVjb2RlL0NvZGVCbG9jay5jcHAJKHJldmlzaW9uIDExNzgzMCkKKysrIFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9Db2RlQmxvY2suY3BwCSh3b3JraW5nIGNvcHkp
CkBAIC02NzYsNiArNjc2LDcgQEAgdm9pZCBDb2RlQmxvY2s6OmR1bXAoRXhlY1N0YXRlKiBleGVj
LCBjbwogICAgICAgICBjYXNlIG9wX2NvbnZlcnRfdGhpczogewogICAgICAgICAgICAgaW50IHIw
ID0gKCsraXQpLT51Lm9wZXJhbmQ7CiAgICAgICAgICAgICBkYXRhTG9nKCJbJTRkXSBjb252ZXJ0
X3RoaXNcdCAlc1xuIiwgbG9jYXRpb24sIHJlZ2lzdGVyTmFtZShleGVjLCByMCkuZGF0YSgpKTsK
KyAgICAgICAgICAgICsraXQ7IC8vIFNraXAgdmFsdWUgcHJvZmlsZS4KICAgICAgICAgICAgIGJy
ZWFrOwogICAgICAgICB9CiAgICAgICAgIGNhc2Ugb3BfbmV3X29iamVjdDogewpAQCAtMjA5MSwx
NCArMjA5MiwxNCBAQCB2b2lkIENvZGVCbG9jazo6c3Ryb25nbHlWaXNpdFN0cm9uZ1JlZmVyCiAg
ICAgICAgIH0KICAgICB9CiAgICAgCi0gICAgbV9sYXp5T3BlcmFuZFZhbHVlUHJvZmlsZXMuY29t
cHV0ZVVwZGF0ZWRQcmVkaWN0aW9ucygpOworICAgIG1fbGF6eU9wZXJhbmRWYWx1ZVByb2ZpbGVz
LmNvbXB1dGVVcGRhdGVkUHJlZGljdGlvbnMoQ29sbGVjdGlvbik7CiAjZW5kaWYKIAogI2lmIEVO
QUJMRShWQUxVRV9QUk9GSUxFUikKICAgICBmb3IgKHVuc2lnbmVkIHByb2ZpbGVJbmRleCA9IDA7
IHByb2ZpbGVJbmRleCA8IG51bWJlck9mQXJndW1lbnRWYWx1ZVByb2ZpbGVzKCk7ICsrcHJvZmls
ZUluZGV4KQotICAgICAgICB2YWx1ZVByb2ZpbGVGb3JBcmd1bWVudChwcm9maWxlSW5kZXgpLT5j
b21wdXRlVXBkYXRlZFByZWRpY3Rpb24oKTsKKyAgICAgICAgdmFsdWVQcm9maWxlRm9yQXJndW1l
bnQocHJvZmlsZUluZGV4KS0+Y29tcHV0ZVVwZGF0ZWRQcmVkaWN0aW9uKENvbGxlY3Rpb24pOwog
ICAgIGZvciAodW5zaWduZWQgcHJvZmlsZUluZGV4ID0gMDsgcHJvZmlsZUluZGV4IDwgbnVtYmVy
T2ZWYWx1ZVByb2ZpbGVzKCk7ICsrcHJvZmlsZUluZGV4KQotICAgICAgICB2YWx1ZVByb2ZpbGUo
cHJvZmlsZUluZGV4KS0+Y29tcHV0ZVVwZGF0ZWRQcmVkaWN0aW9uKCk7CisgICAgICAgIHZhbHVl
UHJvZmlsZShwcm9maWxlSW5kZXgpLT5jb21wdXRlVXBkYXRlZFByZWRpY3Rpb24oQ29sbGVjdGlv
bik7CiAjZW5kaWYKIH0KIApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0xh
enlPcGVyYW5kVmFsdWVQcm9maWxlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvYnl0ZWNvZGUvTGF6eU9wZXJhbmRWYWx1ZVByb2ZpbGUuY3BwCShyZXZpc2lvbiAxMTc4
MzApCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvTGF6eU9wZXJhbmRWYWx1ZVBy
b2ZpbGUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zMywxMyArMzMsMTMgQEAgbmFtZXNwYWNlIEpT
QyB7CiBDb21wcmVzc2VkTGF6eU9wZXJhbmRWYWx1ZVByb2ZpbGVIb2xkZXI6OkNvbXByZXNzZWRM
YXp5T3BlcmFuZFZhbHVlUHJvZmlsZUhvbGRlcigpIHsgfQogQ29tcHJlc3NlZExhenlPcGVyYW5k
VmFsdWVQcm9maWxlSG9sZGVyOjp+Q29tcHJlc3NlZExhenlPcGVyYW5kVmFsdWVQcm9maWxlSG9s
ZGVyKCkgeyB9CiAKLXZvaWQgQ29tcHJlc3NlZExhenlPcGVyYW5kVmFsdWVQcm9maWxlSG9sZGVy
Ojpjb21wdXRlVXBkYXRlZFByZWRpY3Rpb25zKCkKK3ZvaWQgQ29tcHJlc3NlZExhenlPcGVyYW5k
VmFsdWVQcm9maWxlSG9sZGVyOjpjb21wdXRlVXBkYXRlZFByZWRpY3Rpb25zKE9wZXJhdGlvbklu
UHJvZ3Jlc3Mgb3BlcmF0aW9uKQogewogICAgIGlmICghbV9kYXRhKQogICAgICAgICByZXR1cm47
CiAgICAgCiAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IG1fZGF0YS0+c2l6ZSgpOyArK2kp
Ci0gICAgICAgIG1fZGF0YS0+YXQoaSkuY29tcHV0ZVVwZGF0ZWRQcmVkaWN0aW9uKCk7CisgICAg
ICAgIG1fZGF0YS0+YXQoaSkuY29tcHV0ZVVwZGF0ZWRQcmVkaWN0aW9uKG9wZXJhdGlvbik7CiB9
CiAKIExhenlPcGVyYW5kVmFsdWVQcm9maWxlKiBDb21wcmVzc2VkTGF6eU9wZXJhbmRWYWx1ZVBy
b2ZpbGVIb2xkZXI6OmFkZCgKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9M
YXp5T3BlcmFuZFZhbHVlUHJvZmlsZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ieXRlY29kZS9MYXp5T3BlcmFuZFZhbHVlUHJvZmlsZS5oCShyZXZpc2lvbiAxMTc4MzAp
CisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvTGF6eU9wZXJhbmRWYWx1ZVByb2Zp
bGUuaAkod29ya2luZyBjb3B5KQpAQCAtMTU1LDcgKzE1NSw3IEBAIHB1YmxpYzoKICAgICBDb21w
cmVzc2VkTGF6eU9wZXJhbmRWYWx1ZVByb2ZpbGVIb2xkZXIoKTsKICAgICB+Q29tcHJlc3NlZExh
enlPcGVyYW5kVmFsdWVQcm9maWxlSG9sZGVyKCk7CiAgICAgCi0gICAgdm9pZCBjb21wdXRlVXBk
YXRlZFByZWRpY3Rpb25zKCk7CisgICAgdm9pZCBjb21wdXRlVXBkYXRlZFByZWRpY3Rpb25zKE9w
ZXJhdGlvbkluUHJvZ3Jlc3MpOwogICAgIAogICAgIExhenlPcGVyYW5kVmFsdWVQcm9maWxlKiBh
ZGQoY29uc3QgTGF6eU9wZXJhbmRWYWx1ZVByb2ZpbGVLZXkmIGtleSk7CiAgICAgCkluZGV4OiBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvT3Bjb2RlLmgKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL09wY29kZS5oCShyZXZpc2lvbiAxMTc4MzApCisr
KyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvT3Bjb2RlLmgJKHdvcmtpbmcgY29weSkK
QEAgLTQ0LDcgKzQ0LDcgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIG1hY3JvKG9wX2NyZWF0
ZV9hcmd1bWVudHMsIDIpIFwKICAgICAgICAgbWFjcm8ob3BfY3JlYXRlX3RoaXMsIDMpIFwKICAg
ICAgICAgbWFjcm8ob3BfZ2V0X2NhbGxlZSwgMikgXAotICAgICAgICBtYWNybyhvcF9jb252ZXJ0
X3RoaXMsIDIpIFwKKyAgICAgICAgbWFjcm8ob3BfY29udmVydF90aGlzLCAzKSBcCiAgICAgICAg
IFwKICAgICAgICAgbWFjcm8ob3BfbmV3X29iamVjdCwgMikgXAogICAgICAgICBtYWNybyhvcF9u
ZXdfYXJyYXksIDQpIFwKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9WYWx1
ZVByb2ZpbGUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUv
VmFsdWVQcm9maWxlLmgJKHJldmlzaW9uIDExNzgzMCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ieXRlY29kZS9WYWx1ZVByb2ZpbGUuaAkod29ya2luZyBjb3B5KQpAQCAtMzMsNiArMzMsNyBA
QAogCiAjaWYgRU5BQkxFKFZBTFVFX1BST0ZJTEVSKQogCisjaW5jbHVkZSAiSGVhcC5oIgogI2lu
Y2x1ZGUgIkpTQXJyYXkuaCIKICNpbmNsdWRlICJQcmVkaWN0ZWRUeXBlLmgiCiAjaW5jbHVkZSAi
U3RydWN0dXJlLmgiCkBAIC01MSw2ICs1Miw3IEBAIHN0cnVjdCBWYWx1ZVByb2ZpbGVCYXNlIHsK
ICAgICAgICAgOiBtX2J5dGVjb2RlT2Zmc2V0KC0xKQogICAgICAgICAsIG1fcHJlZGljdGlvbihQ
cmVkaWN0Tm9uZSkKICAgICAgICAgLCBtX251bWJlck9mU2FtcGxlc0luUHJlZGljdGlvbigwKQor
ICAgICAgICAsIG1fc2luZ2xldG9uVmFsdWVJc1RvcChmYWxzZSkKICAgICB7CiAgICAgICAgIGZv
ciAodW5zaWduZWQgaSA9IDA7IGkgPCB0b3RhbE51bWJlck9mQnVja2V0czsgKytpKQogICAgICAg
ICAgICAgbV9idWNrZXRzW2ldID0gSlNWYWx1ZTo6ZW5jb2RlKEpTVmFsdWUoKSk7CkBAIC02MCw2
ICs2Miw3IEBAIHN0cnVjdCBWYWx1ZVByb2ZpbGVCYXNlIHsKICAgICAgICAgOiBtX2J5dGVjb2Rl
T2Zmc2V0KGJ5dGVjb2RlT2Zmc2V0KQogICAgICAgICAsIG1fcHJlZGljdGlvbihQcmVkaWN0Tm9u
ZSkKICAgICAgICAgLCBtX251bWJlck9mU2FtcGxlc0luUHJlZGljdGlvbigwKQorICAgICAgICAs
IG1fc2luZ2xldG9uVmFsdWVJc1RvcChmYWxzZSkKICAgICB7CiAgICAgICAgIGZvciAodW5zaWdu
ZWQgaSA9IDA7IGkgPCB0b3RhbE51bWJlck9mQnVja2V0czsgKytpKQogICAgICAgICAgICAgbV9i
dWNrZXRzW2ldID0gSlNWYWx1ZTo6ZW5jb2RlKEpTVmFsdWUoKSk7CkBAIC0xMTIsNiArMTE1LDEx
IEBAIHN0cnVjdCBWYWx1ZVByb2ZpbGVCYXNlIHsKICAgICAgICAgICAgICAgICAic2FtcGxlcyA9
ICV1LCBwcmVkaWN0aW9uID0gJXMiLAogICAgICAgICAgICAgICAgIHRvdGFsTnVtYmVyT2ZTYW1w
bGVzKCksCiAgICAgICAgICAgICAgICAgcHJlZGljdGlvblRvU3RyaW5nKG1fcHJlZGljdGlvbikp
OworICAgICAgICBmcHJpbnRmKG91dCwgIiwgdmFsdWUgPSAiKTsKKyAgICAgICAgaWYgKG1fc2lu
Z2xldG9uVmFsdWVJc1RvcCkKKyAgICAgICAgICAgIGZwcmludGYob3V0LCAiVE9QIik7CisgICAg
ICAgIGVsc2UKKyAgICAgICAgICAgIGZwcmludGYob3V0LCAiJXMiLCBtX3NpbmdsZXRvblZhbHVl
LmRlc2NyaXB0aW9uKCkpOwogICAgICAgICBib29sIGZpcnN0ID0gdHJ1ZTsKICAgICAgICAgZm9y
ICh1bnNpZ25lZCBpID0gMDsgaSA8IHRvdGFsTnVtYmVyT2ZCdWNrZXRzOyArK2kpIHsKICAgICAg
ICAgICAgIEpTVmFsdWUgdmFsdWUgPSBKU1ZhbHVlOjpkZWNvZGUobV9idWNrZXRzW2ldKTsKQEAg
LTEyNyw3ICsxMzUsNyBAQCBzdHJ1Y3QgVmFsdWVQcm9maWxlQmFzZSB7CiAgICAgfQogICAgIAog
ICAgIC8vIFVwZGF0ZXMgdGhlIHByZWRpY3Rpb24gYW5kIHJldHVybnMgdGhlIG5ldyBvbmUuCi0g
ICAgUHJlZGljdGVkVHlwZSBjb21wdXRlVXBkYXRlZFByZWRpY3Rpb24oKQorICAgIFByZWRpY3Rl
ZFR5cGUgY29tcHV0ZVVwZGF0ZWRQcmVkaWN0aW9uKE9wZXJhdGlvbkluUHJvZ3Jlc3Mgb3BlcmF0
aW9uID0gTm9PcGVyYXRpb24pCiAgICAgewogICAgICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBp
IDwgdG90YWxOdW1iZXJPZkJ1Y2tldHM7ICsraSkgewogICAgICAgICAgICAgSlNWYWx1ZSB2YWx1
ZSA9IEpTVmFsdWU6OmRlY29kZShtX2J1Y2tldHNbaV0pOwpAQCAtMTM3LDkgKzE0NSwyMyBAQCBz
dHJ1Y3QgVmFsdWVQcm9maWxlQmFzZSB7CiAgICAgICAgICAgICBtX251bWJlck9mU2FtcGxlc0lu
UHJlZGljdGlvbisrOwogICAgICAgICAgICAgbWVyZ2VQcmVkaWN0aW9uKG1fcHJlZGljdGlvbiwg
cHJlZGljdGlvbkZyb21WYWx1ZSh2YWx1ZSkpOwogICAgICAgICAgICAgCisgICAgICAgICAgICBp
ZiAoIW1fc2luZ2xldG9uVmFsdWVJc1RvcCAmJiAhIXZhbHVlKSB7CisgICAgICAgICAgICAgICAg
aWYgKCFtX3NpbmdsZXRvblZhbHVlKQorICAgICAgICAgICAgICAgICAgICBtX3NpbmdsZXRvblZh
bHVlID0gdmFsdWU7CisgICAgICAgICAgICAgICAgZWxzZSBpZiAobV9zaW5nbGV0b25WYWx1ZSAh
PSB2YWx1ZSkKKyAgICAgICAgICAgICAgICAgICAgbV9zaW5nbGV0b25WYWx1ZUlzVG9wID0gdHJ1
ZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIAogICAgICAgICAgICAgbV9idWNrZXRzW2ld
ID0gSlNWYWx1ZTo6ZW5jb2RlKEpTVmFsdWUoKSk7CiAgICAgICAgIH0KICAgICAgICAgCisgICAg
ICAgIGlmIChvcGVyYXRpb24gPT0gQ29sbGVjdGlvbgorICAgICAgICAgICAgJiYgIW1fc2luZ2xl
dG9uVmFsdWVJc1RvcAorICAgICAgICAgICAgJiYgISFtX3NpbmdsZXRvblZhbHVlCisgICAgICAg
ICAgICAmJiBtX3NpbmdsZXRvblZhbHVlLmlzQ2VsbCgpCisgICAgICAgICAgICAmJiAhSGVhcDo6
aXNNYXJrZWQobV9zaW5nbGV0b25WYWx1ZS5hc0NlbGwoKSkpCisgICAgICAgICAgICBtX3Npbmds
ZXRvblZhbHVlSXNUb3AgPSB0cnVlOworICAgICAgICAgICAgCiAgICAgICAgIHJldHVybiBtX3By
ZWRpY3Rpb247CiAgICAgfQogICAgIApAQCAtMTQ4LDYgKzE3MCw5IEBAIHN0cnVjdCBWYWx1ZVBy
b2ZpbGVCYXNlIHsKICAgICBQcmVkaWN0ZWRUeXBlIG1fcHJlZGljdGlvbjsKICAgICB1bnNpZ25l
ZCBtX251bWJlck9mU2FtcGxlc0luUHJlZGljdGlvbjsKICAgICAKKyAgICBib29sIG1fc2luZ2xl
dG9uVmFsdWVJc1RvcDsKKyAgICBKU1ZhbHVlIG1fc2luZ2xldG9uVmFsdWU7CisKICAgICBFbmNv
ZGVkSlNWYWx1ZSBtX2J1Y2tldHNbdG90YWxOdW1iZXJPZkJ1Y2tldHNdOwogfTsKIApJbmRleDog
U291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb21waWxlci9CeXRlY29kZUdlbmVyYXRvci5jcHAK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb21waWxlci9CeXRlY29k
ZUdlbmVyYXRvci5jcHAJKHJldmlzaW9uIDExNzgzMCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ieXRlY29tcGlsZXIvQnl0ZWNvZGVHZW5lcmF0b3IuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00
NTQsOCArNDU0LDkgQEAgQnl0ZWNvZGVHZW5lcmF0b3I6OkJ5dGVjb2RlR2VuZXJhdG9yKEZ1bgog
ICAgICAgICBpbnN0cnVjdGlvbnMoKS5hcHBlbmQobV90aGlzUmVnaXN0ZXIuaW5kZXgoKSk7CiAg
ICAgICAgIGluc3RydWN0aW9ucygpLmFwcGVuZChmdW5jUHJvdG8tPmluZGV4KCkpOwogICAgIH0g
ZWxzZSBpZiAoIWNvZGVCbG9jay0+aXNTdHJpY3RNb2RlKCkgJiYgKGZ1bmN0aW9uQm9keS0+dXNl
c1RoaXMoKSB8fCBjb2RlQmxvY2stPnVzZXNFdmFsKCkgfHwgbV9zaG91bGRFbWl0RGVidWdIb29r
cykpIHsKLSAgICAgICAgZW1pdE9wY29kZShvcF9jb252ZXJ0X3RoaXMpOworICAgICAgICBWYWx1
ZVByb2ZpbGUqIHByb2ZpbGUgPSBlbWl0UHJvZmlsZWRPcGNvZGUob3BfY29udmVydF90aGlzKTsK
ICAgICAgICAgaW5zdHJ1Y3Rpb25zKCkuYXBwZW5kKG1fdGhpc1JlZ2lzdGVyLmluZGV4KCkpOwor
ICAgICAgICBpbnN0cnVjdGlvbnMoKS5hcHBlbmQocHJvZmlsZSk7CiAgICAgfQogfQogCkluZGV4
OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0J5dGVDb2RlUGFyc2VyLmNwcAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0J5dGVDb2RlUGFyc2VyLmNwcAko
cmV2aXNpb24gMTE3ODMwKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdCeXRlQ29k
ZVBhcnNlci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTM0OCw4ICszNDgsOSBAQCBwcml2YXRlOgog
ICAgICAgICBzdGFjay0+bV9hcmd1bWVudFBvc2l0aW9uc1thcmd1bWVudF0tPmFkZFZhcmlhYmxl
KHZhcmlhYmxlQWNjZXNzRGF0YSk7CiAgICAgICAgIE5vZGVJbmRleCBub2RlSW5kZXggPSBhZGRU
b0dyYXBoKFNldExvY2FsLCBPcEluZm8odmFyaWFibGVBY2Nlc3NEYXRhKSwgdmFsdWUpOwogICAg
ICAgICBtX2N1cnJlbnRCbG9jay0+dmFyaWFibGVzQXRUYWlsLmFyZ3VtZW50KGFyZ3VtZW50KSA9
IG5vZGVJbmRleDsKLSAgICAgICAgLy8gQWx3YXlzIGZsdXNoIGFyZ3VtZW50cy4KLSAgICAgICAg
YWRkVG9HcmFwaChGbHVzaCwgT3BJbmZvKHZhcmlhYmxlQWNjZXNzRGF0YSksIG5vZGVJbmRleCk7
CisgICAgICAgIC8vIEFsd2F5cyBmbHVzaCBhcmd1bWVudHMsIGV4Y2VwdCBmb3IgJ3RoaXMnLgor
ICAgICAgICBpZiAoYXJndW1lbnQpCisgICAgICAgICAgICBhZGRUb0dyYXBoKEZsdXNoLCBPcElu
Zm8odmFyaWFibGVBY2Nlc3NEYXRhKSwgbm9kZUluZGV4KTsKICAgICB9CiAgICAgCiAgICAgVmFy
aWFibGVBY2Nlc3NEYXRhKiBmbHVzaEFyZ3VtZW50KGludCBvcGVyYW5kKQpAQCAtMTU1NSwxMCAr
MTU1NiwyNyBAQCBib29sIEJ5dGVDb2RlUGFyc2VyOjpwYXJzZUJsb2NrKHVuc2lnbmVkCiAKICAg
ICAgICAgY2FzZSBvcF9jb252ZXJ0X3RoaXM6IHsKICAgICAgICAgICAgIE5vZGVJbmRleCBvcDEg
PSBnZXRUaGlzKCk7Ci0gICAgICAgICAgICBpZiAobV9ncmFwaFtvcDFdLm9wKCkgPT0gQ29udmVy
dFRoaXMpCi0gICAgICAgICAgICAgICAgc2V0VGhpcyhvcDEpOwotICAgICAgICAgICAgZWxzZQot
ICAgICAgICAgICAgICAgIHNldFRoaXMoYWRkVG9HcmFwaChDb252ZXJ0VGhpcywgb3AxKSk7Cisg
ICAgICAgICAgICBpZiAobV9ncmFwaFtvcDFdLm9wKCkgIT0gQ29udmVydFRoaXMpIHsKKyAgICAg
ICAgICAgICAgICBWYWx1ZVByb2ZpbGUqIHByb2ZpbGUgPQorICAgICAgICAgICAgICAgICAgICBt
X2lubGluZVN0YWNrVG9wLT5tX3Byb2ZpbGVkQmxvY2stPnZhbHVlUHJvZmlsZUZvckJ5dGVjb2Rl
T2Zmc2V0KG1fY3VycmVudFByb2ZpbGluZ0luZGV4KTsKKyAgICAgICAgICAgICAgICBwcm9maWxl
LT5jb21wdXRlVXBkYXRlZFByZWRpY3Rpb24oKTsKKyNpZiBERkdfRU5BQkxFKERFQlVHX1ZFUkJP
U0UpCisgICAgICAgICAgICAgICAgZGF0YUxvZygiW0AlbHUgYmMjJXVdOiBwcm9maWxlICVwOiAi
LCBtX2dyYXBoLnNpemUoKSwgbV9jdXJyZW50UHJvZmlsaW5nSW5kZXgsIHByb2ZpbGUpOworICAg
ICAgICAgICAgICAgIHByb2ZpbGUtPmR1bXAoV1RGOjpkYXRhRmlsZSgpKTsKKyAgICAgICAgICAg
ICAgICBkYXRhTG9nKCJcbiIpOworI2VuZGlmCisgICAgICAgICAgICAgICAgaWYgKHByb2ZpbGUt
Pm1fc2luZ2xldG9uVmFsdWVJc1RvcAorICAgICAgICAgICAgICAgICAgICB8fCAhcHJvZmlsZS0+
bV9zaW5nbGV0b25WYWx1ZQorICAgICAgICAgICAgICAgICAgICB8fCAhcHJvZmlsZS0+bV9zaW5n
bGV0b25WYWx1ZS5pc0NlbGwoKQorICAgICAgICAgICAgICAgICAgICB8fCBwcm9maWxlLT5tX3Np
bmdsZXRvblZhbHVlLmFzQ2VsbCgpLT5jbGFzc0luZm8oKSAhPSAmU3RydWN0dXJlOjpzX2luZm8p
CisgICAgICAgICAgICAgICAgICAgIHNldFRoaXMoYWRkVG9HcmFwaChDb252ZXJ0VGhpcywgb3Ax
KSk7CisgICAgICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIGFkZFRvR3Jh
cGgoCisgICAgICAgICAgICAgICAgICAgICAgICBDaGVja1N0cnVjdHVyZSwKKyAgICAgICAgICAg
ICAgICAgICAgICAgIE9wSW5mbyhtX2dyYXBoLmFkZFN0cnVjdHVyZVNldChqc0Nhc3Q8U3RydWN0
dXJlKj4ocHJvZmlsZS0+bV9zaW5nbGV0b25WYWx1ZS5hc0NlbGwoKSkpKSwKKyAgICAgICAgICAg
ICAgICAgICAgICAgIG9wMSk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQogICAg
ICAgICAgICAgTkVYVF9PUENPREUob3BfY29udmVydF90aGlzKTsKICAgICAgICAgfQogCkluZGV4
OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVE9wY29kZXMzMl82NC5jcHAKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRPcGNvZGVzMzJfNjQuY3BwCShyZXZp
c2lvbiAxMTc4MzApCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVE9wY29kZXMzMl82
NC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTE1NjYsMTIgKzE1NjYsMTUgQEAgdm9pZCBKSVQ6OmVt
aXRfb3BfY29udmVydF90aGlzKEluc3RydWN0aQogewogICAgIHVuc2lnbmVkIHRoaXNSZWdpc3Rl
ciA9IGN1cnJlbnRJbnN0cnVjdGlvblsxXS51Lm9wZXJhbmQ7CiAKLSAgICBlbWl0TG9hZCh0aGlz
UmVnaXN0ZXIsIHJlZ1QxLCByZWdUMCk7CisgICAgZW1pdExvYWQodGhpc1JlZ2lzdGVyLCByZWdU
MywgcmVnVDIpOwogCi0gICAgYWRkU2xvd0Nhc2UoYnJhbmNoMzIoTm90RXF1YWwsIHJlZ1QxLCBU
cnVzdGVkSW1tMzIoSlNWYWx1ZTo6Q2VsbFRhZykpKTsKLSAgICBhZGRTbG93Q2FzZShicmFuY2hQ
dHIoRXF1YWwsIEFkZHJlc3MocmVnVDAsIEpTQ2VsbDo6Y2xhc3NJbmZvT2Zmc2V0KCkpLCBUcnVz
dGVkSW1tUHRyKCZKU1N0cmluZzo6c19pbmZvKSkpOwotCi0gICAgbWFwKG1fYnl0ZWNvZGVPZmZz
ZXQgKyBPUENPREVfTEVOR1RIKG9wX2NvbnZlcnRfdGhpcyksIHRoaXNSZWdpc3RlciwgcmVnVDEs
IHJlZ1QwKTsKKyAgICBhZGRTbG93Q2FzZShicmFuY2gzMihOb3RFcXVhbCwgcmVnVDMsIFRydXN0
ZWRJbW0zMihKU1ZhbHVlOjpDZWxsVGFnKSkpOworICAgIGlmIChzaG91bGRFbWl0UHJvZmlsaW5n
KCkpIHsKKyAgICAgICAgbG9hZFB0cihBZGRyZXNzKHJlZ1QyLCBKU0NlbGw6OnN0cnVjdHVyZU9m
ZnNldCgpKSwgcmVnVDApOworICAgICAgICBtb3ZlKHJlZ1QzLCByZWdUMSk7CisgICAgICAgIGVt
aXRWYWx1ZVByb2ZpbGluZ1NpdGUoKTsKKyAgICB9CisgICAgYWRkU2xvd0Nhc2UoYnJhbmNoUHRy
KEVxdWFsLCBBZGRyZXNzKHJlZ1QyLCBKU0NlbGw6OmNsYXNzSW5mb09mZnNldCgpKSwgVHJ1c3Rl
ZEltbVB0cigmSlNTdHJpbmc6OnNfaW5mbykpKTsKIH0KIAogdm9pZCBKSVQ6OmVtaXRTbG93X29w
X2NvbnZlcnRfdGhpcyhJbnN0cnVjdGlvbiogY3VycmVudEluc3RydWN0aW9uLCBWZWN0b3I8U2xv
d0Nhc2VFbnRyeT46Oml0ZXJhdG9yJiBpdGVyKQpAQCAtMTU4MCwxNiArMTU4MywyNiBAQCB2b2lk
IEpJVDo6ZW1pdFNsb3dfb3BfY29udmVydF90aGlzKEluc3RyCiAgICAgdW5zaWduZWQgdGhpc1Jl
Z2lzdGVyID0gY3VycmVudEluc3RydWN0aW9uWzFdLnUub3BlcmFuZDsKIAogICAgIGxpbmtTbG93
Q2FzZShpdGVyKTsKLSAgICBKdW1wIGlzTm90VW5kZWZpbmVkID0gYnJhbmNoMzIoTm90RXF1YWws
IHJlZ1QxLCBUcnVzdGVkSW1tMzIoSlNWYWx1ZTo6VW5kZWZpbmVkVGFnKSk7CisgICAgaWYgKHNo
b3VsZEVtaXRQcm9maWxpbmcoKSkgeworICAgICAgICBtb3ZlKFRydXN0ZWRJbW0zMihKU1ZhbHVl
OjpVbmRlZmluZWRUYWcpLCByZWdUMSk7CisgICAgICAgIG1vdmUoVHJ1c3RlZEltbTMyKDApLCBy
ZWdUMCk7CisgICAgfQorICAgIEp1bXAgaXNOb3RVbmRlZmluZWQgPSBicmFuY2gzMihOb3RFcXVh
bCwgcmVnVDMsIFRydXN0ZWRJbW0zMihKU1ZhbHVlOjpVbmRlZmluZWRUYWcpKTsKKyAgICBlbWl0
VmFsdWVQcm9maWxpbmdTaXRlKCk7CiAgICAgbW92ZShUcnVzdGVkSW1tUHRyKGdsb2JhbFRoaXMp
LCByZWdUMCk7CiAgICAgbW92ZShUcnVzdGVkSW1tMzIoSlNWYWx1ZTo6Q2VsbFRhZyksIHJlZ1Qx
KTsKICAgICBlbWl0U3RvcmUodGhpc1JlZ2lzdGVyLCByZWdUMSwgcmVnVDApOwogICAgIGVtaXRK
dW1wU2xvd1RvSG90KGp1bXAoKSwgT1BDT0RFX0xFTkdUSChvcF9jb252ZXJ0X3RoaXMpKTsKIAot
ICAgIGlzTm90VW5kZWZpbmVkLmxpbmsodGhpcyk7CiAgICAgbGlua1Nsb3dDYXNlKGl0ZXIpOwor
ICAgIGlmIChzaG91bGRFbWl0UHJvZmlsaW5nKCkpIHsKKyAgICAgICAgbW92ZShUcnVzdGVkSW1t
MzIoSlNWYWx1ZTo6Q2VsbFRhZyksIHJlZ1QxKTsKKyAgICAgICAgbW92ZShUcnVzdGVkSW1tUHRy
KG1fZ2xvYmFsRGF0YS0+c3RyaW5nU3RydWN0dXJlLmdldCgpKSwgcmVnVDApOworICAgIH0KKyAg
ICBpc05vdFVuZGVmaW5lZC5saW5rKHRoaXMpOworICAgIGVtaXRWYWx1ZVByb2ZpbGluZ1NpdGUo
KTsKICAgICBKSVRTdHViQ2FsbCBzdHViQ2FsbCh0aGlzLCBjdGlfb3BfY29udmVydF90aGlzKTsK
LSAgICBzdHViQ2FsbC5hZGRBcmd1bWVudChyZWdUMSwgcmVnVDApOworICAgIHN0dWJDYWxsLmFk
ZEFyZ3VtZW50KHJlZ1QzLCByZWdUMik7CiAgICAgc3R1YkNhbGwuY2FsbCh0aGlzUmVnaXN0ZXIp
OwogfQogCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVE9wY29kZXMuY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUT3Bjb2Rlcy5jcHAJKHJl
dmlzaW9uIDExNzgzMCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUT3Bjb2Rlcy5j
cHAJKHdvcmtpbmcgY29weSkKQEAgLTEyNTYsMTAgKzEyNTYsMTQgQEAgdm9pZCBKSVQ6OmVtaXRf
b3BfaW5pdF9sYXp5X3JlZyhJbnN0cnVjdAogCiB2b2lkIEpJVDo6ZW1pdF9vcF9jb252ZXJ0X3Ro
aXMoSW5zdHJ1Y3Rpb24qIGN1cnJlbnRJbnN0cnVjdGlvbikKIHsKLSAgICBlbWl0R2V0VmlydHVh
bFJlZ2lzdGVyKGN1cnJlbnRJbnN0cnVjdGlvblsxXS51Lm9wZXJhbmQsIHJlZ1QwKTsKKyAgICBl
bWl0R2V0VmlydHVhbFJlZ2lzdGVyKGN1cnJlbnRJbnN0cnVjdGlvblsxXS51Lm9wZXJhbmQsIHJl
Z1QxKTsKIAotICAgIGVtaXRKdW1wU2xvd0Nhc2VJZk5vdEpTQ2VsbChyZWdUMCk7Ci0gICAgYWRk
U2xvd0Nhc2UoYnJhbmNoUHRyKEVxdWFsLCBBZGRyZXNzKHJlZ1QwLCBKU0NlbGw6OmNsYXNzSW5m
b09mZnNldCgpKSwgVHJ1c3RlZEltbVB0cigmSlNTdHJpbmc6OnNfaW5mbykpKTsKKyAgICBlbWl0
SnVtcFNsb3dDYXNlSWZOb3RKU0NlbGwocmVnVDEpOworICAgIGlmIChzaG91bGRFbWl0UHJvZmls
aW5nKCkpIHsKKyAgICAgICAgbG9hZFB0cihBZGRyZXNzKHJlZ1QxLCBKU0NlbGw6OnN0cnVjdHVy
ZU9mZnNldCgpKSwgcmVnVDApOworICAgICAgICBlbWl0VmFsdWVQcm9maWxpbmdTaXRlKCk7Cisg
ICAgfQorICAgIGFkZFNsb3dDYXNlKGJyYW5jaFB0cihFcXVhbCwgQWRkcmVzcyhyZWdUMSwgSlND
ZWxsOjpjbGFzc0luZm9PZmZzZXQoKSksIFRydXN0ZWRJbW1QdHIoJkpTU3RyaW5nOjpzX2luZm8p
KSk7CiB9CiAKIHZvaWQgSklUOjplbWl0X29wX2dldF9jYWxsZWUoSW5zdHJ1Y3Rpb24qIGN1cnJl
bnRJbnN0cnVjdGlvbikKQEAgLTEzMzIsMTMgKzEzMzYsMTkgQEAgdm9pZCBKSVQ6OmVtaXRTbG93
X29wX2NvbnZlcnRfdGhpcyhJbnN0cgogICAgIHZvaWQqIGdsb2JhbFRoaXMgPSBtX2NvZGVCbG9j
ay0+Z2xvYmFsT2JqZWN0KCktPmdsb2JhbFNjb3BlQ2hhaW4oKS0+Z2xvYmFsVGhpcy5nZXQoKTsK
IAogICAgIGxpbmtTbG93Q2FzZShpdGVyKTsKLSAgICBKdW1wIGlzTm90VW5kZWZpbmVkID0gYnJh
bmNoUHRyKE5vdEVxdWFsLCByZWdUMCwgVHJ1c3RlZEltbVB0cihKU1ZhbHVlOjplbmNvZGUoanNV
bmRlZmluZWQoKSkpKTsKKyAgICBpZiAoc2hvdWxkRW1pdFByb2ZpbGluZygpKQorICAgICAgICBt
b3ZlKFRydXN0ZWRJbW1QdHIoYml0d2lzZV9jYXN0PHZvaWQqPihKU1ZhbHVlOjplbmNvZGUoanNV
bmRlZmluZWQoKSkpKSwgcmVnVDApOworICAgIEp1bXAgaXNOb3RVbmRlZmluZWQgPSBicmFuY2hQ
dHIoTm90RXF1YWwsIHJlZ1QxLCBUcnVzdGVkSW1tUHRyKEpTVmFsdWU6OmVuY29kZShqc1VuZGVm
aW5lZCgpKSkpOworICAgIGVtaXRWYWx1ZVByb2ZpbGluZ1NpdGUoKTsKICAgICBtb3ZlKFRydXN0
ZWRJbW1QdHIoZ2xvYmFsVGhpcyksIHJlZ1QwKTsKICAgICBlbWl0UHV0VmlydHVhbFJlZ2lzdGVy
KGN1cnJlbnRJbnN0cnVjdGlvblsxXS51Lm9wZXJhbmQsIHJlZ1QwKTsKICAgICBlbWl0SnVtcFNs
b3dUb0hvdChqdW1wKCksIE9QQ09ERV9MRU5HVEgob3BfY29udmVydF90aGlzKSk7CiAKLSAgICBp
c05vdFVuZGVmaW5lZC5saW5rKHRoaXMpOwogICAgIGxpbmtTbG93Q2FzZShpdGVyKTsKKyAgICBp
ZiAoc2hvdWxkRW1pdFByb2ZpbGluZygpKQorICAgICAgICBtb3ZlKFRydXN0ZWRJbW1QdHIoYml0
d2lzZV9jYXN0PHZvaWQqPihKU1ZhbHVlOjplbmNvZGUobV9nbG9iYWxEYXRhLT5zdHJpbmdTdHJ1
Y3R1cmUuZ2V0KCkpKSksIHJlZ1QwKTsKKyAgICBpc05vdFVuZGVmaW5lZC5saW5rKHRoaXMpOwor
ICAgIGVtaXRWYWx1ZVByb2ZpbGluZ1NpdGUoKTsKICAgICBKSVRTdHViQ2FsbCBzdHViQ2FsbCh0
aGlzLCBjdGlfb3BfY29udmVydF90aGlzKTsKICAgICBzdHViQ2FsbC5hZGRBcmd1bWVudChyZWdU
MCk7CiAgICAgc3R1YkNhbGwuY2FsbChjdXJyZW50SW5zdHJ1Y3Rpb25bMV0udS5vcGVyYW5kKTsK
SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9MTEludFNsb3dQYXRocy5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xMSW50U2xvd1BhdGhzLmNw
cAkocmV2aXNpb24gMTE3ODMwKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xMSW50
U2xvd1BhdGhzLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDc0LDYgKzQ3NCw4IEBAIExMSU5UX1NM
T1dfUEFUSF9ERUNMKHNsb3dfcGF0aF9jb252ZXJ0X3QKICAgICBMTElOVF9CRUdJTigpOwogICAg
IEpTVmFsdWUgdjEgPSBMTElOVF9PUCgxKS5qc1ZhbHVlKCk7CiAgICAgQVNTRVJUKHYxLmlzUHJp
bWl0aXZlKCkpOworICAgIHBjW09QQ09ERV9MRU5HVEgob3BfY29udmVydF90aGlzKSAtIDFdLnUu
cHJvZmlsZS0+bV9idWNrZXRzWzBdID0KKyAgICAgICAgSlNWYWx1ZTo6ZW5jb2RlKHYxLnN0cnVj
dHVyZU9yVW5kZWZpbmVkKCkpOwogICAgIExMSU5UX1JFVFVSTih2MS50b1RoaXNPYmplY3QoZXhl
YykpOwogfQogCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTG93TGV2ZWxJbnRl
cnByZXRlcjMyXzY0LmFzbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxp
bnQvTG93TGV2ZWxJbnRlcnByZXRlcjMyXzY0LmFzbQkocmV2aXNpb24gMTE3ODMwKQorKysgU291
cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xvd0xldmVsSW50ZXJwcmV0ZXIzMl82NC5hc20JKHdv
cmtpbmcgY29weSkKQEAgLTM3OCwxMSArMzc4LDEzIEBAIF9sbGludF9vcF9jb252ZXJ0X3RoaXM6
CiAgICAgbG9hZGkgUGF5bG9hZE9mZnNldFtjZnIsIHQwLCA4XSwgdDAKICAgICBsb2FkcCBKU0Nl
bGw6Om1fc3RydWN0dXJlW3QwXSwgdDAKICAgICBiYmIgU3RydWN0dXJlOjptX3R5cGVJbmZvICsg
VHlwZUluZm86Om1fdHlwZVt0MF0sIE9iamVjdFR5cGUsIC5vcENvbnZlcnRUaGlzU2xvdwotICAg
IGRpc3BhdGNoKDIpCisgICAgbG9hZGkgOFtQQ10sIHQxCisgICAgdmFsdWVQcm9maWxlKENlbGxU
YWcsIHQwLCB0MSkKKyAgICBkaXNwYXRjaCgzKQogCiAub3BDb252ZXJ0VGhpc1Nsb3c6CiAgICAg
Y2FsbFNsb3dQYXRoKF9sbGludF9zbG93X3BhdGhfY29udmVydF90aGlzKQotICAgIGRpc3BhdGNo
KDIpCisgICAgZGlzcGF0Y2goMykKIAogCiBfbGxpbnRfb3BfbmV3X29iamVjdDoKSW5kZXg6IFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9Mb3dMZXZlbEludGVycHJldGVyNjQuYXNtCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9Mb3dMZXZlbEludGVycHJldGVy
NjQuYXNtCShyZXZpc2lvbiAxMTc4MzApCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQv
TG93TGV2ZWxJbnRlcnByZXRlcjY0LmFzbQkod29ya2luZyBjb3B5KQpAQCAtMjU0LDExICsyNTQs
MTMgQEAgX2xsaW50X29wX2NvbnZlcnRfdGhpczoKICAgICBidHBueiB0MCwgdGFnTWFzaywgLm9w
Q29udmVydFRoaXNTbG93CiAgICAgbG9hZHAgSlNDZWxsOjptX3N0cnVjdHVyZVt0MF0sIHQwCiAg
ICAgYmJiIFN0cnVjdHVyZTo6bV90eXBlSW5mbyArIFR5cGVJbmZvOjptX3R5cGVbdDBdLCBPYmpl
Y3RUeXBlLCAub3BDb252ZXJ0VGhpc1Nsb3cKLSAgICBkaXNwYXRjaCgyKQorICAgIGxvYWRwIDE2
W1BCLCBQQywgOF0sIHQxCisgICAgdmFsdWVQcm9maWxlKHQwLCB0MSkKKyAgICBkaXNwYXRjaCgz
KQogCiAub3BDb252ZXJ0VGhpc1Nsb3c6CiAgICAgY2FsbFNsb3dQYXRoKF9sbGludF9zbG93X3Bh
dGhfY29udmVydF90aGlzKQotICAgIGRpc3BhdGNoKDIpCisgICAgZGlzcGF0Y2goMykKIAogCiBf
bGxpbnRfb3BfbmV3X29iamVjdDoKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0pTVmFsdWUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9K
U1ZhbHVlLmgJKHJldmlzaW9uIDExNzgzMCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL0pTVmFsdWUuaAkod29ya2luZyBjb3B5KQpAQCAtMjM5LDYgKzIzOSw4IEBAIG5hbWVzcGFj
ZSBKU0MgewogICAgICAgICBib29sIGlzQ2VsbCgpIGNvbnN0OwogICAgICAgICBKU0NlbGwqIGFz
Q2VsbCgpIGNvbnN0OwogICAgICAgICBKU19FWFBPUlRfUFJJVkFURSBib29sIGlzVmFsaWRDYWxs
ZWUoKTsKKyAgICAgICAgCisgICAgICAgIEpTVmFsdWUgc3RydWN0dXJlT3JVbmRlZmluZWQoKSBj
b25zdDsKIAogICAgICAgICBjaGFyKiBkZXNjcmlwdGlvbigpIGNvbnN0OwogCkluZGV4OiBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJ1Y3R1cmUuaAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJ1Y3R1cmUuaAkocmV2aXNpb24gMTE3ODMwKQor
KysgU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RydWN0dXJlLmgJKHdvcmtpbmcgY29w
eSkKQEAgLTMyOCw2ICszMjgsMTMgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIHJldHVybiBl
bnRyeSA/IGVudHJ5LT5vZmZzZXQgOiBub3RGb3VuZDsKICAgICB9CiAgICAgCisgICAgaW5saW5l
IEpTVmFsdWUgSlNWYWx1ZTo6c3RydWN0dXJlT3JVbmRlZmluZWQoKSBjb25zdAorICAgIHsKKyAg
ICAgICAgaWYgKGlzQ2VsbCgpKQorICAgICAgICAgICAgcmV0dXJuIEpTVmFsdWUoYXNDZWxsKCkt
PnN0cnVjdHVyZSgpKTsKKyAgICAgICAgcmV0dXJuIGpzVW5kZWZpbmVkKCk7CisgICAgfQorCiAg
ICAgaW5saW5lIGJvb2wgSlNDZWxsOjppc09iamVjdCgpIGNvbnN0CiAgICAgewogICAgICAgICBy
ZXR1cm4gbV9zdHJ1Y3R1cmUtPmlzT2JqZWN0KCk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>143141</attachid>
            <date>2012-05-21 17:06:58 -0700</date>
            <delta_ts>2012-05-21 17:15:32 -0700</delta_ts>
            <desc>the patch</desc>
            <filename>optconvertthis_patch_2.diff</filename>
            <type>text/plain</type>
            <size>19963</size>
            <attacher name="Filip Pizlo">fpizlo</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTE3ODMwKQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDU5IEBA
CisyMDEyLTA1LTIxICBGaWxpcCBQaXpsbyAgPGZwaXpsb0BhcHBsZS5jb20+CisKKyAgICAgICAg
REZHIENvbnZlcnRUaGlzIHNob3VsZCBqdXN0IGJlIGEgQ2hlY2tTdHJ1Y3R1cmUgaWYgdGhlIHN0
cnVjdHVyZSBpcyBrbm93bgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9ODcwNTcKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKyAg
ICAgICAgCisgICAgICAgIFRoaXMgZ2l2ZXMgVmFsdWVQcm9maWxlIHRoZSBhYmlsaXR5IHRvIHRy
YWNrIHNpbmdsZXRvbiB2YWx1ZXMgLSBpLmUuIHByb2ZpbGluZworICAgICAgICBzaXRlcyB0aGF0
IGFsd2F5cyBzZWUgdGhlIHNhbWUgdmFsdWUuCisgICAgICAgIAorICAgICAgICBUaGF0IGlzIHRo
ZW4gdXNlZCB0byBwcm9maWxlIHRoZSBzdHJ1Y3R1cmUgaW4gb3BfY29udmVydF90aGlzLgorICAg
ICAgICAKKyAgICAgICAgVGhpcyBpcyB0aGVuIHVzZWQgdG8gb3B0aW1pemUgb3BfY29udmVydF90
aGlzIGludG8gYSBDaGVja1N0cnVjdHVyZSBpZiB0aGUKKyAgICAgICAgc3RydWN0dXJlIGlzIGFs
d2F5cyB0aGUgc2FtZS4KKyAgICAgICAgCisgICAgICAgIFRoYXQgdGhlbiByZXN1bHRzIGluIGJl
dHRlciBDU0UgaW4gaW5saW5lZCBjb2RlIHRoYXQgdXNlcyAndGhpcycsIHNpbmNlCisgICAgICAg
IHByZXZpb3VzbHkgd2UgY291bGRuJ3QgQ1NFIGFjY2Vzc2VzIG9uICd0aGlzJyBmcm9tIGRpZmZl
cmVudCBpbmxpbmUgY2FsbCBmcmFtZXMuCisgICAgICAgIAorICAgICAgICBBbHNvIGZpeGVkIGEg
YnVnIHdoZXJlIHdlIHdlcmUgdW5uZWNlc3NhcmlseSBmbHVzaGluZyAndGhpcycuCisKKyAgICAg
ICAgKiBieXRlY29kZS9Db2RlQmxvY2suY3BwOgorICAgICAgICAoSlNDOjpDb2RlQmxvY2s6OmR1
bXApOgorICAgICAgICAoSlNDOjpDb2RlQmxvY2s6OnN0cm9uZ2x5VmlzaXRTdHJvbmdSZWZlcmVu
Y2VzKToKKyAgICAgICAgKiBieXRlY29kZS9MYXp5T3BlcmFuZFZhbHVlUHJvZmlsZS5jcHA6Cisg
ICAgICAgIChKU0M6OkNvbXByZXNzZWRMYXp5T3BlcmFuZFZhbHVlUHJvZmlsZUhvbGRlcjo6Y29t
cHV0ZVVwZGF0ZWRQcmVkaWN0aW9ucyk6CisgICAgICAgICogYnl0ZWNvZGUvTGF6eU9wZXJhbmRW
YWx1ZVByb2ZpbGUuaDoKKyAgICAgICAgKENvbXByZXNzZWRMYXp5T3BlcmFuZFZhbHVlUHJvZmls
ZUhvbGRlcik6CisgICAgICAgICogYnl0ZWNvZGUvT3Bjb2RlLmg6CisgICAgICAgIChKU0MpOgor
ICAgICAgICAoSlNDOjpwYWRPcGNvZGVOYW1lKToKKyAgICAgICAgKiBieXRlY29kZS9WYWx1ZVBy
b2ZpbGUuaDoKKyAgICAgICAgKEpTQzo6VmFsdWVQcm9maWxlQmFzZTo6VmFsdWVQcm9maWxlQmFz
ZSk6CisgICAgICAgIChKU0M6OlZhbHVlUHJvZmlsZUJhc2U6OmR1bXApOgorICAgICAgICAoSlND
OjpWYWx1ZVByb2ZpbGVCYXNlOjpjb21wdXRlVXBkYXRlZFByZWRpY3Rpb24pOgorICAgICAgICAo
VmFsdWVQcm9maWxlQmFzZSk6CisgICAgICAgICogYnl0ZWNvbXBpbGVyL0J5dGVjb2RlR2VuZXJh
dG9yLmNwcDoKKyAgICAgICAgKEpTQzo6Qnl0ZWNvZGVHZW5lcmF0b3I6OkJ5dGVjb2RlR2VuZXJh
dG9yKToKKyAgICAgICAgKiBkZmcvREZHQnl0ZUNvZGVQYXJzZXIuY3BwOgorICAgICAgICAoSlND
OjpERkc6OkJ5dGVDb2RlUGFyc2VyOjpzZXRBcmd1bWVudCk6CisgICAgICAgIChKU0M6OkRGRzo6
Qnl0ZUNvZGVQYXJzZXI6OnBhcnNlQmxvY2spOgorICAgICAgICAqIGppdC9KSVRPcGNvZGVzLmNw
cDoKKyAgICAgICAgKEpTQzo6SklUOjplbWl0X29wX2NvbnZlcnRfdGhpcyk6CisgICAgICAgIChK
U0M6OkpJVDo6ZW1pdFNsb3dfb3BfY29udmVydF90aGlzKToKKyAgICAgICAgKiBqaXQvSklUT3Bj
b2RlczMyXzY0LmNwcDoKKyAgICAgICAgKEpTQzo6SklUOjplbWl0X29wX2NvbnZlcnRfdGhpcyk6
CisgICAgICAgIChKU0M6OkpJVDo6ZW1pdFNsb3dfb3BfY29udmVydF90aGlzKToKKyAgICAgICAg
KiBsbGludC9MTEludFNsb3dQYXRocy5jcHA6CisgICAgICAgIChKU0M6OkxMSW50OjpMTElOVF9T
TE9XX1BBVEhfREVDTCk6CisgICAgICAgICogbGxpbnQvTG93TGV2ZWxJbnRlcnByZXRlcjMyXzY0
LmFzbToKKyAgICAgICAgKiBsbGludC9Mb3dMZXZlbEludGVycHJldGVyNjQuYXNtOgorICAgICAg
ICAqIHJ1bnRpbWUvSlNWYWx1ZS5oOgorICAgICAgICAoSlNWYWx1ZSk6CisgICAgICAgICogcnVu
dGltZS9TdHJ1Y3R1cmUuaDoKKyAgICAgICAgKEpTQzo6SlNWYWx1ZTo6c3RydWN0dXJlT3JVbmRl
ZmluZWQpOgorICAgICAgICAoSlNDKToKKwogMjAxMi0wNS0yMCAgRmlsaXAgUGl6bG8gIDxmcGl6
bG9AYXBwbGUuY29tPgogCiAgICAgICAgIERGRyBzaG91bGQgbm90IGRvIHVubmVjZXNzYXJ5IGlu
ZGlyZWN0aW9ucyB3aGVuIHN0b3JpbmcgdG8gb2JqZWN0cwpJbmRleDogU291cmNlL0phdmFTY3Jp
cHRDb3JlL2J5dGVjb2RlL0NvZGVCbG9jay5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFT
Y3JpcHRDb3JlL2J5dGVjb2RlL0NvZGVCbG9jay5jcHAJKHJldmlzaW9uIDExNzgzMCkKKysrIFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9Db2RlQmxvY2suY3BwCSh3b3JraW5nIGNvcHkp
CkBAIC02NzYsNiArNjc2LDcgQEAgdm9pZCBDb2RlQmxvY2s6OmR1bXAoRXhlY1N0YXRlKiBleGVj
LCBjbwogICAgICAgICBjYXNlIG9wX2NvbnZlcnRfdGhpczogewogICAgICAgICAgICAgaW50IHIw
ID0gKCsraXQpLT51Lm9wZXJhbmQ7CiAgICAgICAgICAgICBkYXRhTG9nKCJbJTRkXSBjb252ZXJ0
X3RoaXNcdCAlc1xuIiwgbG9jYXRpb24sIHJlZ2lzdGVyTmFtZShleGVjLCByMCkuZGF0YSgpKTsK
KyAgICAgICAgICAgICsraXQ7IC8vIFNraXAgdmFsdWUgcHJvZmlsZS4KICAgICAgICAgICAgIGJy
ZWFrOwogICAgICAgICB9CiAgICAgICAgIGNhc2Ugb3BfbmV3X29iamVjdDogewpAQCAtMjA5MSwx
NCArMjA5MiwxNCBAQCB2b2lkIENvZGVCbG9jazo6c3Ryb25nbHlWaXNpdFN0cm9uZ1JlZmVyCiAg
ICAgICAgIH0KICAgICB9CiAgICAgCi0gICAgbV9sYXp5T3BlcmFuZFZhbHVlUHJvZmlsZXMuY29t
cHV0ZVVwZGF0ZWRQcmVkaWN0aW9ucygpOworICAgIG1fbGF6eU9wZXJhbmRWYWx1ZVByb2ZpbGVz
LmNvbXB1dGVVcGRhdGVkUHJlZGljdGlvbnMoQ29sbGVjdGlvbik7CiAjZW5kaWYKIAogI2lmIEVO
QUJMRShWQUxVRV9QUk9GSUxFUikKICAgICBmb3IgKHVuc2lnbmVkIHByb2ZpbGVJbmRleCA9IDA7
IHByb2ZpbGVJbmRleCA8IG51bWJlck9mQXJndW1lbnRWYWx1ZVByb2ZpbGVzKCk7ICsrcHJvZmls
ZUluZGV4KQotICAgICAgICB2YWx1ZVByb2ZpbGVGb3JBcmd1bWVudChwcm9maWxlSW5kZXgpLT5j
b21wdXRlVXBkYXRlZFByZWRpY3Rpb24oKTsKKyAgICAgICAgdmFsdWVQcm9maWxlRm9yQXJndW1l
bnQocHJvZmlsZUluZGV4KS0+Y29tcHV0ZVVwZGF0ZWRQcmVkaWN0aW9uKENvbGxlY3Rpb24pOwog
ICAgIGZvciAodW5zaWduZWQgcHJvZmlsZUluZGV4ID0gMDsgcHJvZmlsZUluZGV4IDwgbnVtYmVy
T2ZWYWx1ZVByb2ZpbGVzKCk7ICsrcHJvZmlsZUluZGV4KQotICAgICAgICB2YWx1ZVByb2ZpbGUo
cHJvZmlsZUluZGV4KS0+Y29tcHV0ZVVwZGF0ZWRQcmVkaWN0aW9uKCk7CisgICAgICAgIHZhbHVl
UHJvZmlsZShwcm9maWxlSW5kZXgpLT5jb21wdXRlVXBkYXRlZFByZWRpY3Rpb24oQ29sbGVjdGlv
bik7CiAjZW5kaWYKIH0KIApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0xh
enlPcGVyYW5kVmFsdWVQcm9maWxlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvYnl0ZWNvZGUvTGF6eU9wZXJhbmRWYWx1ZVByb2ZpbGUuY3BwCShyZXZpc2lvbiAxMTc4
MzApCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvTGF6eU9wZXJhbmRWYWx1ZVBy
b2ZpbGUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zMywxMyArMzMsMTMgQEAgbmFtZXNwYWNlIEpT
QyB7CiBDb21wcmVzc2VkTGF6eU9wZXJhbmRWYWx1ZVByb2ZpbGVIb2xkZXI6OkNvbXByZXNzZWRM
YXp5T3BlcmFuZFZhbHVlUHJvZmlsZUhvbGRlcigpIHsgfQogQ29tcHJlc3NlZExhenlPcGVyYW5k
VmFsdWVQcm9maWxlSG9sZGVyOjp+Q29tcHJlc3NlZExhenlPcGVyYW5kVmFsdWVQcm9maWxlSG9s
ZGVyKCkgeyB9CiAKLXZvaWQgQ29tcHJlc3NlZExhenlPcGVyYW5kVmFsdWVQcm9maWxlSG9sZGVy
Ojpjb21wdXRlVXBkYXRlZFByZWRpY3Rpb25zKCkKK3ZvaWQgQ29tcHJlc3NlZExhenlPcGVyYW5k
VmFsdWVQcm9maWxlSG9sZGVyOjpjb21wdXRlVXBkYXRlZFByZWRpY3Rpb25zKE9wZXJhdGlvbklu
UHJvZ3Jlc3Mgb3BlcmF0aW9uKQogewogICAgIGlmICghbV9kYXRhKQogICAgICAgICByZXR1cm47
CiAgICAgCiAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IG1fZGF0YS0+c2l6ZSgpOyArK2kp
Ci0gICAgICAgIG1fZGF0YS0+YXQoaSkuY29tcHV0ZVVwZGF0ZWRQcmVkaWN0aW9uKCk7CisgICAg
ICAgIG1fZGF0YS0+YXQoaSkuY29tcHV0ZVVwZGF0ZWRQcmVkaWN0aW9uKG9wZXJhdGlvbik7CiB9
CiAKIExhenlPcGVyYW5kVmFsdWVQcm9maWxlKiBDb21wcmVzc2VkTGF6eU9wZXJhbmRWYWx1ZVBy
b2ZpbGVIb2xkZXI6OmFkZCgKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9M
YXp5T3BlcmFuZFZhbHVlUHJvZmlsZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ieXRlY29kZS9MYXp5T3BlcmFuZFZhbHVlUHJvZmlsZS5oCShyZXZpc2lvbiAxMTc4MzAp
CisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvTGF6eU9wZXJhbmRWYWx1ZVByb2Zp
bGUuaAkod29ya2luZyBjb3B5KQpAQCAtMTU1LDcgKzE1NSw3IEBAIHB1YmxpYzoKICAgICBDb21w
cmVzc2VkTGF6eU9wZXJhbmRWYWx1ZVByb2ZpbGVIb2xkZXIoKTsKICAgICB+Q29tcHJlc3NlZExh
enlPcGVyYW5kVmFsdWVQcm9maWxlSG9sZGVyKCk7CiAgICAgCi0gICAgdm9pZCBjb21wdXRlVXBk
YXRlZFByZWRpY3Rpb25zKCk7CisgICAgdm9pZCBjb21wdXRlVXBkYXRlZFByZWRpY3Rpb25zKE9w
ZXJhdGlvbkluUHJvZ3Jlc3MpOwogICAgIAogICAgIExhenlPcGVyYW5kVmFsdWVQcm9maWxlKiBh
ZGQoY29uc3QgTGF6eU9wZXJhbmRWYWx1ZVByb2ZpbGVLZXkmIGtleSk7CiAgICAgCkluZGV4OiBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvT3Bjb2RlLmgKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL09wY29kZS5oCShyZXZpc2lvbiAxMTc4MzApCisr
KyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvT3Bjb2RlLmgJKHdvcmtpbmcgY29weSkK
QEAgLTQ0LDcgKzQ0LDcgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIG1hY3JvKG9wX2NyZWF0
ZV9hcmd1bWVudHMsIDIpIFwKICAgICAgICAgbWFjcm8ob3BfY3JlYXRlX3RoaXMsIDMpIFwKICAg
ICAgICAgbWFjcm8ob3BfZ2V0X2NhbGxlZSwgMikgXAotICAgICAgICBtYWNybyhvcF9jb252ZXJ0
X3RoaXMsIDIpIFwKKyAgICAgICAgbWFjcm8ob3BfY29udmVydF90aGlzLCAzKSBcCiAgICAgICAg
IFwKICAgICAgICAgbWFjcm8ob3BfbmV3X29iamVjdCwgMikgXAogICAgICAgICBtYWNybyhvcF9u
ZXdfYXJyYXksIDQpIFwKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9WYWx1
ZVByb2ZpbGUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUv
VmFsdWVQcm9maWxlLmgJKHJldmlzaW9uIDExNzgzMCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ieXRlY29kZS9WYWx1ZVByb2ZpbGUuaAkod29ya2luZyBjb3B5KQpAQCAtMzMsNiArMzMsNyBA
QAogCiAjaWYgRU5BQkxFKFZBTFVFX1BST0ZJTEVSKQogCisjaW5jbHVkZSAiSGVhcC5oIgogI2lu
Y2x1ZGUgIkpTQXJyYXkuaCIKICNpbmNsdWRlICJQcmVkaWN0ZWRUeXBlLmgiCiAjaW5jbHVkZSAi
U3RydWN0dXJlLmgiCkBAIC01MSw2ICs1Miw3IEBAIHN0cnVjdCBWYWx1ZVByb2ZpbGVCYXNlIHsK
ICAgICAgICAgOiBtX2J5dGVjb2RlT2Zmc2V0KC0xKQogICAgICAgICAsIG1fcHJlZGljdGlvbihQ
cmVkaWN0Tm9uZSkKICAgICAgICAgLCBtX251bWJlck9mU2FtcGxlc0luUHJlZGljdGlvbigwKQor
ICAgICAgICAsIG1fc2luZ2xldG9uVmFsdWVJc1RvcChmYWxzZSkKICAgICB7CiAgICAgICAgIGZv
ciAodW5zaWduZWQgaSA9IDA7IGkgPCB0b3RhbE51bWJlck9mQnVja2V0czsgKytpKQogICAgICAg
ICAgICAgbV9idWNrZXRzW2ldID0gSlNWYWx1ZTo6ZW5jb2RlKEpTVmFsdWUoKSk7CkBAIC02MCw2
ICs2Miw3IEBAIHN0cnVjdCBWYWx1ZVByb2ZpbGVCYXNlIHsKICAgICAgICAgOiBtX2J5dGVjb2Rl
T2Zmc2V0KGJ5dGVjb2RlT2Zmc2V0KQogICAgICAgICAsIG1fcHJlZGljdGlvbihQcmVkaWN0Tm9u
ZSkKICAgICAgICAgLCBtX251bWJlck9mU2FtcGxlc0luUHJlZGljdGlvbigwKQorICAgICAgICAs
IG1fc2luZ2xldG9uVmFsdWVJc1RvcChmYWxzZSkKICAgICB7CiAgICAgICAgIGZvciAodW5zaWdu
ZWQgaSA9IDA7IGkgPCB0b3RhbE51bWJlck9mQnVja2V0czsgKytpKQogICAgICAgICAgICAgbV9i
dWNrZXRzW2ldID0gSlNWYWx1ZTo6ZW5jb2RlKEpTVmFsdWUoKSk7CkBAIC0xMTIsNiArMTE1LDEx
IEBAIHN0cnVjdCBWYWx1ZVByb2ZpbGVCYXNlIHsKICAgICAgICAgICAgICAgICAic2FtcGxlcyA9
ICV1LCBwcmVkaWN0aW9uID0gJXMiLAogICAgICAgICAgICAgICAgIHRvdGFsTnVtYmVyT2ZTYW1w
bGVzKCksCiAgICAgICAgICAgICAgICAgcHJlZGljdGlvblRvU3RyaW5nKG1fcHJlZGljdGlvbikp
OworICAgICAgICBmcHJpbnRmKG91dCwgIiwgdmFsdWUgPSAiKTsKKyAgICAgICAgaWYgKG1fc2lu
Z2xldG9uVmFsdWVJc1RvcCkKKyAgICAgICAgICAgIGZwcmludGYob3V0LCAiVE9QIik7CisgICAg
ICAgIGVsc2UKKyAgICAgICAgICAgIGZwcmludGYob3V0LCAiJXMiLCBtX3NpbmdsZXRvblZhbHVl
LmRlc2NyaXB0aW9uKCkpOwogICAgICAgICBib29sIGZpcnN0ID0gdHJ1ZTsKICAgICAgICAgZm9y
ICh1bnNpZ25lZCBpID0gMDsgaSA8IHRvdGFsTnVtYmVyT2ZCdWNrZXRzOyArK2kpIHsKICAgICAg
ICAgICAgIEpTVmFsdWUgdmFsdWUgPSBKU1ZhbHVlOjpkZWNvZGUobV9idWNrZXRzW2ldKTsKQEAg
LTEyNyw3ICsxMzUsNyBAQCBzdHJ1Y3QgVmFsdWVQcm9maWxlQmFzZSB7CiAgICAgfQogICAgIAog
ICAgIC8vIFVwZGF0ZXMgdGhlIHByZWRpY3Rpb24gYW5kIHJldHVybnMgdGhlIG5ldyBvbmUuCi0g
ICAgUHJlZGljdGVkVHlwZSBjb21wdXRlVXBkYXRlZFByZWRpY3Rpb24oKQorICAgIFByZWRpY3Rl
ZFR5cGUgY29tcHV0ZVVwZGF0ZWRQcmVkaWN0aW9uKE9wZXJhdGlvbkluUHJvZ3Jlc3Mgb3BlcmF0
aW9uID0gTm9PcGVyYXRpb24pCiAgICAgewogICAgICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBp
IDwgdG90YWxOdW1iZXJPZkJ1Y2tldHM7ICsraSkgewogICAgICAgICAgICAgSlNWYWx1ZSB2YWx1
ZSA9IEpTVmFsdWU6OmRlY29kZShtX2J1Y2tldHNbaV0pOwpAQCAtMTM3LDkgKzE0NSwyMyBAQCBz
dHJ1Y3QgVmFsdWVQcm9maWxlQmFzZSB7CiAgICAgICAgICAgICBtX251bWJlck9mU2FtcGxlc0lu
UHJlZGljdGlvbisrOwogICAgICAgICAgICAgbWVyZ2VQcmVkaWN0aW9uKG1fcHJlZGljdGlvbiwg
cHJlZGljdGlvbkZyb21WYWx1ZSh2YWx1ZSkpOwogICAgICAgICAgICAgCisgICAgICAgICAgICBp
ZiAoIW1fc2luZ2xldG9uVmFsdWVJc1RvcCAmJiAhIXZhbHVlKSB7CisgICAgICAgICAgICAgICAg
aWYgKCFtX3NpbmdsZXRvblZhbHVlKQorICAgICAgICAgICAgICAgICAgICBtX3NpbmdsZXRvblZh
bHVlID0gdmFsdWU7CisgICAgICAgICAgICAgICAgZWxzZSBpZiAobV9zaW5nbGV0b25WYWx1ZSAh
PSB2YWx1ZSkKKyAgICAgICAgICAgICAgICAgICAgbV9zaW5nbGV0b25WYWx1ZUlzVG9wID0gdHJ1
ZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIAogICAgICAgICAgICAgbV9idWNrZXRzW2ld
ID0gSlNWYWx1ZTo6ZW5jb2RlKEpTVmFsdWUoKSk7CiAgICAgICAgIH0KICAgICAgICAgCisgICAg
ICAgIGlmIChvcGVyYXRpb24gPT0gQ29sbGVjdGlvbgorICAgICAgICAgICAgJiYgIW1fc2luZ2xl
dG9uVmFsdWVJc1RvcAorICAgICAgICAgICAgJiYgISFtX3NpbmdsZXRvblZhbHVlCisgICAgICAg
ICAgICAmJiBtX3NpbmdsZXRvblZhbHVlLmlzQ2VsbCgpCisgICAgICAgICAgICAmJiAhSGVhcDo6
aXNNYXJrZWQobV9zaW5nbGV0b25WYWx1ZS5hc0NlbGwoKSkpCisgICAgICAgICAgICBtX3Npbmds
ZXRvblZhbHVlSXNUb3AgPSB0cnVlOworICAgICAgICAgICAgCiAgICAgICAgIHJldHVybiBtX3By
ZWRpY3Rpb247CiAgICAgfQogICAgIApAQCAtMTQ4LDYgKzE3MCw5IEBAIHN0cnVjdCBWYWx1ZVBy
b2ZpbGVCYXNlIHsKICAgICBQcmVkaWN0ZWRUeXBlIG1fcHJlZGljdGlvbjsKICAgICB1bnNpZ25l
ZCBtX251bWJlck9mU2FtcGxlc0luUHJlZGljdGlvbjsKICAgICAKKyAgICBib29sIG1fc2luZ2xl
dG9uVmFsdWVJc1RvcDsKKyAgICBKU1ZhbHVlIG1fc2luZ2xldG9uVmFsdWU7CisKICAgICBFbmNv
ZGVkSlNWYWx1ZSBtX2J1Y2tldHNbdG90YWxOdW1iZXJPZkJ1Y2tldHNdOwogfTsKIApJbmRleDog
U291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb21waWxlci9CeXRlY29kZUdlbmVyYXRvci5jcHAK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb21waWxlci9CeXRlY29k
ZUdlbmVyYXRvci5jcHAJKHJldmlzaW9uIDExNzgzMCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ieXRlY29tcGlsZXIvQnl0ZWNvZGVHZW5lcmF0b3IuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00
NTQsOCArNDU0LDkgQEAgQnl0ZWNvZGVHZW5lcmF0b3I6OkJ5dGVjb2RlR2VuZXJhdG9yKEZ1bgog
ICAgICAgICBpbnN0cnVjdGlvbnMoKS5hcHBlbmQobV90aGlzUmVnaXN0ZXIuaW5kZXgoKSk7CiAg
ICAgICAgIGluc3RydWN0aW9ucygpLmFwcGVuZChmdW5jUHJvdG8tPmluZGV4KCkpOwogICAgIH0g
ZWxzZSBpZiAoIWNvZGVCbG9jay0+aXNTdHJpY3RNb2RlKCkgJiYgKGZ1bmN0aW9uQm9keS0+dXNl
c1RoaXMoKSB8fCBjb2RlQmxvY2stPnVzZXNFdmFsKCkgfHwgbV9zaG91bGRFbWl0RGVidWdIb29r
cykpIHsKLSAgICAgICAgZW1pdE9wY29kZShvcF9jb252ZXJ0X3RoaXMpOworICAgICAgICBWYWx1
ZVByb2ZpbGUqIHByb2ZpbGUgPSBlbWl0UHJvZmlsZWRPcGNvZGUob3BfY29udmVydF90aGlzKTsK
ICAgICAgICAgaW5zdHJ1Y3Rpb25zKCkuYXBwZW5kKG1fdGhpc1JlZ2lzdGVyLmluZGV4KCkpOwor
ICAgICAgICBpbnN0cnVjdGlvbnMoKS5hcHBlbmQocHJvZmlsZSk7CiAgICAgfQogfQogCkluZGV4
OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0J5dGVDb2RlUGFyc2VyLmNwcAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0J5dGVDb2RlUGFyc2VyLmNwcAko
cmV2aXNpb24gMTE3ODMwKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdCeXRlQ29k
ZVBhcnNlci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTM0OCw4ICszNDgsOSBAQCBwcml2YXRlOgog
ICAgICAgICBzdGFjay0+bV9hcmd1bWVudFBvc2l0aW9uc1thcmd1bWVudF0tPmFkZFZhcmlhYmxl
KHZhcmlhYmxlQWNjZXNzRGF0YSk7CiAgICAgICAgIE5vZGVJbmRleCBub2RlSW5kZXggPSBhZGRU
b0dyYXBoKFNldExvY2FsLCBPcEluZm8odmFyaWFibGVBY2Nlc3NEYXRhKSwgdmFsdWUpOwogICAg
ICAgICBtX2N1cnJlbnRCbG9jay0+dmFyaWFibGVzQXRUYWlsLmFyZ3VtZW50KGFyZ3VtZW50KSA9
IG5vZGVJbmRleDsKLSAgICAgICAgLy8gQWx3YXlzIGZsdXNoIGFyZ3VtZW50cy4KLSAgICAgICAg
YWRkVG9HcmFwaChGbHVzaCwgT3BJbmZvKHZhcmlhYmxlQWNjZXNzRGF0YSksIG5vZGVJbmRleCk7
CisgICAgICAgIC8vIEFsd2F5cyBmbHVzaCBhcmd1bWVudHMsIGV4Y2VwdCBmb3IgJ3RoaXMnLgor
ICAgICAgICBpZiAoYXJndW1lbnQpCisgICAgICAgICAgICBhZGRUb0dyYXBoKEZsdXNoLCBPcElu
Zm8odmFyaWFibGVBY2Nlc3NEYXRhKSwgbm9kZUluZGV4KTsKICAgICB9CiAgICAgCiAgICAgVmFy
aWFibGVBY2Nlc3NEYXRhKiBmbHVzaEFyZ3VtZW50KGludCBvcGVyYW5kKQpAQCAtMTU1NSwxMCAr
MTU1NiwyNyBAQCBib29sIEJ5dGVDb2RlUGFyc2VyOjpwYXJzZUJsb2NrKHVuc2lnbmVkCiAKICAg
ICAgICAgY2FzZSBvcF9jb252ZXJ0X3RoaXM6IHsKICAgICAgICAgICAgIE5vZGVJbmRleCBvcDEg
PSBnZXRUaGlzKCk7Ci0gICAgICAgICAgICBpZiAobV9ncmFwaFtvcDFdLm9wKCkgPT0gQ29udmVy
dFRoaXMpCi0gICAgICAgICAgICAgICAgc2V0VGhpcyhvcDEpOwotICAgICAgICAgICAgZWxzZQot
ICAgICAgICAgICAgICAgIHNldFRoaXMoYWRkVG9HcmFwaChDb252ZXJ0VGhpcywgb3AxKSk7Cisg
ICAgICAgICAgICBpZiAobV9ncmFwaFtvcDFdLm9wKCkgIT0gQ29udmVydFRoaXMpIHsKKyAgICAg
ICAgICAgICAgICBWYWx1ZVByb2ZpbGUqIHByb2ZpbGUgPQorICAgICAgICAgICAgICAgICAgICBt
X2lubGluZVN0YWNrVG9wLT5tX3Byb2ZpbGVkQmxvY2stPnZhbHVlUHJvZmlsZUZvckJ5dGVjb2Rl
T2Zmc2V0KG1fY3VycmVudFByb2ZpbGluZ0luZGV4KTsKKyAgICAgICAgICAgICAgICBwcm9maWxl
LT5jb21wdXRlVXBkYXRlZFByZWRpY3Rpb24oKTsKKyNpZiBERkdfRU5BQkxFKERFQlVHX1ZFUkJP
U0UpCisgICAgICAgICAgICAgICAgZGF0YUxvZygiW0AlbHUgYmMjJXVdOiBwcm9maWxlICVwOiAi
LCBtX2dyYXBoLnNpemUoKSwgbV9jdXJyZW50UHJvZmlsaW5nSW5kZXgsIHByb2ZpbGUpOworICAg
ICAgICAgICAgICAgIHByb2ZpbGUtPmR1bXAoV1RGOjpkYXRhRmlsZSgpKTsKKyAgICAgICAgICAg
ICAgICBkYXRhTG9nKCJcbiIpOworI2VuZGlmCisgICAgICAgICAgICAgICAgaWYgKHByb2ZpbGUt
Pm1fc2luZ2xldG9uVmFsdWVJc1RvcAorICAgICAgICAgICAgICAgICAgICB8fCAhcHJvZmlsZS0+
bV9zaW5nbGV0b25WYWx1ZQorICAgICAgICAgICAgICAgICAgICB8fCAhcHJvZmlsZS0+bV9zaW5n
bGV0b25WYWx1ZS5pc0NlbGwoKQorICAgICAgICAgICAgICAgICAgICB8fCBwcm9maWxlLT5tX3Np
bmdsZXRvblZhbHVlLmFzQ2VsbCgpLT5jbGFzc0luZm8oKSAhPSAmU3RydWN0dXJlOjpzX2luZm8p
CisgICAgICAgICAgICAgICAgICAgIHNldFRoaXMoYWRkVG9HcmFwaChDb252ZXJ0VGhpcywgb3Ax
KSk7CisgICAgICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIGFkZFRvR3Jh
cGgoCisgICAgICAgICAgICAgICAgICAgICAgICBDaGVja1N0cnVjdHVyZSwKKyAgICAgICAgICAg
ICAgICAgICAgICAgIE9wSW5mbyhtX2dyYXBoLmFkZFN0cnVjdHVyZVNldChqc0Nhc3Q8U3RydWN0
dXJlKj4ocHJvZmlsZS0+bV9zaW5nbGV0b25WYWx1ZS5hc0NlbGwoKSkpKSwKKyAgICAgICAgICAg
ICAgICAgICAgICAgIG9wMSk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQogICAg
ICAgICAgICAgTkVYVF9PUENPREUob3BfY29udmVydF90aGlzKTsKICAgICAgICAgfQogCkluZGV4
OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVE9wY29kZXMzMl82NC5jcHAKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRPcGNvZGVzMzJfNjQuY3BwCShyZXZp
c2lvbiAxMTc4MzApCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVE9wY29kZXMzMl82
NC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTE1NjYsMTIgKzE1NjYsMTUgQEAgdm9pZCBKSVQ6OmVt
aXRfb3BfY29udmVydF90aGlzKEluc3RydWN0aQogewogICAgIHVuc2lnbmVkIHRoaXNSZWdpc3Rl
ciA9IGN1cnJlbnRJbnN0cnVjdGlvblsxXS51Lm9wZXJhbmQ7CiAKLSAgICBlbWl0TG9hZCh0aGlz
UmVnaXN0ZXIsIHJlZ1QxLCByZWdUMCk7CisgICAgZW1pdExvYWQodGhpc1JlZ2lzdGVyLCByZWdU
MywgcmVnVDIpOwogCi0gICAgYWRkU2xvd0Nhc2UoYnJhbmNoMzIoTm90RXF1YWwsIHJlZ1QxLCBU
cnVzdGVkSW1tMzIoSlNWYWx1ZTo6Q2VsbFRhZykpKTsKLSAgICBhZGRTbG93Q2FzZShicmFuY2hQ
dHIoRXF1YWwsIEFkZHJlc3MocmVnVDAsIEpTQ2VsbDo6Y2xhc3NJbmZvT2Zmc2V0KCkpLCBUcnVz
dGVkSW1tUHRyKCZKU1N0cmluZzo6c19pbmZvKSkpOwotCi0gICAgbWFwKG1fYnl0ZWNvZGVPZmZz
ZXQgKyBPUENPREVfTEVOR1RIKG9wX2NvbnZlcnRfdGhpcyksIHRoaXNSZWdpc3RlciwgcmVnVDEs
IHJlZ1QwKTsKKyAgICBhZGRTbG93Q2FzZShicmFuY2gzMihOb3RFcXVhbCwgcmVnVDMsIFRydXN0
ZWRJbW0zMihKU1ZhbHVlOjpDZWxsVGFnKSkpOworICAgIGlmIChzaG91bGRFbWl0UHJvZmlsaW5n
KCkpIHsKKyAgICAgICAgbG9hZFB0cihBZGRyZXNzKHJlZ1QyLCBKU0NlbGw6OnN0cnVjdHVyZU9m
ZnNldCgpKSwgcmVnVDApOworICAgICAgICBtb3ZlKHJlZ1QzLCByZWdUMSk7CisgICAgICAgIGVt
aXRWYWx1ZVByb2ZpbGluZ1NpdGUoKTsKKyAgICB9CisgICAgYWRkU2xvd0Nhc2UoYnJhbmNoUHRy
KEVxdWFsLCBBZGRyZXNzKHJlZ1QyLCBKU0NlbGw6OmNsYXNzSW5mb09mZnNldCgpKSwgVHJ1c3Rl
ZEltbVB0cigmSlNTdHJpbmc6OnNfaW5mbykpKTsKIH0KIAogdm9pZCBKSVQ6OmVtaXRTbG93X29w
X2NvbnZlcnRfdGhpcyhJbnN0cnVjdGlvbiogY3VycmVudEluc3RydWN0aW9uLCBWZWN0b3I8U2xv
d0Nhc2VFbnRyeT46Oml0ZXJhdG9yJiBpdGVyKQpAQCAtMTU4MCwxNiArMTU4MywyNiBAQCB2b2lk
IEpJVDo6ZW1pdFNsb3dfb3BfY29udmVydF90aGlzKEluc3RyCiAgICAgdW5zaWduZWQgdGhpc1Jl
Z2lzdGVyID0gY3VycmVudEluc3RydWN0aW9uWzFdLnUub3BlcmFuZDsKIAogICAgIGxpbmtTbG93
Q2FzZShpdGVyKTsKLSAgICBKdW1wIGlzTm90VW5kZWZpbmVkID0gYnJhbmNoMzIoTm90RXF1YWws
IHJlZ1QxLCBUcnVzdGVkSW1tMzIoSlNWYWx1ZTo6VW5kZWZpbmVkVGFnKSk7CisgICAgaWYgKHNo
b3VsZEVtaXRQcm9maWxpbmcoKSkgeworICAgICAgICBtb3ZlKFRydXN0ZWRJbW0zMihKU1ZhbHVl
OjpVbmRlZmluZWRUYWcpLCByZWdUMSk7CisgICAgICAgIG1vdmUoVHJ1c3RlZEltbTMyKDApLCBy
ZWdUMCk7CisgICAgfQorICAgIEp1bXAgaXNOb3RVbmRlZmluZWQgPSBicmFuY2gzMihOb3RFcXVh
bCwgcmVnVDMsIFRydXN0ZWRJbW0zMihKU1ZhbHVlOjpVbmRlZmluZWRUYWcpKTsKKyAgICBlbWl0
VmFsdWVQcm9maWxpbmdTaXRlKCk7CiAgICAgbW92ZShUcnVzdGVkSW1tUHRyKGdsb2JhbFRoaXMp
LCByZWdUMCk7CiAgICAgbW92ZShUcnVzdGVkSW1tMzIoSlNWYWx1ZTo6Q2VsbFRhZyksIHJlZ1Qx
KTsKICAgICBlbWl0U3RvcmUodGhpc1JlZ2lzdGVyLCByZWdUMSwgcmVnVDApOwogICAgIGVtaXRK
dW1wU2xvd1RvSG90KGp1bXAoKSwgT1BDT0RFX0xFTkdUSChvcF9jb252ZXJ0X3RoaXMpKTsKIAot
ICAgIGlzTm90VW5kZWZpbmVkLmxpbmsodGhpcyk7CiAgICAgbGlua1Nsb3dDYXNlKGl0ZXIpOwor
ICAgIGlmIChzaG91bGRFbWl0UHJvZmlsaW5nKCkpIHsKKyAgICAgICAgbW92ZShUcnVzdGVkSW1t
MzIoSlNWYWx1ZTo6Q2VsbFRhZyksIHJlZ1QxKTsKKyAgICAgICAgbW92ZShUcnVzdGVkSW1tUHRy
KG1fZ2xvYmFsRGF0YS0+c3RyaW5nU3RydWN0dXJlLmdldCgpKSwgcmVnVDApOworICAgIH0KKyAg
ICBpc05vdFVuZGVmaW5lZC5saW5rKHRoaXMpOworICAgIGVtaXRWYWx1ZVByb2ZpbGluZ1NpdGUo
KTsKICAgICBKSVRTdHViQ2FsbCBzdHViQ2FsbCh0aGlzLCBjdGlfb3BfY29udmVydF90aGlzKTsK
LSAgICBzdHViQ2FsbC5hZGRBcmd1bWVudChyZWdUMSwgcmVnVDApOworICAgIHN0dWJDYWxsLmFk
ZEFyZ3VtZW50KHJlZ1QzLCByZWdUMik7CiAgICAgc3R1YkNhbGwuY2FsbCh0aGlzUmVnaXN0ZXIp
OwogfQogCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVE9wY29kZXMuY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUT3Bjb2Rlcy5jcHAJKHJl
dmlzaW9uIDExNzgzMCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUT3Bjb2Rlcy5j
cHAJKHdvcmtpbmcgY29weSkKQEAgLTEyNTYsMTAgKzEyNTYsMTQgQEAgdm9pZCBKSVQ6OmVtaXRf
b3BfaW5pdF9sYXp5X3JlZyhJbnN0cnVjdAogCiB2b2lkIEpJVDo6ZW1pdF9vcF9jb252ZXJ0X3Ro
aXMoSW5zdHJ1Y3Rpb24qIGN1cnJlbnRJbnN0cnVjdGlvbikKIHsKLSAgICBlbWl0R2V0VmlydHVh
bFJlZ2lzdGVyKGN1cnJlbnRJbnN0cnVjdGlvblsxXS51Lm9wZXJhbmQsIHJlZ1QwKTsKKyAgICBl
bWl0R2V0VmlydHVhbFJlZ2lzdGVyKGN1cnJlbnRJbnN0cnVjdGlvblsxXS51Lm9wZXJhbmQsIHJl
Z1QxKTsKIAotICAgIGVtaXRKdW1wU2xvd0Nhc2VJZk5vdEpTQ2VsbChyZWdUMCk7Ci0gICAgYWRk
U2xvd0Nhc2UoYnJhbmNoUHRyKEVxdWFsLCBBZGRyZXNzKHJlZ1QwLCBKU0NlbGw6OmNsYXNzSW5m
b09mZnNldCgpKSwgVHJ1c3RlZEltbVB0cigmSlNTdHJpbmc6OnNfaW5mbykpKTsKKyAgICBlbWl0
SnVtcFNsb3dDYXNlSWZOb3RKU0NlbGwocmVnVDEpOworICAgIGlmIChzaG91bGRFbWl0UHJvZmls
aW5nKCkpIHsKKyAgICAgICAgbG9hZFB0cihBZGRyZXNzKHJlZ1QxLCBKU0NlbGw6OnN0cnVjdHVy
ZU9mZnNldCgpKSwgcmVnVDApOworICAgICAgICBlbWl0VmFsdWVQcm9maWxpbmdTaXRlKCk7Cisg
ICAgfQorICAgIGFkZFNsb3dDYXNlKGJyYW5jaFB0cihFcXVhbCwgQWRkcmVzcyhyZWdUMSwgSlND
ZWxsOjpjbGFzc0luZm9PZmZzZXQoKSksIFRydXN0ZWRJbW1QdHIoJkpTU3RyaW5nOjpzX2luZm8p
KSk7CiB9CiAKIHZvaWQgSklUOjplbWl0X29wX2dldF9jYWxsZWUoSW5zdHJ1Y3Rpb24qIGN1cnJl
bnRJbnN0cnVjdGlvbikKQEAgLTEzMzIsMTUgKzEzMzYsMjEgQEAgdm9pZCBKSVQ6OmVtaXRTbG93
X29wX2NvbnZlcnRfdGhpcyhJbnN0cgogICAgIHZvaWQqIGdsb2JhbFRoaXMgPSBtX2NvZGVCbG9j
ay0+Z2xvYmFsT2JqZWN0KCktPmdsb2JhbFNjb3BlQ2hhaW4oKS0+Z2xvYmFsVGhpcy5nZXQoKTsK
IAogICAgIGxpbmtTbG93Q2FzZShpdGVyKTsKLSAgICBKdW1wIGlzTm90VW5kZWZpbmVkID0gYnJh
bmNoUHRyKE5vdEVxdWFsLCByZWdUMCwgVHJ1c3RlZEltbVB0cihKU1ZhbHVlOjplbmNvZGUoanNV
bmRlZmluZWQoKSkpKTsKKyAgICBpZiAoc2hvdWxkRW1pdFByb2ZpbGluZygpKQorICAgICAgICBt
b3ZlKFRydXN0ZWRJbW1QdHIoYml0d2lzZV9jYXN0PHZvaWQqPihKU1ZhbHVlOjplbmNvZGUoanNV
bmRlZmluZWQoKSkpKSwgcmVnVDApOworICAgIEp1bXAgaXNOb3RVbmRlZmluZWQgPSBicmFuY2hQ
dHIoTm90RXF1YWwsIHJlZ1QxLCBUcnVzdGVkSW1tUHRyKEpTVmFsdWU6OmVuY29kZShqc1VuZGVm
aW5lZCgpKSkpOworICAgIGVtaXRWYWx1ZVByb2ZpbGluZ1NpdGUoKTsKICAgICBtb3ZlKFRydXN0
ZWRJbW1QdHIoZ2xvYmFsVGhpcyksIHJlZ1QwKTsKICAgICBlbWl0UHV0VmlydHVhbFJlZ2lzdGVy
KGN1cnJlbnRJbnN0cnVjdGlvblsxXS51Lm9wZXJhbmQsIHJlZ1QwKTsKICAgICBlbWl0SnVtcFNs
b3dUb0hvdChqdW1wKCksIE9QQ09ERV9MRU5HVEgob3BfY29udmVydF90aGlzKSk7CiAKLSAgICBp
c05vdFVuZGVmaW5lZC5saW5rKHRoaXMpOwogICAgIGxpbmtTbG93Q2FzZShpdGVyKTsKKyAgICBp
ZiAoc2hvdWxkRW1pdFByb2ZpbGluZygpKQorICAgICAgICBtb3ZlKFRydXN0ZWRJbW1QdHIoYml0
d2lzZV9jYXN0PHZvaWQqPihKU1ZhbHVlOjplbmNvZGUobV9nbG9iYWxEYXRhLT5zdHJpbmdTdHJ1
Y3R1cmUuZ2V0KCkpKSksIHJlZ1QwKTsKKyAgICBpc05vdFVuZGVmaW5lZC5saW5rKHRoaXMpOwor
ICAgIGVtaXRWYWx1ZVByb2ZpbGluZ1NpdGUoKTsKICAgICBKSVRTdHViQ2FsbCBzdHViQ2FsbCh0
aGlzLCBjdGlfb3BfY29udmVydF90aGlzKTsKLSAgICBzdHViQ2FsbC5hZGRBcmd1bWVudChyZWdU
MCk7CisgICAgc3R1YkNhbGwuYWRkQXJndW1lbnQocmVnVDEpOwogICAgIHN0dWJDYWxsLmNhbGwo
Y3VycmVudEluc3RydWN0aW9uWzFdLnUub3BlcmFuZCk7CiB9CiAKSW5kZXg6IFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9sbGludC9MTEludFNsb3dQYXRocy5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L0phdmFTY3JpcHRDb3JlL2xsaW50L0xMSW50U2xvd1BhdGhzLmNwcAkocmV2aXNpb24gMTE3ODMw
KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xMSW50U2xvd1BhdGhzLmNwcAkod29y
a2luZyBjb3B5KQpAQCAtNDc0LDYgKzQ3NCw4IEBAIExMSU5UX1NMT1dfUEFUSF9ERUNMKHNsb3df
cGF0aF9jb252ZXJ0X3QKICAgICBMTElOVF9CRUdJTigpOwogICAgIEpTVmFsdWUgdjEgPSBMTElO
VF9PUCgxKS5qc1ZhbHVlKCk7CiAgICAgQVNTRVJUKHYxLmlzUHJpbWl0aXZlKCkpOworICAgIHBj
W09QQ09ERV9MRU5HVEgob3BfY29udmVydF90aGlzKSAtIDFdLnUucHJvZmlsZS0+bV9idWNrZXRz
WzBdID0KKyAgICAgICAgSlNWYWx1ZTo6ZW5jb2RlKHYxLnN0cnVjdHVyZU9yVW5kZWZpbmVkKCkp
OwogICAgIExMSU5UX1JFVFVSTih2MS50b1RoaXNPYmplY3QoZXhlYykpOwogfQogCkluZGV4OiBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTG93TGV2ZWxJbnRlcnByZXRlcjMyXzY0LmFzbQo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTG93TGV2ZWxJbnRlcnBy
ZXRlcjMyXzY0LmFzbQkocmV2aXNpb24gMTE3ODMwKQorKysgU291cmNlL0phdmFTY3JpcHRDb3Jl
L2xsaW50L0xvd0xldmVsSW50ZXJwcmV0ZXIzMl82NC5hc20JKHdvcmtpbmcgY29weSkKQEAgLTM3
OCwxMSArMzc4LDEzIEBAIF9sbGludF9vcF9jb252ZXJ0X3RoaXM6CiAgICAgbG9hZGkgUGF5bG9h
ZE9mZnNldFtjZnIsIHQwLCA4XSwgdDAKICAgICBsb2FkcCBKU0NlbGw6Om1fc3RydWN0dXJlW3Qw
XSwgdDAKICAgICBiYmIgU3RydWN0dXJlOjptX3R5cGVJbmZvICsgVHlwZUluZm86Om1fdHlwZVt0
MF0sIE9iamVjdFR5cGUsIC5vcENvbnZlcnRUaGlzU2xvdwotICAgIGRpc3BhdGNoKDIpCisgICAg
bG9hZGkgOFtQQ10sIHQxCisgICAgdmFsdWVQcm9maWxlKENlbGxUYWcsIHQwLCB0MSkKKyAgICBk
aXNwYXRjaCgzKQogCiAub3BDb252ZXJ0VGhpc1Nsb3c6CiAgICAgY2FsbFNsb3dQYXRoKF9sbGlu
dF9zbG93X3BhdGhfY29udmVydF90aGlzKQotICAgIGRpc3BhdGNoKDIpCisgICAgZGlzcGF0Y2go
MykKIAogCiBfbGxpbnRfb3BfbmV3X29iamVjdDoKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9sbGludC9Mb3dMZXZlbEludGVycHJldGVyNjQuYXNtCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9sbGludC9Mb3dMZXZlbEludGVycHJldGVyNjQuYXNtCShyZXZpc2lvbiAx
MTc4MzApCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTG93TGV2ZWxJbnRlcnByZXRl
cjY0LmFzbQkod29ya2luZyBjb3B5KQpAQCAtMjU0LDExICsyNTQsMTMgQEAgX2xsaW50X29wX2Nv
bnZlcnRfdGhpczoKICAgICBidHBueiB0MCwgdGFnTWFzaywgLm9wQ29udmVydFRoaXNTbG93CiAg
ICAgbG9hZHAgSlNDZWxsOjptX3N0cnVjdHVyZVt0MF0sIHQwCiAgICAgYmJiIFN0cnVjdHVyZTo6
bV90eXBlSW5mbyArIFR5cGVJbmZvOjptX3R5cGVbdDBdLCBPYmplY3RUeXBlLCAub3BDb252ZXJ0
VGhpc1Nsb3cKLSAgICBkaXNwYXRjaCgyKQorICAgIGxvYWRwIDE2W1BCLCBQQywgOF0sIHQxCisg
ICAgdmFsdWVQcm9maWxlKHQwLCB0MSkKKyAgICBkaXNwYXRjaCgzKQogCiAub3BDb252ZXJ0VGhp
c1Nsb3c6CiAgICAgY2FsbFNsb3dQYXRoKF9sbGludF9zbG93X3BhdGhfY29udmVydF90aGlzKQot
ICAgIGRpc3BhdGNoKDIpCisgICAgZGlzcGF0Y2goMykKIAogCiBfbGxpbnRfb3BfbmV3X29iamVj
dDoKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTVmFsdWUuaAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1ZhbHVlLmgJKHJldmlzaW9u
IDExNzgzMCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTVmFsdWUuaAkod29y
a2luZyBjb3B5KQpAQCAtMjM5LDYgKzIzOSw4IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICBi
b29sIGlzQ2VsbCgpIGNvbnN0OwogICAgICAgICBKU0NlbGwqIGFzQ2VsbCgpIGNvbnN0OwogICAg
ICAgICBKU19FWFBPUlRfUFJJVkFURSBib29sIGlzVmFsaWRDYWxsZWUoKTsKKyAgICAgICAgCisg
ICAgICAgIEpTVmFsdWUgc3RydWN0dXJlT3JVbmRlZmluZWQoKSBjb25zdDsKIAogICAgICAgICBj
aGFyKiBkZXNjcmlwdGlvbigpIGNvbnN0OwogCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9TdHJ1Y3R1cmUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9TdHJ1Y3R1cmUuaAkocmV2aXNpb24gMTE3ODMwKQorKysgU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvU3RydWN0dXJlLmgJKHdvcmtpbmcgY29weSkKQEAgLTMyOCw2ICszMjgs
MTMgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIHJldHVybiBlbnRyeSA/IGVudHJ5LT5vZmZz
ZXQgOiBub3RGb3VuZDsKICAgICB9CiAgICAgCisgICAgaW5saW5lIEpTVmFsdWUgSlNWYWx1ZTo6
c3RydWN0dXJlT3JVbmRlZmluZWQoKSBjb25zdAorICAgIHsKKyAgICAgICAgaWYgKGlzQ2VsbCgp
KQorICAgICAgICAgICAgcmV0dXJuIEpTVmFsdWUoYXNDZWxsKCktPnN0cnVjdHVyZSgpKTsKKyAg
ICAgICAgcmV0dXJuIGpzVW5kZWZpbmVkKCk7CisgICAgfQorCiAgICAgaW5saW5lIGJvb2wgSlND
ZWxsOjppc09iamVjdCgpIGNvbnN0CiAgICAgewogICAgICAgICByZXR1cm4gbV9zdHJ1Y3R1cmUt
PmlzT2JqZWN0KCk7Cg==
</data>
<flag name="review"
          id="149634"
          type_id="1"
          status="+"
          setter="barraclough"
    />
          </attachment>
      

    </bug>

</bugzilla>