<?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>76971</bug_id>
          
          <creation_ts>2012-01-24 18:01:56 -0800</creation_ts>
          <short_desc>Move RenderLayer::scrolledContentOffset calls to a common function</short_desc>
          <delta_ts>2012-02-21 11:59:52 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Layout and Rendering</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</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>75568</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Julien Chaffraix">jchaffraix</reporter>
          <assigned_to name="Julien Chaffraix">jchaffraix</assigned_to>
          
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>541923</commentid>
    <comment_count>0</comment_count>
    <who name="Julien Chaffraix">jchaffraix</who>
    <bug_when>2012-01-24 18:01:56 -0800</bug_when>
    <thetext>This is a first refactoring towards lazily allocating our layers as part of bug 75568.

Once all callers go through this new method we can add some layer() checks without having to patch all the call sites.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>541936</commentid>
    <comment_count>1</comment_count>
      <attachid>123868</attachid>
    <who name="Julien Chaffraix">jchaffraix</who>
    <bug_when>2012-01-24 18:13:11 -0800</bug_when>
    <thetext>Created attachment 123868
Proposed refactoring.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>559450</commentid>
    <comment_count>2</comment_count>
      <attachid>127636</attachid>
    <who name="Julien Chaffraix">jchaffraix</who>
    <bug_when>2012-02-17 12:57:41 -0800</bug_when>
    <thetext>Created attachment 127636
Updated change, moved scrolledContentOffset down to RenderBox.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>561055</commentid>
    <comment_count>3</comment_count>
      <attachid>128003</attachid>
    <who name="Julien Chaffraix">jchaffraix</who>
    <bug_when>2012-02-21 11:12:01 -0800</bug_when>
    <thetext>Created attachment 128003
Fixed small typo (LayoutSize vs IntSize).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>561059</commentid>
    <comment_count>4</comment_count>
      <attachid>128003</attachid>
    <who name="Dave Hyatt">hyatt</who>
    <bug_when>2012-02-21 11:15:59 -0800</bug_when>
    <thetext>Comment on attachment 128003
Fixed small typo (LayoutSize vs IntSize).

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>561107</commentid>
    <comment_count>5</comment_count>
    <who name="Julien Chaffraix">jchaffraix</who>
    <bug_when>2012-02-21 11:59:52 -0800</bug_when>
    <thetext>Committed r108382: &lt;http://trac.webkit.org/changeset/108382&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>123868</attachid>
            <date>2012-01-24 18:13:11 -0800</date>
            <delta_ts>2012-02-17 12:57:39 -0800</delta_ts>
            <desc>Proposed refactoring.</desc>
            <filename>bug-76971-20120124181310.patch</filename>
            <type>text/plain</type>
            <size>17330</size>
            <attacher name="Julien Chaffraix">jchaffraix</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTA1ODM3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNmMwYjE1MGI0OWRjMjA0
