<?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>48891</bug_id>
          
          <creation_ts>2010-11-02 17:55:52 -0700</creation_ts>
          <short_desc>renderbufferStorage(DEPTH_STENCIL) shouldn&apos;t generate an error</short_desc>
          <delta_ts>2010-11-04 18:09:22 -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>WebGL</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>PC</rep_platform>
          <op_sys>OS X 10.5</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="Zhenyao Mo">zmo</reporter>
          <assigned_to name="Zhenyao Mo">zmo</assigned_to>
          <cc>cmarrin</cc>
    
    <cc>enne</cc>
    
    <cc>kbr</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>303826</commentid>
    <comment_count>0</comment_count>
    <who name="Zhenyao Mo">zmo</who>
    <bug_when>2010-11-02 17:55:52 -0700</bug_when>
    <thetext>We should check the DEPTH24_STENCIL8 extension.  If it doesn&apos;t exist or it&apos;s GLES backend, we shouldn&apos;t call renderbufferStorage; instead we should mark the renderbuffer as invalid and return.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>304331</commentid>
    <comment_count>1</comment_count>
      <attachid>72880</attachid>
    <who name="Zhenyao Mo">zmo</who>
    <bug_when>2010-11-03 15:50:38 -0700</bug_when>
    <thetext>Created attachment 72880
patch

Test synched with khronos.

The code path where packed_depth_stencil extension doesn&apos;t exist has also been tested by faking m_isDepthStencilSupported = false in WebGLRenderingContext.

This is half of the effort to fix the issue.  We also need to map the enum in command buffer so INVALID_ENUM won&apos;t be generated.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>304367</commentid>
    <comment_count>2</comment_count>
      <attachid>72880</attachid>
    <who name="Kenneth Russell">kbr</who>
    <bug_when>2010-11-03 16:59:36 -0700</bug_when>
    <thetext>Comment on attachment 72880
patch

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

Thanks for fixing this. The code and test look fine aside from one minor issue. It&apos;s too bad we can&apos;t force testing on a configuration where GL_EXT_packed_depth_stencil isn&apos;t actually supported. Are you going to take care of the Chromium side changes or should I?

&gt; WebCore/html/canvas/WebGLRenderingContext.cpp:160
&gt; +        m_isDepthStencilSupported = extensions.contains(&quot;GL_EXT_packed_depth_stencil&quot;);

