<?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>152949</bug_id>
          
          <creation_ts>2016-01-09 16:30:29 -0800</creation_ts>
          <short_desc>Arrays should use the InternalFunctionAllocationProfile when constructing new Arrays.</short_desc>
          <delta_ts>2016-01-14 13:25:07 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>152942</dependson>
          <blocked>142591</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Keith Miller">keith_miller</reporter>
          <assigned_to name="Keith Miller">keith_miller</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>mark.lam</cc>
    
    <cc>msaboff</cc>
    
    <cc>saam</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1154172</commentid>
    <comment_count>0</comment_count>
    <who name="Keith Miller">keith_miller</who>
    <bug_when>2016-01-09 16:30:29 -0800</bug_when>
    <thetext>Arrays should use the InternalFunctionAllocationProfile when constructing new Arrays.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1154175</commentid>
    <comment_count>1</comment_count>
      <attachid>268631</attachid>
    <who name="Keith Miller">keith_miller</who>
    <bug_when>2016-01-09 16:36:50 -0800</bug_when>
    <thetext>Created attachment 268631
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1154475</commentid>
    <comment_count>2</comment_count>
      <attachid>268709</attachid>
    <who name="Keith Miller">keith_miller</who>
    <bug_when>2016-01-11 13:34:41 -0800</bug_when>
    <thetext>Created attachment 268709
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1154479</commentid>
    <comment_count>3</comment_count>
      <attachid>268709</attachid>
    <who name="Michael Saboff">msaboff</who>
    <bug_when>2016-01-11 13:52:16 -0800</bug_when>
    <thetext>Comment on attachment 268709
Patch

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1154500</commentid>
    <comment_count>4</comment_count>
      <attachid>268709</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-01-11 14:40:15 -0800</bug_when>
    <thetext>Comment on attachment 268709
Patch

Clearing flags on attachment: 268709

Committed r194869: &lt;http://trac.webkit.org/changeset/194869&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1154501</commentid>
    <comment_count>5</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-01-11 14:40:18 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>268631</attachid>
            <date>2016-01-09 16:36:50 -0800</date>
            <delta_ts>2016-01-11 13:34:38 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-152949-20160109163618.patch</filename>
            <type>text/plain</type>
            <size>16450</size>
            <attacher name="Keith Miller">keith_miller</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTk0NzEyCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA0
