<?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>35539</bug_id>
          
          <creation_ts>2010-03-01 13:01:38 -0800</creation_ts>
          <short_desc>New port: EFL; adding files to WebCore/graphics/efl (patch 2 of 4)</short_desc>
          <delta_ts>2010-03-04 07:41:56 -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>Platform</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Other</rep_platform>
          <op_sys>Linux</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>Enhancement</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>0</everconfirmed>
          <reporter name="Leandro Pereira">leandro</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>barbieri</cc>
    
    <cc>commit-queue</cc>
    
    <cc>eric</cc>
    
    <cc>gustavo</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>kenneth</cc>
    
    <cc>oliver</cc>
    
    <cc>rakuco</cc>
    
    <cc>tonikitoo</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>zimmermann</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>194782</commentid>
    <comment_count>0</comment_count>
    <who name="Leandro Pereira">leandro</who>
    <bug_when>2010-03-01 13:01:38 -0800</bug_when>
    <thetext>+++ This bug was initially created as a clone of Bug #35531 +++

+++ This bug was initially created as a clone of Bug #35087 +++</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>194784</commentid>
    <comment_count>1</comment_count>
      <attachid>49743</attachid>
    <who name="Leandro Pereira">leandro</who>
    <bug_when>2010-03-01 13:02:11 -0800</bug_when>
    <thetext>Created attachment 49743
Add files to WebCore/platform/graphics/efl (patch 2/4)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>194787</commentid>
    <comment_count>2</comment_count>
      <attachid>49743</attachid>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2010-03-01 13:03:45 -0800</bug_when>
    <thetext>Comment on attachment 49743
Add files to WebCore/platform/graphics/efl (patch 2/4)

You don&apos;t split your patches very logically... This patch has Gstreamer code, but the previous one had as well, mixing it with IntRect, Image code etc.