At this point the way to phrase this extension query is m_context-&gt;getExtensions()-&gt;supports(&quot;GL_OES_packed_depth_stencil&quot;). We&apos;re supposed to be getting rid of the EXTENSIONS enum at the public API level in https://bugs.webkit.org/show_bug.cgi?id=40316 and presumably from GraphicsContext3D as well. (It will probably need to remain as a private enum in Extensions3D.)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>304369</commentid>
    <comment_count>3</comment_count>
    <who name="Zhenyao Mo">zmo</who>
    <bug_when>2010-11-03 17:03:51 -0700</bug_when>
    <thetext>(In reply to comment #2)
&gt; (From update of attachment 72880 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=72880&amp;action=review
&gt; 
&gt; Thanks for fixing this. The code and test look fine aside from one minor issue. It&apos;s too bad we can&apos;t force testing on a configuration where GL_EXT_packed_depth_stencil isn&apos;t actually supported. Are you going to take care of the Chromium side changes or should I?

snowleopard bot is without depth_stencil extension, so we might rely on it for testing this path.

I&apos;ll fix the chromium side.

&gt; 
&gt; &gt; WebCore/html/canvas/WebGLRenderingContext.cpp:160
&gt; &gt; +        m_isDepthStencilSupported = extensions.contains(&quot;GL_EXT_packed_depth_stencil&quot;);
&gt; 
&gt; At this point the way to phrase this extension query is m_context-&gt;getExtensions()-&gt;supports(&quot;GL_OES_packed_depth_stencil&quot;). We&apos;re supposed to be getting rid of the EXTENSIONS enum at the public API level in https://bugs.webkit.org/show_bug.cgi?id=40316 and presumably from GraphicsContext3D as well. (It will probably need to remain as a private enum in Extensions3D.)

Oh yeah, I forgot about the new mechanism just landed.  I&apos;ll change it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>304720</commentid>
    <comment_count>4</comment_count>
      <attachid>72952</attachid>
    <who name="Zhenyao Mo">zmo</who>
    <bug_when>2010-11-04 09:57:46 -0700</bug_when>
    <thetext>Created attachment 72952
revised patch: using the new extension mechanism</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>304721</commentid>
    <comment_count>5</comment_count>
      <attachid>72953</attachid>
    <who name="Zhenyao Mo">zmo</who>
    <bug_when>2010-11-04 09:59:02 -0700</bug_when>
    <thetext>Created attachment 72953
revised patch: using the new extension mechanism

sorry, the previous patch is the wrong one (it&apos;s for another bug)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>305005</commentid>
    <comment_count>6</comment_count>
      <attachid>72953</attachid>
    <who name="Kenneth Russell">kbr</who>
    <bug_when>2010-11-04 16:51:42 -0700</bug_when>
    <thetext>Comment on attachment 72953
revised patch: using the new extension mechanism

Looks good.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>305010</commentid>
    <comment_count>7</comment_count>
    <who name="Zhenyao Mo">zmo</who>
    <bug_when>2010-11-04 16:58:15 -0700</bug_when>
    <thetext>Committed r71367: &lt;http://trac.webkit.org/changeset/71367&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>305069</commentid>
    <comment_count>8</comment_count>
    <who name="Zhenyao Mo">zmo</who>
    <bug_when>2010-11-04 18:09:22 -0700</bug_when>
    <thetext>Per discussion with gman@google.com, we won&apos;t fix the enum mapping in chrome command buffer side; instead, we do it in WebGLRenderingContext.  See https://bugs.webkit.org/show_bug.cgi?id=49020.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>72880</attachid>
            <date>2010-11-03 15:50:38 -0700</date>
            <delta_ts>2010-11-04 09:57:46 -0700</delta_ts>
            <desc>patch</desc>
            <filename>depthStencil.patch</filename>
            <type>text/plain</type>
            <size>24567</size>
            <attacher name="Zhenyao Mo">zmo</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA3MTI3NSkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMjcgQEAKKzIwMTAtMTEtMDMgIFpoZW55YW8gTW8gIDx6bW9AZ29vZ2xlLmNvbT4K
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICByZW5kZXJi
dWZmZXJTdG9yYWdlKERFUFRIX1NURU5DSUwpIHNob3VsZG4ndCBnZW5lcmF0ZSBhbiBlcnJvcgor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDg4OTEKKwor
ICAgICAgICAqIGh0bWwvY2FudmFzL1dlYkdMRnJhbWVidWZmZXIuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6V2ViR0xGcmFtZWJ1ZmZlcjo6aXNJbmNvbXBsZXRlKTogQ29uc2lkZXJpbmcgdGhlIGNh
c2Ugd2hlcmUgREVQVEhfU1RFTkNJTCBpcyBub3Qgc3VwcG9ydGVkLgorICAgICAgICAqIGh0bWwv
Y2FudmFzL1dlYkdMUmVuZGVyYnVmZmVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OldlYkdMUmVu
ZGVyYnVmZmVyOjpXZWJHTFJlbmRlcmJ1ZmZlcik6IEluaXQgYWRkZWQgbWVtYmVycy4KKyAgICAg
ICAgKiBodG1sL2NhbnZhcy9XZWJHTFJlbmRlcmJ1ZmZlci5oOiBBZGQgbWVtYmVycyBhbmQgYWNj
ZXNzb3IgZnVuY3Rpb25zLgorICAgICAgICAoV2ViQ29yZTo6V2ViR0xSZW5kZXJidWZmZXI6OnNl
dEludGVybmFsRm9ybWF0KTogCisgICAgICAgIChXZWJDb3JlOjpXZWJHTFJlbmRlcmJ1ZmZlcjo6
c2V0U2l6ZSk6CisgICAgICAgIChXZWJDb3JlOjpXZWJHTFJlbmRlcmJ1ZmZlcjo6Z2V0V2lkdGgp
OgorICAgICAgICAoV2ViQ29yZTo6V2ViR0xSZW5kZXJidWZmZXI6OmdldEhlaWdodCk6CisgICAg
ICAgIChXZWJDb3JlOjpXZWJHTFJlbmRlcmJ1ZmZlcjo6c2V0SXNWYWxpZCk6CisgICAgICAgIChX
ZWJDb3JlOjpXZWJHTFJlbmRlcmJ1ZmZlcjo6aXNWYWxpZCk6CisgICAgICAgICogaHRtbC9jYW52
YXMvV2ViR0xSZW5kZXJpbmdDb250ZXh0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OldlYkdMUmVu
ZGVyaW5nQ29udGV4dDo6aW5pdGlhbGl6ZU5ld0NvbnRleHQpOiBDaGVjayBpZiBwYWNrZWRfZGVw
dGhfc3RlbmNpbCBleHRlbnNpb24gZXhpc3RzLgorICAgICAgICAoV2ViQ29yZTo6V2ViR0xSZW5k
ZXJpbmdDb250ZXh0OjpnZXRSZW5kZXJidWZmZXJQYXJhbWV0ZXIpOiBTaW11bGF0ZSB0aGUgY2Fz
ZSBmb3IgREVQVEhfU1RFTkNJTCB3aGVyZSBwYWNrZWRfZGVwdGhfc3RlbmNpbCBpcyBub3Qgc3Vw
cG9ydGVkLgorICAgICAgICAoV2ViQ29yZTo6V2ViR0xSZW5kZXJpbmdDb250ZXh0OjpyZW5kZXJi
dWZmZXJTdG9yYWdlKTogQnlwYXNzIHRoZSBjYWxsIGlmIHBhY2tlZF9kZXB0aF9zdGVuY2lsIGlz
IG5vdCBzdXBwb3J0ZWQuCisgICAgICAgICogaHRtbC9jYW52YXMvV2ViR0xSZW5kZXJpbmdDb250
ZXh0Lmg6CisKIDIwMTAtMTEtMDMgIEFkcmllbm5lIFdhbGtlciAgPGVubmVAZ29vZ2xlLmNvbT4K
IAogICAgICAgICBSZXZpZXdlZCBieSBLZW5uZXRoIFJ1c3NlbGwuCkluZGV4OiBXZWJDb3JlL2h0
bWwvY2FudmFzL1dlYkdMRnJhbWVidWZmZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvaHRt
bC9jYW52YXMvV2ViR0xGcmFtZWJ1ZmZlci5jcHAJKHJldmlzaW9uIDcxMjc0KQorKysgV2ViQ29y
ZS9odG1sL2NhbnZhcy9XZWJHTEZyYW1lYnVmZmVyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNTcs
NiArNTcsMTUgQEAgbmFtZXNwYWNlIHsKICAgICAgICAgICAgIChyZWludGVycHJldF9jYXN0PFdl
YkdMUmVuZGVyYnVmZmVyKj4oYXR0YWNoZWRPYmplY3QpKS0+c2V0SW5pdGlhbGl6ZWQoKTsKICAg
ICB9CiAKKyAgICBib29sIGlzVmFsaWQoV2ViR0xPYmplY3QqIGF0dGFjaGVkT2JqZWN0KQorICAg
IHsKKyAgICAgICAgaWYgKGF0dGFjaGVkT2JqZWN0ICYmIGF0dGFjaGVkT2JqZWN0LT5vYmplY3Qo
KSAmJiBhdHRhY2hlZE9iamVjdC0+aXNSZW5kZXJidWZmZXIoKSkgeworICAgICAgICAgICAgaWYg
KCEocmVpbnRlcnByZXRfY2FzdDxXZWJHTFJlbmRlcmJ1ZmZlcio+KGF0dGFjaGVkT2JqZWN0KSkt
PmlzVmFsaWQoKSkKKyAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIH0KKyAg
ICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorCiB9IC8vIGFub255bW91cyBuYW1lc3BhY2UKIAog
UGFzc1JlZlB0cjxXZWJHTEZyYW1lYnVmZmVyPiBXZWJHTEZyYW1lYnVmZmVyOjpjcmVhdGUoV2Vi
R0xSZW5kZXJpbmdDb250ZXh0KiBjdHgpCkBAIC0xNDIsNyArMTUxLDggQEAgYm9vbCBXZWJHTEZy
YW1lYnVmZmVyOjppc0luY29tcGxldGUoKSBjbwogICAgICAgICBjb3VudCsrOwogICAgIH0KICAg
ICBpZiAoaXNEZXB0aFN0ZW5jaWxBdHRhY2hlZCgpKSB7Ci0gICAgICAgIGlmIChnZXRJbnRlcm5h
bEZvcm1hdChtX2RlcHRoU3RlbmNpbEF0dGFjaG1lbnQuZ2V0KCkpICE9IEdyYXBoaWNzQ29udGV4
dDNEOjpERVBUSF9TVEVOQ0lMKQorICAgICAgICBpZiAoZ2V0SW50ZXJuYWxGb3JtYXQobV9kZXB0
aFN0ZW5jaWxBdHRhY2htZW50LmdldCgpKSAhPSBHcmFwaGljc0NvbnRleHQzRDo6REVQVEhfU1RF
TkNJTAorICAgICAgICAgICAgfHwgIWlzVmFsaWQobV9kZXB0aFN0ZW5jaWxBdHRhY2htZW50Lmdl
dCgpKSkKICAgICAgICAgICAgIHJldHVybiB0cnVlOwogICAgICAgICBjb3VudCsrOwogICAgIH0K
SW5kZXg6IFdlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xSZW5kZXJidWZmZXIuY3BwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFdlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xSZW5kZXJidWZmZXIuY3BwCShyZXZpc2lv
biA3MTI3NCkKKysrIFdlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xSZW5kZXJidWZmZXIuY3BwCSh3
b3JraW5nIGNvcHkpCkBAIC00Miw2ICs0Miw5IEBAIFdlYkdMUmVuZGVyYnVmZmVyOjpXZWJHTFJl
bmRlcmJ1ZmZlcihXZWIKICAgICA6IFdlYkdMT2JqZWN0KGN0eCkKICAgICAsIG1faW50ZXJuYWxG
b3JtYXQoR3JhcGhpY3NDb250ZXh0M0Q6OlJHQkE0KQogICAgICwgbV9pbml0aWFsaXplZChmYWxz
ZSkKKyAgICAsIG1fd2lkdGgoMCkKKyAgICAsIG1faGVpZ2h0KDApCisgICAgLCBtX2lzVmFsaWQo
dHJ1ZSkKIHsKICAgICBzZXRPYmplY3QoY29udGV4dCgpLT5ncmFwaGljc0NvbnRleHQzRCgpLT5j
cmVhdGVSZW5kZXJidWZmZXIoKSk7CiB9CkluZGV4OiBXZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdM
UmVuZGVyYnVmZmVyLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFJl
bmRlcmJ1ZmZlci5oCShyZXZpc2lvbiA3MTI3NCkKKysrIFdlYkNvcmUvaHRtbC9jYW52YXMvV2Vi
R0xSZW5kZXJidWZmZXIuaAkod29ya2luZyBjb3B5KQpAQCAtNDQsOSArNDQsMTkgQEAgcHVibGlj
OgogICAgICAgICBtX2ludGVybmFsRm9ybWF0ID0gaW50ZXJuYWxmb3JtYXQ7CiAgICAgICAgIG1f
aW5pdGlhbGl6ZWQgPSBmYWxzZTsKICAgICB9Ci0KICAgICB1bnNpZ25lZCBsb25nIGdldEludGVy
bmFsRm9ybWF0KCkgY29uc3QgeyByZXR1cm4gbV9pbnRlcm5hbEZvcm1hdDsgfQogCisgICAgdm9p
ZCBzZXRTaXplKHVuc2lnbmVkIGxvbmcgd2lkdGgsIHVuc2lnbmVkIGxvbmcgaGVpZ2h0KQorICAg
IHsKKyAgICAgICAgbV93aWR0aCA9IHdpZHRoOworICAgICAgICBtX2hlaWdodCA9IGhlaWdodDsK
KyAgICB9CisgICAgdW5zaWduZWQgbG9uZyBnZXRXaWR0aCgpIGNvbnN0IHsgcmV0dXJuIG1fd2lk
dGg7IH0KKyAgICB1bnNpZ25lZCBsb25nIGdldEhlaWdodCgpIGNvbnN0IHsgcmV0dXJuIG1faGVp
Z2h0OyB9CisKKyAgICB2b2lkIHNldElzVmFsaWQoYm9vbCBpc1ZhbGlkKSB7IG1faXNWYWxpZCA9
IGlzVmFsaWQ7IH0KKyAgICBib29sIGlzVmFsaWQoKSBjb25zdCB7IHJldHVybiBtX2lzVmFsaWQ7
IH0KKwogICAgIGJvb2wgaXNJbml0aWFsaXplZCgpIGNvbnN0IHsgcmV0dXJuIG1faW5pdGlhbGl6
ZWQ7IH0KICAgICB2b2lkIHNldEluaXRpYWxpemVkKCkgeyBtX2luaXRpYWxpemVkID0gdHJ1ZTsg
fQogCkBAIC02MCw2ICs3MCw4IEBAIHByaXZhdGU6CiAKICAgICB1bnNpZ25lZCBsb25nIG1faW50
ZXJuYWxGb3JtYXQ7CiAgICAgYm9vbCBtX2luaXRpYWxpemVkOworICAgIHVuc2lnbmVkIGxvbmcg
bV93aWR0aCwgbV9oZWlnaHQ7CisgICAgYm9vbCBtX2lzVmFsaWQ7IC8vIFRoaXMgaXMgb25seSBm
YWxzZSBpZiBpbnRlcm5hbEZvcm1hdCBpcyBERVBUSF9TVEVOQ0lMIGFuZCBwYWNrZWRfZGVwdGhf
c3RlbmNpbCBpcyBub3Qgc3VwcG9ydGVkLgogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpJ
bmRleDogV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFJlbmRlcmluZ0NvbnRleHQuY3BwCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFdlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xSZW5kZXJpbmdDb250ZXh0LmNwcAko
cmV2aXNpb24gNzEyNzQpCisrKyBXZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMUmVuZGVyaW5nQ29u
dGV4dC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTE1Miw2ICsxNTIsMTMgQEAgdm9pZCBXZWJHTFJl
bmRlcmluZ0NvbnRleHQ6OmluaXRpYWxpemVOZQogICAgICAgICBjcmVhdGVGYWxsYmFja0JsYWNr
VGV4dHVyZXMxeDEoKTsKICAgICBpZiAoIWlzR0xFUzJDb21wbGlhbnQoKSkKICAgICAgICAgaW5p
dFZlcnRleEF0dHJpYjAoKTsKKworICAgIFN0cmluZyBleHRlbnNpb25zID0gbV9jb250ZXh0LT5n
ZXRTdHJpbmcoR3JhcGhpY3NDb250ZXh0M0Q6OkVYVEVOU0lPTlMpOworICAgIGlmIChpc0dMRVMy
Q29tcGxpYW50KCkpCisgICAgICAgIG1faXNEZXB0aFN0ZW5jaWxTdXBwb3J0ZWQgPSBleHRlbnNp
b25zLmNvbnRhaW5zKCJHTF9PRVNfcGFja2VkX2RlcHRoX3N0ZW5jaWwiKTsKKyAgICBlbHNlCisg
ICAgICAgIG1faXNEZXB0aFN0ZW5jaWxTdXBwb3J0ZWQgPSBleHRlbnNpb25zLmNvbnRhaW5zKCJH
TF9FWFRfcGFja2VkX2RlcHRoX3N0ZW5jaWwiKTsKKwogICAgIG1fY29udGV4dC0+cmVzaGFwZShj
YW52YXMoKS0+d2lkdGgoKSwgY2FudmFzKCktPmhlaWdodCgpKTsKICAgICBtX2NvbnRleHQtPnZp
ZXdwb3J0KDAsIDAsIGNhbnZhcygpLT53aWR0aCgpLCBjYW52YXMoKS0+aGVpZ2h0KCkpOwogfQpA
QCAtMTY0Miw2ICsxNjQ5LDQyIEBAIFdlYkdMR2V0SW5mbyBXZWJHTFJlbmRlcmluZ0NvbnRleHQ6
OmdldFIKICAgICAgICAgbV9jb250ZXh0LT5zeW50aGVzaXplR0xFcnJvcihHcmFwaGljc0NvbnRl
eHQzRDo6SU5WQUxJRF9FTlVNKTsKICAgICAgICAgcmV0dXJuIFdlYkdMR2V0SW5mbygpOwogICAg
IH0KKyAgICBpZiAoIW1fcmVuZGVyYnVmZmVyQmluZGluZyB8fCAhbV9yZW5kZXJidWZmZXJCaW5k
aW5nLT5vYmplY3QoKSkgeworICAgICAgICBtX2NvbnRleHQtPnN5bnRoZXNpemVHTEVycm9yKEdy
YXBoaWNzQ29udGV4dDNEOjpJTlZBTElEX09QRVJBVElPTik7CisgICAgICAgIHJldHVybiBXZWJH
TEdldEluZm8oKTsKKyAgICB9CisKKyAgICBpZiAobV9yZW5kZXJidWZmZXJCaW5kaW5nLT5nZXRJ
bnRlcm5hbEZvcm1hdCgpID09IEdyYXBoaWNzQ29udGV4dDNEOjpERVBUSF9TVEVOQ0lMCisgICAg
ICAgICYmICFtX3JlbmRlcmJ1ZmZlckJpbmRpbmctPmlzVmFsaWQoKSkgeworICAgICAgICBBU1NF
UlQoIW1faXNEZXB0aFN0ZW5jaWxTdXBwb3J0ZWQpOworICAgICAgICBsb25nIHZhbHVlID0gMDsK
KyAgICAgICAgc3dpdGNoIChwbmFtZSkgeworICAgICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNE
OjpSRU5ERVJCVUZGRVJfV0lEVEg6CisgICAgICAgICAgICB2YWx1ZSA9IHN0YXRpY19jYXN0PGxv
bmc+KG1fcmVuZGVyYnVmZmVyQmluZGluZy0+Z2V0V2lkdGgoKSk7CisgICAgICAgICAgICBicmVh
azsKKyAgICAgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6UkVOREVSQlVGRkVSX0hFSUdIVDoK
KyAgICAgICAgICAgIHZhbHVlID0gc3RhdGljX2Nhc3Q8bG9uZz4obV9yZW5kZXJidWZmZXJCaW5k
aW5nLT5nZXRIZWlnaHQoKSk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBHcmFw
aGljc0NvbnRleHQzRDo6UkVOREVSQlVGRkVSX1JFRF9TSVpFOgorICAgICAgICBjYXNlIEdyYXBo
aWNzQ29udGV4dDNEOjpSRU5ERVJCVUZGRVJfR1JFRU5fU0laRToKKyAgICAgICAgY2FzZSBHcmFw
aGljc0NvbnRleHQzRDo6UkVOREVSQlVGRkVSX0JMVUVfU0laRToKKyAgICAgICAgY2FzZSBHcmFw
aGljc0NvbnRleHQzRDo6UkVOREVSQlVGRkVSX0FMUEhBX1NJWkU6CisgICAgICAgICAgICB2YWx1
ZSA9IDA7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBHcmFwaGljc0NvbnRleHQz
RDo6UkVOREVSQlVGRkVSX0RFUFRIX1NJWkU6CisgICAgICAgICAgICB2YWx1ZSA9IDI0OworICAg
ICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OlJFTkRFUkJV
RkZFUl9TVEVOQ0lMX1NJWkU6CisgICAgICAgICAgICB2YWx1ZSA9IDg7CisgICAgICAgICAgICBi
cmVhazsKKyAgICAgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6UkVOREVSQlVGRkVSX0lOVEVS
TkFMX0ZPUk1BVDoKKyAgICAgICAgICAgIHJldHVybiBXZWJHTEdldEluZm8obV9yZW5kZXJidWZm
ZXJCaW5kaW5nLT5nZXRJbnRlcm5hbEZvcm1hdCgpKTsKKyAgICAgICAgZGVmYXVsdDoKKyAgICAg
ICAgICAgIG1fY29udGV4dC0+c3ludGhlc2l6ZUdMRXJyb3IoR3JhcGhpY3NDb250ZXh0M0Q6OklO
VkFMSURfRU5VTSk7CisgICAgICAgICAgICByZXR1cm4gV2ViR0xHZXRJbmZvKCk7CisgICAgICAg
IH0KKyAgICAgICAgcmV0dXJuIFdlYkdMR2V0SW5mbyh2YWx1ZSk7CisgICAgfQogCiAgICAgV2Vi
R0xTdGF0ZVJlc3RvcmVyKHRoaXMsIGZhbHNlKTsKICAgICBpbnQgdmFsdWUgPSAwOwpAQCAtMTY1
NywxMCArMTcwMCw2IEBAIFdlYkdMR2V0SW5mbyBXZWJHTFJlbmRlcmluZ0NvbnRleHQ6OmdldFIK
ICAgICAgICAgbV9jb250ZXh0LT5nZXRSZW5kZXJidWZmZXJQYXJhbWV0ZXJpdih0YXJnZXQsIHBu
YW1lLCAmdmFsdWUpOwogICAgICAgICByZXR1cm4gV2ViR0xHZXRJbmZvKHN0YXRpY19jYXN0PGxv
bmc+KHZhbHVlKSk7CiAgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6UkVOREVSQlVGRkVSX0lO
VEVSTkFMX0ZPUk1BVDoKLSAgICAgICAgaWYgKCFtX3JlbmRlcmJ1ZmZlckJpbmRpbmcpIHsKLSAg
ICAgICAgICAgIG1fY29udGV4dC0+c3ludGhlc2l6ZUdMRXJyb3IoR3JhcGhpY3NDb250ZXh0M0Q6
OklOVkFMSURfT1BFUkFUSU9OKTsKLSAgICAgICAgICAgIHJldHVybiBXZWJHTEdldEluZm8oKTsK
LSAgICAgICAgfQogICAgICAgICByZXR1cm4gV2ViR0xHZXRJbmZvKG1fcmVuZGVyYnVmZmVyQmlu
ZGluZy0+Z2V0SW50ZXJuYWxGb3JtYXQoKSk7CiAgICAgZGVmYXVsdDoKICAgICAgICAgbV9jb250
ZXh0LT5zeW50aGVzaXplR0xFcnJvcihHcmFwaGljc0NvbnRleHQzRDo6SU5WQUxJRF9FTlVNKTsK
QEAgLTIxNzEsMTggKzIyMTAsMzQgQEAgdm9pZCBXZWJHTFJlbmRlcmluZ0NvbnRleHQ6OnJlbmRl
cmJ1ZmZlcgogewogICAgIGlmIChpc0NvbnRleHRMb3N0KCkpCiAgICAgICAgIHJldHVybjsKKyAg
ICBpZiAodGFyZ2V0ICE9IEdyYXBoaWNzQ29udGV4dDNEOjpSRU5ERVJCVUZGRVIpIHsKKyAgICAg
ICAgbV9jb250ZXh0LT5zeW50aGVzaXplR0xFcnJvcihHcmFwaGljc0NvbnRleHQzRDo6SU5WQUxJ
RF9FTlVNKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKyAgICBpZiAoIW1fcmVuZGVyYnVmZmVy
QmluZGluZyB8fCAhbV9yZW5kZXJidWZmZXJCaW5kaW5nLT5vYmplY3QoKSkgeworICAgICAgICBt
X2NvbnRleHQtPnN5bnRoZXNpemVHTEVycm9yKEdyYXBoaWNzQ29udGV4dDNEOjpJTlZBTElEX09Q
RVJBVElPTik7CisgICAgICAgIHJldHVybjsKKyAgICB9CiAgICAgc3dpdGNoIChpbnRlcm5hbGZv
cm1hdCkgewogICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OkRFUFRIX0NPTVBPTkVOVDE2Ogog
ICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OlJHQkE0OgogICAgIGNhc2UgR3JhcGhpY3NDb250
ZXh0M0Q6OlJHQjVfQTE6CiAgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6UkdCNTY1OgogICAg
IGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OlNURU5DSUxfSU5ERVg4OgotICAgIGNhc2UgR3JhcGhp
Y3NDb250ZXh0M0Q6OkRFUFRIX1NURU5DSUw6CiAgICAgICAgIG1fY29udGV4dC0+cmVuZGVyYnVm
ZmVyU3RvcmFnZSh0YXJnZXQsIGludGVybmFsZm9ybWF0LCB3aWR0aCwgaGVpZ2h0KTsKLSAgICAg
ICAgaWYgKG1fcmVuZGVyYnVmZmVyQmluZGluZykKLSAgICAgICAgICAgIG1fcmVuZGVyYnVmZmVy
QmluZGluZy0+c2V0SW50ZXJuYWxGb3JtYXQoaW50ZXJuYWxmb3JtYXQpOworICAgICAgICBtX3Jl
bmRlcmJ1ZmZlckJpbmRpbmctPnNldEludGVybmFsRm9ybWF0KGludGVybmFsZm9ybWF0KTsKKyAg
ICAgICAgbV9yZW5kZXJidWZmZXJCaW5kaW5nLT5zZXRJc1ZhbGlkKHRydWUpOwogICAgICAgICBj
bGVhbnVwQWZ0ZXJHcmFwaGljc0NhbGwoZmFsc2UpOwogICAgICAgICBicmVhazsKKyAgICBjYXNl
IEdyYXBoaWNzQ29udGV4dDNEOjpERVBUSF9TVEVOQ0lMOgorICAgICAgICBpZiAobV9pc0RlcHRo
U3RlbmNpbFN1cHBvcnRlZCkgeworICAgICAgICAgICAgbV9jb250ZXh0LT5yZW5kZXJidWZmZXJT
dG9yYWdlKHRhcmdldCwgaW50ZXJuYWxmb3JtYXQsIHdpZHRoLCBoZWlnaHQpOworICAgICAgICAg
ICAgY2xlYW51cEFmdGVyR3JhcGhpY3NDYWxsKGZhbHNlKTsKKyAgICAgICAgfSBlbHNlCisgICAg
ICAgICAgICBtX3JlbmRlcmJ1ZmZlckJpbmRpbmctPnNldFNpemUod2lkdGgsIGhlaWdodCk7Cisg
ICAgICAgIG1fcmVuZGVyYnVmZmVyQmluZGluZy0+c2V0SXNWYWxpZChtX2lzRGVwdGhTdGVuY2ls
U3VwcG9ydGVkKTsKKyAgICAgICAgbV9yZW5kZXJidWZmZXJCaW5kaW5nLT5zZXRJbnRlcm5hbEZv
cm1hdChpbnRlcm5hbGZvcm1hdCk7CisgICAgICAgIGJyZWFrOwogICAgIGRlZmF1bHQ6CiAgICAg
ICAgIG1fY29udGV4dC0+c3ludGhlc2l6ZUdMRXJyb3IoR3JhcGhpY3NDb250ZXh0M0Q6OklOVkFM
SURfRU5VTSk7CiAgICAgfQpJbmRleDogV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFJlbmRlcmlu
Z0NvbnRleHQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMUmVuZGVy
aW5nQ29udGV4dC5oCShyZXZpc2lvbiA3MTI3NCkKKysrIFdlYkNvcmUvaHRtbC9jYW52YXMvV2Vi
R0xSZW5kZXJpbmdDb250ZXh0LmgJKHdvcmtpbmcgY29weSkKQEAgLTQyNiw2ICs0MjYsOCBAQCBw
dWJsaWM6CiAgICAgYm9vbCBtX3VucGFja1ByZW11bHRpcGx5QWxwaGE7CiAgICAgYm9vbCBtX2Nv
bnRleHRMb3N0OwogCisgICAgYm9vbCBtX2lzRGVwdGhTdGVuY2lsU3VwcG9ydGVkOworCiAgICAg
Ly8gSGVscGVycyBmb3IgZ2V0UGFyYW1ldGVyIGFuZCBvdGhlcnMKICAgICBXZWJHTEdldEluZm8g
Z2V0Qm9vbGVhblBhcmFtZXRlcih1bnNpZ25lZCBsb25nIHBuYW1lKTsKICAgICBXZWJHTEdldElu
Zm8gZ2V0Qm9vbGVhbkFycmF5UGFyYW1ldGVyKHVuc2lnbmVkIGxvbmcgcG5hbWUpOwpJbmRleDog
TGF5b3V0VGVzdHMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL0NoYW5nZUxv
ZwkocmV2aXNpb24gNzEyNzUpCisrKyBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHdvcmtpbmcgY29w
eSkKQEAgLTEsMyArMSwxMyBAQAorMjAxMC0xMS0wMyAgWmhlbnlhbyBNbyAgPHptb0Bnb29nbGUu
Y29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIHJl
bmRlcmJ1ZmZlclN0b3JhZ2UoREVQVEhfU1RFTkNJTCkgc2hvdWxkbid0IGdlbmVyYXRlIGFuIGVy
cm9yCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00ODg5
MQorCisgICAgICAgICogZmFzdC9jYW52YXMvd2ViZ2wvZnJhbWVidWZmZXItb2JqZWN0LWF0dGFj
aG1lbnQtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGZhc3QvY2FudmFzL3dlYmdsL2ZyYW1lYnVm
ZmVyLW9iamVjdC1hdHRhY2htZW50Lmh0bWw6IEFkZCB0aGUgdGVzdCBjYXNlcyBmb3IgREVQVEhf
U1RFTkNJTCByZW5kZXJidWZmZXIuCisKIDIwMTAtMTEtMDMgIFN0ZXBoZW4gV2hpdGUgIDxzZW5v
cmJsYW5jb0BjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgVW5yZXZpZXdlZDsgdGVzdCBleHBlY3Rh
dGlvbnMgdXBkYXRlLgpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvd2ViZ2wvZnJhbWVi
dWZmZXItb2JqZWN0LWF0dGFjaG1lbnQtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91
dFRlc3RzL2Zhc3QvY2FudmFzL3dlYmdsL2ZyYW1lYnVmZmVyLW9iamVjdC1hdHRhY2htZW50LWV4
cGVjdGVkLnR4dAkocmV2aXNpb24gNzEyNzQpCisrKyBMYXlvdXRUZXN0cy9mYXN0L2NhbnZhcy93
ZWJnbC9mcmFtZWJ1ZmZlci1vYmplY3QtYXR0YWNobWVudC1leHBlY3RlZC50eHQJKHdvcmtpbmcg
Y29weSkKQEAgLTUsMTAzICs1LDExOCBAQCBPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJp
ZXMgb2YgIlBBCiBDcmVhdGUgcmVuZGVyYnVmZmVycwogUEFTUyBnbCA9IGNyZWF0ZTNEQ29udGV4
dCgpIGlzIG5vbi1udWxsLgogUEFTUyBjb2xvckJ1ZmZlciA9IGdsLmNyZWF0ZVJlbmRlcmJ1ZmZl
cigpIGlzIG5vbi1udWxsLgotUEFTUyBnbC5nZXRFcnJvcigpIGlzIGdsLk5PX0VSUk9SCitQQVNT
IGdldEVycm9yIHdhcyBleHBlY3RlZCB2YWx1ZTogTk9fRVJST1IgOiAKIFBBU1MgZGVwdGhCdWZm
ZXIgPSBnbC5jcmVhdGVSZW5kZXJidWZmZXIoKSBpcyBub24tbnVsbC4KLVBBU1MgZ2wuZ2V0RXJy
b3IoKSBpcyBnbC5OT19FUlJPUgorUEFTUyBnZXRFcnJvciB3YXMgZXhwZWN0ZWQgdmFsdWU6IE5P
X0VSUk9SIDogCiBQQVNTIHN0ZW5jaWxCdWZmZXIgPSBnbC5jcmVhdGVSZW5kZXJidWZmZXIoKSBp
cyBub24tbnVsbC4KLVBBU1MgZ2wuZ2V0RXJyb3IoKSBpcyBnbC5OT19FUlJPUgorUEFTUyBnZXRF
cnJvciB3YXMgZXhwZWN0ZWQgdmFsdWU6IE5PX0VSUk9SIDogCiBQQVNTIGRlcHRoU3RlbmNpbEJ1
ZmZlciA9IGdsLmNyZWF0ZVJlbmRlcmJ1ZmZlcigpIGlzIG5vbi1udWxsLgotUEFTUyBnbC5nZXRF
cnJvcigpIGlzIGdsLk5PX0VSUk9SCitQQVNTIGdldEVycm9yIHdhcyBleHBlY3RlZCB2YWx1ZTog
Tk9fRVJST1IgOiAKIEF0dGFjaCBkZXB0aCB1c2luZyBERVBUSF9BVFRBQ0hNRU5UCiBQQVNTIGZi
byA9IGdsLmNyZWF0ZUZyYW1lYnVmZmVyKCkgaXMgbm9uLW51bGwuCi1QQVNTIGdsLmdldEVycm9y
KCkgaXMgZ2wuTk9fRVJST1IKK1BBU1MgZ2V0RXJyb3Igd2FzIGV4cGVjdGVkIHZhbHVlOiBOT19F
UlJPUiA6IAogQXR0YWNoIGRlcHRoIHVzaW5nIFNURU5DSUxfQVRUQUNITUVOVAogUEFTUyBmYm8g
PSBnbC5jcmVhdGVGcmFtZWJ1ZmZlcigpIGlzIG5vbi1udWxsLgotUEFTUyBnbC5nZXRFcnJvcigp
IGlzIGdsLk5PX0VSUk9SCitQQVNTIGdldEVycm9yIHdhcyBleHBlY3RlZCB2YWx1ZTogTk9fRVJS
T1IgOiAKIFBBU1MgZ2wuY2hlY2tGcmFtZWJ1ZmZlclN0YXR1cyhnbC5GUkFNRUJVRkZFUikgaXMg
Z2wuRlJBTUVCVUZGRVJfVU5TVVBQT1JURUQKLVBBU1MgZ2wuZ2V0RXJyb3IoKSBpcyBnbC5JTlZB
TElEX0ZSQU1FQlVGRkVSX09QRVJBVElPTgotUEFTUyBnbC5nZXRFcnJvcigpIGlzIGdsLklOVkFM
SURfRlJBTUVCVUZGRVJfT1BFUkFUSU9OCitQQVNTIGdldEVycm9yIHdhcyBleHBlY3RlZCB2YWx1
ZTogSU5WQUxJRF9GUkFNRUJVRkZFUl9PUEVSQVRJT04gOiAKK1BBU1MgZ2V0RXJyb3Igd2FzIGV4
cGVjdGVkIHZhbHVlOiBJTlZBTElEX0ZSQU1FQlVGRkVSX09QRVJBVElPTiA6IAogQXR0YWNoIGRl
cHRoIHVzaW5nIERFUFRIX1NURU5DSUxfQVRUQUNITUVOVAogUEFTUyBmYm8gPSBnbC5jcmVhdGVG
cmFtZWJ1ZmZlcigpIGlzIG5vbi1udWxsLgotUEFTUyBnbC5nZXRFcnJvcigpIGlzIGdsLk5PX0VS
Uk9SCitQQVNTIGdldEVycm9yIHdhcyBleHBlY3RlZCB2YWx1ZTogTk9fRVJST1IgOiAKIFBBU1Mg
Z2wuY2hlY2tGcmFtZWJ1ZmZlclN0YXR1cyhnbC5GUkFNRUJVRkZFUikgaXMgZ2wuRlJBTUVCVUZG
RVJfVU5TVVBQT1JURUQKLVBBU1MgZ2wuZ2V0RXJyb3IoKSBpcyBnbC5JTlZBTElEX0ZSQU1FQlVG
RkVSX09QRVJBVElPTgotUEFTUyBnbC5nZXRFcnJvcigpIGlzIGdsLklOVkFMSURfRlJBTUVCVUZG
RVJfT1BFUkFUSU9OCitQQVNTIGdldEVycm9yIHdhcyBleHBlY3RlZCB2YWx1ZTogSU5WQUxJRF9G
UkFNRUJVRkZFUl9PUEVSQVRJT04gOiAKK1BBU1MgZ2V0RXJyb3Igd2FzIGV4cGVjdGVkIHZhbHVl
OiBJTlZBTElEX0ZSQU1FQlVGRkVSX09QRVJBVElPTiA6IAogQXR0YWNoIHN0ZW5jaWwgdXNpbmcg
U1RFTkNJTF9BVFRBQ0hNRU5UCiBQQVNTIGZibyA9IGdsLmNyZWF0ZUZyYW1lYnVmZmVyKCkgaXMg
bm9uLW51bGwuCi1QQVNTIGdsLmdldEVycm9yKCkgaXMgZ2wuTk9fRVJST1IKK1BBU1MgZ2V0RXJy
b3Igd2FzIGV4cGVjdGVkIHZhbHVlOiBOT19FUlJPUiA6IAogQXR0YWNoIHN0ZW5jaWwgdXNpbmcg
REVQVEhfQVRUQUNITUVOVAogUEFTUyBmYm8gPSBnbC5jcmVhdGVGcmFtZWJ1ZmZlcigpIGlzIG5v
bi1udWxsLgotUEFTUyBnbC5nZXRFcnJvcigpIGlzIGdsLk5PX0VSUk9SCitQQVNTIGdldEVycm9y
IHdhcyBleHBlY3RlZCB2YWx1ZTogTk9fRVJST1IgOiAKIFBBU1MgZ2wuY2hlY2tGcmFtZWJ1ZmZl
clN0YXR1cyhnbC5GUkFNRUJVRkZFUikgaXMgZ2wuRlJBTUVCVUZGRVJfVU5TVVBQT1JURUQKLVBB
U1MgZ2wuZ2V0RXJyb3IoKSBpcyBnbC5JTlZBTElEX0ZSQU1FQlVGRkVSX09QRVJBVElPTgotUEFT
UyBnbC5nZXRFcnJvcigpIGlzIGdsLklOVkFMSURfRlJBTUVCVUZGRVJfT1BFUkFUSU9OCitQQVNT
IGdldEVycm9yIHdhcyBleHBlY3RlZCB2YWx1ZTogSU5WQUxJRF9GUkFNRUJVRkZFUl9PUEVSQVRJ
T04gOiAKK1BBU1MgZ2V0RXJyb3Igd2FzIGV4cGVjdGVkIHZhbHVlOiBJTlZBTElEX0ZSQU1FQlVG
RkVSX09QRVJBVElPTiA6IAogQXR0YWNoIHN0ZW5jaWwgdXNpbmcgREVQVEhfU1RFTkNJTF9BVFRB
Q0hNRU5UCiBQQVNTIGZibyA9IGdsLmNyZWF0ZUZyYW1lYnVmZmVyKCkgaXMgbm9uLW51bGwuCi1Q
QVNTIGdsLmdldEVycm9yKCkgaXMgZ2wuTk9fRVJST1IKK1BBU1MgZ2V0RXJyb3Igd2FzIGV4cGVj
dGVkIHZhbHVlOiBOT19FUlJPUiA6IAogUEFTUyBnbC5jaGVja0ZyYW1lYnVmZmVyU3RhdHVzKGds
LkZSQU1FQlVGRkVSKSBpcyBnbC5GUkFNRUJVRkZFUl9VTlNVUFBPUlRFRAotUEFTUyBnbC5nZXRF
cnJvcigpIGlzIGdsLklOVkFMSURfRlJBTUVCVUZGRVJfT1BFUkFUSU9OCi1QQVNTIGdsLmdldEVy
cm9yKCkgaXMgZ2wuSU5WQUxJRF9GUkFNRUJVRkZFUl9PUEVSQVRJT04KK1BBU1MgZ2V0RXJyb3Ig
d2FzIGV4cGVjdGVkIHZhbHVlOiBJTlZBTElEX0ZSQU1FQlVGRkVSX09QRVJBVElPTiA6IAorUEFT
UyBnZXRFcnJvciB3YXMgZXhwZWN0ZWQgdmFsdWU6IElOVkFMSURfRlJBTUVCVUZGRVJfT1BFUkFU
SU9OIDogCiBBdHRhY2ggZGVwdGhTdGVuY2lsIHVzaW5nIERFUFRIX1NURU5DSUxfQVRUQUNITUVO
VAogUEFTUyBmYm8gPSBnbC5jcmVhdGVGcmFtZWJ1ZmZlcigpIGlzIG5vbi1udWxsLgotUEFTUyBn
bC5nZXRFcnJvcigpIGlzIGdsLk5PX0VSUk9SCitQQVNTIGdldEVycm9yIHdhcyBleHBlY3RlZCB2
YWx1ZTogTk9fRVJST1IgOiAKIEF0dGFjaCBkZXB0aFN0ZW5jaWwgdXNpbmcgREVQVEhfQVRUQUNI
TUVOVAogUEFTUyBmYm8gPSBnbC5jcmVhdGVGcmFtZWJ1ZmZlcigpIGlzIG5vbi1udWxsLgotUEFT
UyBnbC5nZXRFcnJvcigpIGlzIGdsLk5PX0VSUk9SCitQQVNTIGdldEVycm9yIHdhcyBleHBlY3Rl
ZCB2YWx1ZTogTk9fRVJST1IgOiAKIFBBU1MgZ2wuY2hlY2tGcmFtZWJ1ZmZlclN0YXR1cyhnbC5G
UkFNRUJVRkZFUikgaXMgZ2wuRlJBTUVCVUZGRVJfVU5TVVBQT1JURUQKLVBBU1MgZ2wuZ2V0RXJy
b3IoKSBpcyBnbC5JTlZBTElEX0ZSQU1FQlVGRkVSX09QRVJBVElPTgotUEFTUyBnbC5nZXRFcnJv
cigpIGlzIGdsLklOVkFMSURfRlJBTUVCVUZGRVJfT1BFUkFUSU9OCitQQVNTIGdldEVycm9yIHdh
cyBleHBlY3RlZCB2YWx1ZTogSU5WQUxJRF9GUkFNRUJVRkZFUl9PUEVSQVRJT04gOiAKK1BBU1Mg
Z2V0RXJyb3Igd2FzIGV4cGVjdGVkIHZhbHVlOiBJTlZBTElEX0ZSQU1FQlVGRkVSX09QRVJBVElP
TiA6IAogQXR0YWNoIGRlcHRoU3RlbmNpbCB1c2luZyBTVEVOQ0lMX0FUVEFDSE1FTlQKIFBBU1Mg
ZmJvID0gZ2wuY3JlYXRlRnJhbWVidWZmZXIoKSBpcyBub24tbnVsbC4KLVBBU1MgZ2wuZ2V0RXJy
b3IoKSBpcyBnbC5OT19FUlJPUgorUEFTUyBnZXRFcnJvciB3YXMgZXhwZWN0ZWQgdmFsdWU6IE5P
X0VSUk9SIDogCiBQQVNTIGdsLmNoZWNrRnJhbWVidWZmZXJTdGF0dXMoZ2wuRlJBTUVCVUZGRVIp
IGlzIGdsLkZSQU1FQlVGRkVSX1VOU1VQUE9SVEVECi1QQVNTIGdsLmdldEVycm9yKCkgaXMgZ2wu
SU5WQUxJRF9GUkFNRUJVRkZFUl9PUEVSQVRJT04KLVBBU1MgZ2wuZ2V0RXJyb3IoKSBpcyBnbC5J
TlZBTElEX0ZSQU1FQlVGRkVSX09QRVJBVElPTgorUEFTUyBnZXRFcnJvciB3YXMgZXhwZWN0ZWQg
dmFsdWU6IElOVkFMSURfRlJBTUVCVUZGRVJfT1BFUkFUSU9OIDogCitQQVNTIGdldEVycm9yIHdh
cyBleHBlY3RlZCB2YWx1ZTogSU5WQUxJRF9GUkFNRUJVRkZFUl9PUEVSQVRJT04gOiAKIEF0dGFj
aCBkZXB0aCwgdGhlbiBzdGVuY2lsLCBjYXVzaW5nIGNvbmZsaWN0CiBQQVNTIGZibyA9IGdsLmNy
ZWF0ZUZyYW1lYnVmZmVyKCkgaXMgbm9uLW51bGwuCi1QQVNTIGdsLmdldEVycm9yKCkgaXMgZ2wu
Tk9fRVJST1IKLVBBU1MgZ2wuZ2V0RXJyb3IoKSBpcyBnbC5OT19FUlJPUgorUEFTUyBnZXRFcnJv
ciB3YXMgZXhwZWN0ZWQgdmFsdWU6IE5PX0VSUk9SIDogCitQQVNTIGdldEVycm9yIHdhcyBleHBl
Y3RlZCB2YWx1ZTogTk9fRVJST1IgOiAKIFBBU1MgZ2wuY2hlY2tGcmFtZWJ1ZmZlclN0YXR1cyhn
bC5GUkFNRUJVRkZFUikgaXMgZ2wuRlJBTUVCVUZGRVJfVU5TVVBQT1JURUQKIEF0dGFjaCBzdGVu
Y2lsLCB0aGVuIGRlcHRoLCBjYXVzaW5nIGNvbmZsaWN0CiBQQVNTIGZibyA9IGdsLmNyZWF0ZUZy
YW1lYnVmZmVyKCkgaXMgbm9uLW51bGwuCi1QQVNTIGdsLmdldEVycm9yKCkgaXMgZ2wuTk9fRVJS
T1IKLVBBU1MgZ2wuZ2V0RXJyb3IoKSBpcyBnbC5OT19FUlJPUgorUEFTUyBnZXRFcnJvciB3YXMg
ZXhwZWN0ZWQgdmFsdWU6IE5PX0VSUk9SIDogCitQQVNTIGdldEVycm9yIHdhcyBleHBlY3RlZCB2
YWx1ZTogTk9fRVJST1IgOiAKIFBBU1MgZ2wuY2hlY2tGcmFtZWJ1ZmZlclN0YXR1cyhnbC5GUkFN
RUJVRkZFUikgaXMgZ2wuRlJBTUVCVUZGRVJfVU5TVVBQT1JURUQKIEF0dGFjaCBkZXB0aCwgdGhl
biBkZXB0aFN0ZW5jaWwsIGNhdXNpbmcgY29uZmxpY3QKIFBBU1MgZmJvID0gZ2wuY3JlYXRlRnJh
bWVidWZmZXIoKSBpcyBub24tbnVsbC4KLVBBU1MgZ2wuZ2V0RXJyb3IoKSBpcyBnbC5OT19FUlJP
UgotUEFTUyBnbC5nZXRFcnJvcigpIGlzIGdsLk5PX0VSUk9SCitQQVNTIGdldEVycm9yIHdhcyBl
eHBlY3RlZCB2YWx1ZTogTk9fRVJST1IgOiAKK1BBU1MgZ2V0RXJyb3Igd2FzIGV4cGVjdGVkIHZh
bHVlOiBOT19FUlJPUiA6IAogUEFTUyBnbC5jaGVja0ZyYW1lYnVmZmVyU3RhdHVzKGdsLkZSQU1F
QlVGRkVSKSBpcyBnbC5GUkFNRUJVRkZFUl9VTlNVUFBPUlRFRAogQXR0YWNoIGRlcHRoU3RlbmNp
bCwgdGhlbiBkZXB0aCwgY2F1c2luZyBjb25mbGljdAogUEFTUyBmYm8gPSBnbC5jcmVhdGVGcmFt
ZWJ1ZmZlcigpIGlzIG5vbi1udWxsLgotUEFTUyBnbC5nZXRFcnJvcigpIGlzIGdsLk5PX0VSUk9S
Ci1QQVNTIGdsLmdldEVycm9yKCkgaXMgZ2wuTk9fRVJST1IKK1BBU1MgZ2V0RXJyb3Igd2FzIGV4
cGVjdGVkIHZhbHVlOiBOT19FUlJPUiA6IAorUEFTUyBnZXRFcnJvciB3YXMgZXhwZWN0ZWQgdmFs
dWU6IE5PX0VSUk9SIDogCiBQQVNTIGdsLmNoZWNrRnJhbWVidWZmZXJTdGF0dXMoZ2wuRlJBTUVC
VUZGRVIpIGlzIGdsLkZSQU1FQlVGRkVSX1VOU1VQUE9SVEVECiBBdHRhY2ggc3RlbmNpbCwgdGhl
biBkZXB0aFN0ZW5jaWwsIGNhdXNpbmcgY29uZmxpY3QKIFBBU1MgZmJvID0gZ2wuY3JlYXRlRnJh
bWVidWZmZXIoKSBpcyBub24tbnVsbC4KLVBBU1MgZ2wuZ2V0RXJyb3IoKSBpcyBnbC5OT19FUlJP
UgotUEFTUyBnbC5nZXRFcnJvcigpIGlzIGdsLk5PX0VSUk9SCitQQVNTIGdldEVycm9yIHdhcyBl
eHBlY3RlZCB2YWx1ZTogTk9fRVJST1IgOiAKK1BBU1MgZ2V0RXJyb3Igd2FzIGV4cGVjdGVkIHZh
bHVlOiBOT19FUlJPUiA6IAogUEFTUyBnbC5jaGVja0ZyYW1lYnVmZmVyU3RhdHVzKGdsLkZSQU1F
QlVGRkVSKSBpcyBnbC5GUkFNRUJVRkZFUl9VTlNVUFBPUlRFRAogQXR0YWNoIGRlcHRoU3RlbmNp
bCwgdGhlbiBzdGVuY2lsLCBjYXVzaW5nIGNvbmZsaWN0CiBQQVNTIGZibyA9IGdsLmNyZWF0ZUZy
YW1lYnVmZmVyKCkgaXMgbm9uLW51bGwuCi1QQVNTIGdsLmdldEVycm9yKCkgaXMgZ2wuTk9fRVJS
T1IKLVBBU1MgZ2wuZ2V0RXJyb3IoKSBpcyBnbC5OT19FUlJPUgorUEFTUyBnZXRFcnJvciB3YXMg
ZXhwZWN0ZWQgdmFsdWU6IE5PX0VSUk9SIDogCitQQVNTIGdldEVycm9yIHdhcyBleHBlY3RlZCB2
YWx1ZTogTk9fRVJST1IgOiAKIFBBU1MgZ2wuY2hlY2tGcmFtZWJ1ZmZlclN0YXR1cyhnbC5GUkFN
RUJVRkZFUikgaXMgZ2wuRlJBTUVCVUZGRVJfVU5TVVBQT1JURUQKIEF0dGFjaCBjb2xvciByZW5k
ZXJidWZmZXIgd2l0aCBpbnRlcm5hbGZvcm1hdCA9PSBSR0JBNAogUEFTUyBjb2xvckJ1ZmZlciA9
IGdsLmNyZWF0ZVJlbmRlcmJ1ZmZlcigpIGlzIG5vbi1udWxsLgotUEFTUyBnbC5nZXRFcnJvcigp
IGlzIGdsLk5PX0VSUk9SCitQQVNTIGdldEVycm9yIHdhcyBleHBlY3RlZCB2YWx1ZTogTk9fRVJS
T1IgOiAKIFBBU1MgZmJvID0gZ2wuY3JlYXRlRnJhbWVidWZmZXIoKSBpcyBub24tbnVsbC4KLVBB
U1MgZ2wuZ2V0RXJyb3IoKSBpcyBnbC5OT19FUlJPUgorUEFTUyBnZXRFcnJvciB3YXMgZXhwZWN0
ZWQgdmFsdWU6IE5PX0VSUk9SIDogCiBBdHRhY2ggY29sb3IgcmVuZGVyYnVmZmVyIHdpdGggaW50
ZXJuYWxmb3JtYXQgPT0gUkdCNV9BMQogUEFTUyBjb2xvckJ1ZmZlciA9IGdsLmNyZWF0ZVJlbmRl
cmJ1ZmZlcigpIGlzIG5vbi1udWxsLgotUEFTUyBnbC5nZXRFcnJvcigpIGlzIGdsLk5PX0VSUk9S
CitQQVNTIGdldEVycm9yIHdhcyBleHBlY3RlZCB2YWx1ZTogTk9fRVJST1IgOiAKIFBBU1MgZmJv
ID0gZ2wuY3JlYXRlRnJhbWVidWZmZXIoKSBpcyBub24tbnVsbC4KLVBBU1MgZ2wuZ2V0RXJyb3Io
KSBpcyBnbC5OT19FUlJPUgorUEFTUyBnZXRFcnJvciB3YXMgZXhwZWN0ZWQgdmFsdWU6IE5PX0VS
Uk9SIDogCiBBdHRhY2ggY29sb3IgcmVuZGVyYnVmZmVyIHdpdGggaW50ZXJuYWxmb3JtYXQgPT0g
UkdCNTY1CiBQQVNTIGNvbG9yQnVmZmVyID0gZ2wuY3JlYXRlUmVuZGVyYnVmZmVyKCkgaXMgbm9u
LW51bGwuCi1QQVNTIGdsLmdldEVycm9yKCkgaXMgZ2wuTk9fRVJST1IKK1BBU1MgZ2V0RXJyb3Ig
d2FzIGV4cGVjdGVkIHZhbHVlOiBOT19FUlJPUiA6IAogUEFTUyBmYm8gPSBnbC5jcmVhdGVGcmFt
ZWJ1ZmZlcigpIGlzIG5vbi1udWxsLgotUEFTUyBnbC5nZXRFcnJvcigpIGlzIGdsLk5PX0VSUk9S
CitQQVNTIGdldEVycm9yIHdhcyBleHBlY3RlZCB2YWx1ZTogTk9fRVJST1IgOiAKK0NyZWF0ZSBh
bmQgYXR0YWNoIGRlcHRoU3RlbmNpbCByZW5kZXJidWZmZXIKK1BBU1MgZGVwdGhTdGVuY2lsQnVm
ZmVyID0gZ2wuY3JlYXRlUmVuZGVyYnVmZmVyKCkgaXMgbm9uLW51bGwuCitQQVNTIGdldEVycm9y
IHdhcyBleHBlY3RlZCB2YWx1ZTogTk9fRVJST1IgOiAKK1BBU1MgZ2wuZ2V0UmVuZGVyYnVmZmVy
UGFyYW1ldGVyKGdsLlJFTkRFUkJVRkZFUiwgZ2wuUkVOREVSQlVGRkVSX1dJRFRIKSBpcyB3aWR0
aAorUEFTUyBnbC5nZXRSZW5kZXJidWZmZXJQYXJhbWV0ZXIoZ2wuUkVOREVSQlVGRkVSLCBnbC5S
RU5ERVJCVUZGRVJfSEVJR0hUKSBpcyBoZWlnaHQKK1BBU1MgZ2wuZ2V0UmVuZGVyYnVmZmVyUGFy
YW1ldGVyKGdsLlJFTkRFUkJVRkZFUiwgZ2wuUkVOREVSQlVGRkVSX0lOVEVSTkFMX0ZPUk1BVCkg
aXMgZ2wuREVQVEhfU1RFTkNJTAorUEFTUyBnbC5nZXRSZW5kZXJidWZmZXJQYXJhbWV0ZXIoZ2wu
UkVOREVSQlVGRkVSLCBnbC5SRU5ERVJCVUZGRVJfUkVEX1NJWkUpIGlzIDAKK1BBU1MgZ2wuZ2V0
UmVuZGVyYnVmZmVyUGFyYW1ldGVyKGdsLlJFTkRFUkJVRkZFUiwgZ2wuUkVOREVSQlVGRkVSX0dS
RUVOX1NJWkUpIGlzIDAKK1BBU1MgZ2wuZ2V0UmVuZGVyYnVmZmVyUGFyYW1ldGVyKGdsLlJFTkRF
UkJVRkZFUiwgZ2wuUkVOREVSQlVGRkVSX0JMVUVfU0laRSkgaXMgMAorUEFTUyBnbC5nZXRSZW5k
ZXJidWZmZXJQYXJhbWV0ZXIoZ2wuUkVOREVSQlVGRkVSLCBnbC5SRU5ERVJCVUZGRVJfQUxQSEFf
U0laRSkgaXMgMAorUEFTUyBnbC5nZXRSZW5kZXJidWZmZXJQYXJhbWV0ZXIoZ2wuUkVOREVSQlVG
RkVSLCBnbC5SRU5ERVJCVUZGRVJfREVQVEhfU0laRSkgPiAwIGlzIHRydWUKK1BBU1MgZ2wuZ2V0
UmVuZGVyYnVmZmVyUGFyYW1ldGVyKGdsLlJFTkRFUkJVRkZFUiwgZ2wuUkVOREVSQlVGRkVSX1NU
RU5DSUxfU0laRSkgPiAwIGlzIHRydWUKK1BBU1MgZ2V0RXJyb3Igd2FzIGV4cGVjdGVkIHZhbHVl
OiBOT19FUlJPUiA6IAorUEFTUyBmYm8gPSBnbC5jcmVhdGVGcmFtZWJ1ZmZlcigpIGlzIG5vbi1u
dWxsLgorUEFTUyBnZXRFcnJvciB3YXMgZXhwZWN0ZWQgdmFsdWU6IE5PX0VSUk9SIDogCiBQQVNT
IHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCiAKIFRFU1QgQ09NUExFVEUKSW5kZXg6IExheW91
dFRlc3RzL2Zhc3QvY2FudmFzL3dlYmdsL2ZyYW1lYnVmZmVyLW9iamVjdC1hdHRhY2htZW50Lmh0
bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvd2ViZ2wvZnJhbWVidWZm
ZXItb2JqZWN0LWF0dGFjaG1lbnQuaHRtbAkocmV2aXNpb24gNzEyNzQpCisrKyBMYXlvdXRUZXN0
cy9mYXN0L2NhbnZhcy93ZWJnbC9mcmFtZWJ1ZmZlci1vYmplY3QtYXR0YWNobWVudC5odG1sCSh3
b3JraW5nIGNvcHkpCkBAIC0yNSwxMyArMjUsMTMgQEAgZnVuY3Rpb24gdGVzdEF0dGFjaG1lbnQo
YXR0YWNobWVudCwgYnVmZgogICAgIGdsLmJpbmRGcmFtZWJ1ZmZlcihnbC5GUkFNRUJVRkZFUiwg
ZmJvKTsKICAgICBnbC5mcmFtZWJ1ZmZlclJlbmRlcmJ1ZmZlcihnbC5GUkFNRUJVRkZFUiwgZ2wu
Q09MT1JfQVRUQUNITUVOVDAsIGdsLlJFTkRFUkJVRkZFUiwgY29sb3JCdWZmZXIpOwogICAgIGds
LmZyYW1lYnVmZmVyUmVuZGVyYnVmZmVyKGdsLkZSQU1FQlVGRkVSLCBhdHRhY2htZW50LCBnbC5S
RU5ERVJCVUZGRVIsIGJ1ZmZlcik7Ci0gICAgc2hvdWxkQmUoImdsLmdldEVycm9yKCkiLCAiZ2wu
Tk9fRVJST1IiKTsKKyAgICBnbEVycm9yU2hvdWxkQmUoZ2wsIGdsLk5PX0VSUk9SKTsKICAgICBp
ZiAoaXNDb25mbGljdGVkKSB7CiAgICAgICAgIHNob3VsZEJlKCJnbC5jaGVja0ZyYW1lYnVmZmVy
U3RhdHVzKGdsLkZSQU1FQlVGRkVSKSIsICJnbC5GUkFNRUJVRkZFUl9VTlNVUFBPUlRFRCIpOwog
ICAgICAgICBnbC5jbGVhcihnbC5DT0xPUl9CVUZGRVJfQklUKTsKLSAgICAgICAgc2hvdWxkQmUo
ImdsLmdldEVycm9yKCkiLCAiZ2wuSU5WQUxJRF9GUkFNRUJVRkZFUl9PUEVSQVRJT04iKTsKKyAg
ICAgICAgZ2xFcnJvclNob3VsZEJlKGdsLCBnbC5JTlZBTElEX0ZSQU1FQlVGRkVSX09QRVJBVElP
Tik7CiAgICAgICAgIGdsLnJlYWRQaXhlbHMoMCwgMCwgd2lkdGgsIGhlaWdodCwgZ2wuUkdCQSwg
Z2wuVU5TSUdORURfQllURSwgbmV3IFVpbnQ4QXJyYXkod2lkdGggKiBoZWlnaHQgKiA0KSk7Ci0g
ICAgICAgIHNob3VsZEJlKCJnbC5nZXRFcnJvcigpIiwgImdsLklOVkFMSURfRlJBTUVCVUZGRVJf
T1BFUkFUSU9OIik7CisgICAgICAgIGdsRXJyb3JTaG91bGRCZShnbCwgZ2wuSU5WQUxJRF9GUkFN
RUJVRkZFUl9PUEVSQVRJT04pOwogICAgIH0KIH0KIApAQCAtNDEsOSArNDEsOSBAQCBmdW5jdGlv
biB0ZXN0QXR0YWNobWVudHMoYXR0YWNobWVudDAsIGJ1CiAgICAgZ2wuYmluZEZyYW1lYnVmZmVy
KGdsLkZSQU1FQlVGRkVSLCBmYm8pOwogICAgIGdsLmZyYW1lYnVmZmVyUmVuZGVyYnVmZmVyKGds
LkZSQU1FQlVGRkVSLCBnbC5DT0xPUl9BVFRBQ0hNRU5UMCwgZ2wuUkVOREVSQlVGRkVSLCBjb2xv
ckJ1ZmZlcik7CiAgICAgZ2wuZnJhbWVidWZmZXJSZW5kZXJidWZmZXIoZ2wuRlJBTUVCVUZGRVIs
IGF0dGFjaG1lbnQwLCBnbC5SRU5ERVJCVUZGRVIsIGJ1ZmZlcjApOwotICAgIHNob3VsZEJlKCJn
bC5nZXRFcnJvcigpIiwgImdsLk5PX0VSUk9SIik7CisgICAgZ2xFcnJvclNob3VsZEJlKGdsLCBn
bC5OT19FUlJPUik7CiAgICAgZ2wuZnJhbWVidWZmZXJSZW5kZXJidWZmZXIoZ2wuRlJBTUVCVUZG
RVIsIGF0dGFjaG1lbnQxLCBnbC5SRU5ERVJCVUZGRVIsIGJ1ZmZlcjEpOwotICAgIHNob3VsZEJl
KCJnbC5nZXRFcnJvcigpIiwgImdsLk5PX0VSUk9SIik7CisgICAgZ2xFcnJvclNob3VsZEJlKGds
LCBnbC5OT19FUlJPUik7CiAgICAgaWYgKGlzQ29uZmxpY3RlZCkKICAgICAgICAgc2hvdWxkQmUo
ImdsLmNoZWNrRnJhbWVidWZmZXJTdGF0dXMoZ2wuRlJBTUVCVUZGRVIpIiwgImdsLkZSQU1FQlVG
RkVSX1VOU1VQUE9SVEVEIik7CiB9CkBAIC01MywxMCArNTMsMjkgQEAgZnVuY3Rpb24gdGVzdENv
bG9yUmVuZGVyYnVmZmVyKGludGVybmFsZgogICAgIHNob3VsZEJlTm9uTnVsbCgiY29sb3JCdWZm
ZXIgPSBnbC5jcmVhdGVSZW5kZXJidWZmZXIoKSIpOwogICAgIGdsLmJpbmRSZW5kZXJidWZmZXIo
Z2wuUkVOREVSQlVGRkVSLCBjb2xvckJ1ZmZlcik7CiAgICAgZ2wucmVuZGVyYnVmZmVyU3RvcmFn
ZShnbC5SRU5ERVJCVUZGRVIsIGludGVybmFsZm9ybWF0LCB3aWR0aCwgaGVpZ2h0KTsKLSAgICBz
aG91bGRCZSgiZ2wuZ2V0RXJyb3IoKSIsICJnbC5OT19FUlJPUiIpOworICAgIGdsRXJyb3JTaG91
bGRCZShnbCwgZ2wuTk9fRVJST1IpOwogICAgIHRlc3RBdHRhY2htZW50KGdsLkNPTE9SX0FUVEFD
SE1FTlQwLCBjb2xvckJ1ZmZlciwgZmFsc2UpOwogfQogCitmdW5jdGlvbiB0ZXN0RGVwdGhTdGVu
Y2lsUmVuZGVyYnVmZmVyKCkKK3sKKyAgICBzaG91bGRCZU5vbk51bGwoImRlcHRoU3RlbmNpbEJ1
ZmZlciA9IGdsLmNyZWF0ZVJlbmRlcmJ1ZmZlcigpIik7CisgICAgZ2wuYmluZFJlbmRlcmJ1ZmZl
cihnbC5SRU5ERVJCVUZGRVIsIGRlcHRoU3RlbmNpbEJ1ZmZlcik7CisgICAgZ2wucmVuZGVyYnVm
ZmVyU3RvcmFnZShnbC5SRU5ERVJCVUZGRVIsIGdsLkRFUFRIX1NURU5DSUwsIHdpZHRoLCBoZWln
aHQpOworICAgIGdsRXJyb3JTaG91bGRCZShnbCwgZ2wuTk9fRVJST1IpOworICAgIHNob3VsZEJl
KCJnbC5nZXRSZW5kZXJidWZmZXJQYXJhbWV0ZXIoZ2wuUkVOREVSQlVGRkVSLCBnbC5SRU5ERVJC
VUZGRVJfV0lEVEgpIiwgIndpZHRoIik7CisgICAgc2hvdWxkQmUoImdsLmdldFJlbmRlcmJ1ZmZl
clBhcmFtZXRlcihnbC5SRU5ERVJCVUZGRVIsIGdsLlJFTkRFUkJVRkZFUl9IRUlHSFQpIiwgImhl
aWdodCIpOworICAgIHNob3VsZEJlKCJnbC5nZXRSZW5kZXJidWZmZXJQYXJhbWV0ZXIoZ2wuUkVO
REVSQlVGRkVSLCBnbC5SRU5ERVJCVUZGRVJfSU5URVJOQUxfRk9STUFUKSIsICJnbC5ERVBUSF9T
VEVOQ0lMIik7CisgICAgc2hvdWxkQmUoImdsLmdldFJlbmRlcmJ1ZmZlclBhcmFtZXRlcihnbC5S
RU5ERVJCVUZGRVIsIGdsLlJFTkRFUkJVRkZFUl9SRURfU0laRSkiLCAiMCIpOworICAgIHNob3Vs
ZEJlKCJnbC5nZXRSZW5kZXJidWZmZXJQYXJhbWV0ZXIoZ2wuUkVOREVSQlVGRkVSLCBnbC5SRU5E
RVJCVUZGRVJfR1JFRU5fU0laRSkiLCAiMCIpOworICAgIHNob3VsZEJlKCJnbC5nZXRSZW5kZXJi
dWZmZXJQYXJhbWV0ZXIoZ2wuUkVOREVSQlVGRkVSLCBnbC5SRU5ERVJCVUZGRVJfQkxVRV9TSVpF
KSIsICIwIik7CisgICAgc2hvdWxkQmUoImdsLmdldFJlbmRlcmJ1ZmZlclBhcmFtZXRlcihnbC5S
RU5ERVJCVUZGRVIsIGdsLlJFTkRFUkJVRkZFUl9BTFBIQV9TSVpFKSIsICIwIik7CisgICAgc2hv
dWxkQmVUcnVlKCJnbC5nZXRSZW5kZXJidWZmZXJQYXJhbWV0ZXIoZ2wuUkVOREVSQlVGRkVSLCBn
bC5SRU5ERVJCVUZGRVJfREVQVEhfU0laRSkgPiAwIik7CisgICAgc2hvdWxkQmVUcnVlKCJnbC5n
ZXRSZW5kZXJidWZmZXJQYXJhbWV0ZXIoZ2wuUkVOREVSQlVGRkVSLCBnbC5SRU5ERVJCVUZGRVJf
U1RFTkNJTF9TSVpFKSA+IDAiKTsKKyAgICBnbEVycm9yU2hvdWxkQmUoZ2wsIGdsLk5PX0VSUk9S
KTsKKyAgICB0ZXN0QXR0YWNobWVudChnbC5ERVBUSF9TVEVOQ0lMX0FUVEFDSE1FTlQsIGRlcHRo
U3RlbmNpbEJ1ZmZlciwgZmFsc2UpOworfQorCiBkZXNjcmlwdGlvbigiVGVzdCBmcmFtZWJ1ZmZl
ciBvYmplY3QgYXR0YWNobWVudCBiZWhhdmlvcnMiKTsKIAogZGVidWcoIkNyZWF0ZSByZW5kZXJi
dWZmZXJzIik7CkBAIC02NCwxOSArODMsMTkgQEAgc2hvdWxkQmVOb25OdWxsKCJnbCA9IGNyZWF0
ZTNEQ29udGV4dCgpIgogc2hvdWxkQmVOb25OdWxsKCJjb2xvckJ1ZmZlciA9IGdsLmNyZWF0ZVJl
bmRlcmJ1ZmZlcigpIik7CiBnbC5iaW5kUmVuZGVyYnVmZmVyKGdsLlJFTkRFUkJVRkZFUiwgY29s
b3JCdWZmZXIpOwogZ2wucmVuZGVyYnVmZmVyU3RvcmFnZShnbC5SRU5ERVJCVUZGRVIsIGdsLlJH
QkE0LCB3aWR0aCwgaGVpZ2h0KTsKLXNob3VsZEJlKCJnbC5nZXRFcnJvcigpIiwgImdsLk5PX0VS
Uk9SIik7CitnbEVycm9yU2hvdWxkQmUoZ2wsIGdsLk5PX0VSUk9SKTsKIHNob3VsZEJlTm9uTnVs
bCgiZGVwdGhCdWZmZXIgPSBnbC5jcmVhdGVSZW5kZXJidWZmZXIoKSIpOwogZ2wuYmluZFJlbmRl
cmJ1ZmZlcihnbC5SRU5ERVJCVUZGRVIsIGRlcHRoQnVmZmVyKTsKIGdsLnJlbmRlcmJ1ZmZlclN0
b3JhZ2UoZ2wuUkVOREVSQlVGRkVSLCBnbC5ERVBUSF9DT01QT05FTlQxNiwgd2lkdGgsIGhlaWdo
dCk7Ci1zaG91bGRCZSgiZ2wuZ2V0RXJyb3IoKSIsICJnbC5OT19FUlJPUiIpOworZ2xFcnJvclNo
b3VsZEJlKGdsLCBnbC5OT19FUlJPUik7CiBzaG91bGRCZU5vbk51bGwoInN0ZW5jaWxCdWZmZXIg
PSBnbC5jcmVhdGVSZW5kZXJidWZmZXIoKSIpOwogZ2wuYmluZFJlbmRlcmJ1ZmZlcihnbC5SRU5E
RVJCVUZGRVIsIHN0ZW5jaWxCdWZmZXIpOwogZ2wucmVuZGVyYnVmZmVyU3RvcmFnZShnbC5SRU5E
RVJCVUZGRVIsIGdsLlNURU5DSUxfSU5ERVg4LCB3aWR0aCwgaGVpZ2h0KTsKLXNob3VsZEJlKCJn
bC5nZXRFcnJvcigpIiwgImdsLk5PX0VSUk9SIik7CitnbEVycm9yU2hvdWxkQmUoZ2wsIGdsLk5P
X0VSUk9SKTsKIHNob3VsZEJlTm9uTnVsbCgiZGVwdGhTdGVuY2lsQnVmZmVyID0gZ2wuY3JlYXRl
UmVuZGVyYnVmZmVyKCkiKTsKIGdsLmJpbmRSZW5kZXJidWZmZXIoZ2wuUkVOREVSQlVGRkVSLCBk
ZXB0aFN0ZW5jaWxCdWZmZXIpOwogZ2wucmVuZGVyYnVmZmVyU3RvcmFnZShnbC5SRU5ERVJCVUZG
RVIsIGdsLkRFUFRIX1NURU5DSUwsIHdpZHRoLCBoZWlnaHQpOwotc2hvdWxkQmUoImdsLmdldEVy
cm9yKCkiLCAiZ2wuTk9fRVJST1IiKTsKK2dsRXJyb3JTaG91bGRCZShnbCwgZ2wuTk9fRVJST1Ip
OwogCiBkZWJ1ZygiQXR0YWNoIGRlcHRoIHVzaW5nIERFUFRIX0FUVEFDSE1FTlQiKTsKIHRlc3RB
dHRhY2htZW50KGdsLkRFUFRIX0FUVEFDSE1FTlQsIGRlcHRoQnVmZmVyLCBmYWxzZSk7CkBAIC0x
MTksNiArMTM4LDkgQEAgdGVzdENvbG9yUmVuZGVyYnVmZmVyKGdsLlJHQjVfQTEpOwogZGVidWco
IkF0dGFjaCBjb2xvciByZW5kZXJidWZmZXIgd2l0aCBpbnRlcm5hbGZvcm1hdCA9PSBSR0I1NjUi
KTsKIHRlc3RDb2xvclJlbmRlcmJ1ZmZlcihnbC5SR0I1NjUpOwogCitkZWJ1ZygiQ3JlYXRlIGFu
ZCBhdHRhY2ggZGVwdGhTdGVuY2lsIHJlbmRlcmJ1ZmZlciIpOwordGVzdERlcHRoU3RlbmNpbFJl
bmRlcmJ1ZmZlcigpOworCiBzdWNjZXNzZnVsbHlQYXJzZWQgPSB0cnVlOwogPC9zY3JpcHQ+CiAK
</data>
<flag name="review"
          id="63214"
          type_id="1"
          status="-"
          setter="kbr"
    />
    <flag name="commit-queue"
          id="63215"
          type_id="3"
          status="-"
          setter="zmo"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>72952</attachid>
            <date>2010-11-04 09:57:46 -0700</date>
            <delta_ts>2010-11-04 09:59:02 -0700</delta_ts>
            <desc>revised patch: using the new extension mechanism</desc>
            <filename>depthRange.patch</filename>
            <type>text/plain</type>
            <size>3790</size>
            <attacher name="Zhenyao Mo">zmo</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA3MTI4OCkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMTMgQEAKKzIwMTAtMTEtMDMgIFpoZW55YW8gTW8gIDx6bW9AZ29vZ2xlLmNvbT4K
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBkZXB0aFJh
bmdlIHNob3VsZCBnZW5lcmF0ZSBJTlZBTElEX09QRVJBVElPTiBpZiB6TmVhciBpcyBncmVhdGVy
IHRoYW4gekZhcgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9NDg2NzYKKworICAgICAgICAqIGh0bWwvY2FudmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4dC5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpXZWJHTFJlbmRlcmluZ0NvbnRleHQ6OmRlcHRoUmFuZ2Up
OgorCiAyMDEwLTExLTAxICBSeW9zdWtlIE5pd2EgIDxybml3YUB3ZWJraXQub3JnPgogCiAgICAg
ICAgIFJldmlld2VkIGJ5IERhcmluIEFkbGVyLgpJbmRleDogV2ViQ29yZS9odG1sL2NhbnZhcy9X
ZWJHTFJlbmRlcmluZ0NvbnRleHQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvaHRtbC9jYW52
YXMvV2ViR0xSZW5kZXJpbmdDb250ZXh0LmNwcAkocmV2aXNpb24gNzEyODIpCisrKyBXZWJDb3Jl
L2h0bWwvY2FudmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4dC5jcHAJKHdvcmtpbmcgY29weSkKQEAg
LTc5MCw2ICs3OTAsMTAgQEAgdm9pZCBXZWJHTFJlbmRlcmluZ0NvbnRleHQ6OmRlcHRoUmFuZ2Uo
ZAogewogICAgIGlmIChpc0NvbnRleHRMb3N0KCkpCiAgICAgICAgIHJldHVybjsKKyAgICBpZiAo
ek5lYXIgPiB6RmFyKSB7CisgICAgICAgIG1fY29udGV4dC0+c3ludGhlc2l6ZUdMRXJyb3IoR3Jh
cGhpY3NDb250ZXh0M0Q6OklOVkFMSURfT1BFUkFUSU9OKTsKKyAgICAgICAgcmV0dXJuOworICAg
IH0KICAgICBtX2NvbnRleHQtPmRlcHRoUmFuZ2Uoek5lYXIsIHpGYXIpOwogICAgIGNsZWFudXBB
ZnRlckdyYXBoaWNzQ2FsbChmYWxzZSk7CiB9CkluZGV4OiBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCShyZXZpc2lvbiA3MTI4OCkKKysr
IExheW91dFRlc3RzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDEzIEBACisy
MDEwLTExLTAzICBaaGVueWFvIE1vICA8em1vQGdvb2dsZS5jb20+CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgZGVwdGhSYW5nZSBzaG91bGQgZ2VuZXJh
dGUgSU5WQUxJRF9PUEVSQVRJT04gaWYgek5lYXIgaXMgZ3JlYXRlciB0aGFuIHpGYXIKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQ4Njc2CisKKyAgICAg
ICAgKiBmYXN0L2NhbnZhcy93ZWJnbC93ZWJnbC1zcGVjaWZpYy1leHBlY3RlZC50eHQ6CisgICAg
ICAgICogZmFzdC9jYW52YXMvd2ViZ2wvd2ViZ2wtc3BlY2lmaWMuaHRtbDoKKwogMjAxMC0xMC0y
OSAgUnlvc3VrZSBOaXdhICA8cm5pd2FAd2Via2l0Lm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBi
eSBEYXJpbiBBZGxlci4KSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvY2FudmFzL3dlYmdsL3dlYmds
LXNwZWNpZmljLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2Nh
bnZhcy93ZWJnbC93ZWJnbC1zcGVjaWZpYy1leHBlY3RlZC50eHQJKHJldmlzaW9uIDcxMjgyKQor
KysgTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvd2ViZ2wvd2ViZ2wtc3BlY2lmaWMtZXhwZWN0ZWQu
dHh0CSh3b3JraW5nIGNvcHkpCkBAIC0xOCw2ICsxOCw3IEBAIFBBU1MgZ2V0RXJyb3Igd2FzIGV4
cGVjdGVkIHZhbHVlOiBJTlZBTEkKIFBBU1MgZ2V0RXJyb3Igd2FzIGV4cGVjdGVkIHZhbHVlOiBJ
TlZBTElEX09QRVJBVElPTiA6IGNvbnN0YW50IGNvbG9yIGFuZCBjb25zdGFudCBhbHBoYSBjYW5u
b3QgYmUgdXNlZCB0b2dldGhlciBhcyBzb3VyY2UgYW5kIGRlc3RpbmF0aW9uIGZhY3RvcnMgaW4g
dGhlIGJsZW5kIGZ1bmN0aW9uCiBQQVNTIGdldEVycm9yIHdhcyBleHBlY3RlZCB2YWx1ZTogSU5W
QUxJRF9PUEVSQVRJT04gOiBjb25zdGFudCBjb2xvciBhbmQgY29uc3RhbnQgYWxwaGEgY2Fubm90
IGJlIHVzZWQgdG9nZXRoZXIgYXMgc291cmNlIGFuZCBkZXN0aW5hdGlvbiBmYWN0b3JzIGluIHRo
ZSBibGVuZCBmdW5jdGlvbgogUEFTUyBnZXRFcnJvciB3YXMgZXhwZWN0ZWQgdmFsdWU6IElOVkFM
SURfT1BFUkFUSU9OIDogY29uc3RhbnQgY29sb3IgYW5kIGNvbnN0YW50IGFscGhhIGNhbm5vdCBi
ZSB1c2VkIHRvZ2V0aGVyIGFzIHNvdXJjZSBhbmQgZGVzdGluYXRpb24gZmFjdG9ycyBpbiB0aGUg
YmxlbmQgZnVuY3Rpb24KK1BBU1MgZ2V0RXJyb3Igd2FzIGV4cGVjdGVkIHZhbHVlOiBJTlZBTElE
X09QRVJBVElPTiA6IGRlcHRoUmFuZ2Ugc2hvdWxkIGdlbmVyYXRlIElOVkFMSURfT1BFUkFUSU9O
IGlmIHpOZWFyIGlzIGdyZWF0ZXIgdGhhbiB6RmFyCiBQQVNTIGdldEVycm9yIHdhcyBleHBlY3Rl
ZCB2YWx1ZTogTk9fRVJST1IgOiBzdGVuY2lsTWFzayBzaG91bGQgZ2VuZXJhdGUgbm8gZXJyb3IK
IFBBU1MgZ2V0RXJyb3Igd2FzIGV4cGVjdGVkIHZhbHVlOiBJTlZBTElEX09QRVJBVElPTiA6IGEg
ZGlmZmVyZW50IG1hc2sgdmFsdWUgZm9yIGZyb250IGFuZCBiYWNrIGZhY2luZyBpcyBpbGxlZ2Fs
CiBQQVNTIGdldEVycm9yIHdhcyBleHBlY3RlZCB2YWx1ZTogSU5WQUxJRF9PUEVSQVRJT04gOiBh
IGRpZmZlcmVudCBtYXNrIHZhbHVlIGZvciBmcm9udCBhbmQgYmFjayBmYWNpbmcgaXMgaWxsZWdh
bApJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvd2ViZ2wvd2ViZ2wtc3BlY2lmaWMuaHRt
bAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2NhbnZhcy93ZWJnbC93ZWJnbC1zcGVj
aWZpYy5odG1sCShyZXZpc2lvbiA3MTI4MikKKysrIExheW91dFRlc3RzL2Zhc3QvY2FudmFzL3dl
YmdsL3dlYmdsLXNwZWNpZmljLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTY4LDExICs2OCw5IEBA
IGdsLmJsZW5kRnVuY1NlcGFyYXRlKGdsLk9ORV9NSU5VU19DT05TVEEKIGdsRXJyb3JTaG91bGRC
ZShnbCwgZ2wuSU5WQUxJRF9PUEVSQVRJT04sCiAgICAgImNvbnN0YW50IGNvbG9yIGFuZCBjb25z
dGFudCBhbHBoYSBjYW5ub3QgYmUgdXNlZCB0b2dldGhlciBhcyBzb3VyY2UgYW5kIGRlc3RpbmF0
aW9uIGZhY3RvcnMgaW4gdGhlIGJsZW5kIGZ1bmN0aW9uIik7CiAKLS8qCiBnbC5kZXB0aFJhbmdl
KDIwLCAxMCk7CiBnbEVycm9yU2hvdWxkQmUoZ2wsIGdsLklOVkFMSURfT1BFUkFUSU9OLAogICAg
ICJkZXB0aFJhbmdlIHNob3VsZCBnZW5lcmF0ZSBJTlZBTElEX09QRVJBVElPTiBpZiB6TmVhciBp
cyBncmVhdGVyIHRoYW4gekZhciIpOwotKi8KIAogZ2wuc3RlbmNpbE1hc2soMjU1KTsKIGdsRXJy
b3JTaG91bGRCZShnbCwgZ2wuTk9fRVJST1IsCg==
</data>
<flag name="commit-queue"
          id="63297"
          type_id="3"
          status="-"
          setter="zmo"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>72953</attachid>
            <date>2010-11-04 09:59:02 -0700</date>
            <delta_ts>2010-11-04 16:51:42 -0700</delta_ts>
            <desc>revised patch: using the new extension mechanism</desc>
            <filename>depthStencil.patch</filename>
            <type>text/plain</type>
            <size>24814</size>
            <attacher name="Zhenyao Mo">zmo</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA3MTMzOCkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMjcgQEAKKzIwMTAtMTEtMDMgIFpoZW55YW8gTW8gIDx6bW9AZ29vZ2xlLmNvbT4K
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICByZW5kZXJi
dWZmZXJTdG9yYWdlKERFUFRIX1NURU5DSUwpIHNob3VsZG4ndCBnZW5lcmF0ZSBhbiBlcnJvcgor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDg4OTEKKwor
ICAgICAgICAqIGh0bWwvY2FudmFzL1dlYkdMRnJhbWVidWZmZXIuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6V2ViR0xGcmFtZWJ1ZmZlcjo6aXNJbmNvbXBsZXRlKTogQ29uc2lkZXJpbmcgdGhlIGNh
c2Ugd2hlcmUgREVQVEhfU1RFTkNJTCBpcyBub3Qgc3VwcG9ydGVkLgorICAgICAgICAqIGh0bWwv
Y2FudmFzL1dlYkdMUmVuZGVyYnVmZmVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OldlYkdMUmVu
ZGVyYnVmZmVyOjpXZWJHTFJlbmRlcmJ1ZmZlcik6IEluaXQgYWRkZWQgbWVtYmVycy4KKyAgICAg
ICAgKiBodG1sL2NhbnZhcy9XZWJHTFJlbmRlcmJ1ZmZlci5oOiBBZGQgbWVtYmVycyBhbmQgYWNj
ZXNzb3IgZnVuY3Rpb25zLgorICAgICAgICAoV2ViQ29yZTo6V2ViR0xSZW5kZXJidWZmZXI6OnNl
dEludGVybmFsRm9ybWF0KTogCisgICAgICAgIChXZWJDb3JlOjpXZWJHTFJlbmRlcmJ1ZmZlcjo6
c2V0U2l6ZSk6CisgICAgICAgIChXZWJDb3JlOjpXZWJHTFJlbmRlcmJ1ZmZlcjo6Z2V0V2lkdGgp
OgorICAgICAgICAoV2ViQ29yZTo6V2ViR0xSZW5kZXJidWZmZXI6OmdldEhlaWdodCk6CisgICAg
ICAgIChXZWJDb3JlOjpXZWJHTFJlbmRlcmJ1ZmZlcjo6c2V0SXNWYWxpZCk6CisgICAgICAgIChX
ZWJDb3JlOjpXZWJHTFJlbmRlcmJ1ZmZlcjo6aXNWYWxpZCk6CisgICAgICAgICogaHRtbC9jYW52
YXMvV2ViR0xSZW5kZXJpbmdDb250ZXh0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OldlYkdMUmVu
ZGVyaW5nQ29udGV4dDo6aW5pdGlhbGl6ZU5ld0NvbnRleHQpOiBDaGVjayBpZiBwYWNrZWRfZGVw
dGhfc3RlbmNpbCBleHRlbnNpb24gZXhpc3RzLgorICAgICAgICAoV2ViQ29yZTo6V2ViR0xSZW5k
ZXJpbmdDb250ZXh0OjpnZXRSZW5kZXJidWZmZXJQYXJhbWV0ZXIpOiBTaW11bGF0ZSB0aGUgY2Fz
ZSBmb3IgREVQVEhfU1RFTkNJTCB3aGVyZSBwYWNrZWRfZGVwdGhfc3RlbmNpbCBpcyBub3Qgc3Vw
cG9ydGVkLgorICAgICAgICAoV2ViQ29yZTo6V2ViR0xSZW5kZXJpbmdDb250ZXh0OjpyZW5kZXJi
dWZmZXJTdG9yYWdlKTogQnlwYXNzIHRoZSBjYWxsIGlmIHBhY2tlZF9kZXB0aF9zdGVuY2lsIGlz
IG5vdCBzdXBwb3J0ZWQuCisgICAgICAgICogaHRtbC9jYW52YXMvV2ViR0xSZW5kZXJpbmdDb250
ZXh0Lmg6CisKIDIwMTAtMTEtMDQgIEFuZHJlYXMgS2xpbmcgIDxrbGluZ0B3ZWJraXQub3JnPgog
CiAgICAgICAgIFJldmlld2VkIGJ5IE5pa29sYXMgWmltbWVybWFubi4KSW5kZXg6IFdlYkNvcmUv
aHRtbC9jYW52YXMvV2ViR0xGcmFtZWJ1ZmZlci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9o
dG1sL2NhbnZhcy9XZWJHTEZyYW1lYnVmZmVyLmNwcAkocmV2aXNpb24gNzEzMzgpCisrKyBXZWJD
b3JlL2h0bWwvY2FudmFzL1dlYkdMRnJhbWVidWZmZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC01
Nyw2ICs1NywxNSBAQCBuYW1lc3BhY2UgewogICAgICAgICAgICAgKHJlaW50ZXJwcmV0X2Nhc3Q8
V2ViR0xSZW5kZXJidWZmZXIqPihhdHRhY2hlZE9iamVjdCkpLT5zZXRJbml0aWFsaXplZCgpOwog
ICAgIH0KIAorICAgIGJvb2wgaXNWYWxpZChXZWJHTE9iamVjdCogYXR0YWNoZWRPYmplY3QpCisg
ICAgeworICAgICAgICBpZiAoYXR0YWNoZWRPYmplY3QgJiYgYXR0YWNoZWRPYmplY3QtPm9iamVj
dCgpICYmIGF0dGFjaGVkT2JqZWN0LT5pc1JlbmRlcmJ1ZmZlcigpKSB7CisgICAgICAgICAgICBp
ZiAoIShyZWludGVycHJldF9jYXN0PFdlYkdMUmVuZGVyYnVmZmVyKj4oYXR0YWNoZWRPYmplY3Qp
KS0+aXNWYWxpZCgpKQorICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgfQor
ICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CisKIH0gLy8gYW5vbnltb3VzIG5hbWVzcGFjZQog
CiBQYXNzUmVmUHRyPFdlYkdMRnJhbWVidWZmZXI+IFdlYkdMRnJhbWVidWZmZXI6OmNyZWF0ZShX
ZWJHTFJlbmRlcmluZ0NvbnRleHQqIGN0eCkKQEAgLTE0Miw3ICsxNTEsOCBAQCBib29sIFdlYkdM
RnJhbWVidWZmZXI6OmlzSW5jb21wbGV0ZSgpIGNvCiAgICAgICAgIGNvdW50Kys7CiAgICAgfQog
ICAgIGlmIChpc0RlcHRoU3RlbmNpbEF0dGFjaGVkKCkpIHsKLSAgICAgICAgaWYgKGdldEludGVy
bmFsRm9ybWF0KG1fZGVwdGhTdGVuY2lsQXR0YWNobWVudC5nZXQoKSkgIT0gR3JhcGhpY3NDb250
ZXh0M0Q6OkRFUFRIX1NURU5DSUwpCisgICAgICAgIGlmIChnZXRJbnRlcm5hbEZvcm1hdChtX2Rl
cHRoU3RlbmNpbEF0dGFjaG1lbnQuZ2V0KCkpICE9IEdyYXBoaWNzQ29udGV4dDNEOjpERVBUSF9T
VEVOQ0lMCisgICAgICAgICAgICB8fCAhaXNWYWxpZChtX2RlcHRoU3RlbmNpbEF0dGFjaG1lbnQu
Z2V0KCkpKQogICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgICAgIGNvdW50Kys7CiAgICAg
fQpJbmRleDogV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFJlbmRlcmJ1ZmZlci5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFJlbmRlcmJ1ZmZlci5jcHAJKHJldmlz
aW9uIDcxMzM4KQorKysgV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFJlbmRlcmJ1ZmZlci5jcHAJ
KHdvcmtpbmcgY29weSkKQEAgLTQyLDYgKzQyLDkgQEAgV2ViR0xSZW5kZXJidWZmZXI6OldlYkdM
UmVuZGVyYnVmZmVyKFdlYgogICAgIDogV2ViR0xPYmplY3QoY3R4KQogICAgICwgbV9pbnRlcm5h
bEZvcm1hdChHcmFwaGljc0NvbnRleHQzRDo6UkdCQTQpCiAgICAgLCBtX2luaXRpYWxpemVkKGZh
bHNlKQorICAgICwgbV93aWR0aCgwKQorICAgICwgbV9oZWlnaHQoMCkKKyAgICAsIG1faXNWYWxp
ZCh0cnVlKQogewogICAgIHNldE9iamVjdChjb250ZXh0KCktPmdyYXBoaWNzQ29udGV4dDNEKCkt
PmNyZWF0ZVJlbmRlcmJ1ZmZlcigpKTsKIH0KSW5kZXg6IFdlYkNvcmUvaHRtbC9jYW52YXMvV2Vi
R0xSZW5kZXJidWZmZXIuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdM
UmVuZGVyYnVmZmVyLmgJKHJldmlzaW9uIDcxMzM4KQorKysgV2ViQ29yZS9odG1sL2NhbnZhcy9X
ZWJHTFJlbmRlcmJ1ZmZlci5oCSh3b3JraW5nIGNvcHkpCkBAIC00NCw5ICs0NCwxOSBAQCBwdWJs
aWM6CiAgICAgICAgIG1faW50ZXJuYWxGb3JtYXQgPSBpbnRlcm5hbGZvcm1hdDsKICAgICAgICAg
bV9pbml0aWFsaXplZCA9IGZhbHNlOwogICAgIH0KLQogICAgIHVuc2lnbmVkIGxvbmcgZ2V0SW50
ZXJuYWxGb3JtYXQoKSBjb25zdCB7IHJldHVybiBtX2ludGVybmFsRm9ybWF0OyB9CiAKKyAgICB2
b2lkIHNldFNpemUodW5zaWduZWQgbG9uZyB3aWR0aCwgdW5zaWduZWQgbG9uZyBoZWlnaHQpCisg
ICAgeworICAgICAgICBtX3dpZHRoID0gd2lkdGg7CisgICAgICAgIG1faGVpZ2h0ID0gaGVpZ2h0
OworICAgIH0KKyAgICB1bnNpZ25lZCBsb25nIGdldFdpZHRoKCkgY29uc3QgeyByZXR1cm4gbV93
aWR0aDsgfQorICAgIHVuc2lnbmVkIGxvbmcgZ2V0SGVpZ2h0KCkgY29uc3QgeyByZXR1cm4gbV9o
ZWlnaHQ7IH0KKworICAgIHZvaWQgc2V0SXNWYWxpZChib29sIGlzVmFsaWQpIHsgbV9pc1ZhbGlk
ID0gaXNWYWxpZDsgfQorICAgIGJvb2wgaXNWYWxpZCgpIGNvbnN0IHsgcmV0dXJuIG1faXNWYWxp
ZDsgfQorCiAgICAgYm9vbCBpc0luaXRpYWxpemVkKCkgY29uc3QgeyByZXR1cm4gbV9pbml0aWFs
aXplZDsgfQogICAgIHZvaWQgc2V0SW5pdGlhbGl6ZWQoKSB7IG1faW5pdGlhbGl6ZWQgPSB0cnVl
OyB9CiAKQEAgLTYwLDYgKzcwLDggQEAgcHJpdmF0ZToKIAogICAgIHVuc2lnbmVkIGxvbmcgbV9p
bnRlcm5hbEZvcm1hdDsKICAgICBib29sIG1faW5pdGlhbGl6ZWQ7CisgICAgdW5zaWduZWQgbG9u
ZyBtX3dpZHRoLCBtX2hlaWdodDsKKyAgICBib29sIG1faXNWYWxpZDsgLy8gVGhpcyBpcyBvbmx5
IGZhbHNlIGlmIGludGVybmFsRm9ybWF0IGlzIERFUFRIX1NURU5DSUwgYW5kIHBhY2tlZF9kZXB0
aF9zdGVuY2lsIGlzIG5vdCBzdXBwb3J0ZWQuCiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3Jl
CkluZGV4OiBXZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4dC5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFJlbmRlcmluZ0NvbnRleHQuY3Bw
CShyZXZpc2lvbiA3MTMzOCkKKysrIFdlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xSZW5kZXJpbmdD
b250ZXh0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzQsNiArMzQsNyBAQAogI2luY2x1ZGUgIkNo
ZWNrZWRJbnQuaCIKICNpbmNsdWRlICJDb25zb2xlLmgiCiAjaW5jbHVkZSAiRE9NV2luZG93Lmgi
CisjaW5jbHVkZSAiRXh0ZW5zaW9uczNELmgiCiAjaW5jbHVkZSAiRnJhbWVWaWV3LmgiCiAjaW5j
bHVkZSAiSFRNTENhbnZhc0VsZW1lbnQuaCIKICNpbmNsdWRlICJIVE1MSW1hZ2VFbGVtZW50Lmgi
CkBAIC0xNTUsNiArMTU2LDEyIEBAIHZvaWQgV2ViR0xSZW5kZXJpbmdDb250ZXh0Ojppbml0aWFs
aXplTmUKICAgICAgICAgY3JlYXRlRmFsbGJhY2tCbGFja1RleHR1cmVzMXgxKCk7CiAgICAgaWYg
KCFpc0dMRVMyQ29tcGxpYW50KCkpCiAgICAgICAgIGluaXRWZXJ0ZXhBdHRyaWIwKCk7CisKKyAg
ICBpZiAoaXNHTEVTMkNvbXBsaWFudCgpKQorICAgICAgICBtX2lzRGVwdGhTdGVuY2lsU3VwcG9y
dGVkID0gbV9jb250ZXh0LT5nZXRFeHRlbnNpb25zKCktPnN1cHBvcnRzKCJHTF9PRVNfcGFja2Vk
X2RlcHRoX3N0ZW5jaWwiKTsKKyAgICBlbHNlCisgICAgICAgIG1faXNEZXB0aFN0ZW5jaWxTdXBw
b3J0ZWQgPSBtX2NvbnRleHQtPmdldEV4dGVuc2lvbnMoKS0+c3VwcG9ydHMoIkdMX0VYVF9wYWNr
ZWRfZGVwdGhfc3RlbmNpbCIpOworCiAgICAgbV9jb250ZXh0LT5yZXNoYXBlKGNhbnZhcygpLT53
aWR0aCgpLCBjYW52YXMoKS0+aGVpZ2h0KCkpOwogICAgIG1fY29udGV4dC0+dmlld3BvcnQoMCwg
MCwgY2FudmFzKCktPndpZHRoKCksIGNhbnZhcygpLT5oZWlnaHQoKSk7CiB9CkBAIC0xNjUxLDYg
KzE2NTgsNDIgQEAgV2ViR0xHZXRJbmZvIFdlYkdMUmVuZGVyaW5nQ29udGV4dDo6Z2V0UgogICAg
ICAgICBtX2NvbnRleHQtPnN5bnRoZXNpemVHTEVycm9yKEdyYXBoaWNzQ29udGV4dDNEOjpJTlZB
TElEX0VOVU0pOwogICAgICAgICByZXR1cm4gV2ViR0xHZXRJbmZvKCk7CiAgICAgfQorICAgIGlm
ICghbV9yZW5kZXJidWZmZXJCaW5kaW5nIHx8ICFtX3JlbmRlcmJ1ZmZlckJpbmRpbmctPm9iamVj
dCgpKSB7CisgICAgICAgIG1fY29udGV4dC0+c3ludGhlc2l6ZUdMRXJyb3IoR3JhcGhpY3NDb250
ZXh0M0Q6OklOVkFMSURfT1BFUkFUSU9OKTsKKyAgICAgICAgcmV0dXJuIFdlYkdMR2V0SW5mbygp
OworICAgIH0KKworICAgIGlmIChtX3JlbmRlcmJ1ZmZlckJpbmRpbmctPmdldEludGVybmFsRm9y
bWF0KCkgPT0gR3JhcGhpY3NDb250ZXh0M0Q6OkRFUFRIX1NURU5DSUwKKyAgICAgICAgJiYgIW1f
cmVuZGVyYnVmZmVyQmluZGluZy0+aXNWYWxpZCgpKSB7CisgICAgICAgIEFTU0VSVCghbV9pc0Rl
cHRoU3RlbmNpbFN1cHBvcnRlZCk7CisgICAgICAgIGxvbmcgdmFsdWUgPSAwOworICAgICAgICBz
d2l0Y2ggKHBuYW1lKSB7CisgICAgICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OlJFTkRFUkJV
RkZFUl9XSURUSDoKKyAgICAgICAgICAgIHZhbHVlID0gc3RhdGljX2Nhc3Q8bG9uZz4obV9yZW5k
ZXJidWZmZXJCaW5kaW5nLT5nZXRXaWR0aCgpKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAg
ICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpSRU5ERVJCVUZGRVJfSEVJR0hUOgorICAgICAgICAg
ICAgdmFsdWUgPSBzdGF0aWNfY2FzdDxsb25nPihtX3JlbmRlcmJ1ZmZlckJpbmRpbmctPmdldEhl
aWdodCgpKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIEdyYXBoaWNzQ29udGV4
dDNEOjpSRU5ERVJCVUZGRVJfUkVEX1NJWkU6CisgICAgICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0
M0Q6OlJFTkRFUkJVRkZFUl9HUkVFTl9TSVpFOgorICAgICAgICBjYXNlIEdyYXBoaWNzQ29udGV4
dDNEOjpSRU5ERVJCVUZGRVJfQkxVRV9TSVpFOgorICAgICAgICBjYXNlIEdyYXBoaWNzQ29udGV4
dDNEOjpSRU5ERVJCVUZGRVJfQUxQSEFfU0laRToKKyAgICAgICAgICAgIHZhbHVlID0gMDsKKyAg
ICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpSRU5ERVJC
VUZGRVJfREVQVEhfU0laRToKKyAgICAgICAgICAgIHZhbHVlID0gMjQ7CisgICAgICAgICAgICBi
cmVhazsKKyAgICAgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6UkVOREVSQlVGRkVSX1NURU5D
SUxfU0laRToKKyAgICAgICAgICAgIHZhbHVlID0gODsKKyAgICAgICAgICAgIGJyZWFrOworICAg
ICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpSRU5ERVJCVUZGRVJfSU5URVJOQUxfRk9STUFU
OgorICAgICAgICAgICAgcmV0dXJuIFdlYkdMR2V0SW5mbyhtX3JlbmRlcmJ1ZmZlckJpbmRpbmct
PmdldEludGVybmFsRm9ybWF0KCkpOworICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgbV9j
b250ZXh0LT5zeW50aGVzaXplR0xFcnJvcihHcmFwaGljc0NvbnRleHQzRDo6SU5WQUxJRF9FTlVN
KTsKKyAgICAgICAgICAgIHJldHVybiBXZWJHTEdldEluZm8oKTsKKyAgICAgICAgfQorICAgICAg
ICByZXR1cm4gV2ViR0xHZXRJbmZvKHZhbHVlKTsKKyAgICB9CiAKICAgICBXZWJHTFN0YXRlUmVz
dG9yZXIodGhpcywgZmFsc2UpOwogICAgIGludCB2YWx1ZSA9IDA7CkBAIC0xNjY2LDEwICsxNzA5
LDYgQEAgV2ViR0xHZXRJbmZvIFdlYkdMUmVuZGVyaW5nQ29udGV4dDo6Z2V0UgogICAgICAgICBt
X2NvbnRleHQtPmdldFJlbmRlcmJ1ZmZlclBhcmFtZXRlcml2KHRhcmdldCwgcG5hbWUsICZ2YWx1
ZSk7CiAgICAgICAgIHJldHVybiBXZWJHTEdldEluZm8oc3RhdGljX2Nhc3Q8bG9uZz4odmFsdWUp
KTsKICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpSRU5ERVJCVUZGRVJfSU5URVJOQUxfRk9S
TUFUOgotICAgICAgICBpZiAoIW1fcmVuZGVyYnVmZmVyQmluZGluZykgewotICAgICAgICAgICAg
bV9jb250ZXh0LT5zeW50aGVzaXplR0xFcnJvcihHcmFwaGljc0NvbnRleHQzRDo6SU5WQUxJRF9P
UEVSQVRJT04pOwotICAgICAgICAgICAgcmV0dXJuIFdlYkdMR2V0SW5mbygpOwotICAgICAgICB9
CiAgICAgICAgIHJldHVybiBXZWJHTEdldEluZm8obV9yZW5kZXJidWZmZXJCaW5kaW5nLT5nZXRJ
bnRlcm5hbEZvcm1hdCgpKTsKICAgICBkZWZhdWx0OgogICAgICAgICBtX2NvbnRleHQtPnN5bnRo
ZXNpemVHTEVycm9yKEdyYXBoaWNzQ29udGV4dDNEOjpJTlZBTElEX0VOVU0pOwpAQCAtMjE4NCwx
OCArMjIyMywzNCBAQCB2b2lkIFdlYkdMUmVuZGVyaW5nQ29udGV4dDo6cmVuZGVyYnVmZmVyCiB7
CiAgICAgaWYgKGlzQ29udGV4dExvc3QoKSkKICAgICAgICAgcmV0dXJuOworICAgIGlmICh0YXJn
ZXQgIT0gR3JhcGhpY3NDb250ZXh0M0Q6OlJFTkRFUkJVRkZFUikgeworICAgICAgICBtX2NvbnRl
eHQtPnN5bnRoZXNpemVHTEVycm9yKEdyYXBoaWNzQ29udGV4dDNEOjpJTlZBTElEX0VOVU0pOwor
ICAgICAgICByZXR1cm47CisgICAgfQorICAgIGlmICghbV9yZW5kZXJidWZmZXJCaW5kaW5nIHx8
ICFtX3JlbmRlcmJ1ZmZlckJpbmRpbmctPm9iamVjdCgpKSB7CisgICAgICAgIG1fY29udGV4dC0+
c3ludGhlc2l6ZUdMRXJyb3IoR3JhcGhpY3NDb250ZXh0M0Q6OklOVkFMSURfT1BFUkFUSU9OKTsK
KyAgICAgICAgcmV0dXJuOworICAgIH0KICAgICBzd2l0Y2ggKGludGVybmFsZm9ybWF0KSB7CiAg
ICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6REVQVEhfQ09NUE9ORU5UMTY6CiAgICAgY2FzZSBH
cmFwaGljc0NvbnRleHQzRDo6UkdCQTQ6CiAgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6UkdC
NV9BMToKICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpSR0I1NjU6CiAgICAgY2FzZSBHcmFw
aGljc0NvbnRleHQzRDo6U1RFTkNJTF9JTkRFWDg6Ci0gICAgY2FzZSBHcmFwaGljc0NvbnRleHQz
RDo6REVQVEhfU1RFTkNJTDoKICAgICAgICAgbV9jb250ZXh0LT5yZW5kZXJidWZmZXJTdG9yYWdl
KHRhcmdldCwgaW50ZXJuYWxmb3JtYXQsIHdpZHRoLCBoZWlnaHQpOwotICAgICAgICBpZiAobV9y
ZW5kZXJidWZmZXJCaW5kaW5nKQotICAgICAgICAgICAgbV9yZW5kZXJidWZmZXJCaW5kaW5nLT5z
ZXRJbnRlcm5hbEZvcm1hdChpbnRlcm5hbGZvcm1hdCk7CisgICAgICAgIG1fcmVuZGVyYnVmZmVy
QmluZGluZy0+c2V0SW50ZXJuYWxGb3JtYXQoaW50ZXJuYWxmb3JtYXQpOworICAgICAgICBtX3Jl
bmRlcmJ1ZmZlckJpbmRpbmctPnNldElzVmFsaWQodHJ1ZSk7CiAgICAgICAgIGNsZWFudXBBZnRl
ckdyYXBoaWNzQ2FsbChmYWxzZSk7CiAgICAgICAgIGJyZWFrOworICAgIGNhc2UgR3JhcGhpY3ND
b250ZXh0M0Q6OkRFUFRIX1NURU5DSUw6CisgICAgICAgIGlmIChtX2lzRGVwdGhTdGVuY2lsU3Vw
cG9ydGVkKSB7CisgICAgICAgICAgICBtX2NvbnRleHQtPnJlbmRlcmJ1ZmZlclN0b3JhZ2UodGFy
Z2V0LCBpbnRlcm5hbGZvcm1hdCwgd2lkdGgsIGhlaWdodCk7CisgICAgICAgICAgICBjbGVhbnVw
QWZ0ZXJHcmFwaGljc0NhbGwoZmFsc2UpOworICAgICAgICB9IGVsc2UKKyAgICAgICAgICAgIG1f
cmVuZGVyYnVmZmVyQmluZGluZy0+c2V0U2l6ZSh3aWR0aCwgaGVpZ2h0KTsKKyAgICAgICAgbV9y
ZW5kZXJidWZmZXJCaW5kaW5nLT5zZXRJc1ZhbGlkKG1faXNEZXB0aFN0ZW5jaWxTdXBwb3J0ZWQp
OworICAgICAgICBtX3JlbmRlcmJ1ZmZlckJpbmRpbmctPnNldEludGVybmFsRm9ybWF0KGludGVy
bmFsZm9ybWF0KTsKKyAgICAgICAgYnJlYWs7CiAgICAgZGVmYXVsdDoKICAgICAgICAgbV9jb250
ZXh0LT5zeW50aGVzaXplR0xFcnJvcihHcmFwaGljc0NvbnRleHQzRDo6SU5WQUxJRF9FTlVNKTsK
ICAgICB9CkluZGV4OiBXZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4dC5o
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFdlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xSZW5kZXJpbmdDb250ZXh0
LmgJKHJldmlzaW9uIDcxMzM4KQorKysgV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFJlbmRlcmlu
Z0NvbnRleHQuaAkod29ya2luZyBjb3B5KQpAQCAtNDMxLDYgKzQzMSw4IEBAIHB1YmxpYzoKICAg
ICBsb25nIG1fc3RlbmNpbEZ1bmNSZWY7IC8vIE5vdGUgdGhhdCB0aGlzIGlzIHRoZSB1c2VyIHNw
ZWNpZmllZCB2YWx1ZSwgbm90IHRoZSBpbnRlcm5hbCBjbGFtcGVkIHZhbHVlLgogICAgIHVuc2ln
bmVkIGxvbmcgbV9zdGVuY2lsRnVuY01hc2s7CiAKKyAgICBib29sIG1faXNEZXB0aFN0ZW5jaWxT
dXBwb3J0ZWQ7CisKICAgICAvLyBIZWxwZXJzIGZvciBnZXRQYXJhbWV0ZXIgYW5kIG90aGVycwog
ICAgIFdlYkdMR2V0SW5mbyBnZXRCb29sZWFuUGFyYW1ldGVyKHVuc2lnbmVkIGxvbmcgcG5hbWUp
OwogICAgIFdlYkdMR2V0SW5mbyBnZXRCb29sZWFuQXJyYXlQYXJhbWV0ZXIodW5zaWduZWQgbG9u
ZyBwbmFtZSk7CkluZGV4OiBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5
b3V0VGVzdHMvQ2hhbmdlTG9nCShyZXZpc2lvbiA3MTMzOCkKKysrIExheW91dFRlc3RzL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDEzIEBACisyMDEwLTExLTAzICBaaGVueWFv
IE1vICA8em1vQGdvb2dsZS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgcmVuZGVyYnVmZmVyU3RvcmFnZShERVBUSF9TVEVOQ0lMKSBzaG91bGRu
J3QgZ2VuZXJhdGUgYW4gZXJyb3IKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTQ4ODkxCisKKyAgICAgICAgKiBmYXN0L2NhbnZhcy93ZWJnbC9mcmFtZWJ1
ZmZlci1vYmplY3QtYXR0YWNobWVudC1leHBlY3RlZC50eHQ6CisgICAgICAgICogZmFzdC9jYW52
YXMvd2ViZ2wvZnJhbWVidWZmZXItb2JqZWN0LWF0dGFjaG1lbnQuaHRtbDogQWRkIHRoZSB0ZXN0
IGNhc2VzIGZvciBERVBUSF9TVEVOQ0lMIHJlbmRlcmJ1ZmZlci4KKwogMjAxMC0xMS0wNCAgQWRh
bSBSb2JlbiAgPGFyb2JlbkBhcHBsZS5jb20+CiAKICAgICAgICAgQWRkIG1vcmUgZmFpbGluZyB0
ZXN0cyB0byB0aGUgV2luZG93cyBTa2lwcGVkIGZpbGUKSW5kZXg6IExheW91dFRlc3RzL2Zhc3Qv
Y2FudmFzL3dlYmdsL2ZyYW1lYnVmZmVyLW9iamVjdC1hdHRhY2htZW50LWV4cGVjdGVkLnR4dAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2NhbnZhcy93ZWJnbC9mcmFtZWJ1ZmZlci1v
YmplY3QtYXR0YWNobWVudC1leHBlY3RlZC50eHQJKHJldmlzaW9uIDcxMzM4KQorKysgTGF5b3V0
VGVzdHMvZmFzdC9jYW52YXMvd2ViZ2wvZnJhbWVidWZmZXItb2JqZWN0LWF0dGFjaG1lbnQtZXhw
ZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC01LDEwMyArNSwxMTggQEAgT24gc3VjY2Vzcywg
eW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQQogQ3JlYXRlIHJlbmRlcmJ1ZmZlcnMKIFBBU1Mg
Z2wgPSBjcmVhdGUzRENvbnRleHQoKSBpcyBub24tbnVsbC4KIFBBU1MgY29sb3JCdWZmZXIgPSBn
bC5jcmVhdGVSZW5kZXJidWZmZXIoKSBpcyBub24tbnVsbC4KLVBBU1MgZ2wuZ2V0RXJyb3IoKSBp
cyBnbC5OT19FUlJPUgorUEFTUyBnZXRFcnJvciB3YXMgZXhwZWN0ZWQgdmFsdWU6IE5PX0VSUk9S
IDogCiBQQVNTIGRlcHRoQnVmZmVyID0gZ2wuY3JlYXRlUmVuZGVyYnVmZmVyKCkgaXMgbm9uLW51
bGwuCi1QQVNTIGdsLmdldEVycm9yKCkgaXMgZ2wuTk9fRVJST1IKK1BBU1MgZ2V0RXJyb3Igd2Fz
IGV4cGVjdGVkIHZhbHVlOiBOT19FUlJPUiA6IAogUEFTUyBzdGVuY2lsQnVmZmVyID0gZ2wuY3Jl
YXRlUmVuZGVyYnVmZmVyKCkgaXMgbm9uLW51bGwuCi1QQVNTIGdsLmdldEVycm9yKCkgaXMgZ2wu
Tk9fRVJST1IKK1BBU1MgZ2V0RXJyb3Igd2FzIGV4cGVjdGVkIHZhbHVlOiBOT19FUlJPUiA6IAog
UEFTUyBkZXB0aFN0ZW5jaWxCdWZmZXIgPSBnbC5jcmVhdGVSZW5kZXJidWZmZXIoKSBpcyBub24t
bnVsbC4KLVBBU1MgZ2wuZ2V0RXJyb3IoKSBpcyBnbC5OT19FUlJPUgorUEFTUyBnZXRFcnJvciB3
YXMgZXhwZWN0ZWQgdmFsdWU6IE5PX0VSUk9SIDogCiBBdHRhY2ggZGVwdGggdXNpbmcgREVQVEhf
QVRUQUNITUVOVAogUEFTUyBmYm8gPSBnbC5jcmVhdGVGcmFtZWJ1ZmZlcigpIGlzIG5vbi1udWxs
LgotUEFTUyBnbC5nZXRFcnJvcigpIGlzIGdsLk5PX0VSUk9SCitQQVNTIGdldEVycm9yIHdhcyBl
eHBlY3RlZCB2YWx1ZTogTk9fRVJST1IgOiAKIEF0dGFjaCBkZXB0aCB1c2luZyBTVEVOQ0lMX0FU
VEFDSE1FTlQKIFBBU1MgZmJvID0gZ2wuY3JlYXRlRnJhbWVidWZmZXIoKSBpcyBub24tbnVsbC4K
LVBBU1MgZ2wuZ2V0RXJyb3IoKSBpcyBnbC5OT19FUlJPUgorUEFTUyBnZXRFcnJvciB3YXMgZXhw
ZWN0ZWQgdmFsdWU6IE5PX0VSUk9SIDogCiBQQVNTIGdsLmNoZWNrRnJhbWVidWZmZXJTdGF0dXMo
Z2wuRlJBTUVCVUZGRVIpIGlzIGdsLkZSQU1FQlVGRkVSX1VOU1VQUE9SVEVECi1QQVNTIGdsLmdl
dEVycm9yKCkgaXMgZ2wuSU5WQUxJRF9GUkFNRUJVRkZFUl9PUEVSQVRJT04KLVBBU1MgZ2wuZ2V0
RXJyb3IoKSBpcyBnbC5JTlZBTElEX0ZSQU1FQlVGRkVSX09QRVJBVElPTgorUEFTUyBnZXRFcnJv
ciB3YXMgZXhwZWN0ZWQgdmFsdWU6IElOVkFMSURfRlJBTUVCVUZGRVJfT1BFUkFUSU9OIDogCitQ
QVNTIGdldEVycm9yIHdhcyBleHBlY3RlZCB2YWx1ZTogSU5WQUxJRF9GUkFNRUJVRkZFUl9PUEVS
QVRJT04gOiAKIEF0dGFjaCBkZXB0aCB1c2luZyBERVBUSF9TVEVOQ0lMX0FUVEFDSE1FTlQKIFBB
U1MgZmJvID0gZ2wuY3JlYXRlRnJhbWVidWZmZXIoKSBpcyBub24tbnVsbC4KLVBBU1MgZ2wuZ2V0
RXJyb3IoKSBpcyBnbC5OT19FUlJPUgorUEFTUyBnZXRFcnJvciB3YXMgZXhwZWN0ZWQgdmFsdWU6
IE5PX0VSUk9SIDogCiBQQVNTIGdsLmNoZWNrRnJhbWVidWZmZXJTdGF0dXMoZ2wuRlJBTUVCVUZG
RVIpIGlzIGdsLkZSQU1FQlVGRkVSX1VOU1VQUE9SVEVECi1QQVNTIGdsLmdldEVycm9yKCkgaXMg
Z2wuSU5WQUxJRF9GUkFNRUJVRkZFUl9PUEVSQVRJT04KLVBBU1MgZ2wuZ2V0RXJyb3IoKSBpcyBn
bC5JTlZBTElEX0ZSQU1FQlVGRkVSX09QRVJBVElPTgorUEFTUyBnZXRFcnJvciB3YXMgZXhwZWN0
ZWQgdmFsdWU6IElOVkFMSURfRlJBTUVCVUZGRVJfT1BFUkFUSU9OIDogCitQQVNTIGdldEVycm9y
IHdhcyBleHBlY3RlZCB2YWx1ZTogSU5WQUxJRF9GUkFNRUJVRkZFUl9PUEVSQVRJT04gOiAKIEF0
dGFjaCBzdGVuY2lsIHVzaW5nIFNURU5DSUxfQVRUQUNITUVOVAogUEFTUyBmYm8gPSBnbC5jcmVh
dGVGcmFtZWJ1ZmZlcigpIGlzIG5vbi1udWxsLgotUEFTUyBnbC5nZXRFcnJvcigpIGlzIGdsLk5P
X0VSUk9SCitQQVNTIGdldEVycm9yIHdhcyBleHBlY3RlZCB2YWx1ZTogTk9fRVJST1IgOiAKIEF0
dGFjaCBzdGVuY2lsIHVzaW5nIERFUFRIX0FUVEFDSE1FTlQKIFBBU1MgZmJvID0gZ2wuY3JlYXRl
RnJhbWVidWZmZXIoKSBpcyBub24tbnVsbC4KLVBBU1MgZ2wuZ2V0RXJyb3IoKSBpcyBnbC5OT19F
UlJPUgorUEFTUyBnZXRFcnJvciB3YXMgZXhwZWN0ZWQgdmFsdWU6IE5PX0VSUk9SIDogCiBQQVNT
IGdsLmNoZWNrRnJhbWVidWZmZXJTdGF0dXMoZ2wuRlJBTUVCVUZGRVIpIGlzIGdsLkZSQU1FQlVG
RkVSX1VOU1VQUE9SVEVECi1QQVNTIGdsLmdldEVycm9yKCkgaXMgZ2wuSU5WQUxJRF9GUkFNRUJV
RkZFUl9PUEVSQVRJT04KLVBBU1MgZ2wuZ2V0RXJyb3IoKSBpcyBnbC5JTlZBTElEX0ZSQU1FQlVG
RkVSX09QRVJBVElPTgorUEFTUyBnZXRFcnJvciB3YXMgZXhwZWN0ZWQgdmFsdWU6IElOVkFMSURf
RlJBTUVCVUZGRVJfT1BFUkFUSU9OIDogCitQQVNTIGdldEVycm9yIHdhcyBleHBlY3RlZCB2YWx1
ZTogSU5WQUxJRF9GUkFNRUJVRkZFUl9PUEVSQVRJT04gOiAKIEF0dGFjaCBzdGVuY2lsIHVzaW5n
IERFUFRIX1NURU5DSUxfQVRUQUNITUVOVAogUEFTUyBmYm8gPSBnbC5jcmVhdGVGcmFtZWJ1ZmZl
cigpIGlzIG5vbi1udWxsLgotUEFTUyBnbC5nZXRFcnJvcigpIGlzIGdsLk5PX0VSUk9SCitQQVNT
IGdldEVycm9yIHdhcyBleHBlY3RlZCB2YWx1ZTogTk9fRVJST1IgOiAKIFBBU1MgZ2wuY2hlY2tG
cmFtZWJ1ZmZlclN0YXR1cyhnbC5GUkFNRUJVRkZFUikgaXMgZ2wuRlJBTUVCVUZGRVJfVU5TVVBQ
T1JURUQKLVBBU1MgZ2wuZ2V0RXJyb3IoKSBpcyBnbC5JTlZBTElEX0ZSQU1FQlVGRkVSX09QRVJB
VElPTgotUEFTUyBnbC5nZXRFcnJvcigpIGlzIGdsLklOVkFMSURfRlJBTUVCVUZGRVJfT1BFUkFU
SU9OCitQQVNTIGdldEVycm9yIHdhcyBleHBlY3RlZCB2YWx1ZTogSU5WQUxJRF9GUkFNRUJVRkZF
Ul9PUEVSQVRJT04gOiAKK1BBU1MgZ2V0RXJyb3Igd2FzIGV4cGVjdGVkIHZhbHVlOiBJTlZBTElE
X0ZSQU1FQlVGRkVSX09QRVJBVElPTiA6IAogQXR0YWNoIGRlcHRoU3RlbmNpbCB1c2luZyBERVBU
SF9TVEVOQ0lMX0FUVEFDSE1FTlQKIFBBU1MgZmJvID0gZ2wuY3JlYXRlRnJhbWVidWZmZXIoKSBp
cyBub24tbnVsbC4KLVBBU1MgZ2wuZ2V0RXJyb3IoKSBpcyBnbC5OT19FUlJPUgorUEFTUyBnZXRF
cnJvciB3YXMgZXhwZWN0ZWQgdmFsdWU6IE5PX0VSUk9SIDogCiBBdHRhY2ggZGVwdGhTdGVuY2ls
IHVzaW5nIERFUFRIX0FUVEFDSE1FTlQKIFBBU1MgZmJvID0gZ2wuY3JlYXRlRnJhbWVidWZmZXIo
KSBpcyBub24tbnVsbC4KLVBBU1MgZ2wuZ2V0RXJyb3IoKSBpcyBnbC5OT19FUlJPUgorUEFTUyBn
ZXRFcnJvciB3YXMgZXhwZWN0ZWQgdmFsdWU6IE5PX0VSUk9SIDogCiBQQVNTIGdsLmNoZWNrRnJh
bWVidWZmZXJTdGF0dXMoZ2wuRlJBTUVCVUZGRVIpIGlzIGdsLkZSQU1FQlVGRkVSX1VOU1VQUE9S
VEVECi1QQVNTIGdsLmdldEVycm9yKCkgaXMgZ2wuSU5WQUxJRF9GUkFNRUJVRkZFUl9PUEVSQVRJ
T04KLVBBU1MgZ2wuZ2V0RXJyb3IoKSBpcyBnbC5JTlZBTElEX0ZSQU1FQlVGRkVSX09QRVJBVElP
TgorUEFTUyBnZXRFcnJvciB3YXMgZXhwZWN0ZWQgdmFsdWU6IElOVkFMSURfRlJBTUVCVUZGRVJf
T1BFUkFUSU9OIDogCitQQVNTIGdldEVycm9yIHdhcyBleHBlY3RlZCB2YWx1ZTogSU5WQUxJRF9G
UkFNRUJVRkZFUl9PUEVSQVRJT04gOiAKIEF0dGFjaCBkZXB0aFN0ZW5jaWwgdXNpbmcgU1RFTkNJ
TF9BVFRBQ0hNRU5UCiBQQVNTIGZibyA9IGdsLmNyZWF0ZUZyYW1lYnVmZmVyKCkgaXMgbm9uLW51
bGwuCi1QQVNTIGdsLmdldEVycm9yKCkgaXMgZ2wuTk9fRVJST1IKK1BBU1MgZ2V0RXJyb3Igd2Fz
IGV4cGVjdGVkIHZhbHVlOiBOT19FUlJPUiA6IAogUEFTUyBnbC5jaGVja0ZyYW1lYnVmZmVyU3Rh
dHVzKGdsLkZSQU1FQlVGRkVSKSBpcyBnbC5GUkFNRUJVRkZFUl9VTlNVUFBPUlRFRAotUEFTUyBn
bC5nZXRFcnJvcigpIGlzIGdsLklOVkFMSURfRlJBTUVCVUZGRVJfT1BFUkFUSU9OCi1QQVNTIGds
LmdldEVycm9yKCkgaXMgZ2wuSU5WQUxJRF9GUkFNRUJVRkZFUl9PUEVSQVRJT04KK1BBU1MgZ2V0
RXJyb3Igd2FzIGV4cGVjdGVkIHZhbHVlOiBJTlZBTElEX0ZSQU1FQlVGRkVSX09QRVJBVElPTiA6
IAorUEFTUyBnZXRFcnJvciB3YXMgZXhwZWN0ZWQgdmFsdWU6IElOVkFMSURfRlJBTUVCVUZGRVJf
T1BFUkFUSU9OIDogCiBBdHRhY2ggZGVwdGgsIHRoZW4gc3RlbmNpbCwgY2F1c2luZyBjb25mbGlj
dAogUEFTUyBmYm8gPSBnbC5jcmVhdGVGcmFtZWJ1ZmZlcigpIGlzIG5vbi1udWxsLgotUEFTUyBn
bC5nZXRFcnJvcigpIGlzIGdsLk5PX0VSUk9SCi1QQVNTIGdsLmdldEVycm9yKCkgaXMgZ2wuTk9f
RVJST1IKK1BBU1MgZ2V0RXJyb3Igd2FzIGV4cGVjdGVkIHZhbHVlOiBOT19FUlJPUiA6IAorUEFT
UyBnZXRFcnJvciB3YXMgZXhwZWN0ZWQgdmFsdWU6IE5PX0VSUk9SIDogCiBQQVNTIGdsLmNoZWNr
RnJhbWVidWZmZXJTdGF0dXMoZ2wuRlJBTUVCVUZGRVIpIGlzIGdsLkZSQU1FQlVGRkVSX1VOU1VQ
UE9SVEVECiBBdHRhY2ggc3RlbmNpbCwgdGhlbiBkZXB0aCwgY2F1c2luZyBjb25mbGljdAogUEFT
UyBmYm8gPSBnbC5jcmVhdGVGcmFtZWJ1ZmZlcigpIGlzIG5vbi1udWxsLgotUEFTUyBnbC5nZXRF
cnJvcigpIGlzIGdsLk5PX0VSUk9SCi1QQVNTIGdsLmdldEVycm9yKCkgaXMgZ2wuTk9fRVJST1IK
K1BBU1MgZ2V0RXJyb3Igd2FzIGV4cGVjdGVkIHZhbHVlOiBOT19FUlJPUiA6IAorUEFTUyBnZXRF
cnJvciB3YXMgZXhwZWN0ZWQgdmFsdWU6IE5PX0VSUk9SIDogCiBQQVNTIGdsLmNoZWNrRnJhbWVi
dWZmZXJTdGF0dXMoZ2wuRlJBTUVCVUZGRVIpIGlzIGdsLkZSQU1FQlVGRkVSX1VOU1VQUE9SVEVE
CiBBdHRhY2ggZGVwdGgsIHRoZW4gZGVwdGhTdGVuY2lsLCBjYXVzaW5nIGNvbmZsaWN0CiBQQVNT
IGZibyA9IGdsLmNyZWF0ZUZyYW1lYnVmZmVyKCkgaXMgbm9uLW51bGwuCi1QQVNTIGdsLmdldEVy
cm9yKCkgaXMgZ2wuTk9fRVJST1IKLVBBU1MgZ2wuZ2V0RXJyb3IoKSBpcyBnbC5OT19FUlJPUgor
UEFTUyBnZXRFcnJvciB3YXMgZXhwZWN0ZWQgdmFsdWU6IE5PX0VSUk9SIDogCitQQVNTIGdldEVy
cm9yIHdhcyBleHBlY3RlZCB2YWx1ZTogTk9fRVJST1IgOiAKIFBBU1MgZ2wuY2hlY2tGcmFtZWJ1
ZmZlclN0YXR1cyhnbC5GUkFNRUJVRkZFUikgaXMgZ2wuRlJBTUVCVUZGRVJfVU5TVVBQT1JURUQK
IEF0dGFjaCBkZXB0aFN0ZW5jaWwsIHRoZW4gZGVwdGgsIGNhdXNpbmcgY29uZmxpY3QKIFBBU1Mg
ZmJvID0gZ2wuY3JlYXRlRnJhbWVidWZmZXIoKSBpcyBub24tbnVsbC4KLVBBU1MgZ2wuZ2V0RXJy
b3IoKSBpcyBnbC5OT19FUlJPUgotUEFTUyBnbC5nZXRFcnJvcigpIGlzIGdsLk5PX0VSUk9SCitQ
QVNTIGdldEVycm9yIHdhcyBleHBlY3RlZCB2YWx1ZTogTk9fRVJST1IgOiAKK1BBU1MgZ2V0RXJy
b3Igd2FzIGV4cGVjdGVkIHZhbHVlOiBOT19FUlJPUiA6IAogUEFTUyBnbC5jaGVja0ZyYW1lYnVm
ZmVyU3RhdHVzKGdsLkZSQU1FQlVGRkVSKSBpcyBnbC5GUkFNRUJVRkZFUl9VTlNVUFBPUlRFRAog
QXR0YWNoIHN0ZW5jaWwsIHRoZW4gZGVwdGhTdGVuY2lsLCBjYXVzaW5nIGNvbmZsaWN0CiBQQVNT
IGZibyA9IGdsLmNyZWF0ZUZyYW1lYnVmZmVyKCkgaXMgbm9uLW51bGwuCi1QQVNTIGdsLmdldEVy
cm9yKCkgaXMgZ2wuTk9fRVJST1IKLVBBU1MgZ2wuZ2V0RXJyb3IoKSBpcyBnbC5OT19FUlJPUgor
UEFTUyBnZXRFcnJvciB3YXMgZXhwZWN0ZWQgdmFsdWU6IE5PX0VSUk9SIDogCitQQVNTIGdldEVy
cm9yIHdhcyBleHBlY3RlZCB2YWx1ZTogTk9fRVJST1IgOiAKIFBBU1MgZ2wuY2hlY2tGcmFtZWJ1
ZmZlclN0YXR1cyhnbC5GUkFNRUJVRkZFUikgaXMgZ2wuRlJBTUVCVUZGRVJfVU5TVVBQT1JURUQK
IEF0dGFjaCBkZXB0aFN0ZW5jaWwsIHRoZW4gc3RlbmNpbCwgY2F1c2luZyBjb25mbGljdAogUEFT
UyBmYm8gPSBnbC5jcmVhdGVGcmFtZWJ1ZmZlcigpIGlzIG5vbi1udWxsLgotUEFTUyBnbC5nZXRF
cnJvcigpIGlzIGdsLk5PX0VSUk9SCi1QQVNTIGdsLmdldEVycm9yKCkgaXMgZ2wuTk9fRVJST1IK
K1BBU1MgZ2V0RXJyb3Igd2FzIGV4cGVjdGVkIHZhbHVlOiBOT19FUlJPUiA6IAorUEFTUyBnZXRF
cnJvciB3YXMgZXhwZWN0ZWQgdmFsdWU6IE5PX0VSUk9SIDogCiBQQVNTIGdsLmNoZWNrRnJhbWVi
dWZmZXJTdGF0dXMoZ2wuRlJBTUVCVUZGRVIpIGlzIGdsLkZSQU1FQlVGRkVSX1VOU1VQUE9SVEVE
CiBBdHRhY2ggY29sb3IgcmVuZGVyYnVmZmVyIHdpdGggaW50ZXJuYWxmb3JtYXQgPT0gUkdCQTQK
IFBBU1MgY29sb3JCdWZmZXIgPSBnbC5jcmVhdGVSZW5kZXJidWZmZXIoKSBpcyBub24tbnVsbC4K
LVBBU1MgZ2wuZ2V0RXJyb3IoKSBpcyBnbC5OT19FUlJPUgorUEFTUyBnZXRFcnJvciB3YXMgZXhw
ZWN0ZWQgdmFsdWU6IE5PX0VSUk9SIDogCiBQQVNTIGZibyA9IGdsLmNyZWF0ZUZyYW1lYnVmZmVy
KCkgaXMgbm9uLW51bGwuCi1QQVNTIGdsLmdldEVycm9yKCkgaXMgZ2wuTk9fRVJST1IKK1BBU1Mg
Z2V0RXJyb3Igd2FzIGV4cGVjdGVkIHZhbHVlOiBOT19FUlJPUiA6IAogQXR0YWNoIGNvbG9yIHJl
bmRlcmJ1ZmZlciB3aXRoIGludGVybmFsZm9ybWF0ID09IFJHQjVfQTEKIFBBU1MgY29sb3JCdWZm
ZXIgPSBnbC5jcmVhdGVSZW5kZXJidWZmZXIoKSBpcyBub24tbnVsbC4KLVBBU1MgZ2wuZ2V0RXJy
b3IoKSBpcyBnbC5OT19FUlJPUgorUEFTUyBnZXRFcnJvciB3YXMgZXhwZWN0ZWQgdmFsdWU6IE5P
X0VSUk9SIDogCiBQQVNTIGZibyA9IGdsLmNyZWF0ZUZyYW1lYnVmZmVyKCkgaXMgbm9uLW51bGwu
Ci1QQVNTIGdsLmdldEVycm9yKCkgaXMgZ2wuTk9fRVJST1IKK1BBU1MgZ2V0RXJyb3Igd2FzIGV4
cGVjdGVkIHZhbHVlOiBOT19FUlJPUiA6IAogQXR0YWNoIGNvbG9yIHJlbmRlcmJ1ZmZlciB3aXRo
IGludGVybmFsZm9ybWF0ID09IFJHQjU2NQogUEFTUyBjb2xvckJ1ZmZlciA9IGdsLmNyZWF0ZVJl
bmRlcmJ1ZmZlcigpIGlzIG5vbi1udWxsLgotUEFTUyBnbC5nZXRFcnJvcigpIGlzIGdsLk5PX0VS
Uk9SCitQQVNTIGdldEVycm9yIHdhcyBleHBlY3RlZCB2YWx1ZTogTk9fRVJST1IgOiAKIFBBU1Mg
ZmJvID0gZ2wuY3JlYXRlRnJhbWVidWZmZXIoKSBpcyBub24tbnVsbC4KLVBBU1MgZ2wuZ2V0RXJy
b3IoKSBpcyBnbC5OT19FUlJPUgorUEFTUyBnZXRFcnJvciB3YXMgZXhwZWN0ZWQgdmFsdWU6IE5P
X0VSUk9SIDogCitDcmVhdGUgYW5kIGF0dGFjaCBkZXB0aFN0ZW5jaWwgcmVuZGVyYnVmZmVyCitQ
QVNTIGRlcHRoU3RlbmNpbEJ1ZmZlciA9IGdsLmNyZWF0ZVJlbmRlcmJ1ZmZlcigpIGlzIG5vbi1u
dWxsLgorUEFTUyBnZXRFcnJvciB3YXMgZXhwZWN0ZWQgdmFsdWU6IE5PX0VSUk9SIDogCitQQVNT
IGdsLmdldFJlbmRlcmJ1ZmZlclBhcmFtZXRlcihnbC5SRU5ERVJCVUZGRVIsIGdsLlJFTkRFUkJV
RkZFUl9XSURUSCkgaXMgd2lkdGgKK1BBU1MgZ2wuZ2V0UmVuZGVyYnVmZmVyUGFyYW1ldGVyKGds
LlJFTkRFUkJVRkZFUiwgZ2wuUkVOREVSQlVGRkVSX0hFSUdIVCkgaXMgaGVpZ2h0CitQQVNTIGds
LmdldFJlbmRlcmJ1ZmZlclBhcmFtZXRlcihnbC5SRU5ERVJCVUZGRVIsIGdsLlJFTkRFUkJVRkZF
Ul9JTlRFUk5BTF9GT1JNQVQpIGlzIGdsLkRFUFRIX1NURU5DSUwKK1BBU1MgZ2wuZ2V0UmVuZGVy
YnVmZmVyUGFyYW1ldGVyKGdsLlJFTkRFUkJVRkZFUiwgZ2wuUkVOREVSQlVGRkVSX1JFRF9TSVpF
KSBpcyAwCitQQVNTIGdsLmdldFJlbmRlcmJ1ZmZlclBhcmFtZXRlcihnbC5SRU5ERVJCVUZGRVIs
IGdsLlJFTkRFUkJVRkZFUl9HUkVFTl9TSVpFKSBpcyAwCitQQVNTIGdsLmdldFJlbmRlcmJ1ZmZl
clBhcmFtZXRlcihnbC5SRU5ERVJCVUZGRVIsIGdsLlJFTkRFUkJVRkZFUl9CTFVFX1NJWkUpIGlz
IDAKK1BBU1MgZ2wuZ2V0UmVuZGVyYnVmZmVyUGFyYW1ldGVyKGdsLlJFTkRFUkJVRkZFUiwgZ2wu
UkVOREVSQlVGRkVSX0FMUEhBX1NJWkUpIGlzIDAKK1BBU1MgZ2wuZ2V0UmVuZGVyYnVmZmVyUGFy
YW1ldGVyKGdsLlJFTkRFUkJVRkZFUiwgZ2wuUkVOREVSQlVGRkVSX0RFUFRIX1NJWkUpID4gMCBp
cyB0cnVlCitQQVNTIGdsLmdldFJlbmRlcmJ1ZmZlclBhcmFtZXRlcihnbC5SRU5ERVJCVUZGRVIs
IGdsLlJFTkRFUkJVRkZFUl9TVEVOQ0lMX1NJWkUpID4gMCBpcyB0cnVlCitQQVNTIGdldEVycm9y
IHdhcyBleHBlY3RlZCB2YWx1ZTogTk9fRVJST1IgOiAKK1BBU1MgZmJvID0gZ2wuY3JlYXRlRnJh
bWVidWZmZXIoKSBpcyBub24tbnVsbC4KK1BBU1MgZ2V0RXJyb3Igd2FzIGV4cGVjdGVkIHZhbHVl
OiBOT19FUlJPUiA6IAogUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQogCiBURVNUIENP
TVBMRVRFCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2NhbnZhcy93ZWJnbC9mcmFtZWJ1ZmZlci1v
YmplY3QtYXR0YWNobWVudC5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvY2Fu
dmFzL3dlYmdsL2ZyYW1lYnVmZmVyLW9iamVjdC1hdHRhY2htZW50Lmh0bWwJKHJldmlzaW9uIDcx
MzM4KQorKysgTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvd2ViZ2wvZnJhbWVidWZmZXItb2JqZWN0
LWF0dGFjaG1lbnQuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMjUsMTMgKzI1LDEzIEBAIGZ1bmN0
aW9uIHRlc3RBdHRhY2htZW50KGF0dGFjaG1lbnQsIGJ1ZmYKICAgICBnbC5iaW5kRnJhbWVidWZm
ZXIoZ2wuRlJBTUVCVUZGRVIsIGZibyk7CiAgICAgZ2wuZnJhbWVidWZmZXJSZW5kZXJidWZmZXIo
Z2wuRlJBTUVCVUZGRVIsIGdsLkNPTE9SX0FUVEFDSE1FTlQwLCBnbC5SRU5ERVJCVUZGRVIsIGNv
bG9yQnVmZmVyKTsKICAgICBnbC5mcmFtZWJ1ZmZlclJlbmRlcmJ1ZmZlcihnbC5GUkFNRUJVRkZF
UiwgYXR0YWNobWVudCwgZ2wuUkVOREVSQlVGRkVSLCBidWZmZXIpOwotICAgIHNob3VsZEJlKCJn
bC5nZXRFcnJvcigpIiwgImdsLk5PX0VSUk9SIik7CisgICAgZ2xFcnJvclNob3VsZEJlKGdsLCBn
bC5OT19FUlJPUik7CiAgICAgaWYgKGlzQ29uZmxpY3RlZCkgewogICAgICAgICBzaG91bGRCZSgi
Z2wuY2hlY2tGcmFtZWJ1ZmZlclN0YXR1cyhnbC5GUkFNRUJVRkZFUikiLCAiZ2wuRlJBTUVCVUZG
RVJfVU5TVVBQT1JURUQiKTsKICAgICAgICAgZ2wuY2xlYXIoZ2wuQ09MT1JfQlVGRkVSX0JJVCk7
Ci0gICAgICAgIHNob3VsZEJlKCJnbC5nZXRFcnJvcigpIiwgImdsLklOVkFMSURfRlJBTUVCVUZG
RVJfT1BFUkFUSU9OIik7CisgICAgICAgIGdsRXJyb3JTaG91bGRCZShnbCwgZ2wuSU5WQUxJRF9G
UkFNRUJVRkZFUl9PUEVSQVRJT04pOwogICAgICAgICBnbC5yZWFkUGl4ZWxzKDAsIDAsIHdpZHRo
LCBoZWlnaHQsIGdsLlJHQkEsIGdsLlVOU0lHTkVEX0JZVEUsIG5ldyBVaW50OEFycmF5KHdpZHRo
ICogaGVpZ2h0ICogNCkpOwotICAgICAgICBzaG91bGRCZSgiZ2wuZ2V0RXJyb3IoKSIsICJnbC5J
TlZBTElEX0ZSQU1FQlVGRkVSX09QRVJBVElPTiIpOworICAgICAgICBnbEVycm9yU2hvdWxkQmUo
Z2wsIGdsLklOVkFMSURfRlJBTUVCVUZGRVJfT1BFUkFUSU9OKTsKICAgICB9CiB9CiAKQEAgLTQx
LDkgKzQxLDkgQEAgZnVuY3Rpb24gdGVzdEF0dGFjaG1lbnRzKGF0dGFjaG1lbnQwLCBidQogICAg
IGdsLmJpbmRGcmFtZWJ1ZmZlcihnbC5GUkFNRUJVRkZFUiwgZmJvKTsKICAgICBnbC5mcmFtZWJ1
ZmZlclJlbmRlcmJ1ZmZlcihnbC5GUkFNRUJVRkZFUiwgZ2wuQ09MT1JfQVRUQUNITUVOVDAsIGds
LlJFTkRFUkJVRkZFUiwgY29sb3JCdWZmZXIpOwogICAgIGdsLmZyYW1lYnVmZmVyUmVuZGVyYnVm
ZmVyKGdsLkZSQU1FQlVGRkVSLCBhdHRhY2htZW50MCwgZ2wuUkVOREVSQlVGRkVSLCBidWZmZXIw
KTsKLSAgICBzaG91bGRCZSgiZ2wuZ2V0RXJyb3IoKSIsICJnbC5OT19FUlJPUiIpOworICAgIGds
RXJyb3JTaG91bGRCZShnbCwgZ2wuTk9fRVJST1IpOwogICAgIGdsLmZyYW1lYnVmZmVyUmVuZGVy
YnVmZmVyKGdsLkZSQU1FQlVGRkVSLCBhdHRhY2htZW50MSwgZ2wuUkVOREVSQlVGRkVSLCBidWZm
ZXIxKTsKLSAgICBzaG91bGRCZSgiZ2wuZ2V0RXJyb3IoKSIsICJnbC5OT19FUlJPUiIpOworICAg
IGdsRXJyb3JTaG91bGRCZShnbCwgZ2wuTk9fRVJST1IpOwogICAgIGlmIChpc0NvbmZsaWN0ZWQp
CiAgICAgICAgIHNob3VsZEJlKCJnbC5jaGVja0ZyYW1lYnVmZmVyU3RhdHVzKGdsLkZSQU1FQlVG
RkVSKSIsICJnbC5GUkFNRUJVRkZFUl9VTlNVUFBPUlRFRCIpOwogfQpAQCAtNTMsMTAgKzUzLDI5
IEBAIGZ1bmN0aW9uIHRlc3RDb2xvclJlbmRlcmJ1ZmZlcihpbnRlcm5hbGYKICAgICBzaG91bGRC
ZU5vbk51bGwoImNvbG9yQnVmZmVyID0gZ2wuY3JlYXRlUmVuZGVyYnVmZmVyKCkiKTsKICAgICBn
bC5iaW5kUmVuZGVyYnVmZmVyKGdsLlJFTkRFUkJVRkZFUiwgY29sb3JCdWZmZXIpOwogICAgIGds
LnJlbmRlcmJ1ZmZlclN0b3JhZ2UoZ2wuUkVOREVSQlVGRkVSLCBpbnRlcm5hbGZvcm1hdCwgd2lk
dGgsIGhlaWdodCk7Ci0gICAgc2hvdWxkQmUoImdsLmdldEVycm9yKCkiLCAiZ2wuTk9fRVJST1Ii
KTsKKyAgICBnbEVycm9yU2hvdWxkQmUoZ2wsIGdsLk5PX0VSUk9SKTsKICAgICB0ZXN0QXR0YWNo
bWVudChnbC5DT0xPUl9BVFRBQ0hNRU5UMCwgY29sb3JCdWZmZXIsIGZhbHNlKTsKIH0KIAorZnVu
Y3Rpb24gdGVzdERlcHRoU3RlbmNpbFJlbmRlcmJ1ZmZlcigpCit7CisgICAgc2hvdWxkQmVOb25O
dWxsKCJkZXB0aFN0ZW5jaWxCdWZmZXIgPSBnbC5jcmVhdGVSZW5kZXJidWZmZXIoKSIpOworICAg
IGdsLmJpbmRSZW5kZXJidWZmZXIoZ2wuUkVOREVSQlVGRkVSLCBkZXB0aFN0ZW5jaWxCdWZmZXIp
OworICAgIGdsLnJlbmRlcmJ1ZmZlclN0b3JhZ2UoZ2wuUkVOREVSQlVGRkVSLCBnbC5ERVBUSF9T
VEVOQ0lMLCB3aWR0aCwgaGVpZ2h0KTsKKyAgICBnbEVycm9yU2hvdWxkQmUoZ2wsIGdsLk5PX0VS
Uk9SKTsKKyAgICBzaG91bGRCZSgiZ2wuZ2V0UmVuZGVyYnVmZmVyUGFyYW1ldGVyKGdsLlJFTkRF
UkJVRkZFUiwgZ2wuUkVOREVSQlVGRkVSX1dJRFRIKSIsICJ3aWR0aCIpOworICAgIHNob3VsZEJl
KCJnbC5nZXRSZW5kZXJidWZmZXJQYXJhbWV0ZXIoZ2wuUkVOREVSQlVGRkVSLCBnbC5SRU5ERVJC
VUZGRVJfSEVJR0hUKSIsICJoZWlnaHQiKTsKKyAgICBzaG91bGRCZSgiZ2wuZ2V0UmVuZGVyYnVm
ZmVyUGFyYW1ldGVyKGdsLlJFTkRFUkJVRkZFUiwgZ2wuUkVOREVSQlVGRkVSX0lOVEVSTkFMX0ZP
Uk1BVCkiLCAiZ2wuREVQVEhfU1RFTkNJTCIpOworICAgIHNob3VsZEJlKCJnbC5nZXRSZW5kZXJi
dWZmZXJQYXJhbWV0ZXIoZ2wuUkVOREVSQlVGRkVSLCBnbC5SRU5ERVJCVUZGRVJfUkVEX1NJWkUp
IiwgIjAiKTsKKyAgICBzaG91bGRCZSgiZ2wuZ2V0UmVuZGVyYnVmZmVyUGFyYW1ldGVyKGdsLlJF
TkRFUkJVRkZFUiwgZ2wuUkVOREVSQlVGRkVSX0dSRUVOX1NJWkUpIiwgIjAiKTsKKyAgICBzaG91
bGRCZSgiZ2wuZ2V0UmVuZGVyYnVmZmVyUGFyYW1ldGVyKGdsLlJFTkRFUkJVRkZFUiwgZ2wuUkVO
REVSQlVGRkVSX0JMVUVfU0laRSkiLCAiMCIpOworICAgIHNob3VsZEJlKCJnbC5nZXRSZW5kZXJi
dWZmZXJQYXJhbWV0ZXIoZ2wuUkVOREVSQlVGRkVSLCBnbC5SRU5ERVJCVUZGRVJfQUxQSEFfU0la
RSkiLCAiMCIpOworICAgIHNob3VsZEJlVHJ1ZSgiZ2wuZ2V0UmVuZGVyYnVmZmVyUGFyYW1ldGVy
KGdsLlJFTkRFUkJVRkZFUiwgZ2wuUkVOREVSQlVGRkVSX0RFUFRIX1NJWkUpID4gMCIpOworICAg
IHNob3VsZEJlVHJ1ZSgiZ2wuZ2V0UmVuZGVyYnVmZmVyUGFyYW1ldGVyKGdsLlJFTkRFUkJVRkZF
UiwgZ2wuUkVOREVSQlVGRkVSX1NURU5DSUxfU0laRSkgPiAwIik7CisgICAgZ2xFcnJvclNob3Vs
ZEJlKGdsLCBnbC5OT19FUlJPUik7CisgICAgdGVzdEF0dGFjaG1lbnQoZ2wuREVQVEhfU1RFTkNJ
TF9BVFRBQ0hNRU5ULCBkZXB0aFN0ZW5jaWxCdWZmZXIsIGZhbHNlKTsKK30KKwogZGVzY3JpcHRp
b24oIlRlc3QgZnJhbWVidWZmZXIgb2JqZWN0IGF0dGFjaG1lbnQgYmVoYXZpb3JzIik7CiAKIGRl
YnVnKCJDcmVhdGUgcmVuZGVyYnVmZmVycyIpOwpAQCAtNjQsMTkgKzgzLDE5IEBAIHNob3VsZEJl
Tm9uTnVsbCgiZ2wgPSBjcmVhdGUzRENvbnRleHQoKSIKIHNob3VsZEJlTm9uTnVsbCgiY29sb3JC
dWZmZXIgPSBnbC5jcmVhdGVSZW5kZXJidWZmZXIoKSIpOwogZ2wuYmluZFJlbmRlcmJ1ZmZlcihn
bC5SRU5ERVJCVUZGRVIsIGNvbG9yQnVmZmVyKTsKIGdsLnJlbmRlcmJ1ZmZlclN0b3JhZ2UoZ2wu
UkVOREVSQlVGRkVSLCBnbC5SR0JBNCwgd2lkdGgsIGhlaWdodCk7Ci1zaG91bGRCZSgiZ2wuZ2V0
RXJyb3IoKSIsICJnbC5OT19FUlJPUiIpOworZ2xFcnJvclNob3VsZEJlKGdsLCBnbC5OT19FUlJP
Uik7CiBzaG91bGRCZU5vbk51bGwoImRlcHRoQnVmZmVyID0gZ2wuY3JlYXRlUmVuZGVyYnVmZmVy
KCkiKTsKIGdsLmJpbmRSZW5kZXJidWZmZXIoZ2wuUkVOREVSQlVGRkVSLCBkZXB0aEJ1ZmZlcik7
CiBnbC5yZW5kZXJidWZmZXJTdG9yYWdlKGdsLlJFTkRFUkJVRkZFUiwgZ2wuREVQVEhfQ09NUE9O
RU5UMTYsIHdpZHRoLCBoZWlnaHQpOwotc2hvdWxkQmUoImdsLmdldEVycm9yKCkiLCAiZ2wuTk9f
RVJST1IiKTsKK2dsRXJyb3JTaG91bGRCZShnbCwgZ2wuTk9fRVJST1IpOwogc2hvdWxkQmVOb25O
dWxsKCJzdGVuY2lsQnVmZmVyID0gZ2wuY3JlYXRlUmVuZGVyYnVmZmVyKCkiKTsKIGdsLmJpbmRS
ZW5kZXJidWZmZXIoZ2wuUkVOREVSQlVGRkVSLCBzdGVuY2lsQnVmZmVyKTsKIGdsLnJlbmRlcmJ1
ZmZlclN0b3JhZ2UoZ2wuUkVOREVSQlVGRkVSLCBnbC5TVEVOQ0lMX0lOREVYOCwgd2lkdGgsIGhl
aWdodCk7Ci1zaG91bGRCZSgiZ2wuZ2V0RXJyb3IoKSIsICJnbC5OT19FUlJPUiIpOworZ2xFcnJv
clNob3VsZEJlKGdsLCBnbC5OT19FUlJPUik7CiBzaG91bGRCZU5vbk51bGwoImRlcHRoU3RlbmNp
bEJ1ZmZlciA9IGdsLmNyZWF0ZVJlbmRlcmJ1ZmZlcigpIik7CiBnbC5iaW5kUmVuZGVyYnVmZmVy
KGdsLlJFTkRFUkJVRkZFUiwgZGVwdGhTdGVuY2lsQnVmZmVyKTsKIGdsLnJlbmRlcmJ1ZmZlclN0
b3JhZ2UoZ2wuUkVOREVSQlVGRkVSLCBnbC5ERVBUSF9TVEVOQ0lMLCB3aWR0aCwgaGVpZ2h0KTsK
LXNob3VsZEJlKCJnbC5nZXRFcnJvcigpIiwgImdsLk5PX0VSUk9SIik7CitnbEVycm9yU2hvdWxk
QmUoZ2wsIGdsLk5PX0VSUk9SKTsKIAogZGVidWcoIkF0dGFjaCBkZXB0aCB1c2luZyBERVBUSF9B
VFRBQ0hNRU5UIik7CiB0ZXN0QXR0YWNobWVudChnbC5ERVBUSF9BVFRBQ0hNRU5ULCBkZXB0aEJ1
ZmZlciwgZmFsc2UpOwpAQCAtMTE5LDYgKzEzOCw5IEBAIHRlc3RDb2xvclJlbmRlcmJ1ZmZlcihn
bC5SR0I1X0ExKTsKIGRlYnVnKCJBdHRhY2ggY29sb3IgcmVuZGVyYnVmZmVyIHdpdGggaW50ZXJu
YWxmb3JtYXQgPT0gUkdCNTY1Iik7CiB0ZXN0Q29sb3JSZW5kZXJidWZmZXIoZ2wuUkdCNTY1KTsK
IAorZGVidWcoIkNyZWF0ZSBhbmQgYXR0YWNoIGRlcHRoU3RlbmNpbCByZW5kZXJidWZmZXIiKTsK
K3Rlc3REZXB0aFN0ZW5jaWxSZW5kZXJidWZmZXIoKTsKKwogc3VjY2Vzc2Z1bGx5UGFyc2VkID0g
dHJ1ZTsKIDwvc2NyaXB0PgogCg==
</data>
<flag name="review"
          id="63298"
          type_id="1"
          status="+"
          setter="kbr"
    />
    <flag name="commit-queue"
          id="63299"
          type_id="3"
          status="-"
          setter="zmo"
    />
          </attachment>
      

    </bug>

</bugzilla>