<?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>93558</bug_id>
          
          <creation_ts>2012-08-08 17:15:01 -0700</creation_ts>
          <short_desc>[chromium] Pass mask scale and offset to shaders for correct masking</short_desc>
          <delta_ts>2012-08-09 12:39:47 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Layout and Rendering</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Shawn Singh">shawnsingh</reporter>
          <assigned_to name="Shawn Singh">shawnsingh</assigned_to>
          <cc>cc-bugs</cc>
    
    <cc>dglazkov</cc>
    
    <cc>enne</cc>
    
    <cc>jamesr</cc>
    
    <cc>reveman</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>690976</commentid>
    <comment_count>0</comment_count>
    <who name="Shawn Singh">shawnsingh</who>
    <bug_when>2012-08-08 17:15:01 -0700</bug_when>
    <thetext>In the current code:
(1) masks force us to create a renderSurface for that layer
(2) masks are drawn 1:1 with respect to the renderSurface, but they should be drawn 1:1 with respect to the layer that owns the surface.

usually this isn&apos;t a problem, but if the renderSurface is clipped by something else (for example, the viewport), this causes the renderSurface to resize to the clipped area, and the mask incorrectly resizes along with the surface.

The solution we have chosen at this time is to pass the scale/offset data that the mask needs to correctly compute its texture coordinates in the fragment shader.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>690984</commentid>
    <comment_count>1</comment_count>
      <attachid>157345</attachid>
    <who name="Shawn Singh">shawnsingh</who>
    <bug_when>2012-08-08 17:18:38 -0700</bug_when>
    <thetext>Created attachment 157345
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>690991</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-08-08 17:20:51 -0700</bug_when>
    <thetext>Attachment 157345 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;Source/WebCore/platform/graphics/chromium/...&quot; exit_code: 1
Source/WebCore/platform/graphics/chromium/ShaderChromium.cpp:697:  v_maskTexCoord is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
Source/WebCore/platform/graphics/chromium/ShaderChromium.cpp:750:  v_maskTexCoord is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
Total errors found: 2 in 6 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>690993</commentid>
    <comment_count>3</comment_count>
    <who name="Shawn Singh">shawnsingh</who>
    <bug_when>2012-08-08 17:22:30 -0700</bug_when>
    <thetext>
Few points to make:

(1) the style checker will complain, but this seems to fit the style we had for written shaders already.

(2) I will be writing layout tests for this, but it&apos;s ready for review otherwise.  I suspect you guys may have something to say about how we could group these new values into fewer args that get passed around. =)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>691000</commentid>
    <comment_count>4</comment_count>
      <attachid>157345</attachid>
    <who name="Shawn Singh">shawnsingh</who>
    <bug_when>2012-08-08 17:32:38 -0700</bug_when>
    <thetext>Comment on attachment 157345
Patch

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

&gt;&gt; Source/WebCore/platform/graphics/chromium/ShaderChromium.cpp:750
&gt;&gt; +            vec2 v_maskTexCoord = vec2(maskTexCoordOffset.x + v_texCoord.x * maskTexCoordScale.x, maskTexCoordOffset.y + v_texCoord.y * maskTexCoordScale.y);
&gt; 
&gt; v_maskTexCoord is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]

On second thought, I shouldn&apos;t be prefixing this with v_ anyway, so this won&apos;t be an issue on the next patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>691016</commentid>
    <comment_count>5</comment_count>
      <attachid>157345</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-08-08 17:43:32 -0700</bug_when>
    <thetext>Comment on attachment 157345
Patch

Attachment 157345 did not pass chromium-ews (chromium-xvfb):
Output: http://queues.webkit.org/results/13452834</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>691652</commentid>
    <comment_count>6</comment_count>
      <attachid>157504</attachid>
    <who name="Shawn Singh">shawnsingh</who>
    <bug_when>2012-08-09 11:49:43 -0700</bug_when>
    <thetext>Created attachment 157504
Added layout test and fixed errors</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>691688</commentid>
    <comment_count>7</comment_count>
      <attachid>157504</attachid>
    <who name="Adrienne Walker">enne</who>
    <bug_when>2012-08-09 12:28:27 -0700</bug_when>
    <thetext>Comment on attachment 157504
Added layout test and fixed errors

R=me.  Nice layout test!  Please rebaseline this after landing.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>691693</commentid>
    <comment_count>8</comment_count>
    <who name="Shawn Singh">shawnsingh</who>
    <bug_when>2012-08-09 12:39:47 -0700</bug_when>
    <thetext>Committed r125193: &lt;http://trac.webkit.org/changeset/125193&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>157345</attachid>
            <date>2012-08-08 17:18:38 -0700</date>
            <delta_ts>2012-08-09 11:49:40 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-93558-20120808171812.patch</filename>
            <type>text/plain</type>
            <size>15685</size>
            <attacher name="Shawn Singh">shawnsingh</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI1MTAxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9MYXllclJlbmRlcmVyQ2hyb21pdW0uY3BwIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vTGF5ZXJSZW5kZXJlckNocm9t
