<?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>119282</bug_id>
          
          <creation_ts>2013-07-30 15:28:56 -0700</creation_ts>
          <short_desc>revalidateTiles and ensureTilesForRect can share a lot of code</short_desc>
          <delta_ts>2013-08-21 14:07:57 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>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="Tim Horton">thorton</reporter>
          <assigned_to name="Tim Horton">thorton</assigned_to>
          <cc>andersca</cc>
    
    <cc>bdakin</cc>
    
    <cc>simon.fraser</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>913053</commentid>
    <comment_count>0</comment_count>
    <who name="Tim Horton">thorton</who>
    <bug_when>2013-07-30 15:28:56 -0700</bug_when>
    <thetext>They share lots of code, but it&apos;s kind of scary to change these.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>913054</commentid>
    <comment_count>1</comment_count>
      <attachid>207774</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2013-07-30 15:29:20 -0700</bug_when>
    <thetext>Created attachment 207774
take one</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>915296</commentid>
    <comment_count>2</comment_count>
      <attachid>208306</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2013-08-07 17:26:09 -0700</bug_when>
    <thetext>Created attachment 208306
take two

needs a change log but I have to go fix something else, attaching new patch for now</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>917788</commentid>
    <comment_count>3</comment_count>
      <attachid>208872</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2013-08-15 17:53:12 -0700</bug_when>
    <thetext>Created attachment 208872
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>918151</commentid>
    <comment_count>4</comment_count>
      <attachid>208872</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2013-08-16 17:32:50 -0700</bug_when>
    <thetext>Comment on attachment 208872
patch

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

&gt; Source/WebCore/platform/graphics/ca/mac/TileController.h:149
&gt; +    enum class NewTileType { PrimaryTiles, SecondaryTiles };

Maybe CoverageType?

&gt; Source/WebCore/platform/graphics/ca/mac/TileController.h:150
&gt; +    IntRect ensureTilesForRect(const FloatRect&amp;, NewTileType);

What does the return value mean?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>919625</commentid>
    <comment_count>5</comment_count>
    <who name="Tim Horton">thorton</who>
    <bug_when>2013-08-21 14:04:01 -0700</bug_when>
    <thetext>http://trac.webkit.org/changeset/154413</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>919630</commentid>
    <comment_count>6</comment_count>
    <who name="Tim Horton">thorton</who>
    <bug_when>2013-08-21 14:07:57 -0700</bug_when>
    <thetext>and http://trac.webkit.org/changeset/154415</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>207774</attachid>
            <date>2013-07-30 15:29:20 -0700</date>
            <delta_ts>2013-08-07 17:26:09 -0700</delta_ts>
            <desc>take one</desc>
            <filename>tilecontroller-duplication.diff</filename>
            <type>text/plain</type>
            <size>7381</size>
            <attacher name="Tim Horton">thorton</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL21hYy9UaWxl
