<?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>105687</bug_id>
          
          <creation_ts>2012-12-23 06:31:07 -0800</creation_ts>
          <short_desc>[EFL][WK2] Refactor snapshot taking code</short_desc>
          <delta_ts>2012-12-25 04:29:48 -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>WebKit EFL</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>103468</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Chris Dumez">cdumez</reporter>
          <assigned_to name="Chris Dumez">cdumez</assigned_to>
          <cc>gyuyoung.kim</cc>
    
    <cc>kenneth</cc>
    
    <cc>laszlo.gombos</cc>
    
    <cc>lucas.de.marchi</cc>
    
    <cc>rakuco</cc>
    
    <cc>tonikitoo</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>yael</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>796742</commentid>
    <comment_count>0</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2012-12-23 06:31:07 -0800</bug_when>
    <thetext>We should rename WKViewGetSnapshot to WKViewCreateSnapshot since the returned value needs to be adopted. The snapshot taking code should also be refactored to use smart pointers when possible.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>796744</commentid>
    <comment_count>1</comment_count>
      <attachid>180619</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2012-12-23 06:40:23 -0800</bug_when>
    <thetext>Created attachment 180619
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>796807</commentid>
    <comment_count>2</comment_count>
      <attachid>180619</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2012-12-23 13:04:50 -0800</bug_when>
    <thetext>Comment on attachment 180619
Patch