aXVtLmNwcAppbmRleCA3ZWExYzRiYzcyMzQ4NWEwZjJmNjYyOGU0MWI5MGZhMDA3OThmMGZjLi5k
MmM2Y2U1MDAzZjk2MDc5ZGU2ZWMxMGQ4NGJiODEzNjVmZDA1YzA1IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9MYXllclJlbmRlcmVyQ2hyb21p
dW0uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0xh
eWVyUmVuZGVyZXJDaHJvbWl1bS5jcHAKQEAgLTY4Niw2ICs2ODYsOCBAQCB2b2lkIExheWVyUmVu
ZGVyZXJDaHJvbWl1bTo6ZHJhd1JlbmRlclBhc3NRdWFkKERyYXdpbmdGcmFtZSYgZnJhbWUsIGNv
bnN0IENDUmVuZAogICAgIGludCBzaGFkZXJRdWFkTG9jYXRpb24gPSAtMTsKICAgICBpbnQgc2hh
ZGVyRWRnZUxvY2F0aW9uID0gLTE7CiAgICAgaW50IHNoYWRlck1hc2tTYW1wbGVyTG9jYXRpb24g
PSAtMTsKKyAgICBpbnQgc2hhZGVyTWFza1RleENvb3JkU2NhbGVMb2NhdGlvbiA9IC0xOworICAg
IGludCBzaGFkZXJNYXNrVGV4Q29vcmRPZmZzZXRMb2NhdGlvbiA9IC0xOwogICAgIGludCBzaGFk
ZXJNYXRyaXhMb2NhdGlvbiA9IC0xOwogICAgIGludCBzaGFkZXJBbHBoYUxvY2F0aW9uID0gLTE7
CiAgICAgaWYgKHVzZUFBICYmIG1hc2tUZXh0dXJlSWQpIHsKQEAgLTY5Niw2ICs2OTgsOCBAQCB2
b2lkIExheWVyUmVuZGVyZXJDaHJvbWl1bTo6ZHJhd1JlbmRlclBhc3NRdWFkKERyYXdpbmdGcmFt
ZSYgZnJhbWUsIGNvbnN0IENDUmVuZAogICAgICAgICBzaGFkZXJRdWFkTG9jYXRpb24gPSBwcm9n
cmFtLT52ZXJ0ZXhTaGFkZXIoKS5wb2ludExvY2F0aW9uKCk7CiAgICAgICAgIHNoYWRlckVkZ2VM
b2NhdGlvbiA9IHByb2dyYW0tPmZyYWdtZW50U2hhZGVyKCkuZWRnZUxvY2F0aW9uKCk7CiAgICAg
ICAgIHNoYWRlck1hc2tTYW1wbGVyTG9jYXRpb24gPSBwcm9ncmFtLT5mcmFnbWVudFNoYWRlcigp
Lm1hc2tTYW1wbGVyTG9jYXRpb24oKTsKKyAgICAgICAgc2hhZGVyTWFza1RleENvb3JkU2NhbGVM
b2NhdGlvbiA9IHByb2dyYW0tPmZyYWdtZW50U2hhZGVyKCkubWFza1RleENvb3JkU2NhbGVMb2Nh
dGlvbigpOworICAgICAgICBzaGFkZXJNYXNrVGV4Q29vcmRPZmZzZXRMb2NhdGlvbiA9IHByb2dy
YW0tPmZyYWdtZW50U2hhZGVyKCkubWFza1RleENvb3JkT2Zmc2V0TG9jYXRpb24oKTsKICAgICAg
ICAgc2hhZGVyTWF0cml4TG9jYXRpb24gPSBwcm9ncmFtLT52ZXJ0ZXhTaGFkZXIoKS5tYXRyaXhM
b2NhdGlvbigpOwogICAgICAgICBzaGFkZXJBbHBoYUxvY2F0aW9uID0gcHJvZ3JhbS0+ZnJhZ21l
bnRTaGFkZXIoKS5hbHBoYUxvY2F0aW9uKCk7CiAgICAgfSBlbHNlIGlmICghdXNlQUEgJiYgbWFz
a1RleHR1cmVJZCkgewpAQCAtNzA0LDYgKzcwOCw4IEBAIHZvaWQgTGF5ZXJSZW5kZXJlckNocm9t
aXVtOjpkcmF3UmVuZGVyUGFzc1F1YWQoRHJhd2luZ0ZyYW1lJiBmcmFtZSwgY29uc3QgQ0NSZW5k
CiAgICAgICAgIEdMQyhjb250ZXh0KCksIGNvbnRleHQoKS0+dW5pZm9ybTFpKHByb2dyYW0tPmZy
YWdtZW50U2hhZGVyKCkuc2FtcGxlckxvY2F0aW9uKCksIDApKTsKIAogICAgICAgICBzaGFkZXJN
YXNrU2FtcGxlckxvY2F0aW9uID0gcHJvZ3JhbS0+ZnJhZ21lbnRTaGFkZXIoKS5tYXNrU2FtcGxl
ckxvY2F0aW9uKCk7CisgICAgICAgIHNoYWRlck1hc2tUZXhDb29yZFNjYWxlTG9jYXRpb24gPSBw
cm9ncmFtLT5mcmFnbWVudFNoYWRlcigpLm1hc2tUZXhDb29yZFNjYWxlTG9jYXRpb24oKTsKKyAg
ICAgICAgc2hhZGVyTWFza1RleENvb3JkT2Zmc2V0TG9jYXRpb24gPSBwcm9ncmFtLT5mcmFnbWVu
dFNoYWRlcigpLm1hc2tUZXhDb29yZE9mZnNldExvY2F0aW9uKCk7CiAgICAgICAgIHNoYWRlck1h
dHJpeExvY2F0aW9uID0gcHJvZ3JhbS0+dmVydGV4U2hhZGVyKCkubWF0cml4TG9jYXRpb24oKTsK
ICAgICAgICAgc2hhZGVyQWxwaGFMb2NhdGlvbiA9IHByb2dyYW0tPmZyYWdtZW50U2hhZGVyKCku
YWxwaGFMb2NhdGlvbigpOwogICAgIH0gZWxzZSBpZiAodXNlQUEgJiYgIW1hc2tUZXh0dXJlSWQp
IHsKQEAgLTcyNSw4ICs3MzEsMTIgQEAgdm9pZCBMYXllclJlbmRlcmVyQ2hyb21pdW06OmRyYXdS
ZW5kZXJQYXNzUXVhZChEcmF3aW5nRnJhbWUmIGZyYW1lLCBjb25zdCBDQ1JlbmQKICAgICB9CiAK
ICAgICBpZiAoc2hhZGVyTWFza1NhbXBsZXJMb2NhdGlvbiAhPSAtMSkgeworICAgICAgICBBU1NF
UlQoc2hhZGVyTWFza1RleENvb3JkU2NhbGVMb2NhdGlvbiAhPSAxKTsKKyAgICAgICAgQVNTRVJU
KHNoYWRlck1hc2tUZXhDb29yZE9mZnNldExvY2F0aW9uICE9IDEpOwogICAgICAgICBHTEMoY29u
dGV4dCgpLCBjb250ZXh0KCktPmFjdGl2ZVRleHR1cmUoR3JhcGhpY3NDb250ZXh0M0Q6OlRFWFRV
UkUxKSk7CiAgICAgICAgIEdMQyhjb250ZXh0KCksIGNvbnRleHQoKS0+dW5pZm9ybTFpKHNoYWRl
ck1hc2tTYW1wbGVyTG9jYXRpb24sIDEpKTsKKyAgICAgICAgR0xDKGNvbnRleHQoKSwgY29udGV4
dCgpLT51bmlmb3JtMmYoc2hhZGVyTWFza1RleENvb3JkU2NhbGVMb2NhdGlvbiwgcXVhZC0+bWFz
a1RleENvb3JkU2NhbGVYKCksIHF1YWQtPm1hc2tUZXhDb29yZFNjYWxlWSgpKSk7CisgICAgICAg
IEdMQyhjb250ZXh0KCksIGNvbnRleHQoKS0+dW5pZm9ybTJmKHNoYWRlck1hc2tUZXhDb29yZE9m
ZnNldExvY2F0aW9uLCBxdWFkLT5tYXNrVGV4Q29vcmRPZmZzZXRYKCksIHF1YWQtPm1hc2tUZXhD
b29yZE9mZnNldFkoKSkpOwogICAgICAgICBjb250ZXh0KCktPmJpbmRUZXh0dXJlKEdyYXBoaWNz
Q29udGV4dDNEOjpURVhUVVJFXzJELCBtYXNrVGV4dHVyZUlkKTsKICAgICAgICAgR0xDKGNvbnRl
eHQoKSwgY29udGV4dCgpLT5hY3RpdmVUZXh0dXJlKEdyYXBoaWNzQ29udGV4dDNEOjpURVhUVVJF
MCkpOwogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2Nocm9taXVtL1NoYWRlckNocm9taXVtLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2Nocm9taXVtL1NoYWRlckNocm9taXVtLmNwcAppbmRleCA3ZWU1YTIxYjk4NjE4M2Uz
ZGQyYjg4ODhlYjhhMmJlZjc3MWFmYTUxLi4yYjMzMDliY2UwMGQ0MzE5ZWE4MTk0Njc4NDUxY2Fh
YWUxZGYxZDFmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9j
aHJvbWl1bS9TaGFkZXJDaHJvbWl1bS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvY2hyb21pdW0vU2hhZGVyQ2hyb21pdW0uY3BwCkBAIC02NTYsNiArNjU2LDcgQEAg
RnJhZ21lbnRTaGFkZXJSR0JBVGV4QWxwaGFNYXNrOjpGcmFnbWVudFNoYWRlclJHQkFUZXhBbHBo
YU1hc2soKQogICAgIDogbV9zYW1wbGVyTG9jYXRpb24oLTEpCiAgICAgLCBtX21hc2tTYW1wbGVy
TG9jYXRpb24oLTEpCiAgICAgLCBtX2FscGhhTG9jYXRpb24oLTEpCisgICAgLCBtX21hc2tUZXhD
b29yZFNjYWxlTG9jYXRpb24oLTEpCiB7CiB9CiAKQEAgLTY2NSwxNCArNjY2LDE4IEBAIHZvaWQg
RnJhZ21lbnRTaGFkZXJSR0JBVGV4QWxwaGFNYXNrOjppbml0KFdlYkdyYXBoaWNzQ29udGV4dDNE
KiBjb250ZXh0LCB1bnNpZ25lCiAgICAgICAgICJzX3RleHR1cmUiLAogICAgICAgICAic19tYXNr
IiwKICAgICAgICAgImFscGhhIiwKKyAgICAgICAgIm1hc2tUZXhDb29yZFNjYWxlIiwKKyAgICAg
ICAgIm1hc2tUZXhDb29yZE9mZnNldCIsCiAgICAgfTsKLSAgICBpbnQgbG9jYXRpb25zWzNdOwor
ICAgIGludCBsb2NhdGlvbnNbNV07CiAKICAgICBnZXRQcm9ncmFtVW5pZm9ybUxvY2F0aW9ucyhj
b250ZXh0LCBwcm9ncmFtLCBzaGFkZXJVbmlmb3JtcywgV1RGX0FSUkFZX0xFTkdUSChzaGFkZXJV
bmlmb3JtcyksIFdURl9BUlJBWV9MRU5HVEgobG9jYXRpb25zKSwgbG9jYXRpb25zLCB1c2luZ0Jp
bmRVbmlmb3JtLCBiYXNlVW5pZm9ybUluZGV4KTsKIAogICAgIG1fc2FtcGxlckxvY2F0aW9uID0g
bG9jYXRpb25zWzBdOwogICAgIG1fbWFza1NhbXBsZXJMb2NhdGlvbiA9IGxvY2F0aW9uc1sxXTsK
ICAgICBtX2FscGhhTG9jYXRpb24gPSBsb2NhdGlvbnNbMl07CisgICAgbV9tYXNrVGV4Q29vcmRT
Y2FsZUxvY2F0aW9uID0gbG9jYXRpb25zWzNdOworICAgIG1fbWFza1RleENvb3JkT2Zmc2V0TG9j
YXRpb24gPSBsb2NhdGlvbnNbNF07CiAgICAgQVNTRVJUKG1fc2FtcGxlckxvY2F0aW9uICE9IC0x
ICYmIG1fbWFza1NhbXBsZXJMb2NhdGlvbiAhPSAtMSAmJiBtX2FscGhhTG9jYXRpb24gIT0gLTEp
OwogfQogCkBAIC02ODMsMTEgKzY4OCwxNCBAQCBTdHJpbmcgRnJhZ21lbnRTaGFkZXJSR0JBVGV4
QWxwaGFNYXNrOjpnZXRTaGFkZXJTdHJpbmcoKSBjb25zdAogICAgICAgICB2YXJ5aW5nIHZlYzIg
dl90ZXhDb29yZDsKICAgICAgICAgdW5pZm9ybSBzYW1wbGVyMkQgc190ZXh0dXJlOwogICAgICAg
ICB1bmlmb3JtIHNhbXBsZXIyRCBzX21hc2s7CisgICAgICAgIHVuaWZvcm0gdmVjMiBtYXNrVGV4
Q29vcmRTY2FsZTsKKyAgICAgICAgdW5pZm9ybSB2ZWMyIG1hc2tUZXhDb29yZE9mZnNldDsKICAg
ICAgICAgdW5pZm9ybSBmbG9hdCBhbHBoYTsKICAgICAgICAgdm9pZCBtYWluKCkKICAgICAgICAg
ewogICAgICAgICAgICAgdmVjNCB0ZXhDb2xvciA9IHRleHR1cmUyRChzX3RleHR1cmUsIHZfdGV4
Q29vcmQpOwotICAgICAgICAgICAgdmVjNCBtYXNrQ29sb3IgPSB0ZXh0dXJlMkQoc19tYXNrLCB2
X3RleENvb3JkKTsKKyAgICAgICAgICAgIHZlYzIgdl9tYXNrVGV4Q29vcmQgPSB2ZWMyKG1hc2tU
ZXhDb29yZE9mZnNldC54ICsgdl90ZXhDb29yZC54ICogbWFza1RleENvb3JkU2NhbGUueCwgbWFz
a1RleENvb3JkT2Zmc2V0LnkgKyB2X3RleENvb3JkLnkgKiBtYXNrVGV4Q29vcmRTY2FsZS55KTsK
KyAgICAgICAgICAgIHZlYzQgbWFza0NvbG9yID0gdGV4dHVyZTJEKHNfbWFzaywgdl9tYXNrVGV4
Q29vcmQpOwogICAgICAgICAgICAgZ2xfRnJhZ0NvbG9yID0gdmVjNCh0ZXhDb2xvci54LCB0ZXhD
b2xvci55LCB0ZXhDb2xvci56LCB0ZXhDb2xvci53KSAqIGFscGhhICogbWFza0NvbG9yLnc7CiAg
ICAgICAgIH0KICAgICApOwpAQCAtNjk4LDYgKzcwNiw3IEBAIEZyYWdtZW50U2hhZGVyUkdCQVRl
eEFscGhhTWFza0FBOjpGcmFnbWVudFNoYWRlclJHQkFUZXhBbHBoYU1hc2tBQSgpCiAgICAgLCBt
X21hc2tTYW1wbGVyTG9jYXRpb24oLTEpCiAgICAgLCBtX2FscGhhTG9jYXRpb24oLTEpCiAgICAg
LCBtX2VkZ2VMb2NhdGlvbigtMSkKKyAgICAsIG1fbWFza1RleENvb3JkU2NhbGVMb2NhdGlvbigt
MSkKIHsKIH0KIApAQCAtNzA4LDggKzcxNywxMCBAQCB2b2lkIEZyYWdtZW50U2hhZGVyUkdCQVRl
eEFscGhhTWFza0FBOjppbml0KFdlYkdyYXBoaWNzQ29udGV4dDNEKiBjb250ZXh0LCB1bnNpZwog
ICAgICAgICAic19tYXNrIiwKICAgICAgICAgImFscGhhIiwKICAgICAgICAgImVkZ2UiLAorICAg
ICAgICAibWFza1RleENvb3JkU2NhbGUiLAorICAgICAgICAibWFza1RleENvb3JkT2Zmc2V0IiwK
ICAgICB9OwotICAgIGludCBsb2NhdGlvbnNbNF07CisgICAgaW50IGxvY2F0aW9uc1s2XTsKIAog
ICAgIGdldFByb2dyYW1Vbmlmb3JtTG9jYXRpb25zKGNvbnRleHQsIHByb2dyYW0sIHNoYWRlclVu
aWZvcm1zLCBXVEZfQVJSQVlfTEVOR1RIKHNoYWRlclVuaWZvcm1zKSwgV1RGX0FSUkFZX0xFTkdU
SChsb2NhdGlvbnMpLCBsb2NhdGlvbnMsIHVzaW5nQmluZFVuaWZvcm0sIGJhc2VVbmlmb3JtSW5k
ZXgpOwogCkBAIC03MTcsNiArNzI4LDggQEAgdm9pZCBGcmFnbWVudFNoYWRlclJHQkFUZXhBbHBo
YU1hc2tBQTo6aW5pdChXZWJHcmFwaGljc0NvbnRleHQzRCogY29udGV4dCwgdW5zaWcKICAgICBt
X21hc2tTYW1wbGVyTG9jYXRpb24gPSBsb2NhdGlvbnNbMV07CiAgICAgbV9hbHBoYUxvY2F0aW9u
ID0gbG9jYXRpb25zWzJdOwogICAgIG1fZWRnZUxvY2F0aW9uID0gbG9jYXRpb25zWzNdOworICAg
IG1fbWFza1RleENvb3JkU2NhbGVMb2NhdGlvbiA9IGxvY2F0aW9uc1s0XTsKKyAgICBtX21hc2tU
ZXhDb29yZE9mZnNldExvY2F0aW9uID0gbG9jYXRpb25zWzVdOwogICAgIEFTU0VSVChtX3NhbXBs
ZXJMb2NhdGlvbiAhPSAtMSAmJiBtX21hc2tTYW1wbGVyTG9jYXRpb24gIT0gLTEgJiYgbV9hbHBo
YUxvY2F0aW9uICE9IC0xICYmIG1fZWRnZUxvY2F0aW9uICE9IC0xKTsKIH0KIApAQCAtNzI3LDEy
ICs3NDAsMTUgQEAgU3RyaW5nIEZyYWdtZW50U2hhZGVyUkdCQVRleEFscGhhTWFza0FBOjpnZXRT
aGFkZXJTdHJpbmcoKSBjb25zdAogICAgICAgICB2YXJ5aW5nIHZlYzIgdl90ZXhDb29yZDsKICAg
ICAgICAgdW5pZm9ybSBzYW1wbGVyMkQgc190ZXh0dXJlOwogICAgICAgICB1bmlmb3JtIHNhbXBs
ZXIyRCBzX21hc2s7CisgICAgICAgIHVuaWZvcm0gdmVjMiBtYXNrVGV4Q29vcmRTY2FsZTsKKyAg
ICAgICAgdW5pZm9ybSB2ZWMyIG1hc2tUZXhDb29yZE9mZnNldDsKICAgICAgICAgdW5pZm9ybSBm
bG9hdCBhbHBoYTsKICAgICAgICAgdW5pZm9ybSB2ZWMzIGVkZ2VbOF07CiAgICAgICAgIHZvaWQg
bWFpbigpCiAgICAgICAgIHsKICAgICAgICAgICAgIHZlYzQgdGV4Q29sb3IgPSB0ZXh0dXJlMkQo
c190ZXh0dXJlLCB2X3RleENvb3JkKTsKLSAgICAgICAgICAgIHZlYzQgbWFza0NvbG9yID0gdGV4
dHVyZTJEKHNfbWFzaywgdl90ZXhDb29yZCk7CisgICAgICAgICAgICB2ZWMyIHZfbWFza1RleENv
b3JkID0gdmVjMihtYXNrVGV4Q29vcmRPZmZzZXQueCArIHZfdGV4Q29vcmQueCAqIG1hc2tUZXhD
b29yZFNjYWxlLngsIG1hc2tUZXhDb29yZE9mZnNldC55ICsgdl90ZXhDb29yZC55ICogbWFza1Rl
eENvb3JkU2NhbGUueSk7CisgICAgICAgICAgICB2ZWM0IG1hc2tDb2xvciA9IHRleHR1cmUyRChz
X21hc2ssIHZfbWFza1RleENvb3JkKTsKICAgICAgICAgICAgIHZlYzMgcG9zID0gdmVjMyhnbF9G
cmFnQ29vcmQueHksIDEpOwogICAgICAgICAgICAgZmxvYXQgYTAgPSBjbGFtcChkb3QoZWRnZVsw
XSwgcG9zKSwgMC4wLCAxLjApOwogICAgICAgICAgICAgZmxvYXQgYTEgPSBjbGFtcChkb3QoZWRn
ZVsxXSwgcG9zKSwgMC4wLCAxLjApOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvY2hyb21pdW0vU2hhZGVyQ2hyb21pdW0uaCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL1NoYWRlckNocm9taXVtLmgKaW5kZXggMDA4NzJlNGE0
NzExMGIzNzM3MDYwNzQ3ZjNmZTVjM2RmM2FiMDhiMi4uNWFmOTVkOGM3ODAzZjA1ZGQ3OGUxY2I3
ZGQ1NWE3ZmYyMTIyNmRlNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvY2hyb21pdW0vU2hhZGVyQ2hyb21pdW0uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9TaGFkZXJDaHJvbWl1bS5oCkBAIC0yODIsMTEgKzI4Miwx
NSBAQCBwdWJsaWM6CiAgICAgaW50IGFscGhhTG9jYXRpb24oKSBjb25zdCB7IHJldHVybiBtX2Fs
cGhhTG9jYXRpb247IH0KICAgICBpbnQgc2FtcGxlckxvY2F0aW9uKCkgY29uc3QgeyByZXR1cm4g
bV9zYW1wbGVyTG9jYXRpb247IH0KICAgICBpbnQgbWFza1NhbXBsZXJMb2NhdGlvbigpIGNvbnN0
IHsgcmV0dXJuIG1fbWFza1NhbXBsZXJMb2NhdGlvbjsgfQorICAgIGludCBtYXNrVGV4Q29vcmRT
Y2FsZUxvY2F0aW9uKCkgY29uc3QgeyByZXR1cm4gbV9tYXNrVGV4Q29vcmRTY2FsZUxvY2F0aW9u
OyB9CisgICAgaW50IG1hc2tUZXhDb29yZE9mZnNldExvY2F0aW9uKCkgY29uc3QgeyByZXR1cm4g
bV9tYXNrVGV4Q29vcmRPZmZzZXRMb2NhdGlvbjsgfQogCiBwcml2YXRlOgogICAgIGludCBtX3Nh
bXBsZXJMb2NhdGlvbjsKICAgICBpbnQgbV9tYXNrU2FtcGxlckxvY2F0aW9uOwogICAgIGludCBt
X2FscGhhTG9jYXRpb247CisgICAgaW50IG1fbWFza1RleENvb3JkU2NhbGVMb2NhdGlvbjsKKyAg
ICBpbnQgbV9tYXNrVGV4Q29vcmRPZmZzZXRMb2NhdGlvbjsKIH07CiAKIGNsYXNzIEZyYWdtZW50
U2hhZGVyUkdCQVRleEFscGhhTWFza0FBIHsKQEAgLTI5OSwxMiArMzAzLDE2IEBAIHB1YmxpYzoK
ICAgICBpbnQgc2FtcGxlckxvY2F0aW9uKCkgY29uc3QgeyByZXR1cm4gbV9zYW1wbGVyTG9jYXRp
b247IH0KICAgICBpbnQgbWFza1NhbXBsZXJMb2NhdGlvbigpIGNvbnN0IHsgcmV0dXJuIG1fbWFz
a1NhbXBsZXJMb2NhdGlvbjsgfQogICAgIGludCBlZGdlTG9jYXRpb24oKSBjb25zdCB7IHJldHVy
biBtX2VkZ2VMb2NhdGlvbjsgfQorICAgIGludCBtYXNrVGV4Q29vcmRTY2FsZUxvY2F0aW9uKCkg
Y29uc3QgeyByZXR1cm4gbV9tYXNrVGV4Q29vcmRTY2FsZUxvY2F0aW9uOyB9CisgICAgaW50IG1h
c2tUZXhDb29yZE9mZnNldExvY2F0aW9uKCkgY29uc3QgeyByZXR1cm4gbV9tYXNrVGV4Q29vcmRP
ZmZzZXRMb2NhdGlvbjsgfQogCiBwcml2YXRlOgogICAgIGludCBtX3NhbXBsZXJMb2NhdGlvbjsK
ICAgICBpbnQgbV9tYXNrU2FtcGxlckxvY2F0aW9uOwogICAgIGludCBtX2FscGhhTG9jYXRpb247
CiAgICAgaW50IG1fZWRnZUxvY2F0aW9uOworICAgIGludCBtX21hc2tUZXhDb29yZFNjYWxlTG9j
YXRpb247CisgICAgaW50IG1fbWFza1RleENvb3JkT2Zmc2V0TG9jYXRpb247CiB9OwogCiBjbGFz
cyBGcmFnbWVudFNoYWRlcllVVlZpZGVvIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDUmVuZGVyUGFzc0RyYXdRdWFkLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDUmVuZGVyUGFzc0Ry
YXdRdWFkLmNwcAppbmRleCBjYTA4MTExOTY0ZDhmOGEwNTlhMjM0Yjc0YjdiZTZjNDc1NmMyYjFl
Li4zYjBhNDhhN2FmY2M2ODM3ZDBhNDVhMDFhZTJkYTZlMmEwZmUxNGIxIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ1JlbmRlclBhc3NE
cmF3UXVhZC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21p
dW0vY2MvQ0NSZW5kZXJQYXNzRHJhd1F1YWQuY3BwCkBAIC0yOSwxNyArMjksMjEgQEAKIAogbmFt
ZXNwYWNlIFdlYkNvcmUgewogCi1QYXNzT3duUHRyPENDUmVuZGVyUGFzc0RyYXdRdWFkPiBDQ1Jl
bmRlclBhc3NEcmF3UXVhZDo6Y3JlYXRlKGNvbnN0IENDU2hhcmVkUXVhZFN0YXRlKiBzaGFyZWRR
dWFkU3RhdGUsIGNvbnN0IEludFJlY3QmIHF1YWRSZWN0LCBpbnQgcmVuZGVyUGFzc0lkLCBib29s
IGlzUmVwbGljYSwgY29uc3QgQ0NSZXNvdXJjZVByb3ZpZGVyOjpSZXNvdXJjZUlkIG1hc2tSZXNv
dXJjZUlkLCBjb25zdCBJbnRSZWN0JiBjb250ZW50c0NoYW5nZWRTaW5jZUxhc3RGcmFtZSkKK1Bh
c3NPd25QdHI8Q0NSZW5kZXJQYXNzRHJhd1F1YWQ+IENDUmVuZGVyUGFzc0RyYXdRdWFkOjpjcmVh
dGUoY29uc3QgQ0NTaGFyZWRRdWFkU3RhdGUqIHNoYXJlZFF1YWRTdGF0ZSwgY29uc3QgSW50UmVj
dCYgcXVhZFJlY3QsIGludCByZW5kZXJQYXNzSWQsIGJvb2wgaXNSZXBsaWNhLCBjb25zdCBDQ1Jl
c291cmNlUHJvdmlkZXI6OlJlc291cmNlSWQgbWFza1Jlc291cmNlSWQsIGNvbnN0IEludFJlY3Qm
IGNvbnRlbnRzQ2hhbmdlZFNpbmNlTGFzdEZyYW1lLCBmbG9hdCBtYXNrVGV4Q29vcmRTY2FsZVgs
IGZsb2F0IG1hc2tUZXhDb29yZFNjYWxlWSwgZmxvYXQgbWFza1RleENvb3JkT2Zmc2V0WCwgZmxv
YXQgbWFza1RleENvb3JkT2Zmc2V0WSkKIHsKLSAgICByZXR1cm4gYWRvcHRQdHIobmV3IENDUmVu
ZGVyUGFzc0RyYXdRdWFkKHNoYXJlZFF1YWRTdGF0ZSwgcXVhZFJlY3QsIHJlbmRlclBhc3NJZCwg
aXNSZXBsaWNhLCBtYXNrUmVzb3VyY2VJZCwgY29udGVudHNDaGFuZ2VkU2luY2VMYXN0RnJhbWUp
KTsKKyAgICByZXR1cm4gYWRvcHRQdHIobmV3IENDUmVuZGVyUGFzc0RyYXdRdWFkKHNoYXJlZFF1
YWRTdGF0ZSwgcXVhZFJlY3QsIHJlbmRlclBhc3NJZCwgaXNSZXBsaWNhLCBtYXNrUmVzb3VyY2VJ
ZCwgY29udGVudHNDaGFuZ2VkU2luY2VMYXN0RnJhbWUsIG1hc2tUZXhDb29yZFNjYWxlWCwgbWFz
a1RleENvb3JkU2NhbGVZLCBtYXNrVGV4Q29vcmRPZmZzZXRYLCBtYXNrVGV4Q29vcmRPZmZzZXRZ
KSk7CiB9CiAKLUNDUmVuZGVyUGFzc0RyYXdRdWFkOjpDQ1JlbmRlclBhc3NEcmF3UXVhZChjb25z
dCBDQ1NoYXJlZFF1YWRTdGF0ZSogc2hhcmVkUXVhZFN0YXRlLCBjb25zdCBJbnRSZWN0JiBxdWFk
UmVjdCwgaW50IHJlbmRlclBhc3NJZCwgYm9vbCBpc1JlcGxpY2EsIENDUmVzb3VyY2VQcm92aWRl
cjo6UmVzb3VyY2VJZCBtYXNrUmVzb3VyY2VJZCwgY29uc3QgSW50UmVjdCYgY29udGVudHNDaGFu
Z2VkU2luY2VMYXN0RnJhbWUpCitDQ1JlbmRlclBhc3NEcmF3UXVhZDo6Q0NSZW5kZXJQYXNzRHJh
d1F1YWQoY29uc3QgQ0NTaGFyZWRRdWFkU3RhdGUqIHNoYXJlZFF1YWRTdGF0ZSwgY29uc3QgSW50
UmVjdCYgcXVhZFJlY3QsIGludCByZW5kZXJQYXNzSWQsIGJvb2wgaXNSZXBsaWNhLCBDQ1Jlc291
cmNlUHJvdmlkZXI6OlJlc291cmNlSWQgbWFza1Jlc291cmNlSWQsIGNvbnN0IEludFJlY3QmIGNv
bnRlbnRzQ2hhbmdlZFNpbmNlTGFzdEZyYW1lLCBmbG9hdCBtYXNrVGV4Q29vcmRTY2FsZVgsIGZs
b2F0IG1hc2tUZXhDb29yZFNjYWxlWSwgZmxvYXQgbWFza1RleENvb3JkT2Zmc2V0WCwgZmxvYXQg
bWFza1RleENvb3JkT2Zmc2V0WSkKICAgICA6IENDRHJhd1F1YWQoc2hhcmVkUXVhZFN0YXRlLCBD
Q0RyYXdRdWFkOjpSZW5kZXJQYXNzLCBxdWFkUmVjdCkKICAgICAsIG1fcmVuZGVyUGFzc0lkKHJl
bmRlclBhc3NJZCkKICAgICAsIG1faXNSZXBsaWNhKGlzUmVwbGljYSkKICAgICAsIG1fbWFza1Jl
c291cmNlSWQobWFza1Jlc291cmNlSWQpCiAgICAgLCBtX2NvbnRlbnRzQ2hhbmdlZFNpbmNlTGFz
dEZyYW1lKGNvbnRlbnRzQ2hhbmdlZFNpbmNlTGFzdEZyYW1lKQorICAgICwgbV9tYXNrVGV4Q29v
cmRTY2FsZVgobWFza1RleENvb3JkU2NhbGVYKQorICAgICwgbV9tYXNrVGV4Q29vcmRTY2FsZVko
bWFza1RleENvb3JkU2NhbGVZKQorICAgICwgbV9tYXNrVGV4Q29vcmRPZmZzZXRYKG1hc2tUZXhD
b29yZE9mZnNldFgpCisgICAgLCBtX21hc2tUZXhDb29yZE9mZnNldFkobWFza1RleENvb3JkT2Zm
c2V0WSkKIHsKICAgICBBU1NFUlQobV9yZW5kZXJQYXNzSWQgPiAwKTsKIH0KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDUmVuZGVyUGFz
c0RyYXdRdWFkLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9j
Yy9DQ1JlbmRlclBhc3NEcmF3UXVhZC5oCmluZGV4IDI5YjMzYTFmNmFkZTg2MjIxZGYzNDg5ODFk
NzIxNzYyOTA3NDZhNWMuLmRmOGNlMGM5MDI5NDJlMzRmMzE4NGU2YjRkMTc5NGIxYTg5ZDYxMDUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2Nj
L0NDUmVuZGVyUGFzc0RyYXdRdWFkLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvY2hyb21pdW0vY2MvQ0NSZW5kZXJQYXNzRHJhd1F1YWQuaApAQCAtMzgsNyArMzgsNyBA
QCBjbGFzcyBDQ1JlbmRlclBhc3M7CiBjbGFzcyBDQ1JlbmRlclBhc3NEcmF3UXVhZCA6IHB1Ymxp
YyBDQ0RyYXdRdWFkIHsKICAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShDQ1JlbmRlclBhc3NEcmF3
UXVhZCk7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFBhc3NPd25QdHI8Q0NSZW5kZXJQYXNzRHJhd1F1
YWQ+IGNyZWF0ZShjb25zdCBDQ1NoYXJlZFF1YWRTdGF0ZSosIGNvbnN0IEludFJlY3QmLCBpbnQg
cmVuZGVyUGFzc0lkLCBib29sIGlzUmVwbGljYSwgQ0NSZXNvdXJjZVByb3ZpZGVyOjpSZXNvdXJj
ZUlkIG1hc2tSZXNvdXJjZUlkLCBjb25zdCBJbnRSZWN0JiBjb250ZW50c0NoYW5nZWRTaW5jZUxh
c3RGcmFtZSk7CisgICAgc3RhdGljIFBhc3NPd25QdHI8Q0NSZW5kZXJQYXNzRHJhd1F1YWQ+IGNy
ZWF0ZShjb25zdCBDQ1NoYXJlZFF1YWRTdGF0ZSosIGNvbnN0IEludFJlY3QmLCBpbnQgcmVuZGVy
UGFzc0lkLCBib29sIGlzUmVwbGljYSwgQ0NSZXNvdXJjZVByb3ZpZGVyOjpSZXNvdXJjZUlkIG1h
c2tSZXNvdXJjZUlkLCBjb25zdCBJbnRSZWN0JiBjb250ZW50c0NoYW5nZWRTaW5jZUxhc3RGcmFt
ZSwgZmxvYXQgbWFza1RleENvb3JkU2NhbGVYLCBmbG9hdCBtYXNrVGV4Q29vcmRTY2FsZVksIGZs
b2F0IG1hc2tUZXhDb29yZE9mZnNldFgsIGZsb2F0IG1hc2tUZXhDb29yZE9mZnNldFkpOwogCiAg
ICAgaW50IHJlbmRlclBhc3NJZCgpIGNvbnN0IHsgcmV0dXJuIG1fcmVuZGVyUGFzc0lkOyB9CiAg
ICAgYm9vbCBpc1JlcGxpY2EoKSBjb25zdCB7IHJldHVybiBtX2lzUmVwbGljYTsgfQpAQCAtNDYs
MTMgKzQ2LDIyIEBAIHB1YmxpYzoKICAgICBjb25zdCBJbnRSZWN0JiBjb250ZW50c0NoYW5nZWRT
aW5jZUxhc3RGcmFtZSgpIGNvbnN0IHsgcmV0dXJuIG1fY29udGVudHNDaGFuZ2VkU2luY2VMYXN0
RnJhbWU7IH0KIAogICAgIHN0YXRpYyBjb25zdCBDQ1JlbmRlclBhc3NEcmF3UXVhZCogbWF0ZXJp
YWxDYXN0KGNvbnN0IENDRHJhd1F1YWQqKTsKKyAgICBmbG9hdCBtYXNrVGV4Q29vcmRTY2FsZVgo
KSBjb25zdCB7IHJldHVybiBtX21hc2tUZXhDb29yZFNjYWxlWDsgfQorICAgIGZsb2F0IG1hc2tU
ZXhDb29yZFNjYWxlWSgpIGNvbnN0IHsgcmV0dXJuIG1fbWFza1RleENvb3JkU2NhbGVZOyB9Cisg
ICAgZmxvYXQgbWFza1RleENvb3JkT2Zmc2V0WCgpIGNvbnN0IHsgcmV0dXJuIG1fbWFza1RleENv
b3JkT2Zmc2V0WDsgfQorICAgIGZsb2F0IG1hc2tUZXhDb29yZE9mZnNldFkoKSBjb25zdCB7IHJl
dHVybiBtX21hc2tUZXhDb29yZE9mZnNldFk7IH0KKwogcHJpdmF0ZToKLSAgICBDQ1JlbmRlclBh
c3NEcmF3UXVhZChjb25zdCBDQ1NoYXJlZFF1YWRTdGF0ZSosIGNvbnN0IEludFJlY3QmLCBpbnQg
cmVuZGVyUGFzc0lkLCBib29sIGlzUmVwbGljYSwgQ0NSZXNvdXJjZVByb3ZpZGVyOjpSZXNvdXJj
ZUlkIG1hc2tSZXNvdXJjZUlkLCBjb25zdCBJbnRSZWN0JiBjb250ZW50c0NoYW5nZWRTaW5jZUxh
c3RGcmFtZSk7CisgICAgQ0NSZW5kZXJQYXNzRHJhd1F1YWQoY29uc3QgQ0NTaGFyZWRRdWFkU3Rh
dGUqLCBjb25zdCBJbnRSZWN0JiwgaW50IHJlbmRlclBhc3NJZCwgYm9vbCBpc1JlcGxpY2EsIEND
UmVzb3VyY2VQcm92aWRlcjo6UmVzb3VyY2VJZCBtYXNrUmVzb3VyY2VJZCwgY29uc3QgSW50UmVj
dCYgY29udGVudHNDaGFuZ2VkU2luY2VMYXN0RnJhbWUsIGZsb2F0IG1hc2tUZXhDb29yZFNjYWxl
WCwgZmxvYXQgbWFza1RleENvb3JkU2NhbGVZLCBmbG9hdCBtYXNrVGV4Q29vcmRPZmZzZXRYLCBm
bG9hdCBtYXNrVGV4Q29vcmRPZmZzZXRZKTsKIAogICAgIGludCBtX3JlbmRlclBhc3NJZDsKICAg
ICBib29sIG1faXNSZXBsaWNhOwogICAgIENDUmVzb3VyY2VQcm92aWRlcjo6UmVzb3VyY2VJZCBt
X21hc2tSZXNvdXJjZUlkOwogICAgIEludFJlY3QgbV9jb250ZW50c0NoYW5nZWRTaW5jZUxhc3RG
cmFtZTsKKyAgICBmbG9hdCBtX21hc2tUZXhDb29yZFNjYWxlWDsKKyAgICBmbG9hdCBtX21hc2tU
ZXhDb29yZFNjYWxlWTsKKyAgICBmbG9hdCBtX21hc2tUZXhDb29yZE9mZnNldFg7CisgICAgZmxv
YXQgbV9tYXNrVGV4Q29vcmRPZmZzZXRZOwogfTsKIAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NSZW5kZXJTdXJmYWNlLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDUmVuZGVyU3Vy
ZmFjZS5jcHAKaW5kZXggNDI1ZDcyNzg4MGExZTFiYmZlYzIyODY2YmQxMmY5ZjhjZGNjZDkzZC4u
NGIyNzFlMWRiNTI4YTk1ZDMwZDJjNjQ0NzcwOTUzYmFiMjY1Y2QxZCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NSZW5kZXJTdXJmYWNl
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9D
Q1JlbmRlclN1cmZhY2UuY3BwCkBAIC0yMDcsMTAgKzIwNywyMiBAQCB2b2lkIENDUmVuZGVyU3Vy
ZmFjZTo6YXBwZW5kUXVhZHMoQ0NRdWFkU2luayYgcXVhZExpc3QsIENDU2hhcmVkUXVhZFN0YXRl
KiBzaGFyZQogICAgICAgICAgICAgbWFza0xheWVyID0gMDsKICAgICB9CiAKKyAgICBmbG9hdCBt
YXNrVGV4Q29vcmRTY2FsZVggPSAxOworICAgIGZsb2F0IG1hc2tUZXhDb29yZFNjYWxlWSA9IDE7
CisgICAgZmxvYXQgbWFza1RleENvb3JkT2Zmc2V0WCA9IDE7CisgICAgZmxvYXQgbWFza1RleENv
b3JkT2Zmc2V0WSA9IDE7CisgICAgaWYgKG1hc2tMYXllcikgeworICAgICAgICBtYXNrVGV4Q29v
cmRTY2FsZVggPSBzdGF0aWNfY2FzdDxmbG9hdD4oY29udGVudFJlY3QoKS53aWR0aCgpKSAvIG1h
c2tMYXllci0+Y29udGVudEJvdW5kcygpLndpZHRoKCk7CisgICAgICAgIG1hc2tUZXhDb29yZFNj
YWxlWSA9IHN0YXRpY19jYXN0PGZsb2F0Pihjb250ZW50UmVjdCgpLmhlaWdodCgpKSAvIG1hc2tM
YXllci0+Y29udGVudEJvdW5kcygpLmhlaWdodCgpOworICAgICAgICBtYXNrVGV4Q29vcmRPZmZz
ZXRYID0gc3RhdGljX2Nhc3Q8ZmxvYXQ+KGNvbnRlbnRSZWN0KCkueCgpKSAvIGNvbnRlbnRSZWN0
KCkud2lkdGgoKSAqIG1hc2tUZXhDb29yZFNjYWxlWDsKKyAgICAgICAgbWFza1RleENvb3JkT2Zm
c2V0WSA9IHN0YXRpY19jYXN0PGZsb2F0Pihjb250ZW50UmVjdCgpLnkoKSkgLyBjb250ZW50UmVj
dCgpLmhlaWdodCgpICogbWFza1RleENvb3JkU2NhbGVZOworICAgIH0KKwogICAgIENDUmVzb3Vy
Y2VQcm92aWRlcjo6UmVzb3VyY2VJZCBtYXNrUmVzb3VyY2VJZCA9IG1hc2tMYXllciA/IG1hc2tM
YXllci0+Y29udGVudHNSZXNvdXJjZUlkKCkgOiAwOwogICAgIEludFJlY3QgY29udGVudHNDaGFu
Z2VkU2luY2VMYXN0RnJhbWUgPSBjb250ZW50c0NoYW5nZWQoKSA/IG1fY29udGVudFJlY3QgOiBJ
bnRSZWN0KCk7CiAKLSAgICBxdWFkTGlzdC5hcHBlbmQoQ0NSZW5kZXJQYXNzRHJhd1F1YWQ6OmNy
ZWF0ZShzaGFyZWRRdWFkU3RhdGUsIGNvbnRlbnRSZWN0KCksIHJlbmRlclBhc3NJZCwgZm9yUmVw
bGljYSwgbWFza1Jlc291cmNlSWQsIGNvbnRlbnRzQ2hhbmdlZFNpbmNlTGFzdEZyYW1lKSk7Cisg
ICAgcXVhZExpc3QuYXBwZW5kKENDUmVuZGVyUGFzc0RyYXdRdWFkOjpjcmVhdGUoc2hhcmVkUXVh
ZFN0YXRlLCBjb250ZW50UmVjdCgpLCByZW5kZXJQYXNzSWQsIGZvclJlcGxpY2EsIG1hc2tSZXNv
dXJjZUlkLCBjb250ZW50c0NoYW5nZWRTaW5jZUxhc3RGcmFtZSwKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXNrVGV4Q29vcmRTY2FsZVgsIG1hc2tU
ZXhDb29yZFNjYWxlWSwgbWFza1RleENvb3JkT2Zmc2V0WCwgbWFza1RleENvb3JkT2Zmc2V0WSkp
OwogfQogCiB9Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>157504</attachid>
            <date>2012-08-09 11:49:43 -0700</date>
            <delta_ts>2012-08-09 12:28:27 -0700</delta_ts>
            <desc>Added layout test and fixed errors</desc>
            <filename>bug-93558-20120809114916.patch</filename>
            <type>text/plain</type>
            <size>26509</size>
            <attacher name="Shawn Singh">shawnsingh</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI1MTg5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMTlhMDNhZWU5ZTljZDBj
