<?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>106026</bug_id>
          
          <creation_ts>2013-01-03 11:40:37 -0800</creation_ts>
          <short_desc>[CSS Exclusions] The ExclusionPolygon classes should allow more than one type of &quot;Edge&quot; class</short_desc>
          <delta_ts>2013-01-04 08:59:28 -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>CSS</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>
          
          <blocked>103429</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Hans Muller">giles_joplin</reporter>
          <assigned_to name="Hans Muller">giles_joplin</assigned_to>
          <cc>eric</cc>
    
    <cc>ojan.autocc</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>799523</commentid>
    <comment_count>0</comment_count>
    <who name="Hans Muller">giles_joplin</who>
    <bug_when>2013-01-03 11:40:37 -0800</bug_when>
    <thetext>The &quot;first fit&quot; algorithm for polygons, http://hansmuller-webkit.blogspot.com/2012/08/revised-algorithm-for-finding-first.html, depends on temporary &quot;offset&quot; edges.  Offset edges can be defined simply, as a pair of vertices.  

The existing ExclusionPolygonEdge struct similarly manages a pair of vertices however its implemention, and some of its operations, are specific to the ExclusionPolygon class.   ExclusionPolygonEdge manages a pair of indices into an ExclusionPolygon&apos;s array of vertices and provides operations for moving forwards and backwards in the polygon&apos;s vertex chain.

Both edge types will have some operations in common.  For example: 

    bool overlapsRect(const FloatRect&amp;) const;
    bool intersection(const VertexPair&amp;, FloatPoint&amp;) const;

An absract VertexPair class would enable this.  The ExclusionPolygonEdge struct should become a class and inherit from VertexPair.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>799697</commentid>
    <comment_count>1</comment_count>
      <attachid>181224</attachid>
    <who name="Hans Muller">giles_joplin</who>
    <bug_when>2013-01-03 14:42:37 -0800</bug_when>
    <thetext>Created attachment 181224
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>800218</commentid>
    <comment_count>2</comment_count>
      <attachid>181224</attachid>
    <who name="Dirk Schulze">krit</who>
    <bug_when>2013-01-04 08:36:14 -0800</bug_when>
    <thetext>Comment on attachment 181224
Patch

LGTM. r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>800230</commentid>
    <comment_count>3</comment_count>
      <attachid>181224</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-01-04 08:59:25 -0800</bug_when>
    <thetext>Comment on attachment 181224
Patch

Clearing flags on attachment: 181224

Committed r138802: &lt;http://trac.webkit.org/changeset/138802&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>800231</commentid>
    <comment_count>4</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-01-04 08:59:28 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>181224</attachid>
            <date>2013-01-03 14:42:37 -0800</date>
            <delta_ts>2013-01-04 08:59:25 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>tmp.patch</filename>
            <type>text/plain</type>
            <size>8626</size>
            <attacher name="Hans Muller">giles_joplin</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCBmZjhmZjIyLi43NmU3NDg0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzQg
QEAKKzIwMTMtMDEtMDMgIEhhbnMgTXVsbGVyICA8aG11bGxlckBhZG9iZS5jb20+CisKKyAgICAg
ICAgW0NTUyBFeGNsdXNpb25zXSBUaGUgRXhjbHVzaW9uUG9seWdvbiBjbGFzc2VzIHNob3VsZCBh
bGxvdyBtb3JlIHRoYW4gb25lIHR5cGUgb2YgIkVkZ2UiIGNsYXNzCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDYwMjYKKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBSZWZhY3RvcmVkIHRoZSBFeGNsdXNpb25Q
b2x5Z29uRWRnZSBjbGFzcyB0byBwYXZlIHRoZSB3YXkgZm9yIGEgc2ltaWxhcgorICAgICAgICBP
ZmZzZXRFZGdlIGNsYXNzLiBUaGUgbmV3IFZlcnRleFBhaXIgYWJzdHJhY3QgYmFzZSBjbGFzcyBw
cm92aWRlcyB0aGUgY29tbW9uCisgICAgICAgIHN0YXRlIGFuZCBvcGVyYXRpb25zLiBFeGNsdXNp
b25Qb2x5Z29uRWRnZSBub3cgZXh0ZW5kcyBWZXJ0ZXhQYWlyIGFuZCBkZWZpbmVzCisgICAgICAg
IEV4Y2x1c2lvblBvbHlnb24gYXMgYSBmcmllbmQsIHNpbmNlIHRoZSBFeGNsdXNpb25Qb2x5Z29u
IGNvbnN0cnVjdG9yIGluaXRpYWxpemVzCisgICAgICAgIGl0cyBwcml2YXRlIHN0YXRlLgorCisg
ICAgICAgICogcmVuZGVyaW5nL0V4Y2x1c2lvblBvbHlnb24uY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6RXhjbHVzaW9uUG9seWdvbjo6RXhjbHVzaW9uUG9seWdvbik6IFVzZSBFeGNsdXNpb25Qb2x5
Z29uRWRnZSBhY2Nlc3NvcnMgaW5zdGVhZCBvZiBkaXJlY3QgZmllbGQgYWNjZXNzLgorICAgICAg
ICAoV2ViQ29yZTo6Z2V0VmVydGV4SW50ZXJzZWN0aW9uVmVydGljZXMpOiBEaXR0by4KKyAgICAg
ICAgKiByZW5kZXJpbmcvRXhjbHVzaW9uUG9seWdvbi5oOgorICAgICAgICAoVmVydGV4UGFpcik6
IE5ldyBhYnN0cmFjdCBiYXNlIGNsYXNzLgorICAgICAgICAoV2ViQ29yZTo6VmVydGV4UGFpcjo6
flZlcnRleFBhaXIpOgorICAgICAgICAoV2ViQ29yZTo6VmVydGV4UGFpcjo6bWluWCk6IFRoaXMg
bWV0aG9kIHdhcyBkZWZpbmVkIGluIEV4Y2x1c2lvblBvbHlnb25FZGdlLgorICAgICAgICAoV2Vi
Q29yZTo6VmVydGV4UGFpcjo6bWluWSk6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6VmVydGV4
UGFpcjo6bWF4WCk6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6VmVydGV4UGFpcjo6bWF4WSk6
IERpdHRvLgorICAgICAgICAoRXhjbHVzaW9uUG9seWdvbkVkZ2UpOiBOb3cgZXh0ZW5kcyBWZXJ0
ZXhQYWlyLgorICAgICAgICAoV2ViQ29yZTo6RXhjbHVzaW9uUG9seWdvbkVkZ2U6OnByZXZpb3Vz
RWRnZSk6IFJlZmVyIHRvIG1fIHByaXZhdGUgY2xhc3MgZmllbGRzLCBpbnN0ZWFkIG9mIHB1Ymxp
YyBzdHJ1Y3QgZmllbGRzLgorICAgICAgICAoV2ViQ29yZTo6RXhjbHVzaW9uUG9seWdvbkVkZ2U6
Om5leHRFZGdlKTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpFeGNsdXNpb25Qb2x5Z29uRWRn
ZTo6cG9seWdvbik6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6RXhjbHVzaW9uUG9seWdvbkVk
Z2U6OnZlcnRleEluZGV4MSk6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6RXhjbHVzaW9uUG9s
eWdvbkVkZ2U6OnZlcnRleEluZGV4Mik6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6RXhjbHVz
aW9uUG9seWdvbkVkZ2U6OmVkZ2VJbmRleCk6IERpdHRvLgorCiAyMDEzLTAxLTAzICBUb21teSBX
aWRlbmZseWNodCAgPHRvbW15d0Bnb29nbGUuY29tPgogCiAgICAgICAgIE1lZGlhU3RyZWFtIEFQ
STogQWRkIGEgbWlzc2luZyBzdGF0ZSB0byBSVENQZWVyQ29ubmVjdGlvbgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0V4Y2x1c2lvblBvbHlnb24uY3BwIGIvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL0V4Y2x1c2lvblBvbHlnb24uY3BwCmluZGV4IGI2YWVjMDguLmE1MjIz
MmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9FeGNsdXNpb25Qb2x5Z29u
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvRXhjbHVzaW9uUG9seWdvbi5jcHAK
QEAgLTExNSwxMCArMTE1LDEwIEBAIEV4Y2x1c2lvblBvbHlnb246OkV4Y2x1c2lvblBvbHlnb24o
UGFzc093blB0cjxWZWN0b3I8RmxvYXRQb2ludD4gPiB2ZXJ0aWNlcywgV2luCiAgICAgZG8gewog
ICAgICAgICBtX2JvdW5kaW5nQm94LmV4dGVuZCh2ZXJ0ZXhBdCh2ZXJ0ZXhJbmRleDEpKTsKICAg
ICAgICAgdW5zaWduZWQgdmVydGV4SW5kZXgyID0gZmluZE5leHRFZGdlVmVydGV4SW5kZXgodmVy
dGV4SW5kZXgxLCBjbG9ja3dpc2UpOwotICAgICAgICBtX2VkZ2VzW2VkZ2VJbmRleF0ucG9seWdv
biA9IHRoaXM7Ci0gICAgICAgIG1fZWRnZXNbZWRnZUluZGV4XS52ZXJ0ZXhJbmRleDEgPSB2ZXJ0
ZXhJbmRleDE7Ci0gICAgICAgIG1fZWRnZXNbZWRnZUluZGV4XS52ZXJ0ZXhJbmRleDIgPSB2ZXJ0
ZXhJbmRleDI7Ci0gICAgICAgIG1fZWRnZXNbZWRnZUluZGV4XS5lZGdlSW5kZXggPSBlZGdlSW5k
ZXg7CisgICAgICAgIG1fZWRnZXNbZWRnZUluZGV4XS5tX3BvbHlnb24gPSB0aGlzOworICAgICAg
ICBtX2VkZ2VzW2VkZ2VJbmRleF0ubV92ZXJ0ZXhJbmRleDEgPSB2ZXJ0ZXhJbmRleDE7CisgICAg
ICAgIG1fZWRnZXNbZWRnZUluZGV4XS5tX3ZlcnRleEluZGV4MiA9IHZlcnRleEluZGV4MjsKKyAg
ICAgICAgbV9lZGdlc1tlZGdlSW5kZXhdLm1fZWRnZUluZGV4ID0gZWRnZUluZGV4OwogICAgICAg
ICBlZGdlSW5kZXgrKzsKICAgICAgICAgdmVydGV4SW5kZXgxID0gdmVydGV4SW5kZXgyOwogICAg
IH0gd2hpbGUgKHZlcnRleEluZGV4MSk7CkBAIC0xMjcsNyArMTI3LDcgQEAgRXhjbHVzaW9uUG9s
eWdvbjo6RXhjbHVzaW9uUG9seWdvbihQYXNzT3duUHRyPFZlY3RvcjxGbG9hdFBvaW50PiA+IHZl
cnRpY2VzLCBXaW4KICAgICAgICAgY29uc3QgRXhjbHVzaW9uUG9seWdvbkVkZ2UmIGZpcnN0RWRn
ZSA9IG1fZWRnZXNbMF07CiAgICAgICAgIGNvbnN0IEV4Y2x1c2lvblBvbHlnb25FZGdlJiBsYXN0
RWRnZSA9IG1fZWRnZXNbZWRnZUluZGV4IC0gMV07CiAgICAgICAgIGlmIChhcmVDb2xsaW5lYXJQ
b2ludHMobGFzdEVkZ2UudmVydGV4MSgpLCBsYXN0RWRnZS52ZXJ0ZXgyKCksIGZpcnN0RWRnZS52
ZXJ0ZXgyKCkpKSB7Ci0gICAgICAgICAgICBtX2VkZ2VzWzBdLnZlcnRleEluZGV4MSA9IGxhc3RF
ZGdlLnZlcnRleEluZGV4MTsKKyAgICAgICAgICAgIG1fZWRnZXNbMF0ubV92ZXJ0ZXhJbmRleDEg
PSBsYXN0RWRnZS5tX3ZlcnRleEluZGV4MTsKICAgICAgICAgICAgIGVkZ2VJbmRleC0tOwogICAg
ICAgICB9CiAgICAgfQpAQCAtMTg0LDE5ICsxODQsMTkgQEAgc3RhdGljIGlubGluZSBib29sIGdl
dFZlcnRleEludGVyc2VjdGlvblZlcnRpY2VzKGNvbnN0IEVkZ2VJbnRlcnNlY3Rpb24mIGludGVy
c2UKICAgICBpZiAoaW50ZXJzZWN0aW9uLnR5cGUgIT0gVmVydGV4TWluWSAmJiBpbnRlcnNlY3Rp
b24udHlwZSAhPSBWZXJ0ZXhNYXhZKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKLSAgICBBU1NF
UlQoaW50ZXJzZWN0aW9uLmVkZ2UgJiYgaW50ZXJzZWN0aW9uLmVkZ2UtPnBvbHlnb24pOwotICAg
IGNvbnN0IEV4Y2x1c2lvblBvbHlnb24mIHBvbHlnb24gPSAqKGludGVyc2VjdGlvbi5lZGdlLT5w
b2x5Z29uKTsKKyAgICBBU1NFUlQoaW50ZXJzZWN0aW9uLmVkZ2UgJiYgaW50ZXJzZWN0aW9uLmVk
Z2UtPnBvbHlnb24oKSk7CisgICAgY29uc3QgRXhjbHVzaW9uUG9seWdvbiYgcG9seWdvbiA9ICoo
aW50ZXJzZWN0aW9uLmVkZ2UtPnBvbHlnb24oKSk7CiAgICAgY29uc3QgRXhjbHVzaW9uUG9seWdv
bkVkZ2UmIHRoaXNFZGdlID0gKihpbnRlcnNlY3Rpb24uZWRnZSk7CiAKICAgICBpZiAoKGludGVy
c2VjdGlvbi50eXBlID09IFZlcnRleE1pblkgJiYgKHRoaXNFZGdlLnZlcnRleDEoKS55KCkgPCB0
aGlzRWRnZS52ZXJ0ZXgyKCkueSgpKSkKICAgICAgICAgfHwgKGludGVyc2VjdGlvbi50eXBlID09
IFZlcnRleE1heFkgJiYgKHRoaXNFZGdlLnZlcnRleDEoKS55KCkgPiB0aGlzRWRnZS52ZXJ0ZXgy
KCkueSgpKSkpIHsKLSAgICAgICAgcHJldlZlcnRleCA9IHBvbHlnb24udmVydGV4QXQodGhpc0Vk
Z2UucHJldmlvdXNFZGdlKCkudmVydGV4SW5kZXgxKTsKLSAgICAgICAgdGhpc1ZlcnRleCA9IHBv
bHlnb24udmVydGV4QXQodGhpc0VkZ2UudmVydGV4SW5kZXgxKTsKLSAgICAgICAgbmV4dFZlcnRl
eCA9IHBvbHlnb24udmVydGV4QXQodGhpc0VkZ2UudmVydGV4SW5kZXgyKTsKKyAgICAgICAgcHJl
dlZlcnRleCA9IHBvbHlnb24udmVydGV4QXQodGhpc0VkZ2UucHJldmlvdXNFZGdlKCkudmVydGV4
SW5kZXgxKCkpOworICAgICAgICB0aGlzVmVydGV4ID0gcG9seWdvbi52ZXJ0ZXhBdCh0aGlzRWRn
ZS52ZXJ0ZXhJbmRleDEoKSk7CisgICAgICAgIG5leHRWZXJ0ZXggPSBwb2x5Z29uLnZlcnRleEF0
KHRoaXNFZGdlLnZlcnRleEluZGV4MigpKTsKICAgICB9IGVsc2UgewotICAgICAgICBwcmV2VmVy
dGV4ID0gcG9seWdvbi52ZXJ0ZXhBdCh0aGlzRWRnZS52ZXJ0ZXhJbmRleDEpOwotICAgICAgICB0
aGlzVmVydGV4ID0gcG9seWdvbi52ZXJ0ZXhBdCh0aGlzRWRnZS52ZXJ0ZXhJbmRleDIpOwotICAg
ICAgICBuZXh0VmVydGV4ID0gcG9seWdvbi52ZXJ0ZXhBdCh0aGlzRWRnZS5uZXh0RWRnZSgpLnZl
cnRleEluZGV4Mik7CisgICAgICAgIHByZXZWZXJ0ZXggPSBwb2x5Z29uLnZlcnRleEF0KHRoaXNF
ZGdlLnZlcnRleEluZGV4MSgpKTsKKyAgICAgICAgdGhpc1ZlcnRleCA9IHBvbHlnb24udmVydGV4
QXQodGhpc0VkZ2UudmVydGV4SW5kZXgyKCkpOworICAgICAgICBuZXh0VmVydGV4ID0gcG9seWdv
bi52ZXJ0ZXhBdCh0aGlzRWRnZS5uZXh0RWRnZSgpLnZlcnRleEluZGV4MigpKTsKICAgICB9CiAK
ICAgICByZXR1cm4gdHJ1ZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9F
eGNsdXNpb25Qb2x5Z29uLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvRXhjbHVzaW9uUG9s
eWdvbi5oCmluZGV4IGNlMmZiNTUuLmM5NzNjMzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9FeGNsdXNpb25Qb2x5Z29uLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL0V4Y2x1c2lvblBvbHlnb24uaApAQCAtNDMsNyArNDMsNyBAQAogCiBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiAKLXN0cnVjdCBFeGNsdXNpb25Qb2x5Z29uRWRnZTsKK2NsYXNzIEV4Y2x1c2lvblBv
bHlnb25FZGdlOwogCiAvLyBUaGlzIGNsYXNzIGlzIHVzZWQgYnkgUE9ESW50ZXJ2YWxUcmVlIGZv
ciBkZWJ1Z2dpbmcuCiAjaWZuZGVmIE5ERUJVRwpAQCAtODQsNDMgKzg0LDU5IEBAIHByaXZhdGU6
CiAgICAgYm9vbCBtX2VtcHR5OwogfTsKIAorY2xhc3MgVmVydGV4UGFpciB7CitwdWJsaWM6Cisg
ICAgdmlydHVhbCB+VmVydGV4UGFpcigpIHsgfQorCisgICAgdmlydHVhbCBjb25zdCBGbG9hdFBv
aW50JiB2ZXJ0ZXgxKCkgY29uc3QgPSAwOworICAgIHZpcnR1YWwgY29uc3QgRmxvYXRQb2ludCYg
dmVydGV4MigpIGNvbnN0ID0gMDsKKworICAgIGZsb2F0IG1pblgoKSBjb25zdCB7IHJldHVybiBz
dGQ6Om1pbih2ZXJ0ZXgxKCkueCgpLCB2ZXJ0ZXgyKCkueCgpKTsgfQorICAgIGZsb2F0IG1pblko
KSBjb25zdCB7IHJldHVybiBzdGQ6Om1pbih2ZXJ0ZXgxKCkueSgpLCB2ZXJ0ZXgyKCkueSgpKTsg
fQorICAgIGZsb2F0IG1heFgoKSBjb25zdCB7IHJldHVybiBzdGQ6Om1heCh2ZXJ0ZXgxKCkueCgp
LCB2ZXJ0ZXgyKCkueCgpKTsgfQorICAgIGZsb2F0IG1heFkoKSBjb25zdCB7IHJldHVybiBzdGQ6
Om1heCh2ZXJ0ZXgxKCkueSgpLCB2ZXJ0ZXgyKCkueSgpKTsgfQorfTsKKwogLy8gRWRnZUludGVy
dmFsVHJlZSBub2RlcyBzdG9yZSBtaW5ZLCBtYXhZLCBhbmQgYSAoIlVzZXJEYXRhIikgcG9pbnRl
ciB0byBhbiBFeGNsdXNpb25Qb2x5Z29uRWRnZS4gRWRnZSB2ZXJ0ZXgKIC8vIGluZGV4MSBpcyBs
ZXNzIHRoYW4gaW5kZXgyLCBleGNlcHQgdGhlIGxhc3QgZWRnZSwgd2hlcmUgaW5kZXgyIGlzIDAu
IFdoZW4gYSBwb2x5Z29uIGVkZ2UgaXMgZGVmaW5lZCBieSAzCiAvLyBvciBtb3JlIGNvbGluZWFy
IHZlcnRpY2VzLCBpbmRleDIgY2FuIGJlIHRoZSB0aGUgaW5kZXggb2YgdGhlIGxhc3QgY29saW5l
YXIgdmVydGV4Lgotc3RydWN0IEV4Y2x1c2lvblBvbHlnb25FZGdlIHsKLSAgICBjb25zdCBGbG9h
dFBvaW50JiB2ZXJ0ZXgxKCkgY29uc3QKK2NsYXNzIEV4Y2x1c2lvblBvbHlnb25FZGdlIDogcHVi
bGljIFZlcnRleFBhaXIgeworICAgIGZyaWVuZCBjbGFzcyBFeGNsdXNpb25Qb2x5Z29uOworcHVi
bGljOgorICAgIHZpcnR1YWwgY29uc3QgRmxvYXRQb2ludCYgdmVydGV4MSgpIGNvbnN0IE9WRVJS
SURFCiAgICAgewotICAgICAgICBBU1NFUlQocG9seWdvbik7Ci0gICAgICAgIHJldHVybiBwb2x5
Z29uLT52ZXJ0ZXhBdCh2ZXJ0ZXhJbmRleDEpOworICAgICAgICBBU1NFUlQobV9wb2x5Z29uKTsK
KyAgICAgICAgcmV0dXJuIG1fcG9seWdvbi0+dmVydGV4QXQobV92ZXJ0ZXhJbmRleDEpOwogICAg
IH0KIAotICAgIGNvbnN0IEZsb2F0UG9pbnQmIHZlcnRleDIoKSBjb25zdAorICAgIHZpcnR1YWwg
Y29uc3QgRmxvYXRQb2ludCYgdmVydGV4MigpIGNvbnN0IE9WRVJSSURFCiAgICAgewotICAgICAg
ICBBU1NFUlQocG9seWdvbik7Ci0gICAgICAgIHJldHVybiBwb2x5Z29uLT52ZXJ0ZXhBdCh2ZXJ0
ZXhJbmRleDIpOworICAgICAgICBBU1NFUlQobV9wb2x5Z29uKTsKKyAgICAgICAgcmV0dXJuIG1f
cG9seWdvbi0+dmVydGV4QXQobV92ZXJ0ZXhJbmRleDIpOwogICAgIH0KIAogICAgIGNvbnN0IEV4
Y2x1c2lvblBvbHlnb25FZGdlJiBwcmV2aW91c0VkZ2UoKSBjb25zdAogICAgIHsKLSAgICAgICAg
QVNTRVJUKHBvbHlnb24gJiYgcG9seWdvbi0+bnVtYmVyT2ZFZGdlcygpID4gMSk7Ci0gICAgICAg
IHJldHVybiBwb2x5Z29uLT5lZGdlQXQoKGVkZ2VJbmRleCArIHBvbHlnb24tPm51bWJlck9mRWRn
ZXMoKSAtIDEpICUgcG9seWdvbi0+bnVtYmVyT2ZFZGdlcygpKTsKKyAgICAgICAgQVNTRVJUKG1f
cG9seWdvbiAmJiBtX3BvbHlnb24tPm51bWJlck9mRWRnZXMoKSA+IDEpOworICAgICAgICByZXR1
cm4gbV9wb2x5Z29uLT5lZGdlQXQoKG1fZWRnZUluZGV4ICsgbV9wb2x5Z29uLT5udW1iZXJPZkVk
Z2VzKCkgLSAxKSAlIG1fcG9seWdvbi0+bnVtYmVyT2ZFZGdlcygpKTsKICAgICB9CiAKICAgICBj
b25zdCBFeGNsdXNpb25Qb2x5Z29uRWRnZSYgbmV4dEVkZ2UoKSBjb25zdAogICAgIHsKLSAgICAg
ICAgQVNTRVJUKHBvbHlnb24gJiYgcG9seWdvbi0+bnVtYmVyT2ZFZGdlcygpID4gMSk7Ci0gICAg
ICAgIHJldHVybiBwb2x5Z29uLT5lZGdlQXQoKGVkZ2VJbmRleCArIDEpICUgcG9seWdvbi0+bnVt
YmVyT2ZFZGdlcygpKTsKKyAgICAgICAgQVNTRVJUKG1fcG9seWdvbiAmJiBtX3BvbHlnb24tPm51
bWJlck9mRWRnZXMoKSA+IDEpOworICAgICAgICByZXR1cm4gbV9wb2x5Z29uLT5lZGdlQXQoKG1f
ZWRnZUluZGV4ICsgMSkgJSBtX3BvbHlnb24tPm51bWJlck9mRWRnZXMoKSk7CiAgICAgfQogCi0g
ICAgZmxvYXQgbWluWCgpIGNvbnN0IHsgcmV0dXJuIHN0ZDo6bWluKHZlcnRleDEoKS54KCksIHZl
cnRleDIoKS54KCkpOyB9Ci0gICAgZmxvYXQgbWluWSgpIGNvbnN0IHsgcmV0dXJuIHN0ZDo6bWlu
KHZlcnRleDEoKS55KCksIHZlcnRleDIoKS55KCkpOyB9Ci0gICAgZmxvYXQgbWF4WCgpIGNvbnN0
IHsgcmV0dXJuIHN0ZDo6bWF4KHZlcnRleDEoKS54KCksIHZlcnRleDIoKS54KCkpOyB9Ci0gICAg
ZmxvYXQgbWF4WSgpIGNvbnN0IHsgcmV0dXJuIHN0ZDo6bWF4KHZlcnRleDEoKS55KCksIHZlcnRl
eDIoKS55KCkpOyB9CisgICAgY29uc3QgRXhjbHVzaW9uUG9seWdvbiogcG9seWdvbigpIGNvbnN0
IHsgcmV0dXJuIG1fcG9seWdvbjsgfQorICAgIHVuc2lnbmVkIHZlcnRleEluZGV4MSgpIGNvbnN0
IHsgcmV0dXJuIG1fdmVydGV4SW5kZXgxOyB9CisgICAgdW5zaWduZWQgdmVydGV4SW5kZXgyKCkg
Y29uc3QgeyByZXR1cm4gbV92ZXJ0ZXhJbmRleDI7IH0KKyAgICB1bnNpZ25lZCBlZGdlSW5kZXgo
KSBjb25zdCB7IHJldHVybiBtX2VkZ2VJbmRleDsgfQogCi0gICAgY29uc3QgRXhjbHVzaW9uUG9s
eWdvbiogcG9seWdvbjsKLSAgICB1bnNpZ25lZCB2ZXJ0ZXhJbmRleDE7Ci0gICAgdW5zaWduZWQg
dmVydGV4SW5kZXgyOwotICAgIHVuc2lnbmVkIGVkZ2VJbmRleDsKK3ByaXZhdGU6CisgICAgY29u
c3QgRXhjbHVzaW9uUG9seWdvbiogbV9wb2x5Z29uOworICAgIHVuc2lnbmVkIG1fdmVydGV4SW5k
ZXgxOworICAgIHVuc2lnbmVkIG1fdmVydGV4SW5kZXgyOworICAgIHVuc2lnbmVkIG1fZWRnZUlu
ZGV4OwogfTsKIAogLy8gVGhlc2Ugc3RydWN0dXJlcyBhcmUgdXNlZCBieSBQT0RJbnRlcnZhbFRy
ZWUgZm9yIGRlYnVnZ2luZy4xCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>