<?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>98547</bug_id>
          
          <creation_ts>2012-10-05 12:29:56 -0700</creation_ts>
          <short_desc>Clipboard::types() should return an ordered collection.</short_desc>
          <delta_ts>2012-10-06 12:14:10 -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>UI Events</component>
          <version>528+ (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>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Andreas Kling">kling</reporter>
          <assigned_to name="Andreas Kling">kling</assigned_to>
          <cc>abarth</cc>
    
    <cc>dglazkov</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>haraken</cc>
    
    <cc>japhet</cc>
    
    <cc>mifenton</cc>
    
    <cc>peter+ews</cc>
    
    <cc>rafael.lobo</cc>
    
    <cc>rakuco</cc>
    
    <cc>rwlbuis</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>735881</commentid>
    <comment_count>0</comment_count>
    <who name="Andreas Kling">kling</who>
    <bug_when>2012-10-05 12:29:56 -0700</bug_when>
    <thetext>Since we expose Clipboard::types() to the web, we should handle it using an ordered collection internally.
When lowering the default minimum table size for WTF hash tables, some web-exposed string arrays got reordered because the HashSet&lt;String&gt; returned by Clipboard::types() got reordered in rehash.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>735890</commentid>
    <comment_count>1</comment_count>
      <attachid>167368</attachid>
    <who name="Andreas Kling">kling</who>
    <bug_when>2012-10-05 12:40:29 -0700</bug_when>
    <thetext>Created attachment 167368
Patch?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>735901</commentid>
    <comment_count>2</comment_count>
      <attachid>167368</attachid>
    <who name="Peter Beverloo (cr-android ews)">peter+ews</who>
    <bug_when>2012-10-05 13:02:37 -0700</bug_when>
    <thetext>Comment on attachment 167368
Patch?

Attachment 167368 did not pass cr-android-ews (chromium-android):
Output: http://queues.webkit.org/results/14179576</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>735902</commentid>
    <comment_count>3</comment_count>
      <attachid>167368</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-10-05 13:09:11 -0700</bug_when>
    <thetext>Comment on attachment 167368
Patch?

Attachment 167368 did not pass chromium-ews (chromium-xvfb):
Output: http://queues.webkit.org/results/14179582</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>735910</commentid>
    <comment_count>4</comment_count>
      <attachid>167372</attachid>
    <who name="Andreas Kling">kling</who>
    <bug_when>2012-10-05 13:21:32 -0700</bug_when>
    <thetext>Created attachment 167372
Patch??</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>736026</commentid>
    <comment_count>5</comment_count>
    <who name="Rafael Brandao">rafael.lobo</who>
    <bug_when>2012-10-05 15:20:47 -0700</bug_when>
    <thetext>Awesome patch! Incredible how we ever returned them ordered by insertion. :-)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>736138</commentid>
    <comment_count>6</comment_count>
      <attachid>167372</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2012-10-05 18:12:43 -0700</bug_when>
    <thetext>Comment on attachment 167372
Patch??

Why not Vector&lt;String&gt;? I can’t imagine that the types vector ever gets so long that the hash table is an important optimization.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>736272</commentid>
    <comment_count>7</comment_count>
      <attachid>167372</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-10-06 12:14:05 -0700</bug_when>
    <thetext>Comment on attachment 167372
Patch??

Clearing flags on attachment: 167372

Committed r130588: &lt;http://trac.webkit.org/changeset/130588&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>736273</commentid>
    <comment_count>8</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-10-06 12:14:10 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>167368</attachid>
            <date>2012-10-05 12:40:29 -0700</date>
            <delta_ts>2012-10-05 13:21:32 -0700</delta_ts>
            <desc>Patch?</desc>
            <filename>bug-98547.diff</filename>
            <type>text/plain</type>
            <size>18810</size>
            <attacher name="Andreas Kling">kling</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCA5Nzg3NjVkLi43M2E2ZTJhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNjEg
QEAKKzIwMTItMTAtMDUgIEFuZHJlYXMgS2xpbmcgIDxrbGluZ0B3ZWJraXQub3JnPgorCisgICAg
ICAgIENsaXBib2FyZDo6dHlwZXMoKSBzaG91bGQgcmV0dXJuIGFuIG9yZGVyZWQgY29sbGVjdGlv
bi4KKyAgICAgICAgPGh0dHA6Ly93ZWJraXQub3JnL2IvOTg1NDc+CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTGV0IENsaXBib2FyZDo6dHlwZXMoKSBy
ZXR1cm4gYSBMaXN0SGFzaFNldDxTdHJpbmc+IGluc3RlYWQgb2YgYSBIYXNoU2V0PFN0cmluZz4g
dG8gbWFrZSBzdXJlCisgICAgICAgIGl0IHJldGFpbnMgdGhlIG9yZGVyIGluIHdoaWNoIHR5cGUg
c3RyaW5ncyBhcmUgYWRkZWQuCisKKyAgICAgICAgTm8gdGVzdCwgdGhpcyBmaXhlcyBhbiBpc3N1
ZSB0aGF0IHdhcyB1bmNvdmVyZWQgd2hlbiBsb3dlcmluZyB0aGUgZGVmYXVsdCB0YWJsZSBzaXpl
IG9mIFdURgorICAgICAgICBoYXNoIHRhYmxlcywgY2F1c2luZyB0aGUgSGFzaFNldDxTdHJpbmc+
IHRvIHJlaGFzaCBhbmQgcmVvcmRlciBpdHNlbGYuCisKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9K
U0NsaXBib2FyZEN1c3RvbS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpKU0NsaXBib2FyZDo6dHlw
ZXMpOgorICAgICAgICAqIGJpbmRpbmdzL3Y4L2N1c3RvbS9WOENsaXBib2FyZEN1c3RvbS5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpWOENsaXBib2FyZDo6dHlwZXNBY2Nlc3NvckdldHRlcik6Cisg
ICAgICAgICogZG9tL0NsaXBib2FyZC5oOgorICAgICAgICAoQ2xpcGJvYXJkKToKKyAgICAgICAg
KiBwbGF0Zm9ybS9ibGFja2JlcnJ5L0NsaXBib2FyZEJsYWNrQmVycnkuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6Q2xpcGJvYXJkQmxhY2tCZXJyeTo6dHlwZXMpOgorICAgICAgICAqIHBsYXRmb3Jt
L2JsYWNrYmVycnkvQ2xpcGJvYXJkQmxhY2tCZXJyeS5oOgorICAgICAgICAoQ2xpcGJvYXJkQmxh
Y2tCZXJyeSk6CisgICAgICAgICogcGxhdGZvcm0vY2hyb21pdW0vQ2hyb21pdW1EYXRhT2JqZWN0
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNocm9taXVtRGF0YU9iamVjdDo6dHlwZXMpOgorICAg
ICAgICAqIHBsYXRmb3JtL2Nocm9taXVtL0Nocm9taXVtRGF0YU9iamVjdC5oOgorICAgICAgICAo
Q2hyb21pdW1EYXRhT2JqZWN0KToKKyAgICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS9DbGlwYm9h
cmRDaHJvbWl1bS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDbGlwYm9hcmRDaHJvbWl1bTo6dHlw
ZXMpOgorICAgICAgICAqIHBsYXRmb3JtL2Nocm9taXVtL0NsaXBib2FyZENocm9taXVtLmg6Cisg
ICAgICAgIChDbGlwYm9hcmRDaHJvbWl1bSk6CisgICAgICAgICogcGxhdGZvcm0vZWZsL0NsaXBi
b2FyZEVmbC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDbGlwYm9hcmRFZmw6OnR5cGVzKToKKyAg
ICAgICAgKiBwbGF0Zm9ybS9lZmwvQ2xpcGJvYXJkRWZsLmg6CisgICAgICAgIChDbGlwYm9hcmRF
ZmwpOgorICAgICAgICAqIHBsYXRmb3JtL2d0ay9DbGlwYm9hcmRHdGsuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6Q2xpcGJvYXJkR3RrOjp0eXBlcyk6CisgICAgICAgICogcGxhdGZvcm0vZ3RrL0Ns
aXBib2FyZEd0ay5oOgorICAgICAgICAoQ2xpcGJvYXJkR3RrKToKKyAgICAgICAgKiBwbGF0Zm9y
bS9tYWMvQ2xpcGJvYXJkTWFjLmg6CisgICAgICAgIChDbGlwYm9hcmRNYWMpOgorICAgICAgICAq
IHBsYXRmb3JtL21hYy9DbGlwYm9hcmRNYWMubW06CisgICAgICAgIChXZWJDb3JlOjphZGRIVE1M
Q2xpcGJvYXJkVHlwZXNGb3JDb2NvYVR5cGUpOgorICAgICAgICAoV2ViQ29yZTo6Q2xpcGJvYXJk
TWFjOjp0eXBlcyk6CisgICAgICAgICogcGxhdGZvcm0vcXQvQ2xpcGJvYXJkUXQuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6Q2xpcGJvYXJkUXQ6OnR5cGVzKToKKyAgICAgICAgKiBwbGF0Zm9ybS9x
dC9DbGlwYm9hcmRRdC5oOgorICAgICAgICAoQ2xpcGJvYXJkUXQpOgorICAgICAgICAqIHBsYXRm
b3JtL3dpbi9DbGlwYm9hcmRXaW4uY3BwOgorICAgICAgICAoV2ViQ29yZTo6YWRkTWltZVR5cGVz
Rm9yRm9ybWF0KToKKyAgICAgICAgKFdlYkNvcmU6OkNsaXBib2FyZFdpbjo6dHlwZXMpOgorICAg
ICAgICAqIHBsYXRmb3JtL3dpbi9DbGlwYm9hcmRXaW4uaDoKKyAgICAgICAgKENsaXBib2FyZFdp
bik6CisgICAgICAgICogcGxhdGZvcm0vd3gvQ2xpcGJvYXJkV3guY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6Q2xpcGJvYXJkV3g6OnR5cGVzKToKKyAgICAgICAgKiBwbGF0Zm9ybS93eC9DbGlwYm9h
cmRXeC5oOgorICAgICAgICAoQ2xpcGJvYXJkV3gpOgorCiAyMDEyLTEwLTA1ICBHYWJvciBSYXBj
c2FueWkgIDxyZ2Fib3JAd2Via2l0Lm9yZz4KIAogICAgICAgICBBZGQgQVJNLU5FT04gc3VwcG9y
dCB0byBWZWN0b3JNYXRoIGluIFdlYkF1ZGlvCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9qcy9KU0NsaXBib2FyZEN1c3RvbS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9qcy9KU0NsaXBib2FyZEN1c3RvbS5jcHAKaW5kZXggN2JlOGM4ZC4uMDliODdkNiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNDbGlwYm9hcmRDdXN0b20uY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTQ2xpcGJvYXJkQ3VzdG9tLmNwcApAQCAt
MzgsNyArMzgsNiBAQAogI2luY2x1ZGUgIk5vZGUuaCIKICNpbmNsdWRlIDxydW50aW1lL0FycmF5
UHJvdG90eXBlLmg+CiAjaW5jbHVkZSA8cnVudGltZS9FcnJvci5oPgotI2luY2x1ZGUgPHd0Zi9I
YXNoU2V0Lmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvU3RyaW5nSGFzaC5oPgogI2luY2x1ZGUgPHd0
Zi90ZXh0L1dURlN0cmluZy5oPgogCkBAIC01MiwxMyArNTEsMTMgQEAgSlNWYWx1ZSBKU0NsaXBi
b2FyZDo6dHlwZXMoRXhlY1N0YXRlKiBleGVjKSBjb25zdAogewogICAgIENsaXBib2FyZCogY2xp
cGJvYXJkID0gaW1wbCgpOwogCi0gICAgSGFzaFNldDxTdHJpbmc+IHR5cGVzID0gY2xpcGJvYXJk
LT50eXBlcygpOworICAgIExpc3RIYXNoU2V0PFN0cmluZz4gdHlwZXMgPSBjbGlwYm9hcmQtPnR5
cGVzKCk7CiAgICAgaWYgKHR5cGVzLmlzRW1wdHkoKSkKICAgICAgICAgcmV0dXJuIGpzTnVsbCgp
OwogCiAgICAgTWFya2VkQXJndW1lbnRCdWZmZXIgbGlzdDsKLSAgICBIYXNoU2V0PFN0cmluZz46
OmNvbnN0X2l0ZXJhdG9yIGVuZCA9IHR5cGVzLmVuZCgpOwotICAgIGZvciAoSGFzaFNldDxTdHJp
bmc+Ojpjb25zdF9pdGVyYXRvciBpdCA9IHR5cGVzLmJlZ2luKCk7IGl0ICE9IGVuZDsgKytpdCkK
KyAgICBMaXN0SGFzaFNldDxTdHJpbmc+Ojpjb25zdF9pdGVyYXRvciBlbmQgPSB0eXBlcy5lbmQo
KTsKKyAgICBmb3IgKExpc3RIYXNoU2V0PFN0cmluZz46OmNvbnN0X2l0ZXJhdG9yIGl0ID0gdHlw
ZXMuYmVnaW4oKTsgaXQgIT0gZW5kOyArK2l0KQogICAgICAgICBsaXN0LmFwcGVuZChqc1N0cmlu
Z1dpdGhDYWNoZShleGVjLCAqaXQpKTsKICAgICByZXR1cm4gY29uc3RydWN0QXJyYXkoZXhlYywg
Z2xvYmFsT2JqZWN0KCksIGxpc3QpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3MvdjgvY3VzdG9tL1Y4Q2xpcGJvYXJkQ3VzdG9tLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL3Y4L2N1c3RvbS9WOENsaXBib2FyZEN1c3RvbS5jcHAKaW5kZXggMDY2MzUyMi4uZmNh
ODk5MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4Q2xp
cGJvYXJkQ3VzdG9tLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20v
VjhDbGlwYm9hcmRDdXN0b20uY3BwCkBAIC00OCwxNCArNDgsMTQgQEAgdjg6OkhhbmRsZTx2ODo6
VmFsdWU+IFY4Q2xpcGJvYXJkOjp0eXBlc0FjY2Vzc29yR2V0dGVyKHY4OjpMb2NhbDx2ODo6U3Ry
aW5nPiBuYW0KICAgICBJTkNfU1RBVFMoIkRPTS5DbGlwYm9hcmQudHlwZXMoKSIpOwogICAgIENs
aXBib2FyZCogY2xpcGJvYXJkID0gVjhDbGlwYm9hcmQ6OnRvTmF0aXZlKGluZm8uSG9sZGVyKCkp
OwogCi0gICAgSGFzaFNldDxTdHJpbmc+IHR5cGVzID0gY2xpcGJvYXJkLT50eXBlcygpOworICAg
IExpc3RIYXNoU2V0PFN0cmluZz4gdHlwZXMgPSBjbGlwYm9hcmQtPnR5cGVzKCk7CiAgICAgaWYg
KHR5cGVzLmlzRW1wdHkoKSkKICAgICAgICAgcmV0dXJuIHY4OjpOdWxsKGluZm8uR2V0SXNvbGF0
ZSgpKTsKIAogICAgIHY4OjpMb2NhbDx2ODo6QXJyYXk+IHJlc3VsdCA9IHY4OjpBcnJheTo6TmV3
KHR5cGVzLnNpemUoKSk7Ci0gICAgSGFzaFNldDxTdHJpbmc+Ojpjb25zdF9pdGVyYXRvciBlbmQg
PSB0eXBlcy5lbmQoKTsKKyAgICBMaXN0SGFzaFNldDxTdHJpbmc+Ojpjb25zdF9pdGVyYXRvciBl
bmQgPSB0eXBlcy5lbmQoKTsKICAgICBpbnQgaW5kZXggPSAwOwotICAgIGZvciAoSGFzaFNldDxT
dHJpbmc+Ojpjb25zdF9pdGVyYXRvciBpdCA9IHR5cGVzLmJlZ2luKCk7IGl0ICE9IGVuZDsgKytp
dCwgKytpbmRleCkKKyAgICBmb3IgKExpc3RIYXNoU2V0PFN0cmluZz46OmNvbnN0X2l0ZXJhdG9y
IGl0ID0gdHlwZXMuYmVnaW4oKTsgaXQgIT0gZW5kOyArK2l0LCArK2luZGV4KQogICAgICAgICBy
ZXN1bHQtPlNldCh2OEludGVnZXIoaW5kZXgsIGluZm8uR2V0SXNvbGF0ZSgpKSwgdjhTdHJpbmco
Kml0LCBpbmZvLkdldElzb2xhdGUoKSkpOwogCiAgICAgcmV0dXJuIHJlc3VsdDsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9DbGlwYm9hcmQuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9D
bGlwYm9hcmQuaAppbmRleCA4M2YwZjI0Li5kMTFiNjUyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9kb20vQ2xpcGJvYXJkLmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0NsaXBib2FyZC5o
CkBAIC02Niw3ICs2Niw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgdmlydHVhbCBi
b29sIHNldERhdGEoY29uc3QgU3RyaW5nJiB0eXBlLCBjb25zdCBTdHJpbmcmIGRhdGEpID0gMDsK
ICAgICAKICAgICAgICAgLy8gZXh0ZW5zaW9ucyBiZXlvbmQgSUUncyBBUEkKLSAgICAgICAgdmly
dHVhbCBIYXNoU2V0PFN0cmluZz4gdHlwZXMoKSBjb25zdCA9IDA7CisgICAgICAgIHZpcnR1YWwg
TGlzdEhhc2hTZXQ8U3RyaW5nPiB0eXBlcygpIGNvbnN0ID0gMDsKICAgICAgICAgdmlydHVhbCBQ
YXNzUmVmUHRyPEZpbGVMaXN0PiBmaWxlcygpIGNvbnN0ID0gMDsKIAogICAgICAgICBJbnRQb2lu
dCBkcmFnTG9jYXRpb24oKSBjb25zdCB7IHJldHVybiBtX2RyYWdMb2M7IH0KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2JsYWNrYmVycnkvQ2xpcGJvYXJkQmxhY2tCZXJyeS5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ibGFja2JlcnJ5L0NsaXBib2FyZEJsYWNrQmVy
cnkuY3BwCmluZGV4IDJhMzFiZTguLmFkZTIyZWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2JsYWNrYmVycnkvQ2xpcGJvYXJkQmxhY2tCZXJyeS5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vYmxhY2tiZXJyeS9DbGlwYm9hcmRCbGFja0JlcnJ5LmNwcApAQCAt
NzgsMTMgKzc4LDEzIEBAIGJvb2wgQ2xpcGJvYXJkQmxhY2tCZXJyeTo6c2V0RGF0YShjb25zdCBT
dHJpbmcmIHR5cGUsIGNvbnN0IFN0cmluZyYgdGV4dCkKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAot
SGFzaFNldDxTdHJpbmc+IENsaXBib2FyZEJsYWNrQmVycnk6OnR5cGVzKCkgY29uc3QKK0xpc3RI
YXNoU2V0PFN0cmluZz4gQ2xpcGJvYXJkQmxhY2tCZXJyeTo6dHlwZXMoKSBjb25zdAogewogICAg
IGlmIChwb2xpY3koKSAhPSBDbGlwYm9hcmRSZWFkYWJsZSAmJiBwb2xpY3koKSAhPSBDbGlwYm9h
cmRUeXBlc1JlYWRhYmxlKQotICAgICAgICByZXR1cm4gSGFzaFNldDxTdHJpbmc+KCk7CisgICAg
ICAgIHJldHVybiBMaXN0SGFzaFNldDxTdHJpbmc+KCk7CiAKICAgICAvLyBXZSB1c2UgaGFyZGNv
ZGVkIGxpc3QgaGVyZSBzaW5jZSB0aGVyZSBzZWVtcyB0byBiZSBubyBBUEkgdG8gZ2V0IHRoZSBs
aXN0LgotICAgIEhhc2hTZXQ8U3RyaW5nPiByZXQ7CisgICAgTGlzdEhhc2hTZXQ8U3RyaW5nPiBy
ZXQ7CiAgICAgcmV0LmFkZCgidGV4dC9wbGFpbiIpOwogICAgIHJldC5hZGQoInRleHQvaHRtbCIp
OwogICAgIHJldC5hZGQoInRleHQvdXJsIik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ibGFja2JlcnJ5L0NsaXBib2FyZEJsYWNrQmVycnkuaCBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2JsYWNrYmVycnkvQ2xpcGJvYXJkQmxhY2tCZXJyeS5oCmluZGV4IDE3ZWZmY2Uu
LjM3ZGE1MTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2JsYWNrYmVycnkv
Q2xpcGJvYXJkQmxhY2tCZXJyeS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2JsYWNr
YmVycnkvQ2xpcGJvYXJkQmxhY2tCZXJyeS5oCkBAIC0zOSw3ICszOSw3IEBAIHB1YmxpYzoKICAg
ICBib29sIHNldERhdGEoY29uc3QgU3RyaW5nJiB0eXBlLCBjb25zdCBTdHJpbmcmIGRhdGEpOwog
CiAgICAgLy8gZXh0ZW5zaW9ucyBiZXlvbmQgSUUncyBBUEkKLSAgICB2aXJ0dWFsIEhhc2hTZXQ8
U3RyaW5nPiB0eXBlcygpIGNvbnN0OworICAgIHZpcnR1YWwgTGlzdEhhc2hTZXQ8U3RyaW5nPiB0
eXBlcygpIGNvbnN0OwogICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxGaWxlTGlzdD4gZmlsZXMoKSBj
b25zdDsKICAgICB2aXJ0dWFsIERyYWdJbWFnZVJlZiBjcmVhdGVEcmFnSW1hZ2UoSW50UG9pbnQm
KSBjb25zdDsKICAgICB2aXJ0dWFsIHZvaWQgZGVjbGFyZUFuZFdyaXRlRHJhZ0ltYWdlKEVsZW1l
bnQqLCBjb25zdCBLVVJMJiwgY29uc3QgU3RyaW5nJiB0aXRsZSwgRnJhbWUqKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVtL0Nocm9taXVtRGF0YU9iamVjdC5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9DaHJvbWl1bURhdGFPYmplY3Qu
Y3BwCmluZGV4IGVjN2VlYmUuLjZmNjc1MWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2Nocm9taXVtL0Nocm9taXVtRGF0YU9iamVjdC5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vY2hyb21pdW0vQ2hyb21pdW1EYXRhT2JqZWN0LmNwcApAQCAtMTI2LDkgKzEy
Niw5IEBAIHZvaWQgQ2hyb21pdW1EYXRhT2JqZWN0OjpjbGVhckFsbEV4Y2VwdEZpbGVzKCkKICAg
ICB9CiB9CiAKLUhhc2hTZXQ8U3RyaW5nPiBDaHJvbWl1bURhdGFPYmplY3Q6OnR5cGVzKCkgY29u
c3QKK0xpc3RIYXNoU2V0PFN0cmluZz4gQ2hyb21pdW1EYXRhT2JqZWN0Ojp0eXBlcygpIGNvbnN0
CiB7Ci0gICAgSGFzaFNldDxTdHJpbmc+IHJlc3VsdHM7CisgICAgTGlzdEhhc2hTZXQ8U3RyaW5n
PiByZXN1bHRzOwogICAgIGJvb2wgY29udGFpbnNGaWxlcyA9IGZhbHNlOwogICAgIGZvciAoc2l6
ZV90IGkgPSAwOyBpIDwgbV9pdGVtTGlzdC5zaXplKCk7ICsraSkgewogICAgICAgICBpZiAobV9p
dGVtTGlzdFtpXS0+a2luZCgpID09IERhdGFUcmFuc2Zlckl0ZW06OmtpbmRTdHJpbmcpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9DaHJvbWl1bURhdGFPYmpl
Y3QuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVtL0Nocm9taXVtRGF0YU9iamVj
dC5oCmluZGV4IDRhNWU0ZmUuLjAzZDg1ZDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2Nocm9taXVtL0Nocm9taXVtRGF0YU9iamVjdC5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2Nocm9taXVtL0Nocm9taXVtRGF0YU9iamVjdC5oCkBAIC02OSw3ICs2OSw3IEBA
IHB1YmxpYzoKICAgICB2b2lkIGNsZWFyRGF0YShjb25zdCBTdHJpbmcmIHR5cGUpOwogICAgIHZv
aWQgY2xlYXJBbGxFeGNlcHRGaWxlcygpOwogCi0gICAgSGFzaFNldDxTdHJpbmc+IHR5cGVzKCkg
Y29uc3Q7CisgICAgTGlzdEhhc2hTZXQ8U3RyaW5nPiB0eXBlcygpIGNvbnN0OwogICAgIFN0cmlu
ZyBnZXREYXRhKGNvbnN0IFN0cmluZyYgdHlwZSkgY29uc3Q7CiAgICAgYm9vbCBzZXREYXRhKGNv
bnN0IFN0cmluZyYgdHlwZSwgY29uc3QgU3RyaW5nJiBkYXRhKTsKIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vY2hyb21pdW0vQ2xpcGJvYXJkQ2hyb21pdW0uY3BwIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vY2hyb21pdW0vQ2xpcGJvYXJkQ2hyb21pdW0uY3BwCmluZGV4
IDBiOTc0N2UuLmY1OGViY2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2No
cm9taXVtL0NsaXBib2FyZENocm9taXVtLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9jaHJvbWl1bS9DbGlwYm9hcmRDaHJvbWl1bS5jcHAKQEAgLTI3NSwxMCArMjc1LDEwIEBAIGJv
b2wgQ2xpcGJvYXJkQ2hyb21pdW06OnNldERhdGEoY29uc3QgU3RyaW5nJiB0eXBlLCBjb25zdCBT
dHJpbmcmIGRhdGEpCiB9CiAKIC8vIGV4dGVuc2lvbnMgYmV5b25kIElFJ3MgQVBJCi1IYXNoU2V0
PFN0cmluZz4gQ2xpcGJvYXJkQ2hyb21pdW06OnR5cGVzKCkgY29uc3QKK0xpc3RIYXNoU2V0PFN0
cmluZz4gQ2xpcGJvYXJkQ2hyb21pdW06OnR5cGVzKCkgY29uc3QKIHsKICAgICBpZiAocG9saWN5
KCkgIT0gQ2xpcGJvYXJkUmVhZGFibGUgJiYgcG9saWN5KCkgIT0gQ2xpcGJvYXJkVHlwZXNSZWFk
YWJsZSkKLSAgICAgICAgcmV0dXJuIEhhc2hTZXQ8U3RyaW5nPigpOworICAgICAgICByZXR1cm4g
TGlzdEhhc2hTZXQ8U3RyaW5nPigpOwogCiAgICAgcmV0dXJuIG1fZGF0YU9iamVjdC0+dHlwZXMo
KTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVtL0NsaXBi
b2FyZENocm9taXVtLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9DbGlwYm9h
cmRDaHJvbWl1bS5oCmluZGV4IGE1Y2JmNTMuLmU0MTgzOGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVtL0NsaXBib2FyZENocm9taXVtLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vY2hyb21pdW0vQ2xpcGJvYXJkQ2hyb21pdW0uaApAQCAtODQsNyAr
ODQsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIGJvb2wgcGxhdGZvcm1DbGlwYm9h
cmRDaGFuZ2VkKCkgY29uc3Q7CiAKICAgICAgICAgLy8gZXh0ZW5zaW9ucyBiZXlvbmQgSUUncyBB
UEkKLSAgICAgICAgdmlydHVhbCBIYXNoU2V0PFN0cmluZz4gdHlwZXMoKSBjb25zdDsKKyAgICAg
ICAgdmlydHVhbCBMaXN0SGFzaFNldDxTdHJpbmc+IHR5cGVzKCkgY29uc3Q7CiAgICAgICAgIHZp
cnR1YWwgUGFzc1JlZlB0cjxGaWxlTGlzdD4gZmlsZXMoKSBjb25zdDsKIAogICAgICAgICB2b2lk
IHNldERyYWdJbWFnZShDYWNoZWRJbWFnZSosIGNvbnN0IEludFBvaW50Jik7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9lZmwvQ2xpcGJvYXJkRWZsLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2VmbC9DbGlwYm9hcmRFZmwuY3BwCmluZGV4IDg4NGQzODcuLmRkNGFj
MjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2VmbC9DbGlwYm9hcmRFZmwu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2VmbC9DbGlwYm9hcmRFZmwuY3BwCkBA
IC03NiwxMCArNzYsMTAgQEAgYm9vbCBDbGlwYm9hcmRFZmw6OnNldERhdGEoY29uc3QgU3RyaW5n
JiwgY29uc3QgU3RyaW5nJikKICAgICByZXR1cm4gZmFsc2U7CiB9CiAKLUhhc2hTZXQ8U3RyaW5n
PiBDbGlwYm9hcmRFZmw6OnR5cGVzKCkgY29uc3QKK0xpc3RIYXNoU2V0PFN0cmluZz4gQ2xpcGJv
YXJkRWZsOjp0eXBlcygpIGNvbnN0CiB7CiAgICAgbm90SW1wbGVtZW50ZWQoKTsKLSAgICByZXR1
cm4gSGFzaFNldDxTdHJpbmc+KCk7CisgICAgcmV0dXJuIExpc3RIYXNoU2V0PFN0cmluZz4oKTsK
IH0KIAogUGFzc1JlZlB0cjxGaWxlTGlzdD4gQ2xpcGJvYXJkRWZsOjpmaWxlcygpIGNvbnN0CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9lZmwvQ2xpcGJvYXJkRWZsLmggYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9lZmwvQ2xpcGJvYXJkRWZsLmgKaW5kZXggM2RhNTk4ZS4u
OTA0ZWI1MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZWZsL0NsaXBib2Fy
ZEVmbC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2VmbC9DbGlwYm9hcmRFZmwuaApA
QCAtMzksNyArMzksNyBAQCBwdWJsaWM6CiAgICAgU3RyaW5nIGdldERhdGEoY29uc3QgU3RyaW5n
JikgY29uc3Q7CiAgICAgYm9vbCBzZXREYXRhKGNvbnN0IFN0cmluZyYsIGNvbnN0IFN0cmluZyYp
OwogCi0gICAgSGFzaFNldDxTdHJpbmc+IHR5cGVzKCkgY29uc3Q7CisgICAgTGlzdEhhc2hTZXQ8
U3RyaW5nPiB0eXBlcygpIGNvbnN0OwogICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxGaWxlTGlzdD4g
ZmlsZXMoKSBjb25zdDsKIAogICAgIEludFBvaW50IGRyYWdMb2NhdGlvbigpIGNvbnN0OwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL0NsaXBib2FyZEd0ay5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvQ2xpcGJvYXJkR3RrLmNwcAppbmRleCA3ZDVmODU4
Li4xZWVkYjMyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvQ2xpcGJv
YXJkR3RrLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvQ2xpcGJvYXJkR3Rr
LmNwcApAQCAtMTg2LDE1ICsxODYsMTUgQEAgYm9vbCBDbGlwYm9hcmRHdGs6OnNldERhdGEoY29u
c3QgU3RyaW5nJiB0eXBlU3RyaW5nLCBjb25zdCBTdHJpbmcmIGRhdGEpCiAgICAgcmV0dXJuIHN1
Y2Nlc3M7CiB9CiAKLUhhc2hTZXQ8U3RyaW5nPiBDbGlwYm9hcmRHdGs6OnR5cGVzKCkgY29uc3QK
K0xpc3RIYXNoU2V0PFN0cmluZz4gQ2xpcGJvYXJkR3RrOjp0eXBlcygpIGNvbnN0CiB7CiAgICAg
aWYgKHBvbGljeSgpICE9IENsaXBib2FyZFJlYWRhYmxlICYmIHBvbGljeSgpICE9IENsaXBib2Fy
ZFR5cGVzUmVhZGFibGUpCi0gICAgICAgIHJldHVybiBIYXNoU2V0PFN0cmluZz4oKTsKKyAgICAg
ICAgcmV0dXJuIExpc3RIYXNoU2V0PFN0cmluZz4oKTsKIAogICAgIGlmIChtX2NsaXBib2FyZCkK
ICAgICAgICAgUGFzdGVib2FyZEhlbHBlcjo6ZGVmYXVsdFBhc3RlYm9hcmRIZWxwZXIoKS0+Z2V0
Q2xpcGJvYXJkQ29udGVudHMobV9jbGlwYm9hcmQpOwogCi0gICAgSGFzaFNldDxTdHJpbmc+IHR5
cGVzOworICAgIExpc3RIYXNoU2V0PFN0cmluZz4gdHlwZXM7CiAgICAgaWYgKG1fZGF0YU9iamVj
dC0+aGFzVGV4dCgpKSB7CiAgICAgICAgIHR5cGVzLmFkZCgidGV4dC9wbGFpbiIpOwogICAgICAg
ICB0eXBlcy5hZGQoIlRleHQiKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2d0ay9DbGlwYm9hcmRHdGsuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9DbGlwYm9h
cmRHdGsuaAppbmRleCBiMDcxYzZmLi5lZTlkNjNjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ndGsvQ2xpcGJvYXJkR3RrLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3RrL0NsaXBib2FyZEd0ay5oCkBAIC01Nyw3ICs1Nyw3IEBAIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKICAgICAgICAgU3RyaW5nIGdldERhdGEoY29uc3QgU3RyaW5nJikgY29uc3Q7CiAgICAgICAg
IGJvb2wgc2V0RGF0YShjb25zdCBTdHJpbmcmLCBjb25zdCBTdHJpbmcmKTsKIAotICAgICAgICB2
aXJ0dWFsIEhhc2hTZXQ8U3RyaW5nPiB0eXBlcygpIGNvbnN0OworICAgICAgICB2aXJ0dWFsIExp
c3RIYXNoU2V0PFN0cmluZz4gdHlwZXMoKSBjb25zdDsKICAgICAgICAgdmlydHVhbCBQYXNzUmVm
UHRyPEZpbGVMaXN0PiBmaWxlcygpIGNvbnN0OwogCiAgICAgICAgIHZvaWQgc2V0RHJhZ0ltYWdl
KENhY2hlZEltYWdlKiwgY29uc3QgSW50UG9pbnQmKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL21hYy9DbGlwYm9hcmRNYWMuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L21hYy9DbGlwYm9hcmRNYWMuaAppbmRleCA3NTUxN2MxLi4zMDVhOTJmIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvQ2xpcGJvYXJkTWFjLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbWFjL0NsaXBib2FyZE1hYy5oCkBAIC02Miw3ICs2Miw3IEBAIHB1Ymxp
YzoKICAgICB2aXJ0dWFsIGJvb2wgaGFzRGF0YSgpOwogICAgIAogICAgIC8vIGV4dGVuc2lvbnMg
YmV5b25kIElFJ3MgQVBJCi0gICAgdmlydHVhbCBIYXNoU2V0PFN0cmluZz4gdHlwZXMoKSBjb25z
dDsKKyAgICB2aXJ0dWFsIExpc3RIYXNoU2V0PFN0cmluZz4gdHlwZXMoKSBjb25zdDsKICAgICB2
aXJ0dWFsIFBhc3NSZWZQdHI8RmlsZUxpc3Q+IGZpbGVzKCkgY29uc3Q7CiAKICAgICB2b2lkIHNl
dERyYWdJbWFnZShDYWNoZWRJbWFnZSosIGNvbnN0IEludFBvaW50Jik7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvQ2xpcGJvYXJkTWFjLm1tIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbWFjL0NsaXBib2FyZE1hYy5tbQppbmRleCAyZTlmNWFmLi5iZDg4MDIwIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvQ2xpcGJvYXJkTWFjLm1tCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9DbGlwYm9hcmRNYWMubW0KQEAgLTEyMiw3
ICsxMjIsNyBAQCBzdGF0aWMgU3RyaW5nIHV0aVR5cGVGcm9tQ29jb2FUeXBlKGNvbnN0IFN0cmlu
ZyYgdHlwZSkKICAgICByZXR1cm4gU3RyaW5nKCk7CiB9CiAKLXN0YXRpYyB2b2lkIGFkZEhUTUxD
bGlwYm9hcmRUeXBlc0ZvckNvY29hVHlwZShIYXNoU2V0PFN0cmluZz4mIHJlc3VsdFR5cGVzLCBj
b25zdCBTdHJpbmcmIGNvY29hVHlwZSwgY29uc3QgU3RyaW5nJiBwYXN0ZWJvYXJkTmFtZSkKK3N0
YXRpYyB2b2lkIGFkZEhUTUxDbGlwYm9hcmRUeXBlc0ZvckNvY29hVHlwZShMaXN0SGFzaFNldDxT
dHJpbmc+JiByZXN1bHRUeXBlcywgY29uc3QgU3RyaW5nJiBjb2NvYVR5cGUsIGNvbnN0IFN0cmlu
ZyYgcGFzdGVib2FyZE5hbWUpCiB7CiAgICAgLy8gVVRJIG1heSBub3QgZG8gdGhlc2UgcmlnaHQs
IHNvIG1ha2Ugc3VyZSB3ZSBnZXQgdGhlIHJpZ2h0LCBwcmVkaWN0YWJsZSByZXN1bHQKICAgICBp
ZiAoY29jb2FUeXBlID09IFN0cmluZyhOU1N0cmluZ1Bib2FyZFR5cGUpKSB7CkBAIC0yODQsMTAg
KzI4NCwxMCBAQCBib29sIENsaXBib2FyZE1hYzo6c2V0RGF0YShjb25zdCBTdHJpbmcgJnR5cGUs
IGNvbnN0IFN0cmluZyAmZGF0YSkKICAgICByZXR1cm4gZmFsc2U7CiB9CiAKLUhhc2hTZXQ8U3Ry
aW5nPiBDbGlwYm9hcmRNYWM6OnR5cGVzKCkgY29uc3QKK0xpc3RIYXNoU2V0PFN0cmluZz4gQ2xp
cGJvYXJkTWFjOjp0eXBlcygpIGNvbnN0CiB7CiAgICAgaWYgKHBvbGljeSgpICE9IENsaXBib2Fy
ZFJlYWRhYmxlICYmIHBvbGljeSgpICE9IENsaXBib2FyZFR5cGVzUmVhZGFibGUpCi0gICAgICAg
IHJldHVybiBIYXNoU2V0PFN0cmluZz4oKTsKKyAgICAgICAgcmV0dXJuIExpc3RIYXNoU2V0PFN0
cmluZz4oKTsKIAogICAgIFZlY3RvcjxTdHJpbmc+IHR5cGVzOwogICAgIHBsYXRmb3JtU3RyYXRl
Z2llcygpLT5wYXN0ZWJvYXJkU3RyYXRlZ3koKS0+Z2V0VHlwZXModHlwZXMsIG1fcGFzdGVib2Fy
ZE5hbWUpOwpAQCAtMjk1LDkgKzI5NSw5IEBAIEhhc2hTZXQ8U3RyaW5nPiBDbGlwYm9hcmRNYWM6
OnR5cGVzKCkgY29uc3QKICAgICAvLyBFbmZvcmNlIGNoYW5nZUNvdW50IG91cnNlbHZlcyBmb3Ig
c2VjdXJpdHkuICBXZSBjaGVjayBhZnRlciByZWFkaW5nIGluc3RlYWQgb2YgYmVmb3JlIHRvIGJl
CiAgICAgLy8gc3VyZSBpdCBkb2Vzbid0IGNoYW5nZSBiZXR3ZWVuIG91ciB0ZXN0aW5nIHRoZSBj
aGFuZ2UgY291bnQgYW5kIGFjY2Vzc2luZyB0aGUgZGF0YS4KICAgICBpZiAobV9jaGFuZ2VDb3Vu
dCAhPSBwbGF0Zm9ybVN0cmF0ZWdpZXMoKS0+cGFzdGVib2FyZFN0cmF0ZWd5KCktPmNoYW5nZUNv
dW50KG1fcGFzdGVib2FyZE5hbWUpKQotICAgICAgICByZXR1cm4gSGFzaFNldDxTdHJpbmc+KCk7
CisgICAgICAgIHJldHVybiBMaXN0SGFzaFNldDxTdHJpbmc+KCk7CiAKLSAgICBIYXNoU2V0PFN0
cmluZz4gcmVzdWx0OworICAgIExpc3RIYXNoU2V0PFN0cmluZz4gcmVzdWx0OwogICAgIC8vIEZJ
WE1FOiBUaGlzIGxvb3AgY291bGQgYmUgc3BsaXQgaW50byB0d28gc3RhZ2VzLiBPbmUgd2hpY2gg
YWRkcyBhbGwgdGhlIEhUTUw1IHNwZWNpZmllZCB0eXBlcwogICAgIC8vIGFuZCBhIHNlY29uZCB3
aGljaCBhZGRzIGFsbCB0aGUgZXh0cmEgdHlwZXMgZnJvbSB0aGUgY29jb2EgY2xpcGJvYXJkICh3
aGljaCBpcyBNYWMtb25seSBiZWhhdmlvcikuCiAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCB0
eXBlcy5zaXplKCk7IGkrKykgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
cXQvQ2xpcGJvYXJkUXQuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vcXQvQ2xpcGJvYXJk
UXQuY3BwCmluZGV4IGMwZjRjZDEuLjhkODRkNzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL3F0L0NsaXBib2FyZFF0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9xdC9DbGlwYm9hcmRRdC5jcHAKQEAgLTE4MywxMyArMTgzLDEzIEBAIGJvb2wgQ2xpcGJvYXJk
UXQ6OnNldERhdGEoY29uc3QgU3RyaW5nJiB0eXBlLCBjb25zdCBTdHJpbmcmIGRhdGEpCiB9CiAK
IC8vIGV4dGVuc2lvbnMgYmV5b25kIElFJ3MgQVBJCi1IYXNoU2V0PFN0cmluZz4gQ2xpcGJvYXJk
UXQ6OnR5cGVzKCkgY29uc3QKK0xpc3RIYXNoU2V0PFN0cmluZz4gQ2xpcGJvYXJkUXQ6OnR5cGVz
KCkgY29uc3QKIHsKICAgICBpZiAocG9saWN5KCkgIT0gQ2xpcGJvYXJkUmVhZGFibGUgJiYgcG9s
aWN5KCkgIT0gQ2xpcGJvYXJkVHlwZXNSZWFkYWJsZSkKLSAgICAgICAgcmV0dXJuIEhhc2hTZXQ8
U3RyaW5nPigpOworICAgICAgICByZXR1cm4gTGlzdEhhc2hTZXQ8U3RyaW5nPigpOwogCiAgICAg
QVNTRVJUKG1fcmVhZGFibGVEYXRhKTsKLSAgICBIYXNoU2V0PFN0cmluZz4gcmVzdWx0OworICAg
IExpc3RIYXNoU2V0PFN0cmluZz4gcmVzdWx0OwogICAgIFFTdHJpbmdMaXN0IGZvcm1hdHMgPSBt
X3JlYWRhYmxlRGF0YS0+Zm9ybWF0cygpOwogICAgIGZvciAoaW50IGkgPSAwOyBpIDwgZm9ybWF0
cy5jb3VudCgpOyArK2kpCiAgICAgICAgIHJlc3VsdC5hZGQoZm9ybWF0cy5hdChpKSk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9xdC9DbGlwYm9hcmRRdC5oIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vcXQvQ2xpcGJvYXJkUXQuaAppbmRleCA1ZDA5Yzg0Li5iODFjMTQ4
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9xdC9DbGlwYm9hcmRRdC5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3F0L0NsaXBib2FyZFF0LmgKQEAgLTU3LDcgKzU3
LDcgQEAgcHVibGljOgogICAgIGJvb2wgc2V0RGF0YShjb25zdCBTdHJpbmcmIHR5cGUsIGNvbnN0
IFN0cmluZyYgZGF0YSk7CiAKICAgICAvLyBleHRlbnNpb25zIGJleW9uZCBJRSdzIEFQSQotICAg
IHZpcnR1YWwgSGFzaFNldDxTdHJpbmc+IHR5cGVzKCkgY29uc3Q7CisgICAgdmlydHVhbCBMaXN0
SGFzaFNldDxTdHJpbmc+IHR5cGVzKCkgY29uc3Q7CiAgICAgdmlydHVhbCBQYXNzUmVmUHRyPEZp
bGVMaXN0PiBmaWxlcygpIGNvbnN0OwogCiAgICAgdm9pZCBzZXREcmFnSW1hZ2UoQ2FjaGVkSW1h
Z2UqLCBjb25zdCBJbnRQb2ludCYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vd2luL0NsaXBib2FyZFdpbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93aW4vQ2xp
cGJvYXJkV2luLmNwcAppbmRleCA0NDM1MzM5Li5mYzU5NWY5IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS93aW4vQ2xpcGJvYXJkV2luLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS93aW4vQ2xpcGJvYXJkV2luLmNwcApAQCAtNDg0LDcgKzQ4NCw3IEBAIGJvb2wg
Q2xpcGJvYXJkV2luOjpzZXREYXRhKGNvbnN0IFN0cmluZyYgdHlwZSwgY29uc3QgU3RyaW5nJiBk
YXRhKQogICAgIHJldHVybiBmYWxzZTsKIH0KIAotc3RhdGljIHZvaWQgYWRkTWltZVR5cGVzRm9y
Rm9ybWF0KEhhc2hTZXQ8U3RyaW5nPiYgcmVzdWx0cywgY29uc3QgRk9STUFURVRDJiBmb3JtYXQp
CitzdGF0aWMgdm9pZCBhZGRNaW1lVHlwZXNGb3JGb3JtYXQoTGlzdEhhc2hTZXQ8U3RyaW5nPiYg
cmVzdWx0cywgY29uc3QgRk9STUFURVRDJiBmb3JtYXQpCiB7CiAgICAgLy8gVVJMIGFuZCBUZXh0
IGFyZSBwcm92aWRlZCBmb3IgY29tcGF0aWJpbGl0eSB3aXRoIElFJ3MgbW9kZWwKICAgICBpZiAo
Zm9ybWF0LmNmRm9ybWF0ID09IHVybEZvcm1hdCgpLT5jZkZvcm1hdCB8fCBmb3JtYXQuY2ZGb3Jt
YXQgPT0gdXJsV0Zvcm1hdCgpLT5jZkZvcm1hdCkgewpAQCAtNDk5LDkgKzQ5OSw5IEBAIHN0YXRp
YyB2b2lkIGFkZE1pbWVUeXBlc0ZvckZvcm1hdChIYXNoU2V0PFN0cmluZz4mIHJlc3VsdHMsIGNv
bnN0IEZPUk1BVEVUQyYgZm9yCiB9CiAKIC8vIGV4dGVuc2lvbnMgYmV5b25kIElFJ3MgQVBJCi1I
YXNoU2V0PFN0cmluZz4gQ2xpcGJvYXJkV2luOjp0eXBlcygpIGNvbnN0CitMaXN0SGFzaFNldDxT
dHJpbmc+IENsaXBib2FyZFdpbjo6dHlwZXMoKSBjb25zdAogeyAKLSAgICBIYXNoU2V0PFN0cmlu
Zz4gcmVzdWx0czsgCisgICAgTGlzdEhhc2hTZXQ8U3RyaW5nPiByZXN1bHRzOwogICAgIGlmIChw
b2xpY3koKSAhPSBDbGlwYm9hcmRSZWFkYWJsZSAmJiBwb2xpY3koKSAhPSBDbGlwYm9hcmRUeXBl
c1JlYWRhYmxlKQogICAgICAgICByZXR1cm4gcmVzdWx0czsKIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vd2luL0NsaXBib2FyZFdpbi5oIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vd2luL0NsaXBib2FyZFdpbi5oCmluZGV4IDhkYWQ0MTUuLjExNGJkNDAgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dpbi9DbGlwYm9hcmRXaW4uaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS93aW4vQ2xpcGJvYXJkV2luLmgKQEAgLTY0LDcgKzY0LDcgQEAg
cHVibGljOgogICAgIGJvb2wgc2V0RGF0YShjb25zdCBTdHJpbmcmIHR5cGUsIGNvbnN0IFN0cmlu
ZyYgZGF0YSk7CiAKICAgICAvLyBleHRlbnNpb25zIGJleW9uZCBJRSdzIEFQSQotICAgIHZpcnR1
YWwgSGFzaFNldDxTdHJpbmc+IHR5cGVzKCkgY29uc3Q7CisgICAgdmlydHVhbCBMaXN0SGFzaFNl
dDxTdHJpbmc+IHR5cGVzKCkgY29uc3Q7CiAgICAgdmlydHVhbCBQYXNzUmVmUHRyPEZpbGVMaXN0
PiBmaWxlcygpIGNvbnN0OwogCiAgICAgdm9pZCBzZXREcmFnSW1hZ2UoQ2FjaGVkSW1hZ2UqLCBj
b25zdCBJbnRQb2ludCYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd3gv
Q2xpcGJvYXJkV3guY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd3gvQ2xpcGJvYXJkV3gu
Y3BwCmluZGV4IGY2ZjI0NGYuLmRjZGI5NjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL3d4L0NsaXBib2FyZFd4LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93
eC9DbGlwYm9hcmRXeC5jcHAKQEAgLTcxLDEwICs3MSwxMCBAQCBib29sIENsaXBib2FyZFd4Ojpz
ZXREYXRhKGNvbnN0IFN0cmluZyYgdHlwZSwgY29uc3QgU3RyaW5nJiBkYXRhKQogfQogCiAvLyBl
eHRlbnNpb25zIGJleW9uZCBJRSdzIEFQSQotSGFzaFNldDxTdHJpbmc+IENsaXBib2FyZFd4Ojp0
eXBlcygpIGNvbnN0IAorTGlzdEhhc2hTZXQ8U3RyaW5nPiBDbGlwYm9hcmRXeDo6dHlwZXMoKSBj
b25zdAogewogICAgIG5vdEltcGxlbWVudGVkKCk7Ci0gICAgSGFzaFNldDxTdHJpbmc+IHJlc3Vs
dDsKKyAgICBMaXN0SGFzaFNldDxTdHJpbmc+IHJlc3VsdDsKICAgICByZXR1cm4gcmVzdWx0Owog
fQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93eC9DbGlwYm9hcmRXeC5o
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd3gvQ2xpcGJvYXJkV3guaAppbmRleCA5ZTY2MWQ3
Li4zN2IxZmRkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93eC9DbGlwYm9h
cmRXeC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3d4L0NsaXBib2FyZFd4LmgKQEAg
LTQ2LDcgKzQ2LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICBib29sIHNldERhdGEo
Y29uc3QgU3RyaW5nJiB0eXBlLCBjb25zdCBTdHJpbmcmIGRhdGEpOwogICAgIAogICAgICAgICAv
LyBleHRlbnNpb25zIGJleW9uZCBJRSdzIEFQSQotICAgICAgICB2aXJ0dWFsIEhhc2hTZXQ8U3Ry
aW5nPiB0eXBlcygpIGNvbnN0OworICAgICAgICB2aXJ0dWFsIExpc3RIYXNoU2V0PFN0cmluZz4g
dHlwZXMoKSBjb25zdDsKICAgICAgICAgdmlydHVhbCBQYXNzUmVmUHRyPEZpbGVMaXN0PiBmaWxl
cygpIGNvbnN0OwogICAgIAogICAgICAgICBJbnRQb2ludCBkcmFnTG9jYXRpb24oKSBjb25zdDsK
</data>
<flag name="commit-queue"
          id="180032"
          type_id="3"
          status="-"
          setter="peter+ews"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>167372</attachid>
            <date>2012-10-05 13:21:32 -0700</date>
            <delta_ts>2012-10-06 12:14:05 -0700</delta_ts>
            <desc>Patch??</desc>
            <filename>bug-98547-v2.diff</filename>
            <type>text/plain</type>
            <size>19036</size>
            <attacher name="Andreas Kling">kling</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCA5Nzg3NjVkLi43M2E2ZTJhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNjEg
QEAKKzIwMTItMTAtMDUgIEFuZHJlYXMgS2xpbmcgIDxrbGluZ0B3ZWJraXQub3JnPgorCisgICAg
ICAgIENsaXBib2FyZDo6dHlwZXMoKSBzaG91bGQgcmV0dXJuIGFuIG9yZGVyZWQgY29sbGVjdGlv
bi4KKyAgICAgICAgPGh0dHA6Ly93ZWJraXQub3JnL2IvOTg1NDc+CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTGV0IENsaXBib2FyZDo6dHlwZXMoKSBy
ZXR1cm4gYSBMaXN0SGFzaFNldDxTdHJpbmc+IGluc3RlYWQgb2YgYSBIYXNoU2V0PFN0cmluZz4g
dG8gbWFrZSBzdXJlCisgICAgICAgIGl0IHJldGFpbnMgdGhlIG9yZGVyIGluIHdoaWNoIHR5cGUg
c3RyaW5ncyBhcmUgYWRkZWQuCisKKyAgICAgICAgTm8gdGVzdCwgdGhpcyBmaXhlcyBhbiBpc3N1
ZSB0aGF0IHdhcyB1bmNvdmVyZWQgd2hlbiBsb3dlcmluZyB0aGUgZGVmYXVsdCB0YWJsZSBzaXpl
IG9mIFdURgorICAgICAgICBoYXNoIHRhYmxlcywgY2F1c2luZyB0aGUgSGFzaFNldDxTdHJpbmc+
IHRvIHJlaGFzaCBhbmQgcmVvcmRlciBpdHNlbGYuCisKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9K
U0NsaXBib2FyZEN1c3RvbS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpKU0NsaXBib2FyZDo6dHlw
ZXMpOgorICAgICAgICAqIGJpbmRpbmdzL3Y4L2N1c3RvbS9WOENsaXBib2FyZEN1c3RvbS5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpWOENsaXBib2FyZDo6dHlwZXNBY2Nlc3NvckdldHRlcik6Cisg
ICAgICAgICogZG9tL0NsaXBib2FyZC5oOgorICAgICAgICAoQ2xpcGJvYXJkKToKKyAgICAgICAg
KiBwbGF0Zm9ybS9ibGFja2JlcnJ5L0NsaXBib2FyZEJsYWNrQmVycnkuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6Q2xpcGJvYXJkQmxhY2tCZXJyeTo6dHlwZXMpOgorICAgICAgICAqIHBsYXRmb3Jt
L2JsYWNrYmVycnkvQ2xpcGJvYXJkQmxhY2tCZXJyeS5oOgorICAgICAgICAoQ2xpcGJvYXJkQmxh
Y2tCZXJyeSk6CisgICAgICAgICogcGxhdGZvcm0vY2hyb21pdW0vQ2hyb21pdW1EYXRhT2JqZWN0
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNocm9taXVtRGF0YU9iamVjdDo6dHlwZXMpOgorICAg
ICAgICAqIHBsYXRmb3JtL2Nocm9taXVtL0Nocm9taXVtRGF0YU9iamVjdC5oOgorICAgICAgICAo
Q2hyb21pdW1EYXRhT2JqZWN0KToKKyAgICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS9DbGlwYm9h
cmRDaHJvbWl1bS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDbGlwYm9hcmRDaHJvbWl1bTo6dHlw
ZXMpOgorICAgICAgICAqIHBsYXRmb3JtL2Nocm9taXVtL0NsaXBib2FyZENocm9taXVtLmg6Cisg
ICAgICAgIChDbGlwYm9hcmRDaHJvbWl1bSk6CisgICAgICAgICogcGxhdGZvcm0vZWZsL0NsaXBi
b2FyZEVmbC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDbGlwYm9hcmRFZmw6OnR5cGVzKToKKyAg
ICAgICAgKiBwbGF0Zm9ybS9lZmwvQ2xpcGJvYXJkRWZsLmg6CisgICAgICAgIChDbGlwYm9hcmRF
ZmwpOgorICAgICAgICAqIHBsYXRmb3JtL2d0ay9DbGlwYm9hcmRHdGsuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6Q2xpcGJvYXJkR3RrOjp0eXBlcyk6CisgICAgICAgICogcGxhdGZvcm0vZ3RrL0Ns
aXBib2FyZEd0ay5oOgorICAgICAgICAoQ2xpcGJvYXJkR3RrKToKKyAgICAgICAgKiBwbGF0Zm9y
bS9tYWMvQ2xpcGJvYXJkTWFjLmg6CisgICAgICAgIChDbGlwYm9hcmRNYWMpOgorICAgICAgICAq
IHBsYXRmb3JtL21hYy9DbGlwYm9hcmRNYWMubW06CisgICAgICAgIChXZWJDb3JlOjphZGRIVE1M
Q2xpcGJvYXJkVHlwZXNGb3JDb2NvYVR5cGUpOgorICAgICAgICAoV2ViQ29yZTo6Q2xpcGJvYXJk
TWFjOjp0eXBlcyk6CisgICAgICAgICogcGxhdGZvcm0vcXQvQ2xpcGJvYXJkUXQuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6Q2xpcGJvYXJkUXQ6OnR5cGVzKToKKyAgICAgICAgKiBwbGF0Zm9ybS9x
dC9DbGlwYm9hcmRRdC5oOgorICAgICAgICAoQ2xpcGJvYXJkUXQpOgorICAgICAgICAqIHBsYXRm
b3JtL3dpbi9DbGlwYm9hcmRXaW4uY3BwOgorICAgICAgICAoV2ViQ29yZTo6YWRkTWltZVR5cGVz
Rm9yRm9ybWF0KToKKyAgICAgICAgKFdlYkNvcmU6OkNsaXBib2FyZFdpbjo6dHlwZXMpOgorICAg
ICAgICAqIHBsYXRmb3JtL3dpbi9DbGlwYm9hcmRXaW4uaDoKKyAgICAgICAgKENsaXBib2FyZFdp
bik6CisgICAgICAgICogcGxhdGZvcm0vd3gvQ2xpcGJvYXJkV3guY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6Q2xpcGJvYXJkV3g6OnR5cGVzKToKKyAgICAgICAgKiBwbGF0Zm9ybS93eC9DbGlwYm9h
cmRXeC5oOgorICAgICAgICAoQ2xpcGJvYXJkV3gpOgorCiAyMDEyLTEwLTA1ICBHYWJvciBSYXBj
c2FueWkgIDxyZ2Fib3JAd2Via2l0Lm9yZz4KIAogICAgICAgICBBZGQgQVJNLU5FT04gc3VwcG9y
dCB0byBWZWN0b3JNYXRoIGluIFdlYkF1ZGlvCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9qcy9KU0NsaXBib2FyZEN1c3RvbS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9qcy9KU0NsaXBib2FyZEN1c3RvbS5jcHAKaW5kZXggN2JlOGM4ZC4uMDliODdkNiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNDbGlwYm9hcmRDdXN0b20uY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTQ2xpcGJvYXJkQ3VzdG9tLmNwcApAQCAt
MzgsNyArMzgsNiBAQAogI2luY2x1ZGUgIk5vZGUuaCIKICNpbmNsdWRlIDxydW50aW1lL0FycmF5
UHJvdG90eXBlLmg+CiAjaW5jbHVkZSA8cnVudGltZS9FcnJvci5oPgotI2luY2x1ZGUgPHd0Zi9I
YXNoU2V0Lmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvU3RyaW5nSGFzaC5oPgogI2luY2x1ZGUgPHd0
Zi90ZXh0L1dURlN0cmluZy5oPgogCkBAIC01MiwxMyArNTEsMTMgQEAgSlNWYWx1ZSBKU0NsaXBi
b2FyZDo6dHlwZXMoRXhlY1N0YXRlKiBleGVjKSBjb25zdAogewogICAgIENsaXBib2FyZCogY2xp
cGJvYXJkID0gaW1wbCgpOwogCi0gICAgSGFzaFNldDxTdHJpbmc+IHR5cGVzID0gY2xpcGJvYXJk
LT50eXBlcygpOworICAgIExpc3RIYXNoU2V0PFN0cmluZz4gdHlwZXMgPSBjbGlwYm9hcmQtPnR5
cGVzKCk7CiAgICAgaWYgKHR5cGVzLmlzRW1wdHkoKSkKICAgICAgICAgcmV0dXJuIGpzTnVsbCgp
OwogCiAgICAgTWFya2VkQXJndW1lbnRCdWZmZXIgbGlzdDsKLSAgICBIYXNoU2V0PFN0cmluZz46
OmNvbnN0X2l0ZXJhdG9yIGVuZCA9IHR5cGVzLmVuZCgpOwotICAgIGZvciAoSGFzaFNldDxTdHJp
bmc+Ojpjb25zdF9pdGVyYXRvciBpdCA9IHR5cGVzLmJlZ2luKCk7IGl0ICE9IGVuZDsgKytpdCkK
KyAgICBMaXN0SGFzaFNldDxTdHJpbmc+Ojpjb25zdF9pdGVyYXRvciBlbmQgPSB0eXBlcy5lbmQo
KTsKKyAgICBmb3IgKExpc3RIYXNoU2V0PFN0cmluZz46OmNvbnN0X2l0ZXJhdG9yIGl0ID0gdHlw
ZXMuYmVnaW4oKTsgaXQgIT0gZW5kOyArK2l0KQogICAgICAgICBsaXN0LmFwcGVuZChqc1N0cmlu
Z1dpdGhDYWNoZShleGVjLCAqaXQpKTsKICAgICByZXR1cm4gY29uc3RydWN0QXJyYXkoZXhlYywg
Z2xvYmFsT2JqZWN0KCksIGxpc3QpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3MvdjgvY3VzdG9tL1Y4Q2xpcGJvYXJkQ3VzdG9tLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL3Y4L2N1c3RvbS9WOENsaXBib2FyZEN1c3RvbS5jcHAKaW5kZXggMDY2MzUyMi4uZmNh
ODk5MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4Q2xp
cGJvYXJkQ3VzdG9tLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20v
VjhDbGlwYm9hcmRDdXN0b20uY3BwCkBAIC00OCwxNCArNDgsMTQgQEAgdjg6OkhhbmRsZTx2ODo6
VmFsdWU+IFY4Q2xpcGJvYXJkOjp0eXBlc0FjY2Vzc29yR2V0dGVyKHY4OjpMb2NhbDx2ODo6U3Ry
aW5nPiBuYW0KICAgICBJTkNfU1RBVFMoIkRPTS5DbGlwYm9hcmQudHlwZXMoKSIpOwogICAgIENs
aXBib2FyZCogY2xpcGJvYXJkID0gVjhDbGlwYm9hcmQ6OnRvTmF0aXZlKGluZm8uSG9sZGVyKCkp
OwogCi0gICAgSGFzaFNldDxTdHJpbmc+IHR5cGVzID0gY2xpcGJvYXJkLT50eXBlcygpOworICAg
IExpc3RIYXNoU2V0PFN0cmluZz4gdHlwZXMgPSBjbGlwYm9hcmQtPnR5cGVzKCk7CiAgICAgaWYg
KHR5cGVzLmlzRW1wdHkoKSkKICAgICAgICAgcmV0dXJuIHY4OjpOdWxsKGluZm8uR2V0SXNvbGF0
ZSgpKTsKIAogICAgIHY4OjpMb2NhbDx2ODo6QXJyYXk+IHJlc3VsdCA9IHY4OjpBcnJheTo6TmV3
KHR5cGVzLnNpemUoKSk7Ci0gICAgSGFzaFNldDxTdHJpbmc+Ojpjb25zdF9pdGVyYXRvciBlbmQg
PSB0eXBlcy5lbmQoKTsKKyAgICBMaXN0SGFzaFNldDxTdHJpbmc+Ojpjb25zdF9pdGVyYXRvciBl
bmQgPSB0eXBlcy5lbmQoKTsKICAgICBpbnQgaW5kZXggPSAwOwotICAgIGZvciAoSGFzaFNldDxT
dHJpbmc+Ojpjb25zdF9pdGVyYXRvciBpdCA9IHR5cGVzLmJlZ2luKCk7IGl0ICE9IGVuZDsgKytp
dCwgKytpbmRleCkKKyAgICBmb3IgKExpc3RIYXNoU2V0PFN0cmluZz46OmNvbnN0X2l0ZXJhdG9y
IGl0ID0gdHlwZXMuYmVnaW4oKTsgaXQgIT0gZW5kOyArK2l0LCArK2luZGV4KQogICAgICAgICBy
ZXN1bHQtPlNldCh2OEludGVnZXIoaW5kZXgsIGluZm8uR2V0SXNvbGF0ZSgpKSwgdjhTdHJpbmco
Kml0LCBpbmZvLkdldElzb2xhdGUoKSkpOwogCiAgICAgcmV0dXJuIHJlc3VsdDsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9DbGlwYm9hcmQuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9D
bGlwYm9hcmQuaAppbmRleCA4M2YwZjI0Li5kMTFiNjUyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9kb20vQ2xpcGJvYXJkLmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0NsaXBib2FyZC5o
CkBAIC02Niw3ICs2Niw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgdmlydHVhbCBi
b29sIHNldERhdGEoY29uc3QgU3RyaW5nJiB0eXBlLCBjb25zdCBTdHJpbmcmIGRhdGEpID0gMDsK
ICAgICAKICAgICAgICAgLy8gZXh0ZW5zaW9ucyBiZXlvbmQgSUUncyBBUEkKLSAgICAgICAgdmly
dHVhbCBIYXNoU2V0PFN0cmluZz4gdHlwZXMoKSBjb25zdCA9IDA7CisgICAgICAgIHZpcnR1YWwg
TGlzdEhhc2hTZXQ8U3RyaW5nPiB0eXBlcygpIGNvbnN0ID0gMDsKICAgICAgICAgdmlydHVhbCBQ
YXNzUmVmUHRyPEZpbGVMaXN0PiBmaWxlcygpIGNvbnN0ID0gMDsKIAogICAgICAgICBJbnRQb2lu
dCBkcmFnTG9jYXRpb24oKSBjb25zdCB7IHJldHVybiBtX2RyYWdMb2M7IH0KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2JsYWNrYmVycnkvQ2xpcGJvYXJkQmxhY2tCZXJyeS5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ibGFja2JlcnJ5L0NsaXBib2FyZEJsYWNrQmVy
cnkuY3BwCmluZGV4IDJhMzFiZTguLmFkZTIyZWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2JsYWNrYmVycnkvQ2xpcGJvYXJkQmxhY2tCZXJyeS5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vYmxhY2tiZXJyeS9DbGlwYm9hcmRCbGFja0JlcnJ5LmNwcApAQCAt
NzgsMTMgKzc4LDEzIEBAIGJvb2wgQ2xpcGJvYXJkQmxhY2tCZXJyeTo6c2V0RGF0YShjb25zdCBT
dHJpbmcmIHR5cGUsIGNvbnN0IFN0cmluZyYgdGV4dCkKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAot
SGFzaFNldDxTdHJpbmc+IENsaXBib2FyZEJsYWNrQmVycnk6OnR5cGVzKCkgY29uc3QKK0xpc3RI
YXNoU2V0PFN0cmluZz4gQ2xpcGJvYXJkQmxhY2tCZXJyeTo6dHlwZXMoKSBjb25zdAogewogICAg
IGlmIChwb2xpY3koKSAhPSBDbGlwYm9hcmRSZWFkYWJsZSAmJiBwb2xpY3koKSAhPSBDbGlwYm9h
cmRUeXBlc1JlYWRhYmxlKQotICAgICAgICByZXR1cm4gSGFzaFNldDxTdHJpbmc+KCk7CisgICAg
ICAgIHJldHVybiBMaXN0SGFzaFNldDxTdHJpbmc+KCk7CiAKICAgICAvLyBXZSB1c2UgaGFyZGNv
ZGVkIGxpc3QgaGVyZSBzaW5jZSB0aGVyZSBzZWVtcyB0byBiZSBubyBBUEkgdG8gZ2V0IHRoZSBs
aXN0LgotICAgIEhhc2hTZXQ8U3RyaW5nPiByZXQ7CisgICAgTGlzdEhhc2hTZXQ8U3RyaW5nPiBy
ZXQ7CiAgICAgcmV0LmFkZCgidGV4dC9wbGFpbiIpOwogICAgIHJldC5hZGQoInRleHQvaHRtbCIp
OwogICAgIHJldC5hZGQoInRleHQvdXJsIik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ibGFja2JlcnJ5L0NsaXBib2FyZEJsYWNrQmVycnkuaCBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2JsYWNrYmVycnkvQ2xpcGJvYXJkQmxhY2tCZXJyeS5oCmluZGV4IDE3ZWZmY2Uu
LjM3ZGE1MTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2JsYWNrYmVycnkv
Q2xpcGJvYXJkQmxhY2tCZXJyeS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2JsYWNr
YmVycnkvQ2xpcGJvYXJkQmxhY2tCZXJyeS5oCkBAIC0zOSw3ICszOSw3IEBAIHB1YmxpYzoKICAg
ICBib29sIHNldERhdGEoY29uc3QgU3RyaW5nJiB0eXBlLCBjb25zdCBTdHJpbmcmIGRhdGEpOwog
CiAgICAgLy8gZXh0ZW5zaW9ucyBiZXlvbmQgSUUncyBBUEkKLSAgICB2aXJ0dWFsIEhhc2hTZXQ8
U3RyaW5nPiB0eXBlcygpIGNvbnN0OworICAgIHZpcnR1YWwgTGlzdEhhc2hTZXQ8U3RyaW5nPiB0
eXBlcygpIGNvbnN0OwogICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxGaWxlTGlzdD4gZmlsZXMoKSBj
b25zdDsKICAgICB2aXJ0dWFsIERyYWdJbWFnZVJlZiBjcmVhdGVEcmFnSW1hZ2UoSW50UG9pbnQm
KSBjb25zdDsKICAgICB2aXJ0dWFsIHZvaWQgZGVjbGFyZUFuZFdyaXRlRHJhZ0ltYWdlKEVsZW1l
bnQqLCBjb25zdCBLVVJMJiwgY29uc3QgU3RyaW5nJiB0aXRsZSwgRnJhbWUqKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVtL0Nocm9taXVtRGF0YU9iamVjdC5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9DaHJvbWl1bURhdGFPYmplY3Qu
Y3BwCmluZGV4IGVjN2VlYmUuLjZmNjc1MWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2Nocm9taXVtL0Nocm9taXVtRGF0YU9iamVjdC5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vY2hyb21pdW0vQ2hyb21pdW1EYXRhT2JqZWN0LmNwcApAQCAtMTI2LDkgKzEy
Niw5IEBAIHZvaWQgQ2hyb21pdW1EYXRhT2JqZWN0OjpjbGVhckFsbEV4Y2VwdEZpbGVzKCkKICAg
ICB9CiB9CiAKLUhhc2hTZXQ8U3RyaW5nPiBDaHJvbWl1bURhdGFPYmplY3Q6OnR5cGVzKCkgY29u
c3QKK0xpc3RIYXNoU2V0PFN0cmluZz4gQ2hyb21pdW1EYXRhT2JqZWN0Ojp0eXBlcygpIGNvbnN0
CiB7Ci0gICAgSGFzaFNldDxTdHJpbmc+IHJlc3VsdHM7CisgICAgTGlzdEhhc2hTZXQ8U3RyaW5n
PiByZXN1bHRzOwogICAgIGJvb2wgY29udGFpbnNGaWxlcyA9IGZhbHNlOwogICAgIGZvciAoc2l6
ZV90IGkgPSAwOyBpIDwgbV9pdGVtTGlzdC5zaXplKCk7ICsraSkgewogICAgICAgICBpZiAobV9p
dGVtTGlzdFtpXS0+a2luZCgpID09IERhdGFUcmFuc2Zlckl0ZW06OmtpbmRTdHJpbmcpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9DaHJvbWl1bURhdGFPYmpl
Y3QuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVtL0Nocm9taXVtRGF0YU9iamVj
dC5oCmluZGV4IDRhNWU0ZmUuLjI1NTFjNDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2Nocm9taXVtL0Nocm9taXVtRGF0YU9iamVjdC5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2Nocm9taXVtL0Nocm9taXVtRGF0YU9iamVjdC5oCkBAIC0zMyw3ICszMyw3IEBA
CiAKICNpbmNsdWRlICJDaHJvbWl1bURhdGFPYmplY3RJdGVtLmgiCiAjaW5jbHVkZSAiU3VwcGxl
bWVudGFibGUuaCIKLSNpbmNsdWRlIDx3dGYvSGFzaFNldC5oPgorI2luY2x1ZGUgPHd0Zi9MaXN0
SGFzaFNldC5oPgogI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KICNpbmNsdWRlIDx3dGYvVmVjdG9y
Lmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvU3RyaW5nSGFzaC5oPgpAQCAtNjksNyArNjksNyBAQCBw
dWJsaWM6CiAgICAgdm9pZCBjbGVhckRhdGEoY29uc3QgU3RyaW5nJiB0eXBlKTsKICAgICB2b2lk
IGNsZWFyQWxsRXhjZXB0RmlsZXMoKTsKIAotICAgIEhhc2hTZXQ8U3RyaW5nPiB0eXBlcygpIGNv
bnN0OworICAgIExpc3RIYXNoU2V0PFN0cmluZz4gdHlwZXMoKSBjb25zdDsKICAgICBTdHJpbmcg
Z2V0RGF0YShjb25zdCBTdHJpbmcmIHR5cGUpIGNvbnN0OwogICAgIGJvb2wgc2V0RGF0YShjb25z
dCBTdHJpbmcmIHR5cGUsIGNvbnN0IFN0cmluZyYgZGF0YSk7CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVtL0NsaXBib2FyZENocm9taXVtLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVtL0NsaXBib2FyZENocm9taXVtLmNwcAppbmRleCAw
Yjk3NDdlLi5mNThlYmNlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jaHJv
bWl1bS9DbGlwYm9hcmRDaHJvbWl1bS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Y2hyb21pdW0vQ2xpcGJvYXJkQ2hyb21pdW0uY3BwCkBAIC0yNzUsMTAgKzI3NSwxMCBAQCBib29s
IENsaXBib2FyZENocm9taXVtOjpzZXREYXRhKGNvbnN0IFN0cmluZyYgdHlwZSwgY29uc3QgU3Ry
aW5nJiBkYXRhKQogfQogCiAvLyBleHRlbnNpb25zIGJleW9uZCBJRSdzIEFQSQotSGFzaFNldDxT
dHJpbmc+IENsaXBib2FyZENocm9taXVtOjp0eXBlcygpIGNvbnN0CitMaXN0SGFzaFNldDxTdHJp
bmc+IENsaXBib2FyZENocm9taXVtOjp0eXBlcygpIGNvbnN0CiB7CiAgICAgaWYgKHBvbGljeSgp
ICE9IENsaXBib2FyZFJlYWRhYmxlICYmIHBvbGljeSgpICE9IENsaXBib2FyZFR5cGVzUmVhZGFi
bGUpCi0gICAgICAgIHJldHVybiBIYXNoU2V0PFN0cmluZz4oKTsKKyAgICAgICAgcmV0dXJuIExp
c3RIYXNoU2V0PFN0cmluZz4oKTsKIAogICAgIHJldHVybiBtX2RhdGFPYmplY3QtPnR5cGVzKCk7
CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9DbGlwYm9h
cmRDaHJvbWl1bS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY2hyb21pdW0vQ2xpcGJvYXJk
Q2hyb21pdW0uaAppbmRleCBhNWNiZjUzLi5lNDE4MzhkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9DbGlwYm9hcmRDaHJvbWl1bS5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVtL0NsaXBib2FyZENocm9taXVtLmgKQEAgLTg0LDcgKzg0
LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICBib29sIHBsYXRmb3JtQ2xpcGJvYXJk
Q2hhbmdlZCgpIGNvbnN0OwogCiAgICAgICAgIC8vIGV4dGVuc2lvbnMgYmV5b25kIElFJ3MgQVBJ
Ci0gICAgICAgIHZpcnR1YWwgSGFzaFNldDxTdHJpbmc+IHR5cGVzKCkgY29uc3Q7CisgICAgICAg
IHZpcnR1YWwgTGlzdEhhc2hTZXQ8U3RyaW5nPiB0eXBlcygpIGNvbnN0OwogICAgICAgICB2aXJ0
dWFsIFBhc3NSZWZQdHI8RmlsZUxpc3Q+IGZpbGVzKCkgY29uc3Q7CiAKICAgICAgICAgdm9pZCBz
ZXREcmFnSW1hZ2UoQ2FjaGVkSW1hZ2UqLCBjb25zdCBJbnRQb2ludCYpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZWZsL0NsaXBib2FyZEVmbC5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9lZmwvQ2xpcGJvYXJkRWZsLmNwcAppbmRleCA4ODRkMzg3Li5kZDRhYzIw
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9lZmwvQ2xpcGJvYXJkRWZsLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9lZmwvQ2xpcGJvYXJkRWZsLmNwcApAQCAt
NzYsMTAgKzc2LDEwIEBAIGJvb2wgQ2xpcGJvYXJkRWZsOjpzZXREYXRhKGNvbnN0IFN0cmluZyYs
IGNvbnN0IFN0cmluZyYpCiAgICAgcmV0dXJuIGZhbHNlOwogfQogCi1IYXNoU2V0PFN0cmluZz4g
Q2xpcGJvYXJkRWZsOjp0eXBlcygpIGNvbnN0CitMaXN0SGFzaFNldDxTdHJpbmc+IENsaXBib2Fy
ZEVmbDo6dHlwZXMoKSBjb25zdAogewogICAgIG5vdEltcGxlbWVudGVkKCk7Ci0gICAgcmV0dXJu
IEhhc2hTZXQ8U3RyaW5nPigpOworICAgIHJldHVybiBMaXN0SGFzaFNldDxTdHJpbmc+KCk7CiB9
CiAKIFBhc3NSZWZQdHI8RmlsZUxpc3Q+IENsaXBib2FyZEVmbDo6ZmlsZXMoKSBjb25zdApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZWZsL0NsaXBib2FyZEVmbC5oIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZWZsL0NsaXBib2FyZEVmbC5oCmluZGV4IDNkYTU5OGUuLjkw
NGViNTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2VmbC9DbGlwYm9hcmRF
ZmwuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9lZmwvQ2xpcGJvYXJkRWZsLmgKQEAg
LTM5LDcgKzM5LDcgQEAgcHVibGljOgogICAgIFN0cmluZyBnZXREYXRhKGNvbnN0IFN0cmluZyYp
IGNvbnN0OwogICAgIGJvb2wgc2V0RGF0YShjb25zdCBTdHJpbmcmLCBjb25zdCBTdHJpbmcmKTsK
IAotICAgIEhhc2hTZXQ8U3RyaW5nPiB0eXBlcygpIGNvbnN0OworICAgIExpc3RIYXNoU2V0PFN0
cmluZz4gdHlwZXMoKSBjb25zdDsKICAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8RmlsZUxpc3Q+IGZp
bGVzKCkgY29uc3Q7CiAKICAgICBJbnRQb2ludCBkcmFnTG9jYXRpb24oKSBjb25zdDsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9DbGlwYm9hcmRHdGsuY3BwIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL0NsaXBib2FyZEd0ay5jcHAKaW5kZXggN2Q1Zjg1OC4u
MWVlZGIzMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL0NsaXBib2Fy
ZEd0ay5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL0NsaXBib2FyZEd0ay5j
cHAKQEAgLTE4NiwxNSArMTg2LDE1IEBAIGJvb2wgQ2xpcGJvYXJkR3RrOjpzZXREYXRhKGNvbnN0
IFN0cmluZyYgdHlwZVN0cmluZywgY29uc3QgU3RyaW5nJiBkYXRhKQogICAgIHJldHVybiBzdWNj
ZXNzOwogfQogCi1IYXNoU2V0PFN0cmluZz4gQ2xpcGJvYXJkR3RrOjp0eXBlcygpIGNvbnN0CitM
aXN0SGFzaFNldDxTdHJpbmc+IENsaXBib2FyZEd0azo6dHlwZXMoKSBjb25zdAogewogICAgIGlm
IChwb2xpY3koKSAhPSBDbGlwYm9hcmRSZWFkYWJsZSAmJiBwb2xpY3koKSAhPSBDbGlwYm9hcmRU
eXBlc1JlYWRhYmxlKQotICAgICAgICByZXR1cm4gSGFzaFNldDxTdHJpbmc+KCk7CisgICAgICAg
IHJldHVybiBMaXN0SGFzaFNldDxTdHJpbmc+KCk7CiAKICAgICBpZiAobV9jbGlwYm9hcmQpCiAg
ICAgICAgIFBhc3RlYm9hcmRIZWxwZXI6OmRlZmF1bHRQYXN0ZWJvYXJkSGVscGVyKCktPmdldENs
aXBib2FyZENvbnRlbnRzKG1fY2xpcGJvYXJkKTsKIAotICAgIEhhc2hTZXQ8U3RyaW5nPiB0eXBl
czsKKyAgICBMaXN0SGFzaFNldDxTdHJpbmc+IHR5cGVzOwogICAgIGlmIChtX2RhdGFPYmplY3Qt
Pmhhc1RleHQoKSkgewogICAgICAgICB0eXBlcy5hZGQoInRleHQvcGxhaW4iKTsKICAgICAgICAg
dHlwZXMuYWRkKCJUZXh0Iik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
dGsvQ2xpcGJvYXJkR3RrLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvQ2xpcGJvYXJk
R3RrLmgKaW5kZXggYjA3MWM2Zi4uZWU5ZDYzYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3RrL0NsaXBib2FyZEd0ay5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2d0ay9DbGlwYm9hcmRHdGsuaApAQCAtNTcsNyArNTcsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7
CiAgICAgICAgIFN0cmluZyBnZXREYXRhKGNvbnN0IFN0cmluZyYpIGNvbnN0OwogICAgICAgICBi
b29sIHNldERhdGEoY29uc3QgU3RyaW5nJiwgY29uc3QgU3RyaW5nJik7CiAKLSAgICAgICAgdmly
dHVhbCBIYXNoU2V0PFN0cmluZz4gdHlwZXMoKSBjb25zdDsKKyAgICAgICAgdmlydHVhbCBMaXN0
SGFzaFNldDxTdHJpbmc+IHR5cGVzKCkgY29uc3Q7CiAgICAgICAgIHZpcnR1YWwgUGFzc1JlZlB0
cjxGaWxlTGlzdD4gZmlsZXMoKSBjb25zdDsKIAogICAgICAgICB2b2lkIHNldERyYWdJbWFnZShD
YWNoZWRJbWFnZSosIGNvbnN0IEludFBvaW50Jik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9tYWMvQ2xpcGJvYXJkTWFjLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9t
YWMvQ2xpcGJvYXJkTWFjLmgKaW5kZXggNzU1MTdjMS4uMzA1YTkyZiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL0NsaXBib2FyZE1hYy5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL21hYy9DbGlwYm9hcmRNYWMuaApAQCAtNjIsNyArNjIsNyBAQCBwdWJsaWM6
CiAgICAgdmlydHVhbCBib29sIGhhc0RhdGEoKTsKICAgICAKICAgICAvLyBleHRlbnNpb25zIGJl
eW9uZCBJRSdzIEFQSQotICAgIHZpcnR1YWwgSGFzaFNldDxTdHJpbmc+IHR5cGVzKCkgY29uc3Q7
CisgICAgdmlydHVhbCBMaXN0SGFzaFNldDxTdHJpbmc+IHR5cGVzKCkgY29uc3Q7CiAgICAgdmly
dHVhbCBQYXNzUmVmUHRyPEZpbGVMaXN0PiBmaWxlcygpIGNvbnN0OwogCiAgICAgdm9pZCBzZXRE
cmFnSW1hZ2UoQ2FjaGVkSW1hZ2UqLCBjb25zdCBJbnRQb2ludCYpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL0NsaXBib2FyZE1hYy5tbSBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL21hYy9DbGlwYm9hcmRNYWMubW0KaW5kZXggMmU5ZjVhZi4uYmQ4ODAyMCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL0NsaXBib2FyZE1hYy5tbQorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvQ2xpcGJvYXJkTWFjLm1tCkBAIC0xMjIsNyAr
MTIyLDcgQEAgc3RhdGljIFN0cmluZyB1dGlUeXBlRnJvbUNvY29hVHlwZShjb25zdCBTdHJpbmcm
IHR5cGUpCiAgICAgcmV0dXJuIFN0cmluZygpOwogfQogCi1zdGF0aWMgdm9pZCBhZGRIVE1MQ2xp
cGJvYXJkVHlwZXNGb3JDb2NvYVR5cGUoSGFzaFNldDxTdHJpbmc+JiByZXN1bHRUeXBlcywgY29u
c3QgU3RyaW5nJiBjb2NvYVR5cGUsIGNvbnN0IFN0cmluZyYgcGFzdGVib2FyZE5hbWUpCitzdGF0
aWMgdm9pZCBhZGRIVE1MQ2xpcGJvYXJkVHlwZXNGb3JDb2NvYVR5cGUoTGlzdEhhc2hTZXQ8U3Ry
aW5nPiYgcmVzdWx0VHlwZXMsIGNvbnN0IFN0cmluZyYgY29jb2FUeXBlLCBjb25zdCBTdHJpbmcm
IHBhc3RlYm9hcmROYW1lKQogewogICAgIC8vIFVUSSBtYXkgbm90IGRvIHRoZXNlIHJpZ2h0LCBz
byBtYWtlIHN1cmUgd2UgZ2V0IHRoZSByaWdodCwgcHJlZGljdGFibGUgcmVzdWx0CiAgICAgaWYg
KGNvY29hVHlwZSA9PSBTdHJpbmcoTlNTdHJpbmdQYm9hcmRUeXBlKSkgewpAQCAtMjg0LDEwICsy
ODQsMTAgQEAgYm9vbCBDbGlwYm9hcmRNYWM6OnNldERhdGEoY29uc3QgU3RyaW5nICZ0eXBlLCBj
b25zdCBTdHJpbmcgJmRhdGEpCiAgICAgcmV0dXJuIGZhbHNlOwogfQogCi1IYXNoU2V0PFN0cmlu
Zz4gQ2xpcGJvYXJkTWFjOjp0eXBlcygpIGNvbnN0CitMaXN0SGFzaFNldDxTdHJpbmc+IENsaXBi
b2FyZE1hYzo6dHlwZXMoKSBjb25zdAogewogICAgIGlmIChwb2xpY3koKSAhPSBDbGlwYm9hcmRS
ZWFkYWJsZSAmJiBwb2xpY3koKSAhPSBDbGlwYm9hcmRUeXBlc1JlYWRhYmxlKQotICAgICAgICBy
ZXR1cm4gSGFzaFNldDxTdHJpbmc+KCk7CisgICAgICAgIHJldHVybiBMaXN0SGFzaFNldDxTdHJp
bmc+KCk7CiAKICAgICBWZWN0b3I8U3RyaW5nPiB0eXBlczsKICAgICBwbGF0Zm9ybVN0cmF0ZWdp
ZXMoKS0+cGFzdGVib2FyZFN0cmF0ZWd5KCktPmdldFR5cGVzKHR5cGVzLCBtX3Bhc3RlYm9hcmRO
YW1lKTsKQEAgLTI5NSw5ICsyOTUsOSBAQCBIYXNoU2V0PFN0cmluZz4gQ2xpcGJvYXJkTWFjOjp0
eXBlcygpIGNvbnN0CiAgICAgLy8gRW5mb3JjZSBjaGFuZ2VDb3VudCBvdXJzZWx2ZXMgZm9yIHNl
Y3VyaXR5LiAgV2UgY2hlY2sgYWZ0ZXIgcmVhZGluZyBpbnN0ZWFkIG9mIGJlZm9yZSB0byBiZQog
ICAgIC8vIHN1cmUgaXQgZG9lc24ndCBjaGFuZ2UgYmV0d2VlbiBvdXIgdGVzdGluZyB0aGUgY2hh
bmdlIGNvdW50IGFuZCBhY2Nlc3NpbmcgdGhlIGRhdGEuCiAgICAgaWYgKG1fY2hhbmdlQ291bnQg
IT0gcGxhdGZvcm1TdHJhdGVnaWVzKCktPnBhc3RlYm9hcmRTdHJhdGVneSgpLT5jaGFuZ2VDb3Vu
dChtX3Bhc3RlYm9hcmROYW1lKSkKLSAgICAgICAgcmV0dXJuIEhhc2hTZXQ8U3RyaW5nPigpOwor
ICAgICAgICByZXR1cm4gTGlzdEhhc2hTZXQ8U3RyaW5nPigpOwogCi0gICAgSGFzaFNldDxTdHJp
bmc+IHJlc3VsdDsKKyAgICBMaXN0SGFzaFNldDxTdHJpbmc+IHJlc3VsdDsKICAgICAvLyBGSVhN
RTogVGhpcyBsb29wIGNvdWxkIGJlIHNwbGl0IGludG8gdHdvIHN0YWdlcy4gT25lIHdoaWNoIGFk
ZHMgYWxsIHRoZSBIVE1MNSBzcGVjaWZpZWQgdHlwZXMKICAgICAvLyBhbmQgYSBzZWNvbmQgd2hp
Y2ggYWRkcyBhbGwgdGhlIGV4dHJhIHR5cGVzIGZyb20gdGhlIGNvY29hIGNsaXBib2FyZCAod2hp
Y2ggaXMgTWFjLW9ubHkgYmVoYXZpb3IpLgogICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgdHlw
ZXMuc2l6ZSgpOyBpKyspIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3F0
L0NsaXBib2FyZFF0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3F0L0NsaXBib2FyZFF0
LmNwcAppbmRleCBjMGY0Y2QxLi44ZDg0ZDcyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9xdC9DbGlwYm9hcmRRdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
cXQvQ2xpcGJvYXJkUXQuY3BwCkBAIC0xODMsMTMgKzE4MywxMyBAQCBib29sIENsaXBib2FyZFF0
OjpzZXREYXRhKGNvbnN0IFN0cmluZyYgdHlwZSwgY29uc3QgU3RyaW5nJiBkYXRhKQogfQogCiAv
LyBleHRlbnNpb25zIGJleW9uZCBJRSdzIEFQSQotSGFzaFNldDxTdHJpbmc+IENsaXBib2FyZFF0
Ojp0eXBlcygpIGNvbnN0CitMaXN0SGFzaFNldDxTdHJpbmc+IENsaXBib2FyZFF0Ojp0eXBlcygp
IGNvbnN0CiB7CiAgICAgaWYgKHBvbGljeSgpICE9IENsaXBib2FyZFJlYWRhYmxlICYmIHBvbGlj
eSgpICE9IENsaXBib2FyZFR5cGVzUmVhZGFibGUpCi0gICAgICAgIHJldHVybiBIYXNoU2V0PFN0
cmluZz4oKTsKKyAgICAgICAgcmV0dXJuIExpc3RIYXNoU2V0PFN0cmluZz4oKTsKIAogICAgIEFT
U0VSVChtX3JlYWRhYmxlRGF0YSk7Ci0gICAgSGFzaFNldDxTdHJpbmc+IHJlc3VsdDsKKyAgICBM
aXN0SGFzaFNldDxTdHJpbmc+IHJlc3VsdDsKICAgICBRU3RyaW5nTGlzdCBmb3JtYXRzID0gbV9y
ZWFkYWJsZURhdGEtPmZvcm1hdHMoKTsKICAgICBmb3IgKGludCBpID0gMDsgaSA8IGZvcm1hdHMu
Y291bnQoKTsgKytpKQogICAgICAgICByZXN1bHQuYWRkKGZvcm1hdHMuYXQoaSkpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vcXQvQ2xpcGJvYXJkUXQuaCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL3F0L0NsaXBib2FyZFF0LmgKaW5kZXggNWQwOWM4NC4uYjgxYzE0OCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vcXQvQ2xpcGJvYXJkUXQuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9xdC9DbGlwYm9hcmRRdC5oCkBAIC01Nyw3ICs1Nyw3
IEBAIHB1YmxpYzoKICAgICBib29sIHNldERhdGEoY29uc3QgU3RyaW5nJiB0eXBlLCBjb25zdCBT
dHJpbmcmIGRhdGEpOwogCiAgICAgLy8gZXh0ZW5zaW9ucyBiZXlvbmQgSUUncyBBUEkKLSAgICB2
aXJ0dWFsIEhhc2hTZXQ8U3RyaW5nPiB0eXBlcygpIGNvbnN0OworICAgIHZpcnR1YWwgTGlzdEhh
c2hTZXQ8U3RyaW5nPiB0eXBlcygpIGNvbnN0OwogICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxGaWxl
TGlzdD4gZmlsZXMoKSBjb25zdDsKIAogICAgIHZvaWQgc2V0RHJhZ0ltYWdlKENhY2hlZEltYWdl
KiwgY29uc3QgSW50UG9pbnQmKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L3dpbi9DbGlwYm9hcmRXaW4uY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd2luL0NsaXBi
b2FyZFdpbi5jcHAKaW5kZXggNDQzNTMzOS4uZmM1OTVmOSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vd2luL0NsaXBib2FyZFdpbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vd2luL0NsaXBib2FyZFdpbi5jcHAKQEAgLTQ4NCw3ICs0ODQsNyBAQCBib29sIENs
aXBib2FyZFdpbjo6c2V0RGF0YShjb25zdCBTdHJpbmcmIHR5cGUsIGNvbnN0IFN0cmluZyYgZGF0
YSkKICAgICByZXR1cm4gZmFsc2U7CiB9CiAKLXN0YXRpYyB2b2lkIGFkZE1pbWVUeXBlc0ZvckZv
cm1hdChIYXNoU2V0PFN0cmluZz4mIHJlc3VsdHMsIGNvbnN0IEZPUk1BVEVUQyYgZm9ybWF0KQor
c3RhdGljIHZvaWQgYWRkTWltZVR5cGVzRm9yRm9ybWF0KExpc3RIYXNoU2V0PFN0cmluZz4mIHJl
c3VsdHMsIGNvbnN0IEZPUk1BVEVUQyYgZm9ybWF0KQogewogICAgIC8vIFVSTCBhbmQgVGV4dCBh
cmUgcHJvdmlkZWQgZm9yIGNvbXBhdGliaWxpdHkgd2l0aCBJRSdzIG1vZGVsCiAgICAgaWYgKGZv
cm1hdC5jZkZvcm1hdCA9PSB1cmxGb3JtYXQoKS0+Y2ZGb3JtYXQgfHwgZm9ybWF0LmNmRm9ybWF0
ID09IHVybFdGb3JtYXQoKS0+Y2ZGb3JtYXQpIHsKQEAgLTQ5OSw5ICs0OTksOSBAQCBzdGF0aWMg
dm9pZCBhZGRNaW1lVHlwZXNGb3JGb3JtYXQoSGFzaFNldDxTdHJpbmc+JiByZXN1bHRzLCBjb25z
dCBGT1JNQVRFVEMmIGZvcgogfQogCiAvLyBleHRlbnNpb25zIGJleW9uZCBJRSdzIEFQSQotSGFz
aFNldDxTdHJpbmc+IENsaXBib2FyZFdpbjo6dHlwZXMoKSBjb25zdAorTGlzdEhhc2hTZXQ8U3Ry
aW5nPiBDbGlwYm9hcmRXaW46OnR5cGVzKCkgY29uc3QKIHsgCi0gICAgSGFzaFNldDxTdHJpbmc+
IHJlc3VsdHM7IAorICAgIExpc3RIYXNoU2V0PFN0cmluZz4gcmVzdWx0czsKICAgICBpZiAocG9s
aWN5KCkgIT0gQ2xpcGJvYXJkUmVhZGFibGUgJiYgcG9saWN5KCkgIT0gQ2xpcGJvYXJkVHlwZXNS
ZWFkYWJsZSkKICAgICAgICAgcmV0dXJuIHJlc3VsdHM7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL3dpbi9DbGlwYm9hcmRXaW4uaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL3dpbi9DbGlwYm9hcmRXaW4uaAppbmRleCA4ZGFkNDE1Li4xMTRiZDQwIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93aW4vQ2xpcGJvYXJkV2luLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vd2luL0NsaXBib2FyZFdpbi5oCkBAIC02NCw3ICs2NCw3IEBAIHB1
YmxpYzoKICAgICBib29sIHNldERhdGEoY29uc3QgU3RyaW5nJiB0eXBlLCBjb25zdCBTdHJpbmcm
IGRhdGEpOwogCiAgICAgLy8gZXh0ZW5zaW9ucyBiZXlvbmQgSUUncyBBUEkKLSAgICB2aXJ0dWFs
IEhhc2hTZXQ8U3RyaW5nPiB0eXBlcygpIGNvbnN0OworICAgIHZpcnR1YWwgTGlzdEhhc2hTZXQ8
U3RyaW5nPiB0eXBlcygpIGNvbnN0OwogICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxGaWxlTGlzdD4g
ZmlsZXMoKSBjb25zdDsKIAogICAgIHZvaWQgc2V0RHJhZ0ltYWdlKENhY2hlZEltYWdlKiwgY29u
c3QgSW50UG9pbnQmKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3d4L0Ns
aXBib2FyZFd4LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3d4L0NsaXBib2FyZFd4LmNw
cAppbmRleCBmNmYyNDRmLi5kY2RiOTY2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS93eC9DbGlwYm9hcmRXeC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd3gv
Q2xpcGJvYXJkV3guY3BwCkBAIC03MSwxMCArNzEsMTAgQEAgYm9vbCBDbGlwYm9hcmRXeDo6c2V0
RGF0YShjb25zdCBTdHJpbmcmIHR5cGUsIGNvbnN0IFN0cmluZyYgZGF0YSkKIH0KIAogLy8gZXh0
ZW5zaW9ucyBiZXlvbmQgSUUncyBBUEkKLUhhc2hTZXQ8U3RyaW5nPiBDbGlwYm9hcmRXeDo6dHlw
ZXMoKSBjb25zdCAKK0xpc3RIYXNoU2V0PFN0cmluZz4gQ2xpcGJvYXJkV3g6OnR5cGVzKCkgY29u
c3QKIHsKICAgICBub3RJbXBsZW1lbnRlZCgpOwotICAgIEhhc2hTZXQ8U3RyaW5nPiByZXN1bHQ7
CisgICAgTGlzdEhhc2hTZXQ8U3RyaW5nPiByZXN1bHQ7CiAgICAgcmV0dXJuIHJlc3VsdDsKIH0K
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd3gvQ2xpcGJvYXJkV3guaCBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3d4L0NsaXBib2FyZFd4LmgKaW5kZXggOWU2NjFkNy4u
MzdiMWZkZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd3gvQ2xpcGJvYXJk
V3guaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93eC9DbGlwYm9hcmRXeC5oCkBAIC00
Niw3ICs0Niw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgYm9vbCBzZXREYXRhKGNv
bnN0IFN0cmluZyYgdHlwZSwgY29uc3QgU3RyaW5nJiBkYXRhKTsKICAgICAKICAgICAgICAgLy8g
ZXh0ZW5zaW9ucyBiZXlvbmQgSUUncyBBUEkKLSAgICAgICAgdmlydHVhbCBIYXNoU2V0PFN0cmlu
Zz4gdHlwZXMoKSBjb25zdDsKKyAgICAgICAgdmlydHVhbCBMaXN0SGFzaFNldDxTdHJpbmc+IHR5
cGVzKCkgY29uc3Q7CiAgICAgICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxGaWxlTGlzdD4gZmlsZXMo
KSBjb25zdDsKICAgICAKICAgICAgICAgSW50UG9pbnQgZHJhZ0xvY2F0aW9uKCkgY29uc3Q7Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>