MzMzZmUzOGFiZjVkY2U2MzNkZjY1YjQ2My4uOThjNzc4Nzk4ODljZTM0MDhmYjNkNDg2M2Q0NDdl
ODEyZGFkMmUxNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU5IEBACisyMDEyLTAxLTI0ICBKdWxp
ZW4gQ2hhZmZyYWl4ICA8amNoYWZmcmFpeEB3ZWJraXQub3JnPgorCisgICAgICAgIE1vdmUgUmVu
ZGVyTGF5ZXI6OnNjcm9sbGVkQ29udGVudE9mZnNldCBjYWxscyB0byBhIGNvbW1vbiBmdW5jdGlv
bgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzY5NzEK
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBSZWZhY3Rv
cmluZyB3aXRob3V0IGFueSBjaGFuZ2UgaW4gYmVoYXZpb3IuCisKKyAgICAgICAgVGhpcyBjaGFu
Z2UgYWRkcyBhIFJlbmRlck9iamVjdDo6c2Nyb2xsZWRDb250ZW50T2Zmc2V0IGZ1bmN0aW9uIHRv
CisgICAgICAgIGhhbmRsZSBhbGwgdGhlIGNhbGwgdGhlIGxheWVyKCkuIFRoaXMgaW5kaXJlY3Rp
b24gd2lsbCBlbmFibGUgdXMKKyAgICAgICAgdG8gYWRkIGxheWVyKCkgY2hlY2tzIHdpdGhvdXQg
cGF0Y2hpbmcgYSBsb3Qgb2YgY2FsbCBzaXRlcy4KKworICAgICAgICAqIHJlbmRlcmluZy9SZW5k
ZXJMYXllci5oOgorICAgICAgICAoKToKKyAgICAgICAgKFJlbmRlckxheWVyKToKKyAgICAgICAg
KFdlYkNvcmU6OlJlbmRlckxheWVyOjpzY3JvbGxlZENvbnRlbnRPZmZzZXQpOgorICAgICAgICBN
b3ZlZCBzY3JvbGxlZENvbnRlbnQgdG8gdGhlIHByaXZhdGUgc2VjdGlvbiB0byBwcmV2ZW50IG1p
c3VzZS4KKworICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJPYmplY3QuaDoKKyAgICAgICAgKFdl
YkNvcmU6OlJlbmRlck9iamVjdDo6c2Nyb2xsZWRDb250ZW50T2Zmc2V0KToKKyAgICAgICAgTmV3
IGZ1bmN0aW9uIHRvIGFkZCBhbiBpbmRpcmVjdGlvbiB3aXRoIFJlbmRlckxheWVyLgorCisgICAg
ICAgICogZWRpdGluZy92aXNpYmxlX3VuaXRzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmFic29s
dXRlTGluZURpcmVjdGlvblBvaW50VG9Mb2NhbFBvaW50SW5CbG9jayk6CisgICAgICAgICogcmVu
ZGVyaW5nL0xheW91dFN0YXRlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dFN0YXRlOjpM
YXlvdXRTdGF0ZSk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckJsb2NrLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OlJlbmRlckJsb2NrOjpsYXlvdXRCbG9jayk6CisgICAgICAgIChXZWJDb3Jl
OjpSZW5kZXJCbG9jazo6cGFpbnRPYmplY3QpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyQmxv
Y2s6OnNlbGVjdGlvbkdhcFJlY3RzRm9yUmVwYWludCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5k
ZXJCbG9jazo6cGFpbnRTZWxlY3Rpb24pOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyQmxvY2s6
Om5vZGVBdFBvaW50KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckJsb2NrOjpvZmZzZXRGb3JD
b250ZW50cyk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckJveC5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpSZW5kZXJCb3g6Om9mZnNldEZyb21Db250YWluZXIpOgorICAgICAgICAoV2ViQ29y
ZTo6UmVuZGVyQm94Ojpjb21wdXRlUmVjdEZvclJlcGFpbnQpOgorICAgICAgICAqIHJlbmRlcmlu
Zy9SZW5kZXJCb3hNb2RlbE9iamVjdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJCb3hN
b2RlbE9iamVjdDo6cGFpbnRGaWxsTGF5ZXJFeHRlbmRlZCk6CisgICAgICAgICogcmVuZGVyaW5n
L1JlbmRlcklubGluZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJJbmxpbmU6OmNsaXBw
ZWRPdmVyZmxvd1JlY3RGb3JSZXBhaW50KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlcklubGlu
ZTo6Y29tcHV0ZVJlY3RGb3JSZXBhaW50KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlcklubGlu
ZTo6b2Zmc2V0RnJvbUNvbnRhaW5lcik6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlck9iamVj
dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJPYmplY3Q6OmNvbXB1dGVSZWN0Rm9yUmVw
YWludCk6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlck9iamVj
dDo6c3R5bGVXaWxsQ2hhbmdlKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlck9iamVjdDo6bWFw
TG9jYWxUb0NvbnRhaW5lcik6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJPYmplY3Q6Om1hcEFi
c29sdXRlVG9Mb2NhbFBvaW50KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlck9iamVjdDo6b2Zm
c2V0RnJvbUNvbnRhaW5lcik6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlck9iamVjdC5oOgor
ICAgICAgICAoUmVuZGVyT2JqZWN0KToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyVGV4dENv
bnRyb2xTaW5nbGVMaW5lLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRleHRDb250cm9s
SW5uZXJCbG9jazo6cG9zaXRpb25Gb3JQb2ludCk6CisgICAgICAgIFBhdGNoZWQgYWxsIHRob3Nl
IGNhbGwgc2l0ZXMuCisKIDIwMTItMDEtMjQgIEtlbiBCdWNoYW5hbiAgPGtlbnJiQGNocm9taXVt
Lm9yZz4KIAogICAgICAgICBDcmFzaCBpbiB1cGRhdGVGaXJzdExldHRlcigpIGZyb20gdW5uZWNl
c3NhcnkgYW5vbnltb3VzIGJsb2NrCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5n
L3Zpc2libGVfdW5pdHMuY3BwIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy92aXNpYmxlX3VuaXRz
LmNwcAppbmRleCA1MDlmYTFkMTk5NWMxYzM1ZTZiZGY0ZDA5NTUwNWQzNzc2MDg4NjgzLi44MmY2
OTc5YzYzYmNiNWI5YmE1NjVhOTgwYjFmMDVkMTQ3MTk5ZjhlIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9lZGl0aW5nL3Zpc2libGVfdW5pdHMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Vk
aXRpbmcvdmlzaWJsZV91bml0cy5jcHAKQEAgLTU0NSw3ICs1NDUsNyBAQCBzdGF0aWMgaW5saW5l
IEludFBvaW50IGFic29sdXRlTGluZURpcmVjdGlvblBvaW50VG9Mb2NhbFBvaW50SW5CbG9jayhS
b290SW5saW5lQgogICAgIFJlbmRlckJsb2NrKiBjb250YWluaW5nQmxvY2sgPSByb290LT5ibG9j
aygpOwogICAgIEZsb2F0UG9pbnQgYWJzb2x1dGVCbG9ja1BvaW50ID0gY29udGFpbmluZ0Jsb2Nr
LT5sb2NhbFRvQWJzb2x1dGUoRmxvYXRQb2ludCgpKTsKICAgICBpZiAoY29udGFpbmluZ0Jsb2Nr
LT5oYXNPdmVyZmxvd0NsaXAoKSkKLSAgICAgICAgYWJzb2x1dGVCbG9ja1BvaW50IC09IGNvbnRh
aW5pbmdCbG9jay0+bGF5ZXIoKS0+c2Nyb2xsZWRDb250ZW50T2Zmc2V0KCk7CisgICAgICAgIGFi
c29sdXRlQmxvY2tQb2ludCAtPSBjb250YWluaW5nQmxvY2stPnNjcm9sbGVkQ29udGVudE9mZnNl
dCgpOwogCiAgICAgaWYgKHJvb3QtPmJsb2NrKCktPmlzSG9yaXpvbnRhbFdyaXRpbmdNb2RlKCkp
CiAgICAgICAgIHJldHVybiBJbnRQb2ludChsaW5lRGlyZWN0aW9uUG9pbnQgLSBhYnNvbHV0ZUJs
b2NrUG9pbnQueCgpLCByb290LT5ibG9ja0RpcmVjdGlvblBvaW50SW5MaW5lKCkpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0xheW91dFN0YXRlLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9MYXlvdXRTdGF0ZS5jcHAKaW5kZXggYzU5ZTk3MDAyNTNkMmY4YTAx
ZmJhZWE4ODg0NzdiMzUyODFhMDc3ZC4uMDBhZmJjOGQ3MWVjZGY5ZDUwMjQ2MzZlMmJlZGM5OWM2
NzU1YjAwMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0xheW91dFN0YXRl
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvTGF5b3V0U3RhdGUuY3BwCkBAIC03
OSw3ICs3OSw3IEBAIExheW91dFN0YXRlOjpMYXlvdXRTdGF0ZShMYXlvdXRTdGF0ZSogcHJldiwg
UmVuZGVyQm94KiByZW5kZXJlciwgY29uc3QgTGF5b3V0U2l6CiAgICAgICAgICAgICBtX2NsaXBw
ZWQgPSB0cnVlOwogICAgICAgICB9CiAKLSAgICAgICAgbV9wYWludE9mZnNldCAtPSBsYXllci0+
c2Nyb2xsZWRDb250ZW50T2Zmc2V0KCk7CisgICAgICAgIG1fcGFpbnRPZmZzZXQgLT0gcmVuZGVy
ZXItPnNjcm9sbGVkQ29udGVudE9mZnNldCgpOwogICAgIH0KIAogICAgIC8vIElmIHdlIGVzdGFi
bGlzaCBhIG5ldyBwYWdlIGhlaWdodCwgdGhlbiBjYWNoZSB0aGUgb2Zmc2V0IHRvIHRoZSB0b3Ag
b2YgdGhlIGZpcnN0IHBhZ2UuCkBAIC0xNTYsNyArMTU2LDcgQEAgTGF5b3V0U3RhdGU6OkxheW91
dFN0YXRlKFJlbmRlck9iamVjdCogcm9vdCkKICAgICAgICAgUmVuZGVyTGF5ZXIqIGxheWVyID0g
dG9SZW5kZXJCb3hNb2RlbE9iamVjdChjb250YWluZXIpLT5sYXllcigpOwogICAgICAgICBtX2Ns
aXBwZWQgPSB0cnVlOwogICAgICAgICBtX2NsaXBSZWN0ID0gTGF5b3V0UmVjdCh0b1BvaW50KG1f
cGFpbnRPZmZzZXQpLCBsYXllci0+c2l6ZSgpKTsKLSAgICAgICAgbV9wYWludE9mZnNldCAtPSBs
YXllci0+c2Nyb2xsZWRDb250ZW50T2Zmc2V0KCk7CisgICAgICAgIG1fcGFpbnRPZmZzZXQgLT0g
Y29udGFpbmVyLT5zY3JvbGxlZENvbnRlbnRPZmZzZXQoKTsKICAgICB9CiB9CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9jay5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2suY3BwCmluZGV4IGJhZGJjMTQxYWVjMDQ1ZTZjZTlh
ZjhhM2UwNTQ2MTE1OGViMzRiNDguLjFjM2ZlNGQ4N2QyZTJiMWZlY2RhZDZkODZiYTY3Njg1NThj
Y2FkM2UgMTAwNzU1Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9jay5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrLmNwcApAQCAtMTQw
OSw3ICsxNDA5LDcgQEAgdm9pZCBSZW5kZXJCbG9jazo6bGF5b3V0QmxvY2soYm9vbCByZWxheW91
dENoaWxkcmVuLCBMYXlvdXRVbml0IHBhZ2VMb2dpY2FsSGVpZ2gKICAgICAgICAgCiAgICAgICAg
IGlmIChoYXNPdmVyZmxvd0NsaXAoKSkgewogICAgICAgICAgICAgLy8gQWRqdXN0IHJlcGFpbnQg
cmVjdCBmb3Igc2Nyb2xsIG9mZnNldAotICAgICAgICAgICAgcmVwYWludFJlY3QubW92ZSgtbGF5
ZXIoKS0+c2Nyb2xsZWRDb250ZW50T2Zmc2V0KCkpOworICAgICAgICAgICAgcmVwYWludFJlY3Qu
bW92ZSgtc2Nyb2xsZWRDb250ZW50T2Zmc2V0KCkpOwogCiAgICAgICAgICAgICAvLyBEb24ndCBh
bGxvdyB0aGlzIHJlY3QgdG8gc3BpbGwgb3V0IG9mIG91ciBvdmVyZmxvdyBib3guCiAgICAgICAg
ICAgICByZXBhaW50UmVjdC5pbnRlcnNlY3QoTGF5b3V0UmVjdChMYXlvdXRQb2ludCgpLCBzaXpl
KCkpKTsKQEAgLTI2NzAsNyArMjY3MCw3IEBAIHZvaWQgUmVuZGVyQmxvY2s6OnBhaW50T2JqZWN0
KFBhaW50SW5mbyYgcGFpbnRJbmZvLCBjb25zdCBMYXlvdXRQb2ludCYgcGFpbnRPZmZzCiAgICAg
Ly8gQWRqdXN0IG91ciBwYWludGluZyBwb3NpdGlvbiBpZiB3ZSdyZSBpbnNpZGUgYSBzY3JvbGxl
ZCBsYXllciAoZS5nLiwgYW4gb3ZlcmZsb3c6YXV0byBkaXYpLgogICAgIExheW91dFBvaW50IHNj
cm9sbGVkT2Zmc2V0ID0gcGFpbnRPZmZzZXQ7CiAgICAgaWYgKGhhc092ZXJmbG93Q2xpcCgpKQot
ICAgICAgICBzY3JvbGxlZE9mZnNldC5tb3ZlKC1sYXllcigpLT5zY3JvbGxlZENvbnRlbnRPZmZz
ZXQoKSk7CisgICAgICAgIHNjcm9sbGVkT2Zmc2V0Lm1vdmUoLXNjcm9sbGVkQ29udGVudE9mZnNl
dCgpKTsKIAogICAgIC8vIDIuIHBhaW50IGNvbnRlbnRzCiAgICAgaWYgKHBhaW50UGhhc2UgIT0g
UGFpbnRQaGFzZVNlbGZPdXRsaW5lKSB7CkBAIC0yOTE4LDcgKzI5MTgsNyBAQCBHYXBSZWN0cyBS
ZW5kZXJCbG9jazo6c2VsZWN0aW9uR2FwUmVjdHNGb3JSZXBhaW50KFJlbmRlckJveE1vZGVsT2Jq
ZWN0KiByZXBhaW50QwogICAgIExheW91dFBvaW50IG9mZnNldEZyb21SZXBhaW50Q29udGFpbmVy
ID0gcm91bmRlZExheW91dFBvaW50KHRyYW5zZm9ybVN0YXRlLm1hcHBlZFBvaW50KCkpOwogCiAg
ICAgaWYgKGhhc092ZXJmbG93Q2xpcCgpKQotICAgICAgICBvZmZzZXRGcm9tUmVwYWludENvbnRh
aW5lciAtPSBsYXllcigpLT5zY3JvbGxlZENvbnRlbnRPZmZzZXQoKTsKKyAgICAgICAgb2Zmc2V0
RnJvbVJlcGFpbnRDb250YWluZXIgLT0gc2Nyb2xsZWRDb250ZW50T2Zmc2V0KCk7CiAKICAgICBM
YXlvdXRVbml0IGxhc3RUb3AgPSAwOwogICAgIExheW91dFVuaXQgbGFzdExlZnQgPSBsb2dpY2Fs
TGVmdFNlbGVjdGlvbk9mZnNldCh0aGlzLCBsYXN0VG9wKTsKQEAgLTI5NDMsNyArMjk0Myw4IEBA
IHZvaWQgUmVuZGVyQmxvY2s6OnBhaW50U2VsZWN0aW9uKFBhaW50SW5mbyYgcGFpbnRJbmZvLCBj
b25zdCBMYXlvdXRQb2ludCYgcGFpbnRPCiAgICAgICAgICAgICAgICAgICAgIExheW91dFJlY3Qg
bG9jYWxCb3VuZHMoZ2FwUmVjdHNCb3VuZHMpOwogICAgICAgICAgICAgICAgICAgICBmbGlwRm9y
V3JpdGluZ01vZGUobG9jYWxCb3VuZHMpOwogICAgICAgICAgICAgICAgICAgICBnYXBSZWN0c0Jv
dW5kcyA9IGxvY2FsVG9Db250YWluZXJRdWFkKEZsb2F0UmVjdChsb2NhbEJvdW5kcyksIGxheWVy
LT5yZW5kZXJlcigpKS5lbmNsb3NpbmdCb3VuZGluZ0JveCgpOwotICAgICAgICAgICAgICAgICAg
ICBnYXBSZWN0c0JvdW5kcy5tb3ZlKGxheWVyLT5zY3JvbGxlZENvbnRlbnRPZmZzZXQoKSk7Cisg
ICAgICAgICAgICAgICAgICAgIGlmIChsYXllci0+cmVuZGVyZXIoKS0+aGFzT3ZlcmZsb3dDbGlw
KCkpCisgICAgICAgICAgICAgICAgICAgICAgICBnYXBSZWN0c0JvdW5kcy5tb3ZlKGxheWVyLT5y
ZW5kZXJlcigpLT5zY3JvbGxlZENvbnRlbnRPZmZzZXQoKSk7CiAgICAgICAgICAgICAgICAgfQog
ICAgICAgICAgICAgICAgIGxheWVyLT5hZGRCbG9ja1NlbGVjdGlvbkdhcHNCb3VuZHMoZ2FwUmVj
dHNCb3VuZHMpOwogICAgICAgICAgICAgfQpAQCAtNDIyNyw5ICs0MjI4LDggQEAgYm9vbCBSZW5k
ZXJCbG9jazo6bm9kZUF0UG9pbnQoY29uc3QgSGl0VGVzdFJlcXVlc3QmIHJlcXVlc3QsIEhpdFRl
c3RSZXN1bHQmIHJlc3UKICAgICBpZiAoY2hlY2tDaGlsZHJlbikgewogICAgICAgICAvLyBIaXQg
dGVzdCBkZXNjZW5kYW50cyBmaXJzdC4KICAgICAgICAgTGF5b3V0U2l6ZSBzY3JvbGxlZE9mZnNl
dChsb2NhbE9mZnNldCk7Ci0gICAgICAgIGlmIChoYXNPdmVyZmxvd0NsaXAoKSkgewotICAgICAg
ICAgICAgc2Nyb2xsZWRPZmZzZXQgLT0gbGF5ZXIoKS0+c2Nyb2xsZWRDb250ZW50T2Zmc2V0KCk7
Ci0gICAgICAgIH0KKyAgICAgICAgaWYgKGhhc092ZXJmbG93Q2xpcCgpKQorICAgICAgICAgICAg
c2Nyb2xsZWRPZmZzZXQgLT0gc2Nyb2xsZWRDb250ZW50T2Zmc2V0KCk7CiAKICAgICAgICAgLy8g
SGl0IHRlc3QgY29udGVudHMgaWYgd2UgZG9uJ3QgaGF2ZSBjb2x1bW5zLgogICAgICAgICBpZiAo
IWhhc0NvbHVtbnMoKSkgewpAQCAtNDU3Niw3ICs0NTc2LDcgQEAgVmlzaWJsZVBvc2l0aW9uIFJl
bmRlckJsb2NrOjpwb3NpdGlvbkZvclBvaW50KGNvbnN0IExheW91dFBvaW50JiBwb2ludCkKIHZv
aWQgUmVuZGVyQmxvY2s6Om9mZnNldEZvckNvbnRlbnRzKExheW91dFBvaW50JiBvZmZzZXQpIGNv
bnN0CiB7CiAgICAgaWYgKGhhc092ZXJmbG93Q2xpcCgpKQotICAgICAgICBvZmZzZXQgKz0gbGF5
ZXIoKS0+c2Nyb2xsZWRDb250ZW50T2Zmc2V0KCk7CisgICAgICAgIG9mZnNldCArPSBzY3JvbGxl
ZENvbnRlbnRPZmZzZXQoKTsKIAogICAgIGlmIChoYXNDb2x1bW5zKCkpCiAgICAgICAgIGFkanVz
dFBvaW50VG9Db2x1bW5Db250ZW50cyhvZmZzZXQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlckJveC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyQm94LmNwcAppbmRleCBhODliMTRkOGE4NTJiZTc1YzRiZjU1NjI4ZDZlYmUzYmQ5YjVhZjc1
Li4xOTRkOGEyZjc4OWQ4YWQxNjQ0MjMzYTljMzExMDYwZGRjY2NjYmRmIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyQm94LmNwcApAQCAtMTM4NCw3ICsxMzg0LDcgQEAgTGF5b3V0U2l6
ZSBSZW5kZXJCb3g6Om9mZnNldEZyb21Db250YWluZXIoUmVuZGVyT2JqZWN0KiBvLCBjb25zdCBM
YXlvdXRQb2ludCYgcG8KICAgICB9CiAKICAgICBpZiAoby0+aGFzT3ZlcmZsb3dDbGlwKCkpCi0g
ICAgICAgIG9mZnNldCAtPSB0b1JlbmRlckJveChvKS0+bGF5ZXIoKS0+c2Nyb2xsZWRDb250ZW50
T2Zmc2V0KCk7CisgICAgICAgIG9mZnNldCAtPSBvLT5zY3JvbGxlZENvbnRlbnRPZmZzZXQoKTsK
IAogICAgIGlmIChzdHlsZSgpLT5wb3NpdGlvbigpID09IEFic29sdXRlUG9zaXRpb24gJiYgby0+
aXNSZWxQb3NpdGlvbmVkKCkgJiYgby0+aXNSZW5kZXJJbmxpbmUoKSkKICAgICAgICAgb2Zmc2V0
ICs9IHRvUmVuZGVySW5saW5lKG8pLT5yZWxhdGl2ZVBvc2l0aW9uZWRJbmxpbmVPZmZzZXQodGhp
cyk7CkBAIC0xNTgzLDcgKzE1ODMsNyBAQCB2b2lkIFJlbmRlckJveDo6Y29tcHV0ZVJlY3RGb3JS
ZXBhaW50KFJlbmRlckJveE1vZGVsT2JqZWN0KiByZXBhaW50Q29udGFpbmVyLCBMYQogICAgICAg
ICAvLyBvLT5oZWlnaHQoKSBpcyBpbmFjY3VyYXRlIGlmIHdlJ3JlIGluIHRoZSBtaWRkbGUgb2Yg
YSBsYXlvdXQgb2YgfG98LCBzbyB1c2UgdGhlCiAgICAgICAgIC8vIGxheWVyJ3Mgc2l6ZSBpbnN0
ZWFkLiAgRXZlbiBpZiB0aGUgbGF5ZXIncyBzaXplIGlzIHdyb25nLCB0aGUgbGF5ZXIgaXRzZWxm
IHdpbGwgcmVwYWludAogICAgICAgICAvLyBhbnl3YXkgaWYgaXRzIHNpemUgZG9lcyBjaGFuZ2Uu
Ci0gICAgICAgIHRvcExlZnQgLT0gY29udGFpbmVyQm94LT5sYXllcigpLT5zY3JvbGxlZENvbnRl
bnRPZmZzZXQoKTsgLy8gRm9yIG92ZXJmbG93OmF1dG8vc2Nyb2xsL2hpZGRlbi4KKyAgICAgICAg
dG9wTGVmdCAtPSBjb250YWluZXJCb3gtPnNjcm9sbGVkQ29udGVudE9mZnNldCgpOyAvLyBGb3Ig
b3ZlcmZsb3c6YXV0by9zY3JvbGwvaGlkZGVuLgogCiAgICAgICAgIExheW91dFJlY3QgcmVwYWlu
dFJlY3QodG9wTGVmdCwgcmVjdC5zaXplKCkpOwogICAgICAgICBMYXlvdXRSZWN0IGJveFJlY3Qo
TGF5b3V0UG9pbnQoKSwgY29udGFpbmVyQm94LT5sYXllcigpLT5zaXplKCkpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveE1vZGVsT2JqZWN0LmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3hNb2RlbE9iamVjdC5jcHAKaW5kZXggMzdl
ZWRmNGZlMTcyMzI5NmI0MjQ1NzNhYjgzMTc5MzljNGM1YTZiZi4uZjhhMWQxNzdmZmI2YjBiN2Nk
ZDE0MmFiN2FmMzAxNDlkNTI4OTk4ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlckJveE1vZGVsT2JqZWN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyQm94TW9kZWxPYmplY3QuY3BwCkBAIC02ODcsNyArNjg3LDcgQEAgdm9pZCBSZW5k
ZXJCb3hNb2RlbE9iamVjdDo6cGFpbnRGaWxsTGF5ZXJFeHRlbmRlZChjb25zdCBQYWludEluZm8m
IHBhaW50SW5mbywgY28KICAgICAgICAgY29udGV4dC0+Y2xpcCh0b1JlbmRlckJveCh0aGlzKS0+
b3ZlcmZsb3dDbGlwUmVjdChyZWN0LmxvY2F0aW9uKCksIHBhaW50SW5mby5yZW5kZXJSZWdpb24p
KTsKICAgICAgICAgCiAgICAgICAgIC8vIEFkanVzdCB0aGUgcGFpbnQgcmVjdCB0byByZWZsZWN0
IGEgc2Nyb2xsZWQgY29udGVudCBib3ggd2l0aCBib3JkZXJzIGF0IHRoZSBlbmRzLgotICAgICAg
ICBMYXlvdXRTaXplIG9mZnNldCA9IGxheWVyKCktPnNjcm9sbGVkQ29udGVudE9mZnNldCgpOwor
ICAgICAgICBMYXlvdXRTaXplIG9mZnNldCA9IHNjcm9sbGVkQ29udGVudE9mZnNldCgpOwogICAg
ICAgICBzY3JvbGxlZFBhaW50UmVjdC5tb3ZlKC1vZmZzZXQpOwogICAgICAgICBzY3JvbGxlZFBh
aW50UmVjdC5zZXRXaWR0aChiTGVmdCArIGxheWVyKCktPnNjcm9sbFdpZHRoKCkgKyBiUmlnaHQp
OwogICAgICAgICBzY3JvbGxlZFBhaW50UmVjdC5zZXRIZWlnaHQoYm9yZGVyVG9wKCkgKyBsYXll
cigpLT5zY3JvbGxIZWlnaHQoKSArIGJvcmRlckJvdHRvbSgpKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJJbmxpbmUuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlcklubGluZS5jcHAKaW5kZXggMTJhOWRmY2Y4MjY4N2Q4NzY5NTUyY2RmNTdm
ZjNhNTRlMGU3YzU0Zi4uYmZhZDYyZmNkMzVjMjUwYWEwNjg4OGU1MTNkMTNiODBjZjc4MGEwMSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlcklubGluZS5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlcklubGluZS5jcHAKQEAgLTk4OCw3ICs5
ODgsNyBAQCBMYXlvdXRSZWN0IFJlbmRlcklubGluZTo6Y2xpcHBlZE92ZXJmbG93UmVjdEZvclJl
cGFpbnQoUmVuZGVyQm94TW9kZWxPYmplY3QqIHJlcAogICAgICAgICAvLyBsYXllcidzIHNpemUg
aW5zdGVhZC4gIEV2ZW4gaWYgdGhlIGxheWVyJ3Mgc2l6ZSBpcyB3cm9uZywgdGhlIGxheWVyIGl0
c2VsZiB3aWxsIHJlcGFpbnQKICAgICAgICAgLy8gYW55d2F5IGlmIGl0cyBzaXplIGRvZXMgY2hh
bmdlLgogICAgICAgICBMYXlvdXRSZWN0IHJlcGFpbnRSZWN0KHIpOwotICAgICAgICByZXBhaW50
UmVjdC5tb3ZlKC1jYi0+bGF5ZXIoKS0+c2Nyb2xsZWRDb250ZW50T2Zmc2V0KCkpOyAvLyBGb3Ig
b3ZlcmZsb3c6YXV0by9zY3JvbGwvaGlkZGVuLgorICAgICAgICByZXBhaW50UmVjdC5tb3ZlKC1j
Yi0+c2Nyb2xsZWRDb250ZW50T2Zmc2V0KCkpOyAvLyBGb3Igb3ZlcmZsb3c6YXV0by9zY3JvbGwv
aGlkZGVuLgogCiAgICAgICAgIExheW91dFJlY3QgYm94UmVjdChMYXlvdXRQb2ludCgpLCBjYi0+
bGF5ZXIoKS0+c2l6ZSgpKTsKICAgICAgICAgciA9IGludGVyc2VjdGlvbihyZXBhaW50UmVjdCwg
Ym94UmVjdCk7CkBAIC0xMDg5LDcgKzEwODksNyBAQCB2b2lkIFJlbmRlcklubGluZTo6Y29tcHV0
ZVJlY3RGb3JSZXBhaW50KFJlbmRlckJveE1vZGVsT2JqZWN0KiByZXBhaW50Q29udGFpbmVyLAog
ICAgICAgICAvLyBvLT5oZWlnaHQoKSBpcyBpbmFjY3VyYXRlIGlmIHdlJ3JlIGluIHRoZSBtaWRk
bGUgb2YgYSBsYXlvdXQgb2YgfG98LCBzbyB1c2UgdGhlCiAgICAgICAgIC8vIGxheWVyJ3Mgc2l6
ZSBpbnN0ZWFkLiAgRXZlbiBpZiB0aGUgbGF5ZXIncyBzaXplIGlzIHdyb25nLCB0aGUgbGF5ZXIg
aXRzZWxmIHdpbGwgcmVwYWludAogICAgICAgICAvLyBhbnl3YXkgaWYgaXRzIHNpemUgZG9lcyBj
aGFuZ2UuCi0gICAgICAgIHRvcExlZnQgLT0gY29udGFpbmVyQm94LT5sYXllcigpLT5zY3JvbGxl
ZENvbnRlbnRPZmZzZXQoKTsgLy8gRm9yIG92ZXJmbG93OmF1dG8vc2Nyb2xsL2hpZGRlbi4KKyAg
ICAgICAgdG9wTGVmdCAtPSBjb250YWluZXJCb3gtPnNjcm9sbGVkQ29udGVudE9mZnNldCgpOyAv
LyBGb3Igb3ZlcmZsb3c6YXV0by9zY3JvbGwvaGlkZGVuLgogCiAgICAgICAgIExheW91dFJlY3Qg
cmVwYWludFJlY3QodG9wTGVmdCwgcmVjdC5zaXplKCkpOwogICAgICAgICBMYXlvdXRSZWN0IGJv
eFJlY3QoTGF5b3V0UG9pbnQoKSwgY29udGFpbmVyQm94LT5sYXllcigpLT5zaXplKCkpOwpAQCAt
MTEyMCw3ICsxMTIwLDcgQEAgTGF5b3V0U2l6ZSBSZW5kZXJJbmxpbmU6Om9mZnNldEZyb21Db250
YWluZXIoUmVuZGVyT2JqZWN0KiBjb250YWluZXIsIGNvbnN0IExheW8KICAgICBjb250YWluZXIt
PmFkanVzdEZvckNvbHVtbnMob2Zmc2V0LCBwb2ludCk7CiAKICAgICBpZiAoY29udGFpbmVyLT5o
YXNPdmVyZmxvd0NsaXAoKSkKLSAgICAgICAgb2Zmc2V0IC09IHRvUmVuZGVyQm94KGNvbnRhaW5l
ciktPmxheWVyKCktPnNjcm9sbGVkQ29udGVudE9mZnNldCgpOworICAgICAgICBvZmZzZXQgLT0g
Y29udGFpbmVyLT5zY3JvbGxlZENvbnRlbnRPZmZzZXQoKTsKIAogICAgIHJldHVybiBvZmZzZXQ7
CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuaCBi
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5oCmluZGV4IGRlNzVmMjQ1ZGE0
MzcwMTZiZGFmMTliMDJiY2Y4M2NiNmEyNjhiNTQuLjkzMzM5Y2ZkYWM2Y2RlMWYyMTRkMzNjZjg3
ZmZjZWI0N2U1ZDI3OGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJMYXllci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5oCkBA
IC0yOTMsOCArMjkzLDYgQEAgcHVibGljOgogICAgIC8vIFNjcm9sbGluZyBtZXRob2RzIGZvciBs
YXllcnMgdGhhdCBjYW4gc2Nyb2xsIHRoZWlyIG92ZXJmbG93LgogICAgIHZvaWQgc2Nyb2xsQnlS
ZWN1cnNpdmVseShMYXlvdXRVbml0IHhEZWx0YSwgTGF5b3V0VW5pdCB5RGVsdGEsIFNjcm9sbE9m
ZnNldENsYW1waW5nID0gU2Nyb2xsT2Zmc2V0VW5jbGFtcGVkKTsKIAotICAgIExheW91dFNpemUg
c2Nyb2xsZWRDb250ZW50T2Zmc2V0KCkgY29uc3QgeyByZXR1cm4gc2Nyb2xsT2Zmc2V0KCkgKyBt
X3Njcm9sbE92ZXJmbG93OyB9Ci0KICAgICBpbnQgc2Nyb2xsWE9mZnNldCgpIGNvbnN0IHsgcmV0
dXJuIG1fc2Nyb2xsT2Zmc2V0LndpZHRoKCkgKyBzY3JvbGxPcmlnaW4oKS54KCk7IH0KICAgICBp
bnQgc2Nyb2xsWU9mZnNldCgpIGNvbnN0IHsgcmV0dXJuIG1fc2Nyb2xsT2Zmc2V0LmhlaWdodCgp
ICsgc2Nyb2xsT3JpZ2luKCkueSgpOyB9CiAgICAgSW50U2l6ZSBzY3JvbGxPZmZzZXQoKSBjb25z
dCB7IHJldHVybiBJbnRTaXplKHNjcm9sbFhPZmZzZXQoKSwgc2Nyb2xsWU9mZnNldCgpKTsgfQpA
QCAtNTc0LDYgKzU3Miw5IEBAIHByaXZhdGU6CiAKICAgICBib29sIHNob3VsZFJlcGFpbnRBZnRl
ckxheW91dCgpIGNvbnN0OwogCisgICAgZnJpZW5kIExheW91dFNpemUgUmVuZGVyT2JqZWN0Ojpz
Y3JvbGxlZENvbnRlbnRPZmZzZXQoKSBjb25zdDsKKyAgICBMYXlvdXRTaXplIHNjcm9sbGVkQ29u
dGVudE9mZnNldCgpIGNvbnN0IHsgcmV0dXJuIHNjcm9sbE9mZnNldCgpICsgbV9zY3JvbGxPdmVy
ZmxvdzsgfQorCiAgICAgLy8gVGhlIG5vcm1hbCBvcGVyYXRvciBuZXcgaXMgZGlzYWxsb3dlZCBv
biBhbGwgcmVuZGVyIG9iamVjdHMuCiAgICAgdm9pZCogb3BlcmF0b3IgbmV3KHNpemVfdCkgdGhy
b3coKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck9iamVj
dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyT2JqZWN0LmNwcAppbmRleCBm
NGJkMmExZGJhMGQ4ODllMGQ4YzNlNGY1YjBmOGQ5ZGZlY2RlNjhkLi4wZDVlYTFjNDkyOTZkZjk4
ZjMyNjYzZjA0MmM3ZmE4YWFhZjBmM2UyIDEwMDc1NQotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyT2JqZWN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyT2JqZWN0LmNwcApAQCAtMTUwMCw3ICsxNTAwLDcgQEAgdm9pZCBSZW5kZXJPYmplY3Q6OmNv
bXB1dGVSZWN0Rm9yUmVwYWludChSZW5kZXJCb3hNb2RlbE9iamVjdCogcmVwYWludENvbnRhaW5l
ciwKICAgICAgICAgICAgIFJlbmRlckJveCogYm94UGFyZW50ID0gdG9SZW5kZXJCb3gobyk7CiAK
ICAgICAgICAgICAgIExheW91dFJlY3QgcmVwYWludFJlY3QocmVjdCk7Ci0gICAgICAgICAgICBy
ZXBhaW50UmVjdC5tb3ZlKC1ib3hQYXJlbnQtPmxheWVyKCktPnNjcm9sbGVkQ29udGVudE9mZnNl
dCgpKTsgLy8gRm9yIG92ZXJmbG93OmF1dG8vc2Nyb2xsL2hpZGRlbi4KKyAgICAgICAgICAgIHJl
cGFpbnRSZWN0Lm1vdmUoLWJveFBhcmVudC0+c2Nyb2xsZWRDb250ZW50T2Zmc2V0KCkpOyAvLyBG
b3Igb3ZlcmZsb3c6YXV0by9zY3JvbGwvaGlkZGVuLgogCiAgICAgICAgICAgICBMYXlvdXRSZWN0
IGJveFJlY3QoTGF5b3V0UG9pbnQoKSwgYm94UGFyZW50LT5sYXllcigpLT5zaXplKCkpOwogICAg
ICAgICAgICAgcmVjdCA9IGludGVyc2VjdGlvbihyZXBhaW50UmVjdCwgYm94UmVjdCk7CkBAIC0x
Nzk0LDYgKzE3OTQsMTMgQEAgdm9pZCBSZW5kZXJPYmplY3Q6OnNldFN0eWxlSW50ZXJuYWwoUGFz
c1JlZlB0cjxSZW5kZXJTdHlsZT4gc3R5bGUpCiAgICAgbV9zdHlsZSA9IHN0eWxlOwogfQogCitM
YXlvdXRTaXplIFJlbmRlck9iamVjdDo6c2Nyb2xsZWRDb250ZW50T2Zmc2V0KCkgY29uc3QKK3sK
KyAgICBBU1NFUlQoaGFzT3ZlcmZsb3dDbGlwKCkpOworICAgIEFTU0VSVChoYXNMYXllcigpKTsK
KyAgICByZXR1cm4gdG9SZW5kZXJCb3hNb2RlbE9iamVjdCh0aGlzKS0+bGF5ZXIoKS0+c2Nyb2xs
ZWRDb250ZW50T2Zmc2V0KCk7Cit9CisKIHZvaWQgUmVuZGVyT2JqZWN0OjpzdHlsZVdpbGxDaGFu
Z2UoU3R5bGVEaWZmZXJlbmNlIGRpZmYsIGNvbnN0IFJlbmRlclN0eWxlKiBuZXdTdHlsZSkKIHsK
ICAgICBpZiAobV9zdHlsZSkgewpAQCAtMjAyMCw3ICsyMDI3LDcgQEAgdm9pZCBSZW5kZXJPYmpl
Y3Q6Om1hcExvY2FsVG9Db250YWluZXIoUmVuZGVyQm94TW9kZWxPYmplY3QqIHJlcGFpbnRDb250
YWluZXIsIGIKICAgICAgICAgdHJhbnNmb3JtU3RhdGUubW92ZShjb2x1bW5PZmZzZXQpOwogCiAg
ICAgaWYgKG8tPmhhc092ZXJmbG93Q2xpcCgpKQotICAgICAgICB0cmFuc2Zvcm1TdGF0ZS5tb3Zl
KC10b1JlbmRlckJveChvKS0+bGF5ZXIoKS0+c2Nyb2xsZWRDb250ZW50T2Zmc2V0KCkpOworICAg
ICAgICB0cmFuc2Zvcm1TdGF0ZS5tb3ZlKC1vLT5zY3JvbGxlZENvbnRlbnRPZmZzZXQoKSk7CiAK
ICAgICBvLT5tYXBMb2NhbFRvQ29udGFpbmVyKHJlcGFpbnRDb250YWluZXIsIGZpeGVkLCB1c2VU
cmFuc2Zvcm1zLCB0cmFuc2Zvcm1TdGF0ZSwgd2FzRml4ZWQpOwogfQpAQCAtMjAzMSw3ICsyMDM4
LDcgQEAgdm9pZCBSZW5kZXJPYmplY3Q6Om1hcEFic29sdXRlVG9Mb2NhbFBvaW50KGJvb2wgZml4
ZWQsIGJvb2wgdXNlVHJhbnNmb3JtcywgVHJhbnMKICAgICBpZiAobykgewogICAgICAgICBvLT5t
YXBBYnNvbHV0ZVRvTG9jYWxQb2ludChmaXhlZCwgdXNlVHJhbnNmb3JtcywgdHJhbnNmb3JtU3Rh
dGUpOwogICAgICAgICBpZiAoby0+aGFzT3ZlcmZsb3dDbGlwKCkpCi0gICAgICAgICAgICB0cmFu
c2Zvcm1TdGF0ZS5tb3ZlKHRvUmVuZGVyQm94KG8pLT5sYXllcigpLT5zY3JvbGxlZENvbnRlbnRP
ZmZzZXQoKSk7CisgICAgICAgICAgICB0cmFuc2Zvcm1TdGF0ZS5tb3ZlKG8tPnNjcm9sbGVkQ29u
dGVudE9mZnNldCgpKTsKICAgICB9CiB9CiAKQEAgLTIwOTMsNyArMjEwMCw3IEBAIExheW91dFNp
emUgUmVuZGVyT2JqZWN0OjpvZmZzZXRGcm9tQ29udGFpbmVyKFJlbmRlck9iamVjdCogbywgY29u
c3QgTGF5b3V0UG9pbnQmCiAgICAgby0+YWRqdXN0Rm9yQ29sdW1ucyhvZmZzZXQsIHBvaW50KTsK
IAogICAgIGlmIChvLT5oYXNPdmVyZmxvd0NsaXAoKSkKLSAgICAgICAgb2Zmc2V0IC09IHRvUmVu
ZGVyQm94KG8pLT5sYXllcigpLT5zY3JvbGxlZENvbnRlbnRPZmZzZXQoKTsKKyAgICAgICAgb2Zm
c2V0IC09IG8tPnNjcm9sbGVkQ29udGVudE9mZnNldCgpOwogCiAgICAgcmV0dXJuIG9mZnNldDsK
IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJPYmplY3QuaCBi
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJPYmplY3QuaAppbmRleCAwYjI2ZWEzZDMz
YmFlZjRkYzU4ZjM4NDg1NzQ2OTY4MzE0OGQ0OTA3Li4zYWJkOTRkYTM1YTViNzczMjNlMDNmYmI0
MjU4NjIxMjE4MDQzZDhhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyT2JqZWN0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck9iamVjdC5o
CkBAIC04NTUsNiArODU1LDggQEAgcHVibGljOgogICAgIC8vIFJldHVybiB0aGUgcmVuZGVyZXIg
d2hvc2UgYmFja2dyb3VuZCBzdHlsZSBpcyB1c2VkIHRvIHBhaW50IHRoZSByb290IGJhY2tncm91
bmQuIFNob3VsZCBvbmx5IGJlIGNhbGxlZCBvbiB0aGUgcmVuZGVyZXIgZm9yIHdoaWNoIGlzUm9v
dCgpIGlzIHRydWUuCiAgICAgUmVuZGVyT2JqZWN0KiByZW5kZXJlckZvclJvb3RCYWNrZ3JvdW5k
KCk7CiAKKyAgICBMYXlvdXRTaXplIHNjcm9sbGVkQ29udGVudE9mZnNldCgpIGNvbnN0OworCiBw
cm90ZWN0ZWQ6CiAgICAgLy8gT3ZlcnJpZGVzIHNob3VsZCBjYWxsIHRoZSBzdXBlcmNsYXNzIGF0
IHRoZSBlbmQKICAgICB2aXJ0dWFsIHZvaWQgc3R5bGVXaWxsQ2hhbmdlKFN0eWxlRGlmZmVyZW5j
ZSwgY29uc3QgUmVuZGVyU3R5bGUqIG5ld1N0eWxlKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJUZXh0Q29udHJvbFNpbmdsZUxpbmUuY3BwIGIvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlclRleHRDb250cm9sU2luZ2xlTGluZS5jcHAKaW5kZXggOTEy
ZWUwYzMzNGFiMWIxZjRkMmU2OTJhMjA4NDhhNDM5MjA4Y2FiOC4uOWI3ZjgzNzY1ODlhZDM2YWFm
NTFlZWJkZDNmYzkxNzFkNTllZmY5MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlclRleHRDb250cm9sU2luZ2xlTGluZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlclRleHRDb250cm9sU2luZ2xlTGluZS5jcHAKQEAgLTYwLDcgKzYwLDcg
QEAgVmlzaWJsZVBvc2l0aW9uIFJlbmRlclRleHRDb250cm9sSW5uZXJCbG9jazo6cG9zaXRpb25G
b3JQb2ludChjb25zdCBMYXlvdXRQb2ludCYKICAgICBpZiAobV9tdWx0aUxpbmUpIHsKICAgICAg
ICAgUmVuZGVyVGV4dENvbnRyb2wqIHJlbmRlcmVyID0gdG9SZW5kZXJUZXh0Q29udHJvbChub2Rl
KCktPnNoYWRvd0FuY2VzdG9yTm9kZSgpLT5yZW5kZXJlcigpKTsKICAgICAgICAgaWYgKHJlbmRl
cmVyLT5oYXNPdmVyZmxvd0NsaXAoKSkKLSAgICAgICAgICAgIGNvbnRlbnRzUG9pbnQgKz0gcmVu
ZGVyZXItPmxheWVyKCktPnNjcm9sbGVkQ29udGVudE9mZnNldCgpOworICAgICAgICAgICAgY29u
dGVudHNQb2ludCArPSByZW5kZXJlci0+c2Nyb2xsZWRDb250ZW50T2Zmc2V0KCk7CiAgICAgfQog
CiAgICAgcmV0dXJuIFJlbmRlckJsb2NrOjpwb3NpdGlvbkZvclBvaW50KGNvbnRlbnRzUG9pbnQp
Owo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>127636</attachid>
            <date>2012-02-17 12:57:41 -0800</date>
            <delta_ts>2012-02-21 11:11:59 -0800</delta_ts>
            <desc>Updated change, moved scrolledContentOffset down to RenderBox.</desc>
            <filename>bug-76971-20120217125740.patch</filename>
            <type>text/plain</type>
            <size>17887</size>
            <attacher name="Julien Chaffraix">jchaffraix</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTA3OTUyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMzcyNTA4NThiODlkOWUz
