<?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>132640</bug_id>
          
          <creation_ts>2014-05-06 20:54:59 -0700</creation_ts>
          <short_desc>Add scrolling tree logging to RemoteLayerTree output</short_desc>
          <delta_ts>2014-05-07 11:44:02 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Simon Fraser (smfr)">simon.fraser</reporter>
          <assigned_to name="Simon Fraser (smfr)">simon.fraser</assigned_to>
          <cc>andersca</cc>
    
    <cc>bdakin</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>commit-queue</cc>
    
    <cc>jamesr</cc>
    
    <cc>luiz</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>thorton</cc>
    
    <cc>tonikitoo</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1007200</commentid>
    <comment_count>0</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2014-05-06 20:54:59 -0700</bug_when>
    <thetext>Add scrolling tree logging to RemoteLayerTree output</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1007201</commentid>
    <comment_count>1</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2014-05-06 20:55:34 -0700</bug_when>
    <thetext>Sample output:
  (scrolling state tree
    (has changed properties 1)
    (has new root node 0)
    (node 3
      (type frame-scrolling)
      (children
          (node 4
            (type overflow-scrolling)
            (scroll-position (0,157))
            (children
                (node 5
                  (type sticky)
                  (sticky position-at-last-layout width=0 height=-113)
                  (layer-position-at-last-layout (0,447))))))))</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1007203</commentid>
    <comment_count>2</comment_count>
      <attachid>230968</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2014-05-06 21:01:18 -0700</bug_when>
    <thetext>Created attachment 230968
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1007214</commentid>
    <comment_count>3</comment_count>
    <who name="Tim Horton">thorton</who>
    <bug_when>2014-05-06 21:53:33 -0700</bug_when>
    <thetext>(In reply to comment #1)
&gt; Sample output:
&gt;   (scrolling state tree
&gt;     (has changed properties 1)
&gt;     (has new root node 0)
&gt;     (node 3
&gt;       (type frame-scrolling)
&gt;       (children
&gt;           (node 4
&gt;             (type overflow-scrolling)
&gt;             (scroll-position (0,157))
&gt;             (children
&gt;                 (node 5
&gt;                   (type sticky)
&gt;                   (sticky position-at-last-layout width=0 height=-113)

I think there should be a dash between sticky and position.

&gt;                   (layer-position-at-last-layout (0,447))))))))</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1007389</commentid>
    <comment_count>4</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2014-05-07 11:44:02 -0700</bug_when>
    <thetext>https://trac.webkit.org/r168433</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>230968</attachid>
            <date>2014-05-06 21:01:18 -0700</date>
            <delta_ts>2014-05-06 21:03:23 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-132640-20140506210055.patch</filename>
            <type>text/plain</type>
            <size>18389</size>
            <attacher name="Simon Fraser (smfr)">simon.fraser</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTY4MzgxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOTkyYzU2ODFmZGU2YWRm
NWM2NGU2ZGVkOGQ5NzkxODUxNjFiMzczNi4uNjE3MThlYTFjNGVlOWZhODQzMzA0NWM2YWM5ODI5
OWMwZWUzMTcwZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDI3IEBACiAyMDE0LTA1LTA2ICBTaW1v
biBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgogCisgICAgICAgIEFkZCBzY3JvbGxp
bmcgdHJlZSBsb2dnaW5nIHRvIFJlbW90ZUxheWVyVHJlZSBvdXRwdXQKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEzMjY0MAorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFN1cHBvcnQgc2Nyb2xsaW5nIHRyZWUg
bG9nZ2luZyBpbiB0aGUgUmVtb3RlTGF5ZXJUcmVlIGxvZyBjaGFubmVsCisgICAgICAgIG91dHB1
dC4KKyAgICAgICAgCisgICAgICAgIFNjcm9sbGluZ1N0YXRlVHJlZTo6Y29tbWl0KCkgdW5jb25k
aXRpb25hbGx5IHNldCB0cmVlU3RhdGVDbG9uZS0+bV9oYXNDaGFuZ2VkUHJvcGVydGllcworICAg
ICAgICB0byB0cnVlLCBidXQgd2Ugc2hvdWxkIHNldCBpdCBiYXNlZCBvbiBvcmlnaW5hbCBzY3Jv
bGxpbmcgc3RhdGUgdHJlZSdzIAorICAgICAgICBtX2hhc0NoYW5nZWRQcm9wZXJ0aWVzLgorICAg
ICAgICAKKyAgICAgICAgV2UgaGF2ZSB0byBlbmNvZGUgYWxsIG9mIHRoZSBzY3JvbGxpbmcgc3Rh
dGUgbm9kZXMgYW55d2F5ICh0aGV5IG9ubHkgZW5jb2RlCisgICAgICAgIGNoYW5nZWQgcHJvcGVy
dGllcyksIGJ1dCB3ZSBjYW4gdXNlIHRoaXMgZm9yIGZ1dHVyZSBvcHRpbWl6YXRpb25zLCBhbmQg
dG8KKyAgICAgICAgYXZvaWQgc3B1cmlvdXMgbG9nZ2luZy4KKyAgICAgICAgCisgICAgICAgICog
V2ViQ29yZS5leHAuaW46IEV4cG9ydCBhIGNvdXBsZSBvZiB0aGluZ3Mgd2UgbmVlZC4KKyAgICAg
ICAgKiBwYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdTdGF0ZVRyZWUuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6U2Nyb2xsaW5nU3RhdGVUcmVlOjpjb21taXQpOgorCisyMDE0LTA1LTA2ICBTaW1vbiBG
cmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgorCiAgICAgICAgIEZpeCB0aGUgaU9TIGJ1
aWxkLgogCiAgICAgICAgIFdlYkNvcmU6OkVkaXRvcjo6cmVwbGFjZU5vZGVGcm9tUGFzdGVib2Fy
ZChXZWJDb3JlOjpOb2RlKiwgV1RGOjpTdHJpbmcgY29uc3QmKSBpcyBNYWMtb25seS4KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxv
ZwppbmRleCBmZWFjYzYyZWZhN2U1NTU5ZjU2ZjUzMGI4OTMzZjM5ZmE5YmExNWQ5Li4xOTBlYzlh
Yzg5Yjk0MTllZTJjYTFiNjUwYzM4ZTM3YTk2YTc5Zjg2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEs
MzMgQEAKKzIwMTQtMDUtMDYgIFNpbW9uIEZyYXNlciAgPHNpbW9uLmZyYXNlckBhcHBsZS5jb20+
CisKKyAgICAgICAgQWRkIHNjcm9sbGluZyB0cmVlIGxvZ2dpbmcgdG8gUmVtb3RlTGF5ZXJUcmVl
IG91dHB1dAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MTMyNjQwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisgICAgICAgIAor
ICAgICAgICBTdXBwb3J0IHNjcm9sbGluZyB0cmVlIGxvZ2dpbmcgaW4gdGhlIFJlbW90ZUxheWVy
VHJlZSBsb2cgY2hhbm5lbAorICAgICAgICBvdXRwdXQuCisgICAgICAgIAorICAgICAgICBFbmNv
ZGUvZGVjb2RlIFNjcm9sbGluZ1N0YXRlVHJlZTo6aGFzQ2hhbmdlZFByb3BlcnRpZXMoKSBzbyB3
ZSBjYW4gdXNlCisgICAgICAgIGl0IHRvIGF2b2lkIGxvZ2dpbmcuIExvZyBhbGwgdGhlIHRoaW5n
cy4KKworICAgICAgICAqIFNoYXJlZC9TY3JvbGxpbmcvUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0
b3JUcmFuc2FjdGlvbi5jcHA6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVNjcm9sbGluZ0Nvb3Jk
aW5hdG9yVHJhbnNhY3Rpb246OmVuY29kZSk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVNjcm9s
bGluZ0Nvb3JkaW5hdG9yVHJhbnNhY3Rpb246OmRlY29kZSk6CisgICAgICAgIChXZWJLaXQ6OlJl
bW90ZVNjcm9sbGluZ1RyZWVUZXh0U3RyZWFtOjpSZW1vdGVTY3JvbGxpbmdUcmVlVGV4dFN0cmVh
bSk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVNjcm9sbGluZ1RyZWVUZXh0U3RyZWFtOjppbmNy
ZWFzZUluZGVudCk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVNjcm9sbGluZ1RyZWVUZXh0U3Ry
ZWFtOjpkZWNyZWFzZUluZGVudCk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVNjcm9sbGluZ1Ry
ZWVUZXh0U3RyZWFtOjp3cml0ZUluZGVudCk6CisgICAgICAgIChXZWJLaXQ6OmR1bXBQcm9wZXJ0
eSk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVNjcm9sbGluZ1RyZWVUZXh0U3RyZWFtOjpvcGVy
YXRvcjw8KToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlU2Nyb2xsaW5nVHJlZVRleHRTdHJlYW06
OmR1bXApOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVTY3JvbGxpbmdUcmVlVGV4dFN0cmVhbTo6
cmVjdXJzaXZlRHVtcE5vZGVzKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlU2Nyb2xsaW5nQ29v
cmRpbmF0b3JUcmFuc2FjdGlvbjo6ZGVzY3JpcHRpb24pOgorICAgICAgICAoV2ViS2l0OjpSZW1v
dGVTY3JvbGxpbmdDb29yZGluYXRvclRyYW5zYWN0aW9uOjpkdW1wKToKKyAgICAgICAgKiBTaGFy
ZWQvU2Nyb2xsaW5nL1JlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yVHJhbnNhY3Rpb24uaDoKKyAg
ICAgICAgKiBVSVByb2Nlc3MvbWFjL1JlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhUHJveHkubW06
CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhUHJveHk6OmNvbW1p
dExheWVyVHJlZSk6CisKIDIwMTQtMDUtMDYgIEFsZXggQ2hyaXN0ZW5zZW4gIDxhY2hyaXN0ZW5z
ZW5Ad2Via2l0Lm9yZz4KIAogICAgICAgICBSZW1vdmVkIHVubmVjZXNzYXJ5IG5vdEltcGxlbWVu
dGVkLmggaW5jbHVkZXMuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5p
biBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluCmluZGV4IDA4NDQ2ZjdhN2VkNmQwNjM2
NWE5Y2U4YzNkODBmMDE1NGNjZWFlMTEuLjJmNzI5YTAwYTYzZWNkNTE0MmY1ODhiZDMzMzhlMmU3
ZWRhMmVlNzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluCisrKyBi
L1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluCkBAIC0xMDcsNiArMTA3LDcgQEAgX19aTjdX
ZWJDb3JlMTBUZXh0U3RyZWFtN3JlbGVhc2VFdgogX19aTjdXZWJDb3JlMTBUZXh0U3RyZWFtbHNF
UEtjCiBfX1pON1dlYkNvcmUxMFRleHRTdHJlYW1sc0VQS3YKIF9fWk43V2ViQ29yZTEwVGV4dFN0
cmVhbWxzRVJLTjNXVEY2U3RyaW5nRQorX19aTjdXZWJDb3JlMTBUZXh0U3RyZWFtbHNFUktOU18x
MEZsb2F0UG9pbnRFCiBfX1pON1dlYkNvcmUxMFRleHRTdHJlYW1sc0VSS05TXzhJbnRQb2ludEUK
IF9fWk43V2ViQ29yZTEwVGV4dFN0cmVhbWxzRVJLTlNfOUZsb2F0U2l6ZUUKIF9fWk43V2ViQ29y
ZTEwVGV4dFN0cmVhbWxzRWIKQEAgLTI3NzMsNiArMjc3NCw3IEBAIF9fWk43V2ViQ29yZTE4U2Ny
b2xsaW5nU3RhdGVOb2RlOHNldExheWVyRVJLTlNfMTlMYXllclJlcHJlc2VudGF0aW9uRQogX19a
TjdXZWJDb3JlMThTY3JvbGxpbmdTdGF0ZVRyZWUxMGF0dGFjaE5vZGVFTlNfMTdTY3JvbGxpbmdO
b2RlVHlwZUV5eQogX19aTjdXZWJDb3JlMThTY3JvbGxpbmdTdGF0ZVRyZWUxNHN0YXRlTm9kZUZv
cklERXkKIF9fWk43V2ViQ29yZTE4U2Nyb2xsaW5nU3RhdGVUcmVlMTVzZXRSZW1vdmVkTm9kZXNF
TjNXVEY2VmVjdG9ySXlMbTBFTlMxXzE1Q3Jhc2hPbk92ZXJmbG93RUVFCitfX1pON1dlYkNvcmUx
OFNjcm9sbGluZ1N0YXRlVHJlZTIzc2V0SGFzQ2hhbmdlZFByb3BlcnRpZXNFYgogX19aTjdXZWJD
b3JlMThTY3JvbGxpbmdTdGF0ZVRyZWU2Y29tbWl0RU5TXzE5TGF5ZXJSZXByZXNlbnRhdGlvbjRU
eXBlRQogX19aTjdXZWJDb3JlMThTY3JvbGxpbmdTdGF0ZVRyZWU2Y3JlYXRlRVBOU18yNUFzeW5j
U2Nyb2xsaW5nQ29vcmRpbmF0b3JFCiBfX1pON1dlYkNvcmUxOFNjcm9sbGluZ1N0YXRlVHJlZUQx
RXYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1N0
YXRlVHJlZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdTdGF0
ZVRyZWUuY3BwCmluZGV4IGJjMmI2N2YzMDUxZTc3MWYwYjhhODcxNjA2NzMzM2NlZDYxM2FjYzAu
LjU3OWU5OWI5NWVmN2Y1MDE0OWI0OWRlYTZlZGIyOGFlOWY3MWM1ZDEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1N0YXRlVHJlZS5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nU3RhdGVUcmVlLmNwcApAQCAt
MTUzLDcgKzE1Myw3IEBAIFBhc3NPd25QdHI8U2Nyb2xsaW5nU3RhdGVUcmVlPiBTY3JvbGxpbmdT
dGF0ZVRyZWU6OmNvbW1pdChMYXllclJlcHJlc2VudGF0aW9uOjpUCiAgICAgdHJlZVN0YXRlQ2xv
bmUtPm1fbm9kZXNSZW1vdmVkU2luY2VMYXN0Q29tbWl0LnN3YXAobV9ub2Rlc1JlbW92ZWRTaW5j
ZUxhc3RDb21taXQpOwogCiAgICAgLy8gTm93IHRoZSBjbG9uZSB0cmVlIGhhcyBjaGFuZ2VkIHBy
b3BlcnRpZXMsIGFuZCB0aGUgb3JpZ2luYWwgdHJlZSBkb2VzIG5vdC4KLSAgICB0cmVlU3RhdGVD
bG9uZS0+bV9oYXNDaGFuZ2VkUHJvcGVydGllcyA9IHRydWU7CisgICAgdHJlZVN0YXRlQ2xvbmUt
Pm1faGFzQ2hhbmdlZFByb3BlcnRpZXMgPSBtX2hhc0NoYW5nZWRQcm9wZXJ0aWVzOwogICAgIG1f
aGFzQ2hhbmdlZFByb3BlcnRpZXMgPSBmYWxzZTsKIAogICAgIHRyZWVTdGF0ZUNsb25lLT5tX2hh
c05ld1Jvb3RTdGF0ZU5vZGUgPSBtX2hhc05ld1Jvb3RTdGF0ZU5vZGU7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0Mi9TaGFyZWQvU2Nyb2xsaW5nL1JlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9y
VHJhbnNhY3Rpb24uY3BwIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL1Njcm9sbGluZy9SZW1vdGVT
Y3JvbGxpbmdDb29yZGluYXRvclRyYW5zYWN0aW9uLmNwcAppbmRleCAxMDQ5ZjE0OTJjNmQyNTc1
MGY5MTdjMjg3YTdkNWM4YzMwYjQ1NjA3Li5hNWU0ZGE0NjQ1ZmJmODAxY2M3ZjM3ZDNmYTZmZDNi
MmU0ZWU2NGNkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvU2Nyb2xsaW5nL1Jl
bW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yVHJhbnNhY3Rpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJL
aXQyL1NoYXJlZC9TY3JvbGxpbmcvUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3JUcmFuc2FjdGlv
bi5jcHAKQEAgLTM0LDYgKzM0LDEwIEBACiAjaW5jbHVkZSA8V2ViQ29yZS9TY3JvbGxpbmdTdGF0
ZUZpeGVkTm9kZS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvU2Nyb2xsaW5nU3RhdGVTY3JvbGxpbmdO
b2RlLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9TY3JvbGxpbmdTdGF0ZVN0aWNreU5vZGUuaD4KKyNp
bmNsdWRlIDxXZWJDb3JlL1Njcm9sbGluZ1N0YXRlVHJlZS5oPgorI2luY2x1ZGUgPFdlYkNvcmUv
VGV4dFN0cmVhbS5oPgorI2luY2x1ZGUgPHd0Zi90ZXh0L0NTdHJpbmcuaD4KKyNpbmNsdWRlIDx3
dGYvdGV4dC9TdHJpbmdCdWlsZGVyLmg+CiAKICNpbmNsdWRlIDx3dGYvSGFzaE1hcC5oPgogCkBA
IC0yNzcsNiArMjgxLDggQEAgdm9pZCBSZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvclRyYW5zYWN0
aW9uOjplbmNvZGUoSVBDOjpBcmd1bWVudEVuY29kZXImIGVuY29kZXIKICAgICBlbmNvZGVyIDw8
IGhhc05ld1Jvb3ROb2RlOwogCiAgICAgaWYgKG1fc2Nyb2xsaW5nU3RhdGVUcmVlKSB7CisgICAg
ICAgIGVuY29kZXIgPDwgbV9zY3JvbGxpbmdTdGF0ZVRyZWUtPmhhc0NoYW5nZWRQcm9wZXJ0aWVz
KCk7CisKICAgICAgICAgaWYgKGNvbnN0IFNjcm9sbGluZ1N0YXRlTm9kZSogcm9vdE5vZGUgPSBt
X3Njcm9sbGluZ1N0YXRlVHJlZS0+cm9vdFN0YXRlTm9kZSgpKQogICAgICAgICAgICAgZW5jb2Rl
Tm9kZUFuZERlc2NlbmRhbnRzKGVuY29kZXIsICpyb290Tm9kZSk7CiAKQEAgLTMwMSw3ICszMDcs
MTMgQEAgYm9vbCBSZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvclRyYW5zYWN0aW9uOjpkZWNvZGUo
SVBDOjpBcmd1bWVudERlY29kZXImIGRlY29kZXIKICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAg
IAogICAgIG1fc2Nyb2xsaW5nU3RhdGVUcmVlID0gU2Nyb2xsaW5nU3RhdGVUcmVlOjpjcmVhdGUo
KTsKLSAgICAKKworICAgIGJvb2wgaGFzQ2hhbmdlZFByb3BlcnRpZXM7CisgICAgaWYgKCFkZWNv
ZGVyLmRlY29kZShoYXNDaGFuZ2VkUHJvcGVydGllcykpCisgICAgICAgIHJldHVybiBmYWxzZTsK
KworICAgIG1fc2Nyb2xsaW5nU3RhdGVUcmVlLT5zZXRIYXNDaGFuZ2VkUHJvcGVydGllcyhoYXND
aGFuZ2VkUHJvcGVydGllcyk7CisKICAgICBmb3IgKGludCBpID0gMDsgaSA8IG51bU5vZGVzOyAr
K2kpIHsKICAgICAgICAgU2Nyb2xsaW5nTm9kZVR5cGUgbm9kZVR5cGU7CiAgICAgICAgIGlmICgh
ZGVjb2Rlci5kZWNvZGVFbnVtKG5vZGVUeXBlKSkKQEAgLTM1MCw2ICszNjIsMjYxIEBAIGJvb2wg
UmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3JUcmFuc2FjdGlvbjo6ZGVjb2RlKElQQzo6QXJndW1l
bnREZWNvZGVyJiBkZWNvZGVyCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKKyNpZiAhZGVmaW5lZChO
REVCVUcpIHx8ICFMT0dfRElTQUJMRUQKKworY2xhc3MgUmVtb3RlU2Nyb2xsaW5nVHJlZVRleHRT
dHJlYW0gOiBwdWJsaWMgVGV4dFN0cmVhbSB7CitwdWJsaWM6CisgICAgdXNpbmcgVGV4dFN0cmVh
bTo6b3BlcmF0b3I8PDsKKworICAgIFJlbW90ZVNjcm9sbGluZ1RyZWVUZXh0U3RyZWFtKCkKKyAg
ICAgICAgOiBtX2luZGVudCgwKQorICAgIHsKKyAgICB9CisKKyAgICBSZW1vdGVTY3JvbGxpbmdU
cmVlVGV4dFN0cmVhbSYgb3BlcmF0b3I8PChGbG9hdFJlY3QpOworICAgIFJlbW90ZVNjcm9sbGlu
Z1RyZWVUZXh0U3RyZWFtJiBvcGVyYXRvcjw8KFNjcm9sbGluZ05vZGVUeXBlKTsKKworICAgIFJl
bW90ZVNjcm9sbGluZ1RyZWVUZXh0U3RyZWFtJiBvcGVyYXRvcjw8KGNvbnN0IEZpeGVkUG9zaXRp
b25WaWV3cG9ydENvbnN0cmFpbnRzJik7CisgICAgUmVtb3RlU2Nyb2xsaW5nVHJlZVRleHRTdHJl
YW0mIG9wZXJhdG9yPDwoY29uc3QgU3RpY2t5UG9zaXRpb25WaWV3cG9ydENvbnN0cmFpbnRzJik7
CisKKyAgICB2b2lkIGR1bXAoY29uc3QgU2Nyb2xsaW5nU3RhdGVUcmVlJiwgYm9vbCBjaGFuZ2Vk
UHJvcGVydGllc09ubHkgPSB0cnVlKTsKKworICAgIHZvaWQgZHVtcChjb25zdCBTY3JvbGxpbmdT
dGF0ZU5vZGUmLCBib29sIGNoYW5nZWRQcm9wZXJ0aWVzT25seSA9IHRydWUpOworICAgIHZvaWQg
ZHVtcChjb25zdCBTY3JvbGxpbmdTdGF0ZVNjcm9sbGluZ05vZGUmLCBib29sIGNoYW5nZWRQcm9w
ZXJ0aWVzT25seSA9IHRydWUpOworICAgIHZvaWQgZHVtcChjb25zdCBTY3JvbGxpbmdTdGF0ZUZp
eGVkTm9kZSYsIGJvb2wgY2hhbmdlZFByb3BlcnRpZXNPbmx5ID0gdHJ1ZSk7CisgICAgdm9pZCBk
dW1wKGNvbnN0IFNjcm9sbGluZ1N0YXRlU3RpY2t5Tm9kZSYsIGJvb2wgY2hhbmdlZFByb3BlcnRp
ZXNPbmx5ID0gdHJ1ZSk7CisKKyAgICB2b2lkIGluY3JlYXNlSW5kZW50KCkgeyArK21faW5kZW50
OyB9CisgICAgdm9pZCBkZWNyZWFzZUluZGVudCgpIHsgLS1tX2luZGVudDsgQVNTRVJUKG1faW5k
ZW50ID49IDApOyB9CisKKyAgICB2b2lkIHdyaXRlSW5kZW50KCk7CisKK3ByaXZhdGU6CisgICAg
dm9pZCByZWN1cnNpdmVEdW1wTm9kZXMoY29uc3QgU2Nyb2xsaW5nU3RhdGVOb2RlJiwgYm9vbCBj
aGFuZ2VkUHJvcGVydGllc09ubHkpOworCisgICAgaW50IG1faW5kZW50OworfTsKKwordm9pZCBS
ZW1vdGVTY3JvbGxpbmdUcmVlVGV4dFN0cmVhbTo6d3JpdGVJbmRlbnQoKQoreworICAgIGZvciAo
aW50IGkgPSAwOyBpIDwgbV9pbmRlbnQ7ICsraSkKKyAgICAgICAgKnRoaXMgPDwgIiAgIjsKK30K
KwordGVtcGxhdGUgPGNsYXNzIFQ+CitzdGF0aWMgdm9pZCBkdW1wUHJvcGVydHkoUmVtb3RlU2Ny
b2xsaW5nVHJlZVRleHRTdHJlYW0mIHRzLCBTdHJpbmcgbmFtZSwgVCB2YWx1ZSkKK3sKKyAgICB0
cyA8PCAiXG4iOworICAgIHRzLmluY3JlYXNlSW5kZW50KCk7CisgICAgdHMud3JpdGVJbmRlbnQo
KTsKKyAgICB0cyA8PCAiKCIgPDwgbmFtZSA8PCAiICI7CisgICAgdHMgPDwgdmFsdWUgPDwgIiki
OworICAgIHRzLmRlY3JlYXNlSW5kZW50KCk7Cit9CisKK1JlbW90ZVNjcm9sbGluZ1RyZWVUZXh0
U3RyZWFtJiBSZW1vdGVTY3JvbGxpbmdUcmVlVGV4dFN0cmVhbTo6b3BlcmF0b3I8PChGbG9hdFJl
Y3QgcmVjdCkKK3sKKyAgICBSZW1vdGVTY3JvbGxpbmdUcmVlVGV4dFN0cmVhbSYgdHMgPSAqdGhp
czsKKyAgICB0cyA8PCByZWN0LngoKSA8PCAiICIgPDwgcmVjdC55KCkgPDwgIiAiIDw8IHJlY3Qu
d2lkdGgoKSA8PCAiICIgPDwgcmVjdC5oZWlnaHQoKTsKKyAgICByZXR1cm4gdHM7Cit9CisKK1Jl
bW90ZVNjcm9sbGluZ1RyZWVUZXh0U3RyZWFtJiBSZW1vdGVTY3JvbGxpbmdUcmVlVGV4dFN0cmVh
bTo6b3BlcmF0b3I8PChTY3JvbGxpbmdOb2RlVHlwZSBub2RlVHlwZSkKK3sKKyAgICBSZW1vdGVT
Y3JvbGxpbmdUcmVlVGV4dFN0cmVhbSYgdHMgPSAqdGhpczsKKworICAgIHN3aXRjaCAobm9kZVR5
cGUpIHsKKyAgICBjYXNlIEZyYW1lU2Nyb2xsaW5nTm9kZTogdHMgPDwgImZyYW1lLXNjcm9sbGlu
ZyI7IGJyZWFrOworICAgIGNhc2UgT3ZlcmZsb3dTY3JvbGxpbmdOb2RlOiB0cyA8PCAib3ZlcmZs
b3ctc2Nyb2xsaW5nIjsgYnJlYWs7CisgICAgY2FzZSBGaXhlZE5vZGU6IHRzIDw8ICJmaXhlZCI7
IGJyZWFrOworICAgIGNhc2UgU3RpY2t5Tm9kZTogdHMgPDwgInN0aWNreSI7IGJyZWFrOworICAg
IH0KKworICAgIHJldHVybiB0czsKK30KKworUmVtb3RlU2Nyb2xsaW5nVHJlZVRleHRTdHJlYW0m
IFJlbW90ZVNjcm9sbGluZ1RyZWVUZXh0U3RyZWFtOjpvcGVyYXRvcjw8KGNvbnN0IEZpeGVkUG9z
aXRpb25WaWV3cG9ydENvbnN0cmFpbnRzJiBjb25zdHJhaW50cykKK3sKKyAgICBSZW1vdGVTY3Jv
bGxpbmdUcmVlVGV4dFN0cmVhbSYgdHMgPSAqdGhpczsKKworICAgIGR1bXBQcm9wZXJ0eSh0cywg
InZpZXdwb3J0LXJlY3QtYXQtbGFzdC1sYXlvdXQiLCBjb25zdHJhaW50cy52aWV3cG9ydFJlY3RB
dExhc3RMYXlvdXQoKSk7CisgICAgZHVtcFByb3BlcnR5KHRzLCAibGF5ZXItcG9zaXRpb24tYXQt
bGFzdC1sYXlvdXQiLCBjb25zdHJhaW50cy5sYXllclBvc2l0aW9uQXRMYXN0TGF5b3V0KCkpOwor
CisgICAgcmV0dXJuIHRzOworfQorCitSZW1vdGVTY3JvbGxpbmdUcmVlVGV4dFN0cmVhbSYgUmVt
b3RlU2Nyb2xsaW5nVHJlZVRleHRTdHJlYW06Om9wZXJhdG9yPDwoY29uc3QgU3RpY2t5UG9zaXRp
b25WaWV3cG9ydENvbnN0cmFpbnRzJiBjb25zdHJhaW50cykKK3sKKyAgICBSZW1vdGVTY3JvbGxp
bmdUcmVlVGV4dFN0cmVhbSYgdHMgPSAqdGhpczsKKworICAgIGR1bXBQcm9wZXJ0eSh0cywgInN0
aWNreSBwb3NpdGlvbi1hdC1sYXN0LWxheW91dCIsIGNvbnN0cmFpbnRzLnN0aWNreU9mZnNldEF0
TGFzdExheW91dCgpKTsKKyAgICBkdW1wUHJvcGVydHkodHMsICJsYXllci1wb3NpdGlvbi1hdC1s
YXN0LWxheW91dCIsIGNvbnN0cmFpbnRzLmxheWVyUG9zaXRpb25BdExhc3RMYXlvdXQoKSk7CisK
KyAgICByZXR1cm4gdHM7Cit9CisKK3ZvaWQgUmVtb3RlU2Nyb2xsaW5nVHJlZVRleHRTdHJlYW06
OmR1bXAoY29uc3QgU2Nyb2xsaW5nU3RhdGVOb2RlJiBub2RlLCBib29sIGNoYW5nZWRQcm9wZXJ0
aWVzT25seSkKK3sKKyAgICBSZW1vdGVTY3JvbGxpbmdUcmVlVGV4dFN0cmVhbSYgdHMgPSAqdGhp
czsKKworICAgIHRzIDw8ICIobm9kZSAiIDw8IG5vZGUuc2Nyb2xsaW5nTm9kZUlEKCk7CisKKyAg
ICBkdW1wUHJvcGVydHkodHMsICJ0eXBlIiwgbm9kZS5ub2RlVHlwZSgpKTsKKworICAgIHN3aXRj
aCAobm9kZS5ub2RlVHlwZSgpKSB7CisgICAgY2FzZSBGcmFtZVNjcm9sbGluZ05vZGU6CisgICAg
Y2FzZSBPdmVyZmxvd1Njcm9sbGluZ05vZGU6CisgICAgICAgIGR1bXAodG9TY3JvbGxpbmdTdGF0
ZVNjcm9sbGluZ05vZGUobm9kZSksIGNoYW5nZWRQcm9wZXJ0aWVzT25seSk7CisgICAgICAgIGJy
ZWFrOworICAgIGNhc2UgRml4ZWROb2RlOgorICAgICAgICBkdW1wKHRvU2Nyb2xsaW5nU3RhdGVG
aXhlZE5vZGUobm9kZSksIGNoYW5nZWRQcm9wZXJ0aWVzT25seSk7CisgICAgICAgIGJyZWFrOwor
ICAgIGNhc2UgU3RpY2t5Tm9kZToKKyAgICAgICAgZHVtcCh0b1Njcm9sbGluZ1N0YXRlU3RpY2t5
Tm9kZShub2RlKSwgY2hhbmdlZFByb3BlcnRpZXNPbmx5KTsKKyAgICAgICAgYnJlYWs7CisgICAg
fQorfQorCit2b2lkIFJlbW90ZVNjcm9sbGluZ1RyZWVUZXh0U3RyZWFtOjpkdW1wKGNvbnN0IFNj
cm9sbGluZ1N0YXRlU2Nyb2xsaW5nTm9kZSYgbm9kZSwgYm9vbCBjaGFuZ2VkUHJvcGVydGllc09u
bHkpCit7CisgICAgUmVtb3RlU2Nyb2xsaW5nVHJlZVRleHRTdHJlYW0mIHRzID0gKnRoaXM7CisK
KyAgICBpZiAoIWNoYW5nZWRQcm9wZXJ0aWVzT25seSB8fCBub2RlLmhhc0NoYW5nZWRQcm9wZXJ0
eShTY3JvbGxpbmdTdGF0ZVNjcm9sbGluZ05vZGU6OlZpZXdwb3J0U2l6ZSkpCisgICAgICAgIGR1
bXBQcm9wZXJ0eSh0cywgInZpZXdwb3J0LXNpemUiLCBub2RlLnZpZXdwb3J0U2l6ZSgpKTsKKwor
ICAgIGlmICghY2hhbmdlZFByb3BlcnRpZXNPbmx5IHx8IG5vZGUuaGFzQ2hhbmdlZFByb3BlcnR5
KFNjcm9sbGluZ1N0YXRlU2Nyb2xsaW5nTm9kZTo6VG90YWxDb250ZW50c1NpemUpKQorICAgICAg
ICBkdW1wUHJvcGVydHkodHMsICJ0b3RhbC1jb250ZW50cy1zaXplIiwgbm9kZS50b3RhbENvbnRl
bnRzU2l6ZSgpKTsKKworICAgIGlmICghY2hhbmdlZFByb3BlcnRpZXNPbmx5IHx8IG5vZGUuaGFz
Q2hhbmdlZFByb3BlcnR5KFNjcm9sbGluZ1N0YXRlU2Nyb2xsaW5nTm9kZTo6U2Nyb2xsUG9zaXRp
b24pKQorICAgICAgICBkdW1wUHJvcGVydHkodHMsICJzY3JvbGwtcG9zaXRpb24iLCBub2RlLnNj
cm9sbFBvc2l0aW9uKCkpOworCisgICAgaWYgKCFjaGFuZ2VkUHJvcGVydGllc09ubHkgfHwgbm9k
ZS5oYXNDaGFuZ2VkUHJvcGVydHkoU2Nyb2xsaW5nU3RhdGVTY3JvbGxpbmdOb2RlOjpTY3JvbGxP
cmlnaW4pKQorICAgICAgICBkdW1wUHJvcGVydHkodHMsICJzY3JvbGwtb3JpZ2luIiwgbm9kZS5z
Y3JvbGxPcmlnaW4oKSk7CisKKyAgICBpZiAoIWNoYW5nZWRQcm9wZXJ0aWVzT25seSB8fCBub2Rl
Lmhhc0NoYW5nZWRQcm9wZXJ0eShTY3JvbGxpbmdTdGF0ZVNjcm9sbGluZ05vZGU6OkZyYW1lU2Nh
bGVGYWN0b3IpKQorICAgICAgICBkdW1wUHJvcGVydHkodHMsICJmcmFtZS1zY2FsZS1mYWN0b3Ii
LCBub2RlLmZyYW1lU2NhbGVGYWN0b3IoKSk7CisKKyAgICAvLyBGSVhNRTogZHVtcCBub25GYXN0
U2Nyb2xsYWJsZVJlZ2lvbgorICAgIC8vIEZJWE1FOiBkdW1wIHdoZWVsRXZlbnRIYW5kbGVyQ291
bnQKKyAgICAvLyBGSVhNRTogZHVtcCBzeW5jaHJvbm91c1Njcm9sbGluZ1JlYXNvbnMKKyAgICAv
LyBGSVhNRTogZHVtcCBzY3JvbGxhYmxlQXJlYVBhcmFtZXRlcnMKKyAgICAvLyBGSVhNRTogZHVt
cCBzY3JvbGxCZWhhdmlvckZvckZpeGVkRWxlbWVudHMKKworICAgIGlmICghY2hhbmdlZFByb3Bl
cnRpZXNPbmx5IHx8IG5vZGUuaGFzQ2hhbmdlZFByb3BlcnR5KFNjcm9sbGluZ1N0YXRlU2Nyb2xs
aW5nTm9kZTo6UmVxdWVzdGVkU2Nyb2xsUG9zaXRpb24pKSB7CisgICAgICAgIGR1bXBQcm9wZXJ0
eSh0cywgInJlcXVlc3RlZC1zY3JvbGwtcG9zaXRpb24iLCBub2RlLnJlcXVlc3RlZFNjcm9sbFBv
c2l0aW9uKCkpOworICAgICAgICBkdW1wUHJvcGVydHkodHMsICJyZXF1ZXN0ZWQtc2Nyb2xsLXBv
c2l0aW9uLWlzLXByb2dyYW1hdGljIiwgbm9kZS5yZXF1ZXN0ZWRTY3JvbGxQb3NpdGlvblJlcHJl
c2VudHNQcm9ncmFtbWF0aWNTY3JvbGwoKSk7CisgICAgfQorCisgICAgaWYgKCFjaGFuZ2VkUHJv
cGVydGllc09ubHkgfHwgbm9kZS5oYXNDaGFuZ2VkUHJvcGVydHkoU2Nyb2xsaW5nU3RhdGVTY3Jv
bGxpbmdOb2RlOjpIZWFkZXJIZWlnaHQpKQorICAgICAgICBkdW1wUHJvcGVydHkodHMsICJoZWFk
ZXItaGVpZ2h0Iiwgbm9kZS5oZWFkZXJIZWlnaHQoKSk7CisKKyAgICBpZiAoIWNoYW5nZWRQcm9w
ZXJ0aWVzT25seSB8fCBub2RlLmhhc0NoYW5nZWRQcm9wZXJ0eShTY3JvbGxpbmdTdGF0ZVNjcm9s
bGluZ05vZGU6OkZvb3RlckhlaWdodCkpCisgICAgICAgIGR1bXBQcm9wZXJ0eSh0cywgImZvb3Rl
ci1oZWlnaHQiLCBub2RlLmZvb3RlckhlaWdodCgpKTsKKworICAgIGlmICghY2hhbmdlZFByb3Bl
cnRpZXNPbmx5IHx8IG5vZGUuaGFzQ2hhbmdlZFByb3BlcnR5KFNjcm9sbGluZ1N0YXRlU2Nyb2xs
aW5nTm9kZTo6VG9wQ29udGVudEluc2V0KSkKKyAgICAgICAgZHVtcFByb3BlcnR5KHRzLCAidG9w
LWNvbnRlbnQtaW5zZXQiLCBub2RlLnRvcENvbnRlbnRJbnNldCgpKTsKKworICAgIGlmICghY2hh
bmdlZFByb3BlcnRpZXNPbmx5IHx8IG5vZGUuaGFzQ2hhbmdlZFByb3BlcnR5KFNjcm9sbGluZ1N0
YXRlU2Nyb2xsaW5nTm9kZTo6U2Nyb2xsZWRDb250ZW50c0xheWVyKSkKKyAgICAgICAgZHVtcFBy
b3BlcnR5KHRzLCAic2Nyb2xsZWQtY29udGVudHMtbGF5ZXIiLCBzdGF0aWNfY2FzdDxHcmFwaGlj
c0xheWVyOjpQbGF0Zm9ybUxheWVySUQ+KG5vZGUuc2Nyb2xsZWRDb250ZW50c0xheWVyKCkpKTsK
KworICAgIGlmICghY2hhbmdlZFByb3BlcnRpZXNPbmx5IHx8IG5vZGUuaGFzQ2hhbmdlZFByb3Bl
cnR5KFNjcm9sbGluZ1N0YXRlU2Nyb2xsaW5nTm9kZTo6Q291bnRlclNjcm9sbGluZ0xheWVyKSkK
KyAgICAgICAgZHVtcFByb3BlcnR5KHRzLCAiY291bnRlci1zY3JvbGxpbmctbGF5ZXIiLCBzdGF0
aWNfY2FzdDxHcmFwaGljc0xheWVyOjpQbGF0Zm9ybUxheWVySUQ+KG5vZGUuY291bnRlclNjcm9s
bGluZ0xheWVyKCkpKTsKKworICAgIGlmICghY2hhbmdlZFByb3BlcnRpZXNPbmx5IHx8IG5vZGUu
aGFzQ2hhbmdlZFByb3BlcnR5KFNjcm9sbGluZ1N0YXRlU2Nyb2xsaW5nTm9kZTo6SW5zZXRDbGlw
TGF5ZXIpKQorICAgICAgICBkdW1wUHJvcGVydHkodHMsICJjbGlwLWluc2V0LWxheWVyIiwgc3Rh
dGljX2Nhc3Q8R3JhcGhpY3NMYXllcjo6UGxhdGZvcm1MYXllcklEPihub2RlLmluc2V0Q2xpcExh
eWVyKCkpKTsKKworICAgIGlmICghY2hhbmdlZFByb3BlcnRpZXNPbmx5IHx8IG5vZGUuaGFzQ2hh
bmdlZFByb3BlcnR5KFNjcm9sbGluZ1N0YXRlU2Nyb2xsaW5nTm9kZTo6SGVhZGVyTGF5ZXIpKQor
ICAgICAgICBkdW1wUHJvcGVydHkodHMsICJoZWFkZXItbGF5ZXIiLCBzdGF0aWNfY2FzdDxHcmFw
aGljc0xheWVyOjpQbGF0Zm9ybUxheWVySUQ+KG5vZGUuaGVhZGVyTGF5ZXIoKSkpOworCisgICAg
aWYgKCFjaGFuZ2VkUHJvcGVydGllc09ubHkgfHwgbm9kZS5oYXNDaGFuZ2VkUHJvcGVydHkoU2Ny
b2xsaW5nU3RhdGVTY3JvbGxpbmdOb2RlOjpGb290ZXJMYXllcikpCisgICAgICAgIGR1bXBQcm9w
ZXJ0eSh0cywgImZvb3Rlci1sYXllciIsIHN0YXRpY19jYXN0PEdyYXBoaWNzTGF5ZXI6OlBsYXRm
b3JtTGF5ZXJJRD4obm9kZS5mb290ZXJMYXllcigpKSk7Cit9CisKK3ZvaWQgUmVtb3RlU2Nyb2xs
aW5nVHJlZVRleHRTdHJlYW06OmR1bXAoY29uc3QgU2Nyb2xsaW5nU3RhdGVGaXhlZE5vZGUmIG5v
ZGUsIGJvb2wgY2hhbmdlZFByb3BlcnRpZXNPbmx5KQoreworICAgIFJlbW90ZVNjcm9sbGluZ1Ry
ZWVUZXh0U3RyZWFtJiB0cyA9ICp0aGlzOworCisgICAgdHMgPDwgbm9kZS52aWV3cG9ydENvbnN0
cmFpbnRzKCk7Cit9CisKK3ZvaWQgUmVtb3RlU2Nyb2xsaW5nVHJlZVRleHRTdHJlYW06OmR1bXAo
Y29uc3QgU2Nyb2xsaW5nU3RhdGVTdGlja3lOb2RlJiBub2RlLCBib29sIGNoYW5nZWRQcm9wZXJ0
aWVzT25seSkKK3sKKyAgICBSZW1vdGVTY3JvbGxpbmdUcmVlVGV4dFN0cmVhbSYgdHMgPSAqdGhp
czsKKworICAgIHRzIDw8IG5vZGUudmlld3BvcnRDb25zdHJhaW50cygpOworfQorCit2b2lkIFJl
bW90ZVNjcm9sbGluZ1RyZWVUZXh0U3RyZWFtOjpyZWN1cnNpdmVEdW1wTm9kZXMoY29uc3QgU2Ny
b2xsaW5nU3RhdGVOb2RlJiBub2RlLCBib29sIGNoYW5nZWRQcm9wZXJ0aWVzT25seSkKK3sKKyAg
ICBSZW1vdGVTY3JvbGxpbmdUcmVlVGV4dFN0cmVhbSYgdHMgPSAqdGhpczsKKworICAgIHRzIDw8
ICJcbiI7CisgICAgdHMuaW5jcmVhc2VJbmRlbnQoKTsKKyAgICB0cy53cml0ZUluZGVudCgpOwor
ICAgIGR1bXAobm9kZSwgY2hhbmdlZFByb3BlcnRpZXNPbmx5KTsKKworICAgIGlmIChub2RlLmNo
aWxkcmVuKCkpIHsKKyAgICAgICAgdHMgPDwgIlxuIjsKKyAgICAgICAgdHMuaW5jcmVhc2VJbmRl
bnQoKTsKKyAgICAgICAgdHMud3JpdGVJbmRlbnQoKTsKKyAgICAgICAgdHMgPDwgIihjaGlsZHJl
biI7CisgICAgICAgIHRzLmluY3JlYXNlSW5kZW50KCk7CisKKyAgICAgICAgZm9yIChhdXRvJiBj
aGlsZE5vZGUgOiAqbm9kZS5jaGlsZHJlbigpKQorICAgICAgICAgICAgcmVjdXJzaXZlRHVtcE5v
ZGVzKCpjaGlsZE5vZGUsIGNoYW5nZWRQcm9wZXJ0aWVzT25seSk7CisKKyAgICAgICAgdHMgPDwg
IikiOworICAgICAgICB0cy5kZWNyZWFzZUluZGVudCgpOworICAgICAgICB0cy5kZWNyZWFzZUlu
ZGVudCgpOworICAgIH0KKworICAgIHRzIDw8ICIpIjsKKyAgICB0cy5kZWNyZWFzZUluZGVudCgp
OworfQorCit2b2lkIFJlbW90ZVNjcm9sbGluZ1RyZWVUZXh0U3RyZWFtOjpkdW1wKGNvbnN0IFNj
cm9sbGluZ1N0YXRlVHJlZSYgc3RhdGVUcmVlLCBib29sIGNoYW5nZWRQcm9wZXJ0aWVzT25seSkK
K3sKKyAgICBSZW1vdGVTY3JvbGxpbmdUcmVlVGV4dFN0cmVhbSYgdHMgPSAqdGhpczsKKworICAg
IGR1bXBQcm9wZXJ0eSh0cywgImhhcyBjaGFuZ2VkIHByb3BlcnRpZXMiLCBzdGF0ZVRyZWUuaGFz
Q2hhbmdlZFByb3BlcnRpZXMoKSk7CisgICAgZHVtcFByb3BlcnR5KHRzLCAiaGFzIG5ldyByb290
IG5vZGUiLCBzdGF0ZVRyZWUuaGFzTmV3Um9vdFN0YXRlTm9kZSgpKTsKKworICAgIGlmIChzdGF0
ZVRyZWUucm9vdFN0YXRlTm9kZSgpKQorICAgICAgICByZWN1cnNpdmVEdW1wTm9kZXMoKnN0YXRl
VHJlZS5yb290U3RhdGVOb2RlKCksIGNoYW5nZWRQcm9wZXJ0aWVzT25seSk7CisKKyAgICBpZiAo
IXN0YXRlVHJlZS5yZW1vdmVkTm9kZXMoKS5pc0VtcHR5KCkpCisgICAgICAgIGR1bXBQcm9wZXJ0
eTxWZWN0b3I8U2Nyb2xsaW5nTm9kZUlEPj4odHMsICJyZW1vdmVkLW5vZGVzIiwgc3RhdGVUcmVl
LnJlbW92ZWROb2RlcygpKTsKK30KKworV1RGOjpDU3RyaW5nIFJlbW90ZVNjcm9sbGluZ0Nvb3Jk
aW5hdG9yVHJhbnNhY3Rpb246OmRlc2NyaXB0aW9uKCkgY29uc3QKK3sKKyAgICBSZW1vdGVTY3Jv
bGxpbmdUcmVlVGV4dFN0cmVhbSB0czsKKworICAgIHRzIDw8ICIoXG4iOworICAgIHRzLmluY3Jl
YXNlSW5kZW50KCk7CisgICAgdHMud3JpdGVJbmRlbnQoKTsKKyAgICB0cyA8PCAiKHNjcm9sbGlu
ZyBzdGF0ZSB0cmVlIjsKKworICAgIGlmIChtX3Njcm9sbGluZ1N0YXRlVHJlZSkgeworICAgICAg
ICBpZiAoIW1fc2Nyb2xsaW5nU3RhdGVUcmVlLT5oYXNDaGFuZ2VkUHJvcGVydGllcygpKQorICAg
ICAgICAgICAgdHMgPDwgIiAtIG5vIGNoYW5nZXMiOworICAgICAgICBlbHNlCisgICAgICAgICAg
ICB0cy5kdW1wKCptX3Njcm9sbGluZ1N0YXRlVHJlZS5nZXQoKSk7CisgICAgfSBlbHNlCisgICAg
ICAgIHRzIDw8ICIgLSBub25lIjsKKworICAgIHRzIDw8ICIpXG4iOworICAgIHRzLmRlY3JlYXNl
SW5kZW50KCk7CisKKyAgICByZXR1cm4gdHMucmVsZWFzZSgpLnV0ZjgoKTsKK30KKwordm9pZCBS
ZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvclRyYW5zYWN0aW9uOjpkdW1wKCkgY29uc3QKK3sKKyAg
ICBmcHJpbnRmKHN0ZGVyciwgIiVzIiwgZGVzY3JpcHRpb24oKS5kYXRhKCkpOworfQorI2VuZGlm
CisKIH0gLy8gbmFtZXNwYWNlIFdlYktpdAogCiAjZWxzZSAvLyAhRU5BQkxFKEFTWU5DX1NDUk9M
TElORykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9TY3JvbGxpbmcvUmVtb3Rl
U2Nyb2xsaW5nQ29vcmRpbmF0b3JUcmFuc2FjdGlvbi5oIGIvU291cmNlL1dlYktpdDIvU2hhcmVk
L1Njcm9sbGluZy9SZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvclRyYW5zYWN0aW9uLmgKaW5kZXgg
NjY4YWM3MTUxOTM3ZDllZWVlNTI3NTQxYjM0ODBlOGNiMjI5ZDhiYi4uOTRhNTExMmI1MjkzN2Q1
YTllNjM2MjAzMTZhMTZiOWEyMTM5ZDNmYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hh
cmVkL1Njcm9sbGluZy9SZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvclRyYW5zYWN0aW9uLmgKKysr
IGIvU291cmNlL1dlYktpdDIvU2hhcmVkL1Njcm9sbGluZy9SZW1vdGVTY3JvbGxpbmdDb29yZGlu
YXRvclRyYW5zYWN0aW9uLmgKQEAgLTQ4LDYgKzQ4LDExIEBAIHB1YmxpYzoKICAgICB2b2lkIGVu
Y29kZShJUEM6OkFyZ3VtZW50RW5jb2RlciYpIGNvbnN0OwogICAgIHN0YXRpYyBib29sIGRlY29k
ZShJUEM6OkFyZ3VtZW50RGVjb2RlciYsIFJlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yVHJhbnNh
Y3Rpb24mKTsKIAorI2lmICFkZWZpbmVkKE5ERUJVRykgfHwgIUxPR19ESVNBQkxFRAorICAgIFdU
Rjo6Q1N0cmluZyBkZXNjcmlwdGlvbigpIGNvbnN0OworICAgIHZvaWQgZHVtcCgpIGNvbnN0Owor
I2VuZGlmCisKIHByaXZhdGU6CiAjaWYgRU5BQkxFKEFTWU5DX1NDUk9MTElORykKICAgICBib29s
IGRlY29kZShJUEM6OkFyZ3VtZW50RGVjb2RlciYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL21hYy9SZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYVByb3h5Lm1tIGIvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL21hYy9SZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYVByb3h5
Lm1tCmluZGV4IDQyMjlkYzBlNTFkNmY4YzU2MTg1ZmMxZmRmMzBlZmU2NzBiN2E1ZDYuLmFiNjI2
YTQyNzhkYjBiMGY3NWU5OWZhOGMwNDIyM2JlYTY3Y2YwOGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9tYWMvUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWFQcm94eS5tbQor
KysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvbWFjL1JlbW90ZUxheWVyVHJlZURyYXdpbmdB
cmVhUHJveHkubW0KQEAgLTMwLDYgKzMwLDcgQEAKICNpbXBvcnQgIlJlbW90ZUxheWVyVHJlZURy
YXdpbmdBcmVhUHJveHlNZXNzYWdlcy5oIgogI2ltcG9ydCAiRHJhd2luZ0FyZWFNZXNzYWdlcy5o
IgogI2ltcG9ydCAiUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3JQcm94eS5oIgorI2ltcG9ydCAi
UmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3JUcmFuc2FjdGlvbi5oIgogI2ltcG9ydCAiV2ViUGFn
ZVByb3h5LmgiCiAjaW1wb3J0ICJXZWJQcm9jZXNzUHJveHkuaCIKICNpbXBvcnQgPFF1YXJ0ekNv
cmUvUXVhcnR6Q29yZS5oPgpAQCAtMTE4LDYgKzExOSw3IEBAIHZvaWQgUmVtb3RlTGF5ZXJUcmVl
RHJhd2luZ0FyZWFQcm94eTo6c2VuZFVwZGF0ZUdlb21ldHJ5KCkKIHZvaWQgUmVtb3RlTGF5ZXJU
cmVlRHJhd2luZ0FyZWFQcm94eTo6Y29tbWl0TGF5ZXJUcmVlKGNvbnN0IFJlbW90ZUxheWVyVHJl
ZVRyYW5zYWN0aW9uJiBsYXllclRyZWVUcmFuc2FjdGlvbiwgY29uc3QgUmVtb3RlU2Nyb2xsaW5n
Q29vcmRpbmF0b3JUcmFuc2FjdGlvbiYgc2Nyb2xsaW5nVHJlZVRyYW5zYWN0aW9uKQogewogICAg
IExPRyhSZW1vdGVMYXllclRyZWUsICIlcyIsIGxheWVyVHJlZVRyYW5zYWN0aW9uLmRlc2NyaXB0
aW9uKCkuZGF0YSgpKTsKKyAgICBMT0coUmVtb3RlTGF5ZXJUcmVlLCAiJXMiLCBzY3JvbGxpbmdU
cmVlVHJhbnNhY3Rpb24uZGVzY3JpcHRpb24oKS5kYXRhKCkpOwogCiAgICAgaWYgKG1fcmVtb3Rl
TGF5ZXJUcmVlSG9zdC51cGRhdGVMYXllclRyZWUobGF5ZXJUcmVlVHJhbnNhY3Rpb24pKQogICAg
ICAgICBtX3dlYlBhZ2VQcm94eS0+c2V0QWNjZWxlcmF0ZWRDb21wb3NpdGluZ1Jvb3RMYXllciht
X3JlbW90ZUxheWVyVHJlZUhvc3Qucm9vdExheWVyKCkpOwo=
</data>
<flag name="review"
          id="255373"
          type_id="1"
          status="+"
          setter="bdakin"
    />
          </attachment>
      

    </bug>

</bugzilla>