<?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>75983</bug_id>
          
          <creation_ts>2012-01-10 12:38:39 -0800</creation_ts>
          <short_desc>Refactor RenderLayerBacking::paintIntoLayer and RenderLayer::paintLayer()/paintLayerContents() to avoid duplicate code</short_desc>
          <delta_ts>2012-01-13 01:05:44 -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>Layout and Rendering</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="Alexandru Chiculita">achicu</reporter>
          <assigned_to name="Alexandru Chiculita">achicu</assigned_to>
          <cc>simon.fraser</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>533298</commentid>
    <comment_count>0</comment_count>
    <who name="Alexandru Chiculita">achicu</who>
    <bug_when>2012-01-10 12:38:39 -0800</bug_when>
    <thetext>RenderLayerBacking::paintIntoLayer and RenderLayer::paintLayer()/paintLayerContents() have a lot of code in common. Find a way to refactor the methods to avoid duplicate code.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>534842</commentid>
    <comment_count>1</comment_count>
      <attachid>122243</attachid>
    <who name="Alexandru Chiculita">achicu</who>
    <bug_when>2012-01-12 08:01:05 -0800</bug_when>
    <thetext>Created attachment 122243
Patch V1</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>534846</commentid>
    <comment_count>2</comment_count>
    <who name="Alexandru Chiculita">achicu</who>
    <bug_when>2012-01-12 08:05:47 -0800</bug_when>
    <thetext>Haven&apos;t sent for review yet. I want to see the EWS results first.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>534848</commentid>
    <comment_count>3</comment_count>
    <who name="Alexandru Chiculita">achicu</who>
    <bug_when>2012-01-12 08:11:30 -0800</bug_when>
    <thetext>Pasted the new code to http://pastebin.com/YsLaD1Ez to make it easier to see the actual source.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>534965</commentid>
    <comment_count>4</comment_count>
      <attachid>122243</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2012-01-12 10:56:41 -0800</bug_when>
    <thetext>Comment on attachment 122243
Patch V1

View in context: https://bugs.webkit.org/attachment.cgi?id=122243&amp;action=review

&gt; Source/WebCore/rendering/RenderLayer.cpp:2724
&gt; +    // PaintLayerAppliedTransform is still being used for RenderReplica.

This comment is a bit confusing. It&apos;s not clear to me if it&apos;s a FIXME or what.

&gt; Source/WebCore/rendering/RenderLayer.h:442
&gt; +        PaintLayerPaintingBackgroundPhase = 1 &lt;&lt; 5,
&gt; +        PaintLayerPaintingForegroundPhase = 1 &lt;&lt; 6,
&gt; +        PaintLayerPaintingMaskPhase = 1 &lt;&lt; 7,

I think it might help to have &apos;compositing&apos; in these names. PaintLayerPaintingCompositingBackgroundPhase etc.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>535500</commentid>
    <comment_count>5</comment_count>
      <attachid>122390</attachid>
    <who name="Alexandru Chiculita">achicu</who>
    <bug_when>2012-01-13 00:38:22 -0800</bug_when>
    <thetext>Created attachment 122390
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>535506</commentid>
    <comment_count>6</comment_count>
      <attachid>122390</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-01-13 01:05:38 -0800</bug_when>
    <thetext>Comment on attachment 122390
Patch for landing

Clearing flags on attachment: 122390

Committed r104903: &lt;http://trac.webkit.org/changeset/104903&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>535507</commentid>
    <comment_count>7</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-01-13 01:05:44 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>122243</attachid>
            <date>2012-01-12 08:01:05 -0800</date>
            <delta_ts>2012-01-13 00:38:14 -0800</delta_ts>
            <desc>Patch V1</desc>
            <filename>bug75983.patch</filename>
            <type>text/plain</type>
            <size>22893</size>
            <attacher name="Alexandru Chiculita">achicu</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCBlODE4MjllLi5lYjIyNzMxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjgg
QEAKKzIwMTItMDEtMTIgIEFsZXhhbmRydSBDaGljdWxpdGEgIDxhY2hpY3VAYWRvYmUuY29tPgor
CisgICAgICAgIFJlZmFjdG9yIFJlbmRlckxheWVyQmFja2luZzo6cGFpbnRJbnRvTGF5ZXIgYW5k
IFJlbmRlckxheWVyOjpwYWludExheWVyKCkvcGFpbnRMYXllckNvbnRlbnRzKCkgdG8gYXZvaWQg
ZHVwbGljYXRlIGNvZGUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTc1OTgzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgTm8gbmV3IHRlc3RzLCBqdXN0IG1lcmdpbmcgdHdvIGR1cGxpY2F0ZSBtZXRob2RzLgor
CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckxheWVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OlJlbmRlckxheWVyOjpwYWludExheWVyKToKKyAgICAgICAgICAgIFRoaXMgbWV0aG9kIGlzIHVz
ZWQgb25seSBpbiBub24tY29tcG9zaXRlZCBtb2RlLCBzbyBJJ3ZlIG1vdmVkIHRoZSBjaGVjayBm
b3IgY29tcG9zaXRlZCBtb2RlIG11Y2ggZWFybGllci4KKworICAgICAgICAoV2ViQ29yZTo6UmVu
ZGVyTGF5ZXI6OnBhaW50TGF5ZXJDb250ZW50c0FuZFJlZmxlY3Rpb24pOgorICAgICAgICAgICAg
QWxzbyB1c2VkIGp1c3QgaW4gbm9uLWNvbXBvc2l0ZWQgbW9kZSwgaXQgd2lsbCBkcmF3IHRoZSBy
ZWZsZWN0aW9uIGFuZCB0aGVuIGp1c3QgY2FsbCBwYWludExheWVyQ29udGVudHMuCisKKyAgICAg
ICAgKFdlYkNvcmU6OlJlbmRlckxheWVyOjpwYWludExheWVyQ29udGVudHMpOgorICAgICAgICAg
ICAgT2xkIG1ldGhvZCwgdGhhdCBpcyBub3cgdXNlZCBieSBib3RoIGNvbXBvc2l0ZWQgYW5kIG5v
bi1jb21wb3NpdGVkIG1vZGUuIEkndmUgYWRkZWQgMyBtb3JlIGZsYWdzIHVzZWQgdG8gcmVuZGVy
IHRoZQorICAgICAgICAgICAgR3JhcGhpY3MgbGF5ZXJzOiBCYWNrZ3JvdW5kLCBGb3JlZ3JvdW5k
IGFuZCBNYXNrLgorCisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckxheWVyLmg6CisgICAgICAg
ICogcmVuZGVyaW5nL1JlbmRlckxheWVyQmFja2luZy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpS
ZW5kZXJMYXllckJhY2tpbmc6OnBhaW50SW50b0xheWVyKToKKyAgICAgICAgICAgIFJlbW92ZWQg
YWxsIHRoZSBjb2RlIGFuZCBkZWxlZ2F0ZWQgdGhlIHdvcmsgdG8gUmVuZGVyTGF5ZXI6OnBhaW50
TGF5ZXJDb250ZW50cy4KKwogMjAxMi0wMS0xMiAgWm9sdGFuIEhlcmN6ZWcgIDx6aGVyY3plZ0B3
ZWJraXQub3JnPgogCiAgICAgICAgIEZpeCB0dXJidWxlbmNlIGJ1ZyB3aGVuIHN0aXRjaCB0aWxl
cyBlbmFibGVkIGFuZCByZW5kZXJlZCBpbiBwYXJhbGxlbApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJMYXllci5jcHAKaW5kZXggODNhMGZlOS4uM2E0YmE0MSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuY3BwCkBAIC0yNjk4LDYgKzI2OTgsMTkgQEAgdm9pZCBS
ZW5kZXJMYXllcjo6cGFpbnRMYXllcihSZW5kZXJMYXllciogcm9vdExheWVyLCBHcmFwaGljc0Nv
bnRleHQqIHAsCiAgICAgICAgICAgICAgICAgICAgICAgICBSZW5kZXJPYmplY3QqIHBhaW50aW5n
Um9vdCwgUmVuZGVyUmVnaW9uKiByZWdpb24sIE92ZXJsYXBUZXN0UmVxdWVzdE1hcCogb3Zlcmxh
cFRlc3RSZXF1ZXN0cywKICAgICAgICAgICAgICAgICAgICAgICAgIFBhaW50TGF5ZXJGbGFncyBw
YWludEZsYWdzKQogeworI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKKyAgICBpZiAo
aXNDb21wb3NpdGVkKCkpIHsKKyAgICAgICAgLy8gVGhlIHVwZGF0aW5nQ29udHJvbFRpbnRzKCkg
cGFpbnRpbmcgcGFzcyBnb2VzIHRocm91Z2ggY29tcG9zaXRpbmcgbGF5ZXJzLAorICAgICAgICAv
LyBidXQgd2UgbmVlZCB0byBlbnN1cmUgdGhhdCB3ZSBkb24ndCBjYWNoZSBjbGlwIHJlY3RzIGNv
bXB1dGVkIHdpdGggdGhlIHdyb25nIHJvb3QgaW4gdGhpcyBjYXNlLgorICAgICAgICBpZiAocC0+
dXBkYXRpbmdDb250cm9sVGludHMoKSB8fCAocGFpbnRCZWhhdmlvciAmIFBhaW50QmVoYXZpb3JG
bGF0dGVuQ29tcG9zaXRpbmdMYXllcnMpKQorICAgICAgICAgICAgcGFpbnRGbGFncyB8PSBQYWlu
dExheWVyVGVtcG9yYXJ5Q2xpcFJlY3RzOworICAgICAgICBlbHNlIGlmICghYmFja2luZygpLT5w
YWludGluZ0dvZXNUb1dpbmRvdygpICYmICFzaG91bGREb1NvZnR3YXJlUGFpbnQodGhpcywgcGFp
bnRGbGFncyAmIFBhaW50TGF5ZXJQYWludGluZ1JlZmxlY3Rpb24pKSB7CisgICAgICAgICAgICAv
LyBJZiB0aGlzIFJlbmRlckxheWVyIHNob3VsZCBwYWludCBpbnRvIGl0cyBiYWNraW5nLCB0aGF0
IHdpbGwgYmUgZG9uZSB2aWEgUmVuZGVyTGF5ZXJCYWNraW5nOjpwYWludEludG9MYXllcigpLgor
ICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisgICAgfQorI2VuZGlmCisKICAgICBpZiAo
c2hvdWxkU3VwcHJlc3NQYWludGluZ0xheWVyKHRoaXMpKQogICAgICAgICByZXR1cm47CiAgICAg
CkBAIC0yNzA4LDYgKzI3MjEsNyBAQCB2b2lkIFJlbmRlckxheWVyOjpwYWludExheWVyKFJlbmRl
ckxheWVyKiByb290TGF5ZXIsIEdyYXBoaWNzQ29udGV4dCogcCwKICAgICBpZiAocGFpbnRzV2l0
aFRyYW5zcGFyZW5jeShwYWludEJlaGF2aW9yKSkKICAgICAgICAgcGFpbnRGbGFncyB8PSBQYWlu
dExheWVySGF2ZVRyYW5zcGFyZW5jeTsKIAorICAgIC8vIFBhaW50TGF5ZXJBcHBsaWVkVHJhbnNm
b3JtIGlzIHN0aWxsIGJlaW5nIHVzZWQgZm9yIFJlbmRlclJlcGxpY2EuCiAgICAgaWYgKHBhaW50
c1dpdGhUcmFuc2Zvcm0ocGFpbnRCZWhhdmlvcikgJiYgIShwYWludEZsYWdzICYgUGFpbnRMYXll
ckFwcGxpZWRUcmFuc2Zvcm0pKSB7CiAgICAgICAgIFRyYW5zZm9ybWF0aW9uTWF0cml4IGxheWVy
VHJhbnNmb3JtID0gcmVuZGVyYWJsZVRyYW5zZm9ybShwYWludEJlaGF2aW9yKTsKICAgICAgICAg
Ly8gSWYgdGhlIHRyYW5zZm9ybSBjYW4ndCBiZSBpbnZlcnRlZCwgdGhlbiBkb24ndCBwYWludCBh
bnl0aGluZy4KQEAgLTI3NDYsNyArMjc2MCw3IEBAIHZvaWQgUmVuZGVyTGF5ZXI6OnBhaW50TGF5
ZXIoUmVuZGVyTGF5ZXIqIHJvb3RMYXllciwgR3JhcGhpY3NDb250ZXh0KiBwLAogICAgICAgICAg
ICAgcC0+Y29uY2F0Q1RNKHRyYW5zZm9ybS50b0FmZmluZVRyYW5zZm9ybSgpKTsKIAogICAgICAg
ICAgICAgLy8gTm93IGRvIGEgcGFpbnQgd2l0aCB0aGUgcm9vdCBsYXllciBzaGlmdGVkIHRvIGJl
IHVzLgotICAgICAgICAgICAgcGFpbnRMYXllcih0aGlzLCBwLCB0cmFuc2Zvcm0uaW52ZXJzZSgp
Lm1hcFJlY3QocGFpbnREaXJ0eVJlY3QpLCBwYWludEJlaGF2aW9yLCBwYWludGluZ1Jvb3QsIHJl
Z2lvbiwgb3ZlcmxhcFRlc3RSZXF1ZXN0cywgcGFpbnRGbGFncyB8IFBhaW50TGF5ZXJBcHBsaWVk
VHJhbnNmb3JtKTsKKyAgICAgICAgICAgIHBhaW50TGF5ZXJDb250ZW50c0FuZFJlZmxlY3Rpb24o
dGhpcywgcCwgdHJhbnNmb3JtLmludmVyc2UoKS5tYXBSZWN0KHBhaW50RGlydHlSZWN0KSwgcGFp
bnRCZWhhdmlvciwgcGFpbnRpbmdSb290LCByZWdpb24sIG92ZXJsYXBUZXN0UmVxdWVzdHMsIHBh
aW50RmxhZ3MpOwogICAgICAgICB9ICAgICAgICAKIAogICAgICAgICAvLyBSZXN0b3JlIHRoZSBj
bGlwLgpAQCAtMjc1NiwzNiArMjc3MCwxNSBAQCB2b2lkIFJlbmRlckxheWVyOjpwYWludExheWVy
KFJlbmRlckxheWVyKiByb290TGF5ZXIsIEdyYXBoaWNzQ29udGV4dCogcCwKICAgICAgICAgcmV0
dXJuOwogICAgIH0KICAgICAKLSAgICBwYWludExheWVyQ29udGVudHMocm9vdExheWVyLCBwLCBw
YWludERpcnR5UmVjdCwgcGFpbnRCZWhhdmlvciwgcGFpbnRpbmdSb290LCByZWdpb24sIG92ZXJs
YXBUZXN0UmVxdWVzdHMsIHBhaW50RmxhZ3MpOworICAgIHBhaW50TGF5ZXJDb250ZW50c0FuZFJl
ZmxlY3Rpb24ocm9vdExheWVyLCBwLCBwYWludERpcnR5UmVjdCwgcGFpbnRCZWhhdmlvciwgcGFp
bnRpbmdSb290LCByZWdpb24sIG92ZXJsYXBUZXN0UmVxdWVzdHMsIHBhaW50RmxhZ3MpOwogfQog
Ci12b2lkIFJlbmRlckxheWVyOjpwYWludExheWVyQ29udGVudHMoUmVuZGVyTGF5ZXIqIHJvb3RM
YXllciwgR3JhcGhpY3NDb250ZXh0KiBwLAordm9pZCBSZW5kZXJMYXllcjo6cGFpbnRMYXllckNv
bnRlbnRzQW5kUmVmbGVjdGlvbihSZW5kZXJMYXllciogcm9vdExheWVyLCBHcmFwaGljc0NvbnRl
eHQqIHAsCiAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBMYXlvdXRSZWN0JiBwYWludERp
cnR5UmVjdCwgUGFpbnRCZWhhdmlvciBwYWludEJlaGF2aW9yLAogICAgICAgICAgICAgICAgICAg
ICAgICAgUmVuZGVyT2JqZWN0KiBwYWludGluZ1Jvb3QsIFJlbmRlclJlZ2lvbiogcmVnaW9uLCBP
dmVybGFwVGVzdFJlcXVlc3RNYXAqIG92ZXJsYXBUZXN0UmVxdWVzdHMsCiAgICAgICAgICAgICAg
ICAgICAgICAgICBQYWludExheWVyRmxhZ3MgcGFpbnRGbGFncykKIHsKLSNpZiBVU0UoQUNDRUxF
UkFURURfQ09NUE9TSVRJTkcpCi0gICAgaWYgKGlzQ29tcG9zaXRlZCgpKSB7Ci0gICAgICAgIC8v
IFRoZSB1cGRhdGluZ0NvbnRyb2xUaW50cygpIHBhaW50aW5nIHBhc3MgZ29lcyB0aHJvdWdoIGNv
bXBvc2l0aW5nIGxheWVycywKLSAgICAgICAgLy8gYnV0IHdlIG5lZWQgdG8gZW5zdXJlIHRoYXQg
d2UgZG9uJ3QgY2FjaGUgY2xpcCByZWN0cyBjb21wdXRlZCB3aXRoIHRoZSB3cm9uZyByb290IGlu
IHRoaXMgY2FzZS4KLSAgICAgICAgaWYgKHAtPnVwZGF0aW5nQ29udHJvbFRpbnRzKCkgfHwgKHBh
aW50QmVoYXZpb3IgJiBQYWludEJlaGF2aW9yRmxhdHRlbkNvbXBvc2l0aW5nTGF5ZXJzKSkKLSAg
ICAgICAgICAgIHBhaW50RmxhZ3MgfD0gUGFpbnRMYXllclRlbXBvcmFyeUNsaXBSZWN0czsKLSAg
ICAgICAgZWxzZSBpZiAoIWJhY2tpbmcoKS0+cGFpbnRpbmdHb2VzVG9XaW5kb3coKSAmJiAhc2hv
dWxkRG9Tb2Z0d2FyZVBhaW50KHRoaXMsIHBhaW50RmxhZ3MgJiBQYWludExheWVyUGFpbnRpbmdS
ZWZsZWN0aW9uKSkgewotICAgICAgICAgICAgLy8gSWYgdGhpcyBSZW5kZXJMYXllciBzaG91bGQg
cGFpbnQgaW50byBpdHMgYmFja2luZywgdGhhdCB3aWxsIGJlIGRvbmUgdmlhIFJlbmRlckxheWVy
QmFja2luZzo6cGFpbnRJbnRvTGF5ZXIoKS4KLSAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAg
fQotICAgIH0KLSNlbmRpZgotCi0gICAgaWYgKHNob3VsZFN1cHByZXNzUGFpbnRpbmdMYXllcih0
aGlzKSkKLSAgICAgICAgcmV0dXJuOwotICAgIAotICAgIC8vIElmIHRoaXMgbGF5ZXIgaXMgdG90
YWxseSBpbnZpc2libGUgdGhlbiB0aGVyZSBpcyBub3RoaW5nIHRvIHBhaW50LgotICAgIGlmICgh
cmVuZGVyZXIoKS0+b3BhY2l0eSgpKQotICAgICAgICByZXR1cm47Ci0KICAgICBQYWludExheWVy
RmxhZ3MgbG9jYWxQYWludEZsYWdzID0gcGFpbnRGbGFncyAmIH4oUGFpbnRMYXllckFwcGxpZWRU
cmFuc2Zvcm0pOwotICAgIGJvb2wgaGF2ZVRyYW5zcGFyZW5jeSA9IGxvY2FsUGFpbnRGbGFncyAm
IFBhaW50TGF5ZXJIYXZlVHJhbnNwYXJlbmN5OwogCiAgICAgLy8gUGFpbnQgdGhlIHJlZmxlY3Rp
b24gZmlyc3QgaWYgd2UgaGF2ZSBvbmUuCiAgICAgaWYgKG1fcmVmbGVjdGlvbiAmJiAhbV9wYWlu
dGluZ0luc2lkZVJlZmxlY3Rpb24pIHsKQEAgLTI3OTUsNiArMjc4OCwxNyBAQCB2b2lkIFJlbmRl
ckxheWVyOjpwYWludExheWVyQ29udGVudHMoUmVuZGVyTGF5ZXIqIHJvb3RMYXllciwgR3JhcGhp
Y3NDb250ZXh0KiBwLAogICAgICAgICBtX3BhaW50aW5nSW5zaWRlUmVmbGVjdGlvbiA9IGZhbHNl
OwogICAgIH0KIAorICAgIGxvY2FsUGFpbnRGbGFncyB8PSBQYWludExheWVyUGFpbnRpbmdBbGxQ
aGFzZXM7CisgICAgcGFpbnRMYXllckNvbnRlbnRzKHJvb3RMYXllciwgcCwgcGFpbnREaXJ0eVJl
Y3QsIHBhaW50QmVoYXZpb3IsIHBhaW50aW5nUm9vdCwgcmVnaW9uLCBvdmVybGFwVGVzdFJlcXVl
c3RzLCBsb2NhbFBhaW50RmxhZ3MpOworfQorCit2b2lkIFJlbmRlckxheWVyOjpwYWludExheWVy
Q29udGVudHMoUmVuZGVyTGF5ZXIqIHJvb3RMYXllciwgR3JhcGhpY3NDb250ZXh0KiBwLCAKKyAg
ICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IExheW91dFJlY3QmIHBhaW50RGlydHlSZWN0LCBQ
YWludEJlaGF2aW9yIHBhaW50QmVoYXZpb3IsCisgICAgICAgICAgICAgICAgICAgICAgICBSZW5k
ZXJPYmplY3QqIHBhaW50aW5nUm9vdCwgUmVuZGVyUmVnaW9uKiByZWdpb24sIE92ZXJsYXBUZXN0
UmVxdWVzdE1hcCogb3ZlcmxhcFRlc3RSZXF1ZXN0cywKKyAgICAgICAgICAgICAgICAgICAgICAg
IFBhaW50TGF5ZXJGbGFncyBwYWludEZsYWdzKQoreworICAgIFBhaW50TGF5ZXJGbGFncyBsb2Nh
bFBhaW50RmxhZ3MgPSBwYWludEZsYWdzICYgfihQYWludExheWVyQXBwbGllZFRyYW5zZm9ybSk7
CisgICAgYm9vbCBoYXZlVHJhbnNwYXJlbmN5ID0gbG9jYWxQYWludEZsYWdzICYgUGFpbnRMYXll
ckhhdmVUcmFuc3BhcmVuY3k7CiAgICAgYm9vbCBpc1NlbGZQYWludGluZ0xheWVyID0gdGhpcy0+
aXNTZWxmUGFpbnRpbmdMYXllcigpOwogICAgIGJvb2wgaXNQYWludGluZ092ZXJsYXlTY3JvbGxi
YXJzID0gcGFpbnRGbGFncyAmIFBhaW50TGF5ZXJQYWludGluZ092ZXJsYXlTY3JvbGxiYXJzOwog
ICAgIC8vIE91dGxpbmUgYWx3YXlzIG5lZWRzIHRvIGJlIHBhaW50ZWQgZXZlbiBpZiB3ZSBoYXZl
IG5vIHZpc2libGUgY29udGVudC4KQEAgLTI4MzMsNzIgKzI4MzcsODIgQEAgdm9pZCBSZW5kZXJM
YXllcjo6cGFpbnRMYXllckNvbnRlbnRzKFJlbmRlckxheWVyKiByb290TGF5ZXIsIEdyYXBoaWNz
Q29udGV4dCogcCwKIAogICAgIC8vIFdlIHdhbnQgdG8gcGFpbnQgb3VyIGxheWVyLCBidXQgb25s
eSBpZiB3ZSBpbnRlcnNlY3QgdGhlIGRhbWFnZSByZWN0LgogICAgIHNob3VsZFBhaW50Q29udGVu
dCAmPSBpbnRlcnNlY3RzRGFtYWdlUmVjdChsYXllckJvdW5kcywgZGFtYWdlUmVjdC5yZWN0KCks
IHJvb3RMYXllcik7Ci0gICAgaWYgKHNob3VsZFBhaW50Q29udGVudCAmJiAhc2VsZWN0aW9uT25s
eSkgewotICAgICAgICAvLyBCZWdpbiB0cmFuc3BhcmVuY3kgbGF5ZXJzIGxhemlseSBub3cgdGhh
dCB3ZSBrbm93IHdlIGhhdmUgdG8gcGFpbnQgc29tZXRoaW5nLgotICAgICAgICBpZiAoaGF2ZVRy
YW5zcGFyZW5jeSkKLSAgICAgICAgICAgIGJlZ2luVHJhbnNwYXJlbmN5TGF5ZXJzKHAsIHJvb3RM
YXllciwgcGFpbnRCZWhhdmlvcik7CisgICAgCisgICAgaWYgKGxvY2FsUGFpbnRGbGFncyAmIFBh
aW50TGF5ZXJQYWludGluZ0JhY2tncm91bmRQaGFzZSkgeworICAgICAgICBpZiAoc2hvdWxkUGFp
bnRDb250ZW50ICYmICFzZWxlY3Rpb25Pbmx5KSB7CisgICAgICAgICAgICAvLyBCZWdpbiB0cmFu
c3BhcmVuY3kgbGF5ZXJzIGxhemlseSBub3cgdGhhdCB3ZSBrbm93IHdlIGhhdmUgdG8gcGFpbnQg
c29tZXRoaW5nLgorICAgICAgICAgICAgaWYgKGhhdmVUcmFuc3BhcmVuY3kpCisgICAgICAgICAg
ICAgICAgYmVnaW5UcmFuc3BhcmVuY3lMYXllcnMocCwgcm9vdExheWVyLCBwYWludEJlaGF2aW9y
KTsKICAgICAgICAgCiAjaWYgRU5BQkxFKENTU19GSUxURVJTKQotICAgICAgICBpZiAoZmlsdGVy
UGFpbnRlci5oYXZlRmlsdGVyRWZmZWN0KCkpCi0gICAgICAgICAgICBwID0gZmlsdGVyUGFpbnRl
ci5iZWdpbkZpbHRlckVmZmVjdCh0aGlzLCBwLCB0cmFuc3BhcmVuY3lDbGlwQm94KHRoaXMsIHJv
b3RMYXllciwgcGFpbnRCZWhhdmlvcikpOworICAgICAgICAgICAgaWYgKGZpbHRlclBhaW50ZXIu
aGF2ZUZpbHRlckVmZmVjdCgpKQorICAgICAgICAgICAgICAgIHAgPSBmaWx0ZXJQYWludGVyLmJl
Z2luRmlsdGVyRWZmZWN0KHRoaXMsIHAsIHRyYW5zcGFyZW5jeUNsaXBCb3godGhpcywgcm9vdExh
eWVyLCBwYWludEJlaGF2aW9yKSk7CiAjZW5kaWYKICAgICAgICAgCi0gICAgICAgIC8vIFBhaW50
IG91ciBiYWNrZ3JvdW5kIGZpcnN0LCBiZWZvcmUgcGFpbnRpbmcgYW55IGNoaWxkIGxheWVycy4K
LSAgICAgICAgLy8gRXN0YWJsaXNoIHRoZSBjbGlwIHVzZWQgdG8gcGFpbnQgb3VyIGJhY2tncm91
bmQuCi0gICAgICAgIGNsaXBUb1JlY3Qocm9vdExheWVyLCBwLCBwYWludERpcnR5UmVjdCwgZGFt
YWdlUmVjdCwgRG9Ob3RJbmNsdWRlU2VsZkZvckJvcmRlclJhZGl1cyk7IC8vIEJhY2tncm91bmQg
cGFpbnRpbmcgd2lsbCBoYW5kbGUgY2xpcHBpbmcgdG8gc2VsZi4KKyAgICAgICAgICAgIC8vIFBh
aW50IG91ciBiYWNrZ3JvdW5kIGZpcnN0LCBiZWZvcmUgcGFpbnRpbmcgYW55IGNoaWxkIGxheWVy
cy4KKyAgICAgICAgICAgIC8vIEVzdGFibGlzaCB0aGUgY2xpcCB1c2VkIHRvIHBhaW50IG91ciBi
YWNrZ3JvdW5kLgorICAgICAgICAgICAgY2xpcFRvUmVjdChyb290TGF5ZXIsIHAsIHBhaW50RGly
dHlSZWN0LCBkYW1hZ2VSZWN0LCBEb05vdEluY2x1ZGVTZWxmRm9yQm9yZGVyUmFkaXVzKTsgLy8g
QmFja2dyb3VuZCBwYWludGluZyB3aWxsIGhhbmRsZSBjbGlwcGluZyB0byBzZWxmLgogCi0gICAg
ICAgIC8vIFBhaW50IHRoZSBiYWNrZ3JvdW5kLgotICAgICAgICBQYWludEluZm8gcGFpbnRJbmZv
KHAsIGRhbWFnZVJlY3QucmVjdCgpLCBQYWludFBoYXNlQmxvY2tCYWNrZ3JvdW5kLCBmYWxzZSwg
cGFpbnRpbmdSb290Rm9yUmVuZGVyZXIsIHJlZ2lvbiwgMCk7Ci0gICAgICAgIHJlbmRlcmVyKCkt
PnBhaW50KHBhaW50SW5mbywgcGFpbnRPZmZzZXQpOworICAgICAgICAgICAgLy8gUGFpbnQgdGhl
IGJhY2tncm91bmQuCisgICAgICAgICAgICBQYWludEluZm8gcGFpbnRJbmZvKHAsIGRhbWFnZVJl
Y3QucmVjdCgpLCBQYWludFBoYXNlQmxvY2tCYWNrZ3JvdW5kLCBmYWxzZSwgcGFpbnRpbmdSb290
Rm9yUmVuZGVyZXIsIHJlZ2lvbiwgMCk7CisgICAgICAgICAgICByZW5kZXJlcigpLT5wYWludChw
YWludEluZm8sIHBhaW50T2Zmc2V0KTsKIAotICAgICAgICAvLyBSZXN0b3JlIHRoZSBjbGlwLgot
ICAgICAgICByZXN0b3JlQ2xpcChwLCBwYWludERpcnR5UmVjdCwgZGFtYWdlUmVjdCk7CisgICAg
ICAgICAgICAvLyBSZXN0b3JlIHRoZSBjbGlwLgorICAgICAgICAgICAgcmVzdG9yZUNsaXAocCwg
cGFpbnREaXJ0eVJlY3QsIGRhbWFnZVJlY3QpOworICAgICAgICB9CisKKyAgICAgICAgLy8gTm93
IHdhbGsgdGhlIHNvcnRlZCBsaXN0IG9mIGNoaWxkcmVuIHdpdGggbmVnYXRpdmUgei1pbmRpY2Vz
LgorICAgICAgICBwYWludExpc3QobV9uZWdaT3JkZXJMaXN0LCByb290TGF5ZXIsIHAsIHBhaW50
RGlydHlSZWN0LCBwYWludEJlaGF2aW9yLCBwYWludGluZ1Jvb3QsIHJlZ2lvbiwgb3ZlcmxhcFRl
c3RSZXF1ZXN0cywgbG9jYWxQYWludEZsYWdzKTsKICAgICB9CisgICAgCisgICAgaWYgKGxvY2Fs
UGFpbnRGbGFncyAmIFBhaW50TGF5ZXJQYWludGluZ0ZvcmVncm91bmRQaGFzZSkgeworICAgICAg
ICAvLyBOb3cgZXN0YWJsaXNoIHRoZSBhcHByb3ByaWF0ZSBjbGlwIGFuZCBwYWludCBvdXIgY2hp
bGQgUmVuZGVyT2JqZWN0cy4KKyAgICAgICAgaWYgKHNob3VsZFBhaW50Q29udGVudCAmJiAhY2xp
cFJlY3RUb0FwcGx5LmlzRW1wdHkoKSkgeworICAgICAgICAgICAgLy8gQmVnaW4gdHJhbnNwYXJl
bmN5IGxheWVycyBsYXppbHkgbm93IHRoYXQgd2Uga25vdyB3ZSBoYXZlIHRvIHBhaW50IHNvbWV0
aGluZy4KKyAgICAgICAgICAgIGlmIChoYXZlVHJhbnNwYXJlbmN5KQorICAgICAgICAgICAgICAg
IGJlZ2luVHJhbnNwYXJlbmN5TGF5ZXJzKHAsIHJvb3RMYXllciwgcGFpbnRCZWhhdmlvcik7CiAK
LSAgICAvLyBOb3cgd2FsayB0aGUgc29ydGVkIGxpc3Qgb2YgY2hpbGRyZW4gd2l0aCBuZWdhdGl2
ZSB6LWluZGljZXMuCi0gICAgcGFpbnRMaXN0KG1fbmVnWk9yZGVyTGlzdCwgcm9vdExheWVyLCBw
LCBwYWludERpcnR5UmVjdCwgcGFpbnRCZWhhdmlvciwgcGFpbnRpbmdSb290LCByZWdpb24sIG92
ZXJsYXBUZXN0UmVxdWVzdHMsIGxvY2FsUGFpbnRGbGFncyk7CisjaWYgRU5BQkxFKENTU19GSUxU
RVJTKQorICAgICAgICAgICAgLy8gSWYgdGhlIGZpbHRlciB3YXMgbm90IHN0YXJ0ZWQgeWV0LCBz
dGFydCBpdCBub3csIGFmdGVyIHRoZSB0cmFuc3BhcmVuY3kgbGF5ZXIgd2FzIGxhemlseSBjcmVh
dGVkLgorICAgICAgICAgICAgaWYgKGZpbHRlclBhaW50ZXIuaGF2ZUZpbHRlckVmZmVjdCgpICYm
ICFmaWx0ZXJQYWludGVyLmhhc1N0YXJ0ZWRGaWx0ZXJFZmZlY3QoKSkKKyAgICAgICAgICAgICAg
ICBwID0gZmlsdGVyUGFpbnRlci5iZWdpbkZpbHRlckVmZmVjdCh0aGlzLCBwLCB0cmFuc3BhcmVu
Y3lDbGlwQm94KHRoaXMsIHJvb3RMYXllciwgcGFpbnRCZWhhdmlvcikpOworI2VuZGlmCisgICAg
ICAgICAgICAvLyBTZXQgdXAgdGhlIGNsaXAgdXNlZCB3aGVuIHBhaW50aW5nIG91ciBjaGlsZHJl
bi4KKyAgICAgICAgICAgIGNsaXBUb1JlY3Qocm9vdExheWVyLCBwLCBwYWludERpcnR5UmVjdCwg
Y2xpcFJlY3RUb0FwcGx5KTsKKyAgICAgICAgICAgIFBhaW50SW5mbyBwYWludEluZm8ocCwgY2xp
cFJlY3RUb0FwcGx5LnJlY3QoKSwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNl
bGVjdGlvbk9ubHkgPyBQYWludFBoYXNlU2VsZWN0aW9uIDogUGFpbnRQaGFzZUNoaWxkQmxvY2tC
YWNrZ3JvdW5kcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9yY2VCbGFja1Rl
eHQsIHBhaW50aW5nUm9vdEZvclJlbmRlcmVyLCByZWdpb24sIDApOworICAgICAgICAgICAgcmVu
ZGVyZXIoKS0+cGFpbnQocGFpbnRJbmZvLCBwYWludE9mZnNldCk7CisgICAgICAgICAgICBpZiAo
IXNlbGVjdGlvbk9ubHkpIHsKKyAgICAgICAgICAgICAgICBwYWludEluZm8ucGhhc2UgPSBQYWlu
dFBoYXNlRmxvYXQ7CisgICAgICAgICAgICAgICAgcmVuZGVyZXIoKS0+cGFpbnQocGFpbnRJbmZv
LCBwYWludE9mZnNldCk7CisgICAgICAgICAgICAgICAgcGFpbnRJbmZvLnBoYXNlID0gUGFpbnRQ
aGFzZUZvcmVncm91bmQ7CisgICAgICAgICAgICAgICAgcGFpbnRJbmZvLm92ZXJsYXBUZXN0UmVx
dWVzdHMgPSBvdmVybGFwVGVzdFJlcXVlc3RzOworICAgICAgICAgICAgICAgIHJlbmRlcmVyKCkt
PnBhaW50KHBhaW50SW5mbywgcGFpbnRPZmZzZXQpOworICAgICAgICAgICAgICAgIHBhaW50SW5m
by5waGFzZSA9IFBhaW50UGhhc2VDaGlsZE91dGxpbmVzOworICAgICAgICAgICAgICAgIHJlbmRl
cmVyKCktPnBhaW50KHBhaW50SW5mbywgcGFpbnRPZmZzZXQpOworICAgICAgICAgICAgfQogCi0g
ICAgLy8gTm93IGVzdGFibGlzaCB0aGUgYXBwcm9wcmlhdGUgY2xpcCBhbmQgcGFpbnQgb3VyIGNo
aWxkIFJlbmRlck9iamVjdHMuCi0gICAgaWYgKHNob3VsZFBhaW50Q29udGVudCAmJiAhY2xpcFJl
Y3RUb0FwcGx5LmlzRW1wdHkoKSkgewotICAgICAgICAvLyBCZWdpbiB0cmFuc3BhcmVuY3kgbGF5
ZXJzIGxhemlseSBub3cgdGhhdCB3ZSBrbm93IHdlIGhhdmUgdG8gcGFpbnQgc29tZXRoaW5nLgot
ICAgICAgICBpZiAoaGF2ZVRyYW5zcGFyZW5jeSkKLSAgICAgICAgICAgIGJlZ2luVHJhbnNwYXJl
bmN5TGF5ZXJzKHAsIHJvb3RMYXllciwgcGFpbnRCZWhhdmlvcik7CisgICAgICAgICAgICAvLyBO
b3cgcmVzdG9yZSBvdXIgY2xpcC4KKyAgICAgICAgICAgIHJlc3RvcmVDbGlwKHAsIHBhaW50RGly
dHlSZWN0LCBjbGlwUmVjdFRvQXBwbHkpOworICAgICAgICB9CiAKLSAgICAgICAgLy8gU2V0IHVw
IHRoZSBjbGlwIHVzZWQgd2hlbiBwYWludGluZyBvdXIgY2hpbGRyZW4uCi0gICAgICAgIGNsaXBU
b1JlY3Qocm9vdExheWVyLCBwLCBwYWludERpcnR5UmVjdCwgY2xpcFJlY3RUb0FwcGx5KTsKLSAg
ICAgICAgUGFpbnRJbmZvIHBhaW50SW5mbyhwLCBjbGlwUmVjdFRvQXBwbHkucmVjdCgpLCAKLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxlY3Rpb25Pbmx5ID8gUGFpbnRQaGFzZVNlbGVj
dGlvbiA6IFBhaW50UGhhc2VDaGlsZEJsb2NrQmFja2dyb3VuZHMsCi0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgZm9yY2VCbGFja1RleHQsIHBhaW50aW5nUm9vdEZvclJlbmRlcmVyLCByZWdp
b24sIDApOwotICAgICAgICByZW5kZXJlcigpLT5wYWludChwYWludEluZm8sIHBhaW50T2Zmc2V0
KTsKLSAgICAgICAgaWYgKCFzZWxlY3Rpb25Pbmx5KSB7Ci0gICAgICAgICAgICBwYWludEluZm8u
cGhhc2UgPSBQYWludFBoYXNlRmxvYXQ7Ci0gICAgICAgICAgICByZW5kZXJlcigpLT5wYWludChw
YWludEluZm8sIHBhaW50T2Zmc2V0KTsKLSAgICAgICAgICAgIHBhaW50SW5mby5waGFzZSA9IFBh
aW50UGhhc2VGb3JlZ3JvdW5kOwotICAgICAgICAgICAgcGFpbnRJbmZvLm92ZXJsYXBUZXN0UmVx
dWVzdHMgPSBvdmVybGFwVGVzdFJlcXVlc3RzOwotICAgICAgICAgICAgcmVuZGVyZXIoKS0+cGFp
bnQocGFpbnRJbmZvLCBwYWludE9mZnNldCk7Ci0gICAgICAgICAgICBwYWludEluZm8ucGhhc2Ug
PSBQYWludFBoYXNlQ2hpbGRPdXRsaW5lczsKKyAgICAgICAgaWYgKHNob3VsZFBhaW50T3V0bGlu
ZSAmJiAhb3V0bGluZVJlY3QuaXNFbXB0eSgpKSB7CisgICAgICAgICAgICAvLyBQYWludCBvdXIg
b3duIG91dGxpbmUKKyAgICAgICAgICAgIFBhaW50SW5mbyBwYWludEluZm8ocCwgb3V0bGluZVJl
Y3QucmVjdCgpLCBQYWludFBoYXNlU2VsZk91dGxpbmUsIGZhbHNlLCBwYWludGluZ1Jvb3RGb3JS
ZW5kZXJlciwgcmVnaW9uLCAwKTsKKyAgICAgICAgICAgIGNsaXBUb1JlY3Qocm9vdExheWVyLCBw
LCBwYWludERpcnR5UmVjdCwgb3V0bGluZVJlY3QsIERvTm90SW5jbHVkZVNlbGZGb3JCb3JkZXJS
YWRpdXMpOwogICAgICAgICAgICAgcmVuZGVyZXIoKS0+cGFpbnQocGFpbnRJbmZvLCBwYWludE9m
ZnNldCk7CisgICAgICAgICAgICByZXN0b3JlQ2xpcChwLCBwYWludERpcnR5UmVjdCwgb3V0bGlu
ZVJlY3QpOwogICAgICAgICB9Ci0KLSAgICAgICAgLy8gTm93IHJlc3RvcmUgb3VyIGNsaXAuCi0g
ICAgICAgIHJlc3RvcmVDbGlwKHAsIHBhaW50RGlydHlSZWN0LCBjbGlwUmVjdFRvQXBwbHkpOwot
ICAgIH0KLQotICAgIGlmIChzaG91bGRQYWludE91dGxpbmUgJiYgIW91dGxpbmVSZWN0LmlzRW1w
dHkoKSkgewotICAgICAgICAvLyBQYWludCBvdXIgb3duIG91dGxpbmUKLSAgICAgICAgUGFpbnRJ
bmZvIHBhaW50SW5mbyhwLCBvdXRsaW5lUmVjdC5yZWN0KCksIFBhaW50UGhhc2VTZWxmT3V0bGlu
ZSwgZmFsc2UsIHBhaW50aW5nUm9vdEZvclJlbmRlcmVyLCByZWdpb24sIDApOwotICAgICAgICBj
bGlwVG9SZWN0KHJvb3RMYXllciwgcCwgcGFpbnREaXJ0eVJlY3QsIG91dGxpbmVSZWN0LCBEb05v
dEluY2x1ZGVTZWxmRm9yQm9yZGVyUmFkaXVzKTsKLSAgICAgICAgcmVuZGVyZXIoKS0+cGFpbnQo
cGFpbnRJbmZvLCBwYWludE9mZnNldCk7Ci0gICAgICAgIHJlc3RvcmVDbGlwKHAsIHBhaW50RGly
dHlSZWN0LCBvdXRsaW5lUmVjdCk7Ci0gICAgfQogICAgIAotICAgIC8vIFBhaW50IGFueSBjaGls
ZCBsYXllcnMgdGhhdCBoYXZlIG92ZXJmbG93LgotICAgIHBhaW50TGlzdChtX25vcm1hbEZsb3dM
aXN0LCByb290TGF5ZXIsIHAsIHBhaW50RGlydHlSZWN0LCBwYWludEJlaGF2aW9yLCBwYWludGlu
Z1Jvb3QsIHJlZ2lvbiwgb3ZlcmxhcFRlc3RSZXF1ZXN0cywgbG9jYWxQYWludEZsYWdzKTsKKyAg
ICAgICAgLy8gUGFpbnQgYW55IGNoaWxkIGxheWVycyB0aGF0IGhhdmUgb3ZlcmZsb3cuCisgICAg
ICAgIHBhaW50TGlzdChtX25vcm1hbEZsb3dMaXN0LCByb290TGF5ZXIsIHAsIHBhaW50RGlydHlS
ZWN0LCBwYWludEJlaGF2aW9yLCBwYWludGluZ1Jvb3QsIHJlZ2lvbiwgb3ZlcmxhcFRlc3RSZXF1
ZXN0cywgbG9jYWxQYWludEZsYWdzKTsKICAgICAKLSAgICAvLyBOb3cgd2FsayB0aGUgc29ydGVk
IGxpc3Qgb2YgY2hpbGRyZW4gd2l0aCBwb3NpdGl2ZSB6LWluZGljZXMuCi0gICAgcGFpbnRMaXN0
KG1fcG9zWk9yZGVyTGlzdCwgcm9vdExheWVyLCBwLCBwYWludERpcnR5UmVjdCwgcGFpbnRCZWhh
dmlvciwgcGFpbnRpbmdSb290LCByZWdpb24sIG92ZXJsYXBUZXN0UmVxdWVzdHMsIGxvY2FsUGFp
bnRGbGFncyk7Ci0gICAgICAgIAotICAgIGlmIChzaG91bGRQYWludENvbnRlbnQgJiYgcmVuZGVy
ZXIoKS0+aGFzTWFzaygpICYmICFzZWxlY3Rpb25Pbmx5KSB7CisgICAgICAgIC8vIE5vdyB3YWxr
IHRoZSBzb3J0ZWQgbGlzdCBvZiBjaGlsZHJlbiB3aXRoIHBvc2l0aXZlIHotaW5kaWNlcy4KKyAg
ICAgICAgcGFpbnRMaXN0KG1fcG9zWk9yZGVyTGlzdCwgcm9vdExheWVyLCBwLCBwYWludERpcnR5
UmVjdCwgcGFpbnRCZWhhdmlvciwgcGFpbnRpbmdSb290LCByZWdpb24sIG92ZXJsYXBUZXN0UmVx
dWVzdHMsIGxvY2FsUGFpbnRGbGFncyk7CisgICAgfQorICAgIAorICAgIGlmICgobG9jYWxQYWlu
dEZsYWdzICYgUGFpbnRMYXllclBhaW50aW5nTWFza1BoYXNlKSAmJiBzaG91bGRQYWludENvbnRl
bnQgJiYgcmVuZGVyZXIoKS0+aGFzTWFzaygpICYmICFzZWxlY3Rpb25Pbmx5KSB7CiAgICAgICAg
IGNsaXBUb1JlY3Qocm9vdExheWVyLCBwLCBwYWludERpcnR5UmVjdCwgZGFtYWdlUmVjdCwgRG9O
b3RJbmNsdWRlU2VsZkZvckJvcmRlclJhZGl1cyk7IC8vIE1hc2sgcGFpbnRpbmcgd2lsbCBoYW5k
bGUgY2xpcHBpbmcgdG8gc2VsZi4KIAogICAgICAgICAvLyBQYWludCB0aGUgbWFzay4KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5oIGIvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyLmgKaW5kZXggYTg2YTBjMS4uYzAyZTZkMSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyLmgKQEAgLTQzNiwxMCArNDM2LDExIEBA
IHB1YmxpYzoKICAgICAgICAgUGFpbnRMYXllckFwcGxpZWRUcmFuc2Zvcm0gPSAxIDw8IDEsCiAg
ICAgICAgIFBhaW50TGF5ZXJUZW1wb3JhcnlDbGlwUmVjdHMgPSAxIDw8IDIsCiAgICAgICAgIFBh
aW50TGF5ZXJQYWludGluZ1JlZmxlY3Rpb24gPSAxIDw8IDMsCi0gICAgICAgIFBhaW50TGF5ZXJQ
YWludGluZ092ZXJsYXlTY3JvbGxiYXJzID0gMSA8PCA0Ci0jaWYgRU5BQkxFKENTU19GSUxURVJT
KQotICAgICAgICAsIFBhaW50TGF5ZXJBcHBsaWVkRmlsdGVycyA9IDEgPDwgNQotI2VuZGlmCisg
ICAgICAgIFBhaW50TGF5ZXJQYWludGluZ092ZXJsYXlTY3JvbGxiYXJzID0gMSA8PCA0LAorICAg
ICAgICBQYWludExheWVyUGFpbnRpbmdCYWNrZ3JvdW5kUGhhc2UgPSAxIDw8IDUsCisgICAgICAg
IFBhaW50TGF5ZXJQYWludGluZ0ZvcmVncm91bmRQaGFzZSA9IDEgPDwgNiwKKyAgICAgICAgUGFp
bnRMYXllclBhaW50aW5nTWFza1BoYXNlID0gMSA8PCA3LAorICAgICAgICBQYWludExheWVyUGFp
bnRpbmdBbGxQaGFzZXMgPSAoUGFpbnRMYXllclBhaW50aW5nQmFja2dyb3VuZFBoYXNlIHwgUGFp
bnRMYXllclBhaW50aW5nRm9yZWdyb3VuZFBoYXNlIHwgUGFpbnRMYXllclBhaW50aW5nTWFza1Bo
YXNlKQogICAgIH07CiAgICAgCiAgICAgdHlwZWRlZiB1bnNpZ25lZCBQYWludExheWVyRmxhZ3M7
CkBAIC01OTQsNiArNTk1LDkgQEAgcHJpdmF0ZToKICAgICB2b2lkIHBhaW50TGF5ZXIoUmVuZGVy
TGF5ZXIqIHJvb3RMYXllciwgR3JhcGhpY3NDb250ZXh0KiwgY29uc3QgTGF5b3V0UmVjdCYgcGFp
bnREaXJ0eVJlY3QsCiAgICAgICAgICAgICAgICAgICAgIFBhaW50QmVoYXZpb3IsIFJlbmRlck9i
amVjdCogcGFpbnRpbmdSb290LCBSZW5kZXJSZWdpb24qID0gMCwgT3ZlcmxhcFRlc3RSZXF1ZXN0
TWFwKiA9IDAsCiAgICAgICAgICAgICAgICAgICAgIFBhaW50TGF5ZXJGbGFncyA9IDApOworICAg
IHZvaWQgcGFpbnRMYXllckNvbnRlbnRzQW5kUmVmbGVjdGlvbihSZW5kZXJMYXllciogcm9vdExh
eWVyLCBHcmFwaGljc0NvbnRleHQqLCBjb25zdCBMYXlvdXRSZWN0JiBwYWludERpcnR5UmVjdCwK
KyAgICAgICAgICAgICAgICAgICAgUGFpbnRCZWhhdmlvciwgUmVuZGVyT2JqZWN0KiBwYWludGlu
Z1Jvb3QsIFJlbmRlclJlZ2lvbiogPSAwLCBPdmVybGFwVGVzdFJlcXVlc3RNYXAqID0gMCwKKyAg
ICAgICAgICAgICAgICAgICAgUGFpbnRMYXllckZsYWdzID0gMCk7CiAgICAgdm9pZCBwYWludExh
eWVyQ29udGVudHMoUmVuZGVyTGF5ZXIqIHJvb3RMYXllciwgR3JhcGhpY3NDb250ZXh0KiwgY29u
c3QgTGF5b3V0UmVjdCYgcGFpbnREaXJ0eVJlY3QsCiAgICAgICAgICAgICAgICAgICAgIFBhaW50
QmVoYXZpb3IsIFJlbmRlck9iamVjdCogcGFpbnRpbmdSb290LCBSZW5kZXJSZWdpb24qID0gMCwg
T3ZlcmxhcFRlc3RSZXF1ZXN0TWFwKiA9IDAsCiAgICAgICAgICAgICAgICAgICAgIFBhaW50TGF5
ZXJGbGFncyA9IDApOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
ckxheWVyQmFja2luZy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJC
YWNraW5nLmNwcAppbmRleCBhZjUyNDFiLi45NjhjYWVkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJCYWNraW5nLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJCYWNraW5nLmNwcApAQCAtMTEwNiwxMDQgKzExMDYsMTYg
QEAgdm9pZCBSZW5kZXJMYXllckJhY2tpbmc6OnBhaW50SW50b0xheWVyKFJlbmRlckxheWVyKiBy
b290TGF5ZXIsIEdyYXBoaWNzQ29udGV4dCoKIAogICAgIEZvbnRDYWNoZVB1cmdlUHJldmVudGVy
IGZvbnRDYWNoZVB1cmdlUHJldmVudGVyOwogICAgIAotICAgIG1fb3duaW5nTGF5ZXItPnVwZGF0
ZUxheWVyTGlzdHNJZk5lZWRlZCgpOwotCi0gICAgYm9vbCBzaG91bGRQYWludENvbnRlbnQgPSAo
bV9vd25pbmdMYXllci0+aGFzVmlzaWJsZUNvbnRlbnQoKSB8fCBtX293bmluZ0xheWVyLT5oYXNW
aXNpYmxlRGVzY2VuZGFudCgpKSAmJiBtX293bmluZ0xheWVyLT5pc1NlbGZQYWludGluZ0xheWVy
KCk7Ci0gICAgaWYgKCFzaG91bGRQYWludENvbnRlbnQpCi0gICAgICAgIHJldHVybjsKLQotICAg
IC8vIENhbGN1bGF0ZSB0aGUgY2xpcCByZWN0cyB3ZSBzaG91bGQgdXNlLgotICAgIExheW91dFJl
Y3QgbGF5ZXJCb3VuZHM7Ci0gICAgQ2xpcFJlY3QgZGFtYWdlUmVjdCwgY2xpcFJlY3RUb0FwcGx5
LCBvdXRsaW5lUmVjdDsKLSAgICBtX293bmluZ0xheWVyLT5jYWxjdWxhdGVSZWN0cyhyb290TGF5
ZXIsIDAsIHBhaW50RGlydHlSZWN0LCBsYXllckJvdW5kcywgZGFtYWdlUmVjdCwgY2xpcFJlY3RU
b0FwcGx5LCBvdXRsaW5lUmVjdCk7IC8vIEZJWE1FOiBJbmNvcnJlY3QgZm9yIENTUyByZWdpb25z
LgotICAgIExheW91dFBvaW50IHBhaW50T2Zmc2V0ID0gdG9Qb2ludChsYXllckJvdW5kcy5sb2Nh
dGlvbigpIC0gbV9vd25pbmdMYXllci0+cmVuZGVyQm94TG9jYXRpb24oKSk7Ci0KLSAgICAvLyBJ
ZiB0aGlzIGxheWVyJ3MgcmVuZGVyZXIgaXMgYSBjaGlsZCBvZiB0aGUgcGFpbnRpbmdSb290LCB3
ZSByZW5kZXIgdW5jb25kaXRpb25hbGx5LCB3aGljaAotICAgIC8vIGlzIGRvbmUgYnkgcGFzc2lu
ZyBhIG5pbCBwYWludGluZ1Jvb3QgZG93biB0byBvdXIgcmVuZGVyZXIgKGFzIGlmIG5vIHBhaW50
aW5nUm9vdCB3YXMgZXZlciBzZXQpLgotICAgIC8vIEVsc2UsIG91ciByZW5kZXJlciB0cmVlIG1h
eSBvciBtYXkgbm90IGNvbnRhaW4gdGhlIHBhaW50aW5nIHJvb3QsIHNvIHdlIHBhc3MgdGhhdCBy
b290IGFsb25nCi0gICAgLy8gc28gaXQgd2lsbCBiZSB0ZXN0ZWQgYWdhaW5zdCBhcyB3ZSBkZWNl
bmQgdGhyb3VnaCB0aGUgcmVuZGVyZXJzLgotICAgIFJlbmRlck9iamVjdCAqcGFpbnRpbmdSb290
Rm9yUmVuZGVyZXIgPSAwOwotICAgIGlmIChwYWludGluZ1Jvb3QgJiYgIXJlbmRlcmVyKCktPmlz
RGVzY2VuZGFudE9mKHBhaW50aW5nUm9vdCkpCi0gICAgICAgIHBhaW50aW5nUm9vdEZvclJlbmRl
cmVyID0gcGFpbnRpbmdSb290OwotCi0jaWYgRU5BQkxFKENTU19GSUxURVJTKQotICAgIEZpbHRl
ckVmZmVjdFJlbmRlcmVySGVscGVyIGZpbHRlclBhaW50ZXIobV9vd25pbmdMYXllci0+cGFpbnRz
V2l0aEZpbHRlcnMoKSk7Ci0gICAgaWYgKGZpbHRlclBhaW50ZXIuaGF2ZUZpbHRlckVmZmVjdCgp
KQotICAgICAgICBjb250ZXh0ID0gZmlsdGVyUGFpbnRlci5iZWdpbkZpbHRlckVmZmVjdChtX293
bmluZ0xheWVyLCBjb250ZXh0LCBsYXllckJvdW5kcyk7Ci0jZW5kaWYKLQotICAgIGlmIChwYWlu
dGluZ1BoYXNlICYgR3JhcGhpY3NMYXllclBhaW50QmFja2dyb3VuZCkgewotICAgICAgICAvLyBQ
YWludCBvdXIgYmFja2dyb3VuZCBmaXJzdCwgYmVmb3JlIHBhaW50aW5nIGFueSBjaGlsZCBsYXll
cnMuCi0gICAgICAgIC8vIEVzdGFibGlzaCB0aGUgY2xpcCB1c2VkIHRvIHBhaW50IG91ciBiYWNr
Z3JvdW5kLgotICAgICAgICBtX293bmluZ0xheWVyLT5jbGlwVG9SZWN0KHJvb3RMYXllciwgY29u
dGV4dCwgcGFpbnREaXJ0eVJlY3QsIGRhbWFnZVJlY3QsIERvTm90SW5jbHVkZVNlbGZGb3JCb3Jk
ZXJSYWRpdXMpOworICAgIFJlbmRlckxheWVyOjpQYWludExheWVyRmxhZ3MgcGFpbnRGbGFncyA9
IDA7CisgICAgaWYgKHBhaW50aW5nUGhhc2UgJiBHcmFwaGljc0xheWVyUGFpbnRCYWNrZ3JvdW5k
KQorICAgICAgICBwYWludEZsYWdzIHw9IFJlbmRlckxheWVyOjpQYWludExheWVyUGFpbnRpbmdC
YWNrZ3JvdW5kUGhhc2U7CisgICAgaWYgKHBhaW50aW5nUGhhc2UgJiBHcmFwaGljc0xheWVyUGFp
bnRGb3JlZ3JvdW5kKQorICAgICAgICBwYWludEZsYWdzIHw9IFJlbmRlckxheWVyOjpQYWludExh
eWVyUGFpbnRpbmdGb3JlZ3JvdW5kUGhhc2U7CisgICAgaWYgKHBhaW50aW5nUGhhc2UgJiBHcmFw
aGljc0xheWVyUGFpbnRNYXNrKQorICAgICAgICBwYWludEZsYWdzIHw9IFJlbmRlckxheWVyOjpQ
YWludExheWVyUGFpbnRpbmdNYXNrUGhhc2U7CiAgICAgICAgIAotICAgICAgICBQYWludEluZm8g
aW5mbyhjb250ZXh0LCBkYW1hZ2VSZWN0LnJlY3QoKSwgUGFpbnRQaGFzZUJsb2NrQmFja2dyb3Vu
ZCwgZmFsc2UsIHBhaW50aW5nUm9vdEZvclJlbmRlcmVyLCAwLCAwKTsKLSAgICAgICAgcmVuZGVy
ZXIoKS0+cGFpbnQoaW5mbywgcGFpbnRPZmZzZXQpOwotCi0gICAgICAgIC8vIFJlc3RvcmUgdGhl
IGNsaXAuCi0gICAgICAgIG1fb3duaW5nTGF5ZXItPnJlc3RvcmVDbGlwKGNvbnRleHQsIHBhaW50
RGlydHlSZWN0LCBkYW1hZ2VSZWN0KTsKLQotICAgICAgICAvLyBOb3cgd2FsayB0aGUgc29ydGVk
IGxpc3Qgb2YgY2hpbGRyZW4gd2l0aCBuZWdhdGl2ZSB6LWluZGljZXMuIE9ubHkgUmVuZGVyTGF5
ZXJzIHdpdGhvdXQgY29tcG9zaXRpbmcgbGF5ZXJzIHdpbGwgcGFpbnQuCi0gICAgICAgIG1fb3du
aW5nTGF5ZXItPnBhaW50TGlzdChtX293bmluZ0xheWVyLT5uZWdaT3JkZXJMaXN0KCksIHJvb3RM
YXllciwgY29udGV4dCwgcGFpbnREaXJ0eVJlY3QsIHBhaW50QmVoYXZpb3IsIHBhaW50aW5nUm9v
dCwgMCwgMCwgMCk7Ci0gICAgfQotICAgICAgICAgICAgICAgIAotICAgIGJvb2wgZm9yY2VCbGFj
a1RleHQgPSBwYWludEJlaGF2aW9yICYgUGFpbnRCZWhhdmlvckZvcmNlQmxhY2tUZXh0OwotICAg
IGJvb2wgc2VsZWN0aW9uT25seSAgPSBwYWludEJlaGF2aW9yICYgUGFpbnRCZWhhdmlvclNlbGVj
dGlvbk9ubHk7Ci0KLSAgICBpZiAocGFpbnRpbmdQaGFzZSAmIEdyYXBoaWNzTGF5ZXJQYWludEZv
cmVncm91bmQpIHsKLSAgICAgICAgLy8gU2V0IHVwIHRoZSBjbGlwIHVzZWQgd2hlbiBwYWludGlu
ZyBvdXIgY2hpbGRyZW4uCi0gICAgICAgIG1fb3duaW5nTGF5ZXItPmNsaXBUb1JlY3Qocm9vdExh
eWVyLCBjb250ZXh0LCBwYWludERpcnR5UmVjdCwgY2xpcFJlY3RUb0FwcGx5KTsKLSAgICAgICAg
UGFpbnRJbmZvIHBhaW50SW5mbyhjb250ZXh0LCBjbGlwUmVjdFRvQXBwbHkucmVjdCgpLCAKLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxlY3Rpb25Pbmx5ID8gUGFpbnRQaGFzZVNlbGVj
dGlvbiA6IFBhaW50UGhhc2VDaGlsZEJsb2NrQmFja2dyb3VuZHMsCi0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgZm9yY2VCbGFja1RleHQsIHBhaW50aW5nUm9vdEZvclJlbmRlcmVyLCAwLCAw
KTsKLSAgICAgICAgcmVuZGVyZXIoKS0+cGFpbnQocGFpbnRJbmZvLCBwYWludE9mZnNldCk7Ci0K
LSAgICAgICAgaWYgKCFzZWxlY3Rpb25Pbmx5KSB7Ci0gICAgICAgICAgICBwYWludEluZm8ucGhh
c2UgPSBQYWludFBoYXNlRmxvYXQ7Ci0gICAgICAgICAgICByZW5kZXJlcigpLT5wYWludChwYWlu
dEluZm8sIHBhaW50T2Zmc2V0KTsKLQotICAgICAgICAgICAgcGFpbnRJbmZvLnBoYXNlID0gUGFp
bnRQaGFzZUZvcmVncm91bmQ7Ci0gICAgICAgICAgICByZW5kZXJlcigpLT5wYWludChwYWludElu
Zm8sIHBhaW50T2Zmc2V0KTsKLQotICAgICAgICAgICAgcGFpbnRJbmZvLnBoYXNlID0gUGFpbnRQ
aGFzZUNoaWxkT3V0bGluZXM7Ci0gICAgICAgICAgICByZW5kZXJlcigpLT5wYWludChwYWludElu
Zm8sIHBhaW50T2Zmc2V0KTsKLSAgICAgICAgfQotCi0gICAgICAgIC8vIE5vdyByZXN0b3JlIG91
ciBjbGlwLgotICAgICAgICBtX293bmluZ0xheWVyLT5yZXN0b3JlQ2xpcChjb250ZXh0LCBwYWlu
dERpcnR5UmVjdCwgY2xpcFJlY3RUb0FwcGx5KTsKLQotICAgICAgICBpZiAoIW91dGxpbmVSZWN0
LmlzRW1wdHkoKSkgewotICAgICAgICAgICAgLy8gUGFpbnQgb3VyIG93biBvdXRsaW5lCi0gICAg
ICAgICAgICBQYWludEluZm8gcGFpbnRJbmZvKGNvbnRleHQsIG91dGxpbmVSZWN0LnJlY3QoKSwg
UGFpbnRQaGFzZVNlbGZPdXRsaW5lLCBmYWxzZSwgcGFpbnRpbmdSb290Rm9yUmVuZGVyZXIsIDAs
IDApOwotICAgICAgICAgICAgbV9vd25pbmdMYXllci0+Y2xpcFRvUmVjdChyb290TGF5ZXIsIGNv
bnRleHQsIHBhaW50RGlydHlSZWN0LCBvdXRsaW5lUmVjdCwgRG9Ob3RJbmNsdWRlU2VsZkZvckJv
cmRlclJhZGl1cyk7Ci0gICAgICAgICAgICByZW5kZXJlcigpLT5wYWludChwYWludEluZm8sIHBh
aW50T2Zmc2V0KTsKLSAgICAgICAgICAgIG1fb3duaW5nTGF5ZXItPnJlc3RvcmVDbGlwKGNvbnRl
eHQsIHBhaW50RGlydHlSZWN0LCBvdXRsaW5lUmVjdCk7Ci0gICAgICAgIH0KLQotICAgICAgICAv
LyBQYWludCBhbnkgY2hpbGQgbGF5ZXJzIHRoYXQgaGF2ZSBvdmVyZmxvdy4KLSAgICAgICAgbV9v
d25pbmdMYXllci0+cGFpbnRMaXN0KG1fb3duaW5nTGF5ZXItPm5vcm1hbEZsb3dMaXN0KCksIHJv
b3RMYXllciwgY29udGV4dCwgcGFpbnREaXJ0eVJlY3QsIHBhaW50QmVoYXZpb3IsIHBhaW50aW5n
Um9vdCwgMCwgMCwgMCk7Ci0KLSAgICAgICAgLy8gTm93IHdhbGsgdGhlIHNvcnRlZCBsaXN0IG9m
IGNoaWxkcmVuIHdpdGggcG9zaXRpdmUgei1pbmRpY2VzLgotICAgICAgICBtX293bmluZ0xheWVy
LT5wYWludExpc3QobV9vd25pbmdMYXllci0+cG9zWk9yZGVyTGlzdCgpLCByb290TGF5ZXIsIGNv
bnRleHQsIHBhaW50RGlydHlSZWN0LCBwYWludEJlaGF2aW9yLCBwYWludGluZ1Jvb3QsIDAsIDAs
IDApOwotICAgIH0KLQotICAgIGlmIChwYWludGluZ1BoYXNlICYgR3JhcGhpY3NMYXllclBhaW50
TWFzaykgewotICAgICAgICBpZiAocmVuZGVyZXIoKS0+aGFzTWFzaygpICYmICFzZWxlY3Rpb25P
bmx5ICYmICFkYW1hZ2VSZWN0LmlzRW1wdHkoKSkgewotICAgICAgICAgICAgbV9vd25pbmdMYXll
ci0+Y2xpcFRvUmVjdChyb290TGF5ZXIsIGNvbnRleHQsIHBhaW50RGlydHlSZWN0LCBkYW1hZ2VS
ZWN0LCBEb05vdEluY2x1ZGVTZWxmRm9yQm9yZGVyUmFkaXVzKTsKLQotICAgICAgICAgICAgLy8g
UGFpbnQgdGhlIG1hc2suCi0gICAgICAgICAgICBQYWludEluZm8gcGFpbnRJbmZvKGNvbnRleHQs
IGRhbWFnZVJlY3QucmVjdCgpLCBQYWludFBoYXNlTWFzaywgZmFsc2UsIHBhaW50aW5nUm9vdEZv
clJlbmRlcmVyLCAwLCAwKTsKLSAgICAgICAgICAgIHJlbmRlcmVyKCktPnBhaW50KHBhaW50SW5m
bywgcGFpbnRPZmZzZXQpOwotICAgICAgICAgICAgCi0gICAgICAgICAgICAvLyBSZXN0b3JlIHRo
ZSBjbGlwLgotICAgICAgICAgICAgbV9vd25pbmdMYXllci0+cmVzdG9yZUNsaXAoY29udGV4dCwg
cGFpbnREaXJ0eVJlY3QsIGRhbWFnZVJlY3QpOwotICAgICAgICB9Ci0gICAgfQotICAgIAotI2lm
IEVOQUJMRShDU1NfRklMVEVSUykKLSAgICBpZiAoZmlsdGVyUGFpbnRlci5oYXNTdGFydGVkRmls
dGVyRWZmZWN0KCkpCi0gICAgICAgIGNvbnRleHQgPSBmaWx0ZXJQYWludGVyLmFwcGx5RmlsdGVy
RWZmZWN0KCk7Ci0jZW5kaWYKKyAgICAvLyBGSVhNRTogR3JhcGhpY3NMYXllcnMgbmVlZCBhIHdh
eSB0byBzcGxpdCBmb3IgUmVuZGVyUmVnaW9ucy4KKyAgICBtX293bmluZ0xheWVyLT5wYWludExh
eWVyQ29udGVudHMocm9vdExheWVyLCBjb250ZXh0LCBwYWludERpcnR5UmVjdCwgcGFpbnRCZWhh
dmlvciwgcGFpbnRpbmdSb290LCAwLCAwLCBwYWludEZsYWdzKTsKIAogICAgIEFTU0VSVCghbV9v
d25pbmdMYXllci0+bV91c2VkVHJhbnNwYXJlbmN5KTsKIH0K
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>122390</attachid>
            <date>2012-01-13 00:38:22 -0800</date>
            <delta_ts>2012-01-13 01:05:38 -0800</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-75983-20120113103730.patch</filename>
            <type>text/plain</type>
            <size>23815</size>
            <attacher name="Alexandru Chiculita">achicu</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTA0OTAwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNzhjYmRkMDA4YzllNjYx