MzYyODI5NTY4MjAxYWYzMzVhOWVmN2RkYi4uMGZmZDY3MTgzMWM5NWJkYTQ3M2Y4N2NhMjliY2U0
MmQ1YWRjZTQyYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU4IEBACisyMDEyLTAyLTE3ICBKdWxp
ZW4gQ2hhZmZyYWl4ICA8amNoYWZmcmFpeEB3ZWJraXQub3JnPgorCisgICAgICAgIE1vdmUgUmVu
ZGVyTGF5ZXI6OnNjcm9sbGVkQ29udGVudE9mZnNldCBjYWxscyB0byBhIGNvbW1vbiBmdW5jdGlv
bgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzY5NzEK
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBSZWZhY3Rv
cmluZyB3aXRob3V0IGFueSBjaGFuZ2UgaW4gYmVoYXZpb3IuCisKKyAgICAgICAgVGhpcyBjaGFu
Z2UgYWRkcyBhIFJlbmRlckJveDo6c2Nyb2xsZWRDb250ZW50T2Zmc2V0IGZ1bmN0aW9uIHRvIGhh
bmRsZSBhbGwKKyAgICAgICAgdGhlIGNhbGxzIHRoYXQgZ29lcyB0aHJvdWdoIHRoZSBsYXllcigp
LiBUaGlzIGluZGlyZWN0aW9uIHdpbGwgZW5hYmxlIHVzIHRvCisgICAgICAgIGFkZCBsYXllcigp
IGNoZWNrcyB3aXRob3V0IHBhdGNoaW5nIGEgbG90IG9mIGNhbGwgc2l0ZXMgYXMgcGFydCBvZiBi
dWcgNzU1NjguCisKKyAgICAgICAgV2UgYWxzbyBtb3ZlZCBkb3duIHRoZSBjb25jZXB0IG9mIHNj
cm9sbCBvZmZzZXQgZG93biB0byBSZW5kZXJCb3ggd2hlcmUgaXQgYmVsb25ncyEKKworICAgICAg
ICAqIHJlbmRlcmluZy9SZW5kZXJMYXllci5oOgorICAgICAgICAoUmVuZGVyTGF5ZXIpOgorICAg
ICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXI6OnNjcm9sbGVkQ29udGVudE9mZnNldCk6CisgICAg
ICAgIE1vdmVkIHNjcm9sbGVkQ29udGVudCB0byB0aGUgcHJpdmF0ZSBzZWN0aW9uIG9mIHRoZSBj
bGFzcyB0byBwcmV2ZW50IG1pc3VzZS4KKworICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJCb3gu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyQm94OjpzY3JvbGxlZENvbnRlbnRPZmZzZXQp
OgorICAgICAgICBOZXcgZnVuY3Rpb24gdG8gYWRkIGFuIGluZGlyZWN0aW9uIHdpdGggUmVuZGVy
TGF5ZXIuCisKKyAgICAgICAgKiBlZGl0aW5nL3Zpc2libGVfdW5pdHMuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6YWJzb2x1dGVMaW5lRGlyZWN0aW9uUG9pbnRUb0xvY2FsUG9pbnRJbkJsb2NrKToK
KyAgICAgICAgKiByZW5kZXJpbmcvTGF5b3V0U3RhdGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
TGF5b3V0U3RhdGU6OkxheW91dFN0YXRlKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyQmxv
Y2suY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyQmxvY2s6OmxheW91dEJsb2NrKToKKyAg
ICAgICAgKFdlYkNvcmU6OlJlbmRlckJsb2NrOjpwYWludE9iamVjdCk6CisgICAgICAgIChXZWJD
b3JlOjpSZW5kZXJCbG9jazo6c2VsZWN0aW9uR2FwUmVjdHNGb3JSZXBhaW50KToKKyAgICAgICAg
KFdlYkNvcmU6OlJlbmRlckJsb2NrOjpwYWludFNlbGVjdGlvbik6CisgICAgICAgIChXZWJDb3Jl
OjpSZW5kZXJCbG9jazo6bm9kZUF0UG9pbnQpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyQmxv
Y2s6Om9mZnNldEZvckNvbnRlbnRzKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyQm94LmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckJveDo6b2Zmc2V0RnJvbUNvbnRhaW5lcik6Cisg
ICAgICAgIChXZWJDb3JlOjpSZW5kZXJCb3g6OmNvbXB1dGVSZWN0Rm9yUmVwYWludCk6CisgICAg
ICAgICogcmVuZGVyaW5nL1JlbmRlckJveC5oOgorICAgICAgICAoUmVuZGVyQm94KToKKyAgICAg
ICAgKiByZW5kZXJpbmcvUmVuZGVyQm94TW9kZWxPYmplY3QuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6UmVuZGVyQm94TW9kZWxPYmplY3Q6OnBhaW50RmlsbExheWVyRXh0ZW5kZWQpOgorICAgICAg
ICAqIHJlbmRlcmluZy9SZW5kZXJJbmxpbmUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVy
SW5saW5lOjpjbGlwcGVkT3ZlcmZsb3dSZWN0Rm9yUmVwYWludCk6CisgICAgICAgIChXZWJDb3Jl
OjpSZW5kZXJJbmxpbmU6OmNvbXB1dGVSZWN0Rm9yUmVwYWludCk6CisgICAgICAgIChXZWJDb3Jl
OjpSZW5kZXJJbmxpbmU6Om9mZnNldEZyb21Db250YWluZXIpOgorICAgICAgICAqIHJlbmRlcmlu
Zy9SZW5kZXJPYmplY3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyT2JqZWN0Ojpjb21w
dXRlUmVjdEZvclJlcGFpbnQpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyT2JqZWN0OjptYXBM
b2NhbFRvQ29udGFpbmVyKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlck9iamVjdDo6bWFwQWJz
b2x1dGVUb0xvY2FsUG9pbnQpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyT2JqZWN0OjpvZmZz
ZXRGcm9tQ29udGFpbmVyKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyVGV4dENvbnRyb2xT
aW5nbGVMaW5lLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRleHRDb250cm9sSW5uZXJC
bG9jazo6cG9zaXRpb25Gb3JQb2ludCk6CisgICAgICAgIFBhdGNoZWQgYWxsIHRob3NlIGNhbGwg
c2l0ZXMgdG8gdXNlIHRoZSBuZXcgZnVuY3Rpb24uCisKIDIwMTItMDItMTYgIFRlcnJ5IEFuZGVy
c29uICA8dGRhbmRlcnNvbkBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgV2ViS2l0IGRvZXMgbm90
IHN1cHBvcnQgRE9NIDMgRXZlbnRzIEZvY3VzRXZlbnQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2VkaXRpbmcvdmlzaWJsZV91bml0cy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL3Zp
c2libGVfdW5pdHMuY3BwCmluZGV4IGEwNzhlMThlM2Y2MjhhMjk2MGQ5NmNkNDRjYjljYTE2YTBi
ZWY1YTMuLmRiODkyNTk0NmFjOGM0ODNhMDYwNzJkZjQ0ZTA3NDAzNjgxOTUyZWYgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvdmlzaWJsZV91bml0cy5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvZWRpdGluZy92aXNpYmxlX3VuaXRzLmNwcApAQCAtNTQ1LDcgKzU0NSw3IEBAIHN0
YXRpYyBpbmxpbmUgSW50UG9pbnQgYWJzb2x1dGVMaW5lRGlyZWN0aW9uUG9pbnRUb0xvY2FsUG9p
bnRJbkJsb2NrKFJvb3RJbmxpbmVCCiAgICAgUmVuZGVyQmxvY2sqIGNvbnRhaW5pbmdCbG9jayA9
IHJvb3QtPmJsb2NrKCk7CiAgICAgRmxvYXRQb2ludCBhYnNvbHV0ZUJsb2NrUG9pbnQgPSBjb250
YWluaW5nQmxvY2stPmxvY2FsVG9BYnNvbHV0ZShGbG9hdFBvaW50KCkpOwogICAgIGlmIChjb250
YWluaW5nQmxvY2stPmhhc092ZXJmbG93Q2xpcCgpKQotICAgICAgICBhYnNvbHV0ZUJsb2NrUG9p
bnQgLT0gY29udGFpbmluZ0Jsb2NrLT5sYXllcigpLT5zY3JvbGxlZENvbnRlbnRPZmZzZXQoKTsK
KyAgICAgICAgYWJzb2x1dGVCbG9ja1BvaW50IC09IGNvbnRhaW5pbmdCbG9jay0+c2Nyb2xsZWRD
b250ZW50T2Zmc2V0KCk7CiAKICAgICBpZiAocm9vdC0+YmxvY2soKS0+aXNIb3Jpem9udGFsV3Jp
dGluZ01vZGUoKSkKICAgICAgICAgcmV0dXJuIEludFBvaW50KGxpbmVEaXJlY3Rpb25Qb2ludCAt
IGFic29sdXRlQmxvY2tQb2ludC54KCksIHJvb3QtPmJsb2NrRGlyZWN0aW9uUG9pbnRJbkxpbmUo
KSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvTGF5b3V0U3RhdGUuY3Bw
IGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0xheW91dFN0YXRlLmNwcAppbmRleCBjOTAxOGM1
OTllMjBhMDkxN2I1YTQ5OGIzOWJhYmZhNTg1MzExM2QyLi5lODlkY2M1ZGJmNDhiOTdjMDVjYWQy
NTM0ZjA4MDJjNzUxMjNjYWI5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
TGF5b3V0U3RhdGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9MYXlvdXRTdGF0
ZS5jcHAKQEAgLTc5LDcgKzc5LDcgQEAgTGF5b3V0U3RhdGU6OkxheW91dFN0YXRlKExheW91dFN0
YXRlKiBwcmV2LCBSZW5kZXJCb3gqIHJlbmRlcmVyLCBjb25zdCBMYXlvdXRTaXoKICAgICAgICAg
ICAgIG1fY2xpcHBlZCA9IHRydWU7CiAgICAgICAgIH0KIAotICAgICAgICBtX3BhaW50T2Zmc2V0
IC09IGxheWVyLT5zY3JvbGxlZENvbnRlbnRPZmZzZXQoKTsKKyAgICAgICAgbV9wYWludE9mZnNl
dCAtPSByZW5kZXJlci0+c2Nyb2xsZWRDb250ZW50T2Zmc2V0KCk7CiAgICAgfQogCiAgICAgLy8g
SWYgd2UgZXN0YWJsaXNoIGEgbmV3IHBhZ2UgaGVpZ2h0LCB0aGVuIGNhY2hlIHRoZSBvZmZzZXQg
dG8gdGhlIHRvcCBvZiB0aGUgZmlyc3QgcGFnZS4KQEAgLTE1NiwxMCArMTU2LDExIEBAIExheW91
dFN0YXRlOjpMYXlvdXRTdGF0ZShSZW5kZXJPYmplY3QqIHJvb3QpCiAgICAgbV9wYWludE9mZnNl
dCA9IExheW91dFNpemUoYWJzQ29udGVudFBvaW50LngoKSwgYWJzQ29udGVudFBvaW50LnkoKSk7
CiAKICAgICBpZiAoY29udGFpbmVyLT5oYXNPdmVyZmxvd0NsaXAoKSkgewotICAgICAgICBSZW5k
ZXJMYXllciogbGF5ZXIgPSB0b1JlbmRlckJveE1vZGVsT2JqZWN0KGNvbnRhaW5lciktPmxheWVy
KCk7CisgICAgICAgIFJlbmRlckJveCogY29udGFpbmVyQm94ID0gdG9SZW5kZXJCb3goY29udGFp
bmVyKTsKKyAgICAgICAgUmVuZGVyTGF5ZXIqIGxheWVyID0gY29udGFpbmVyQm94LT5sYXllcigp
OwogICAgICAgICBtX2NsaXBwZWQgPSB0cnVlOwogICAgICAgICBtX2NsaXBSZWN0ID0gTGF5b3V0
UmVjdCh0b1BvaW50KG1fcGFpbnRPZmZzZXQpLCBsYXllci0+c2l6ZSgpKTsKLSAgICAgICAgbV9w
YWludE9mZnNldCAtPSBsYXllci0+c2Nyb2xsZWRDb250ZW50T2Zmc2V0KCk7CisgICAgICAgIG1f
cGFpbnRPZmZzZXQgLT0gY29udGFpbmVyQm94LT5zY3JvbGxlZENvbnRlbnRPZmZzZXQoKTsKICAg
ICB9CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9j
ay5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2suY3BwCmluZGV4IGNk
YjUxMDA2NmY5NTFhZjJiYmRkNDRmMmIzZDQ1M2M1ODYzMDYyZWEuLjA3YTBmMTUxMmUwODRkYWM4
ODA4MmY5MmRiOTY1NjVjODk4M2Y3NjEgMTAwNzU1Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJCbG9jay5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
ckJsb2NrLmNwcApAQCAtMTQzNiw3ICsxNDM2LDcgQEAgdm9pZCBSZW5kZXJCbG9jazo6bGF5b3V0
QmxvY2soYm9vbCByZWxheW91dENoaWxkcmVuLCBMYXlvdXRVbml0IHBhZ2VMb2dpY2FsSGVpZ2gK
ICAgICAgICAgCiAgICAgICAgIGlmIChoYXNPdmVyZmxvd0NsaXAoKSkgewogICAgICAgICAgICAg
Ly8gQWRqdXN0IHJlcGFpbnQgcmVjdCBmb3Igc2Nyb2xsIG9mZnNldAotICAgICAgICAgICAgcmVw
YWludFJlY3QubW92ZSgtbGF5ZXIoKS0+c2Nyb2xsZWRDb250ZW50T2Zmc2V0KCkpOworICAgICAg
ICAgICAgcmVwYWludFJlY3QubW92ZSgtc2Nyb2xsZWRDb250ZW50T2Zmc2V0KCkpOwogCiAgICAg
ICAgICAgICAvLyBEb24ndCBhbGxvdyB0aGlzIHJlY3QgdG8gc3BpbGwgb3V0IG9mIG91ciBvdmVy
ZmxvdyBib3guCiAgICAgICAgICAgICByZXBhaW50UmVjdC5pbnRlcnNlY3QoTGF5b3V0UmVjdChM
YXlvdXRQb2ludCgpLCBzaXplKCkpKTsKQEAgLTI3MDAsNyArMjcwMCw3IEBAIHZvaWQgUmVuZGVy
QmxvY2s6OnBhaW50T2JqZWN0KFBhaW50SW5mbyYgcGFpbnRJbmZvLCBjb25zdCBMYXlvdXRQb2lu
dCYgcGFpbnRPZmZzCiAgICAgLy8gQWRqdXN0IG91ciBwYWludGluZyBwb3NpdGlvbiBpZiB3ZSdy
ZSBpbnNpZGUgYSBzY3JvbGxlZCBsYXllciAoZS5nLiwgYW4gb3ZlcmZsb3c6YXV0byBkaXYpLgog
ICAgIExheW91dFBvaW50IHNjcm9sbGVkT2Zmc2V0ID0gcGFpbnRPZmZzZXQ7CiAgICAgaWYgKGhh
c092ZXJmbG93Q2xpcCgpKQotICAgICAgICBzY3JvbGxlZE9mZnNldC5tb3ZlKC1sYXllcigpLT5z
Y3JvbGxlZENvbnRlbnRPZmZzZXQoKSk7CisgICAgICAgIHNjcm9sbGVkT2Zmc2V0Lm1vdmUoLXNj
cm9sbGVkQ29udGVudE9mZnNldCgpKTsKIAogICAgIC8vIDIuIHBhaW50IGNvbnRlbnRzCiAgICAg
aWYgKHBhaW50UGhhc2UgIT0gUGFpbnRQaGFzZVNlbGZPdXRsaW5lKSB7CkBAIC0yOTQ4LDcgKzI5
NDgsNyBAQCBHYXBSZWN0cyBSZW5kZXJCbG9jazo6c2VsZWN0aW9uR2FwUmVjdHNGb3JSZXBhaW50
KFJlbmRlckJveE1vZGVsT2JqZWN0KiByZXBhaW50QwogICAgIExheW91dFBvaW50IG9mZnNldEZy
b21SZXBhaW50Q29udGFpbmVyID0gcm91bmRlZExheW91dFBvaW50KHRyYW5zZm9ybVN0YXRlLm1h
cHBlZFBvaW50KCkpOwogCiAgICAgaWYgKGhhc092ZXJmbG93Q2xpcCgpKQotICAgICAgICBvZmZz
ZXRGcm9tUmVwYWludENvbnRhaW5lciAtPSBsYXllcigpLT5zY3JvbGxlZENvbnRlbnRPZmZzZXQo
KTsKKyAgICAgICAgb2Zmc2V0RnJvbVJlcGFpbnRDb250YWluZXIgLT0gc2Nyb2xsZWRDb250ZW50
T2Zmc2V0KCk7CiAKICAgICBMYXlvdXRVbml0IGxhc3RUb3AgPSAwOwogICAgIExheW91dFVuaXQg
bGFzdExlZnQgPSBsb2dpY2FsTGVmdFNlbGVjdGlvbk9mZnNldCh0aGlzLCBsYXN0VG9wKTsKQEAg
LTI5NzMsNyArMjk3Myw4IEBAIHZvaWQgUmVuZGVyQmxvY2s6OnBhaW50U2VsZWN0aW9uKFBhaW50
SW5mbyYgcGFpbnRJbmZvLCBjb25zdCBMYXlvdXRQb2ludCYgcGFpbnRPCiAgICAgICAgICAgICAg
ICAgICAgIExheW91dFJlY3QgbG9jYWxCb3VuZHMoZ2FwUmVjdHNCb3VuZHMpOwogICAgICAgICAg
ICAgICAgICAgICBmbGlwRm9yV3JpdGluZ01vZGUobG9jYWxCb3VuZHMpOwogICAgICAgICAgICAg
ICAgICAgICBnYXBSZWN0c0JvdW5kcyA9IGxvY2FsVG9Db250YWluZXJRdWFkKEZsb2F0UmVjdChs
b2NhbEJvdW5kcyksIGxheWVyLT5yZW5kZXJlcigpKS5lbmNsb3NpbmdCb3VuZGluZ0JveCgpOwot
ICAgICAgICAgICAgICAgICAgICBnYXBSZWN0c0JvdW5kcy5tb3ZlKGxheWVyLT5zY3JvbGxlZENv
bnRlbnRPZmZzZXQoKSk7CisgICAgICAgICAgICAgICAgICAgIGlmIChsYXllci0+cmVuZGVyZXIo
KS0+aGFzT3ZlcmZsb3dDbGlwKCkpCisgICAgICAgICAgICAgICAgICAgICAgICBnYXBSZWN0c0Jv
dW5kcy5tb3ZlKGxheWVyLT5yZW5kZXJCb3goKS0+c2Nyb2xsZWRDb250ZW50T2Zmc2V0KCkpOwog
ICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICBsYXllci0+YWRkQmxvY2tTZWxlY3Rp
b25HYXBzQm91bmRzKGdhcFJlY3RzQm91bmRzKTsKICAgICAgICAgICAgIH0KQEAgLTQyNjUsOSAr
NDI2Niw4IEBAIGJvb2wgUmVuZGVyQmxvY2s6Om5vZGVBdFBvaW50KGNvbnN0IEhpdFRlc3RSZXF1
ZXN0JiByZXF1ZXN0LCBIaXRUZXN0UmVzdWx0JiByZXN1CiAgICAgaWYgKGNoZWNrQ2hpbGRyZW4p
IHsKICAgICAgICAgLy8gSGl0IHRlc3QgZGVzY2VuZGFudHMgZmlyc3QuCiAgICAgICAgIExheW91
dFNpemUgc2Nyb2xsZWRPZmZzZXQobG9jYWxPZmZzZXQpOwotICAgICAgICBpZiAoaGFzT3ZlcmZs
b3dDbGlwKCkpIHsKLSAgICAgICAgICAgIHNjcm9sbGVkT2Zmc2V0IC09IGxheWVyKCktPnNjcm9s
bGVkQ29udGVudE9mZnNldCgpOwotICAgICAgICB9CisgICAgICAgIGlmIChoYXNPdmVyZmxvd0Ns
aXAoKSkKKyAgICAgICAgICAgIHNjcm9sbGVkT2Zmc2V0IC09IHNjcm9sbGVkQ29udGVudE9mZnNl
dCgpOwogCiAgICAgICAgIC8vIEhpdCB0ZXN0IGNvbnRlbnRzIGlmIHdlIGRvbid0IGhhdmUgY29s
dW1ucy4KICAgICAgICAgaWYgKCFoYXNDb2x1bW5zKCkpIHsKQEAgLTQ2MTQsNyArNDYxNCw3IEBA
IFZpc2libGVQb3NpdGlvbiBSZW5kZXJCbG9jazo6cG9zaXRpb25Gb3JQb2ludChjb25zdCBMYXlv
dXRQb2ludCYgcG9pbnQpCiB2b2lkIFJlbmRlckJsb2NrOjpvZmZzZXRGb3JDb250ZW50cyhMYXlv
dXRQb2ludCYgb2Zmc2V0KSBjb25zdAogewogICAgIGlmIChoYXNPdmVyZmxvd0NsaXAoKSkKLSAg
ICAgICAgb2Zmc2V0ICs9IGxheWVyKCktPnNjcm9sbGVkQ29udGVudE9mZnNldCgpOworICAgICAg
ICBvZmZzZXQgKz0gc2Nyb2xsZWRDb250ZW50T2Zmc2V0KCk7CiAKICAgICBpZiAoaGFzQ29sdW1u
cygpKQogICAgICAgICBhZGp1c3RQb2ludFRvQ29sdW1uQ29udGVudHMob2Zmc2V0KTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3guY3BwIGIvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveC5jcHAKaW5kZXggNmRjZjcyNjk3NTYyZDYxMWQ0OGQ1
NzljOWNlZjgxNGVkOGZmMDJhNS4uMWU5MGZjNmE2NDE5Y2E2M2M4NjQxYWQzZmJkNDIzNjUxNmM3
NDczOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveC5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveC5jcHAKQEAgLTc0Niw2ICs3
NDYsMTMgQEAgYm9vbCBSZW5kZXJCb3g6Om5lZWRzUHJlZmVycmVkV2lkdGhzUmVjYWxjdWxhdGlv
bigpIGNvbnN0CiAgICAgcmV0dXJuIHN0eWxlKCktPnBhZGRpbmdTdGFydCgpLmlzUGVyY2VudCgp
IHx8IHN0eWxlKCktPnBhZGRpbmdFbmQoKS5pc1BlcmNlbnQoKTsKIH0KIAorSW50U2l6ZSBSZW5k
ZXJCb3g6OnNjcm9sbGVkQ29udGVudE9mZnNldCgpIGNvbnN0Cit7CisgICAgQVNTRVJUKGhhc092
ZXJmbG93Q2xpcCgpKTsKKyAgICBBU1NFUlQoaGFzTGF5ZXIoKSk7CisgICAgcmV0dXJuIGxheWVy
KCktPnNjcm9sbGVkQ29udGVudE9mZnNldCgpOworfQorCiBMYXlvdXRVbml0IFJlbmRlckJveDo6
bWluUHJlZmVycmVkTG9naWNhbFdpZHRoKCkgY29uc3QKIHsKICAgICBpZiAocHJlZmVycmVkTG9n
aWNhbFdpZHRoc0RpcnR5KCkpCkBAIC0xMzk4LDcgKzE0MDUsNyBAQCBMYXlvdXRTaXplIFJlbmRl
ckJveDo6b2Zmc2V0RnJvbUNvbnRhaW5lcihSZW5kZXJPYmplY3QqIG8sIGNvbnN0IExheW91dFBv
aW50JiBwbwogICAgIH0KIAogICAgIGlmIChvLT5oYXNPdmVyZmxvd0NsaXAoKSkKLSAgICAgICAg
b2Zmc2V0IC09IHRvUmVuZGVyQm94KG8pLT5sYXllcigpLT5zY3JvbGxlZENvbnRlbnRPZmZzZXQo
KTsKKyAgICAgICAgb2Zmc2V0IC09IHRvUmVuZGVyQm94KG8pLT5zY3JvbGxlZENvbnRlbnRPZmZz
ZXQoKTsKIAogICAgIGlmIChzdHlsZSgpLT5wb3NpdGlvbigpID09IEFic29sdXRlUG9zaXRpb24g
JiYgby0+aXNSZWxQb3NpdGlvbmVkKCkgJiYgby0+aXNSZW5kZXJJbmxpbmUoKSkKICAgICAgICAg
b2Zmc2V0ICs9IHRvUmVuZGVySW5saW5lKG8pLT5yZWxhdGl2ZVBvc2l0aW9uZWRJbmxpbmVPZmZz
ZXQodGhpcyk7CkBAIC0xNTk3LDcgKzE2MDQsNyBAQCB2b2lkIFJlbmRlckJveDo6Y29tcHV0ZVJl
Y3RGb3JSZXBhaW50KFJlbmRlckJveE1vZGVsT2JqZWN0KiByZXBhaW50Q29udGFpbmVyLCBMYQog
ICAgICAgICAvLyBvLT5oZWlnaHQoKSBpcyBpbmFjY3VyYXRlIGlmIHdlJ3JlIGluIHRoZSBtaWRk
bGUgb2YgYSBsYXlvdXQgb2YgfG98LCBzbyB1c2UgdGhlCiAgICAgICAgIC8vIGxheWVyJ3Mgc2l6
ZSBpbnN0ZWFkLiAgRXZlbiBpZiB0aGUgbGF5ZXIncyBzaXplIGlzIHdyb25nLCB0aGUgbGF5ZXIg
aXRzZWxmIHdpbGwgcmVwYWludAogICAgICAgICAvLyBhbnl3YXkgaWYgaXRzIHNpemUgZG9lcyBj
aGFuZ2UuCi0gICAgICAgIHRvcExlZnQgLT0gY29udGFpbmVyQm94LT5sYXllcigpLT5zY3JvbGxl
ZENvbnRlbnRPZmZzZXQoKTsgLy8gRm9yIG92ZXJmbG93OmF1dG8vc2Nyb2xsL2hpZGRlbi4KKyAg
ICAgICAgdG9wTGVmdCAtPSBjb250YWluZXJCb3gtPnNjcm9sbGVkQ29udGVudE9mZnNldCgpOyAv
LyBGb3Igb3ZlcmZsb3c6YXV0by9zY3JvbGwvaGlkZGVuLgogCiAgICAgICAgIExheW91dFJlY3Qg
cmVwYWludFJlY3QodG9wTGVmdCwgcmVjdC5zaXplKCkpOwogICAgICAgICBMYXlvdXRSZWN0IGJv
eFJlY3QoTGF5b3V0UG9pbnQoKSwgY29udGFpbmVyQm94LT5sYXllcigpLT5zaXplKCkpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveC5oIGIvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveC5oCmluZGV4IGJiZTAxNmFkNDg1ZTYwYjczMzYyZWU1
NzU1ZGIyOWU5NTM0Y2NmZTIuLmIwMThhODZiN2M4YjUzNjNmMWM5ZjFmMWNjMjlkZTViN2E4NTk0
MjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3guaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94LmgKQEAgLTQ0NSw2ICs0NDUsOCBA
QCBwdWJsaWM6CiAgICAgdmlydHVhbCBib29sIG5lZWRzUHJlZmVycmVkV2lkdGhzUmVjYWxjdWxh
dGlvbigpIGNvbnN0OwogICAgIHZpcnR1YWwgdm9pZCBjb21wdXRlSW50cmluc2ljUmF0aW9JbmZv
cm1hdGlvbihGbG9hdFNpemUmIC8qIGludHJpbnNpY1NpemUgKi8sIGRvdWJsZSYgLyogaW50cmlu
c2ljUmF0aW8gKi8sIGJvb2wmIC8qIGlzUGVyY2VudGFnZUludHJpbnNpY1NpemUgKi8pIGNvbnN0
IHsgfQogCisgICAgSW50U2l6ZSBzY3JvbGxlZENvbnRlbnRPZmZzZXQoKSBjb25zdDsKKwogcHJv
dGVjdGVkOgogICAgIHZpcnR1YWwgdm9pZCB3aWxsQmVEZXN0cm95ZWQoKTsKIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveE1vZGVsT2JqZWN0LmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3hNb2RlbE9iamVjdC5jcHAKaW5kZXggNzkx
YWU2Yzg1Mjc2YWI1NWFjODQyZjIxOWZjMjkxOGJkN2UwMzEwMS4uMWQwM2NlNWRlNWNkOTViNTk2
MzY1NDRhZDQ2NzI0YjQxOTg4YTA2MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlckJveE1vZGVsT2JqZWN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyQm94TW9kZWxPYmplY3QuY3BwCkBAIC03MTIsMTAgKzcxMiwxMSBAQCB2b2lkIFJl
bmRlckJveE1vZGVsT2JqZWN0OjpwYWludEZpbGxMYXllckV4dGVuZGVkKGNvbnN0IFBhaW50SW5m
byYgcGFpbnRJbmZvLCBjbwogICAgIExheW91dFJlY3Qgc2Nyb2xsZWRQYWludFJlY3QgPSByZWN0
OwogICAgIGlmIChjbGlwcGVkV2l0aExvY2FsU2Nyb2xsaW5nKSB7CiAgICAgICAgIC8vIENsaXAg
dG8gdGhlIG92ZXJmbG93IGFyZWEuCi0gICAgICAgIGNvbnRleHQtPmNsaXAodG9SZW5kZXJCb3go
dGhpcyktPm92ZXJmbG93Q2xpcFJlY3QocmVjdC5sb2NhdGlvbigpLCBwYWludEluZm8ucmVuZGVy
UmVnaW9uKSk7CisgICAgICAgIFJlbmRlckJveCogdGhpc0JveCA9IHRvUmVuZGVyQm94KHRoaXMp
OworICAgICAgICBjb250ZXh0LT5jbGlwKHRoaXNCb3gtPm92ZXJmbG93Q2xpcFJlY3QocmVjdC5s
b2NhdGlvbigpLCBwYWludEluZm8ucmVuZGVyUmVnaW9uKSk7CiAgICAgICAgIAogICAgICAgICAv
LyBBZGp1c3QgdGhlIHBhaW50IHJlY3QgdG8gcmVmbGVjdCBhIHNjcm9sbGVkIGNvbnRlbnQgYm94
IHdpdGggYm9yZGVycyBhdCB0aGUgZW5kcy4KLSAgICAgICAgTGF5b3V0U2l6ZSBvZmZzZXQgPSBs
YXllcigpLT5zY3JvbGxlZENvbnRlbnRPZmZzZXQoKTsKKyAgICAgICAgSW50U2l6ZSBvZmZzZXQg
PSB0aGlzQm94LT5zY3JvbGxlZENvbnRlbnRPZmZzZXQoKTsKICAgICAgICAgc2Nyb2xsZWRQYWlu
dFJlY3QubW92ZSgtb2Zmc2V0KTsKICAgICAgICAgc2Nyb2xsZWRQYWludFJlY3Quc2V0V2lkdGgo
YkxlZnQgKyBsYXllcigpLT5zY3JvbGxXaWR0aCgpICsgYlJpZ2h0KTsKICAgICAgICAgc2Nyb2xs
ZWRQYWludFJlY3Quc2V0SGVpZ2h0KGJvcmRlclRvcCgpICsgbGF5ZXIoKS0+c2Nyb2xsSGVpZ2h0
KCkgKyBib3JkZXJCb3R0b20oKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVySW5saW5lLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJJbmxp
bmUuY3BwCmluZGV4IDExNzVmMzFhOTBhOWY3YjNkNjNhNzgwODdkMmIyMzQ0Y2M5YWM0ZjUuLmJk
MDZjZTdjY2RkN2QwNDgxMjgyMGViODc5ZDNmYzY3OWY4YzRhMWYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJJbmxpbmUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJJbmxpbmUuY3BwCkBAIC05ODgsNyArOTg4LDcgQEAgTGF5b3V0UmVj
dCBSZW5kZXJJbmxpbmU6OmNsaXBwZWRPdmVyZmxvd1JlY3RGb3JSZXBhaW50KFJlbmRlckJveE1v
ZGVsT2JqZWN0KiByZXAKICAgICAgICAgLy8gbGF5ZXIncyBzaXplIGluc3RlYWQuICBFdmVuIGlm
IHRoZSBsYXllcidzIHNpemUgaXMgd3JvbmcsIHRoZSBsYXllciBpdHNlbGYgd2lsbCByZXBhaW50
CiAgICAgICAgIC8vIGFueXdheSBpZiBpdHMgc2l6ZSBkb2VzIGNoYW5nZS4KICAgICAgICAgTGF5
b3V0UmVjdCByZXBhaW50UmVjdChyKTsKLSAgICAgICAgcmVwYWludFJlY3QubW92ZSgtY2ItPmxh
eWVyKCktPnNjcm9sbGVkQ29udGVudE9mZnNldCgpKTsgLy8gRm9yIG92ZXJmbG93OmF1dG8vc2Ny
b2xsL2hpZGRlbi4KKyAgICAgICAgcmVwYWludFJlY3QubW92ZSgtY2ItPnNjcm9sbGVkQ29udGVu
dE9mZnNldCgpKTsgLy8gRm9yIG92ZXJmbG93OmF1dG8vc2Nyb2xsL2hpZGRlbi4KIAogICAgICAg
ICBMYXlvdXRSZWN0IGJveFJlY3QoTGF5b3V0UG9pbnQoKSwgY2ItPmxheWVyKCktPnNpemUoKSk7
CiAgICAgICAgIHIgPSBpbnRlcnNlY3Rpb24ocmVwYWludFJlY3QsIGJveFJlY3QpOwpAQCAtMTA4
OSw3ICsxMDg5LDcgQEAgdm9pZCBSZW5kZXJJbmxpbmU6OmNvbXB1dGVSZWN0Rm9yUmVwYWludChS
ZW5kZXJCb3hNb2RlbE9iamVjdCogcmVwYWludENvbnRhaW5lciwKICAgICAgICAgLy8gby0+aGVp
Z2h0KCkgaXMgaW5hY2N1cmF0ZSBpZiB3ZSdyZSBpbiB0aGUgbWlkZGxlIG9mIGEgbGF5b3V0IG9m
IHxvfCwgc28gdXNlIHRoZQogICAgICAgICAvLyBsYXllcidzIHNpemUgaW5zdGVhZC4gIEV2ZW4g
aWYgdGhlIGxheWVyJ3Mgc2l6ZSBpcyB3cm9uZywgdGhlIGxheWVyIGl0c2VsZiB3aWxsIHJlcGFp
bnQKICAgICAgICAgLy8gYW55d2F5IGlmIGl0cyBzaXplIGRvZXMgY2hhbmdlLgotICAgICAgICB0
b3BMZWZ0IC09IGNvbnRhaW5lckJveC0+bGF5ZXIoKS0+c2Nyb2xsZWRDb250ZW50T2Zmc2V0KCk7
IC8vIEZvciBvdmVyZmxvdzphdXRvL3Njcm9sbC9oaWRkZW4uCisgICAgICAgIHRvcExlZnQgLT0g
Y29udGFpbmVyQm94LT5zY3JvbGxlZENvbnRlbnRPZmZzZXQoKTsgLy8gRm9yIG92ZXJmbG93OmF1
dG8vc2Nyb2xsL2hpZGRlbi4KIAogICAgICAgICBMYXlvdXRSZWN0IHJlcGFpbnRSZWN0KHRvcExl
ZnQsIHJlY3Quc2l6ZSgpKTsKICAgICAgICAgTGF5b3V0UmVjdCBib3hSZWN0KExheW91dFBvaW50
KCksIGNvbnRhaW5lckJveC0+bGF5ZXIoKS0+c2l6ZSgpKTsKQEAgLTExMjAsNyArMTEyMCw3IEBA
IExheW91dFNpemUgUmVuZGVySW5saW5lOjpvZmZzZXRGcm9tQ29udGFpbmVyKFJlbmRlck9iamVj
dCogY29udGFpbmVyLCBjb25zdCBMYXlvCiAgICAgY29udGFpbmVyLT5hZGp1c3RGb3JDb2x1bW5z
KG9mZnNldCwgcG9pbnQpOwogCiAgICAgaWYgKGNvbnRhaW5lci0+aGFzT3ZlcmZsb3dDbGlwKCkp
Ci0gICAgICAgIG9mZnNldCAtPSB0b1JlbmRlckJveChjb250YWluZXIpLT5sYXllcigpLT5zY3Jv
bGxlZENvbnRlbnRPZmZzZXQoKTsKKyAgICAgICAgb2Zmc2V0IC09IHRvUmVuZGVyQm94KGNvbnRh
aW5lciktPnNjcm9sbGVkQ29udGVudE9mZnNldCgpOwogCiAgICAgcmV0dXJuIG9mZnNldDsKIH0K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5oIGIvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyLmgKaW5kZXggNGQ4YjViYmUyZjI1M2Rm
ZGQ2ZmVlZWYxNzdmZmFhNDBlM2NiODE1OC4uMWEzNjFhZWQyZWZjNTFjODViZGNlNzhjOGUzZDg4
YWE4MDY0ZGY1NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxh
eWVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyLmgKQEAgLTI5
NSw4ICsyOTUsNiBAQCBwdWJsaWM6CiAgICAgLy8gU2Nyb2xsaW5nIG1ldGhvZHMgZm9yIGxheWVy
cyB0aGF0IGNhbiBzY3JvbGwgdGhlaXIgb3ZlcmZsb3cuCiAgICAgdm9pZCBzY3JvbGxCeVJlY3Vy
c2l2ZWx5KExheW91dFVuaXQgeERlbHRhLCBMYXlvdXRVbml0IHlEZWx0YSwgU2Nyb2xsT2Zmc2V0
Q2xhbXBpbmcgPSBTY3JvbGxPZmZzZXRVbmNsYW1wZWQpOwogCi0gICAgSW50U2l6ZSBzY3JvbGxl
ZENvbnRlbnRPZmZzZXQoKSBjb25zdCB7IHJldHVybiBzY3JvbGxPZmZzZXQoKSArIHJvdW5kZWRJ
bnRTaXplKG1fc2Nyb2xsT3ZlcmZsb3cpOyB9Ci0KICAgICBpbnQgc2Nyb2xsWE9mZnNldCgpIGNv
bnN0IHsgcmV0dXJuIG1fc2Nyb2xsT2Zmc2V0LndpZHRoKCkgKyBzY3JvbGxPcmlnaW4oKS54KCk7
IH0KICAgICBpbnQgc2Nyb2xsWU9mZnNldCgpIGNvbnN0IHsgcmV0dXJuIG1fc2Nyb2xsT2Zmc2V0
LmhlaWdodCgpICsgc2Nyb2xsT3JpZ2luKCkueSgpOyB9CiAgICAgSW50U2l6ZSBzY3JvbGxPZmZz
ZXQoKSBjb25zdCB7IHJldHVybiBJbnRTaXplKHNjcm9sbFhPZmZzZXQoKSwgc2Nyb2xsWU9mZnNl
dCgpKTsgfQpAQCAtNTc5LDYgKzU3Nyw5IEBAIHByaXZhdGU6CiAKICAgICBib29sIHNob3VsZFJl
cGFpbnRBZnRlckxheW91dCgpIGNvbnN0OwogCisgICAgZnJpZW5kIExheW91dFNpemUgUmVuZGVy
Qm94OjpzY3JvbGxlZENvbnRlbnRPZmZzZXQoKSBjb25zdDsKKyAgICBJbnRTaXplIHNjcm9sbGVk
Q29udGVudE9mZnNldCgpIGNvbnN0IHsgcmV0dXJuIHNjcm9sbE9mZnNldCgpICsgbV9zY3JvbGxP
dmVyZmxvdzsgfQorCiAgICAgLy8gVGhlIG5vcm1hbCBvcGVyYXRvciBuZXcgaXMgZGlzYWxsb3dl
ZCBvbiBhbGwgcmVuZGVyIG9iamVjdHMuCiAgICAgdm9pZCogb3BlcmF0b3IgbmV3KHNpemVfdCkg
dGhyb3coKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck9i
amVjdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyT2JqZWN0LmNwcAppbmRl
eCA2Y2E3MTkyMzkxMjQyYTI3ZmI2YzA0OTI3ODM1NDkxNGI3NGM0YzYzLi44NjNmMTdiM2UyNzBh
OTY2MGM2OTY5ZjVhNjMyNzNjOGY1NzAzNTk4IDEwMDc1NQotLS0gYS9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyT2JqZWN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyT2JqZWN0LmNwcApAQCAtMTUwMCw3ICsxNTAwLDcgQEAgdm9pZCBSZW5kZXJPYmplY3Q6
OmNvbXB1dGVSZWN0Rm9yUmVwYWludChSZW5kZXJCb3hNb2RlbE9iamVjdCogcmVwYWludENvbnRh
aW5lciwKICAgICAgICAgICAgIFJlbmRlckJveCogYm94UGFyZW50ID0gdG9SZW5kZXJCb3gobyk7
CiAKICAgICAgICAgICAgIExheW91dFJlY3QgcmVwYWludFJlY3QocmVjdCk7Ci0gICAgICAgICAg
ICByZXBhaW50UmVjdC5tb3ZlKC1ib3hQYXJlbnQtPmxheWVyKCktPnNjcm9sbGVkQ29udGVudE9m
ZnNldCgpKTsgLy8gRm9yIG92ZXJmbG93OmF1dG8vc2Nyb2xsL2hpZGRlbi4KKyAgICAgICAgICAg
IHJlcGFpbnRSZWN0Lm1vdmUoLWJveFBhcmVudC0+c2Nyb2xsZWRDb250ZW50T2Zmc2V0KCkpOyAv
LyBGb3Igb3ZlcmZsb3c6YXV0by9zY3JvbGwvaGlkZGVuLgogCiAgICAgICAgICAgICBMYXlvdXRS
ZWN0IGJveFJlY3QoTGF5b3V0UG9pbnQoKSwgYm94UGFyZW50LT5sYXllcigpLT5zaXplKCkpOwog
ICAgICAgICAgICAgcmVjdCA9IGludGVyc2VjdGlvbihyZXBhaW50UmVjdCwgYm94UmVjdCk7CkBA
IC0yMDA2LDcgKzIwMDYsNyBAQCB2b2lkIFJlbmRlck9iamVjdDo6bWFwTG9jYWxUb0NvbnRhaW5l
cihSZW5kZXJCb3hNb2RlbE9iamVjdCogcmVwYWludENvbnRhaW5lciwgYgogICAgICAgICB0cmFu
c2Zvcm1TdGF0ZS5tb3ZlKGNvbHVtbk9mZnNldCk7CiAKICAgICBpZiAoby0+aGFzT3ZlcmZsb3dD
bGlwKCkpCi0gICAgICAgIHRyYW5zZm9ybVN0YXRlLm1vdmUoLXRvUmVuZGVyQm94KG8pLT5sYXll
cigpLT5zY3JvbGxlZENvbnRlbnRPZmZzZXQoKSk7CisgICAgICAgIHRyYW5zZm9ybVN0YXRlLm1v
dmUoLXRvUmVuZGVyQm94KG8pLT5zY3JvbGxlZENvbnRlbnRPZmZzZXQoKSk7CiAKICAgICBvLT5t
YXBMb2NhbFRvQ29udGFpbmVyKHJlcGFpbnRDb250YWluZXIsIGZpeGVkLCB1c2VUcmFuc2Zvcm1z
LCB0cmFuc2Zvcm1TdGF0ZSwgd2FzRml4ZWQpOwogfQpAQCAtMjAxNyw3ICsyMDE3LDcgQEAgdm9p
ZCBSZW5kZXJPYmplY3Q6Om1hcEFic29sdXRlVG9Mb2NhbFBvaW50KGJvb2wgZml4ZWQsIGJvb2wg
dXNlVHJhbnNmb3JtcywgVHJhbnMKICAgICBpZiAobykgewogICAgICAgICBvLT5tYXBBYnNvbHV0
ZVRvTG9jYWxQb2ludChmaXhlZCwgdXNlVHJhbnNmb3JtcywgdHJhbnNmb3JtU3RhdGUpOwogICAg
ICAgICBpZiAoby0+aGFzT3ZlcmZsb3dDbGlwKCkpCi0gICAgICAgICAgICB0cmFuc2Zvcm1TdGF0
ZS5tb3ZlKHRvUmVuZGVyQm94KG8pLT5sYXllcigpLT5zY3JvbGxlZENvbnRlbnRPZmZzZXQoKSk7
CisgICAgICAgICAgICB0cmFuc2Zvcm1TdGF0ZS5tb3ZlKHRvUmVuZGVyQm94KG8pLT5zY3JvbGxl
ZENvbnRlbnRPZmZzZXQoKSk7CiAgICAgfQogfQogCkBAIC0yMDc5LDcgKzIwNzksNyBAQCBMYXlv
dXRTaXplIFJlbmRlck9iamVjdDo6b2Zmc2V0RnJvbUNvbnRhaW5lcihSZW5kZXJPYmplY3QqIG8s
IGNvbnN0IExheW91dFBvaW50JgogICAgIG8tPmFkanVzdEZvckNvbHVtbnMob2Zmc2V0LCBwb2lu
dCk7CiAKICAgICBpZiAoby0+aGFzT3ZlcmZsb3dDbGlwKCkpCi0gICAgICAgIG9mZnNldCAtPSB0
b1JlbmRlckJveChvKS0+bGF5ZXIoKS0+c2Nyb2xsZWRDb250ZW50T2Zmc2V0KCk7CisgICAgICAg
IG9mZnNldCAtPSB0b1JlbmRlckJveChvKS0+c2Nyb2xsZWRDb250ZW50T2Zmc2V0KCk7CiAKICAg
ICByZXR1cm4gb2Zmc2V0OwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlclRleHRDb250cm9sU2luZ2xlTGluZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyVGV4dENvbnRyb2xTaW5nbGVMaW5lLmNwcAppbmRleCA3ODkxYTNmNDNmYmEyM2Vm
MGJlNDNjMjA1ZGZlNzMzZTliZTNiNWI0Li5hNDRlMjg4NmM4NTRhODk5YmZlMmFiMmRmM2I4MGUw
NGE4YmViYWMxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGV4
dENvbnRyb2xTaW5nbGVMaW5lLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyVGV4dENvbnRyb2xTaW5nbGVMaW5lLmNwcApAQCAtNjAsNyArNjAsNyBAQCBWaXNpYmxlUG9z
aXRpb24gUmVuZGVyVGV4dENvbnRyb2xJbm5lckJsb2NrOjpwb3NpdGlvbkZvclBvaW50KGNvbnN0
IExheW91dFBvaW50JgogICAgIGlmIChtX211bHRpTGluZSkgewogICAgICAgICBSZW5kZXJUZXh0
Q29udHJvbCogcmVuZGVyZXIgPSB0b1JlbmRlclRleHRDb250cm9sKG5vZGUoKS0+c2hhZG93QW5j
ZXN0b3JOb2RlKCktPnJlbmRlcmVyKCkpOwogICAgICAgICBpZiAocmVuZGVyZXItPmhhc092ZXJm
bG93Q2xpcCgpKQotICAgICAgICAgICAgY29udGVudHNQb2ludCArPSByZW5kZXJlci0+bGF5ZXIo
KS0+c2Nyb2xsZWRDb250ZW50T2Zmc2V0KCk7CisgICAgICAgICAgICBjb250ZW50c1BvaW50ICs9
IHJlbmRlcmVyLT5zY3JvbGxlZENvbnRlbnRPZmZzZXQoKTsKICAgICB9CiAKICAgICByZXR1cm4g
UmVuZGVyQmxvY2s6OnBvc2l0aW9uRm9yUG9pbnQoY29udGVudHNQb2ludCk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>128003</attachid>
            <date>2012-02-21 11:12:01 -0800</date>
            <delta_ts>2012-02-21 11:20:20 -0800</delta_ts>
            <desc>Fixed small typo (LayoutSize vs IntSize).</desc>
            <filename>bug-76971-20120221111200.patch</filename>
            <type>text/plain</type>
            <size>17884</size>
            <attacher name="Julien Chaffraix">jchaffraix</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTA3OTUyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMzcyNTA4NThiODlkOWUz