ZGEwMjNmYjk1YzBjMDFjNjNmNTI0YjBiNi4uZmQyYjFiNjEzOGRjMzE1NDYxOTU3NDE4OGQ4NWIy
OGQzZjgwMzRlOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ3IEBACisyMDEyLTA4LTA5ICBTaGF3
biBTaW5naCAgPHNoYXduc2luZ2hAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFtjaHJvbWl1bV0g
UGFzcyBtYXNrIHNjYWxlIGFuZCBvZmZzZXQgdG8gc2hhZGVycyBmb3IgY29ycmVjdCBtYXNraW5n
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05MzU1OAor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEluIGNocm9t
aXVtIGNvbXBvc2l0b3IgY29kZSwgdGhlIG1hc2sgd2FzIGFjY2lkZW50YWxseSBtYXBwZWQgMTox
CisgICAgICAgIHRvIHRoZSBsYXllcidzIHJlbmRlclN1cmZhY2UsIHJhdGhlciB0aGFuIHRoZSBs
YXllciBpdHNlbGYuIFRoaXMKKyAgICAgICAgcGF0Y2ggYWRkcyBhIGxheW91dCB0ZXN0IHRoYXQg
cmVwcm9kdWNlcyB0aGUgZXJyb3IgYW5kIGZpeGVzIHRoZQorICAgICAgICBwcm9ibGVtLiBUaGUg
c29sdXRpb24gd2Ugb3B0ZWQgZm9yIGluIHRoaXMgcGF0Y2ggaXMgdG8gcGFzcyBhCisgICAgICAg
IHNjYWxlIGFuZCBvZmZzZXQgdG8gdGhlIGZyYWdtZW50IHNoYWRlciwgc28gdGhhdCB0aGUgY29y
cmVjdAorICAgICAgICB0ZXh0dXJlIGNvb3JkaW5hdGUgbG9va3VwIGlzIGNvbXB1dGVkIGJ5IHRo
ZSBmcmFnbWVudCBzaGFkZXIuCisKKyAgICAgICAgVGVzdDogY29tcG9zaXRpbmcvbWFza3MvbWFz
ay1vZi1jbGlwcGVkLWxheWVyLmh0bWwKKworICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2No
cm9taXVtL0xheWVyUmVuZGVyZXJDaHJvbWl1bS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpMYXll
clJlbmRlcmVyQ2hyb21pdW06OmRyYXdSZW5kZXJQYXNzUXVhZCk6CisgICAgICAgICogcGxhdGZv
cm0vZ3JhcGhpY3MvY2hyb21pdW0vU2hhZGVyQ2hyb21pdW0uY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6RnJhZ21lbnRTaGFkZXJSR0JBVGV4QWxwaGFNYXNrOjpGcmFnbWVudFNoYWRlclJHQkFUZXhB
bHBoYU1hc2spOgorICAgICAgICAoV2ViQ29yZTo6RnJhZ21lbnRTaGFkZXJSR0JBVGV4QWxwaGFN
YXNrOjppbml0KToKKyAgICAgICAgKFdlYkNvcmU6OkZyYWdtZW50U2hhZGVyUkdCQVRleEFscGhh
TWFzazo6Z2V0U2hhZGVyU3RyaW5nKToKKyAgICAgICAgKFdlYkNvcmU6OkZyYWdtZW50U2hhZGVy
UkdCQVRleEFscGhhTWFza0FBOjpGcmFnbWVudFNoYWRlclJHQkFUZXhBbHBoYU1hc2tBQSk6Cisg
ICAgICAgIChXZWJDb3JlOjpGcmFnbWVudFNoYWRlclJHQkFUZXhBbHBoYU1hc2tBQTo6aW5pdCk6
CisgICAgICAgIChXZWJDb3JlOjpGcmFnbWVudFNoYWRlclJHQkFUZXhBbHBoYU1hc2tBQTo6Z2V0
U2hhZGVyU3RyaW5nKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9TaGFk
ZXJDaHJvbWl1bS5oOgorICAgICAgICAoV2ViQ29yZTo6RnJhZ21lbnRTaGFkZXJSR0JBVGV4QWxw
aGFNYXNrOjptYXNrVGV4Q29vcmRTY2FsZUxvY2F0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OkZy
YWdtZW50U2hhZGVyUkdCQVRleEFscGhhTWFzazo6bWFza1RleENvb3JkT2Zmc2V0TG9jYXRpb24p
OgorICAgICAgICAoRnJhZ21lbnRTaGFkZXJSR0JBVGV4QWxwaGFNYXNrKToKKyAgICAgICAgKFdl
YkNvcmU6OkZyYWdtZW50U2hhZGVyUkdCQVRleEFscGhhTWFza0FBOjptYXNrVGV4Q29vcmRTY2Fs
ZUxvY2F0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OkZyYWdtZW50U2hhZGVyUkdCQVRleEFscGhh
TWFza0FBOjptYXNrVGV4Q29vcmRPZmZzZXRMb2NhdGlvbik6CisgICAgICAgIChGcmFnbWVudFNo
YWRlclJHQkFUZXhBbHBoYU1hc2tBQSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2hy
b21pdW0vY2MvQ0NSZW5kZXJQYXNzRHJhd1F1YWQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q0NS
ZW5kZXJQYXNzRHJhd1F1YWQ6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpDQ1JlbmRlclBh
c3NEcmF3UXVhZDo6Q0NSZW5kZXJQYXNzRHJhd1F1YWQpOgorICAgICAgICAqIHBsYXRmb3JtL2dy
YXBoaWNzL2Nocm9taXVtL2NjL0NDUmVuZGVyUGFzc0RyYXdRdWFkLmg6CisgICAgICAgIChDQ1Jl
bmRlclBhc3NEcmF3UXVhZCk6CisgICAgICAgIChXZWJDb3JlOjpDQ1JlbmRlclBhc3NEcmF3UXVh
ZDo6bWFza1RleENvb3JkU2NhbGVYKToKKyAgICAgICAgKFdlYkNvcmU6OkNDUmVuZGVyUGFzc0Ry
YXdRdWFkOjptYXNrVGV4Q29vcmRTY2FsZVkpOgorICAgICAgICAoV2ViQ29yZTo6Q0NSZW5kZXJQ
YXNzRHJhd1F1YWQ6Om1hc2tUZXhDb29yZE9mZnNldFgpOgorICAgICAgICAoV2ViQ29yZTo6Q0NS
ZW5kZXJQYXNzRHJhd1F1YWQ6Om1hc2tUZXhDb29yZE9mZnNldFkpOgorICAgICAgICAqIHBsYXRm
b3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDUmVuZGVyU3VyZmFjZS5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpDQ1JlbmRlclN1cmZhY2U6OmFwcGVuZFF1YWRzKToKKwogMjAxMi0wOC0wOSAgSWFp
biBNZXJyaWNrICA8aHVza3lAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFtjaHJvbWl1bV0gRW5h
YmxlIGtlcm5pbmcgb24gQW5kcm9pZApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1
bS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwppbmRleCAyYzdl
YTAwY2NmOTgxMjJmOWMzYjA0MTI1NmQxODc2NzA5YzU3NGVjLi5mZmYxYzgyM2M2ZTM1ODY3MTAx
YjlhMGIzOGIzYjE1YjFlM2JhZmY5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVt
L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwpAQCAtMSwz
ICsxLDE1IEBACisyMDEyLTA4LTA5ICBTaGF3biBTaW5naCAgPHNoYXduc2luZ2hAY2hyb21pdW0u
b3JnPgorCisgICAgICAgIFtjaHJvbWl1bV0gUGFzcyBtYXNrIHNjYWxlIGFuZCBvZmZzZXQgdG8g
c2hhZGVycyBmb3IgY29ycmVjdCBtYXNraW5nCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD05MzU1OAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIFVwZGF0ZWQgb25lIHVuaXQgdGVzdCB0aGF0IG5lZWRlZCBhZGRp
dGlvbmFsIGFyZ3MgaW4gYQorICAgICAgICBjb25zdHJ1Y3RvciwgYnV0IG5vIGNoYW5nZSBpbiBi
ZWhhdmlvciBvZiB0aGUgdGVzdC4KKworICAgICAgICAqIHRlc3RzL0NDTGF5ZXJUcmVlSG9zdElt
cGxUZXN0LmNwcDoKKwogMjAxMi0wOC0wOSAgUGF2ZWwgRmVsZG1hbiAgPHBmZWxkbWFuQGNocm9t
aXVtLm9yZz4KIAogICAgICAgICBXZWIgSW5zcGVjdG9yOiBhZGQgY29kZW1pcnJvciBsaWJyYXJ5
IGFzIGFuIGV4cGVyaW1lbnQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2Nocm9taXVtL0xheWVyUmVuZGVyZXJDaHJvbWl1bS5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9MYXllclJlbmRlcmVyQ2hyb21pdW0uY3BwCmlu
ZGV4IDdlYTFjNGJjNzIzNDg1YTBmMmY2NjI4ZTQxYjkwZmEwMDc5OGYwZmMuLmQyYzZjZTUwMDNm
OTYwNzlkZTZlYzEwZDg0YmI4MTM2NWZkMDVjMDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0xheWVyUmVuZGVyZXJDaHJvbWl1bS5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vTGF5ZXJSZW5kZXJl
ckNocm9taXVtLmNwcApAQCAtNjg2LDYgKzY4Niw4IEBAIHZvaWQgTGF5ZXJSZW5kZXJlckNocm9t
aXVtOjpkcmF3UmVuZGVyUGFzc1F1YWQoRHJhd2luZ0ZyYW1lJiBmcmFtZSwgY29uc3QgQ0NSZW5k
CiAgICAgaW50IHNoYWRlclF1YWRMb2NhdGlvbiA9IC0xOwogICAgIGludCBzaGFkZXJFZGdlTG9j
YXRpb24gPSAtMTsKICAgICBpbnQgc2hhZGVyTWFza1NhbXBsZXJMb2NhdGlvbiA9IC0xOworICAg
IGludCBzaGFkZXJNYXNrVGV4Q29vcmRTY2FsZUxvY2F0aW9uID0gLTE7CisgICAgaW50IHNoYWRl
ck1hc2tUZXhDb29yZE9mZnNldExvY2F0aW9uID0gLTE7CiAgICAgaW50IHNoYWRlck1hdHJpeExv
Y2F0aW9uID0gLTE7CiAgICAgaW50IHNoYWRlckFscGhhTG9jYXRpb24gPSAtMTsKICAgICBpZiAo
dXNlQUEgJiYgbWFza1RleHR1cmVJZCkgewpAQCAtNjk2LDYgKzY5OCw4IEBAIHZvaWQgTGF5ZXJS
ZW5kZXJlckNocm9taXVtOjpkcmF3UmVuZGVyUGFzc1F1YWQoRHJhd2luZ0ZyYW1lJiBmcmFtZSwg
Y29uc3QgQ0NSZW5kCiAgICAgICAgIHNoYWRlclF1YWRMb2NhdGlvbiA9IHByb2dyYW0tPnZlcnRl
eFNoYWRlcigpLnBvaW50TG9jYXRpb24oKTsKICAgICAgICAgc2hhZGVyRWRnZUxvY2F0aW9uID0g
cHJvZ3JhbS0+ZnJhZ21lbnRTaGFkZXIoKS5lZGdlTG9jYXRpb24oKTsKICAgICAgICAgc2hhZGVy
TWFza1NhbXBsZXJMb2NhdGlvbiA9IHByb2dyYW0tPmZyYWdtZW50U2hhZGVyKCkubWFza1NhbXBs
ZXJMb2NhdGlvbigpOworICAgICAgICBzaGFkZXJNYXNrVGV4Q29vcmRTY2FsZUxvY2F0aW9uID0g
cHJvZ3JhbS0+ZnJhZ21lbnRTaGFkZXIoKS5tYXNrVGV4Q29vcmRTY2FsZUxvY2F0aW9uKCk7Cisg
ICAgICAgIHNoYWRlck1hc2tUZXhDb29yZE9mZnNldExvY2F0aW9uID0gcHJvZ3JhbS0+ZnJhZ21l
bnRTaGFkZXIoKS5tYXNrVGV4Q29vcmRPZmZzZXRMb2NhdGlvbigpOwogICAgICAgICBzaGFkZXJN
YXRyaXhMb2NhdGlvbiA9IHByb2dyYW0tPnZlcnRleFNoYWRlcigpLm1hdHJpeExvY2F0aW9uKCk7
CiAgICAgICAgIHNoYWRlckFscGhhTG9jYXRpb24gPSBwcm9ncmFtLT5mcmFnbWVudFNoYWRlcigp
LmFscGhhTG9jYXRpb24oKTsKICAgICB9IGVsc2UgaWYgKCF1c2VBQSAmJiBtYXNrVGV4dHVyZUlk
KSB7CkBAIC03MDQsNiArNzA4LDggQEAgdm9pZCBMYXllclJlbmRlcmVyQ2hyb21pdW06OmRyYXdS
ZW5kZXJQYXNzUXVhZChEcmF3aW5nRnJhbWUmIGZyYW1lLCBjb25zdCBDQ1JlbmQKICAgICAgICAg
R0xDKGNvbnRleHQoKSwgY29udGV4dCgpLT51bmlmb3JtMWkocHJvZ3JhbS0+ZnJhZ21lbnRTaGFk
ZXIoKS5zYW1wbGVyTG9jYXRpb24oKSwgMCkpOwogCiAgICAgICAgIHNoYWRlck1hc2tTYW1wbGVy
TG9jYXRpb24gPSBwcm9ncmFtLT5mcmFnbWVudFNoYWRlcigpLm1hc2tTYW1wbGVyTG9jYXRpb24o
KTsKKyAgICAgICAgc2hhZGVyTWFza1RleENvb3JkU2NhbGVMb2NhdGlvbiA9IHByb2dyYW0tPmZy
YWdtZW50U2hhZGVyKCkubWFza1RleENvb3JkU2NhbGVMb2NhdGlvbigpOworICAgICAgICBzaGFk
ZXJNYXNrVGV4Q29vcmRPZmZzZXRMb2NhdGlvbiA9IHByb2dyYW0tPmZyYWdtZW50U2hhZGVyKCku
bWFza1RleENvb3JkT2Zmc2V0TG9jYXRpb24oKTsKICAgICAgICAgc2hhZGVyTWF0cml4TG9jYXRp
b24gPSBwcm9ncmFtLT52ZXJ0ZXhTaGFkZXIoKS5tYXRyaXhMb2NhdGlvbigpOwogICAgICAgICBz
aGFkZXJBbHBoYUxvY2F0aW9uID0gcHJvZ3JhbS0+ZnJhZ21lbnRTaGFkZXIoKS5hbHBoYUxvY2F0
aW9uKCk7CiAgICAgfSBlbHNlIGlmICh1c2VBQSAmJiAhbWFza1RleHR1cmVJZCkgewpAQCAtNzI1
LDggKzczMSwxMiBAQCB2b2lkIExheWVyUmVuZGVyZXJDaHJvbWl1bTo6ZHJhd1JlbmRlclBhc3NR
dWFkKERyYXdpbmdGcmFtZSYgZnJhbWUsIGNvbnN0IENDUmVuZAogICAgIH0KIAogICAgIGlmIChz
aGFkZXJNYXNrU2FtcGxlckxvY2F0aW9uICE9IC0xKSB7CisgICAgICAgIEFTU0VSVChzaGFkZXJN
YXNrVGV4Q29vcmRTY2FsZUxvY2F0aW9uICE9IDEpOworICAgICAgICBBU1NFUlQoc2hhZGVyTWFz
a1RleENvb3JkT2Zmc2V0TG9jYXRpb24gIT0gMSk7CiAgICAgICAgIEdMQyhjb250ZXh0KCksIGNv
bnRleHQoKS0+YWN0aXZlVGV4dHVyZShHcmFwaGljc0NvbnRleHQzRDo6VEVYVFVSRTEpKTsKICAg
ICAgICAgR0xDKGNvbnRleHQoKSwgY29udGV4dCgpLT51bmlmb3JtMWkoc2hhZGVyTWFza1NhbXBs
ZXJMb2NhdGlvbiwgMSkpOworICAgICAgICBHTEMoY29udGV4dCgpLCBjb250ZXh0KCktPnVuaWZv
cm0yZihzaGFkZXJNYXNrVGV4Q29vcmRTY2FsZUxvY2F0aW9uLCBxdWFkLT5tYXNrVGV4Q29vcmRT
Y2FsZVgoKSwgcXVhZC0+bWFza1RleENvb3JkU2NhbGVZKCkpKTsKKyAgICAgICAgR0xDKGNvbnRl
eHQoKSwgY29udGV4dCgpLT51bmlmb3JtMmYoc2hhZGVyTWFza1RleENvb3JkT2Zmc2V0TG9jYXRp
b24sIHF1YWQtPm1hc2tUZXhDb29yZE9mZnNldFgoKSwgcXVhZC0+bWFza1RleENvb3JkT2Zmc2V0
WSgpKSk7CiAgICAgICAgIGNvbnRleHQoKS0+YmluZFRleHR1cmUoR3JhcGhpY3NDb250ZXh0M0Q6
OlRFWFRVUkVfMkQsIG1hc2tUZXh0dXJlSWQpOwogICAgICAgICBHTEMoY29udGV4dCgpLCBjb250
ZXh0KCktPmFjdGl2ZVRleHR1cmUoR3JhcGhpY3NDb250ZXh0M0Q6OlRFWFRVUkUwKSk7CiAgICAg
fQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0v
U2hhZGVyQ2hyb21pdW0uY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hy
b21pdW0vU2hhZGVyQ2hyb21pdW0uY3BwCmluZGV4IDdlZTVhMjFiOTg2MTgzZTNkZDJiODg4OGVi
OGEyYmVmNzcxYWZhNTEuLjg4MjNkMWE2YzY2MDAzODI1ZGE0MmE2Mjg2NjExYzAxMDA0NzUwNTAg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL1No
YWRlckNocm9taXVtLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9j
aHJvbWl1bS9TaGFkZXJDaHJvbWl1bS5jcHAKQEAgLTY1Niw2ICs2NTYsNyBAQCBGcmFnbWVudFNo
YWRlclJHQkFUZXhBbHBoYU1hc2s6OkZyYWdtZW50U2hhZGVyUkdCQVRleEFscGhhTWFzaygpCiAg
ICAgOiBtX3NhbXBsZXJMb2NhdGlvbigtMSkKICAgICAsIG1fbWFza1NhbXBsZXJMb2NhdGlvbigt
MSkKICAgICAsIG1fYWxwaGFMb2NhdGlvbigtMSkKKyAgICAsIG1fbWFza1RleENvb3JkU2NhbGVM
b2NhdGlvbigtMSkKIHsKIH0KIApAQCAtNjY1LDE0ICs2NjYsMTggQEAgdm9pZCBGcmFnbWVudFNo
YWRlclJHQkFUZXhBbHBoYU1hc2s6OmluaXQoV2ViR3JhcGhpY3NDb250ZXh0M0QqIGNvbnRleHQs
IHVuc2lnbmUKICAgICAgICAgInNfdGV4dHVyZSIsCiAgICAgICAgICJzX21hc2siLAogICAgICAg
ICAiYWxwaGEiLAorICAgICAgICAibWFza1RleENvb3JkU2NhbGUiLAorICAgICAgICAibWFza1Rl
eENvb3JkT2Zmc2V0IiwKICAgICB9OwotICAgIGludCBsb2NhdGlvbnNbM107CisgICAgaW50IGxv
Y2F0aW9uc1s1XTsKIAogICAgIGdldFByb2dyYW1Vbmlmb3JtTG9jYXRpb25zKGNvbnRleHQsIHBy
b2dyYW0sIHNoYWRlclVuaWZvcm1zLCBXVEZfQVJSQVlfTEVOR1RIKHNoYWRlclVuaWZvcm1zKSwg
V1RGX0FSUkFZX0xFTkdUSChsb2NhdGlvbnMpLCBsb2NhdGlvbnMsIHVzaW5nQmluZFVuaWZvcm0s
IGJhc2VVbmlmb3JtSW5kZXgpOwogCiAgICAgbV9zYW1wbGVyTG9jYXRpb24gPSBsb2NhdGlvbnNb
MF07CiAgICAgbV9tYXNrU2FtcGxlckxvY2F0aW9uID0gbG9jYXRpb25zWzFdOwogICAgIG1fYWxw
aGFMb2NhdGlvbiA9IGxvY2F0aW9uc1syXTsKKyAgICBtX21hc2tUZXhDb29yZFNjYWxlTG9jYXRp
b24gPSBsb2NhdGlvbnNbM107CisgICAgbV9tYXNrVGV4Q29vcmRPZmZzZXRMb2NhdGlvbiA9IGxv
Y2F0aW9uc1s0XTsKICAgICBBU1NFUlQobV9zYW1wbGVyTG9jYXRpb24gIT0gLTEgJiYgbV9tYXNr
U2FtcGxlckxvY2F0aW9uICE9IC0xICYmIG1fYWxwaGFMb2NhdGlvbiAhPSAtMSk7CiB9CiAKQEAg
LTY4MywxMSArNjg4LDE0IEBAIFN0cmluZyBGcmFnbWVudFNoYWRlclJHQkFUZXhBbHBoYU1hc2s6
OmdldFNoYWRlclN0cmluZygpIGNvbnN0CiAgICAgICAgIHZhcnlpbmcgdmVjMiB2X3RleENvb3Jk
OwogICAgICAgICB1bmlmb3JtIHNhbXBsZXIyRCBzX3RleHR1cmU7CiAgICAgICAgIHVuaWZvcm0g
c2FtcGxlcjJEIHNfbWFzazsKKyAgICAgICAgdW5pZm9ybSB2ZWMyIG1hc2tUZXhDb29yZFNjYWxl
OworICAgICAgICB1bmlmb3JtIHZlYzIgbWFza1RleENvb3JkT2Zmc2V0OwogICAgICAgICB1bmlm
b3JtIGZsb2F0IGFscGhhOwogICAgICAgICB2b2lkIG1haW4oKQogICAgICAgICB7CiAgICAgICAg
ICAgICB2ZWM0IHRleENvbG9yID0gdGV4dHVyZTJEKHNfdGV4dHVyZSwgdl90ZXhDb29yZCk7Ci0g
ICAgICAgICAgICB2ZWM0IG1hc2tDb2xvciA9IHRleHR1cmUyRChzX21hc2ssIHZfdGV4Q29vcmQp
OworICAgICAgICAgICAgdmVjMiBtYXNrVGV4Q29vcmQgPSB2ZWMyKG1hc2tUZXhDb29yZE9mZnNl
dC54ICsgdl90ZXhDb29yZC54ICogbWFza1RleENvb3JkU2NhbGUueCwgbWFza1RleENvb3JkT2Zm
c2V0LnkgKyB2X3RleENvb3JkLnkgKiBtYXNrVGV4Q29vcmRTY2FsZS55KTsKKyAgICAgICAgICAg
IHZlYzQgbWFza0NvbG9yID0gdGV4dHVyZTJEKHNfbWFzaywgbWFza1RleENvb3JkKTsKICAgICAg
ICAgICAgIGdsX0ZyYWdDb2xvciA9IHZlYzQodGV4Q29sb3IueCwgdGV4Q29sb3IueSwgdGV4Q29s
b3IueiwgdGV4Q29sb3IudykgKiBhbHBoYSAqIG1hc2tDb2xvci53OwogICAgICAgICB9CiAgICAg
KTsKQEAgLTY5OCw2ICs3MDYsNyBAQCBGcmFnbWVudFNoYWRlclJHQkFUZXhBbHBoYU1hc2tBQTo6
RnJhZ21lbnRTaGFkZXJSR0JBVGV4QWxwaGFNYXNrQUEoKQogICAgICwgbV9tYXNrU2FtcGxlckxv
Y2F0aW9uKC0xKQogICAgICwgbV9hbHBoYUxvY2F0aW9uKC0xKQogICAgICwgbV9lZGdlTG9jYXRp
b24oLTEpCisgICAgLCBtX21hc2tUZXhDb29yZFNjYWxlTG9jYXRpb24oLTEpCiB7CiB9CiAKQEAg
LTcwOCw4ICs3MTcsMTAgQEAgdm9pZCBGcmFnbWVudFNoYWRlclJHQkFUZXhBbHBoYU1hc2tBQTo6
aW5pdChXZWJHcmFwaGljc0NvbnRleHQzRCogY29udGV4dCwgdW5zaWcKICAgICAgICAgInNfbWFz
ayIsCiAgICAgICAgICJhbHBoYSIsCiAgICAgICAgICJlZGdlIiwKKyAgICAgICAgIm1hc2tUZXhD
b29yZFNjYWxlIiwKKyAgICAgICAgIm1hc2tUZXhDb29yZE9mZnNldCIsCiAgICAgfTsKLSAgICBp
bnQgbG9jYXRpb25zWzRdOworICAgIGludCBsb2NhdGlvbnNbNl07CiAKICAgICBnZXRQcm9ncmFt
VW5pZm9ybUxvY2F0aW9ucyhjb250ZXh0LCBwcm9ncmFtLCBzaGFkZXJVbmlmb3JtcywgV1RGX0FS
UkFZX0xFTkdUSChzaGFkZXJVbmlmb3JtcyksIFdURl9BUlJBWV9MRU5HVEgobG9jYXRpb25zKSwg
bG9jYXRpb25zLCB1c2luZ0JpbmRVbmlmb3JtLCBiYXNlVW5pZm9ybUluZGV4KTsKIApAQCAtNzE3
LDYgKzcyOCw4IEBAIHZvaWQgRnJhZ21lbnRTaGFkZXJSR0JBVGV4QWxwaGFNYXNrQUE6OmluaXQo
V2ViR3JhcGhpY3NDb250ZXh0M0QqIGNvbnRleHQsIHVuc2lnCiAgICAgbV9tYXNrU2FtcGxlckxv
Y2F0aW9uID0gbG9jYXRpb25zWzFdOwogICAgIG1fYWxwaGFMb2NhdGlvbiA9IGxvY2F0aW9uc1sy
XTsKICAgICBtX2VkZ2VMb2NhdGlvbiA9IGxvY2F0aW9uc1szXTsKKyAgICBtX21hc2tUZXhDb29y
ZFNjYWxlTG9jYXRpb24gPSBsb2NhdGlvbnNbNF07CisgICAgbV9tYXNrVGV4Q29vcmRPZmZzZXRM
b2NhdGlvbiA9IGxvY2F0aW9uc1s1XTsKICAgICBBU1NFUlQobV9zYW1wbGVyTG9jYXRpb24gIT0g
LTEgJiYgbV9tYXNrU2FtcGxlckxvY2F0aW9uICE9IC0xICYmIG1fYWxwaGFMb2NhdGlvbiAhPSAt
MSAmJiBtX2VkZ2VMb2NhdGlvbiAhPSAtMSk7CiB9CiAKQEAgLTcyNywxMiArNzQwLDE1IEBAIFN0
cmluZyBGcmFnbWVudFNoYWRlclJHQkFUZXhBbHBoYU1hc2tBQTo6Z2V0U2hhZGVyU3RyaW5nKCkg
Y29uc3QKICAgICAgICAgdmFyeWluZyB2ZWMyIHZfdGV4Q29vcmQ7CiAgICAgICAgIHVuaWZvcm0g
c2FtcGxlcjJEIHNfdGV4dHVyZTsKICAgICAgICAgdW5pZm9ybSBzYW1wbGVyMkQgc19tYXNrOwor
ICAgICAgICB1bmlmb3JtIHZlYzIgbWFza1RleENvb3JkU2NhbGU7CisgICAgICAgIHVuaWZvcm0g
dmVjMiBtYXNrVGV4Q29vcmRPZmZzZXQ7CiAgICAgICAgIHVuaWZvcm0gZmxvYXQgYWxwaGE7CiAg
ICAgICAgIHVuaWZvcm0gdmVjMyBlZGdlWzhdOwogICAgICAgICB2b2lkIG1haW4oKQogICAgICAg
ICB7CiAgICAgICAgICAgICB2ZWM0IHRleENvbG9yID0gdGV4dHVyZTJEKHNfdGV4dHVyZSwgdl90
ZXhDb29yZCk7Ci0gICAgICAgICAgICB2ZWM0IG1hc2tDb2xvciA9IHRleHR1cmUyRChzX21hc2ss
IHZfdGV4Q29vcmQpOworICAgICAgICAgICAgdmVjMiBtYXNrVGV4Q29vcmQgPSB2ZWMyKG1hc2tU
ZXhDb29yZE9mZnNldC54ICsgdl90ZXhDb29yZC54ICogbWFza1RleENvb3JkU2NhbGUueCwgbWFz
a1RleENvb3JkT2Zmc2V0LnkgKyB2X3RleENvb3JkLnkgKiBtYXNrVGV4Q29vcmRTY2FsZS55KTsK
KyAgICAgICAgICAgIHZlYzQgbWFza0NvbG9yID0gdGV4dHVyZTJEKHNfbWFzaywgbWFza1RleENv
b3JkKTsKICAgICAgICAgICAgIHZlYzMgcG9zID0gdmVjMyhnbF9GcmFnQ29vcmQueHksIDEpOwog
ICAgICAgICAgICAgZmxvYXQgYTAgPSBjbGFtcChkb3QoZWRnZVswXSwgcG9zKSwgMC4wLCAxLjAp
OwogICAgICAgICAgICAgZmxvYXQgYTEgPSBjbGFtcChkb3QoZWRnZVsxXSwgcG9zKSwgMC4wLCAx
LjApOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21p
dW0vU2hhZGVyQ2hyb21pdW0uaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2No
cm9taXVtL1NoYWRlckNocm9taXVtLmgKaW5kZXggMDA4NzJlNGE0NzExMGIzNzM3MDYwNzQ3ZjNm
ZTVjM2RmM2FiMDhiMi4uNWFmOTVkOGM3ODAzZjA1ZGQ3OGUxY2I3ZGQ1NWE3ZmYyMTIyNmRlNyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vU2hh
ZGVyQ2hyb21pdW0uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJv
bWl1bS9TaGFkZXJDaHJvbWl1bS5oCkBAIC0yODIsMTEgKzI4MiwxNSBAQCBwdWJsaWM6CiAgICAg
aW50IGFscGhhTG9jYXRpb24oKSBjb25zdCB7IHJldHVybiBtX2FscGhhTG9jYXRpb247IH0KICAg
ICBpbnQgc2FtcGxlckxvY2F0aW9uKCkgY29uc3QgeyByZXR1cm4gbV9zYW1wbGVyTG9jYXRpb247
IH0KICAgICBpbnQgbWFza1NhbXBsZXJMb2NhdGlvbigpIGNvbnN0IHsgcmV0dXJuIG1fbWFza1Nh
bXBsZXJMb2NhdGlvbjsgfQorICAgIGludCBtYXNrVGV4Q29vcmRTY2FsZUxvY2F0aW9uKCkgY29u
c3QgeyByZXR1cm4gbV9tYXNrVGV4Q29vcmRTY2FsZUxvY2F0aW9uOyB9CisgICAgaW50IG1hc2tU
ZXhDb29yZE9mZnNldExvY2F0aW9uKCkgY29uc3QgeyByZXR1cm4gbV9tYXNrVGV4Q29vcmRPZmZz
ZXRMb2NhdGlvbjsgfQogCiBwcml2YXRlOgogICAgIGludCBtX3NhbXBsZXJMb2NhdGlvbjsKICAg
ICBpbnQgbV9tYXNrU2FtcGxlckxvY2F0aW9uOwogICAgIGludCBtX2FscGhhTG9jYXRpb247Cisg
ICAgaW50IG1fbWFza1RleENvb3JkU2NhbGVMb2NhdGlvbjsKKyAgICBpbnQgbV9tYXNrVGV4Q29v
cmRPZmZzZXRMb2NhdGlvbjsKIH07CiAKIGNsYXNzIEZyYWdtZW50U2hhZGVyUkdCQVRleEFscGhh
TWFza0FBIHsKQEAgLTI5OSwxMiArMzAzLDE2IEBAIHB1YmxpYzoKICAgICBpbnQgc2FtcGxlckxv
Y2F0aW9uKCkgY29uc3QgeyByZXR1cm4gbV9zYW1wbGVyTG9jYXRpb247IH0KICAgICBpbnQgbWFz
a1NhbXBsZXJMb2NhdGlvbigpIGNvbnN0IHsgcmV0dXJuIG1fbWFza1NhbXBsZXJMb2NhdGlvbjsg
fQogICAgIGludCBlZGdlTG9jYXRpb24oKSBjb25zdCB7IHJldHVybiBtX2VkZ2VMb2NhdGlvbjsg
fQorICAgIGludCBtYXNrVGV4Q29vcmRTY2FsZUxvY2F0aW9uKCkgY29uc3QgeyByZXR1cm4gbV9t
YXNrVGV4Q29vcmRTY2FsZUxvY2F0aW9uOyB9CisgICAgaW50IG1hc2tUZXhDb29yZE9mZnNldExv
Y2F0aW9uKCkgY29uc3QgeyByZXR1cm4gbV9tYXNrVGV4Q29vcmRPZmZzZXRMb2NhdGlvbjsgfQog
CiBwcml2YXRlOgogICAgIGludCBtX3NhbXBsZXJMb2NhdGlvbjsKICAgICBpbnQgbV9tYXNrU2Ft
cGxlckxvY2F0aW9uOwogICAgIGludCBtX2FscGhhTG9jYXRpb247CiAgICAgaW50IG1fZWRnZUxv
Y2F0aW9uOworICAgIGludCBtX21hc2tUZXhDb29yZFNjYWxlTG9jYXRpb247CisgICAgaW50IG1f
bWFza1RleENvb3JkT2Zmc2V0TG9jYXRpb247CiB9OwogCiBjbGFzcyBGcmFnbWVudFNoYWRlcllV
VlZpZGVvIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2No
cm9taXVtL2NjL0NDUmVuZGVyUGFzc0RyYXdRdWFkLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDUmVuZGVyUGFzc0RyYXdRdWFkLmNwcAppbmRleCBj
YTA4MTExOTY0ZDhmOGEwNTlhMjM0Yjc0YjdiZTZjNDc1NmMyYjFlLi4zYjBhNDhhN2FmY2M2ODM3
ZDBhNDVhMDFhZTJkYTZlMmEwZmUxNGIxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ1JlbmRlclBhc3NEcmF3UXVhZC5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NSZW5kZXJQYXNz
RHJhd1F1YWQuY3BwCkBAIC0yOSwxNyArMjksMjEgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewog
Ci1QYXNzT3duUHRyPENDUmVuZGVyUGFzc0RyYXdRdWFkPiBDQ1JlbmRlclBhc3NEcmF3UXVhZDo6
Y3JlYXRlKGNvbnN0IENDU2hhcmVkUXVhZFN0YXRlKiBzaGFyZWRRdWFkU3RhdGUsIGNvbnN0IElu
dFJlY3QmIHF1YWRSZWN0LCBpbnQgcmVuZGVyUGFzc0lkLCBib29sIGlzUmVwbGljYSwgY29uc3Qg
Q0NSZXNvdXJjZVByb3ZpZGVyOjpSZXNvdXJjZUlkIG1hc2tSZXNvdXJjZUlkLCBjb25zdCBJbnRS
ZWN0JiBjb250ZW50c0NoYW5nZWRTaW5jZUxhc3RGcmFtZSkKK1Bhc3NPd25QdHI8Q0NSZW5kZXJQ
YXNzRHJhd1F1YWQ+IENDUmVuZGVyUGFzc0RyYXdRdWFkOjpjcmVhdGUoY29uc3QgQ0NTaGFyZWRR
dWFkU3RhdGUqIHNoYXJlZFF1YWRTdGF0ZSwgY29uc3QgSW50UmVjdCYgcXVhZFJlY3QsIGludCBy
ZW5kZXJQYXNzSWQsIGJvb2wgaXNSZXBsaWNhLCBjb25zdCBDQ1Jlc291cmNlUHJvdmlkZXI6OlJl
c291cmNlSWQgbWFza1Jlc291cmNlSWQsIGNvbnN0IEludFJlY3QmIGNvbnRlbnRzQ2hhbmdlZFNp
bmNlTGFzdEZyYW1lLCBmbG9hdCBtYXNrVGV4Q29vcmRTY2FsZVgsIGZsb2F0IG1hc2tUZXhDb29y
ZFNjYWxlWSwgZmxvYXQgbWFza1RleENvb3JkT2Zmc2V0WCwgZmxvYXQgbWFza1RleENvb3JkT2Zm
c2V0WSkKIHsKLSAgICByZXR1cm4gYWRvcHRQdHIobmV3IENDUmVuZGVyUGFzc0RyYXdRdWFkKHNo
YXJlZFF1YWRTdGF0ZSwgcXVhZFJlY3QsIHJlbmRlclBhc3NJZCwgaXNSZXBsaWNhLCBtYXNrUmVz
b3VyY2VJZCwgY29udGVudHNDaGFuZ2VkU2luY2VMYXN0RnJhbWUpKTsKKyAgICByZXR1cm4gYWRv
cHRQdHIobmV3IENDUmVuZGVyUGFzc0RyYXdRdWFkKHNoYXJlZFF1YWRTdGF0ZSwgcXVhZFJlY3Qs
IHJlbmRlclBhc3NJZCwgaXNSZXBsaWNhLCBtYXNrUmVzb3VyY2VJZCwgY29udGVudHNDaGFuZ2Vk
U2luY2VMYXN0RnJhbWUsIG1hc2tUZXhDb29yZFNjYWxlWCwgbWFza1RleENvb3JkU2NhbGVZLCBt
YXNrVGV4Q29vcmRPZmZzZXRYLCBtYXNrVGV4Q29vcmRPZmZzZXRZKSk7CiB9CiAKLUNDUmVuZGVy
UGFzc0RyYXdRdWFkOjpDQ1JlbmRlclBhc3NEcmF3UXVhZChjb25zdCBDQ1NoYXJlZFF1YWRTdGF0
ZSogc2hhcmVkUXVhZFN0YXRlLCBjb25zdCBJbnRSZWN0JiBxdWFkUmVjdCwgaW50IHJlbmRlclBh
c3NJZCwgYm9vbCBpc1JlcGxpY2EsIENDUmVzb3VyY2VQcm92aWRlcjo6UmVzb3VyY2VJZCBtYXNr
UmVzb3VyY2VJZCwgY29uc3QgSW50UmVjdCYgY29udGVudHNDaGFuZ2VkU2luY2VMYXN0RnJhbWUp
CitDQ1JlbmRlclBhc3NEcmF3UXVhZDo6Q0NSZW5kZXJQYXNzRHJhd1F1YWQoY29uc3QgQ0NTaGFy
ZWRRdWFkU3RhdGUqIHNoYXJlZFF1YWRTdGF0ZSwgY29uc3QgSW50UmVjdCYgcXVhZFJlY3QsIGlu
dCByZW5kZXJQYXNzSWQsIGJvb2wgaXNSZXBsaWNhLCBDQ1Jlc291cmNlUHJvdmlkZXI6OlJlc291
cmNlSWQgbWFza1Jlc291cmNlSWQsIGNvbnN0IEludFJlY3QmIGNvbnRlbnRzQ2hhbmdlZFNpbmNl
TGFzdEZyYW1lLCBmbG9hdCBtYXNrVGV4Q29vcmRTY2FsZVgsIGZsb2F0IG1hc2tUZXhDb29yZFNj
YWxlWSwgZmxvYXQgbWFza1RleENvb3JkT2Zmc2V0WCwgZmxvYXQgbWFza1RleENvb3JkT2Zmc2V0
WSkKICAgICA6IENDRHJhd1F1YWQoc2hhcmVkUXVhZFN0YXRlLCBDQ0RyYXdRdWFkOjpSZW5kZXJQ
YXNzLCBxdWFkUmVjdCkKICAgICAsIG1fcmVuZGVyUGFzc0lkKHJlbmRlclBhc3NJZCkKICAgICAs
IG1faXNSZXBsaWNhKGlzUmVwbGljYSkKICAgICAsIG1fbWFza1Jlc291cmNlSWQobWFza1Jlc291
cmNlSWQpCiAgICAgLCBtX2NvbnRlbnRzQ2hhbmdlZFNpbmNlTGFzdEZyYW1lKGNvbnRlbnRzQ2hh
bmdlZFNpbmNlTGFzdEZyYW1lKQorICAgICwgbV9tYXNrVGV4Q29vcmRTY2FsZVgobWFza1RleENv
b3JkU2NhbGVYKQorICAgICwgbV9tYXNrVGV4Q29vcmRTY2FsZVkobWFza1RleENvb3JkU2NhbGVZ
KQorICAgICwgbV9tYXNrVGV4Q29vcmRPZmZzZXRYKG1hc2tUZXhDb29yZE9mZnNldFgpCisgICAg
LCBtX21hc2tUZXhDb29yZE9mZnNldFkobWFza1RleENvb3JkT2Zmc2V0WSkKIHsKICAgICBBU1NF
UlQobV9yZW5kZXJQYXNzSWQgPiAwKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDUmVuZGVyUGFzc0RyYXdRdWFkLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ1JlbmRlclBhc3NEcmF3
UXVhZC5oCmluZGV4IDI5YjMzYTFmNmFkZTg2MjIxZGYzNDg5ODFkNzIxNzYyOTA3NDZhNWMuLmRm
OGNlMGM5MDI5NDJlMzRmMzE4NGU2YjRkMTc5NGIxYTg5ZDYxMDUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDUmVuZGVyUGFzc0RyYXdR
dWFkLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2Mv
Q0NSZW5kZXJQYXNzRHJhd1F1YWQuaApAQCAtMzgsNyArMzgsNyBAQCBjbGFzcyBDQ1JlbmRlclBh
c3M7CiBjbGFzcyBDQ1JlbmRlclBhc3NEcmF3UXVhZCA6IHB1YmxpYyBDQ0RyYXdRdWFkIHsKICAg
ICBXVEZfTUFLRV9OT05DT1BZQUJMRShDQ1JlbmRlclBhc3NEcmF3UXVhZCk7CiBwdWJsaWM6Ci0g
ICAgc3RhdGljIFBhc3NPd25QdHI8Q0NSZW5kZXJQYXNzRHJhd1F1YWQ+IGNyZWF0ZShjb25zdCBD
Q1NoYXJlZFF1YWRTdGF0ZSosIGNvbnN0IEludFJlY3QmLCBpbnQgcmVuZGVyUGFzc0lkLCBib29s
IGlzUmVwbGljYSwgQ0NSZXNvdXJjZVByb3ZpZGVyOjpSZXNvdXJjZUlkIG1hc2tSZXNvdXJjZUlk
LCBjb25zdCBJbnRSZWN0JiBjb250ZW50c0NoYW5nZWRTaW5jZUxhc3RGcmFtZSk7CisgICAgc3Rh
dGljIFBhc3NPd25QdHI8Q0NSZW5kZXJQYXNzRHJhd1F1YWQ+IGNyZWF0ZShjb25zdCBDQ1NoYXJl
ZFF1YWRTdGF0ZSosIGNvbnN0IEludFJlY3QmLCBpbnQgcmVuZGVyUGFzc0lkLCBib29sIGlzUmVw
bGljYSwgQ0NSZXNvdXJjZVByb3ZpZGVyOjpSZXNvdXJjZUlkIG1hc2tSZXNvdXJjZUlkLCBjb25z
dCBJbnRSZWN0JiBjb250ZW50c0NoYW5nZWRTaW5jZUxhc3RGcmFtZSwgZmxvYXQgbWFza1RleENv
b3JkU2NhbGVYLCBmbG9hdCBtYXNrVGV4Q29vcmRTY2FsZVksIGZsb2F0IG1hc2tUZXhDb29yZE9m
ZnNldFgsIGZsb2F0IG1hc2tUZXhDb29yZE9mZnNldFkpOwogCiAgICAgaW50IHJlbmRlclBhc3NJ
ZCgpIGNvbnN0IHsgcmV0dXJuIG1fcmVuZGVyUGFzc0lkOyB9CiAgICAgYm9vbCBpc1JlcGxpY2Eo
KSBjb25zdCB7IHJldHVybiBtX2lzUmVwbGljYTsgfQpAQCAtNDYsMTMgKzQ2LDIyIEBAIHB1Ymxp
YzoKICAgICBjb25zdCBJbnRSZWN0JiBjb250ZW50c0NoYW5nZWRTaW5jZUxhc3RGcmFtZSgpIGNv
bnN0IHsgcmV0dXJuIG1fY29udGVudHNDaGFuZ2VkU2luY2VMYXN0RnJhbWU7IH0KIAogICAgIHN0
YXRpYyBjb25zdCBDQ1JlbmRlclBhc3NEcmF3UXVhZCogbWF0ZXJpYWxDYXN0KGNvbnN0IENDRHJh
d1F1YWQqKTsKKyAgICBmbG9hdCBtYXNrVGV4Q29vcmRTY2FsZVgoKSBjb25zdCB7IHJldHVybiBt
X21hc2tUZXhDb29yZFNjYWxlWDsgfQorICAgIGZsb2F0IG1hc2tUZXhDb29yZFNjYWxlWSgpIGNv
bnN0IHsgcmV0dXJuIG1fbWFza1RleENvb3JkU2NhbGVZOyB9CisgICAgZmxvYXQgbWFza1RleENv
b3JkT2Zmc2V0WCgpIGNvbnN0IHsgcmV0dXJuIG1fbWFza1RleENvb3JkT2Zmc2V0WDsgfQorICAg
IGZsb2F0IG1hc2tUZXhDb29yZE9mZnNldFkoKSBjb25zdCB7IHJldHVybiBtX21hc2tUZXhDb29y
ZE9mZnNldFk7IH0KKwogcHJpdmF0ZToKLSAgICBDQ1JlbmRlclBhc3NEcmF3UXVhZChjb25zdCBD
Q1NoYXJlZFF1YWRTdGF0ZSosIGNvbnN0IEludFJlY3QmLCBpbnQgcmVuZGVyUGFzc0lkLCBib29s
IGlzUmVwbGljYSwgQ0NSZXNvdXJjZVByb3ZpZGVyOjpSZXNvdXJjZUlkIG1hc2tSZXNvdXJjZUlk
LCBjb25zdCBJbnRSZWN0JiBjb250ZW50c0NoYW5nZWRTaW5jZUxhc3RGcmFtZSk7CisgICAgQ0NS
ZW5kZXJQYXNzRHJhd1F1YWQoY29uc3QgQ0NTaGFyZWRRdWFkU3RhdGUqLCBjb25zdCBJbnRSZWN0
JiwgaW50IHJlbmRlclBhc3NJZCwgYm9vbCBpc1JlcGxpY2EsIENDUmVzb3VyY2VQcm92aWRlcjo6
UmVzb3VyY2VJZCBtYXNrUmVzb3VyY2VJZCwgY29uc3QgSW50UmVjdCYgY29udGVudHNDaGFuZ2Vk
U2luY2VMYXN0RnJhbWUsIGZsb2F0IG1hc2tUZXhDb29yZFNjYWxlWCwgZmxvYXQgbWFza1RleENv
b3JkU2NhbGVZLCBmbG9hdCBtYXNrVGV4Q29vcmRPZmZzZXRYLCBmbG9hdCBtYXNrVGV4Q29vcmRP
ZmZzZXRZKTsKIAogICAgIGludCBtX3JlbmRlclBhc3NJZDsKICAgICBib29sIG1faXNSZXBsaWNh
OwogICAgIENDUmVzb3VyY2VQcm92aWRlcjo6UmVzb3VyY2VJZCBtX21hc2tSZXNvdXJjZUlkOwog
ICAgIEludFJlY3QgbV9jb250ZW50c0NoYW5nZWRTaW5jZUxhc3RGcmFtZTsKKyAgICBmbG9hdCBt
X21hc2tUZXhDb29yZFNjYWxlWDsKKyAgICBmbG9hdCBtX21hc2tUZXhDb29yZFNjYWxlWTsKKyAg
ICBmbG9hdCBtX21hc2tUZXhDb29yZE9mZnNldFg7CisgICAgZmxvYXQgbV9tYXNrVGV4Q29vcmRP
ZmZzZXRZOwogfTsKIAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvY2hyb21pdW0vY2MvQ0NSZW5kZXJTdXJmYWNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDUmVuZGVyU3VyZmFjZS5jcHAKaW5kZXggNDI1
ZDcyNzg4MGExZTFiYmZlYzIyODY2YmQxMmY5ZjhjZGNjZDkzZC4uNGIyNzFlMWRiNTI4YTk1ZDMw
ZDJjNjQ0NzcwOTUzYmFiMjY1Y2QxZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NSZW5kZXJTdXJmYWNlLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ1JlbmRlclN1cmZhY2UuY3Bw
CkBAIC0yMDcsMTAgKzIwNywyMiBAQCB2b2lkIENDUmVuZGVyU3VyZmFjZTo6YXBwZW5kUXVhZHMo
Q0NRdWFkU2luayYgcXVhZExpc3QsIENDU2hhcmVkUXVhZFN0YXRlKiBzaGFyZQogICAgICAgICAg
ICAgbWFza0xheWVyID0gMDsKICAgICB9CiAKKyAgICBmbG9hdCBtYXNrVGV4Q29vcmRTY2FsZVgg
PSAxOworICAgIGZsb2F0IG1hc2tUZXhDb29yZFNjYWxlWSA9IDE7CisgICAgZmxvYXQgbWFza1Rl
eENvb3JkT2Zmc2V0WCA9IDE7CisgICAgZmxvYXQgbWFza1RleENvb3JkT2Zmc2V0WSA9IDE7Cisg
ICAgaWYgKG1hc2tMYXllcikgeworICAgICAgICBtYXNrVGV4Q29vcmRTY2FsZVggPSBzdGF0aWNf
Y2FzdDxmbG9hdD4oY29udGVudFJlY3QoKS53aWR0aCgpKSAvIG1hc2tMYXllci0+Y29udGVudEJv
dW5kcygpLndpZHRoKCk7CisgICAgICAgIG1hc2tUZXhDb29yZFNjYWxlWSA9IHN0YXRpY19jYXN0
PGZsb2F0Pihjb250ZW50UmVjdCgpLmhlaWdodCgpKSAvIG1hc2tMYXllci0+Y29udGVudEJvdW5k
cygpLmhlaWdodCgpOworICAgICAgICBtYXNrVGV4Q29vcmRPZmZzZXRYID0gc3RhdGljX2Nhc3Q8
ZmxvYXQ+KGNvbnRlbnRSZWN0KCkueCgpKSAvIGNvbnRlbnRSZWN0KCkud2lkdGgoKSAqIG1hc2tU
ZXhDb29yZFNjYWxlWDsKKyAgICAgICAgbWFza1RleENvb3JkT2Zmc2V0WSA9IHN0YXRpY19jYXN0
PGZsb2F0Pihjb250ZW50UmVjdCgpLnkoKSkgLyBjb250ZW50UmVjdCgpLmhlaWdodCgpICogbWFz
a1RleENvb3JkU2NhbGVZOworICAgIH0KKwogICAgIENDUmVzb3VyY2VQcm92aWRlcjo6UmVzb3Vy
Y2VJZCBtYXNrUmVzb3VyY2VJZCA9IG1hc2tMYXllciA/IG1hc2tMYXllci0+Y29udGVudHNSZXNv
dXJjZUlkKCkgOiAwOwogICAgIEludFJlY3QgY29udGVudHNDaGFuZ2VkU2luY2VMYXN0RnJhbWUg
PSBjb250ZW50c0NoYW5nZWQoKSA/IG1fY29udGVudFJlY3QgOiBJbnRSZWN0KCk7CiAKLSAgICBx
dWFkTGlzdC5hcHBlbmQoQ0NSZW5kZXJQYXNzRHJhd1F1YWQ6OmNyZWF0ZShzaGFyZWRRdWFkU3Rh
dGUsIGNvbnRlbnRSZWN0KCksIHJlbmRlclBhc3NJZCwgZm9yUmVwbGljYSwgbWFza1Jlc291cmNl
SWQsIGNvbnRlbnRzQ2hhbmdlZFNpbmNlTGFzdEZyYW1lKSk7CisgICAgcXVhZExpc3QuYXBwZW5k
KENDUmVuZGVyUGFzc0RyYXdRdWFkOjpjcmVhdGUoc2hhcmVkUXVhZFN0YXRlLCBjb250ZW50UmVj
dCgpLCByZW5kZXJQYXNzSWQsIGZvclJlcGxpY2EsIG1hc2tSZXNvdXJjZUlkLCBjb250ZW50c0No
YW5nZWRTaW5jZUxhc3RGcmFtZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBtYXNrVGV4Q29vcmRTY2FsZVgsIG1hc2tUZXhDb29yZFNjYWxlWSwgbWFz
a1RleENvb3JkT2Zmc2V0WCwgbWFza1RleENvb3JkT2Zmc2V0WSkpOwogfQogCiB9CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL0NDTGF5ZXJUcmVlSG9zdEltcGxUZXN0
LmNwcCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvQ0NMYXllclRyZWVIb3N0SW1wbFRl
c3QuY3BwCmluZGV4IDk1N2E1ODk3NzBhNDExM2E5NWRmMGFlZTVhYjE3YzVkNTZkZTEyNjYuLjc1
MmFiYzFiYTZjOGJlNzM4NzI3MDlhNDAzODU2OWMwMWNlMDdiYzYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvQ0NMYXllclRyZWVIb3N0SW1wbFRlc3QuY3BwCisrKyBi
L1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvQ0NMYXllclRyZWVIb3N0SW1wbFRlc3QuY3Bw
CkBAIC0zODAyLDcgKzM4MDIsNyBAQCBzdGF0aWMgdm9pZCBjb25maWd1cmVSZW5kZXJQYXNzVGVz
dERhdGEoY29uc3QgY2hhciogdGVzdFNjcmlwdCwgUmVuZGVyUGFzc1JlbW92YQogCiAgICAgICAg
ICAgICAgICAgSW50UmVjdCBxdWFkUmVjdCA9IEludFJlY3QoMCwgMCwgMSwgMSk7CiAgICAgICAg
ICAgICAgICAgSW50UmVjdCBjb250ZW50c0NoYW5nZWRSZWN0ID0gY29udGVudHNDaGFuZ2VkID8g
cXVhZFJlY3QgOiBJbnRSZWN0KCk7Ci0gICAgICAgICAgICAgICAgT3duUHRyPENDUmVuZGVyUGFz
c0RyYXdRdWFkPiBxdWFkID0gQ0NSZW5kZXJQYXNzRHJhd1F1YWQ6OmNyZWF0ZSh0ZXN0RGF0YS5z
aGFyZWRRdWFkU3RhdGUuZ2V0KCksIHF1YWRSZWN0LCBuZXdSZW5kZXJQYXNzSWQsIGlzUmVwbGlj
YSwgMSwgY29udGVudHNDaGFuZ2VkUmVjdCk7CisgICAgICAgICAgICAgICAgT3duUHRyPENDUmVu
ZGVyUGFzc0RyYXdRdWFkPiBxdWFkID0gQ0NSZW5kZXJQYXNzRHJhd1F1YWQ6OmNyZWF0ZSh0ZXN0
RGF0YS5zaGFyZWRRdWFkU3RhdGUuZ2V0KCksIHF1YWRSZWN0LCBuZXdSZW5kZXJQYXNzSWQsIGlz
UmVwbGljYSwgMSwgY29udGVudHNDaGFuZ2VkUmVjdCwgMSwgMSwgMCwgMCk7CiAgICAgICAgICAg
ICAgICAgc3RhdGljX2Nhc3Q8Q0NUZXN0UmVuZGVyUGFzcyo+KHJlbmRlclBhc3MuZ2V0KCkpLT5h
cHBlbmRRdWFkKHF1YWQucmVsZWFzZSgpKTsKICAgICAgICAgICAgIH0KICAgICAgICAgfQpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmlu
ZGV4IDBmZTUzMTE0NzRhMzQ4OWNhYjg1NjY4NzgyN2M5MTc4NDU4NmI4MzUuLjFiYzhlNjlhNTkw
ZDQxMTE1NzMzNmYzMDc4MzA3OWUxYWNkYWVjNzEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0No
YW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxOCBAQAorMjAx
Mi0wOC0wOSAgU2hhd24gU2luZ2ggIDxzaGF3bnNpbmdoQGNocm9taXVtLm9yZz4KKworICAgICAg
ICBbY2hyb21pdW1dIFBhc3MgbWFzayBzY2FsZSBhbmQgb2Zmc2V0IHRvIHNoYWRlcnMgZm9yIGNv
cnJlY3QgbWFza2luZworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9OTM1NTgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBBZGRlZCBhIGxheW91dCB0ZXN0IHRoYXQgY2hlY2tzIHRoZSBtYXNrIGRvZXMgbm90IGFj
Y2lkZW50YWxseSBnZXQKKyAgICAgICAgcmVzaXplZCB3aGVuIGl0IGlzIGluc2lkZSBvZiBhbiBv
dmVyZmxvdyBkaXYuCisKKyAgICAgICAgKiBjb21wb3NpdGluZy9tYXNrcy9tYXNrLW9mLWNsaXBw
ZWQtbGF5ZXItZXhwZWN0ZWQucG5nOiBBZGRlZC4KKyAgICAgICAgKiBjb21wb3NpdGluZy9tYXNr
cy9tYXNrLW9mLWNsaXBwZWQtbGF5ZXItZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBj
b21wb3NpdGluZy9tYXNrcy9tYXNrLW9mLWNsaXBwZWQtbGF5ZXIuaHRtbDogQWRkZWQuCisgICAg
ICAgICogY29tcG9zaXRpbmcvcmVzb3VyY2VzL2FscGhhLWJsb2Nrcy5wbmc6IEFkZGVkLgorCiAy
MDEyLTA4LTA5ICBNaWtoYWlsIFBvemRueWFrb3YgIDxtaWtoYWlsLnBvemRueWFrb3ZAaW50ZWwu
Y29tPgogCiAgICAgICAgIFtFRkxdIEdhcmRlbmluZyBhZnRlciByMTI1MTAyCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9jb21wb3NpdGluZy9tYXNrcy9tYXNrLW9mLWNsaXBwZWQtbGF5ZXItZXhw
ZWN0ZWQucG5nIGIvTGF5b3V0VGVzdHMvY29tcG9zaXRpbmcvbWFza3MvbWFzay1vZi1jbGlwcGVk
LWxheWVyLWV4cGVjdGVkLnBuZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45OWFkNmY5MjBmOGZkN2EwYTM2MTExZjY3
YzVkZmMzMjRlYjhhNWZlCkdJVCBiaW5hcnkgcGF0Y2gKbGl0ZXJhbCAzNTA0CnpjbWVBU0BOPyhv
bEh5YHVWQnEhaWEweX55VXsrdllWMmE+aTFCJVFsWWJwUnpua0I5Z0NDTTQ3JD1TdUZ4ZVE2RQp6
c2owQHY9MCsoPSMpanNKWChveHJYfntgTzJGWWVkc1ZQUzA3Tis2TDczK1k4SWVFR2BoRSZYWGQp
Rn41IzhKZkkKejtgTy07OXlxdWo2eTQhO3g5dEkyWUA8TFJkKCkmNiVNJVUtNlU8b2hmND9uMFc/
SXF3ZjElI2h0TSVLak1LTG9sCnoyOzcpbzErQEdANFRrXiZnTXpYSDE0QmEoMTB3XjI1ZmNqbyF3
SDFvbldyMEJjaSQ4KEY1dSgpSkBhcWt2c1h7Zwp6eXlpRWFLbVl1allpRGt+R2smSVIjbFowV0Yk
PTBEdFJ7XkxxNk9ffWZERVNxSXJIP1E9PUl+JTU2RH0tTiZuVjwKekozWHNAIz9Cb3haPzJ1Vykl
dDQrZT9qM1pWQ0ZKUTEhbGYteSYxYXNkX1VGeVIreE4jYXtKOExafDNqSV91RGNzCnp7Q1FXPXUl
fE5xPzRnfUlfUlhwTWBxOWpaQEF2S0MzQjZKSV92Y296RmZ7bUQkfD4rVXtFJUszY1clIypsMkA4
Pwp6SWNMaXJiMjI7LT41S29jVitaSDQyV3hFcCo/b1JgXlVVUy1gYEArWk93fFVLSHM2YkNldCho
dzwyUyRsJS1OJjQKekh7IzsqP1NWT2NoansmQVpVJS1GNzdobDYzNCNnPzM9VkQkMz05bUNqNy1C
PEBhRWRCKkgqUnplUi19fjc9TVgzCnpua3xQQHdqN1BrKGJ5YyNAMz5sYnFxJD09Y1p8JjNWYjZI
ayYyNCF7d2JwSzZufUVVNyl6NCp9USRpQn1TcT9pcAoKbGl0ZXJhbCAwCkhjbVY/ZDAwMDAxCgpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvY29tcG9zaXRpbmcvbWFza3MvbWFzay1vZi1jbGlwcGVk
LWxheWVyLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2NvbXBvc2l0aW5nL21hc2tzL21hc2st
b2YtY2xpcHBlZC1sYXllci1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYTVhYmU1YjAzYWZkZDcx
YWU1OWI4OTc1Y2I5YjEzYTYwNWM2OTUxNwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L2NvbXBvc2l0aW5nL21hc2tzL21hc2stb2YtY2xpcHBlZC1sYXllci1leHBlY3RlZC50eHQKQEAg
LTAsMCArMSwxMCBAQAorbGF5ZXIgYXQgKDAsMCkgc2l6ZSA4MDB4NjAwCisgIFJlbmRlclZpZXcg
YXQgKDAsMCkgc2l6ZSA4MDB4NjAwCitsYXllciBhdCAoMCwwKSBzaXplIDgwMHgyMTYKKyAgUmVu
ZGVyQmxvY2sge0hUTUx9IGF0ICgwLDApIHNpemUgODAweDIxNgorICAgIFJlbmRlckJvZHkge0JP
RFl9IGF0ICg4LDgpIHNpemUgNzg0eDIwMAorbGF5ZXIgYXQgKDgsOCkgc2l6ZSAyMDB4MjAwIHNj
cm9sbFdpZHRoIDMwMCBzY3JvbGxIZWlnaHQgMzAwCisgIFJlbmRlckJsb2NrIHtESVZ9IGF0ICgw
LDApIHNpemUgMjAweDIwMCBbYmdjb2xvcj0jMDAwMEZGXQorICAgIFJlbmRlckJsb2NrIHtESVZ9
IGF0ICgwLDApIHNpemUgMTQweDE0MCBbYmdjb2xvcj0jRkYwMDAwXQorbGF5ZXIgYXQgKDgsOCkg
c2l6ZSAzMDB4MzAwIGJhY2tncm91bmRDbGlwIGF0ICg4LDgpIHNpemUgMjAweDIwMCBjbGlwIGF0
ICg4LDgpIHNpemUgMjAweDIwMCBvdXRsaW5lQ2xpcCBhdCAoOCw4KSBzaXplIDIwMHgyMDAKKyAg
UmVuZGVyQmxvY2sge0RJVn0gYXQgKDAsMCkgc2l6ZSAzMDB4MzAwIFtiZ2NvbG9yPSMwMEZGMDBd
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9jb21wb3NpdGluZy9tYXNrcy9tYXNrLW9mLWNsaXBw
ZWQtbGF5ZXIuaHRtbCBiL0xheW91dFRlc3RzL2NvbXBvc2l0aW5nL21hc2tzL21hc2stb2YtY2xp
cHBlZC1sYXllci5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjU2MDc4MDZhNjA2MmNjZDY3ODY1OWI5NDU2NzUw
ODk5ODI1ZDEwYjYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9jb21wb3NpdGluZy9t
YXNrcy9tYXNrLW9mLWNsaXBwZWQtbGF5ZXIuaHRtbApAQCAtMCwwICsxLDQ1IEBACis8IURPQ1RZ
UEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+CisgIDxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyIgbWVkaWE9
InNjcmVlbiI+CisgICAgICAuaGlkZXNPdmVyZmxvdyB7CisgICAgICAgIGJhY2tncm91bmQtY29s
b3I6IGJsdWU7CisgICAgICAgIHdpZHRoOiAyMDBweDsKKyAgICAgICAgaGVpZ2h0OiAyMDBweDsK
KyAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKKyAgICAgIH0KKworICAgICAgLnNob3VsZE5vdEJl
VmlzaWJsZSB7CisgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJlZDsKKyAgICAgICAgd2lkdGg6
IDE0MHB4OworICAgICAgICBoZWlnaHQ6IDE0MHB4OworICAgICAgfQorCisgICAgICAuY29tcG9z
aXRlZCB7CisgICAgICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGV6KDApOworICAgICAg
fQorCisgICAgICAubWFza2VkIHsKKyAgICAgICAgLXdlYmtpdC1tYXNrLWJveC1pbWFnZTogdXJs
KC4uL3Jlc291cmNlcy9hbHBoYS1ibG9ja3MucG5nKTsKKyAgICAgICAgYmFja2dyb3VuZC1jb2xv
cjogbGltZTsKKyAgICAgICAgd2lkdGg6IDMwMHB4OworICAgICAgICBoZWlnaHQ6IDMwMHB4Owor
ICAgICAgfQorICA8L3N0eWxlPgorPC9oZWFkPgorPGJvZHk+Cis8IS0tIAorIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05MzU1OCAKKworIFNjZW5hcmlvOiBUaGUgYWxw
aGEtYmxvY2tzIG1hc2sgaGFzIGEgY2hlY2tlcmJvYXJkIHBhdHRlcm4gb2Ygb3BhcXVlL3RyYW5z
cGFyZW50Cisgc2VjdGlvbnMuIFRoZSB0b3AtbGVmdCBzZWN0aW9uIG9mIHRoZSBtYXNrIHNob3Vs
ZCBiZSBvcGFxdWUsIHNvIHRoZSByZWQgZGl2IHNob3VsZCBub3QgYmUKKyB2aXNpYmxlIHVuZGVy
bmVhdGggdGhlIG1hc2suIEhvd2V2ZXIsIGluIGNocm9taXVtIHRoZXJlIHdhcyBhIGJ1ZyB3aGVy
ZSB0aGUgbWFzayB3YXMKKyBhY2NpZGVudGFsbHkgYmVpbmcgcmVzaXplZCB0byB0aGUgY2xpcCBh
cmVhLCBpbmNvcnJlY3RseSBleHBvc2luZyB0aGUgcmVkIGRpdi4KKy0tPgorICA8ZGl2IGNsYXNz
PSJoaWRlc092ZXJmbG93Ij4KKyAgICA8ZGl2IGNsYXNzPSJzaG91bGROb3RCZVZpc2libGUiPgor
ICAgIDxkaXYgY2xhc3M9ImNvbXBvc2l0ZWQgbWFza2VkIj4KKyAgICA8L2Rpdj4KKyAgPC9kaXY+
Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9jb21wb3NpdGluZy9y
ZXNvdXJjZXMvYWxwaGEtYmxvY2tzLnBuZyBiL0xheW91dFRlc3RzL2NvbXBvc2l0aW5nL3Jlc291
cmNlcy9hbHBoYS1ibG9ja3MucG5nCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjMxYTE1YzMzYzI1ZGQ3YTViMWY3ZjUx
NDg4ODdiZjU5OTM4OWE4YjkKR0lUIGJpbmFyeSBwYXRjaApsaXRlcmFsIDU1NDEKemNtZUFTQE4/
KG9sSHlgdVZCcSFpYTB5fnlVX1FYV3o7dUN3NEpaO3tGMWR3KUt7VXRII1dBR2YqNHRhcnlheUNT
CnpUbj5LaVV8PjtQYlY7a1Z6MiNyYnI0JSh3eHAhPW5Rb0pURCo+c1BBO2t0I0ppbDxRbjt7az9n
RHhQY3gzPSMoPgp6c2huaEJWXz1TJHEjfThNQSVWZXJRVkloejFLUzMkRU91QEtxbUpoIW8mKk1p
MjM1flZqNjdoKVhoczUhMDs+WWIKemZeNUwjZj1wSW5tU0VzWEBCfj9pJX1BaUB1LWd4RjlUdkJ2
ODtSMz9uQ24wdU1SV1R3Mz1VdnFmZyY4X0dmO3J6Cno8e344bmw3ckkxV2g0WThFVX1LSkVSPylV
TnBKdiowWj5yXyUhYzQlMnElfTRHSy07NGFKMC1xbCZJTHNUZU07agp6diZARS1uYX5uXzJvJk1X
SChvTnJZNzRVSzY1T1JGdFNuVmohY2BCIz5KcHIzOGtYVjxkT1VFfGdWMT1Qc1BLbD8Keil8Nnkx
U2JhYitJUGYkSmh6PEBzJjRPVlI5MGFvJUVYVXojcjRVWTg5ZkxWI2VHcmJGcSUhcXRTQEwmfU5s
UHhaCnp7cDRyKGRRTi04XiNhZEhlLTFHcndAUDhqWj95Z2V3fjl4RDFFdFJiM2w1JEhicSpYbzRu
JHMzYntYd0BBbGhwfgp6cGMpNjNsbFdfSXNPJTdFKWV1cDgkfH1MVDs7Pns1RUEmUklhZzxLU1ht
RjRnOTZTbGA5a0BuKVVgY0g+ZmRZJDAKeHIxc1dtdnp2T3MhVDUlU1U+Q292V3phVFBZdm00Yk08
dnprdX4/ajE0amdgRUBPMVRhUz84M3sxT1RQRUtwWCU3CgpsaXRlcmFsIDAKSGNtVj9kMDAwMDEK
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS9UZXN0RXhwZWN0YXRp
b25zIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vVGVzdEV4cGVjdGF0aW9ucwppbmRl
eCBmMGY4ZjkxODMzYjI5ZGUwMzc2YzQwMWQ3NzVhYmNmMTUwNzdjMWFlLi41ZGRmZGI1MmQzYTNl
N2FlMTExYTdkNDQ2MmEwYmI1M2NjYTc5MzNkIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0
Zm9ybS9jaHJvbWl1bS9UZXN0RXhwZWN0YXRpb25zCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3Jt
L2Nocm9taXVtL1Rlc3RFeHBlY3RhdGlvbnMKQEAgLTM0OTEsNiArMzQ5MSw5IEBAIEJVR1dLOTM1
NjcgREVCVUcgOiBmYXN0L3BhcnNlci9qYXZhc2NyaXB0LXVybC1jb21wYXQtbW9kZS5odG1sID0g
UEFTUyBURVhUCiBCVUdXSzkzNTY5IERFQlVHIDogaHR0cC90ZXN0cy9uYXZpZ2F0aW9uL2xvY2tl
ZGhpc3RvcnktaWZyYW1lLmh0bWwgPSBQQVNTIFRJTUVPVVQgVEVYVAogQlVHV0s5MzU2OCBERUJV
RyA6IGh0dHAvdGVzdHMvbWlzYy93aW5kb3ctZG90LXN0b3AuaHRtbCA9IFBBU1MgVEVYVAogCisv
LyBTaG91bGQgb25seSBuZWVkIHJlYmFzZWxpbmluZyBhZnRlciBidWcgOTM1NTgsIGlmIGJvdGgg
c3F1YXJlcyBhcmUgZnVsbHkgZ3JlZW4uCitCVUdXSzkzNTU4IDogY29tcG9zaXRpbmcvbWFza3Mv
bGF5ZXItbWFzay1wbGFjZW1lbnQuaHRtbCA9IElNQUdFCisKIEJVR1dLOTM1ODYgOiBmYXN0L2Zv
cm1zL2F1dG9jb21wbGV0ZS1vZmYtd2l0aC1kZWZhdWx0LXZhbHVlLWRvZXMtbm90LWNsZWFyLmh0
bWwgPSBUSU1FT1VUCiAKIC8vIFRlc3RzIHJlcXVpcmluZyByZWJhc2VsaW5nIGFmZXIgYnVnIDkz
NDc1Cg==
</data>
<flag name="review"
          id="167422"
          type_id="1"
          status="+"
          setter="enne"
    />
          </attachment>
      

    </bug>

</bugzilla>