I think we can simplify a bit more, clearing flags for now.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>796943</commentid>
    <comment_count>3</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2012-12-24 04:24:48 -0800</bug_when>
    <thetext>(In reply to comment #2)
&gt; (From update of attachment 180619 [details])
&gt; I think we can simplify a bit more, clearing flags for now.

Nevermind, I think this is good enough for now. The patch is ready for review.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>796949</commentid>
    <comment_count>4</comment_count>
      <attachid>180619</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2012-12-24 04:41:19 -0800</bug_when>
    <thetext>Comment on attachment 180619
Patch

Actually, we can remove the call to glBindTexture() before glReadPixels(). It is not needed as glReadPixels() reads from the frame buffer, not the texture.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>796954</commentid>
    <comment_count>5</comment_count>
      <attachid>180663</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2012-12-24 04:59:10 -0800</bug_when>
    <thetext>Created attachment 180663
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>797128</commentid>
    <comment_count>6</comment_count>
      <attachid>180663</attachid>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2012-12-25 03:29:19 -0800</bug_when>
    <thetext>Comment on attachment 180663
Patch

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

&gt; Source/WebKit2/ChangeLog:21
&gt; +        a cairo_surface_t instead of a WKType. The value should be
&gt; +        converted to a WKType a C API level.

at*</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>797129</commentid>
    <comment_count>7</comment_count>
      <attachid>180663</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-12-25 03:31:33 -0800</bug_when>
    <thetext>Comment on attachment 180663
Patch

Rejecting attachment 180663 from commit-queue.

Failed to run &quot;[u&apos;/mnt/git/webkit-commit-queue/Tools/Scripts/webkit-patch&apos;, u&apos;--status-host=queues.webkit.org&apos;, ...&quot; exit_code: 1 cwd: /mnt/git/webkit-commit-queue

ChangeLog entry in Tools/ChangeLog is not at the top of the file.

Full output: http://queues.webkit.org/results/15503681</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>797133</commentid>
    <comment_count>8</comment_count>
      <attachid>180706</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2012-12-25 03:57:21 -0800</bug_when>
    <thetext>Created attachment 180706
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>797137</commentid>
    <comment_count>9</comment_count>
      <attachid>180706</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-12-25 04:29:43 -0800</bug_when>
    <thetext>Comment on attachment 180706
Patch for landing

Clearing flags on attachment: 180706

Committed r138462: &lt;http://trac.webkit.org/changeset/138462&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>797138</commentid>
    <comment_count>10</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-12-25 04:29:48 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>180619</attachid>
            <date>2012-12-23 06:40:23 -0800</date>
            <delta_ts>2012-12-24 04:59:10 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>105687_snapshot_refactoring.patch</filename>
            <type>text/plain</type>
            <size>8770</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0No
YW5nZUxvZwppbmRleCA1MjZmM2ExLi42ZTA2ZjlkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzMg
QEAKKzIwMTItMTItMjMgIENocmlzdG9waGUgRHVtZXogIDxjaHJpc3RvcGhlLmR1bWV6QGludGVs
LmNvbT4KKworICAgICAgICBbRUZMXVtXSzJdIFJlZmFjdG9yIHNuYXBzaG90IHRha2luZyBjb2Rl
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDU2ODcK
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBSZWZhY3Rv
ciBFRkwgV0syIHNuYXBzaG90IHRha2luZyBjb2RlIHRvIHVzZQorICAgICAgICBzbWFydCBwb2lu
dGVycyB3aGVuIHBvc3NpYmxlIGFuZCBmb2xsb3cgbmFtaW5nCisgICAgICAgIGNvbnZlbnRpb25z
LgorCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9DL2VmbC9XS1ZpZXcuY3BwOgorICAgICAgICAo
V0tWaWV3Q3JlYXRlU25hcHNob3QpOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQy9lZmwvV0tW
aWV3Lmg6IFJlbmFtZSBXS1ZpZXdHZXRTbmFwc2hvdAorICAgICAgICB0byBXS1ZpZXdDcmVhdGVT
bmFwc2hvdCB0byBmb2xsb3cgQyBBUEkgbmFtaW5nIGNvbnZlbnRpb25zLAorICAgICAgICBzaW5j
ZSB0aGUgcmV0dXJuZWQgdmFsdWUgbmVlZHMgdG8gYmUgYWRvcHRlZC4KKyAgICAgICAgKiBVSVBy
b2Nlc3MvQVBJL2VmbC9Fd2tWaWV3SW1wbC5jcHA6CisgICAgICAgIChFd2tWaWV3SW1wbDo6dGFr
ZVNuYXBzaG90KToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2VmbC9Fd2tWaWV3SW1wbC5oOiBI
YXZlIHRha2VTbmFwc2hvdCgpIHJldHVybgorICAgICAgICBhIGNhaXJvX3N1cmZhY2VfdCBpbnN0
ZWFkIG9mIGEgV0tUeXBlLiBUaGUgdmFsdWUgc2hvdWxkIGJlCisgICAgICAgIGNvbnZlcnRlZCB0
byBhIFdLVHlwZSBhIEMgQVBJIGxldmVsLgorICAgICAgICAoRXdrVmlld0ltcGwpOgorICAgICAg
ICAqIFVJUHJvY2Vzcy9BUEkvZWZsL1NuYXBzaG90SW1hZ2VHTC5jcHA6IFVzZSBPd25BcnJheVB0
ciBmb3IgdGhlCisgICAgICAgIGJ1ZmZlciB0byBhdm9pZCBtYW51YWwgbWVtb3J5IGhhbmRsaW5n
LgorICAgICAgICAoZ2V0SW1hZ2VEYXRhRnJvbUN1cnJlbnRUZXh0dXJlKToKKyAgICAgICAgKiBV
SVByb2Nlc3MvQVBJL2VmbC9TbmFwc2hvdEltYWdlR0wuaDogUmVuYW1lIGdldEltYWdlRnJvbUN1
cnJlbnRUZXh0dXJlCisgICAgICAgIHRvIGdldEltYWdlRGF0YUZyb21DdXJyZW50VGV4dHVyZSBm
b3IgY29uc2lzdGVuY3kgc2luY2Ugd2UgdGVjaG5pY2FsbHkKKyAgICAgICAgcmV0dXJuIHRoZSBw
aXhlbCBkYXRhIG9mIHRoZSBpbWFnZS4gSGF2ZSB0aGUgZnVuY3Rpb24gcmV0dXJuIGEgc21hcnQK
KyAgICAgICAgcG9pbnRlciBpbnN0ZWFkIG9mIGEgcmF3IG9uZSB0byBhdm9pZCBtYW51YWwgbWVt
b3J5IGhhbmRsaW5nLgorCiAyMDEyLTEyLTIyICBTYW0gV2VpbmlnICA8c2FtQHdlYmtpdC5vcmc+
CiAKICAgICAgICAgR2l2ZSB0aGUgQ2hpbGRQcm9jZXNzIGEgTWVzc2FnZVJlY2VpdmVyTWFwCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvZWZsL1dLVmlldy5jcHAg
Yi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvZWZsL1dLVmlldy5jcHAKaW5kZXggZjQ0
MzZhZS4uYTA2MjA1MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9D
L2VmbC9XS1ZpZXcuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9lZmwv
V0tWaWV3LmNwcApAQCAtMjMsNiArMjMsNyBAQAogI2luY2x1ZGUgIkV3a1ZpZXdJbXBsLmgiCiAj
aW5jbHVkZSAiV0tBUElDYXN0LmgiCiAjaW5jbHVkZSAiZXdrX3ZpZXdfcHJpdmF0ZS5oIgorI2lu
Y2x1ZGUgPFdlYktpdDIvV0tJbWFnZUNhaXJvLmg+CiAKIHVzaW5nIG5hbWVzcGFjZSBXZWJLaXQ7
CiAKQEAgLTQzLDkgKzQ0LDkgQEAgV0tQYWdlUmVmIFdLVmlld0dldFBhZ2UoV0tWaWV3UmVmIHZp
ZXdSZWYpCiAgICAgcmV0dXJuIHZpZXdJbXBsLT53a1BhZ2UoKTsKIH0KIAotV0tJbWFnZVJlZiBX
S1ZpZXdHZXRTbmFwc2hvdChXS1ZpZXdSZWYgdmlld1JlZikKK1dLSW1hZ2VSZWYgV0tWaWV3Q3Jl
YXRlU25hcHNob3QoV0tWaWV3UmVmIHZpZXdSZWYpCiB7CiAgICAgRXdrVmlld0ltcGwqIHZpZXdJ
bXBsID0gRXdrVmlld0ltcGw6OmZyb21FdmFzT2JqZWN0KHRvSW1wbCh2aWV3UmVmKSk7CiAKLSAg
ICByZXR1cm4gdmlld0ltcGwtPnRha2VTbmFwc2hvdCgpOworICAgIHJldHVybiBXS0ltYWdlQ3Jl
YXRlRnJvbUNhaXJvU3VyZmFjZSh2aWV3SW1wbC0+dGFrZVNuYXBzaG90KCkuZ2V0KCksIDAgLyog
b3B0aW9ucyAqLyk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJ
L0MvZWZsL1dLVmlldy5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL2VmbC9XS1Zp
ZXcuaAppbmRleCA4NGUxYjQ3Li5jYzczMDdjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvQVBJL0MvZWZsL1dLVmlldy5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9BUEkvQy9lZmwvV0tWaWV3LmgKQEAgLTM4LDcgKzM4LDcgQEAgV0tfRVhQT1JUIFdLVmlld1Jl
ZiBXS1ZpZXdDcmVhdGVXaXRoRml4ZWRMYXlvdXQoRXZhcyogY2FudmFzLCBXS0NvbnRleHRSZWYg
Y29udGUKIAogV0tfRVhQT1JUIFdLUGFnZVJlZiBXS1ZpZXdHZXRQYWdlKFdLVmlld1JlZiB2aWV3
KTsKIAotV0tfRVhQT1JUIFdLSW1hZ2VSZWYgV0tWaWV3R2V0U25hcHNob3QoV0tWaWV3UmVmIHZp
ZXdSZWYpOworV0tfRVhQT1JUIFdLSW1hZ2VSZWYgV0tWaWV3Q3JlYXRlU25hcHNob3QoV0tWaWV3
UmVmIHZpZXdSZWYpOwogCiAjaWZkZWYgX19jcGx1c3BsdXMKIH0KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL0V3a1ZpZXdJbXBsLmNwcCBiL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9BUEkvZWZsL0V3a1ZpZXdJbXBsLmNwcAppbmRleCBiZTJhN2E4Li5hNzkw
NjczIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9Fd2tWaWV3
SW1wbC5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvRXdrVmlld0lt
cGwuY3BwCkBAIC0xMDI5LDIxICsxMDI5LDE4IEBAIHZvaWQgRXdrVmlld0ltcGw6Om9uRmF2aWNv
bkNoYW5nZWQoY29uc3QgY2hhciogcGFnZVVSTCwgdm9pZCogZXZlbnRJbmZvKQogICAgIHZpZXdJ
bXBsLT5pbmZvcm1JY29uQ2hhbmdlKCk7CiB9CiAKLVdLSW1hZ2VSZWYgRXdrVmlld0ltcGw6OnRh
a2VTbmFwc2hvdCgpCitQYXNzUmVmUHRyPGNhaXJvX3N1cmZhY2VfdD4gRXdrVmlld0ltcGw6OnRh
a2VTbmFwc2hvdCgpCiB7CiAgICAgRXdrX1ZpZXdfU21hcnRfRGF0YSogc2QgPSBzbWFydERhdGEo
KTsKICNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCiAgICAgaWYgKCFtX2lzSGFyZHdh
cmVBY2NlbGVyYXRlZCkKICNlbmRpZgotICAgICAgICByZXR1cm4gV0tJbWFnZUNyZWF0ZUZyb21D
YWlyb1N1cmZhY2UoY3JlYXRlU3VyZmFjZUZvckltYWdlKHNkLT5pbWFnZSkuZ2V0KCksIDApOwor
ICAgICAgICByZXR1cm4gY3JlYXRlU3VyZmFjZUZvckltYWdlKHNkLT5pbWFnZSkuZ2V0KCk7CiAK
ICNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCiAgICAgRXZhc19OYXRpdmVfU3VyZmFj
ZSogbmF0aXZlU3VyZmFjZSA9IGV2YXNfb2JqZWN0X2ltYWdlX25hdGl2ZV9zdXJmYWNlX2dldChz
ZC0+aW1hZ2UpOwotICAgIHVuc2lnbmVkIGNoYXIqIGJ1ZmZlciA9IGdldEltYWdlRnJvbUN1cnJl
bnRUZXh0dXJlKHNkLT52aWV3LncsIHNkLT52aWV3LmgsIG5hdGl2ZVN1cmZhY2UtPmRhdGEub3Bl
bmdsLnRleHR1cmVfaWQpOwotICAgIFJlZlB0cjxjYWlyb19zdXJmYWNlX3Q+IHN1cmZhY2UgPSBh
ZG9wdFJlZihjYWlyb19pbWFnZV9zdXJmYWNlX2NyZWF0ZV9mb3JfZGF0YShidWZmZXIsIENBSVJP
X0ZPUk1BVF9BUkdCMzIsIHNkLT52aWV3LncsIHNkLT52aWV3LmgsIHNkLT52aWV3LncgKiA0KSk7
Ci0gICAgV0tJbWFnZVJlZiBpbWFnZSA9IFdLSW1hZ2VDcmVhdGVGcm9tQ2Fpcm9TdXJmYWNlKHN1
cmZhY2UuZ2V0KCksIDApOwotICAgIGRlbGV0ZVtdIGJ1ZmZlcjsKKyAgICBPd25BcnJheVB0cjx1
bnNpZ25lZCBjaGFyPiBidWZmZXIgPSBnZXRJbWFnZURhdGFGcm9tQ3VycmVudFRleHR1cmUoc2Qt
PnZpZXcudywgc2QtPnZpZXcuaCwgbmF0aXZlU3VyZmFjZS0+ZGF0YS5vcGVuZ2wudGV4dHVyZV9p
ZCk7CiAKLSAgICByZXR1cm4gaW1hZ2U7CisgICAgcmV0dXJuIGFkb3B0UmVmKGNhaXJvX2ltYWdl
X3N1cmZhY2VfY3JlYXRlX2Zvcl9kYXRhKGJ1ZmZlci5nZXQoKSwgQ0FJUk9fRk9STUFUX0FSR0Iz
Miwgc2QtPnZpZXcudywgc2QtPnZpZXcuaCwgc2QtPnZpZXcudyAqIDQpKTsKICNlbmRpZgogfQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvRXdrVmlld0ltcGwu
aCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL0V3a1ZpZXdJbXBsLmgKaW5kZXgg
NGJhZmM3Ny4uMTM1ODQyZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQ
SS9lZmwvRXdrVmlld0ltcGwuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2Vm
bC9Fd2tWaWV3SW1wbC5oCkBAIC0zMSw2ICszMSw3IEBACiAjaW5jbHVkZSA8RXZhcy5oPgogI2lu
Y2x1ZGUgPFdlYkNvcmUvRmxvYXRQb2ludC5oPgogI2luY2x1ZGUgPFdlYkNvcmUvSW50UmVjdC5o
PgorI2luY2x1ZGUgPFdlYkNvcmUvUmVmUHRyQ2Fpcm8uaD4KICNpbmNsdWRlIDxXZWJDb3JlL1Rl
eHREaXJlY3Rpb24uaD4KICNpbmNsdWRlIDxXZWJDb3JlL1RpbWVyLmg+CiAjaW5jbHVkZSA8V2Vi
S2l0Mi9XS0Jhc2UuaD4KQEAgLTIxNCw3ICsyMTUsNyBAQCBwdWJsaWM6CiAgICAgYm9vbCBpc0hh
cmR3YXJlQWNjZWxlcmF0ZWQoKSBjb25zdCB7IHJldHVybiBtX2lzSGFyZHdhcmVBY2NlbGVyYXRl
ZDsgfQogICAgIHZvaWQgc2V0RHJhd3NCYWNrZ3JvdW5kKGJvb2wgZW5hYmxlKSB7IG1fc2V0RHJh
d3NCYWNrZ3JvdW5kID0gZW5hYmxlOyB9CiAKLSAgICBXS0ltYWdlUmVmIHRha2VTbmFwc2hvdCgp
OworICAgIFBhc3NSZWZQdHI8Y2Fpcm9fc3VyZmFjZV90PiB0YWtlU25hcHNob3QoKTsKIAogcHJp
dmF0ZToKICNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9TbmFwc2hvdEltYWdlR0wuY3BwIGIvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvU25hcHNob3RJbWFnZUdMLmNwcAppbmRleCBjZDkw
MWVmLi41NTczOTczIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2Vm
bC9TbmFwc2hvdEltYWdlR0wuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkv
ZWZsL1NuYXBzaG90SW1hZ2VHTC5jcHAKQEAgLTM0LDI1ICszNCwyNCBAQAogI2luY2x1ZGUgIk9w
ZW5HTFNoaW1zLmgiCiAjZW5kaWYKIAotdW5zaWduZWQgY2hhciogZ2V0SW1hZ2VGcm9tQ3VycmVu
dFRleHR1cmUoaW50IHdpZHRoLCBpbnQgaGVpZ2h0LCBpbnQgdGV4dHVyZUlkKQorUGFzc093bkFy
cmF5UHRyPHVuc2lnbmVkIGNoYXI+IGdldEltYWdlRGF0YUZyb21DdXJyZW50VGV4dHVyZShpbnQg
d2lkdGgsIGludCBoZWlnaHQsIGludCB0ZXh0dXJlSWQpCiB7CiAgICAgZ2xCaW5kVGV4dHVyZShH
TF9URVhUVVJFXzJELCB0ZXh0dXJlSWQpOwotICAgIHVuc2lnbmVkIGNoYXIqIGJ1ZmZlciA9IG5l
dyB1bnNpZ25lZCBjaGFyW3dpZHRoICogaGVpZ2h0ICogNF07Ci0gICAgZ2xSZWFkUGl4ZWxzKDAs
IDAsIHdpZHRoLCBoZWlnaHQsIEdMX0JHUkEsIEdMX1VOU0lHTkVEX0JZVEUsIGJ1ZmZlcik7Cisg
ICAgT3duQXJyYXlQdHI8dW5zaWduZWQgY2hhcj4gYnVmZmVyID0gYWRvcHRBcnJheVB0cihuZXcg
dW5zaWduZWQgY2hhclt3aWR0aCAqIGhlaWdodCAqIDRdKTsKKyAgICBnbFJlYWRQaXhlbHMoMCwg
MCwgd2lkdGgsIGhlaWdodCwgR0xfQkdSQSwgR0xfVU5TSUdORURfQllURSwgYnVmZmVyLmdldCgp
KTsKIAogICAgIC8vIFRleHR1cmVzIGFyZSBmbGlwcGVkIG9uIHRoZSBZIGF4aXMsIHNvIHdlIG5l
ZWQgdG8gZmxpcCB0aGUgaW1hZ2UgYmFjay4KLSAgICB1bnNpZ25lZCB0bXA7Ci0gICAgdW5zaWdu
ZWQqIGJ1ZiA9IHJlaW50ZXJwcmV0X2Nhc3Q8dW5zaWduZWQqPihidWZmZXIpOworICAgIHVuc2ln
bmVkKiBidWYgPSByZWludGVycHJldF9jYXN0PHVuc2lnbmVkKj4oYnVmZmVyLmdldCgpKTsKIAog
ICAgIGZvciAoaW50IGkgPSAwOyBpIDwgaGVpZ2h0IC8gMjsgKytpKSB7CiAgICAgICAgIGZvciAo
aW50IGogPSAwOyBqIDwgd2lkdGg7ICsraikgewotICAgICAgICAgICAgdG1wID0gYnVmW2kgKiB3
aWR0aCArIGpdOworICAgICAgICAgICAgdW5zaWduZWQgdG1wID0gYnVmW2kgKiB3aWR0aCArIGpd
OwogICAgICAgICAgICAgYnVmW2kgKiB3aWR0aCArIGpdID0gYnVmWyhoZWlnaHQgLSBpIC0gMSkg
KiB3aWR0aCArIGpdOwogICAgICAgICAgICAgYnVmWyhoZWlnaHQgLSBpIC0gMSkgKiB3aWR0aCAr
IGpdID0gdG1wOwogICAgICAgICB9CiAgICAgfQogCi0gICAgcmV0dXJuIGJ1ZmZlcjsKKyAgICBy
ZXR1cm4gYnVmZmVyLnJlbGVhc2UoKTsKIH0KIAogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9TbmFwc2hvdEltYWdlR0wuaCBiL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9BUEkvZWZsL1NuYXBzaG90SW1hZ2VHTC5oCmluZGV4IDZjMjI4YjEuLmVj
ZDRiN2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL1NuYXBz
aG90SW1hZ2VHTC5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL1NuYXBz
aG90SW1hZ2VHTC5oCkBAIC0yNiw4ICsyNiwxMCBAQAogI2lmbmRlZiBTbmFwc2hvdEltYWdlR0xf
aAogI2RlZmluZSBTbmFwc2hvdEltYWdlR0xfaAogCisjaW5jbHVkZSA8d3RmL093bkFycmF5UHRy
Lmg+CisKICNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCi11bnNpZ25lZCBjaGFyKiBn
ZXRJbWFnZUZyb21DdXJyZW50VGV4dHVyZShpbnQgd2lkdGgsIGludCBoZWlnaHQsIGludCB0ZXh0
dXJlSWQpOworUGFzc093bkFycmF5UHRyPHVuc2lnbmVkIGNoYXI+IGdldEltYWdlRGF0YUZyb21D
dXJyZW50VGV4dHVyZShpbnQgd2lkdGgsIGludCBoZWlnaHQsIGludCB0ZXh0dXJlSWQpOwogI2Vu
ZGlmCiAKICNlbmRpZiAvLyBTbmFwc2hvdEltYWdlR0xfaApkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hh
bmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IDY5ZDI1OWUuLjAxZDk2YjQgMTAwNjQ0Ci0t
LSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNiBA
QAorMjAxMi0xMi0yMyAgQ2hyaXN0b3BoZSBEdW1leiAgPGNocmlzdG9waGUuZHVtZXpAaW50ZWwu
Y29tPgorCisgICAgICAgIFtFRkxdW1dLMl0gUmVmYWN0b3Igc25hcHNob3QgdGFraW5nIGNvZGUK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwNTY4Nwor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIENhbGwgV0tW
aWV3Q3JlYXRlU25hcHNob3QoKSBpbnN0ZWFkIG9mIFdLVmlld0dldFNuYXBzaG90KCkKKyAgICAg
ICAgc2luY2UgdGhlIGZ1bmN0aW9uIHdhcyByZW5hbWVkIHRvIGZvbGxvdyBuYW1pbmcgc3R5bGUu
CisKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL2VmbC9QbGF0Zm9ybVdlYlZpZXdFZmwuY3Bw
OgorICAgICAgICAoV1RSOjpQbGF0Zm9ybVdlYlZpZXc6OndpbmRvd1NuYXBzaG90SW1hZ2UpOgor
CiAyMDEyLTEyLTIzICBQaGlsaXBwZSBOb3JtYW5kICA8cG5vcm1hbmRAaWdhbGlhLmNvbT4KIAog
ICAgICAgICBbR1RLXVtqaGJ1aWxkXSBCdW1wIEdTdHJlYW1lciB0byAxLjAuNApkaWZmIC0tZ2l0
IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9lZmwvUGxhdGZvcm1XZWJWaWV3RWZsLmNwcCBiL1Rv
b2xzL1dlYktpdFRlc3RSdW5uZXIvZWZsL1BsYXRmb3JtV2ViVmlld0VmbC5jcHAKaW5kZXggYzc1
MDFhOS4uMWNjYzBiZCAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9lZmwvUGxh
dGZvcm1XZWJWaWV3RWZsLmNwcAorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL2VmbC9QbGF0
Zm9ybVdlYlZpZXdFZmwuY3BwCkBAIC0xMzUsNyArMTM1LDcgQEAgV0tSZXRhaW5QdHI8V0tJbWFn
ZVJlZj4gUGxhdGZvcm1XZWJWaWV3Ojp3aW5kb3dTbmFwc2hvdEltYWdlKCkKICAgICBlY29yZV9l
dmFzX2dlb21ldHJ5X2dldChlZSwgMCwgMCwgJndpZHRoLCAmaGVpZ2h0KTsKICAgICBBU1NFUlQo
d2lkdGggPiAwICYmIGhlaWdodCA+IDApOwogCi0gICAgcmV0dXJuIGFkb3B0V0soV0tWaWV3R2V0
U25hcHNob3QodG9BUEkobV92aWV3KSkpOworICAgIHJldHVybiBhZG9wdFdLKFdLVmlld0NyZWF0
ZVNuYXBzaG90KHRvQVBJKG1fdmlldykpKTsKIH0KIAogYm9vbCBQbGF0Zm9ybVdlYlZpZXc6OnZp
ZXdTdXBwb3J0c09wdGlvbnMoV0tEaWN0aW9uYXJ5UmVmIG9wdGlvbnMpIGNvbnN0Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>180663</attachid>
            <date>2012-12-24 04:59:10 -0800</date>
            <delta_ts>2012-12-25 03:57:21 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>105687_snapshot_refactoring.patch</filename>
            <type>text/plain</type>
            <size>8989</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0No
YW5nZUxvZwppbmRleCA1MjZmM2ExLi4xMjM2M2I2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzYg
QEAKKzIwMTItMTItMjMgIENocmlzdG9waGUgRHVtZXogIDxjaHJpc3RvcGhlLmR1bWV6QGludGVs
LmNvbT4KKworICAgICAgICBbRUZMXVtXSzJdIFJlZmFjdG9yIHNuYXBzaG90IHRha2luZyBjb2Rl
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDU2ODcK
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBSZWZhY3Rv
ciBFRkwgV0syIHNuYXBzaG90IHRha2luZyBjb2RlIHRvIHVzZQorICAgICAgICBzbWFydCBwb2lu
dGVycyB3aGVuIHBvc3NpYmxlIGFuZCBmb2xsb3cgbmFtaW5nCisgICAgICAgIGNvbnZlbnRpb25z
LgorCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9DL2VmbC9XS1ZpZXcuY3BwOgorICAgICAgICAo
V0tWaWV3Q3JlYXRlU25hcHNob3QpOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQy9lZmwvV0tW
aWV3Lmg6IFJlbmFtZSBXS1ZpZXdHZXRTbmFwc2hvdAorICAgICAgICB0byBXS1ZpZXdDcmVhdGVT
bmFwc2hvdCB0byBmb2xsb3cgQyBBUEkgbmFtaW5nIGNvbnZlbnRpb25zLAorICAgICAgICBzaW5j
ZSB0aGUgcmV0dXJuZWQgdmFsdWUgbmVlZHMgdG8gYmUgYWRvcHRlZC4KKyAgICAgICAgKiBVSVBy
b2Nlc3MvQVBJL2VmbC9Fd2tWaWV3SW1wbC5jcHA6CisgICAgICAgIChFd2tWaWV3SW1wbDo6dGFr
ZVNuYXBzaG90KToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2VmbC9Fd2tWaWV3SW1wbC5oOiBI
YXZlIHRha2VTbmFwc2hvdCgpIHJldHVybgorICAgICAgICBhIGNhaXJvX3N1cmZhY2VfdCBpbnN0
ZWFkIG9mIGEgV0tUeXBlLiBUaGUgdmFsdWUgc2hvdWxkIGJlCisgICAgICAgIGNvbnZlcnRlZCB0
byBhIFdLVHlwZSBhIEMgQVBJIGxldmVsLgorICAgICAgICAoRXdrVmlld0ltcGwpOgorICAgICAg
ICAqIFVJUHJvY2Vzcy9BUEkvZWZsL1NuYXBzaG90SW1hZ2VHTC5jcHA6IFVzZSBPd25BcnJheVB0
ciBmb3IgdGhlCisgICAgICAgIGJ1ZmZlciB0byBhdm9pZCBtYW51YWwgbWVtb3J5IGhhbmRsaW5n
LiBSZW1vdmUgdXNlbGVzcyBjYWxsIHRvCisgICAgICAgIGdsQmluZFRleHR1cmUoKSBzaW5jZSBn
bFJlYWRQaXhlbHMoKSByZWFkcyBwaXhlbHMgZnJvbSB0aGUgZnJhbWUKKyAgICAgICAgYnVmZmVy
LCBub3QgZnJvbSB0aGUgdGV4dHVyZS4KKyAgICAgICAgKGdldEltYWdlRGF0YUZyb21GcmFtZUJ1
ZmZlcik6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9lZmwvU25hcHNob3RJbWFnZUdMLmg6IFJl
bmFtZSBnZXRJbWFnZUZyb21DdXJyZW50VGV4dHVyZQorICAgICAgICB0byBnZXRJbWFnZURhdGFG
cm9tRnJhbWVCdWZmZXIgZm9yIGNvbnNpc3RlbmN5IHNpbmNlIHdlIHRlY2huaWNhbGx5CisgICAg
ICAgIHJldHVybiB0aGUgcGl4ZWwgZGF0YSBvZiB0aGUgaW1hZ2UgYW5kIHNpbmNlIGdsUmVhZFBp
eGVscyBkb2VzIG5vdAorICAgICAgICBhY3R1YWxseSByZWFkIGZyb20gdGhlIHRleHR1cmUuIEhh
dmUgdGhlIGZ1bmN0aW9uIHJldHVybiBhIHNtYXJ0CisgICAgICAgIHBvaW50ZXIgaW5zdGVhZCBv
ZiBhIHJhdyBvbmUgdG8gYXZvaWQgbWFudWFsIG1lbW9yeSBoYW5kbGluZy4KKwogMjAxMi0xMi0y
MiAgU2FtIFdlaW5pZyAgPHNhbUB3ZWJraXQub3JnPgogCiAgICAgICAgIEdpdmUgdGhlIENoaWxk
UHJvY2VzcyBhIE1lc3NhZ2VSZWNlaXZlck1hcApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL0FQSS9DL2VmbC9XS1ZpZXcuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L0FQSS9DL2VmbC9XS1ZpZXcuY3BwCmluZGV4IGY0NDM2YWUuLmEwNjIwNTIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9lZmwvV0tWaWV3LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvZWZsL1dLVmlldy5jcHAKQEAgLTIzLDYgKzIzLDcg
QEAKICNpbmNsdWRlICJFd2tWaWV3SW1wbC5oIgogI2luY2x1ZGUgIldLQVBJQ2FzdC5oIgogI2lu
Y2x1ZGUgImV3a192aWV3X3ByaXZhdGUuaCIKKyNpbmNsdWRlIDxXZWJLaXQyL1dLSW1hZ2VDYWly
by5oPgogCiB1c2luZyBuYW1lc3BhY2UgV2ViS2l0OwogCkBAIC00Myw5ICs0NCw5IEBAIFdLUGFn
ZVJlZiBXS1ZpZXdHZXRQYWdlKFdLVmlld1JlZiB2aWV3UmVmKQogICAgIHJldHVybiB2aWV3SW1w
bC0+d2tQYWdlKCk7CiB9CiAKLVdLSW1hZ2VSZWYgV0tWaWV3R2V0U25hcHNob3QoV0tWaWV3UmVm
IHZpZXdSZWYpCitXS0ltYWdlUmVmIFdLVmlld0NyZWF0ZVNuYXBzaG90KFdLVmlld1JlZiB2aWV3
UmVmKQogewogICAgIEV3a1ZpZXdJbXBsKiB2aWV3SW1wbCA9IEV3a1ZpZXdJbXBsOjpmcm9tRXZh
c09iamVjdCh0b0ltcGwodmlld1JlZikpOwogCi0gICAgcmV0dXJuIHZpZXdJbXBsLT50YWtlU25h
cHNob3QoKTsKKyAgICByZXR1cm4gV0tJbWFnZUNyZWF0ZUZyb21DYWlyb1N1cmZhY2Uodmlld0lt
cGwtPnRha2VTbmFwc2hvdCgpLmdldCgpLCAwIC8qIG9wdGlvbnMgKi8pOwogfQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL2VmbC9XS1ZpZXcuaCBiL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9lZmwvV0tWaWV3LmgKaW5kZXggODRlMWI0Ny4uY2M3MzA3
YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL2VmbC9XS1ZpZXcu
aAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvZWZsL1dLVmlldy5oCkBAIC0z
OCw3ICszOCw3IEBAIFdLX0VYUE9SVCBXS1ZpZXdSZWYgV0tWaWV3Q3JlYXRlV2l0aEZpeGVkTGF5
b3V0KEV2YXMqIGNhbnZhcywgV0tDb250ZXh0UmVmIGNvbnRlCiAKIFdLX0VYUE9SVCBXS1BhZ2VS
ZWYgV0tWaWV3R2V0UGFnZShXS1ZpZXdSZWYgdmlldyk7CiAKLVdLX0VYUE9SVCBXS0ltYWdlUmVm
IFdLVmlld0dldFNuYXBzaG90KFdLVmlld1JlZiB2aWV3UmVmKTsKK1dLX0VYUE9SVCBXS0ltYWdl
UmVmIFdLVmlld0NyZWF0ZVNuYXBzaG90KFdLVmlld1JlZiB2aWV3UmVmKTsKIAogI2lmZGVmIF9f
Y3BsdXNwbHVzCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2Vm
bC9Fd2tWaWV3SW1wbC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9Fd2tW
aWV3SW1wbC5jcHAKaW5kZXggYmUyYTdhOC4uNzdhOTU1MiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvRXdrVmlld0ltcGwuY3BwCisrKyBiL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9BUEkvZWZsL0V3a1ZpZXdJbXBsLmNwcApAQCAtMTAyOSwyMSArMTAyOSwx
NyBAQCB2b2lkIEV3a1ZpZXdJbXBsOjpvbkZhdmljb25DaGFuZ2VkKGNvbnN0IGNoYXIqIHBhZ2VV
UkwsIHZvaWQqIGV2ZW50SW5mbykKICAgICB2aWV3SW1wbC0+aW5mb3JtSWNvbkNoYW5nZSgpOwog
fQogCi1XS0ltYWdlUmVmIEV3a1ZpZXdJbXBsOjp0YWtlU25hcHNob3QoKQorUGFzc1JlZlB0cjxj
YWlyb19zdXJmYWNlX3Q+IEV3a1ZpZXdJbXBsOjp0YWtlU25hcHNob3QoKQogewogICAgIEV3a19W
aWV3X1NtYXJ0X0RhdGEqIHNkID0gc21hcnREYXRhKCk7CiAjaWYgVVNFKEFDQ0VMRVJBVEVEX0NP
TVBPU0lUSU5HKQogICAgIGlmICghbV9pc0hhcmR3YXJlQWNjZWxlcmF0ZWQpCiAjZW5kaWYKLSAg
ICAgICAgcmV0dXJuIFdLSW1hZ2VDcmVhdGVGcm9tQ2Fpcm9TdXJmYWNlKGNyZWF0ZVN1cmZhY2VG
b3JJbWFnZShzZC0+aW1hZ2UpLmdldCgpLCAwKTsKKyAgICAgICAgcmV0dXJuIGNyZWF0ZVN1cmZh
Y2VGb3JJbWFnZShzZC0+aW1hZ2UpLmdldCgpOwogCiAjaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBP
U0lUSU5HKQotICAgIEV2YXNfTmF0aXZlX1N1cmZhY2UqIG5hdGl2ZVN1cmZhY2UgPSBldmFzX29i
amVjdF9pbWFnZV9uYXRpdmVfc3VyZmFjZV9nZXQoc2QtPmltYWdlKTsKLSAgICB1bnNpZ25lZCBj
aGFyKiBidWZmZXIgPSBnZXRJbWFnZUZyb21DdXJyZW50VGV4dHVyZShzZC0+dmlldy53LCBzZC0+
dmlldy5oLCBuYXRpdmVTdXJmYWNlLT5kYXRhLm9wZW5nbC50ZXh0dXJlX2lkKTsKLSAgICBSZWZQ
dHI8Y2Fpcm9fc3VyZmFjZV90PiBzdXJmYWNlID0gYWRvcHRSZWYoY2Fpcm9faW1hZ2Vfc3VyZmFj
ZV9jcmVhdGVfZm9yX2RhdGEoYnVmZmVyLCBDQUlST19GT1JNQVRfQVJHQjMyLCBzZC0+dmlldy53
LCBzZC0+dmlldy5oLCBzZC0+dmlldy53ICogNCkpOwotICAgIFdLSW1hZ2VSZWYgaW1hZ2UgPSBX
S0ltYWdlQ3JlYXRlRnJvbUNhaXJvU3VyZmFjZShzdXJmYWNlLmdldCgpLCAwKTsKLSAgICBkZWxl
dGVbXSBidWZmZXI7CisgICAgT3duQXJyYXlQdHI8dW5zaWduZWQgY2hhcj4gYnVmZmVyID0gZ2V0
SW1hZ2VEYXRhRnJvbUZyYW1lQnVmZmVyKDAsIDAsIHNkLT52aWV3LncsIHNkLT52aWV3LmgpOwog
Ci0gICAgcmV0dXJuIGltYWdlOworICAgIHJldHVybiBhZG9wdFJlZihjYWlyb19pbWFnZV9zdXJm
YWNlX2NyZWF0ZV9mb3JfZGF0YShidWZmZXIuZ2V0KCksIENBSVJPX0ZPUk1BVF9BUkdCMzIsIHNk
LT52aWV3LncsIHNkLT52aWV3LmgsIHNkLT52aWV3LncgKiA0KSk7CiAjZW5kaWYKIH0KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL0V3a1ZpZXdJbXBsLmggYi9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9Fd2tWaWV3SW1wbC5oCmluZGV4IDRiYWZj
NzcuLjEzNTg0MmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZs
L0V3a1ZpZXdJbXBsLmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvRXdr
Vmlld0ltcGwuaApAQCAtMzEsNiArMzEsNyBAQAogI2luY2x1ZGUgPEV2YXMuaD4KICNpbmNsdWRl
IDxXZWJDb3JlL0Zsb2F0UG9pbnQuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0ludFJlY3QuaD4KKyNp
bmNsdWRlIDxXZWJDb3JlL1JlZlB0ckNhaXJvLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9UZXh0RGly
ZWN0aW9uLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9UaW1lci5oPgogI2luY2x1ZGUgPFdlYktpdDIv
V0tCYXNlLmg+CkBAIC0yMTQsNyArMjE1LDcgQEAgcHVibGljOgogICAgIGJvb2wgaXNIYXJkd2Fy
ZUFjY2VsZXJhdGVkKCkgY29uc3QgeyByZXR1cm4gbV9pc0hhcmR3YXJlQWNjZWxlcmF0ZWQ7IH0K
ICAgICB2b2lkIHNldERyYXdzQmFja2dyb3VuZChib29sIGVuYWJsZSkgeyBtX3NldERyYXdzQmFj
a2dyb3VuZCA9IGVuYWJsZTsgfQogCi0gICAgV0tJbWFnZVJlZiB0YWtlU25hcHNob3QoKTsKKyAg
ICBQYXNzUmVmUHRyPGNhaXJvX3N1cmZhY2VfdD4gdGFrZVNuYXBzaG90KCk7CiAKIHByaXZhdGU6
CiAjaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvU25hcHNob3RJbWFnZUdMLmNwcCBiL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9BUEkvZWZsL1NuYXBzaG90SW1hZ2VHTC5jcHAKaW5kZXggY2Q5MDFlZi4u
NjE4NDczNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvU25h
cHNob3RJbWFnZUdMLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9T
bmFwc2hvdEltYWdlR0wuY3BwCkBAIC0zNCwyNSArMzQsMjMgQEAKICNpbmNsdWRlICJPcGVuR0xT
aGltcy5oIgogI2VuZGlmCiAKLXVuc2lnbmVkIGNoYXIqIGdldEltYWdlRnJvbUN1cnJlbnRUZXh0
dXJlKGludCB3aWR0aCwgaW50IGhlaWdodCwgaW50IHRleHR1cmVJZCkKK1Bhc3NPd25BcnJheVB0
cjx1bnNpZ25lZCBjaGFyPiBnZXRJbWFnZURhdGFGcm9tRnJhbWVCdWZmZXIoaW50IHgsIGludCB5
LCBpbnQgd2lkdGgsIGludCBoZWlnaHQpCiB7Ci0gICAgZ2xCaW5kVGV4dHVyZShHTF9URVhUVVJF
XzJELCB0ZXh0dXJlSWQpOwotICAgIHVuc2lnbmVkIGNoYXIqIGJ1ZmZlciA9IG5ldyB1bnNpZ25l
ZCBjaGFyW3dpZHRoICogaGVpZ2h0ICogNF07Ci0gICAgZ2xSZWFkUGl4ZWxzKDAsIDAsIHdpZHRo
LCBoZWlnaHQsIEdMX0JHUkEsIEdMX1VOU0lHTkVEX0JZVEUsIGJ1ZmZlcik7CisgICAgT3duQXJy
YXlQdHI8dW5zaWduZWQgY2hhcj4gYnVmZmVyID0gYWRvcHRBcnJheVB0cihuZXcgdW5zaWduZWQg
Y2hhclt3aWR0aCAqIGhlaWdodCAqIDRdKTsKKyAgICBnbFJlYWRQaXhlbHMoeCwgeSwgd2lkdGgs
IGhlaWdodCwgR0xfQkdSQSwgR0xfVU5TSUdORURfQllURSwgYnVmZmVyLmdldCgpKTsKIAogICAg
IC8vIFRleHR1cmVzIGFyZSBmbGlwcGVkIG9uIHRoZSBZIGF4aXMsIHNvIHdlIG5lZWQgdG8gZmxp
cCB0aGUgaW1hZ2UgYmFjay4KLSAgICB1bnNpZ25lZCB0bXA7Ci0gICAgdW5zaWduZWQqIGJ1ZiA9
IHJlaW50ZXJwcmV0X2Nhc3Q8dW5zaWduZWQqPihidWZmZXIpOworICAgIHVuc2lnbmVkKiBidWYg
PSByZWludGVycHJldF9jYXN0PHVuc2lnbmVkKj4oYnVmZmVyLmdldCgpKTsKIAogICAgIGZvciAo
aW50IGkgPSAwOyBpIDwgaGVpZ2h0IC8gMjsgKytpKSB7CiAgICAgICAgIGZvciAoaW50IGogPSAw
OyBqIDwgd2lkdGg7ICsraikgewotICAgICAgICAgICAgdG1wID0gYnVmW2kgKiB3aWR0aCArIGpd
OworICAgICAgICAgICAgdW5zaWduZWQgdG1wID0gYnVmW2kgKiB3aWR0aCArIGpdOwogICAgICAg
ICAgICAgYnVmW2kgKiB3aWR0aCArIGpdID0gYnVmWyhoZWlnaHQgLSBpIC0gMSkgKiB3aWR0aCAr
IGpdOwogICAgICAgICAgICAgYnVmWyhoZWlnaHQgLSBpIC0gMSkgKiB3aWR0aCArIGpdID0gdG1w
OwogICAgICAgICB9CiAgICAgfQogCi0gICAgcmV0dXJuIGJ1ZmZlcjsKKyAgICByZXR1cm4gYnVm
ZmVyLnJlbGVhc2UoKTsKIH0KIAogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvQVBJL2VmbC9TbmFwc2hvdEltYWdlR0wuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9BUEkvZWZsL1NuYXBzaG90SW1hZ2VHTC5oCmluZGV4IDZjMjI4YjEuLmUyYTk0ODcgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL1NuYXBzaG90SW1hZ2VH
TC5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL1NuYXBzaG90SW1hZ2VH
TC5oCkBAIC0yNiw4ICsyNiwxMCBAQAogI2lmbmRlZiBTbmFwc2hvdEltYWdlR0xfaAogI2RlZmlu
ZSBTbmFwc2hvdEltYWdlR0xfaAogCisjaW5jbHVkZSA8d3RmL093bkFycmF5UHRyLmg+CisKICNp
ZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCi11bnNpZ25lZCBjaGFyKiBnZXRJbWFnZUZy
b21DdXJyZW50VGV4dHVyZShpbnQgd2lkdGgsIGludCBoZWlnaHQsIGludCB0ZXh0dXJlSWQpOwor
UGFzc093bkFycmF5UHRyPHVuc2lnbmVkIGNoYXI+IGdldEltYWdlRGF0YUZyb21GcmFtZUJ1ZmZl
cihpbnQgeCwgaW50IHksIGludCB3aWR0aCwgaW50IGhlaWdodCk7CiAjZW5kaWYKIAogI2VuZGlm
IC8vIFNuYXBzaG90SW1hZ2VHTF9oCmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29s
cy9DaGFuZ2VMb2cKaW5kZXggMmQzNDY4Zi4uOGI2MjgyMSAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hh
bmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtNCw2ICs0LDE5IEBACiAKICAgICAgICAg
KiBTY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9jb25maWcvY29tbWl0dGVycy5weToKIAorMjAxMi0x
Mi0yMyAgQ2hyaXN0b3BoZSBEdW1leiAgPGNocmlzdG9waGUuZHVtZXpAaW50ZWwuY29tPgorCisg
ICAgICAgIFtFRkxdW1dLMl0gUmVmYWN0b3Igc25hcHNob3QgdGFraW5nIGNvZGUKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwNTY4NworCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIENhbGwgV0tWaWV3Q3JlYXRl
U25hcHNob3QoKSBpbnN0ZWFkIG9mIFdLVmlld0dldFNuYXBzaG90KCkKKyAgICAgICAgc2luY2Ug
dGhlIGZ1bmN0aW9uIHdhcyByZW5hbWVkIHRvIGZvbGxvdyBuYW1pbmcgc3R5bGUuCisKKyAgICAg
ICAgKiBXZWJLaXRUZXN0UnVubmVyL2VmbC9QbGF0Zm9ybVdlYlZpZXdFZmwuY3BwOgorICAgICAg
ICAoV1RSOjpQbGF0Zm9ybVdlYlZpZXc6OndpbmRvd1NuYXBzaG90SW1hZ2UpOgorCiAyMDEyLTEy
LTIzICBQaGlsaXBwZSBOb3JtYW5kICA8cG5vcm1hbmRAaWdhbGlhLmNvbT4KIAogICAgICAgICBb
R1RLXVtqaGJ1aWxkXSBCdW1wIEdTdHJlYW1lciB0byAxLjAuNApkaWZmIC0tZ2l0IGEvVG9vbHMv
V2ViS2l0VGVzdFJ1bm5lci9lZmwvUGxhdGZvcm1XZWJWaWV3RWZsLmNwcCBiL1Rvb2xzL1dlYktp
dFRlc3RSdW5uZXIvZWZsL1BsYXRmb3JtV2ViVmlld0VmbC5jcHAKaW5kZXggYzc1MDFhOS4uMWNj
YzBiZCAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9lZmwvUGxhdGZvcm1XZWJW
aWV3RWZsLmNwcAorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL2VmbC9QbGF0Zm9ybVdlYlZp
ZXdFZmwuY3BwCkBAIC0xMzUsNyArMTM1LDcgQEAgV0tSZXRhaW5QdHI8V0tJbWFnZVJlZj4gUGxh
dGZvcm1XZWJWaWV3Ojp3aW5kb3dTbmFwc2hvdEltYWdlKCkKICAgICBlY29yZV9ldmFzX2dlb21l
dHJ5X2dldChlZSwgMCwgMCwgJndpZHRoLCAmaGVpZ2h0KTsKICAgICBBU1NFUlQod2lkdGggPiAw
ICYmIGhlaWdodCA+IDApOwogCi0gICAgcmV0dXJuIGFkb3B0V0soV0tWaWV3R2V0U25hcHNob3Qo
dG9BUEkobV92aWV3KSkpOworICAgIHJldHVybiBhZG9wdFdLKFdLVmlld0NyZWF0ZVNuYXBzaG90
KHRvQVBJKG1fdmlldykpKTsKIH0KIAogYm9vbCBQbGF0Zm9ybVdlYlZpZXc6OnZpZXdTdXBwb3J0
c09wdGlvbnMoV0tEaWN0aW9uYXJ5UmVmIG9wdGlvbnMpIGNvbnN0Cg==
</data>
<flag name="review"
          id="198009"
          type_id="1"
          status="+"
          setter="kenneth"
    />
    <flag name="commit-queue"
          id="198010"
          type_id="3"
          status="-"
          setter="webkit.review.bot"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>180706</attachid>
            <date>2012-12-25 03:57:21 -0800</date>
            <delta_ts>2012-12-25 04:29:43 -0800</delta_ts>
            <desc>Patch for landing</desc>
            <filename>105687_snapshot_refactoring.patch</filename>
            <type>text/plain</type>
            <size>8944</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0No
YW5nZUxvZwppbmRleCBmOGVjN2U3Li43ZDUxNDIyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzYg
QEAKKzIwMTItMTItMjMgIENocmlzdG9waGUgRHVtZXogIDxjaHJpc3RvcGhlLmR1bWV6QGludGVs
LmNvbT4KKworICAgICAgICBbRUZMXVtXSzJdIFJlZmFjdG9yIHNuYXBzaG90IHRha2luZyBjb2Rl
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDU2ODcK
KworICAgICAgICBSZXZpZXdlZCBieSBLZW5uZXRoIFJvaGRlIENocmlzdGlhbnNlbi4KKworICAg
ICAgICBSZWZhY3RvciBFRkwgV0syIHNuYXBzaG90IHRha2luZyBjb2RlIHRvIHVzZQorICAgICAg
ICBzbWFydCBwb2ludGVycyB3aGVuIHBvc3NpYmxlIGFuZCBmb2xsb3cgbmFtaW5nCisgICAgICAg
IGNvbnZlbnRpb25zLgorCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9DL2VmbC9XS1ZpZXcuY3Bw
OgorICAgICAgICAoV0tWaWV3Q3JlYXRlU25hcHNob3QpOgorICAgICAgICAqIFVJUHJvY2Vzcy9B
UEkvQy9lZmwvV0tWaWV3Lmg6IFJlbmFtZSBXS1ZpZXdHZXRTbmFwc2hvdAorICAgICAgICB0byBX
S1ZpZXdDcmVhdGVTbmFwc2hvdCB0byBmb2xsb3cgQyBBUEkgbmFtaW5nIGNvbnZlbnRpb25zLAor
ICAgICAgICBzaW5jZSB0aGUgcmV0dXJuZWQgdmFsdWUgbmVlZHMgdG8gYmUgYWRvcHRlZC4KKyAg
ICAgICAgKiBVSVByb2Nlc3MvQVBJL2VmbC9Fd2tWaWV3SW1wbC5jcHA6CisgICAgICAgIChFd2tW
aWV3SW1wbDo6dGFrZVNuYXBzaG90KToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2VmbC9Fd2tW
aWV3SW1wbC5oOiBIYXZlIHRha2VTbmFwc2hvdCgpIHJldHVybgorICAgICAgICBhIGNhaXJvX3N1
cmZhY2VfdCBpbnN0ZWFkIG9mIGEgV0tUeXBlLiBUaGUgdmFsdWUgc2hvdWxkIGJlCisgICAgICAg
IGNvbnZlcnRlZCB0byBhIFdLVHlwZSBhdCBDIEFQSSBsZXZlbC4KKyAgICAgICAgKEV3a1ZpZXdJ
bXBsKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2VmbC9TbmFwc2hvdEltYWdlR0wuY3BwOiBV
c2UgT3duQXJyYXlQdHIgZm9yIHRoZQorICAgICAgICBidWZmZXIgdG8gYXZvaWQgbWFudWFsIG1l
bW9yeSBoYW5kbGluZy4gUmVtb3ZlIHVzZWxlc3MgY2FsbCB0bworICAgICAgICBnbEJpbmRUZXh0
dXJlKCkgc2luY2UgZ2xSZWFkUGl4ZWxzKCkgcmVhZHMgcGl4ZWxzIGZyb20gdGhlIGZyYW1lCisg
ICAgICAgIGJ1ZmZlciwgbm90IGZyb20gdGhlIHRleHR1cmUuCisgICAgICAgIChnZXRJbWFnZURh
dGFGcm9tRnJhbWVCdWZmZXIpOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZWZsL1NuYXBzaG90
SW1hZ2VHTC5oOiBSZW5hbWUgZ2V0SW1hZ2VGcm9tQ3VycmVudFRleHR1cmUKKyAgICAgICAgdG8g
Z2V0SW1hZ2VEYXRhRnJvbUZyYW1lQnVmZmVyIGZvciBjb25zaXN0ZW5jeSBzaW5jZSB3ZSB0ZWNo
bmljYWxseQorICAgICAgICByZXR1cm4gdGhlIHBpeGVsIGRhdGEgb2YgdGhlIGltYWdlIGFuZCBz
aW5jZSBnbFJlYWRQaXhlbHMgZG9lcyBub3QKKyAgICAgICAgYWN0dWFsbHkgcmVhZCBmcm9tIHRo
ZSB0ZXh0dXJlLiBIYXZlIHRoZSBmdW5jdGlvbiByZXR1cm4gYSBzbWFydAorICAgICAgICBwb2lu
dGVyIGluc3RlYWQgb2YgYSByYXcgb25lIHRvIGF2b2lkIG1hbnVhbCBtZW1vcnkgaGFuZGxpbmcu
CisKIDIwMTItMTItMjQgIFNhbSBXZWluaWcgIDxzYW1Ad2Via2l0Lm9yZz4KIAogICAgICAgICBB
c3NlcnQgZml4IHRha2UgMi4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9B
UEkvQy9lZmwvV0tWaWV3LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9lZmwv
V0tWaWV3LmNwcAppbmRleCBmNDQzNmFlLi5hMDYyMDUyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvQVBJL0MvZWZsL1dLVmlldy5jcHAKKysrIGIvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL0FQSS9DL2VmbC9XS1ZpZXcuY3BwCkBAIC0yMyw2ICsyMyw3IEBACiAjaW5jbHVk
ZSAiRXdrVmlld0ltcGwuaCIKICNpbmNsdWRlICJXS0FQSUNhc3QuaCIKICNpbmNsdWRlICJld2tf
dmlld19wcml2YXRlLmgiCisjaW5jbHVkZSA8V2ViS2l0Mi9XS0ltYWdlQ2Fpcm8uaD4KIAogdXNp
bmcgbmFtZXNwYWNlIFdlYktpdDsKIApAQCAtNDMsOSArNDQsOSBAQCBXS1BhZ2VSZWYgV0tWaWV3
R2V0UGFnZShXS1ZpZXdSZWYgdmlld1JlZikKICAgICByZXR1cm4gdmlld0ltcGwtPndrUGFnZSgp
OwogfQogCi1XS0ltYWdlUmVmIFdLVmlld0dldFNuYXBzaG90KFdLVmlld1JlZiB2aWV3UmVmKQor
V0tJbWFnZVJlZiBXS1ZpZXdDcmVhdGVTbmFwc2hvdChXS1ZpZXdSZWYgdmlld1JlZikKIHsKICAg
ICBFd2tWaWV3SW1wbCogdmlld0ltcGwgPSBFd2tWaWV3SW1wbDo6ZnJvbUV2YXNPYmplY3QodG9J
bXBsKHZpZXdSZWYpKTsKIAotICAgIHJldHVybiB2aWV3SW1wbC0+dGFrZVNuYXBzaG90KCk7Cisg
ICAgcmV0dXJuIFdLSW1hZ2VDcmVhdGVGcm9tQ2Fpcm9TdXJmYWNlKHZpZXdJbXBsLT50YWtlU25h
cHNob3QoKS5nZXQoKSwgMCAvKiBvcHRpb25zICovKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9lZmwvV0tWaWV3LmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvQVBJL0MvZWZsL1dLVmlldy5oCmluZGV4IDg0ZTFiNDcuLmNjNzMwN2MgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9lZmwvV0tWaWV3LmgKKysrIGIvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL2VmbC9XS1ZpZXcuaApAQCAtMzgsNyArMzgsNyBA
QCBXS19FWFBPUlQgV0tWaWV3UmVmIFdLVmlld0NyZWF0ZVdpdGhGaXhlZExheW91dChFdmFzKiBj
YW52YXMsIFdLQ29udGV4dFJlZiBjb250ZQogCiBXS19FWFBPUlQgV0tQYWdlUmVmIFdLVmlld0dl
dFBhZ2UoV0tWaWV3UmVmIHZpZXcpOwogCi1XS19FWFBPUlQgV0tJbWFnZVJlZiBXS1ZpZXdHZXRT
bmFwc2hvdChXS1ZpZXdSZWYgdmlld1JlZik7CitXS19FWFBPUlQgV0tJbWFnZVJlZiBXS1ZpZXdD
cmVhdGVTbmFwc2hvdChXS1ZpZXdSZWYgdmlld1JlZik7CiAKICNpZmRlZiBfX2NwbHVzcGx1cwog
fQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvRXdrVmlld0lt
cGwuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvRXdrVmlld0ltcGwuY3Bw
CmluZGV4IGJlMmE3YTguLjc3YTk1NTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9BUEkvZWZsL0V3a1ZpZXdJbXBsLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvQVBJL2VmbC9Fd2tWaWV3SW1wbC5jcHAKQEAgLTEwMjksMjEgKzEwMjksMTcgQEAgdm9pZCBF
d2tWaWV3SW1wbDo6b25GYXZpY29uQ2hhbmdlZChjb25zdCBjaGFyKiBwYWdlVVJMLCB2b2lkKiBl
dmVudEluZm8pCiAgICAgdmlld0ltcGwtPmluZm9ybUljb25DaGFuZ2UoKTsKIH0KIAotV0tJbWFn
ZVJlZiBFd2tWaWV3SW1wbDo6dGFrZVNuYXBzaG90KCkKK1Bhc3NSZWZQdHI8Y2Fpcm9fc3VyZmFj
ZV90PiBFd2tWaWV3SW1wbDo6dGFrZVNuYXBzaG90KCkKIHsKICAgICBFd2tfVmlld19TbWFydF9E
YXRhKiBzZCA9IHNtYXJ0RGF0YSgpOwogI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykK
ICAgICBpZiAoIW1faXNIYXJkd2FyZUFjY2VsZXJhdGVkKQogI2VuZGlmCi0gICAgICAgIHJldHVy
biBXS0ltYWdlQ3JlYXRlRnJvbUNhaXJvU3VyZmFjZShjcmVhdGVTdXJmYWNlRm9ySW1hZ2Uoc2Qt
PmltYWdlKS5nZXQoKSwgMCk7CisgICAgICAgIHJldHVybiBjcmVhdGVTdXJmYWNlRm9ySW1hZ2Uo
c2QtPmltYWdlKS5nZXQoKTsKIAogI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKLSAg
ICBFdmFzX05hdGl2ZV9TdXJmYWNlKiBuYXRpdmVTdXJmYWNlID0gZXZhc19vYmplY3RfaW1hZ2Vf
bmF0aXZlX3N1cmZhY2VfZ2V0KHNkLT5pbWFnZSk7Ci0gICAgdW5zaWduZWQgY2hhciogYnVmZmVy
ID0gZ2V0SW1hZ2VGcm9tQ3VycmVudFRleHR1cmUoc2QtPnZpZXcudywgc2QtPnZpZXcuaCwgbmF0
aXZlU3VyZmFjZS0+ZGF0YS5vcGVuZ2wudGV4dHVyZV9pZCk7Ci0gICAgUmVmUHRyPGNhaXJvX3N1
cmZhY2VfdD4gc3VyZmFjZSA9IGFkb3B0UmVmKGNhaXJvX2ltYWdlX3N1cmZhY2VfY3JlYXRlX2Zv
cl9kYXRhKGJ1ZmZlciwgQ0FJUk9fRk9STUFUX0FSR0IzMiwgc2QtPnZpZXcudywgc2QtPnZpZXcu
aCwgc2QtPnZpZXcudyAqIDQpKTsKLSAgICBXS0ltYWdlUmVmIGltYWdlID0gV0tJbWFnZUNyZWF0
ZUZyb21DYWlyb1N1cmZhY2Uoc3VyZmFjZS5nZXQoKSwgMCk7Ci0gICAgZGVsZXRlW10gYnVmZmVy
OworICAgIE93bkFycmF5UHRyPHVuc2lnbmVkIGNoYXI+IGJ1ZmZlciA9IGdldEltYWdlRGF0YUZy
b21GcmFtZUJ1ZmZlcigwLCAwLCBzZC0+dmlldy53LCBzZC0+dmlldy5oKTsKIAotICAgIHJldHVy
biBpbWFnZTsKKyAgICByZXR1cm4gYWRvcHRSZWYoY2Fpcm9faW1hZ2Vfc3VyZmFjZV9jcmVhdGVf
Zm9yX2RhdGEoYnVmZmVyLmdldCgpLCBDQUlST19GT1JNQVRfQVJHQjMyLCBzZC0+dmlldy53LCBz
ZC0+dmlldy5oLCBzZC0+dmlldy53ICogNCkpOwogI2VuZGlmCiB9CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9Fd2tWaWV3SW1wbC5oIGIvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL0FQSS9lZmwvRXdrVmlld0ltcGwuaAppbmRleCA0YmFmYzc3Li4xMzU4NDJm
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9Fd2tWaWV3SW1w
bC5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL0V3a1ZpZXdJbXBsLmgK
QEAgLTMxLDYgKzMxLDcgQEAKICNpbmNsdWRlIDxFdmFzLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9G
bG9hdFBvaW50Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9JbnRSZWN0Lmg+CisjaW5jbHVkZSA8V2Vi
Q29yZS9SZWZQdHJDYWlyby5oPgogI2luY2x1ZGUgPFdlYkNvcmUvVGV4dERpcmVjdGlvbi5oPgog
I2luY2x1ZGUgPFdlYkNvcmUvVGltZXIuaD4KICNpbmNsdWRlIDxXZWJLaXQyL1dLQmFzZS5oPgpA
QCAtMjE0LDcgKzIxNSw3IEBAIHB1YmxpYzoKICAgICBib29sIGlzSGFyZHdhcmVBY2NlbGVyYXRl
ZCgpIGNvbnN0IHsgcmV0dXJuIG1faXNIYXJkd2FyZUFjY2VsZXJhdGVkOyB9CiAgICAgdm9pZCBz
ZXREcmF3c0JhY2tncm91bmQoYm9vbCBlbmFibGUpIHsgbV9zZXREcmF3c0JhY2tncm91bmQgPSBl
bmFibGU7IH0KIAotICAgIFdLSW1hZ2VSZWYgdGFrZVNuYXBzaG90KCk7CisgICAgUGFzc1JlZlB0
cjxjYWlyb19zdXJmYWNlX3Q+IHRha2VTbmFwc2hvdCgpOwogCiBwcml2YXRlOgogI2lmIFVTRShB
Q0NFTEVSQVRFRF9DT01QT1NJVElORykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9BUEkvZWZsL1NuYXBzaG90SW1hZ2VHTC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvQVBJL2VmbC9TbmFwc2hvdEltYWdlR0wuY3BwCmluZGV4IGNkOTAxZWYuLjYxODQ3MzYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL1NuYXBzaG90SW1hZ2VH
TC5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvU25hcHNob3RJbWFn
ZUdMLmNwcApAQCAtMzQsMjUgKzM0LDIzIEBACiAjaW5jbHVkZSAiT3BlbkdMU2hpbXMuaCIKICNl
bmRpZgogCi11bnNpZ25lZCBjaGFyKiBnZXRJbWFnZUZyb21DdXJyZW50VGV4dHVyZShpbnQgd2lk
dGgsIGludCBoZWlnaHQsIGludCB0ZXh0dXJlSWQpCitQYXNzT3duQXJyYXlQdHI8dW5zaWduZWQg
Y2hhcj4gZ2V0SW1hZ2VEYXRhRnJvbUZyYW1lQnVmZmVyKGludCB4LCBpbnQgeSwgaW50IHdpZHRo
LCBpbnQgaGVpZ2h0KQogewotICAgIGdsQmluZFRleHR1cmUoR0xfVEVYVFVSRV8yRCwgdGV4dHVy
ZUlkKTsKLSAgICB1bnNpZ25lZCBjaGFyKiBidWZmZXIgPSBuZXcgdW5zaWduZWQgY2hhclt3aWR0
aCAqIGhlaWdodCAqIDRdOwotICAgIGdsUmVhZFBpeGVscygwLCAwLCB3aWR0aCwgaGVpZ2h0LCBH
TF9CR1JBLCBHTF9VTlNJR05FRF9CWVRFLCBidWZmZXIpOworICAgIE93bkFycmF5UHRyPHVuc2ln
bmVkIGNoYXI+IGJ1ZmZlciA9IGFkb3B0QXJyYXlQdHIobmV3IHVuc2lnbmVkIGNoYXJbd2lkdGgg
KiBoZWlnaHQgKiA0XSk7CisgICAgZ2xSZWFkUGl4ZWxzKHgsIHksIHdpZHRoLCBoZWlnaHQsIEdM
X0JHUkEsIEdMX1VOU0lHTkVEX0JZVEUsIGJ1ZmZlci5nZXQoKSk7CiAKICAgICAvLyBUZXh0dXJl
cyBhcmUgZmxpcHBlZCBvbiB0aGUgWSBheGlzLCBzbyB3ZSBuZWVkIHRvIGZsaXAgdGhlIGltYWdl
IGJhY2suCi0gICAgdW5zaWduZWQgdG1wOwotICAgIHVuc2lnbmVkKiBidWYgPSByZWludGVycHJl
dF9jYXN0PHVuc2lnbmVkKj4oYnVmZmVyKTsKKyAgICB1bnNpZ25lZCogYnVmID0gcmVpbnRlcnBy
ZXRfY2FzdDx1bnNpZ25lZCo+KGJ1ZmZlci5nZXQoKSk7CiAKICAgICBmb3IgKGludCBpID0gMDsg
aSA8IGhlaWdodCAvIDI7ICsraSkgewogICAgICAgICBmb3IgKGludCBqID0gMDsgaiA8IHdpZHRo
OyArK2opIHsKLSAgICAgICAgICAgIHRtcCA9IGJ1ZltpICogd2lkdGggKyBqXTsKKyAgICAgICAg
ICAgIHVuc2lnbmVkIHRtcCA9IGJ1ZltpICogd2lkdGggKyBqXTsKICAgICAgICAgICAgIGJ1Zltp
ICogd2lkdGggKyBqXSA9IGJ1ZlsoaGVpZ2h0IC0gaSAtIDEpICogd2lkdGggKyBqXTsKICAgICAg
ICAgICAgIGJ1ZlsoaGVpZ2h0IC0gaSAtIDEpICogd2lkdGggKyBqXSA9IHRtcDsKICAgICAgICAg
fQogICAgIH0KIAotICAgIHJldHVybiBidWZmZXI7CisgICAgcmV0dXJuIGJ1ZmZlci5yZWxlYXNl
KCk7CiB9CiAKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQ
SS9lZmwvU25hcHNob3RJbWFnZUdMLmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2Vm
bC9TbmFwc2hvdEltYWdlR0wuaAppbmRleCA2YzIyOGIxLi5lMmE5NDg3IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9TbmFwc2hvdEltYWdlR0wuaAorKysgYi9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9TbmFwc2hvdEltYWdlR0wuaApAQCAtMjYs
OCArMjYsMTAgQEAKICNpZm5kZWYgU25hcHNob3RJbWFnZUdMX2gKICNkZWZpbmUgU25hcHNob3RJ
bWFnZUdMX2gKIAorI2luY2x1ZGUgPHd0Zi9Pd25BcnJheVB0ci5oPgorCiAjaWYgVVNFKEFDQ0VM
RVJBVEVEX0NPTVBPU0lUSU5HKQotdW5zaWduZWQgY2hhciogZ2V0SW1hZ2VGcm9tQ3VycmVudFRl
eHR1cmUoaW50IHdpZHRoLCBpbnQgaGVpZ2h0LCBpbnQgdGV4dHVyZUlkKTsKK1Bhc3NPd25BcnJh
eVB0cjx1bnNpZ25lZCBjaGFyPiBnZXRJbWFnZURhdGFGcm9tRnJhbWVCdWZmZXIoaW50IHgsIGlu
dCB5LCBpbnQgd2lkdGgsIGludCBoZWlnaHQpOwogI2VuZGlmCiAKICNlbmRpZiAvLyBTbmFwc2hv
dEltYWdlR0xfaApkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9n
CmluZGV4IGJkMDE3NDYuLjRiODMzNDAgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysg
Yi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNiBAQAorMjAxMi0xMi0yMyAgQ2hyaXN0b3Bo
ZSBEdW1leiAgPGNocmlzdG9waGUuZHVtZXpAaW50ZWwuY29tPgorCisgICAgICAgIFtFRkxdW1dL
Ml0gUmVmYWN0b3Igc25hcHNob3QgdGFraW5nIGNvZGUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwNTY4NworCisgICAgICAgIFJldmlld2VkIGJ5IEtl
bm5ldGggUm9oZGUgQ2hyaXN0aWFuc2VuLgorCisgICAgICAgIENhbGwgV0tWaWV3Q3JlYXRlU25h
cHNob3QoKSBpbnN0ZWFkIG9mIFdLVmlld0dldFNuYXBzaG90KCkKKyAgICAgICAgc2luY2UgdGhl
IGZ1bmN0aW9uIHdhcyByZW5hbWVkIHRvIGZvbGxvdyBuYW1pbmcgc3R5bGUuCisKKyAgICAgICAg
KiBXZWJLaXRUZXN0UnVubmVyL2VmbC9QbGF0Zm9ybVdlYlZpZXdFZmwuY3BwOgorICAgICAgICAo
V1RSOjpQbGF0Zm9ybVdlYlZpZXc6OndpbmRvd1NuYXBzaG90SW1hZ2UpOgorCiAyMDEyLTEyLTI0
ICBYaWFvYm8gV2FuZyAgPHhid2FuZ0B0b3JjaG1vYmlsZS5jb20uY24+CiAKICAgICAgICAgW0Js
YWNrQmVycnldIERSVCAtIENyYXNoZWQgd2hlbiBydW5uaW5nIHBpeGVscyB0ZXN0cwpkaWZmIC0t
Z2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9lZmwvUGxhdGZvcm1XZWJWaWV3RWZsLmNwcCBi
L1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvZWZsL1BsYXRmb3JtV2ViVmlld0VmbC5jcHAKaW5kZXgg
Yzc1MDFhOS4uMWNjYzBiZCAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9lZmwv
UGxhdGZvcm1XZWJWaWV3RWZsLmNwcAorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL2VmbC9Q
bGF0Zm9ybVdlYlZpZXdFZmwuY3BwCkBAIC0xMzUsNyArMTM1LDcgQEAgV0tSZXRhaW5QdHI8V0tJ
bWFnZVJlZj4gUGxhdGZvcm1XZWJWaWV3Ojp3aW5kb3dTbmFwc2hvdEltYWdlKCkKICAgICBlY29y
ZV9ldmFzX2dlb21ldHJ5X2dldChlZSwgMCwgMCwgJndpZHRoLCAmaGVpZ2h0KTsKICAgICBBU1NF
UlQod2lkdGggPiAwICYmIGhlaWdodCA+IDApOwogCi0gICAgcmV0dXJuIGFkb3B0V0soV0tWaWV3
R2V0U25hcHNob3QodG9BUEkobV92aWV3KSkpOworICAgIHJldHVybiBhZG9wdFdLKFdLVmlld0Ny
ZWF0ZVNuYXBzaG90KHRvQVBJKG1fdmlldykpKTsKIH0KIAogYm9vbCBQbGF0Zm9ybVdlYlZpZXc6
OnZpZXdTdXBwb3J0c09wdGlvbnMoV0tEaWN0aW9uYXJ5UmVmIG9wdGlvbnMpIGNvbnN0Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>