MzYyODI5NTY4MjAxYWYzMzVhOWVmN2RkYi4uMGZmZDY3MTgzMWM5NWJkYTQ3M2Y4N2NhMjliY2U0
MmQ1YWRjZTQyYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU4IEBACisyMDEyLTAyLTE3ICBKdWxp
ZW4gQ2hhZmZyYWl4ICA8amNoYWZmcmFpeEB3ZWJraXQub3JnPgorCisgICAgICAgIE1vdmUgUmVu
ZGVyTGF5ZXI6OnNjcm9sbGVkQ29udGVudE9mZnNldCBjYWxscyB0byBhIGNvbW1vbiBmdW5jdGlv
bgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzY5NzEK
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBSZWZhY3Rv
cmluZyB3aXRob3V0IGFueSBjaGFuZ2UgaW4gYmVoYXZpb3IuCisKKyAgICAgICAgVGhpcyBjaGFu
Z2UgYWRkcyBhIFJlbmRlckJveDo6c2Nyb2xsZWRDb250ZW50T2Zmc2V0IGZ1bmN0aW9uIHRvIGhh
bmRsZSBhbGwKKyAgICAgICAgdGhlIGNhbGxzIHRoYXQgZ29lcyB0aHJvdWdoIHRoZSBsYXllcigp
LiBUaGlzIGluZGlyZWN0aW9uIHdpbGwgZW5hYmxlIHVzIHRvCisgICAgICAgIGFkZCBsYXllcigp
IGNoZWNrcyB3aXRob3V0IHBhdGNoaW5nIGEgbG90IG9mIGNhbGwgc2l0ZXMgYXMgcGFydCBvZiBi
dWcgNzU1NjguCisKKyAgICAgICAgV2UgYWxzbyBtb3ZlZCBkb3duIHRoZSBjb25jZXB0IG9mIHNj
cm9sbCBvZmZzZXQgZG93biB0byBSZW5kZXJCb3ggd2hlcmUgaXQgYmVsb25ncyEKKworICAgICAg
ICAqIHJlbmRlcmluZy9SZW5kZXJMYXllci5oOgorICAgICAgICAoUmVuZGVyTGF5ZXIpOgorICAg
ICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXI6OnNjcm9sbGVkQ29udGVudE9mZnNldCk6CisgICAg
ICAgIE1vdmVkIHNjcm9sbGVkQ29udGVudCB0byB0aGUgcHJpdmF0ZSBzZWN0aW9uIG9mIHRoZSBj
bGFzcyB0byBwcmV2ZW50IG1pc3VzZS4KKworICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJCb3gu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyQm94OjpzY3JvbGxlZENvbnRlbnRPZmZzZXQp
OgorICAgICAgICBOZXcgZnVuY3Rpb24gdG8gYWRkIGFuIGluZGlyZWN0aW9uIHdpdGggUmVuZGVy
TGF5ZXIuCisKKyAgICAgICAgKiBlZGl0aW5nL3Zpc2libGVfdW5pdHMuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6YWJzb2x1dGVMaW5lRGlyZWN0aW9uUG9pbnRUb0xvY2FsUG9pbnRJbkJsb2NrKToK
KyAgICAgICAgKiByZW5kZXJpbmcvTGF5b3V0U3RhdGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
TGF5b3V0U3RhdGU6OkxheW91dFN0YXRlKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyQmxv
Y2suY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyQmxvY2s6OmxheW91dEJsb2NrKToKKyAg
ICAgICAgKFdlYkNvcmU6OlJlbmRlckJsb2NrOjpwYWludE9iamVjdCk6CisgICAgICAgIChXZWJD
b3JlOjpSZW5kZXJCbG9jazo6c2VsZWN0aW9uR2FwUmVjdHNGb3JSZXBhaW50KToKKyAgICAgICAg
KFdlYkNvcmU6OlJlbmRlckJsb2NrOjpwYWludFNlbGVjdGlvbik6CisgICAgICAgIChXZWJDb3Jl
OjpSZW5kZXJCbG9jazo6bm9kZUF0UG9pbnQpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyQmxv
Y2s6Om9mZnNldEZvckNvbnRlbnRzKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyQm94LmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckJveDo6b2Zmc2V0RnJvbUNvbnRhaW5lcik6Cisg
ICAgICAgIChXZWJDb3JlOjpSZW5kZXJCb3g6OmNvbXB1dGVSZWN0Rm9yUmVwYWludCk6CisgICAg
ICAgICogcmVuZGVyaW5nL1JlbmRlckJveC5oOgorICAgICAgICAoUmVuZGVyQm94KToKKyAgICAg
ICAgKiByZW5kZXJpbmcvUmVuZGVyQm94TW9kZWxPYmplY3QuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6UmVuZGVyQm94TW9kZWxPYmplY3Q6OnBhaW50RmlsbExheWVyRXh0ZW5kZWQpOgorICAgICAg
ICAqIHJlbmRlcmluZy9SZW5kZXJJbmxpbmUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVy
SW5saW5lOjpjbGlwcGVkT3ZlcmZsb3dSZWN0Rm9yUmVwYWludCk6CisgICAgICAgIChXZWJDb3Jl
OjpSZW5kZXJJbmxpbmU6OmNvbXB1dGVSZWN0Rm9yUmVwYWludCk6CisgICAgICAgIChXZWJDb3Jl
OjpSZW5kZXJJbmxpbmU6Om9mZnNldEZyb21Db250YWluZXIpOgorICAgICAgICAqIHJlbmRlcmlu
Zy9SZW5kZXJPYmplY3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyT2JqZWN0Ojpjb21w
dXRlUmVjdEZvclJlcGFpbnQpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyT2JqZWN0OjptYXBM
b2NhbFRvQ29udGFpbmVyKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlck9iamVjdDo6bWFwQWJz
b2x1dGVUb0xvY2FsUG9pbnQpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyT2JqZWN0OjpvZmZz
ZXRGcm9tQ29udGFpbmVyKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyVGV4dENvbnRyb2xT
aW5nbGVMaW5lLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRleHRDb250cm9sSW5uZXJC
bG9jazo6cG9zaXRpb25Gb3JQb2ludCk6CisgICAgICAgIFBhdGNoZWQgYWxsIHRob3NlIGNhbGwg
c2l0ZXMgdG8gdXNlIHRoZSBuZXcgZnVuY3Rpb24uCisKIDIwMTItMDItMTYgIFRlcnJ5IEFuZGVy
c29uICA8dGRhbmRlcnNvbkBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgV2ViS2l0IGRvZXMgbm90
IHN1cHBvcnQgRE9NIDMgRXZlbnRzIEZvY3VzRXZlbnQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2VkaXRpbmcvdmlzaWJsZV91bml0cy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL3Zp
c2libGVfdW5pdHMuY3BwCmluZGV4IGEwNzhlMThlM2Y2MjhhMjk2MGQ5NmNkNDRjYjljYTE2YTBi
ZWY1YTMuLmRiODkyNTk0NmFjOGM0ODNhMDYwNzJkZjQ0ZTA3NDAzNjgxOTUyZWYgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvdmlzaWJsZV91bml0cy5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvZWRpdGluZy92aXNpYmxlX3VuaXRzLmNwcApAQCAtNTQ1LDcgKzU0NSw3IEBAIHN0
YXRpYyBpbmxpbmUgSW50UG9pbnQgYWJzb2x1dGVMaW5lRGlyZWN0aW9uUG9pbnRUb0xvY2FsUG9p
bnRJbkJsb2NrKFJvb3RJbmxpbmVCCiAgICAgUmVuZGVyQmxvY2sqIGNvbnRhaW5pbmdCbG9jayA9
IHJvb3QtPmJsb2NrKCk7CiAgICAgRmxvYXRQb2ludCBhYnNvbHV0ZUJsb2NrUG9pbnQgPSBjb250
YWluaW5nQmxvY2stPmxvY2FsVG9BYnNvbHV0ZShGbG9hdFBvaW50KCkpOwogICAgIGlmIChjb250
YWluaW5nQmxvY2stPmhhc092ZXJmbG93Q2xpcCgpKQotICAgICAgICBhYnNvbHV0ZUJsb2NrUG9p
bnQgLT0gY29udGFpbmluZ0Jsb2NrLT5sYXllcigpLT5zY3JvbGxlZENvbnRlbnRPZmZzZXQoKTsK
KyAgICAgICAgYWJzb2x1dGVCbG9ja1BvaW50IC09IGNvbnRhaW5pbmdCbG9jay0+c2Nyb2xsZWRD
b250ZW50T2Zmc2V0KCk7CiAKICAgICBpZiAocm9vdC0+YmxvY2soKS0+aXNIb3Jpem9udGFsV3Jp
dGluZ01vZGUoKSkKICAgICAgICAgcmV0dXJuIEludFBvaW50KGxpbmVEaXJlY3Rpb25Qb2ludCAt
IGFic29sdXRlQmxvY2tQb2ludC54KCksIHJvb3QtPmJsb2NrRGlyZWN0aW9uUG9pbnRJbkxpbmUo
KSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvTGF5b3V0U3RhdGUuY3Bw
IGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0xheW91dFN0YXRlLmNwcAppbmRleCBjOTAxOGM1
OTllMjBhMDkxN2I1YTQ5OGIzOWJhYmZhNTg1MzExM2QyLi5lODlkY2M1ZGJmNDhiOTdjMDVjYWQy
NTM0ZjA4MDJjNzUxMjNjYWI5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
TGF5b3V0U3RhdGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9MYXlvdXRTdGF0
ZS5jcHAKQEAgLTc5LDcgKzc5LDcgQEAgTGF5b3V0U3RhdGU6OkxheW91dFN0YXRlKExheW91dFN0
YXRlKiBwcmV2LCBSZW5kZXJCb3gqIHJlbmRlcmVyLCBjb25zdCBMYXlvdXRTaXoKICAgICAgICAg
ICAgIG1fY2xpcHBlZCA9IHRydWU7CiAgICAgICAgIH0KIAotICAgICAgICBtX3BhaW50T2Zmc2V0
IC09IGxheWVyLT5zY3JvbGxlZENvbnRlbnRPZmZzZXQoKTsKKyAgICAgICAgbV9wYWludE9mZnNl
dCAtPSByZW5kZXJlci0+c2Nyb2xsZWRDb250ZW50T2Zmc2V0KCk7CiAgICAgfQogCiAgICAgLy8g
SWYgd2UgZXN0YWJsaXNoIGEgbmV3IHBhZ2UgaGVpZ2h0LCB0aGVuIGNhY2hlIHRoZSBvZmZzZXQg
dG8gdGhlIHRvcCBvZiB0aGUgZmlyc3QgcGFnZS4KQEAgLTE1NiwxMCArMTU2LDExIEBAIExheW91
dFN0YXRlOjpMYXlvdXRTdGF0ZShSZW5kZXJPYmplY3QqIHJvb3QpCiAgICAgbV9wYWludE9mZnNl
dCA9IExheW91dFNpemUoYWJzQ29udGVudFBvaW50LngoKSwgYWJzQ29udGVudFBvaW50LnkoKSk7
CiAKICAgICBpZiAoY29udGFpbmVyLT5oYXNPdmVyZmxvd0NsaXAoKSkgewotICAgICAgICBSZW5k
ZXJMYXllciogbGF5ZXIgPSB0b1JlbmRlckJveE1vZGVsT2JqZWN0KGNvbnRhaW5lciktPmxheWVy
KCk7CisgICAgICAgIFJlbmRlckJveCogY29udGFpbmVyQm94ID0gdG9SZW5kZXJCb3goY29udGFp
bmVyKTsKKyAgICAgICAgUmVuZGVyTGF5ZXIqIGxheWVyID0gY29udGFpbmVyQm94LT5sYXllcigp
OwogICAgICAgICBtX2NsaXBwZWQgPSB0cnVlOwogICAgICAgICBtX2NsaXBSZWN0ID0gTGF5b3V0
UmVjdCh0b1BvaW50KG1fcGFpbnRPZmZzZXQpLCBsYXllci0+c2l6ZSgpKTsKLSAgICAgICAgbV9w
YWludE9mZnNldCAtPSBsYXllci0+c2Nyb2xsZWRDb250ZW50T2Zmc2V0KCk7CisgICAgICAgIG1f
cGFpbnRPZmZzZXQgLT0gY29udGFpbmVyQm94LT5zY3JvbGxlZENvbnRlbnRPZmZzZXQoKTsKICAg
ICB9CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9j
ay5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2suY3BwCmluZGV4IGNk
YjUxMDA2NmY5NTFhZjJiYmRkNDRmMmIzZDQ1M2M1ODYzMDYyZWEuLjA3YTBmMTUxMmUwODRkYWM4
ODA4MmY5MmRiOTY1NjVjODk4M2Y3NjEgMTAwNzU1Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJCbG9jay5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
ckJsb2NrLmNwcApAQCAtMTQzNiw3ICsxNDM2LDcgQEAgdm9pZCBSZW5kZXJCbG9jazo6bGF5b3V0
QmxvY2soYm9vbCByZWxheW91dENoaWxkcmVuLCBMYXlvdXRVbml0IHBhZ2VMb2dpY2FsSGVpZ2gK
ICAgICAgICAgCiAgICAgICAgIGlmIChoYXNPdmVyZmxvd0NsaXAoKSkgewogICAgICAgICAgICAg
Ly8gQWRqdXN0IHJlcGFpbnQgcmVjdCBmb3Igc2Nyb2xsIG9mZnNldAotICAgICAgICAgICAgcmVw
YWludFJlY3QubW92ZSgtbGF5ZXIoKS0+c2Nyb2xsZWRDb250ZW50T2Zmc2V0KCkpOworICAgICAg
ICAgICAgcmVwYWludFJlY3QubW92ZSgtc2Nyb2xsZWRDb250ZW50T2Zmc2V0KCkpOwogCiAgICAg
ICAgICAgICAvLyBEb24ndCBhbGxvdyB0aGlzIHJlY3QgdG8gc3BpbGwgb3V0IG9mIG91ciBvdmVy
ZmxvdyBib3guCiAgICAgICAgICAgICByZXBhaW50UmVjdC5pbnRlcnNlY3QoTGF5b3V0UmVjdChM
YXlvdXRQb2ludCgpLCBzaXplKCkpKTsKQEAgLTI3MDAsNyArMjcwMCw3IEBAIHZvaWQgUmVuZGVy
QmxvY2s6OnBhaW50T2JqZWN0KFBhaW50SW5mbyYgcGFpbnRJbmZvLCBjb25zdCBMYXlvdXRQb2lu
dCYgcGFpbnRPZmZzCiAgICAgLy8gQWRqdXN0IG91ciBwYWludGluZyBwb3NpdGlvbiBpZiB3ZSdy
ZSBpbnNpZGUgYSBzY3JvbGxlZCBsYXllciAoZS5nLiwgYW4gb3ZlcmZsb3c6YXV0byBkaXYpLgog
ICAgIExheW91dFBvaW50IHNjcm9sbGVkT2Zmc2V0ID0gcGFpbnRPZmZzZXQ7CiAgICAgaWYgKGhh
c092ZXJmbG93Q2xpcCgpKQotICAgICAgICBzY3JvbGxlZE9mZnNldC5tb3ZlKC1sYXllcigpLT5z
Y3JvbGxlZENvbnRlbnRPZmZzZXQoKSk7CisgICAgICAgIHNjcm9sbGVkT2Zmc2V0Lm1vdmUoLXNj
cm9sbGVkQ29udGVudE9mZnNldCgpKTsKIAogICAgIC8vIDIuIHBhaW50IGNvbnRlbnRzCiAgICAg
aWYgKHBhaW50UGhhc2UgIT0gUGFpbnRQaGFzZVNlbGZPdXRsaW5lKSB7CkBAIC0yOTQ4LDcgKzI5
NDgsNyBAQCBHYXBSZWN0cyBSZW5kZXJCbG9jazo6c2VsZWN0aW9uR2FwUmVjdHNGb3JSZXBhaW50
KFJlbmRlckJveE1vZGVsT2JqZWN0KiByZXBhaW50QwogICAgIExheW91dFBvaW50IG9mZnNldEZy
b21SZXBhaW50Q29udGFpbmVyID0gcm91bmRlZExheW91dFBvaW50KHRyYW5zZm9ybVN0YXRlLm1h
cHBlZFBvaW50KCkpOwogCiAgICAgaWYgKGhhc092ZXJmbG93Q2xpcCgpKQotICAgICAgICBvZmZz
ZXRGcm9tUmVwYWludENvbnRhaW5lciAtPSBsYXllcigpLT5zY3JvbGxlZENvbnRlbnRPZmZzZXQo
KTsKKyAgICAgICAgb2Zmc2V0RnJvbVJlcGFpbnRDb250YWluZXIgLT0gc2Nyb2xsZWRDb250ZW50
T2Zmc2V0KCk7CiAKICAgICBMYXlvdXRVbml0IGxhc3RUb3AgPSAwOwogICAgIExheW91dFVuaXQg
bGFzdExlZnQgPSBsb2dpY2FsTGVmdFNlbGVjdGlvbk9mZnNldCh0aGlzLCBsYXN0VG9wKTsKQEAg
LTI5NzMsNyArMjk3Myw4IEBAIHZvaWQgUmVuZGVyQmxvY2s6OnBhaW50U2VsZWN0aW9uKFBhaW50
SW5mbyYgcGFpbnRJbmZvLCBjb25zdCBMYXlvdXRQb2ludCYgcGFpbnRPCiAgICAgICAgICAgICAg
ICAgICAgIExheW91dFJlY3QgbG9jYWxCb3VuZHMoZ2FwUmVjdHNCb3VuZHMpOwogICAgICAgICAg
ICAgICAgICAgICBmbGlwRm9yV3JpdGluZ01vZGUobG9jYWxCb3VuZHMpOwogICAgICAgICAgICAg
ICAgICAgICBnYXBSZWN0c0JvdW5kcyA9IGxvY2FsVG9Db250YWluZXJRdWFkKEZsb2F0UmVjdChs
b2NhbEJvdW5kcyksIGxheWVyLT5yZW5kZXJlcigpKS5lbmNsb3NpbmdCb3VuZGluZ0JveCgpOwot
ICAgICAgICAgICAgICAgICAgICBnYXBSZWN0c0JvdW5kcy5tb3ZlKGxheWVyLT5zY3JvbGxlZENv
bnRlbnRPZmZzZXQoKSk7CisgICAgICAgICAgICAgICAgICAgIGlmIChsYXllci0+cmVuZGVyZXIo
KS0+aGFzT3ZlcmZsb3dDbGlwKCkpCisgICAgICAgICAgICAgICAgICAgICAgICBnYXBSZWN0c0Jv
dW5kcy5tb3ZlKGxheWVyLT5yZW5kZXJCb3goKS0+c2Nyb2xsZWRDb250ZW50T2Zmc2V0KCkpOwog
ICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICBsYXllci0+YWRkQmxvY2tTZWxlY3Rp
b25HYXBzQm91bmRzKGdhcFJlY3RzQm91bmRzKTsKICAgICAgICAgICAgIH0KQEAgLTQyNjUsOSAr
NDI2Niw4IEBAIGJvb2wgUmVuZGVyQmxvY2s6Om5vZGVBdFBvaW50KGNvbnN0IEhpdFRlc3RSZXF1
ZXN0JiByZXF1ZXN0LCBIaXRUZXN0UmVzdWx0JiByZXN1CiAgICAgaWYgKGNoZWNrQ2hpbGRyZW4p
IHsKICAgICAgICAgLy8gSGl0IHRlc3QgZGVzY2VuZGFudHMgZmlyc3QuCiAgICAgICAgIExheW91
dFNpemUgc2Nyb2xsZWRPZmZzZXQobG9jYWxPZmZzZXQpOwotICAgICAgICBpZiAoaGFzT3ZlcmZs
b3dDbGlwKCkpIHsKLSAgICAgICAgICAgIHNjcm9sbGVkT2Zmc2V0IC09IGxheWVyKCktPnNjcm9s
bGVkQ29udGVudE9mZnNldCgpOwotICAgICAgICB9CisgICAgICAgIGlmIChoYXNPdmVyZmxvd0Ns
aXAoKSkKKyAgICAgICAgICAgIHNjcm9sbGVkT2Zmc2V0IC09IHNjcm9sbGVkQ29udGVudE9mZnNl
dCgpOwogCiAgICAgICAgIC8vIEhpdCB0ZXN0IGNvbnRlbnRzIGlmIHdlIGRvbid0IGhhdmUgY29s
dW1ucy4KICAgICAgICAgaWYgKCFoYXNDb2x1bW5zKCkpIHsKQEAgLTQ2MTQsNyArNDYxNCw3IEBA
IFZpc2libGVQb3NpdGlvbiBSZW5kZXJCbG9jazo6cG9zaXRpb25Gb3JQb2ludChjb25zdCBMYXlv
dXRQb2ludCYgcG9pbnQpCiB2b2lkIFJlbmRlckJsb2NrOjpvZmZzZXRGb3JDb250ZW50cyhMYXlv
dXRQb2ludCYgb2Zmc2V0KSBjb25zdAogewogICAgIGlmIChoYXNPdmVyZmxvd0NsaXAoKSkKLSAg
ICAgICAgb2Zmc2V0ICs9IGxheWVyKCktPnNjcm9sbGVkQ29udGVudE9mZnNldCgpOworICAgICAg
ICBvZmZzZXQgKz0gc2Nyb2xsZWRDb250ZW50T2Zmc2V0KCk7CiAKICAgICBpZiAoaGFzQ29sdW1u
cygpKQogICAgICAgICBhZGp1c3RQb2ludFRvQ29sdW1uQ29udGVudHMob2Zmc2V0KTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3guY3BwIGIvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveC5jcHAKaW5kZXggNmRjZjcyNjk3NTYyZDYxMWQ0OGQ1
NzljOWNlZjgxNGVkOGZmMDJhNS4uMWU5MGZjNmE2NDE5Y2E2M2M4NjQxYWQzZmJkNDIzNjUxNmM3
NDczOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveC5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveC5jcHAKQEAgLTc0Niw2ICs3
NDYsMTMgQEAgYm9vbCBSZW5kZXJCb3g6Om5lZWRzUHJlZmVycmVkV2lkdGhzUmVjYWxjdWxhdGlv
bigpIGNvbnN0CiAgICAgcmV0dXJuIHN0eWxlKCktPnBhZGRpbmdTdGFydCgpLmlzUGVyY2VudCgp
IHx8IHN0eWxlKCktPnBhZGRpbmdFbmQoKS5pc1BlcmNlbnQoKTsKIH0KIAorSW50U2l6ZSBSZW5k
ZXJCb3g6OnNjcm9sbGVkQ29udGVudE9mZnNldCgpIGNvbnN0Cit7CisgICAgQVNTRVJUKGhhc092
ZXJmbG93Q2xpcCgpKTsKKyAgICBBU1NFUlQoaGFzTGF5ZXIoKSk7CisgICAgcmV0dXJuIGxheWVy
KCktPnNjcm9sbGVkQ29udGVudE9mZnNldCgpOworfQorCiBMYXlvdXRVbml0IFJlbmRlckJveDo6
bWluUHJlZmVycmVkTG9naWNhbFdpZHRoKCkgY29uc3QKIHsKICAgICBpZiAocHJlZmVycmVkTG9n
aWNhbFdpZHRoc0RpcnR5KCkpCkBAIC0xMzk4LDcgKzE0MDUsNyBAQCBMYXlvdXRTaXplIFJlbmRl
ckJveDo6b2Zmc2V0RnJvbUNvbnRhaW5lcihSZW5kZXJPYmplY3QqIG8sIGNvbnN0IExheW91dFBv
aW50JiBwbwogICAgIH0KIAogICAgIGlmIChvLT5oYXNPdmVyZmxvd0NsaXAoKSkKLSAgICAgICAg
b2Zmc2V0IC09IHRvUmVuZGVyQm94KG8pLT5sYXllcigpLT5zY3JvbGxlZENvbnRlbnRPZmZzZXQo
KTsKKyAgICAgICAgb2Zmc2V0IC09IHRvUmVuZGVyQm94KG8pLT5zY3JvbGxlZENvbnRlbnRPZmZz
ZXQoKTsKIAogICAgIGlmIChzdHlsZSgpLT5wb3NpdGlvbigpID09IEFic29sdXRlUG9zaXRpb24g
JiYgby0+aXNSZWxQb3NpdGlvbmVkKCkgJiYgby0+aXNSZW5kZXJJbmxpbmUoKSkKICAgICAgICAg
b2Zmc2V0ICs9IHRvUmVuZGVySW5saW5lKG8pLT5yZWxhdGl2ZVBvc2l0aW9uZWRJbmxpbmVPZmZz
ZXQodGhpcyk7CkBAIC0xNTk3LDcgKzE2MDQsNyBAQCB2b2lkIFJlbmRlckJveDo6Y29tcHV0ZVJl
Y3RGb3JSZXBhaW50KFJlbmRlckJveE1vZGVsT2JqZWN0KiByZXBhaW50Q29udGFpbmVyLCBMYQog
ICAgICAgICAvLyBvLT5oZWlnaHQoKSBpcyBpbmFjY3VyYXRlIGlmIHdlJ3JlIGluIHRoZSBtaWRk
bGUgb2YgYSBsYXlvdXQgb2YgfG98LCBzbyB1c2UgdGhlCiAgICAgICAgIC8vIGxheWVyJ3Mgc2l6
ZSBpbnN0ZWFkLiAgRXZlbiBpZiB0aGUgbGF5ZXIncyBzaXplIGlzIHdyb25nLCB0aGUgbGF5ZXIg
aXRzZWxmIHdpbGwgcmVwYWludAogICAgICAgICAvLyBhbnl3YXkgaWYgaXRzIHNpemUgZG9lcyBj
aGFuZ2UuCi0gICAgICAgIHRvcExlZnQgLT0gY29udGFpbmVyQm94LT5sYXllcigpLT5zY3JvbGxl
ZENvbnRlbnRPZmZzZXQoKTsgLy8gRm9yIG92ZXJmbG93OmF1dG8vc2Nyb2xsL2hpZGRlbi4KKyAg
ICAgICAgdG9wTGVmdCAtPSBjb250YWluZXJCb3gtPnNjcm9sbGVkQ29udGVudE9mZnNldCgpOyAv
LyBGb3Igb3ZlcmZsb3c6YXV0by9zY3JvbGwvaGlkZGVuLgogCiAgICAgICAgIExheW91dFJlY3Qg
cmVwYWludFJlY3QodG9wTGVmdCwgcmVjdC5zaXplKCkpOwogICAgICAgICBMYXlvdXRSZWN0IGJv
eFJlY3QoTGF5b3V0UG9pbnQoKSwgY29udGFpbmVyQm94LT5sYXllcigpLT5zaXplKCkpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveC5oIGIvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveC5oCmluZGV4IGJiZTAxNmFkNDg1ZTYwYjczMzYyZWU1
NzU1ZGIyOWU5NTM0Y2NmZTIuLmIwMThhODZiN2M4YjUzNjNmMWM5ZjFmMWNjMjlkZTViN2E4NTk0
MjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3guaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94LmgKQEAgLTQ0NSw2ICs0NDUsOCBA
QCBwdWJsaWM6CiAgICAgdmlydHVhbCBib29sIG5lZWRzUHJlZmVycmVkV2lkdGhzUmVjYWxjdWxh
dGlvbigpIGNvbnN0OwogICAgIHZpcnR1YWwgdm9pZCBjb21wdXRlSW50cmluc2ljUmF0aW9JbmZv
cm1hdGlvbihGbG9hdFNpemUmIC8qIGludHJpbnNpY1NpemUgKi8sIGRvdWJsZSYgLyogaW50cmlu
c2ljUmF0aW8gKi8sIGJvb2wmIC8qIGlzUGVyY2VudGFnZUludHJpbnNpY1NpemUgKi8pIGNvbnN0
IHsgfQogCisgICAgSW50U2l6ZSBzY3JvbGxlZENvbnRlbnRPZmZzZXQoKSBjb25zdDsKKwogcHJv
dGVjdGVkOgogICAgIHZpcnR1YWwgdm9pZCB3aWxsQmVEZXN0cm95ZWQoKTsKIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveE1vZGVsT2JqZWN0LmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3hNb2RlbE9iamVjdC5jcHAKaW5kZXggNzkx
YWU2Yzg1Mjc2YWI1NWFjODQyZjIxOWZjMjkxOGJkN2UwMzEwMS4uMWQwM2NlNWRlNWNkOTViNTk2
MzY1NDRhZDQ2NzI0YjQxOTg4YTA2MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlckJveE1vZGVsT2JqZWN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyQm94TW9kZWxPYmplY3QuY3BwCkBAIC03MTIsMTAgKzcxMiwxMSBAQCB2b2lkIFJl
bmRlckJveE1vZGVsT2JqZWN0OjpwYWludEZpbGxMYXllckV4dGVuZGVkKGNvbnN0IFBhaW50SW5m
byYgcGFpbnRJbmZvLCBjbwogICAgIExheW91dFJlY3Qgc2Nyb2xsZWRQYWludFJlY3QgPSByZWN0
OwogICAgIGlmIChjbGlwcGVkV2l0aExvY2FsU2Nyb2xsaW5nKSB7CiAgICAgICAgIC8vIENsaXAg
dG8gdGhlIG92ZXJmbG93IGFyZWEuCi0gICAgICAgIGNvbnRleHQtPmNsaXAodG9SZW5kZXJCb3go
dGhpcyktPm92ZXJmbG93Q2xpcFJlY3QocmVjdC5sb2NhdGlvbigpLCBwYWludEluZm8ucmVuZGVy
UmVnaW9uKSk7CisgICAgICAgIFJlbmRlckJveCogdGhpc0JveCA9IHRvUmVuZGVyQm94KHRoaXMp
OworICAgICAgICBjb250ZXh0LT5jbGlwKHRoaXNCb3gtPm92ZXJmbG93Q2xpcFJlY3QocmVjdC5s
b2NhdGlvbigpLCBwYWludEluZm8ucmVuZGVyUmVnaW9uKSk7CiAgICAgICAgIAogICAgICAgICAv
LyBBZGp1c3QgdGhlIHBhaW50IHJlY3QgdG8gcmVmbGVjdCBhIHNjcm9sbGVkIGNvbnRlbnQgYm94
IHdpdGggYm9yZGVycyBhdCB0aGUgZW5kcy4KLSAgICAgICAgTGF5b3V0U2l6ZSBvZmZzZXQgPSBs
YXllcigpLT5zY3JvbGxlZENvbnRlbnRPZmZzZXQoKTsKKyAgICAgICAgSW50U2l6ZSBvZmZzZXQg
PSB0aGlzQm94LT5zY3JvbGxlZENvbnRlbnRPZmZzZXQoKTsKICAgICAgICAgc2Nyb2xsZWRQYWlu
dFJlY3QubW92ZSgtb2Zmc2V0KTsKICAgICAgICAgc2Nyb2xsZWRQYWludFJlY3Quc2V0V2lkdGgo
YkxlZnQgKyBsYXllcigpLT5zY3JvbGxXaWR0aCgpICsgYlJpZ2h0KTsKICAgICAgICAgc2Nyb2xs
ZWRQYWludFJlY3Quc2V0SGVpZ2h0KGJvcmRlclRvcCgpICsgbGF5ZXIoKS0+c2Nyb2xsSGVpZ2h0
KCkgKyBib3JkZXJCb3R0b20oKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVySW5saW5lLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJJbmxp
bmUuY3BwCmluZGV4IDExNzVmMzFhOTBhOWY3YjNkNjNhNzgwODdkMmIyMzQ0Y2M5YWM0ZjUuLmJk
MDZjZTdjY2RkN2QwNDgxMjgyMGViODc5ZDNmYzY3OWY4YzRhMWYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJJbmxpbmUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJJbmxpbmUuY3BwCkBAIC05ODgsNyArOTg4LDcgQEAgTGF5b3V0UmVj
dCBSZW5kZXJJbmxpbmU6OmNsaXBwZWRPdmVyZmxvd1JlY3RGb3JSZXBhaW50KFJlbmRlckJveE1v
ZGVsT2JqZWN0KiByZXAKICAgICAgICAgLy8gbGF5ZXIncyBzaXplIGluc3RlYWQuICBFdmVuIGlm
IHRoZSBsYXllcidzIHNpemUgaXMgd3JvbmcsIHRoZSBsYXllciBpdHNlbGYgd2lsbCByZXBhaW50
CiAgICAgICAgIC8vIGFueXdheSBpZiBpdHMgc2l6ZSBkb2VzIGNoYW5nZS4KICAgICAgICAgTGF5
b3V0UmVjdCByZXBhaW50UmVjdChyKTsKLSAgICAgICAgcmVwYWludFJlY3QubW92ZSgtY2ItPmxh
eWVyKCktPnNjcm9sbGVkQ29udGVudE9mZnNldCgpKTsgLy8gRm9yIG92ZXJmbG93OmF1dG8vc2Ny
b2xsL2hpZGRlbi4KKyAgICAgICAgcmVwYWludFJlY3QubW92ZSgtY2ItPnNjcm9sbGVkQ29udGVu
dE9mZnNldCgpKTsgLy8gRm9yIG92ZXJmbG93OmF1dG8vc2Nyb2xsL2hpZGRlbi4KIAogICAgICAg
ICBMYXlvdXRSZWN0IGJveFJlY3QoTGF5b3V0UG9pbnQoKSwgY2ItPmxheWVyKCktPnNpemUoKSk7
CiAgICAgICAgIHIgPSBpbnRlcnNlY3Rpb24ocmVwYWludFJlY3QsIGJveFJlY3QpOwpAQCAtMTA4
OSw3ICsxMDg5LDcgQEAgdm9pZCBSZW5kZXJJbmxpbmU6OmNvbXB1dGVSZWN0Rm9yUmVwYWludChS
ZW5kZXJCb3hNb2RlbE9iamVjdCogcmVwYWludENvbnRhaW5lciwKICAgICAgICAgLy8gby0+aGVp
Z2h0KCkgaXMgaW5hY2N1cmF0ZSBpZiB3ZSdyZSBpbiB0aGUgbWlkZGxlIG9mIGEgbGF5b3V0IG9m
IHxvfCwgc28gdXNlIHRoZQogICAgICAgICAvLyBsYXllcidzIHNpemUgaW5zdGVhZC4gIEV2ZW4g
aWYgdGhlIGxheWVyJ3Mgc2l6ZSBpcyB3cm9uZywgdGhlIGxheWVyIGl0c2VsZiB3aWxsIHJlcGFp
bnQKICAgICAgICAgLy8gYW55d2F5IGlmIGl0cyBzaXplIGRvZXMgY2hhbmdlLgotICAgICAgICB0
b3BMZWZ0IC09IGNvbnRhaW5lckJveC0+bGF5ZXIoKS0+c2Nyb2xsZWRDb250ZW50T2Zmc2V0KCk7
IC8vIEZvciBvdmVyZmxvdzphdXRvL3Njcm9sbC9oaWRkZW4uCisgICAgICAgIHRvcExlZnQgLT0g
Y29udGFpbmVyQm94LT5zY3JvbGxlZENvbnRlbnRPZmZzZXQoKTsgLy8gRm9yIG92ZXJmbG93OmF1
dG8vc2Nyb2xsL2hpZGRlbi4KIAogICAgICAgICBMYXlvdXRSZWN0IHJlcGFpbnRSZWN0KHRvcExl
ZnQsIHJlY3Quc2l6ZSgpKTsKICAgICAgICAgTGF5b3V0UmVjdCBib3hSZWN0KExheW91dFBvaW50
KCksIGNvbnRhaW5lckJveC0+bGF5ZXIoKS0+c2l6ZSgpKTsKQEAgLTExMjAsNyArMTEyMCw3IEBA
IExheW91dFNpemUgUmVuZGVySW5saW5lOjpvZmZzZXRGcm9tQ29udGFpbmVyKFJlbmRlck9iamVj
dCogY29udGFpbmVyLCBjb25zdCBMYXlvCiAgICAgY29udGFpbmVyLT5hZGp1c3RGb3JDb2x1bW5z
KG9mZnNldCwgcG9pbnQpOwogCiAgICAgaWYgKGNvbnRhaW5lci0+aGFzT3ZlcmZsb3dDbGlwKCkp
Ci0gICAgICAgIG9mZnNldCAtPSB0b1JlbmRlckJveChjb250YWluZXIpLT5sYXllcigpLT5zY3Jv
bGxlZENvbnRlbnRPZmZzZXQoKTsKKyAgICAgICAgb2Zmc2V0IC09IHRvUmVuZGVyQm94KGNvbnRh
aW5lciktPnNjcm9sbGVkQ29udGVudE9mZnNldCgpOwogCiAgICAgcmV0dXJuIG9mZnNldDsKIH0K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5oIGIvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyLmgKaW5kZXggNGQ4YjViYmUyZjI1M2Rm
ZGQ2ZmVlZWYxNzdmZmFhNDBlM2NiODE1OC4uNGM1YmUwY2RjNTVlOTE2MjUyY2VkODI3YjNhYmM1
MmM5ZDU3MDJhOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxh
eWVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyLmgKQEAgLTI5
NSw4ICsyOTUsNiBAQCBwdWJsaWM6CiAgICAgLy8gU2Nyb2xsaW5nIG1ldGhvZHMgZm9yIGxheWVy
cyB0aGF0IGNhbiBzY3JvbGwgdGhlaXIgb3ZlcmZsb3cuCiAgICAgdm9pZCBzY3JvbGxCeVJlY3Vy
c2l2ZWx5KExheW91dFVuaXQgeERlbHRhLCBMYXlvdXRVbml0IHlEZWx0YSwgU2Nyb2xsT2Zmc2V0
Q2xhbXBpbmcgPSBTY3JvbGxPZmZzZXRVbmNsYW1wZWQpOwogCi0gICAgSW50U2l6ZSBzY3JvbGxl
ZENvbnRlbnRPZmZzZXQoKSBjb25zdCB7IHJldHVybiBzY3JvbGxPZmZzZXQoKSArIHJvdW5kZWRJ
bnRTaXplKG1fc2Nyb2xsT3ZlcmZsb3cpOyB9Ci0KICAgICBpbnQgc2Nyb2xsWE9mZnNldCgpIGNv
bnN0IHsgcmV0dXJuIG1fc2Nyb2xsT2Zmc2V0LndpZHRoKCkgKyBzY3JvbGxPcmlnaW4oKS54KCk7
IH0KICAgICBpbnQgc2Nyb2xsWU9mZnNldCgpIGNvbnN0IHsgcmV0dXJuIG1fc2Nyb2xsT2Zmc2V0
LmhlaWdodCgpICsgc2Nyb2xsT3JpZ2luKCkueSgpOyB9CiAgICAgSW50U2l6ZSBzY3JvbGxPZmZz
ZXQoKSBjb25zdCB7IHJldHVybiBJbnRTaXplKHNjcm9sbFhPZmZzZXQoKSwgc2Nyb2xsWU9mZnNl
dCgpKTsgfQpAQCAtNTc5LDYgKzU3Nyw5IEBAIHByaXZhdGU6CiAKICAgICBib29sIHNob3VsZFJl
cGFpbnRBZnRlckxheW91dCgpIGNvbnN0OwogCisgICAgZnJpZW5kIEludFNpemUgUmVuZGVyQm94
OjpzY3JvbGxlZENvbnRlbnRPZmZzZXQoKSBjb25zdDsKKyAgICBJbnRTaXplIHNjcm9sbGVkQ29u
dGVudE9mZnNldCgpIGNvbnN0IHsgcmV0dXJuIHNjcm9sbE9mZnNldCgpICsgbV9zY3JvbGxPdmVy
ZmxvdzsgfQorCiAgICAgLy8gVGhlIG5vcm1hbCBvcGVyYXRvciBuZXcgaXMgZGlzYWxsb3dlZCBv
biBhbGwgcmVuZGVyIG9iamVjdHMuCiAgICAgdm9pZCogb3BlcmF0b3IgbmV3KHNpemVfdCkgdGhy
b3coKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck9iamVj
dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyT2JqZWN0LmNwcAppbmRleCA2
Y2E3MTkyMzkxMjQyYTI3ZmI2YzA0OTI3ODM1NDkxNGI3NGM0YzYzLi44NjNmMTdiM2UyNzBhOTY2
MGM2OTY5ZjVhNjMyNzNjOGY1NzAzNTk4IDEwMDc1NQotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyT2JqZWN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyT2JqZWN0LmNwcApAQCAtMTUwMCw3ICsxNTAwLDcgQEAgdm9pZCBSZW5kZXJPYmplY3Q6OmNv
bXB1dGVSZWN0Rm9yUmVwYWludChSZW5kZXJCb3hNb2RlbE9iamVjdCogcmVwYWludENvbnRhaW5l
ciwKICAgICAgICAgICAgIFJlbmRlckJveCogYm94UGFyZW50ID0gdG9SZW5kZXJCb3gobyk7CiAK
ICAgICAgICAgICAgIExheW91dFJlY3QgcmVwYWludFJlY3QocmVjdCk7Ci0gICAgICAgICAgICBy
ZXBhaW50UmVjdC5tb3ZlKC1ib3hQYXJlbnQtPmxheWVyKCktPnNjcm9sbGVkQ29udGVudE9mZnNl
dCgpKTsgLy8gRm9yIG92ZXJmbG93OmF1dG8vc2Nyb2xsL2hpZGRlbi4KKyAgICAgICAgICAgIHJl
cGFpbnRSZWN0Lm1vdmUoLWJveFBhcmVudC0+c2Nyb2xsZWRDb250ZW50T2Zmc2V0KCkpOyAvLyBG
b3Igb3ZlcmZsb3c6YXV0by9zY3JvbGwvaGlkZGVuLgogCiAgICAgICAgICAgICBMYXlvdXRSZWN0
IGJveFJlY3QoTGF5b3V0UG9pbnQoKSwgYm94UGFyZW50LT5sYXllcigpLT5zaXplKCkpOwogICAg
ICAgICAgICAgcmVjdCA9IGludGVyc2VjdGlvbihyZXBhaW50UmVjdCwgYm94UmVjdCk7CkBAIC0y
MDA2LDcgKzIwMDYsNyBAQCB2b2lkIFJlbmRlck9iamVjdDo6bWFwTG9jYWxUb0NvbnRhaW5lcihS
ZW5kZXJCb3hNb2RlbE9iamVjdCogcmVwYWludENvbnRhaW5lciwgYgogICAgICAgICB0cmFuc2Zv
cm1TdGF0ZS5tb3ZlKGNvbHVtbk9mZnNldCk7CiAKICAgICBpZiAoby0+aGFzT3ZlcmZsb3dDbGlw
KCkpCi0gICAgICAgIHRyYW5zZm9ybVN0YXRlLm1vdmUoLXRvUmVuZGVyQm94KG8pLT5sYXllcigp
LT5zY3JvbGxlZENvbnRlbnRPZmZzZXQoKSk7CisgICAgICAgIHRyYW5zZm9ybVN0YXRlLm1vdmUo
LXRvUmVuZGVyQm94KG8pLT5zY3JvbGxlZENvbnRlbnRPZmZzZXQoKSk7CiAKICAgICBvLT5tYXBM
b2NhbFRvQ29udGFpbmVyKHJlcGFpbnRDb250YWluZXIsIGZpeGVkLCB1c2VUcmFuc2Zvcm1zLCB0
cmFuc2Zvcm1TdGF0ZSwgd2FzRml4ZWQpOwogfQpAQCAtMjAxNyw3ICsyMDE3LDcgQEAgdm9pZCBS
ZW5kZXJPYmplY3Q6Om1hcEFic29sdXRlVG9Mb2NhbFBvaW50KGJvb2wgZml4ZWQsIGJvb2wgdXNl
VHJhbnNmb3JtcywgVHJhbnMKICAgICBpZiAobykgewogICAgICAgICBvLT5tYXBBYnNvbHV0ZVRv
TG9jYWxQb2ludChmaXhlZCwgdXNlVHJhbnNmb3JtcywgdHJhbnNmb3JtU3RhdGUpOwogICAgICAg
ICBpZiAoby0+aGFzT3ZlcmZsb3dDbGlwKCkpCi0gICAgICAgICAgICB0cmFuc2Zvcm1TdGF0ZS5t
b3ZlKHRvUmVuZGVyQm94KG8pLT5sYXllcigpLT5zY3JvbGxlZENvbnRlbnRPZmZzZXQoKSk7Cisg
ICAgICAgICAgICB0cmFuc2Zvcm1TdGF0ZS5tb3ZlKHRvUmVuZGVyQm94KG8pLT5zY3JvbGxlZENv
bnRlbnRPZmZzZXQoKSk7CiAgICAgfQogfQogCkBAIC0yMDc5LDcgKzIwNzksNyBAQCBMYXlvdXRT
aXplIFJlbmRlck9iamVjdDo6b2Zmc2V0RnJvbUNvbnRhaW5lcihSZW5kZXJPYmplY3QqIG8sIGNv
bnN0IExheW91dFBvaW50JgogICAgIG8tPmFkanVzdEZvckNvbHVtbnMob2Zmc2V0LCBwb2ludCk7
CiAKICAgICBpZiAoby0+aGFzT3ZlcmZsb3dDbGlwKCkpCi0gICAgICAgIG9mZnNldCAtPSB0b1Jl
bmRlckJveChvKS0+bGF5ZXIoKS0+c2Nyb2xsZWRDb250ZW50T2Zmc2V0KCk7CisgICAgICAgIG9m
ZnNldCAtPSB0b1JlbmRlckJveChvKS0+c2Nyb2xsZWRDb250ZW50T2Zmc2V0KCk7CiAKICAgICBy
ZXR1cm4gb2Zmc2V0OwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlclRleHRDb250cm9sU2luZ2xlTGluZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyVGV4dENvbnRyb2xTaW5nbGVMaW5lLmNwcAppbmRleCA3ODkxYTNmNDNmYmEyM2VmMGJl
NDNjMjA1ZGZlNzMzZTliZTNiNWI0Li5hNDRlMjg4NmM4NTRhODk5YmZlMmFiMmRmM2I4MGUwNGE4
YmViYWMxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGV4dENv
bnRyb2xTaW5nbGVMaW5lLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
VGV4dENvbnRyb2xTaW5nbGVMaW5lLmNwcApAQCAtNjAsNyArNjAsNyBAQCBWaXNpYmxlUG9zaXRp
b24gUmVuZGVyVGV4dENvbnRyb2xJbm5lckJsb2NrOjpwb3NpdGlvbkZvclBvaW50KGNvbnN0IExh
eW91dFBvaW50JgogICAgIGlmIChtX211bHRpTGluZSkgewogICAgICAgICBSZW5kZXJUZXh0Q29u
dHJvbCogcmVuZGVyZXIgPSB0b1JlbmRlclRleHRDb250cm9sKG5vZGUoKS0+c2hhZG93QW5jZXN0
b3JOb2RlKCktPnJlbmRlcmVyKCkpOwogICAgICAgICBpZiAocmVuZGVyZXItPmhhc092ZXJmbG93
Q2xpcCgpKQotICAgICAgICAgICAgY29udGVudHNQb2ludCArPSByZW5kZXJlci0+bGF5ZXIoKS0+
c2Nyb2xsZWRDb250ZW50T2Zmc2V0KCk7CisgICAgICAgICAgICBjb250ZW50c1BvaW50ICs9IHJl
bmRlcmVyLT5zY3JvbGxlZENvbnRlbnRPZmZzZXQoKTsKICAgICB9CiAKICAgICByZXR1cm4gUmVu
ZGVyQmxvY2s6OnBvc2l0aW9uRm9yUG9pbnQoY29udGVudHNQb2ludCk7Cg==
</data>
<flag name="review"
          id="130281"
          type_id="1"
          status="+"
          setter="hyatt"
    />
    <flag name="commit-queue"
          id="130284"
          type_id="3"
          status="+"
          setter="jchaffraix"
    />
          </attachment>
      

    </bug>

</bugzilla>