YzJjZWJiNjUxOTIxZjEyNWRmMzA2NGEyYi4uZGNiMjE2ODZmNjI5NWRhMzVlZmJmYmM4MjY3MjFj
YzA3MDUxNjdkNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI4IEBACisyMDEyLTAxLTEyICBBbGV4
YW5kcnUgQ2hpY3VsaXRhICA8YWNoaWN1QGFkb2JlLmNvbT4KKworICAgICAgICBSZWZhY3RvciBS
ZW5kZXJMYXllckJhY2tpbmc6OnBhaW50SW50b0xheWVyIGFuZCBSZW5kZXJMYXllcjo6cGFpbnRM
YXllcigpL3BhaW50TGF5ZXJDb250ZW50cygpIHRvIGF2b2lkIGR1cGxpY2F0ZSBjb2RlCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03NTk4MworCisgICAg
ICAgIFJldmlld2VkIGJ5IFNpbW9uIEZyYXNlci4KKworICAgICAgICBObyBuZXcgdGVzdHMsIGp1
c3QgbWVyZ2luZyB0d28gZHVwbGljYXRlIG1ldGhvZHMuCisKKyAgICAgICAgKiByZW5kZXJpbmcv
UmVuZGVyTGF5ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXI6OnBhaW50TGF5
ZXIpOgorICAgICAgICAgICAgVGhpcyBtZXRob2QgaXMgdXNlZCBvbmx5IGluIG5vbi1jb21wb3Np
dGVkIG1vZGUsIHNvIEkndmUgbW92ZWQgdGhlIGNoZWNrIGZvciBjb21wb3NpdGVkIG1vZGUgbXVj
aCBlYXJsaWVyLgorCisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXllcjo6cGFpbnRMYXllckNv
bnRlbnRzQW5kUmVmbGVjdGlvbik6CisgICAgICAgICAgICBBbHNvIHVzZWQganVzdCBpbiBub24t
Y29tcG9zaXRlZCBtb2RlLCBpdCB3aWxsIGRyYXcgdGhlIHJlZmxlY3Rpb24gYW5kIHRoZW4ganVz
dCBjYWxsIHBhaW50TGF5ZXJDb250ZW50cy4KKworICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5
ZXI6OnBhaW50TGF5ZXJDb250ZW50cyk6CisgICAgICAgICAgICBPbGQgbWV0aG9kLCB0aGF0IGlz
IG5vdyB1c2VkIGJ5IGJvdGggY29tcG9zaXRlZCBhbmQgbm9uLWNvbXBvc2l0ZWQgbW9kZS4gSSd2
ZSBhZGRlZCAzIG1vcmUgZmxhZ3MgdXNlZCB0byByZW5kZXIgdGhlCisgICAgICAgICAgICBHcmFw
aGljcyBsYXllcnM6IEJhY2tncm91bmQsIEZvcmVncm91bmQgYW5kIE1hc2suCisKKyAgICAgICAg
KiByZW5kZXJpbmcvUmVuZGVyTGF5ZXIuaDoKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyTGF5
ZXJCYWNraW5nLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVyQmFja2luZzo6cGFp
bnRJbnRvTGF5ZXIpOgorICAgICAgICAgICAgUmVtb3ZlZCBhbGwgdGhlIGNvZGUgYW5kIGRlbGVn
YXRlZCB0aGUgd29yayB0byBSZW5kZXJMYXllcjo6cGFpbnRMYXllckNvbnRlbnRzLgorCiAyMDEy
LTAxLTEyICBHYXZpbiBCYXJyYWNsb3VnaCAgPGJhcnJhY2xvdWdoQGFwcGxlLmNvbT4KIAogICAg
ICAgICBDbGVhbiB1cCBwdXREaXJlY3QgKHBhcnQgMikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyTGF5ZXIuY3BwCmluZGV4IDgzYTBmZTlhNDI0OWQ4NjcwMTc3OWJjMDgxZDRjOGM1OTEx
NmRjMGEuLjI2Y2IwODBkMzJjZjBlMjcyZGEzZGY5YTBiN2NiZmQ1NTdjZDJjZGMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyLmNwcApAQCAtMjY5OCw2ICsyNjk4LDE5IEBA
IHZvaWQgUmVuZGVyTGF5ZXI6OnBhaW50TGF5ZXIoUmVuZGVyTGF5ZXIqIHJvb3RMYXllciwgR3Jh
cGhpY3NDb250ZXh0KiBwLAogICAgICAgICAgICAgICAgICAgICAgICAgUmVuZGVyT2JqZWN0KiBw
YWludGluZ1Jvb3QsIFJlbmRlclJlZ2lvbiogcmVnaW9uLCBPdmVybGFwVGVzdFJlcXVlc3RNYXAq
IG92ZXJsYXBUZXN0UmVxdWVzdHMsCiAgICAgICAgICAgICAgICAgICAgICAgICBQYWludExheWVy
RmxhZ3MgcGFpbnRGbGFncykKIHsKKyNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCisg
ICAgaWYgKGlzQ29tcG9zaXRlZCgpKSB7CisgICAgICAgIC8vIFRoZSB1cGRhdGluZ0NvbnRyb2xU
aW50cygpIHBhaW50aW5nIHBhc3MgZ29lcyB0aHJvdWdoIGNvbXBvc2l0aW5nIGxheWVycywKKyAg
ICAgICAgLy8gYnV0IHdlIG5lZWQgdG8gZW5zdXJlIHRoYXQgd2UgZG9uJ3QgY2FjaGUgY2xpcCBy
ZWN0cyBjb21wdXRlZCB3aXRoIHRoZSB3cm9uZyByb290IGluIHRoaXMgY2FzZS4KKyAgICAgICAg
aWYgKHAtPnVwZGF0aW5nQ29udHJvbFRpbnRzKCkgfHwgKHBhaW50QmVoYXZpb3IgJiBQYWludEJl
aGF2aW9yRmxhdHRlbkNvbXBvc2l0aW5nTGF5ZXJzKSkKKyAgICAgICAgICAgIHBhaW50RmxhZ3Mg
fD0gUGFpbnRMYXllclRlbXBvcmFyeUNsaXBSZWN0czsKKyAgICAgICAgZWxzZSBpZiAoIWJhY2tp
bmcoKS0+cGFpbnRpbmdHb2VzVG9XaW5kb3coKSAmJiAhc2hvdWxkRG9Tb2Z0d2FyZVBhaW50KHRo
aXMsIHBhaW50RmxhZ3MgJiBQYWludExheWVyUGFpbnRpbmdSZWZsZWN0aW9uKSkgeworICAgICAg
ICAgICAgLy8gSWYgdGhpcyBSZW5kZXJMYXllciBzaG91bGQgcGFpbnQgaW50byBpdHMgYmFja2lu
ZywgdGhhdCB3aWxsIGJlIGRvbmUgdmlhIFJlbmRlckxheWVyQmFja2luZzo6cGFpbnRJbnRvTGF5
ZXIoKS4KKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorICAgIH0KKyNlbmRpZgorCiAg
ICAgaWYgKHNob3VsZFN1cHByZXNzUGFpbnRpbmdMYXllcih0aGlzKSkKICAgICAgICAgcmV0dXJu
OwogICAgIApAQCAtMjcwOCw2ICsyNzIxLDcgQEAgdm9pZCBSZW5kZXJMYXllcjo6cGFpbnRMYXll
cihSZW5kZXJMYXllciogcm9vdExheWVyLCBHcmFwaGljc0NvbnRleHQqIHAsCiAgICAgaWYgKHBh
aW50c1dpdGhUcmFuc3BhcmVuY3kocGFpbnRCZWhhdmlvcikpCiAgICAgICAgIHBhaW50RmxhZ3Mg
fD0gUGFpbnRMYXllckhhdmVUcmFuc3BhcmVuY3k7CiAKKyAgICAvLyBQYWludExheWVyQXBwbGll
ZFRyYW5zZm9ybSBpcyB1c2VkIGluIFJlbmRlclJlcGxpY2EsIHRvIGF2b2lkIGFwcGx5aW5nIHRo
ZSB0cmFuc2Zvcm0gdHdpY2UuCiAgICAgaWYgKHBhaW50c1dpdGhUcmFuc2Zvcm0ocGFpbnRCZWhh
dmlvcikgJiYgIShwYWludEZsYWdzICYgUGFpbnRMYXllckFwcGxpZWRUcmFuc2Zvcm0pKSB7CiAg
ICAgICAgIFRyYW5zZm9ybWF0aW9uTWF0cml4IGxheWVyVHJhbnNmb3JtID0gcmVuZGVyYWJsZVRy
YW5zZm9ybShwYWludEJlaGF2aW9yKTsKICAgICAgICAgLy8gSWYgdGhlIHRyYW5zZm9ybSBjYW4n
dCBiZSBpbnZlcnRlZCwgdGhlbiBkb24ndCBwYWludCBhbnl0aGluZy4KQEAgLTI3NDYsNyArMjc2
MCw3IEBAIHZvaWQgUmVuZGVyTGF5ZXI6OnBhaW50TGF5ZXIoUmVuZGVyTGF5ZXIqIHJvb3RMYXll
ciwgR3JhcGhpY3NDb250ZXh0KiBwLAogICAgICAgICAgICAgcC0+Y29uY2F0Q1RNKHRyYW5zZm9y
bS50b0FmZmluZVRyYW5zZm9ybSgpKTsKIAogICAgICAgICAgICAgLy8gTm93IGRvIGEgcGFpbnQg
d2l0aCB0aGUgcm9vdCBsYXllciBzaGlmdGVkIHRvIGJlIHVzLgotICAgICAgICAgICAgcGFpbnRM
YXllcih0aGlzLCBwLCB0cmFuc2Zvcm0uaW52ZXJzZSgpLm1hcFJlY3QocGFpbnREaXJ0eVJlY3Qp
LCBwYWludEJlaGF2aW9yLCBwYWludGluZ1Jvb3QsIHJlZ2lvbiwgb3ZlcmxhcFRlc3RSZXF1ZXN0
cywgcGFpbnRGbGFncyB8IFBhaW50TGF5ZXJBcHBsaWVkVHJhbnNmb3JtKTsKKyAgICAgICAgICAg
IHBhaW50TGF5ZXJDb250ZW50c0FuZFJlZmxlY3Rpb24odGhpcywgcCwgdHJhbnNmb3JtLmludmVy
c2UoKS5tYXBSZWN0KHBhaW50RGlydHlSZWN0KSwgcGFpbnRCZWhhdmlvciwgcGFpbnRpbmdSb290
LCByZWdpb24sIG92ZXJsYXBUZXN0UmVxdWVzdHMsIHBhaW50RmxhZ3MpOwogICAgICAgICB9ICAg
ICAgICAKIAogICAgICAgICAvLyBSZXN0b3JlIHRoZSBjbGlwLgpAQCAtMjc1NiwzNiArMjc3MCwx
NSBAQCB2b2lkIFJlbmRlckxheWVyOjpwYWludExheWVyKFJlbmRlckxheWVyKiByb290TGF5ZXIs
IEdyYXBoaWNzQ29udGV4dCogcCwKICAgICAgICAgcmV0dXJuOwogICAgIH0KICAgICAKLSAgICBw
YWludExheWVyQ29udGVudHMocm9vdExheWVyLCBwLCBwYWludERpcnR5UmVjdCwgcGFpbnRCZWhh
dmlvciwgcGFpbnRpbmdSb290LCByZWdpb24sIG92ZXJsYXBUZXN0UmVxdWVzdHMsIHBhaW50Rmxh
Z3MpOworICAgIHBhaW50TGF5ZXJDb250ZW50c0FuZFJlZmxlY3Rpb24ocm9vdExheWVyLCBwLCBw
YWludERpcnR5UmVjdCwgcGFpbnRCZWhhdmlvciwgcGFpbnRpbmdSb290LCByZWdpb24sIG92ZXJs
YXBUZXN0UmVxdWVzdHMsIHBhaW50RmxhZ3MpOwogfQogCi12b2lkIFJlbmRlckxheWVyOjpwYWlu
dExheWVyQ29udGVudHMoUmVuZGVyTGF5ZXIqIHJvb3RMYXllciwgR3JhcGhpY3NDb250ZXh0KiBw
LAordm9pZCBSZW5kZXJMYXllcjo6cGFpbnRMYXllckNvbnRlbnRzQW5kUmVmbGVjdGlvbihSZW5k
ZXJMYXllciogcm9vdExheWVyLCBHcmFwaGljc0NvbnRleHQqIHAsCiAgICAgICAgICAgICAgICAg
ICAgICAgICBjb25zdCBMYXlvdXRSZWN0JiBwYWludERpcnR5UmVjdCwgUGFpbnRCZWhhdmlvciBw
YWludEJlaGF2aW9yLAogICAgICAgICAgICAgICAgICAgICAgICAgUmVuZGVyT2JqZWN0KiBwYWlu
dGluZ1Jvb3QsIFJlbmRlclJlZ2lvbiogcmVnaW9uLCBPdmVybGFwVGVzdFJlcXVlc3RNYXAqIG92
ZXJsYXBUZXN0UmVxdWVzdHMsCiAgICAgICAgICAgICAgICAgICAgICAgICBQYWludExheWVyRmxh
Z3MgcGFpbnRGbGFncykKIHsKLSNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCi0gICAg
aWYgKGlzQ29tcG9zaXRlZCgpKSB7Ci0gICAgICAgIC8vIFRoZSB1cGRhdGluZ0NvbnRyb2xUaW50
cygpIHBhaW50aW5nIHBhc3MgZ29lcyB0aHJvdWdoIGNvbXBvc2l0aW5nIGxheWVycywKLSAgICAg
ICAgLy8gYnV0IHdlIG5lZWQgdG8gZW5zdXJlIHRoYXQgd2UgZG9uJ3QgY2FjaGUgY2xpcCByZWN0
cyBjb21wdXRlZCB3aXRoIHRoZSB3cm9uZyByb290IGluIHRoaXMgY2FzZS4KLSAgICAgICAgaWYg
KHAtPnVwZGF0aW5nQ29udHJvbFRpbnRzKCkgfHwgKHBhaW50QmVoYXZpb3IgJiBQYWludEJlaGF2
aW9yRmxhdHRlbkNvbXBvc2l0aW5nTGF5ZXJzKSkKLSAgICAgICAgICAgIHBhaW50RmxhZ3MgfD0g
UGFpbnRMYXllclRlbXBvcmFyeUNsaXBSZWN0czsKLSAgICAgICAgZWxzZSBpZiAoIWJhY2tpbmco
KS0+cGFpbnRpbmdHb2VzVG9XaW5kb3coKSAmJiAhc2hvdWxkRG9Tb2Z0d2FyZVBhaW50KHRoaXMs
IHBhaW50RmxhZ3MgJiBQYWludExheWVyUGFpbnRpbmdSZWZsZWN0aW9uKSkgewotICAgICAgICAg
ICAgLy8gSWYgdGhpcyBSZW5kZXJMYXllciBzaG91bGQgcGFpbnQgaW50byBpdHMgYmFja2luZywg
dGhhdCB3aWxsIGJlIGRvbmUgdmlhIFJlbmRlckxheWVyQmFja2luZzo6cGFpbnRJbnRvTGF5ZXIo
KS4KLSAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgfQotICAgIH0KLSNlbmRpZgotCi0gICAg
aWYgKHNob3VsZFN1cHByZXNzUGFpbnRpbmdMYXllcih0aGlzKSkKLSAgICAgICAgcmV0dXJuOwot
ICAgIAotICAgIC8vIElmIHRoaXMgbGF5ZXIgaXMgdG90YWxseSBpbnZpc2libGUgdGhlbiB0aGVy
ZSBpcyBub3RoaW5nIHRvIHBhaW50LgotICAgIGlmICghcmVuZGVyZXIoKS0+b3BhY2l0eSgpKQot
ICAgICAgICByZXR1cm47Ci0KICAgICBQYWludExheWVyRmxhZ3MgbG9jYWxQYWludEZsYWdzID0g
cGFpbnRGbGFncyAmIH4oUGFpbnRMYXllckFwcGxpZWRUcmFuc2Zvcm0pOwotICAgIGJvb2wgaGF2
ZVRyYW5zcGFyZW5jeSA9IGxvY2FsUGFpbnRGbGFncyAmIFBhaW50TGF5ZXJIYXZlVHJhbnNwYXJl
bmN5OwogCiAgICAgLy8gUGFpbnQgdGhlIHJlZmxlY3Rpb24gZmlyc3QgaWYgd2UgaGF2ZSBvbmUu
CiAgICAgaWYgKG1fcmVmbGVjdGlvbiAmJiAhbV9wYWludGluZ0luc2lkZVJlZmxlY3Rpb24pIHsK
QEAgLTI3OTUsNiArMjc4OCwxNyBAQCB2b2lkIFJlbmRlckxheWVyOjpwYWludExheWVyQ29udGVu
dHMoUmVuZGVyTGF5ZXIqIHJvb3RMYXllciwgR3JhcGhpY3NDb250ZXh0KiBwLAogICAgICAgICBt
X3BhaW50aW5nSW5zaWRlUmVmbGVjdGlvbiA9IGZhbHNlOwogICAgIH0KIAorICAgIGxvY2FsUGFp
bnRGbGFncyB8PSBQYWludExheWVyUGFpbnRpbmdDb21wb3NpdGluZ0FsbFBoYXNlczsKKyAgICBw
YWludExheWVyQ29udGVudHMocm9vdExheWVyLCBwLCBwYWludERpcnR5UmVjdCwgcGFpbnRCZWhh
dmlvciwgcGFpbnRpbmdSb290LCByZWdpb24sIG92ZXJsYXBUZXN0UmVxdWVzdHMsIGxvY2FsUGFp
bnRGbGFncyk7Cit9CisKK3ZvaWQgUmVuZGVyTGF5ZXI6OnBhaW50TGF5ZXJDb250ZW50cyhSZW5k
ZXJMYXllciogcm9vdExheWVyLCBHcmFwaGljc0NvbnRleHQqIHAsIAorICAgICAgICAgICAgICAg
ICAgICAgICAgY29uc3QgTGF5b3V0UmVjdCYgcGFpbnREaXJ0eVJlY3QsIFBhaW50QmVoYXZpb3Ig
cGFpbnRCZWhhdmlvciwKKyAgICAgICAgICAgICAgICAgICAgICAgIFJlbmRlck9iamVjdCogcGFp
bnRpbmdSb290LCBSZW5kZXJSZWdpb24qIHJlZ2lvbiwgT3ZlcmxhcFRlc3RSZXF1ZXN0TWFwKiBv
dmVybGFwVGVzdFJlcXVlc3RzLAorICAgICAgICAgICAgICAgICAgICAgICAgUGFpbnRMYXllckZs
YWdzIHBhaW50RmxhZ3MpCit7CisgICAgUGFpbnRMYXllckZsYWdzIGxvY2FsUGFpbnRGbGFncyA9
IHBhaW50RmxhZ3MgJiB+KFBhaW50TGF5ZXJBcHBsaWVkVHJhbnNmb3JtKTsKKyAgICBib29sIGhh
dmVUcmFuc3BhcmVuY3kgPSBsb2NhbFBhaW50RmxhZ3MgJiBQYWludExheWVySGF2ZVRyYW5zcGFy
ZW5jeTsKICAgICBib29sIGlzU2VsZlBhaW50aW5nTGF5ZXIgPSB0aGlzLT5pc1NlbGZQYWludGlu
Z0xheWVyKCk7CiAgICAgYm9vbCBpc1BhaW50aW5nT3ZlcmxheVNjcm9sbGJhcnMgPSBwYWludEZs
YWdzICYgUGFpbnRMYXllclBhaW50aW5nT3ZlcmxheVNjcm9sbGJhcnM7CiAgICAgLy8gT3V0bGlu
ZSBhbHdheXMgbmVlZHMgdG8gYmUgcGFpbnRlZCBldmVuIGlmIHdlIGhhdmUgbm8gdmlzaWJsZSBj
b250ZW50LgpAQCAtMjgzMyw3MiArMjgzNyw4MiBAQCB2b2lkIFJlbmRlckxheWVyOjpwYWludExh
eWVyQ29udGVudHMoUmVuZGVyTGF5ZXIqIHJvb3RMYXllciwgR3JhcGhpY3NDb250ZXh0KiBwLAog
CiAgICAgLy8gV2Ugd2FudCB0byBwYWludCBvdXIgbGF5ZXIsIGJ1dCBvbmx5IGlmIHdlIGludGVy
c2VjdCB0aGUgZGFtYWdlIHJlY3QuCiAgICAgc2hvdWxkUGFpbnRDb250ZW50ICY9IGludGVyc2Vj
dHNEYW1hZ2VSZWN0KGxheWVyQm91bmRzLCBkYW1hZ2VSZWN0LnJlY3QoKSwgcm9vdExheWVyKTsK
LSAgICBpZiAoc2hvdWxkUGFpbnRDb250ZW50ICYmICFzZWxlY3Rpb25Pbmx5KSB7Ci0gICAgICAg
IC8vIEJlZ2luIHRyYW5zcGFyZW5jeSBsYXllcnMgbGF6aWx5IG5vdyB0aGF0IHdlIGtub3cgd2Ug
aGF2ZSB0byBwYWludCBzb21ldGhpbmcuCi0gICAgICAgIGlmIChoYXZlVHJhbnNwYXJlbmN5KQot
ICAgICAgICAgICAgYmVnaW5UcmFuc3BhcmVuY3lMYXllcnMocCwgcm9vdExheWVyLCBwYWludEJl
aGF2aW9yKTsKKyAgICAKKyAgICBpZiAobG9jYWxQYWludEZsYWdzICYgUGFpbnRMYXllclBhaW50
aW5nQ29tcG9zaXRpbmdCYWNrZ3JvdW5kUGhhc2UpIHsKKyAgICAgICAgaWYgKHNob3VsZFBhaW50
Q29udGVudCAmJiAhc2VsZWN0aW9uT25seSkgeworICAgICAgICAgICAgLy8gQmVnaW4gdHJhbnNw
YXJlbmN5IGxheWVycyBsYXppbHkgbm93IHRoYXQgd2Uga25vdyB3ZSBoYXZlIHRvIHBhaW50IHNv
bWV0aGluZy4KKyAgICAgICAgICAgIGlmIChoYXZlVHJhbnNwYXJlbmN5KQorICAgICAgICAgICAg
ICAgIGJlZ2luVHJhbnNwYXJlbmN5TGF5ZXJzKHAsIHJvb3RMYXllciwgcGFpbnRCZWhhdmlvcik7
CiAgICAgICAgIAogI2lmIEVOQUJMRShDU1NfRklMVEVSUykKLSAgICAgICAgaWYgKGZpbHRlclBh
aW50ZXIuaGF2ZUZpbHRlckVmZmVjdCgpKQotICAgICAgICAgICAgcCA9IGZpbHRlclBhaW50ZXIu
YmVnaW5GaWx0ZXJFZmZlY3QodGhpcywgcCwgdHJhbnNwYXJlbmN5Q2xpcEJveCh0aGlzLCByb290
TGF5ZXIsIHBhaW50QmVoYXZpb3IpKTsKKyAgICAgICAgICAgIGlmIChmaWx0ZXJQYWludGVyLmhh
dmVGaWx0ZXJFZmZlY3QoKSkKKyAgICAgICAgICAgICAgICBwID0gZmlsdGVyUGFpbnRlci5iZWdp
bkZpbHRlckVmZmVjdCh0aGlzLCBwLCB0cmFuc3BhcmVuY3lDbGlwQm94KHRoaXMsIHJvb3RMYXll
ciwgcGFpbnRCZWhhdmlvcikpOwogI2VuZGlmCiAgICAgICAgIAotICAgICAgICAvLyBQYWludCBv
dXIgYmFja2dyb3VuZCBmaXJzdCwgYmVmb3JlIHBhaW50aW5nIGFueSBjaGlsZCBsYXllcnMuCi0g
ICAgICAgIC8vIEVzdGFibGlzaCB0aGUgY2xpcCB1c2VkIHRvIHBhaW50IG91ciBiYWNrZ3JvdW5k
LgotICAgICAgICBjbGlwVG9SZWN0KHJvb3RMYXllciwgcCwgcGFpbnREaXJ0eVJlY3QsIGRhbWFn
ZVJlY3QsIERvTm90SW5jbHVkZVNlbGZGb3JCb3JkZXJSYWRpdXMpOyAvLyBCYWNrZ3JvdW5kIHBh
aW50aW5nIHdpbGwgaGFuZGxlIGNsaXBwaW5nIHRvIHNlbGYuCisgICAgICAgICAgICAvLyBQYWlu
dCBvdXIgYmFja2dyb3VuZCBmaXJzdCwgYmVmb3JlIHBhaW50aW5nIGFueSBjaGlsZCBsYXllcnMu
CisgICAgICAgICAgICAvLyBFc3RhYmxpc2ggdGhlIGNsaXAgdXNlZCB0byBwYWludCBvdXIgYmFj
a2dyb3VuZC4KKyAgICAgICAgICAgIGNsaXBUb1JlY3Qocm9vdExheWVyLCBwLCBwYWludERpcnR5
UmVjdCwgZGFtYWdlUmVjdCwgRG9Ob3RJbmNsdWRlU2VsZkZvckJvcmRlclJhZGl1cyk7IC8vIEJh
Y2tncm91bmQgcGFpbnRpbmcgd2lsbCBoYW5kbGUgY2xpcHBpbmcgdG8gc2VsZi4KIAotICAgICAg
ICAvLyBQYWludCB0aGUgYmFja2dyb3VuZC4KLSAgICAgICAgUGFpbnRJbmZvIHBhaW50SW5mbyhw
LCBkYW1hZ2VSZWN0LnJlY3QoKSwgUGFpbnRQaGFzZUJsb2NrQmFja2dyb3VuZCwgZmFsc2UsIHBh
aW50aW5nUm9vdEZvclJlbmRlcmVyLCByZWdpb24sIDApOwotICAgICAgICByZW5kZXJlcigpLT5w
YWludChwYWludEluZm8sIHBhaW50T2Zmc2V0KTsKKyAgICAgICAgICAgIC8vIFBhaW50IHRoZSBi
YWNrZ3JvdW5kLgorICAgICAgICAgICAgUGFpbnRJbmZvIHBhaW50SW5mbyhwLCBkYW1hZ2VSZWN0
LnJlY3QoKSwgUGFpbnRQaGFzZUJsb2NrQmFja2dyb3VuZCwgZmFsc2UsIHBhaW50aW5nUm9vdEZv
clJlbmRlcmVyLCByZWdpb24sIDApOworICAgICAgICAgICAgcmVuZGVyZXIoKS0+cGFpbnQocGFp
bnRJbmZvLCBwYWludE9mZnNldCk7CiAKLSAgICAgICAgLy8gUmVzdG9yZSB0aGUgY2xpcC4KLSAg
ICAgICAgcmVzdG9yZUNsaXAocCwgcGFpbnREaXJ0eVJlY3QsIGRhbWFnZVJlY3QpOworICAgICAg
ICAgICAgLy8gUmVzdG9yZSB0aGUgY2xpcC4KKyAgICAgICAgICAgIHJlc3RvcmVDbGlwKHAsIHBh
aW50RGlydHlSZWN0LCBkYW1hZ2VSZWN0KTsKKyAgICAgICAgfQorCisgICAgICAgIC8vIE5vdyB3
YWxrIHRoZSBzb3J0ZWQgbGlzdCBvZiBjaGlsZHJlbiB3aXRoIG5lZ2F0aXZlIHotaW5kaWNlcy4K
KyAgICAgICAgcGFpbnRMaXN0KG1fbmVnWk9yZGVyTGlzdCwgcm9vdExheWVyLCBwLCBwYWludERp
cnR5UmVjdCwgcGFpbnRCZWhhdmlvciwgcGFpbnRpbmdSb290LCByZWdpb24sIG92ZXJsYXBUZXN0
UmVxdWVzdHMsIGxvY2FsUGFpbnRGbGFncyk7CiAgICAgfQorICAgIAorICAgIGlmIChsb2NhbFBh
aW50RmxhZ3MgJiBQYWludExheWVyUGFpbnRpbmdDb21wb3NpdGluZ0ZvcmVncm91bmRQaGFzZSkg
eworICAgICAgICAvLyBOb3cgZXN0YWJsaXNoIHRoZSBhcHByb3ByaWF0ZSBjbGlwIGFuZCBwYWlu
dCBvdXIgY2hpbGQgUmVuZGVyT2JqZWN0cy4KKyAgICAgICAgaWYgKHNob3VsZFBhaW50Q29udGVu
dCAmJiAhY2xpcFJlY3RUb0FwcGx5LmlzRW1wdHkoKSkgeworICAgICAgICAgICAgLy8gQmVnaW4g
dHJhbnNwYXJlbmN5IGxheWVycyBsYXppbHkgbm93IHRoYXQgd2Uga25vdyB3ZSBoYXZlIHRvIHBh
aW50IHNvbWV0aGluZy4KKyAgICAgICAgICAgIGlmIChoYXZlVHJhbnNwYXJlbmN5KQorICAgICAg
ICAgICAgICAgIGJlZ2luVHJhbnNwYXJlbmN5TGF5ZXJzKHAsIHJvb3RMYXllciwgcGFpbnRCZWhh
dmlvcik7CiAKLSAgICAvLyBOb3cgd2FsayB0aGUgc29ydGVkIGxpc3Qgb2YgY2hpbGRyZW4gd2l0
aCBuZWdhdGl2ZSB6LWluZGljZXMuCi0gICAgcGFpbnRMaXN0KG1fbmVnWk9yZGVyTGlzdCwgcm9v
dExheWVyLCBwLCBwYWludERpcnR5UmVjdCwgcGFpbnRCZWhhdmlvciwgcGFpbnRpbmdSb290LCBy
ZWdpb24sIG92ZXJsYXBUZXN0UmVxdWVzdHMsIGxvY2FsUGFpbnRGbGFncyk7CisjaWYgRU5BQkxF
KENTU19GSUxURVJTKQorICAgICAgICAgICAgLy8gSWYgdGhlIGZpbHRlciB3YXMgbm90IHN0YXJ0
ZWQgeWV0LCBzdGFydCBpdCBub3csIGFmdGVyIHRoZSB0cmFuc3BhcmVuY3kgbGF5ZXIgd2FzIGxh
emlseSBjcmVhdGVkLgorICAgICAgICAgICAgaWYgKGZpbHRlclBhaW50ZXIuaGF2ZUZpbHRlckVm
ZmVjdCgpICYmICFmaWx0ZXJQYWludGVyLmhhc1N0YXJ0ZWRGaWx0ZXJFZmZlY3QoKSkKKyAgICAg
ICAgICAgICAgICBwID0gZmlsdGVyUGFpbnRlci5iZWdpbkZpbHRlckVmZmVjdCh0aGlzLCBwLCB0
cmFuc3BhcmVuY3lDbGlwQm94KHRoaXMsIHJvb3RMYXllciwgcGFpbnRCZWhhdmlvcikpOworI2Vu
ZGlmCisgICAgICAgICAgICAvLyBTZXQgdXAgdGhlIGNsaXAgdXNlZCB3aGVuIHBhaW50aW5nIG91
ciBjaGlsZHJlbi4KKyAgICAgICAgICAgIGNsaXBUb1JlY3Qocm9vdExheWVyLCBwLCBwYWludERp
cnR5UmVjdCwgY2xpcFJlY3RUb0FwcGx5KTsKKyAgICAgICAgICAgIFBhaW50SW5mbyBwYWludElu
Zm8ocCwgY2xpcFJlY3RUb0FwcGx5LnJlY3QoKSwgCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHNlbGVjdGlvbk9ubHkgPyBQYWludFBoYXNlU2VsZWN0aW9uIDogUGFpbnRQaGFzZUNo
aWxkQmxvY2tCYWNrZ3JvdW5kcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9y
Y2VCbGFja1RleHQsIHBhaW50aW5nUm9vdEZvclJlbmRlcmVyLCByZWdpb24sIDApOworICAgICAg
ICAgICAgcmVuZGVyZXIoKS0+cGFpbnQocGFpbnRJbmZvLCBwYWludE9mZnNldCk7CisgICAgICAg
ICAgICBpZiAoIXNlbGVjdGlvbk9ubHkpIHsKKyAgICAgICAgICAgICAgICBwYWludEluZm8ucGhh
c2UgPSBQYWludFBoYXNlRmxvYXQ7CisgICAgICAgICAgICAgICAgcmVuZGVyZXIoKS0+cGFpbnQo
cGFpbnRJbmZvLCBwYWludE9mZnNldCk7CisgICAgICAgICAgICAgICAgcGFpbnRJbmZvLnBoYXNl
ID0gUGFpbnRQaGFzZUZvcmVncm91bmQ7CisgICAgICAgICAgICAgICAgcGFpbnRJbmZvLm92ZXJs
YXBUZXN0UmVxdWVzdHMgPSBvdmVybGFwVGVzdFJlcXVlc3RzOworICAgICAgICAgICAgICAgIHJl
bmRlcmVyKCktPnBhaW50KHBhaW50SW5mbywgcGFpbnRPZmZzZXQpOworICAgICAgICAgICAgICAg
IHBhaW50SW5mby5waGFzZSA9IFBhaW50UGhhc2VDaGlsZE91dGxpbmVzOworICAgICAgICAgICAg
ICAgIHJlbmRlcmVyKCktPnBhaW50KHBhaW50SW5mbywgcGFpbnRPZmZzZXQpOworICAgICAgICAg
ICAgfQogCi0gICAgLy8gTm93IGVzdGFibGlzaCB0aGUgYXBwcm9wcmlhdGUgY2xpcCBhbmQgcGFp
bnQgb3VyIGNoaWxkIFJlbmRlck9iamVjdHMuCi0gICAgaWYgKHNob3VsZFBhaW50Q29udGVudCAm
JiAhY2xpcFJlY3RUb0FwcGx5LmlzRW1wdHkoKSkgewotICAgICAgICAvLyBCZWdpbiB0cmFuc3Bh
cmVuY3kgbGF5ZXJzIGxhemlseSBub3cgdGhhdCB3ZSBrbm93IHdlIGhhdmUgdG8gcGFpbnQgc29t
ZXRoaW5nLgotICAgICAgICBpZiAoaGF2ZVRyYW5zcGFyZW5jeSkKLSAgICAgICAgICAgIGJlZ2lu
VHJhbnNwYXJlbmN5TGF5ZXJzKHAsIHJvb3RMYXllciwgcGFpbnRCZWhhdmlvcik7CisgICAgICAg
ICAgICAvLyBOb3cgcmVzdG9yZSBvdXIgY2xpcC4KKyAgICAgICAgICAgIHJlc3RvcmVDbGlwKHAs
IHBhaW50RGlydHlSZWN0LCBjbGlwUmVjdFRvQXBwbHkpOworICAgICAgICB9CiAKLSAgICAgICAg
Ly8gU2V0IHVwIHRoZSBjbGlwIHVzZWQgd2hlbiBwYWludGluZyBvdXIgY2hpbGRyZW4uCi0gICAg
ICAgIGNsaXBUb1JlY3Qocm9vdExheWVyLCBwLCBwYWludERpcnR5UmVjdCwgY2xpcFJlY3RUb0Fw
cGx5KTsKLSAgICAgICAgUGFpbnRJbmZvIHBhaW50SW5mbyhwLCBjbGlwUmVjdFRvQXBwbHkucmVj
dCgpLCAKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxlY3Rpb25Pbmx5ID8gUGFpbnRQ
aGFzZVNlbGVjdGlvbiA6IFBhaW50UGhhc2VDaGlsZEJsb2NrQmFja2dyb3VuZHMsCi0gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgZm9yY2VCbGFja1RleHQsIHBhaW50aW5nUm9vdEZvclJlbmRl
cmVyLCByZWdpb24sIDApOwotICAgICAgICByZW5kZXJlcigpLT5wYWludChwYWludEluZm8sIHBh
aW50T2Zmc2V0KTsKLSAgICAgICAgaWYgKCFzZWxlY3Rpb25Pbmx5KSB7Ci0gICAgICAgICAgICBw
YWludEluZm8ucGhhc2UgPSBQYWludFBoYXNlRmxvYXQ7Ci0gICAgICAgICAgICByZW5kZXJlcigp
LT5wYWludChwYWludEluZm8sIHBhaW50T2Zmc2V0KTsKLSAgICAgICAgICAgIHBhaW50SW5mby5w
aGFzZSA9IFBhaW50UGhhc2VGb3JlZ3JvdW5kOwotICAgICAgICAgICAgcGFpbnRJbmZvLm92ZXJs
YXBUZXN0UmVxdWVzdHMgPSBvdmVybGFwVGVzdFJlcXVlc3RzOwotICAgICAgICAgICAgcmVuZGVy
ZXIoKS0+cGFpbnQocGFpbnRJbmZvLCBwYWludE9mZnNldCk7Ci0gICAgICAgICAgICBwYWludElu
Zm8ucGhhc2UgPSBQYWludFBoYXNlQ2hpbGRPdXRsaW5lczsKKyAgICAgICAgaWYgKHNob3VsZFBh
aW50T3V0bGluZSAmJiAhb3V0bGluZVJlY3QuaXNFbXB0eSgpKSB7CisgICAgICAgICAgICAvLyBQ
YWludCBvdXIgb3duIG91dGxpbmUKKyAgICAgICAgICAgIFBhaW50SW5mbyBwYWludEluZm8ocCwg
b3V0bGluZVJlY3QucmVjdCgpLCBQYWludFBoYXNlU2VsZk91dGxpbmUsIGZhbHNlLCBwYWludGlu
Z1Jvb3RGb3JSZW5kZXJlciwgcmVnaW9uLCAwKTsKKyAgICAgICAgICAgIGNsaXBUb1JlY3Qocm9v
dExheWVyLCBwLCBwYWludERpcnR5UmVjdCwgb3V0bGluZVJlY3QsIERvTm90SW5jbHVkZVNlbGZG
b3JCb3JkZXJSYWRpdXMpOwogICAgICAgICAgICAgcmVuZGVyZXIoKS0+cGFpbnQocGFpbnRJbmZv
LCBwYWludE9mZnNldCk7CisgICAgICAgICAgICByZXN0b3JlQ2xpcChwLCBwYWludERpcnR5UmVj
dCwgb3V0bGluZVJlY3QpOwogICAgICAgICB9Ci0KLSAgICAgICAgLy8gTm93IHJlc3RvcmUgb3Vy
IGNsaXAuCi0gICAgICAgIHJlc3RvcmVDbGlwKHAsIHBhaW50RGlydHlSZWN0LCBjbGlwUmVjdFRv
QXBwbHkpOwotICAgIH0KLQotICAgIGlmIChzaG91bGRQYWludE91dGxpbmUgJiYgIW91dGxpbmVS
ZWN0LmlzRW1wdHkoKSkgewotICAgICAgICAvLyBQYWludCBvdXIgb3duIG91dGxpbmUKLSAgICAg
ICAgUGFpbnRJbmZvIHBhaW50SW5mbyhwLCBvdXRsaW5lUmVjdC5yZWN0KCksIFBhaW50UGhhc2VT
ZWxmT3V0bGluZSwgZmFsc2UsIHBhaW50aW5nUm9vdEZvclJlbmRlcmVyLCByZWdpb24sIDApOwot
ICAgICAgICBjbGlwVG9SZWN0KHJvb3RMYXllciwgcCwgcGFpbnREaXJ0eVJlY3QsIG91dGxpbmVS
ZWN0LCBEb05vdEluY2x1ZGVTZWxmRm9yQm9yZGVyUmFkaXVzKTsKLSAgICAgICAgcmVuZGVyZXIo
KS0+cGFpbnQocGFpbnRJbmZvLCBwYWludE9mZnNldCk7Ci0gICAgICAgIHJlc3RvcmVDbGlwKHAs
IHBhaW50RGlydHlSZWN0LCBvdXRsaW5lUmVjdCk7Ci0gICAgfQogICAgIAotICAgIC8vIFBhaW50
IGFueSBjaGlsZCBsYXllcnMgdGhhdCBoYXZlIG92ZXJmbG93LgotICAgIHBhaW50TGlzdChtX25v
cm1hbEZsb3dMaXN0LCByb290TGF5ZXIsIHAsIHBhaW50RGlydHlSZWN0LCBwYWludEJlaGF2aW9y
LCBwYWludGluZ1Jvb3QsIHJlZ2lvbiwgb3ZlcmxhcFRlc3RSZXF1ZXN0cywgbG9jYWxQYWludEZs
YWdzKTsKKyAgICAgICAgLy8gUGFpbnQgYW55IGNoaWxkIGxheWVycyB0aGF0IGhhdmUgb3ZlcmZs
b3cuCisgICAgICAgIHBhaW50TGlzdChtX25vcm1hbEZsb3dMaXN0LCByb290TGF5ZXIsIHAsIHBh
aW50RGlydHlSZWN0LCBwYWludEJlaGF2aW9yLCBwYWludGluZ1Jvb3QsIHJlZ2lvbiwgb3Zlcmxh
cFRlc3RSZXF1ZXN0cywgbG9jYWxQYWludEZsYWdzKTsKICAgICAKLSAgICAvLyBOb3cgd2FsayB0
aGUgc29ydGVkIGxpc3Qgb2YgY2hpbGRyZW4gd2l0aCBwb3NpdGl2ZSB6LWluZGljZXMuCi0gICAg
cGFpbnRMaXN0KG1fcG9zWk9yZGVyTGlzdCwgcm9vdExheWVyLCBwLCBwYWludERpcnR5UmVjdCwg
cGFpbnRCZWhhdmlvciwgcGFpbnRpbmdSb290LCByZWdpb24sIG92ZXJsYXBUZXN0UmVxdWVzdHMs
IGxvY2FsUGFpbnRGbGFncyk7Ci0gICAgICAgIAotICAgIGlmIChzaG91bGRQYWludENvbnRlbnQg
JiYgcmVuZGVyZXIoKS0+aGFzTWFzaygpICYmICFzZWxlY3Rpb25Pbmx5KSB7CisgICAgICAgIC8v
IE5vdyB3YWxrIHRoZSBzb3J0ZWQgbGlzdCBvZiBjaGlsZHJlbiB3aXRoIHBvc2l0aXZlIHotaW5k
aWNlcy4KKyAgICAgICAgcGFpbnRMaXN0KG1fcG9zWk9yZGVyTGlzdCwgcm9vdExheWVyLCBwLCBw
YWludERpcnR5UmVjdCwgcGFpbnRCZWhhdmlvciwgcGFpbnRpbmdSb290LCByZWdpb24sIG92ZXJs
YXBUZXN0UmVxdWVzdHMsIGxvY2FsUGFpbnRGbGFncyk7CisgICAgfQorICAgIAorICAgIGlmICgo
bG9jYWxQYWludEZsYWdzICYgUGFpbnRMYXllclBhaW50aW5nQ29tcG9zaXRpbmdNYXNrUGhhc2Up
ICYmIHNob3VsZFBhaW50Q29udGVudCAmJiByZW5kZXJlcigpLT5oYXNNYXNrKCkgJiYgIXNlbGVj
dGlvbk9ubHkpIHsKICAgICAgICAgY2xpcFRvUmVjdChyb290TGF5ZXIsIHAsIHBhaW50RGlydHlS
ZWN0LCBkYW1hZ2VSZWN0LCBEb05vdEluY2x1ZGVTZWxmRm9yQm9yZGVyUmFkaXVzKTsgLy8gTWFz
ayBwYWludGluZyB3aWxsIGhhbmRsZSBjbGlwcGluZyB0byBzZWxmLgogCiAgICAgICAgIC8vIFBh
aW50IHRoZSBtYXNrLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
ckxheWVyLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuaAppbmRleCBh
ODZhMGMxZWU3MmVhNjAxNjhhYWNkMjA4OTE0NmMxZmE1YzlmMGIyLi43OTBjMjVjNTBiOTg1NGVi
MzM5YmNkMTgxYTBmZTUxZGI5YzI4NjYxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyTGF5ZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
TGF5ZXIuaApAQCAtNDM2LDEwICs0MzYsMTEgQEAgcHVibGljOgogICAgICAgICBQYWludExheWVy
QXBwbGllZFRyYW5zZm9ybSA9IDEgPDwgMSwKICAgICAgICAgUGFpbnRMYXllclRlbXBvcmFyeUNs
aXBSZWN0cyA9IDEgPDwgMiwKICAgICAgICAgUGFpbnRMYXllclBhaW50aW5nUmVmbGVjdGlvbiA9
IDEgPDwgMywKLSAgICAgICAgUGFpbnRMYXllclBhaW50aW5nT3ZlcmxheVNjcm9sbGJhcnMgPSAx
IDw8IDQKLSNpZiBFTkFCTEUoQ1NTX0ZJTFRFUlMpCi0gICAgICAgICwgUGFpbnRMYXllckFwcGxp
ZWRGaWx0ZXJzID0gMSA8PCA1Ci0jZW5kaWYKKyAgICAgICAgUGFpbnRMYXllclBhaW50aW5nT3Zl
cmxheVNjcm9sbGJhcnMgPSAxIDw8IDQsCisgICAgICAgIFBhaW50TGF5ZXJQYWludGluZ0NvbXBv
c2l0aW5nQmFja2dyb3VuZFBoYXNlID0gMSA8PCA1LAorICAgICAgICBQYWludExheWVyUGFpbnRp
bmdDb21wb3NpdGluZ0ZvcmVncm91bmRQaGFzZSA9IDEgPDwgNiwKKyAgICAgICAgUGFpbnRMYXll
clBhaW50aW5nQ29tcG9zaXRpbmdNYXNrUGhhc2UgPSAxIDw8IDcsCisgICAgICAgIFBhaW50TGF5
ZXJQYWludGluZ0NvbXBvc2l0aW5nQWxsUGhhc2VzID0gKFBhaW50TGF5ZXJQYWludGluZ0NvbXBv
c2l0aW5nQmFja2dyb3VuZFBoYXNlIHwgUGFpbnRMYXllclBhaW50aW5nQ29tcG9zaXRpbmdGb3Jl
Z3JvdW5kUGhhc2UgfCBQYWludExheWVyUGFpbnRpbmdDb21wb3NpdGluZ01hc2tQaGFzZSkKICAg
ICB9OwogICAgIAogICAgIHR5cGVkZWYgdW5zaWduZWQgUGFpbnRMYXllckZsYWdzOwpAQCAtNTk0
LDYgKzU5NSw5IEBAIHByaXZhdGU6CiAgICAgdm9pZCBwYWludExheWVyKFJlbmRlckxheWVyKiBy
b290TGF5ZXIsIEdyYXBoaWNzQ29udGV4dCosIGNvbnN0IExheW91dFJlY3QmIHBhaW50RGlydHlS
ZWN0LAogICAgICAgICAgICAgICAgICAgICBQYWludEJlaGF2aW9yLCBSZW5kZXJPYmplY3QqIHBh
aW50aW5nUm9vdCwgUmVuZGVyUmVnaW9uKiA9IDAsIE92ZXJsYXBUZXN0UmVxdWVzdE1hcCogPSAw
LAogICAgICAgICAgICAgICAgICAgICBQYWludExheWVyRmxhZ3MgPSAwKTsKKyAgICB2b2lkIHBh
aW50TGF5ZXJDb250ZW50c0FuZFJlZmxlY3Rpb24oUmVuZGVyTGF5ZXIqIHJvb3RMYXllciwgR3Jh
cGhpY3NDb250ZXh0KiwgY29uc3QgTGF5b3V0UmVjdCYgcGFpbnREaXJ0eVJlY3QsCisgICAgICAg
ICAgICAgICAgICAgIFBhaW50QmVoYXZpb3IsIFJlbmRlck9iamVjdCogcGFpbnRpbmdSb290LCBS
ZW5kZXJSZWdpb24qID0gMCwgT3ZlcmxhcFRlc3RSZXF1ZXN0TWFwKiA9IDAsCisgICAgICAgICAg
ICAgICAgICAgIFBhaW50TGF5ZXJGbGFncyA9IDApOwogICAgIHZvaWQgcGFpbnRMYXllckNvbnRl
bnRzKFJlbmRlckxheWVyKiByb290TGF5ZXIsIEdyYXBoaWNzQ29udGV4dCosIGNvbnN0IExheW91
dFJlY3QmIHBhaW50RGlydHlSZWN0LAogICAgICAgICAgICAgICAgICAgICBQYWludEJlaGF2aW9y
LCBSZW5kZXJPYmplY3QqIHBhaW50aW5nUm9vdCwgUmVuZGVyUmVnaW9uKiA9IDAsIE92ZXJsYXBU
ZXN0UmVxdWVzdE1hcCogPSAwLAogICAgICAgICAgICAgICAgICAgICBQYWludExheWVyRmxhZ3Mg
PSAwKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckJh
Y2tpbmcuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQmFja2luZy5j
cHAKaW5kZXggYWY1MjQxYmQ0NmI4ZGE2NmEwNGEyMmQ4ZWZkNTE1MTM0NWJlOGYxMS4uYzkyZWFl
Yjc0YjY3MGU2MTUwODc2NzdhOGViZGNjZDQzZDcwMTI4YiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQmFja2luZy5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQmFja2luZy5jcHAKQEAgLTEwOTMsNyArMTA5Myw2IEBA
IHZvaWQgUmVuZGVyTGF5ZXJCYWNraW5nOjpzZXRDb250ZW50c05lZWREaXNwbGF5SW5SZWN0KGNv
bnN0IExheW91dFJlY3QmIHIpCiAgICAgfQogfQogCi0vLyBTaGFyZSB0aGlzIHdpdGggUmVuZGVy
TGF5ZXI6OnBhaW50TGF5ZXIsIHdoaWNoIHdvdWxkIGhhdmUgdG8gYmUgZWR1Y2F0ZWQgYWJvdXQg
R3JhcGhpY3NMYXllclBhaW50aW5nUGhhc2U/CiB2b2lkIFJlbmRlckxheWVyQmFja2luZzo6cGFp
bnRJbnRvTGF5ZXIoUmVuZGVyTGF5ZXIqIHJvb3RMYXllciwgR3JhcGhpY3NDb250ZXh0KiBjb250
ZXh0LAogICAgICAgICAgICAgICAgICAgICBjb25zdCBMYXlvdXRSZWN0JiBwYWludERpcnR5UmVj
dCwgLy8gSW4gdGhlIGNvb3JkcyBvZiByb290TGF5ZXIuCiAgICAgICAgICAgICAgICAgICAgIFBh
aW50QmVoYXZpb3IgcGFpbnRCZWhhdmlvciwgR3JhcGhpY3NMYXllclBhaW50aW5nUGhhc2UgcGFp
bnRpbmdQaGFzZSwKQEAgLTExMDYsMTA0ICsxMTA1LDE2IEBAIHZvaWQgUmVuZGVyTGF5ZXJCYWNr
aW5nOjpwYWludEludG9MYXllcihSZW5kZXJMYXllciogcm9vdExheWVyLCBHcmFwaGljc0NvbnRl
eHQqCiAKICAgICBGb250Q2FjaGVQdXJnZVByZXZlbnRlciBmb250Q2FjaGVQdXJnZVByZXZlbnRl
cjsKICAgICAKLSAgICBtX293bmluZ0xheWVyLT51cGRhdGVMYXllckxpc3RzSWZOZWVkZWQoKTsK
LQotICAgIGJvb2wgc2hvdWxkUGFpbnRDb250ZW50ID0gKG1fb3duaW5nTGF5ZXItPmhhc1Zpc2li
bGVDb250ZW50KCkgfHwgbV9vd25pbmdMYXllci0+aGFzVmlzaWJsZURlc2NlbmRhbnQoKSkgJiYg
bV9vd25pbmdMYXllci0+aXNTZWxmUGFpbnRpbmdMYXllcigpOwotICAgIGlmICghc2hvdWxkUGFp
bnRDb250ZW50KQotICAgICAgICByZXR1cm47Ci0KLSAgICAvLyBDYWxjdWxhdGUgdGhlIGNsaXAg
cmVjdHMgd2Ugc2hvdWxkIHVzZS4KLSAgICBMYXlvdXRSZWN0IGxheWVyQm91bmRzOwotICAgIENs
aXBSZWN0IGRhbWFnZVJlY3QsIGNsaXBSZWN0VG9BcHBseSwgb3V0bGluZVJlY3Q7Ci0gICAgbV9v
d25pbmdMYXllci0+Y2FsY3VsYXRlUmVjdHMocm9vdExheWVyLCAwLCBwYWludERpcnR5UmVjdCwg
bGF5ZXJCb3VuZHMsIGRhbWFnZVJlY3QsIGNsaXBSZWN0VG9BcHBseSwgb3V0bGluZVJlY3QpOyAv
LyBGSVhNRTogSW5jb3JyZWN0IGZvciBDU1MgcmVnaW9ucy4KLSAgICBMYXlvdXRQb2ludCBwYWlu
dE9mZnNldCA9IHRvUG9pbnQobGF5ZXJCb3VuZHMubG9jYXRpb24oKSAtIG1fb3duaW5nTGF5ZXIt
PnJlbmRlckJveExvY2F0aW9uKCkpOwotCi0gICAgLy8gSWYgdGhpcyBsYXllcidzIHJlbmRlcmVy
IGlzIGEgY2hpbGQgb2YgdGhlIHBhaW50aW5nUm9vdCwgd2UgcmVuZGVyIHVuY29uZGl0aW9uYWxs
eSwgd2hpY2gKLSAgICAvLyBpcyBkb25lIGJ5IHBhc3NpbmcgYSBuaWwgcGFpbnRpbmdSb290IGRv
d24gdG8gb3VyIHJlbmRlcmVyIChhcyBpZiBubyBwYWludGluZ1Jvb3Qgd2FzIGV2ZXIgc2V0KS4K
LSAgICAvLyBFbHNlLCBvdXIgcmVuZGVyZXIgdHJlZSBtYXkgb3IgbWF5IG5vdCBjb250YWluIHRo
ZSBwYWludGluZyByb290LCBzbyB3ZSBwYXNzIHRoYXQgcm9vdCBhbG9uZwotICAgIC8vIHNvIGl0
IHdpbGwgYmUgdGVzdGVkIGFnYWluc3QgYXMgd2UgZGVjZW5kIHRocm91Z2ggdGhlIHJlbmRlcmVy
cy4KLSAgICBSZW5kZXJPYmplY3QgKnBhaW50aW5nUm9vdEZvclJlbmRlcmVyID0gMDsKLSAgICBp
ZiAocGFpbnRpbmdSb290ICYmICFyZW5kZXJlcigpLT5pc0Rlc2NlbmRhbnRPZihwYWludGluZ1Jv
b3QpKQotICAgICAgICBwYWludGluZ1Jvb3RGb3JSZW5kZXJlciA9IHBhaW50aW5nUm9vdDsKLQot
I2lmIEVOQUJMRShDU1NfRklMVEVSUykKLSAgICBGaWx0ZXJFZmZlY3RSZW5kZXJlckhlbHBlciBm
aWx0ZXJQYWludGVyKG1fb3duaW5nTGF5ZXItPnBhaW50c1dpdGhGaWx0ZXJzKCkpOwotICAgIGlm
IChmaWx0ZXJQYWludGVyLmhhdmVGaWx0ZXJFZmZlY3QoKSkKLSAgICAgICAgY29udGV4dCA9IGZp
bHRlclBhaW50ZXIuYmVnaW5GaWx0ZXJFZmZlY3QobV9vd25pbmdMYXllciwgY29udGV4dCwgbGF5
ZXJCb3VuZHMpOwotI2VuZGlmCi0KLSAgICBpZiAocGFpbnRpbmdQaGFzZSAmIEdyYXBoaWNzTGF5
ZXJQYWludEJhY2tncm91bmQpIHsKLSAgICAgICAgLy8gUGFpbnQgb3VyIGJhY2tncm91bmQgZmly
c3QsIGJlZm9yZSBwYWludGluZyBhbnkgY2hpbGQgbGF5ZXJzLgotICAgICAgICAvLyBFc3RhYmxp
c2ggdGhlIGNsaXAgdXNlZCB0byBwYWludCBvdXIgYmFja2dyb3VuZC4KLSAgICAgICAgbV9vd25p
bmdMYXllci0+Y2xpcFRvUmVjdChyb290TGF5ZXIsIGNvbnRleHQsIHBhaW50RGlydHlSZWN0LCBk
YW1hZ2VSZWN0LCBEb05vdEluY2x1ZGVTZWxmRm9yQm9yZGVyUmFkaXVzKTsKKyAgICBSZW5kZXJM
YXllcjo6UGFpbnRMYXllckZsYWdzIHBhaW50RmxhZ3MgPSAwOworICAgIGlmIChwYWludGluZ1Bo
YXNlICYgR3JhcGhpY3NMYXllclBhaW50QmFja2dyb3VuZCkKKyAgICAgICAgcGFpbnRGbGFncyB8
PSBSZW5kZXJMYXllcjo6UGFpbnRMYXllclBhaW50aW5nQ29tcG9zaXRpbmdCYWNrZ3JvdW5kUGhh
c2U7CisgICAgaWYgKHBhaW50aW5nUGhhc2UgJiBHcmFwaGljc0xheWVyUGFpbnRGb3JlZ3JvdW5k
KQorICAgICAgICBwYWludEZsYWdzIHw9IFJlbmRlckxheWVyOjpQYWludExheWVyUGFpbnRpbmdD
b21wb3NpdGluZ0ZvcmVncm91bmRQaGFzZTsKKyAgICBpZiAocGFpbnRpbmdQaGFzZSAmIEdyYXBo
aWNzTGF5ZXJQYWludE1hc2spCisgICAgICAgIHBhaW50RmxhZ3MgfD0gUmVuZGVyTGF5ZXI6OlBh
aW50TGF5ZXJQYWludGluZ0NvbXBvc2l0aW5nTWFza1BoYXNlOwogICAgICAgICAKLSAgICAgICAg
UGFpbnRJbmZvIGluZm8oY29udGV4dCwgZGFtYWdlUmVjdC5yZWN0KCksIFBhaW50UGhhc2VCbG9j
a0JhY2tncm91bmQsIGZhbHNlLCBwYWludGluZ1Jvb3RGb3JSZW5kZXJlciwgMCwgMCk7Ci0gICAg
ICAgIHJlbmRlcmVyKCktPnBhaW50KGluZm8sIHBhaW50T2Zmc2V0KTsKLQotICAgICAgICAvLyBS
ZXN0b3JlIHRoZSBjbGlwLgotICAgICAgICBtX293bmluZ0xheWVyLT5yZXN0b3JlQ2xpcChjb250
ZXh0LCBwYWludERpcnR5UmVjdCwgZGFtYWdlUmVjdCk7Ci0KLSAgICAgICAgLy8gTm93IHdhbGsg
dGhlIHNvcnRlZCBsaXN0IG9mIGNoaWxkcmVuIHdpdGggbmVnYXRpdmUgei1pbmRpY2VzLiBPbmx5
IFJlbmRlckxheWVycyB3aXRob3V0IGNvbXBvc2l0aW5nIGxheWVycyB3aWxsIHBhaW50LgotICAg
ICAgICBtX293bmluZ0xheWVyLT5wYWludExpc3QobV9vd25pbmdMYXllci0+bmVnWk9yZGVyTGlz
dCgpLCByb290TGF5ZXIsIGNvbnRleHQsIHBhaW50RGlydHlSZWN0LCBwYWludEJlaGF2aW9yLCBw
YWludGluZ1Jvb3QsIDAsIDAsIDApOwotICAgIH0KLSAgICAgICAgICAgICAgICAKLSAgICBib29s
IGZvcmNlQmxhY2tUZXh0ID0gcGFpbnRCZWhhdmlvciAmIFBhaW50QmVoYXZpb3JGb3JjZUJsYWNr
VGV4dDsKLSAgICBib29sIHNlbGVjdGlvbk9ubHkgID0gcGFpbnRCZWhhdmlvciAmIFBhaW50QmVo
YXZpb3JTZWxlY3Rpb25Pbmx5OwotCi0gICAgaWYgKHBhaW50aW5nUGhhc2UgJiBHcmFwaGljc0xh
eWVyUGFpbnRGb3JlZ3JvdW5kKSB7Ci0gICAgICAgIC8vIFNldCB1cCB0aGUgY2xpcCB1c2VkIHdo
ZW4gcGFpbnRpbmcgb3VyIGNoaWxkcmVuLgotICAgICAgICBtX293bmluZ0xheWVyLT5jbGlwVG9S
ZWN0KHJvb3RMYXllciwgY29udGV4dCwgcGFpbnREaXJ0eVJlY3QsIGNsaXBSZWN0VG9BcHBseSk7
Ci0gICAgICAgIFBhaW50SW5mbyBwYWludEluZm8oY29udGV4dCwgY2xpcFJlY3RUb0FwcGx5LnJl
Y3QoKSwgCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZWN0aW9uT25seSA/IFBhaW50
UGhhc2VTZWxlY3Rpb24gOiBQYWludFBoYXNlQ2hpbGRCbG9ja0JhY2tncm91bmRzLAotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGZvcmNlQmxhY2tUZXh0LCBwYWludGluZ1Jvb3RGb3JSZW5k
ZXJlciwgMCwgMCk7Ci0gICAgICAgIHJlbmRlcmVyKCktPnBhaW50KHBhaW50SW5mbywgcGFpbnRP
ZmZzZXQpOwotCi0gICAgICAgIGlmICghc2VsZWN0aW9uT25seSkgewotICAgICAgICAgICAgcGFp
bnRJbmZvLnBoYXNlID0gUGFpbnRQaGFzZUZsb2F0OwotICAgICAgICAgICAgcmVuZGVyZXIoKS0+
cGFpbnQocGFpbnRJbmZvLCBwYWludE9mZnNldCk7Ci0KLSAgICAgICAgICAgIHBhaW50SW5mby5w
aGFzZSA9IFBhaW50UGhhc2VGb3JlZ3JvdW5kOwotICAgICAgICAgICAgcmVuZGVyZXIoKS0+cGFp
bnQocGFpbnRJbmZvLCBwYWludE9mZnNldCk7Ci0KLSAgICAgICAgICAgIHBhaW50SW5mby5waGFz
ZSA9IFBhaW50UGhhc2VDaGlsZE91dGxpbmVzOwotICAgICAgICAgICAgcmVuZGVyZXIoKS0+cGFp
bnQocGFpbnRJbmZvLCBwYWludE9mZnNldCk7Ci0gICAgICAgIH0KLQotICAgICAgICAvLyBOb3cg
cmVzdG9yZSBvdXIgY2xpcC4KLSAgICAgICAgbV9vd25pbmdMYXllci0+cmVzdG9yZUNsaXAoY29u
dGV4dCwgcGFpbnREaXJ0eVJlY3QsIGNsaXBSZWN0VG9BcHBseSk7Ci0KLSAgICAgICAgaWYgKCFv
dXRsaW5lUmVjdC5pc0VtcHR5KCkpIHsKLSAgICAgICAgICAgIC8vIFBhaW50IG91ciBvd24gb3V0
bGluZQotICAgICAgICAgICAgUGFpbnRJbmZvIHBhaW50SW5mbyhjb250ZXh0LCBvdXRsaW5lUmVj
dC5yZWN0KCksIFBhaW50UGhhc2VTZWxmT3V0bGluZSwgZmFsc2UsIHBhaW50aW5nUm9vdEZvclJl
bmRlcmVyLCAwLCAwKTsKLSAgICAgICAgICAgIG1fb3duaW5nTGF5ZXItPmNsaXBUb1JlY3Qocm9v
dExheWVyLCBjb250ZXh0LCBwYWludERpcnR5UmVjdCwgb3V0bGluZVJlY3QsIERvTm90SW5jbHVk
ZVNlbGZGb3JCb3JkZXJSYWRpdXMpOwotICAgICAgICAgICAgcmVuZGVyZXIoKS0+cGFpbnQocGFp
bnRJbmZvLCBwYWludE9mZnNldCk7Ci0gICAgICAgICAgICBtX293bmluZ0xheWVyLT5yZXN0b3Jl
Q2xpcChjb250ZXh0LCBwYWludERpcnR5UmVjdCwgb3V0bGluZVJlY3QpOwotICAgICAgICB9Ci0K
LSAgICAgICAgLy8gUGFpbnQgYW55IGNoaWxkIGxheWVycyB0aGF0IGhhdmUgb3ZlcmZsb3cuCi0g
ICAgICAgIG1fb3duaW5nTGF5ZXItPnBhaW50TGlzdChtX293bmluZ0xheWVyLT5ub3JtYWxGbG93
TGlzdCgpLCByb290TGF5ZXIsIGNvbnRleHQsIHBhaW50RGlydHlSZWN0LCBwYWludEJlaGF2aW9y
LCBwYWludGluZ1Jvb3QsIDAsIDAsIDApOwotCi0gICAgICAgIC8vIE5vdyB3YWxrIHRoZSBzb3J0
ZWQgbGlzdCBvZiBjaGlsZHJlbiB3aXRoIHBvc2l0aXZlIHotaW5kaWNlcy4KLSAgICAgICAgbV9v
d25pbmdMYXllci0+cGFpbnRMaXN0KG1fb3duaW5nTGF5ZXItPnBvc1pPcmRlckxpc3QoKSwgcm9v
dExheWVyLCBjb250ZXh0LCBwYWludERpcnR5UmVjdCwgcGFpbnRCZWhhdmlvciwgcGFpbnRpbmdS
b290LCAwLCAwLCAwKTsKLSAgICB9Ci0KLSAgICBpZiAocGFpbnRpbmdQaGFzZSAmIEdyYXBoaWNz
TGF5ZXJQYWludE1hc2spIHsKLSAgICAgICAgaWYgKHJlbmRlcmVyKCktPmhhc01hc2soKSAmJiAh
c2VsZWN0aW9uT25seSAmJiAhZGFtYWdlUmVjdC5pc0VtcHR5KCkpIHsKLSAgICAgICAgICAgIG1f
b3duaW5nTGF5ZXItPmNsaXBUb1JlY3Qocm9vdExheWVyLCBjb250ZXh0LCBwYWludERpcnR5UmVj
dCwgZGFtYWdlUmVjdCwgRG9Ob3RJbmNsdWRlU2VsZkZvckJvcmRlclJhZGl1cyk7Ci0KLSAgICAg
ICAgICAgIC8vIFBhaW50IHRoZSBtYXNrLgotICAgICAgICAgICAgUGFpbnRJbmZvIHBhaW50SW5m
byhjb250ZXh0LCBkYW1hZ2VSZWN0LnJlY3QoKSwgUGFpbnRQaGFzZU1hc2ssIGZhbHNlLCBwYWlu
dGluZ1Jvb3RGb3JSZW5kZXJlciwgMCwgMCk7Ci0gICAgICAgICAgICByZW5kZXJlcigpLT5wYWlu
dChwYWludEluZm8sIHBhaW50T2Zmc2V0KTsKLSAgICAgICAgICAgIAotICAgICAgICAgICAgLy8g
UmVzdG9yZSB0aGUgY2xpcC4KLSAgICAgICAgICAgIG1fb3duaW5nTGF5ZXItPnJlc3RvcmVDbGlw
KGNvbnRleHQsIHBhaW50RGlydHlSZWN0LCBkYW1hZ2VSZWN0KTsKLSAgICAgICAgfQotICAgIH0K
LSAgICAKLSNpZiBFTkFCTEUoQ1NTX0ZJTFRFUlMpCi0gICAgaWYgKGZpbHRlclBhaW50ZXIuaGFz
U3RhcnRlZEZpbHRlckVmZmVjdCgpKQotICAgICAgICBjb250ZXh0ID0gZmlsdGVyUGFpbnRlci5h
cHBseUZpbHRlckVmZmVjdCgpOwotI2VuZGlmCisgICAgLy8gRklYTUU6IEdyYXBoaWNzTGF5ZXJz
IG5lZWQgYSB3YXkgdG8gc3BsaXQgZm9yIFJlbmRlclJlZ2lvbnMuCisgICAgbV9vd25pbmdMYXll
ci0+cGFpbnRMYXllckNvbnRlbnRzKHJvb3RMYXllciwgY29udGV4dCwgcGFpbnREaXJ0eVJlY3Qs
IHBhaW50QmVoYXZpb3IsIHBhaW50aW5nUm9vdCwgMCwgMCwgcGFpbnRGbGFncyk7CiAKICAgICBB
U1NFUlQoIW1fb3duaW5nTGF5ZXItPm1fdXNlZFRyYW5zcGFyZW5jeSk7CiB9Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>