ZDE5NzBmZGQ2MjNmZjRhNjA0ZjE3MmM5NzkyOGE4YjViMzZkMTQyLi44YzUyZDNjYjM2OTcxMzRk
ZWMzNGJjNzdkNDZkZGU2MWFmZWEzMzljIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwyNiBAQAorMjAxNi0wMS0wOSAgS2VpdGggTWlsbGVyICA8a2VpdGhfbWlsbGVyQGFwcGxl
LmNvbT4KKworICAgICAgICBBcnJheXMgc2hvdWxkIHVzZSB0aGUgSW50ZXJuYWxGdW5jdGlvbkFs
bG9jYXRpb25Qcm9maWxlIHdoZW4gY29uc3RydWN0aW5nIG5ldyBBcnJheXMuCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNTI5NDkKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGlzIHBhdGNoIHVwZGF0ZXMg
QXJyYXkgY29uc3RydWN0b3JzIHRvIHVzZSB0aGUgbmV3IEludGVybmFsRnVuY3Rpb25BbGxvY2F0
aW9uUHJvZmlsZS4KKworICAgICAgICAqIHJ1bnRpbWUvQXJyYXlDb25zdHJ1Y3Rvci5jcHA6Cisg
ICAgICAgIChKU0M6OmNvbnN0cnVjdEFycmF5V2l0aFNpemVRdWlyayk6CisgICAgICAgIChKU0M6
OmNvbnN0cnVjdFdpdGhBcnJheUNvbnN0cnVjdG9yKToKKyAgICAgICAgKiBydW50aW1lL0ludGVy
bmFsRnVuY3Rpb24uaDoKKyAgICAgICAgKEpTQzo6SW50ZXJuYWxGdW5jdGlvbjo6Y3JlYXRlU3Ry
dWN0dXJlKToKKyAgICAgICAgKiBydW50aW1lL0pTR2xvYmFsT2JqZWN0Lmg6CisgICAgICAgIChK
U0M6OkpTR2xvYmFsT2JqZWN0OjphcnJheVN0cnVjdHVyZUZvckluZGV4aW5nVHlwZUR1cmluZ0Fs
bG9jYXRpb24pOgorICAgICAgICAoSlNDOjpKU0dsb2JhbE9iamVjdDo6YXJyYXlTdHJ1Y3R1cmVG
b3JQcm9maWxlRHVyaW5nQWxsb2NhdGlvbik6CisgICAgICAgIChKU0M6OmNvbnN0cnVjdEVtcHR5
QXJyYXkpOgorICAgICAgICAoSlNDOjpjb25zdHJ1Y3RBcnJheSk6CisgICAgICAgIChKU0M6OmNv
bnN0cnVjdEFycmF5TmVnYXRpdmVJbmRleGVkKToKKyAgICAgICAgKiBydW50aW1lL1Byb3RvdHlw
ZU1hcC5jcHA6CisgICAgICAgIChKU0M6OlByb3RvdHlwZU1hcDo6ZW1wdHlTdHJ1Y3R1cmVGb3JQ
cm90b3R5cGVGcm9tQmFzZVN0cnVjdHVyZSk6CisKIDIwMTYtMDEtMDggIEtlaXRoIE1pbGxlciAg
PGtlaXRoX21pbGxlckBhcHBsZS5jb20+CiAKICAgICAgICAgVXNlIGEgcHJvZmlsZSB0byBzdG9y
ZSBhbGxvY2F0aW9uIHN0cnVjdHVyZXMgZm9yIHN1YmNsYXNzZXMgb2YgSW50ZXJuYWxGdW5jdGlv
bnMKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0FycmF5Q29uc3Ry
dWN0b3IuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQXJyYXlDb25zdHJ1Y3Rv
ci5jcHAKaW5kZXggOTAzNmMzZGJlMThmY2JkNTQzZDk5MGU0NjM2YTliNDNiY2Y3OWMxMS4uM2Qz
MjAyYWQwNGJmNDgxNzViYjdlOTgxMWJiY2U5NmZiMDg0ZTEzZCAxMDA2NDQKLS0tIGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQXJyYXlDb25zdHJ1Y3Rvci5jcHAKKysrIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQXJyYXlDb25zdHJ1Y3Rvci5jcHAKQEAgLTc1LDM5ICs3
NSwzMyBAQCBib29sIEFycmF5Q29uc3RydWN0b3I6OmdldE93blByb3BlcnR5U2xvdChKU09iamVj
dCogb2JqZWN0LCBFeGVjU3RhdGUqIGV4ZWMsIFBybwogCiAvLyAtLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0gRnVuY3Rpb25zIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogCi1KU09i
amVjdCogY29uc3RydWN0QXJyYXlXaXRoU2l6ZVF1aXJrKEV4ZWNTdGF0ZSogZXhlYywgQXJyYXlB
bGxvY2F0aW9uUHJvZmlsZSogcHJvZmlsZSwgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwg
SlNWYWx1ZSBsZW5ndGgsIEpTVmFsdWUgcHJvdG90eXBlKQorSlNPYmplY3QqIGNvbnN0cnVjdEFy
cmF5V2l0aFNpemVRdWlyayhFeGVjU3RhdGUqIGV4ZWMsIEFycmF5QWxsb2NhdGlvblByb2ZpbGUq
IHByb2ZpbGUsIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTVmFsdWUgbGVuZ3RoLCBK
U1ZhbHVlIG5ld1RhcmdldCkKIHsKICAgICBpZiAoIWxlbmd0aC5pc051bWJlcigpKQotICAgICAg
ICByZXR1cm4gY29uc3RydWN0QXJyYXlOZWdhdGl2ZUluZGV4ZWQoZXhlYywgcHJvZmlsZSwgZ2xv
YmFsT2JqZWN0LCAmbGVuZ3RoLCAxLCBwcm90b3R5cGUpOworICAgICAgICByZXR1cm4gY29uc3Ry
dWN0QXJyYXlOZWdhdGl2ZUluZGV4ZWQoZXhlYywgcHJvZmlsZSwgZ2xvYmFsT2JqZWN0LCAmbGVu
Z3RoLCAxLCBuZXdUYXJnZXQpOwogICAgIAogICAgIHVpbnQzMl90IG4gPSBsZW5ndGgudG9VSW50
MzIoZXhlYyk7CiAgICAgaWYgKG4gIT0gbGVuZ3RoLnRvTnVtYmVyKGV4ZWMpKQogICAgICAgICBy
ZXR1cm4gZXhlYy0+dm0oKS50aHJvd0V4Y2VwdGlvbihleGVjLCBjcmVhdGVSYW5nZUVycm9yKGV4
ZWMsIEFTQ0lJTGl0ZXJhbCgiQXJyYXkgc2l6ZSBpcyBub3QgYSBzbWFsbCBlbm91Z2ggcG9zaXRp
dmUgaW50ZWdlci4iKSkpOwotICAgIHJldHVybiBjb25zdHJ1Y3RFbXB0eUFycmF5KGV4ZWMsIHBy
b2ZpbGUsIGdsb2JhbE9iamVjdCwgbiwgcHJvdG90eXBlKTsKKyAgICByZXR1cm4gY29uc3RydWN0
RW1wdHlBcnJheShleGVjLCBwcm9maWxlLCBnbG9iYWxPYmplY3QsIG4sIG5ld1RhcmdldCk7CiB9
CiAKLXN0YXRpYyBpbmxpbmUgSlNPYmplY3QqIGNvbnN0cnVjdEFycmF5V2l0aFNpemVRdWlyayhF
eGVjU3RhdGUqIGV4ZWMsIGNvbnN0IEFyZ0xpc3QmIGFyZ3MsIEpTVmFsdWUgcHJvdG90eXBlKQor
c3RhdGljIGlubGluZSBKU09iamVjdCogY29uc3RydWN0QXJyYXlXaXRoU2l6ZVF1aXJrKEV4ZWNT
dGF0ZSogZXhlYywgY29uc3QgQXJnTGlzdCYgYXJncywgSlNWYWx1ZSBuZXdUYXJnZXQpCiB7CiAg
ICAgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCA9IGFzSW50ZXJuYWxGdW5jdGlvbihleGVj
LT5jYWxsZWUoKSktPmdsb2JhbE9iamVjdCgpOwogCiAgICAgLy8gYSBzaW5nbGUgbnVtZXJpYyBh
cmd1bWVudCBkZW5vdGVzIHRoZSBhcnJheSBzaXplICghKQogICAgIGlmIChhcmdzLnNpemUoKSA9
PSAxKQotICAgICAgICByZXR1cm4gY29uc3RydWN0QXJyYXlXaXRoU2l6ZVF1aXJrKGV4ZWMsIG51
bGxwdHIsIGdsb2JhbE9iamVjdCwgYXJncy5hdCgwKSwgcHJvdG90eXBlKTsKKyAgICAgICAgcmV0
dXJuIGNvbnN0cnVjdEFycmF5V2l0aFNpemVRdWlyayhleGVjLCBudWxscHRyLCBnbG9iYWxPYmpl
Y3QsIGFyZ3MuYXQoMCksIG5ld1RhcmdldCk7CiAKICAgICAvLyBvdGhlcndpc2UgdGhlIGFycmF5
IGlzIGNvbnN0cnVjdGVkIHdpdGggdGhlIGFyZ3VtZW50cyBpbiBpdAotICAgIHJldHVybiBjb25z
dHJ1Y3RBcnJheShleGVjLCBudWxscHRyLCBnbG9iYWxPYmplY3QsIGFyZ3MsIHByb3RvdHlwZSk7
CisgICAgcmV0dXJuIGNvbnN0cnVjdEFycmF5KGV4ZWMsIG51bGxwdHIsIGdsb2JhbE9iamVjdCwg
YXJncywgbmV3VGFyZ2V0KTsKIH0KIAogc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NB
TEwgY29uc3RydWN0V2l0aEFycmF5Q29uc3RydWN0b3IoRXhlY1N0YXRlKiBleGVjKQogewogICAg
IEFyZ0xpc3QgYXJncyhleGVjKTsKLQotICAgIEpTVmFsdWUgcHJvdG90eXBlID0gSlNWYWx1ZSgp
OwotICAgIEpTT2JqZWN0KiBuZXdUYXJnZXQgPSBleGVjLT5uZXdUYXJnZXQoKS5nZXRPYmplY3Qo
KTsKLSAgICBpZiAobmV3VGFyZ2V0LT5jbGFzc0luZm8oKSAhPSBBcnJheUNvbnN0cnVjdG9yOjpp
bmZvKCkpCi0gICAgICAgIHByb3RvdHlwZSA9IG5ld1RhcmdldC0+Z2V0KGV4ZWMsIGV4ZWMtPnBy
b3BlcnR5TmFtZXMoKS5wcm90b3R5cGUpOwotCi0gICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShj
b25zdHJ1Y3RBcnJheVdpdGhTaXplUXVpcmsoZXhlYywgYXJncywgcHJvdG90eXBlKSk7CisgICAg
cmV0dXJuIEpTVmFsdWU6OmVuY29kZShjb25zdHJ1Y3RBcnJheVdpdGhTaXplUXVpcmsoZXhlYywg
YXJncywgZXhlYy0+bmV3VGFyZ2V0KCkpKTsKIH0KIAogQ29uc3RydWN0VHlwZSBBcnJheUNvbnN0
cnVjdG9yOjpnZXRDb25zdHJ1Y3REYXRhKEpTQ2VsbCosIENvbnN0cnVjdERhdGEmIGNvbnN0cnVj
dERhdGEpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9JbnRlcm5h
bEZ1bmN0aW9uLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9JbnRlcm5hbEZ1bmN0
aW9uLmgKaW5kZXggNjQ3NWYzOTlhYmJhM2IyZmIxNGFhM2FhYWEyMDkzNTRmMTQyOTRhNC4uZTM5
MjIxNGExMjE1MWE4MTdiOGI5ZmZmNThmYzZhMjQ5OGFhMGUyNiAxMDA2NDQKLS0tIGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSW50ZXJuYWxGdW5jdGlvbi5oCisrKyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL0ludGVybmFsRnVuY3Rpb24uaApAQCAtNDIsMTIgKzQyLDEy
IEBAIHB1YmxpYzoKICAgICBjb25zdCBTdHJpbmcgZGlzcGxheU5hbWUoRXhlY1N0YXRlKik7CiAg
ICAgY29uc3QgU3RyaW5nIGNhbGN1bGF0ZWREaXNwbGF5TmFtZShFeGVjU3RhdGUqKTsKIAotICAg
IHN0YXRpYyBTdHJ1Y3R1cmUqIGNyZWF0ZVN0cnVjdHVyZShWTSYgdm0sIEpTR2xvYmFsT2JqZWN0
KiBnbG9iYWxPYmplY3QsIEpTVmFsdWUgcHJvdG8pIAorICAgIHN0YXRpYyBTdHJ1Y3R1cmUqIGNy
ZWF0ZVN0cnVjdHVyZShWTSYgdm0sIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTVmFs
dWUgcHJvdG8pCiAgICAgeyAKICAgICAgICAgcmV0dXJuIFN0cnVjdHVyZTo6Y3JlYXRlKHZtLCBn
bG9iYWxPYmplY3QsIHByb3RvLCBUeXBlSW5mbyhPYmplY3RUeXBlLCBTdHJ1Y3R1cmVGbGFncyks
IGluZm8oKSk7IAogICAgIH0KIAotICAgIHN0YXRpYyBTdHJ1Y3R1cmUqIGNyZWF0ZVN1YmNsYXNz
U3RydWN0dXJlKEV4ZWNTdGF0ZSosIEpTVmFsdWUgbmV3VGFyZ2V0LCBTdHJ1Y3R1cmUqKTsKKyAg
ICBKU19FWFBPUlRfUFJJVkFURSBzdGF0aWMgU3RydWN0dXJlKiBjcmVhdGVTdWJjbGFzc1N0cnVj
dHVyZShFeGVjU3RhdGUqLCBKU1ZhbHVlIG5ld1RhcmdldCwgU3RydWN0dXJlKik7CiAKIHByb3Rl
Y3RlZDoKICAgICBKU19FWFBPUlRfUFJJVkFURSBJbnRlcm5hbEZ1bmN0aW9uKFZNJiwgU3RydWN0
dXJlKik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2Jh
bE9iamVjdC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxPYmplY3Qu
aAppbmRleCAwZjU4ZDkxY2I0MDBkNDFkMzdiZjM3NzJiNjE2ZjdhMjMxZjdmZWE2Li43NWJiMjQ5
ZDlmNGNhOGFiNjNhODhmNjgyNDc0NmMzYTEyOWQyMDAzIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2JhbE9iamVjdC5oCisrKyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsT2JqZWN0LmgKQEAgLTIzLDYgKzIzLDcgQEAKICNkZWZp
bmUgSlNHbG9iYWxPYmplY3RfaAogCiAjaW5jbHVkZSAiQXJyYXlBbGxvY2F0aW9uUHJvZmlsZS5o
IgorI2luY2x1ZGUgIkludGVybmFsRnVuY3Rpb24uaCIKICNpbmNsdWRlICJKU0FycmF5LmgiCiAj
aW5jbHVkZSAiSlNBcnJheUJ1ZmZlclByb3RvdHlwZS5oIgogI2luY2x1ZGUgIkpTQ2xhc3NSZWYu
aCIKQEAgLTQ4MiwxMyArNDgzLDEzIEBAIHB1YmxpYzoKICAgICAgICAgQVNTRVJUKGluZGV4aW5n
VHlwZSAmIElzQXJyYXkpOwogICAgICAgICByZXR1cm4gbV9hcnJheVN0cnVjdHVyZUZvckluZGV4
aW5nU2hhcGVEdXJpbmdBbGxvY2F0aW9uWyhpbmRleGluZ1R5cGUgJiBJbmRleGluZ1NoYXBlTWFz
aykgPj4gSW5kZXhpbmdTaGFwZVNoaWZ0XS5nZXQoKTsKICAgICB9Ci0gICAgU3RydWN0dXJlKiBh
cnJheVN0cnVjdHVyZUZvckluZGV4aW5nVHlwZUR1cmluZ0FsbG9jYXRpb24oVk0mIHZtLCBJbmRl
eGluZ1R5cGUgaW5kZXhpbmdUeXBlLCBKU1ZhbHVlIHByb3RvdHlwZSkgY29uc3QKKyAgICBTdHJ1
Y3R1cmUqIGFycmF5U3RydWN0dXJlRm9ySW5kZXhpbmdUeXBlRHVyaW5nQWxsb2NhdGlvbihFeGVj
U3RhdGUqIGV4ZWMsIEluZGV4aW5nVHlwZSBpbmRleGluZ1R5cGUsIEpTVmFsdWUgbmV3VGFyZ2V0
KSBjb25zdAogICAgIHsKLSAgICAgICAgcmV0dXJuIFN0cnVjdHVyZTo6Y3JlYXRlU3ViY2xhc3NT
dHJ1Y3R1cmUodm0sIGFycmF5U3RydWN0dXJlRm9ySW5kZXhpbmdUeXBlRHVyaW5nQWxsb2NhdGlv
bihpbmRleGluZ1R5cGUpLCBwcm90b3R5cGUpOworICAgICAgICByZXR1cm4gSW50ZXJuYWxGdW5j
dGlvbjo6Y3JlYXRlU3ViY2xhc3NTdHJ1Y3R1cmUoZXhlYywgbmV3VGFyZ2V0LCBhcnJheVN0cnVj
dHVyZUZvckluZGV4aW5nVHlwZUR1cmluZ0FsbG9jYXRpb24oaW5kZXhpbmdUeXBlKSk7CiAgICAg
fQotICAgIFN0cnVjdHVyZSogYXJyYXlTdHJ1Y3R1cmVGb3JQcm9maWxlRHVyaW5nQWxsb2NhdGlv
bihWTSYgdm0sIEFycmF5QWxsb2NhdGlvblByb2ZpbGUqIHByb2ZpbGUsIEpTVmFsdWUgcHJvdG90
eXBlKSBjb25zdAorICAgIFN0cnVjdHVyZSogYXJyYXlTdHJ1Y3R1cmVGb3JQcm9maWxlRHVyaW5n
QWxsb2NhdGlvbihFeGVjU3RhdGUqIGV4ZWMsIEFycmF5QWxsb2NhdGlvblByb2ZpbGUqIHByb2Zp
bGUsIEpTVmFsdWUgbmV3VGFyZ2V0KSBjb25zdAogICAgIHsKLSAgICAgICAgcmV0dXJuIGFycmF5
U3RydWN0dXJlRm9ySW5kZXhpbmdUeXBlRHVyaW5nQWxsb2NhdGlvbih2bSwgQXJyYXlBbGxvY2F0
aW9uUHJvZmlsZTo6c2VsZWN0SW5kZXhpbmdUeXBlRm9yKHByb2ZpbGUpLCBwcm90b3R5cGUpOwor
ICAgICAgICByZXR1cm4gYXJyYXlTdHJ1Y3R1cmVGb3JJbmRleGluZ1R5cGVEdXJpbmdBbGxvY2F0
aW9uKGV4ZWMsIEFycmF5QWxsb2NhdGlvblByb2ZpbGU6OnNlbGVjdEluZGV4aW5nVHlwZUZvcihw
cm9maWxlKSwgbmV3VGFyZ2V0KTsKICAgICB9CiAgICAgICAgIAogICAgIGJvb2wgaXNPcmlnaW5h
bEFycmF5U3RydWN0dXJlKFN0cnVjdHVyZSogc3RydWN0dXJlKQpAQCAtNzI2LDUxICs3MjcsNTAg
QEAgaW5saW5lIGJvb2wgSlNHbG9iYWxPYmplY3Q6Omhhc093blByb3BlcnR5Rm9yV3JpdGUoRXhl
Y1N0YXRlKiBleGVjLCBQcm9wZXJ0eU5hbWUKICAgICByZXR1cm4gc3ltYm9sVGFibGVHZXQodGhp
cywgcHJvcGVydHlOYW1lLCBzbG90LCBzbG90SXNXcml0ZWFibGUpOwogfQogCi1pbmxpbmUgSlNB
cnJheSogY29uc3RydWN0RW1wdHlBcnJheShFeGVjU3RhdGUqIGV4ZWMsIEFycmF5QWxsb2NhdGlv
blByb2ZpbGUqIHByb2ZpbGUsIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIHVuc2lnbmVk
IGluaXRpYWxMZW5ndGggPSAwLCBKU1ZhbHVlIHByb3RvdHlwZSA9IEpTVmFsdWUoKSkKK2lubGlu
ZSBKU0FycmF5KiBjb25zdHJ1Y3RFbXB0eUFycmF5KEV4ZWNTdGF0ZSogZXhlYywgQXJyYXlBbGxv
Y2F0aW9uUHJvZmlsZSogcHJvZmlsZSwgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgdW5z
aWduZWQgaW5pdGlhbExlbmd0aCA9IDAsIEpTVmFsdWUgbmV3VGFyZ2V0ID0gSlNWYWx1ZSgpKQog
ewotICAgIFZNJiB2bSA9IGV4ZWMtPnZtKCk7CiAgICAgU3RydWN0dXJlKiBzdHJ1Y3R1cmU7CiAg
ICAgaWYgKGluaXRpYWxMZW5ndGggPj0gTUlOX0FSUkFZX1NUT1JBR0VfQ09OU1RSVUNUSU9OX0xF
TkdUSCkKLSAgICAgICAgc3RydWN0dXJlID0gZ2xvYmFsT2JqZWN0LT5hcnJheVN0cnVjdHVyZUZv
ckluZGV4aW5nVHlwZUR1cmluZ0FsbG9jYXRpb24odm0sIEFycmF5V2l0aEFycmF5U3RvcmFnZSwg
cHJvdG90eXBlKTsKKyAgICAgICAgc3RydWN0dXJlID0gZ2xvYmFsT2JqZWN0LT5hcnJheVN0cnVj
dHVyZUZvckluZGV4aW5nVHlwZUR1cmluZ0FsbG9jYXRpb24oZXhlYywgQXJyYXlXaXRoQXJyYXlT
dG9yYWdlLCBuZXdUYXJnZXQpOwogICAgIGVsc2UKLSAgICAgICAgc3RydWN0dXJlID0gZ2xvYmFs
T2JqZWN0LT5hcnJheVN0cnVjdHVyZUZvclByb2ZpbGVEdXJpbmdBbGxvY2F0aW9uKHZtLCBwcm9m
aWxlLCBwcm90b3R5cGUpOworICAgICAgICBzdHJ1Y3R1cmUgPSBnbG9iYWxPYmplY3QtPmFycmF5
U3RydWN0dXJlRm9yUHJvZmlsZUR1cmluZ0FsbG9jYXRpb24oZXhlYywgcHJvZmlsZSwgbmV3VGFy
Z2V0KTsKIAotICAgIHJldHVybiBBcnJheUFsbG9jYXRpb25Qcm9maWxlOjp1cGRhdGVMYXN0QWxs
b2NhdGlvbkZvcihwcm9maWxlLCBKU0FycmF5OjpjcmVhdGUodm0sIHN0cnVjdHVyZSwgaW5pdGlh
bExlbmd0aCkpOworICAgIHJldHVybiBBcnJheUFsbG9jYXRpb25Qcm9maWxlOjp1cGRhdGVMYXN0
QWxsb2NhdGlvbkZvcihwcm9maWxlLCBKU0FycmF5OjpjcmVhdGUoZXhlYy0+dm0oKSwgc3RydWN0
dXJlLCBpbml0aWFsTGVuZ3RoKSk7CiB9CiAKLWlubGluZSBKU0FycmF5KiBjb25zdHJ1Y3RFbXB0
eUFycmF5KEV4ZWNTdGF0ZSogZXhlYywgQXJyYXlBbGxvY2F0aW9uUHJvZmlsZSogcHJvZmlsZSwg
dW5zaWduZWQgaW5pdGlhbExlbmd0aCA9IDAsIEpTVmFsdWUgcHJvdG90eXBlID0gSlNWYWx1ZSgp
KQoraW5saW5lIEpTQXJyYXkqIGNvbnN0cnVjdEVtcHR5QXJyYXkoRXhlY1N0YXRlKiBleGVjLCBB
cnJheUFsbG9jYXRpb25Qcm9maWxlKiBwcm9maWxlLCB1bnNpZ25lZCBpbml0aWFsTGVuZ3RoID0g
MCwgSlNWYWx1ZSBuZXdUYXJnZXQgPSBKU1ZhbHVlKCkpCiB7Ci0gICAgcmV0dXJuIGNvbnN0cnVj
dEVtcHR5QXJyYXkoZXhlYywgcHJvZmlsZSwgZXhlYy0+bGV4aWNhbEdsb2JhbE9iamVjdCgpLCBp
bml0aWFsTGVuZ3RoLCBwcm90b3R5cGUpOworICAgIHJldHVybiBjb25zdHJ1Y3RFbXB0eUFycmF5
KGV4ZWMsIHByb2ZpbGUsIGV4ZWMtPmxleGljYWxHbG9iYWxPYmplY3QoKSwgaW5pdGlhbExlbmd0
aCwgbmV3VGFyZ2V0KTsKIH0KICAKLWlubGluZSBKU0FycmF5KiBjb25zdHJ1Y3RBcnJheShFeGVj
U3RhdGUqIGV4ZWMsIEFycmF5QWxsb2NhdGlvblByb2ZpbGUqIHByb2ZpbGUsIEpTR2xvYmFsT2Jq
ZWN0KiBnbG9iYWxPYmplY3QsIGNvbnN0IEFyZ0xpc3QmIHZhbHVlcywgSlNWYWx1ZSBwcm90b3R5
cGUgPSBKU1ZhbHVlKCkpCitpbmxpbmUgSlNBcnJheSogY29uc3RydWN0QXJyYXkoRXhlY1N0YXRl
KiBleGVjLCBBcnJheUFsbG9jYXRpb25Qcm9maWxlKiBwcm9maWxlLCBKU0dsb2JhbE9iamVjdCog
Z2xvYmFsT2JqZWN0LCBjb25zdCBBcmdMaXN0JiB2YWx1ZXMsIEpTVmFsdWUgbmV3VGFyZ2V0ID0g
SlNWYWx1ZSgpKQogewotICAgIHJldHVybiBBcnJheUFsbG9jYXRpb25Qcm9maWxlOjp1cGRhdGVM
YXN0QWxsb2NhdGlvbkZvcihwcm9maWxlLCBjb25zdHJ1Y3RBcnJheShleGVjLCBnbG9iYWxPYmpl
Y3QtPmFycmF5U3RydWN0dXJlRm9yUHJvZmlsZUR1cmluZ0FsbG9jYXRpb24oZXhlYy0+dm0oKSwg
cHJvZmlsZSwgcHJvdG90eXBlKSwgdmFsdWVzKSk7CisgICAgcmV0dXJuIEFycmF5QWxsb2NhdGlv
blByb2ZpbGU6OnVwZGF0ZUxhc3RBbGxvY2F0aW9uRm9yKHByb2ZpbGUsIGNvbnN0cnVjdEFycmF5
KGV4ZWMsIGdsb2JhbE9iamVjdC0+YXJyYXlTdHJ1Y3R1cmVGb3JQcm9maWxlRHVyaW5nQWxsb2Nh
dGlvbihleGVjLCBwcm9maWxlLCBuZXdUYXJnZXQpLCB2YWx1ZXMpKTsKIH0KIAotaW5saW5lIEpT
QXJyYXkqIGNvbnN0cnVjdEFycmF5KEV4ZWNTdGF0ZSogZXhlYywgQXJyYXlBbGxvY2F0aW9uUHJv
ZmlsZSogcHJvZmlsZSwgY29uc3QgQXJnTGlzdCYgdmFsdWVzLCBKU1ZhbHVlIHByb3RvdHlwZSA9
IEpTVmFsdWUoKSkKK2lubGluZSBKU0FycmF5KiBjb25zdHJ1Y3RBcnJheShFeGVjU3RhdGUqIGV4
ZWMsIEFycmF5QWxsb2NhdGlvblByb2ZpbGUqIHByb2ZpbGUsIGNvbnN0IEFyZ0xpc3QmIHZhbHVl
cywgSlNWYWx1ZSBuZXdUYXJnZXQgPSBKU1ZhbHVlKCkpCiB7Ci0gICAgcmV0dXJuIGNvbnN0cnVj
dEFycmF5KGV4ZWMsIHByb2ZpbGUsIGV4ZWMtPmxleGljYWxHbG9iYWxPYmplY3QoKSwgdmFsdWVz
LCBwcm90b3R5cGUpOworICAgIHJldHVybiBjb25zdHJ1Y3RBcnJheShleGVjLCBwcm9maWxlLCBl
eGVjLT5sZXhpY2FsR2xvYmFsT2JqZWN0KCksIHZhbHVlcywgbmV3VGFyZ2V0KTsKIH0KIAotaW5s
aW5lIEpTQXJyYXkqIGNvbnN0cnVjdEFycmF5KEV4ZWNTdGF0ZSogZXhlYywgQXJyYXlBbGxvY2F0
aW9uUHJvZmlsZSogcHJvZmlsZSwgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgY29uc3Qg
SlNWYWx1ZSogdmFsdWVzLCB1bnNpZ25lZCBsZW5ndGgsIEpTVmFsdWUgcHJvdG90eXBlID0gSlNW
YWx1ZSgpKQoraW5saW5lIEpTQXJyYXkqIGNvbnN0cnVjdEFycmF5KEV4ZWNTdGF0ZSogZXhlYywg
QXJyYXlBbGxvY2F0aW9uUHJvZmlsZSogcHJvZmlsZSwgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9i
amVjdCwgY29uc3QgSlNWYWx1ZSogdmFsdWVzLCB1bnNpZ25lZCBsZW5ndGgsIEpTVmFsdWUgbmV3
VGFyZ2V0ID0gSlNWYWx1ZSgpKQogewotICAgIHJldHVybiBBcnJheUFsbG9jYXRpb25Qcm9maWxl
Ojp1cGRhdGVMYXN0QWxsb2NhdGlvbkZvcihwcm9maWxlLCBjb25zdHJ1Y3RBcnJheShleGVjLCBn
bG9iYWxPYmplY3QtPmFycmF5U3RydWN0dXJlRm9yUHJvZmlsZUR1cmluZ0FsbG9jYXRpb24oZXhl
Yy0+dm0oKSwgcHJvZmlsZSwgcHJvdG90eXBlKSwgdmFsdWVzLCBsZW5ndGgpKTsKKyAgICByZXR1
cm4gQXJyYXlBbGxvY2F0aW9uUHJvZmlsZTo6dXBkYXRlTGFzdEFsbG9jYXRpb25Gb3IocHJvZmls
ZSwgY29uc3RydWN0QXJyYXkoZXhlYywgZ2xvYmFsT2JqZWN0LT5hcnJheVN0cnVjdHVyZUZvclBy
b2ZpbGVEdXJpbmdBbGxvY2F0aW9uKGV4ZWMsIHByb2ZpbGUsIG5ld1RhcmdldCksIHZhbHVlcywg
bGVuZ3RoKSk7CiB9CiAKLWlubGluZSBKU0FycmF5KiBjb25zdHJ1Y3RBcnJheShFeGVjU3RhdGUq
IGV4ZWMsIEFycmF5QWxsb2NhdGlvblByb2ZpbGUqIHByb2ZpbGUsIGNvbnN0IEpTVmFsdWUqIHZh
bHVlcywgdW5zaWduZWQgbGVuZ3RoLCBKU1ZhbHVlIHByb3RvdHlwZSA9IEpTVmFsdWUoKSkKK2lu
bGluZSBKU0FycmF5KiBjb25zdHJ1Y3RBcnJheShFeGVjU3RhdGUqIGV4ZWMsIEFycmF5QWxsb2Nh
dGlvblByb2ZpbGUqIHByb2ZpbGUsIGNvbnN0IEpTVmFsdWUqIHZhbHVlcywgdW5zaWduZWQgbGVu
Z3RoLCBKU1ZhbHVlIG5ld1RhcmdldCA9IEpTVmFsdWUoKSkKIHsKLSAgICByZXR1cm4gY29uc3Ry
dWN0QXJyYXkoZXhlYywgcHJvZmlsZSwgZXhlYy0+bGV4aWNhbEdsb2JhbE9iamVjdCgpLCB2YWx1
ZXMsIGxlbmd0aCwgcHJvdG90eXBlKTsKKyAgICByZXR1cm4gY29uc3RydWN0QXJyYXkoZXhlYywg
cHJvZmlsZSwgZXhlYy0+bGV4aWNhbEdsb2JhbE9iamVjdCgpLCB2YWx1ZXMsIGxlbmd0aCwgbmV3
VGFyZ2V0KTsKIH0KIAotaW5saW5lIEpTQXJyYXkqIGNvbnN0cnVjdEFycmF5TmVnYXRpdmVJbmRl
eGVkKEV4ZWNTdGF0ZSogZXhlYywgQXJyYXlBbGxvY2F0aW9uUHJvZmlsZSogcHJvZmlsZSwgSlNH
bG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgY29uc3QgSlNWYWx1ZSogdmFsdWVzLCB1bnNpZ25l
ZCBsZW5ndGgsIEpTVmFsdWUgcHJvdG90eXBlID0gSlNWYWx1ZSgpKQoraW5saW5lIEpTQXJyYXkq
IGNvbnN0cnVjdEFycmF5TmVnYXRpdmVJbmRleGVkKEV4ZWNTdGF0ZSogZXhlYywgQXJyYXlBbGxv
Y2F0aW9uUHJvZmlsZSogcHJvZmlsZSwgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgY29u
c3QgSlNWYWx1ZSogdmFsdWVzLCB1bnNpZ25lZCBsZW5ndGgsIEpTVmFsdWUgbmV3VGFyZ2V0ID0g
SlNWYWx1ZSgpKQogewotICAgIHJldHVybiBBcnJheUFsbG9jYXRpb25Qcm9maWxlOjp1cGRhdGVM
YXN0QWxsb2NhdGlvbkZvcihwcm9maWxlLCBjb25zdHJ1Y3RBcnJheU5lZ2F0aXZlSW5kZXhlZChl
eGVjLCBnbG9iYWxPYmplY3QtPmFycmF5U3RydWN0dXJlRm9yUHJvZmlsZUR1cmluZ0FsbG9jYXRp
b24oZXhlYy0+dm0oKSwgcHJvZmlsZSwgcHJvdG90eXBlKSwgdmFsdWVzLCBsZW5ndGgpKTsKKyAg
ICByZXR1cm4gQXJyYXlBbGxvY2F0aW9uUHJvZmlsZTo6dXBkYXRlTGFzdEFsbG9jYXRpb25Gb3Io
cHJvZmlsZSwgY29uc3RydWN0QXJyYXlOZWdhdGl2ZUluZGV4ZWQoZXhlYywgZ2xvYmFsT2JqZWN0
LT5hcnJheVN0cnVjdHVyZUZvclByb2ZpbGVEdXJpbmdBbGxvY2F0aW9uKGV4ZWMsIHByb2ZpbGUs
IG5ld1RhcmdldCksIHZhbHVlcywgbGVuZ3RoKSk7CiB9CiAKLWlubGluZSBKU0FycmF5KiBjb25z
dHJ1Y3RBcnJheU5lZ2F0aXZlSW5kZXhlZChFeGVjU3RhdGUqIGV4ZWMsIEFycmF5QWxsb2NhdGlv
blByb2ZpbGUqIHByb2ZpbGUsIGNvbnN0IEpTVmFsdWUqIHZhbHVlcywgdW5zaWduZWQgbGVuZ3Ro
LCBKU1ZhbHVlIHByb3RvdHlwZSA9IEpTVmFsdWUoKSkKK2lubGluZSBKU0FycmF5KiBjb25zdHJ1
Y3RBcnJheU5lZ2F0aXZlSW5kZXhlZChFeGVjU3RhdGUqIGV4ZWMsIEFycmF5QWxsb2NhdGlvblBy
b2ZpbGUqIHByb2ZpbGUsIGNvbnN0IEpTVmFsdWUqIHZhbHVlcywgdW5zaWduZWQgbGVuZ3RoLCBK
U1ZhbHVlIG5ld1RhcmdldCA9IEpTVmFsdWUoKSkKIHsKLSAgICByZXR1cm4gY29uc3RydWN0QXJy
YXlOZWdhdGl2ZUluZGV4ZWQoZXhlYywgcHJvZmlsZSwgZXhlYy0+bGV4aWNhbEdsb2JhbE9iamVj
dCgpLCB2YWx1ZXMsIGxlbmd0aCwgcHJvdG90eXBlKTsKKyAgICByZXR1cm4gY29uc3RydWN0QXJy
YXlOZWdhdGl2ZUluZGV4ZWQoZXhlYywgcHJvZmlsZSwgZXhlYy0+bGV4aWNhbEdsb2JhbE9iamVj
dCgpLCB2YWx1ZXMsIGxlbmd0aCwgbmV3VGFyZ2V0KTsKIH0KIAogaW5saW5lIEpTT2JqZWN0KiBF
eGVjU3RhdGU6Omdsb2JhbFRoaXNWYWx1ZSgpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9Qcm90b3R5cGVNYXAuY3BwIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvUHJvdG90eXBlTWFwLmNwcAppbmRleCAzMGIxNTQ2Yjc3ODU1ZjAzMTU5NzRi
MDI0MjA3MTJjOTU0ZTEwNDE1Li5lNjNmNjQyMTgyMDk1ZDMwMGM1MjFlMjQ3NWUwNzVlYmZmNDdj
OWQwIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Qcm90b3R5cGVN
YXAuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1Byb3RvdHlwZU1hcC5j
cHAKQEAgLTcxLDcgKzcxLDExIEBAIGlubGluZSBTdHJ1Y3R1cmUqIFByb3RvdHlwZU1hcDo6Y3Jl
YXRlRW1wdHlTdHJ1Y3R1cmUoSlNPYmplY3QqIHByb3RvdHlwZSwgY29uc3QKIFN0cnVjdHVyZSog
UHJvdG90eXBlTWFwOjplbXB0eVN0cnVjdHVyZUZvclByb3RvdHlwZUZyb21CYXNlU3RydWN0dXJl
KEpTT2JqZWN0KiBwcm90b3R5cGUsIFN0cnVjdHVyZSogYmFzZVN0cnVjdHVyZSkKIHsKICAgICAv
LyBXZSBjdXJyZW50bHkgZG8gbm90IGhhdmUgaW5saW5lIGNhcGFjaXR5IHN0YXRpYyBhbmFseXNp
cyBmb3Igc3ViY2xhc3NlcyBhbmQgYWxsIGludGVybmFsIGZ1bmN0aW9uIGNvbnN0cnVjdG9ycyBo
YXZlIGEgZGVmYXVsdCBpbmxpbmUgY2FwYWNpdHkgb2YgMC4KLSAgICByZXR1cm4gY3JlYXRlRW1w
dHlTdHJ1Y3R1cmUocHJvdG90eXBlLCBiYXNlU3RydWN0dXJlLT50eXBlSW5mbygpLCBiYXNlU3Ry
dWN0dXJlLT5jbGFzc0luZm8oKSwgYmFzZVN0cnVjdHVyZS0+aW5kZXhpbmdUeXBlKCksIDApOwor
ICAgIEluZGV4aW5nVHlwZSBpbmRleGluZ1R5cGUgPSBiYXNlU3RydWN0dXJlLT5pbmRleGluZ1R5
cGUoKTsKKyAgICBpZiAocHJvdG90eXBlLT5zdHJ1Y3R1cmUoKS0+YW55T2JqZWN0SW5DaGFpbk1h
eUludGVyY2VwdEluZGV4ZWRBY2Nlc3NlcygpKQorICAgICAgICBpbmRleGluZ1R5cGUgPSAoaW5k
ZXhpbmdUeXBlICYgfkluZGV4aW5nU2hhcGVNYXNrKSB8IFNsb3dQdXRBcnJheVN0b3JhZ2VTaGFw
ZTsKKworICAgIHJldHVybiBjcmVhdGVFbXB0eVN0cnVjdHVyZShwcm90b3R5cGUsIGJhc2VTdHJ1
Y3R1cmUtPnR5cGVJbmZvKCksIGJhc2VTdHJ1Y3R1cmUtPmNsYXNzSW5mbygpLCBpbmRleGluZ1R5
cGUsIDApOwogfQogCiBTdHJ1Y3R1cmUqIFByb3RvdHlwZU1hcDo6ZW1wdHlPYmplY3RTdHJ1Y3R1
cmVGb3JQcm90b3R5cGUoSlNPYmplY3QqIHByb3RvdHlwZSwgdW5zaWduZWQgaW5saW5lQ2FwYWNp
dHkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJ1Y3R1cmUu
aCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cnVjdHVyZS5oCmluZGV4IDY2NzJm
OWNjNjQ2M2FkYjM2MmRhNzY1YmI1ZWJkMDgwMjhlODM2NmIuLjFjMDZhMWIxMDJhMDk2NDY0ZmFm
OGNmY2ViNGI3NjhkNWVjMWVkNDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL1N0cnVjdHVyZS5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0
cnVjdHVyZS5oCkBAIC00MTMsNyArNDEzLDYgQEAgcHVibGljOgogICAgIH0KIAogICAgIHN0YXRp
YyBTdHJ1Y3R1cmUqIGNyZWF0ZVN0cnVjdHVyZShWTSYpOwotICAgIHN0YXRpYyBTdHJ1Y3R1cmUq
IGNyZWF0ZVN1YmNsYXNzU3RydWN0dXJlKFZNJiwgU3RydWN0dXJlKiBiYXNlU3RydWN0dXJlLCBK
U1ZhbHVlIHByb3RvdHlwZSk7CiAgICAgICAgIAogICAgIGJvb2wgdHJhbnNpdGlvbldhdGNocG9p
bnRTZXRIYXNCZWVuSW52YWxpZGF0ZWQoKSBjb25zdAogICAgIHsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cnVjdHVyZUlubGluZXMuaCBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL1N0cnVjdHVyZUlubGluZXMuaAppbmRleCBiMjYyNWQ3OTE4YjZk
NGFiYTIxMzhlMmJkZjMxMGIyMTc2MWQyMjE1Li4yMWJjYWE1MTc4YmIzZjEzNDg0MWI1ODNlMmY4
YjQ0MGI3YmRmYTFiIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9T
dHJ1Y3R1cmVJbmxpbmVzLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3Ry
dWN0dXJlSW5saW5lcy5oCkBAIC01MiwyOCArNTIsNiBAQCBpbmxpbmUgU3RydWN0dXJlKiBTdHJ1
Y3R1cmU6OmNyZWF0ZVN0cnVjdHVyZShWTSYgdm0pCiAgICAgcmV0dXJuIHN0cnVjdHVyZTsKIH0K
IAotaW5saW5lIFN0cnVjdHVyZSogU3RydWN0dXJlOjpjcmVhdGVTdWJjbGFzc1N0cnVjdHVyZShW
TSYgdm0sIFN0cnVjdHVyZSogYmFzZVN0cnVjdHVyZSwgSlNWYWx1ZSBwcm90b3R5cGUpCi17Ci0g
ICAgaWYgKCFwcm90b3R5cGUpCi0gICAgICAgIHJldHVybiBiYXNlU3RydWN0dXJlOwotCi0gICAg
QVNTRVJUKHByb3RvdHlwZSAhPSBiYXNlU3RydWN0dXJlLT5tX3Byb3RvdHlwZS5nZXQoKSk7Ci0g
ICAgQVNTRVJUKHByb3RvdHlwZS5pc09iamVjdCgpIHx8IHByb3RvdHlwZS5pc051bGwoKSk7Ci0K
LSAgICBpZiAocHJvdG90eXBlLmlzT2JqZWN0KCkpCi0gICAgICAgIHZtLnByb3RvdHlwZU1hcC5h
ZGRQcm90b3R5cGUocHJvdG90eXBlLmdldE9iamVjdCgpKTsKLQotICAgIC8vIEZJWE1FOiBUaGlz
IGlzIHN1cGVyIGJhZCwgbm90IG9ubHkgZG9lcyB0aGlzIHRyYW5zaXRpb24gdGhlIG9yaWdpbmFs
IHByb3RvdHlwZSBidXQgaXQgYWxzbyBjYXVzZXMgYSBuZXcgc3RydWN0dXJlCi0gICAgLy8gdG8g
YmUgY3JlYXRlZCBlYWNoIHRpbWUgd2UgYWxsb2NhdGUgYSBuZXcgc3ViY2xhc3NlZCBvYmplY3Qg
Zm9yIGEgYnVpbHRpbi4gSW5zdGVhZCB3ZSBzaG91bGQgYWxsb2NhdGUgYSBuZXcgc3RydWN0dXJl
Ci0gICAgLy8gdGhhdCBpcyBpZGVudGljYWwgb3RoZXIgdGhhbiB0aGUgbmV3IHByb3RvdHlwZSB0
aGVuIHdlIHNob3VsZCBjYWNoZSBpdC4gaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTE1MjcxMAotICAgIFN0cnVjdHVyZSogbmV3U3RydWN0dXJlID0gY2hhbmdlUHJvdG90
eXBlVHJhbnNpdGlvbih2bSwgYmFzZVN0cnVjdHVyZSwgcHJvdG90eXBlKTsKLQotICAgIGlmICho
YXNJbmRleGVkUHJvcGVydGllcyhuZXdTdHJ1Y3R1cmUtPmluZGV4aW5nVHlwZSgpKSAmJiBuZXdT
dHJ1Y3R1cmUtPmFueU9iamVjdEluQ2hhaW5NYXlJbnRlcmNlcHRJbmRleGVkQWNjZXNzZXMoKSkK
LSAgICAgICAgbmV3U3RydWN0dXJlLT5tX2Jsb2Iuc2V0SW5kZXhpbmdUeXBlKChuZXdTdHJ1Y3R1
cmUtPmluZGV4aW5nVHlwZSgpICYgfkluZGV4aW5nU2hhcGVNYXNrKSB8IFNsb3dQdXRBcnJheVN0
b3JhZ2VTaGFwZSk7Ci0KLSAgICByZXR1cm4gbmV3U3RydWN0dXJlOwotfQotCiBpbmxpbmUgU3Ry
dWN0dXJlKiBTdHJ1Y3R1cmU6OmNyZWF0ZShWTSYgdm0sIFN0cnVjdHVyZSogc3RydWN0dXJlLCBE
ZWZlcnJlZFN0cnVjdHVyZVRyYW5zaXRpb25XYXRjaHBvaW50RmlyZSogZGVmZXJyZWQpCiB7CiAg
ICAgQVNTRVJUKHZtLnN0cnVjdHVyZVN0cnVjdHVyZSk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>268709</attachid>
            <date>2016-01-11 13:34:41 -0800</date>
            <delta_ts>2016-01-11 14:40:15 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-152949-20160111133409.patch</filename>
            <type>text/plain</type>
            <size>16520</size>
            <attacher name="Keith Miller">keith_miller</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTk0ODYzCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA4