You should really make one patch with all media related code etc. Try to split the patches logically.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>194804</commentid>
    <comment_count>3</comment_count>
    <who name="Leandro Pereira">leandro</who>
    <bug_when>2010-03-01 13:57:55 -0800</bug_when>
    <thetext>(In reply to comment #2)
&gt; (From update of attachment 49743 [details])
&gt; You should really make one patch with all media related code etc. Try to split
&gt; the patches logically.

These patches were splitted by a script I wrote. This script only checks for the final patch size: it doesn&apos;t group the files per feature or similarity.

The port is quite large to split everything by hand (not to say it is error prone), and making the script aware of related code would take time I don&apos;t have.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>195017</commentid>
    <comment_count>4</comment_count>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2010-03-02 03:48:14 -0800</bug_when>
    <thetext>Do a sort of the files and look for similar names? Shouldn&apos;t take much time to code.

Landing takes time, so if you are interested in landing and maintaining a new port, which your team has voiced on the mailing list, you should definitely have the time for landing the initial patches correctly.

The reviewers are doing a service for you, so it is your job making it as easy as possible for them.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>195140</commentid>
    <comment_count>5</comment_count>
      <attachid>49825</attachid>
    <who name="Leandro Pereira">leandro</who>
    <bug_when>2010-03-02 11:34:14 -0800</bug_when>
    <thetext>Created attachment 49825
Add EFL port files in WebCore/platform/graphics/efl (patch 2/2)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>195152</commentid>
    <comment_count>6</comment_count>
      <attachid>49825</attachid>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2010-03-02 12:01:28 -0800</bug_when>
    <thetext>Comment on attachment 49825
Add EFL port files in WebCore/platform/graphics/efl (patch 2/2)

I don&apos;t know enough to say if the GlyphPage part is correct, but the rest looks good to me. I guess that GlyphPage code is similar to the GTK+ one right?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>195173</commentid>
    <comment_count>7</comment_count>
    <who name="Leandro Pereira">leandro</who>
    <bug_when>2010-03-02 12:35:03 -0800</bug_when>
    <thetext>(In reply to comment #6)
&gt; (From update of attachment 49825 [details])
&gt; I don&apos;t know enough to say if the GlyphPage part is correct, but the rest looks
&gt; good to me. I guess that GlyphPage code is similar to the GTK+ one right?

They&apos;re identical, actually. Moving it to platform/graphics/cairo would make sense.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>195181</commentid>
    <comment_count>8</comment_count>
      <attachid>49825</attachid>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2010-03-02 13:00:35 -0800</bug_when>
    <thetext>Comment on attachment 49825
Add EFL port files in WebCore/platform/graphics/efl (patch 2/2)

r- for above reason.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>195711</commentid>
    <comment_count>9</comment_count>
    <who name="Leandro Pereira">leandro</who>
    <bug_when>2010-03-03 12:34:58 -0800</bug_when>
    <thetext>(In reply to comment #8)
&gt; (From update of attachment 49825 [details])
&gt; r- for above reason.

I&apos;ve submitted bug #35695, which moves these files to a neutral cairo directory.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>196027</commentid>
    <comment_count>10</comment_count>
      <attachid>50009</attachid>
    <who name="Leandro Pereira">leandro</who>
    <bug_when>2010-03-04 06:27:01 -0800</bug_when>
    <thetext>Created attachment 50009
Add EFL port files to WebCore/platform/graphics/efl (2/2)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>196078</commentid>
    <comment_count>11</comment_count>
      <attachid>50009</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-03-04 07:41:50 -0800</bug_when>
    <thetext>Comment on attachment 50009
Add EFL port files to WebCore/platform/graphics/efl (2/2)

Clearing flags on attachment: 50009

Committed r55526: &lt;http://trac.webkit.org/changeset/55526&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>196079</commentid>
    <comment_count>12</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-03-04 07:41:56 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>49743</attachid>
            <date>2010-03-01 13:02:11 -0800</date>
            <delta_ts>2010-03-02 11:17:06 -0800</delta_ts>
            <desc>Add files to WebCore/platform/graphics/efl (patch 2/4)</desc>
            <filename>webcore_platform_graphics_efl-2.diff</filename>
            <type>text/plain</type>
            <size>19233</size>
            <attacher name="Leandro Pereira">leandro</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZWZsL01lZGlhUGxheWVyUHJpdmF0ZUdT
dHJlYW1lci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gL2Rldi9udWxsCisrKyBXZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2VmbC9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIuY3BwCkBAIC0wLDAgKzEs
NjQ2IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDA3LCAyMDA5IEFwcGxlIEluYy4gIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMDcgQ29sbGFib3JhIEx0ZC4gIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMDcgQWxwIFRva2VyIDxhbHBA
YXRva2VyLmNvbT4KKyAqIENvcHlyaWdodCAoQykgMjAwOS0yMDEwIFByb0ZVU0lPTiBlbWJlZGRl
ZCBzeXN0ZW1zCisgKiBDb3B5cmlnaHQgKEMpIDIwMDktMjAxMCBTYW1zdW5nIEVsZWN0cm9uaWNz
CisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmli
dXRlIGl0IGFuZC9vcgorICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExp
YnJhcnkgR2VuZXJhbCBQdWJsaWMKKyAqIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVl
IFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICogdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNl
LCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAqIFRoaXMgbGli
cmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAor
ICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2Fy
cmFudHkgb2YKKyAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIg
UFVSUE9TRS4gIFNlZSB0aGUgR05VCisgKiBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2Ug
Zm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5
IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgKiBhaW50IHdpdGgg
dGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRlIHRv
CisgKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJl
ZXQsIEZpZnRoIEZsb29yLAorICogQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuCisgKi8KKwor
I2luY2x1ZGUgImNvbmZpZy5oIgorCisjaWYgRU5BQkxFKFZJREVPKQorCisjaW5jbHVkZSAiTWVk
aWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyLmgiCisKKyNpbmNsdWRlICJDU3RyaW5nLmgiCisjaW5j
bHVkZSAiR3JhcGhpY3NDb250ZXh0LmgiCisjaW5jbHVkZSAiSW50UmVjdC5oIgorI2luY2x1ZGUg
IktVUkwuaCIKKyNpbmNsdWRlICJNSU1FVHlwZVJlZ2lzdHJ5LmgiCisjaW5jbHVkZSAiTWVkaWFQ
bGF5ZXIuaCIKKyNpbmNsdWRlICJOb3RJbXBsZW1lbnRlZC5oIgorI2luY2x1ZGUgIlNjcm9sbFZp
ZXcuaCIKKyNpbmNsdWRlICJWaWRlb1NpbmtHU3RyZWFtZXIuaCIKKyNpbmNsdWRlICJXaWRnZXQu
aCIKKworI2luY2x1ZGUgPGdzdC9iYXNlL2dzdGJhc2VzcmMuaD4KKyNpbmNsdWRlIDxnc3QvZ3N0
Lmg+CisjaW5jbHVkZSA8Z3N0L2ludGVyZmFjZXMvbWl4ZXIuaD4KKyNpbmNsdWRlIDxnc3QvaW50
ZXJmYWNlcy94b3ZlcmxheS5oPgorI2luY2x1ZGUgPGdzdC92aWRlby92aWRlby5oPgorI2luY2x1
ZGUgPGxpbWl0cz4KKyNpbmNsdWRlIDxtYXRoLmg+CisjaW5jbHVkZSA8d3RmL2dvYmplY3QvR093
blB0ci5oPgorCit1c2luZyBuYW1lc3BhY2Ugc3RkOworCituYW1lc3BhY2UgV2ViQ29yZSB7CisK
K2dib29sZWFuIG1lZGlhUGxheWVyUHJpdmF0ZUVycm9yQ2FsbGJhY2soR3N0QnVzKiBidXMsIEdz
dE1lc3NhZ2UqIG1lc3NhZ2UsIGdwb2ludGVyIGRhdGEpCit7CisgICAgaWYgKEdTVF9NRVNTQUdF
X1RZUEUobWVzc2FnZSkgPT0gR1NUX01FU1NBR0VfRVJST1IpIHsKKyAgICAgICAgR093blB0cjxH
RXJyb3I+IGVycjsKKyAgICAgICAgR093blB0cjxnY2hhcj4gZGVidWc7CisKKyAgICAgICAgZ3N0
X21lc3NhZ2VfcGFyc2VfZXJyb3IobWVzc2FnZSwgJmVyci5vdXRQdHIoKSwgJmRlYnVnLm91dFB0
cigpKTsKKyAgICAgICAgaWYgKGVyci0+Y29kZSA9PSAzKSB7CisgICAgICAgICAgICBMT0dfVkVS
Qk9TRShNZWRpYSwgIkZpbGUgbm90IGZvdW5kIik7CisgICAgICAgICAgICBNZWRpYVBsYXllclBy
aXZhdGUqIG1wID0gcmVpbnRlcnByZXRfY2FzdDxNZWRpYVBsYXllclByaXZhdGUqPihkYXRhKTsK
KyAgICAgICAgICAgIGlmIChtcCkKKyAgICAgICAgICAgICAgICBtcC0+bG9hZGluZ0ZhaWxlZCgp
OworICAgICAgICB9IGVsc2UKKyAgICAgICAgICAgIExPR19WRVJCT1NFKE1lZGlhLCAiRXJyb3I6
ICVkLCAlcyIsIGVyci0+Y29kZSwgIGVyci0+bWVzc2FnZSk7CisgICAgfQorICAgIHJldHVybiB0
cnVlOworfQorCitnYm9vbGVhbiBtZWRpYVBsYXllclByaXZhdGVFT1NDYWxsYmFjayhHc3RCdXMq
IGJ1cywgR3N0TWVzc2FnZSogbWVzc2FnZSwgZ3BvaW50ZXIgZGF0YSkKK3sKKyAgICBpZiAoR1NU
X01FU1NBR0VfVFlQRShtZXNzYWdlKSA9PSBHU1RfTUVTU0FHRV9FT1MpIHsKKyAgICAgICAgTE9H
X1ZFUkJPU0UoTWVkaWEsICJFbmQgb2YgU3RyZWFtIik7CisgICAgICAgIE1lZGlhUGxheWVyUHJp
dmF0ZSogbXAgPSByZWludGVycHJldF9jYXN0PE1lZGlhUGxheWVyUHJpdmF0ZSo+KGRhdGEpOwor
ICAgICAgICBtcC0+ZGlkRW5kKCk7CisgICAgfQorICAgIHJldHVybiB0cnVlOworfQorCitnYm9v
bGVhbiBtZWRpYVBsYXllclByaXZhdGVTdGF0ZUNhbGxiYWNrKEdzdEJ1cyogYnVzLCBHc3RNZXNz
YWdlKiBtZXNzYWdlLCBncG9pbnRlciBkYXRhKQoreworICAgIGlmIChHU1RfTUVTU0FHRV9UWVBF
KG1lc3NhZ2UpID09IEdTVF9NRVNTQUdFX1NUQVRFX0NIQU5HRUQpIHsKKyAgICAgICAgTWVkaWFQ
bGF5ZXJQcml2YXRlKiBtcCA9IHJlaW50ZXJwcmV0X2Nhc3Q8TWVkaWFQbGF5ZXJQcml2YXRlKj4o
ZGF0YSk7CisgICAgICAgIG1wLT51cGRhdGVTdGF0ZXMoKTsKKyAgICB9CisgICAgcmV0dXJuIHRy
dWU7Cit9CisKK2dib29sZWFuIG1lZGlhUGxheWVyUHJpdmF0ZUJ1ZmZlcmluZ0NhbGxiYWNrKEdz
dEJ1cyogYnVzLCBHc3RNZXNzYWdlKiBtZXNzYWdlLCBncG9pbnRlciBkYXRhKQoreworICAgIGlm
IChHU1RfTUVTU0FHRV9UWVBFKG1lc3NhZ2UpID09IEdTVF9NRVNTQUdFX0JVRkZFUklORykgewor
ICAgICAgICBnaW50IHBlcmNlbnQgPSAwOworICAgICAgICBnc3RfbWVzc2FnZV9wYXJzZV9idWZm
ZXJpbmcobWVzc2FnZSwgJnBlcmNlbnQpOworICAgICAgICBMT0dfVkVSQk9TRShNZWRpYSwgIkJ1
ZmZlcmluZyAlZCIsIHBlcmNlbnQpOworICAgIH0KKyAgICByZXR1cm4gdHJ1ZTsKK30KKworc3Rh
dGljIHZvaWQgbWVkaWFQbGF5ZXJQcml2YXRlUmVwYWludENhbGxiYWNrKFdlYktpdFZpZGVvU2lu
ayosIE1lZGlhUGxheWVyUHJpdmF0ZSogcGxheWVyUHJpdmF0ZSkKK3sKKyAgICBwbGF5ZXJQcml2
YXRlLT5yZXBhaW50KCk7Cit9CisKK01lZGlhUGxheWVyUHJpdmF0ZUludGVyZmFjZSogTWVkaWFQ
bGF5ZXJQcml2YXRlOjpjcmVhdGUoTWVkaWFQbGF5ZXIqIHBsYXllcikKK3sKKyAgICByZXR1cm4g
bmV3IE1lZGlhUGxheWVyUHJpdmF0ZShwbGF5ZXIpOworfQorCit2b2lkIE1lZGlhUGxheWVyUHJp
dmF0ZTo6cmVnaXN0ZXJNZWRpYUVuZ2luZShNZWRpYUVuZ2luZVJlZ2lzdHJhciByZWdpc3RyYXIp
Cit7CisgICAgaWYgKGlzQXZhaWxhYmxlKCkpCisgICAgICAgIHJlZ2lzdHJhcihjcmVhdGUsIGdl
dFN1cHBvcnRlZFR5cGVzLCBzdXBwb3J0c1R5cGUpOworfQorCitNZWRpYVBsYXllclByaXZhdGU6
Ok1lZGlhUGxheWVyUHJpdmF0ZShNZWRpYVBsYXllciogcGxheWVyKQorICAgIDogbV9wbGF5ZXIo
cGxheWVyKQorICAgICwgbV9wbGF5QmluKDApCisgICAgLCBtX3ZpZGVvU2luaygwKQorICAgICwg
bV9zb3VyY2UoMCkKKyAgICAsIG1fcmF0ZSgxLjBmKQorICAgICwgbV9lbmRUaW1lKG51bWVyaWNf
bGltaXRzPGZsb2F0Pjo6aW5maW5pdHkoKSkKKyAgICAsIG1faXNFbmRSZWFjaGVkKGZhbHNlKQor
ICAgICwgbV92b2x1bWUoMC41ZikKKyAgICAsIG1fbmV0d29ya1N0YXRlKE1lZGlhUGxheWVyOjpF
bXB0eSkKKyAgICAsIG1fcmVhZHlTdGF0ZShNZWRpYVBsYXllcjo6SGF2ZU5vdGhpbmcpCisgICAg
LCBtX3N0YXJ0ZWRQbGF5aW5nKGZhbHNlKQorICAgICwgbV9pc1N0cmVhbWluZyhmYWxzZSkKKyAg
ICAsIG1fc2l6ZShJbnRTaXplKCkpCisgICAgLCBtX3Zpc2libGUodHJ1ZSkKK3sKKworICAgIHN0
YXRpYyBib29sIGdzdEluaXRpYWxpemVkID0gZmFsc2U7CisgICAgLy8gRklYTUU6IFdlIHNob3Vs
ZCBwYXNzIHRoZSBhcmd1bWVudHMgZnJvbSB0aGUgY29tbWFuZCBsaW5lCisgICAgaWYgKCFnc3RJ
bml0aWFsaXplZCkgeworICAgICAgICBnc3RfaW5pdCgwLCAwKTsKKyAgICAgICAgZ3N0SW5pdGlh
bGl6ZWQgPSB0cnVlOworICAgIH0KKworICAgIC8vIEZJWE1FOiBUaGUgc2l6ZSBzaG91bGRuJ3Qg
YmUgZml4ZWQgaGVyZSwgdGhpcyBpcyBqdXN0IGEgcXVpY2sgaGFjay4KKyAgICBtX3N1cmZhY2Ug
PSBjYWlyb19pbWFnZV9zdXJmYWNlX2NyZWF0ZShDQUlST19GT1JNQVRfQVJHQjMyLCA2NDAsIDQ4
MCk7Cit9CisKK01lZGlhUGxheWVyUHJpdmF0ZTo6fk1lZGlhUGxheWVyUHJpdmF0ZSgpCit7Cisg
ICAgaWYgKG1fc3VyZmFjZSkKKyAgICAgICAgY2Fpcm9fc3VyZmFjZV9kZXN0cm95KG1fc3VyZmFj
ZSk7CisKKyAgICBpZiAobV9wbGF5QmluKSB7CisgICAgICAgIGdzdF9lbGVtZW50X3NldF9zdGF0
ZShtX3BsYXlCaW4sIEdTVF9TVEFURV9OVUxMKTsKKyAgICAgICAgZ3N0X29iamVjdF91bnJlZihH
U1RfT0JKRUNUKG1fcGxheUJpbikpOworICAgIH0KK30KKwordm9pZCBNZWRpYVBsYXllclByaXZh
dGU6OmxvYWQoY29uc3QgU3RyaW5nJiB1cmwpCit7CisgICAgTE9HX1ZFUkJPU0UoTWVkaWEsICJM
b2FkICVzIiwgdXJsLnV0ZjgoKS5kYXRhKCkpOworICAgIGlmIChtX25ldHdvcmtTdGF0ZSAhPSBN
ZWRpYVBsYXllcjo6TG9hZGluZykgeworICAgICAgICBtX25ldHdvcmtTdGF0ZSA9IE1lZGlhUGxh
eWVyOjpMb2FkaW5nOworICAgICAgICBtX3BsYXllci0+bmV0d29ya1N0YXRlQ2hhbmdlZCgpOwor
ICAgIH0KKyAgICBpZiAobV9yZWFkeVN0YXRlICE9IE1lZGlhUGxheWVyOjpIYXZlTm90aGluZykg
eworICAgICAgICBtX3JlYWR5U3RhdGUgPSBNZWRpYVBsYXllcjo6SGF2ZU5vdGhpbmc7CisgICAg
ICAgIG1fcGxheWVyLT5yZWFkeVN0YXRlQ2hhbmdlZCgpOworICAgIH0KKworICAgIGNyZWF0ZUdT
VFBsYXlCaW4odXJsKTsKKyAgICBwYXVzZSgpOworfQorCit2b2lkIE1lZGlhUGxheWVyUHJpdmF0
ZTo6cGxheSgpCit7CisgICAgTE9HX1ZFUkJPU0UoTWVkaWEsICJQbGF5Iik7CisgICAgLy8gV2hl
biBlbmQgcmVhY2hlZCwgcmV3aW5kIGZvciBUZXN0IHZpZGVvLXNlZWstcGFzdC1lbmQtcGxheWlu
ZworICAgIGlmIChtX2lzRW5kUmVhY2hlZCkKKyAgICAgICAgc2VlaygwKTsKKyAgICBtX2lzRW5k
UmVhY2hlZCA9IGZhbHNlOworCisgICAgZ3N0X2VsZW1lbnRfc2V0X3N0YXRlKG1fcGxheUJpbiwg
R1NUX1NUQVRFX1BMQVlJTkcpOworICAgIG1fc3RhcnRlZFBsYXlpbmcgPSB0cnVlOworfQorCit2
b2lkIE1lZGlhUGxheWVyUHJpdmF0ZTo6cGF1c2UoKQoreworICAgIExPR19WRVJCT1NFKE1lZGlh
LCAiUGF1c2UiKTsKKyAgICBnc3RfZWxlbWVudF9zZXRfc3RhdGUobV9wbGF5QmluLCBHU1RfU1RB
VEVfUEFVU0VEKTsKKyAgICBtX3N0YXJ0ZWRQbGF5aW5nID0gZmFsc2U7Cit9CisKK2Zsb2F0IE1l
ZGlhUGxheWVyUHJpdmF0ZTo6ZHVyYXRpb24oKSBjb25zdAoreworICAgIGlmICghbV9wbGF5Qmlu
KQorICAgICAgICByZXR1cm4gMC4wOworCisgICAgR3N0Rm9ybWF0IHRpbWVGb3JtYXQgPSBHU1Rf
Rk9STUFUX1RJTUU7CisgICAgZ2ludDY0IHRpbWVMZW5ndGggPSAwOworCisgICAgLy8gRklYTUU6
IFdlIHRyeSB0byBnZXQgdGhlIGR1cmF0aW9uLCBidXQgd2UgZG8gbm90IHRydXN0IHRoZQorICAg
IC8vIHJldHVybiB2YWx1ZSBvZiB0aGUgcXVlcnkgZnVuY3Rpb24gb25seTsgdGhlIHByb2JsZW0g
d2UgYXJlCisgICAgLy8gdHJ5aW5nIHRvIHdvcmstYXJvdW5kIGhlcmUgaXMgdGhhdCBwaXBlbGlu
ZXMgaW4gc3RyZWFtIG1vZGUgbWF5CisgICAgLy8gbm90IGJlIGFibGUgdG8gZmlndXJlIG91dCB0
aGUgZHVyYXRpb24sIGJ1dCBzdGlsbCByZXR1cm4gdHJ1ZSEKKyAgICAvLyBTZWUgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTI0NjM5LgorICAgIGlmICghZ3N0X2VsZW1l
bnRfcXVlcnlfZHVyYXRpb24obV9wbGF5QmluLCAmdGltZUZvcm1hdCwgJnRpbWVMZW5ndGgpIHx8
IHRpbWVMZW5ndGggPD0gMCkgeworICAgICAgICBMT0dfVkVSQk9TRShNZWRpYSwgIlRpbWUgZHVy
YXRpb24gcXVlcnkgZmFpbGVkLiIpOworICAgICAgICBtX2lzU3RyZWFtaW5nID0gdHJ1ZTsKKyAg
ICAgICAgcmV0dXJuIG51bWVyaWNfbGltaXRzPGZsb2F0Pjo6aW5maW5pdHkoKTsKKyAgICB9CisK
KyAgICBMT0dfVkVSQk9TRShNZWRpYSwgIkR1cmF0aW9uOiAlIiBHU1RfVElNRV9GT1JNQVQsIEdT
VF9USU1FX0FSR1ModGltZUxlbmd0aCkpOworCisgICAgcmV0dXJuIChmbG9hdCkgKHRpbWVMZW5n
dGggLyAxMDAwMDAwMDAwLjApOworICAgIC8vIEZJWE1FOiBoYW5kbGUgMy4xNC45LjUgcHJvcGVy
bHkKK30KKworZmxvYXQgTWVkaWFQbGF5ZXJQcml2YXRlOjpjdXJyZW50VGltZSgpIGNvbnN0Cit7
CisgICAgaWYgKCFtX3BsYXlCaW4pCisgICAgICAgIHJldHVybiAwOworICAgIC8vIE5lY2Vzc2Fy
eSBhcyBzb21ldGltZXMsIGdzdHJlYW1lciByZXR1cm4gMDowMCBhdCB0aGUgRU9TCisgICAgaWYg
KG1faXNFbmRSZWFjaGVkKQorICAgICAgICByZXR1cm4gbV9lbmRUaW1lOworCisgICAgZmxvYXQg
cmV0OworCisgICAgR3N0UXVlcnkqIHF1ZXJ5ID0gZ3N0X3F1ZXJ5X25ld19wb3NpdGlvbihHU1Rf
Rk9STUFUX1RJTUUpOworICAgIGlmIChnc3RfZWxlbWVudF9xdWVyeShtX3BsYXlCaW4sIHF1ZXJ5
KSkgeworICAgICAgICBnaW50NjQgcG9zaXRpb247CisgICAgICAgIGdzdF9xdWVyeV9wYXJzZV9w
b3NpdGlvbihxdWVyeSwgMCwgJnBvc2l0aW9uKTsKKyAgICAgICAgcmV0ID0gKGZsb2F0KSAocG9z
aXRpb24gLyAxMDAwMDAwMDAwLjApOworICAgICAgICBMT0dfVkVSQk9TRShNZWRpYSwgIlBvc2l0
aW9uICUiIEdTVF9USU1FX0ZPUk1BVCwgR1NUX1RJTUVfQVJHUyhwb3NpdGlvbikpOworICAgIH0g
ZWxzZSB7CisgICAgICAgIExPR19WRVJCT1NFKE1lZGlhLCAiUG9zaXRpb24gcXVlcnkgZmFpbGVk
Li4uIik7CisgICAgICAgIHJldCA9IDAuMDsKKyAgICB9CisgICAgZ3N0X3F1ZXJ5X3VucmVmKHF1
ZXJ5KTsKKworICAgIHJldHVybiByZXQ7Cit9CisKK3ZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlOjpz
ZWVrKGZsb2F0IHRpbWUpCit7CisgICAgR3N0Q2xvY2tUaW1lIHNlYyA9IChHc3RDbG9ja1RpbWUp
KHRpbWUgKiBHU1RfU0VDT05EKTsKKworICAgIGlmICghbV9wbGF5QmluKQorICAgICAgICByZXR1
cm47CisKKyAgICBpZiAobV9pc1N0cmVhbWluZykKKyAgICAgICAgcmV0dXJuOworCisgICAgTE9H
X1ZFUkJPU0UoTWVkaWEsICJTZWVrOiAlIiBHU1RfVElNRV9GT1JNQVQsIEdTVF9USU1FX0FSR1Mo
c2VjKSk7CisgICAgLy8gRklYTUU6IFdoYXQgaGFwcGVucyB3aGVuIHRoZSBzZWVrZWQgcG9zaXRp
b24gaXMgbm90IGF2YWlsYWJsZT8KKyAgICBpZiAoIWdzdF9lbGVtZW50X3NlZWsoIG1fcGxheUJp
biwgbV9yYXRlLAorICAgICAgICAgICAgR1NUX0ZPUk1BVF9USU1FLAorICAgICAgICAgICAgKEdz
dFNlZWtGbGFncykoR1NUX1NFRUtfRkxBR19GTFVTSCksCisgICAgICAgICAgICBHU1RfU0VFS19U
WVBFX1NFVCwgc2VjLAorICAgICAgICAgICAgR1NUX1NFRUtfVFlQRV9OT05FLCBHU1RfQ0xPQ0tf
VElNRV9OT05FKSkKKyAgICAgICAgTE9HX1ZFUkJPU0UoTWVkaWEsICJTZWVrIHRvICVmIGZhaWxl
ZCIsIHRpbWUpOworfQorCit2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZTo6c2V0RW5kVGltZShmbG9h
dCB0aW1lKQoreworICAgIGlmICghbV9wbGF5QmluKQorICAgICAgICByZXR1cm47CisgICAgaWYg
KG1faXNTdHJlYW1pbmcpCisgICAgICAgIHJldHVybjsKKyAgICBpZiAobV9lbmRUaW1lICE9IHRp
bWUpIHsKKyAgICAgICAgbV9lbmRUaW1lID0gdGltZTsKKyAgICAgICAgR3N0Q2xvY2tUaW1lIHN0
YXJ0ID0gKEdzdENsb2NrVGltZSkoY3VycmVudFRpbWUoKSAqIEdTVF9TRUNPTkQpOworICAgICAg
ICBHc3RDbG9ja1RpbWUgZW5kICAgPSAoR3N0Q2xvY2tUaW1lKSh0aW1lICogR1NUX1NFQ09ORCk7
CisgICAgICAgIExPR19WRVJCT1NFKE1lZGlhLCAic2V0RW5kVGltZTogJSIgR1NUX1RJTUVfRk9S
TUFULCBHU1RfVElNRV9BUkdTKGVuZCkpOworICAgICAgICAvLyBGSVhNRTogV2hhdCBoYXBwZW5z
IHdoZW4gdGhlIHNlZWtlZCBwb3NpdGlvbiBpcyBub3QgYXZhaWxhYmxlPworICAgICAgICBpZiAo
IWdzdF9lbGVtZW50X3NlZWsobV9wbGF5QmluLCBtX3JhdGUsCisgICAgICAgICAgICAgICAgR1NU
X0ZPUk1BVF9USU1FLAorICAgICAgICAgICAgICAgIChHc3RTZWVrRmxhZ3MpKEdTVF9TRUVLX0ZM
QUdfRkxVU0ggfCBHU1RfU0VFS19GTEFHX0FDQ1VSQVRFKSwKKyAgICAgICAgICAgICAgICBHU1Rf
U0VFS19UWVBFX1NFVCwgc3RhcnQsCisgICAgICAgICAgICAgICAgR1NUX1NFRUtfVFlQRV9TRVQs
IGVuZCkpCisgICAgICAgICAgICBMT0dfVkVSQk9TRShNZWRpYSwgIlNlZWsgdG8gJWYgZmFpbGVk
IiwgdGltZSk7CisgICAgfQorfQorCit2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZTo6c3RhcnRFbmRQ
b2ludFRpbWVySWZOZWVkZWQoKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7Cit9CisKK3ZvaWQg
TWVkaWFQbGF5ZXJQcml2YXRlOjpjYW5jZWxTZWVrKCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgp
OworfQorCit2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZTo6ZW5kUG9pbnRUaW1lckZpcmVkKFRpbWVy
PE1lZGlhUGxheWVyUHJpdmF0ZT4qKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7Cit9CisKK2Jv
b2wgTWVkaWFQbGF5ZXJQcml2YXRlOjpwYXVzZWQoKSBjb25zdAoreworICAgIHJldHVybiAhbV9z
dGFydGVkUGxheWluZzsKK30KKworYm9vbCBNZWRpYVBsYXllclByaXZhdGU6OnNlZWtpbmcoKSBj
b25zdAoreworICAgIHJldHVybiBmYWxzZTsKK30KKworLy8gUmV0dXJucyB0aGUgc2l6ZSBvZiB0
aGUgdmlkZW8KK0ludFNpemUgTWVkaWFQbGF5ZXJQcml2YXRlOjpuYXR1cmFsU2l6ZSgpIGNvbnN0
Cit7CisgICAgaWYgKCFoYXNWaWRlbygpKQorICAgICAgICByZXR1cm4gSW50U2l6ZSgpOworCisg
ICAgaW50IHggPSAwLCB5ID0gMDsKKyAgICBpZiAoR3N0UGFkKiBwYWQgPSBnc3RfZWxlbWVudF9n
ZXRfc3RhdGljX3BhZChtX3ZpZGVvU2luaywgInNpbmsiKSkgeworICAgICAgICBnc3RfdmlkZW9f
Z2V0X3NpemUoR1NUX1BBRChwYWQpLCAmeCwgJnkpOworICAgICAgICBnc3Rfb2JqZWN0X3VucmVm
KEdTVF9PQkpFQ1QocGFkKSk7CisgICAgfQorCisgICAgcmV0dXJuIEludFNpemUoeCwgeSk7Cit9
CisKK2Jvb2wgTWVkaWFQbGF5ZXJQcml2YXRlOjpoYXNWaWRlbygpIGNvbnN0Cit7CisgICAgZ2lu
dCBjdXJyZW50VmlkZW8gPSAtMTsKKyAgICBpZiAobV9wbGF5QmluKQorICAgICAgICBnX29iamVj
dF9nZXQoR19PQkpFQ1QobV9wbGF5QmluKSwgImN1cnJlbnQtdmlkZW8iLCAmY3VycmVudFZpZGVv
LCAwKTsKKyAgICByZXR1cm4gY3VycmVudFZpZGVvID4gLTE7Cit9CisKK3ZvaWQgTWVkaWFQbGF5
ZXJQcml2YXRlOjpzZXRWb2x1bWUoZmxvYXQgdm9sdW1lKQoreworICAgIG1fdm9sdW1lID0gdm9s
dW1lOworICAgIExPR19WRVJCT1NFKE1lZGlhLCAiVm9sdW1lIHRvICVmIiwgdm9sdW1lKTsKKyAg
ICBzZXRNdXRlZChmYWxzZSk7Cit9CisKK3ZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlOjpzZXRNdXRl
ZChib29sIGIpCit7CisgICAgaWYgKCFtX3BsYXlCaW4pCisgICAgICAgIHJldHVybjsKKworICAg
IGlmIChiKSB7CisgICAgICAgIGdfb2JqZWN0X2dldChHX09CSkVDVChtX3BsYXlCaW4pLCAidm9s
dW1lIiwgJm1fdm9sdW1lLCAwKTsKKyAgICAgICAgZ19vYmplY3Rfc2V0KEdfT0JKRUNUKG1fcGxh
eUJpbiksICJ2b2x1bWUiLCAoZG91YmxlKTAuMCwgMCk7CisgICAgfSBlbHNlCisgICAgICAgIGdf
b2JqZWN0X3NldChHX09CSkVDVChtX3BsYXlCaW4pLCAidm9sdW1lIiwgbV92b2x1bWUsIDApOwor
Cit9CisKK3ZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlOjpzZXRSYXRlKGZsb2F0IHJhdGUpCit7Cisg
ICAgaWYgKCFyYXRlKSB7CisgICAgICAgIGdzdF9lbGVtZW50X3NldF9zdGF0ZShtX3BsYXlCaW4s
IEdTVF9TVEFURV9QQVVTRUQpOworICAgICAgICByZXR1cm47CisgICAgfQorICAgIGlmIChtX2lz
U3RyZWFtaW5nKQorICAgICAgICByZXR1cm47CisKKyAgICBtX3JhdGUgPSByYXRlOworICAgIExP
R19WRVJCT1NFKE1lZGlhLCAiU2V0IFJhdGUgdG8gJWYiLCByYXRlKTsKKyAgICBpZiAoIWdzdF9l
bGVtZW50X3NlZWsobV9wbGF5QmluLCByYXRlLAorICAgICAgICAgICAgR1NUX0ZPUk1BVF9USU1F
LAorICAgICAgICAgICAgKEdzdFNlZWtGbGFncykoR1NUX1NFRUtfRkxBR19GTFVTSCB8IEdTVF9T
RUVLX0ZMQUdfQUNDVVJBVEUpLAorICAgICAgICAgICAgR1NUX1NFRUtfVFlQRV9TRVQsIChHc3RD
bG9ja1RpbWUpIChjdXJyZW50VGltZSgpICogR1NUX1NFQ09ORCksCisgICAgICAgICAgICBHU1Rf
U0VFS19UWVBFX1NFVCwgKEdzdENsb2NrVGltZSkgKG1fZW5kVGltZSAqIEdTVF9TRUNPTkQpKSkK
KyAgICAgICAgTE9HX1ZFUkJPU0UoTWVkaWEsICJTZXQgUmF0ZSB0byAlZiBmYWlsZWQiLCByYXRl
KTsKK30KKworaW50IE1lZGlhUGxheWVyUHJpdmF0ZTo6ZGF0YVJhdGUoKSBjb25zdAoreworICAg
IG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIDE7Cit9CisKK01lZGlhUGxheWVyOjpOZXR3
b3JrU3RhdGUgTWVkaWFQbGF5ZXJQcml2YXRlOjpuZXR3b3JrU3RhdGUoKSBjb25zdAoreworICAg
IHJldHVybiBtX25ldHdvcmtTdGF0ZTsKK30KKworTWVkaWFQbGF5ZXI6OlJlYWR5U3RhdGUgTWVk
aWFQbGF5ZXJQcml2YXRlOjpyZWFkeVN0YXRlKCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9yZWFk
eVN0YXRlOworfQorCitmbG9hdCBNZWRpYVBsYXllclByaXZhdGU6Om1heFRpbWVCdWZmZXJlZCgp
IGNvbnN0Cit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICBMT0dfVkVSQk9TRShNZWRpYSwg
Im1heFRpbWVCdWZmZXJlZCIpOworICAgIC8vIHJ0c3Agc3RyZWFtcyBhcmUgbm90IGJ1ZmZlcmVk
CisgICAgcmV0dXJuIG1faXNTdHJlYW1pbmcgPyAwIDogbWF4VGltZUxvYWRlZCgpOworfQorCitm
bG9hdCBNZWRpYVBsYXllclByaXZhdGU6Om1heFRpbWVTZWVrYWJsZSgpIGNvbnN0Cit7CisgICAg
Ly8gVE9ETworICAgIExPR19WRVJCT1NFKE1lZGlhLCAibWF4VGltZVNlZWthYmxlIik7CisgICAg
aWYgKG1faXNTdHJlYW1pbmcpCisgICAgICAgIHJldHVybiBudW1lcmljX2xpbWl0czxmbG9hdD46
OmluZmluaXR5KCk7CisgICAgLy8gaW5maW5pdGUgZHVyYXRpb24gbWVhbnMgbGl2ZSBzdHJlYW0K
KyAgICByZXR1cm4gbWF4VGltZUxvYWRlZCgpOworfQorCitmbG9hdCBNZWRpYVBsYXllclByaXZh
dGU6Om1heFRpbWVMb2FkZWQoKSBjb25zdAoreworICAgIC8vIFRPRE8KKyAgICBMT0dfVkVSQk9T
RShNZWRpYSwgIm1heFRpbWVMb2FkZWQiKTsKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJl
dHVybiBkdXJhdGlvbigpOworfQorCit1bnNpZ25lZCBNZWRpYVBsYXllclByaXZhdGU6OmJ5dGVz
TG9hZGVkKCkgY29uc3QKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIExPR19WRVJCT1NF
KE1lZGlhLCAiYnl0ZXNMb2FkZWQiKTsKKyAgICAvKmlmICghbV9wbGF5QmluKQorICAgICAgICBy
ZXR1cm4gMDsKKyAgICBmbG9hdCBkdXIgPSBkdXJhdGlvbigpOworICAgIGZsb2F0IG1heFRpbWUg
PSBtYXhUaW1lTG9hZGVkKCk7CisgICAgaWYgKCFkdXIpCisgICAgICAgIHJldHVybiAwOyovCisg
ICAgcmV0dXJuIDE7IC8vIHRvdGFsQnl0ZXMoKSAqIG1heFRpbWUgLyBkdXI7Cit9CisKK2Jvb2wg
TWVkaWFQbGF5ZXJQcml2YXRlOjp0b3RhbEJ5dGVzS25vd24oKSBjb25zdAoreworICAgIG5vdElt
cGxlbWVudGVkKCk7CisgICAgTE9HX1ZFUkJPU0UoTWVkaWEsICJ0b3RhbEJ5dGVzS25vd24iKTsK
KyAgICByZXR1cm4gdG90YWxCeXRlcygpID4gMDsKK30KKwordW5zaWduZWQgTWVkaWFQbGF5ZXJQ
cml2YXRlOjp0b3RhbEJ5dGVzKCkgY29uc3QKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAg
IExPR19WRVJCT1NFKE1lZGlhLCAidG90YWxCeXRlcyIpOworICAgIGlmICghbV9wbGF5QmluKQor
ICAgICAgICByZXR1cm4gMDsKKworICAgIGlmICghbV9zb3VyY2UpCisgICAgICAgIHJldHVybiAw
OworCisgICAgLy8gRG8gc29tZXRoaW5nIHdpdGggbV9zb3VyY2UgdG8gZ2V0IHRoZSB0b3RhbCBi
eXRlcyBvZiB0aGUgbWVkaWEKKworICAgIHJldHVybiAxMDA7Cit9CisKK3ZvaWQgTWVkaWFQbGF5
ZXJQcml2YXRlOjpjYW5jZWxMb2FkKCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworfQorCit2
b2lkIE1lZGlhUGxheWVyUHJpdmF0ZTo6dXBkYXRlU3RhdGVzKCkKK3sKKyAgICAvLyBUaGVyZSBp
cyBubyAoa25vd24pIHdheSB0byBnZXQgc3VjaCBsZXZlbCBvZiBpbmZvcm1hdGlvbiBhYm91dAor
ICAgIC8vIHRoZSBzdGF0ZSBvZiBHU3RyZWFtZXIsIHRoZXJlZm9yZSwgd2hlbiBpbiBQQVVTRUQg
c3RhdGUsCisgICAgLy8gd2UgYXJlIHN1cmUgd2UgY2FuIGRpc3BsYXkgdGhlIGZpcnN0IGZyYW1l
IGFuZCBnbyB0byBwbGF5CisKKyAgICBNZWRpYVBsYXllcjo6TmV0d29ya1N0YXRlIG9sZE5ldHdv
cmtTdGF0ZSA9IG1fbmV0d29ya1N0YXRlOworICAgIE1lZGlhUGxheWVyOjpSZWFkeVN0YXRlIG9s
ZFJlYWR5U3RhdGUgPSBtX3JlYWR5U3RhdGU7CisgICAgR3N0U3RhdGUgc3RhdGU7CisgICAgR3N0
U3RhdGUgcGVuZGluZzsKKworICAgIGlmICghbV9wbGF5QmluKQorICAgICAgICByZXR1cm47CisK
KyAgICBHc3RTdGF0ZUNoYW5nZVJldHVybiByZXQgPSBnc3RfZWxlbWVudF9nZXRfc3RhdGUobV9w
bGF5QmluLAorICAgICAgICAmc3RhdGUsICZwZW5kaW5nLCAyNTAgKiBHU1RfTlNFQ09ORCk7CisK
KyAgICBzd2l0Y2ggKHJldCkgeworICAgIGNhc2UgR1NUX1NUQVRFX0NIQU5HRV9TVUNDRVNTOgor
ICAgICAgICBMT0dfVkVSQk9TRShNZWRpYSwgIlN0YXRlOiAlcywgcGVuZGluZzogJXMiLAorICAg
ICAgICAgICAgZ3N0X2VsZW1lbnRfc3RhdGVfZ2V0X25hbWUoc3RhdGUpLAorICAgICAgICAgICAg
Z3N0X2VsZW1lbnRfc3RhdGVfZ2V0X25hbWUocGVuZGluZykpOworCisgICAgICAgIGlmIChzdGF0
ZSA9PSBHU1RfU1RBVEVfUkVBRFkpIHsKKyAgICAgICAgICAgIG1fcmVhZHlTdGF0ZSA9IE1lZGlh
UGxheWVyOjpIYXZlRW5vdWdoRGF0YTsKKyAgICAgICAgfSBlbHNlIGlmIChzdGF0ZSA9PSBHU1Rf
U1RBVEVfUEFVU0VEKQorICAgICAgICAgICAgbV9yZWFkeVN0YXRlID0gTWVkaWFQbGF5ZXI6Okhh
dmVFbm91Z2hEYXRhOworCisgICAgICAgIG1fbmV0d29ya1N0YXRlID0gTWVkaWFQbGF5ZXI6Okxv
YWRlZDsKKworICAgICAgICBnX29iamVjdF9nZXQobV9wbGF5QmluLCAic291cmNlIiwgJm1fc291
cmNlLCAwKTsKKyAgICAgICAgaWYgKCFtX3NvdXJjZSkKKyAgICAgICAgICAgIExPR19WRVJCT1NF
KE1lZGlhLCAibV9zb3VyY2UgaXMgMCIpOworICAgICAgICBicmVhazsKKyAgICBjYXNlIEdTVF9T
VEFURV9DSEFOR0VfQVNZTkM6CisgICAgICAgIExPR19WRVJCT1NFKE1lZGlhLCAiQXN5bmM6IFN0
YXRlOiAlcywgcGVuZGluZzogJXMiLAorICAgICAgICAgICAgZ3N0X2VsZW1lbnRfc3RhdGVfZ2V0
X25hbWUoc3RhdGUpLAorICAgICAgICAgICAgZ3N0X2VsZW1lbnRfc3RhdGVfZ2V0X25hbWUocGVu
ZGluZykpOworICAgICAgICAvLyBDaGFuZ2UgaW4gcHJvZ3Jlc3MKKyAgICAgICAgcmV0dXJuOwor
ICAgICAgICBicmVhazsKKyAgICBjYXNlIEdTVF9TVEFURV9DSEFOR0VfTk9fUFJFUk9MTDoKKyAg
ICAgICAgTE9HX1ZFUkJPU0UoTWVkaWEsICJObyBwcmVyb2xsOiBTdGF0ZTogJXMsIHBlbmRpbmc6
ICVzIiwKKyAgICAgICAgICAgIGdzdF9lbGVtZW50X3N0YXRlX2dldF9uYW1lKHN0YXRlKSwKKyAg
ICAgICAgICAgIGdzdF9lbGVtZW50X3N0YXRlX2dldF9uYW1lKHBlbmRpbmcpKTsKKyAgICAgICAg
aWYgKHN0YXRlID09IEdTVF9TVEFURV9SRUFEWSkgeworICAgICAgICAgICAgbV9yZWFkeVN0YXRl
ID0gTWVkaWFQbGF5ZXI6OkhhdmVGdXR1cmVEYXRhOworICAgICAgICB9IGVsc2UgaWYgKHN0YXRl
ID09IEdTVF9TVEFURV9QQVVTRUQpCisgICAgICAgICAgICBtX3JlYWR5U3RhdGUgPSBNZWRpYVBs
YXllcjo6SGF2ZUN1cnJlbnREYXRhOworCisgICAgICAgIG1fbmV0d29ya1N0YXRlID0gTWVkaWFQ
bGF5ZXI6OkxvYWRpbmc7CisgICAgICAgIGJyZWFrOworICAgIGRlZmF1bHQ6CisgICAgICAgIExP
R19WRVJCT1NFKE1lZGlhLCAiRWxzZSA6ICVkIiwgcmV0KTsKKyAgICAgICAgYnJlYWs7CisgICAg
fQorCisgICAgaWYgKHNlZWtpbmcoKSkKKyAgICAgICAgbV9yZWFkeVN0YXRlID0gTWVkaWFQbGF5
ZXI6OkhhdmVOb3RoaW5nOworCisgICAgaWYgKG1fbmV0d29ya1N0YXRlICE9IG9sZE5ldHdvcmtT
dGF0ZSkgeworICAgICAgICBMT0dfVkVSQk9TRShNZWRpYSwgIk5ldHdvcmsgU3RhdGUgQ2hhbmdl
ZCBmcm9tICV1IHRvICV1IiwKKyAgICAgICAgICAgIG9sZE5ldHdvcmtTdGF0ZSwgbV9uZXR3b3Jr
U3RhdGUpOworICAgICAgICBtX3BsYXllci0+bmV0d29ya1N0YXRlQ2hhbmdlZCgpOworICAgIH0K
KyAgICBpZiAobV9yZWFkeVN0YXRlICE9IG9sZFJlYWR5U3RhdGUpIHsKKyAgICAgICAgTE9HX1ZF
UkJPU0UoTWVkaWEsICJSZWFkeSBTdGF0ZSBDaGFuZ2VkIGZyb20gJXUgdG8gJXUiLAorICAgICAg
ICAgICAgb2xkUmVhZHlTdGF0ZSwgbV9yZWFkeVN0YXRlKTsKKyAgICAgICAgbV9wbGF5ZXItPnJl
YWR5U3RhdGVDaGFuZ2VkKCk7CisgICAgfQorfQorCit2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZTo6
bG9hZFN0YXRlQ2hhbmdlZCgpCit7CisgICAgdXBkYXRlU3RhdGVzKCk7Cit9CisKK3ZvaWQgTWVk
aWFQbGF5ZXJQcml2YXRlOjpyYXRlQ2hhbmdlZCgpCit7CisgICAgdXBkYXRlU3RhdGVzKCk7Cit9
CisKK3ZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlOjpzaXplQ2hhbmdlZCgpCit7CisgICAgbm90SW1w
bGVtZW50ZWQoKTsKK30KKwordm9pZCBNZWRpYVBsYXllclByaXZhdGU6OnRpbWVDaGFuZ2VkKCkK
K3sKKyAgICB1cGRhdGVTdGF0ZXMoKTsKKyAgICBtX3BsYXllci0+dGltZUNoYW5nZWQoKTsKK30K
Kwordm9pZCBNZWRpYVBsYXllclByaXZhdGU6OnZvbHVtZUNoYW5nZWQoKQoreworICAgIG1fcGxh
eWVyLT52b2x1bWVDaGFuZ2VkKCk7Cit9CisKK3ZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlOjpkaWRF
bmQoKQoreworICAgIG1faXNFbmRSZWFjaGVkID0gdHJ1ZTsKKyAgICBwYXVzZSgpOworICAgIHRp
bWVDaGFuZ2VkKCk7Cit9CisKK3ZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlOjpsb2FkaW5nRmFpbGVk
KCkKK3sKKyAgICBpZiAobV9uZXR3b3JrU3RhdGUgIT0gTWVkaWFQbGF5ZXI6Ok5ldHdvcmtFcnJv
cikgeworICAgICAgICBtX25ldHdvcmtTdGF0ZSA9IE1lZGlhUGxheWVyOjpOZXR3b3JrRXJyb3I7
CisgICAgICAgIG1fcGxheWVyLT5uZXR3b3JrU3RhdGVDaGFuZ2VkKCk7CisgICAgfQorICAgIGlm
IChtX3JlYWR5U3RhdGUgIT0gTWVkaWFQbGF5ZXI6OkhhdmVOb3RoaW5nKSB7CisgICAgICAgIG1f
cmVhZHlTdGF0ZSA9IE1lZGlhUGxheWVyOjpIYXZlTm90aGluZzsKKyAgICAgICAgbV9wbGF5ZXIt
PnJlYWR5U3RhdGVDaGFuZ2VkKCk7CisgICAgfQorfQorCit2b2lkIE1lZGlhUGxheWVyUHJpdmF0
ZTo6c2V0U2l6ZShjb25zdCBJbnRTaXplJiBzaXplKQoreworICAgIG1fc2l6ZSA9IHNpemU7Cit9
CisKK3ZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlOjpzZXRWaXNpYmxlKGJvb2wgdmlzaWJsZSkKK3sK
KyAgICBtX3Zpc2libGUgPSB2aXNpYmxlOworfQorCit2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZTo6
cmVwYWludCgpCit7CisgICAgbV9wbGF5ZXItPnJlcGFpbnQoKTsKK30KKwordm9pZCBNZWRpYVBs
YXllclByaXZhdGU6OnBhaW50KEdyYXBoaWNzQ29udGV4dCogY29udGV4dCwgY29uc3QgSW50UmVj
dCYgcmVjdCkKK3sKKyAgICBpZiAoY29udGV4dC0+cGFpbnRpbmdEaXNhYmxlZCgpKQorICAgICAg
ICByZXR1cm47CisKKyAgICBpZiAoIW1fdmlzaWJsZSkKKyAgICAgICAgcmV0dXJuOworCisgICAg
Ly8gVE9ETzogbV9zaXplIHZzIHJlY3Q/CisgICAgY2Fpcm9fdCogY3IgPSBjb250ZXh0LT5wbGF0
Zm9ybUNvbnRleHQoKTsKKworICAgIGNhaXJvX3NhdmUoY3IpOworICAgIGNhaXJvX3NldF9vcGVy
YXRvcihjciwgQ0FJUk9fT1BFUkFUT1JfU09VUkNFKTsKKyAgICBjYWlyb190cmFuc2xhdGUoY3Is
IHJlY3QueCgpLCByZWN0LnkoKSk7CisgICAgY2Fpcm9fcmVjdGFuZ2xlKGNyLCAwLCAwLCByZWN0
LndpZHRoKCksIHJlY3QuaGVpZ2h0KCkpOworICAgIGNhaXJvX3NldF9zb3VyY2Vfc3VyZmFjZShj
ciwgbV9zdXJmYWNlLCAwLCAwKTsKKyAgICBjYWlyb19maWxsKGNyKTsKKyAgICBjYWlyb19yZXN0
b3JlKGNyKTsKK30KKwordm9pZCBNZWRpYVBsYXllclByaXZhdGU6OmdldFN1cHBvcnRlZFR5cGVz
KEhhc2hTZXQ8U3RyaW5nPiYgdHlwZXMpCit7CisgICAgLy8gRklYTUU6IHF1ZXJ5IHRoZSBlbmdp
bmUgdG8gc2VlIHdoYXQgdHlwZXMgYXJlIHN1cHBvcnRlZAorICAgIG5vdEltcGxlbWVudGVkKCk7
CisgICAgdHlwZXMuYWRkKFN0cmluZygidmlkZW8veC10aGVvcmErb2dnIikpOworfQorCitNZWRp
YVBsYXllcjo6U3VwcG9ydHNUeXBlIE1lZGlhUGxheWVyUHJpdmF0ZTo6c3VwcG9ydHNUeXBlKGNv
bnN0IFN0cmluZyYgdHlwZSwgY29uc3QgU3RyaW5nJiBjb2RlY3MpCit7CisgICAgLy8gRklYTUU6
IHF1ZXJ5IHRoZSBlbmdpbmUgdG8gc2VlIHdoYXQgdHlwZXMgYXJlIHN1cHBvcnRlZAorICAgIG5v
dEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIHR5cGUgPT0gInZpZGVvL3gtdGhlb3JhK29nZyIg
PyAoY29kZWNzLmlzRW1wdHkoKSA/IE1lZGlhUGxheWVyOjpNYXlCZVN1cHBvcnRlZCA6IE1lZGlh
UGxheWVyOjpJc1N1cHBvcnRlZCkgOiBNZWRpYVBsYXllcjo6SXNOb3RTdXBwb3J0ZWQ7Cit9CisK
K3ZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlOjpjcmVhdGVHU1RQbGF5QmluKFN0cmluZyB1cmwpCit7
CisgICAgQVNTRVJUKCFtX3BsYXlCaW4pOworICAgIG1fcGxheUJpbiA9IGdzdF9lbGVtZW50X2Zh
Y3RvcnlfbWFrZSgicGxheWJpbiIsICJwbGF5Iik7CisKKyAgICBHc3RCdXMqIGJ1cyA9IGdzdF9w
aXBlbGluZV9nZXRfYnVzKEdTVF9QSVBFTElORShtX3BsYXlCaW4pKTsKKyAgICBnc3RfYnVzX2Fk
ZF9zaWduYWxfd2F0Y2goYnVzKTsKKyAgICBnX3NpZ25hbF9jb25uZWN0KGJ1cywgIm1lc3NhZ2U6
OmVycm9yIiwgR19DQUxMQkFDSyhtZWRpYVBsYXllclByaXZhdGVFcnJvckNhbGxiYWNrKSwgdGhp
cyk7CisgICAgZ19zaWduYWxfY29ubmVjdChidXMsICJtZXNzYWdlOjplb3MiLCBHX0NBTExCQUNL
KG1lZGlhUGxheWVyUHJpdmF0ZUVPU0NhbGxiYWNrKSwgdGhpcyk7CisgICAgZ19zaWduYWxfY29u
bmVjdChidXMsICJtZXNzYWdlOjpzdGF0ZS1jaGFuZ2VkIiwgR19DQUxMQkFDSyhtZWRpYVBsYXll
clByaXZhdGVTdGF0ZUNhbGxiYWNrKSwgdGhpcyk7CisgICAgZ19zaWduYWxfY29ubmVjdChidXMs
ICJtZXNzYWdlOjpidWZmZXJpbmciLCBHX0NBTExCQUNLKG1lZGlhUGxheWVyUHJpdmF0ZUJ1ZmZl
cmluZ0NhbGxiYWNrKSwgdGhpcyk7CisgICAgZ3N0X29iamVjdF91bnJlZihidXMpOworCisgICAg
Z19vYmplY3Rfc2V0KEdfT0JKRUNUKG1fcGxheUJpbiksICJ1cmkiLCB1cmwudXRmOCgpLmRhdGEo
KSwgMCk7CisKKyAgICBHc3RFbGVtZW50KiBhdWRpb1NpbmsgPSBnc3RfZWxlbWVudF9mYWN0b3J5
X21ha2UoImdjb25mYXVkaW9zaW5rIiwgMCk7CisgICAgbV92aWRlb1NpbmsgPSB3ZWJraXRfdmlk
ZW9fc2lua19uZXcobV9zdXJmYWNlKTsKKworICAgIGdfb2JqZWN0X3NldChtX3BsYXlCaW4sICJh
dWRpby1zaW5rIiwgYXVkaW9TaW5rLCAwKTsKKyAgICBnX29iamVjdF9zZXQobV9wbGF5QmluLCAi
dmlkZW8tc2luayIsIG1fdmlkZW9TaW5rLCAwKTsKKworICAgIGdfc2lnbmFsX2Nvbm5lY3QobV92
aWRlb1NpbmssICJyZXBhaW50LXJlcXVlc3RlZCIsIEdfQ0FMTEJBQ0sobWVkaWFQbGF5ZXJQcml2
YXRlUmVwYWludENhbGxiYWNrKSwgdGhpcyk7CisKKyAgICBzZXRWb2x1bWUobV92b2x1bWUpOwor
fQorCit9CisKKyNlbmRpZgorCkluZGV4OiBXZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBXZWJDb3JlL0NoYW5nZUxvZworKysgV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMiBA
QAorMjAxMC0wMy0wMSAgTGVhbmRybyBQZXJlaXJhICA8bGVhbmRyb0Bwcm9mdXNpb24ubW9iaT4K
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGRpbmcg
RUZMIHBvcnQgZmlsZXMgdG8gcGxhdGZvcm0vZ3JhcGhpY3MvZWZsLgorICAgICAgICBodHRwOi8v
d2Via2l0Lm9yZy9iLzM1NTMxCisKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9lZmwvTWVk
aWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyLmNwcDogQWRkZWQuCisKIDIwMTAtMDItMjYgIEFsZXgg
TWlsb3dza2kgIDxhbGV4QG1pbG93c2tpLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBLZW5u
ZXRoIFJvaGRlIENocmlzdGlhbnNlbi4K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>49825</attachid>
            <date>2010-03-02 11:34:14 -0800</date>
            <delta_ts>2010-03-04 06:27:01 -0800</delta_ts>
            <desc>Add EFL port files in WebCore/platform/graphics/efl (patch 2/2)</desc>
            <filename>webkit-efl-webcore_platform_graphics_efl-2.diff</filename>
            <type>text/plain</type>
            <size>13715</size>
            <attacher name="Leandro Pereira">leandro</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZWZsL0Zsb2F0UmVjdEVmbC5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gL2Rldi9udWxsCisrKyBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2VmbC9G
bG9hdFJlY3RFZmwuY3BwCkBAIC0wLDAgKzEsNDEgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIw
MDcgQWxwIFRva2VyIDxhbHBAYXRva2VyLmNvbT4KKyAqIENvcHlyaWdodCAoQykgMjAwOCBJTmRU
IC0gSW5zdGl0dXRvIE5va2lhIGRlIFRlY25vbG9naWEKKyAqIENvcHlyaWdodCAoQykgMjAwOS0y
MDEwIFByb0ZVU0lPTiBlbWJlZGRlZCBzeXN0ZW1zCisgKiBDb3B5cmlnaHQgKEMpIDIwMDktMjAx
MCBTYW1zdW5nIEVsZWN0cm9uaWNzCisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdh
cmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICogbW9kaWZ5IGl0IHVuZGVyIHRo
ZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKKyAqIExpY2Vuc2UgYXMg
cHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICogdmVy
c2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJz
aW9uLgorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0
IGl0IHdpbGwgYmUgdXNlZnVsLAorICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0
IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisgKiBMaWJyYXJ5IEdl
bmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiBZb3Ugc2hvdWxk
IGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBM
aWNlbnNlCisgKiBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkcu
TElCLiAgSWYgbm90LCB3cml0ZSB0bworICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwg
SW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwKKyAqIEJvc3RvbiwgTUEgMDIx
MTAtMTMwMSwgVVNBLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJGbG9h
dFJlY3QuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitGbG9hdFJlY3Q6OkZsb2F0UmVjdChj
b25zdCBFaW5hX1JlY3RhbmdsZSYgcikKKyAgICA6IG1fbG9jYXRpb24oRmxvYXRQb2ludChyLngs
IHIueSkpCisgICAgLCBtX3NpemUoci53LCByLmgpCit7Cit9CisKK0Zsb2F0UmVjdDo6b3BlcmF0
b3IgRWluYV9SZWN0YW5nbGUoKSBjb25zdCAvLyBOT0xJTlQKK3sKKyAgICBFaW5hX1JlY3Rhbmds
ZSByID0geyhpbnQpIHJvdW5kKHgoKSksIChpbnQpIHJvdW5kKHkoKSksIChpbnQpIHJvdW5kKHdp
ZHRoKCkpLCAoaW50KSByb3VuZChoZWlnaHQoKSl9OworICAgIHJldHVybiByOworfQorCit9CisK
SW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZWZsL0dseXBoUGFnZVRyZWVOb2RlRWZs
LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSAvZGV2L251bGwKKysrIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvZWZsL0dseXBoUGFnZVRyZWVOb2RlRWZsLmNwcApAQCAtMCwwICsxLDY3IEBACisvKgorICog
Q29weXJpZ2h0IChDKSAyMDA2LCAyMDA3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqIENvcHlyaWdodCAoQykgMjAwNiBNaWNoYWVsIEVtbWVsIG1pa2UuZW1tZWxAZ21haWwuY29t
CisgKiBDb3B5cmlnaHQgKEMpIDIwMDcgQWxwIFRva2VyIDxhbHAudG9rZXJAY29sbGFib3JhLmNv
LnVrPgorICogQ29weXJpZ2h0IChDKSAyMDA5LTIwMTAgUHJvRlVTSU9OIGVtYmVkZGVkIHN5c3Rl
bXMKKyAqIENvcHlyaWdodCAoQykgMjAwOS0yMDEwIFNhbXN1bmcgRWxlY3Ryb25pY3MKKyAqCisg
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqCisgKiAxLiAgUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCisgKiAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICAg
ZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRp
c3RyaWJ1dGlvbi4KKyAqIDMuICBOZWl0aGVyIHRoZSBuYW1lIG9mIEFwcGxlIENvbXB1dGVyLCBJ
bmMuICgiQXBwbGUiKSBub3IgdGhlIG5hbWVzIG9mCisgKiAgICAgaXRzIGNvbnRyaWJ1dG9ycyBt
YXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZAorICogICAg
IGZyb20gdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlz
c2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIEFORCBJVFMg
Q09OVFJJQlVUT1JTICJBUyBJUyIgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAorICogV0FS
UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQ
VVJQT1NFIEFSRQorICogRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgT1IgSVRT
IENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWQorICogRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMKKyAq
IChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsKKyAqIExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBP
UiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORAorICogT04gQU5ZIFRI
RU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRgorICogVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVk
ZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiR2x5cGhQYWdlVHJlZU5vZGUuaCIKKworI2luY2x1ZGUg
IlNpbXBsZUZvbnREYXRhLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworYm9vbCBHbHlwaFBh
Z2U6OmZpbGwodW5zaWduZWQgb2Zmc2V0LCB1bnNpZ25lZCBsZW5ndGgsIFVDaGFyKiBidWZmZXIs
IHVuc2lnbmVkIGJ1ZmZlckxlbmd0aCwgY29uc3QgU2ltcGxlRm9udERhdGEqIGZvbnREYXRhKQor
eworICAgIC8vIFRoZSBidWZmZXJMZW5ndGggd2lsbCBiZSBncmVhdGVyIHRoYW4gdGhlIGdseXBo
IHBhZ2Ugc2l6ZSBpZiB0aGUgYnVmZmVyIGhhcyBVbmljb2RlIHN1cHBsZW1lbnRhcnkgY2hhcmFj
dGVycy4KKyAgICAvLyBXZSB3b24ndCBzdXBwb3J0IHRoaXMgZm9yIG5vdy4KKyAgICBpZiAoYnVm
ZmVyTGVuZ3RoID4gR2x5cGhQYWdlOjpzaXplKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAg
ICBGVF9GYWNlIGZhY2UgPSBjYWlyb19mdF9zY2FsZWRfZm9udF9sb2NrX2ZhY2UoZm9udERhdGEt
PnBsYXRmb3JtRGF0YSgpLm1fc2NhbGVkRm9udCk7CisgICAgaWYgKCFmYWNlKQorICAgICAgICBy
ZXR1cm4gZmFsc2U7CisKKyAgICBib29sIGhhdmVHbHlwaHMgPSBmYWxzZTsKKyAgICBmb3IgKHVu
c2lnbmVkIGkgPSAwOyBpIDwgbGVuZ3RoOyBpKyspIHsKKyAgICAgICAgR2x5cGggZ2x5cGggPSBG
Y0ZyZWVUeXBlQ2hhckluZGV4KGZhY2UsIGJ1ZmZlcltpXSk7CisgICAgICAgIGlmICghZ2x5cGgp
CisgICAgICAgICAgICBzZXRHbHlwaERhdGFGb3JJbmRleChvZmZzZXQgKyBpLCAwLCAwKTsKKyAg
ICAgICAgZWxzZSB7CisgICAgICAgICAgICBzZXRHbHlwaERhdGFGb3JJbmRleChvZmZzZXQgKyBp
LCBnbHlwaCwgZm9udERhdGEpOworICAgICAgICAgICAgaGF2ZUdseXBocyA9IHRydWU7CisgICAg
ICAgIH0KKyAgICB9CisKKyAgICBjYWlyb19mdF9zY2FsZWRfZm9udF91bmxvY2tfZmFjZShmb250
RGF0YS0+cGxhdGZvcm1EYXRhKCkubV9zY2FsZWRGb250KTsKKworICAgIHJldHVybiBoYXZlR2x5
cGhzOworfQorCit9CkluZGV4OiBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2VmbC9JY29uRWZs
LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSAvZGV2L251bGwKKysrIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvZWZsL0ljb25FZmwuY3BwCkBAIC0wLDAgKzEsNjYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMp
IDIwMDYsIDIwMDcgQXBwbGUgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdo
dCAoQykgMjAwNyBIb2xnZXIgSGFucyBQZXRlciBGcmV5dGhlcgorICogQ29weXJpZ2h0IChDKSAy
MDA4IElOZFQgLSBJbnN0aXR1dG8gTm9raWEgZGUgVGVjbm9sb2dpYQorICogQ29weXJpZ2h0IChD
KSAyMDA5LTIwMTAgUHJvRlVTSU9OIGVtYmVkZGVkIHN5c3RlbXMKKyAqIENvcHlyaWdodCAoQykg
MjAwOS0yMDEwIFNhbXN1bmcgRWxlY3Ryb25pY3MKKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucworICogYXJlIG1ldDoKKyAqCisgKiAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiAg
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqIDMuICBO
ZWl0aGVyIHRoZSBuYW1lIG9mIEFwcGxlIENvbXB1dGVyLCBJbmMuICgiQXBwbGUiKSBub3IgdGhl
IG5hbWVzIG9mCisgKiAgICAgaXRzIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNl
IG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZAorICogICAgIGZyb20gdGhpcyBzb2Z0d2FyZSB3
aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIEFORCBJVFMgQ09OVFJJQlVUT1JTICJBUyBJUyIg
QU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAorICogV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQorICogRElTQ0xB
SU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFC
TEUgRk9SIEFOWQorICogRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhF
TVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMKKyAqIChJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsK
KyAqIExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORAorICogT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRSBPRgorICogVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisKKyNpbmNs
dWRlICJJY29uLmgiCisKKyNpbmNsdWRlICJHcmFwaGljc0NvbnRleHQuaCIKKyNpbmNsdWRlICJN
SU1FVHlwZVJlZ2lzdHJ5LmgiCisjaW5jbHVkZSAiTm90SW1wbGVtZW50ZWQuaCIKKyNpbmNsdWRl
ICJQYXNzUmVmUHRyLmgiCisjaW5jbHVkZSAiUGxhdGZvcm1TdHJpbmcuaCIKKworbmFtZXNwYWNl
IFdlYkNvcmUgeworCitJY29uOjpJY29uKCkKKyAgICA6IG1faWNvbigwKQoreworICAgIG5vdElt
cGxlbWVudGVkKCk7Cit9CisKK0ljb246On5JY29uKCkKK3sKK30KKworUGFzc1JlZlB0cjxJY29u
PiBJY29uOjpjcmVhdGVJY29uRm9yRmlsZXMoY29uc3QgVmVjdG9yPFN0cmluZz4mIGZpbGVuYW1l
cykKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiAwOworfQorCit2b2lkIElj
b246OnBhaW50KEdyYXBoaWNzQ29udGV4dCogY29udGV4dCwgY29uc3QgSW50UmVjdCYgcmVjdCkK
K3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworfQorCit9CkluZGV4OiBXZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2VmbC9JbWFnZUVmbC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gL2Rldi9udWxsCisrKyBX
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2VmbC9JbWFnZUVmbC5jcHAKQEAgLTAsMCArMSw2NyBA
QAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAwNiBBcHBsZSBDb21wdXRlciwgSW5jLiAgQWxsIHJp
Z2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAwOCBLZW5uZXRoIFJvaGRlIENocmlz
dGlhbnNlbi4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMDktMjAx
MCBQcm9GVVNJT04gZW1iZWRkZWQgc3lzdGVtcworICogQ29weXJpZ2h0IChDKSAyMDA5LTIwMTAg
U2Ftc3VuZyBFbGVjdHJvbmljcworICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBh
cmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgQVBQTEUgQ09NUFVURVIsIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
VEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBDT01QVVRFUiwgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVN
UExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRl
ICJJbWFnZS5oIgorCisjaW5jbHVkZSAiQml0bWFwSW1hZ2UuaCIKKworI2luY2x1ZGUgPGNhaXJv
Lmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKwordm9pZCBCaXRtYXBJbWFnZTo6aW5pdFBsYXRm
b3JtRGF0YSgpCit7Cit9CisKK3ZvaWQgQml0bWFwSW1hZ2U6OmludmFsaWRhdGVQbGF0Zm9ybURh
dGEoKQoreworfQorCitzdGF0aWMgUGFzc1JlZlB0cjxTaGFyZWRCdWZmZXI+IGxvYWRSZXNvdXJj
ZVNoYXJlZEJ1ZmZlckZhbGxiYWNrKCkKK3sKKyAgICByZXR1cm4gU2hhcmVkQnVmZmVyOjpjcmVh
dGUoKTsgLy8gVE9ETzogZmFsbGJhY2sgaW1hZ2U/Cit9CisKK3N0YXRpYyBQYXNzUmVmUHRyPFNo
YXJlZEJ1ZmZlcj4gbG9hZFJlc291cmNlU2hhcmVkQnVmZmVyKGNvbnN0IGNoYXIqIG5hbWUpCit7
CisgICAgUmVmUHRyPFNoYXJlZEJ1ZmZlcj4gYnVmZmVyID0gU2hhcmVkQnVmZmVyOjpjcmVhdGVX
aXRoQ29udGVudHNPZkZpbGUoU3RyaW5nOjpmb3JtYXQoREFUQV9ESVIgIi93ZWJraXQtMS4wL2lt
YWdlcy8lcy5wbmciLCBuYW1lKSk7CisgICAgaWYgKGJ1ZmZlcikKKyAgICAgICAgcmV0dXJuIGJ1
ZmZlci5yZWxlYXNlKCk7CisgICAgcmV0dXJuIGxvYWRSZXNvdXJjZVNoYXJlZEJ1ZmZlckZhbGxi
YWNrKCk7Cit9CisKK1Bhc3NSZWZQdHI8SW1hZ2U+IEltYWdlOjpsb2FkUGxhdGZvcm1SZXNvdXJj
ZShjb25zdCBjaGFyKiBuYW1lKQoreworICAgIFJlZlB0cjxCaXRtYXBJbWFnZT4gaW1nID0gQml0
bWFwSW1hZ2U6OmNyZWF0ZSgpOworICAgIFJlZlB0cjxTaGFyZWRCdWZmZXI+IGJ1ZmZlciA9IGxv
YWRSZXNvdXJjZVNoYXJlZEJ1ZmZlcihuYW1lKTsKKyAgICBpbWctPnNldERhdGEoYnVmZmVyLnJl
bGVhc2UoKSwgdHJ1ZSk7CisgICAgcmV0dXJuIGltZy5yZWxlYXNlKCk7Cit9CisKK30KSW5kZXg6
IFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZWZsL0ludFBvaW50RWZsLmNwcAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSAvZGV2L251bGwKKysrIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZWZsL0ludFBvaW50
RWZsLmNwcApAQCAtMCwwICsxLDQyIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDA3IEFscCBU
b2tlciA8YWxwQGF0b2tlci5jb20+CisgKiBDb3B5cmlnaHQgKEMpIDIwMDggSU5kVCAtIEluc3Rp
dHV0byBOb2tpYSBkZSBUZWNub2xvZ2lhCisgKiBDb3B5cmlnaHQgKEMpIDIwMDktMjAxMCBQcm9G
VVNJT04gZW1iZWRkZWQgc3lzdGVtcworICogQ29weXJpZ2h0IChDKSAyMDA5LTIwMTAgU2Ftc3Vu
ZyBFbGVjdHJvbmljcworICoKKyAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3Ug
Y2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMg
b2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCisgKiBMaWNlbnNlIGFzIHB1Ymxpc2hl
ZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAqIHZlcnNpb24gMiBv
ZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAq
CisgKiBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxs
IGJlIHVzZWZ1bCwKKyAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRo
ZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICogTGlicmFyeSBHZW5lcmFsIFB1
YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgorICogWW91IHNob3VsZCBoYXZlIHJl
Y2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQor
ICogYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElm
IG5vdCwgd3JpdGUgdG8KKyAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDUx
IEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsCisgKiBCb3N0b24sIE1BIDAyMTEwLTEzMDEs
IFVTQS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiSW50UG9pbnQuaCIK
KworI2luY2x1ZGUgPEV2YXMuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitJbnRQb2ludDo6
SW50UG9pbnQoY29uc3QgRXZhc19Qb2ludCYgcCkKKyAgICA6IG1feChwLngpCisgICAgLCBtX3ko
cC55KQoreworfQorCitJbnRQb2ludDo6b3BlcmF0b3IgRXZhc19Qb2ludCgpIGNvbnN0IC8vIE5P
TElOVAoreworICAgIEV2YXNfUG9pbnQgcCA9IHsgeCgpLCB5KCkgfTsKKyAgICByZXR1cm4gcDsK
K30KKworfQpJbmRleDogV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9lZmwvSW50UmVjdEVmbC5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gL2Rldi9udWxsCisrKyBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2VmbC9JbnRSZWN0RWZsLmNwcApAQCAtMCwwICsxLDQxIEBACisvKgorICogQ29weXJpZ2h0IChD
KSAyMDA3IEFscCBUb2tlciA8YWxwQGF0b2tlci5jb20+CisgKiBDb3B5cmlnaHQgKEMpIDIwMDgg
SU5kVCAtIEluc3RpdHV0byBOb2tpYSBkZSBUZWNub2xvZ2lhCisgKiBDb3B5cmlnaHQgKEMpIDIw
MDktMjAxMCBQcm9GVVNJT04gZW1iZWRkZWQgc3lzdGVtcworICogQ29weXJpZ2h0IChDKSAyMDA5
LTIwMTAgU2Ftc3VuZyBFbGVjdHJvbmljcworICoKKyAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNv
ZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAqIG1vZGlmeSBpdCB1bmRl
ciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCisgKiBMaWNlbnNl
IGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAq
IHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIg
dmVyc2lvbi4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUg
dGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0
aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiBNRVJDSEFOVEFCSUxJVFkgb3Ig
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICogTGlicmFy
eSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgorICogWW91IHNo
b3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJs
aWMgTGljZW5zZQorICogYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZ
SU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KKyAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRp
b24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsCisgKiBCb3N0b24sIE1B
IDAyMTEwLTEzMDEsIFVTQS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAi
SW50UmVjdC5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK0ludFJlY3Q6OkludFJlY3QoY29u
c3QgRWluYV9SZWN0YW5nbGUmIHIpCisgICAgOiBtX2xvY2F0aW9uKEludFBvaW50KHIueCwgci55
KSkKKyAgICAsIG1fc2l6ZShyLncsIHIuaCkKK3sKK30KKworSW50UmVjdDo6b3BlcmF0b3IgRWlu
YV9SZWN0YW5nbGUoKSBjb25zdCAvLyBOT0xJTlQKK3sKKyAgICBFaW5hX1JlY3RhbmdsZSByID0g
eyB4KCksIHkoKSwgd2lkdGgoKSwgaGVpZ2h0KCkgfTsKKyAgICByZXR1cm4gcjsKK30KKworfQor
CkluZGV4OiBXZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL0NoYW5nZUxv
ZworKysgV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNyBAQAorMjAxMC0wMy0wMiAgTGVh
bmRybyBQZXJlaXJhICA8bGVhbmRyb0Bwcm9mdXNpb24ubW9iaT4KKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgRUZMIHBvcnQgZmlsZXMgdG8gcGxh
dGZvcm0vZ3JhcGhpY3MvZWZsLgorICAgICAgICBodHRwOi8vd2Via2l0Lm9yZy9iLzM1NTM5CisK
KyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9lZmwvRmxvYXRSZWN0RWZsLmNwcDogQWRkZWQu
CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZWZsL0dseXBoUGFnZVRyZWVOb2RlRWZsLmNw
cDogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZWZsL0ljb25FZmwuY3BwOiBB
ZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9lZmwvSW1hZ2VFZmwuY3BwOiBBZGRl
ZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9lZmwvSW50UG9pbnRFZmwuY3BwOiBBZGRl
ZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9lZmwvSW50UmVjdEVmbC5jcHA6IEFkZGVk
LgorCiAyMDEwLTAzLTAxICBKYWtvYiBQZXRzb3ZpdHMgIDxqcGV0c292aXRzQHJpbS5jb20+CiAK
ICAgICAgICAgUmV2aWV3ZWQgYnkgRGlyayBTY2h1bHplLgo=
</data>
<flag name="review"
          id="32806"
          type_id="1"
          status="-"
          setter="kenneth"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>50009</attachid>
            <date>2010-03-04 06:27:01 -0800</date>
            <delta_ts>2010-03-04 07:41:50 -0800</delta_ts>
            <desc>Add EFL port files to WebCore/platform/graphics/efl (2/2)</desc>
            <filename>webcore_platform_graphics_efl-1.diff</filename>
            <type>text/plain</type>
            <size>12809</size>
            <attacher name="Leandro Pereira">leandro</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZWZsL0Zsb2F0UmVjdEVmbC5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gL2Rldi9udWxsCisrKyBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2VmbC9G
bG9hdFJlY3RFZmwuY3BwCkBAIC0wLDAgKzEsNDEgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIw
MDcgQWxwIFRva2VyIDxhbHBAYXRva2VyLmNvbT4KKyAqIENvcHlyaWdodCAoQykgMjAwOCBJTmRU
IC0gSW5zdGl0dXRvIE5va2lhIGRlIFRlY25vbG9naWEKKyAqIENvcHlyaWdodCAoQykgMjAwOS0y
MDEwIFByb0ZVU0lPTiBlbWJlZGRlZCBzeXN0ZW1zCisgKiBDb3B5cmlnaHQgKEMpIDIwMDktMjAx
MCBTYW1zdW5nIEVsZWN0cm9uaWNzCisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdh
cmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICogbW9kaWZ5IGl0IHVuZGVyIHRo
ZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKKyAqIExpY2Vuc2UgYXMg
cHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICogdmVy
c2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJz
aW9uLgorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0
IGl0IHdpbGwgYmUgdXNlZnVsLAorICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0
IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisgKiBMaWJyYXJ5IEdl
bmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiBZb3Ugc2hvdWxk
IGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBM
aWNlbnNlCisgKiBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkcu
TElCLiAgSWYgbm90LCB3cml0ZSB0bworICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwg
SW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwKKyAqIEJvc3RvbiwgTUEgMDIx
MTAtMTMwMSwgVVNBLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJGbG9h
dFJlY3QuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitGbG9hdFJlY3Q6OkZsb2F0UmVjdChj
b25zdCBFaW5hX1JlY3RhbmdsZSYgcikKKyAgICA6IG1fbG9jYXRpb24oRmxvYXRQb2ludChyLngs
IHIueSkpCisgICAgLCBtX3NpemUoci53LCByLmgpCit7Cit9CisKK0Zsb2F0UmVjdDo6b3BlcmF0
b3IgRWluYV9SZWN0YW5nbGUoKSBjb25zdCAvLyBOT0xJTlQKK3sKKyAgICBFaW5hX1JlY3Rhbmds
ZSByID0geyhpbnQpIHJvdW5kKHgoKSksIChpbnQpIHJvdW5kKHkoKSksIChpbnQpIHJvdW5kKHdp
ZHRoKCkpLCAoaW50KSByb3VuZChoZWlnaHQoKSl9OworICAgIHJldHVybiByOworfQorCit9CisK
SW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZWZsL0ZvbnRFZmwuY3BwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIC9kZXYvbnVsbAorKysgV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9lZmwvRm9udEVm
bC5jcHAKQEAgLTAsMCArMSw2NiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMTk5OSBMYXJzIEtu
b2xsIChrbm9sbEBrZGUub3JnKQorICogQ29weXJpZ2h0IChDKSAxOTk5IEFudHRpIEtvaXZpc3Rv
IChrb2l2aXN0b0BrZGUub3JnKQorICogQ29weXJpZ2h0IChDKSAyMDAwIERpcmsgTXVlbGxlciAo
bXVlbGxlckBrZGUub3JnKQorICogQ29weXJpZ2h0IChDKSAyMDAzLCAyMDA2IEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAwOCBJTmRUIC0gSW5zdGl0
dXRvIE5va2lhIGRlIFRlY25vbG9naWEKKyAqIENvcHlyaWdodCAoQykgMjAwOS0yMDEwIFByb0ZV
U0lPTiBlbWJlZGRlZCBzeXN0ZW1zCisgKiBDb3B5cmlnaHQgKEMpIDIwMDktMjAxMCBTYW1zdW5n
IEVsZWN0cm9uaWNzCisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBj
YW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBv
ZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKKyAqIExpY2Vuc2UgYXMgcHVibGlzaGVk
IGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICogdmVyc2lvbiAyIG9m
IHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorICoK
KyAqIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwg
YmUgdXNlZnVsLAorICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhl
IGltcGxpZWQgd2FycmFudHkgb2YKKyAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisgKiBMaWJyYXJ5IEdlbmVyYWwgUHVi
bGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiBZb3Ugc2hvdWxkIGhhdmUgcmVj
ZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisg
KiBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYg
bm90LCB3cml0ZSB0bworICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTEg
RnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwKKyAqIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwg
VVNBLgorICoKKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiRm9udC5oIgor
CisjaW5jbHVkZSAiR3JhcGhpY3NDb250ZXh0LmgiCisjaW5jbHVkZSAiTm90SW1wbGVtZW50ZWQu
aCIKKyNpbmNsdWRlICJTaW1wbGVGb250RGF0YS5oIgorCisjaW5jbHVkZSA8Y2Fpcm8uaD4KKwor
bmFtZXNwYWNlIFdlYkNvcmUgeworCit2b2lkIEZvbnQ6OmRyYXdDb21wbGV4VGV4dChHcmFwaGlj
c0NvbnRleHQqLCBjb25zdCBUZXh0UnVuJiwgY29uc3QgRmxvYXRQb2ludCYsIGludCBmcm9tLCBp
bnQgdG8pIGNvbnN0Cit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKK30KKworYm9vbCBGb250Ojpj
YW5SZXR1cm5GYWxsYmFja0ZvbnRzRm9yQ29tcGxleFRleHQoKQoreworICAgIHJldHVybiBmYWxz
ZTsKK30KKworZmxvYXQgRm9udDo6ZmxvYXRXaWR0aEZvckNvbXBsZXhUZXh0KGNvbnN0IFRleHRS
dW4mLCBIYXNoU2V0PGNvbnN0IFNpbXBsZUZvbnREYXRhKj4qKSBjb25zdAoreworICAgIG5vdElt
cGxlbWVudGVkKCk7CisgICAgcmV0dXJuIDAuMGY7Cit9CisKK2ludCBGb250OjpvZmZzZXRGb3JQ
b3NpdGlvbkZvckNvbXBsZXhUZXh0KGNvbnN0IFRleHRSdW4mLCBpbnQsIGJvb2wpIGNvbnN0Cit7
CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gMDsKK30KKworRmxvYXRSZWN0IEZv
bnQ6OnNlbGVjdGlvblJlY3RGb3JDb21wbGV4VGV4dChjb25zdCBUZXh0UnVuJiwgY29uc3QgSW50
UG9pbnQmLCBpbnQsIGludCwgaW50KSBjb25zdAoreworICAgIG5vdEltcGxlbWVudGVkKCk7Cisg
ICAgcmV0dXJuIEZsb2F0UmVjdCgpOworfQorCit9CkluZGV4OiBXZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2VmbC9JY29uRWZsLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSAvZGV2L251bGwKKysrIFdlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvZWZsL0ljb25FZmwuY3BwCkBAIC0wLDAgKzEsNjYgQEAKKy8q
CisgKiBDb3B5cmlnaHQgKEMpIDIwMDYsIDIwMDcgQXBwbGUgSW5jLiAgQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAwNyBIb2xnZXIgSGFucyBQZXRlciBGcmV5dGhlcgor
ICogQ29weXJpZ2h0IChDKSAyMDA4IElOZFQgLSBJbnN0aXR1dG8gTm9raWEgZGUgVGVjbm9sb2dp
YQorICogQ29weXJpZ2h0IChDKSAyMDA5LTIwMTAgUHJvRlVTSU9OIGVtYmVkZGVkIHN5c3RlbXMK
KyAqIENvcHlyaWdodCAoQykgMjAwOS0yMDEwIFNhbXN1bmcgRWxlY3Ryb25pY3MKKyAqCisgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqCisgKiAxLiAgUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCisgKiAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICAgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3Ry
aWJ1dGlvbi4KKyAqIDMuICBOZWl0aGVyIHRoZSBuYW1lIG9mIEFwcGxlIENvbXB1dGVyLCBJbmMu
ICgiQXBwbGUiKSBub3IgdGhlIG5hbWVzIG9mCisgKiAgICAgaXRzIGNvbnRyaWJ1dG9ycyBtYXkg
YmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZAorICogICAgIGZy
b20gdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lv
bi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIEFORCBJVFMgQ09O
VFJJQlVUT1JTICJBUyBJUyIgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAorICogV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQ
T1NFIEFSRQorICogRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgT1IgSVRTIENP
TlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWQorICogRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMKKyAqIChJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsKKyAqIExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBC
VVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORAorICogT04gQU5ZIFRIRU9S
WSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRgorICogVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAi
Y29uZmlnLmgiCisKKyNpbmNsdWRlICJJY29uLmgiCisKKyNpbmNsdWRlICJHcmFwaGljc0NvbnRl
eHQuaCIKKyNpbmNsdWRlICJNSU1FVHlwZVJlZ2lzdHJ5LmgiCisjaW5jbHVkZSAiTm90SW1wbGVt
ZW50ZWQuaCIKKyNpbmNsdWRlICJQYXNzUmVmUHRyLmgiCisjaW5jbHVkZSAiUGxhdGZvcm1TdHJp
bmcuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitJY29uOjpJY29uKCkKKyAgICA6IG1faWNv
bigwKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7Cit9CisKK0ljb246On5JY29uKCkKK3sKK30K
KworUGFzc1JlZlB0cjxJY29uPiBJY29uOjpjcmVhdGVJY29uRm9yRmlsZXMoY29uc3QgVmVjdG9y
PFN0cmluZz4mIGZpbGVuYW1lcykKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVy
biAwOworfQorCit2b2lkIEljb246OnBhaW50KEdyYXBoaWNzQ29udGV4dCogY29udGV4dCwgY29u
c3QgSW50UmVjdCYgcmVjdCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworfQorCit9CkluZGV4
OiBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2VmbC9JbWFnZUVmbC5jcHAKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gL2Rldi9udWxsCisrKyBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2VmbC9JbWFnZUVmbC5j
cHAKQEAgLTAsMCArMSw2NyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAwNiBBcHBsZSBDb21w
dXRlciwgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAwOCBL
ZW5uZXRoIFJvaGRlIENocmlzdGlhbnNlbi4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5
cmlnaHQgKEMpIDIwMDktMjAxMCBQcm9GVVNJT04gZW1iZWRkZWQgc3lzdGVtcworICogQ29weXJp
Z2h0IChDKSAyMDA5LTIwMTAgU2Ftc3VuZyBFbGVjdHJvbmljcworICoKKyAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAor
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIu
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQ09NUFVURVIsIElOQy4gYGBBUyBJUycn
IEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NM
QUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBDT01QVVRFUiwgSU5DLiBPUgorICogQ09O
VFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUws
IFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdP
T0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJV
U0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAq
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1Ig
VE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBB
TlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJj
b25maWcuaCIKKyNpbmNsdWRlICJJbWFnZS5oIgorCisjaW5jbHVkZSAiQml0bWFwSW1hZ2UuaCIK
KworI2luY2x1ZGUgPGNhaXJvLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKwordm9pZCBCaXRt
YXBJbWFnZTo6aW5pdFBsYXRmb3JtRGF0YSgpCit7Cit9CisKK3ZvaWQgQml0bWFwSW1hZ2U6Omlu
dmFsaWRhdGVQbGF0Zm9ybURhdGEoKQoreworfQorCitzdGF0aWMgUGFzc1JlZlB0cjxTaGFyZWRC
dWZmZXI+IGxvYWRSZXNvdXJjZVNoYXJlZEJ1ZmZlckZhbGxiYWNrKCkKK3sKKyAgICByZXR1cm4g
U2hhcmVkQnVmZmVyOjpjcmVhdGUoKTsgLy8gVE9ETzogZmFsbGJhY2sgaW1hZ2U/Cit9CisKK3N0
YXRpYyBQYXNzUmVmUHRyPFNoYXJlZEJ1ZmZlcj4gbG9hZFJlc291cmNlU2hhcmVkQnVmZmVyKGNv
bnN0IGNoYXIqIG5hbWUpCit7CisgICAgUmVmUHRyPFNoYXJlZEJ1ZmZlcj4gYnVmZmVyID0gU2hh
cmVkQnVmZmVyOjpjcmVhdGVXaXRoQ29udGVudHNPZkZpbGUoU3RyaW5nOjpmb3JtYXQoREFUQV9E
SVIgIi93ZWJraXQtMS4wL2ltYWdlcy8lcy5wbmciLCBuYW1lKSk7CisgICAgaWYgKGJ1ZmZlcikK
KyAgICAgICAgcmV0dXJuIGJ1ZmZlci5yZWxlYXNlKCk7CisgICAgcmV0dXJuIGxvYWRSZXNvdXJj
ZVNoYXJlZEJ1ZmZlckZhbGxiYWNrKCk7Cit9CisKK1Bhc3NSZWZQdHI8SW1hZ2U+IEltYWdlOjps
b2FkUGxhdGZvcm1SZXNvdXJjZShjb25zdCBjaGFyKiBuYW1lKQoreworICAgIFJlZlB0cjxCaXRt
YXBJbWFnZT4gaW1nID0gQml0bWFwSW1hZ2U6OmNyZWF0ZSgpOworICAgIFJlZlB0cjxTaGFyZWRC
dWZmZXI+IGJ1ZmZlciA9IGxvYWRSZXNvdXJjZVNoYXJlZEJ1ZmZlcihuYW1lKTsKKyAgICBpbWct
PnNldERhdGEoYnVmZmVyLnJlbGVhc2UoKSwgdHJ1ZSk7CisgICAgcmV0dXJuIGltZy5yZWxlYXNl
KCk7Cit9CisKK30KSW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZWZsL0ludFBvaW50
RWZsLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSAvZGV2L251bGwKKysrIFdlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvZWZsL0ludFBvaW50RWZsLmNwcApAQCAtMCwwICsxLDQyIEBACisvKgorICogQ29weXJp
Z2h0IChDKSAyMDA3IEFscCBUb2tlciA8YWxwQGF0b2tlci5jb20+CisgKiBDb3B5cmlnaHQgKEMp
IDIwMDggSU5kVCAtIEluc3RpdHV0byBOb2tpYSBkZSBUZWNub2xvZ2lhCisgKiBDb3B5cmlnaHQg
KEMpIDIwMDktMjAxMCBQcm9GVVNJT04gZW1iZWRkZWQgc3lzdGVtcworICogQ29weXJpZ2h0IChD
KSAyMDA5LTIwMTAgU2Ftc3VuZyBFbGVjdHJvbmljcworICoKKyAqIFRoaXMgbGlicmFyeSBpcyBm
cmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAqIG1vZGlmeSBp
dCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCisgKiBM
aWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRo
ZXIKKyAqIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkg
bGF0ZXIgdmVyc2lvbi4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhl
IGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5U
WTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiBNRVJDSEFOVEFCSUxJ
VFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICog
TGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgorICog
WW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJh
bCBQdWJsaWMgTGljZW5zZQorICogYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmls
ZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KKyAqIHRoZSBGcmVlIFNvZnR3YXJlIEZv
dW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsCisgKiBCb3N0
b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5j
bHVkZSAiSW50UG9pbnQuaCIKKworI2luY2x1ZGUgPEV2YXMuaD4KKworbmFtZXNwYWNlIFdlYkNv
cmUgeworCitJbnRQb2ludDo6SW50UG9pbnQoY29uc3QgRXZhc19Qb2ludCYgcCkKKyAgICA6IG1f
eChwLngpCisgICAgLCBtX3kocC55KQoreworfQorCitJbnRQb2ludDo6b3BlcmF0b3IgRXZhc19Q
b2ludCgpIGNvbnN0IC8vIE5PTElOVAoreworICAgIEV2YXNfUG9pbnQgcCA9IHsgeCgpLCB5KCkg
fTsKKyAgICByZXR1cm4gcDsKK30KKworfQpJbmRleDogV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9lZmwvSW50UmVjdEVmbC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gL2Rldi9udWxsCisrKyBXZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2VmbC9JbnRSZWN0RWZsLmNwcApAQCAtMCwwICsxLDQxIEBACisv
KgorICogQ29weXJpZ2h0IChDKSAyMDA3IEFscCBUb2tlciA8YWxwQGF0b2tlci5jb20+CisgKiBD
b3B5cmlnaHQgKEMpIDIwMDggSU5kVCAtIEluc3RpdHV0byBOb2tpYSBkZSBUZWNub2xvZ2lhCisg
KiBDb3B5cmlnaHQgKEMpIDIwMDktMjAxMCBQcm9GVVNJT04gZW1iZWRkZWQgc3lzdGVtcworICog
Q29weXJpZ2h0IChDKSAyMDA5LTIwMTAgU2Ftc3VuZyBFbGVjdHJvbmljcworICoKKyAqIFRoaXMg
bGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IK
KyAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwg
UHVibGljCisgKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3Vu
ZGF0aW9uOyBlaXRoZXIKKyAqIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIg
b3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZGlzdHJp
YnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqIGJ1dCBXSVRIT1VU
IEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiBN
RVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUg
dGhlIEdOVQorICogTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFp
bHMuCisgKgorICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExp
YnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICogYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7
IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KKyAqIHRoZSBGcmVl
IFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxv
b3IsCisgKiBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KKyAqLworCisjaW5jbHVkZSAiY29u
ZmlnLmgiCisjaW5jbHVkZSAiSW50UmVjdC5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK0lu
dFJlY3Q6OkludFJlY3QoY29uc3QgRWluYV9SZWN0YW5nbGUmIHIpCisgICAgOiBtX2xvY2F0aW9u
KEludFBvaW50KHIueCwgci55KSkKKyAgICAsIG1fc2l6ZShyLncsIHIuaCkKK3sKK30KKworSW50
UmVjdDo6b3BlcmF0b3IgRWluYV9SZWN0YW5nbGUoKSBjb25zdCAvLyBOT0xJTlQKK3sKKyAgICBF
aW5hX1JlY3RhbmdsZSByID0geyB4KCksIHkoKSwgd2lkdGgoKSwgaGVpZ2h0KCkgfTsKKyAgICBy
ZXR1cm4gcjsKK30KKworfQorCkluZGV4OiBXZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBXZWJDb3JlL0NoYW5nZUxvZworKysgV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNyBA
QAorMjAxMC0wMy0wNCAgTGVhbmRybyBQZXJlaXJhICA8bGVhbmRyb0Bwcm9mdXNpb24ubW9iaT4K
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgRUZM
IHBvcnQgZmlsZXMgdG8gcGxhdGZvcm0vZ3JhcGhpY3MvZWZsLgorICAgICAgICBodHRwOi8vd2Vi
a2l0Lm9yZy9iLzM1NTM5CisKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9lZmwvRmxvYXRS
ZWN0RWZsLmNwcDogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZWZsL0ZvbnRF
ZmwuY3BwOiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9lZmwvSWNvbkVmbC5j
cHA6IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2VmbC9JbWFnZUVmbC5jcHA6
IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2VmbC9JbnRQb2ludEVmbC5jcHA6
IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2VmbC9JbnRSZWN0RWZsLmNwcDog
QWRkZWQuCisKIDIwMTAtMDMtMDQgIEFuZHJleSBLb3N5YWtvdiAgPGNhc2VxQGNocm9taXVtLm9y
Zz4KIAogICAgICAgICBSZXZpZXdlZCBieSBQYXZlbCBGZWxkbWFuLgo=
</data>

          </attachment>
      

    </bug>

</bugzilla>