Q29udHJvbGxlci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2EvbWFjL1Rp
bGVDb250cm9sbGVyLmgKaW5kZXggNTQ2ZmE4MS4uNDA2YTBmMCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2EvbWFjL1RpbGVDb250cm9sbGVyLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2EvbWFjL1RpbGVDb250cm9sbGVyLmgK
QEAgLTE0Niw3ICsxNDYsNyBAQCBwcml2YXRlOgogICAgIHR5cGVkZWYgdW5zaWduZWQgVGlsZVZh
bGlkYXRpb25Qb2xpY3lGbGFnczsKIAogICAgIHZvaWQgcmV2YWxpZGF0ZVRpbGVzKFRpbGVWYWxp
ZGF0aW9uUG9saWN5RmxhZ3MgZm9yZWdyb3VuZFZhbGlkYXRpb25Qb2xpY3kgPSAwLCBUaWxlVmFs
aWRhdGlvblBvbGljeUZsYWdzIGJhY2tncm91bmRWYWxpZGF0aW9uUG9saWN5ID0gMCk7Ci0gICAg
dm9pZCBlbnN1cmVUaWxlc0ZvclJlY3QoY29uc3QgRmxvYXRSZWN0Jik7CisgICAgSW50UmVjdCBl
bnN1cmVUaWxlc0ZvclJlY3QoY29uc3QgRmxvYXRSZWN0JiwgYm9vbCk7CiAgICAgdm9pZCB1cGRh
dGVUaWxlQ292ZXJhZ2VNYXAoKTsKIAogICAgIHZvaWQgcmVtb3ZlQWxsVGlsZXMoKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL21hYy9UaWxlQ29udHJv
bGxlci5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL21hYy9UaWxlQ29u
dHJvbGxlci5tbQppbmRleCBkN2Y3ZmE0Li5kYzU2NWQ5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9tYWMvVGlsZUNvbnRyb2xsZXIubW0KKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2EvbWFjL1RpbGVDb250cm9sbGVyLm1tCkBA
IC0zNTgsNyArMzU4LDEwIEBAIHZvaWQgVGlsZUNvbnRyb2xsZXI6OnNldENsaXBzVG9FeHBvc2Vk
UmVjdChib29sIGNsaXBzVG9FeHBvc2VkUmVjdCkKIAogdm9pZCBUaWxlQ29udHJvbGxlcjo6cHJl
cG9wdWxhdGVSZWN0KGNvbnN0IEZsb2F0UmVjdCYgcmVjdCkKIHsKLSAgICBlbnN1cmVUaWxlc0Zv
clJlY3QocmVjdCk7CisgICAgZW5zdXJlVGlsZXNGb3JSZWN0KHJlY3QsIGZhbHNlKTsKKworICAg
IGlmIChtX3RpbGVkU2Nyb2xsaW5nSW5kaWNhdG9yTGF5ZXIpCisgICAgICAgIHVwZGF0ZVRpbGVD
b3ZlcmFnZU1hcCgpOwogfQogCiB2b2lkIFRpbGVDb250cm9sbGVyOjpzZXRJc0luV2luZG93KGJv
b2wgaXNJbldpbmRvdykKQEAgLTY2OSw0OSArNjcyLDkgQEAgdm9pZCBUaWxlQ29udHJvbGxlcjo6
cmV2YWxpZGF0ZVRpbGVzKFRpbGVWYWxpZGF0aW9uUG9saWN5RmxhZ3MgZm9yZWdyb3VuZFZhbGlk
YXQKICAgICAgICAgaWYgKCFtX2FnZ3Jlc3NpdmVseVJldGFpbnNUaWxlcykKICAgICAgICAgICAg
IHNjaGVkdWxlQ29ob3J0UmVtb3ZhbCgpOwogICAgIH0KLQotICAgIFRpbGVJbmRleCB0b3BMZWZ0
OwotICAgIFRpbGVJbmRleCBib3R0b21SaWdodDsKLSAgICBnZXRUaWxlSW5kZXhSYW5nZUZvclJl
Y3QoY292ZXJhZ2VSZWN0SW5UaWxlQ29vcmRzLCB0b3BMZWZ0LCBib3R0b21SaWdodCk7Ci0KLSAg
ICBWZWN0b3I8RmxvYXRSZWN0PiBkaXJ0eVJlY3RzOwogICAgIAogICAgIC8vIEVuc3VyZSBwcmlt
YXJ5IHRpbGUgY292ZXJhZ2UgdGlsZXMuCi0gICAgbV9wcmltYXJ5VGlsZUNvdmVyYWdlUmVjdCA9
IEludFJlY3QoKTsKLQotICAgIGZvciAoaW50IHkgPSB0b3BMZWZ0LnkoKTsgeSA8PSBib3R0b21S
aWdodC55KCk7ICsreSkgewotICAgICAgICBmb3IgKGludCB4ID0gdG9wTGVmdC54KCk7IHggPD0g
Ym90dG9tUmlnaHQueCgpOyArK3gpIHsKLSAgICAgICAgICAgIFRpbGVJbmRleCB0aWxlSW5kZXgo
eCwgeSk7Ci0KLSAgICAgICAgICAgIEludFJlY3QgdGlsZVJlY3QgPSByZWN0Rm9yVGlsZUluZGV4
KHRpbGVJbmRleCk7Ci0gICAgICAgICAgICBtX3ByaW1hcnlUaWxlQ292ZXJhZ2VSZWN0LnVuaXRl
KHRpbGVSZWN0KTsKLQotICAgICAgICAgICAgYm9vbCBzaG91bGRDaGFuZ2VUaWxlTGF5ZXJGcmFt
ZSA9IGZhbHNlOwotCi0gICAgICAgICAgICBUaWxlSW5mbyYgdGlsZUluZm8gPSBtX3RpbGVzLmFk
ZCh0aWxlSW5kZXgsIFRpbGVJbmZvKCkpLml0ZXJhdG9yLT52YWx1ZTsKLSAgICAgICAgICAgIGlm
ICghdGlsZUluZm8ubGF5ZXIpCi0gICAgICAgICAgICAgICAgdGlsZUluZm8ubGF5ZXIgPSBjcmVh
dGVUaWxlTGF5ZXIodGlsZVJlY3QpOwotICAgICAgICAgICAgZWxzZSB7Ci0gICAgICAgICAgICAg
ICAgLy8gV2UgYWxyZWFkeSBoYXZlIGEgbGF5ZXIgZm9yIHRoaXMgdGlsZS4gRW5zdXJlIHRoYXQg
aXRzIHNpemUgaXMgY29ycmVjdC4KLSAgICAgICAgICAgICAgICBGbG9hdFNpemUgdGlsZUxheWVy
U2l6ZShbdGlsZUluZm8ubGF5ZXIuZ2V0KCkgZnJhbWVdLnNpemUpOwotICAgICAgICAgICAgICAg
IHNob3VsZENoYW5nZVRpbGVMYXllckZyYW1lID0gdGlsZUxheWVyU2l6ZSAhPSBGbG9hdFNpemUo
dGlsZVJlY3Quc2l6ZSgpKTsKLQotICAgICAgICAgICAgICAgIGlmIChzaG91bGRDaGFuZ2VUaWxl
TGF5ZXJGcmFtZSkKLSAgICAgICAgICAgICAgICAgICAgW3RpbGVJbmZvLmxheWVyLmdldCgpIHNl
dEZyYW1lOnRpbGVSZWN0XTsKLSAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgYm9vbCBzaG91
bGRQYXJlbnRUaWxlTGF5ZXIgPSAoIW1fdW5wYXJlbnRzT2Zmc2NyZWVuVGlsZXMgfHwgbV9pc0lu
V2luZG93KSAmJiAhW3RpbGVJbmZvLmxheWVyLmdldCgpIHN1cGVybGF5ZXJdOwotCi0gICAgICAg
ICAgICBpZiAoc2hvdWxkUGFyZW50VGlsZUxheWVyKQotICAgICAgICAgICAgICAgIFttX3RpbGVD
b250YWluZXJMYXllci5nZXQoKSBhZGRTdWJsYXllcjp0aWxlSW5mby5sYXllci5nZXQoKV07Ci0K
LSAgICAgICAgICAgIGlmICgoc2hvdWxkUGFyZW50VGlsZUxheWVyICYmIFt0aWxlSW5mby5sYXll
ci5nZXQoKSBuZWVkc0Rpc3BsYXldKSB8fCBzaG91bGRDaGFuZ2VUaWxlTGF5ZXJGcmFtZSkgewot
ICAgICAgICAgICAgICAgIEZsb2F0UmVjdCBzY2FsZWRUaWxlUmVjdCA9IHRpbGVSZWN0OwotICAg
ICAgICAgICAgICAgIHNjYWxlZFRpbGVSZWN0LnNjYWxlKDEgLyBtX3NjYWxlKTsKLSAgICAgICAg
ICAgICAgICBkaXJ0eVJlY3RzLmFwcGVuZChzY2FsZWRUaWxlUmVjdCk7Ci0gICAgICAgICAgICB9
Ci0gICAgICAgIH0KLSAgICB9CisgICAgbV9wcmltYXJ5VGlsZUNvdmVyYWdlUmVjdCA9IGVuc3Vy
ZVRpbGVzRm9yUmVjdCh0aWxlQ292ZXJhZ2VSZWN0LCBmYWxzZSk7CiAKICAgICBpZiAodmFsaWRh
dGlvblBvbGljeSAmIFBydW5lU2Vjb25kYXJ5VGlsZXMpIHsKICAgICAgICAgcmVtb3ZlQWxsU2Vj
b25kYXJ5VGlsZXMoKTsKQEAgLTc1MywxMiArNzE2LDYgQEAgdm9pZCBUaWxlQ29udHJvbGxlcjo6
cmV2YWxpZGF0ZVRpbGVzKFRpbGVWYWxpZGF0aW9uUG9saWN5RmxhZ3MgZm9yZWdyb3VuZFZhbGlk
YXQKIAogICAgIG1fdmlzaWJsZVJlY3RBdExhc3RSZXZhbGlkYXRlID0gdmlzaWJsZVJlY3Q7CiAg
ICAgbV9ib3VuZHNBdExhc3RSZXZhbGlkYXRlID0gYm91bmRzOwotCi0gICAgaWYgKGRpcnR5UmVj
dHMuaXNFbXB0eSgpKQotICAgICAgICByZXR1cm47Ci0KLSAgICAvLyBUaGlzIHdpbGwgZW5zdXJl
IHdlIGZsdXNoIGNvbXBvc2l0aW5nIHN0YXRlIGFuZCBkbyBsYXlvdXQgaW4gdGhpcyBydW4gbG9v
cCBpdGVyYXRpb24uCi0gICAgcGxhdGZvcm1MYXllci0+b3duZXIoKS0+cGxhdGZvcm1DQUxheWVy
RGlkQ3JlYXRlVGlsZXMoZGlydHlSZWN0cyk7CiB9CiAKIFRpbGVDb250cm9sbGVyOjpUaWxlQ29o
b3J0IFRpbGVDb250cm9sbGVyOjpuZXh0VGlsZUNvaG9ydCgpIGNvbnN0CkBAIC04MTIsMjEgKzc2
OSwyMSBAQCB2b2lkIFRpbGVDb250cm9sbGVyOjpjb2hvcnRSZW1vdmFsVGltZXJGaXJlZChUaW1l
cjxUaWxlQ29udHJvbGxlcj4qKQogICAgICAgICB1cGRhdGVUaWxlQ292ZXJhZ2VNYXAoKTsKIH0K
IAotdm9pZCBUaWxlQ29udHJvbGxlcjo6ZW5zdXJlVGlsZXNGb3JSZWN0KGNvbnN0IEZsb2F0UmVj
dCYgcmVjdCkKK0ludFJlY3QgVGlsZUNvbnRyb2xsZXI6OmVuc3VyZVRpbGVzRm9yUmVjdChjb25z
dCBGbG9hdFJlY3QmIHJlY3QsIGJvb2wgcmVzdHJpY3RUb1ByaW1hcnlUaWxlQ292ZXJhZ2VSZWN0
KQogewogICAgIGlmIChtX3VucGFyZW50c09mZnNjcmVlblRpbGVzICYmICFtX2lzSW5XaW5kb3cp
Ci0gICAgICAgIHJldHVybjsKKyAgICAgICAgcmV0dXJuIEludFJlY3QoKTsKIAogICAgIFBsYXRm
b3JtQ0FMYXllciogcGxhdGZvcm1MYXllciA9IFBsYXRmb3JtQ0FMYXllcjo6cGxhdGZvcm1DQUxh
eWVyKG1fdGlsZUNhY2hlTGF5ZXIpOwogICAgIGlmICghcGxhdGZvcm1MYXllcikKLSAgICAgICAg
cmV0dXJuOworICAgICAgICByZXR1cm4gSW50UmVjdCgpOwogCiAgICAgRmxvYXRSZWN0IHNjYWxl
ZFJlY3QocmVjdCk7CiAgICAgc2NhbGVkUmVjdC5zY2FsZShtX3NjYWxlKTsKICAgICBJbnRSZWN0
IHJlY3RJblRpbGVDb29yZHMoZW5jbG9zaW5nSW50UmVjdChzY2FsZWRSZWN0KSk7CiAKLSAgICBp
ZiAobV9wcmltYXJ5VGlsZUNvdmVyYWdlUmVjdC5jb250YWlucyhyZWN0SW5UaWxlQ29vcmRzKSkK
LSAgICAgICAgcmV0dXJuOworICAgIGlmIChyZXN0cmljdFRvUHJpbWFyeVRpbGVDb3ZlcmFnZVJl
Y3QgJiYgbV9wcmltYXJ5VGlsZUNvdmVyYWdlUmVjdC5jb250YWlucyhyZWN0SW5UaWxlQ29vcmRz
KSkKKyAgICAgICAgcmV0dXJuIEludFJlY3QoKTsKIAogICAgIFRpbGVJbmRleCB0b3BMZWZ0Owog
ICAgIFRpbGVJbmRleCBib3R0b21SaWdodDsKQEAgLTgzNiw2ICs3OTMsOCBAQCB2b2lkIFRpbGVD
b250cm9sbGVyOjplbnN1cmVUaWxlc0ZvclJlY3QoY29uc3QgRmxvYXRSZWN0JiByZWN0KQogICAg
IFRpbGVDb2hvcnQgY3VyckNvaG9ydCA9IG5leHRUaWxlQ29ob3J0KCk7CiAgICAgdW5zaWduZWQg
dGlsZXNJbkNvaG9ydCA9IDA7CiAKKyAgICBJbnRSZWN0IGNvdmVyYWdlUmVjdDsKKwogICAgIGZv
ciAoaW50IHkgPSB0b3BMZWZ0LnkoKTsgeSA8PSBib3R0b21SaWdodC55KCk7ICsreSkgewogICAg
ICAgICBmb3IgKGludCB4ID0gdG9wTGVmdC54KCk7IHggPD0gYm90dG9tUmlnaHQueCgpOyArK3gp
IHsKICAgICAgICAgICAgIFRpbGVJbmRleCB0aWxlSW5kZXgoeCwgeSk7CkBAIC04NDMsMjUgKzgw
MiwyNyBAQCB2b2lkIFRpbGVDb250cm9sbGVyOjplbnN1cmVUaWxlc0ZvclJlY3QoY29uc3QgRmxv
YXRSZWN0JiByZWN0KQogICAgICAgICAgICAgSW50UmVjdCB0aWxlUmVjdCA9IHJlY3RGb3JUaWxl
SW5kZXgodGlsZUluZGV4KTsKICAgICAgICAgICAgIFRpbGVJbmZvJiB0aWxlSW5mbyA9IG1fdGls
ZXMuYWRkKHRpbGVJbmRleCwgVGlsZUluZm8oKSkuaXRlcmF0b3ItPnZhbHVlOwogCisgICAgICAg
ICAgICBjb3ZlcmFnZVJlY3QudW5pdGUodGlsZVJlY3QpOworCiAgICAgICAgICAgICBib29sIHNo
b3VsZENoYW5nZVRpbGVMYXllckZyYW1lID0gZmFsc2U7CiAKICAgICAgICAgICAgIGlmICghdGls
ZUluZm8ubGF5ZXIpCiAgICAgICAgICAgICAgICAgdGlsZUluZm8ubGF5ZXIgPSBjcmVhdGVUaWxl
TGF5ZXIodGlsZVJlY3QpOwogICAgICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICAgICAgLy8g
V2UgYWxyZWFkeSBoYXZlIGEgbGF5ZXIgZm9yIHRoaXMgdGlsZS4gRW5zdXJlIHRoYXQgaXRzIHNp
emUgaXMgY29ycmVjdC4KLSAgICAgICAgICAgICAgICBDR1NpemUgdGlsZUxheWVyU2l6ZSA9IFt0
aWxlSW5mby5sYXllci5nZXQoKSBmcmFtZV0uc2l6ZTsKLSAgICAgICAgICAgICAgICBzaG91bGRD
aGFuZ2VUaWxlTGF5ZXJGcmFtZSA9IHRpbGVMYXllclNpemUud2lkdGggPCB0aWxlUmVjdC53aWR0
aCgpIHx8IHRpbGVMYXllclNpemUuaGVpZ2h0IDwgdGlsZVJlY3QuaGVpZ2h0KCk7CisgICAgICAg
ICAgICAgICAgRmxvYXRTaXplIHRpbGVMYXllclNpemUoW3RpbGVJbmZvLmxheWVyLmdldCgpIGZy
YW1lXS5zaXplKTsKKyAgICAgICAgICAgICAgICBzaG91bGRDaGFuZ2VUaWxlTGF5ZXJGcmFtZSA9
IHRpbGVMYXllclNpemUgIT0gRmxvYXRTaXplKHRpbGVSZWN0LnNpemUoKSk7CiAKICAgICAgICAg
ICAgICAgICBpZiAoc2hvdWxkQ2hhbmdlVGlsZUxheWVyRnJhbWUpCiAgICAgICAgICAgICAgICAg
ICAgIFt0aWxlSW5mby5sYXllci5nZXQoKSBzZXRGcmFtZTp0aWxlUmVjdF07CiAgICAgICAgICAg
ICB9CiAKLSAgICAgICAgICAgIGlmICghdGlsZVJlY3QuaW50ZXJzZWN0cyhtX3ByaW1hcnlUaWxl
Q292ZXJhZ2VSZWN0KSkgeworICAgICAgICAgICAgaWYgKHJlc3RyaWN0VG9QcmltYXJ5VGlsZUNv
dmVyYWdlUmVjdCAmJiAhdGlsZVJlY3QuaW50ZXJzZWN0cyhtX3ByaW1hcnlUaWxlQ292ZXJhZ2VS
ZWN0KSkgewogICAgICAgICAgICAgICAgIHRpbGVJbmZvLmNvaG9ydCA9IGN1cnJDb2hvcnQ7CiAg
ICAgICAgICAgICAgICAgKyt0aWxlc0luQ29ob3J0OwogICAgICAgICAgICAgfQogCi0gICAgICAg
ICAgICBib29sIHNob3VsZFBhcmVudFRpbGVMYXllciA9ICFbdGlsZUluZm8ubGF5ZXIuZ2V0KCkg
c3VwZXJsYXllcl07CisgICAgICAgICAgICBib29sIHNob3VsZFBhcmVudFRpbGVMYXllciA9ICgh
bV91bnBhcmVudHNPZmZzY3JlZW5UaWxlcyB8fCBtX2lzSW5XaW5kb3cpICYmICFbdGlsZUluZm8u
bGF5ZXIuZ2V0KCkgc3VwZXJsYXllcl07CiAKICAgICAgICAgICAgIGlmIChzaG91bGRQYXJlbnRU
aWxlTGF5ZXIpCiAgICAgICAgICAgICAgICAgW21fdGlsZUNvbnRhaW5lckxheWVyLmdldCgpIGFk
ZFN1YmxheWVyOnRpbGVJbmZvLmxheWVyLmdldCgpXTsKQEAgLTg3NywxMiArODM4LDExIEBAIHZv
aWQgVGlsZUNvbnRyb2xsZXI6OmVuc3VyZVRpbGVzRm9yUmVjdChjb25zdCBGbG9hdFJlY3QmIHJl
Y3QpCiAgICAgaWYgKHRpbGVzSW5Db2hvcnQpCiAgICAgICAgIHN0YXJ0ZWROZXdDb2hvcnQoY3Vy
ckNvaG9ydCk7CiAKLSAgICBpZiAobV90aWxlZFNjcm9sbGluZ0luZGljYXRvckxheWVyKQotICAg
ICAgICB1cGRhdGVUaWxlQ292ZXJhZ2VNYXAoKTsKLQogICAgIC8vIFRoaXMgd2lsbCBlbnN1cmUg
d2UgZmx1c2ggY29tcG9zaXRpbmcgc3RhdGUgYW5kIGRvIGxheW91dCBpbiB0aGlzIHJ1biBsb29w
IGl0ZXJhdGlvbi4KICAgICBpZiAoIWRpcnR5UmVjdHMuaXNFbXB0eSgpKQogICAgICAgICBwbGF0
Zm9ybUxheWVyLT5vd25lcigpLT5wbGF0Zm9ybUNBTGF5ZXJEaWRDcmVhdGVUaWxlcyhkaXJ0eVJl
Y3RzKTsKKworICAgIHJldHVybiBjb3ZlcmFnZVJlY3Q7CiB9CiAKIHZvaWQgVGlsZUNvbnRyb2xs
ZXI6OnVwZGF0ZVRpbGVDb3ZlcmFnZU1hcCgpCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>208306</attachid>
            <date>2013-08-07 17:26:09 -0700</date>
            <delta_ts>2013-08-15 17:53:12 -0700</delta_ts>
            <desc>take two</desc>
            <filename>tilecontroller-duplication.diff</filename>
            <type>text/plain</type>
            <size>7640</size>
            <attacher name="Tim Horton">thorton</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL21hYy9UaWxl