Yzc5ZjQ5MDRkMDBlYmFkOTA0MjdjNzU2MWQzYWViNTQ1NmQ2NmJmLi5jOWVkYTQzOWYxZDgxMDcw
NGFmYjRjYWY5MGYwMjg0NzA0MmY2NmFmIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwyOCBAQAorMjAxNi0wMS0wOSAgS2VpdGggTWlsbGVyICA8a2VpdGhfbWlsbGVyQGFwcGxl
LmNvbT4KKworICAgICAgICBBcnJheXMgc2hvdWxkIHVzZSB0aGUgSW50ZXJuYWxGdW5jdGlvbkFs
bG9jYXRpb25Qcm9maWxlIHdoZW4gY29uc3RydWN0aW5nIG5ldyBBcnJheXMKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1Mjk0OQorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoaXMgcGF0Y2ggdXBkYXRlcyBB
cnJheSBjb25zdHJ1Y3RvcnMgdG8gdXNlIHRoZSBuZXcgSW50ZXJuYWxGdW5jdGlvbkFsbG9jYXRp
b25Qcm9maWxlLgorCisgICAgICAgICogcnVudGltZS9BcnJheUNvbnN0cnVjdG9yLmNwcDoKKyAg
ICAgICAgKEpTQzo6Y29uc3RydWN0QXJyYXlXaXRoU2l6ZVF1aXJrKToKKyAgICAgICAgKEpTQzo6
Y29uc3RydWN0V2l0aEFycmF5Q29uc3RydWN0b3IpOgorICAgICAgICAqIHJ1bnRpbWUvSW50ZXJu
YWxGdW5jdGlvbi5oOgorICAgICAgICAoSlNDOjpJbnRlcm5hbEZ1bmN0aW9uOjpjcmVhdGVTdHJ1
Y3R1cmUpOgorICAgICAgICAqIHJ1bnRpbWUvSlNHbG9iYWxPYmplY3QuaDoKKyAgICAgICAgKEpT
Qzo6SlNHbG9iYWxPYmplY3Q6OmFycmF5U3RydWN0dXJlRm9ySW5kZXhpbmdUeXBlRHVyaW5nQWxs
b2NhdGlvbik6CisgICAgICAgIChKU0M6OkpTR2xvYmFsT2JqZWN0OjphcnJheVN0cnVjdHVyZUZv
clByb2ZpbGVEdXJpbmdBbGxvY2F0aW9uKToKKyAgICAgICAgKEpTQzo6Y29uc3RydWN0RW1wdHlB
cnJheSk6CisgICAgICAgIChKU0M6OmNvbnN0cnVjdEFycmF5KToKKyAgICAgICAgKEpTQzo6Y29u
c3RydWN0QXJyYXlOZWdhdGl2ZUluZGV4ZWQpOgorICAgICAgICAqIHJ1bnRpbWUvUHJvdG90eXBl
TWFwLmNwcDoKKyAgICAgICAgKEpTQzo6UHJvdG90eXBlTWFwOjplbXB0eVN0cnVjdHVyZUZvclBy
b3RvdHlwZUZyb21CYXNlU3RydWN0dXJlKToKKyAgICAgICAgKiBydW50aW1lL1N0cnVjdHVyZS5o
OgorICAgICAgICAqIHJ1bnRpbWUvU3RydWN0dXJlSW5saW5lcy5oOgorCiAyMDE2LTAxLTA4ICBL
ZWl0aCBNaWxsZXIgIDxrZWl0aF9taWxsZXJAYXBwbGUuY29tPgogCiAgICAgICAgIFVzZSBhIHBy
b2ZpbGUgdG8gc3RvcmUgYWxsb2NhdGlvbiBzdHJ1Y3R1cmVzIGZvciBzdWJjbGFzc2VzIG9mIElu
dGVybmFsRnVuY3Rpb25zCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9BcnJheUNvbnN0cnVjdG9yLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Fy
cmF5Q29uc3RydWN0b3IuY3BwCmluZGV4IDkwMzZjM2RiZTE4ZmNiZDU0M2Q5OTBlNDYzNmE5YjQz
YmNmNzljMTEuLjNkMzIwMmFkMDRiZjQ4MTc1YmI3ZTk4MTFiYmNlOTZmYjA4NGUxM2QgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0FycmF5Q29uc3RydWN0b3IuY3Bw
CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0FycmF5Q29uc3RydWN0b3IuY3Bw
CkBAIC03NSwzOSArNzUsMzMgQEAgYm9vbCBBcnJheUNvbnN0cnVjdG9yOjpnZXRPd25Qcm9wZXJ0
eVNsb3QoSlNPYmplY3QqIG9iamVjdCwgRXhlY1N0YXRlKiBleGVjLCBQcm8KIAogLy8gLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIEZ1bmN0aW9ucyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0KIAotSlNPYmplY3QqIGNvbnN0cnVjdEFycmF5V2l0aFNpemVRdWlyayhFeGVjU3RhdGUq
IGV4ZWMsIEFycmF5QWxsb2NhdGlvblByb2ZpbGUqIHByb2ZpbGUsIEpTR2xvYmFsT2JqZWN0KiBn
bG9iYWxPYmplY3QsIEpTVmFsdWUgbGVuZ3RoLCBKU1ZhbHVlIHByb3RvdHlwZSkKK0pTT2JqZWN0
KiBjb25zdHJ1Y3RBcnJheVdpdGhTaXplUXVpcmsoRXhlY1N0YXRlKiBleGVjLCBBcnJheUFsbG9j
YXRpb25Qcm9maWxlKiBwcm9maWxlLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU1Zh
bHVlIGxlbmd0aCwgSlNWYWx1ZSBuZXdUYXJnZXQpCiB7CiAgICAgaWYgKCFsZW5ndGguaXNOdW1i
ZXIoKSkKLSAgICAgICAgcmV0dXJuIGNvbnN0cnVjdEFycmF5TmVnYXRpdmVJbmRleGVkKGV4ZWMs
IHByb2ZpbGUsIGdsb2JhbE9iamVjdCwgJmxlbmd0aCwgMSwgcHJvdG90eXBlKTsKKyAgICAgICAg
cmV0dXJuIGNvbnN0cnVjdEFycmF5TmVnYXRpdmVJbmRleGVkKGV4ZWMsIHByb2ZpbGUsIGdsb2Jh
bE9iamVjdCwgJmxlbmd0aCwgMSwgbmV3VGFyZ2V0KTsKICAgICAKICAgICB1aW50MzJfdCBuID0g
bGVuZ3RoLnRvVUludDMyKGV4ZWMpOwogICAgIGlmIChuICE9IGxlbmd0aC50b051bWJlcihleGVj
KSkKICAgICAgICAgcmV0dXJuIGV4ZWMtPnZtKCkudGhyb3dFeGNlcHRpb24oZXhlYywgY3JlYXRl
UmFuZ2VFcnJvcihleGVjLCBBU0NJSUxpdGVyYWwoIkFycmF5IHNpemUgaXMgbm90IGEgc21hbGwg
ZW5vdWdoIHBvc2l0aXZlIGludGVnZXIuIikpKTsKLSAgICByZXR1cm4gY29uc3RydWN0RW1wdHlB
cnJheShleGVjLCBwcm9maWxlLCBnbG9iYWxPYmplY3QsIG4sIHByb3RvdHlwZSk7CisgICAgcmV0
dXJuIGNvbnN0cnVjdEVtcHR5QXJyYXkoZXhlYywgcHJvZmlsZSwgZ2xvYmFsT2JqZWN0LCBuLCBu
ZXdUYXJnZXQpOwogfQogCi1zdGF0aWMgaW5saW5lIEpTT2JqZWN0KiBjb25zdHJ1Y3RBcnJheVdp
dGhTaXplUXVpcmsoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBBcmdMaXN0JiBhcmdzLCBKU1ZhbHVl
IHByb3RvdHlwZSkKK3N0YXRpYyBpbmxpbmUgSlNPYmplY3QqIGNvbnN0cnVjdEFycmF5V2l0aFNp
emVRdWlyayhFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IEFyZ0xpc3QmIGFyZ3MsIEpTVmFsdWUgbmV3
VGFyZ2V0KQogewogICAgIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QgPSBhc0ludGVybmFs
RnVuY3Rpb24oZXhlYy0+Y2FsbGVlKCkpLT5nbG9iYWxPYmplY3QoKTsKIAogICAgIC8vIGEgc2lu
Z2xlIG51bWVyaWMgYXJndW1lbnQgZGVub3RlcyB0aGUgYXJyYXkgc2l6ZSAoISkKICAgICBpZiAo
YXJncy5zaXplKCkgPT0gMSkKLSAgICAgICAgcmV0dXJuIGNvbnN0cnVjdEFycmF5V2l0aFNpemVR
dWlyayhleGVjLCBudWxscHRyLCBnbG9iYWxPYmplY3QsIGFyZ3MuYXQoMCksIHByb3RvdHlwZSk7
CisgICAgICAgIHJldHVybiBjb25zdHJ1Y3RBcnJheVdpdGhTaXplUXVpcmsoZXhlYywgbnVsbHB0
ciwgZ2xvYmFsT2JqZWN0LCBhcmdzLmF0KDApLCBuZXdUYXJnZXQpOwogCiAgICAgLy8gb3RoZXJ3
aXNlIHRoZSBhcnJheSBpcyBjb25zdHJ1Y3RlZCB3aXRoIHRoZSBhcmd1bWVudHMgaW4gaXQKLSAg
ICByZXR1cm4gY29uc3RydWN0QXJyYXkoZXhlYywgbnVsbHB0ciwgZ2xvYmFsT2JqZWN0LCBhcmdz
LCBwcm90b3R5cGUpOworICAgIHJldHVybiBjb25zdHJ1Y3RBcnJheShleGVjLCBudWxscHRyLCBn
bG9iYWxPYmplY3QsIGFyZ3MsIG5ld1RhcmdldCk7CiB9CiAKIHN0YXRpYyBFbmNvZGVkSlNWYWx1
ZSBKU0NfSE9TVF9DQUxMIGNvbnN0cnVjdFdpdGhBcnJheUNvbnN0cnVjdG9yKEV4ZWNTdGF0ZSog
ZXhlYykKIHsKICAgICBBcmdMaXN0IGFyZ3MoZXhlYyk7Ci0KLSAgICBKU1ZhbHVlIHByb3RvdHlw
ZSA9IEpTVmFsdWUoKTsKLSAgICBKU09iamVjdCogbmV3VGFyZ2V0ID0gZXhlYy0+bmV3VGFyZ2V0
KCkuZ2V0T2JqZWN0KCk7Ci0gICAgaWYgKG5ld1RhcmdldC0+Y2xhc3NJbmZvKCkgIT0gQXJyYXlD
b25zdHJ1Y3Rvcjo6aW5mbygpKQotICAgICAgICBwcm90b3R5cGUgPSBuZXdUYXJnZXQtPmdldChl
eGVjLCBleGVjLT5wcm9wZXJ0eU5hbWVzKCkucHJvdG90eXBlKTsKLQotICAgIHJldHVybiBKU1Zh
bHVlOjplbmNvZGUoY29uc3RydWN0QXJyYXlXaXRoU2l6ZVF1aXJrKGV4ZWMsIGFyZ3MsIHByb3Rv
dHlwZSkpOworICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoY29uc3RydWN0QXJyYXlXaXRoU2l6
ZVF1aXJrKGV4ZWMsIGFyZ3MsIGV4ZWMtPm5ld1RhcmdldCgpKSk7CiB9CiAKIENvbnN0cnVjdFR5
cGUgQXJyYXlDb25zdHJ1Y3Rvcjo6Z2V0Q29uc3RydWN0RGF0YShKU0NlbGwqLCBDb25zdHJ1Y3RE
YXRhJiBjb25zdHJ1Y3REYXRhKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvSW50ZXJuYWxGdW5jdGlvbi5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
SW50ZXJuYWxGdW5jdGlvbi5oCmluZGV4IDY0NzVmMzk5YWJiYTNiMmZiMTRhYTNhYWFhMjA5MzU0
ZjE0Mjk0YTQuLmUzOTIyMTRhMTIxNTFhODE3YjhiOWZmZjU4ZmM2YTI0OThhYTBlMjYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0ludGVybmFsRnVuY3Rpb24uaAor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9JbnRlcm5hbEZ1bmN0aW9uLmgKQEAg
LTQyLDEyICs0MiwxMiBAQCBwdWJsaWM6CiAgICAgY29uc3QgU3RyaW5nIGRpc3BsYXlOYW1lKEV4
ZWNTdGF0ZSopOwogICAgIGNvbnN0IFN0cmluZyBjYWxjdWxhdGVkRGlzcGxheU5hbWUoRXhlY1N0
YXRlKik7CiAKLSAgICBzdGF0aWMgU3RydWN0dXJlKiBjcmVhdGVTdHJ1Y3R1cmUoVk0mIHZtLCBK
U0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU1ZhbHVlIHByb3RvKSAKKyAgICBzdGF0aWMg
U3RydWN0dXJlKiBjcmVhdGVTdHJ1Y3R1cmUoVk0mIHZtLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFs
T2JqZWN0LCBKU1ZhbHVlIHByb3RvKQogICAgIHsgCiAgICAgICAgIHJldHVybiBTdHJ1Y3R1cmU6
OmNyZWF0ZSh2bSwgZ2xvYmFsT2JqZWN0LCBwcm90bywgVHlwZUluZm8oT2JqZWN0VHlwZSwgU3Ry
dWN0dXJlRmxhZ3MpLCBpbmZvKCkpOyAKICAgICB9CiAKLSAgICBzdGF0aWMgU3RydWN0dXJlKiBj
cmVhdGVTdWJjbGFzc1N0cnVjdHVyZShFeGVjU3RhdGUqLCBKU1ZhbHVlIG5ld1RhcmdldCwgU3Ry
dWN0dXJlKik7CisgICAgSlNfRVhQT1JUX1BSSVZBVEUgc3RhdGljIFN0cnVjdHVyZSogY3JlYXRl
U3ViY2xhc3NTdHJ1Y3R1cmUoRXhlY1N0YXRlKiwgSlNWYWx1ZSBuZXdUYXJnZXQsIFN0cnVjdHVy
ZSopOwogCiBwcm90ZWN0ZWQ6CiAgICAgSlNfRVhQT1JUX1BSSVZBVEUgSW50ZXJuYWxGdW5jdGlv
bihWTSYsIFN0cnVjdHVyZSopOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvSlNHbG9iYWxPYmplY3QuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pT
R2xvYmFsT2JqZWN0LmgKaW5kZXggMzg3MjIxYjkzMzM0ODA2MDI5YjJmMzAxMDQ3ZGY1MzMxY2Q0
ZWRjOC4uYjRmZjJmYjQxM2UwZTQ0NjI0OTJhNDhhM2ZkNWE0YzI0ZWEwYjc0MSAxMDA2NDQKLS0t
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxPYmplY3QuaAorKysgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2JhbE9iamVjdC5oCkBAIC0yMyw2ICsy
Myw3IEBACiAjZGVmaW5lIEpTR2xvYmFsT2JqZWN0X2gKIAogI2luY2x1ZGUgIkFycmF5QWxsb2Nh
dGlvblByb2ZpbGUuaCIKKyNpbmNsdWRlICJJbnRlcm5hbEZ1bmN0aW9uLmgiCiAjaW5jbHVkZSAi
SlNBcnJheS5oIgogI2luY2x1ZGUgIkpTQXJyYXlCdWZmZXJQcm90b3R5cGUuaCIKICNpbmNsdWRl
ICJKU0NsYXNzUmVmLmgiCkBAIC00ODEsMTMgKzQ4MiwxMyBAQCBwdWJsaWM6CiAgICAgICAgIEFT
U0VSVChpbmRleGluZ1R5cGUgJiBJc0FycmF5KTsKICAgICAgICAgcmV0dXJuIG1fYXJyYXlTdHJ1
Y3R1cmVGb3JJbmRleGluZ1NoYXBlRHVyaW5nQWxsb2NhdGlvblsoaW5kZXhpbmdUeXBlICYgSW5k
ZXhpbmdTaGFwZU1hc2spID4+IEluZGV4aW5nU2hhcGVTaGlmdF0uZ2V0KCk7CiAgICAgfQotICAg
IFN0cnVjdHVyZSogYXJyYXlTdHJ1Y3R1cmVGb3JJbmRleGluZ1R5cGVEdXJpbmdBbGxvY2F0aW9u
KFZNJiB2bSwgSW5kZXhpbmdUeXBlIGluZGV4aW5nVHlwZSwgSlNWYWx1ZSBwcm90b3R5cGUpIGNv
bnN0CisgICAgU3RydWN0dXJlKiBhcnJheVN0cnVjdHVyZUZvckluZGV4aW5nVHlwZUR1cmluZ0Fs
bG9jYXRpb24oRXhlY1N0YXRlKiBleGVjLCBJbmRleGluZ1R5cGUgaW5kZXhpbmdUeXBlLCBKU1Zh
bHVlIG5ld1RhcmdldCkgY29uc3QKICAgICB7Ci0gICAgICAgIHJldHVybiBTdHJ1Y3R1cmU6OmNy
ZWF0ZVN1YmNsYXNzU3RydWN0dXJlKHZtLCBhcnJheVN0cnVjdHVyZUZvckluZGV4aW5nVHlwZUR1
cmluZ0FsbG9jYXRpb24oaW5kZXhpbmdUeXBlKSwgcHJvdG90eXBlKTsKKyAgICAgICAgcmV0dXJu
IEludGVybmFsRnVuY3Rpb246OmNyZWF0ZVN1YmNsYXNzU3RydWN0dXJlKGV4ZWMsIG5ld1Rhcmdl
dCwgYXJyYXlTdHJ1Y3R1cmVGb3JJbmRleGluZ1R5cGVEdXJpbmdBbGxvY2F0aW9uKGluZGV4aW5n
VHlwZSkpOwogICAgIH0KLSAgICBTdHJ1Y3R1cmUqIGFycmF5U3RydWN0dXJlRm9yUHJvZmlsZUR1
cmluZ0FsbG9jYXRpb24oVk0mIHZtLCBBcnJheUFsbG9jYXRpb25Qcm9maWxlKiBwcm9maWxlLCBK
U1ZhbHVlIHByb3RvdHlwZSkgY29uc3QKKyAgICBTdHJ1Y3R1cmUqIGFycmF5U3RydWN0dXJlRm9y
UHJvZmlsZUR1cmluZ0FsbG9jYXRpb24oRXhlY1N0YXRlKiBleGVjLCBBcnJheUFsbG9jYXRpb25Q
cm9maWxlKiBwcm9maWxlLCBKU1ZhbHVlIG5ld1RhcmdldCkgY29uc3QKICAgICB7Ci0gICAgICAg
IHJldHVybiBhcnJheVN0cnVjdHVyZUZvckluZGV4aW5nVHlwZUR1cmluZ0FsbG9jYXRpb24odm0s
IEFycmF5QWxsb2NhdGlvblByb2ZpbGU6OnNlbGVjdEluZGV4aW5nVHlwZUZvcihwcm9maWxlKSwg
cHJvdG90eXBlKTsKKyAgICAgICAgcmV0dXJuIGFycmF5U3RydWN0dXJlRm9ySW5kZXhpbmdUeXBl
RHVyaW5nQWxsb2NhdGlvbihleGVjLCBBcnJheUFsbG9jYXRpb25Qcm9maWxlOjpzZWxlY3RJbmRl
eGluZ1R5cGVGb3IocHJvZmlsZSksIG5ld1RhcmdldCk7CiAgICAgfQogICAgICAgICAKICAgICBi
b29sIGlzT3JpZ2luYWxBcnJheVN0cnVjdHVyZShTdHJ1Y3R1cmUqIHN0cnVjdHVyZSkKQEAgLTcy
Myw1MSArNzI0LDUwIEBAIGlubGluZSBib29sIEpTR2xvYmFsT2JqZWN0OjpoYXNPd25Qcm9wZXJ0
eUZvcldyaXRlKEV4ZWNTdGF0ZSogZXhlYywgUHJvcGVydHlOYW1lCiAgICAgcmV0dXJuIHN5bWJv
bFRhYmxlR2V0KHRoaXMsIHByb3BlcnR5TmFtZSwgc2xvdCwgc2xvdElzV3JpdGVhYmxlKTsKIH0K
IAotaW5saW5lIEpTQXJyYXkqIGNvbnN0cnVjdEVtcHR5QXJyYXkoRXhlY1N0YXRlKiBleGVjLCBB
cnJheUFsbG9jYXRpb25Qcm9maWxlKiBwcm9maWxlLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2Jq
ZWN0LCB1bnNpZ25lZCBpbml0aWFsTGVuZ3RoID0gMCwgSlNWYWx1ZSBwcm90b3R5cGUgPSBKU1Zh
bHVlKCkpCitpbmxpbmUgSlNBcnJheSogY29uc3RydWN0RW1wdHlBcnJheShFeGVjU3RhdGUqIGV4
ZWMsIEFycmF5QWxsb2NhdGlvblByb2ZpbGUqIHByb2ZpbGUsIEpTR2xvYmFsT2JqZWN0KiBnbG9i
YWxPYmplY3QsIHVuc2lnbmVkIGluaXRpYWxMZW5ndGggPSAwLCBKU1ZhbHVlIG5ld1RhcmdldCA9
IEpTVmFsdWUoKSkKIHsKLSAgICBWTSYgdm0gPSBleGVjLT52bSgpOwogICAgIFN0cnVjdHVyZSog
c3RydWN0dXJlOwogICAgIGlmIChpbml0aWFsTGVuZ3RoID49IE1JTl9BUlJBWV9TVE9SQUdFX0NP
TlNUUlVDVElPTl9MRU5HVEgpCi0gICAgICAgIHN0cnVjdHVyZSA9IGdsb2JhbE9iamVjdC0+YXJy
YXlTdHJ1Y3R1cmVGb3JJbmRleGluZ1R5cGVEdXJpbmdBbGxvY2F0aW9uKHZtLCBBcnJheVdpdGhB
cnJheVN0b3JhZ2UsIHByb3RvdHlwZSk7CisgICAgICAgIHN0cnVjdHVyZSA9IGdsb2JhbE9iamVj
dC0+YXJyYXlTdHJ1Y3R1cmVGb3JJbmRleGluZ1R5cGVEdXJpbmdBbGxvY2F0aW9uKGV4ZWMsIEFy
cmF5V2l0aEFycmF5U3RvcmFnZSwgbmV3VGFyZ2V0KTsKICAgICBlbHNlCi0gICAgICAgIHN0cnVj
dHVyZSA9IGdsb2JhbE9iamVjdC0+YXJyYXlTdHJ1Y3R1cmVGb3JQcm9maWxlRHVyaW5nQWxsb2Nh
dGlvbih2bSwgcHJvZmlsZSwgcHJvdG90eXBlKTsKKyAgICAgICAgc3RydWN0dXJlID0gZ2xvYmFs
T2JqZWN0LT5hcnJheVN0cnVjdHVyZUZvclByb2ZpbGVEdXJpbmdBbGxvY2F0aW9uKGV4ZWMsIHBy
b2ZpbGUsIG5ld1RhcmdldCk7CiAKLSAgICByZXR1cm4gQXJyYXlBbGxvY2F0aW9uUHJvZmlsZTo6
dXBkYXRlTGFzdEFsbG9jYXRpb25Gb3IocHJvZmlsZSwgSlNBcnJheTo6Y3JlYXRlKHZtLCBzdHJ1
Y3R1cmUsIGluaXRpYWxMZW5ndGgpKTsKKyAgICByZXR1cm4gQXJyYXlBbGxvY2F0aW9uUHJvZmls
ZTo6dXBkYXRlTGFzdEFsbG9jYXRpb25Gb3IocHJvZmlsZSwgSlNBcnJheTo6Y3JlYXRlKGV4ZWMt
PnZtKCksIHN0cnVjdHVyZSwgaW5pdGlhbExlbmd0aCkpOwogfQogCi1pbmxpbmUgSlNBcnJheSog
Y29uc3RydWN0RW1wdHlBcnJheShFeGVjU3RhdGUqIGV4ZWMsIEFycmF5QWxsb2NhdGlvblByb2Zp
bGUqIHByb2ZpbGUsIHVuc2lnbmVkIGluaXRpYWxMZW5ndGggPSAwLCBKU1ZhbHVlIHByb3RvdHlw
ZSA9IEpTVmFsdWUoKSkKK2lubGluZSBKU0FycmF5KiBjb25zdHJ1Y3RFbXB0eUFycmF5KEV4ZWNT
dGF0ZSogZXhlYywgQXJyYXlBbGxvY2F0aW9uUHJvZmlsZSogcHJvZmlsZSwgdW5zaWduZWQgaW5p
dGlhbExlbmd0aCA9IDAsIEpTVmFsdWUgbmV3VGFyZ2V0ID0gSlNWYWx1ZSgpKQogewotICAgIHJl
dHVybiBjb25zdHJ1Y3RFbXB0eUFycmF5KGV4ZWMsIHByb2ZpbGUsIGV4ZWMtPmxleGljYWxHbG9i
YWxPYmplY3QoKSwgaW5pdGlhbExlbmd0aCwgcHJvdG90eXBlKTsKKyAgICByZXR1cm4gY29uc3Ry
dWN0RW1wdHlBcnJheShleGVjLCBwcm9maWxlLCBleGVjLT5sZXhpY2FsR2xvYmFsT2JqZWN0KCks
IGluaXRpYWxMZW5ndGgsIG5ld1RhcmdldCk7CiB9CiAgCi1pbmxpbmUgSlNBcnJheSogY29uc3Ry
dWN0QXJyYXkoRXhlY1N0YXRlKiBleGVjLCBBcnJheUFsbG9jYXRpb25Qcm9maWxlKiBwcm9maWxl
LCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBjb25zdCBBcmdMaXN0JiB2YWx1ZXMsIEpT
VmFsdWUgcHJvdG90eXBlID0gSlNWYWx1ZSgpKQoraW5saW5lIEpTQXJyYXkqIGNvbnN0cnVjdEFy
cmF5KEV4ZWNTdGF0ZSogZXhlYywgQXJyYXlBbGxvY2F0aW9uUHJvZmlsZSogcHJvZmlsZSwgSlNH
bG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgY29uc3QgQXJnTGlzdCYgdmFsdWVzLCBKU1ZhbHVl
IG5ld1RhcmdldCA9IEpTVmFsdWUoKSkKIHsKLSAgICByZXR1cm4gQXJyYXlBbGxvY2F0aW9uUHJv
ZmlsZTo6dXBkYXRlTGFzdEFsbG9jYXRpb25Gb3IocHJvZmlsZSwgY29uc3RydWN0QXJyYXkoZXhl
YywgZ2xvYmFsT2JqZWN0LT5hcnJheVN0cnVjdHVyZUZvclByb2ZpbGVEdXJpbmdBbGxvY2F0aW9u
KGV4ZWMtPnZtKCksIHByb2ZpbGUsIHByb3RvdHlwZSksIHZhbHVlcykpOworICAgIHJldHVybiBB
cnJheUFsbG9jYXRpb25Qcm9maWxlOjp1cGRhdGVMYXN0QWxsb2NhdGlvbkZvcihwcm9maWxlLCBj
b25zdHJ1Y3RBcnJheShleGVjLCBnbG9iYWxPYmplY3QtPmFycmF5U3RydWN0dXJlRm9yUHJvZmls
ZUR1cmluZ0FsbG9jYXRpb24oZXhlYywgcHJvZmlsZSwgbmV3VGFyZ2V0KSwgdmFsdWVzKSk7CiB9
CiAKLWlubGluZSBKU0FycmF5KiBjb25zdHJ1Y3RBcnJheShFeGVjU3RhdGUqIGV4ZWMsIEFycmF5
QWxsb2NhdGlvblByb2ZpbGUqIHByb2ZpbGUsIGNvbnN0IEFyZ0xpc3QmIHZhbHVlcywgSlNWYWx1
ZSBwcm90b3R5cGUgPSBKU1ZhbHVlKCkpCitpbmxpbmUgSlNBcnJheSogY29uc3RydWN0QXJyYXko
RXhlY1N0YXRlKiBleGVjLCBBcnJheUFsbG9jYXRpb25Qcm9maWxlKiBwcm9maWxlLCBjb25zdCBB
cmdMaXN0JiB2YWx1ZXMsIEpTVmFsdWUgbmV3VGFyZ2V0ID0gSlNWYWx1ZSgpKQogewotICAgIHJl
dHVybiBjb25zdHJ1Y3RBcnJheShleGVjLCBwcm9maWxlLCBleGVjLT5sZXhpY2FsR2xvYmFsT2Jq
ZWN0KCksIHZhbHVlcywgcHJvdG90eXBlKTsKKyAgICByZXR1cm4gY29uc3RydWN0QXJyYXkoZXhl
YywgcHJvZmlsZSwgZXhlYy0+bGV4aWNhbEdsb2JhbE9iamVjdCgpLCB2YWx1ZXMsIG5ld1Rhcmdl
dCk7CiB9CiAKLWlubGluZSBKU0FycmF5KiBjb25zdHJ1Y3RBcnJheShFeGVjU3RhdGUqIGV4ZWMs
IEFycmF5QWxsb2NhdGlvblByb2ZpbGUqIHByb2ZpbGUsIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxP
YmplY3QsIGNvbnN0IEpTVmFsdWUqIHZhbHVlcywgdW5zaWduZWQgbGVuZ3RoLCBKU1ZhbHVlIHBy
b3RvdHlwZSA9IEpTVmFsdWUoKSkKK2lubGluZSBKU0FycmF5KiBjb25zdHJ1Y3RBcnJheShFeGVj
U3RhdGUqIGV4ZWMsIEFycmF5QWxsb2NhdGlvblByb2ZpbGUqIHByb2ZpbGUsIEpTR2xvYmFsT2Jq
ZWN0KiBnbG9iYWxPYmplY3QsIGNvbnN0IEpTVmFsdWUqIHZhbHVlcywgdW5zaWduZWQgbGVuZ3Ro
LCBKU1ZhbHVlIG5ld1RhcmdldCA9IEpTVmFsdWUoKSkKIHsKLSAgICByZXR1cm4gQXJyYXlBbGxv
Y2F0aW9uUHJvZmlsZTo6dXBkYXRlTGFzdEFsbG9jYXRpb25Gb3IocHJvZmlsZSwgY29uc3RydWN0
QXJyYXkoZXhlYywgZ2xvYmFsT2JqZWN0LT5hcnJheVN0cnVjdHVyZUZvclByb2ZpbGVEdXJpbmdB
bGxvY2F0aW9uKGV4ZWMtPnZtKCksIHByb2ZpbGUsIHByb3RvdHlwZSksIHZhbHVlcywgbGVuZ3Ro
KSk7CisgICAgcmV0dXJuIEFycmF5QWxsb2NhdGlvblByb2ZpbGU6OnVwZGF0ZUxhc3RBbGxvY2F0
aW9uRm9yKHByb2ZpbGUsIGNvbnN0cnVjdEFycmF5KGV4ZWMsIGdsb2JhbE9iamVjdC0+YXJyYXlT
dHJ1Y3R1cmVGb3JQcm9maWxlRHVyaW5nQWxsb2NhdGlvbihleGVjLCBwcm9maWxlLCBuZXdUYXJn
ZXQpLCB2YWx1ZXMsIGxlbmd0aCkpOwogfQogCi1pbmxpbmUgSlNBcnJheSogY29uc3RydWN0QXJy
YXkoRXhlY1N0YXRlKiBleGVjLCBBcnJheUFsbG9jYXRpb25Qcm9maWxlKiBwcm9maWxlLCBjb25z
dCBKU1ZhbHVlKiB2YWx1ZXMsIHVuc2lnbmVkIGxlbmd0aCwgSlNWYWx1ZSBwcm90b3R5cGUgPSBK
U1ZhbHVlKCkpCitpbmxpbmUgSlNBcnJheSogY29uc3RydWN0QXJyYXkoRXhlY1N0YXRlKiBleGVj
LCBBcnJheUFsbG9jYXRpb25Qcm9maWxlKiBwcm9maWxlLCBjb25zdCBKU1ZhbHVlKiB2YWx1ZXMs
IHVuc2lnbmVkIGxlbmd0aCwgSlNWYWx1ZSBuZXdUYXJnZXQgPSBKU1ZhbHVlKCkpCiB7Ci0gICAg
cmV0dXJuIGNvbnN0cnVjdEFycmF5KGV4ZWMsIHByb2ZpbGUsIGV4ZWMtPmxleGljYWxHbG9iYWxP
YmplY3QoKSwgdmFsdWVzLCBsZW5ndGgsIHByb3RvdHlwZSk7CisgICAgcmV0dXJuIGNvbnN0cnVj
dEFycmF5KGV4ZWMsIHByb2ZpbGUsIGV4ZWMtPmxleGljYWxHbG9iYWxPYmplY3QoKSwgdmFsdWVz
LCBsZW5ndGgsIG5ld1RhcmdldCk7CiB9CiAKLWlubGluZSBKU0FycmF5KiBjb25zdHJ1Y3RBcnJh
eU5lZ2F0aXZlSW5kZXhlZChFeGVjU3RhdGUqIGV4ZWMsIEFycmF5QWxsb2NhdGlvblByb2ZpbGUq
IHByb2ZpbGUsIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIGNvbnN0IEpTVmFsdWUqIHZh
bHVlcywgdW5zaWduZWQgbGVuZ3RoLCBKU1ZhbHVlIHByb3RvdHlwZSA9IEpTVmFsdWUoKSkKK2lu
bGluZSBKU0FycmF5KiBjb25zdHJ1Y3RBcnJheU5lZ2F0aXZlSW5kZXhlZChFeGVjU3RhdGUqIGV4
ZWMsIEFycmF5QWxsb2NhdGlvblByb2ZpbGUqIHByb2ZpbGUsIEpTR2xvYmFsT2JqZWN0KiBnbG9i
YWxPYmplY3QsIGNvbnN0IEpTVmFsdWUqIHZhbHVlcywgdW5zaWduZWQgbGVuZ3RoLCBKU1ZhbHVl
IG5ld1RhcmdldCA9IEpTVmFsdWUoKSkKIHsKLSAgICByZXR1cm4gQXJyYXlBbGxvY2F0aW9uUHJv
ZmlsZTo6dXBkYXRlTGFzdEFsbG9jYXRpb25Gb3IocHJvZmlsZSwgY29uc3RydWN0QXJyYXlOZWdh
dGl2ZUluZGV4ZWQoZXhlYywgZ2xvYmFsT2JqZWN0LT5hcnJheVN0cnVjdHVyZUZvclByb2ZpbGVE
dXJpbmdBbGxvY2F0aW9uKGV4ZWMtPnZtKCksIHByb2ZpbGUsIHByb3RvdHlwZSksIHZhbHVlcywg
bGVuZ3RoKSk7CisgICAgcmV0dXJuIEFycmF5QWxsb2NhdGlvblByb2ZpbGU6OnVwZGF0ZUxhc3RB
bGxvY2F0aW9uRm9yKHByb2ZpbGUsIGNvbnN0cnVjdEFycmF5TmVnYXRpdmVJbmRleGVkKGV4ZWMs
IGdsb2JhbE9iamVjdC0+YXJyYXlTdHJ1Y3R1cmVGb3JQcm9maWxlRHVyaW5nQWxsb2NhdGlvbihl
eGVjLCBwcm9maWxlLCBuZXdUYXJnZXQpLCB2YWx1ZXMsIGxlbmd0aCkpOwogfQogCi1pbmxpbmUg
SlNBcnJheSogY29uc3RydWN0QXJyYXlOZWdhdGl2ZUluZGV4ZWQoRXhlY1N0YXRlKiBleGVjLCBB
cnJheUFsbG9jYXRpb25Qcm9maWxlKiBwcm9maWxlLCBjb25zdCBKU1ZhbHVlKiB2YWx1ZXMsIHVu
c2lnbmVkIGxlbmd0aCwgSlNWYWx1ZSBwcm90b3R5cGUgPSBKU1ZhbHVlKCkpCitpbmxpbmUgSlNB
cnJheSogY29uc3RydWN0QXJyYXlOZWdhdGl2ZUluZGV4ZWQoRXhlY1N0YXRlKiBleGVjLCBBcnJh
eUFsbG9jYXRpb25Qcm9maWxlKiBwcm9maWxlLCBjb25zdCBKU1ZhbHVlKiB2YWx1ZXMsIHVuc2ln
bmVkIGxlbmd0aCwgSlNWYWx1ZSBuZXdUYXJnZXQgPSBKU1ZhbHVlKCkpCiB7Ci0gICAgcmV0dXJu
IGNvbnN0cnVjdEFycmF5TmVnYXRpdmVJbmRleGVkKGV4ZWMsIHByb2ZpbGUsIGV4ZWMtPmxleGlj
YWxHbG9iYWxPYmplY3QoKSwgdmFsdWVzLCBsZW5ndGgsIHByb3RvdHlwZSk7CisgICAgcmV0dXJu
IGNvbnN0cnVjdEFycmF5TmVnYXRpdmVJbmRleGVkKGV4ZWMsIHByb2ZpbGUsIGV4ZWMtPmxleGlj
YWxHbG9iYWxPYmplY3QoKSwgdmFsdWVzLCBsZW5ndGgsIG5ld1RhcmdldCk7CiB9CiAKIGlubGlu
ZSBKU09iamVjdCogRXhlY1N0YXRlOjpnbG9iYWxUaGlzVmFsdWUoKSBjb25zdApkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUHJvdG90eXBlTWFwLmNwcCBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1Byb3RvdHlwZU1hcC5jcHAKaW5kZXggMzBiMTU0NmI3
Nzg1NWYwMzE1OTc0YjAyNDIwNzEyYzk1NGUxMDQxNS4uZTYzZjY0MjE4MjA5NWQzMDBjNTIxZTI0
NzVlMDc1ZWJmZjQ3YzlkMCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvUHJvdG90eXBlTWFwLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Q
cm90b3R5cGVNYXAuY3BwCkBAIC03MSw3ICs3MSwxMSBAQCBpbmxpbmUgU3RydWN0dXJlKiBQcm90
b3R5cGVNYXA6OmNyZWF0ZUVtcHR5U3RydWN0dXJlKEpTT2JqZWN0KiBwcm90b3R5cGUsIGNvbnN0
CiBTdHJ1Y3R1cmUqIFByb3RvdHlwZU1hcDo6ZW1wdHlTdHJ1Y3R1cmVGb3JQcm90b3R5cGVGcm9t
QmFzZVN0cnVjdHVyZShKU09iamVjdCogcHJvdG90eXBlLCBTdHJ1Y3R1cmUqIGJhc2VTdHJ1Y3R1
cmUpCiB7CiAgICAgLy8gV2UgY3VycmVudGx5IGRvIG5vdCBoYXZlIGlubGluZSBjYXBhY2l0eSBz
dGF0aWMgYW5hbHlzaXMgZm9yIHN1YmNsYXNzZXMgYW5kIGFsbCBpbnRlcm5hbCBmdW5jdGlvbiBj
b25zdHJ1Y3RvcnMgaGF2ZSBhIGRlZmF1bHQgaW5saW5lIGNhcGFjaXR5IG9mIDAuCi0gICAgcmV0
dXJuIGNyZWF0ZUVtcHR5U3RydWN0dXJlKHByb3RvdHlwZSwgYmFzZVN0cnVjdHVyZS0+dHlwZUlu
Zm8oKSwgYmFzZVN0cnVjdHVyZS0+Y2xhc3NJbmZvKCksIGJhc2VTdHJ1Y3R1cmUtPmluZGV4aW5n
VHlwZSgpLCAwKTsKKyAgICBJbmRleGluZ1R5cGUgaW5kZXhpbmdUeXBlID0gYmFzZVN0cnVjdHVy
ZS0+aW5kZXhpbmdUeXBlKCk7CisgICAgaWYgKHByb3RvdHlwZS0+c3RydWN0dXJlKCktPmFueU9i
amVjdEluQ2hhaW5NYXlJbnRlcmNlcHRJbmRleGVkQWNjZXNzZXMoKSkKKyAgICAgICAgaW5kZXhp
bmdUeXBlID0gKGluZGV4aW5nVHlwZSAmIH5JbmRleGluZ1NoYXBlTWFzaykgfCBTbG93UHV0QXJy
YXlTdG9yYWdlU2hhcGU7CisKKyAgICByZXR1cm4gY3JlYXRlRW1wdHlTdHJ1Y3R1cmUocHJvdG90
eXBlLCBiYXNlU3RydWN0dXJlLT50eXBlSW5mbygpLCBiYXNlU3RydWN0dXJlLT5jbGFzc0luZm8o
KSwgaW5kZXhpbmdUeXBlLCAwKTsKIH0KIAogU3RydWN0dXJlKiBQcm90b3R5cGVNYXA6OmVtcHR5
T2JqZWN0U3RydWN0dXJlRm9yUHJvdG90eXBlKEpTT2JqZWN0KiBwcm90b3R5cGUsIHVuc2lnbmVk
IGlubGluZUNhcGFjaXR5KQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvU3RydWN0dXJlLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJ1Y3R1cmUu
aAppbmRleCA2NjcyZjljYzY0NjNhZGIzNjJkYTc2NWJiNWViZDA4MDI4ZTgzNjZiLi4xYzA2YTFi
MTAyYTA5NjQ2NGZhZjhjZmNlYjRiNzY4ZDVlYzFlZDQzIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9TdHJ1Y3R1cmUuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9TdHJ1Y3R1cmUuaApAQCAtNDEzLDcgKzQxMyw2IEBAIHB1YmxpYzoKICAgICB9
CiAKICAgICBzdGF0aWMgU3RydWN0dXJlKiBjcmVhdGVTdHJ1Y3R1cmUoVk0mKTsKLSAgICBzdGF0
aWMgU3RydWN0dXJlKiBjcmVhdGVTdWJjbGFzc1N0cnVjdHVyZShWTSYsIFN0cnVjdHVyZSogYmFz
ZVN0cnVjdHVyZSwgSlNWYWx1ZSBwcm90b3R5cGUpOwogICAgICAgICAKICAgICBib29sIHRyYW5z
aXRpb25XYXRjaHBvaW50U2V0SGFzQmVlbkludmFsaWRhdGVkKCkgY29uc3QKICAgICB7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJ1Y3R1cmVJbmxpbmVzLmgg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJ1Y3R1cmVJbmxpbmVzLmgKaW5kZXgg
YjI2MjVkNzkxOGI2ZDRhYmEyMTM4ZTJiZGYzMTBiMjE3NjFkMjIxNS4uMjFiY2FhNTE3OGJiM2Yx
MzQ4NDFiNTgzZTJmOGI0NDBiN2JkZmExYiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvU3RydWN0dXJlSW5saW5lcy5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL1N0cnVjdHVyZUlubGluZXMuaApAQCAtNTIsMjggKzUyLDYgQEAgaW5saW5lIFN0
cnVjdHVyZSogU3RydWN0dXJlOjpjcmVhdGVTdHJ1Y3R1cmUoVk0mIHZtKQogICAgIHJldHVybiBz
dHJ1Y3R1cmU7CiB9CiAKLWlubGluZSBTdHJ1Y3R1cmUqIFN0cnVjdHVyZTo6Y3JlYXRlU3ViY2xh
c3NTdHJ1Y3R1cmUoVk0mIHZtLCBTdHJ1Y3R1cmUqIGJhc2VTdHJ1Y3R1cmUsIEpTVmFsdWUgcHJv
dG90eXBlKQotewotICAgIGlmICghcHJvdG90eXBlKQotICAgICAgICByZXR1cm4gYmFzZVN0cnVj
dHVyZTsKLQotICAgIEFTU0VSVChwcm90b3R5cGUgIT0gYmFzZVN0cnVjdHVyZS0+bV9wcm90b3R5
cGUuZ2V0KCkpOwotICAgIEFTU0VSVChwcm90b3R5cGUuaXNPYmplY3QoKSB8fCBwcm90b3R5cGUu
aXNOdWxsKCkpOwotCi0gICAgaWYgKHByb3RvdHlwZS5pc09iamVjdCgpKQotICAgICAgICB2bS5w
cm90b3R5cGVNYXAuYWRkUHJvdG90eXBlKHByb3RvdHlwZS5nZXRPYmplY3QoKSk7Ci0KLSAgICAv
LyBGSVhNRTogVGhpcyBpcyBzdXBlciBiYWQsIG5vdCBvbmx5IGRvZXMgdGhpcyB0cmFuc2l0aW9u
IHRoZSBvcmlnaW5hbCBwcm90b3R5cGUgYnV0IGl0IGFsc28gY2F1c2VzIGEgbmV3IHN0cnVjdHVy
ZQotICAgIC8vIHRvIGJlIGNyZWF0ZWQgZWFjaCB0aW1lIHdlIGFsbG9jYXRlIGEgbmV3IHN1YmNs
YXNzZWQgb2JqZWN0IGZvciBhIGJ1aWx0aW4uIEluc3RlYWQgd2Ugc2hvdWxkIGFsbG9jYXRlIGEg
bmV3IHN0cnVjdHVyZQotICAgIC8vIHRoYXQgaXMgaWRlbnRpY2FsIG90aGVyIHRoYW4gdGhlIG5l
dyBwcm90b3R5cGUgdGhlbiB3ZSBzaG91bGQgY2FjaGUgaXQuIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0xNTI3MTAKLSAgICBTdHJ1Y3R1cmUqIG5ld1N0cnVjdHVyZSA9
IGNoYW5nZVByb3RvdHlwZVRyYW5zaXRpb24odm0sIGJhc2VTdHJ1Y3R1cmUsIHByb3RvdHlwZSk7
Ci0KLSAgICBpZiAoaGFzSW5kZXhlZFByb3BlcnRpZXMobmV3U3RydWN0dXJlLT5pbmRleGluZ1R5
cGUoKSkgJiYgbmV3U3RydWN0dXJlLT5hbnlPYmplY3RJbkNoYWluTWF5SW50ZXJjZXB0SW5kZXhl
ZEFjY2Vzc2VzKCkpCi0gICAgICAgIG5ld1N0cnVjdHVyZS0+bV9ibG9iLnNldEluZGV4aW5nVHlw
ZSgobmV3U3RydWN0dXJlLT5pbmRleGluZ1R5cGUoKSAmIH5JbmRleGluZ1NoYXBlTWFzaykgfCBT
bG93UHV0QXJyYXlTdG9yYWdlU2hhcGUpOwotCi0gICAgcmV0dXJuIG5ld1N0cnVjdHVyZTsKLX0K
LQogaW5saW5lIFN0cnVjdHVyZSogU3RydWN0dXJlOjpjcmVhdGUoVk0mIHZtLCBTdHJ1Y3R1cmUq
IHN0cnVjdHVyZSwgRGVmZXJyZWRTdHJ1Y3R1cmVUcmFuc2l0aW9uV2F0Y2hwb2ludEZpcmUqIGRl
ZmVycmVkKQogewogICAgIEFTU0VSVCh2bS5zdHJ1Y3R1cmVTdHJ1Y3R1cmUpOwo=
</data>

          </attachment>
      

    </bug>

</bugzilla>