Q29udHJvbGxlci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2EvbWFjL1Rp
bGVDb250cm9sbGVyLmgKaW5kZXggNTQ2ZmE4MS4uZjllNjE3OCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2EvbWFjL1RpbGVDb250cm9sbGVyLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2EvbWFjL1RpbGVDb250cm9sbGVyLmgK
QEAgLTE0Niw3ICsxNDYsOCBAQCBwcml2YXRlOgogICAgIHR5cGVkZWYgdW5zaWduZWQgVGlsZVZh
bGlkYXRpb25Qb2xpY3lGbGFnczsKIAogICAgIHZvaWQgcmV2YWxpZGF0ZVRpbGVzKFRpbGVWYWxp
ZGF0aW9uUG9saWN5RmxhZ3MgZm9yZWdyb3VuZFZhbGlkYXRpb25Qb2xpY3kgPSAwLCBUaWxlVmFs
aWRhdGlvblBvbGljeUZsYWdzIGJhY2tncm91bmRWYWxpZGF0aW9uUG9saWN5ID0gMCk7Ci0gICAg
dm9pZCBlbnN1cmVUaWxlc0ZvclJlY3QoY29uc3QgRmxvYXRSZWN0Jik7CisgICAgZW51bSBjbGFz
cyBOZXdUaWxlVHlwZSB7IFByaW1hcnlUaWxlcywgU2Vjb25kYXJ5VGlsZXMgfTsKKyAgICBJbnRS
ZWN0IGVuc3VyZVRpbGVzRm9yUmVjdChjb25zdCBGbG9hdFJlY3QmLCBOZXdUaWxlVHlwZSk7CiAg
ICAgdm9pZCB1cGRhdGVUaWxlQ292ZXJhZ2VNYXAoKTsKIAogICAgIHZvaWQgcmVtb3ZlQWxsVGls
ZXMoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL21h
Yy9UaWxlQ29udHJvbGxlci5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nh
L21hYy9UaWxlQ29udHJvbGxlci5tbQppbmRleCBkN2Y3ZmE0Li5iMWFjMzkxIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9tYWMvVGlsZUNvbnRyb2xsZXIu
bW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2EvbWFjL1RpbGVDb250
cm9sbGVyLm1tCkBAIC0zNTgsNyArMzU4LDE3IEBAIHZvaWQgVGlsZUNvbnRyb2xsZXI6OnNldENs
aXBzVG9FeHBvc2VkUmVjdChib29sIGNsaXBzVG9FeHBvc2VkUmVjdCkKIAogdm9pZCBUaWxlQ29u
dHJvbGxlcjo6cHJlcG9wdWxhdGVSZWN0KGNvbnN0IEZsb2F0UmVjdCYgcmVjdCkKIHsKLSAgICBl
bnN1cmVUaWxlc0ZvclJlY3QocmVjdCk7CisgICAgRmxvYXRSZWN0IHNjYWxlZFJlY3QocmVjdCk7
CisgICAgc2NhbGVkUmVjdC5zY2FsZShtX3NjYWxlKTsKKyAgICBJbnRSZWN0IHJlY3RJblRpbGVD
b29yZHMoZW5jbG9zaW5nSW50UmVjdChzY2FsZWRSZWN0KSk7CisKKyAgICBpZiAobV9wcmltYXJ5
VGlsZUNvdmVyYWdlUmVjdC5jb250YWlucyhyZWN0SW5UaWxlQ29vcmRzKSkKKyAgICAgICAgcmV0
dXJuOworCisgICAgZW5zdXJlVGlsZXNGb3JSZWN0KHJlY3QsIE5ld1RpbGVUeXBlOjpTZWNvbmRh
cnlUaWxlcyk7CisKKyAgICBpZiAobV90aWxlZFNjcm9sbGluZ0luZGljYXRvckxheWVyKQorICAg
ICAgICB1cGRhdGVUaWxlQ292ZXJhZ2VNYXAoKTsKIH0KIAogdm9pZCBUaWxlQ29udHJvbGxlcjo6
c2V0SXNJbldpbmRvdyhib29sIGlzSW5XaW5kb3cpCkBAIC02NjksNDkgKzY3OSw5IEBAIHZvaWQg
VGlsZUNvbnRyb2xsZXI6OnJldmFsaWRhdGVUaWxlcyhUaWxlVmFsaWRhdGlvblBvbGljeUZsYWdz
IGZvcmVncm91bmRWYWxpZGF0CiAgICAgICAgIGlmICghbV9hZ2dyZXNzaXZlbHlSZXRhaW5zVGls
ZXMpCiAgICAgICAgICAgICBzY2hlZHVsZUNvaG9ydFJlbW92YWwoKTsKICAgICB9Ci0KLSAgICBU
aWxlSW5kZXggdG9wTGVmdDsKLSAgICBUaWxlSW5kZXggYm90dG9tUmlnaHQ7Ci0gICAgZ2V0VGls
ZUluZGV4UmFuZ2VGb3JSZWN0KGNvdmVyYWdlUmVjdEluVGlsZUNvb3JkcywgdG9wTGVmdCwgYm90
dG9tUmlnaHQpOwotCi0gICAgVmVjdG9yPEZsb2F0UmVjdD4gZGlydHlSZWN0czsKICAgICAKICAg
ICAvLyBFbnN1cmUgcHJpbWFyeSB0aWxlIGNvdmVyYWdlIHRpbGVzLgotICAgIG1fcHJpbWFyeVRp
bGVDb3ZlcmFnZVJlY3QgPSBJbnRSZWN0KCk7Ci0KLSAgICBmb3IgKGludCB5ID0gdG9wTGVmdC55
KCk7IHkgPD0gYm90dG9tUmlnaHQueSgpOyArK3kpIHsKLSAgICAgICAgZm9yIChpbnQgeCA9IHRv
cExlZnQueCgpOyB4IDw9IGJvdHRvbVJpZ2h0LngoKTsgKyt4KSB7Ci0gICAgICAgICAgICBUaWxl
SW5kZXggdGlsZUluZGV4KHgsIHkpOwotCi0gICAgICAgICAgICBJbnRSZWN0IHRpbGVSZWN0ID0g
cmVjdEZvclRpbGVJbmRleCh0aWxlSW5kZXgpOwotICAgICAgICAgICAgbV9wcmltYXJ5VGlsZUNv
dmVyYWdlUmVjdC51bml0ZSh0aWxlUmVjdCk7Ci0KLSAgICAgICAgICAgIGJvb2wgc2hvdWxkQ2hh
bmdlVGlsZUxheWVyRnJhbWUgPSBmYWxzZTsKLQotICAgICAgICAgICAgVGlsZUluZm8mIHRpbGVJ
bmZvID0gbV90aWxlcy5hZGQodGlsZUluZGV4LCBUaWxlSW5mbygpKS5pdGVyYXRvci0+dmFsdWU7
Ci0gICAgICAgICAgICBpZiAoIXRpbGVJbmZvLmxheWVyKQotICAgICAgICAgICAgICAgIHRpbGVJ
bmZvLmxheWVyID0gY3JlYXRlVGlsZUxheWVyKHRpbGVSZWN0KTsKLSAgICAgICAgICAgIGVsc2Ug
ewotICAgICAgICAgICAgICAgIC8vIFdlIGFscmVhZHkgaGF2ZSBhIGxheWVyIGZvciB0aGlzIHRp
bGUuIEVuc3VyZSB0aGF0IGl0cyBzaXplIGlzIGNvcnJlY3QuCi0gICAgICAgICAgICAgICAgRmxv
YXRTaXplIHRpbGVMYXllclNpemUoW3RpbGVJbmZvLmxheWVyLmdldCgpIGZyYW1lXS5zaXplKTsK
LSAgICAgICAgICAgICAgICBzaG91bGRDaGFuZ2VUaWxlTGF5ZXJGcmFtZSA9IHRpbGVMYXllclNp
emUgIT0gRmxvYXRTaXplKHRpbGVSZWN0LnNpemUoKSk7Ci0KLSAgICAgICAgICAgICAgICBpZiAo
c2hvdWxkQ2hhbmdlVGlsZUxheWVyRnJhbWUpCi0gICAgICAgICAgICAgICAgICAgIFt0aWxlSW5m
by5sYXllci5nZXQoKSBzZXRGcmFtZTp0aWxlUmVjdF07Ci0gICAgICAgICAgICB9Ci0KLSAgICAg
ICAgICAgIGJvb2wgc2hvdWxkUGFyZW50VGlsZUxheWVyID0gKCFtX3VucGFyZW50c09mZnNjcmVl
blRpbGVzIHx8IG1faXNJbldpbmRvdykgJiYgIVt0aWxlSW5mby5sYXllci5nZXQoKSBzdXBlcmxh
eWVyXTsKLQotICAgICAgICAgICAgaWYgKHNob3VsZFBhcmVudFRpbGVMYXllcikKLSAgICAgICAg
ICAgICAgICBbbV90aWxlQ29udGFpbmVyTGF5ZXIuZ2V0KCkgYWRkU3VibGF5ZXI6dGlsZUluZm8u
bGF5ZXIuZ2V0KCldOwotCi0gICAgICAgICAgICBpZiAoKHNob3VsZFBhcmVudFRpbGVMYXllciAm
JiBbdGlsZUluZm8ubGF5ZXIuZ2V0KCkgbmVlZHNEaXNwbGF5XSkgfHwgc2hvdWxkQ2hhbmdlVGls
ZUxheWVyRnJhbWUpIHsKLSAgICAgICAgICAgICAgICBGbG9hdFJlY3Qgc2NhbGVkVGlsZVJlY3Qg
PSB0aWxlUmVjdDsKLSAgICAgICAgICAgICAgICBzY2FsZWRUaWxlUmVjdC5zY2FsZSgxIC8gbV9z
Y2FsZSk7Ci0gICAgICAgICAgICAgICAgZGlydHlSZWN0cy5hcHBlbmQoc2NhbGVkVGlsZVJlY3Qp
OwotICAgICAgICAgICAgfQotICAgICAgICB9Ci0gICAgfQorICAgIG1fcHJpbWFyeVRpbGVDb3Zl
cmFnZVJlY3QgPSBlbnN1cmVUaWxlc0ZvclJlY3QodGlsZUNvdmVyYWdlUmVjdCwgTmV3VGlsZVR5
cGU6OlByaW1hcnlUaWxlcyk7CiAKICAgICBpZiAodmFsaWRhdGlvblBvbGljeSAmIFBydW5lU2Vj
b25kYXJ5VGlsZXMpIHsKICAgICAgICAgcmVtb3ZlQWxsU2Vjb25kYXJ5VGlsZXMoKTsKQEAgLTc1
MywxMiArNzIzLDYgQEAgdm9pZCBUaWxlQ29udHJvbGxlcjo6cmV2YWxpZGF0ZVRpbGVzKFRpbGVW
YWxpZGF0aW9uUG9saWN5RmxhZ3MgZm9yZWdyb3VuZFZhbGlkYXQKIAogICAgIG1fdmlzaWJsZVJl
Y3RBdExhc3RSZXZhbGlkYXRlID0gdmlzaWJsZVJlY3Q7CiAgICAgbV9ib3VuZHNBdExhc3RSZXZh
bGlkYXRlID0gYm91bmRzOwotCi0gICAgaWYgKGRpcnR5UmVjdHMuaXNFbXB0eSgpKQotICAgICAg
ICByZXR1cm47Ci0KLSAgICAvLyBUaGlzIHdpbGwgZW5zdXJlIHdlIGZsdXNoIGNvbXBvc2l0aW5n
IHN0YXRlIGFuZCBkbyBsYXlvdXQgaW4gdGhpcyBydW4gbG9vcCBpdGVyYXRpb24uCi0gICAgcGxh
dGZvcm1MYXllci0+b3duZXIoKS0+cGxhdGZvcm1DQUxheWVyRGlkQ3JlYXRlVGlsZXMoZGlydHlS
ZWN0cyk7CiB9CiAKIFRpbGVDb250cm9sbGVyOjpUaWxlQ29ob3J0IFRpbGVDb250cm9sbGVyOjpu
ZXh0VGlsZUNvaG9ydCgpIGNvbnN0CkBAIC04MTIsMjIgKzc3NiwxOSBAQCB2b2lkIFRpbGVDb250
cm9sbGVyOjpjb2hvcnRSZW1vdmFsVGltZXJGaXJlZChUaW1lcjxUaWxlQ29udHJvbGxlcj4qKQog
ICAgICAgICB1cGRhdGVUaWxlQ292ZXJhZ2VNYXAoKTsKIH0KIAotdm9pZCBUaWxlQ29udHJvbGxl
cjo6ZW5zdXJlVGlsZXNGb3JSZWN0KGNvbnN0IEZsb2F0UmVjdCYgcmVjdCkKK0ludFJlY3QgVGls
ZUNvbnRyb2xsZXI6OmVuc3VyZVRpbGVzRm9yUmVjdChjb25zdCBGbG9hdFJlY3QmIHJlY3QsIE5l
d1RpbGVUeXBlIG5ld1RpbGVUeXBlKQogewogICAgIGlmIChtX3VucGFyZW50c09mZnNjcmVlblRp
bGVzICYmICFtX2lzSW5XaW5kb3cpCi0gICAgICAgIHJldHVybjsKKyAgICAgICAgcmV0dXJuIElu
dFJlY3QoKTsKIAogICAgIFBsYXRmb3JtQ0FMYXllciogcGxhdGZvcm1MYXllciA9IFBsYXRmb3Jt
Q0FMYXllcjo6cGxhdGZvcm1DQUxheWVyKG1fdGlsZUNhY2hlTGF5ZXIpOwogICAgIGlmICghcGxh
dGZvcm1MYXllcikKLSAgICAgICAgcmV0dXJuOworICAgICAgICByZXR1cm4gSW50UmVjdCgpOwog
CiAgICAgRmxvYXRSZWN0IHNjYWxlZFJlY3QocmVjdCk7CiAgICAgc2NhbGVkUmVjdC5zY2FsZSht
X3NjYWxlKTsKICAgICBJbnRSZWN0IHJlY3RJblRpbGVDb29yZHMoZW5jbG9zaW5nSW50UmVjdChz
Y2FsZWRSZWN0KSk7CiAKLSAgICBpZiAobV9wcmltYXJ5VGlsZUNvdmVyYWdlUmVjdC5jb250YWlu
cyhyZWN0SW5UaWxlQ29vcmRzKSkKLSAgICAgICAgcmV0dXJuOwotCiAgICAgVGlsZUluZGV4IHRv
cExlZnQ7CiAgICAgVGlsZUluZGV4IGJvdHRvbVJpZ2h0OwogICAgIGdldFRpbGVJbmRleFJhbmdl
Rm9yUmVjdChyZWN0SW5UaWxlQ29vcmRzLCB0b3BMZWZ0LCBib3R0b21SaWdodCk7CkBAIC04MzYs
NiArNzk3LDggQEAgdm9pZCBUaWxlQ29udHJvbGxlcjo6ZW5zdXJlVGlsZXNGb3JSZWN0KGNvbnN0
IEZsb2F0UmVjdCYgcmVjdCkKICAgICBUaWxlQ29ob3J0IGN1cnJDb2hvcnQgPSBuZXh0VGlsZUNv
aG9ydCgpOwogICAgIHVuc2lnbmVkIHRpbGVzSW5Db2hvcnQgPSAwOwogCisgICAgSW50UmVjdCBj
b3ZlcmFnZVJlY3Q7CisKICAgICBmb3IgKGludCB5ID0gdG9wTGVmdC55KCk7IHkgPD0gYm90dG9t
UmlnaHQueSgpOyArK3kpIHsKICAgICAgICAgZm9yIChpbnQgeCA9IHRvcExlZnQueCgpOyB4IDw9
IGJvdHRvbVJpZ2h0LngoKTsgKyt4KSB7CiAgICAgICAgICAgICBUaWxlSW5kZXggdGlsZUluZGV4
KHgsIHkpOwpAQCAtODQzLDI1ICs4MDYsMjcgQEAgdm9pZCBUaWxlQ29udHJvbGxlcjo6ZW5zdXJl
VGlsZXNGb3JSZWN0KGNvbnN0IEZsb2F0UmVjdCYgcmVjdCkKICAgICAgICAgICAgIEludFJlY3Qg
dGlsZVJlY3QgPSByZWN0Rm9yVGlsZUluZGV4KHRpbGVJbmRleCk7CiAgICAgICAgICAgICBUaWxl
SW5mbyYgdGlsZUluZm8gPSBtX3RpbGVzLmFkZCh0aWxlSW5kZXgsIFRpbGVJbmZvKCkpLml0ZXJh
dG9yLT52YWx1ZTsKIAorICAgICAgICAgICAgY292ZXJhZ2VSZWN0LnVuaXRlKHRpbGVSZWN0KTsK
KwogICAgICAgICAgICAgYm9vbCBzaG91bGRDaGFuZ2VUaWxlTGF5ZXJGcmFtZSA9IGZhbHNlOwog
CiAgICAgICAgICAgICBpZiAoIXRpbGVJbmZvLmxheWVyKQogICAgICAgICAgICAgICAgIHRpbGVJ
bmZvLmxheWVyID0gY3JlYXRlVGlsZUxheWVyKHRpbGVSZWN0KTsKICAgICAgICAgICAgIGVsc2Ug
ewogICAgICAgICAgICAgICAgIC8vIFdlIGFscmVhZHkgaGF2ZSBhIGxheWVyIGZvciB0aGlzIHRp
bGUuIEVuc3VyZSB0aGF0IGl0cyBzaXplIGlzIGNvcnJlY3QuCi0gICAgICAgICAgICAgICAgQ0dT
aXplIHRpbGVMYXllclNpemUgPSBbdGlsZUluZm8ubGF5ZXIuZ2V0KCkgZnJhbWVdLnNpemU7Ci0g
ICAgICAgICAgICAgICAgc2hvdWxkQ2hhbmdlVGlsZUxheWVyRnJhbWUgPSB0aWxlTGF5ZXJTaXpl
LndpZHRoIDwgdGlsZVJlY3Qud2lkdGgoKSB8fCB0aWxlTGF5ZXJTaXplLmhlaWdodCA8IHRpbGVS
ZWN0LmhlaWdodCgpOworICAgICAgICAgICAgICAgIEZsb2F0U2l6ZSB0aWxlTGF5ZXJTaXplKFt0
aWxlSW5mby5sYXllci5nZXQoKSBmcmFtZV0uc2l6ZSk7CisgICAgICAgICAgICAgICAgc2hvdWxk
Q2hhbmdlVGlsZUxheWVyRnJhbWUgPSB0aWxlTGF5ZXJTaXplICE9IEZsb2F0U2l6ZSh0aWxlUmVj
dC5zaXplKCkpOwogCiAgICAgICAgICAgICAgICAgaWYgKHNob3VsZENoYW5nZVRpbGVMYXllckZy
YW1lKQogICAgICAgICAgICAgICAgICAgICBbdGlsZUluZm8ubGF5ZXIuZ2V0KCkgc2V0RnJhbWU6
dGlsZVJlY3RdOwogICAgICAgICAgICAgfQogCi0gICAgICAgICAgICBpZiAoIXRpbGVSZWN0Lmlu
dGVyc2VjdHMobV9wcmltYXJ5VGlsZUNvdmVyYWdlUmVjdCkpIHsKKyAgICAgICAgICAgIGlmIChu
ZXdUaWxlVHlwZSA9PSBOZXdUaWxlVHlwZTo6U2Vjb25kYXJ5VGlsZXMgJiYgIXRpbGVSZWN0Lmlu
dGVyc2VjdHMobV9wcmltYXJ5VGlsZUNvdmVyYWdlUmVjdCkpIHsKICAgICAgICAgICAgICAgICB0
aWxlSW5mby5jb2hvcnQgPSBjdXJyQ29ob3J0OwogICAgICAgICAgICAgICAgICsrdGlsZXNJbkNv
aG9ydDsKICAgICAgICAgICAgIH0KIAotICAgICAgICAgICAgYm9vbCBzaG91bGRQYXJlbnRUaWxl
TGF5ZXIgPSAhW3RpbGVJbmZvLmxheWVyLmdldCgpIHN1cGVybGF5ZXJdOworICAgICAgICAgICAg
Ym9vbCBzaG91bGRQYXJlbnRUaWxlTGF5ZXIgPSAoIW1fdW5wYXJlbnRzT2Zmc2NyZWVuVGlsZXMg
fHwgbV9pc0luV2luZG93KSAmJiAhW3RpbGVJbmZvLmxheWVyLmdldCgpIHN1cGVybGF5ZXJdOwog
CiAgICAgICAgICAgICBpZiAoc2hvdWxkUGFyZW50VGlsZUxheWVyKQogICAgICAgICAgICAgICAg
IFttX3RpbGVDb250YWluZXJMYXllci5nZXQoKSBhZGRTdWJsYXllcjp0aWxlSW5mby5sYXllci5n
ZXQoKV07CkBAIC04NzcsMTIgKzg0MiwxMSBAQCB2b2lkIFRpbGVDb250cm9sbGVyOjplbnN1cmVU
aWxlc0ZvclJlY3QoY29uc3QgRmxvYXRSZWN0JiByZWN0KQogICAgIGlmICh0aWxlc0luQ29ob3J0
KQogICAgICAgICBzdGFydGVkTmV3Q29ob3J0KGN1cnJDb2hvcnQpOwogCi0gICAgaWYgKG1fdGls
ZWRTY3JvbGxpbmdJbmRpY2F0b3JMYXllcikKLSAgICAgICAgdXBkYXRlVGlsZUNvdmVyYWdlTWFw
KCk7Ci0KICAgICAvLyBUaGlzIHdpbGwgZW5zdXJlIHdlIGZsdXNoIGNvbXBvc2l0aW5nIHN0YXRl
IGFuZCBkbyBsYXlvdXQgaW4gdGhpcyBydW4gbG9vcCBpdGVyYXRpb24uCiAgICAgaWYgKCFkaXJ0
eVJlY3RzLmlzRW1wdHkoKSkKICAgICAgICAgcGxhdGZvcm1MYXllci0+b3duZXIoKS0+cGxhdGZv
cm1DQUxheWVyRGlkQ3JlYXRlVGlsZXMoZGlydHlSZWN0cyk7CisKKyAgICByZXR1cm4gY292ZXJh
Z2VSZWN0OwogfQogCiB2b2lkIFRpbGVDb250cm9sbGVyOjp1cGRhdGVUaWxlQ292ZXJhZ2VNYXAo
KQo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>208872</attachid>
            <date>2013-08-15 17:53:12 -0700</date>
            <delta_ts>2013-08-16 17:32:50 -0700</delta_ts>
            <desc>patch</desc>
            <filename>tilecontroller-duplication.diff</filename>
            <type>text/plain</type>
            <size>9176</size>
            <attacher name="Tim Horton">thorton</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCA1ZjA1ZDg5Li4zNmQyNzk4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzAg
QEAKKzIwMTMtMDgtMTUgIFRpbSBIb3J0b24gIDx0aW1vdGh5X2hvcnRvbkBhcHBsZS5jb20+CisK
KyAgICAgICAgPGh0dHBzOi8vd2Via2l0Lm9yZy9iLzExOTI4Mj4gcmV2YWxpZGF0ZVRpbGVzIGFu
ZCBlbnN1cmVUaWxlc0ZvclJlY3QgY2FuIHNoYXJlIGEgbG90IG9mIGNvZGUKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBObyBuZXcgdGVzdHMsIGp1c3Qg
YSByZWZhY3RvcmluZy4KKworICAgICAgICBUaGUgYm9kaWVzIG9mIGVuc3VyZVRpbGVzRm9yUmVj
dCBhbmQgcmV2YWxpZGF0ZVRpbGVzIGFyZSBuZWFybHkgZXF1aXZhbGVudC4KKworICAgICAgICAq
IHBsYXRmb3JtL2dyYXBoaWNzL2NhL21hYy9UaWxlQ29udHJvbGxlci5oOgorICAgICAgICBBZGQg
YW4gZW51bSwgTmV3VGlsZVR5cGUsIHRvIG5vdGUgd2hldGhlciB0aGUgdGlsZXMgY3JlYXRlZCBi
eSBlbnN1cmVUaWxlc0ZvclJlY3Qgd2lsbAorICAgICAgICBiZSBwcmltYXJ5IGNvdmVyYWdlIHRp
bGVzIG9yIHNlY29uZGFyeSBvdXQtb2YtdmlldyB0aWxlcy4KKworICAgICAgICAqIHBsYXRmb3Jt
L2dyYXBoaWNzL2NhL21hYy9UaWxlQ29udHJvbGxlci5tbToKKyAgICAgICAgKFdlYkNvcmU6OlRp
bGVDb250cm9sbGVyOjpwcmVwb3B1bGF0ZVJlY3QpOgorICAgICAgICBNb3ZlIHRoZSBjb2RlIHRv
IHNlZSBpZiB3ZSBhbHJlYWR5IGhhdmUgdGhlIHJlcXVpc2l0ZSB0aWxlcyBpbiB0aGUKKyAgICAg
ICAgcHJpbWFyeSBjb3ZlcmFnZSByZWN0LCBhcyB3ZWxsIGFzIG91ciBjYWxsIHRvIHVwZGF0ZVRp
bGVDb3ZlcmFnZU1hcCwKKyAgICAgICAgb3V0IGludG8gcHJlcG9wdWxhdGVSZWN0LCB0byBnZW5l
cmFsaXplIGVuc3VyZVRpbGVzRm9yUmVjdC4KKworICAgICAgICAoV2ViQ29yZTo6VGlsZUNvbnRy
b2xsZXI6OnJldmFsaWRhdGVUaWxlcyk6CisgICAgICAgIE1ha2UgdXNlIG9mIGVuc3VyZVRpbGVz
Rm9yUmVjdC4gVGhlIHBsYXRmb3JtQ0FMYXllckRpZENyZWF0ZVRpbGVzIGNhbGwgd2lsbCBoYXBw
ZW4gdGhlcmUsIG5vdy4KKworICAgICAgICAoV2ViQ29yZTo6VGlsZUNvbnRyb2xsZXI6OmVuc3Vy
ZVRpbGVzRm9yUmVjdCk6CisgICAgICAgIE1ha2UgZW5zdXJlVGlsZXNGb3JSZWN0IHJldHVybiB0
aGUgcmVjdCB0aGF0IGl0IGNyZWF0ZWQgdGlsZXMgZm9yLCBhbmQgb25seSBwdXQKKyAgICAgICAg
dGlsZXMgaW4gYSBjb2hvcnQgaWYgd2UncmUgY3JlYXRpbmcgc2Vjb25kYXJ5IHRpbGVzLgorCiAy
MDEzLTA4LTE1ICBIYW5zIE11bGxlciAgPGhtdWxsZXJAYWRvYmUuY29tPgogCiAgICAgICAgIFtD
U1MgU2hhcGVzXSBBZGQgc3VwcG9ydCBmb3Igc2hhcGUtb3V0c2lkZSBpbWFnZSB2YWx1ZXMKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL21hYy9UaWxlQ29u
dHJvbGxlci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2EvbWFjL1RpbGVD
b250cm9sbGVyLmgKaW5kZXggNTQ2ZmE4MS4uZjllNjE3OCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2EvbWFjL1RpbGVDb250cm9sbGVyLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2EvbWFjL1RpbGVDb250cm9sbGVyLmgKQEAg
LTE0Niw3ICsxNDYsOCBAQCBwcml2YXRlOgogICAgIHR5cGVkZWYgdW5zaWduZWQgVGlsZVZhbGlk
YXRpb25Qb2xpY3lGbGFnczsKIAogICAgIHZvaWQgcmV2YWxpZGF0ZVRpbGVzKFRpbGVWYWxpZGF0
aW9uUG9saWN5RmxhZ3MgZm9yZWdyb3VuZFZhbGlkYXRpb25Qb2xpY3kgPSAwLCBUaWxlVmFsaWRh
dGlvblBvbGljeUZsYWdzIGJhY2tncm91bmRWYWxpZGF0aW9uUG9saWN5ID0gMCk7Ci0gICAgdm9p
ZCBlbnN1cmVUaWxlc0ZvclJlY3QoY29uc3QgRmxvYXRSZWN0Jik7CisgICAgZW51bSBjbGFzcyBO
ZXdUaWxlVHlwZSB7IFByaW1hcnlUaWxlcywgU2Vjb25kYXJ5VGlsZXMgfTsKKyAgICBJbnRSZWN0
IGVuc3VyZVRpbGVzRm9yUmVjdChjb25zdCBGbG9hdFJlY3QmLCBOZXdUaWxlVHlwZSk7CiAgICAg
dm9pZCB1cGRhdGVUaWxlQ292ZXJhZ2VNYXAoKTsKIAogICAgIHZvaWQgcmVtb3ZlQWxsVGlsZXMo
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL21hYy9U
aWxlQ29udHJvbGxlci5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL21h
Yy9UaWxlQ29udHJvbGxlci5tbQppbmRleCBkN2Y3ZmE0Li5iMWFjMzkxIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9tYWMvVGlsZUNvbnRyb2xsZXIubW0K
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2EvbWFjL1RpbGVDb250cm9s
bGVyLm1tCkBAIC0zNTgsNyArMzU4LDE3IEBAIHZvaWQgVGlsZUNvbnRyb2xsZXI6OnNldENsaXBz
VG9FeHBvc2VkUmVjdChib29sIGNsaXBzVG9FeHBvc2VkUmVjdCkKIAogdm9pZCBUaWxlQ29udHJv
bGxlcjo6cHJlcG9wdWxhdGVSZWN0KGNvbnN0IEZsb2F0UmVjdCYgcmVjdCkKIHsKLSAgICBlbnN1
cmVUaWxlc0ZvclJlY3QocmVjdCk7CisgICAgRmxvYXRSZWN0IHNjYWxlZFJlY3QocmVjdCk7Cisg
ICAgc2NhbGVkUmVjdC5zY2FsZShtX3NjYWxlKTsKKyAgICBJbnRSZWN0IHJlY3RJblRpbGVDb29y
ZHMoZW5jbG9zaW5nSW50UmVjdChzY2FsZWRSZWN0KSk7CisKKyAgICBpZiAobV9wcmltYXJ5VGls
ZUNvdmVyYWdlUmVjdC5jb250YWlucyhyZWN0SW5UaWxlQ29vcmRzKSkKKyAgICAgICAgcmV0dXJu
OworCisgICAgZW5zdXJlVGlsZXNGb3JSZWN0KHJlY3QsIE5ld1RpbGVUeXBlOjpTZWNvbmRhcnlU
aWxlcyk7CisKKyAgICBpZiAobV90aWxlZFNjcm9sbGluZ0luZGljYXRvckxheWVyKQorICAgICAg
ICB1cGRhdGVUaWxlQ292ZXJhZ2VNYXAoKTsKIH0KIAogdm9pZCBUaWxlQ29udHJvbGxlcjo6c2V0
SXNJbldpbmRvdyhib29sIGlzSW5XaW5kb3cpCkBAIC02NjksNDkgKzY3OSw5IEBAIHZvaWQgVGls
ZUNvbnRyb2xsZXI6OnJldmFsaWRhdGVUaWxlcyhUaWxlVmFsaWRhdGlvblBvbGljeUZsYWdzIGZv
cmVncm91bmRWYWxpZGF0CiAgICAgICAgIGlmICghbV9hZ2dyZXNzaXZlbHlSZXRhaW5zVGlsZXMp
CiAgICAgICAgICAgICBzY2hlZHVsZUNvaG9ydFJlbW92YWwoKTsKICAgICB9Ci0KLSAgICBUaWxl
SW5kZXggdG9wTGVmdDsKLSAgICBUaWxlSW5kZXggYm90dG9tUmlnaHQ7Ci0gICAgZ2V0VGlsZUlu
ZGV4UmFuZ2VGb3JSZWN0KGNvdmVyYWdlUmVjdEluVGlsZUNvb3JkcywgdG9wTGVmdCwgYm90dG9t
UmlnaHQpOwotCi0gICAgVmVjdG9yPEZsb2F0UmVjdD4gZGlydHlSZWN0czsKICAgICAKICAgICAv
LyBFbnN1cmUgcHJpbWFyeSB0aWxlIGNvdmVyYWdlIHRpbGVzLgotICAgIG1fcHJpbWFyeVRpbGVD
b3ZlcmFnZVJlY3QgPSBJbnRSZWN0KCk7Ci0KLSAgICBmb3IgKGludCB5ID0gdG9wTGVmdC55KCk7
IHkgPD0gYm90dG9tUmlnaHQueSgpOyArK3kpIHsKLSAgICAgICAgZm9yIChpbnQgeCA9IHRvcExl
ZnQueCgpOyB4IDw9IGJvdHRvbVJpZ2h0LngoKTsgKyt4KSB7Ci0gICAgICAgICAgICBUaWxlSW5k
ZXggdGlsZUluZGV4KHgsIHkpOwotCi0gICAgICAgICAgICBJbnRSZWN0IHRpbGVSZWN0ID0gcmVj
dEZvclRpbGVJbmRleCh0aWxlSW5kZXgpOwotICAgICAgICAgICAgbV9wcmltYXJ5VGlsZUNvdmVy
YWdlUmVjdC51bml0ZSh0aWxlUmVjdCk7Ci0KLSAgICAgICAgICAgIGJvb2wgc2hvdWxkQ2hhbmdl
VGlsZUxheWVyRnJhbWUgPSBmYWxzZTsKLQotICAgICAgICAgICAgVGlsZUluZm8mIHRpbGVJbmZv
ID0gbV90aWxlcy5hZGQodGlsZUluZGV4LCBUaWxlSW5mbygpKS5pdGVyYXRvci0+dmFsdWU7Ci0g
ICAgICAgICAgICBpZiAoIXRpbGVJbmZvLmxheWVyKQotICAgICAgICAgICAgICAgIHRpbGVJbmZv
LmxheWVyID0gY3JlYXRlVGlsZUxheWVyKHRpbGVSZWN0KTsKLSAgICAgICAgICAgIGVsc2Ugewot
ICAgICAgICAgICAgICAgIC8vIFdlIGFscmVhZHkgaGF2ZSBhIGxheWVyIGZvciB0aGlzIHRpbGUu
IEVuc3VyZSB0aGF0IGl0cyBzaXplIGlzIGNvcnJlY3QuCi0gICAgICAgICAgICAgICAgRmxvYXRT
aXplIHRpbGVMYXllclNpemUoW3RpbGVJbmZvLmxheWVyLmdldCgpIGZyYW1lXS5zaXplKTsKLSAg
ICAgICAgICAgICAgICBzaG91bGRDaGFuZ2VUaWxlTGF5ZXJGcmFtZSA9IHRpbGVMYXllclNpemUg
IT0gRmxvYXRTaXplKHRpbGVSZWN0LnNpemUoKSk7Ci0KLSAgICAgICAgICAgICAgICBpZiAoc2hv
dWxkQ2hhbmdlVGlsZUxheWVyRnJhbWUpCi0gICAgICAgICAgICAgICAgICAgIFt0aWxlSW5mby5s
YXllci5nZXQoKSBzZXRGcmFtZTp0aWxlUmVjdF07Ci0gICAgICAgICAgICB9Ci0KLSAgICAgICAg
ICAgIGJvb2wgc2hvdWxkUGFyZW50VGlsZUxheWVyID0gKCFtX3VucGFyZW50c09mZnNjcmVlblRp
bGVzIHx8IG1faXNJbldpbmRvdykgJiYgIVt0aWxlSW5mby5sYXllci5nZXQoKSBzdXBlcmxheWVy
XTsKLQotICAgICAgICAgICAgaWYgKHNob3VsZFBhcmVudFRpbGVMYXllcikKLSAgICAgICAgICAg
ICAgICBbbV90aWxlQ29udGFpbmVyTGF5ZXIuZ2V0KCkgYWRkU3VibGF5ZXI6dGlsZUluZm8ubGF5
ZXIuZ2V0KCldOwotCi0gICAgICAgICAgICBpZiAoKHNob3VsZFBhcmVudFRpbGVMYXllciAmJiBb
dGlsZUluZm8ubGF5ZXIuZ2V0KCkgbmVlZHNEaXNwbGF5XSkgfHwgc2hvdWxkQ2hhbmdlVGlsZUxh
eWVyRnJhbWUpIHsKLSAgICAgICAgICAgICAgICBGbG9hdFJlY3Qgc2NhbGVkVGlsZVJlY3QgPSB0
aWxlUmVjdDsKLSAgICAgICAgICAgICAgICBzY2FsZWRUaWxlUmVjdC5zY2FsZSgxIC8gbV9zY2Fs
ZSk7Ci0gICAgICAgICAgICAgICAgZGlydHlSZWN0cy5hcHBlbmQoc2NhbGVkVGlsZVJlY3QpOwot
ICAgICAgICAgICAgfQotICAgICAgICB9Ci0gICAgfQorICAgIG1fcHJpbWFyeVRpbGVDb3ZlcmFn
ZVJlY3QgPSBlbnN1cmVUaWxlc0ZvclJlY3QodGlsZUNvdmVyYWdlUmVjdCwgTmV3VGlsZVR5cGU6
OlByaW1hcnlUaWxlcyk7CiAKICAgICBpZiAodmFsaWRhdGlvblBvbGljeSAmIFBydW5lU2Vjb25k
YXJ5VGlsZXMpIHsKICAgICAgICAgcmVtb3ZlQWxsU2Vjb25kYXJ5VGlsZXMoKTsKQEAgLTc1Mywx
MiArNzIzLDYgQEAgdm9pZCBUaWxlQ29udHJvbGxlcjo6cmV2YWxpZGF0ZVRpbGVzKFRpbGVWYWxp
ZGF0aW9uUG9saWN5RmxhZ3MgZm9yZWdyb3VuZFZhbGlkYXQKIAogICAgIG1fdmlzaWJsZVJlY3RB
dExhc3RSZXZhbGlkYXRlID0gdmlzaWJsZVJlY3Q7CiAgICAgbV9ib3VuZHNBdExhc3RSZXZhbGlk
YXRlID0gYm91bmRzOwotCi0gICAgaWYgKGRpcnR5UmVjdHMuaXNFbXB0eSgpKQotICAgICAgICBy
ZXR1cm47Ci0KLSAgICAvLyBUaGlzIHdpbGwgZW5zdXJlIHdlIGZsdXNoIGNvbXBvc2l0aW5nIHN0
YXRlIGFuZCBkbyBsYXlvdXQgaW4gdGhpcyBydW4gbG9vcCBpdGVyYXRpb24uCi0gICAgcGxhdGZv
cm1MYXllci0+b3duZXIoKS0+cGxhdGZvcm1DQUxheWVyRGlkQ3JlYXRlVGlsZXMoZGlydHlSZWN0
cyk7CiB9CiAKIFRpbGVDb250cm9sbGVyOjpUaWxlQ29ob3J0IFRpbGVDb250cm9sbGVyOjpuZXh0
VGlsZUNvaG9ydCgpIGNvbnN0CkBAIC04MTIsMjIgKzc3NiwxOSBAQCB2b2lkIFRpbGVDb250cm9s
bGVyOjpjb2hvcnRSZW1vdmFsVGltZXJGaXJlZChUaW1lcjxUaWxlQ29udHJvbGxlcj4qKQogICAg
ICAgICB1cGRhdGVUaWxlQ292ZXJhZ2VNYXAoKTsKIH0KIAotdm9pZCBUaWxlQ29udHJvbGxlcjo6
ZW5zdXJlVGlsZXNGb3JSZWN0KGNvbnN0IEZsb2F0UmVjdCYgcmVjdCkKK0ludFJlY3QgVGlsZUNv
bnRyb2xsZXI6OmVuc3VyZVRpbGVzRm9yUmVjdChjb25zdCBGbG9hdFJlY3QmIHJlY3QsIE5ld1Rp
bGVUeXBlIG5ld1RpbGVUeXBlKQogewogICAgIGlmIChtX3VucGFyZW50c09mZnNjcmVlblRpbGVz
ICYmICFtX2lzSW5XaW5kb3cpCi0gICAgICAgIHJldHVybjsKKyAgICAgICAgcmV0dXJuIEludFJl
Y3QoKTsKIAogICAgIFBsYXRmb3JtQ0FMYXllciogcGxhdGZvcm1MYXllciA9IFBsYXRmb3JtQ0FM
YXllcjo6cGxhdGZvcm1DQUxheWVyKG1fdGlsZUNhY2hlTGF5ZXIpOwogICAgIGlmICghcGxhdGZv
cm1MYXllcikKLSAgICAgICAgcmV0dXJuOworICAgICAgICByZXR1cm4gSW50UmVjdCgpOwogCiAg
ICAgRmxvYXRSZWN0IHNjYWxlZFJlY3QocmVjdCk7CiAgICAgc2NhbGVkUmVjdC5zY2FsZShtX3Nj
YWxlKTsKICAgICBJbnRSZWN0IHJlY3RJblRpbGVDb29yZHMoZW5jbG9zaW5nSW50UmVjdChzY2Fs
ZWRSZWN0KSk7CiAKLSAgICBpZiAobV9wcmltYXJ5VGlsZUNvdmVyYWdlUmVjdC5jb250YWlucyhy
ZWN0SW5UaWxlQ29vcmRzKSkKLSAgICAgICAgcmV0dXJuOwotCiAgICAgVGlsZUluZGV4IHRvcExl
ZnQ7CiAgICAgVGlsZUluZGV4IGJvdHRvbVJpZ2h0OwogICAgIGdldFRpbGVJbmRleFJhbmdlRm9y
UmVjdChyZWN0SW5UaWxlQ29vcmRzLCB0b3BMZWZ0LCBib3R0b21SaWdodCk7CkBAIC04MzYsNiAr
Nzk3LDggQEAgdm9pZCBUaWxlQ29udHJvbGxlcjo6ZW5zdXJlVGlsZXNGb3JSZWN0KGNvbnN0IEZs
b2F0UmVjdCYgcmVjdCkKICAgICBUaWxlQ29ob3J0IGN1cnJDb2hvcnQgPSBuZXh0VGlsZUNvaG9y
dCgpOwogICAgIHVuc2lnbmVkIHRpbGVzSW5Db2hvcnQgPSAwOwogCisgICAgSW50UmVjdCBjb3Zl
cmFnZVJlY3Q7CisKICAgICBmb3IgKGludCB5ID0gdG9wTGVmdC55KCk7IHkgPD0gYm90dG9tUmln
aHQueSgpOyArK3kpIHsKICAgICAgICAgZm9yIChpbnQgeCA9IHRvcExlZnQueCgpOyB4IDw9IGJv
dHRvbVJpZ2h0LngoKTsgKyt4KSB7CiAgICAgICAgICAgICBUaWxlSW5kZXggdGlsZUluZGV4KHgs
IHkpOwpAQCAtODQzLDI1ICs4MDYsMjcgQEAgdm9pZCBUaWxlQ29udHJvbGxlcjo6ZW5zdXJlVGls
ZXNGb3JSZWN0KGNvbnN0IEZsb2F0UmVjdCYgcmVjdCkKICAgICAgICAgICAgIEludFJlY3QgdGls
ZVJlY3QgPSByZWN0Rm9yVGlsZUluZGV4KHRpbGVJbmRleCk7CiAgICAgICAgICAgICBUaWxlSW5m
byYgdGlsZUluZm8gPSBtX3RpbGVzLmFkZCh0aWxlSW5kZXgsIFRpbGVJbmZvKCkpLml0ZXJhdG9y
LT52YWx1ZTsKIAorICAgICAgICAgICAgY292ZXJhZ2VSZWN0LnVuaXRlKHRpbGVSZWN0KTsKKwog
ICAgICAgICAgICAgYm9vbCBzaG91bGRDaGFuZ2VUaWxlTGF5ZXJGcmFtZSA9IGZhbHNlOwogCiAg
ICAgICAgICAgICBpZiAoIXRpbGVJbmZvLmxheWVyKQogICAgICAgICAgICAgICAgIHRpbGVJbmZv
LmxheWVyID0gY3JlYXRlVGlsZUxheWVyKHRpbGVSZWN0KTsKICAgICAgICAgICAgIGVsc2Ugewog
ICAgICAgICAgICAgICAgIC8vIFdlIGFscmVhZHkgaGF2ZSBhIGxheWVyIGZvciB0aGlzIHRpbGUu
IEVuc3VyZSB0aGF0IGl0cyBzaXplIGlzIGNvcnJlY3QuCi0gICAgICAgICAgICAgICAgQ0dTaXpl
IHRpbGVMYXllclNpemUgPSBbdGlsZUluZm8ubGF5ZXIuZ2V0KCkgZnJhbWVdLnNpemU7Ci0gICAg
ICAgICAgICAgICAgc2hvdWxkQ2hhbmdlVGlsZUxheWVyRnJhbWUgPSB0aWxlTGF5ZXJTaXplLndp
ZHRoIDwgdGlsZVJlY3Qud2lkdGgoKSB8fCB0aWxlTGF5ZXJTaXplLmhlaWdodCA8IHRpbGVSZWN0
LmhlaWdodCgpOworICAgICAgICAgICAgICAgIEZsb2F0U2l6ZSB0aWxlTGF5ZXJTaXplKFt0aWxl
SW5mby5sYXllci5nZXQoKSBmcmFtZV0uc2l6ZSk7CisgICAgICAgICAgICAgICAgc2hvdWxkQ2hh
bmdlVGlsZUxheWVyRnJhbWUgPSB0aWxlTGF5ZXJTaXplICE9IEZsb2F0U2l6ZSh0aWxlUmVjdC5z
aXplKCkpOwogCiAgICAgICAgICAgICAgICAgaWYgKHNob3VsZENoYW5nZVRpbGVMYXllckZyYW1l
KQogICAgICAgICAgICAgICAgICAgICBbdGlsZUluZm8ubGF5ZXIuZ2V0KCkgc2V0RnJhbWU6dGls
ZVJlY3RdOwogICAgICAgICAgICAgfQogCi0gICAgICAgICAgICBpZiAoIXRpbGVSZWN0LmludGVy
c2VjdHMobV9wcmltYXJ5VGlsZUNvdmVyYWdlUmVjdCkpIHsKKyAgICAgICAgICAgIGlmIChuZXdU
aWxlVHlwZSA9PSBOZXdUaWxlVHlwZTo6U2Vjb25kYXJ5VGlsZXMgJiYgIXRpbGVSZWN0LmludGVy
c2VjdHMobV9wcmltYXJ5VGlsZUNvdmVyYWdlUmVjdCkpIHsKICAgICAgICAgICAgICAgICB0aWxl
SW5mby5jb2hvcnQgPSBjdXJyQ29ob3J0OwogICAgICAgICAgICAgICAgICsrdGlsZXNJbkNvaG9y
dDsKICAgICAgICAgICAgIH0KIAotICAgICAgICAgICAgYm9vbCBzaG91bGRQYXJlbnRUaWxlTGF5
ZXIgPSAhW3RpbGVJbmZvLmxheWVyLmdldCgpIHN1cGVybGF5ZXJdOworICAgICAgICAgICAgYm9v
bCBzaG91bGRQYXJlbnRUaWxlTGF5ZXIgPSAoIW1fdW5wYXJlbnRzT2Zmc2NyZWVuVGlsZXMgfHwg
bV9pc0luV2luZG93KSAmJiAhW3RpbGVJbmZvLmxheWVyLmdldCgpIHN1cGVybGF5ZXJdOwogCiAg
ICAgICAgICAgICBpZiAoc2hvdWxkUGFyZW50VGlsZUxheWVyKQogICAgICAgICAgICAgICAgIFtt
X3RpbGVDb250YWluZXJMYXllci5nZXQoKSBhZGRTdWJsYXllcjp0aWxlSW5mby5sYXllci5nZXQo
KV07CkBAIC04NzcsMTIgKzg0MiwxMSBAQCB2b2lkIFRpbGVDb250cm9sbGVyOjplbnN1cmVUaWxl
c0ZvclJlY3QoY29uc3QgRmxvYXRSZWN0JiByZWN0KQogICAgIGlmICh0aWxlc0luQ29ob3J0KQog
ICAgICAgICBzdGFydGVkTmV3Q29ob3J0KGN1cnJDb2hvcnQpOwogCi0gICAgaWYgKG1fdGlsZWRT
Y3JvbGxpbmdJbmRpY2F0b3JMYXllcikKLSAgICAgICAgdXBkYXRlVGlsZUNvdmVyYWdlTWFwKCk7
Ci0KICAgICAvLyBUaGlzIHdpbGwgZW5zdXJlIHdlIGZsdXNoIGNvbXBvc2l0aW5nIHN0YXRlIGFu
ZCBkbyBsYXlvdXQgaW4gdGhpcyBydW4gbG9vcCBpdGVyYXRpb24uCiAgICAgaWYgKCFkaXJ0eVJl
Y3RzLmlzRW1wdHkoKSkKICAgICAgICAgcGxhdGZvcm1MYXllci0+b3duZXIoKS0+cGxhdGZvcm1D
QUxheWVyRGlkQ3JlYXRlVGlsZXMoZGlydHlSZWN0cyk7CisKKyAgICByZXR1cm4gY292ZXJhZ2VS
ZWN0OwogfQogCiB2b2lkIFRpbGVDb250cm9sbGVyOjp1cGRhdGVUaWxlQ292ZXJhZ2VNYXAoKQo=
</data>
<flag name="review"
          id="230831"
          type_id="1"
          status="+"
          setter="simon.fraser"
    />
          </attachment>
      

    </bug>

</bugzilla>