<?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>46541</bug_id>
          
          <creation_ts>2010-09-24 17:22:50 -0700</creation_ts>
          <short_desc>Implement DataView interface from Typed Array specification</short_desc>
          <delta_ts>2010-11-24 19:35:31 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebGL</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Kenneth Russell">kbr</reporter>
          <assigned_to name="Jian Li">jianli</assigned_to>
          <cc>cmarrin</cc>
    
    <cc>crogers</cc>
    
    <cc>enne</cc>
    
    <cc>eric</cc>
    
    <cc>jianli</cc>
    
    <cc>zmo</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>284865</commentid>
    <comment_count>0</comment_count>
    <who name="Kenneth Russell">kbr</who>
    <bug_when>2010-09-24 17:22:50 -0700</bug_when>
    <thetext>Filing this under component WebGL since there is no better component at the moment for Typed Arrays.

The proposed DataView interface in the Typed Array specification ( https://cvs.khronos.org/svn/repos/registry/trunk/public/webgl/doc/spec/TypedArray-spec.html#6 ) needs to be implemented in WebKit. This will make it easier to read multi-byte values with specified endianness out of an ArrayBuffer.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>311240</commentid>
    <comment_count>1</comment_count>
      <attachid>74339</attachid>
    <who name="Jian Li">jianli</who>
    <bug_when>2010-11-18 19:15:04 -0800</bug_when>
    <thetext>Created attachment 74339
Proposed Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>311269</commentid>
    <comment_count>2</comment_count>
      <attachid>74349</attachid>
    <who name="Jian Li">jianli</who>
    <bug_when>2010-11-18 20:42:16 -0800</bug_when>
    <thetext>Created attachment 74349
Proposed Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>312512</commentid>
    <comment_count>3</comment_count>
      <attachid>74349</attachid>
    <who name="Kenneth Russell">kbr</who>
    <bug_when>2010-11-22 14:11:38 -0800</bug_when>
    <thetext>Comment on attachment 74349
Proposed Patch

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

This mostly looks good but there are a few issues. Sorry about the license header complaint, but it&apos;s been made clear that new files need to conform to the correct version of the BSD license.

&gt; LayoutTests/fast/canvas/webgl/data-view-test.html:55
&gt; +function runTests(isTestingGet, array, start, length) {

Please add test cases for more unaligned values, in particular int16/uint16/int32/uint32/float32 with odd offsets.

&gt; LayoutTests/fast/canvas/webgl/data-view-test.html:126
&gt; +    // Little endian.
&gt; +    test(isTestingGet, &quot;Float32&quot;, 4, 0, &quot;3.820471434542632e-37&quot;, true);
&gt; +    test(isTestingGet, &quot;Float32&quot;, 4, 8, &quot;-7.670445022226018e-37&quot;, true);
&gt; +    test(isTestingGet, &quot;Float32&quot;, 4, 10, &quot;-4.1956035317439417e+37&quot;, true);
&gt; +
&gt; +    // Big endian.
&gt; +    test(isTestingGet, &quot;Float32&quot;, 4, 0, &quot;9.25571648671185e-41&quot;);
&gt; +    test(isTestingGet, &quot;Float32&quot;, 4, 8, &quot;-1.1893597787372423e-38&quot;);
&gt; +    test(isTestingGet, &quot;Float32&quot;, 4, 10, &quot;-1.9393928146782153e-37&quot;);
&gt; +
&gt; +    // Little endian.
&gt; +    test(isTestingGet, &quot;Float64&quot;, 8, 0, &quot;1.2473227726741413e+190&quot;, true);
&gt; +    test(isTestingGet, &quot;Float64&quot;, 8, 4, &quot;-9.2722175465198070e-292&quot;, true);
&gt; +    test(isTestingGet, &quot;Float64&quot;, 8, 7, &quot;-5.1409065709798940e+303&quot;, true);
&gt; +
&gt; +    // Big endian.
&gt; +    test(isTestingGet, &quot;Float64&quot;, 8, 0, &quot;1.4016077617689270e-309&quot;);
&gt; +    test(isTestingGet, &quot;Float64&quot;, 8, 4, &quot;4.2342998002728550e+175&quot;);
&gt; +    test(isTestingGet, &quot;Float64&quot;, 8, 7, &quot;3.6771083188053240e+190&quot;);

You might want to consider using test values that are exactly representable with floating-point numbers (e.g., both small whole numbers and small fractional values).

&gt; WebCore/bindings/js/JSDataViewCustom.cpp:28
&gt; + * Copyright (C) 2010 Google Inc. All rights reserved.
&gt; + *
&gt; + * Redistribution and use in source and binary forms, with or without
&gt; + * modification, are permitted provided that the following conditions are
&gt; + * met:
&gt; + *
&gt; + *     * Redistributions of source code must retain the above copyright
&gt; + * notice, this list of conditions and the following disclaimer.
&gt; + *     * Redistributions in binary form must reproduce the above
&gt; + * copyright notice, this list of conditions and the following disclaimer
&gt; + * in the documentation and/or other materials provided with the
&gt; + * distribution.
&gt; + *     * Neither the name of Google Inc. nor the names of its
&gt; + * contributors may be used to endorse or promote products derived from
&gt; + * this software without specific prior written permission.
&gt; + *
&gt; + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
&gt; + * &quot;AS IS&quot; AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
&gt; + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
&gt; + * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
&gt; + * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
&gt; + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
&gt; + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
&gt; + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
&gt; + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
&gt; + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
&gt; + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

Wrong license header. See e.g. WebKit/chromium/tests/PODIntervalTreeTest.cpp.

&gt; WebCore/bindings/js/JSDataViewCustom.cpp:53
&gt; +        throwTypeError(exec);
&gt; +        return JSValue::encode(JSValue());

return throwVMTypeError(exec);

&gt; WebCore/bindings/js/JSDataViewCustom.cpp:59
&gt; +        throwTypeError(exec);
&gt; +        return JSValue::encode(JSValue());

Same.

&gt; WebCore/bindings/v8/custom/V8ArrayBufferViewCustom.h:75
&gt; +    args.Holder()-&gt;SetIndexedPropertiesToExternalArrayData(array.get()-&gt;baseAddress(), arrayType, array.get()-&gt;length());

This call to SetIndexedPropertiesToExternalArrayData must only be done for the TypedArray subclasses, and not for DataView. You&apos;ll need to add a boolean argument to this helper indicating whether to make this call. Please add a negative test to your test case that indexing (i.e., &quot;dataView[0]&quot; and &quot;dataView[0] = 0&quot; don&apos;t work. (I think reading should return undefined, and setting should silently add a new property to the object -- not 100% sure.)

&gt; WebCore/bindings/v8/custom/V8DataViewCustom.cpp:28
&gt; + * Copyright (C) 2010 Google Inc. All rights reserved.
&gt; + *
&gt; + * Redistribution and use in source and binary forms, with or without
&gt; + * modification, are permitted provided that the following conditions are
&gt; + * met:
&gt; + *
&gt; + *     * Redistributions of source code must retain the above copyright
&gt; + * notice, this list of conditions and the following disclaimer.
&gt; + *     * Redistributions in binary form must reproduce the above
&gt; + * copyright notice, this list of conditions and the following disclaimer
&gt; + * in the documentation and/or other materials provided with the
&gt; + * distribution.
&gt; + *     * Neither the name of Google Inc. nor the names of its
&gt; + * contributors may be used to endorse or promote products derived from
&gt; + * this software without specific prior written permission.
&gt; + *
&gt; + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
&gt; + * &quot;AS IS&quot; AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
&gt; + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
&gt; + * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
&gt; + * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
&gt; + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
&gt; + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
&gt; + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
&gt; + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
&gt; + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
&gt; + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

Wrong license header. See e.g. WebKit/chromium/tests/PODIntervalTreeTest.cpp.

&gt; WebCore/bindings/v8/custom/V8DataViewCustom.cpp:60
&gt; +    if (!wrapper.IsEmpty())
&gt; +        wrapper-&gt;SetIndexedPropertiesToExternalArrayData(impl-&gt;baseAddress(), v8::kExternalByteArray, impl-&gt;length());

This call must not be done for DataView instances. It would transform them into array-like objects.

&gt; WebCore/html/canvas/DataView.cpp:28
&gt; + * Copyright (C) 2010 Google Inc.  All rights reserved.
&gt; + *
&gt; + * Redistribution and use in source and binary forms, with or without
&gt; + * modification, are permitted provided that the following conditions are
&gt; + * met:
&gt; + *
&gt; + *     * Redistributions of source code must retain the above copyright
&gt; + * notice, this list of conditions and the following disclaimer.
&gt; + *     * Redistributions in binary form must reproduce the above
&gt; + * copyright notice, this list of conditions and the following disclaimer
&gt; + * in the documentation and/or other materials provided with the
&gt; + * distribution.
&gt; + *     * Neither the name of Google Inc. nor the names of its
&gt; + * contributors may be used to endorse or promote products derived from
&gt; + * this software without specific prior written permission.
&gt; + *
&gt; + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
&gt; + * &quot;AS IS&quot; AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
&gt; + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
&gt; + * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
&gt; + * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
&gt; + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
&gt; + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
&gt; + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
&gt; + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
&gt; + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
&gt; + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

Wrong license header. See e.g. WebKit/chromium/tests/PODIntervalTreeTest.cpp.

&gt; WebCore/html/canvas/DataView.cpp:63
&gt; +static void flipBytesToMeetEndianRequirement(void* value, size_t typeSize, bool littleEndian)
&gt; +{
&gt; +#if CPU(BIG_ENDIAN)
&gt; +    bool flipBytes = littleEndian;
&gt; +#else
&gt; +    bool flipBytes = !littleEndian;
&gt; +#endif
&gt; +
&gt; +    if (!flipBytes) 
&gt; +        return;
&gt; +
&gt; +    char* begin = static_cast&lt;char*&gt;(value);
&gt; +    char* end = static_cast&lt;char*&gt;(value) + typeSize - 1;
&gt; +    for (size_t i = 0; i &lt; typeSize / 2; ++i, ++begin, --end) {
&gt; +        char temp = *begin;
&gt; +        *begin = *end;
&gt; +        *end = temp;
&gt; +    }
&gt; +}

This could be specialized for the sizes we will need to swap (2, 4, and 8 byte values) to be much more efficient. You could use a switch statement in getData and setData to determine which specialized version to call. Even though all of these code paths are not optimal and will require intrinsics in the JavaScript engine to be truly efficient, it&apos;s worth it to not make these slower than needed.

&gt; WebCore/html/canvas/DataView.cpp:72
&gt; +    T value = *(static_cast&lt;const T*&gt;(static_cast&lt;const void*&gt;(static_cast&lt;const char*&gt;(m_baseAddress) + byteOffset)));

This will cause a bus error on architectures that don&apos;t support unaligned loads. I think the best solution is to use a template union. See http://www.devx.com/cplus/Article/35609/1954 . memcpy from the DataView into the &quot;char bytes[]&quot; arm of the union, byte swap there, and then return the typed arm of the union.

&gt; WebCore/html/canvas/DataView.cpp:87
&gt; +    *(static_cast&lt;T*&gt;(static_cast&lt;void*&gt;(static_cast&lt;char*&gt;(m_baseAddress) + byteOffset))) = value;

This will similarly cause a bus error on architectures that don&apos;t support unaligned stores. Use the above template union trick to convert the value to bytes and then memcpy it into place.

&gt; WebCore/html/canvas/DataView.h:28
&gt; + * Copyright (C) 2010 Google Inc.  All rights reserved.
&gt; + *
&gt; + * Redistribution and use in source and binary forms, with or without
&gt; + * modification, are permitted provided that the following conditions are
&gt; + * met:
&gt; + *
&gt; + *     * Redistributions of source code must retain the above copyright
&gt; + * notice, this list of conditions and the following disclaimer.
&gt; + *     * Redistributions in binary form must reproduce the above
&gt; + * copyright notice, this list of conditions and the following disclaimer
&gt; + * in the documentation and/or other materials provided with the
&gt; + * distribution.
&gt; + *     * Neither the name of Google Inc. nor the names of its
&gt; + * contributors may be used to endorse or promote products derived from
&gt; + * this software without specific prior written permission.
&gt; + *
&gt; + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
&gt; + * &quot;AS IS&quot; AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
&gt; + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
&gt; + * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
&gt; + * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
&gt; + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
&gt; + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
&gt; + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
&gt; + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
&gt; + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
&gt; + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

Wrong license header. See e.g. WebKit/chromium/tests/PODIntervalTreeTest.cpp.

&gt; WebCore/html/canvas/DataView.idl:28
&gt; + * Copyright (C) 2010 Google Inc.  All rights reserved.
&gt; + *
&gt; + * Redistribution and use in source and binary forms, with or without
&gt; + * modification, are permitted provided that the following conditions are
&gt; + * met:
&gt; + *
&gt; + *     * Redistributions of source code must retain the above copyright
&gt; + * notice, this list of conditions and the following disclaimer.
&gt; + *     * Redistributions in binary form must reproduce the above
&gt; + * copyright notice, this list of conditions and the following disclaimer
&gt; + * in the documentation and/or other materials provided with the
&gt; + * distribution.
&gt; + *     * Neither the name of Google Inc. nor the names of its
&gt; + * contributors may be used to endorse or promote products derived from
&gt; + * this software without specific prior written permission.
&gt; + *
&gt; + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
&gt; + * &quot;AS IS&quot; AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
&gt; + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
&gt; + * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
&gt; + * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
&gt; + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
&gt; + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
&gt; + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
&gt; + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
&gt; + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
&gt; + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

Wrong license header. See e.g. WebKit/chromium/tests/PODIntervalTreeTest.cpp.

&gt; WebCore/html/canvas/DataView.idl:62
&gt; +        [StrictTypeChecking, RequiresAllArguments=Raise] float getFloat32(in unsigned long byteOffset, in [Optional] boolean littleEndian)
&gt; +            raises (DOMException);
&gt; +        [StrictTypeChecking, RequiresAllArguments=Raise] double getFloat64(in unsigned long byteOffset, in [Optional] boolean littleEndian)
&gt; +            raises (DOMException);

I&apos;m afraid that getFloat32 and getFloat64 require custom JSC bindings that check to see whether the return value is NaN (using isnan(), #include &lt;wtf/MathExtras.h&gt;) and if so return jsValue(nonInlineNaN()) (JavaScriptCore/runtime/JSValue.h). Actually, Float32Array currently has the same problem, so if you want to file a follow-up bug to fix it both here and in Float32Array at the same time that&apos;s OK, but I&apos;d prefer it if you could fix it here before the initial commit.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>312714</commentid>
    <comment_count>4</comment_count>
    <who name="Jian Li">jianli</who>
    <bug_when>2010-11-22 23:58:27 -0800</bug_when>
    <thetext>(In reply to comment #3)
&gt; &gt; WebCore/html/canvas/DataView.idl:62
&gt; &gt; +        [StrictTypeChecking, RequiresAllArguments=Raise] float getFloat32(in unsigned long byteOffset, in [Optional] boolean littleEndian)
&gt; &gt; +            raises (DOMException);
&gt; &gt; +        [StrictTypeChecking, RequiresAllArguments=Raise] double getFloat64(in unsigned long byteOffset, in [Optional] boolean littleEndian)
&gt; &gt; +            raises (DOMException);
&gt; 
&gt; I&apos;m afraid that getFloat32 and getFloat64 require custom JSC bindings that check to see whether the return value is NaN (using isnan(), #include &lt;wtf/MathExtras.h&gt;) and if so return jsValue(nonInlineNaN()) (JavaScriptCore/runtime/JSValue.h). Actually, Float32Array currently has the same problem, so if you want to file a follow-up bug to fix it both here and in Float32Array at the same time that&apos;s OK, but I&apos;d prefer it if you could fix it here before the initial commit.

Why do we need to check for NaN specifically? It seems that it has been taken care of (I checked JSC bindings, will check V8 bindings).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>312907</commentid>
    <comment_count>5</comment_count>
    <who name="Kenneth Russell">kbr</who>
    <bug_when>2010-11-23 10:09:35 -0800</bug_when>
    <thetext>(In reply to comment #4)
&gt; (In reply to comment #3)
&gt; &gt; &gt; WebCore/html/canvas/DataView.idl:62
&gt; &gt; &gt; +        [StrictTypeChecking, RequiresAllArguments=Raise] float getFloat32(in unsigned long byteOffset, in [Optional] boolean littleEndian)
&gt; &gt; &gt; +            raises (DOMException);
&gt; &gt; &gt; +        [StrictTypeChecking, RequiresAllArguments=Raise] double getFloat64(in unsigned long byteOffset, in [Optional] boolean littleEndian)
&gt; &gt; &gt; +            raises (DOMException);
&gt; &gt; 
&gt; &gt; I&apos;m afraid that getFloat32 and getFloat64 require custom JSC bindings that check to see whether the return value is NaN (using isnan(), #include &lt;wtf/MathExtras.h&gt;) and if so return jsValue(nonInlineNaN()) (JavaScriptCore/runtime/JSValue.h). Actually, Float32Array currently has the same problem, so if you want to file a follow-up bug to fix it both here and in Float32Array at the same time that&apos;s OK, but I&apos;d prefer it if you could fix it here before the initial commit.
&gt; 
&gt; Why do we need to check for NaN specifically? It seems that it has been taken care of (I checked JSC bindings, will check V8 bindings).

JSC encodes integer and pointer values in quiet NaNs. See JavaScriptCore/runtime/JSImmediate.h. We need to take care not to allow those bit patterns to flow back into the engine. I didn&apos;t see any tests during the construction of JSValue that canonicalize NaNs, so I think we need to do it using JSC custom bindings. V8 doesn&apos;t do this trick, so those bindings are OK (I think).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>313112</commentid>
    <comment_count>6</comment_count>
      <attachid>74719</attachid>
    <who name="Jian Li">jianli</who>
    <bug_when>2010-11-23 19:30:44 -0800</bug_when>
    <thetext>Created attachment 74719
Proposed Patch

All fixed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>313116</commentid>
    <comment_count>7</comment_count>
      <attachid>74720</attachid>
    <who name="Jian Li">jianli</who>
    <bug_when>2010-11-23 20:33:19 -0800</bug_when>
    <thetext>Created attachment 74720
Proposed Patch

New patch to make the bot happy.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>313429</commentid>
    <comment_count>8</comment_count>
      <attachid>74720</attachid>
    <who name="Kenneth Russell">kbr</who>
    <bug_when>2010-11-24 12:59:05 -0800</bug_when>
    <thetext>Comment on attachment 74720
Proposed Patch

There&apos;s still a style error somewhere in this patch. Can you fix it?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>313481</commentid>
    <comment_count>9</comment_count>
      <attachid>74797</attachid>
    <who name="Jian Li">jianli</who>
    <bug_when>2010-11-24 14:55:15 -0800</bug_when>
    <thetext>Created attachment 74797
Proposed Patch

Fix style error.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>313508</commentid>
    <comment_count>10</comment_count>
      <attachid>74797</attachid>
    <who name="Kenneth Russell">kbr</who>
    <bug_when>2010-11-24 15:57:48 -0800</bug_when>
    <thetext>Comment on attachment 74797
Proposed Patch

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

This looks excellent. I apologize but there are a couple of issues in the custom bindings which I didn&apos;t notice the first time. Let me know if you&apos;d prefer to fix them upon landing the patch, but for now marking r-.

&gt; WebCore/bindings/js/JSDataViewCustom.cpp:151
&gt; +        if (value &lt; -128 || value &gt; 127)
&gt; +            return throwError(exec, createSyntaxError(exec, &quot;The value to set to is out of range&quot;));
&gt; +        imp-&gt;setInt8(byteOffset, static_cast&lt;unsigned char&gt;(value), ec);

unsigned char -&gt; char.

I don&apos;t think we should be raising exceptions for out-of-range values. Web IDL and ECMA-262 specify the conversions from e.g. double to octet, and they don&apos;t involve throwing exceptions.

&gt; WebCore/bindings/js/JSDataViewCustom.cpp:155
&gt; +        if (value &lt; 0 || value &gt; 255)
&gt; +            return throwError(exec, createSyntaxError(exec, &quot;The value to set to is out of range&quot;));

Here as well.

&gt; WebCore/bindings/v8/custom/V8DataViewCustom.cpp:64
&gt; +    if (!isUndefinedOrNull(args[0]) &amp;&amp; !args[0]-&gt;IsNumber() &amp;&amp; !args[0]-&gt;IsBoolean()) {
&gt; +        V8Proxy::throwTypeError();
&gt; +        return notHandledByInterceptor();
&gt; +    }

The behavior of the StrictTypeChecking extended attribute in WebKit IDL was recently changed so that it is more compliant to ECMA-262. See https://bugs.webkit.org/show_bug.cgi?id=49218 . This code which converts to numbers needs to be changed to match the current autogenerated code, which doesn&apos;t throw exceptions.

&gt; WebCore/bindings/v8/custom/V8DataViewCustom.cpp:85
&gt; +    if (!isUndefinedOrNull(args[0]) &amp;&amp; !args[0]-&gt;IsNumber() &amp;&amp; !args[0]-&gt;IsBoolean()) {
&gt; +        V8Proxy::throwTypeError();
&gt; +        return notHandledByInterceptor();
&gt; +    }

Same here.

&gt; WebCore/bindings/v8/custom/V8DataViewCustom.cpp:110
&gt; +    if (!isUndefinedOrNull(args[0]) &amp;&amp; !args[0]-&gt;IsNumber() &amp;&amp; !args[0]-&gt;IsBoolean()) {
&gt; +        V8Proxy::throwTypeError();
&gt; +        return notHandledByInterceptor();
&gt; +    }
&gt; +    if (!isUndefinedOrNull(args[1]) &amp;&amp; !args[1]-&gt;IsNumber() &amp;&amp; !args[1]-&gt;IsBoolean()) {
&gt; +        V8Proxy::throwTypeError();
&gt; +        return notHandledByInterceptor();
&gt; +    }

Shouldn&apos;t throw exceptions for conversions to numbers.

&gt; WebCore/bindings/v8/custom/V8DataViewCustom.cpp:117
&gt; +    if (value &lt; -128 || value &gt; 127)
&gt; +        return throwError(&quot;The value to set to is out of range&quot;, V8Proxy::SyntaxError);

Shouldn&apos;t throw exceptions for out-of-range values.

&gt; WebCore/bindings/v8/custom/V8DataViewCustom.cpp:136
&gt; +    if (!isUndefinedOrNull(args[0]) &amp;&amp; !args[0]-&gt;IsNumber() &amp;&amp; !args[0]-&gt;IsBoolean()) {
&gt; +        V8Proxy::throwTypeError();
&gt; +        return notHandledByInterceptor();
&gt; +    }
&gt; +    if (!isUndefinedOrNull(args[1]) &amp;&amp; !args[1]-&gt;IsNumber() &amp;&amp; !args[1]-&gt;IsBoolean()) {
&gt; +        V8Proxy::throwTypeError();
&gt; +        return notHandledByInterceptor();
&gt; +    }

Shouldn&apos;t throw exceptions for conversions to numbers.

&gt; WebCore/bindings/v8/custom/V8DataViewCustom.cpp:143
&gt; +    if (value &lt; 0 || value &gt; 255)
&gt; +        return throwError(&quot;The value to set to is out of range&quot;, V8Proxy::SyntaxError);

Shouldn&apos;t throw exceptions for out-of-range values.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>313514</commentid>
    <comment_count>11</comment_count>
      <attachid>74805</attachid>
    <who name="Jian Li">jianli</who>
    <bug_when>2010-11-24 16:09:01 -0800</bug_when>
    <thetext>Created attachment 74805
Proposed Patch

All problems in binding codes are fixed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>313519</commentid>
    <comment_count>12</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-11-24 16:32:03 -0800</bug_when>
    <thetext>Attachment 74805 did not build on mac:
Build output: http://queues.webkit.org/results/6324034</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>313521</commentid>
    <comment_count>13</comment_count>
      <attachid>74809</attachid>
    <who name="Jian Li">jianli</who>
    <bug_when>2010-11-24 16:37:05 -0800</bug_when>
    <thetext>Created attachment 74809
Proposed Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>313537</commentid>
    <comment_count>14</comment_count>
      <attachid>74809</attachid>
    <who name="Kenneth Russell">kbr</who>
    <bug_when>2010-11-24 16:55:44 -0800</bug_when>
    <thetext>Comment on attachment 74809
Proposed Patch

Great. Thanks for doing this. r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>313593</commentid>
    <comment_count>15</comment_count>
    <who name="Jian Li">jianli</who>
    <bug_when>2010-11-24 19:35:31 -0800</bug_when>
    <thetext>Committed as http://trac.webkit.org/changeset/72718.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>74339</attachid>
            <date>2010-11-18 19:15:04 -0800</date>
            <delta_ts>2010-11-18 20:42:16 -0800</delta_ts>
            <desc>Proposed Patch</desc>
            <filename>46541</filename>
            <type>text/plain</type>
            <size>81292</size>
            <attacher name="Jian Li">jianli</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCA2NDY4YmY2Li43MjdjOWM5IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMTAtMTEt
MTggIEppYW4gTGkgIDxqaWFubGlAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEltcGxlbWVudCBEYXRhVmlldyBpbnRlcmZhY2Ug
ZnJvbSBUeXBlZCBBcnJheSBzcGVjaWZpY2F0aW9uCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD00NjU0MQorCisgICAgICAgICogZmFzdC9jYW52YXMvd2Vi
Z2wvZGF0YS12aWV3LXRlc3QtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2Nh
bnZhcy93ZWJnbC9kYXRhLXZpZXctdGVzdC5odG1sOiBBZGRlZC4KKwogMjAxMC0xMS0xOCAgRGF2
ZSBIeWF0dCAgPGh5YXR0QGFwcGxlLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBEYW4gQmVy
bnN0ZWluLgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvd2ViZ2wvZGF0YS12
aWV3LXRlc3QtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvd2ViZ2wvZGF0
YS12aWV3LXRlc3QtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAuLjc4ZjU5ZDQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2NhbnZhcy93
ZWJnbC9kYXRhLXZpZXctdGVzdC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwyNzEgQEAKK1Rlc3Qg
RGF0YVZpZXcuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIg
bWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworVGVzdCBnZXR0ZXI6IGJh
c2ljcworUEFTUyB2aWV3LmdldEludDgoMCkgaXMgMAorUEFTUyB2aWV3LmdldEludDgoOCkgaXMg
LTEyOAorUEFTUyB2aWV3LmdldEludDgoMTUpIGlzIC0xCitQQVNTIHZpZXcuZ2V0VWludDgoMCkg
aXMgMAorUEFTUyB2aWV3LmdldFVpbnQ4KDgpIGlzIDEyOAorUEFTUyB2aWV3LmdldFVpbnQ4KDE1
KSBpcyAyNTUKK1BBU1Mgdmlldy5nZXRJbnQxNigwLCB0cnVlKSBpcyAyNTYKK1BBU1Mgdmlldy5n
ZXRJbnQxNig4LCB0cnVlKSBpcyAtMzIzODQKK1BBU1Mgdmlldy5nZXRJbnQxNigxNCwgdHJ1ZSkg
aXMgLTIKK1BBU1Mgdmlldy5nZXRJbnQxNigwKSBpcyAxCitQQVNTIHZpZXcuZ2V0SW50MTYoOCkg
aXMgLTMyNjM5CitQQVNTIHZpZXcuZ2V0SW50MTYoMTQpIGlzIC0yNTcKK1BBU1Mgdmlldy5nZXRV
aW50MTYoMCwgdHJ1ZSkgaXMgMjU2CitQQVNTIHZpZXcuZ2V0VWludDE2KDgsIHRydWUpIGlzIDMz
MTUyCitQQVNTIHZpZXcuZ2V0VWludDE2KDE0LCB0cnVlKSBpcyA2NTUzNAorUEFTUyB2aWV3Lmdl
dFVpbnQxNigwKSBpcyAxCitQQVNTIHZpZXcuZ2V0VWludDE2KDgpIGlzIDMyODk3CitQQVNTIHZp
ZXcuZ2V0VWludDE2KDE0KSBpcyA2NTI3OQorUEFTUyB2aWV3LmdldEludDMyKDAsIHRydWUpIGlz
IDUwNDYyOTc2CitQQVNTIHZpZXcuZ2V0SW50MzIoOCwgdHJ1ZSkgaXMgLTIwODg1OTkxNjgKK1BB
U1Mgdmlldy5nZXRJbnQzMigxMiwgdHJ1ZSkgaXMgLTY2MDUyCitQQVNTIHZpZXcuZ2V0SW50MzIo
MCkgaXMgNjYwNTEKK1BBU1Mgdmlldy5nZXRJbnQzMig4KSBpcyAtMjEzODk5NjA5MworUEFTUyB2
aWV3LmdldEludDMyKDEyKSBpcyAtNTA0NjI5NzcKK1BBU1Mgdmlldy5nZXRVaW50MzIoMCwgdHJ1
ZSkgaXMgNTA0NjI5NzYKK1BBU1Mgdmlldy5nZXRVaW50MzIoOCwgdHJ1ZSkgaXMgMjIwNjM2ODEy
OAorUEFTUyB2aWV3LmdldFVpbnQzMigxMiwgdHJ1ZSkgaXMgNDI5NDkwMTI0NAorUEFTUyB2aWV3
LmdldFVpbnQzMigwKSBpcyA2NjA1MQorUEFTUyB2aWV3LmdldFVpbnQzMig4KSBpcyAyMTU1OTcx
MjAzCitQQVNTIHZpZXcuZ2V0VWludDMyKDEyKSBpcyA0MjQ0NTA0MzE5CitQQVNTIHZpZXcuZ2V0
RmxvYXQzMigwLCB0cnVlKSBpcyAzLjgyMDQ3MTQzNDU0MjYzMmUtMzcKK1BBU1Mgdmlldy5nZXRG
bG9hdDMyKDgsIHRydWUpIGlzIC03LjY3MDQ0NTAyMjIyNjAxOGUtMzcKK1BBU1Mgdmlldy5nZXRG
bG9hdDMyKDEwLCB0cnVlKSBpcyAtNC4xOTU2MDM1MzE3NDM5NDE3ZSszNworUEFTUyB2aWV3Lmdl
dEZsb2F0MzIoMCkgaXMgOS4yNTU3MTY0ODY3MTE4NWUtNDEKK1BBU1Mgdmlldy5nZXRGbG9hdDMy
KDgpIGlzIC0xLjE4OTM1OTc3ODczNzI0MjNlLTM4CitQQVNTIHZpZXcuZ2V0RmxvYXQzMigxMCkg
aXMgLTEuOTM5MzkyODE0Njc4MjE1M2UtMzcKK1BBU1Mgdmlldy5nZXRGbG9hdDY0KDAsIHRydWUp
IGlzIDEuMjQ3MzIyNzcyNjc0MTQxM2UrMTkwCitQQVNTIHZpZXcuZ2V0RmxvYXQ2NCg0LCB0cnVl
KSBpcyAtOS4yNzIyMTc1NDY1MTk4MDcwZS0yOTIKK1BBU1Mgdmlldy5nZXRGbG9hdDY0KDcsIHRy
dWUpIGlzIC01LjE0MDkwNjU3MDk3OTg5NDBlKzMwMworUEFTUyB2aWV3LmdldEZsb2F0NjQoMCkg
aXMgMS40MDE2MDc3NjE3Njg5MjcwZS0zMDkKK1BBU1Mgdmlldy5nZXRGbG9hdDY0KDQpIGlzIDQu
MjM0Mjk5ODAwMjcyODU1MGUrMTc1CitQQVNTIHZpZXcuZ2V0RmxvYXQ2NCg3KSBpcyAzLjY3NzEw
ODMxODgwNTMyNDBlKzE5MAorCitUZXN0IGdldHRlcjogY291bGQgcmVhZCBiZXlvbmQgdGhlIHJh
bmdlCitQQVNTIHZpZXcuZ2V0SW50OCgwKSBpcyAwCitQQVNTIHZpZXcuZ2V0SW50OCg4KSBpcyAt
MTI4CitQQVNTIHZpZXcuZ2V0SW50OCgxNSkgdGhyZXcgZXhjZXB0aW9uIEVycm9yOiBJTkRFWF9T
SVpFX0VSUjogRE9NIEV4Y2VwdGlvbiAxLgorUEFTUyB2aWV3LmdldFVpbnQ4KDApIGlzIDAKK1BB
U1Mgdmlldy5nZXRVaW50OCg4KSBpcyAxMjgKK1BBU1Mgdmlldy5nZXRVaW50OCgxNSkgdGhyZXcg
ZXhjZXB0aW9uIEVycm9yOiBJTkRFWF9TSVpFX0VSUjogRE9NIEV4Y2VwdGlvbiAxLgorUEFTUyB2
aWV3LmdldEludDE2KDAsIHRydWUpIGlzIDI1NgorUEFTUyB2aWV3LmdldEludDE2KDgsIHRydWUp
IGlzIC0zMjM4NAorUEFTUyB2aWV3LmdldEludDE2KDE0LCB0cnVlKSB0aHJldyBleGNlcHRpb24g
RXJyb3I6IElOREVYX1NJWkVfRVJSOiBET00gRXhjZXB0aW9uIDEuCitQQVNTIHZpZXcuZ2V0SW50
MTYoMCkgaXMgMQorUEFTUyB2aWV3LmdldEludDE2KDgpIGlzIC0zMjYzOQorUEFTUyB2aWV3Lmdl
dEludDE2KDE0KSB0aHJldyBleGNlcHRpb24gRXJyb3I6IElOREVYX1NJWkVfRVJSOiBET00gRXhj
ZXB0aW9uIDEuCitQQVNTIHZpZXcuZ2V0VWludDE2KDAsIHRydWUpIGlzIDI1NgorUEFTUyB2aWV3
LmdldFVpbnQxNig4LCB0cnVlKSBpcyAzMzE1MgorUEFTUyB2aWV3LmdldFVpbnQxNigxNCwgdHJ1
ZSkgdGhyZXcgZXhjZXB0aW9uIEVycm9yOiBJTkRFWF9TSVpFX0VSUjogRE9NIEV4Y2VwdGlvbiAx
LgorUEFTUyB2aWV3LmdldFVpbnQxNigwKSBpcyAxCitQQVNTIHZpZXcuZ2V0VWludDE2KDgpIGlz
IDMyODk3CitQQVNTIHZpZXcuZ2V0VWludDE2KDE0KSB0aHJldyBleGNlcHRpb24gRXJyb3I6IElO
REVYX1NJWkVfRVJSOiBET00gRXhjZXB0aW9uIDEuCitQQVNTIHZpZXcuZ2V0SW50MzIoMCwgdHJ1
ZSkgaXMgNTA0NjI5NzYKK1BBU1Mgdmlldy5nZXRJbnQzMig4LCB0cnVlKSB0aHJldyBleGNlcHRp
b24gRXJyb3I6IElOREVYX1NJWkVfRVJSOiBET00gRXhjZXB0aW9uIDEuCitQQVNTIHZpZXcuZ2V0
SW50MzIoMTIsIHRydWUpIHRocmV3IGV4Y2VwdGlvbiBFcnJvcjogSU5ERVhfU0laRV9FUlI6IERP
TSBFeGNlcHRpb24gMS4KK1BBU1Mgdmlldy5nZXRJbnQzMigwKSBpcyA2NjA1MQorUEFTUyB2aWV3
LmdldEludDMyKDgpIHRocmV3IGV4Y2VwdGlvbiBFcnJvcjogSU5ERVhfU0laRV9FUlI6IERPTSBF
eGNlcHRpb24gMS4KK1BBU1Mgdmlldy5nZXRJbnQzMigxMikgdGhyZXcgZXhjZXB0aW9uIEVycm9y
OiBJTkRFWF9TSVpFX0VSUjogRE9NIEV4Y2VwdGlvbiAxLgorUEFTUyB2aWV3LmdldFVpbnQzMigw
LCB0cnVlKSBpcyA1MDQ2Mjk3NgorUEFTUyB2aWV3LmdldFVpbnQzMig4LCB0cnVlKSB0aHJldyBl
eGNlcHRpb24gRXJyb3I6IElOREVYX1NJWkVfRVJSOiBET00gRXhjZXB0aW9uIDEuCitQQVNTIHZp
ZXcuZ2V0VWludDMyKDEyLCB0cnVlKSB0aHJldyBleGNlcHRpb24gRXJyb3I6IElOREVYX1NJWkVf
RVJSOiBET00gRXhjZXB0aW9uIDEuCitQQVNTIHZpZXcuZ2V0VWludDMyKDApIGlzIDY2MDUxCitQ
QVNTIHZpZXcuZ2V0VWludDMyKDgpIHRocmV3IGV4Y2VwdGlvbiBFcnJvcjogSU5ERVhfU0laRV9F
UlI6IERPTSBFeGNlcHRpb24gMS4KK1BBU1Mgdmlldy5nZXRVaW50MzIoMTIpIHRocmV3IGV4Y2Vw
dGlvbiBFcnJvcjogSU5ERVhfU0laRV9FUlI6IERPTSBFeGNlcHRpb24gMS4KK1BBU1Mgdmlldy5n
ZXRGbG9hdDMyKDAsIHRydWUpIGlzIDMuODIwNDcxNDM0NTQyNjMyZS0zNworUEFTUyB2aWV3Lmdl
dEZsb2F0MzIoOCwgdHJ1ZSkgdGhyZXcgZXhjZXB0aW9uIEVycm9yOiBJTkRFWF9TSVpFX0VSUjog
RE9NIEV4Y2VwdGlvbiAxLgorUEFTUyB2aWV3LmdldEZsb2F0MzIoMTAsIHRydWUpIHRocmV3IGV4
Y2VwdGlvbiBFcnJvcjogSU5ERVhfU0laRV9FUlI6IERPTSBFeGNlcHRpb24gMS4KK1BBU1Mgdmll
dy5nZXRGbG9hdDMyKDApIGlzIDkuMjU1NzE2NDg2NzExODVlLTQxCitQQVNTIHZpZXcuZ2V0Rmxv
YXQzMig4KSB0aHJldyBleGNlcHRpb24gRXJyb3I6IElOREVYX1NJWkVfRVJSOiBET00gRXhjZXB0
aW9uIDEuCitQQVNTIHZpZXcuZ2V0RmxvYXQzMigxMCkgdGhyZXcgZXhjZXB0aW9uIEVycm9yOiBJ
TkRFWF9TSVpFX0VSUjogRE9NIEV4Y2VwdGlvbiAxLgorUEFTUyB2aWV3LmdldEZsb2F0NjQoMCwg
dHJ1ZSkgaXMgMS4yNDczMjI3NzI2NzQxNDEzZSsxOTAKK1BBU1Mgdmlldy5nZXRGbG9hdDY0KDQs
IHRydWUpIHRocmV3IGV4Y2VwdGlvbiBFcnJvcjogSU5ERVhfU0laRV9FUlI6IERPTSBFeGNlcHRp
b24gMS4KK1BBU1Mgdmlldy5nZXRGbG9hdDY0KDcsIHRydWUpIHRocmV3IGV4Y2VwdGlvbiBFcnJv
cjogSU5ERVhfU0laRV9FUlI6IERPTSBFeGNlcHRpb24gMS4KK1BBU1Mgdmlldy5nZXRGbG9hdDY0
KDApIGlzIDEuNDAxNjA3NzYxNzY4OTI3MGUtMzA5CitQQVNTIHZpZXcuZ2V0RmxvYXQ2NCg0KSB0
aHJldyBleGNlcHRpb24gRXJyb3I6IElOREVYX1NJWkVfRVJSOiBET00gRXhjZXB0aW9uIDEuCitQ
QVNTIHZpZXcuZ2V0RmxvYXQ2NCg3KSB0aHJldyBleGNlcHRpb24gRXJyb3I6IElOREVYX1NJWkVf
RVJSOiBET00gRXhjZXB0aW9uIDEuCisKK1Rlc3Qgc2V0dGVyOiBiYXNpY3MKK1BBU1Mgdmlldy5z
ZXRJbnQ4KDAsIDApIGlzIHVuZGVmaW5lZC4KK1BBU1Mgdmlldy5nZXRJbnQ4KDApIGlzIDAKK1BB
U1Mgdmlldy5zZXRJbnQ4KDgsIC0xMjgpIGlzIHVuZGVmaW5lZC4KK1BBU1Mgdmlldy5nZXRJbnQ4
KDgpIGlzIC0xMjgKK1BBU1Mgdmlldy5zZXRJbnQ4KDE1LCAtMSkgaXMgdW5kZWZpbmVkLgorUEFT
UyB2aWV3LmdldEludDgoMTUpIGlzIC0xCitQQVNTIHZpZXcuc2V0VWludDgoMCwgMCkgaXMgdW5k
ZWZpbmVkLgorUEFTUyB2aWV3LmdldFVpbnQ4KDApIGlzIDAKK1BBU1Mgdmlldy5zZXRVaW50OCg4
LCAxMjgpIGlzIHVuZGVmaW5lZC4KK1BBU1Mgdmlldy5nZXRVaW50OCg4KSBpcyAxMjgKK1BBU1Mg
dmlldy5zZXRVaW50OCgxNSwgMjU1KSBpcyB1bmRlZmluZWQuCitQQVNTIHZpZXcuZ2V0VWludDgo
MTUpIGlzIDI1NQorUEFTUyB2aWV3LnNldEludDE2KDAsIDI1NiwgdHJ1ZSkgaXMgdW5kZWZpbmVk
LgorUEFTUyB2aWV3LmdldEludDE2KDAsIHRydWUpIGlzIDI1NgorUEFTUyB2aWV3LnNldEludDE2
KDgsIC0zMjM4NCwgdHJ1ZSkgaXMgdW5kZWZpbmVkLgorUEFTUyB2aWV3LmdldEludDE2KDgsIHRy
dWUpIGlzIC0zMjM4NAorUEFTUyB2aWV3LnNldEludDE2KDE0LCAtMiwgdHJ1ZSkgaXMgdW5kZWZp
bmVkLgorUEFTUyB2aWV3LmdldEludDE2KDE0LCB0cnVlKSBpcyAtMgorUEFTUyB2aWV3LnNldElu
dDE2KDAsIDEpIGlzIHVuZGVmaW5lZC4KK1BBU1Mgdmlldy5nZXRJbnQxNigwKSBpcyAxCitQQVNT
IHZpZXcuc2V0SW50MTYoOCwgLTMyNjM5KSBpcyB1bmRlZmluZWQuCitQQVNTIHZpZXcuZ2V0SW50
MTYoOCkgaXMgLTMyNjM5CitQQVNTIHZpZXcuc2V0SW50MTYoMTQsIC0yNTcpIGlzIHVuZGVmaW5l
ZC4KK1BBU1Mgdmlldy5nZXRJbnQxNigxNCkgaXMgLTI1NworUEFTUyB2aWV3LnNldFVpbnQxNigw
LCAyNTYsIHRydWUpIGlzIHVuZGVmaW5lZC4KK1BBU1Mgdmlldy5nZXRVaW50MTYoMCwgdHJ1ZSkg
aXMgMjU2CitQQVNTIHZpZXcuc2V0VWludDE2KDgsIDMzMTUyLCB0cnVlKSBpcyB1bmRlZmluZWQu
CitQQVNTIHZpZXcuZ2V0VWludDE2KDgsIHRydWUpIGlzIDMzMTUyCitQQVNTIHZpZXcuc2V0VWlu
dDE2KDE0LCA2NTUzNCwgdHJ1ZSkgaXMgdW5kZWZpbmVkLgorUEFTUyB2aWV3LmdldFVpbnQxNigx
NCwgdHJ1ZSkgaXMgNjU1MzQKK1BBU1Mgdmlldy5zZXRVaW50MTYoMCwgMSkgaXMgdW5kZWZpbmVk
LgorUEFTUyB2aWV3LmdldFVpbnQxNigwKSBpcyAxCitQQVNTIHZpZXcuc2V0VWludDE2KDgsIDMy
ODk3KSBpcyB1bmRlZmluZWQuCitQQVNTIHZpZXcuZ2V0VWludDE2KDgpIGlzIDMyODk3CitQQVNT
IHZpZXcuc2V0VWludDE2KDE0LCA2NTI3OSkgaXMgdW5kZWZpbmVkLgorUEFTUyB2aWV3LmdldFVp
bnQxNigxNCkgaXMgNjUyNzkKK1BBU1Mgdmlldy5zZXRJbnQzMigwLCA1MDQ2Mjk3NiwgdHJ1ZSkg
aXMgdW5kZWZpbmVkLgorUEFTUyB2aWV3LmdldEludDMyKDAsIHRydWUpIGlzIDUwNDYyOTc2CitQ
QVNTIHZpZXcuc2V0SW50MzIoOCwgLTIwODg1OTkxNjgsIHRydWUpIGlzIHVuZGVmaW5lZC4KK1BB
U1Mgdmlldy5nZXRJbnQzMig4LCB0cnVlKSBpcyAtMjA4ODU5OTE2OAorUEFTUyB2aWV3LnNldElu
dDMyKDEyLCAtNjYwNTIsIHRydWUpIGlzIHVuZGVmaW5lZC4KK1BBU1Mgdmlldy5nZXRJbnQzMigx
MiwgdHJ1ZSkgaXMgLTY2MDUyCitQQVNTIHZpZXcuc2V0SW50MzIoMCwgNjYwNTEpIGlzIHVuZGVm
aW5lZC4KK1BBU1Mgdmlldy5nZXRJbnQzMigwKSBpcyA2NjA1MQorUEFTUyB2aWV3LnNldEludDMy
KDgsIC0yMTM4OTk2MDkzKSBpcyB1bmRlZmluZWQuCitQQVNTIHZpZXcuZ2V0SW50MzIoOCkgaXMg
LTIxMzg5OTYwOTMKK1BBU1Mgdmlldy5zZXRJbnQzMigxMiwgLTUwNDYyOTc3KSBpcyB1bmRlZmlu
ZWQuCitQQVNTIHZpZXcuZ2V0SW50MzIoMTIpIGlzIC01MDQ2Mjk3NworUEFTUyB2aWV3LnNldFVp
bnQzMigwLCA1MDQ2Mjk3NiwgdHJ1ZSkgaXMgdW5kZWZpbmVkLgorUEFTUyB2aWV3LmdldFVpbnQz
MigwLCB0cnVlKSBpcyA1MDQ2Mjk3NgorUEFTUyB2aWV3LnNldFVpbnQzMig4LCAyMjA2MzY4MTI4
LCB0cnVlKSBpcyB1bmRlZmluZWQuCitQQVNTIHZpZXcuZ2V0VWludDMyKDgsIHRydWUpIGlzIDIy
MDYzNjgxMjgKK1BBU1Mgdmlldy5zZXRVaW50MzIoMTIsIDQyOTQ5MDEyNDQsIHRydWUpIGlzIHVu
ZGVmaW5lZC4KK1BBU1Mgdmlldy5nZXRVaW50MzIoMTIsIHRydWUpIGlzIDQyOTQ5MDEyNDQKK1BB
U1Mgdmlldy5zZXRVaW50MzIoMCwgNjYwNTEpIGlzIHVuZGVmaW5lZC4KK1BBU1Mgdmlldy5nZXRV
aW50MzIoMCkgaXMgNjYwNTEKK1BBU1Mgdmlldy5zZXRVaW50MzIoOCwgMjE1NTk3MTIwMykgaXMg
dW5kZWZpbmVkLgorUEFTUyB2aWV3LmdldFVpbnQzMig4KSBpcyAyMTU1OTcxMjAzCitQQVNTIHZp
ZXcuc2V0VWludDMyKDEyLCA0MjQ0NTA0MzE5KSBpcyB1bmRlZmluZWQuCitQQVNTIHZpZXcuZ2V0
VWludDMyKDEyKSBpcyA0MjQ0NTA0MzE5CitQQVNTIHZpZXcuc2V0RmxvYXQzMigwLCAzLjgyMDQ3
MTQzNDU0MjYzMmUtMzcsIHRydWUpIGlzIHVuZGVmaW5lZC4KK1BBU1Mgdmlldy5nZXRGbG9hdDMy
KDAsIHRydWUpIGlzIDMuODIwNDcxNDM0NTQyNjMyZS0zNworUEFTUyB2aWV3LnNldEZsb2F0MzIo
OCwgLTcuNjcwNDQ1MDIyMjI2MDE4ZS0zNywgdHJ1ZSkgaXMgdW5kZWZpbmVkLgorUEFTUyB2aWV3
LmdldEZsb2F0MzIoOCwgdHJ1ZSkgaXMgLTcuNjcwNDQ1MDIyMjI2MDE4ZS0zNworUEFTUyB2aWV3
LnNldEZsb2F0MzIoMTAsIC00LjE5NTYwMzUzMTc0Mzk0MTdlKzM3LCB0cnVlKSBpcyB1bmRlZmlu
ZWQuCitQQVNTIHZpZXcuZ2V0RmxvYXQzMigxMCwgdHJ1ZSkgaXMgLTQuMTk1NjAzNTMxNzQzOTQx
N2UrMzcKK1BBU1Mgdmlldy5zZXRGbG9hdDMyKDAsIDkuMjU1NzE2NDg2NzExODVlLTQxKSBpcyB1
bmRlZmluZWQuCitQQVNTIHZpZXcuZ2V0RmxvYXQzMigwKSBpcyA5LjI1NTcxNjQ4NjcxMTg1ZS00
MQorUEFTUyB2aWV3LnNldEZsb2F0MzIoOCwgLTEuMTg5MzU5Nzc4NzM3MjQyM2UtMzgpIGlzIHVu
ZGVmaW5lZC4KK1BBU1Mgdmlldy5nZXRGbG9hdDMyKDgpIGlzIC0xLjE4OTM1OTc3ODczNzI0MjNl
LTM4CitQQVNTIHZpZXcuc2V0RmxvYXQzMigxMCwgLTEuOTM5MzkyODE0Njc4MjE1M2UtMzcpIGlz
IHVuZGVmaW5lZC4KK1BBU1Mgdmlldy5nZXRGbG9hdDMyKDEwKSBpcyAtMS45MzkzOTI4MTQ2Nzgy
MTUzZS0zNworUEFTUyB2aWV3LnNldEZsb2F0NjQoMCwgMS4yNDczMjI3NzI2NzQxNDEzZSsxOTAs
IHRydWUpIGlzIHVuZGVmaW5lZC4KK1BBU1Mgdmlldy5nZXRGbG9hdDY0KDAsIHRydWUpIGlzIDEu
MjQ3MzIyNzcyNjc0MTQxM2UrMTkwCitQQVNTIHZpZXcuc2V0RmxvYXQ2NCg0LCAtOS4yNzIyMTc1
NDY1MTk4MDcwZS0yOTIsIHRydWUpIGlzIHVuZGVmaW5lZC4KK1BBU1Mgdmlldy5nZXRGbG9hdDY0
KDQsIHRydWUpIGlzIC05LjI3MjIxNzU0NjUxOTgwNzBlLTI5MgorUEFTUyB2aWV3LnNldEZsb2F0
NjQoNywgLTUuMTQwOTA2NTcwOTc5ODk0MGUrMzAzLCB0cnVlKSBpcyB1bmRlZmluZWQuCitQQVNT
IHZpZXcuZ2V0RmxvYXQ2NCg3LCB0cnVlKSBpcyAtNS4xNDA5MDY1NzA5Nzk4OTQwZSszMDMKK1BB
U1Mgdmlldy5zZXRGbG9hdDY0KDAsIDEuNDAxNjA3NzYxNzY4OTI3MGUtMzA5KSBpcyB1bmRlZmlu
ZWQuCitQQVNTIHZpZXcuZ2V0RmxvYXQ2NCgwKSBpcyAxLjQwMTYwNzc2MTc2ODkyNzBlLTMwOQor
UEFTUyB2aWV3LnNldEZsb2F0NjQoNCwgNC4yMzQyOTk4MDAyNzI4NTUwZSsxNzUpIGlzIHVuZGVm
aW5lZC4KK1BBU1Mgdmlldy5nZXRGbG9hdDY0KDQpIGlzIDQuMjM0Mjk5ODAwMjcyODU1MGUrMTc1
CitQQVNTIHZpZXcuc2V0RmxvYXQ2NCg3LCAzLjY3NzEwODMxODgwNTMyNDBlKzE5MCkgaXMgdW5k
ZWZpbmVkLgorUEFTUyB2aWV3LmdldEZsb2F0NjQoNykgaXMgMy42NzcxMDgzMTg4MDUzMjQwZSsx
OTAKKworVGVzdCBzZXR0ZXI6IGNvdWxkIHdyaXRlIGJleW9uZCB0aGUgcmFuZ2UKK1BBU1Mgdmll
dy5zZXRJbnQ4KDAsIDApIGlzIHVuZGVmaW5lZC4KK1BBU1Mgdmlldy5nZXRJbnQ4KDApIGlzIDAK
K1BBU1Mgdmlldy5zZXRJbnQ4KDgsIC0xMjgpIGlzIHVuZGVmaW5lZC4KK1BBU1Mgdmlldy5nZXRJ
bnQ4KDgpIGlzIC0xMjgKK1BBU1Mgdmlldy5zZXRJbnQ4KDE1LCAtMSkgdGhyZXcgZXhjZXB0aW9u
IEVycm9yOiBJTkRFWF9TSVpFX0VSUjogRE9NIEV4Y2VwdGlvbiAxLgorUEFTUyB2aWV3LnNldFVp
bnQ4KDAsIDApIGlzIHVuZGVmaW5lZC4KK1BBU1Mgdmlldy5nZXRVaW50OCgwKSBpcyAwCitQQVNT
IHZpZXcuc2V0VWludDgoOCwgMTI4KSBpcyB1bmRlZmluZWQuCitQQVNTIHZpZXcuZ2V0VWludDgo
OCkgaXMgMTI4CitQQVNTIHZpZXcuc2V0VWludDgoMTUsIDI1NSkgdGhyZXcgZXhjZXB0aW9uIEVy
cm9yOiBJTkRFWF9TSVpFX0VSUjogRE9NIEV4Y2VwdGlvbiAxLgorUEFTUyB2aWV3LnNldEludDE2
KDAsIDI1NiwgdHJ1ZSkgaXMgdW5kZWZpbmVkLgorUEFTUyB2aWV3LmdldEludDE2KDAsIHRydWUp
IGlzIDI1NgorUEFTUyB2aWV3LnNldEludDE2KDgsIC0zMjM4NCwgdHJ1ZSkgaXMgdW5kZWZpbmVk
LgorUEFTUyB2aWV3LmdldEludDE2KDgsIHRydWUpIGlzIC0zMjM4NAorUEFTUyB2aWV3LnNldElu
dDE2KDE0LCAtMiwgdHJ1ZSkgdGhyZXcgZXhjZXB0aW9uIEVycm9yOiBJTkRFWF9TSVpFX0VSUjog
RE9NIEV4Y2VwdGlvbiAxLgorUEFTUyB2aWV3LnNldEludDE2KDAsIDEpIGlzIHVuZGVmaW5lZC4K
K1BBU1Mgdmlldy5nZXRJbnQxNigwKSBpcyAxCitQQVNTIHZpZXcuc2V0SW50MTYoOCwgLTMyNjM5
KSBpcyB1bmRlZmluZWQuCitQQVNTIHZpZXcuZ2V0SW50MTYoOCkgaXMgLTMyNjM5CitQQVNTIHZp
ZXcuc2V0SW50MTYoMTQsIC0yNTcpIHRocmV3IGV4Y2VwdGlvbiBFcnJvcjogSU5ERVhfU0laRV9F
UlI6IERPTSBFeGNlcHRpb24gMS4KK1BBU1Mgdmlldy5zZXRVaW50MTYoMCwgMjU2LCB0cnVlKSBp
cyB1bmRlZmluZWQuCitQQVNTIHZpZXcuZ2V0VWludDE2KDAsIHRydWUpIGlzIDI1NgorUEFTUyB2
aWV3LnNldFVpbnQxNig4LCAzMzE1MiwgdHJ1ZSkgaXMgdW5kZWZpbmVkLgorUEFTUyB2aWV3Lmdl
dFVpbnQxNig4LCB0cnVlKSBpcyAzMzE1MgorUEFTUyB2aWV3LnNldFVpbnQxNigxNCwgNjU1MzQs
IHRydWUpIHRocmV3IGV4Y2VwdGlvbiBFcnJvcjogSU5ERVhfU0laRV9FUlI6IERPTSBFeGNlcHRp
b24gMS4KK1BBU1Mgdmlldy5zZXRVaW50MTYoMCwgMSkgaXMgdW5kZWZpbmVkLgorUEFTUyB2aWV3
LmdldFVpbnQxNigwKSBpcyAxCitQQVNTIHZpZXcuc2V0VWludDE2KDgsIDMyODk3KSBpcyB1bmRl
ZmluZWQuCitQQVNTIHZpZXcuZ2V0VWludDE2KDgpIGlzIDMyODk3CitQQVNTIHZpZXcuc2V0VWlu
dDE2KDE0LCA2NTI3OSkgdGhyZXcgZXhjZXB0aW9uIEVycm9yOiBJTkRFWF9TSVpFX0VSUjogRE9N
IEV4Y2VwdGlvbiAxLgorUEFTUyB2aWV3LnNldEludDMyKDAsIDUwNDYyOTc2LCB0cnVlKSBpcyB1
bmRlZmluZWQuCitQQVNTIHZpZXcuZ2V0SW50MzIoMCwgdHJ1ZSkgaXMgNTA0NjI5NzYKK1BBU1Mg
dmlldy5zZXRJbnQzMig4LCAtMjA4ODU5OTE2OCwgdHJ1ZSkgdGhyZXcgZXhjZXB0aW9uIEVycm9y
OiBJTkRFWF9TSVpFX0VSUjogRE9NIEV4Y2VwdGlvbiAxLgorUEFTUyB2aWV3LnNldEludDMyKDEy
LCAtNjYwNTIsIHRydWUpIHRocmV3IGV4Y2VwdGlvbiBFcnJvcjogSU5ERVhfU0laRV9FUlI6IERP
TSBFeGNlcHRpb24gMS4KK1BBU1Mgdmlldy5zZXRJbnQzMigwLCA2NjA1MSkgaXMgdW5kZWZpbmVk
LgorUEFTUyB2aWV3LmdldEludDMyKDApIGlzIDY2MDUxCitQQVNTIHZpZXcuc2V0SW50MzIoOCwg
LTIxMzg5OTYwOTMpIHRocmV3IGV4Y2VwdGlvbiBFcnJvcjogSU5ERVhfU0laRV9FUlI6IERPTSBF
eGNlcHRpb24gMS4KK1BBU1Mgdmlldy5zZXRJbnQzMigxMiwgLTUwNDYyOTc3KSB0aHJldyBleGNl
cHRpb24gRXJyb3I6IElOREVYX1NJWkVfRVJSOiBET00gRXhjZXB0aW9uIDEuCitQQVNTIHZpZXcu
c2V0VWludDMyKDAsIDUwNDYyOTc2LCB0cnVlKSBpcyB1bmRlZmluZWQuCitQQVNTIHZpZXcuZ2V0
VWludDMyKDAsIHRydWUpIGlzIDUwNDYyOTc2CitQQVNTIHZpZXcuc2V0VWludDMyKDgsIDIyMDYz
NjgxMjgsIHRydWUpIHRocmV3IGV4Y2VwdGlvbiBFcnJvcjogSU5ERVhfU0laRV9FUlI6IERPTSBF
eGNlcHRpb24gMS4KK1BBU1Mgdmlldy5zZXRVaW50MzIoMTIsIDQyOTQ5MDEyNDQsIHRydWUpIHRo
cmV3IGV4Y2VwdGlvbiBFcnJvcjogSU5ERVhfU0laRV9FUlI6IERPTSBFeGNlcHRpb24gMS4KK1BB
U1Mgdmlldy5zZXRVaW50MzIoMCwgNjYwNTEpIGlzIHVuZGVmaW5lZC4KK1BBU1Mgdmlldy5nZXRV
aW50MzIoMCkgaXMgNjYwNTEKK1BBU1Mgdmlldy5zZXRVaW50MzIoOCwgMjE1NTk3MTIwMykgdGhy
ZXcgZXhjZXB0aW9uIEVycm9yOiBJTkRFWF9TSVpFX0VSUjogRE9NIEV4Y2VwdGlvbiAxLgorUEFT
UyB2aWV3LnNldFVpbnQzMigxMiwgNDI0NDUwNDMxOSkgdGhyZXcgZXhjZXB0aW9uIEVycm9yOiBJ
TkRFWF9TSVpFX0VSUjogRE9NIEV4Y2VwdGlvbiAxLgorUEFTUyB2aWV3LnNldEZsb2F0MzIoMCwg
My44MjA0NzE0MzQ1NDI2MzJlLTM3LCB0cnVlKSBpcyB1bmRlZmluZWQuCitQQVNTIHZpZXcuZ2V0
RmxvYXQzMigwLCB0cnVlKSBpcyAzLjgyMDQ3MTQzNDU0MjYzMmUtMzcKK1BBU1Mgdmlldy5zZXRG
bG9hdDMyKDgsIC03LjY3MDQ0NTAyMjIyNjAxOGUtMzcsIHRydWUpIHRocmV3IGV4Y2VwdGlvbiBF
cnJvcjogSU5ERVhfU0laRV9FUlI6IERPTSBFeGNlcHRpb24gMS4KK1BBU1Mgdmlldy5zZXRGbG9h
dDMyKDEwLCAtNC4xOTU2MDM1MzE3NDM5NDE3ZSszNywgdHJ1ZSkgdGhyZXcgZXhjZXB0aW9uIEVy
cm9yOiBJTkRFWF9TSVpFX0VSUjogRE9NIEV4Y2VwdGlvbiAxLgorUEFTUyB2aWV3LnNldEZsb2F0
MzIoMCwgOS4yNTU3MTY0ODY3MTE4NWUtNDEpIGlzIHVuZGVmaW5lZC4KK1BBU1Mgdmlldy5nZXRG
bG9hdDMyKDApIGlzIDkuMjU1NzE2NDg2NzExODVlLTQxCitQQVNTIHZpZXcuc2V0RmxvYXQzMig4
LCAtMS4xODkzNTk3Nzg3MzcyNDIzZS0zOCkgdGhyZXcgZXhjZXB0aW9uIEVycm9yOiBJTkRFWF9T
SVpFX0VSUjogRE9NIEV4Y2VwdGlvbiAxLgorUEFTUyB2aWV3LnNldEZsb2F0MzIoMTAsIC0xLjkz
OTM5MjgxNDY3ODIxNTNlLTM3KSB0aHJldyBleGNlcHRpb24gRXJyb3I6IElOREVYX1NJWkVfRVJS
OiBET00gRXhjZXB0aW9uIDEuCitQQVNTIHZpZXcuc2V0RmxvYXQ2NCgwLCAxLjI0NzMyMjc3MjY3
NDE0MTNlKzE5MCwgdHJ1ZSkgaXMgdW5kZWZpbmVkLgorUEFTUyB2aWV3LmdldEZsb2F0NjQoMCwg
dHJ1ZSkgaXMgMS4yNDczMjI3NzI2NzQxNDEzZSsxOTAKK1BBU1Mgdmlldy5zZXRGbG9hdDY0KDQs
IC05LjI3MjIxNzU0NjUxOTgwNzBlLTI5MiwgdHJ1ZSkgdGhyZXcgZXhjZXB0aW9uIEVycm9yOiBJ
TkRFWF9TSVpFX0VSUjogRE9NIEV4Y2VwdGlvbiAxLgorUEFTUyB2aWV3LnNldEZsb2F0NjQoNywg
LTUuMTQwOTA2NTcwOTc5ODk0MGUrMzAzLCB0cnVlKSB0aHJldyBleGNlcHRpb24gRXJyb3I6IElO
REVYX1NJWkVfRVJSOiBET00gRXhjZXB0aW9uIDEuCitQQVNTIHZpZXcuc2V0RmxvYXQ2NCgwLCAx
LjQwMTYwNzc2MTc2ODkyNzBlLTMwOSkgaXMgdW5kZWZpbmVkLgorUEFTUyB2aWV3LmdldEZsb2F0
NjQoMCkgaXMgMS40MDE2MDc3NjE3Njg5MjcwZS0zMDkKK1BBU1Mgdmlldy5zZXRGbG9hdDY0KDQs
IDQuMjM0Mjk5ODAwMjcyODU1MGUrMTc1KSB0aHJldyBleGNlcHRpb24gRXJyb3I6IElOREVYX1NJ
WkVfRVJSOiBET00gRXhjZXB0aW9uIDEuCitQQVNTIHZpZXcuc2V0RmxvYXQ2NCg3LCAzLjY3NzEw
ODMxODgwNTMyNDBlKzE5MCkgdGhyZXcgZXhjZXB0aW9uIEVycm9yOiBJTkRFWF9TSVpFX0VSUjog
RE9NIEV4Y2VwdGlvbiAxLgorCitUZXN0IHdyb25nIGFyZ3VtZW50cworUEFTUyB2aWV3LmdldElu
dDgoKSB0aHJldyBleGNlcHRpb24gU3ludGF4RXJyb3I6IE5vdCBlbm91Z2ggYXJndW1lbnRzLgor
UEFTUyB2aWV3LmdldFVpbnQ4KCkgdGhyZXcgZXhjZXB0aW9uIFN5bnRheEVycm9yOiBOb3QgZW5v
dWdoIGFyZ3VtZW50cy4KK1BBU1Mgdmlldy5nZXRJbnQxNigpIHRocmV3IGV4Y2VwdGlvbiBTeW50
YXhFcnJvcjogTm90IGVub3VnaCBhcmd1bWVudHMuCitQQVNTIHZpZXcuZ2V0VWludDE2KCkgdGhy
ZXcgZXhjZXB0aW9uIFN5bnRheEVycm9yOiBOb3QgZW5vdWdoIGFyZ3VtZW50cy4KK1BBU1Mgdmll
dy5nZXRJbnQzMigpIHRocmV3IGV4Y2VwdGlvbiBTeW50YXhFcnJvcjogTm90IGVub3VnaCBhcmd1
bWVudHMuCitQQVNTIHZpZXcuZ2V0VWludDMyKCkgdGhyZXcgZXhjZXB0aW9uIFN5bnRheEVycm9y
OiBOb3QgZW5vdWdoIGFyZ3VtZW50cy4KK1BBU1Mgdmlldy5nZXRGbG9hdDMyKCkgdGhyZXcgZXhj
ZXB0aW9uIFN5bnRheEVycm9yOiBOb3QgZW5vdWdoIGFyZ3VtZW50cy4KK1BBU1Mgdmlldy5nZXRG
bG9hdDY0KCkgdGhyZXcgZXhjZXB0aW9uIFN5bnRheEVycm9yOiBOb3QgZW5vdWdoIGFyZ3VtZW50
cy4KK1BBU1Mgdmlldy5zZXRJbnQ4KCkgdGhyZXcgZXhjZXB0aW9uIFN5bnRheEVycm9yOiBOb3Qg
ZW5vdWdoIGFyZ3VtZW50cy4KK1BBU1Mgdmlldy5zZXRVaW50OCgpIHRocmV3IGV4Y2VwdGlvbiBT
eW50YXhFcnJvcjogTm90IGVub3VnaCBhcmd1bWVudHMuCitQQVNTIHZpZXcuc2V0SW50MTYoKSB0
aHJldyBleGNlcHRpb24gU3ludGF4RXJyb3I6IE5vdCBlbm91Z2ggYXJndW1lbnRzLgorUEFTUyB2
aWV3LnNldFVpbnQxNigpIHRocmV3IGV4Y2VwdGlvbiBTeW50YXhFcnJvcjogTm90IGVub3VnaCBh
cmd1bWVudHMuCitQQVNTIHZpZXcuc2V0SW50MzIoKSB0aHJldyBleGNlcHRpb24gU3ludGF4RXJy
b3I6IE5vdCBlbm91Z2ggYXJndW1lbnRzLgorUEFTUyB2aWV3LnNldFVpbnQzMigpIHRocmV3IGV4
Y2VwdGlvbiBTeW50YXhFcnJvcjogTm90IGVub3VnaCBhcmd1bWVudHMuCitQQVNTIHZpZXcuc2V0
RmxvYXQzMigpIHRocmV3IGV4Y2VwdGlvbiBTeW50YXhFcnJvcjogTm90IGVub3VnaCBhcmd1bWVu
dHMuCitQQVNTIHZpZXcuc2V0RmxvYXQ2NCgpIHRocmV3IGV4Y2VwdGlvbiBTeW50YXhFcnJvcjog
Tm90IGVub3VnaCBhcmd1bWVudHMuCitQQVNTIHZpZXcuc2V0SW50OCgxKSB0aHJldyBleGNlcHRp
b24gU3ludGF4RXJyb3I6IE5vdCBlbm91Z2ggYXJndW1lbnRzLgorUEFTUyB2aWV3LnNldFVpbnQ4
KDEpIHRocmV3IGV4Y2VwdGlvbiBTeW50YXhFcnJvcjogTm90IGVub3VnaCBhcmd1bWVudHMuCitQ
QVNTIHZpZXcuc2V0SW50MTYoMSkgdGhyZXcgZXhjZXB0aW9uIFN5bnRheEVycm9yOiBOb3QgZW5v
dWdoIGFyZ3VtZW50cy4KK1BBU1Mgdmlldy5zZXRVaW50MTYoMSkgdGhyZXcgZXhjZXB0aW9uIFN5
bnRheEVycm9yOiBOb3QgZW5vdWdoIGFyZ3VtZW50cy4KK1BBU1Mgdmlldy5zZXRJbnQzMigxKSB0
aHJldyBleGNlcHRpb24gU3ludGF4RXJyb3I6IE5vdCBlbm91Z2ggYXJndW1lbnRzLgorUEFTUyB2
aWV3LnNldFVpbnQzMigxKSB0aHJldyBleGNlcHRpb24gU3ludGF4RXJyb3I6IE5vdCBlbm91Z2gg
YXJndW1lbnRzLgorUEFTUyB2aWV3LnNldEZsb2F0MzIoMSkgdGhyZXcgZXhjZXB0aW9uIFN5bnRh
eEVycm9yOiBOb3QgZW5vdWdoIGFyZ3VtZW50cy4KK1BBU1Mgdmlldy5zZXRGbG9hdDY0KDEpIHRo
cmV3IGV4Y2VwdGlvbiBTeW50YXhFcnJvcjogTm90IGVub3VnaCBhcmd1bWVudHMuCitQQVNTIHN1
Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvd2ViZ2wvZGF0YS12aWV3LXRlc3QuaHRtbCBiL0xheW91
dFRlc3RzL2Zhc3QvY2FudmFzL3dlYmdsL2RhdGEtdmlldy10ZXN0Lmh0bWwKbmV3IGZpbGUgbW9k
ZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uMGU2NmQ4ZQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL2Zhc3QvY2FudmFzL3dlYmdsL2RhdGEtdmlldy10ZXN0Lmh0bWwKQEAgLTAsMCArMSwx
ODQgQEAKKzxodG1sPgorPGhlYWQ+Cis8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Ii4uLy4u
L2pzL3Jlc291cmNlcy9qcy10ZXN0LXN0eWxlLmNzcyIvPgorPHNjcmlwdCBzcmM9Ii4uLy4uL2pz
L3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxk
aXYgaWQ9ImRlc2NyaXB0aW9uIj48L2Rpdj4KKzxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgorCis8
c2NyaXB0PgorZGVzY3JpcHRpb24oIlRlc3QgRGF0YVZpZXcuIik7CisKK3ZhciBhcnJheTEgPSBu
ZXcgVWludDhBcnJheShbMCwgMSwgMiwgMywgMTAwLCAxMDEsIDEwMiwgMTAzLCAxMjgsIDEyOSwg
MTMwLCAxMzEsIDI1MiwgMjUzLCAyNTQsIDI1NV0pOwordmFyIGFycmF5MiA9IG5ldyBVaW50OEFy
cmF5KFszMSwgMzIsIDMzLCAwLCAxLCAyLCAzLCAxMDAsIDEwMSwgMTAyLCAxMDMsIDEyOCwgMTI5
LCAxMzAsIDEzMSwgMjUyLCAyNTMsIDI1NCwgMjU1XSk7Cit2YXIgYXJyYXkzID0gbmV3IFVpbnQ4
QXJyYXkoWzIwNCwgMjA0LCAyMDQsIDIwNCwgMjA0LCAyMDQsIDIwNCwgMjA0LCAyMDQsIDIwNCwg
MjA0LCAyMDQsIDIwNCwgMjA0LCAyMDQsIDIwNF0pOworCit2YXIgdmlldyA9IG51bGw7Cit2YXIg
dmlld1N0YXJ0ID0gMDsKK3ZhciB2aWV3TGVuZ3RoID0gMDsKKworZnVuY3Rpb24gY2hlY2tHZXQo
ZnVuYywgZWxlbWVudFNpemUsIGluZGV4LCBleHBlY3RlZCwgbGl0dGxlRW5kaWFuKSB7CisgICAg
dmFyIGV4cHIgPSAidmlldy5nZXQiICsgZnVuYyArICIoIiArIGluZGV4OworICAgIGlmIChsaXR0
bGVFbmRpYW4gIT0gdW5kZWZpbmVkKSB7CisgICAgICAgIGV4cHIgKz0gIiwgIjsKKyAgICAgICAg
ZXhwciArPSBsaXR0bGVFbmRpYW4gPyAidHJ1ZSIgOiAiZmFsc2UiOworICAgIH0KKyAgICBleHBy
ICs9ICIpIjsKKyAgICBpZiAoaW5kZXggKyBlbGVtZW50U2l6ZSAtIDEgPCB2aWV3LmJ5dGVMZW5n
dGgpCisgICAgICAgIHNob3VsZEJlKGV4cHIsIGV4cGVjdGVkKTsKKyAgICBlbHNlCisgICAgICAg
IHNob3VsZFRocm93KGV4cHIpOworfQorCitmdW5jdGlvbiBjaGVja1NldChmdW5jLCBlbGVtZW50
U2l6ZSwgaW5kZXgsIHZhbHVlLCBsaXR0bGVFbmRpYW4pIHsKKyAgICB2YXIgZXhwciA9ICJ2aWV3
LnNldCIgKyBmdW5jICsgIigiICsgaW5kZXggKyAiLCAiICsgdmFsdWU7CisgICAgaWYgKGxpdHRs
ZUVuZGlhbiAhPSB1bmRlZmluZWQpIHsKKyAgICAgICAgZXhwciArPSAiLCAiOworICAgICAgICBl
eHByICs9IGxpdHRsZUVuZGlhbiA/ICJ0cnVlIiA6ICJmYWxzZSI7CisgICAgfQorICAgIGV4cHIg
Kz0gIikiOworICAgIGlmIChpbmRleCArIGVsZW1lbnRTaXplIC0gMSA8IHZpZXcuYnl0ZUxlbmd0
aCkgeworICAgICAgICBzaG91bGRCZVVuZGVmaW5lZChleHByKTsKKyAgICAgICAgY2hlY2tHZXQo
ZnVuYywgZWxlbWVudFNpemUsIGluZGV4LCB2YWx1ZSwgbGl0dGxlRW5kaWFuKTsKKyAgICB9IGVs
c2UKKyAgICAgICAgc2hvdWxkVGhyb3coZXhwcik7Cit9CisKK2Z1bmN0aW9uIHRlc3QoaXNUZXN0
aW5nR2V0LCBmdW5jLCBlbGVtZW50U2l6ZSwgaW5kZXgsIHZhbHVlLCBsaXR0bGVFbmRpYW4pIHsK
KyAgICBpZiAoaXNUZXN0aW5nR2V0KQorICAgICAgICBjaGVja0dldChmdW5jLCBlbGVtZW50U2l6
ZSwgaW5kZXgsIHZhbHVlLCBsaXR0bGVFbmRpYW4pOworICAgICBlbHNlCisgICAgICAgIGNoZWNr
U2V0KGZ1bmMsIGVsZW1lbnRTaXplLCBpbmRleCwgdmFsdWUsIGxpdHRsZUVuZGlhbik7Cit9CisK
K2Z1bmN0aW9uIHJ1blRlc3RzKGlzVGVzdGluZ0dldCwgYXJyYXksIHN0YXJ0LCBsZW5ndGgpIHsK
KyAgICB2aWV3ID0gbmV3IERhdGFWaWV3KGFycmF5LmJ1ZmZlciwgc3RhcnQsIGxlbmd0aCk7Cisg
ICAgdmlld1N0YXJ0ID0gc3RhcnQ7CisgICAgdmlld0xlbmd0aCA9IGxlbmd0aDsKKworICAgIHRl
c3QoaXNUZXN0aW5nR2V0LCAiSW50OCIsIDEsIDAsICIwIik7CisgICAgdGVzdChpc1Rlc3RpbmdH
ZXQsICJJbnQ4IiwgMSwgOCwgIi0xMjgiKTsKKyAgICB0ZXN0KGlzVGVzdGluZ0dldCwgIkludDgi
LCAxLCAxNSwgIi0xIik7CisKKyAgICB0ZXN0KGlzVGVzdGluZ0dldCwgIlVpbnQ4IiwgMSwgMCwg
IjAiKTsKKyAgICB0ZXN0KGlzVGVzdGluZ0dldCwgIlVpbnQ4IiwgMSwgOCwgIjEyOCIpOworICAg
IHRlc3QoaXNUZXN0aW5nR2V0LCAiVWludDgiLCAxLCAxNSwgIjI1NSIpOworCisgICAgLy8gTGl0
dGxlIGVuZGlhbi4KKyAgICB0ZXN0KGlzVGVzdGluZ0dldCwgIkludDE2IiwgMiwgMCwgIjI1NiIs
IHRydWUpOworICAgIHRlc3QoaXNUZXN0aW5nR2V0LCAiSW50MTYiLCAyLCA4LCAiLTMyMzg0Iiwg
dHJ1ZSk7CisgICAgdGVzdChpc1Rlc3RpbmdHZXQsICJJbnQxNiIsIDIsIDE0LCAiLTIiLCB0cnVl
KTsKKworICAgIC8vIEJpZyBlbmRpYW4uCisgICAgdGVzdChpc1Rlc3RpbmdHZXQsICJJbnQxNiIs
IDIsIDAsICIxIik7CisgICAgdGVzdChpc1Rlc3RpbmdHZXQsICJJbnQxNiIsIDIsIDgsICItMzI2
MzkiKTsKKyAgICB0ZXN0KGlzVGVzdGluZ0dldCwgIkludDE2IiwgMiwgMTQsICItMjU3Iik7CisK
KyAgICAvLyBMaXR0bGUgZW5kaWFuLgorICAgIHRlc3QoaXNUZXN0aW5nR2V0LCAiVWludDE2Iiwg
MiwgMCwgIjI1NiIsIHRydWUpOworICAgIHRlc3QoaXNUZXN0aW5nR2V0LCAiVWludDE2IiwgMiwg
OCwgIjMzMTUyIiwgdHJ1ZSk7CisgICAgdGVzdChpc1Rlc3RpbmdHZXQsICJVaW50MTYiLCAyLCAx
NCwgIjY1NTM0IiwgdHJ1ZSk7CisKKyAgICAvLyBCaWcgZW5kaWFuLgorICAgIHRlc3QoaXNUZXN0
aW5nR2V0LCAiVWludDE2IiwgMiwgMCwgIjEiKTsKKyAgICB0ZXN0KGlzVGVzdGluZ0dldCwgIlVp
bnQxNiIsIDIsIDgsICIzMjg5NyIpOworICAgIHRlc3QoaXNUZXN0aW5nR2V0LCAiVWludDE2Iiwg
MiwgMTQsICI2NTI3OSIpOworCisgICAgLy8gTGl0dGxlIGVuZGlhbi4KKyAgICB0ZXN0KGlzVGVz
dGluZ0dldCwgIkludDMyIiwgNCwgMCwgIjUwNDYyOTc2IiwgdHJ1ZSk7CisgICAgdGVzdChpc1Rl
c3RpbmdHZXQsICJJbnQzMiIsIDQsIDgsICItMjA4ODU5OTE2OCIsIHRydWUpOworICAgIHRlc3Qo
aXNUZXN0aW5nR2V0LCAiSW50MzIiLCA0LCAxMiwgIi02NjA1MiIsIHRydWUpOworCisgICAgLy8g
QmlnIGVuZGlhbi4KKyAgICB0ZXN0KGlzVGVzdGluZ0dldCwgIkludDMyIiwgNCwgMCwgIjY2MDUx
Iik7CisgICAgdGVzdChpc1Rlc3RpbmdHZXQsICJJbnQzMiIsIDQsIDgsICItMjEzODk5NjA5MyIp
OworICAgIHRlc3QoaXNUZXN0aW5nR2V0LCAiSW50MzIiLCA0LCAxMiwgIi01MDQ2Mjk3NyIpOwor
CisgICAgLy8gTGl0dGxlIGVuZGlhbi4KKyAgICB0ZXN0KGlzVGVzdGluZ0dldCwgIlVpbnQzMiIs
IDQsIDAsICI1MDQ2Mjk3NiIsIHRydWUpOworICAgIHRlc3QoaXNUZXN0aW5nR2V0LCAiVWludDMy
IiwgNCwgOCwgIjIyMDYzNjgxMjgiLCB0cnVlKTsKKyAgICB0ZXN0KGlzVGVzdGluZ0dldCwgIlVp
bnQzMiIsIDQsIDEyLCAiNDI5NDkwMTI0NCIsIHRydWUpOworCisgICAgLy8gQmlnIGVuZGlhbi4K
KyAgICB0ZXN0KGlzVGVzdGluZ0dldCwgIlVpbnQzMiIsIDQsIDAsICI2NjA1MSIpOworICAgIHRl
c3QoaXNUZXN0aW5nR2V0LCAiVWludDMyIiwgNCwgOCwgIjIxNTU5NzEyMDMiKTsKKyAgICB0ZXN0
KGlzVGVzdGluZ0dldCwgIlVpbnQzMiIsIDQsIDEyLCAiNDI0NDUwNDMxOSIpOworCisgICAgLy8g
TGl0dGxlIGVuZGlhbi4KKyAgICB0ZXN0KGlzVGVzdGluZ0dldCwgIkZsb2F0MzIiLCA0LCAwLCAi
My44MjA0NzE0MzQ1NDI2MzJlLTM3IiwgdHJ1ZSk7CisgICAgdGVzdChpc1Rlc3RpbmdHZXQsICJG
bG9hdDMyIiwgNCwgOCwgIi03LjY3MDQ0NTAyMjIyNjAxOGUtMzciLCB0cnVlKTsKKyAgICB0ZXN0
KGlzVGVzdGluZ0dldCwgIkZsb2F0MzIiLCA0LCAxMCwgIi00LjE5NTYwMzUzMTc0Mzk0MTdlKzM3
IiwgdHJ1ZSk7CisKKyAgICAvLyBCaWcgZW5kaWFuLgorICAgIHRlc3QoaXNUZXN0aW5nR2V0LCAi
RmxvYXQzMiIsIDQsIDAsICI5LjI1NTcxNjQ4NjcxMTg1ZS00MSIpOworICAgIHRlc3QoaXNUZXN0
aW5nR2V0LCAiRmxvYXQzMiIsIDQsIDgsICItMS4xODkzNTk3Nzg3MzcyNDIzZS0zOCIpOworICAg
IHRlc3QoaXNUZXN0aW5nR2V0LCAiRmxvYXQzMiIsIDQsIDEwLCAiLTEuOTM5MzkyODE0Njc4MjE1
M2UtMzciKTsKKworICAgIC8vIExpdHRsZSBlbmRpYW4uCisgICAgdGVzdChpc1Rlc3RpbmdHZXQs
ICJGbG9hdDY0IiwgOCwgMCwgIjEuMjQ3MzIyNzcyNjc0MTQxM2UrMTkwIiwgdHJ1ZSk7CisgICAg
dGVzdChpc1Rlc3RpbmdHZXQsICJGbG9hdDY0IiwgOCwgNCwgIi05LjI3MjIxNzU0NjUxOTgwNzBl
LTI5MiIsIHRydWUpOworICAgIHRlc3QoaXNUZXN0aW5nR2V0LCAiRmxvYXQ2NCIsIDgsIDcsICIt
NS4xNDA5MDY1NzA5Nzk4OTQwZSszMDMiLCB0cnVlKTsKKworICAgIC8vIEJpZyBlbmRpYW4uCisg
ICAgdGVzdChpc1Rlc3RpbmdHZXQsICJGbG9hdDY0IiwgOCwgMCwgIjEuNDAxNjA3NzYxNzY4OTI3
MGUtMzA5Iik7CisgICAgdGVzdChpc1Rlc3RpbmdHZXQsICJGbG9hdDY0IiwgOCwgNCwgIjQuMjM0
Mjk5ODAwMjcyODU1MGUrMTc1Iik7CisgICAgdGVzdChpc1Rlc3RpbmdHZXQsICJGbG9hdDY0Iiwg
OCwgNywgIjMuNjc3MTA4MzE4ODA1MzI0MGUrMTkwIik7Cit9CisKK2Z1bmN0aW9uIHRlc3RBcmd1
bWVudEVycm9yKGFycmF5LCBzdGFydCwgbGVuZ3RoKSB7CisgICAgdmlldyA9IG5ldyBEYXRhVmll
dyhhcnJheS5idWZmZXIsIHN0YXJ0LCBsZW5ndGgpOworCisgICAgc2hvdWxkVGhyb3coInZpZXcu
Z2V0SW50OCgpIik7CisgICAgc2hvdWxkVGhyb3coInZpZXcuZ2V0VWludDgoKSIpOworICAgIHNo
b3VsZFRocm93KCJ2aWV3LmdldEludDE2KCkiKTsKKyAgICBzaG91bGRUaHJvdygidmlldy5nZXRV
aW50MTYoKSIpOworICAgIHNob3VsZFRocm93KCJ2aWV3LmdldEludDMyKCkiKTsKKyAgICBzaG91
bGRUaHJvdygidmlldy5nZXRVaW50MzIoKSIpOworICAgIHNob3VsZFRocm93KCJ2aWV3LmdldEZs
b2F0MzIoKSIpOworICAgIHNob3VsZFRocm93KCJ2aWV3LmdldEZsb2F0NjQoKSIpOworCisgICAg
c2hvdWxkVGhyb3coInZpZXcuc2V0SW50OCgpIik7CisgICAgc2hvdWxkVGhyb3coInZpZXcuc2V0
VWludDgoKSIpOworICAgIHNob3VsZFRocm93KCJ2aWV3LnNldEludDE2KCkiKTsKKyAgICBzaG91
bGRUaHJvdygidmlldy5zZXRVaW50MTYoKSIpOworICAgIHNob3VsZFRocm93KCJ2aWV3LnNldElu
dDMyKCkiKTsKKyAgICBzaG91bGRUaHJvdygidmlldy5zZXRVaW50MzIoKSIpOworICAgIHNob3Vs
ZFRocm93KCJ2aWV3LnNldEZsb2F0MzIoKSIpOworICAgIHNob3VsZFRocm93KCJ2aWV3LnNldEZs
b2F0NjQoKSIpOworCisgICAgc2hvdWxkVGhyb3coInZpZXcuc2V0SW50OCgxKSIpOworICAgIHNo
b3VsZFRocm93KCJ2aWV3LnNldFVpbnQ4KDEpIik7CisgICAgc2hvdWxkVGhyb3coInZpZXcuc2V0
SW50MTYoMSkiKTsKKyAgICBzaG91bGRUaHJvdygidmlldy5zZXRVaW50MTYoMSkiKTsKKyAgICBz
aG91bGRUaHJvdygidmlldy5zZXRJbnQzMigxKSIpOworICAgIHNob3VsZFRocm93KCJ2aWV3LnNl
dFVpbnQzMigxKSIpOworICAgIHNob3VsZFRocm93KCJ2aWV3LnNldEZsb2F0MzIoMSkiKTsKKyAg
ICBzaG91bGRUaHJvdygidmlldy5zZXRGbG9hdDY0KDEpIik7Cit9CisKK2RlYnVnKCJUZXN0IGdl
dHRlcjogYmFzaWNzIik7CitydW5UZXN0cyh0cnVlLCBhcnJheTEsIDAsIDE2KTsKKworZGVidWco
IiIpOworZGVidWcoIlRlc3QgZ2V0dGVyOiBjb3VsZCByZWFkIGJleW9uZCB0aGUgcmFuZ2UiKTsK
K3J1blRlc3RzKHRydWUsIGFycmF5MiwgMywgMTApOworCitkZWJ1ZygiIik7CitkZWJ1ZygiVGVz
dCBzZXR0ZXI6IGJhc2ljcyIpOworcnVuVGVzdHMoZmFsc2UsIGFycmF5MywgMCwgMTYpOworCitk
ZWJ1ZygiIik7CitkZWJ1ZygiVGVzdCBzZXR0ZXI6IGNvdWxkIHdyaXRlIGJleW9uZCB0aGUgcmFu
Z2UiKTsKK3J1blRlc3RzKGZhbHNlLCBhcnJheTMsIDMsIDEwKTsKKworZGVidWcoIiIpOworZGVi
dWcoIlRlc3Qgd3JvbmcgYXJndW1lbnRzIik7Cit0ZXN0QXJndW1lbnRFcnJvcihhcnJheTEsIDAs
IDE2KTsKKworc3VjY2Vzc2Z1bGx5UGFyc2VkID0gdHJ1ZTsKKzwvc2NyaXB0PgorCis8c2NyaXB0
IHNyYz0iLi4vLi4vanMvcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2Jv
ZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0IGIvV2ViQ29y
ZS9DTWFrZUxpc3RzLnR4dAppbmRleCA3MWI0NTcxLi5jNjhkMWJkIDEwMDY0NAotLS0gYS9XZWJD
b3JlL0NNYWtlTGlzdHMudHh0CisrKyBiL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKQEAgLTI5Myw2
ICsyOTMsNyBAQCBTRVQoV2ViQ29yZV9JRExfRklMRVMKICAgICBodG1sL2NhbnZhcy9DYW52YXNQ
YXR0ZXJuLmlkbAogICAgIGh0bWwvY2FudmFzL0NhbnZhc1JlbmRlcmluZ0NvbnRleHQyRC5pZGwK
ICAgICBodG1sL2NhbnZhcy9DYW52YXNSZW5kZXJpbmdDb250ZXh0LmlkbAorICAgIGh0bWwvY2Fu
dmFzL0RhdGFWaWV3LmlkbAogICAgIGh0bWwvY2FudmFzL0Zsb2F0MzJBcnJheS5pZGwKICAgICBo
dG1sL2NhbnZhcy9JbnQxNkFycmF5LmlkbAogICAgIGh0bWwvY2FudmFzL0ludDMyQXJyYXkuaWRs
CmRpZmYgLS1naXQgYS9XZWJDb3JlL0NoYW5nZUxvZyBiL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4
IGNmODRhOWEuLjQ2OTRjMjggMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1dl
YkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDUgKzEsNTQgQEAKIDIwMTAtMTEtMTggIEppYW4gTGkgIDxq
aWFubGlAY2hyb21pdW0ub3JnPgogCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIEltcGxlbWVudCBEYXRhVmlldyBpbnRlcmZhY2UgZnJvbSBUeXBlZCBBcnJh
eSBzcGVjaWZpY2F0aW9uCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD00NjU0MQorCisgICAgICAgIFRlc3Q6IGZhc3QvY2FudmFzL3dlYmdsL2RhdGEtdmll
dy10ZXN0Lmh0bWwKKworICAgICAgICAqIENNYWtlTGlzdHMudHh0OgorICAgICAgICAqIERlcml2
ZWRTb3VyY2VzLm1ha2U6CisgICAgICAgICogR05VbWFrZWZpbGUuYW06CisgICAgICAgICogV2Vi
Q29yZS5neXBpOgorICAgICAgICAqIFdlYkNvcmUucHJpOgorICAgICAgICAqIFdlYkNvcmUucHJv
OgorICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAg
KiBiaW5kaW5ncy9nZW5lcmljL1J1bnRpbWVFbmFibGVkRmVhdHVyZXMuaDoKKyAgICAgICAgKFdl
YkNvcmU6OlJ1bnRpbWVFbmFibGVkRmVhdHVyZXM6OmRhdGFWaWV3RW5hYmxlZCk6CisgICAgICAg
ICogYmluZGluZ3MvanMvSlNBcnJheUJ1ZmZlclZpZXdIZWxwZXIuaDoKKyAgICAgICAgKFdlYkNv
cmU6OmNvbnN0cnVjdEFycmF5QnVmZmVyVmlld1dpdGhBcnJheUJ1ZmZlckFyZ3VtZW50KToKKyAg
ICAgICAgKFdlYkNvcmU6OmNvbnN0cnVjdEFycmF5QnVmZmVyVmlldyk6CisgICAgICAgICogYmlu
ZGluZ3MvanMvSlNET01XaW5kb3dDdXN0b20uY3BwOgorICAgICAgICAoV2ViQ29yZTo6SlNET01X
aW5kb3c6OmRhdGFWaWV3KToKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU0RhdGFWaWV3Q3VzdG9t
LmNwcDogQWRkZWQuCisgICAgICAgICogYmluZGluZ3MvanMvSlNGbG9hdDMyQXJyYXlDdXN0b20u
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6SlNGbG9hdDMyQXJyYXlDb25zdHJ1Y3Rvcjo6Y29uc3Ry
dWN0SlNGbG9hdDMyQXJyYXkpOgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pTSW50MTZBcnJheUN1
c3RvbS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpKU0ludDE2QXJyYXlDb25zdHJ1Y3Rvcjo6Y29u
c3RydWN0SlNJbnQxNkFycmF5KToKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU0ludDMyQXJyYXlD
dXN0b20uY3BwOgorICAgICAgICAoV2ViQ29yZTo6SlNJbnQzMkFycmF5Q29uc3RydWN0b3I6OmNv
bnN0cnVjdEpTSW50MzJBcnJheSk6CisgICAgICAgICogYmluZGluZ3MvanMvSlNJbnQ4QXJyYXlD
dXN0b20uY3BwOgorICAgICAgICAoV2ViQ29yZTo6SlNJbnQ4QXJyYXlDb25zdHJ1Y3Rvcjo6Y29u
c3RydWN0SlNJbnQ4QXJyYXkpOgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pTVWludDE2QXJyYXlD
dXN0b20uY3BwOgorICAgICAgICAoV2ViQ29yZTo6SlNVaW50MTZBcnJheUNvbnN0cnVjdG9yOjpj
b25zdHJ1Y3RKU1VpbnQxNkFycmF5KToKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU1VpbnQzMkFy
cmF5Q3VzdG9tLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkpTVWludDMyQXJyYXlDb25zdHJ1Y3Rv
cjo6Y29uc3RydWN0SlNVaW50MzJBcnJheSk6CisgICAgICAgICogYmluZGluZ3MvanMvSlNVaW50
OEFycmF5Q3VzdG9tLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkpTVWludDhBcnJheUNvbnN0cnVj
dG9yOjpjb25zdHJ1Y3RKU1VpbnQ4QXJyYXkpOgorICAgICAgICAqIGJpbmRpbmdzL3Y4L2N1c3Rv
bS9WOEFycmF5QnVmZmVyVmlld0N1c3RvbS5oOgorICAgICAgICAoV2ViQ29yZTo6Y29uc3RydWN0
V2ViR0xBcnJheVdpdGhBcnJheUJ1ZmZlckFyZ3VtZW50KToKKyAgICAgICAgKFdlYkNvcmU6OmNv
bnN0cnVjdFdlYkdMQXJyYXkpOgorICAgICAgICAqIGJpbmRpbmdzL3Y4L2N1c3RvbS9WOERhdGFW
aWV3Q3VzdG9tLmNwcDogQWRkZWQuCisgICAgICAgICogaHRtbC9jYW52YXMvQXJyYXlCdWZmZXJW
aWV3Lmg6CisgICAgICAgIChXZWJDb3JlOjpBcnJheUJ1ZmZlclZpZXc6OmlzRGF0YVZpZXcpOgor
ICAgICAgICAqIGh0bWwvY2FudmFzL0RhdGFWaWV3LmNwcDogQWRkZWQuCisgICAgICAgICogaHRt
bC9jYW52YXMvRGF0YVZpZXcuaDogQWRkZWQuCisgICAgICAgICogaHRtbC9jYW52YXMvRGF0YVZp
ZXcuaWRsOiBBZGRlZC4KKyAgICAgICAgKiBwYWdlL0RPTVdpbmRvdy5pZGw6CisKKzIwMTAtMTEt
MTggIEppYW4gTGkgIDxqaWFubGlAY2hyb21pdW0ub3JnPgorCiAgICAgICAgIFJldmlld2VkIGJ5
IEtlbm5ldGggUnVzc2VsbC4KIAogICAgICAgICBNYWtlIGJpbmRpbmcgY29kZSBnZW5lcmF0aW9u
IHNjcmlwdHMgc3VwcG9ydCAnc2hvcnQnIHR5cGUKZGlmZiAtLWdpdCBhL1dlYkNvcmUvRGVyaXZl
ZFNvdXJjZXMubWFrZSBiL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZQppbmRleCAxYjZhMjY2
Li4wMDc3MGRiIDEwMDY0NAotLS0gYS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UKKysrIGIv
V2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtlCkBAIC03Niw2ICs3Niw3IEBAIERPTV9DTEFTU0VT
ID0gXAogICAgIFdlYkdMQWN0aXZlSW5mbyBcCiAgICAgQXJyYXlCdWZmZXJWaWV3IFwKICAgICBB
cnJheUJ1ZmZlciBcCisgICAgRGF0YVZpZXcgXAogICAgIFdlYkdMQnVmZmVyIFwKICAgICBJbnQ4
QXJyYXkgXAogICAgIFdlYkdMQ29udGV4dEF0dHJpYnV0ZXMgXApkaWZmIC0tZ2l0IGEvV2ViQ29y
ZS9HTlVtYWtlZmlsZS5hbSBiL1dlYkNvcmUvR05VbWFrZWZpbGUuYW0KaW5kZXggYTIxMWMxOC4u
YzMzMmJjYiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9HTlVtYWtlZmlsZS5hbQorKysgYi9XZWJDb3Jl
L0dOVW1ha2VmaWxlLmFtCkBAIC0xODgsNiArMTg4LDggQEAgd2ViY29yZV9idWlsdF9zb3VyY2Vz
ICs9IFwKIAlEZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTRGF0YUdyaWRDb2x1bW4uaCBcCiAJRGVy
aXZlZFNvdXJjZXMvV2ViQ29yZS9KU0RhdGFHcmlkQ29sdW1uTGlzdC5jcHAgXAogCURlcml2ZWRT
b3VyY2VzL1dlYkNvcmUvSlNEYXRhR3JpZENvbHVtbkxpc3QuaCBcCisJRGVyaXZlZFNvdXJjZXMv
V2ViQ29yZS9KU0RhdGFWaWV3LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU0RhdGFW
aWV3LmggXAogCURlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNEZWRpY2F0ZWRXb3JrZXJDb250ZXh0
LmNwcCBcCiAJRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU0RlZGljYXRlZFdvcmtlckNvbnRleHQu
aCBcCiAJRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU0RldmljZU1vdGlvbkV2ZW50LmNwcCBcCmRp
ZmYgLS1naXQgYS9XZWJDb3JlL1dlYkNvcmUuZ3lwaSBiL1dlYkNvcmUvV2ViQ29yZS5neXBpCmlu
ZGV4IGQ5ZjFlZjMuLjgxYTcyMmQgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvV2ViQ29yZS5neXBpCisr
KyBiL1dlYkNvcmUvV2ViQ29yZS5neXBpCkBAIC0yMDYsNiArMjA2LDcgQEAKICAgICAgICAgICAg
ICdodG1sL2NhbnZhcy9DYW52YXNQaXhlbEFycmF5LmlkbCcsCiAgICAgICAgICAgICAnaHRtbC9j
YW52YXMvQ2FudmFzUmVuZGVyaW5nQ29udGV4dC5pZGwnLAogICAgICAgICAgICAgJ2h0bWwvY2Fu
dmFzL0NhbnZhc1JlbmRlcmluZ0NvbnRleHQyRC5pZGwnLAorICAgICAgICAgICAgJ2h0bWwvY2Fu
dmFzL0RhdGFWaWV3LmlkbCcsCiAgICAgICAgICAgICAnaHRtbC9jYW52YXMvRmxvYXQzMkFycmF5
LmlkbCcsCiAgICAgICAgICAgICAnaHRtbC9jYW52YXMvSW50MTZBcnJheS5pZGwnLAogICAgICAg
ICAgICAgJ2h0bWwvY2FudmFzL0ludDMyQXJyYXkuaWRsJywKQEAgLTc0MCw2ICs3NDEsOCBAQAog
ICAgICAgICAgICAgJ2JpbmRpbmdzL3Y4L2N1c3RvbS9WOENhbnZhc1BpeGVsQXJyYXlDdXN0b20u
Y3BwJywKICAgICAgICAgICAgICdiaW5kaW5ncy92OC9jdXN0b20vVjhBcnJheUJ1ZmZlclZpZXdD
dXN0b20uaCcsCiAgICAgICAgICAgICAnYmluZGluZ3MvdjgvY3VzdG9tL1Y4QXJyYXlCdWZmZXJD
dXN0b20uY3BwJywKKyAgICAgICAgICAgICdiaW5kaW5ncy92OC9jdXN0b20vVjhEYXRhVmlld0N1
c3RvbS5jcHAnLAorICAgICAgICAgICAgJ2JpbmRpbmdzL3Y4L2N1c3RvbS9WOERhdGFWaWV3Q3Vz
dG9tLmgnLAogICAgICAgICAgICAgJ2JpbmRpbmdzL3Y4L2N1c3RvbS9WOEludDhBcnJheUN1c3Rv
bS5jcHAnLAogICAgICAgICAgICAgJ2JpbmRpbmdzL3Y4L2N1c3RvbS9WOEludDMyQXJyYXlDdXN0
b20uY3BwJywKICAgICAgICAgICAgICdiaW5kaW5ncy92OC9jdXN0b20vVjhGaWxlUmVhZGVyQ3Vz
dG9tLmNwcCcsCkBAIC0xODUwLDYgKzE4NTMsOCBAQAogICAgICAgICAgICAgJ2h0bWwvY2FudmFz
L0NhbnZhc1N0eWxlLmNwcCcsCiAgICAgICAgICAgICAnaHRtbC9jYW52YXMvQ2FudmFzU3R5bGUu
aCcsCiAgICAgICAgICAgICAnaHRtbC9jYW52YXMvQ2hlY2tlZEludC5oJywKKyAgICAgICAgICAg
ICdodG1sL2NhbnZhcy9EYXRhVmlldy5jcHAnLAorICAgICAgICAgICAgJ2h0bWwvY2FudmFzL0Rh
dGFWaWV3LmgnLAogICAgICAgICAgICAgJ2h0bWwvY2FudmFzL0Zsb2F0MzJBcnJheS5jcHAnLAog
ICAgICAgICAgICAgJ2h0bWwvY2FudmFzL0Zsb2F0MzJBcnJheS5oJywKICAgICAgICAgICAgICdo
dG1sL2NhbnZhcy9JbnQxNkFycmF5LmNwcCcsCmRpZmYgLS1naXQgYS9XZWJDb3JlL1dlYkNvcmUu
cHJpIGIvV2ViQ29yZS9XZWJDb3JlLnByaQppbmRleCBlYzIxM2Q2Li5kOGIzNzcyIDEwMDY0NAot
LS0gYS9XZWJDb3JlL1dlYkNvcmUucHJpCisrKyBiL1dlYkNvcmUvV2ViQ29yZS5wcmkKQEAgLTE4
MSw2ICsxODEsNyBAQCBJRExfQklORElOR1MgKz0gXAogICAgIGZpbGVhcGkvTWV0YWRhdGFDYWxs
YmFjay5pZGwgXAogICAgIGh0bWwvY2FudmFzL0FycmF5QnVmZmVyVmlldy5pZGwgXAogICAgIGh0
bWwvY2FudmFzL0FycmF5QnVmZmVyLmlkbCBcCisgICAgaHRtbC9jYW52YXMvRGF0YVZpZXcuaWRs
IFwKICAgICBodG1sL2NhbnZhcy9JbnQ4QXJyYXkuaWRsIFwKICAgICBodG1sL2NhbnZhcy9GbG9h
dDMyQXJyYXkuaWRsIFwKICAgICBodG1sL2NhbnZhcy9DYW52YXNHcmFkaWVudC5pZGwgXApkaWZm
IC0tZ2l0IGEvV2ViQ29yZS9XZWJDb3JlLnBybyBiL1dlYkNvcmUvV2ViQ29yZS5wcm8KaW5kZXgg
MTJkNjMyYy4uMTM0MzEzNyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9XZWJDb3JlLnBybworKysgYi9X
ZWJDb3JlL1dlYkNvcmUucHJvCkBAIC0zNjkzLDYgKzM2OTMsNyBAQCBIRUFERVJTICs9IFwKICAg
ICAgICAgaHRtbC9jYW52YXMvV2ViR0xBY3RpdmVJbmZvLmggXAogICAgICAgICBodG1sL2NhbnZh
cy9BcnJheUJ1ZmZlci5oIFwKICAgICAgICAgaHRtbC9jYW52YXMvQXJyYXlCdWZmZXJWaWV3Lmgg
XAorICAgICAgICBodG1sL2NhbnZhcy9EYXRhVmlldy5oIFwKICAgICAgICAgaHRtbC9jYW52YXMv
V2ViR0xCdWZmZXIuaCBcCiAgICAgICAgIGh0bWwvY2FudmFzL0ludDhBcnJheS5oIFwKICAgICAg
ICAgaHRtbC9jYW52YXMvV2ViR0xDb250ZXh0QXR0cmlidXRlcy5oIFwKQEAgLTM3MTcsNiArMzcx
OCw3IEBAIEhFQURFUlMgKz0gXAogICAgICF2OCB7CiAgICAgICAgIFNPVVJDRVMgKz0gXAogICAg
ICAgICAgICAgICAgIGJpbmRpbmdzL2pzL0pTQXJyYXlCdWZmZXJDdXN0b20uY3BwIFwKKyAgICAg
ICAgICAgICAgICBiaW5kaW5ncy9qcy9KU0RhdGFWaWV3Q3VzdG9tLmNwcCBcCiAgICAgICAgICAg
ICAgICAgYmluZGluZ3MvanMvSlNJbnQ4QXJyYXlDdXN0b20uY3BwIFwKICAgICAgICAgICAgICAg
ICBiaW5kaW5ncy9qcy9KU0Zsb2F0MzJBcnJheUN1c3RvbS5jcHAgXAogICAgICAgICAgICAgICAg
IGJpbmRpbmdzL2pzL0pTSW50MzJBcnJheUN1c3RvbS5jcHAgXApAQCAtMzczMSw2ICszNzMzLDcg
QEAgU09VUkNFUyArPSBcCiAgICAgICAgIGh0bWwvY2FudmFzL1dlYkdMT2JqZWN0LmNwcCBcCiAg
ICAgICAgIGh0bWwvY2FudmFzL0FycmF5QnVmZmVyLmNwcCBcCiAgICAgICAgIGh0bWwvY2FudmFz
L0FycmF5QnVmZmVyVmlldy5jcHAgXAorICAgICAgICBodG1sL2NhbnZhcy9EYXRhVmlldy5jcHAg
XAogICAgICAgICBodG1sL2NhbnZhcy9XZWJHTEJ1ZmZlci5jcHAgXAogICAgICAgICBodG1sL2Nh
bnZhcy9JbnQ4QXJyYXkuY3BwIFwKICAgICAgICAgaHRtbC9jYW52YXMvV2ViR0xDb250ZXh0QXR0
cmlidXRlcy5jcHAgXApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2ogYi9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpp
bmRleCAyOTY1OWFjLi5mMTdjM2UyIDEwMDY0NAotLS0gYS9XZWJDb3JlL1dlYkNvcmUueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvagpAQCAtNzY2LDYgKzc2NiwxMSBAQAogCQkyRTc1ODQxRjEyNzc5QURBMDA2MjYy
OEIgLyogRmlsZVJlYWRlckxvYWRlckNsaWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gMkU3NTg0MUMxMjc3OUFEQTAwNjI2MjhCIC8qIEZpbGVSZWFk
ZXJMb2FkZXJDbGllbnQuaCAqLzsgfTsKIAkJMkU5NEY0M0IxMTkyMDdEQTAwQjdGNzVEIC8qIEpT
RmlsZVJlYWRlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSAyRTk0RjQzOTExOTIwN0RBMDBCN0Y3NUQgLyogSlNGaWxlUmVhZGVyLmNwcCAqLzsgfTsK
IAkJMkU5NEY0M0MxMTkyMDdEQTAwQjdGNzVEIC8qIEpTRmlsZVJlYWRlci5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMkU5NEY0M0ExMTkyMDdEQTAwQjdG
NzVEIC8qIEpTRmlsZVJlYWRlci5oICovOyB9OworCQkyRTk3Q0NFQTEyOTM5Q0I4MDBDNUM4RkYg
LyogRGF0YVZpZXcuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gMkU5N0NDRTcxMjkzOUNCODAwQzVDOEZGIC8qIERhdGFWaWV3LmNwcCAqLzsgfTsKKwkJ
MkU5N0NDRUIxMjkzOUNCODAwQzVDOEZGIC8qIERhdGFWaWV3LmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyRTk3Q0NFODEyOTM5Q0I4MDBDNUM4RkYgLyog
RGF0YVZpZXcuaCAqLzsgfTsKKwkJMkU5N0NDRjcxMjkzQTQzQTAwQzVDOEZGIC8qIEpTRGF0YVZp
ZXdDdXN0b20uY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gMkU5N0NDRjYxMjkzQTQzQTAwQzVDOEZGIC8qIEpTRGF0YVZpZXdDdXN0b20uY3BwICovOyB9
OworCQkyRTk3Q0U2RjEyOTNBRDZCMDBDNUM4RkYgLyogSlNEYXRhVmlldy5jcHAgaW4gU291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyRTk3Q0U2RDEyOTNBRDZCMDBD
NUM4RkYgLyogSlNEYXRhVmlldy5jcHAgKi87IH07CisJCTJFOTdDRTcwMTI5M0FENkIwMEM1QzhG
RiAvKiBKU0RhdGFWaWV3LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSAyRTk3Q0U2RTEyOTNBRDZCMDBDNUM4RkYgLyogSlNEYXRhVmlldy5oICovOyB9Owog
CQkyRUE3NjgwNDBGRTcxMjY0MDBBQjlDOEEgLyogV29ya2VyU2NyaXB0TG9hZGVyQ2xpZW50Lmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyRUE3NjgwMzBG
RTcxMjY0MDBBQjlDOEEgLyogV29ya2VyU2NyaXB0TG9hZGVyQ2xpZW50LmggKi87IH07CiAJCTJF
QjRCQ0QyMTIxRjAzRTMwMEVDNDg4NSAvKiBCbG9iUmVzb3VyY2VIYW5kbGUuY3BwIGluIFNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMkVCNEJDRDAxMjFGMDNFMzAw
RUM0ODg1IC8qIEJsb2JSZXNvdXJjZUhhbmRsZS5jcHAgKi87IH07CiAJCTJFQjRCQ0QzMTIxRjAz
RTMwMEVDNDg4NSAvKiBCbG9iUmVzb3VyY2VIYW5kbGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDJFQjRCQ0QxMTIxRjAzRTMwMEVDNDg4NSAvKiBCbG9i
UmVzb3VyY2VIYW5kbGUuaCAqLzsgfTsKQEAgLTY4NDgsNiArNjg1MywxMiBAQAogCQkyRTc1ODQx
QzEyNzc5QURBMDA2MjYyOEIgLyogRmlsZVJlYWRlckxvYWRlckNsaWVudC5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IG5hbWUgPSBGaWxlUmVhZGVyTG9hZGVyQ2xpZW50Lmg7IHBhdGggPSBm
aWxlYXBpL0ZpbGVSZWFkZXJMb2FkZXJDbGllbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJMkU5NEY0MzkxMTkyMDdEQTAwQjdGNzVEIC8qIEpTRmlsZVJlYWRlci5jcHAgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU0ZpbGVSZWFkZXIuY3BwOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQkyRTk0RjQzQTExOTIwN0RBMDBCN0Y3NUQgLyogSlNGaWxl
UmVhZGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTRmlsZVJlYWRlci5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkyRTk3Q0NFNzEyOTM5Q0I4MDBDNUM4RkYg
LyogRGF0YVZpZXcuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gRGF0
YVZpZXcuY3BwOyBwYXRoID0gY2FudmFzL0RhdGFWaWV3LmNwcDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKKwkJMkU5N0NDRTgxMjkzOUNCODAwQzVDOEZGIC8qIERhdGFWaWV3LmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IERhdGFWaWV3Lmg7IHBhdGggPSBjYW52YXMvRGF0
YVZpZXcuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMkU5N0NDRTkxMjkzOUNCODAw
QzVDOEZGIC8qIERhdGFWaWV3LmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IG5hbWUgPSBEYXRhVmlldy5p
ZGw7IHBhdGggPSBjYW52YXMvRGF0YVZpZXcuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OworCQkyRTk3Q0NGNjEyOTNBNDNBMDBDNUM4RkYgLyogSlNEYXRhVmlld0N1c3RvbS5jcHAgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU0RhdGFWaWV3Q3VzdG9tLmNwcDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMkU5N0NFNkQxMjkzQUQ2QjAwQzVDOEZGIC8q
IEpTRGF0YVZpZXcuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNE
YXRhVmlldy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTJFOTdDRTZFMTI5M0FE
NkIwMEM1QzhGRiAvKiBKU0RhdGFWaWV3LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IEpTRGF0YVZpZXcuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMkVBNzY4MDMw
RkU3MTI2NDAwQUI5QzhBIC8qIFdvcmtlclNjcmlwdExvYWRlckNsaWVudC5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IG5hbWUgPSBXb3JrZXJTY3JpcHRMb2FkZXJDbGllbnQuaDsgcGF0aCA9
IHdvcmtlcnMvV29ya2VyU2NyaXB0TG9hZGVyQ2xpZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCTJFQjRCQ0QwMTIxRjAzRTMwMEVDNDg4NSAvKiBCbG9iUmVzb3VyY2VIYW5kbGUu
Y3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQmxvYlJlc291cmNlSGFu
ZGxlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMkVCNEJDRDExMjFGMDNFMzAw
RUM0ODg1IC8qIEJsb2JSZXNvdXJjZUhhbmRsZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBCbG9iUmVzb3VyY2VIYW5kbGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
QEAgLTEyNjA2LDYgKzEyNjE3LDkgQEAKIAkJCQk0OTQ4NEZCRjEwMkNGMjNDMDAxODdERDMgLyog
Q2FudmFzU3R5bGUuY3BwICovLAogCQkJCTQ5NDg0RkMwMTAyQ0YyM0MwMDE4N0REMyAvKiBDYW52
YXNTdHlsZS5oICovLAogCQkJCUEwMEI3MjE5MTFERTY0MjcwMDhBQjlGRiAvKiBDaGVja2VkSW50
LmggKi8sCisJCQkJMkU5N0NDRTcxMjkzOUNCODAwQzVDOEZGIC8qIERhdGFWaWV3LmNwcCAqLywK
KwkJCQkyRTk3Q0NFODEyOTM5Q0I4MDBDNUM4RkYgLyogRGF0YVZpZXcuaCAqLywKKwkJCQkyRTk3
Q0NFOTEyOTM5Q0I4MDBDNUM4RkYgLyogRGF0YVZpZXcuaWRsICovLAogCQkJCTQ5RUVDRENEMTA1
MDNDMjMwMDA5OUZBQiAvKiBGbG9hdDMyQXJyYXkuY3BwICovLAogCQkJCTQ5RUVDRENFMTA1MDND
MjMwMDA5OUZBQiAvKiBGbG9hdDMyQXJyYXkuaCAqLywKIAkJCQk0OUVFQ0RDRjEwNTAzQzIzMDAw
OTlGQUIgLyogRmxvYXQzMkFycmF5LmlkbCAqLywKQEAgLTE1Mjg2LDYgKzE1MzAwLDggQEAKIAkJ
CQlCQzc3RDE2NjBGRjE5RjU1MDA3MDg4N0IgLyogSlNEYXRhR3JpZENvbHVtbi5oICovLAogCQkJ
CUJDNzdEMTY3MEZGMTlGNTUwMDcwODg3QiAvKiBKU0RhdGFHcmlkQ29sdW1uTGlzdC5jcHAgKi8s
CiAJCQkJQkM3N0QxNjgwRkYxOUY1NTAwNzA4ODdCIC8qIEpTRGF0YUdyaWRDb2x1bW5MaXN0Lmgg
Ki8sCisJCQkJMkU5N0NFNkQxMjkzQUQ2QjAwQzVDOEZGIC8qIEpTRGF0YVZpZXcuY3BwICovLAor
CQkJCTJFOTdDRTZFMTI5M0FENkIwMEM1QzhGRiAvKiBKU0RhdGFWaWV3LmggKi8sCiAJCQkJMkUw
ODg4RDIxMTQ4ODQ4QTAwQUY0MjY1IC8qIEpTRE9NRm9ybURhdGEuY3BwICovLAogCQkJCTJFMDg4
OEQzMTE0ODg0OEEwMEFGNDI2NSAvKiBKU0RPTUZvcm1EYXRhLmggKi8sCiAJCQkJNEFDQkMwQzgx
MjcxM0QwQTAwOTRGOUIyIC8qIEpTRE9NU2V0dGFibGVUb2tlbkxpc3QuY3BwICovLApAQCAtMTcw
NzEsNiArMTcwODcsNyBAQAogCQkJCUJDNTgyNUYyMEMwQjg5MzgwMDUzRjFCNSAvKiBKU0NTU1N0
eWxlRGVjbGFyYXRpb25DdXN0b20uY3BwICovLAogCQkJCUJDMjBGQjdFMEMwRThFNkMwMEQxNDQ3
RiAvKiBKU0NTU1ZhbHVlQ3VzdG9tLmNwcCAqLywKIAkJCQlCQzc3RDE1MTBGRjE5QzczMDA3MDg4
N0IgLyogSlNEYXRhR3JpZENvbHVtbkxpc3RDdXN0b20uY3BwICovLAorCQkJCTJFOTdDQ0Y2MTI5
M0E0M0EwMEM1QzhGRiAvKiBKU0RhdGFWaWV3Q3VzdG9tLmNwcCAqLywKIAkJCQk0MTYyQTQ1MzEw
MTE0NUUzMDBERkYzRUQgLyogSlNEZWRpY2F0ZWRXb3JrZXJDb250ZXh0Q3VzdG9tLmNwcCAqLywK
IAkJCQkzMzUwM0NCRjEwMTc5QzFBMDAzQjQ3RTEgLyogSlNEZXNrdG9wTm90aWZpY2F0aW9uc0N1
c3RvbS5jcHAgKi8sCiAJCQkJMzFGQjFBNkIxMjBBNUQ2OTAwREMwMkEwIC8qIEpTRGV2aWNlTW90
aW9uRXZlbnRDdXN0b20uY3BwICovLApAQCAtMjEzNjMsNiArMjEzODAsOCBAQAogCQkJCUUxQUQx
NDIxMTI5NUVBNkIwMEFDQTk4OSAvKiBKU0hUTUxFbWJlZEVsZW1lbnRDdXN0b20uaCBpbiBIZWFk
ZXJzICovLAogCQkJCUUxQUQxNDIzMTI5NUVBN0YwMEFDQTk4OSAvKiBKU0hUTUxJbnB1dEVsZW1l
bnRDdXN0b20uaCBpbiBIZWFkZXJzICovLAogCQkJCUUxQUQxNDI1MTI5NUVBOTUwMEFDQTk4OSAv
KiBKU0hUTUxPYmplY3RFbGVtZW50Q3VzdG9tLmggaW4gSGVhZGVycyAqLywKKwkJCQkyRTk3Q0NF
QjEyOTM5Q0I4MDBDNUM4RkYgLyogRGF0YVZpZXcuaCBpbiBIZWFkZXJzICovLAorCQkJCTJFOTdD
RTcwMTI5M0FENkIwMEM1QzhGRiAvKiBKU0RhdGFWaWV3LmggaW4gSGVhZGVycyAqLywKIAkJCSk7
CiAJCQlydW5Pbmx5Rm9yRGVwbG95bWVudFBvc3Rwcm9jZXNzaW5nID0gMDsKIAkJfTsKQEAgLTIz
OTMyLDYgKzIzOTUxLDkgQEAKIAkJCQlFMUFEMTJENjEyOTVEMEJEMDBBQ0E5ODkgLyogSlNQcm9j
ZXNzaW5nSW5zdHJ1Y3Rpb25DdXN0b20uY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJRTFBRDEzOUIx
Mjk1RDkyNjAwQUNBOTg5IC8qIEpTSFRNTExpbmtFbGVtZW50Q3VzdG9tLmNwcCBpbiBTb3VyY2Vz
ICovLAogCQkJCUUxQUQxMzlFMTI5NUQ5NjEwMEFDQTk4OSAvKiBKU0hUTUxTdHlsZUVsZW1lbnRD
dXN0b20uY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJMkU5N0NDRUExMjkzOUNCODAwQzVDOEZGIC8q
IERhdGFWaWV3LmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTJFOTdDQ0Y3MTI5M0E0M0EwMEM1QzhG
RiAvKiBKU0RhdGFWaWV3Q3VzdG9tLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTJFOTdDRTZGMTI5
M0FENkIwMEM1QzhGRiAvKiBKU0RhdGFWaWV3LmNwcCBpbiBTb3VyY2VzICovLAogCQkJKTsKIAkJ
CXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9zdHByb2Nlc3NpbmcgPSAwOwogCQl9OwpkaWZmIC0tZ2l0
IGEvV2ViQ29yZS9iaW5kaW5ncy9nZW5lcmljL1J1bnRpbWVFbmFibGVkRmVhdHVyZXMuaCBiL1dl
YkNvcmUvYmluZGluZ3MvZ2VuZXJpYy9SdW50aW1lRW5hYmxlZEZlYXR1cmVzLmgKaW5kZXggMGFi
NTEyMC4uMzM0MzJjZSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9iaW5kaW5ncy9nZW5lcmljL1J1bnRp
bWVFbmFibGVkRmVhdHVyZXMuaAorKysgYi9XZWJDb3JlL2JpbmRpbmdzL2dlbmVyaWMvUnVudGlt
ZUVuYWJsZWRGZWF0dXJlcy5oCkBAIC0xMDIsNiArMTAyLDcgQEAgcHVibGljOgogICAgIHN0YXRp
YyBib29sIGludDMyQXJyYXlFbmFibGVkKCkgeyByZXR1cm4gaXNXZWJHTEVuYWJsZWQ7IH0KICAg
ICBzdGF0aWMgYm9vbCB1aW50MzJBcnJheUVuYWJsZWQoKSB7IHJldHVybiBpc1dlYkdMRW5hYmxl
ZDsgfQogICAgIHN0YXRpYyBib29sIGZsb2F0MzJBcnJheUVuYWJsZWQoKSB7IHJldHVybiBpc1dl
YkdMRW5hYmxlZDsgfQorICAgIHN0YXRpYyBib29sIGRhdGFWaWV3RW5hYmxlZCgpIHsgcmV0dXJu
IGlzV2ViR0xFbmFibGVkOyB9CiAgICAgc3RhdGljIGJvb2wgd2ViR0xSZW5kZXJpbmdDb250ZXh0
RW5hYmxlZCgpIHsgcmV0dXJuIGlzV2ViR0xFbmFibGVkOyB9CiAgICAgc3RhdGljIGJvb2wgd2Vi
R0xBcnJheUJ1ZmZlckVuYWJsZWQoKSB7IHJldHVybiBpc1dlYkdMRW5hYmxlZDsgfQogICAgIHN0
YXRpYyBib29sIHdlYkdMQnl0ZUFycmF5RW5hYmxlZCgpIHsgcmV0dXJuIGlzV2ViR0xFbmFibGVk
OyB9CmRpZmYgLS1naXQgYS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTQXJyYXlCdWZmZXJWaWV3SGVs
cGVyLmggYi9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTQXJyYXlCdWZmZXJWaWV3SGVscGVyLmgKaW5k
ZXggYmE3MTJjNi4uMjdhYjg0MCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0Fy
cmF5QnVmZmVyVmlld0hlbHBlci5oCisrKyBiL1dlYkNvcmUvYmluZGluZ3MvanMvSlNBcnJheUJ1
ZmZlclZpZXdIZWxwZXIuaApAQCAtODYsMTYgKzg2LDMzIEBAIEpTQzo6SlNWYWx1ZSBzZXRXZWJH
TEFycmF5SGVscGVyKEpTQzo6RXhlY1N0YXRlKiBleGVjLCBUKiBpbXBsLCBUKiAoKmNvbnZlcnNp
b25GCiAvLyBUZW1wbGF0ZSBmdW5jdGlvbiB1c2VkIGJ5IFhYWEFycmF5Q29uc3RydWN0b3JzLgog
Ly8gSWYgdGhpcyByZXR1cm5zIDAsIGl0IHdpbGwgYWxyZWFkeSBoYXZlIHRocm93biBhIEphdmFT
Y3JpcHQgZXhjZXB0aW9uLgogdGVtcGxhdGU8Y2xhc3MgQywgdHlwZW5hbWUgVD4KLVBhc3NSZWZQ
dHI8QXJyYXlCdWZmZXJWaWV3PiBjb25zdHJ1Y3RBcnJheUJ1ZmZlclZpZXcoSlNDOjpFeGVjU3Rh
dGUqIGV4ZWMpCitQYXNzUmVmUHRyPEM+IGNvbnN0cnVjdEFycmF5QnVmZmVyVmlld1dpdGhBcnJh
eUJ1ZmZlckFyZ3VtZW50KEpTQzo6RXhlY1N0YXRlKiBleGVjKQoreworICAgIFJlZlB0cjxBcnJh
eUJ1ZmZlcj4gYnVmZmVyID0gdG9BcnJheUJ1ZmZlcihleGVjLT5hcmd1bWVudCgwKSk7CisgICAg
aWYgKCFidWZmZXIpCisgICAgICAgIHJldHVybiAwOworCisgICAgdW5zaWduZWQgb2Zmc2V0ID0g
KGV4ZWMtPmFyZ3VtZW50Q291bnQoKSA+IDEpID8gZXhlYy0+YXJndW1lbnQoMSkudG9VSW50MzIo
ZXhlYykgOiAwOworICAgIGlmICgoYnVmZmVyLT5ieXRlTGVuZ3RoKCkgLSBvZmZzZXQpICUgc2l6
ZW9mKFQpKQorICAgICAgICB0aHJvd0Vycm9yKGV4ZWMsIGNyZWF0ZVJhbmdlRXJyb3IoZXhlYywg
IkFycmF5QnVmZmVyIGxlbmd0aCBtaW51cyB0aGUgYnl0ZU9mZnNldCBpcyBub3QgYSBtdWx0aXBs
ZSBvZiB0aGUgZWxlbWVudCBzaXplLiIpKTsKKyAgICB1bnNpZ25lZCBpbnQgbGVuZ3RoID0gKGJ1
ZmZlci0+Ynl0ZUxlbmd0aCgpIC0gb2Zmc2V0KSAvIHNpemVvZihUKTsKKyAgICBpZiAoZXhlYy0+
YXJndW1lbnRDb3VudCgpID4gMikKKyAgICAgICAgbGVuZ3RoID0gZXhlYy0+YXJndW1lbnQoMiku
dG9VSW50MzIoZXhlYyk7CisgICAgUGFzc1JlZlB0cjxDPiBhcnJheSA9IEM6OmNyZWF0ZShidWZm
ZXIsIG9mZnNldCwgbGVuZ3RoKTsKKyAgICBpZiAoIWFycmF5KQorICAgICAgICBzZXRET01FeGNl
cHRpb24oZXhlYywgSU5ERVhfU0laRV9FUlIpOworICAgIHJldHVybiBhcnJheTsKK30KKwordGVt
cGxhdGU8Y2xhc3MgQywgdHlwZW5hbWUgVD4KK1Bhc3NSZWZQdHI8Qz4gY29uc3RydWN0QXJyYXlC
dWZmZXJWaWV3KEpTQzo6RXhlY1N0YXRlKiBleGVjKQogewogICAgIC8vIFRoZXJlIGFyZSAzIGNv
bnN0cnVjdG9yczoKICAgICAvLwogICAgIC8vICAxKSAoaW4gaW50IHNpemUpCiAgICAgLy8gIDIp
IChpbiBBcnJheUJ1ZmZlciBidWZmZXIsIFtPcHRpb25hbF0gaW4gaW50IG9mZnNldCwgW09wdGlv
bmFsXSBpbiB1bnNpZ25lZCBpbnQgbGVuZ3RoKQogICAgIC8vICAzKSAoaW4gc2VxdWVuY2U8VD4p
IC0gVGhpcyBlbmRzIHVwIGJlaW5nIGEgSlMgImFycmF5LWxpa2UiIG9iamVjdAotICAgIC8vCi0g
ICAgUmVmUHRyPEM+IGFycmF5T2JqZWN0OwotICAgIAorICAgIC8vICAgIAogICAgIC8vIEZvciB0
aGUgMCBhcmdzIGNhc2UsIGp1c3QgY3JlYXRlIGEgemVyby1sZW5ndGggdmlldy4gV2UgY291bGQK
ICAgICAvLyBjb25zaWRlciByYWlzaW5nIGEgU3ludGF4RXJyb3IgZm9yIHRoaXMgY2FzZSwgYnV0
IG5vdCBhbGwKICAgICAvLyBKYXZhU2NyaXB0IERPTSBiaW5kaW5ncyBjYW4gZGlzdGluZ3Vpc2gg
YmV0d2VlbiAibmV3CkBAIC0xMTIsMjAgKzEyOSwxMCBAQCBQYXNzUmVmUHRyPEFycmF5QnVmZmVy
Vmlldz4gY29uc3RydWN0QXJyYXlCdWZmZXJWaWV3KEpTQzo6RXhlY1N0YXRlKiBleGVjKQogICAg
IH0KIAogICAgIGlmIChleGVjLT5hcmd1bWVudCgwKS5pc09iamVjdCgpKSB7Ci0gICAgICAgIFJl
ZlB0cjxBcnJheUJ1ZmZlcj4gYnVmZmVyID0gdG9BcnJheUJ1ZmZlcihleGVjLT5hcmd1bWVudCgw
KSk7Ci0gICAgICAgIGlmIChidWZmZXIpIHsKLSAgICAgICAgICAgIHVuc2lnbmVkIG9mZnNldCA9
IChleGVjLT5hcmd1bWVudENvdW50KCkgPiAxKSA/IGV4ZWMtPmFyZ3VtZW50KDEpLnRvVUludDMy
KGV4ZWMpIDogMDsKLSAgICAgICAgICAgIGlmICgoYnVmZmVyLT5ieXRlTGVuZ3RoKCkgLSBvZmZz
ZXQpICUgc2l6ZW9mKFQpKQotICAgICAgICAgICAgICAgIHRocm93RXJyb3IoZXhlYywgY3JlYXRl
UmFuZ2VFcnJvcihleGVjLCAiQXJyYXlCdWZmZXIgbGVuZ3RoIG1pbnVzIHRoZSBieXRlT2Zmc2V0
IGlzIG5vdCBhIG11bHRpcGxlIG9mIHRoZSBlbGVtZW50IHNpemUuIikpOwotICAgICAgICAgICAg
dW5zaWduZWQgaW50IGxlbmd0aCA9IChidWZmZXItPmJ5dGVMZW5ndGgoKSAtIG9mZnNldCkgLyBz
aXplb2YoVCk7Ci0gICAgICAgICAgICBpZiAoZXhlYy0+YXJndW1lbnRDb3VudCgpID4gMikKLSAg
ICAgICAgICAgICAgICBsZW5ndGggPSBleGVjLT5hcmd1bWVudCgyKS50b1VJbnQzMihleGVjKTsK
LSAgICAgICAgICAgIFBhc3NSZWZQdHI8QXJyYXlCdWZmZXJWaWV3PiBhcnJheSA9IEM6OmNyZWF0
ZShidWZmZXIsIG9mZnNldCwgbGVuZ3RoKTsKLSAgICAgICAgICAgIGlmICghYXJyYXkpCi0gICAg
ICAgICAgICAgICAgc2V0RE9NRXhjZXB0aW9uKGV4ZWMsIElOREVYX1NJWkVfRVJSKTsKLSAgICAg
ICAgICAgIHJldHVybiBhcnJheTsKLSAgICAgICAgfQotICAgICAgICAKKyAgICAgICAgUmVmUHRy
PEM+IHZpZXcgPSBjb25zdHJ1Y3RBcnJheUJ1ZmZlclZpZXdXaXRoQXJyYXlCdWZmZXJBcmd1bWVu
dDxDLCBUPihleGVjKTsKKyAgICAgICAgaWYgKHZpZXcpCisgICAgICAgICAgICByZXR1cm4gdmll
dzsKKyAgICAKICAgICAgICAgSlNDOjpKU09iamVjdCogYXJyYXkgPSBhc09iamVjdChleGVjLT5h
cmd1bWVudCgwKSk7CiAgICAgICAgIHVuc2lnbmVkIGxlbmd0aCA9IGFycmF5LT5nZXQoZXhlYywg
SlNDOjpJZGVudGlmaWVyKGV4ZWMsICJsZW5ndGgiKSkudG9VSW50MzIoZXhlYyk7CiAgICAgICAg
IHZvaWQqIHRlbXBWYWx1ZXM7CkBAIC0xNDIsMTQgKzE0OSwxNCBAQCBQYXNzUmVmUHRyPEFycmF5
QnVmZmVyVmlldz4gY29uc3RydWN0QXJyYXlCdWZmZXJWaWV3KEpTQzo6RXhlY1N0YXRlKiBleGVj
KQogICAgICAgICAgICAgdmFsdWVzLmdldCgpW2ldID0gc3RhdGljX2Nhc3Q8VD4odi50b051bWJl
cihleGVjKSk7CiAgICAgICAgIH0KICAgICAgICAgCi0gICAgICAgIFBhc3NSZWZQdHI8QXJyYXlC
dWZmZXJWaWV3PiByZXN1bHQgPSBDOjpjcmVhdGUodmFsdWVzLmdldCgpLCBsZW5ndGgpOworICAg
ICAgICBQYXNzUmVmUHRyPEM+IHJlc3VsdCA9IEM6OmNyZWF0ZSh2YWx1ZXMuZ2V0KCksIGxlbmd0
aCk7CiAgICAgICAgIGlmICghcmVzdWx0KQogICAgICAgICAgICAgc2V0RE9NRXhjZXB0aW9uKGV4
ZWMsIElOREVYX1NJWkVfRVJSKTsKICAgICAgICAgcmV0dXJuIHJlc3VsdDsKICAgICB9Ci0gICAg
CisKICAgICBpbnQgbGVuZ3RoID0gZXhlYy0+YXJndW1lbnQoMCkudG9JbnQzMihleGVjKTsKLSAg
ICBQYXNzUmVmUHRyPEFycmF5QnVmZmVyVmlldz4gcmVzdWx0OworICAgIFBhc3NSZWZQdHI8Qz4g
cmVzdWx0OwogICAgIGlmIChsZW5ndGggPj0gMCkKICAgICAgICAgcmVzdWx0ID0gQzo6Y3JlYXRl
KHN0YXRpY19jYXN0PHVuc2lnbmVkPihsZW5ndGgpKTsKICAgICBpZiAoIXJlc3VsdCkKZGlmZiAt
LWdpdCBhL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01XaW5kb3dDdXN0b20uY3BwIGIvV2ViQ29y
ZS9iaW5kaW5ncy9qcy9KU0RPTVdpbmRvd0N1c3RvbS5jcHAKaW5kZXggNzExOWVhNi4uOTVmY2Rj
MSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTVdpbmRvd0N1c3RvbS5jcHAK
KysrIGIvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTVdpbmRvd0N1c3RvbS5jcHAKQEAgLTUzLDYg
KzUzLDcgQEAKIAogI2lmIEVOQUJMRSgzRF9DQU5WQVMpIHx8IEVOQUJMRShCTE9CKQogI2luY2x1
ZGUgIkpTQXJyYXlCdWZmZXIuaCIKKyNpbmNsdWRlICJKU0RhdGFWaWV3LmgiCiAjaW5jbHVkZSAi
SlNJbnQ4QXJyYXkuaCIKICNpbmNsdWRlICJKU1VpbnQ4QXJyYXkuaCIKICNpbmNsdWRlICJKU0lu
dDMyQXJyYXkuaCIKQEAgLTYwNiw2ICs2MDcsMTAgQEAgSlNWYWx1ZSBKU0RPTVdpbmRvdzo6Zmxv
YXQzMkFycmF5KEV4ZWNTdGF0ZSogZXhlYykgY29uc3QKICAgICByZXR1cm4gZ2V0RE9NQ29uc3Ry
dWN0b3I8SlNGbG9hdDMyQXJyYXlDb25zdHJ1Y3Rvcj4oZXhlYywgdGhpcyk7CiB9CiAKK0pTVmFs
dWUgSlNET01XaW5kb3c6OmRhdGFWaWV3KEV4ZWNTdGF0ZSogZXhlYykgY29uc3QKK3sKKyAgICBy
ZXR1cm4gZ2V0RE9NQ29uc3RydWN0b3I8SlNEYXRhVmlld0NvbnN0cnVjdG9yPihleGVjLCB0aGlz
KTsKK30KICNlbmRpZgogIAogSlNWYWx1ZSBKU0RPTVdpbmRvdzo6eG1sSHR0cFJlcXVlc3QoRXhl
Y1N0YXRlKiBleGVjKSBjb25zdApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0Rh
dGFWaWV3Q3VzdG9tLmNwcCBiL1dlYkNvcmUvYmluZGluZ3MvanMvSlNEYXRhVmlld0N1c3RvbS5j
cHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMTMxYTI1OQotLS0gL2Rldi9u
dWxsCisrKyBiL1dlYkNvcmUvYmluZGluZ3MvanMvSlNEYXRhVmlld0N1c3RvbS5jcHAKQEAgLTAs
MCArMSwxNTQgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgR29vZ2xlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKKyAqIG1l
dDoKKyAqCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogICAgICogUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQorICogY29weXJpZ2h0IG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
cgorICogaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZQorICogZGlzdHJpYnV0aW9uLgorICogICAgICogTmVpdGhlciB0aGUgbmFtZSBv
ZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cworICogY29udHJpYnV0b3JzIG1heSBi
ZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KKyAqIHRo
aXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisg
KgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMg
QU5EIENPTlRSSUJVVE9SUworICogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFRIRSBJTVBMSUVE
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgorICogQSBQQVJU
SUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZ
UklHSFQKKyAqIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLAorICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFV
RU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgUFJPQ1VS
RU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCisgKiBE
QVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORCBPTiBBTlkKKyAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisKKyNpZiBFTkFCTEUoM0RfQ0FOVkFTKSB8
fCBFTkFCTEUoQkxPQikKKworI2luY2x1ZGUgIkpTRGF0YVZpZXcuaCIKKworI2luY2x1ZGUgIkRh
dGFWaWV3LmgiCisjaW5jbHVkZSAiSlNBcnJheUJ1ZmZlclZpZXdIZWxwZXIuaCIKKwordXNpbmcg
bmFtZXNwYWNlIEpTQzsKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitKU1ZhbHVlIHRvSlMoRXhl
Y1N0YXRlKiBleGVjLCBKU0RPTUdsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBEYXRhVmlldyog
b2JqZWN0KQoreworICAgIHJldHVybiBnZXRET01PYmplY3RXcmFwcGVyPEpTRGF0YVZpZXc+KGV4
ZWMsIGdsb2JhbE9iamVjdCwgb2JqZWN0KTsKK30KKworRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1Rf
Q0FMTCBKU0RhdGFWaWV3Q29uc3RydWN0b3I6OmNvbnN0cnVjdEpTRGF0YVZpZXcoRXhlY1N0YXRl
KiBleGVjKQoreworICAgIGlmIChleGVjLT5hcmd1bWVudCgwKS5pc051bGwoKSB8fCAhZXhlYy0+
YXJndW1lbnQoMCkuaXNPYmplY3QoKSkgeworICAgICAgICB0aHJvd1R5cGVFcnJvcihleGVjKTsK
KyAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShKU1ZhbHVlKCkpOworICAgIH0KKworICAg
IFJlZlB0cjxEYXRhVmlldz4gdmlldyA9IGNvbnN0cnVjdEFycmF5QnVmZmVyVmlld1dpdGhBcnJh
eUJ1ZmZlckFyZ3VtZW50PERhdGFWaWV3LCBjaGFyPihleGVjKTsKKyAgICBpZiAoIXZpZXcuZ2V0
KCkpIHsKKyAgICAgICAgdGhyb3dUeXBlRXJyb3IoZXhlYyk7CisgICAgICAgIHJldHVybiBKU1Zh
bHVlOjplbmNvZGUoSlNWYWx1ZSgpKTsKKyAgICB9CisKKyAgICBKU0RhdGFWaWV3Q29uc3RydWN0
b3IqIGpzQ29uc3RydWN0b3IgPSBzdGF0aWNfY2FzdDxKU0RhdGFWaWV3Q29uc3RydWN0b3IqPihl
eGVjLT5jYWxsZWUoKSk7CisgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShhc09iamVjdCh0b0pT
KGV4ZWMsIGpzQ29uc3RydWN0b3ItPmdsb2JhbE9iamVjdCgpLCB2aWV3LmdldCgpKSkpOworfQor
CitKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgSlNEYXRhVmlldzo6Z2V0SW50OChFeGVjU3RhdGUqIGV4
ZWMpCit7CisgICAgSlNWYWx1ZSB0aGlzVmFsdWUgPSBleGVjLT5ob3N0VGhpc1ZhbHVlKCk7Cisg
ICAgaWYgKCF0aGlzVmFsdWUuaW5oZXJpdHMoJkpTRGF0YVZpZXc6OnNfaW5mbykpCisgICAgICAg
IHJldHVybiB0aHJvd1R5cGVFcnJvcihleGVjKTsKKyAgICBKU0RhdGFWaWV3KiBjYXN0ZWRUaGlz
ID0gc3RhdGljX2Nhc3Q8SlNEYXRhVmlldyo+KGFzT2JqZWN0KHRoaXNWYWx1ZSkpOworICAgIERh
dGFWaWV3KiBpbXAgPSBzdGF0aWNfY2FzdDxEYXRhVmlldyo+KGNhc3RlZFRoaXMtPmltcGwoKSk7
CisgICAgaWYgKGV4ZWMtPmFyZ3VtZW50Q291bnQoKSA8IDEpCisgICAgICAgIHJldHVybiB0aHJv
d0Vycm9yKGV4ZWMsIGNyZWF0ZVN5bnRheEVycm9yKGV4ZWMsICJOb3QgZW5vdWdoIGFyZ3VtZW50
cyIpKTsKKyAgICBFeGNlcHRpb25Db2RlIGVjID0gMDsKKyAgICB1bnNpZ25lZCBieXRlT2Zmc2V0
ID0gZXhlYy0+YXJndW1lbnQoMCkudG9VSW50MzIoZXhlYyk7CisgICAgaWYgKGV4ZWMtPmhhZEV4
Y2VwdGlvbigpKQorICAgICAgICByZXR1cm4ganNVbmRlZmluZWQoKTsKKworICAgIEpTQzo6SlNW
YWx1ZSByZXN1bHQgPSBqc051bWJlcihpbXAtPmdldEludDgoYnl0ZU9mZnNldCwgZWMpKTsKKyAg
ICBzZXRET01FeGNlcHRpb24oZXhlYywgZWMpOworICAgIHJldHVybiByZXN1bHQ7Cit9CisKK0pT
VmFsdWUgSlNDX0hPU1RfQ0FMTCBKU0RhdGFWaWV3OjpnZXRVaW50OChFeGVjU3RhdGUqIGV4ZWMp
Cit7CisgICAgSlNWYWx1ZSB0aGlzVmFsdWUgPSBleGVjLT5ob3N0VGhpc1ZhbHVlKCk7CisgICAg
aWYgKCF0aGlzVmFsdWUuaW5oZXJpdHMoJkpTRGF0YVZpZXc6OnNfaW5mbykpCisgICAgICAgIHJl
dHVybiB0aHJvd1R5cGVFcnJvcihleGVjKTsKKyAgICBKU0RhdGFWaWV3KiBjYXN0ZWRUaGlzID0g
c3RhdGljX2Nhc3Q8SlNEYXRhVmlldyo+KGFzT2JqZWN0KHRoaXNWYWx1ZSkpOworICAgIERhdGFW
aWV3KiBpbXAgPSBzdGF0aWNfY2FzdDxEYXRhVmlldyo+KGNhc3RlZFRoaXMtPmltcGwoKSk7Cisg
ICAgaWYgKGV4ZWMtPmFyZ3VtZW50Q291bnQoKSA8IDEpCisgICAgICAgIHJldHVybiB0aHJvd0Vy
cm9yKGV4ZWMsIGNyZWF0ZVN5bnRheEVycm9yKGV4ZWMsICJOb3QgZW5vdWdoIGFyZ3VtZW50cyIp
KTsKKyAgICBFeGNlcHRpb25Db2RlIGVjID0gMDsKKyAgICB1bnNpZ25lZCBieXRlT2Zmc2V0ID0g
ZXhlYy0+YXJndW1lbnQoMCkudG9VSW50MzIoZXhlYyk7CisgICAgaWYgKGV4ZWMtPmhhZEV4Y2Vw
dGlvbigpKQorICAgICAgICByZXR1cm4ganNVbmRlZmluZWQoKTsKKworICAgIEpTQzo6SlNWYWx1
ZSByZXN1bHQgPSBqc051bWJlcihpbXAtPmdldFVpbnQ4KGJ5dGVPZmZzZXQsIGVjKSk7CisgICAg
c2V0RE9NRXhjZXB0aW9uKGV4ZWMsIGVjKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorCitKU1Zh
bHVlIEpTQ19IT1NUX0NBTEwgSlNEYXRhVmlldzo6c2V0SW50OChFeGVjU3RhdGUqIGV4ZWMpCit7
CisgICAgSlNWYWx1ZSB0aGlzVmFsdWUgPSBleGVjLT5ob3N0VGhpc1ZhbHVlKCk7CisgICAgaWYg
KCF0aGlzVmFsdWUuaW5oZXJpdHMoJkpTRGF0YVZpZXc6OnNfaW5mbykpCisgICAgICAgIHJldHVy
biB0aHJvd1R5cGVFcnJvcihleGVjKTsKKyAgICBKU0RhdGFWaWV3KiBjYXN0ZWRUaGlzID0gc3Rh
dGljX2Nhc3Q8SlNEYXRhVmlldyo+KGFzT2JqZWN0KHRoaXNWYWx1ZSkpOworICAgIERhdGFWaWV3
KiBpbXAgPSBzdGF0aWNfY2FzdDxEYXRhVmlldyo+KGNhc3RlZFRoaXMtPmltcGwoKSk7CisgICAg
aWYgKGV4ZWMtPmFyZ3VtZW50Q291bnQoKSA8IDIpCisgICAgICAgIHJldHVybiB0aHJvd0Vycm9y
KGV4ZWMsIGNyZWF0ZVN5bnRheEVycm9yKGV4ZWMsICJOb3QgZW5vdWdoIGFyZ3VtZW50cyIpKTsK
KyAgICBFeGNlcHRpb25Db2RlIGVjID0gMDsKKyAgICB1bnNpZ25lZCBieXRlT2Zmc2V0ID0gZXhl
Yy0+YXJndW1lbnQoMCkudG9VSW50MzIoZXhlYyk7CisgICAgaWYgKGV4ZWMtPmhhZEV4Y2VwdGlv
bigpKQorICAgICAgICByZXR1cm4ganNVbmRlZmluZWQoKTsKKyAgICBpbnQgdmFsdWUgPSBleGVj
LT5hcmd1bWVudCgxKS50b0ludDMyKGV4ZWMpOworICAgIGlmIChleGVjLT5oYWRFeGNlcHRpb24o
KSkKKyAgICAgICAgcmV0dXJuIGpzVW5kZWZpbmVkKCk7CisgICAgaWYgKHZhbHVlIDwgLTEyOCB8
fCB2YWx1ZSA+IDEyNykKKyAgICAgICAgcmV0dXJuIHRocm93RXJyb3IoZXhlYywgY3JlYXRlU3lu
dGF4RXJyb3IoZXhlYywgIlRoZSB2YWx1ZSB0byBzZXQgdG8gaXMgb3V0IG9mIHJhbmdlIikpOwor
CisgICAgaW1wLT5zZXRJbnQ4KGJ5dGVPZmZzZXQsIHN0YXRpY19jYXN0PHVuc2lnbmVkIGNoYXI+
KHZhbHVlKSwgZWMpOworICAgIHNldERPTUV4Y2VwdGlvbihleGVjLCBlYyk7CisgICAgcmV0dXJu
IGpzVW5kZWZpbmVkKCk7Cit9CisKK0pTVmFsdWUgSlNDX0hPU1RfQ0FMTCBKU0RhdGFWaWV3Ojpz
ZXRVaW50OChFeGVjU3RhdGUqIGV4ZWMpCit7CisgICAgSlNWYWx1ZSB0aGlzVmFsdWUgPSBleGVj
LT5ob3N0VGhpc1ZhbHVlKCk7CisgICAgaWYgKCF0aGlzVmFsdWUuaW5oZXJpdHMoJkpTRGF0YVZp
ZXc6OnNfaW5mbykpCisgICAgICAgIHJldHVybiB0aHJvd1R5cGVFcnJvcihleGVjKTsKKyAgICBK
U0RhdGFWaWV3KiBjYXN0ZWRUaGlzID0gc3RhdGljX2Nhc3Q8SlNEYXRhVmlldyo+KGFzT2JqZWN0
KHRoaXNWYWx1ZSkpOworICAgIERhdGFWaWV3KiBpbXAgPSBzdGF0aWNfY2FzdDxEYXRhVmlldyo+
KGNhc3RlZFRoaXMtPmltcGwoKSk7CisgICAgaWYgKGV4ZWMtPmFyZ3VtZW50Q291bnQoKSA8IDIp
CisgICAgICAgIHJldHVybiB0aHJvd0Vycm9yKGV4ZWMsIGNyZWF0ZVN5bnRheEVycm9yKGV4ZWMs
ICJOb3QgZW5vdWdoIGFyZ3VtZW50cyIpKTsKKyAgICBFeGNlcHRpb25Db2RlIGVjID0gMDsKKyAg
ICB1bnNpZ25lZCBieXRlT2Zmc2V0ID0gZXhlYy0+YXJndW1lbnQoMCkudG9VSW50MzIoZXhlYyk7
CisgICAgaWYgKGV4ZWMtPmhhZEV4Y2VwdGlvbigpKQorICAgICAgICByZXR1cm4ganNVbmRlZmlu
ZWQoKTsKKyAgICBpbnQgdmFsdWUgPSBleGVjLT5hcmd1bWVudCgxKS50b0ludDMyKGV4ZWMpOwor
ICAgIGlmIChleGVjLT5oYWRFeGNlcHRpb24oKSkKKyAgICAgICAgcmV0dXJuIGpzVW5kZWZpbmVk
KCk7CisgICAgaWYgKHZhbHVlIDwgMCB8fCB2YWx1ZSA+IDI1NSkKKyAgICAgICAgcmV0dXJuIHRo
cm93RXJyb3IoZXhlYywgY3JlYXRlU3ludGF4RXJyb3IoZXhlYywgIlRoZSB2YWx1ZSB0byBzZXQg
dG8gaXMgb3V0IG9mIHJhbmdlIikpOworCisgICAgaW1wLT5zZXRVaW50OChieXRlT2Zmc2V0LCBz
dGF0aWNfY2FzdDx1bnNpZ25lZCBjaGFyPih2YWx1ZSksIGVjKTsKKyAgICBzZXRET01FeGNlcHRp
b24oZXhlYywgZWMpOworICAgIHJldHVybiBqc1VuZGVmaW5lZCgpOworfQorCit9IC8vIG5hbWVz
cGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBFTkFCTEUoM0RfQ0FOVkFTKSB8fCBFTkFCTEUoQkxP
QikKZGlmZiAtLWdpdCBhL1dlYkNvcmUvYmluZGluZ3MvanMvSlNGbG9hdDMyQXJyYXlDdXN0b20u
Y3BwIGIvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0Zsb2F0MzJBcnJheUN1c3RvbS5jcHAKaW5kZXgg
NjcxZWU2OC4uZThhMTY1YyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0Zsb2F0
MzJBcnJheUN1c3RvbS5jcHAKKysrIGIvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0Zsb2F0MzJBcnJh
eUN1c3RvbS5jcHAKQEAgLTU0LDcgKzU0LDcgQEAgSlNDOjpKU1ZhbHVlIEpTRmxvYXQzMkFycmF5
OjpzZXQoSlNDOjpFeGVjU3RhdGUqIGV4ZWMpCiBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxM
IEpTRmxvYXQzMkFycmF5Q29uc3RydWN0b3I6OmNvbnN0cnVjdEpTRmxvYXQzMkFycmF5KEV4ZWNT
dGF0ZSogZXhlYykKIHsKICAgICBKU0Zsb2F0MzJBcnJheUNvbnN0cnVjdG9yKiBqc0NvbnN0cnVj
dG9yID0gc3RhdGljX2Nhc3Q8SlNGbG9hdDMyQXJyYXlDb25zdHJ1Y3Rvcio+KGV4ZWMtPmNhbGxl
ZSgpKTsKLSAgICBSZWZQdHI8RmxvYXQzMkFycmF5PiBhcnJheSA9IHN0YXRpY19jYXN0PEZsb2F0
MzJBcnJheSo+KGNvbnN0cnVjdEFycmF5QnVmZmVyVmlldzxGbG9hdDMyQXJyYXksIGZsb2F0Pihl
eGVjKS5nZXQoKSk7CisgICAgUmVmUHRyPEZsb2F0MzJBcnJheT4gYXJyYXkgPSBjb25zdHJ1Y3RB
cnJheUJ1ZmZlclZpZXc8RmxvYXQzMkFycmF5LCBmbG9hdD4oZXhlYyk7CiAgICAgaWYgKCFhcnJh
eS5nZXQoKSkKICAgICAgICAgLy8gRXhjZXB0aW9uIGhhcyBhbHJlYWR5IGJlZW4gdGhyb3duLgog
ICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKEpTVmFsdWUoKSk7CmRpZmYgLS1naXQgYS9X
ZWJDb3JlL2JpbmRpbmdzL2pzL0pTSW50MTZBcnJheUN1c3RvbS5jcHAgYi9XZWJDb3JlL2JpbmRp
bmdzL2pzL0pTSW50MTZBcnJheUN1c3RvbS5jcHAKaW5kZXggNzk3NTY4Yy4uNGQzOGRhMSAxMDA2
NDQKLS0tIGEvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0ludDE2QXJyYXlDdXN0b20uY3BwCisrKyBi
L1dlYkNvcmUvYmluZGluZ3MvanMvSlNJbnQxNkFycmF5Q3VzdG9tLmNwcApAQCAtNTQsNyArNTQs
NyBAQCBKU0M6OkpTVmFsdWUgSlNJbnQxNkFycmF5OjpzZXQoSlNDOjpFeGVjU3RhdGUqIGV4ZWMp
CiBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIEpTSW50MTZBcnJheUNvbnN0cnVjdG9yOjpj
b25zdHJ1Y3RKU0ludDE2QXJyYXkoRXhlY1N0YXRlKiBleGVjKQogewogICAgIEpTSW50MTZBcnJh
eUNvbnN0cnVjdG9yKiBqc0NvbnN0cnVjdG9yID0gc3RhdGljX2Nhc3Q8SlNJbnQxNkFycmF5Q29u
c3RydWN0b3IqPihleGVjLT5jYWxsZWUoKSk7Ci0gICAgUmVmUHRyPEludDE2QXJyYXk+IGFycmF5
ID0gc3RhdGljX2Nhc3Q8SW50MTZBcnJheSo+KGNvbnN0cnVjdEFycmF5QnVmZmVyVmlldzxJbnQx
NkFycmF5LCBzaG9ydD4oZXhlYykuZ2V0KCkpOworICAgIFJlZlB0cjxJbnQxNkFycmF5PiBhcnJh
eSA9IGNvbnN0cnVjdEFycmF5QnVmZmVyVmlldzxJbnQxNkFycmF5LCBzaG9ydD4oZXhlYyk7CiAg
ICAgaWYgKCFhcnJheS5nZXQoKSkKICAgICAgICAgLy8gRXhjZXB0aW9uIGhhcyBhbHJlYWR5IGJl
ZW4gdGhyb3duLgogICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKEpTVmFsdWUoKSk7CmRp
ZmYgLS1naXQgYS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTSW50MzJBcnJheUN1c3RvbS5jcHAgYi9X
ZWJDb3JlL2JpbmRpbmdzL2pzL0pTSW50MzJBcnJheUN1c3RvbS5jcHAKaW5kZXggNTNlNmVjNi4u
YzU4ZmMwZSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0ludDMyQXJyYXlDdXN0
b20uY3BwCisrKyBiL1dlYkNvcmUvYmluZGluZ3MvanMvSlNJbnQzMkFycmF5Q3VzdG9tLmNwcApA
QCAtNTQsNyArNTQsNyBAQCBKU0M6OkpTVmFsdWUgSlNJbnQzMkFycmF5OjpzZXQoSlNDOjpFeGVj
U3RhdGUqIGV4ZWMpCiBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIEpTSW50MzJBcnJheUNv
bnN0cnVjdG9yOjpjb25zdHJ1Y3RKU0ludDMyQXJyYXkoRXhlY1N0YXRlKiBleGVjKQogewogICAg
IEpTSW50MzJBcnJheUNvbnN0cnVjdG9yKiBqc0NvbnN0cnVjdG9yID0gc3RhdGljX2Nhc3Q8SlNJ
bnQzMkFycmF5Q29uc3RydWN0b3IqPihleGVjLT5jYWxsZWUoKSk7Ci0gICAgUmVmUHRyPEludDMy
QXJyYXk+IGFycmF5ID0gc3RhdGljX2Nhc3Q8SW50MzJBcnJheSo+KGNvbnN0cnVjdEFycmF5QnVm
ZmVyVmlldzxJbnQzMkFycmF5LCBpbnQ+KGV4ZWMpLmdldCgpKTsKKyAgICBSZWZQdHI8SW50MzJB
cnJheT4gYXJyYXkgPSBjb25zdHJ1Y3RBcnJheUJ1ZmZlclZpZXc8SW50MzJBcnJheSwgaW50Pihl
eGVjKTsKICAgICBpZiAoIWFycmF5LmdldCgpKQogICAgICAgICAvLyBFeGNlcHRpb24gaGFzIGFs
cmVhZHkgYmVlbiB0aHJvd24uCiAgICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoSlNWYWx1
ZSgpKTsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvYmluZGluZ3MvanMvSlNJbnQ4QXJyYXlDdXN0b20u
Y3BwIGIvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0ludDhBcnJheUN1c3RvbS5jcHAKaW5kZXggNzU1
NmQ2YS4uMDg1MmNkYiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0ludDhBcnJh
eUN1c3RvbS5jcHAKKysrIGIvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0ludDhBcnJheUN1c3RvbS5j
cHAKQEAgLTU1LDcgKzU1LDcgQEAgSlNDOjpKU1ZhbHVlIEpTSW50OEFycmF5OjpzZXQoSlNDOjpF
eGVjU3RhdGUqIGV4ZWMpCiBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIEpTSW50OEFycmF5
Q29uc3RydWN0b3I6OmNvbnN0cnVjdEpTSW50OEFycmF5KEV4ZWNTdGF0ZSogZXhlYykKIHsKICAg
ICBKU0ludDhBcnJheUNvbnN0cnVjdG9yKiBqc0NvbnN0cnVjdG9yID0gc3RhdGljX2Nhc3Q8SlNJ
bnQ4QXJyYXlDb25zdHJ1Y3Rvcio+KGV4ZWMtPmNhbGxlZSgpKTsKLSAgICBSZWZQdHI8SW50OEFy
cmF5PiBhcnJheSA9IHN0YXRpY19jYXN0PEludDhBcnJheSo+KGNvbnN0cnVjdEFycmF5QnVmZmVy
VmlldzxJbnQ4QXJyYXksIHNpZ25lZCBjaGFyPihleGVjKS5nZXQoKSk7CisgICAgUmVmUHRyPElu
dDhBcnJheT4gYXJyYXkgPSBjb25zdHJ1Y3RBcnJheUJ1ZmZlclZpZXc8SW50OEFycmF5LCBzaWdu
ZWQgY2hhcj4oZXhlYyk7CiAgICAgaWYgKCFhcnJheS5nZXQoKSkKICAgICAgICAgLy8gRXhjZXB0
aW9uIGhhcyBhbHJlYWR5IGJlZW4gdGhyb3duLgogICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5j
b2RlKEpTVmFsdWUoKSk7CmRpZmYgLS1naXQgYS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTVWludDE2
QXJyYXlDdXN0b20uY3BwIGIvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1VpbnQxNkFycmF5Q3VzdG9t
LmNwcAppbmRleCA5ZjEyZmE3Li5kNjc1NDkwIDEwMDY0NAotLS0gYS9XZWJDb3JlL2JpbmRpbmdz
L2pzL0pTVWludDE2QXJyYXlDdXN0b20uY3BwCisrKyBiL1dlYkNvcmUvYmluZGluZ3MvanMvSlNV
aW50MTZBcnJheUN1c3RvbS5jcHAKQEAgLTU0LDcgKzU0LDcgQEAgSlNDOjpKU1ZhbHVlIEpTVWlu
dDE2QXJyYXk6OnNldChKU0M6OkV4ZWNTdGF0ZSogZXhlYykKIEVuY29kZWRKU1ZhbHVlIEpTQ19I
T1NUX0NBTEwgSlNVaW50MTZBcnJheUNvbnN0cnVjdG9yOjpjb25zdHJ1Y3RKU1VpbnQxNkFycmF5
KEV4ZWNTdGF0ZSogZXhlYykKIHsKICAgICBKU1VpbnQxNkFycmF5Q29uc3RydWN0b3IqIGpzQ29u
c3RydWN0b3IgPSBzdGF0aWNfY2FzdDxKU1VpbnQxNkFycmF5Q29uc3RydWN0b3IqPihleGVjLT5j
YWxsZWUoKSk7Ci0gICAgUmVmUHRyPFVpbnQxNkFycmF5PiBhcnJheSA9IHN0YXRpY19jYXN0PFVp
bnQxNkFycmF5Kj4oY29uc3RydWN0QXJyYXlCdWZmZXJWaWV3PFVpbnQxNkFycmF5LCB1bnNpZ25l
ZCBzaG9ydD4oZXhlYykuZ2V0KCkpOworICAgIFJlZlB0cjxVaW50MTZBcnJheT4gYXJyYXkgPSBj
b25zdHJ1Y3RBcnJheUJ1ZmZlclZpZXc8VWludDE2QXJyYXksIHVuc2lnbmVkIHNob3J0PihleGVj
KTsKICAgICBpZiAoIWFycmF5LmdldCgpKQogICAgICAgICAvLyBFeGNlcHRpb24gaGFzIGFscmVh
ZHkgYmVlbiB0aHJvd24uCiAgICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoSlNWYWx1ZSgp
KTsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvYmluZGluZ3MvanMvSlNVaW50MzJBcnJheUN1c3RvbS5j
cHAgYi9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTVWludDMyQXJyYXlDdXN0b20uY3BwCmluZGV4IGM3
NTc3ODYuLjUxMjNhNmIgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvYmluZGluZ3MvanMvSlNVaW50MzJB
cnJheUN1c3RvbS5jcHAKKysrIGIvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1VpbnQzMkFycmF5Q3Vz
dG9tLmNwcApAQCAtNTQsNyArNTQsNyBAQCBKU0M6OkpTVmFsdWUgSlNVaW50MzJBcnJheTo6c2V0
KEpTQzo6RXhlY1N0YXRlKiBleGVjKQogRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBKU1Vp
bnQzMkFycmF5Q29uc3RydWN0b3I6OmNvbnN0cnVjdEpTVWludDMyQXJyYXkoRXhlY1N0YXRlKiBl
eGVjKQogewogICAgIEpTVWludDMyQXJyYXlDb25zdHJ1Y3RvcioganNDb25zdHJ1Y3RvciA9IHN0
YXRpY19jYXN0PEpTVWludDMyQXJyYXlDb25zdHJ1Y3Rvcio+KGV4ZWMtPmNhbGxlZSgpKTsKLSAg
ICBSZWZQdHI8VWludDMyQXJyYXk+IGFycmF5ID0gc3RhdGljX2Nhc3Q8VWludDMyQXJyYXkqPihj
b25zdHJ1Y3RBcnJheUJ1ZmZlclZpZXc8VWludDMyQXJyYXksIHVuc2lnbmVkIGludD4oZXhlYyku
Z2V0KCkpOworICAgIFJlZlB0cjxVaW50MzJBcnJheT4gYXJyYXkgPSBjb25zdHJ1Y3RBcnJheUJ1
ZmZlclZpZXc8VWludDMyQXJyYXksIHVuc2lnbmVkIGludD4oZXhlYyk7CiAgICAgaWYgKCFhcnJh
eS5nZXQoKSkKICAgICAgICAgLy8gRXhjZXB0aW9uIGhhcyBhbHJlYWR5IGJlZW4gdGhyb3duLgog
ICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKEpTVmFsdWUoKSk7CmRpZmYgLS1naXQgYS9X
ZWJDb3JlL2JpbmRpbmdzL2pzL0pTVWludDhBcnJheUN1c3RvbS5jcHAgYi9XZWJDb3JlL2JpbmRp
bmdzL2pzL0pTVWludDhBcnJheUN1c3RvbS5jcHAKaW5kZXggYWRmNjBhOS4uOThmM2U3ZSAxMDA2
NDQKLS0tIGEvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1VpbnQ4QXJyYXlDdXN0b20uY3BwCisrKyBi
L1dlYkNvcmUvYmluZGluZ3MvanMvSlNVaW50OEFycmF5Q3VzdG9tLmNwcApAQCAtNTQsNyArNTQs
NyBAQCBKU0M6OkpTVmFsdWUgSlNVaW50OEFycmF5OjpzZXQoSlNDOjpFeGVjU3RhdGUqIGV4ZWMp
CiBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIEpTVWludDhBcnJheUNvbnN0cnVjdG9yOjpj
b25zdHJ1Y3RKU1VpbnQ4QXJyYXkoRXhlY1N0YXRlKiBleGVjKQogewogICAgIEpTVWludDhBcnJh
eUNvbnN0cnVjdG9yKiBqc0NvbnN0cnVjdG9yID0gc3RhdGljX2Nhc3Q8SlNVaW50OEFycmF5Q29u
c3RydWN0b3IqPihleGVjLT5jYWxsZWUoKSk7Ci0gICAgUmVmUHRyPFVpbnQ4QXJyYXk+IGFycmF5
ID0gc3RhdGljX2Nhc3Q8VWludDhBcnJheSo+KGNvbnN0cnVjdEFycmF5QnVmZmVyVmlldzxVaW50
OEFycmF5LCB1bnNpZ25lZCBjaGFyPihleGVjKS5nZXQoKSk7CisgICAgUmVmUHRyPFVpbnQ4QXJy
YXk+IGFycmF5ID0gY29uc3RydWN0QXJyYXlCdWZmZXJWaWV3PFVpbnQ4QXJyYXksIHVuc2lnbmVk
IGNoYXI+KGV4ZWMpOwogICAgIGlmICghYXJyYXkuZ2V0KCkpCiAgICAgICAgIC8vIEV4Y2VwdGlv
biBoYXMgYWxyZWFkeSBiZWVuIHRocm93bi4KICAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29k
ZShKU1ZhbHVlKCkpOwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhB
cnJheUJ1ZmZlclZpZXdDdXN0b20uaCBiL1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4QXJy
YXlCdWZmZXJWaWV3Q3VzdG9tLmgKaW5kZXggMjU2NmI2Ny4uODllY2IxNCAxMDA2NDQKLS0tIGEv
V2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhBcnJheUJ1ZmZlclZpZXdDdXN0b20uaAorKysg
Yi9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOEFycmF5QnVmZmVyVmlld0N1c3RvbS5oCkBA
IC00Miw2ICs0Miw0MSBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIC8vIFRlbXBsYXRlIGZ1bmN0
aW9uIHVzZWQgYnkgdGhlIEFycmF5QnVmZmVyVmlldypDb25zdHJ1Y3RvciBjYWxsYmFja3MuCiB0
ZW1wbGF0ZTxjbGFzcyBBcnJheUNsYXNzLCBjbGFzcyBFbGVtZW50VHlwZT4KK3Y4OjpIYW5kbGU8
djg6OlZhbHVlPiBjb25zdHJ1Y3RXZWJHTEFycmF5V2l0aEFycmF5QnVmZmVyQXJndW1lbnQoY29u
c3Qgdjg6OkFyZ3VtZW50cyYgYXJncywgV3JhcHBlclR5cGVJbmZvKiB0eXBlLCB2ODo6RXh0ZXJu
YWxBcnJheVR5cGUgYXJyYXlUeXBlKQoreworICAgIEFycmF5QnVmZmVyKiBidWYgPSBWOEFycmF5
QnVmZmVyOjp0b05hdGl2ZShhcmdzWzBdLT5Ub09iamVjdCgpKTsKKyAgICBpZiAoIWJ1ZikKKyAg
ICAgICAgcmV0dXJuIHRocm93RXJyb3IoIkNvdWxkIG5vdCBjb252ZXJ0IGFyZ3VtZW50IDAgdG8g
YSBBcnJheUJ1ZmZlciIpOworICAgIGJvb2wgb2s7CisgICAgdWludDMyX3Qgb2Zmc2V0ID0gMDsK
KyAgICBpbnQgYXJnTGVuID0gYXJncy5MZW5ndGgoKTsKKyAgICBpZiAoYXJnTGVuID4gMSkgewor
ICAgICAgICBvZmZzZXQgPSB0b1VJbnQzMihhcmdzWzFdLCBvayk7CisgICAgICAgIGlmICghb2sp
CisgICAgICAgICAgICByZXR1cm4gdGhyb3dFcnJvcigiQ291bGQgbm90IGNvbnZlcnQgYXJndW1l
bnQgMSB0byBhIG51bWJlciIpOworICAgIH0KKyAgICBpZiAoKGJ1Zi0+Ynl0ZUxlbmd0aCgpIC0g
b2Zmc2V0KSAlIHNpemVvZihFbGVtZW50VHlwZSkpCisgICAgICAgIHJldHVybiB0aHJvd0Vycm9y
KCJBcnJheUJ1ZmZlciBsZW5ndGggbWludXMgdGhlIGJ5dGVPZmZzZXQgaXMgbm90IGEgbXVsdGlw
bGUgb2YgdGhlIGVsZW1lbnQgc2l6ZS4iLCBWOFByb3h5OjpSYW5nZUVycm9yKTsKKyAgICB1aW50
MzJfdCBsZW5ndGggPSAoYnVmLT5ieXRlTGVuZ3RoKCkgLSBvZmZzZXQpIC8gc2l6ZW9mKEVsZW1l
bnRUeXBlKTsKKyAgICBpZiAoYXJnTGVuID4gMikgeworICAgICAgICBsZW5ndGggPSB0b1VJbnQz
MihhcmdzWzJdLCBvayk7CisgICAgICAgIGlmICghb2spCisgICAgICAgICAgICByZXR1cm4gdGhy
b3dFcnJvcigiQ291bGQgbm90IGNvbnZlcnQgYXJndW1lbnQgMiB0byBhIG51bWJlciIpOworICAg
IH0KKworICAgIFJlZlB0cjxBcnJheUNsYXNzPiBhcnJheSA9IEFycmF5Q2xhc3M6OmNyZWF0ZShi
dWYsIG9mZnNldCwgbGVuZ3RoKTsKKyAgICBpZiAoIWFycmF5KSB7CisgICAgICAgIFY4UHJveHk6
OnNldERPTUV4Y2VwdGlvbihJTkRFWF9TSVpFX0VSUik7CisgICAgICAgIHJldHVybiBub3RIYW5k
bGVkQnlJbnRlcmNlcHRvcigpOworICAgIH0KKyAgICAvLyBUcmFuc2Zvcm0gdGhlIGhvbGRlciBp
bnRvIGEgd3JhcHBlciBvYmplY3QgZm9yIHRoZSBhcnJheS4KKyAgICBWOERPTVdyYXBwZXI6OnNl
dERPTVdyYXBwZXIoYXJncy5Ib2xkZXIoKSwgdHlwZSwgYXJyYXkuZ2V0KCkpOworICAgIGFyZ3Mu
SG9sZGVyKCktPlNldEluZGV4ZWRQcm9wZXJ0aWVzVG9FeHRlcm5hbEFycmF5RGF0YShhcnJheS5n
ZXQoKS0+YmFzZUFkZHJlc3MoKSwgYXJyYXlUeXBlLCBhcnJheS5nZXQoKS0+bGVuZ3RoKCkpOwor
ICAgIHJldHVybiB0b1Y4KGFycmF5LnJlbGVhc2UoKSwgYXJncy5Ib2xkZXIoKSk7Cit9CisKKy8v
IFRlbXBsYXRlIGZ1bmN0aW9uIHVzZWQgYnkgdGhlIEFycmF5QnVmZmVyVmlldypDb25zdHJ1Y3Rv
ciBjYWxsYmFja3MuCit0ZW1wbGF0ZTxjbGFzcyBBcnJheUNsYXNzLCBjbGFzcyBFbGVtZW50VHlw
ZT4KIHY4OjpIYW5kbGU8djg6OlZhbHVlPiBjb25zdHJ1Y3RXZWJHTEFycmF5KGNvbnN0IHY4OjpB
cmd1bWVudHMmIGFyZ3MsIFdyYXBwZXJUeXBlSW5mbyogdHlwZSwgdjg6OkV4dGVybmFsQXJyYXlU
eXBlIGFycmF5VHlwZSkKIHsKICAgICBpZiAoIWFyZ3MuSXNDb25zdHJ1Y3RDYWxsKCkpCkBAIC04
MywzNiArMTE4LDggQEAgdjg6OkhhbmRsZTx2ODo6VmFsdWU+IGNvbnN0cnVjdFdlYkdMQXJyYXko
Y29uc3Qgdjg6OkFyZ3VtZW50cyYgYXJncywgV3JhcHBlclR5cGUKICAgICB9CiAKICAgICAvLyBT
ZWUgd2hldGhlciB0aGUgZmlyc3QgYXJndW1lbnQgaXMgYSBBcnJheUJ1ZmZlci4KLSAgICBpZiAo
VjhBcnJheUJ1ZmZlcjo6SGFzSW5zdGFuY2UoYXJnc1swXSkpIHsKLSAgICAgICAgQXJyYXlCdWZm
ZXIqIGJ1ZiA9IFY4QXJyYXlCdWZmZXI6OnRvTmF0aXZlKGFyZ3NbMF0tPlRvT2JqZWN0KCkpOwot
ICAgICAgICBpZiAoIWJ1ZikKLSAgICAgICAgICAgIHJldHVybiB0aHJvd0Vycm9yKCJDb3VsZCBu
b3QgY29udmVydCBhcmd1bWVudCAwIHRvIGEgQXJyYXlCdWZmZXIiKTsKLSAgICAgICAgYm9vbCBv
azsKLSAgICAgICAgdWludDMyX3Qgb2Zmc2V0ID0gMDsKLSAgICAgICAgaWYgKGFyZ0xlbiA+IDEp
IHsKLSAgICAgICAgICAgIG9mZnNldCA9IHRvVUludDMyKGFyZ3NbMV0sIG9rKTsKLSAgICAgICAg
ICAgIGlmICghb2spCi0gICAgICAgICAgICAgICAgcmV0dXJuIHRocm93RXJyb3IoIkNvdWxkIG5v
dCBjb252ZXJ0IGFyZ3VtZW50IDEgdG8gYSBudW1iZXIiKTsKLSAgICAgICAgfQotICAgICAgICBp
ZiAoKGJ1Zi0+Ynl0ZUxlbmd0aCgpIC0gb2Zmc2V0KSAlIHNpemVvZihFbGVtZW50VHlwZSkpCi0g
ICAgICAgICAgICByZXR1cm4gdGhyb3dFcnJvcigiQXJyYXlCdWZmZXIgbGVuZ3RoIG1pbnVzIHRo
ZSBieXRlT2Zmc2V0IGlzIG5vdCBhIG11bHRpcGxlIG9mIHRoZSBlbGVtZW50IHNpemUuIiwgVjhQ
cm94eTo6UmFuZ2VFcnJvcik7Ci0gICAgICAgIHVpbnQzMl90IGxlbmd0aCA9IChidWYtPmJ5dGVM
ZW5ndGgoKSAtIG9mZnNldCkgLyBzaXplb2YoRWxlbWVudFR5cGUpOwotICAgICAgICBpZiAoYXJn
TGVuID4gMikgewotICAgICAgICAgICAgbGVuZ3RoID0gdG9VSW50MzIoYXJnc1syXSwgb2spOwot
ICAgICAgICAgICAgaWYgKCFvaykKLSAgICAgICAgICAgICAgICByZXR1cm4gdGhyb3dFcnJvcigi
Q291bGQgbm90IGNvbnZlcnQgYXJndW1lbnQgMiB0byBhIG51bWJlciIpOwotICAgICAgICB9Ci0K
LSAgICAgICAgUmVmUHRyPEFycmF5Q2xhc3M+IGFycmF5ID0gQXJyYXlDbGFzczo6Y3JlYXRlKGJ1
Ziwgb2Zmc2V0LCBsZW5ndGgpOwotICAgICAgICBpZiAoIWFycmF5KSB7Ci0gICAgICAgICAgICBW
OFByb3h5OjpzZXRET01FeGNlcHRpb24oSU5ERVhfU0laRV9FUlIpOwotICAgICAgICAgICAgcmV0
dXJuIG5vdEhhbmRsZWRCeUludGVyY2VwdG9yKCk7Ci0gICAgICAgIH0KLSAgICAgICAgLy8gVHJh
bnNmb3JtIHRoZSBob2xkZXIgaW50byBhIHdyYXBwZXIgb2JqZWN0IGZvciB0aGUgYXJyYXkuCi0g
ICAgICAgIFY4RE9NV3JhcHBlcjo6c2V0RE9NV3JhcHBlcihhcmdzLkhvbGRlcigpLCB0eXBlLCBh
cnJheS5nZXQoKSk7Ci0gICAgICAgIGFyZ3MuSG9sZGVyKCktPlNldEluZGV4ZWRQcm9wZXJ0aWVz
VG9FeHRlcm5hbEFycmF5RGF0YShhcnJheS5nZXQoKS0+YmFzZUFkZHJlc3MoKSwgYXJyYXlUeXBl
LCBhcnJheS5nZXQoKS0+bGVuZ3RoKCkpOwotICAgICAgICByZXR1cm4gdG9WOChhcnJheS5yZWxl
YXNlKCksIGFyZ3MuSG9sZGVyKCkpOwotICAgIH0KKyAgICBpZiAoVjhBcnJheUJ1ZmZlcjo6SGFz
SW5zdGFuY2UoYXJnc1swXSkpCisgICAgICByZXR1cm4gY29uc3RydWN0V2ViR0xBcnJheVdpdGhB
cnJheUJ1ZmZlckFyZ3VtZW50PEFycmF5Q2xhc3MsIEVsZW1lbnRUeXBlPihhcmdzLCB0eXBlLCBh
cnJheVR5cGUpOwogCiAgICAgdWludDMyX3QgbGVuID0gMDsKICAgICB2ODo6SGFuZGxlPHY4OjpP
YmplY3Q+IHNyY0FycmF5OwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20v
VjhEYXRhVmlld0N1c3RvbS5jcHAgYi9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOERhdGFW
aWV3Q3VzdG9tLmNwcApuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi4zYzZkZTIz
Ci0tLSAvZGV2L251bGwKKysrIGIvV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhEYXRhVmll
d0N1c3RvbS5jcHAKQEAgLTAsMCArMSwxNjAgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAg
R29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucyBhcmUKKyAqIG1ldDoKKyAqCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogICAg
ICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZQorICogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lcgorICogaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQorICogZGlzdHJpYnV0aW9uLgorICogICAgICog
TmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cworICog
Y29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBk
ZXJpdmVkIGZyb20KKyAqIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0
dGVuIHBlcm1pc3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUg
Q09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUworICogIkFTIElTIiBBTkQgQU5ZIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlU
RUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUgorICogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVW
RU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKKyAqIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAorICogU1BFQ0lBTCwgRVhF
TVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAorICog
TElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsCisgKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKyAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisKKyNpZiBF
TkFCTEUoM0RfQ0FOVkFTKSB8fCBFTkFCTEUoQkxPQikKKworI2luY2x1ZGUgIkRhdGFWaWV3Lmgi
CisKKyNpbmNsdWRlICJWOEJpbmRpbmcuaCIKKyNpbmNsdWRlICJWOEJpbmRpbmdNYWNyb3MuaCIK
KyNpbmNsdWRlICJWOEFycmF5QnVmZmVyVmlld0N1c3RvbS5oIgorI2luY2x1ZGUgIlY4RGF0YVZp
ZXcuaCIKKyNpbmNsdWRlICJWOFByb3h5LmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKwordjg6
OkhhbmRsZTx2ODo6VmFsdWU+IFY4RGF0YVZpZXc6OmNvbnN0cnVjdG9yQ2FsbGJhY2soY29uc3Qg
djg6OkFyZ3VtZW50cyYgYXJncykKK3sKKyAgICBJTkNfU1RBVFMoIkRPTS5BcnJheUJ1ZmZlci5D
b25zdHJ1Y3RvciIpOworCisgICAgaWYgKGFyZ3NbMF0tPklzTnVsbCgpIHx8ICFWOEFycmF5QnVm
ZmVyOjpIYXNJbnN0YW5jZShhcmdzWzBdKSkKKyAgICAgICAgcmV0dXJuIFY4UHJveHk6OnRocm93
VHlwZUVycm9yKCk7CisgICAgcmV0dXJuIGNvbnN0cnVjdFdlYkdMQXJyYXlXaXRoQXJyYXlCdWZm
ZXJBcmd1bWVudDxEYXRhVmlldywgY2hhcj4oYXJncywgJmluZm8sIHY4OjprRXh0ZXJuYWxCeXRl
QXJyYXkpOworfQorCit2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gdG9WOChEYXRhVmlldyogaW1wbCkK
K3sKKyAgICBpZiAoIWltcGwpCisgICAgICAgIHJldHVybiB2ODo6TnVsbCgpOworICAgIHY4OjpI
YW5kbGU8djg6Ok9iamVjdD4gd3JhcHBlciA9IFY4RGF0YVZpZXc6OndyYXAoaW1wbCk7CisgICAg
aWYgKCF3cmFwcGVyLklzRW1wdHkoKSkKKyAgICAgICAgd3JhcHBlci0+U2V0SW5kZXhlZFByb3Bl
cnRpZXNUb0V4dGVybmFsQXJyYXlEYXRhKGltcGwtPmJhc2VBZGRyZXNzKCksIHY4OjprRXh0ZXJu
YWxCeXRlQXJyYXksIGltcGwtPmxlbmd0aCgpKTsKKyAgICByZXR1cm4gd3JhcHBlcjsKK30KKwor
djg6OkhhbmRsZTx2ODo6VmFsdWU+IFY4RGF0YVZpZXc6OmdldEludDhDYWxsYmFjayhjb25zdCB2
ODo6QXJndW1lbnRzJiBhcmdzKQoreworICAgIElOQ19TVEFUUygiRE9NLkRhdGFWaWV3LmdldElu
dDgiKTsKKyAgICBpZiAoYXJncy5MZW5ndGgoKSA8IDEpCisgICAgICAgIHJldHVybiB0aHJvd0Vy
cm9yKCJOb3QgZW5vdWdoIGFyZ3VtZW50cyIsIFY4UHJveHk6OlN5bnRheEVycm9yKTsKKyAgICBp
ZiAoIWlzVW5kZWZpbmVkT3JOdWxsKGFyZ3NbMF0pICYmICFhcmdzWzBdLT5Jc051bWJlcigpICYm
ICFhcmdzWzBdLT5Jc0Jvb2xlYW4oKSkgeworICAgICAgICBWOFByb3h5Ojp0aHJvd1R5cGVFcnJv
cigpOworICAgICAgICByZXR1cm4gbm90SGFuZGxlZEJ5SW50ZXJjZXB0b3IoKTsKKyAgICB9CisK
KyAgICBEYXRhVmlldyogaW1wID0gVjhEYXRhVmlldzo6dG9OYXRpdmUoYXJncy5Ib2xkZXIoKSk7
CisgICAgRXhjZXB0aW9uQ29kZSBlYyA9IDA7CisgICAgRVhDRVBUSU9OX0JMT0NLKHVuc2lnbmVk
LCBieXRlT2Zmc2V0LCB0b1VJbnQzMihhcmdzWzBdKSk7CisgICAgY2hhciByZXN1bHQgPSBpbXAt
PmdldEludDgoYnl0ZU9mZnNldCwgZWMpOworICAgIGlmIChVTkxJS0VMWShlYykpIHsKKyAgICAg
ICAgVjhQcm94eTo6c2V0RE9NRXhjZXB0aW9uKGVjKTsKKyAgICAgICAgcmV0dXJuIHY4OjpIYW5k
bGU8djg6OlZhbHVlPigpOworICAgIH0KKyAgICByZXR1cm4gdjg6OkludGVnZXI6Ok5ldyhyZXN1
bHQpOworfQorCit2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gVjhEYXRhVmlldzo6Z2V0VWludDhDYWxs
YmFjayhjb25zdCB2ODo6QXJndW1lbnRzJiBhcmdzKQoreworICAgIElOQ19TVEFUUygiRE9NLkRh
dGFWaWV3LmdldFVpbnQ4Iik7CisgICAgaWYgKGFyZ3MuTGVuZ3RoKCkgPCAxKQorICAgICAgICBy
ZXR1cm4gdGhyb3dFcnJvcigiTm90IGVub3VnaCBhcmd1bWVudHMiLCBWOFByb3h5OjpTeW50YXhF
cnJvcik7CisgICAgaWYgKCFpc1VuZGVmaW5lZE9yTnVsbChhcmdzWzBdKSAmJiAhYXJnc1swXS0+
SXNOdW1iZXIoKSAmJiAhYXJnc1swXS0+SXNCb29sZWFuKCkpIHsKKyAgICAgICAgVjhQcm94eTo6
dGhyb3dUeXBlRXJyb3IoKTsKKyAgICAgICAgcmV0dXJuIG5vdEhhbmRsZWRCeUludGVyY2VwdG9y
KCk7CisgICAgfQorCisgICAgRGF0YVZpZXcqIGltcCA9IFY4RGF0YVZpZXc6OnRvTmF0aXZlKGFy
Z3MuSG9sZGVyKCkpOworICAgIEV4Y2VwdGlvbkNvZGUgZWMgPSAwOworICAgIEVYQ0VQVElPTl9C
TE9DSyh1bnNpZ25lZCwgYnl0ZU9mZnNldCwgdG9VSW50MzIoYXJnc1swXSkpOworICAgIHVuc2ln
bmVkIGNoYXIgcmVzdWx0ID0gaW1wLT5nZXRVaW50OChieXRlT2Zmc2V0LCBlYyk7CisgICAgaWYg
KFVOTElLRUxZKGVjKSkgeworICAgICAgICBWOFByb3h5OjpzZXRET01FeGNlcHRpb24oZWMpOwor
ICAgICAgICByZXR1cm4gdjg6OkhhbmRsZTx2ODo6VmFsdWU+KCk7CisgICAgfQorICAgIHJldHVy
biB2ODo6SW50ZWdlcjo6TmV3KHJlc3VsdCk7Cit9CisKK3Y4OjpIYW5kbGU8djg6OlZhbHVlPiBW
OERhdGFWaWV3OjpzZXRJbnQ4Q2FsbGJhY2soY29uc3Qgdjg6OkFyZ3VtZW50cyYgYXJncykKK3sK
KyAgICBJTkNfU1RBVFMoIkRPTS5EYXRhVmlldy5zZXRJbnQ4Iik7CisgICAgaWYgKGFyZ3MuTGVu
Z3RoKCkgPCAyKQorICAgICAgICByZXR1cm4gdGhyb3dFcnJvcigiTm90IGVub3VnaCBhcmd1bWVu
dHMiLCBWOFByb3h5OjpTeW50YXhFcnJvcik7CisgICAgaWYgKCFpc1VuZGVmaW5lZE9yTnVsbChh
cmdzWzBdKSAmJiAhYXJnc1swXS0+SXNOdW1iZXIoKSAmJiAhYXJnc1swXS0+SXNCb29sZWFuKCkp
IHsKKyAgICAgICAgVjhQcm94eTo6dGhyb3dUeXBlRXJyb3IoKTsKKyAgICAgICAgcmV0dXJuIG5v
dEhhbmRsZWRCeUludGVyY2VwdG9yKCk7CisgICAgfQorICAgIGlmICghaXNVbmRlZmluZWRPck51
bGwoYXJnc1sxXSkgJiYgIWFyZ3NbMV0tPklzTnVtYmVyKCkgJiYgIWFyZ3NbMV0tPklzQm9vbGVh
bigpKSB7CisgICAgICAgIFY4UHJveHk6OnRocm93VHlwZUVycm9yKCk7CisgICAgICAgIHJldHVy
biBub3RIYW5kbGVkQnlJbnRlcmNlcHRvcigpOworICAgIH0KKworICAgIERhdGFWaWV3KiBpbXAg
PSBWOERhdGFWaWV3Ojp0b05hdGl2ZShhcmdzLkhvbGRlcigpKTsKKyAgICBFeGNlcHRpb25Db2Rl
IGVjID0gMDsKKyAgICBFWENFUFRJT05fQkxPQ0sodW5zaWduZWQsIGJ5dGVPZmZzZXQsIHRvVUlu
dDMyKGFyZ3NbMF0pKTsKKyAgICBFWENFUFRJT05fQkxPQ0soaW50LCB2YWx1ZSwgdG9JbnQzMihh
cmdzWzFdKSk7CisgICAgaWYgKHZhbHVlIDwgLTEyOCB8fCB2YWx1ZSA+IDEyNykKKyAgICAgICAg
cmV0dXJuIHRocm93RXJyb3IoIlRoZSB2YWx1ZSB0byBzZXQgdG8gaXMgb3V0IG9mIHJhbmdlIiwg
VjhQcm94eTo6U3ludGF4RXJyb3IpOworICAgIGltcC0+c2V0SW50OChieXRlT2Zmc2V0LCBzdGF0
aWNfY2FzdDxjaGFyPih2YWx1ZSksIGVjKTsKKyAgICBpZiAoVU5MSUtFTFkoZWMpKQorICAgICAg
ICBWOFByb3h5OjpzZXRET01FeGNlcHRpb24oZWMpOworICAgIHJldHVybiB2ODo6SGFuZGxlPHY4
OjpWYWx1ZT4oKTsKK30KKwordjg6OkhhbmRsZTx2ODo6VmFsdWU+IFY4RGF0YVZpZXc6OnNldFVp
bnQ4Q2FsbGJhY2soY29uc3Qgdjg6OkFyZ3VtZW50cyYgYXJncykKK3sKKyAgICBJTkNfU1RBVFMo
IkRPTS5EYXRhVmlldy5zZXRVaW50OCIpOworICAgIGlmIChhcmdzLkxlbmd0aCgpIDwgMikKKyAg
ICAgICAgcmV0dXJuIHRocm93RXJyb3IoIk5vdCBlbm91Z2ggYXJndW1lbnRzIiwgVjhQcm94eTo6
U3ludGF4RXJyb3IpOworICAgIGlmICghaXNVbmRlZmluZWRPck51bGwoYXJnc1swXSkgJiYgIWFy
Z3NbMF0tPklzTnVtYmVyKCkgJiYgIWFyZ3NbMF0tPklzQm9vbGVhbigpKSB7CisgICAgICAgIFY4
UHJveHk6OnRocm93VHlwZUVycm9yKCk7CisgICAgICAgIHJldHVybiBub3RIYW5kbGVkQnlJbnRl
cmNlcHRvcigpOworICAgIH0KKyAgICBpZiAoIWlzVW5kZWZpbmVkT3JOdWxsKGFyZ3NbMV0pICYm
ICFhcmdzWzFdLT5Jc051bWJlcigpICYmICFhcmdzWzFdLT5Jc0Jvb2xlYW4oKSkgeworICAgICAg
ICBWOFByb3h5Ojp0aHJvd1R5cGVFcnJvcigpOworICAgICAgICByZXR1cm4gbm90SGFuZGxlZEJ5
SW50ZXJjZXB0b3IoKTsKKyAgICB9CisKKyAgICBEYXRhVmlldyogaW1wID0gVjhEYXRhVmlldzo6
dG9OYXRpdmUoYXJncy5Ib2xkZXIoKSk7CisgICAgRXhjZXB0aW9uQ29kZSBlYyA9IDA7CisgICAg
RVhDRVBUSU9OX0JMT0NLKHVuc2lnbmVkLCBieXRlT2Zmc2V0LCB0b1VJbnQzMihhcmdzWzBdKSk7
CisgICAgRVhDRVBUSU9OX0JMT0NLKGludCwgdmFsdWUsIHRvSW50MzIoYXJnc1sxXSkpOworICAg
IGlmICh2YWx1ZSA8IDAgfHwgdmFsdWUgPiAyNTUpCisgICAgICAgIHJldHVybiB0aHJvd0Vycm9y
KCJUaGUgdmFsdWUgdG8gc2V0IHRvIGlzIG91dCBvZiByYW5nZSIsIFY4UHJveHk6OlN5bnRheEVy
cm9yKTsKKyAgICBpbXAtPnNldFVpbnQ4KGJ5dGVPZmZzZXQsIHN0YXRpY19jYXN0PHVuc2lnbmVk
IGNoYXI+KHZhbHVlKSwgZWMpOworICAgIGlmIChVTkxJS0VMWShlYykpCisgICAgICAgIFY4UHJv
eHk6OnNldERPTUV4Y2VwdGlvbihlYyk7CisgICAgcmV0dXJuIHY4OjpIYW5kbGU8djg6OlZhbHVl
PigpOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBFTkFCTEUoM0Rf
Q0FOVkFTKSB8fCBFTkFCTEUoQkxPQikKZGlmZiAtLWdpdCBhL1dlYkNvcmUvaHRtbC9jYW52YXMv
QXJyYXlCdWZmZXJWaWV3LmggYi9XZWJDb3JlL2h0bWwvY2FudmFzL0FycmF5QnVmZmVyVmlldy5o
CmluZGV4IGQzN2JhZGEuLjcwMWFiYmMgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvaHRtbC9jYW52YXMv
QXJyYXlCdWZmZXJWaWV3LmgKKysrIGIvV2ViQ29yZS9odG1sL2NhbnZhcy9BcnJheUJ1ZmZlclZp
ZXcuaApAQCAtNDYsNiArNDYsNyBAQCBjbGFzcyBBcnJheUJ1ZmZlclZpZXcgOiBwdWJsaWMgUmVm
Q291bnRlZDxBcnJheUJ1ZmZlclZpZXc+IHsKICAgICB2aXJ0dWFsIGJvb2wgaXNJbnRBcnJheSgp
IGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CiAgICAgdmlydHVhbCBib29sIGlzVW5zaWduZWRJbnRB
cnJheSgpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CiAgICAgdmlydHVhbCBib29sIGlzRmxvYXRB
cnJheSgpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CisgICAgdmlydHVhbCBib29sIGlzRGF0YVZp
ZXcoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQogCiAgICAgUGFzc1JlZlB0cjxBcnJheUJ1ZmZl
cj4gYnVmZmVyKCkgY29uc3QKICAgICB7CmRpZmYgLS1naXQgYS9XZWJDb3JlL2h0bWwvY2FudmFz
L0RhdGFWaWV3LmNwcCBiL1dlYkNvcmUvaHRtbC9jYW52YXMvRGF0YVZpZXcuY3BwCm5ldyBmaWxl
IG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjU0MTA2OTQKLS0tIC9kZXYvbnVsbAorKysgYi9X
ZWJDb3JlL2h0bWwvY2FudmFzL0RhdGFWaWV3LmNwcApAQCAtMCwwICsxLDE3MiBAQAorLyoKKyAq
IENvcHlyaWdodCAoQykgMjAxMCBHb29nbGUgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAq
CisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKKyAqIG1ldDoKKyAqCisgKiAgICAgKiBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAorICogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgorICogICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQorICogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgorICogaW4gdGhlIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQorICogZGlz
dHJpYnV0aW9uLgorICogICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3Ig
dGhlIG5hbWVzIG9mIGl0cworICogY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ug
b3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KKyAqIHRoaXMgc29mdHdhcmUgd2l0aG91
dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUwor
ICogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgorICogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJF
IERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKKyAqIE9XTkVSIE9S
IENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLAorICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElO
Q0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCisgKiBEQVRBLCBPUiBQUk9GSVRTOyBP
UiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKyAqIFRI
RU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVk
ZSAiY29uZmlnLmgiCisKKyNpZiBFTkFCTEUoM0RfQ0FOVkFTKSB8fCBFTkFCTEUoQkxPQikKKwor
I2luY2x1ZGUgIkRhdGFWaWV3LmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworRGF0YVZpZXc6
OkRhdGFWaWV3KFBhc3NSZWZQdHI8QXJyYXlCdWZmZXI+IGJ1ZmZlciwgdW5zaWduZWQgYnl0ZU9m
ZnNldCwgdW5zaWduZWQgYnl0ZUxlbmd0aCkKKyAgICA6IEFycmF5QnVmZmVyVmlldyhidWZmZXIs
IGJ5dGVPZmZzZXQpCisgICAgLCBtX2J5dGVMZW5ndGgoYnl0ZUxlbmd0aCkKK3sKK30KKworc3Rh
dGljIHZvaWQgZmxpcEJ5dGVzVG9NZWV0RW5kaWFuUmVxdWlyZW1lbnQodm9pZCogdmFsdWUsIHNp
emVfdCB0eXBlU2l6ZSwgYm9vbCBsaXR0bGVFbmRpYW4pCit7CisjaWYgQ1BVKEJJR19FTkRJQU4p
CisgICAgYm9vbCBmbGlwQnl0ZXMgPSBsaXR0bGVFbmRpYW47CisjZWxzZQorICAgIGJvb2wgZmxp
cEJ5dGVzID0gIWxpdHRsZUVuZGlhbjsKKyNlbmRpZgorCisgICAgaWYgKCFmbGlwQnl0ZXMpIAor
ICAgICAgICByZXR1cm47CisKKyAgICBjaGFyKiBiZWdpbiA9IHN0YXRpY19jYXN0PGNoYXIqPih2
YWx1ZSk7CisgICAgY2hhciogZW5kID0gc3RhdGljX2Nhc3Q8Y2hhcio+KHZhbHVlKSArIHR5cGVT
aXplIC0gMTsKKyAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IHR5cGVTaXplIC8gMjsgKytpLCAr
K2JlZ2luLCAtLWVuZCkgeworICAgICAgICBjaGFyIHRlbXAgPSAqYmVnaW47CisgICAgICAgICpi
ZWdpbiA9ICplbmQ7CisgICAgICAgICplbmQgPSB0ZW1wOworICAgIH0KK30KKwordGVtcGxhdGU8
dHlwZW5hbWUgVD4KK1QgRGF0YVZpZXc6OmdldERhdGEodW5zaWduZWQgYnl0ZU9mZnNldCwgYm9v
bCBsaXR0bGVFbmRpYW4sIEV4Y2VwdGlvbkNvZGUmIGVjKSBjb25zdAoreworICAgIGlmIChiZXlv
bmRSYW5nZTxUPihieXRlT2Zmc2V0KSkgeworICAgICAgICBlYyA9IElOREVYX1NJWkVfRVJSOwor
ICAgICAgICByZXR1cm4gMDsKKyAgICB9CisgICAgVCB2YWx1ZSA9ICooc3RhdGljX2Nhc3Q8Y29u
c3QgVCo+KHN0YXRpY19jYXN0PGNvbnN0IHZvaWQqPihzdGF0aWNfY2FzdDxjb25zdCBjaGFyKj4o
bV9iYXNlQWRkcmVzcykgKyBieXRlT2Zmc2V0KSkpOworICAgIGlmIChzaXplb2YoVCkgPiAxKQor
ICAgICAgZmxpcEJ5dGVzVG9NZWV0RW5kaWFuUmVxdWlyZW1lbnQoJnZhbHVlLCBzaXplb2YoVCks
IGxpdHRsZUVuZGlhbik7CisgICAgcmV0dXJuIHZhbHVlOworfQorCit0ZW1wbGF0ZTx0eXBlbmFt
ZSBUPgordm9pZCBEYXRhVmlldzo6c2V0RGF0YSh1bnNpZ25lZCBieXRlT2Zmc2V0LCBUIHZhbHVl
LCBib29sIGxpdHRsZUVuZGlhbiwgRXhjZXB0aW9uQ29kZSYgZWMpCit7CisgICAgaWYgKGJleW9u
ZFJhbmdlPFQ+KGJ5dGVPZmZzZXQpKSB7CisgICAgICAgIGVjID0gSU5ERVhfU0laRV9FUlI7Cisg
ICAgICAgIHJldHVybjsKKyAgICB9CisgICAgaWYgKHNpemVvZihUKSA+IDEpCisgICAgICBmbGlw
Qnl0ZXNUb01lZXRFbmRpYW5SZXF1aXJlbWVudCgmdmFsdWUsIHNpemVvZihUKSwgbGl0dGxlRW5k
aWFuKTsKKyAgICAqKHN0YXRpY19jYXN0PFQqPihzdGF0aWNfY2FzdDx2b2lkKj4oc3RhdGljX2Nh
c3Q8Y2hhcio+KG1fYmFzZUFkZHJlc3MpICsgYnl0ZU9mZnNldCkpKSA9IHZhbHVlOworfQorCitj
aGFyIERhdGFWaWV3OjpnZXRJbnQ4KHVuc2lnbmVkIGJ5dGVPZmZzZXQsIEV4Y2VwdGlvbkNvZGUm
IGVjKQoreworICAgIHJldHVybiBnZXREYXRhPGNoYXI+KGJ5dGVPZmZzZXQsIGZhbHNlLCBlYyk7
Cit9CisKK3Vuc2lnbmVkIGNoYXIgRGF0YVZpZXc6OmdldFVpbnQ4KHVuc2lnbmVkIGJ5dGVPZmZz
ZXQsIEV4Y2VwdGlvbkNvZGUmIGVjKQoreworICAgIHJldHVybiBnZXREYXRhPHVuc2lnbmVkIGNo
YXI+KGJ5dGVPZmZzZXQsIGZhbHNlLCBlYyk7Cit9CisKK3Nob3J0IERhdGFWaWV3OjpnZXRJbnQx
Nih1bnNpZ25lZCBieXRlT2Zmc2V0LCBib29sIGxpdHRsZUVuZGlhbiwgRXhjZXB0aW9uQ29kZSYg
ZWMpCit7CisgICAgcmV0dXJuIGdldERhdGE8c2hvcnQ+KGJ5dGVPZmZzZXQsIGxpdHRsZUVuZGlh
biwgZWMpOworfQorCit1bnNpZ25lZCBzaG9ydCBEYXRhVmlldzo6Z2V0VWludDE2KHVuc2lnbmVk
IGJ5dGVPZmZzZXQsIGJvb2wgbGl0dGxlRW5kaWFuLCBFeGNlcHRpb25Db2RlJiBlYykKK3sKKyAg
ICByZXR1cm4gZ2V0RGF0YTx1bnNpZ25lZCBzaG9ydD4oYnl0ZU9mZnNldCwgbGl0dGxlRW5kaWFu
LCBlYyk7Cit9CisKK2ludCBEYXRhVmlldzo6Z2V0SW50MzIodW5zaWduZWQgYnl0ZU9mZnNldCwg
Ym9vbCBsaXR0bGVFbmRpYW4sIEV4Y2VwdGlvbkNvZGUmIGVjKQoreworICAgIHJldHVybiBnZXRE
YXRhPGludD4oYnl0ZU9mZnNldCwgbGl0dGxlRW5kaWFuLCBlYyk7Cit9CisKK3Vuc2lnbmVkIERh
dGFWaWV3OjpnZXRVaW50MzIodW5zaWduZWQgYnl0ZU9mZnNldCwgYm9vbCBsaXR0bGVFbmRpYW4s
IEV4Y2VwdGlvbkNvZGUmIGVjKQoreworICAgIHJldHVybiBnZXREYXRhPHVuc2lnbmVkPihieXRl
T2Zmc2V0LCBsaXR0bGVFbmRpYW4sIGVjKTsKK30KKworZmxvYXQgRGF0YVZpZXc6OmdldEZsb2F0
MzIodW5zaWduZWQgYnl0ZU9mZnNldCwgYm9vbCBsaXR0bGVFbmRpYW4sIEV4Y2VwdGlvbkNvZGUm
IGVjKQoreworICAgIHJldHVybiBnZXREYXRhPGZsb2F0PihieXRlT2Zmc2V0LCBsaXR0bGVFbmRp
YW4sIGVjKTsKK30KKworZG91YmxlIERhdGFWaWV3OjpnZXRGbG9hdDY0KHVuc2lnbmVkIGJ5dGVP
ZmZzZXQsIGJvb2wgbGl0dGxlRW5kaWFuLCBFeGNlcHRpb25Db2RlJiBlYykKK3sKKyAgICByZXR1
cm4gZ2V0RGF0YTxkb3VibGU+KGJ5dGVPZmZzZXQsIGxpdHRsZUVuZGlhbiwgZWMpOworfQorCit2
b2lkIERhdGFWaWV3OjpzZXRJbnQ4KHVuc2lnbmVkIGJ5dGVPZmZzZXQsIGNoYXIgdmFsdWUsIEV4
Y2VwdGlvbkNvZGUmIGVjKQoreworICAgIHNldERhdGE8Y2hhcj4oYnl0ZU9mZnNldCwgdmFsdWUs
IGZhbHNlLCBlYyk7Cit9CisKK3ZvaWQgRGF0YVZpZXc6OnNldFVpbnQ4KHVuc2lnbmVkIGJ5dGVP
ZmZzZXQsIHVuc2lnbmVkIGNoYXIgdmFsdWUsIEV4Y2VwdGlvbkNvZGUmIGVjKQoreworICAgIHNl
dERhdGE8dW5zaWduZWQgY2hhcj4oYnl0ZU9mZnNldCwgdmFsdWUsIGZhbHNlLCBlYyk7Cit9CisK
K3ZvaWQgRGF0YVZpZXc6OnNldEludDE2KHVuc2lnbmVkIGJ5dGVPZmZzZXQsIHNob3J0IHZhbHVl
LCBib29sIGxpdHRsZUVuZGlhbiwgRXhjZXB0aW9uQ29kZSYgZWMpCit7CisgICAgc2V0RGF0YTxz
aG9ydD4oYnl0ZU9mZnNldCwgdmFsdWUsIGxpdHRsZUVuZGlhbiwgZWMpOworfQorCit2b2lkIERh
dGFWaWV3OjpzZXRVaW50MTYodW5zaWduZWQgYnl0ZU9mZnNldCwgdW5zaWduZWQgc2hvcnQgdmFs
dWUsIGJvb2wgbGl0dGxlRW5kaWFuLCBFeGNlcHRpb25Db2RlJiBlYykKK3sKKyAgICBzZXREYXRh
PHVuc2lnbmVkIHNob3J0PihieXRlT2Zmc2V0LCB2YWx1ZSwgbGl0dGxlRW5kaWFuLCBlYyk7Cit9
CisKK3ZvaWQgRGF0YVZpZXc6OnNldEludDMyKHVuc2lnbmVkIGJ5dGVPZmZzZXQsIGludCB2YWx1
ZSwgYm9vbCBsaXR0bGVFbmRpYW4sIEV4Y2VwdGlvbkNvZGUmIGVjKQoreworICAgIHNldERhdGE8
aW50PihieXRlT2Zmc2V0LCB2YWx1ZSwgbGl0dGxlRW5kaWFuLCBlYyk7Cit9CisKK3ZvaWQgRGF0
YVZpZXc6OnNldFVpbnQzMih1bnNpZ25lZCBieXRlT2Zmc2V0LCB1bnNpZ25lZCB2YWx1ZSwgYm9v
bCBsaXR0bGVFbmRpYW4sIEV4Y2VwdGlvbkNvZGUmIGVjKQoreworICAgIHNldERhdGE8dW5zaWdu
ZWQ+KGJ5dGVPZmZzZXQsIHZhbHVlLCBsaXR0bGVFbmRpYW4sIGVjKTsKK30KKwordm9pZCBEYXRh
Vmlldzo6c2V0RmxvYXQzMih1bnNpZ25lZCBieXRlT2Zmc2V0LCBmbG9hdCB2YWx1ZSwgYm9vbCBs
aXR0bGVFbmRpYW4sIEV4Y2VwdGlvbkNvZGUmIGVjKQoreworICAgIHNldERhdGE8ZmxvYXQ+KGJ5
dGVPZmZzZXQsIHZhbHVlLCBsaXR0bGVFbmRpYW4sIGVjKTsKK30KKwordm9pZCBEYXRhVmlldzo6
c2V0RmxvYXQ2NCh1bnNpZ25lZCBieXRlT2Zmc2V0LCBkb3VibGUgdmFsdWUsIGJvb2wgbGl0dGxl
RW5kaWFuLCBFeGNlcHRpb25Db2RlJiBlYykKK3sKKyAgICBzZXREYXRhPGRvdWJsZT4oYnl0ZU9m
ZnNldCwgdmFsdWUsIGxpdHRsZUVuZGlhbiwgZWMpOworfQorCit9CisKKyNlbmRpZiAvLyBFTkFC
TEUoM0RfQ0FOVkFTKSB8fCBFTkFCTEUoQkxPQikKZGlmZiAtLWdpdCBhL1dlYkNvcmUvaHRtbC9j
YW52YXMvRGF0YVZpZXcuaCBiL1dlYkNvcmUvaHRtbC9jYW52YXMvRGF0YVZpZXcuaApuZXcgZmls
ZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5kM2NmNTI0Ci0tLSAvZGV2L251bGwKKysrIGIv
V2ViQ29yZS9odG1sL2NhbnZhcy9EYXRhVmlldy5oCkBAIC0wLDAgKzEsMTAwIEBACisvKgorICog
Q29weXJpZ2h0IChDKSAyMDEwIEdvb2dsZSBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoK
KyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQorICogbWV0OgorICoKKyAqICAgICAqIFJl
ZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz
dCByZXByb2R1Y2UgdGhlIGFib3ZlCisgKiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCisgKiBpbiB0aGUgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCisgKiBkaXN0
cmlidXRpb24uCisgKiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0
aGUgbmFtZXMgb2YgaXRzCisgKiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBv
ciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQorICogdGhpcyBzb2Z0d2FyZSB3aXRob3V0
IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCisg
KiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVAorICogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCisgKiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUg
RElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAorICogT1dORVIgT1Ig
Q09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsCisgKiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKKyAqIERBVEEsIE9SIFBST0ZJVFM7IE9S
IEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorICogVEhF
T1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYg
RGF0YVZpZXdfaAorI2RlZmluZSBEYXRhVmlld19oCisKKyNpbmNsdWRlICJBcnJheUJ1ZmZlclZp
ZXcuaCIKKyNpbmNsdWRlICJFeGNlcHRpb25Db2RlLmgiCisjaW5jbHVkZSA8d3RmL1Bhc3NSZWZQ
dHIuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBEYXRhVmlldyA6IHB1YmxpYyBB
cnJheUJ1ZmZlclZpZXcgeworcHVibGljOgorICAgIHN0YXRpYyBQYXNzUmVmUHRyPERhdGFWaWV3
PiBjcmVhdGUoUGFzc1JlZlB0cjxBcnJheUJ1ZmZlcj4gYnVmZmVyLCB1bnNpZ25lZCBieXRlT2Zm
c2V0LCB1bnNpZ25lZCBieXRlTGVuZ3RoKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVm
KG5ldyBEYXRhVmlldyhidWZmZXIsIGJ5dGVPZmZzZXQsIGJ5dGVMZW5ndGgpKTsKKyAgICB9CisK
KyAgICB2aXJ0dWFsIGJvb2wgaXNEYXRhVmlldygpIGNvbnN0IHsgcmV0dXJuIHRydWU7IH0KKyAg
ICB2aXJ0dWFsIHVuc2lnbmVkIGxlbmd0aCgpIGNvbnN0IHsgcmV0dXJuIG1fYnl0ZUxlbmd0aDsg
fQorICAgIHZpcnR1YWwgdW5zaWduZWQgYnl0ZUxlbmd0aCgpIGNvbnN0IHsgcmV0dXJuIG1fYnl0
ZUxlbmd0aDsgfQorICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxBcnJheUJ1ZmZlclZpZXc+IHNsaWNl
KGludCwgaW50KSBjb25zdCB7IHJldHVybiAwOyB9CisKKyAgICBjaGFyIGdldEludDgodW5zaWdu
ZWQgYnl0ZU9mZnNldCwgRXhjZXB0aW9uQ29kZSYpOworICAgIHVuc2lnbmVkIGNoYXIgZ2V0VWlu
dDgodW5zaWduZWQgYnl0ZU9mZnNldCwgRXhjZXB0aW9uQ29kZSYpOworICAgIHNob3J0IGdldElu
dDE2KHVuc2lnbmVkIGJ5dGVPZmZzZXQsIEV4Y2VwdGlvbkNvZGUmIGVjKSB7IHJldHVybiBnZXRJ
bnQxNihieXRlT2Zmc2V0LCBmYWxzZSwgZWMpOyB9CisgICAgc2hvcnQgZ2V0SW50MTYodW5zaWdu
ZWQgYnl0ZU9mZnNldCwgYm9vbCBsaXR0bGVFbmRpYW4sIEV4Y2VwdGlvbkNvZGUmKTsKKyAgICB1
bnNpZ25lZCBzaG9ydCBnZXRVaW50MTYodW5zaWduZWQgYnl0ZU9mZnNldCwgRXhjZXB0aW9uQ29k
ZSYgZWMpIHsgcmV0dXJuIGdldFVpbnQxNihieXRlT2Zmc2V0LCBmYWxzZSwgZWMpOyB9CisgICAg
dW5zaWduZWQgc2hvcnQgZ2V0VWludDE2KHVuc2lnbmVkIGJ5dGVPZmZzZXQsIGJvb2wgbGl0dGxl
RW5kaWFuLCBFeGNlcHRpb25Db2RlJik7CisgICAgaW50IGdldEludDMyKHVuc2lnbmVkIGJ5dGVP
ZmZzZXQsIEV4Y2VwdGlvbkNvZGUmIGVjKSB7IHJldHVybiBnZXRJbnQzMihieXRlT2Zmc2V0LCBm
YWxzZSwgZWMpOyB9CisgICAgaW50IGdldEludDMyKHVuc2lnbmVkIGJ5dGVPZmZzZXQsIGJvb2wg
bGl0dGxlRW5kaWFuLCBFeGNlcHRpb25Db2RlJik7CisgICAgdW5zaWduZWQgZ2V0VWludDMyKHVu
c2lnbmVkIGJ5dGVPZmZzZXQsIEV4Y2VwdGlvbkNvZGUmIGVjKSB7IHJldHVybiBnZXRVaW50MzIo
Ynl0ZU9mZnNldCwgZmFsc2UsIGVjKTsgfQorICAgIHVuc2lnbmVkIGdldFVpbnQzMih1bnNpZ25l
ZCBieXRlT2Zmc2V0LCBib29sIGxpdHRsZUVuZGlhbiwgRXhjZXB0aW9uQ29kZSYpOworICAgIGZs
b2F0IGdldEZsb2F0MzIodW5zaWduZWQgYnl0ZU9mZnNldCwgRXhjZXB0aW9uQ29kZSYgZWMpIHsg
cmV0dXJuIGdldEZsb2F0MzIoYnl0ZU9mZnNldCwgZmFsc2UsIGVjKTsgfQorICAgIGZsb2F0IGdl
dEZsb2F0MzIodW5zaWduZWQgYnl0ZU9mZnNldCwgYm9vbCBsaXR0bGVFbmRpYW4sIEV4Y2VwdGlv
bkNvZGUmKTsKKyAgICBkb3VibGUgZ2V0RmxvYXQ2NCh1bnNpZ25lZCBieXRlT2Zmc2V0LCBFeGNl
cHRpb25Db2RlJiBlYykgeyByZXR1cm4gZ2V0RmxvYXQ2NChieXRlT2Zmc2V0LCBmYWxzZSwgZWMp
OyB9CisgICAgZG91YmxlIGdldEZsb2F0NjQodW5zaWduZWQgYnl0ZU9mZnNldCwgYm9vbCBsaXR0
bGVFbmRpYW4sIEV4Y2VwdGlvbkNvZGUmKTsKKworICAgIHZvaWQgc2V0SW50OCh1bnNpZ25lZCBi
eXRlT2Zmc2V0LCBjaGFyIHZhbHVlLCBFeGNlcHRpb25Db2RlJik7CisgICAgdm9pZCBzZXRVaW50
OCh1bnNpZ25lZCBieXRlT2Zmc2V0LCB1bnNpZ25lZCBjaGFyIHZhbHVlLCBFeGNlcHRpb25Db2Rl
Jik7CisgICAgdm9pZCBzZXRJbnQxNih1bnNpZ25lZCBieXRlT2Zmc2V0LCBzaG9ydCB2YWx1ZSwg
RXhjZXB0aW9uQ29kZSYgZWMpIHsgc2V0SW50MTYoYnl0ZU9mZnNldCwgdmFsdWUsIGZhbHNlLCBl
Yyk7IH0KKyAgICB2b2lkIHNldEludDE2KHVuc2lnbmVkIGJ5dGVPZmZzZXQsIHNob3J0IHZhbHVl
LCBib29sIGxpdHRsZUVuZGlhbiwgRXhjZXB0aW9uQ29kZSYpOworICAgIHZvaWQgc2V0VWludDE2
KHVuc2lnbmVkIGJ5dGVPZmZzZXQsIHVuc2lnbmVkIHNob3J0IHZhbHVlLCBFeGNlcHRpb25Db2Rl
JiBlYykgeyBzZXRVaW50MTYoYnl0ZU9mZnNldCwgdmFsdWUsIGZhbHNlLCBlYyk7IH0KKyAgICB2
b2lkIHNldFVpbnQxNih1bnNpZ25lZCBieXRlT2Zmc2V0LCB1bnNpZ25lZCBzaG9ydCB2YWx1ZSwg
Ym9vbCBsaXR0bGVFbmRpYW4sIEV4Y2VwdGlvbkNvZGUmKTsKKyAgICB2b2lkIHNldEludDMyKHVu
c2lnbmVkIGJ5dGVPZmZzZXQsIGludCB2YWx1ZSwgRXhjZXB0aW9uQ29kZSYgZWMpIHsgc2V0SW50
MzIoYnl0ZU9mZnNldCwgdmFsdWUsIGZhbHNlLCBlYyk7IH0gCisgICAgdm9pZCBzZXRJbnQzMih1
bnNpZ25lZCBieXRlT2Zmc2V0LCBpbnQgdmFsdWUsIGJvb2wgbGl0dGxlRW5kaWFuLCBFeGNlcHRp
b25Db2RlJik7CisgICAgdm9pZCBzZXRVaW50MzIodW5zaWduZWQgYnl0ZU9mZnNldCwgdW5zaWdu
ZWQgdmFsdWUsIEV4Y2VwdGlvbkNvZGUmIGVjKSB7IHNldFVpbnQzMihieXRlT2Zmc2V0LCB2YWx1
ZSwgZmFsc2UsIGVjKTsgfQorICAgIHZvaWQgc2V0VWludDMyKHVuc2lnbmVkIGJ5dGVPZmZzZXQs
IHVuc2lnbmVkIHZhbHVlLCBib29sIGxpdHRsZUVuZGlhbiwgRXhjZXB0aW9uQ29kZSYpOworICAg
IHZvaWQgc2V0RmxvYXQzMih1bnNpZ25lZCBieXRlT2Zmc2V0LCBmbG9hdCB2YWx1ZSwgRXhjZXB0
aW9uQ29kZSYgZWMpIHsgc2V0RmxvYXQzMihieXRlT2Zmc2V0LCB2YWx1ZSwgZmFsc2UsIGVjKTsg
fQorICAgIHZvaWQgc2V0RmxvYXQzMih1bnNpZ25lZCBieXRlT2Zmc2V0LCBmbG9hdCB2YWx1ZSwg
Ym9vbCBsaXR0bGVFbmRpYW4sIEV4Y2VwdGlvbkNvZGUmKTsKKyAgICB2b2lkIHNldEZsb2F0NjQo
dW5zaWduZWQgYnl0ZU9mZnNldCwgZG91YmxlIHZhbHVlLCBFeGNlcHRpb25Db2RlJiBlYykgeyBz
ZXRGbG9hdDY0KGJ5dGVPZmZzZXQsIHZhbHVlLCBmYWxzZSwgZWMpOyB9CisgICAgdm9pZCBzZXRG
bG9hdDY0KHVuc2lnbmVkIGJ5dGVPZmZzZXQsIGRvdWJsZSB2YWx1ZSwgYm9vbCBsaXR0bGVFbmRp
YW4sIEV4Y2VwdGlvbkNvZGUmKTsKKworcHJpdmF0ZToKKyAgICBEYXRhVmlldyhQYXNzUmVmUHRy
PEFycmF5QnVmZmVyPiwgdW5zaWduZWQgYnl0ZU9mZnNldCwgdW5zaWduZWQgYnl0ZUxlbmd0aCk7
CisKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBUPgorICAgIGlubGluZSBib29sIGJleW9uZFJhbmdl
KHVuc2lnbmVkIGJ5dGVPZmZzZXQpIGNvbnN0IHsgcmV0dXJuIGJ5dGVPZmZzZXQgKyBzaXplb2Yo
VCkgPiBtX2J5dGVMZW5ndGg7IH0KKworICAgIHRlbXBsYXRlPHR5cGVuYW1lIFQ+CisgICAgVCBn
ZXREYXRhKHVuc2lnbmVkIGJ5dGVPZmZzZXQsIGJvb2wgbGl0dGxlRW5kaWFuLCBFeGNlcHRpb25D
b2RlJikgY29uc3Q7CisKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBUPgorICAgIHZvaWQgc2V0RGF0
YSh1bnNpZ25lZCBieXRlT2Zmc2V0LCBUIHZhbHVlLCBib29sIGxpdHRsZUVuZGlhbiwgRXhjZXB0
aW9uQ29kZSYpOworCisgICAgdW5zaWduZWQgbV9ieXRlTGVuZ3RoOworfTsKKworCit9IC8vIG5h
bWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBEYXRhVmlld19oCmRpZmYgLS1naXQgYS9XZWJD
b3JlL2h0bWwvY2FudmFzL0RhdGFWaWV3LmlkbCBiL1dlYkNvcmUvaHRtbC9jYW52YXMvRGF0YVZp
ZXcuaWRsCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmI1NjU4MDEKLS0tIC9k
ZXYvbnVsbAorKysgYi9XZWJDb3JlL2h0bWwvY2FudmFzL0RhdGFWaWV3LmlkbApAQCAtMCwwICsx
LDg2IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEwIEdvb2dsZSBJbmMuICBBbGwgcmlnaHRz
IHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQorICogbWV0Ogor
ICoKKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCisgKiBjb3B5cmlnaHQgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCisg
KiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlCisgKiBkaXN0cmlidXRpb24uCisgKiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdv
b2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCisgKiBjb250cmlidXRvcnMgbWF5IGJlIHVz
ZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQorICogdGhpcyBz
b2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisg
KiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQg
Q09OVFJJQlVUT1JTCisgKiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FS
UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCisgKiBBIFBBUlRJQ1VM
QVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdI
VAorICogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsCisgKiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVO
VCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKKyAqIERBVEEs
IE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWQorICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgor
ICovCisKK21vZHVsZSBodG1sIHsKKworICAgIGludGVyZmFjZSBbCisgICAgICAgIENvbmRpdGlv
bmFsPTNEX0NBTlZBU3xCTE9CLAorICAgICAgICBDYW5CZUNvbnN0cnVjdGVkLAorICAgICAgICBD
dXN0b21Db25zdHJ1Y3RGdW5jdGlvbiwKKyAgICAgICAgQ3VzdG9tVG9KUywKKyAgICAgICAgTm9T
dGF0aWNUYWJsZXMsCisgICAgICAgIFY4Q3VzdG9tQ29uc3RydWN0b3IKKyAgICBdIERhdGFWaWV3
IDogQXJyYXlCdWZmZXJWaWV3IHsKKyAgICAgICAgLy8gQWxsIHRoZXNlIG1ldGhvZHMgcmFpc2Ug
YW4gZXhjZXB0aW9uIGlmIHRoZXkgd291bGQgcmVhZCBvciB3cml0ZSBiZXlvbmQgdGhlIGVuZCBv
ZiB0aGUgdmlldy4KKworICAgICAgICAvLyBXZSBoYXZlIHRvIHVzZSBjdXN0b20gY29kZSBiZWNh
dXNlIG91ciBjb2RlIGdlbmVyYXRvciBkb2VzIG5vdCBzdXBwb3J0IGNoYXIgdHlwZS4KKyAgICAg
ICAgLy8gY2hhciBnZXRJbnQ4KGluIHVuc2lnbmVkIGxvbmcgYnl0ZU9mZnNldCk7CisgICAgICAg
IC8vIHVuc2lnbmVkIGNoYXIgZ2V0VWludDgoaW4gdW5zaWduZWQgbG9uZyBieXRlT2Zmc2V0KTsK
KyAgICAgICAgW0N1c3RvbV0gRE9NT2JqZWN0IGdldEludDgoKQorICAgICAgICAgICAgcmFpc2Vz
IChET01FeGNlcHRpb24pOworICAgICAgICBbQ3VzdG9tXSBET01PYmplY3QgZ2V0VWludDgoKQor
ICAgICAgICAgICAgcmFpc2VzIChET01FeGNlcHRpb24pOworCisgICAgICAgIFtTdHJpY3RUeXBl
Q2hlY2tpbmcsIFJlcXVpcmVzQWxsQXJndW1lbnRzPVJhaXNlXSBzaG9ydCBnZXRJbnQxNihpbiB1
bnNpZ25lZCBsb25nIGJ5dGVPZmZzZXQsIGluIFtPcHRpb25hbF0gYm9vbGVhbiBsaXR0bGVFbmRp
YW4pCisgICAgICAgICAgICByYWlzZXMgKERPTUV4Y2VwdGlvbik7CisgICAgICAgIFtTdHJpY3RU
eXBlQ2hlY2tpbmcsIFJlcXVpcmVzQWxsQXJndW1lbnRzPVJhaXNlXSB1bnNpZ25lZCBzaG9ydCBn
ZXRVaW50MTYoaW4gdW5zaWduZWQgbG9uZyBieXRlT2Zmc2V0LCBpbiBbT3B0aW9uYWxdIGJvb2xl
YW4gbGl0dGxlRW5kaWFuKQorICAgICAgICAgICAgcmFpc2VzIChET01FeGNlcHRpb24pOworICAg
ICAgICBbU3RyaWN0VHlwZUNoZWNraW5nLCBSZXF1aXJlc0FsbEFyZ3VtZW50cz1SYWlzZV0gbG9u
ZyBnZXRJbnQzMihpbiB1bnNpZ25lZCBsb25nIGJ5dGVPZmZzZXQsIGluIFtPcHRpb25hbF0gYm9v
bGVhbiBsaXR0bGVFbmRpYW4pCisgICAgICAgICAgICByYWlzZXMgKERPTUV4Y2VwdGlvbik7Cisg
ICAgICAgIFtTdHJpY3RUeXBlQ2hlY2tpbmcsIFJlcXVpcmVzQWxsQXJndW1lbnRzPVJhaXNlXSB1
bnNpZ25lZCBsb25nIGdldFVpbnQzMihpbiB1bnNpZ25lZCBsb25nIGJ5dGVPZmZzZXQsIGluIFtP
cHRpb25hbF0gYm9vbGVhbiBsaXR0bGVFbmRpYW4pCisgICAgICAgICAgICByYWlzZXMgKERPTUV4
Y2VwdGlvbik7CisgICAgICAgIFtTdHJpY3RUeXBlQ2hlY2tpbmcsIFJlcXVpcmVzQWxsQXJndW1l
bnRzPVJhaXNlXSBmbG9hdCBnZXRGbG9hdDMyKGluIHVuc2lnbmVkIGxvbmcgYnl0ZU9mZnNldCwg
aW4gW09wdGlvbmFsXSBib29sZWFuIGxpdHRsZUVuZGlhbikKKyAgICAgICAgICAgIHJhaXNlcyAo
RE9NRXhjZXB0aW9uKTsKKyAgICAgICAgW1N0cmljdFR5cGVDaGVja2luZywgUmVxdWlyZXNBbGxB
cmd1bWVudHM9UmFpc2VdIGRvdWJsZSBnZXRGbG9hdDY0KGluIHVuc2lnbmVkIGxvbmcgYnl0ZU9m
ZnNldCwgaW4gW09wdGlvbmFsXSBib29sZWFuIGxpdHRsZUVuZGlhbikKKyAgICAgICAgICAgIHJh
aXNlcyAoRE9NRXhjZXB0aW9uKTsKKworICAgICAgICAvLyBXZSBoYXZlIHRvIHVzZSBjdXN0b20g
Y29kZSBiZWNhdXNlIG91ciBjb2RlIGdlbmVyYXRvciBkb2VzIG5vdCBzdXBwb3J0IGNoYXIgdHlw
ZS4KKyAgICAgICAgLy8gdm9pZCBzZXRJbnQ4KGluIHVuc2lnbmVkIGxvbmcgYnl0ZU9mZnNldCwg
aW4gYnl0ZSB2YWx1ZSk7CisgICAgICAgIC8vIHZvaWQgc2V0VWludDgoaW4gdW5zaWduZWQgbG9u
ZyBieXRlT2Zmc2V0LCBpbiB1bnNpZ25lZCBieXRlIHZhbHVlKTsKKyAgICAgICAgW0N1c3RvbV0g
dm9pZCBzZXRJbnQ4KCkKKyAgICAgICAgICAgIHJhaXNlcyAoRE9NRXhjZXB0aW9uKTsKKyAgICAg
ICAgW0N1c3RvbV0gdm9pZCBzZXRVaW50OCgpCisgICAgICAgICAgICByYWlzZXMgKERPTUV4Y2Vw
dGlvbik7CisKKyAgICAgICAgW1N0cmljdFR5cGVDaGVja2luZywgUmVxdWlyZXNBbGxBcmd1bWVu
dHM9UmFpc2VdIHZvaWQgc2V0SW50MTYoaW4gdW5zaWduZWQgbG9uZyBieXRlT2Zmc2V0LCBpbiBz
aG9ydCB2YWx1ZSwgaW4gW09wdGlvbmFsXSBib29sZWFuIGxpdHRsZUVuZGlhbikKKyAgICAgICAg
ICAgIHJhaXNlcyAoRE9NRXhjZXB0aW9uKTsKKyAgICAgICAgW1N0cmljdFR5cGVDaGVja2luZywg
UmVxdWlyZXNBbGxBcmd1bWVudHM9UmFpc2VdIHZvaWQgc2V0VWludDE2KGluIHVuc2lnbmVkIGxv
bmcgYnl0ZU9mZnNldCwgaW4gdW5zaWduZWQgc2hvcnQgdmFsdWUsIGluIFtPcHRpb25hbF0gYm9v
bGVhbiBsaXR0bGVFbmRpYW4pCisgICAgICAgICAgICByYWlzZXMgKERPTUV4Y2VwdGlvbik7Cisg
ICAgICAgIFtTdHJpY3RUeXBlQ2hlY2tpbmcsIFJlcXVpcmVzQWxsQXJndW1lbnRzPVJhaXNlXSB2
b2lkIHNldEludDMyKGluIHVuc2lnbmVkIGxvbmcgYnl0ZU9mZnNldCwgaW4gbG9uZyB2YWx1ZSwg
aW4gW09wdGlvbmFsXSBib29sZWFuIGxpdHRsZUVuZGlhbikKKyAgICAgICAgICAgIHJhaXNlcyAo
RE9NRXhjZXB0aW9uKTsKKyAgICAgICAgW1N0cmljdFR5cGVDaGVja2luZywgUmVxdWlyZXNBbGxB
cmd1bWVudHM9UmFpc2VdIHZvaWQgc2V0VWludDMyKGluIHVuc2lnbmVkIGxvbmcgYnl0ZU9mZnNl
dCwgaW4gdW5zaWduZWQgbG9uZyB2YWx1ZSwgaW4gW09wdGlvbmFsXSBib29sZWFuIGxpdHRsZUVu
ZGlhbikKKyAgICAgICAgICAgIHJhaXNlcyAoRE9NRXhjZXB0aW9uKTsKKyAgICAgICAgW1N0cmlj
dFR5cGVDaGVja2luZywgUmVxdWlyZXNBbGxBcmd1bWVudHM9UmFpc2VdIHZvaWQgc2V0RmxvYXQz
MihpbiB1bnNpZ25lZCBsb25nIGJ5dGVPZmZzZXQsIGluIGZsb2F0IHZhbHVlLCBpbiBbT3B0aW9u
YWxdIGJvb2xlYW4gbGl0dGxlRW5kaWFuKQorICAgICAgICAgICAgcmFpc2VzIChET01FeGNlcHRp
b24pOworICAgICAgICBbU3RyaWN0VHlwZUNoZWNraW5nLCBSZXF1aXJlc0FsbEFyZ3VtZW50cz1S
YWlzZV0gdm9pZCBzZXRGbG9hdDY0KGluIHVuc2lnbmVkIGxvbmcgYnl0ZU9mZnNldCwgaW4gZG91
YmxlIHZhbHVlLCBpbiBbT3B0aW9uYWxdIGJvb2xlYW4gbGl0dGxlRW5kaWFuKQorICAgICAgICAg
ICAgcmFpc2VzIChET01FeGNlcHRpb24pOworICAgIH07CisKK30KZGlmZiAtLWdpdCBhL1dlYkNv
cmUvcGFnZS9ET01XaW5kb3cuaWRsIGIvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5pZGwKaW5kZXgg
YjkzZmY1NS4uYTQ0NGQ2YSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5pZGwK
KysrIGIvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5pZGwKQEAgLTQ5NSw2ICs0OTUsNyBAQCBtb2R1
bGUgd2luZG93IHsKICAgICAgICAgYXR0cmlidXRlIFtKU0NDdXN0b21HZXR0ZXIsQ29uZGl0aW9u
YWw9M0RfQ0FOVkFTfEJMT0IsRW5hYmxlZEF0UnVudGltZV0gSW50MzJBcnJheUNvbnN0cnVjdG9y
IEludDMyQXJyYXk7IC8vIFVzYWJsZSB3aXRoIG5ldyBvcGVyYXRvcgogICAgICAgICBhdHRyaWJ1
dGUgW0pTQ0N1c3RvbUdldHRlcixDb25kaXRpb25hbD0zRF9DQU5WQVN8QkxPQixFbmFibGVkQXRS
dW50aW1lXSBVaW50MzJBcnJheUNvbnN0cnVjdG9yIFVpbnQzMkFycmF5OyAvLyBVc2FibGUgd2l0
aCBuZXcgb3BlcmF0b3IKICAgICAgICAgYXR0cmlidXRlIFtKU0NDdXN0b21HZXR0ZXIsQ29uZGl0
aW9uYWw9M0RfQ0FOVkFTfEJMT0IsRW5hYmxlZEF0UnVudGltZV0gRmxvYXQzMkFycmF5Q29uc3Ry
dWN0b3IgRmxvYXQzMkFycmF5OyAvLyBVc2FibGUgd2l0aCBuZXcgb3BlcmF0b3IKKyAgICAgICAg
YXR0cmlidXRlIFtKU0NDdXN0b21HZXR0ZXIsQ29uZGl0aW9uYWw9M0RfQ0FOVkFTfEJMT0IsRW5h
YmxlZEF0UnVudGltZV0gRGF0YVZpZXdDb25zdHJ1Y3RvciBEYXRhVmlldzsgLy8gVXNhYmxlIHdp
dGggbmV3IG9wZXJhdG9yCiAKICAgICAgICAgYXR0cmlidXRlIEV2ZW50Q29uc3RydWN0b3IgRXZl
bnQ7CiAgICAgICAgIGF0dHJpYnV0ZSBCZWZvcmVMb2FkRXZlbnRDb25zdHJ1Y3RvciBCZWZvcmVM
b2FkRXZlbnQ7Cg==
</data>
<flag name="commit-queue"
          id="64917"
          type_id="3"
          status="-"
          setter="jianli"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>74349</attachid>
            <date>2010-11-18 20:42:16 -0800</date>
            <delta_ts>2010-11-23 19:30:44 -0800</delta_ts>
            <desc>Proposed Patch</desc>
            <filename>46541_2</filename>
            <type>text/plain</type>
            <size>87851</size>
            <attacher name="Jian Li">jianli</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCA2NDY4YmY2Li4zZjBhZGI2IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjMgQEAKKzIwMTAtMTEt
MTggIEppYW4gTGkgIDxqaWFubGlAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEltcGxlbWVudCBEYXRhVmlldyBpbnRlcmZhY2Ug
ZnJvbSBUeXBlZCBBcnJheSBzcGVjaWZpY2F0aW9uCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD00NjU0MQorCisgICAgICAgIEFkZCBhIG5ldyB0ZXN0IGZv
ciB0ZXN0aW5nIERhdGFWaWV3IGludGVyZmFjZS4gQWxzbyB1cGRhdGUgc29tZSB0ZXN0cworICAg
ICAgICB0byBleGNsdWRlIERhdGFWaWV3IHByb3BlcnR5IGZyb20gYmVpbmcgdGVzdGVkIGJlY2F1
c2UgaXQgaXMgbm90CisgICAgICAgIGV4cG9zZWQgdG8gYWxsIHBsYXRmb3Jtcy4KKworICAgICAg
ICAqIGZhc3QvY2FudmFzL3dlYmdsL2RhdGEtdmlldy10ZXN0LWV4cGVjdGVkLnR4dDogQWRkZWQu
CisgICAgICAgICogZmFzdC9jYW52YXMvd2ViZ2wvZGF0YS12aWV3LXRlc3QuaHRtbDogQWRkZWQu
CisgICAgICAgICogZmFzdC9kb20vV2luZG93L3NjcmlwdC10ZXN0cy93aW5kb3ctcHJvcGVydHkt
ZGVzY3JpcHRvcnMuanM6CisgICAgICAgICogZmFzdC9kb20vV2luZG93L3dpbmRvdy1wcm9wZXJ0
aWVzLmh0bWw6CisgICAgICAgICogZmFzdC9kb20vc2NyaXB0LXRlc3RzL3Byb3RvdHlwZS1pbmhl
cml0YW5jZS0yLmpzOgorICAgICAgICAoY29uc3RydWN0b3JOYW1lc0ZvcldpbmRvdyk6CisgICAg
ICAgICogZmFzdC9kb20vc2NyaXB0LXRlc3RzL3Byb3RvdHlwZS1pbmhlcml0YW5jZS5qczoKKyAg
ICAgICAgKiBmYXN0L2pzL3NjcmlwdC10ZXN0cy9nbG9iYWwtY29uc3RydWN0b3JzLmpzOgorCiAy
MDEwLTExLTE4ICBEYXZlIEh5YXR0ICA8aHlhdHRAYXBwbGUuY29tPgogCiAgICAgICAgIFJldmll
d2VkIGJ5IERhbiBCZXJuc3RlaW4uCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2NhbnZh
cy93ZWJnbC9kYXRhLXZpZXctdGVzdC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2Nh
bnZhcy93ZWJnbC9kYXRhLXZpZXctdGVzdC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMC4uNzhmNTlkNAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L2Zhc3QvY2FudmFzL3dlYmdsL2RhdGEtdmlldy10ZXN0LWV4cGVjdGVkLnR4dApAQCAtMCwwICsx
LDI3MSBAQAorVGVzdCBEYXRhVmlldy4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2Vy
aWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCitU
ZXN0IGdldHRlcjogYmFzaWNzCitQQVNTIHZpZXcuZ2V0SW50OCgwKSBpcyAwCitQQVNTIHZpZXcu
Z2V0SW50OCg4KSBpcyAtMTI4CitQQVNTIHZpZXcuZ2V0SW50OCgxNSkgaXMgLTEKK1BBU1Mgdmll
dy5nZXRVaW50OCgwKSBpcyAwCitQQVNTIHZpZXcuZ2V0VWludDgoOCkgaXMgMTI4CitQQVNTIHZp
ZXcuZ2V0VWludDgoMTUpIGlzIDI1NQorUEFTUyB2aWV3LmdldEludDE2KDAsIHRydWUpIGlzIDI1
NgorUEFTUyB2aWV3LmdldEludDE2KDgsIHRydWUpIGlzIC0zMjM4NAorUEFTUyB2aWV3LmdldElu
dDE2KDE0LCB0cnVlKSBpcyAtMgorUEFTUyB2aWV3LmdldEludDE2KDApIGlzIDEKK1BBU1Mgdmll
dy5nZXRJbnQxNig4KSBpcyAtMzI2MzkKK1BBU1Mgdmlldy5nZXRJbnQxNigxNCkgaXMgLTI1Nwor
UEFTUyB2aWV3LmdldFVpbnQxNigwLCB0cnVlKSBpcyAyNTYKK1BBU1Mgdmlldy5nZXRVaW50MTYo
OCwgdHJ1ZSkgaXMgMzMxNTIKK1BBU1Mgdmlldy5nZXRVaW50MTYoMTQsIHRydWUpIGlzIDY1NTM0
CitQQVNTIHZpZXcuZ2V0VWludDE2KDApIGlzIDEKK1BBU1Mgdmlldy5nZXRVaW50MTYoOCkgaXMg
MzI4OTcKK1BBU1Mgdmlldy5nZXRVaW50MTYoMTQpIGlzIDY1Mjc5CitQQVNTIHZpZXcuZ2V0SW50
MzIoMCwgdHJ1ZSkgaXMgNTA0NjI5NzYKK1BBU1Mgdmlldy5nZXRJbnQzMig4LCB0cnVlKSBpcyAt
MjA4ODU5OTE2OAorUEFTUyB2aWV3LmdldEludDMyKDEyLCB0cnVlKSBpcyAtNjYwNTIKK1BBU1Mg
dmlldy5nZXRJbnQzMigwKSBpcyA2NjA1MQorUEFTUyB2aWV3LmdldEludDMyKDgpIGlzIC0yMTM4
OTk2MDkzCitQQVNTIHZpZXcuZ2V0SW50MzIoMTIpIGlzIC01MDQ2Mjk3NworUEFTUyB2aWV3Lmdl
dFVpbnQzMigwLCB0cnVlKSBpcyA1MDQ2Mjk3NgorUEFTUyB2aWV3LmdldFVpbnQzMig4LCB0cnVl
KSBpcyAyMjA2MzY4MTI4CitQQVNTIHZpZXcuZ2V0VWludDMyKDEyLCB0cnVlKSBpcyA0Mjk0OTAx
MjQ0CitQQVNTIHZpZXcuZ2V0VWludDMyKDApIGlzIDY2MDUxCitQQVNTIHZpZXcuZ2V0VWludDMy
KDgpIGlzIDIxNTU5NzEyMDMKK1BBU1Mgdmlldy5nZXRVaW50MzIoMTIpIGlzIDQyNDQ1MDQzMTkK
K1BBU1Mgdmlldy5nZXRGbG9hdDMyKDAsIHRydWUpIGlzIDMuODIwNDcxNDM0NTQyNjMyZS0zNwor
UEFTUyB2aWV3LmdldEZsb2F0MzIoOCwgdHJ1ZSkgaXMgLTcuNjcwNDQ1MDIyMjI2MDE4ZS0zNwor
UEFTUyB2aWV3LmdldEZsb2F0MzIoMTAsIHRydWUpIGlzIC00LjE5NTYwMzUzMTc0Mzk0MTdlKzM3
CitQQVNTIHZpZXcuZ2V0RmxvYXQzMigwKSBpcyA5LjI1NTcxNjQ4NjcxMTg1ZS00MQorUEFTUyB2
aWV3LmdldEZsb2F0MzIoOCkgaXMgLTEuMTg5MzU5Nzc4NzM3MjQyM2UtMzgKK1BBU1Mgdmlldy5n
ZXRGbG9hdDMyKDEwKSBpcyAtMS45MzkzOTI4MTQ2NzgyMTUzZS0zNworUEFTUyB2aWV3LmdldEZs
b2F0NjQoMCwgdHJ1ZSkgaXMgMS4yNDczMjI3NzI2NzQxNDEzZSsxOTAKK1BBU1Mgdmlldy5nZXRG
bG9hdDY0KDQsIHRydWUpIGlzIC05LjI3MjIxNzU0NjUxOTgwNzBlLTI5MgorUEFTUyB2aWV3Lmdl
dEZsb2F0NjQoNywgdHJ1ZSkgaXMgLTUuMTQwOTA2NTcwOTc5ODk0MGUrMzAzCitQQVNTIHZpZXcu
Z2V0RmxvYXQ2NCgwKSBpcyAxLjQwMTYwNzc2MTc2ODkyNzBlLTMwOQorUEFTUyB2aWV3LmdldEZs
b2F0NjQoNCkgaXMgNC4yMzQyOTk4MDAyNzI4NTUwZSsxNzUKK1BBU1Mgdmlldy5nZXRGbG9hdDY0
KDcpIGlzIDMuNjc3MTA4MzE4ODA1MzI0MGUrMTkwCisKK1Rlc3QgZ2V0dGVyOiBjb3VsZCByZWFk
IGJleW9uZCB0aGUgcmFuZ2UKK1BBU1Mgdmlldy5nZXRJbnQ4KDApIGlzIDAKK1BBU1Mgdmlldy5n
ZXRJbnQ4KDgpIGlzIC0xMjgKK1BBU1Mgdmlldy5nZXRJbnQ4KDE1KSB0aHJldyBleGNlcHRpb24g
RXJyb3I6IElOREVYX1NJWkVfRVJSOiBET00gRXhjZXB0aW9uIDEuCitQQVNTIHZpZXcuZ2V0VWlu
dDgoMCkgaXMgMAorUEFTUyB2aWV3LmdldFVpbnQ4KDgpIGlzIDEyOAorUEFTUyB2aWV3LmdldFVp
bnQ4KDE1KSB0aHJldyBleGNlcHRpb24gRXJyb3I6IElOREVYX1NJWkVfRVJSOiBET00gRXhjZXB0
aW9uIDEuCitQQVNTIHZpZXcuZ2V0SW50MTYoMCwgdHJ1ZSkgaXMgMjU2CitQQVNTIHZpZXcuZ2V0
SW50MTYoOCwgdHJ1ZSkgaXMgLTMyMzg0CitQQVNTIHZpZXcuZ2V0SW50MTYoMTQsIHRydWUpIHRo
cmV3IGV4Y2VwdGlvbiBFcnJvcjogSU5ERVhfU0laRV9FUlI6IERPTSBFeGNlcHRpb24gMS4KK1BB
U1Mgdmlldy5nZXRJbnQxNigwKSBpcyAxCitQQVNTIHZpZXcuZ2V0SW50MTYoOCkgaXMgLTMyNjM5
CitQQVNTIHZpZXcuZ2V0SW50MTYoMTQpIHRocmV3IGV4Y2VwdGlvbiBFcnJvcjogSU5ERVhfU0la
RV9FUlI6IERPTSBFeGNlcHRpb24gMS4KK1BBU1Mgdmlldy5nZXRVaW50MTYoMCwgdHJ1ZSkgaXMg
MjU2CitQQVNTIHZpZXcuZ2V0VWludDE2KDgsIHRydWUpIGlzIDMzMTUyCitQQVNTIHZpZXcuZ2V0
VWludDE2KDE0LCB0cnVlKSB0aHJldyBleGNlcHRpb24gRXJyb3I6IElOREVYX1NJWkVfRVJSOiBE
T00gRXhjZXB0aW9uIDEuCitQQVNTIHZpZXcuZ2V0VWludDE2KDApIGlzIDEKK1BBU1Mgdmlldy5n
ZXRVaW50MTYoOCkgaXMgMzI4OTcKK1BBU1Mgdmlldy5nZXRVaW50MTYoMTQpIHRocmV3IGV4Y2Vw
dGlvbiBFcnJvcjogSU5ERVhfU0laRV9FUlI6IERPTSBFeGNlcHRpb24gMS4KK1BBU1Mgdmlldy5n
ZXRJbnQzMigwLCB0cnVlKSBpcyA1MDQ2Mjk3NgorUEFTUyB2aWV3LmdldEludDMyKDgsIHRydWUp
IHRocmV3IGV4Y2VwdGlvbiBFcnJvcjogSU5ERVhfU0laRV9FUlI6IERPTSBFeGNlcHRpb24gMS4K
K1BBU1Mgdmlldy5nZXRJbnQzMigxMiwgdHJ1ZSkgdGhyZXcgZXhjZXB0aW9uIEVycm9yOiBJTkRF
WF9TSVpFX0VSUjogRE9NIEV4Y2VwdGlvbiAxLgorUEFTUyB2aWV3LmdldEludDMyKDApIGlzIDY2
MDUxCitQQVNTIHZpZXcuZ2V0SW50MzIoOCkgdGhyZXcgZXhjZXB0aW9uIEVycm9yOiBJTkRFWF9T
SVpFX0VSUjogRE9NIEV4Y2VwdGlvbiAxLgorUEFTUyB2aWV3LmdldEludDMyKDEyKSB0aHJldyBl
eGNlcHRpb24gRXJyb3I6IElOREVYX1NJWkVfRVJSOiBET00gRXhjZXB0aW9uIDEuCitQQVNTIHZp
ZXcuZ2V0VWludDMyKDAsIHRydWUpIGlzIDUwNDYyOTc2CitQQVNTIHZpZXcuZ2V0VWludDMyKDgs
IHRydWUpIHRocmV3IGV4Y2VwdGlvbiBFcnJvcjogSU5ERVhfU0laRV9FUlI6IERPTSBFeGNlcHRp
b24gMS4KK1BBU1Mgdmlldy5nZXRVaW50MzIoMTIsIHRydWUpIHRocmV3IGV4Y2VwdGlvbiBFcnJv
cjogSU5ERVhfU0laRV9FUlI6IERPTSBFeGNlcHRpb24gMS4KK1BBU1Mgdmlldy5nZXRVaW50MzIo
MCkgaXMgNjYwNTEKK1BBU1Mgdmlldy5nZXRVaW50MzIoOCkgdGhyZXcgZXhjZXB0aW9uIEVycm9y
OiBJTkRFWF9TSVpFX0VSUjogRE9NIEV4Y2VwdGlvbiAxLgorUEFTUyB2aWV3LmdldFVpbnQzMigx
MikgdGhyZXcgZXhjZXB0aW9uIEVycm9yOiBJTkRFWF9TSVpFX0VSUjogRE9NIEV4Y2VwdGlvbiAx
LgorUEFTUyB2aWV3LmdldEZsb2F0MzIoMCwgdHJ1ZSkgaXMgMy44MjA0NzE0MzQ1NDI2MzJlLTM3
CitQQVNTIHZpZXcuZ2V0RmxvYXQzMig4LCB0cnVlKSB0aHJldyBleGNlcHRpb24gRXJyb3I6IElO
REVYX1NJWkVfRVJSOiBET00gRXhjZXB0aW9uIDEuCitQQVNTIHZpZXcuZ2V0RmxvYXQzMigxMCwg
dHJ1ZSkgdGhyZXcgZXhjZXB0aW9uIEVycm9yOiBJTkRFWF9TSVpFX0VSUjogRE9NIEV4Y2VwdGlv
biAxLgorUEFTUyB2aWV3LmdldEZsb2F0MzIoMCkgaXMgOS4yNTU3MTY0ODY3MTE4NWUtNDEKK1BB
U1Mgdmlldy5nZXRGbG9hdDMyKDgpIHRocmV3IGV4Y2VwdGlvbiBFcnJvcjogSU5ERVhfU0laRV9F
UlI6IERPTSBFeGNlcHRpb24gMS4KK1BBU1Mgdmlldy5nZXRGbG9hdDMyKDEwKSB0aHJldyBleGNl
cHRpb24gRXJyb3I6IElOREVYX1NJWkVfRVJSOiBET00gRXhjZXB0aW9uIDEuCitQQVNTIHZpZXcu
Z2V0RmxvYXQ2NCgwLCB0cnVlKSBpcyAxLjI0NzMyMjc3MjY3NDE0MTNlKzE5MAorUEFTUyB2aWV3
LmdldEZsb2F0NjQoNCwgdHJ1ZSkgdGhyZXcgZXhjZXB0aW9uIEVycm9yOiBJTkRFWF9TSVpFX0VS
UjogRE9NIEV4Y2VwdGlvbiAxLgorUEFTUyB2aWV3LmdldEZsb2F0NjQoNywgdHJ1ZSkgdGhyZXcg
ZXhjZXB0aW9uIEVycm9yOiBJTkRFWF9TSVpFX0VSUjogRE9NIEV4Y2VwdGlvbiAxLgorUEFTUyB2
aWV3LmdldEZsb2F0NjQoMCkgaXMgMS40MDE2MDc3NjE3Njg5MjcwZS0zMDkKK1BBU1Mgdmlldy5n
ZXRGbG9hdDY0KDQpIHRocmV3IGV4Y2VwdGlvbiBFcnJvcjogSU5ERVhfU0laRV9FUlI6IERPTSBF
eGNlcHRpb24gMS4KK1BBU1Mgdmlldy5nZXRGbG9hdDY0KDcpIHRocmV3IGV4Y2VwdGlvbiBFcnJv
cjogSU5ERVhfU0laRV9FUlI6IERPTSBFeGNlcHRpb24gMS4KKworVGVzdCBzZXR0ZXI6IGJhc2lj
cworUEFTUyB2aWV3LnNldEludDgoMCwgMCkgaXMgdW5kZWZpbmVkLgorUEFTUyB2aWV3LmdldElu
dDgoMCkgaXMgMAorUEFTUyB2aWV3LnNldEludDgoOCwgLTEyOCkgaXMgdW5kZWZpbmVkLgorUEFT
UyB2aWV3LmdldEludDgoOCkgaXMgLTEyOAorUEFTUyB2aWV3LnNldEludDgoMTUsIC0xKSBpcyB1
bmRlZmluZWQuCitQQVNTIHZpZXcuZ2V0SW50OCgxNSkgaXMgLTEKK1BBU1Mgdmlldy5zZXRVaW50
OCgwLCAwKSBpcyB1bmRlZmluZWQuCitQQVNTIHZpZXcuZ2V0VWludDgoMCkgaXMgMAorUEFTUyB2
aWV3LnNldFVpbnQ4KDgsIDEyOCkgaXMgdW5kZWZpbmVkLgorUEFTUyB2aWV3LmdldFVpbnQ4KDgp
IGlzIDEyOAorUEFTUyB2aWV3LnNldFVpbnQ4KDE1LCAyNTUpIGlzIHVuZGVmaW5lZC4KK1BBU1Mg
dmlldy5nZXRVaW50OCgxNSkgaXMgMjU1CitQQVNTIHZpZXcuc2V0SW50MTYoMCwgMjU2LCB0cnVl
KSBpcyB1bmRlZmluZWQuCitQQVNTIHZpZXcuZ2V0SW50MTYoMCwgdHJ1ZSkgaXMgMjU2CitQQVNT
IHZpZXcuc2V0SW50MTYoOCwgLTMyMzg0LCB0cnVlKSBpcyB1bmRlZmluZWQuCitQQVNTIHZpZXcu
Z2V0SW50MTYoOCwgdHJ1ZSkgaXMgLTMyMzg0CitQQVNTIHZpZXcuc2V0SW50MTYoMTQsIC0yLCB0
cnVlKSBpcyB1bmRlZmluZWQuCitQQVNTIHZpZXcuZ2V0SW50MTYoMTQsIHRydWUpIGlzIC0yCitQ
QVNTIHZpZXcuc2V0SW50MTYoMCwgMSkgaXMgdW5kZWZpbmVkLgorUEFTUyB2aWV3LmdldEludDE2
KDApIGlzIDEKK1BBU1Mgdmlldy5zZXRJbnQxNig4LCAtMzI2MzkpIGlzIHVuZGVmaW5lZC4KK1BB
U1Mgdmlldy5nZXRJbnQxNig4KSBpcyAtMzI2MzkKK1BBU1Mgdmlldy5zZXRJbnQxNigxNCwgLTI1
NykgaXMgdW5kZWZpbmVkLgorUEFTUyB2aWV3LmdldEludDE2KDE0KSBpcyAtMjU3CitQQVNTIHZp
ZXcuc2V0VWludDE2KDAsIDI1NiwgdHJ1ZSkgaXMgdW5kZWZpbmVkLgorUEFTUyB2aWV3LmdldFVp
bnQxNigwLCB0cnVlKSBpcyAyNTYKK1BBU1Mgdmlldy5zZXRVaW50MTYoOCwgMzMxNTIsIHRydWUp
IGlzIHVuZGVmaW5lZC4KK1BBU1Mgdmlldy5nZXRVaW50MTYoOCwgdHJ1ZSkgaXMgMzMxNTIKK1BB
U1Mgdmlldy5zZXRVaW50MTYoMTQsIDY1NTM0LCB0cnVlKSBpcyB1bmRlZmluZWQuCitQQVNTIHZp
ZXcuZ2V0VWludDE2KDE0LCB0cnVlKSBpcyA2NTUzNAorUEFTUyB2aWV3LnNldFVpbnQxNigwLCAx
KSBpcyB1bmRlZmluZWQuCitQQVNTIHZpZXcuZ2V0VWludDE2KDApIGlzIDEKK1BBU1Mgdmlldy5z
ZXRVaW50MTYoOCwgMzI4OTcpIGlzIHVuZGVmaW5lZC4KK1BBU1Mgdmlldy5nZXRVaW50MTYoOCkg
aXMgMzI4OTcKK1BBU1Mgdmlldy5zZXRVaW50MTYoMTQsIDY1Mjc5KSBpcyB1bmRlZmluZWQuCitQ
QVNTIHZpZXcuZ2V0VWludDE2KDE0KSBpcyA2NTI3OQorUEFTUyB2aWV3LnNldEludDMyKDAsIDUw
NDYyOTc2LCB0cnVlKSBpcyB1bmRlZmluZWQuCitQQVNTIHZpZXcuZ2V0SW50MzIoMCwgdHJ1ZSkg
aXMgNTA0NjI5NzYKK1BBU1Mgdmlldy5zZXRJbnQzMig4LCAtMjA4ODU5OTE2OCwgdHJ1ZSkgaXMg
dW5kZWZpbmVkLgorUEFTUyB2aWV3LmdldEludDMyKDgsIHRydWUpIGlzIC0yMDg4NTk5MTY4CitQ
QVNTIHZpZXcuc2V0SW50MzIoMTIsIC02NjA1MiwgdHJ1ZSkgaXMgdW5kZWZpbmVkLgorUEFTUyB2
aWV3LmdldEludDMyKDEyLCB0cnVlKSBpcyAtNjYwNTIKK1BBU1Mgdmlldy5zZXRJbnQzMigwLCA2
NjA1MSkgaXMgdW5kZWZpbmVkLgorUEFTUyB2aWV3LmdldEludDMyKDApIGlzIDY2MDUxCitQQVNT
IHZpZXcuc2V0SW50MzIoOCwgLTIxMzg5OTYwOTMpIGlzIHVuZGVmaW5lZC4KK1BBU1Mgdmlldy5n
ZXRJbnQzMig4KSBpcyAtMjEzODk5NjA5MworUEFTUyB2aWV3LnNldEludDMyKDEyLCAtNTA0NjI5
NzcpIGlzIHVuZGVmaW5lZC4KK1BBU1Mgdmlldy5nZXRJbnQzMigxMikgaXMgLTUwNDYyOTc3CitQ
QVNTIHZpZXcuc2V0VWludDMyKDAsIDUwNDYyOTc2LCB0cnVlKSBpcyB1bmRlZmluZWQuCitQQVNT
IHZpZXcuZ2V0VWludDMyKDAsIHRydWUpIGlzIDUwNDYyOTc2CitQQVNTIHZpZXcuc2V0VWludDMy
KDgsIDIyMDYzNjgxMjgsIHRydWUpIGlzIHVuZGVmaW5lZC4KK1BBU1Mgdmlldy5nZXRVaW50MzIo
OCwgdHJ1ZSkgaXMgMjIwNjM2ODEyOAorUEFTUyB2aWV3LnNldFVpbnQzMigxMiwgNDI5NDkwMTI0
NCwgdHJ1ZSkgaXMgdW5kZWZpbmVkLgorUEFTUyB2aWV3LmdldFVpbnQzMigxMiwgdHJ1ZSkgaXMg
NDI5NDkwMTI0NAorUEFTUyB2aWV3LnNldFVpbnQzMigwLCA2NjA1MSkgaXMgdW5kZWZpbmVkLgor
UEFTUyB2aWV3LmdldFVpbnQzMigwKSBpcyA2NjA1MQorUEFTUyB2aWV3LnNldFVpbnQzMig4LCAy
MTU1OTcxMjAzKSBpcyB1bmRlZmluZWQuCitQQVNTIHZpZXcuZ2V0VWludDMyKDgpIGlzIDIxNTU5
NzEyMDMKK1BBU1Mgdmlldy5zZXRVaW50MzIoMTIsIDQyNDQ1MDQzMTkpIGlzIHVuZGVmaW5lZC4K
K1BBU1Mgdmlldy5nZXRVaW50MzIoMTIpIGlzIDQyNDQ1MDQzMTkKK1BBU1Mgdmlldy5zZXRGbG9h
dDMyKDAsIDMuODIwNDcxNDM0NTQyNjMyZS0zNywgdHJ1ZSkgaXMgdW5kZWZpbmVkLgorUEFTUyB2
aWV3LmdldEZsb2F0MzIoMCwgdHJ1ZSkgaXMgMy44MjA0NzE0MzQ1NDI2MzJlLTM3CitQQVNTIHZp
ZXcuc2V0RmxvYXQzMig4LCAtNy42NzA0NDUwMjIyMjYwMThlLTM3LCB0cnVlKSBpcyB1bmRlZmlu
ZWQuCitQQVNTIHZpZXcuZ2V0RmxvYXQzMig4LCB0cnVlKSBpcyAtNy42NzA0NDUwMjIyMjYwMThl
LTM3CitQQVNTIHZpZXcuc2V0RmxvYXQzMigxMCwgLTQuMTk1NjAzNTMxNzQzOTQxN2UrMzcsIHRy
dWUpIGlzIHVuZGVmaW5lZC4KK1BBU1Mgdmlldy5nZXRGbG9hdDMyKDEwLCB0cnVlKSBpcyAtNC4x
OTU2MDM1MzE3NDM5NDE3ZSszNworUEFTUyB2aWV3LnNldEZsb2F0MzIoMCwgOS4yNTU3MTY0ODY3
MTE4NWUtNDEpIGlzIHVuZGVmaW5lZC4KK1BBU1Mgdmlldy5nZXRGbG9hdDMyKDApIGlzIDkuMjU1
NzE2NDg2NzExODVlLTQxCitQQVNTIHZpZXcuc2V0RmxvYXQzMig4LCAtMS4xODkzNTk3Nzg3Mzcy
NDIzZS0zOCkgaXMgdW5kZWZpbmVkLgorUEFTUyB2aWV3LmdldEZsb2F0MzIoOCkgaXMgLTEuMTg5
MzU5Nzc4NzM3MjQyM2UtMzgKK1BBU1Mgdmlldy5zZXRGbG9hdDMyKDEwLCAtMS45MzkzOTI4MTQ2
NzgyMTUzZS0zNykgaXMgdW5kZWZpbmVkLgorUEFTUyB2aWV3LmdldEZsb2F0MzIoMTApIGlzIC0x
LjkzOTM5MjgxNDY3ODIxNTNlLTM3CitQQVNTIHZpZXcuc2V0RmxvYXQ2NCgwLCAxLjI0NzMyMjc3
MjY3NDE0MTNlKzE5MCwgdHJ1ZSkgaXMgdW5kZWZpbmVkLgorUEFTUyB2aWV3LmdldEZsb2F0NjQo
MCwgdHJ1ZSkgaXMgMS4yNDczMjI3NzI2NzQxNDEzZSsxOTAKK1BBU1Mgdmlldy5zZXRGbG9hdDY0
KDQsIC05LjI3MjIxNzU0NjUxOTgwNzBlLTI5MiwgdHJ1ZSkgaXMgdW5kZWZpbmVkLgorUEFTUyB2
aWV3LmdldEZsb2F0NjQoNCwgdHJ1ZSkgaXMgLTkuMjcyMjE3NTQ2NTE5ODA3MGUtMjkyCitQQVNT
IHZpZXcuc2V0RmxvYXQ2NCg3LCAtNS4xNDA5MDY1NzA5Nzk4OTQwZSszMDMsIHRydWUpIGlzIHVu
ZGVmaW5lZC4KK1BBU1Mgdmlldy5nZXRGbG9hdDY0KDcsIHRydWUpIGlzIC01LjE0MDkwNjU3MDk3
OTg5NDBlKzMwMworUEFTUyB2aWV3LnNldEZsb2F0NjQoMCwgMS40MDE2MDc3NjE3Njg5MjcwZS0z
MDkpIGlzIHVuZGVmaW5lZC4KK1BBU1Mgdmlldy5nZXRGbG9hdDY0KDApIGlzIDEuNDAxNjA3NzYx
NzY4OTI3MGUtMzA5CitQQVNTIHZpZXcuc2V0RmxvYXQ2NCg0LCA0LjIzNDI5OTgwMDI3Mjg1NTBl
KzE3NSkgaXMgdW5kZWZpbmVkLgorUEFTUyB2aWV3LmdldEZsb2F0NjQoNCkgaXMgNC4yMzQyOTk4
MDAyNzI4NTUwZSsxNzUKK1BBU1Mgdmlldy5zZXRGbG9hdDY0KDcsIDMuNjc3MTA4MzE4ODA1MzI0
MGUrMTkwKSBpcyB1bmRlZmluZWQuCitQQVNTIHZpZXcuZ2V0RmxvYXQ2NCg3KSBpcyAzLjY3NzEw
ODMxODgwNTMyNDBlKzE5MAorCitUZXN0IHNldHRlcjogY291bGQgd3JpdGUgYmV5b25kIHRoZSBy
YW5nZQorUEFTUyB2aWV3LnNldEludDgoMCwgMCkgaXMgdW5kZWZpbmVkLgorUEFTUyB2aWV3Lmdl
dEludDgoMCkgaXMgMAorUEFTUyB2aWV3LnNldEludDgoOCwgLTEyOCkgaXMgdW5kZWZpbmVkLgor
UEFTUyB2aWV3LmdldEludDgoOCkgaXMgLTEyOAorUEFTUyB2aWV3LnNldEludDgoMTUsIC0xKSB0
aHJldyBleGNlcHRpb24gRXJyb3I6IElOREVYX1NJWkVfRVJSOiBET00gRXhjZXB0aW9uIDEuCitQ
QVNTIHZpZXcuc2V0VWludDgoMCwgMCkgaXMgdW5kZWZpbmVkLgorUEFTUyB2aWV3LmdldFVpbnQ4
KDApIGlzIDAKK1BBU1Mgdmlldy5zZXRVaW50OCg4LCAxMjgpIGlzIHVuZGVmaW5lZC4KK1BBU1Mg
dmlldy5nZXRVaW50OCg4KSBpcyAxMjgKK1BBU1Mgdmlldy5zZXRVaW50OCgxNSwgMjU1KSB0aHJl
dyBleGNlcHRpb24gRXJyb3I6IElOREVYX1NJWkVfRVJSOiBET00gRXhjZXB0aW9uIDEuCitQQVNT
IHZpZXcuc2V0SW50MTYoMCwgMjU2LCB0cnVlKSBpcyB1bmRlZmluZWQuCitQQVNTIHZpZXcuZ2V0
SW50MTYoMCwgdHJ1ZSkgaXMgMjU2CitQQVNTIHZpZXcuc2V0SW50MTYoOCwgLTMyMzg0LCB0cnVl
KSBpcyB1bmRlZmluZWQuCitQQVNTIHZpZXcuZ2V0SW50MTYoOCwgdHJ1ZSkgaXMgLTMyMzg0CitQ
QVNTIHZpZXcuc2V0SW50MTYoMTQsIC0yLCB0cnVlKSB0aHJldyBleGNlcHRpb24gRXJyb3I6IElO
REVYX1NJWkVfRVJSOiBET00gRXhjZXB0aW9uIDEuCitQQVNTIHZpZXcuc2V0SW50MTYoMCwgMSkg
aXMgdW5kZWZpbmVkLgorUEFTUyB2aWV3LmdldEludDE2KDApIGlzIDEKK1BBU1Mgdmlldy5zZXRJ
bnQxNig4LCAtMzI2MzkpIGlzIHVuZGVmaW5lZC4KK1BBU1Mgdmlldy5nZXRJbnQxNig4KSBpcyAt
MzI2MzkKK1BBU1Mgdmlldy5zZXRJbnQxNigxNCwgLTI1NykgdGhyZXcgZXhjZXB0aW9uIEVycm9y
OiBJTkRFWF9TSVpFX0VSUjogRE9NIEV4Y2VwdGlvbiAxLgorUEFTUyB2aWV3LnNldFVpbnQxNigw
LCAyNTYsIHRydWUpIGlzIHVuZGVmaW5lZC4KK1BBU1Mgdmlldy5nZXRVaW50MTYoMCwgdHJ1ZSkg
aXMgMjU2CitQQVNTIHZpZXcuc2V0VWludDE2KDgsIDMzMTUyLCB0cnVlKSBpcyB1bmRlZmluZWQu
CitQQVNTIHZpZXcuZ2V0VWludDE2KDgsIHRydWUpIGlzIDMzMTUyCitQQVNTIHZpZXcuc2V0VWlu
dDE2KDE0LCA2NTUzNCwgdHJ1ZSkgdGhyZXcgZXhjZXB0aW9uIEVycm9yOiBJTkRFWF9TSVpFX0VS
UjogRE9NIEV4Y2VwdGlvbiAxLgorUEFTUyB2aWV3LnNldFVpbnQxNigwLCAxKSBpcyB1bmRlZmlu
ZWQuCitQQVNTIHZpZXcuZ2V0VWludDE2KDApIGlzIDEKK1BBU1Mgdmlldy5zZXRVaW50MTYoOCwg
MzI4OTcpIGlzIHVuZGVmaW5lZC4KK1BBU1Mgdmlldy5nZXRVaW50MTYoOCkgaXMgMzI4OTcKK1BB
U1Mgdmlldy5zZXRVaW50MTYoMTQsIDY1Mjc5KSB0aHJldyBleGNlcHRpb24gRXJyb3I6IElOREVY
X1NJWkVfRVJSOiBET00gRXhjZXB0aW9uIDEuCitQQVNTIHZpZXcuc2V0SW50MzIoMCwgNTA0NjI5
NzYsIHRydWUpIGlzIHVuZGVmaW5lZC4KK1BBU1Mgdmlldy5nZXRJbnQzMigwLCB0cnVlKSBpcyA1
MDQ2Mjk3NgorUEFTUyB2aWV3LnNldEludDMyKDgsIC0yMDg4NTk5MTY4LCB0cnVlKSB0aHJldyBl
eGNlcHRpb24gRXJyb3I6IElOREVYX1NJWkVfRVJSOiBET00gRXhjZXB0aW9uIDEuCitQQVNTIHZp
ZXcuc2V0SW50MzIoMTIsIC02NjA1MiwgdHJ1ZSkgdGhyZXcgZXhjZXB0aW9uIEVycm9yOiBJTkRF
WF9TSVpFX0VSUjogRE9NIEV4Y2VwdGlvbiAxLgorUEFTUyB2aWV3LnNldEludDMyKDAsIDY2MDUx
KSBpcyB1bmRlZmluZWQuCitQQVNTIHZpZXcuZ2V0SW50MzIoMCkgaXMgNjYwNTEKK1BBU1Mgdmll
dy5zZXRJbnQzMig4LCAtMjEzODk5NjA5MykgdGhyZXcgZXhjZXB0aW9uIEVycm9yOiBJTkRFWF9T
SVpFX0VSUjogRE9NIEV4Y2VwdGlvbiAxLgorUEFTUyB2aWV3LnNldEludDMyKDEyLCAtNTA0NjI5
NzcpIHRocmV3IGV4Y2VwdGlvbiBFcnJvcjogSU5ERVhfU0laRV9FUlI6IERPTSBFeGNlcHRpb24g
MS4KK1BBU1Mgdmlldy5zZXRVaW50MzIoMCwgNTA0NjI5NzYsIHRydWUpIGlzIHVuZGVmaW5lZC4K
K1BBU1Mgdmlldy5nZXRVaW50MzIoMCwgdHJ1ZSkgaXMgNTA0NjI5NzYKK1BBU1Mgdmlldy5zZXRV
aW50MzIoOCwgMjIwNjM2ODEyOCwgdHJ1ZSkgdGhyZXcgZXhjZXB0aW9uIEVycm9yOiBJTkRFWF9T
SVpFX0VSUjogRE9NIEV4Y2VwdGlvbiAxLgorUEFTUyB2aWV3LnNldFVpbnQzMigxMiwgNDI5NDkw
MTI0NCwgdHJ1ZSkgdGhyZXcgZXhjZXB0aW9uIEVycm9yOiBJTkRFWF9TSVpFX0VSUjogRE9NIEV4
Y2VwdGlvbiAxLgorUEFTUyB2aWV3LnNldFVpbnQzMigwLCA2NjA1MSkgaXMgdW5kZWZpbmVkLgor
UEFTUyB2aWV3LmdldFVpbnQzMigwKSBpcyA2NjA1MQorUEFTUyB2aWV3LnNldFVpbnQzMig4LCAy
MTU1OTcxMjAzKSB0aHJldyBleGNlcHRpb24gRXJyb3I6IElOREVYX1NJWkVfRVJSOiBET00gRXhj
ZXB0aW9uIDEuCitQQVNTIHZpZXcuc2V0VWludDMyKDEyLCA0MjQ0NTA0MzE5KSB0aHJldyBleGNl
cHRpb24gRXJyb3I6IElOREVYX1NJWkVfRVJSOiBET00gRXhjZXB0aW9uIDEuCitQQVNTIHZpZXcu
c2V0RmxvYXQzMigwLCAzLjgyMDQ3MTQzNDU0MjYzMmUtMzcsIHRydWUpIGlzIHVuZGVmaW5lZC4K
K1BBU1Mgdmlldy5nZXRGbG9hdDMyKDAsIHRydWUpIGlzIDMuODIwNDcxNDM0NTQyNjMyZS0zNwor
UEFTUyB2aWV3LnNldEZsb2F0MzIoOCwgLTcuNjcwNDQ1MDIyMjI2MDE4ZS0zNywgdHJ1ZSkgdGhy
ZXcgZXhjZXB0aW9uIEVycm9yOiBJTkRFWF9TSVpFX0VSUjogRE9NIEV4Y2VwdGlvbiAxLgorUEFT
UyB2aWV3LnNldEZsb2F0MzIoMTAsIC00LjE5NTYwMzUzMTc0Mzk0MTdlKzM3LCB0cnVlKSB0aHJl
dyBleGNlcHRpb24gRXJyb3I6IElOREVYX1NJWkVfRVJSOiBET00gRXhjZXB0aW9uIDEuCitQQVNT
IHZpZXcuc2V0RmxvYXQzMigwLCA5LjI1NTcxNjQ4NjcxMTg1ZS00MSkgaXMgdW5kZWZpbmVkLgor
UEFTUyB2aWV3LmdldEZsb2F0MzIoMCkgaXMgOS4yNTU3MTY0ODY3MTE4NWUtNDEKK1BBU1Mgdmll
dy5zZXRGbG9hdDMyKDgsIC0xLjE4OTM1OTc3ODczNzI0MjNlLTM4KSB0aHJldyBleGNlcHRpb24g
RXJyb3I6IElOREVYX1NJWkVfRVJSOiBET00gRXhjZXB0aW9uIDEuCitQQVNTIHZpZXcuc2V0Rmxv
YXQzMigxMCwgLTEuOTM5MzkyODE0Njc4MjE1M2UtMzcpIHRocmV3IGV4Y2VwdGlvbiBFcnJvcjog
SU5ERVhfU0laRV9FUlI6IERPTSBFeGNlcHRpb24gMS4KK1BBU1Mgdmlldy5zZXRGbG9hdDY0KDAs
IDEuMjQ3MzIyNzcyNjc0MTQxM2UrMTkwLCB0cnVlKSBpcyB1bmRlZmluZWQuCitQQVNTIHZpZXcu
Z2V0RmxvYXQ2NCgwLCB0cnVlKSBpcyAxLjI0NzMyMjc3MjY3NDE0MTNlKzE5MAorUEFTUyB2aWV3
LnNldEZsb2F0NjQoNCwgLTkuMjcyMjE3NTQ2NTE5ODA3MGUtMjkyLCB0cnVlKSB0aHJldyBleGNl
cHRpb24gRXJyb3I6IElOREVYX1NJWkVfRVJSOiBET00gRXhjZXB0aW9uIDEuCitQQVNTIHZpZXcu
c2V0RmxvYXQ2NCg3LCAtNS4xNDA5MDY1NzA5Nzk4OTQwZSszMDMsIHRydWUpIHRocmV3IGV4Y2Vw
dGlvbiBFcnJvcjogSU5ERVhfU0laRV9FUlI6IERPTSBFeGNlcHRpb24gMS4KK1BBU1Mgdmlldy5z
ZXRGbG9hdDY0KDAsIDEuNDAxNjA3NzYxNzY4OTI3MGUtMzA5KSBpcyB1bmRlZmluZWQuCitQQVNT
IHZpZXcuZ2V0RmxvYXQ2NCgwKSBpcyAxLjQwMTYwNzc2MTc2ODkyNzBlLTMwOQorUEFTUyB2aWV3
LnNldEZsb2F0NjQoNCwgNC4yMzQyOTk4MDAyNzI4NTUwZSsxNzUpIHRocmV3IGV4Y2VwdGlvbiBF
cnJvcjogSU5ERVhfU0laRV9FUlI6IERPTSBFeGNlcHRpb24gMS4KK1BBU1Mgdmlldy5zZXRGbG9h
dDY0KDcsIDMuNjc3MTA4MzE4ODA1MzI0MGUrMTkwKSB0aHJldyBleGNlcHRpb24gRXJyb3I6IElO
REVYX1NJWkVfRVJSOiBET00gRXhjZXB0aW9uIDEuCisKK1Rlc3Qgd3JvbmcgYXJndW1lbnRzCitQ
QVNTIHZpZXcuZ2V0SW50OCgpIHRocmV3IGV4Y2VwdGlvbiBTeW50YXhFcnJvcjogTm90IGVub3Vn
aCBhcmd1bWVudHMuCitQQVNTIHZpZXcuZ2V0VWludDgoKSB0aHJldyBleGNlcHRpb24gU3ludGF4
RXJyb3I6IE5vdCBlbm91Z2ggYXJndW1lbnRzLgorUEFTUyB2aWV3LmdldEludDE2KCkgdGhyZXcg
ZXhjZXB0aW9uIFN5bnRheEVycm9yOiBOb3QgZW5vdWdoIGFyZ3VtZW50cy4KK1BBU1Mgdmlldy5n
ZXRVaW50MTYoKSB0aHJldyBleGNlcHRpb24gU3ludGF4RXJyb3I6IE5vdCBlbm91Z2ggYXJndW1l
bnRzLgorUEFTUyB2aWV3LmdldEludDMyKCkgdGhyZXcgZXhjZXB0aW9uIFN5bnRheEVycm9yOiBO
b3QgZW5vdWdoIGFyZ3VtZW50cy4KK1BBU1Mgdmlldy5nZXRVaW50MzIoKSB0aHJldyBleGNlcHRp
b24gU3ludGF4RXJyb3I6IE5vdCBlbm91Z2ggYXJndW1lbnRzLgorUEFTUyB2aWV3LmdldEZsb2F0
MzIoKSB0aHJldyBleGNlcHRpb24gU3ludGF4RXJyb3I6IE5vdCBlbm91Z2ggYXJndW1lbnRzLgor
UEFTUyB2aWV3LmdldEZsb2F0NjQoKSB0aHJldyBleGNlcHRpb24gU3ludGF4RXJyb3I6IE5vdCBl
bm91Z2ggYXJndW1lbnRzLgorUEFTUyB2aWV3LnNldEludDgoKSB0aHJldyBleGNlcHRpb24gU3lu
dGF4RXJyb3I6IE5vdCBlbm91Z2ggYXJndW1lbnRzLgorUEFTUyB2aWV3LnNldFVpbnQ4KCkgdGhy
ZXcgZXhjZXB0aW9uIFN5bnRheEVycm9yOiBOb3QgZW5vdWdoIGFyZ3VtZW50cy4KK1BBU1Mgdmll
dy5zZXRJbnQxNigpIHRocmV3IGV4Y2VwdGlvbiBTeW50YXhFcnJvcjogTm90IGVub3VnaCBhcmd1
bWVudHMuCitQQVNTIHZpZXcuc2V0VWludDE2KCkgdGhyZXcgZXhjZXB0aW9uIFN5bnRheEVycm9y
OiBOb3QgZW5vdWdoIGFyZ3VtZW50cy4KK1BBU1Mgdmlldy5zZXRJbnQzMigpIHRocmV3IGV4Y2Vw
dGlvbiBTeW50YXhFcnJvcjogTm90IGVub3VnaCBhcmd1bWVudHMuCitQQVNTIHZpZXcuc2V0VWlu
dDMyKCkgdGhyZXcgZXhjZXB0aW9uIFN5bnRheEVycm9yOiBOb3QgZW5vdWdoIGFyZ3VtZW50cy4K
K1BBU1Mgdmlldy5zZXRGbG9hdDMyKCkgdGhyZXcgZXhjZXB0aW9uIFN5bnRheEVycm9yOiBOb3Qg
ZW5vdWdoIGFyZ3VtZW50cy4KK1BBU1Mgdmlldy5zZXRGbG9hdDY0KCkgdGhyZXcgZXhjZXB0aW9u
IFN5bnRheEVycm9yOiBOb3QgZW5vdWdoIGFyZ3VtZW50cy4KK1BBU1Mgdmlldy5zZXRJbnQ4KDEp
IHRocmV3IGV4Y2VwdGlvbiBTeW50YXhFcnJvcjogTm90IGVub3VnaCBhcmd1bWVudHMuCitQQVNT
IHZpZXcuc2V0VWludDgoMSkgdGhyZXcgZXhjZXB0aW9uIFN5bnRheEVycm9yOiBOb3QgZW5vdWdo
IGFyZ3VtZW50cy4KK1BBU1Mgdmlldy5zZXRJbnQxNigxKSB0aHJldyBleGNlcHRpb24gU3ludGF4
RXJyb3I6IE5vdCBlbm91Z2ggYXJndW1lbnRzLgorUEFTUyB2aWV3LnNldFVpbnQxNigxKSB0aHJl
dyBleGNlcHRpb24gU3ludGF4RXJyb3I6IE5vdCBlbm91Z2ggYXJndW1lbnRzLgorUEFTUyB2aWV3
LnNldEludDMyKDEpIHRocmV3IGV4Y2VwdGlvbiBTeW50YXhFcnJvcjogTm90IGVub3VnaCBhcmd1
bWVudHMuCitQQVNTIHZpZXcuc2V0VWludDMyKDEpIHRocmV3IGV4Y2VwdGlvbiBTeW50YXhFcnJv
cjogTm90IGVub3VnaCBhcmd1bWVudHMuCitQQVNTIHZpZXcuc2V0RmxvYXQzMigxKSB0aHJldyBl
eGNlcHRpb24gU3ludGF4RXJyb3I6IE5vdCBlbm91Z2ggYXJndW1lbnRzLgorUEFTUyB2aWV3LnNl
dEZsb2F0NjQoMSkgdGhyZXcgZXhjZXB0aW9uIFN5bnRheEVycm9yOiBOb3QgZW5vdWdoIGFyZ3Vt
ZW50cy4KK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQor
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2NhbnZhcy93ZWJnbC9kYXRhLXZpZXctdGVz
dC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvd2ViZ2wvZGF0YS12aWV3LXRlc3QuaHRt
bApuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi4wZTY2ZDhlCi0tLSAvZGV2L251
bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvd2ViZ2wvZGF0YS12aWV3LXRlc3QuaHRt
bApAQCAtMCwwICsxLDE4NCBAQAorPGh0bWw+Cis8aGVhZD4KKzxsaW5rIHJlbD0ic3R5bGVzaGVl
dCIgaHJlZj0iLi4vLi4vanMvcmVzb3VyY2VzL2pzLXRlc3Qtc3R5bGUuY3NzIi8+Cis8c2NyaXB0
IHNyYz0iLi4vLi4vanMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzwvaGVh
ZD4KKzxib2R5PgorPGRpdiBpZD0iZGVzY3JpcHRpb24iPjwvZGl2PgorPGRpdiBpZD0iY29uc29s
ZSI+PC9kaXY+CisKKzxzY3JpcHQ+CitkZXNjcmlwdGlvbigiVGVzdCBEYXRhVmlldy4iKTsKKwor
dmFyIGFycmF5MSA9IG5ldyBVaW50OEFycmF5KFswLCAxLCAyLCAzLCAxMDAsIDEwMSwgMTAyLCAx
MDMsIDEyOCwgMTI5LCAxMzAsIDEzMSwgMjUyLCAyNTMsIDI1NCwgMjU1XSk7Cit2YXIgYXJyYXky
ID0gbmV3IFVpbnQ4QXJyYXkoWzMxLCAzMiwgMzMsIDAsIDEsIDIsIDMsIDEwMCwgMTAxLCAxMDIs
IDEwMywgMTI4LCAxMjksIDEzMCwgMTMxLCAyNTIsIDI1MywgMjU0LCAyNTVdKTsKK3ZhciBhcnJh
eTMgPSBuZXcgVWludDhBcnJheShbMjA0LCAyMDQsIDIwNCwgMjA0LCAyMDQsIDIwNCwgMjA0LCAy
MDQsIDIwNCwgMjA0LCAyMDQsIDIwNCwgMjA0LCAyMDQsIDIwNCwgMjA0XSk7CisKK3ZhciB2aWV3
ID0gbnVsbDsKK3ZhciB2aWV3U3RhcnQgPSAwOwordmFyIHZpZXdMZW5ndGggPSAwOworCitmdW5j
dGlvbiBjaGVja0dldChmdW5jLCBlbGVtZW50U2l6ZSwgaW5kZXgsIGV4cGVjdGVkLCBsaXR0bGVF
bmRpYW4pIHsKKyAgICB2YXIgZXhwciA9ICJ2aWV3LmdldCIgKyBmdW5jICsgIigiICsgaW5kZXg7
CisgICAgaWYgKGxpdHRsZUVuZGlhbiAhPSB1bmRlZmluZWQpIHsKKyAgICAgICAgZXhwciArPSAi
LCAiOworICAgICAgICBleHByICs9IGxpdHRsZUVuZGlhbiA/ICJ0cnVlIiA6ICJmYWxzZSI7Cisg
ICAgfQorICAgIGV4cHIgKz0gIikiOworICAgIGlmIChpbmRleCArIGVsZW1lbnRTaXplIC0gMSA8
IHZpZXcuYnl0ZUxlbmd0aCkKKyAgICAgICAgc2hvdWxkQmUoZXhwciwgZXhwZWN0ZWQpOworICAg
IGVsc2UKKyAgICAgICAgc2hvdWxkVGhyb3coZXhwcik7Cit9CisKK2Z1bmN0aW9uIGNoZWNrU2V0
KGZ1bmMsIGVsZW1lbnRTaXplLCBpbmRleCwgdmFsdWUsIGxpdHRsZUVuZGlhbikgeworICAgIHZh
ciBleHByID0gInZpZXcuc2V0IiArIGZ1bmMgKyAiKCIgKyBpbmRleCArICIsICIgKyB2YWx1ZTsK
KyAgICBpZiAobGl0dGxlRW5kaWFuICE9IHVuZGVmaW5lZCkgeworICAgICAgICBleHByICs9ICIs
ICI7CisgICAgICAgIGV4cHIgKz0gbGl0dGxlRW5kaWFuID8gInRydWUiIDogImZhbHNlIjsKKyAg
ICB9CisgICAgZXhwciArPSAiKSI7CisgICAgaWYgKGluZGV4ICsgZWxlbWVudFNpemUgLSAxIDwg
dmlldy5ieXRlTGVuZ3RoKSB7CisgICAgICAgIHNob3VsZEJlVW5kZWZpbmVkKGV4cHIpOworICAg
ICAgICBjaGVja0dldChmdW5jLCBlbGVtZW50U2l6ZSwgaW5kZXgsIHZhbHVlLCBsaXR0bGVFbmRp
YW4pOworICAgIH0gZWxzZQorICAgICAgICBzaG91bGRUaHJvdyhleHByKTsKK30KKworZnVuY3Rp
b24gdGVzdChpc1Rlc3RpbmdHZXQsIGZ1bmMsIGVsZW1lbnRTaXplLCBpbmRleCwgdmFsdWUsIGxp
dHRsZUVuZGlhbikgeworICAgIGlmIChpc1Rlc3RpbmdHZXQpCisgICAgICAgIGNoZWNrR2V0KGZ1
bmMsIGVsZW1lbnRTaXplLCBpbmRleCwgdmFsdWUsIGxpdHRsZUVuZGlhbik7CisgICAgIGVsc2UK
KyAgICAgICAgY2hlY2tTZXQoZnVuYywgZWxlbWVudFNpemUsIGluZGV4LCB2YWx1ZSwgbGl0dGxl
RW5kaWFuKTsKK30KKworZnVuY3Rpb24gcnVuVGVzdHMoaXNUZXN0aW5nR2V0LCBhcnJheSwgc3Rh
cnQsIGxlbmd0aCkgeworICAgIHZpZXcgPSBuZXcgRGF0YVZpZXcoYXJyYXkuYnVmZmVyLCBzdGFy
dCwgbGVuZ3RoKTsKKyAgICB2aWV3U3RhcnQgPSBzdGFydDsKKyAgICB2aWV3TGVuZ3RoID0gbGVu
Z3RoOworCisgICAgdGVzdChpc1Rlc3RpbmdHZXQsICJJbnQ4IiwgMSwgMCwgIjAiKTsKKyAgICB0
ZXN0KGlzVGVzdGluZ0dldCwgIkludDgiLCAxLCA4LCAiLTEyOCIpOworICAgIHRlc3QoaXNUZXN0
aW5nR2V0LCAiSW50OCIsIDEsIDE1LCAiLTEiKTsKKworICAgIHRlc3QoaXNUZXN0aW5nR2V0LCAi
VWludDgiLCAxLCAwLCAiMCIpOworICAgIHRlc3QoaXNUZXN0aW5nR2V0LCAiVWludDgiLCAxLCA4
LCAiMTI4Iik7CisgICAgdGVzdChpc1Rlc3RpbmdHZXQsICJVaW50OCIsIDEsIDE1LCAiMjU1Iik7
CisKKyAgICAvLyBMaXR0bGUgZW5kaWFuLgorICAgIHRlc3QoaXNUZXN0aW5nR2V0LCAiSW50MTYi
LCAyLCAwLCAiMjU2IiwgdHJ1ZSk7CisgICAgdGVzdChpc1Rlc3RpbmdHZXQsICJJbnQxNiIsIDIs
IDgsICItMzIzODQiLCB0cnVlKTsKKyAgICB0ZXN0KGlzVGVzdGluZ0dldCwgIkludDE2IiwgMiwg
MTQsICItMiIsIHRydWUpOworCisgICAgLy8gQmlnIGVuZGlhbi4KKyAgICB0ZXN0KGlzVGVzdGlu
Z0dldCwgIkludDE2IiwgMiwgMCwgIjEiKTsKKyAgICB0ZXN0KGlzVGVzdGluZ0dldCwgIkludDE2
IiwgMiwgOCwgIi0zMjYzOSIpOworICAgIHRlc3QoaXNUZXN0aW5nR2V0LCAiSW50MTYiLCAyLCAx
NCwgIi0yNTciKTsKKworICAgIC8vIExpdHRsZSBlbmRpYW4uCisgICAgdGVzdChpc1Rlc3RpbmdH
ZXQsICJVaW50MTYiLCAyLCAwLCAiMjU2IiwgdHJ1ZSk7CisgICAgdGVzdChpc1Rlc3RpbmdHZXQs
ICJVaW50MTYiLCAyLCA4LCAiMzMxNTIiLCB0cnVlKTsKKyAgICB0ZXN0KGlzVGVzdGluZ0dldCwg
IlVpbnQxNiIsIDIsIDE0LCAiNjU1MzQiLCB0cnVlKTsKKworICAgIC8vIEJpZyBlbmRpYW4uCisg
ICAgdGVzdChpc1Rlc3RpbmdHZXQsICJVaW50MTYiLCAyLCAwLCAiMSIpOworICAgIHRlc3QoaXNU
ZXN0aW5nR2V0LCAiVWludDE2IiwgMiwgOCwgIjMyODk3Iik7CisgICAgdGVzdChpc1Rlc3RpbmdH
ZXQsICJVaW50MTYiLCAyLCAxNCwgIjY1Mjc5Iik7CisKKyAgICAvLyBMaXR0bGUgZW5kaWFuLgor
ICAgIHRlc3QoaXNUZXN0aW5nR2V0LCAiSW50MzIiLCA0LCAwLCAiNTA0NjI5NzYiLCB0cnVlKTsK
KyAgICB0ZXN0KGlzVGVzdGluZ0dldCwgIkludDMyIiwgNCwgOCwgIi0yMDg4NTk5MTY4IiwgdHJ1
ZSk7CisgICAgdGVzdChpc1Rlc3RpbmdHZXQsICJJbnQzMiIsIDQsIDEyLCAiLTY2MDUyIiwgdHJ1
ZSk7CisKKyAgICAvLyBCaWcgZW5kaWFuLgorICAgIHRlc3QoaXNUZXN0aW5nR2V0LCAiSW50MzIi
LCA0LCAwLCAiNjYwNTEiKTsKKyAgICB0ZXN0KGlzVGVzdGluZ0dldCwgIkludDMyIiwgNCwgOCwg
Ii0yMTM4OTk2MDkzIik7CisgICAgdGVzdChpc1Rlc3RpbmdHZXQsICJJbnQzMiIsIDQsIDEyLCAi
LTUwNDYyOTc3Iik7CisKKyAgICAvLyBMaXR0bGUgZW5kaWFuLgorICAgIHRlc3QoaXNUZXN0aW5n
R2V0LCAiVWludDMyIiwgNCwgMCwgIjUwNDYyOTc2IiwgdHJ1ZSk7CisgICAgdGVzdChpc1Rlc3Rp
bmdHZXQsICJVaW50MzIiLCA0LCA4LCAiMjIwNjM2ODEyOCIsIHRydWUpOworICAgIHRlc3QoaXNU
ZXN0aW5nR2V0LCAiVWludDMyIiwgNCwgMTIsICI0Mjk0OTAxMjQ0IiwgdHJ1ZSk7CisKKyAgICAv
LyBCaWcgZW5kaWFuLgorICAgIHRlc3QoaXNUZXN0aW5nR2V0LCAiVWludDMyIiwgNCwgMCwgIjY2
MDUxIik7CisgICAgdGVzdChpc1Rlc3RpbmdHZXQsICJVaW50MzIiLCA0LCA4LCAiMjE1NTk3MTIw
MyIpOworICAgIHRlc3QoaXNUZXN0aW5nR2V0LCAiVWludDMyIiwgNCwgMTIsICI0MjQ0NTA0MzE5
Iik7CisKKyAgICAvLyBMaXR0bGUgZW5kaWFuLgorICAgIHRlc3QoaXNUZXN0aW5nR2V0LCAiRmxv
YXQzMiIsIDQsIDAsICIzLjgyMDQ3MTQzNDU0MjYzMmUtMzciLCB0cnVlKTsKKyAgICB0ZXN0KGlz
VGVzdGluZ0dldCwgIkZsb2F0MzIiLCA0LCA4LCAiLTcuNjcwNDQ1MDIyMjI2MDE4ZS0zNyIsIHRy
dWUpOworICAgIHRlc3QoaXNUZXN0aW5nR2V0LCAiRmxvYXQzMiIsIDQsIDEwLCAiLTQuMTk1NjAz
NTMxNzQzOTQxN2UrMzciLCB0cnVlKTsKKworICAgIC8vIEJpZyBlbmRpYW4uCisgICAgdGVzdChp
c1Rlc3RpbmdHZXQsICJGbG9hdDMyIiwgNCwgMCwgIjkuMjU1NzE2NDg2NzExODVlLTQxIik7Cisg
ICAgdGVzdChpc1Rlc3RpbmdHZXQsICJGbG9hdDMyIiwgNCwgOCwgIi0xLjE4OTM1OTc3ODczNzI0
MjNlLTM4Iik7CisgICAgdGVzdChpc1Rlc3RpbmdHZXQsICJGbG9hdDMyIiwgNCwgMTAsICItMS45
MzkzOTI4MTQ2NzgyMTUzZS0zNyIpOworCisgICAgLy8gTGl0dGxlIGVuZGlhbi4KKyAgICB0ZXN0
KGlzVGVzdGluZ0dldCwgIkZsb2F0NjQiLCA4LCAwLCAiMS4yNDczMjI3NzI2NzQxNDEzZSsxOTAi
LCB0cnVlKTsKKyAgICB0ZXN0KGlzVGVzdGluZ0dldCwgIkZsb2F0NjQiLCA4LCA0LCAiLTkuMjcy
MjE3NTQ2NTE5ODA3MGUtMjkyIiwgdHJ1ZSk7CisgICAgdGVzdChpc1Rlc3RpbmdHZXQsICJGbG9h
dDY0IiwgOCwgNywgIi01LjE0MDkwNjU3MDk3OTg5NDBlKzMwMyIsIHRydWUpOworCisgICAgLy8g
QmlnIGVuZGlhbi4KKyAgICB0ZXN0KGlzVGVzdGluZ0dldCwgIkZsb2F0NjQiLCA4LCAwLCAiMS40
MDE2MDc3NjE3Njg5MjcwZS0zMDkiKTsKKyAgICB0ZXN0KGlzVGVzdGluZ0dldCwgIkZsb2F0NjQi
LCA4LCA0LCAiNC4yMzQyOTk4MDAyNzI4NTUwZSsxNzUiKTsKKyAgICB0ZXN0KGlzVGVzdGluZ0dl
dCwgIkZsb2F0NjQiLCA4LCA3LCAiMy42NzcxMDgzMTg4MDUzMjQwZSsxOTAiKTsKK30KKworZnVu
Y3Rpb24gdGVzdEFyZ3VtZW50RXJyb3IoYXJyYXksIHN0YXJ0LCBsZW5ndGgpIHsKKyAgICB2aWV3
ID0gbmV3IERhdGFWaWV3KGFycmF5LmJ1ZmZlciwgc3RhcnQsIGxlbmd0aCk7CisKKyAgICBzaG91
bGRUaHJvdygidmlldy5nZXRJbnQ4KCkiKTsKKyAgICBzaG91bGRUaHJvdygidmlldy5nZXRVaW50
OCgpIik7CisgICAgc2hvdWxkVGhyb3coInZpZXcuZ2V0SW50MTYoKSIpOworICAgIHNob3VsZFRo
cm93KCJ2aWV3LmdldFVpbnQxNigpIik7CisgICAgc2hvdWxkVGhyb3coInZpZXcuZ2V0SW50MzIo
KSIpOworICAgIHNob3VsZFRocm93KCJ2aWV3LmdldFVpbnQzMigpIik7CisgICAgc2hvdWxkVGhy
b3coInZpZXcuZ2V0RmxvYXQzMigpIik7CisgICAgc2hvdWxkVGhyb3coInZpZXcuZ2V0RmxvYXQ2
NCgpIik7CisKKyAgICBzaG91bGRUaHJvdygidmlldy5zZXRJbnQ4KCkiKTsKKyAgICBzaG91bGRU
aHJvdygidmlldy5zZXRVaW50OCgpIik7CisgICAgc2hvdWxkVGhyb3coInZpZXcuc2V0SW50MTYo
KSIpOworICAgIHNob3VsZFRocm93KCJ2aWV3LnNldFVpbnQxNigpIik7CisgICAgc2hvdWxkVGhy
b3coInZpZXcuc2V0SW50MzIoKSIpOworICAgIHNob3VsZFRocm93KCJ2aWV3LnNldFVpbnQzMigp
Iik7CisgICAgc2hvdWxkVGhyb3coInZpZXcuc2V0RmxvYXQzMigpIik7CisgICAgc2hvdWxkVGhy
b3coInZpZXcuc2V0RmxvYXQ2NCgpIik7CisKKyAgICBzaG91bGRUaHJvdygidmlldy5zZXRJbnQ4
KDEpIik7CisgICAgc2hvdWxkVGhyb3coInZpZXcuc2V0VWludDgoMSkiKTsKKyAgICBzaG91bGRU
aHJvdygidmlldy5zZXRJbnQxNigxKSIpOworICAgIHNob3VsZFRocm93KCJ2aWV3LnNldFVpbnQx
NigxKSIpOworICAgIHNob3VsZFRocm93KCJ2aWV3LnNldEludDMyKDEpIik7CisgICAgc2hvdWxk
VGhyb3coInZpZXcuc2V0VWludDMyKDEpIik7CisgICAgc2hvdWxkVGhyb3coInZpZXcuc2V0Rmxv
YXQzMigxKSIpOworICAgIHNob3VsZFRocm93KCJ2aWV3LnNldEZsb2F0NjQoMSkiKTsKK30KKwor
ZGVidWcoIlRlc3QgZ2V0dGVyOiBiYXNpY3MiKTsKK3J1blRlc3RzKHRydWUsIGFycmF5MSwgMCwg
MTYpOworCitkZWJ1ZygiIik7CitkZWJ1ZygiVGVzdCBnZXR0ZXI6IGNvdWxkIHJlYWQgYmV5b25k
IHRoZSByYW5nZSIpOworcnVuVGVzdHModHJ1ZSwgYXJyYXkyLCAzLCAxMCk7CisKK2RlYnVnKCIi
KTsKK2RlYnVnKCJUZXN0IHNldHRlcjogYmFzaWNzIik7CitydW5UZXN0cyhmYWxzZSwgYXJyYXkz
LCAwLCAxNik7CisKK2RlYnVnKCIiKTsKK2RlYnVnKCJUZXN0IHNldHRlcjogY291bGQgd3JpdGUg
YmV5b25kIHRoZSByYW5nZSIpOworcnVuVGVzdHMoZmFsc2UsIGFycmF5MywgMywgMTApOworCitk
ZWJ1ZygiIik7CitkZWJ1ZygiVGVzdCB3cm9uZyBhcmd1bWVudHMiKTsKK3Rlc3RBcmd1bWVudEVy
cm9yKGFycmF5MSwgMCwgMTYpOworCitzdWNjZXNzZnVsbHlQYXJzZWQgPSB0cnVlOworPC9zY3Jp
cHQ+CisKKzxzY3JpcHQgc3JjPSIuLi8uLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48
L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3Qv
ZG9tL1dpbmRvdy9zY3JpcHQtdGVzdHMvd2luZG93LXByb3BlcnR5LWRlc2NyaXB0b3JzLmpzIGIv
TGF5b3V0VGVzdHMvZmFzdC9kb20vV2luZG93L3NjcmlwdC10ZXN0cy93aW5kb3ctcHJvcGVydHkt
ZGVzY3JpcHRvcnMuanMKaW5kZXggMTQxYjYwOC4uMWE3OTY5MiAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvZmFzdC9kb20vV2luZG93L3NjcmlwdC10ZXN0cy93aW5kb3ctcHJvcGVydHktZGVzY3Jp
cHRvcnMuanMKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vV2luZG93L3NjcmlwdC10ZXN0cy93
aW5kb3ctcHJvcGVydHktZGVzY3JpcHRvcnMuanMKQEAgLTIxLDYgKzIxLDcgQEAgdmFyIF9fc2tp
cF9fID0gewogICAgIC8vIElnbm9yZSB0aGVzZSBwcm9wZXJ0aWVzIGJlY2F1c2UgdGhleSBkbyBu
b3QgZXhpc3QgaW4gYWxsIGltcGxlbWVudGF0aW9ucy4gVGhleSB3aWxsIGJlIHRlc3RlZCBzZXBh
cmF0ZWx5CiAgICAgIldlYkdMUmVuZGVyaW5nQ29udGV4dCIgOiAxLAogICAgICJBcnJheUJ1ZmZl
ciIgOiAxLAorICAgICJEYXRhVmlldyIgOiAxLAogICAgICJJbnQ4QXJyYXkiIDogMSwKICAgICAi
VWludDhBcnJheSIgOiAxLAogICAgICJJbnQxNkFycmF5IiA6IDEsCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9mYXN0L2RvbS9XaW5kb3cvd2luZG93LXByb3BlcnRpZXMuaHRtbCBiL0xheW91dFRl
c3RzL2Zhc3QvZG9tL1dpbmRvdy93aW5kb3ctcHJvcGVydGllcy5odG1sCmluZGV4IGQ1OTc0ODIu
LmZhMWViNTQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL1dpbmRvdy93aW5kb3ct
cHJvcGVydGllcy5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL1dpbmRvdy93aW5kb3ct
cHJvcGVydGllcy5odG1sCkBAIC02Myw2ICs2Myw3IEBAIHZhciBfX3NraXBfXyA9IHsKICAgICAv
LyBJZ25vcmUgdGhlc2UgcHJvcGVydGllcyBiZWNhdXNlIHRoZXkgZG8gbm90IGV4aXN0IGluIGFs
bCBpbXBsZW1lbnRhdGlvbnMuIFRoZXkgd2lsbCBiZSB0ZXN0ZWQgc2VwYXJhdGVseQogICAgICJ3
aW5kb3cuV2ViR0xSZW5kZXJpbmdDb250ZXh0IiA6IDEsIAogICAgICJ3aW5kb3cuQXJyYXlCdWZm
ZXIiIDogMSwKKyAgICAid2luZG93LkRhdGFWaWV3IiA6IDEsCiAgICAgIndpbmRvdy5JbnQ4QXJy
YXkiIDogMSwKICAgICAid2luZG93LlVpbnQ4QXJyYXkiIDogMSwKICAgICAid2luZG93LkludDE2
QXJyYXkiIDogMSwKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL3NjcmlwdC10ZXN0
cy9wcm90b3R5cGUtaW5oZXJpdGFuY2UtMi5qcyBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL3Njcmlw
dC10ZXN0cy9wcm90b3R5cGUtaW5oZXJpdGFuY2UtMi5qcwppbmRleCAzYzZkMTIyLi4yMzA5MTA2
IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9zY3JpcHQtdGVzdHMvcHJvdG90eXBl
LWluaGVyaXRhbmNlLTIuanMKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vc2NyaXB0LXRlc3Rz
L3Byb3RvdHlwZS1pbmhlcml0YW5jZS0yLmpzCkBAIC02MSw2ICs2MSw3IEBAIGZ1bmN0aW9uIGNv
bnN0cnVjdG9yTmFtZXNGb3JXaW5kb3coZ2xvYmFsT2JqZWN0KQogICAgICAgICAvLyBJZ25vcmUg
dGhlc2UgcHJvcGVydGllcyBiZWNhdXNlIHRoZXkgZG8gbm90IGV4aXN0IGluIGFsbCBpbXBsZW1l
bnRhdGlvbnMuIFRoZXkgd2lsbCBiZSB0ZXN0ZWQgc2VwYXJhdGVseQogICAgICAgICBpZiAodHlw
ZSA9PSAiV2ViR0xSZW5kZXJpbmdDb250ZXh0Q29uc3RydWN0b3IiIHx8IAogICAgICAgICAgICAg
dHlwZSA9PSAiQXJyYXlCdWZmZXJDb25zdHJ1Y3RvciIgfHwKKyAgICAgICAgICAgIHR5cGUgPT0g
IkRhdGFWaWV3Q29uc3RydWN0b3IiIHx8CiAgICAgICAgICAgICB0eXBlID09IkZsb2F0MzJBcnJh
eUNvbnN0cnVjdG9yIiB8fAogICAgICAgICAgICAgdHlwZSA9PSJJbnQ4QXJyYXlDb25zdHJ1Y3Rv
ciIgfHwKICAgICAgICAgICAgIHR5cGUgPT0iSW50MTZBcnJheUNvbnN0cnVjdG9yIiB8fApkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vc2NyaXB0LXRlc3RzL3Byb3RvdHlwZS1pbmhl
cml0YW5jZS5qcyBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL3NjcmlwdC10ZXN0cy9wcm90b3R5cGUt
aW5oZXJpdGFuY2UuanMKaW5kZXggODhmMjc5My4uODIyY2NiMyAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvZmFzdC9kb20vc2NyaXB0LXRlc3RzL3Byb3RvdHlwZS1pbmhlcml0YW5jZS5qcworKysg
Yi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9zY3JpcHQtdGVzdHMvcHJvdG90eXBlLWluaGVyaXRhbmNl
LmpzCkBAIC0xNyw3ICsxNyw3IEBAIHZhciBza2lwcGVkUHJvcGVydGllcyA9IFsKICAgICAid2Vi
a2l0UGVyZm9ybWFuY2UiLAogICAgICJXZWJHTFJlbmRlcmluZ0NvbnRleHQiLAogICAgICJBcnJh
eUJ1ZmZlciIsCi0gICAgIkludDhBcnJheSIsICJVaW50OEFycmF5IiwgIkludDE2QXJyYXkiLCAi
VWludDE2QXJyYXkiLCAiSW50MzJBcnJheSIsICJVaW50MzJBcnJheSIsICJGbG9hdDMyQXJyYXki
LAorICAgICJEYXRhVmlldyIsICJJbnQ4QXJyYXkiLCAiVWludDhBcnJheSIsICJJbnQxNkFycmF5
IiwgIlVpbnQxNkFycmF5IiwgIkludDMyQXJyYXkiLCAiVWludDMyQXJyYXkiLCAiRmxvYXQzMkFy
cmF5IiwKICAgICAiRmlsZUVycm9yIiwgIkZpbGVSZWFkZXIiLCAicmVxdWVzdEZpbGVTeXN0ZW0i
LAogICAgICJpbmRleGVkREIiLCAiSURCS2V5UmFuZ2UiLCAiSURCQ3Vyc29yIiwgIklEQkRhdGFi
YXNlIiwgIklEQkRhdGFiYXNlRXJyb3IiLCAiSURCRGF0YWJhc2VFeGNlcHRpb24iLCAiSURCRXJy
b3JFdmVudCIsICJJREJFdmVudCIsICJJREJGYWN0b3J5IiwgIklEQkluZGV4IiwgIklEQk9iamVj
dFN0b3JlIiwgIklEQlJlcXVlc3QiLCAiSURCU3VjY2Vzc0V2ZW50IiwgIklEQlRyYW5zYWN0aW9u
IiwKICAgICAic2hvd01vZGFsRGlhbG9nIiwKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3Qv
anMvc2NyaXB0LXRlc3RzL2dsb2JhbC1jb25zdHJ1Y3RvcnMuanMgYi9MYXlvdXRUZXN0cy9mYXN0
L2pzL3NjcmlwdC10ZXN0cy9nbG9iYWwtY29uc3RydWN0b3JzLmpzCmluZGV4IDAzZWYwZGYuLmQ2
YzE1ZTUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvanMvc2NyaXB0LXRlc3RzL2dsb2Jh
bC1jb25zdHJ1Y3RvcnMuanMKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9qcy9zY3JpcHQtdGVzdHMv
Z2xvYmFsLWNvbnN0cnVjdG9ycy5qcwpAQCAtMTksNiArMTksNyBAQCBmb3IgKHZhciB4IGluIGNv
bnN0cnVjdG9yTmFtZXMpIHsKICAgICAvLyBJZ25vcmUgdGhlc2UgcHJvcGVydGllcyBiZWNhdXNl
IHRoZXkgZG8gbm90IGV4aXN0IGluIGFsbCBpbXBsZW1lbnRhdGlvbnMuIFRoZXkgd2lsbCBiZSB0
ZXN0ZWQgc2VwYXJhdGVseQogICAgIGlmIChuYW1lID09ICJXZWJHTFJlbmRlcmluZ0NvbnRleHQi
IHx8CiAgICAgICAgIG5hbWUgPT0gIkFycmF5QnVmZmVyIiB8fAorICAgICAgICBuYW1lID09ICJE
YXRhVmlldyIgfHwKICAgICAgICAgbmFtZSA9PSAiSW50OEFycmF5IiB8fAogICAgICAgICBuYW1l
ID09ICJVaW50OEFycmF5IiB8fAogICAgICAgICBuYW1lID09ICJJbnQxNkFycmF5IiB8fApkaWZm
IC0tZ2l0IGEvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dCBiL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQK
aW5kZXggNzFiNDU3MS4uYzY4ZDFiZCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DTWFrZUxpc3RzLnR4
dAorKysgYi9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CkBAIC0yOTMsNiArMjkzLDcgQEAgU0VUKFdl
YkNvcmVfSURMX0ZJTEVTCiAgICAgaHRtbC9jYW52YXMvQ2FudmFzUGF0dGVybi5pZGwKICAgICBo
dG1sL2NhbnZhcy9DYW52YXNSZW5kZXJpbmdDb250ZXh0MkQuaWRsCiAgICAgaHRtbC9jYW52YXMv
Q2FudmFzUmVuZGVyaW5nQ29udGV4dC5pZGwKKyAgICBodG1sL2NhbnZhcy9EYXRhVmlldy5pZGwK
ICAgICBodG1sL2NhbnZhcy9GbG9hdDMyQXJyYXkuaWRsCiAgICAgaHRtbC9jYW52YXMvSW50MTZB
cnJheS5pZGwKICAgICBodG1sL2NhbnZhcy9JbnQzMkFycmF5LmlkbApkaWZmIC0tZ2l0IGEvV2Vi
Q29yZS9DaGFuZ2VMb2cgYi9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCBjZjg0YTlhLi40Njk0YzI4
IDEwMDY0NAotLS0gYS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9XZWJDb3JlL0NoYW5nZUxvZwpA
QCAtMSw1ICsxLDU0IEBACiAyMDEwLTExLTE4ICBKaWFuIExpICA8amlhbmxpQGNocm9taXVtLm9y
Zz4KIAorICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBJbXBs
ZW1lbnQgRGF0YVZpZXcgaW50ZXJmYWNlIGZyb20gVHlwZWQgQXJyYXkgc3BlY2lmaWNhdGlvbgor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDY1NDEKKwor
ICAgICAgICBUZXN0OiBmYXN0L2NhbnZhcy93ZWJnbC9kYXRhLXZpZXctdGVzdC5odG1sCisKKyAg
ICAgICAgKiBDTWFrZUxpc3RzLnR4dDoKKyAgICAgICAgKiBEZXJpdmVkU291cmNlcy5tYWtlOgor
ICAgICAgICAqIEdOVW1ha2VmaWxlLmFtOgorICAgICAgICAqIFdlYkNvcmUuZ3lwaToKKyAgICAg
ICAgKiBXZWJDb3JlLnByaToKKyAgICAgICAgKiBXZWJDb3JlLnBybzoKKyAgICAgICAgKiBXZWJD
b3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogYmluZGluZ3MvZ2VuZXJp
Yy9SdW50aW1lRW5hYmxlZEZlYXR1cmVzLmg6CisgICAgICAgIChXZWJDb3JlOjpSdW50aW1lRW5h
YmxlZEZlYXR1cmVzOjpkYXRhVmlld0VuYWJsZWQpOgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pT
QXJyYXlCdWZmZXJWaWV3SGVscGVyLmg6CisgICAgICAgIChXZWJDb3JlOjpjb25zdHJ1Y3RBcnJh
eUJ1ZmZlclZpZXdXaXRoQXJyYXlCdWZmZXJBcmd1bWVudCk6CisgICAgICAgIChXZWJDb3JlOjpj
b25zdHJ1Y3RBcnJheUJ1ZmZlclZpZXcpOgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pTRE9NV2lu
ZG93Q3VzdG9tLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkpTRE9NV2luZG93OjpkYXRhVmlldyk6
CisgICAgICAgICogYmluZGluZ3MvanMvSlNEYXRhVmlld0N1c3RvbS5jcHA6IEFkZGVkLgorICAg
ICAgICAqIGJpbmRpbmdzL2pzL0pTRmxvYXQzMkFycmF5Q3VzdG9tLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OkpTRmxvYXQzMkFycmF5Q29uc3RydWN0b3I6OmNvbnN0cnVjdEpTRmxvYXQzMkFycmF5
KToKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU0ludDE2QXJyYXlDdXN0b20uY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6SlNJbnQxNkFycmF5Q29uc3RydWN0b3I6OmNvbnN0cnVjdEpTSW50MTZBcnJh
eSk6CisgICAgICAgICogYmluZGluZ3MvanMvSlNJbnQzMkFycmF5Q3VzdG9tLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OkpTSW50MzJBcnJheUNvbnN0cnVjdG9yOjpjb25zdHJ1Y3RKU0ludDMyQXJy
YXkpOgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pTSW50OEFycmF5Q3VzdG9tLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OkpTSW50OEFycmF5Q29uc3RydWN0b3I6OmNvbnN0cnVjdEpTSW50OEFycmF5
KToKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU1VpbnQxNkFycmF5Q3VzdG9tLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OkpTVWludDE2QXJyYXlDb25zdHJ1Y3Rvcjo6Y29uc3RydWN0SlNVaW50MTZB
cnJheSk6CisgICAgICAgICogYmluZGluZ3MvanMvSlNVaW50MzJBcnJheUN1c3RvbS5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpKU1VpbnQzMkFycmF5Q29uc3RydWN0b3I6OmNvbnN0cnVjdEpTVWlu
dDMyQXJyYXkpOgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pTVWludDhBcnJheUN1c3RvbS5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpKU1VpbnQ4QXJyYXlDb25zdHJ1Y3Rvcjo6Y29uc3RydWN0SlNV
aW50OEFycmF5KToKKyAgICAgICAgKiBiaW5kaW5ncy92OC9jdXN0b20vVjhBcnJheUJ1ZmZlclZp
ZXdDdXN0b20uaDoKKyAgICAgICAgKFdlYkNvcmU6OmNvbnN0cnVjdFdlYkdMQXJyYXlXaXRoQXJy
YXlCdWZmZXJBcmd1bWVudCk6CisgICAgICAgIChXZWJDb3JlOjpjb25zdHJ1Y3RXZWJHTEFycmF5
KToKKyAgICAgICAgKiBiaW5kaW5ncy92OC9jdXN0b20vVjhEYXRhVmlld0N1c3RvbS5jcHA6IEFk
ZGVkLgorICAgICAgICAqIGh0bWwvY2FudmFzL0FycmF5QnVmZmVyVmlldy5oOgorICAgICAgICAo
V2ViQ29yZTo6QXJyYXlCdWZmZXJWaWV3Ojppc0RhdGFWaWV3KToKKyAgICAgICAgKiBodG1sL2Nh
bnZhcy9EYXRhVmlldy5jcHA6IEFkZGVkLgorICAgICAgICAqIGh0bWwvY2FudmFzL0RhdGFWaWV3
Lmg6IEFkZGVkLgorICAgICAgICAqIGh0bWwvY2FudmFzL0RhdGFWaWV3LmlkbDogQWRkZWQuCisg
ICAgICAgICogcGFnZS9ET01XaW5kb3cuaWRsOgorCisyMDEwLTExLTE4ICBKaWFuIExpICA8amlh
bmxpQGNocm9taXVtLm9yZz4KKwogICAgICAgICBSZXZpZXdlZCBieSBLZW5uZXRoIFJ1c3NlbGwu
CiAKICAgICAgICAgTWFrZSBiaW5kaW5nIGNvZGUgZ2VuZXJhdGlvbiBzY3JpcHRzIHN1cHBvcnQg
J3Nob3J0JyB0eXBlCmRpZmYgLS1naXQgYS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UgYi9X
ZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UKaW5kZXggMWI2YTI2Ni4uMDA3NzBkYiAxMDA2NDQK
LS0tIGEvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtlCisrKyBiL1dlYkNvcmUvRGVyaXZlZFNv
dXJjZXMubWFrZQpAQCAtNzYsNiArNzYsNyBAQCBET01fQ0xBU1NFUyA9IFwKICAgICBXZWJHTEFj
dGl2ZUluZm8gXAogICAgIEFycmF5QnVmZmVyVmlldyBcCiAgICAgQXJyYXlCdWZmZXIgXAorICAg
IERhdGFWaWV3IFwKICAgICBXZWJHTEJ1ZmZlciBcCiAgICAgSW50OEFycmF5IFwKICAgICBXZWJH
TENvbnRleHRBdHRyaWJ1dGVzIFwKZGlmZiAtLWdpdCBhL1dlYkNvcmUvR05VbWFrZWZpbGUuYW0g
Yi9XZWJDb3JlL0dOVW1ha2VmaWxlLmFtCmluZGV4IGEyMTFjMTguLmMzMzJiY2IgMTAwNjQ0Ci0t
LSBhL1dlYkNvcmUvR05VbWFrZWZpbGUuYW0KKysrIGIvV2ViQ29yZS9HTlVtYWtlZmlsZS5hbQpA
QCAtMTg4LDYgKzE4OCw4IEBAIHdlYmNvcmVfYnVpbHRfc291cmNlcyArPSBcCiAJRGVyaXZlZFNv
dXJjZXMvV2ViQ29yZS9KU0RhdGFHcmlkQ29sdW1uLmggXAogCURlcml2ZWRTb3VyY2VzL1dlYkNv
cmUvSlNEYXRhR3JpZENvbHVtbkxpc3QuY3BwIFwKIAlEZXJpdmVkU291cmNlcy9XZWJDb3JlL0pT
RGF0YUdyaWRDb2x1bW5MaXN0LmggXAorCURlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNEYXRhVmll
dy5jcHAgXAorCURlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNEYXRhVmlldy5oIFwKIAlEZXJpdmVk
U291cmNlcy9XZWJDb3JlL0pTRGVkaWNhdGVkV29ya2VyQ29udGV4dC5jcHAgXAogCURlcml2ZWRT
b3VyY2VzL1dlYkNvcmUvSlNEZWRpY2F0ZWRXb3JrZXJDb250ZXh0LmggXAogCURlcml2ZWRTb3Vy
Y2VzL1dlYkNvcmUvSlNEZXZpY2VNb3Rpb25FdmVudC5jcHAgXApkaWZmIC0tZ2l0IGEvV2ViQ29y
ZS9XZWJDb3JlLmd5cGkgYi9XZWJDb3JlL1dlYkNvcmUuZ3lwaQppbmRleCBkOWYxZWYzLi44MWE3
MjJkIDEwMDY0NAotLS0gYS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQorKysgYi9XZWJDb3JlL1dlYkNv
cmUuZ3lwaQpAQCAtMjA2LDYgKzIwNiw3IEBACiAgICAgICAgICAgICAnaHRtbC9jYW52YXMvQ2Fu
dmFzUGl4ZWxBcnJheS5pZGwnLAogICAgICAgICAgICAgJ2h0bWwvY2FudmFzL0NhbnZhc1JlbmRl
cmluZ0NvbnRleHQuaWRsJywKICAgICAgICAgICAgICdodG1sL2NhbnZhcy9DYW52YXNSZW5kZXJp
bmdDb250ZXh0MkQuaWRsJywKKyAgICAgICAgICAgICdodG1sL2NhbnZhcy9EYXRhVmlldy5pZGwn
LAogICAgICAgICAgICAgJ2h0bWwvY2FudmFzL0Zsb2F0MzJBcnJheS5pZGwnLAogICAgICAgICAg
ICAgJ2h0bWwvY2FudmFzL0ludDE2QXJyYXkuaWRsJywKICAgICAgICAgICAgICdodG1sL2NhbnZh
cy9JbnQzMkFycmF5LmlkbCcsCkBAIC03NDAsNiArNzQxLDggQEAKICAgICAgICAgICAgICdiaW5k
aW5ncy92OC9jdXN0b20vVjhDYW52YXNQaXhlbEFycmF5Q3VzdG9tLmNwcCcsCiAgICAgICAgICAg
ICAnYmluZGluZ3MvdjgvY3VzdG9tL1Y4QXJyYXlCdWZmZXJWaWV3Q3VzdG9tLmgnLAogICAgICAg
ICAgICAgJ2JpbmRpbmdzL3Y4L2N1c3RvbS9WOEFycmF5QnVmZmVyQ3VzdG9tLmNwcCcsCisgICAg
ICAgICAgICAnYmluZGluZ3MvdjgvY3VzdG9tL1Y4RGF0YVZpZXdDdXN0b20uY3BwJywKKyAgICAg
ICAgICAgICdiaW5kaW5ncy92OC9jdXN0b20vVjhEYXRhVmlld0N1c3RvbS5oJywKICAgICAgICAg
ICAgICdiaW5kaW5ncy92OC9jdXN0b20vVjhJbnQ4QXJyYXlDdXN0b20uY3BwJywKICAgICAgICAg
ICAgICdiaW5kaW5ncy92OC9jdXN0b20vVjhJbnQzMkFycmF5Q3VzdG9tLmNwcCcsCiAgICAgICAg
ICAgICAnYmluZGluZ3MvdjgvY3VzdG9tL1Y4RmlsZVJlYWRlckN1c3RvbS5jcHAnLApAQCAtMTg1
MCw2ICsxODUzLDggQEAKICAgICAgICAgICAgICdodG1sL2NhbnZhcy9DYW52YXNTdHlsZS5jcHAn
LAogICAgICAgICAgICAgJ2h0bWwvY2FudmFzL0NhbnZhc1N0eWxlLmgnLAogICAgICAgICAgICAg
J2h0bWwvY2FudmFzL0NoZWNrZWRJbnQuaCcsCisgICAgICAgICAgICAnaHRtbC9jYW52YXMvRGF0
YVZpZXcuY3BwJywKKyAgICAgICAgICAgICdodG1sL2NhbnZhcy9EYXRhVmlldy5oJywKICAgICAg
ICAgICAgICdodG1sL2NhbnZhcy9GbG9hdDMyQXJyYXkuY3BwJywKICAgICAgICAgICAgICdodG1s
L2NhbnZhcy9GbG9hdDMyQXJyYXkuaCcsCiAgICAgICAgICAgICAnaHRtbC9jYW52YXMvSW50MTZB
cnJheS5jcHAnLApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9XZWJDb3JlLnByaSBiL1dlYkNvcmUvV2Vi
Q29yZS5wcmkKaW5kZXggZWMyMTNkNi4uZDhiMzc3MiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9XZWJD
b3JlLnByaQorKysgYi9XZWJDb3JlL1dlYkNvcmUucHJpCkBAIC0xODEsNiArMTgxLDcgQEAgSURM
X0JJTkRJTkdTICs9IFwKICAgICBmaWxlYXBpL01ldGFkYXRhQ2FsbGJhY2suaWRsIFwKICAgICBo
dG1sL2NhbnZhcy9BcnJheUJ1ZmZlclZpZXcuaWRsIFwKICAgICBodG1sL2NhbnZhcy9BcnJheUJ1
ZmZlci5pZGwgXAorICAgIGh0bWwvY2FudmFzL0RhdGFWaWV3LmlkbCBcCiAgICAgaHRtbC9jYW52
YXMvSW50OEFycmF5LmlkbCBcCiAgICAgaHRtbC9jYW52YXMvRmxvYXQzMkFycmF5LmlkbCBcCiAg
ICAgaHRtbC9jYW52YXMvQ2FudmFzR3JhZGllbnQuaWRsIFwKZGlmZiAtLWdpdCBhL1dlYkNvcmUv
V2ViQ29yZS5wcm8gYi9XZWJDb3JlL1dlYkNvcmUucHJvCmluZGV4IDEyZDYzMmMuLjEzNDMxMzcg
MTAwNjQ0Ci0tLSBhL1dlYkNvcmUvV2ViQ29yZS5wcm8KKysrIGIvV2ViQ29yZS9XZWJDb3JlLnBy
bwpAQCAtMzY5Myw2ICszNjkzLDcgQEAgSEVBREVSUyArPSBcCiAgICAgICAgIGh0bWwvY2FudmFz
L1dlYkdMQWN0aXZlSW5mby5oIFwKICAgICAgICAgaHRtbC9jYW52YXMvQXJyYXlCdWZmZXIuaCBc
CiAgICAgICAgIGh0bWwvY2FudmFzL0FycmF5QnVmZmVyVmlldy5oIFwKKyAgICAgICAgaHRtbC9j
YW52YXMvRGF0YVZpZXcuaCBcCiAgICAgICAgIGh0bWwvY2FudmFzL1dlYkdMQnVmZmVyLmggXAog
ICAgICAgICBodG1sL2NhbnZhcy9JbnQ4QXJyYXkuaCBcCiAgICAgICAgIGh0bWwvY2FudmFzL1dl
YkdMQ29udGV4dEF0dHJpYnV0ZXMuaCBcCkBAIC0zNzE3LDYgKzM3MTgsNyBAQCBIRUFERVJTICs9
IFwKICAgICAhdjggewogICAgICAgICBTT1VSQ0VTICs9IFwKICAgICAgICAgICAgICAgICBiaW5k
aW5ncy9qcy9KU0FycmF5QnVmZmVyQ3VzdG9tLmNwcCBcCisgICAgICAgICAgICAgICAgYmluZGlu
Z3MvanMvSlNEYXRhVmlld0N1c3RvbS5jcHAgXAogICAgICAgICAgICAgICAgIGJpbmRpbmdzL2pz
L0pTSW50OEFycmF5Q3VzdG9tLmNwcCBcCiAgICAgICAgICAgICAgICAgYmluZGluZ3MvanMvSlNG
bG9hdDMyQXJyYXlDdXN0b20uY3BwIFwKICAgICAgICAgICAgICAgICBiaW5kaW5ncy9qcy9KU0lu
dDMyQXJyYXlDdXN0b20uY3BwIFwKQEAgLTM3MzEsNiArMzczMyw3IEBAIFNPVVJDRVMgKz0gXAog
ICAgICAgICBodG1sL2NhbnZhcy9XZWJHTE9iamVjdC5jcHAgXAogICAgICAgICBodG1sL2NhbnZh
cy9BcnJheUJ1ZmZlci5jcHAgXAogICAgICAgICBodG1sL2NhbnZhcy9BcnJheUJ1ZmZlclZpZXcu
Y3BwIFwKKyAgICAgICAgaHRtbC9jYW52YXMvRGF0YVZpZXcuY3BwIFwKICAgICAgICAgaHRtbC9j
YW52YXMvV2ViR0xCdWZmZXIuY3BwIFwKICAgICAgICAgaHRtbC9jYW52YXMvSW50OEFycmF5LmNw
cCBcCiAgICAgICAgIGh0bWwvY2FudmFzL1dlYkdMQ29udGV4dEF0dHJpYnV0ZXMuY3BwIFwKZGlm
ZiAtLWdpdCBhL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvV2Vi
Q29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggMjk2NTlhYy4uZjE3
YzNlMiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHBy
b2oKKysrIGIvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTc2
Niw2ICs3NjYsMTEgQEAKIAkJMkU3NTg0MUYxMjc3OUFEQTAwNjI2MjhCIC8qIEZpbGVSZWFkZXJM
b2FkZXJDbGllbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDJFNzU4NDFDMTI3NzlBREEwMDYyNjI4QiAvKiBGaWxlUmVhZGVyTG9hZGVyQ2xpZW50Lmgg
Ki87IH07CiAJCTJFOTRGNDNCMTE5MjA3REEwMEI3Rjc1RCAvKiBKU0ZpbGVSZWFkZXIuY3BwIGlu
IFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMkU5NEY0MzkxMTky
MDdEQTAwQjdGNzVEIC8qIEpTRmlsZVJlYWRlci5jcHAgKi87IH07CiAJCTJFOTRGNDNDMTE5MjA3
REEwMEI3Rjc1RCAvKiBKU0ZpbGVSZWFkZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDJFOTRGNDNBMTE5MjA3REEwMEI3Rjc1RCAvKiBKU0ZpbGVSZWFk
ZXIuaCAqLzsgfTsKKwkJMkU5N0NDRUExMjkzOUNCODAwQzVDOEZGIC8qIERhdGFWaWV3LmNwcCBp
biBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDJFOTdDQ0U3MTI5
MzlDQjgwMEM1QzhGRiAvKiBEYXRhVmlldy5jcHAgKi87IH07CisJCTJFOTdDQ0VCMTI5MzlDQjgw
MEM1QzhGRiAvKiBEYXRhVmlldy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gMkU5N0NDRTgxMjkzOUNCODAwQzVDOEZGIC8qIERhdGFWaWV3LmggKi87IH07
CisJCTJFOTdDQ0Y3MTI5M0E0M0EwMEM1QzhGRiAvKiBKU0RhdGFWaWV3Q3VzdG9tLmNwcCBpbiBT
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDJFOTdDQ0Y2MTI5M0E0
M0EwMEM1QzhGRiAvKiBKU0RhdGFWaWV3Q3VzdG9tLmNwcCAqLzsgfTsKKwkJMkU5N0NFNkYxMjkz
QUQ2QjAwQzVDOEZGIC8qIEpTRGF0YVZpZXcuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gMkU5N0NFNkQxMjkzQUQ2QjAwQzVDOEZGIC8qIEpTRGF0YVZp
ZXcuY3BwICovOyB9OworCQkyRTk3Q0U3MDEyOTNBRDZCMDBDNUM4RkYgLyogSlNEYXRhVmlldy5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMkU5N0NFNkUx
MjkzQUQ2QjAwQzVDOEZGIC8qIEpTRGF0YVZpZXcuaCAqLzsgfTsKIAkJMkVBNzY4MDQwRkU3MTI2
NDAwQUI5QzhBIC8qIFdvcmtlclNjcmlwdExvYWRlckNsaWVudC5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMkVBNzY4MDMwRkU3MTI2NDAwQUI5QzhBIC8q
IFdvcmtlclNjcmlwdExvYWRlckNsaWVudC5oICovOyB9OwogCQkyRUI0QkNEMjEyMUYwM0UzMDBF
QzQ4ODUgLyogQmxvYlJlc291cmNlSGFuZGxlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDJFQjRCQ0QwMTIxRjAzRTMwMEVDNDg4NSAvKiBCbG9iUmVz
b3VyY2VIYW5kbGUuY3BwICovOyB9OwogCQkyRUI0QkNEMzEyMUYwM0UzMDBFQzQ4ODUgLyogQmxv
YlJlc291cmNlSGFuZGxlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSAyRUI0QkNEMTEyMUYwM0UzMDBFQzQ4ODUgLyogQmxvYlJlc291cmNlSGFuZGxlLmgg
Ki87IH07CkBAIC02ODQ4LDYgKzY4NTMsMTIgQEAKIAkJMkU3NTg0MUMxMjc3OUFEQTAwNjI2MjhC
IC8qIEZpbGVSZWFkZXJMb2FkZXJDbGllbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBu
YW1lID0gRmlsZVJlYWRlckxvYWRlckNsaWVudC5oOyBwYXRoID0gZmlsZWFwaS9GaWxlUmVhZGVy
TG9hZGVyQ2xpZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTJFOTRGNDM5MTE5
MjA3REEwMEI3Rjc1RCAvKiBKU0ZpbGVSZWFkZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBwYXRoID0gSlNGaWxlUmVhZGVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJMkU5NEY0M0ExMTkyMDdEQTAwQjdGNzVEIC8qIEpTRmlsZVJlYWRlci5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU0ZpbGVSZWFkZXIuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKKwkJMkU5N0NDRTcxMjkzOUNCODAwQzVDOEZGIC8qIERhdGFWaWV3LmNwcCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IERhdGFWaWV3LmNwcDsgcGF0aCA9
IGNhbnZhcy9EYXRhVmlldy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTJFOTdD
Q0U4MTI5MzlDQjgwMEM1QzhGRiAvKiBEYXRhVmlldy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IG5hbWUgPSBEYXRhVmlldy5oOyBwYXRoID0gY2FudmFzL0RhdGFWaWV3Lmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CisJCTJFOTdDQ0U5MTI5MzlDQjgwMEM1QzhGRiAvKiBEYXRhVmll
dy5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSB0ZXh0OyBuYW1lID0gRGF0YVZpZXcuaWRsOyBwYXRoID0gY2FudmFz
L0RhdGFWaWV3LmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMkU5N0NDRjYxMjkz
QTQzQTAwQzVDOEZGIC8qIEpTRGF0YVZpZXdDdXN0b20uY3BwICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAuY3BwOyBwYXRoID0gSlNEYXRhVmlld0N1c3RvbS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CisJCTJFOTdDRTZEMTI5M0FENkIwMEM1QzhGRiAvKiBKU0RhdGFWaWV3LmNwcCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTRGF0YVZpZXcuY3BwOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OworCQkyRTk3Q0U2RTEyOTNBRDZCMDBDNUM4RkYgLyogSlNE
YXRhVmlldy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU0RhdGFWaWV3Lmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTJFQTc2ODAzMEZFNzEyNjQwMEFCOUM4QSAv
KiBXb3JrZXJTY3JpcHRMb2FkZXJDbGllbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBu
YW1lID0gV29ya2VyU2NyaXB0TG9hZGVyQ2xpZW50Lmg7IHBhdGggPSB3b3JrZXJzL1dvcmtlclNj
cmlwdExvYWRlckNsaWVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkyRUI0QkNE
MDEyMUYwM0UzMDBFQzQ4ODUgLyogQmxvYlJlc291cmNlSGFuZGxlLmNwcCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEJsb2JSZXNvdXJjZUhhbmRsZS5jcHA7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTJFQjRCQ0QxMTIxRjAzRTMwMEVDNDg4NSAvKiBCbG9iUmVz
b3VyY2VIYW5kbGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQmxvYlJlc291
cmNlSGFuZGxlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xMjYwNiw2ICsxMjYx
Nyw5IEBACiAJCQkJNDk0ODRGQkYxMDJDRjIzQzAwMTg3REQzIC8qIENhbnZhc1N0eWxlLmNwcCAq
LywKIAkJCQk0OTQ4NEZDMDEwMkNGMjNDMDAxODdERDMgLyogQ2FudmFzU3R5bGUuaCAqLywKIAkJ
CQlBMDBCNzIxOTExREU2NDI3MDA4QUI5RkYgLyogQ2hlY2tlZEludC5oICovLAorCQkJCTJFOTdD
Q0U3MTI5MzlDQjgwMEM1QzhGRiAvKiBEYXRhVmlldy5jcHAgKi8sCisJCQkJMkU5N0NDRTgxMjkz
OUNCODAwQzVDOEZGIC8qIERhdGFWaWV3LmggKi8sCisJCQkJMkU5N0NDRTkxMjkzOUNCODAwQzVD
OEZGIC8qIERhdGFWaWV3LmlkbCAqLywKIAkJCQk0OUVFQ0RDRDEwNTAzQzIzMDAwOTlGQUIgLyog
RmxvYXQzMkFycmF5LmNwcCAqLywKIAkJCQk0OUVFQ0RDRTEwNTAzQzIzMDAwOTlGQUIgLyogRmxv
YXQzMkFycmF5LmggKi8sCiAJCQkJNDlFRUNEQ0YxMDUwM0MyMzAwMDk5RkFCIC8qIEZsb2F0MzJB
cnJheS5pZGwgKi8sCkBAIC0xNTI4Niw2ICsxNTMwMCw4IEBACiAJCQkJQkM3N0QxNjYwRkYxOUY1
NTAwNzA4ODdCIC8qIEpTRGF0YUdyaWRDb2x1bW4uaCAqLywKIAkJCQlCQzc3RDE2NzBGRjE5RjU1
MDA3MDg4N0IgLyogSlNEYXRhR3JpZENvbHVtbkxpc3QuY3BwICovLAogCQkJCUJDNzdEMTY4MEZG
MTlGNTUwMDcwODg3QiAvKiBKU0RhdGFHcmlkQ29sdW1uTGlzdC5oICovLAorCQkJCTJFOTdDRTZE
MTI5M0FENkIwMEM1QzhGRiAvKiBKU0RhdGFWaWV3LmNwcCAqLywKKwkJCQkyRTk3Q0U2RTEyOTNB
RDZCMDBDNUM4RkYgLyogSlNEYXRhVmlldy5oICovLAogCQkJCTJFMDg4OEQyMTE0ODg0OEEwMEFG
NDI2NSAvKiBKU0RPTUZvcm1EYXRhLmNwcCAqLywKIAkJCQkyRTA4ODhEMzExNDg4NDhBMDBBRjQy
NjUgLyogSlNET01Gb3JtRGF0YS5oICovLAogCQkJCTRBQ0JDMEM4MTI3MTNEMEEwMDk0RjlCMiAv
KiBKU0RPTVNldHRhYmxlVG9rZW5MaXN0LmNwcCAqLywKQEAgLTE3MDcxLDYgKzE3MDg3LDcgQEAK
IAkJCQlCQzU4MjVGMjBDMEI4OTM4MDA1M0YxQjUgLyogSlNDU1NTdHlsZURlY2xhcmF0aW9uQ3Vz
dG9tLmNwcCAqLywKIAkJCQlCQzIwRkI3RTBDMEU4RTZDMDBEMTQ0N0YgLyogSlNDU1NWYWx1ZUN1
c3RvbS5jcHAgKi8sCiAJCQkJQkM3N0QxNTEwRkYxOUM3MzAwNzA4ODdCIC8qIEpTRGF0YUdyaWRD
b2x1bW5MaXN0Q3VzdG9tLmNwcCAqLywKKwkJCQkyRTk3Q0NGNjEyOTNBNDNBMDBDNUM4RkYgLyog
SlNEYXRhVmlld0N1c3RvbS5jcHAgKi8sCiAJCQkJNDE2MkE0NTMxMDExNDVFMzAwREZGM0VEIC8q
IEpTRGVkaWNhdGVkV29ya2VyQ29udGV4dEN1c3RvbS5jcHAgKi8sCiAJCQkJMzM1MDNDQkYxMDE3
OUMxQTAwM0I0N0UxIC8qIEpTRGVza3RvcE5vdGlmaWNhdGlvbnNDdXN0b20uY3BwICovLAogCQkJ
CTMxRkIxQTZCMTIwQTVENjkwMERDMDJBMCAvKiBKU0RldmljZU1vdGlvbkV2ZW50Q3VzdG9tLmNw
cCAqLywKQEAgLTIxMzYzLDYgKzIxMzgwLDggQEAKIAkJCQlFMUFEMTQyMTEyOTVFQTZCMDBBQ0E5
ODkgLyogSlNIVE1MRW1iZWRFbGVtZW50Q3VzdG9tLmggaW4gSGVhZGVycyAqLywKIAkJCQlFMUFE
MTQyMzEyOTVFQTdGMDBBQ0E5ODkgLyogSlNIVE1MSW5wdXRFbGVtZW50Q3VzdG9tLmggaW4gSGVh
ZGVycyAqLywKIAkJCQlFMUFEMTQyNTEyOTVFQTk1MDBBQ0E5ODkgLyogSlNIVE1MT2JqZWN0RWxl
bWVudEN1c3RvbS5oIGluIEhlYWRlcnMgKi8sCisJCQkJMkU5N0NDRUIxMjkzOUNCODAwQzVDOEZG
IC8qIERhdGFWaWV3LmggaW4gSGVhZGVycyAqLywKKwkJCQkyRTk3Q0U3MDEyOTNBRDZCMDBDNUM4
RkYgLyogSlNEYXRhVmlldy5oIGluIEhlYWRlcnMgKi8sCiAJCQkpOwogCQkJcnVuT25seUZvckRl
cGxveW1lbnRQb3N0cHJvY2Vzc2luZyA9IDA7CiAJCX07CkBAIC0yMzkzMiw2ICsyMzk1MSw5IEBA
CiAJCQkJRTFBRDEyRDYxMjk1RDBCRDAwQUNBOTg5IC8qIEpTUHJvY2Vzc2luZ0luc3RydWN0aW9u
Q3VzdG9tLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUUxQUQxMzlCMTI5NUQ5MjYwMEFDQTk4OSAv
KiBKU0hUTUxMaW5rRWxlbWVudEN1c3RvbS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlFMUFEMTM5
RTEyOTVEOTYxMDBBQ0E5ODkgLyogSlNIVE1MU3R5bGVFbGVtZW50Q3VzdG9tLmNwcCBpbiBTb3Vy
Y2VzICovLAorCQkJCTJFOTdDQ0VBMTI5MzlDQjgwMEM1QzhGRiAvKiBEYXRhVmlldy5jcHAgaW4g
U291cmNlcyAqLywKKwkJCQkyRTk3Q0NGNzEyOTNBNDNBMDBDNUM4RkYgLyogSlNEYXRhVmlld0N1
c3RvbS5jcHAgaW4gU291cmNlcyAqLywKKwkJCQkyRTk3Q0U2RjEyOTNBRDZCMDBDNUM4RkYgLyog
SlNEYXRhVmlldy5jcHAgaW4gU291cmNlcyAqLywKIAkJCSk7CiAJCQlydW5Pbmx5Rm9yRGVwbG95
bWVudFBvc3Rwcm9jZXNzaW5nID0gMDsKIAkJfTsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvYmluZGlu
Z3MvZ2VuZXJpYy9SdW50aW1lRW5hYmxlZEZlYXR1cmVzLmggYi9XZWJDb3JlL2JpbmRpbmdzL2dl
bmVyaWMvUnVudGltZUVuYWJsZWRGZWF0dXJlcy5oCmluZGV4IDBhYjUxMjAuLjMzNDMyY2UgMTAw
NjQ0Ci0tLSBhL1dlYkNvcmUvYmluZGluZ3MvZ2VuZXJpYy9SdW50aW1lRW5hYmxlZEZlYXR1cmVz
LmgKKysrIGIvV2ViQ29yZS9iaW5kaW5ncy9nZW5lcmljL1J1bnRpbWVFbmFibGVkRmVhdHVyZXMu
aApAQCAtMTAyLDYgKzEwMiw3IEBAIHB1YmxpYzoKICAgICBzdGF0aWMgYm9vbCBpbnQzMkFycmF5
RW5hYmxlZCgpIHsgcmV0dXJuIGlzV2ViR0xFbmFibGVkOyB9CiAgICAgc3RhdGljIGJvb2wgdWlu
dDMyQXJyYXlFbmFibGVkKCkgeyByZXR1cm4gaXNXZWJHTEVuYWJsZWQ7IH0KICAgICBzdGF0aWMg
Ym9vbCBmbG9hdDMyQXJyYXlFbmFibGVkKCkgeyByZXR1cm4gaXNXZWJHTEVuYWJsZWQ7IH0KKyAg
ICBzdGF0aWMgYm9vbCBkYXRhVmlld0VuYWJsZWQoKSB7IHJldHVybiBpc1dlYkdMRW5hYmxlZDsg
fQogICAgIHN0YXRpYyBib29sIHdlYkdMUmVuZGVyaW5nQ29udGV4dEVuYWJsZWQoKSB7IHJldHVy
biBpc1dlYkdMRW5hYmxlZDsgfQogICAgIHN0YXRpYyBib29sIHdlYkdMQXJyYXlCdWZmZXJFbmFi
bGVkKCkgeyByZXR1cm4gaXNXZWJHTEVuYWJsZWQ7IH0KICAgICBzdGF0aWMgYm9vbCB3ZWJHTEJ5
dGVBcnJheUVuYWJsZWQoKSB7IHJldHVybiBpc1dlYkdMRW5hYmxlZDsgfQpkaWZmIC0tZ2l0IGEv
V2ViQ29yZS9iaW5kaW5ncy9qcy9KU0FycmF5QnVmZmVyVmlld0hlbHBlci5oIGIvV2ViQ29yZS9i
aW5kaW5ncy9qcy9KU0FycmF5QnVmZmVyVmlld0hlbHBlci5oCmluZGV4IGJhNzEyYzYuLmYzNGY0
YjkgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvYmluZGluZ3MvanMvSlNBcnJheUJ1ZmZlclZpZXdIZWxw
ZXIuaAorKysgYi9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTQXJyYXlCdWZmZXJWaWV3SGVscGVyLmgK
QEAgLTg2LDE2ICs4NiwzMyBAQCBKU0M6OkpTVmFsdWUgc2V0V2ViR0xBcnJheUhlbHBlcihKU0M6
OkV4ZWNTdGF0ZSogZXhlYywgVCogaW1wbCwgVCogKCpjb252ZXJzaW9uRgogLy8gVGVtcGxhdGUg
ZnVuY3Rpb24gdXNlZCBieSBYWFhBcnJheUNvbnN0cnVjdG9ycy4KIC8vIElmIHRoaXMgcmV0dXJu
cyAwLCBpdCB3aWxsIGFscmVhZHkgaGF2ZSB0aHJvd24gYSBKYXZhU2NyaXB0IGV4Y2VwdGlvbi4K
IHRlbXBsYXRlPGNsYXNzIEMsIHR5cGVuYW1lIFQ+Ci1QYXNzUmVmUHRyPEFycmF5QnVmZmVyVmll
dz4gY29uc3RydWN0QXJyYXlCdWZmZXJWaWV3KEpTQzo6RXhlY1N0YXRlKiBleGVjKQorUGFzc1Jl
ZlB0cjxDPiBjb25zdHJ1Y3RBcnJheUJ1ZmZlclZpZXdXaXRoQXJyYXlCdWZmZXJBcmd1bWVudChK
U0M6OkV4ZWNTdGF0ZSogZXhlYykKK3sKKyAgICBSZWZQdHI8QXJyYXlCdWZmZXI+IGJ1ZmZlciA9
IHRvQXJyYXlCdWZmZXIoZXhlYy0+YXJndW1lbnQoMCkpOworICAgIGlmICghYnVmZmVyKQorICAg
ICAgICByZXR1cm4gMDsKKworICAgIHVuc2lnbmVkIG9mZnNldCA9IChleGVjLT5hcmd1bWVudENv
dW50KCkgPiAxKSA/IGV4ZWMtPmFyZ3VtZW50KDEpLnRvVUludDMyKGV4ZWMpIDogMDsKKyAgICBp
ZiAoKGJ1ZmZlci0+Ynl0ZUxlbmd0aCgpIC0gb2Zmc2V0KSAlIHNpemVvZihUKSkKKyAgICAgICAg
dGhyb3dFcnJvcihleGVjLCBjcmVhdGVSYW5nZUVycm9yKGV4ZWMsICJBcnJheUJ1ZmZlciBsZW5n
dGggbWludXMgdGhlIGJ5dGVPZmZzZXQgaXMgbm90IGEgbXVsdGlwbGUgb2YgdGhlIGVsZW1lbnQg
c2l6ZS4iKSk7CisgICAgdW5zaWduZWQgaW50IGxlbmd0aCA9IChidWZmZXItPmJ5dGVMZW5ndGgo
KSAtIG9mZnNldCkgLyBzaXplb2YoVCk7CisgICAgaWYgKGV4ZWMtPmFyZ3VtZW50Q291bnQoKSA+
IDIpCisgICAgICAgIGxlbmd0aCA9IGV4ZWMtPmFyZ3VtZW50KDIpLnRvVUludDMyKGV4ZWMpOwor
ICAgIFJlZlB0cjxDPiBhcnJheSA9IEM6OmNyZWF0ZShidWZmZXIsIG9mZnNldCwgbGVuZ3RoKTsK
KyAgICBpZiAoIWFycmF5KQorICAgICAgICBzZXRET01FeGNlcHRpb24oZXhlYywgSU5ERVhfU0la
RV9FUlIpOworICAgIHJldHVybiBhcnJheTsKK30KKwordGVtcGxhdGU8Y2xhc3MgQywgdHlwZW5h
bWUgVD4KK1Bhc3NSZWZQdHI8Qz4gY29uc3RydWN0QXJyYXlCdWZmZXJWaWV3KEpTQzo6RXhlY1N0
YXRlKiBleGVjKQogewogICAgIC8vIFRoZXJlIGFyZSAzIGNvbnN0cnVjdG9yczoKICAgICAvLwog
ICAgIC8vICAxKSAoaW4gaW50IHNpemUpCiAgICAgLy8gIDIpIChpbiBBcnJheUJ1ZmZlciBidWZm
ZXIsIFtPcHRpb25hbF0gaW4gaW50IG9mZnNldCwgW09wdGlvbmFsXSBpbiB1bnNpZ25lZCBpbnQg
bGVuZ3RoKQogICAgIC8vICAzKSAoaW4gc2VxdWVuY2U8VD4pIC0gVGhpcyBlbmRzIHVwIGJlaW5n
IGEgSlMgImFycmF5LWxpa2UiIG9iamVjdAotICAgIC8vCi0gICAgUmVmUHRyPEM+IGFycmF5T2Jq
ZWN0OwotICAgIAorICAgIC8vICAgIAogICAgIC8vIEZvciB0aGUgMCBhcmdzIGNhc2UsIGp1c3Qg
Y3JlYXRlIGEgemVyby1sZW5ndGggdmlldy4gV2UgY291bGQKICAgICAvLyBjb25zaWRlciByYWlz
aW5nIGEgU3ludGF4RXJyb3IgZm9yIHRoaXMgY2FzZSwgYnV0IG5vdCBhbGwKICAgICAvLyBKYXZh
U2NyaXB0IERPTSBiaW5kaW5ncyBjYW4gZGlzdGluZ3Vpc2ggYmV0d2VlbiAibmV3CkBAIC0xMTIs
MjAgKzEyOSwxMCBAQCBQYXNzUmVmUHRyPEFycmF5QnVmZmVyVmlldz4gY29uc3RydWN0QXJyYXlC
dWZmZXJWaWV3KEpTQzo6RXhlY1N0YXRlKiBleGVjKQogICAgIH0KIAogICAgIGlmIChleGVjLT5h
cmd1bWVudCgwKS5pc09iamVjdCgpKSB7Ci0gICAgICAgIFJlZlB0cjxBcnJheUJ1ZmZlcj4gYnVm
ZmVyID0gdG9BcnJheUJ1ZmZlcihleGVjLT5hcmd1bWVudCgwKSk7Ci0gICAgICAgIGlmIChidWZm
ZXIpIHsKLSAgICAgICAgICAgIHVuc2lnbmVkIG9mZnNldCA9IChleGVjLT5hcmd1bWVudENvdW50
KCkgPiAxKSA/IGV4ZWMtPmFyZ3VtZW50KDEpLnRvVUludDMyKGV4ZWMpIDogMDsKLSAgICAgICAg
ICAgIGlmICgoYnVmZmVyLT5ieXRlTGVuZ3RoKCkgLSBvZmZzZXQpICUgc2l6ZW9mKFQpKQotICAg
ICAgICAgICAgICAgIHRocm93RXJyb3IoZXhlYywgY3JlYXRlUmFuZ2VFcnJvcihleGVjLCAiQXJy
YXlCdWZmZXIgbGVuZ3RoIG1pbnVzIHRoZSBieXRlT2Zmc2V0IGlzIG5vdCBhIG11bHRpcGxlIG9m
IHRoZSBlbGVtZW50IHNpemUuIikpOwotICAgICAgICAgICAgdW5zaWduZWQgaW50IGxlbmd0aCA9
IChidWZmZXItPmJ5dGVMZW5ndGgoKSAtIG9mZnNldCkgLyBzaXplb2YoVCk7Ci0gICAgICAgICAg
ICBpZiAoZXhlYy0+YXJndW1lbnRDb3VudCgpID4gMikKLSAgICAgICAgICAgICAgICBsZW5ndGgg
PSBleGVjLT5hcmd1bWVudCgyKS50b1VJbnQzMihleGVjKTsKLSAgICAgICAgICAgIFBhc3NSZWZQ
dHI8QXJyYXlCdWZmZXJWaWV3PiBhcnJheSA9IEM6OmNyZWF0ZShidWZmZXIsIG9mZnNldCwgbGVu
Z3RoKTsKLSAgICAgICAgICAgIGlmICghYXJyYXkpCi0gICAgICAgICAgICAgICAgc2V0RE9NRXhj
ZXB0aW9uKGV4ZWMsIElOREVYX1NJWkVfRVJSKTsKLSAgICAgICAgICAgIHJldHVybiBhcnJheTsK
LSAgICAgICAgfQotICAgICAgICAKKyAgICAgICAgUmVmUHRyPEM+IHZpZXcgPSBjb25zdHJ1Y3RB
cnJheUJ1ZmZlclZpZXdXaXRoQXJyYXlCdWZmZXJBcmd1bWVudDxDLCBUPihleGVjKTsKKyAgICAg
ICAgaWYgKHZpZXcpCisgICAgICAgICAgICByZXR1cm4gdmlldzsKKyAgICAKICAgICAgICAgSlND
OjpKU09iamVjdCogYXJyYXkgPSBhc09iamVjdChleGVjLT5hcmd1bWVudCgwKSk7CiAgICAgICAg
IHVuc2lnbmVkIGxlbmd0aCA9IGFycmF5LT5nZXQoZXhlYywgSlNDOjpJZGVudGlmaWVyKGV4ZWMs
ICJsZW5ndGgiKSkudG9VSW50MzIoZXhlYyk7CiAgICAgICAgIHZvaWQqIHRlbXBWYWx1ZXM7CkBA
IC0xNDIsMTQgKzE0OSwxNCBAQCBQYXNzUmVmUHRyPEFycmF5QnVmZmVyVmlldz4gY29uc3RydWN0
QXJyYXlCdWZmZXJWaWV3KEpTQzo6RXhlY1N0YXRlKiBleGVjKQogICAgICAgICAgICAgdmFsdWVz
LmdldCgpW2ldID0gc3RhdGljX2Nhc3Q8VD4odi50b051bWJlcihleGVjKSk7CiAgICAgICAgIH0K
ICAgICAgICAgCi0gICAgICAgIFBhc3NSZWZQdHI8QXJyYXlCdWZmZXJWaWV3PiByZXN1bHQgPSBD
OjpjcmVhdGUodmFsdWVzLmdldCgpLCBsZW5ndGgpOworICAgICAgICBSZWZQdHI8Qz4gcmVzdWx0
ID0gQzo6Y3JlYXRlKHZhbHVlcy5nZXQoKSwgbGVuZ3RoKTsKICAgICAgICAgaWYgKCFyZXN1bHQp
CiAgICAgICAgICAgICBzZXRET01FeGNlcHRpb24oZXhlYywgSU5ERVhfU0laRV9FUlIpOwogICAg
ICAgICByZXR1cm4gcmVzdWx0OwogICAgIH0KLSAgICAKKwogICAgIGludCBsZW5ndGggPSBleGVj
LT5hcmd1bWVudCgwKS50b0ludDMyKGV4ZWMpOwotICAgIFBhc3NSZWZQdHI8QXJyYXlCdWZmZXJW
aWV3PiByZXN1bHQ7CisgICAgUmVmUHRyPEM+IHJlc3VsdDsKICAgICBpZiAobGVuZ3RoID49IDAp
CiAgICAgICAgIHJlc3VsdCA9IEM6OmNyZWF0ZShzdGF0aWNfY2FzdDx1bnNpZ25lZD4obGVuZ3Ro
KSk7CiAgICAgaWYgKCFyZXN1bHQpCmRpZmYgLS1naXQgYS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pT
RE9NV2luZG93Q3VzdG9tLmNwcCBiL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01XaW5kb3dDdXN0
b20uY3BwCmluZGV4IDcxMTllYTYuLjk1ZmNkYzEgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvYmluZGlu
Z3MvanMvSlNET01XaW5kb3dDdXN0b20uY3BwCisrKyBiL1dlYkNvcmUvYmluZGluZ3MvanMvSlNE
T01XaW5kb3dDdXN0b20uY3BwCkBAIC01Myw2ICs1Myw3IEBACiAKICNpZiBFTkFCTEUoM0RfQ0FO
VkFTKSB8fCBFTkFCTEUoQkxPQikKICNpbmNsdWRlICJKU0FycmF5QnVmZmVyLmgiCisjaW5jbHVk
ZSAiSlNEYXRhVmlldy5oIgogI2luY2x1ZGUgIkpTSW50OEFycmF5LmgiCiAjaW5jbHVkZSAiSlNV
aW50OEFycmF5LmgiCiAjaW5jbHVkZSAiSlNJbnQzMkFycmF5LmgiCkBAIC02MDYsNiArNjA3LDEw
IEBAIEpTVmFsdWUgSlNET01XaW5kb3c6OmZsb2F0MzJBcnJheShFeGVjU3RhdGUqIGV4ZWMpIGNv
bnN0CiAgICAgcmV0dXJuIGdldERPTUNvbnN0cnVjdG9yPEpTRmxvYXQzMkFycmF5Q29uc3RydWN0
b3I+KGV4ZWMsIHRoaXMpOwogfQogCitKU1ZhbHVlIEpTRE9NV2luZG93OjpkYXRhVmlldyhFeGVj
U3RhdGUqIGV4ZWMpIGNvbnN0Cit7CisgICAgcmV0dXJuIGdldERPTUNvbnN0cnVjdG9yPEpTRGF0
YVZpZXdDb25zdHJ1Y3Rvcj4oZXhlYywgdGhpcyk7Cit9CiAjZW5kaWYKICAKIEpTVmFsdWUgSlNE
T01XaW5kb3c6OnhtbEh0dHBSZXF1ZXN0KEV4ZWNTdGF0ZSogZXhlYykgY29uc3QKZGlmZiAtLWdp
dCBhL1dlYkNvcmUvYmluZGluZ3MvanMvSlNEYXRhVmlld0N1c3RvbS5jcHAgYi9XZWJDb3JlL2Jp
bmRpbmdzL2pzL0pTRGF0YVZpZXdDdXN0b20uY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAuLjEzMWEyNTkKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJDb3JlL2JpbmRpbmdzL2pz
L0pTRGF0YVZpZXdDdXN0b20uY3BwCkBAIC0wLDAgKzEsMTU0IEBACisvKgorICogQ29weXJpZ2h0
IChDKSAyMDEwIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMgYXJlCisgKiBtZXQ6CisgKgorICogICAgICogUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ci4KKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUKKyAqIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKKyAqIGluIHRoZSBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKKyAqIGRpc3RyaWJ1dGlvbi4K
KyAqICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBv
ZiBpdHMKKyAqIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUg
cHJvZHVjdHMgZGVyaXZlZCBmcm9tCisgKiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMg
cHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKKyAqICJBUyBJUyIg
QU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
CisgKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IKKyAqIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVE
LiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCisgKiBPV05FUiBPUiBDT05UUklCVVRP
UlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKyAqIFNQ
RUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QKKyAqIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7IExPU1MgT0YgVVNFLAorICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1Mg
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisgKiBUSEVPUlkgT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisg
KiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5o
IgorCisjaWYgRU5BQkxFKDNEX0NBTlZBUykgfHwgRU5BQkxFKEJMT0IpCisKKyNpbmNsdWRlICJK
U0RhdGFWaWV3LmgiCisKKyNpbmNsdWRlICJEYXRhVmlldy5oIgorI2luY2x1ZGUgIkpTQXJyYXlC
dWZmZXJWaWV3SGVscGVyLmgiCisKK3VzaW5nIG5hbWVzcGFjZSBKU0M7CisKK25hbWVzcGFjZSBX
ZWJDb3JlIHsKKworSlNWYWx1ZSB0b0pTKEV4ZWNTdGF0ZSogZXhlYywgSlNET01HbG9iYWxPYmpl
Y3QqIGdsb2JhbE9iamVjdCwgRGF0YVZpZXcqIG9iamVjdCkKK3sKKyAgICByZXR1cm4gZ2V0RE9N
T2JqZWN0V3JhcHBlcjxKU0RhdGFWaWV3PihleGVjLCBnbG9iYWxPYmplY3QsIG9iamVjdCk7Cit9
CisKK0VuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgSlNEYXRhVmlld0NvbnN0cnVjdG9yOjpj
b25zdHJ1Y3RKU0RhdGFWaWV3KEV4ZWNTdGF0ZSogZXhlYykKK3sKKyAgICBpZiAoZXhlYy0+YXJn
dW1lbnQoMCkuaXNOdWxsKCkgfHwgIWV4ZWMtPmFyZ3VtZW50KDApLmlzT2JqZWN0KCkpIHsKKyAg
ICAgICAgdGhyb3dUeXBlRXJyb3IoZXhlYyk7CisgICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNv
ZGUoSlNWYWx1ZSgpKTsKKyAgICB9CisKKyAgICBSZWZQdHI8RGF0YVZpZXc+IHZpZXcgPSBjb25z
dHJ1Y3RBcnJheUJ1ZmZlclZpZXdXaXRoQXJyYXlCdWZmZXJBcmd1bWVudDxEYXRhVmlldywgY2hh
cj4oZXhlYyk7CisgICAgaWYgKCF2aWV3LmdldCgpKSB7CisgICAgICAgIHRocm93VHlwZUVycm9y
KGV4ZWMpOworICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKEpTVmFsdWUoKSk7CisgICAg
fQorCisgICAgSlNEYXRhVmlld0NvbnN0cnVjdG9yKiBqc0NvbnN0cnVjdG9yID0gc3RhdGljX2Nh
c3Q8SlNEYXRhVmlld0NvbnN0cnVjdG9yKj4oZXhlYy0+Y2FsbGVlKCkpOworICAgIHJldHVybiBK
U1ZhbHVlOjplbmNvZGUoYXNPYmplY3QodG9KUyhleGVjLCBqc0NvbnN0cnVjdG9yLT5nbG9iYWxP
YmplY3QoKSwgdmlldy5nZXQoKSkpKTsKK30KKworSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIEpTRGF0
YVZpZXc6OmdldEludDgoRXhlY1N0YXRlKiBleGVjKQoreworICAgIEpTVmFsdWUgdGhpc1ZhbHVl
ID0gZXhlYy0+aG9zdFRoaXNWYWx1ZSgpOworICAgIGlmICghdGhpc1ZhbHVlLmluaGVyaXRzKCZK
U0RhdGFWaWV3OjpzX2luZm8pKQorICAgICAgICByZXR1cm4gdGhyb3dUeXBlRXJyb3IoZXhlYyk7
CisgICAgSlNEYXRhVmlldyogY2FzdGVkVGhpcyA9IHN0YXRpY19jYXN0PEpTRGF0YVZpZXcqPihh
c09iamVjdCh0aGlzVmFsdWUpKTsKKyAgICBEYXRhVmlldyogaW1wID0gc3RhdGljX2Nhc3Q8RGF0
YVZpZXcqPihjYXN0ZWRUaGlzLT5pbXBsKCkpOworICAgIGlmIChleGVjLT5hcmd1bWVudENvdW50
KCkgPCAxKQorICAgICAgICByZXR1cm4gdGhyb3dFcnJvcihleGVjLCBjcmVhdGVTeW50YXhFcnJv
cihleGVjLCAiTm90IGVub3VnaCBhcmd1bWVudHMiKSk7CisgICAgRXhjZXB0aW9uQ29kZSBlYyA9
IDA7CisgICAgdW5zaWduZWQgYnl0ZU9mZnNldCA9IGV4ZWMtPmFyZ3VtZW50KDApLnRvVUludDMy
KGV4ZWMpOworICAgIGlmIChleGVjLT5oYWRFeGNlcHRpb24oKSkKKyAgICAgICAgcmV0dXJuIGpz
VW5kZWZpbmVkKCk7CisKKyAgICBKU0M6OkpTVmFsdWUgcmVzdWx0ID0ganNOdW1iZXIoaW1wLT5n
ZXRJbnQ4KGJ5dGVPZmZzZXQsIGVjKSk7CisgICAgc2V0RE9NRXhjZXB0aW9uKGV4ZWMsIGVjKTsK
KyAgICByZXR1cm4gcmVzdWx0OworfQorCitKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgSlNEYXRhVmll
dzo6Z2V0VWludDgoRXhlY1N0YXRlKiBleGVjKQoreworICAgIEpTVmFsdWUgdGhpc1ZhbHVlID0g
ZXhlYy0+aG9zdFRoaXNWYWx1ZSgpOworICAgIGlmICghdGhpc1ZhbHVlLmluaGVyaXRzKCZKU0Rh
dGFWaWV3OjpzX2luZm8pKQorICAgICAgICByZXR1cm4gdGhyb3dUeXBlRXJyb3IoZXhlYyk7Cisg
ICAgSlNEYXRhVmlldyogY2FzdGVkVGhpcyA9IHN0YXRpY19jYXN0PEpTRGF0YVZpZXcqPihhc09i
amVjdCh0aGlzVmFsdWUpKTsKKyAgICBEYXRhVmlldyogaW1wID0gc3RhdGljX2Nhc3Q8RGF0YVZp
ZXcqPihjYXN0ZWRUaGlzLT5pbXBsKCkpOworICAgIGlmIChleGVjLT5hcmd1bWVudENvdW50KCkg
PCAxKQorICAgICAgICByZXR1cm4gdGhyb3dFcnJvcihleGVjLCBjcmVhdGVTeW50YXhFcnJvcihl
eGVjLCAiTm90IGVub3VnaCBhcmd1bWVudHMiKSk7CisgICAgRXhjZXB0aW9uQ29kZSBlYyA9IDA7
CisgICAgdW5zaWduZWQgYnl0ZU9mZnNldCA9IGV4ZWMtPmFyZ3VtZW50KDApLnRvVUludDMyKGV4
ZWMpOworICAgIGlmIChleGVjLT5oYWRFeGNlcHRpb24oKSkKKyAgICAgICAgcmV0dXJuIGpzVW5k
ZWZpbmVkKCk7CisKKyAgICBKU0M6OkpTVmFsdWUgcmVzdWx0ID0ganNOdW1iZXIoaW1wLT5nZXRV
aW50OChieXRlT2Zmc2V0LCBlYykpOworICAgIHNldERPTUV4Y2VwdGlvbihleGVjLCBlYyk7Cisg
ICAgcmV0dXJuIHJlc3VsdDsKK30KKworSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIEpTRGF0YVZpZXc6
OnNldEludDgoRXhlY1N0YXRlKiBleGVjKQoreworICAgIEpTVmFsdWUgdGhpc1ZhbHVlID0gZXhl
Yy0+aG9zdFRoaXNWYWx1ZSgpOworICAgIGlmICghdGhpc1ZhbHVlLmluaGVyaXRzKCZKU0RhdGFW
aWV3OjpzX2luZm8pKQorICAgICAgICByZXR1cm4gdGhyb3dUeXBlRXJyb3IoZXhlYyk7CisgICAg
SlNEYXRhVmlldyogY2FzdGVkVGhpcyA9IHN0YXRpY19jYXN0PEpTRGF0YVZpZXcqPihhc09iamVj
dCh0aGlzVmFsdWUpKTsKKyAgICBEYXRhVmlldyogaW1wID0gc3RhdGljX2Nhc3Q8RGF0YVZpZXcq
PihjYXN0ZWRUaGlzLT5pbXBsKCkpOworICAgIGlmIChleGVjLT5hcmd1bWVudENvdW50KCkgPCAy
KQorICAgICAgICByZXR1cm4gdGhyb3dFcnJvcihleGVjLCBjcmVhdGVTeW50YXhFcnJvcihleGVj
LCAiTm90IGVub3VnaCBhcmd1bWVudHMiKSk7CisgICAgRXhjZXB0aW9uQ29kZSBlYyA9IDA7Cisg
ICAgdW5zaWduZWQgYnl0ZU9mZnNldCA9IGV4ZWMtPmFyZ3VtZW50KDApLnRvVUludDMyKGV4ZWMp
OworICAgIGlmIChleGVjLT5oYWRFeGNlcHRpb24oKSkKKyAgICAgICAgcmV0dXJuIGpzVW5kZWZp
bmVkKCk7CisgICAgaW50IHZhbHVlID0gZXhlYy0+YXJndW1lbnQoMSkudG9JbnQzMihleGVjKTsK
KyAgICBpZiAoZXhlYy0+aGFkRXhjZXB0aW9uKCkpCisgICAgICAgIHJldHVybiBqc1VuZGVmaW5l
ZCgpOworICAgIGlmICh2YWx1ZSA8IC0xMjggfHwgdmFsdWUgPiAxMjcpCisgICAgICAgIHJldHVy
biB0aHJvd0Vycm9yKGV4ZWMsIGNyZWF0ZVN5bnRheEVycm9yKGV4ZWMsICJUaGUgdmFsdWUgdG8g
c2V0IHRvIGlzIG91dCBvZiByYW5nZSIpKTsKKworICAgIGltcC0+c2V0SW50OChieXRlT2Zmc2V0
LCBzdGF0aWNfY2FzdDx1bnNpZ25lZCBjaGFyPih2YWx1ZSksIGVjKTsKKyAgICBzZXRET01FeGNl
cHRpb24oZXhlYywgZWMpOworICAgIHJldHVybiBqc1VuZGVmaW5lZCgpOworfQorCitKU1ZhbHVl
IEpTQ19IT1NUX0NBTEwgSlNEYXRhVmlldzo6c2V0VWludDgoRXhlY1N0YXRlKiBleGVjKQorewor
ICAgIEpTVmFsdWUgdGhpc1ZhbHVlID0gZXhlYy0+aG9zdFRoaXNWYWx1ZSgpOworICAgIGlmICgh
dGhpc1ZhbHVlLmluaGVyaXRzKCZKU0RhdGFWaWV3OjpzX2luZm8pKQorICAgICAgICByZXR1cm4g
dGhyb3dUeXBlRXJyb3IoZXhlYyk7CisgICAgSlNEYXRhVmlldyogY2FzdGVkVGhpcyA9IHN0YXRp
Y19jYXN0PEpTRGF0YVZpZXcqPihhc09iamVjdCh0aGlzVmFsdWUpKTsKKyAgICBEYXRhVmlldyog
aW1wID0gc3RhdGljX2Nhc3Q8RGF0YVZpZXcqPihjYXN0ZWRUaGlzLT5pbXBsKCkpOworICAgIGlm
IChleGVjLT5hcmd1bWVudENvdW50KCkgPCAyKQorICAgICAgICByZXR1cm4gdGhyb3dFcnJvcihl
eGVjLCBjcmVhdGVTeW50YXhFcnJvcihleGVjLCAiTm90IGVub3VnaCBhcmd1bWVudHMiKSk7Cisg
ICAgRXhjZXB0aW9uQ29kZSBlYyA9IDA7CisgICAgdW5zaWduZWQgYnl0ZU9mZnNldCA9IGV4ZWMt
PmFyZ3VtZW50KDApLnRvVUludDMyKGV4ZWMpOworICAgIGlmIChleGVjLT5oYWRFeGNlcHRpb24o
KSkKKyAgICAgICAgcmV0dXJuIGpzVW5kZWZpbmVkKCk7CisgICAgaW50IHZhbHVlID0gZXhlYy0+
YXJndW1lbnQoMSkudG9JbnQzMihleGVjKTsKKyAgICBpZiAoZXhlYy0+aGFkRXhjZXB0aW9uKCkp
CisgICAgICAgIHJldHVybiBqc1VuZGVmaW5lZCgpOworICAgIGlmICh2YWx1ZSA8IDAgfHwgdmFs
dWUgPiAyNTUpCisgICAgICAgIHJldHVybiB0aHJvd0Vycm9yKGV4ZWMsIGNyZWF0ZVN5bnRheEVy
cm9yKGV4ZWMsICJUaGUgdmFsdWUgdG8gc2V0IHRvIGlzIG91dCBvZiByYW5nZSIpKTsKKworICAg
IGltcC0+c2V0VWludDgoYnl0ZU9mZnNldCwgc3RhdGljX2Nhc3Q8dW5zaWduZWQgY2hhcj4odmFs
dWUpLCBlYyk7CisgICAgc2V0RE9NRXhjZXB0aW9uKGV4ZWMsIGVjKTsKKyAgICByZXR1cm4ganNV
bmRlZmluZWQoKTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gRU5B
QkxFKDNEX0NBTlZBUykgfHwgRU5BQkxFKEJMT0IpCmRpZmYgLS1naXQgYS9XZWJDb3JlL2JpbmRp
bmdzL2pzL0pTRmxvYXQzMkFycmF5Q3VzdG9tLmNwcCBiL1dlYkNvcmUvYmluZGluZ3MvanMvSlNG
bG9hdDMyQXJyYXlDdXN0b20uY3BwCmluZGV4IDY3MWVlNjguLjg4MGQ2OGMgMTAwNjQ0Ci0tLSBh
L1dlYkNvcmUvYmluZGluZ3MvanMvSlNGbG9hdDMyQXJyYXlDdXN0b20uY3BwCisrKyBiL1dlYkNv
cmUvYmluZGluZ3MvanMvSlNGbG9hdDMyQXJyYXlDdXN0b20uY3BwCkBAIC0yNywxMCArMjcsMTAg
QEAKIAogI2lmIEVOQUJMRSgzRF9DQU5WQVMpIHx8IEVOQUJMRShCTE9CKQogCi0jaW5jbHVkZSAi
SlNBcnJheUJ1ZmZlclZpZXdIZWxwZXIuaCIKICNpbmNsdWRlICJKU0Zsb2F0MzJBcnJheS5oIgog
CiAjaW5jbHVkZSAiRmxvYXQzMkFycmF5LmgiCisjaW5jbHVkZSAiSlNBcnJheUJ1ZmZlclZpZXdI
ZWxwZXIuaCIKIAogdXNpbmcgbmFtZXNwYWNlIEpTQzsKIApAQCAtNTQsNyArNTQsNyBAQCBKU0M6
OkpTVmFsdWUgSlNGbG9hdDMyQXJyYXk6OnNldChKU0M6OkV4ZWNTdGF0ZSogZXhlYykKIEVuY29k
ZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgSlNGbG9hdDMyQXJyYXlDb25zdHJ1Y3Rvcjo6Y29uc3Ry
dWN0SlNGbG9hdDMyQXJyYXkoRXhlY1N0YXRlKiBleGVjKQogewogICAgIEpTRmxvYXQzMkFycmF5
Q29uc3RydWN0b3IqIGpzQ29uc3RydWN0b3IgPSBzdGF0aWNfY2FzdDxKU0Zsb2F0MzJBcnJheUNv
bnN0cnVjdG9yKj4oZXhlYy0+Y2FsbGVlKCkpOwotICAgIFJlZlB0cjxGbG9hdDMyQXJyYXk+IGFy
cmF5ID0gc3RhdGljX2Nhc3Q8RmxvYXQzMkFycmF5Kj4oY29uc3RydWN0QXJyYXlCdWZmZXJWaWV3
PEZsb2F0MzJBcnJheSwgZmxvYXQ+KGV4ZWMpLmdldCgpKTsKKyAgICBSZWZQdHI8RmxvYXQzMkFy
cmF5PiBhcnJheSA9IGNvbnN0cnVjdEFycmF5QnVmZmVyVmlldzxGbG9hdDMyQXJyYXksIGZsb2F0
PihleGVjKTsKICAgICBpZiAoIWFycmF5LmdldCgpKQogICAgICAgICAvLyBFeGNlcHRpb24gaGFz
IGFscmVhZHkgYmVlbiB0aHJvd24uCiAgICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoSlNW
YWx1ZSgpKTsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvYmluZGluZ3MvanMvSlNJbnQxNkFycmF5Q3Vz
dG9tLmNwcCBiL1dlYkNvcmUvYmluZGluZ3MvanMvSlNJbnQxNkFycmF5Q3VzdG9tLmNwcAppbmRl
eCA3OTc1NjhjLi5lMDhkYThhIDEwMDY0NAotLS0gYS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTSW50
MTZBcnJheUN1c3RvbS5jcHAKKysrIGIvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0ludDE2QXJyYXlD
dXN0b20uY3BwCkBAIC0yNywxMCArMjcsMTAgQEAKIAogI2lmIEVOQUJMRSgzRF9DQU5WQVMpIHx8
IEVOQUJMRShCTE9CKQogCi0jaW5jbHVkZSAiSlNBcnJheUJ1ZmZlclZpZXdIZWxwZXIuaCIKICNp
bmNsdWRlICJKU0ludDE2QXJyYXkuaCIKIAogI2luY2x1ZGUgIkludDE2QXJyYXkuaCIKKyNpbmNs
dWRlICJKU0FycmF5QnVmZmVyVmlld0hlbHBlci5oIgogCiB1c2luZyBuYW1lc3BhY2UgSlNDOwog
CkBAIC01NCw3ICs1NCw3IEBAIEpTQzo6SlNWYWx1ZSBKU0ludDE2QXJyYXk6OnNldChKU0M6OkV4
ZWNTdGF0ZSogZXhlYykKIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgSlNJbnQxNkFycmF5
Q29uc3RydWN0b3I6OmNvbnN0cnVjdEpTSW50MTZBcnJheShFeGVjU3RhdGUqIGV4ZWMpCiB7CiAg
ICAgSlNJbnQxNkFycmF5Q29uc3RydWN0b3IqIGpzQ29uc3RydWN0b3IgPSBzdGF0aWNfY2FzdDxK
U0ludDE2QXJyYXlDb25zdHJ1Y3Rvcio+KGV4ZWMtPmNhbGxlZSgpKTsKLSAgICBSZWZQdHI8SW50
MTZBcnJheT4gYXJyYXkgPSBzdGF0aWNfY2FzdDxJbnQxNkFycmF5Kj4oY29uc3RydWN0QXJyYXlC
dWZmZXJWaWV3PEludDE2QXJyYXksIHNob3J0PihleGVjKS5nZXQoKSk7CisgICAgUmVmUHRyPElu
dDE2QXJyYXk+IGFycmF5ID0gY29uc3RydWN0QXJyYXlCdWZmZXJWaWV3PEludDE2QXJyYXksIHNo
b3J0PihleGVjKTsKICAgICBpZiAoIWFycmF5LmdldCgpKQogICAgICAgICAvLyBFeGNlcHRpb24g
aGFzIGFscmVhZHkgYmVlbiB0aHJvd24uCiAgICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUo
SlNWYWx1ZSgpKTsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvYmluZGluZ3MvanMvSlNJbnQzMkFycmF5
Q3VzdG9tLmNwcCBiL1dlYkNvcmUvYmluZGluZ3MvanMvSlNJbnQzMkFycmF5Q3VzdG9tLmNwcApp
bmRleCA1M2U2ZWM2Li41YWE2NGJiIDEwMDY0NAotLS0gYS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pT
SW50MzJBcnJheUN1c3RvbS5jcHAKKysrIGIvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0ludDMyQXJy
YXlDdXN0b20uY3BwCkBAIC0yNywxMCArMjcsMTAgQEAKIAogI2lmIEVOQUJMRSgzRF9DQU5WQVMp
IHx8IEVOQUJMRShCTE9CKQogCi0jaW5jbHVkZSAiSlNBcnJheUJ1ZmZlclZpZXdIZWxwZXIuaCIK
ICNpbmNsdWRlICJKU0ludDMyQXJyYXkuaCIKIAogI2luY2x1ZGUgIkludDMyQXJyYXkuaCIKKyNp
bmNsdWRlICJKU0FycmF5QnVmZmVyVmlld0hlbHBlci5oIgogCiB1c2luZyBuYW1lc3BhY2UgSlND
OwogCkBAIC01NCw3ICs1NCw3IEBAIEpTQzo6SlNWYWx1ZSBKU0ludDMyQXJyYXk6OnNldChKU0M6
OkV4ZWNTdGF0ZSogZXhlYykKIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgSlNJbnQzMkFy
cmF5Q29uc3RydWN0b3I6OmNvbnN0cnVjdEpTSW50MzJBcnJheShFeGVjU3RhdGUqIGV4ZWMpCiB7
CiAgICAgSlNJbnQzMkFycmF5Q29uc3RydWN0b3IqIGpzQ29uc3RydWN0b3IgPSBzdGF0aWNfY2Fz
dDxKU0ludDMyQXJyYXlDb25zdHJ1Y3Rvcio+KGV4ZWMtPmNhbGxlZSgpKTsKLSAgICBSZWZQdHI8
SW50MzJBcnJheT4gYXJyYXkgPSBzdGF0aWNfY2FzdDxJbnQzMkFycmF5Kj4oY29uc3RydWN0QXJy
YXlCdWZmZXJWaWV3PEludDMyQXJyYXksIGludD4oZXhlYykuZ2V0KCkpOworICAgIFJlZlB0cjxJ
bnQzMkFycmF5PiBhcnJheSA9IGNvbnN0cnVjdEFycmF5QnVmZmVyVmlldzxJbnQzMkFycmF5LCBp
bnQ+KGV4ZWMpOwogICAgIGlmICghYXJyYXkuZ2V0KCkpCiAgICAgICAgIC8vIEV4Y2VwdGlvbiBo
YXMgYWxyZWFkeSBiZWVuIHRocm93bi4KICAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShK
U1ZhbHVlKCkpOwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0ludDhBcnJheUN1
c3RvbS5jcHAgYi9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTSW50OEFycmF5Q3VzdG9tLmNwcAppbmRl
eCA3NTU2ZDZhLi5iNjNkZTU0IDEwMDY0NAotLS0gYS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTSW50
OEFycmF5Q3VzdG9tLmNwcAorKysgYi9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTSW50OEFycmF5Q3Vz
dG9tLmNwcApAQCAtMjcsMTAgKzI3LDEwIEBACiAKICNpZiBFTkFCTEUoM0RfQ0FOVkFTKSB8fCBF
TkFCTEUoQkxPQikKIAotI2luY2x1ZGUgIkpTQXJyYXlCdWZmZXJWaWV3SGVscGVyLmgiCiAjaW5j
bHVkZSAiSlNJbnQ4QXJyYXkuaCIKIAogI2luY2x1ZGUgIkludDhBcnJheS5oIgorI2luY2x1ZGUg
IkpTQXJyYXlCdWZmZXJWaWV3SGVscGVyLmgiCiAjaW5jbHVkZSA8cnVudGltZS9FcnJvci5oPgog
CiB1c2luZyBuYW1lc3BhY2UgSlNDOwpAQCAtNTUsNyArNTUsNyBAQCBKU0M6OkpTVmFsdWUgSlNJ
bnQ4QXJyYXk6OnNldChKU0M6OkV4ZWNTdGF0ZSogZXhlYykKIEVuY29kZWRKU1ZhbHVlIEpTQ19I
T1NUX0NBTEwgSlNJbnQ4QXJyYXlDb25zdHJ1Y3Rvcjo6Y29uc3RydWN0SlNJbnQ4QXJyYXkoRXhl
Y1N0YXRlKiBleGVjKQogewogICAgIEpTSW50OEFycmF5Q29uc3RydWN0b3IqIGpzQ29uc3RydWN0
b3IgPSBzdGF0aWNfY2FzdDxKU0ludDhBcnJheUNvbnN0cnVjdG9yKj4oZXhlYy0+Y2FsbGVlKCkp
OwotICAgIFJlZlB0cjxJbnQ4QXJyYXk+IGFycmF5ID0gc3RhdGljX2Nhc3Q8SW50OEFycmF5Kj4o
Y29uc3RydWN0QXJyYXlCdWZmZXJWaWV3PEludDhBcnJheSwgc2lnbmVkIGNoYXI+KGV4ZWMpLmdl
dCgpKTsKKyAgICBSZWZQdHI8SW50OEFycmF5PiBhcnJheSA9IGNvbnN0cnVjdEFycmF5QnVmZmVy
VmlldzxJbnQ4QXJyYXksIHNpZ25lZCBjaGFyPihleGVjKTsKICAgICBpZiAoIWFycmF5LmdldCgp
KQogICAgICAgICAvLyBFeGNlcHRpb24gaGFzIGFscmVhZHkgYmVlbiB0aHJvd24uCiAgICAgICAg
IHJldHVybiBKU1ZhbHVlOjplbmNvZGUoSlNWYWx1ZSgpKTsKZGlmZiAtLWdpdCBhL1dlYkNvcmUv
YmluZGluZ3MvanMvSlNVaW50MTZBcnJheUN1c3RvbS5jcHAgYi9XZWJDb3JlL2JpbmRpbmdzL2pz
L0pTVWludDE2QXJyYXlDdXN0b20uY3BwCmluZGV4IDlmMTJmYTcuLjZhMDI0ZWUgMTAwNjQ0Ci0t
LSBhL1dlYkNvcmUvYmluZGluZ3MvanMvSlNVaW50MTZBcnJheUN1c3RvbS5jcHAKKysrIGIvV2Vi
Q29yZS9iaW5kaW5ncy9qcy9KU1VpbnQxNkFycmF5Q3VzdG9tLmNwcApAQCAtMjcsOSArMjcsOSBA
QAogCiAjaWYgRU5BQkxFKDNEX0NBTlZBUykgfHwgRU5BQkxFKEJMT0IpCiAKLSNpbmNsdWRlICJK
U0FycmF5QnVmZmVyVmlld0hlbHBlci5oIgogI2luY2x1ZGUgIkpTVWludDE2QXJyYXkuaCIKIAor
I2luY2x1ZGUgIkpTQXJyYXlCdWZmZXJWaWV3SGVscGVyLmgiCiAjaW5jbHVkZSAiVWludDE2QXJy
YXkuaCIKIAogdXNpbmcgbmFtZXNwYWNlIEpTQzsKQEAgLTU0LDcgKzU0LDcgQEAgSlNDOjpKU1Zh
bHVlIEpTVWludDE2QXJyYXk6OnNldChKU0M6OkV4ZWNTdGF0ZSogZXhlYykKIEVuY29kZWRKU1Zh
bHVlIEpTQ19IT1NUX0NBTEwgSlNVaW50MTZBcnJheUNvbnN0cnVjdG9yOjpjb25zdHJ1Y3RKU1Vp
bnQxNkFycmF5KEV4ZWNTdGF0ZSogZXhlYykKIHsKICAgICBKU1VpbnQxNkFycmF5Q29uc3RydWN0
b3IqIGpzQ29uc3RydWN0b3IgPSBzdGF0aWNfY2FzdDxKU1VpbnQxNkFycmF5Q29uc3RydWN0b3Iq
PihleGVjLT5jYWxsZWUoKSk7Ci0gICAgUmVmUHRyPFVpbnQxNkFycmF5PiBhcnJheSA9IHN0YXRp
Y19jYXN0PFVpbnQxNkFycmF5Kj4oY29uc3RydWN0QXJyYXlCdWZmZXJWaWV3PFVpbnQxNkFycmF5
LCB1bnNpZ25lZCBzaG9ydD4oZXhlYykuZ2V0KCkpOworICAgIFJlZlB0cjxVaW50MTZBcnJheT4g
YXJyYXkgPSBjb25zdHJ1Y3RBcnJheUJ1ZmZlclZpZXc8VWludDE2QXJyYXksIHVuc2lnbmVkIHNo
b3J0PihleGVjKTsKICAgICBpZiAoIWFycmF5LmdldCgpKQogICAgICAgICAvLyBFeGNlcHRpb24g
aGFzIGFscmVhZHkgYmVlbiB0aHJvd24uCiAgICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUo
SlNWYWx1ZSgpKTsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvYmluZGluZ3MvanMvSlNVaW50MzJBcnJh
eUN1c3RvbS5jcHAgYi9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTVWludDMyQXJyYXlDdXN0b20uY3Bw
CmluZGV4IGM3NTc3ODYuLjM0ZWI4ZGUgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvYmluZGluZ3MvanMv
SlNVaW50MzJBcnJheUN1c3RvbS5jcHAKKysrIGIvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1VpbnQz
MkFycmF5Q3VzdG9tLmNwcApAQCAtMjcsOSArMjcsOSBAQAogCiAjaWYgRU5BQkxFKDNEX0NBTlZB
UykgfHwgRU5BQkxFKEJMT0IpCiAKLSNpbmNsdWRlICJKU0FycmF5QnVmZmVyVmlld0hlbHBlci5o
IgogI2luY2x1ZGUgIkpTVWludDMyQXJyYXkuaCIKIAorI2luY2x1ZGUgIkpTQXJyYXlCdWZmZXJW
aWV3SGVscGVyLmgiCiAjaW5jbHVkZSAiVWludDMyQXJyYXkuaCIKIAogdXNpbmcgbmFtZXNwYWNl
IEpTQzsKQEAgLTU0LDcgKzU0LDcgQEAgSlNDOjpKU1ZhbHVlIEpTVWludDMyQXJyYXk6OnNldChK
U0M6OkV4ZWNTdGF0ZSogZXhlYykKIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgSlNVaW50
MzJBcnJheUNvbnN0cnVjdG9yOjpjb25zdHJ1Y3RKU1VpbnQzMkFycmF5KEV4ZWNTdGF0ZSogZXhl
YykKIHsKICAgICBKU1VpbnQzMkFycmF5Q29uc3RydWN0b3IqIGpzQ29uc3RydWN0b3IgPSBzdGF0
aWNfY2FzdDxKU1VpbnQzMkFycmF5Q29uc3RydWN0b3IqPihleGVjLT5jYWxsZWUoKSk7Ci0gICAg
UmVmUHRyPFVpbnQzMkFycmF5PiBhcnJheSA9IHN0YXRpY19jYXN0PFVpbnQzMkFycmF5Kj4oY29u
c3RydWN0QXJyYXlCdWZmZXJWaWV3PFVpbnQzMkFycmF5LCB1bnNpZ25lZCBpbnQ+KGV4ZWMpLmdl
dCgpKTsKKyAgICBSZWZQdHI8VWludDMyQXJyYXk+IGFycmF5ID0gY29uc3RydWN0QXJyYXlCdWZm
ZXJWaWV3PFVpbnQzMkFycmF5LCB1bnNpZ25lZCBpbnQ+KGV4ZWMpOwogICAgIGlmICghYXJyYXku
Z2V0KCkpCiAgICAgICAgIC8vIEV4Y2VwdGlvbiBoYXMgYWxyZWFkeSBiZWVuIHRocm93bi4KICAg
ICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShKU1ZhbHVlKCkpOwpkaWZmIC0tZ2l0IGEvV2Vi
Q29yZS9iaW5kaW5ncy9qcy9KU1VpbnQ4QXJyYXlDdXN0b20uY3BwIGIvV2ViQ29yZS9iaW5kaW5n
cy9qcy9KU1VpbnQ4QXJyYXlDdXN0b20uY3BwCmluZGV4IGFkZjYwYTkuLmE5ZWQ3M2YgMTAwNjQ0
Ci0tLSBhL1dlYkNvcmUvYmluZGluZ3MvanMvSlNVaW50OEFycmF5Q3VzdG9tLmNwcAorKysgYi9X
ZWJDb3JlL2JpbmRpbmdzL2pzL0pTVWludDhBcnJheUN1c3RvbS5jcHAKQEAgLTI3LDkgKzI3LDkg
QEAKIAogI2lmIEVOQUJMRSgzRF9DQU5WQVMpIHx8IEVOQUJMRShCTE9CKQogCi0jaW5jbHVkZSAi
SlNBcnJheUJ1ZmZlclZpZXdIZWxwZXIuaCIKICNpbmNsdWRlICJKU1VpbnQ4QXJyYXkuaCIKIAor
I2luY2x1ZGUgIkpTQXJyYXlCdWZmZXJWaWV3SGVscGVyLmgiCiAjaW5jbHVkZSAiVWludDhBcnJh
eS5oIgogCiB1c2luZyBuYW1lc3BhY2UgSlNDOwpAQCAtNTQsNyArNTQsNyBAQCBKU0M6OkpTVmFs
dWUgSlNVaW50OEFycmF5OjpzZXQoSlNDOjpFeGVjU3RhdGUqIGV4ZWMpCiBFbmNvZGVkSlNWYWx1
ZSBKU0NfSE9TVF9DQUxMIEpTVWludDhBcnJheUNvbnN0cnVjdG9yOjpjb25zdHJ1Y3RKU1VpbnQ4
QXJyYXkoRXhlY1N0YXRlKiBleGVjKQogewogICAgIEpTVWludDhBcnJheUNvbnN0cnVjdG9yKiBq
c0NvbnN0cnVjdG9yID0gc3RhdGljX2Nhc3Q8SlNVaW50OEFycmF5Q29uc3RydWN0b3IqPihleGVj
LT5jYWxsZWUoKSk7Ci0gICAgUmVmUHRyPFVpbnQ4QXJyYXk+IGFycmF5ID0gc3RhdGljX2Nhc3Q8
VWludDhBcnJheSo+KGNvbnN0cnVjdEFycmF5QnVmZmVyVmlldzxVaW50OEFycmF5LCB1bnNpZ25l
ZCBjaGFyPihleGVjKS5nZXQoKSk7CisgICAgUmVmUHRyPFVpbnQ4QXJyYXk+IGFycmF5ID0gY29u
c3RydWN0QXJyYXlCdWZmZXJWaWV3PFVpbnQ4QXJyYXksIHVuc2lnbmVkIGNoYXI+KGV4ZWMpOwog
ICAgIGlmICghYXJyYXkuZ2V0KCkpCiAgICAgICAgIC8vIEV4Y2VwdGlvbiBoYXMgYWxyZWFkeSBi
ZWVuIHRocm93bi4KICAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShKU1ZhbHVlKCkpOwpk
aWZmIC0tZ2l0IGEvV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhBcnJheUJ1ZmZlclZpZXdD
dXN0b20uaCBiL1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4QXJyYXlCdWZmZXJWaWV3Q3Vz
dG9tLmgKaW5kZXggMjU2NmI2Ny4uMTgyMTc0OSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9iaW5kaW5n
cy92OC9jdXN0b20vVjhBcnJheUJ1ZmZlclZpZXdDdXN0b20uaAorKysgYi9XZWJDb3JlL2JpbmRp
bmdzL3Y4L2N1c3RvbS9WOEFycmF5QnVmZmVyVmlld0N1c3RvbS5oCkBAIC0yOCwyNyArMjgsNjMg
QEAKICAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuCiAgKi8KIAotI2luY2x1ZGUgImNvbmZpZy5oIgorI2lmbmRlZiBW
OEFycmF5QnVmZmVyVmlld0N1c3RvbV9oCisjZGVmaW5lIFY4QXJyYXlCdWZmZXJWaWV3Q3VzdG9t
X2gKIAogI2lmIEVOQUJMRSgzRF9DQU5WQVMpIHx8IEVOQUJMRShCTE9CKQogCiAjaW5jbHVkZSAi
QXJyYXlCdWZmZXIuaCIKIAotI2luY2x1ZGUgIlY4QmluZGluZy5oIgogI2luY2x1ZGUgIlY4QXJy
YXlCdWZmZXIuaCIKKyNpbmNsdWRlICJWOEJpbmRpbmcuaCIKICNpbmNsdWRlICJWOFByb3h5Lmgi
CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogLy8gVGVtcGxhdGUgZnVuY3Rpb24gdXNlZCBieSB0
aGUgQXJyYXlCdWZmZXJWaWV3KkNvbnN0cnVjdG9yIGNhbGxiYWNrcy4KIHRlbXBsYXRlPGNsYXNz
IEFycmF5Q2xhc3MsIGNsYXNzIEVsZW1lbnRUeXBlPgordjg6OkhhbmRsZTx2ODo6VmFsdWU+IGNv
bnN0cnVjdFdlYkdMQXJyYXlXaXRoQXJyYXlCdWZmZXJBcmd1bWVudChjb25zdCB2ODo6QXJndW1l
bnRzJiBhcmdzLCBXcmFwcGVyVHlwZUluZm8qIHR5cGUsIHY4OjpFeHRlcm5hbEFycmF5VHlwZSBh
cnJheVR5cGUpCit7CisgICAgQXJyYXlCdWZmZXIqIGJ1ZiA9IFY4QXJyYXlCdWZmZXI6OnRvTmF0
aXZlKGFyZ3NbMF0tPlRvT2JqZWN0KCkpOworICAgIGlmICghYnVmKQorICAgICAgICByZXR1cm4g
dGhyb3dFcnJvcigiQ291bGQgbm90IGNvbnZlcnQgYXJndW1lbnQgMCB0byBhIEFycmF5QnVmZmVy
Iik7CisgICAgYm9vbCBvazsKKyAgICB1aW50MzJfdCBvZmZzZXQgPSAwOworICAgIGludCBhcmdM
ZW4gPSBhcmdzLkxlbmd0aCgpOworICAgIGlmIChhcmdMZW4gPiAxKSB7CisgICAgICAgIG9mZnNl
dCA9IHRvVUludDMyKGFyZ3NbMV0sIG9rKTsKKyAgICAgICAgaWYgKCFvaykKKyAgICAgICAgICAg
IHJldHVybiB0aHJvd0Vycm9yKCJDb3VsZCBub3QgY29udmVydCBhcmd1bWVudCAxIHRvIGEgbnVt
YmVyIik7CisgICAgfQorICAgIGlmICgoYnVmLT5ieXRlTGVuZ3RoKCkgLSBvZmZzZXQpICUgc2l6
ZW9mKEVsZW1lbnRUeXBlKSkKKyAgICAgICAgcmV0dXJuIHRocm93RXJyb3IoIkFycmF5QnVmZmVy
IGxlbmd0aCBtaW51cyB0aGUgYnl0ZU9mZnNldCBpcyBub3QgYSBtdWx0aXBsZSBvZiB0aGUgZWxl
bWVudCBzaXplLiIsIFY4UHJveHk6OlJhbmdlRXJyb3IpOworICAgIHVpbnQzMl90IGxlbmd0aCA9
IChidWYtPmJ5dGVMZW5ndGgoKSAtIG9mZnNldCkgLyBzaXplb2YoRWxlbWVudFR5cGUpOworICAg
IGlmIChhcmdMZW4gPiAyKSB7CisgICAgICAgIGxlbmd0aCA9IHRvVUludDMyKGFyZ3NbMl0sIG9r
KTsKKyAgICAgICAgaWYgKCFvaykKKyAgICAgICAgICAgIHJldHVybiB0aHJvd0Vycm9yKCJDb3Vs
ZCBub3QgY29udmVydCBhcmd1bWVudCAyIHRvIGEgbnVtYmVyIik7CisgICAgfQorCisgICAgUmVm
UHRyPEFycmF5Q2xhc3M+IGFycmF5ID0gQXJyYXlDbGFzczo6Y3JlYXRlKGJ1Ziwgb2Zmc2V0LCBs
ZW5ndGgpOworICAgIGlmICghYXJyYXkpIHsKKyAgICAgICAgVjhQcm94eTo6c2V0RE9NRXhjZXB0
aW9uKElOREVYX1NJWkVfRVJSKTsKKyAgICAgICAgcmV0dXJuIG5vdEhhbmRsZWRCeUludGVyY2Vw
dG9yKCk7CisgICAgfQorICAgIC8vIFRyYW5zZm9ybSB0aGUgaG9sZGVyIGludG8gYSB3cmFwcGVy
IG9iamVjdCBmb3IgdGhlIGFycmF5LgorICAgIFY4RE9NV3JhcHBlcjo6c2V0RE9NV3JhcHBlcihh
cmdzLkhvbGRlcigpLCB0eXBlLCBhcnJheS5nZXQoKSk7CisgICAgYXJncy5Ib2xkZXIoKS0+U2V0
SW5kZXhlZFByb3BlcnRpZXNUb0V4dGVybmFsQXJyYXlEYXRhKGFycmF5LmdldCgpLT5iYXNlQWRk
cmVzcygpLCBhcnJheVR5cGUsIGFycmF5LmdldCgpLT5sZW5ndGgoKSk7CisgICAgcmV0dXJuIHRv
VjgoYXJyYXkucmVsZWFzZSgpLCBhcmdzLkhvbGRlcigpKTsKK30KKworLy8gVGVtcGxhdGUgZnVu
Y3Rpb24gdXNlZCBieSB0aGUgQXJyYXlCdWZmZXJWaWV3KkNvbnN0cnVjdG9yIGNhbGxiYWNrcy4K
K3RlbXBsYXRlPGNsYXNzIEFycmF5Q2xhc3MsIGNsYXNzIEVsZW1lbnRUeXBlPgogdjg6OkhhbmRs
ZTx2ODo6VmFsdWU+IGNvbnN0cnVjdFdlYkdMQXJyYXkoY29uc3Qgdjg6OkFyZ3VtZW50cyYgYXJn
cywgV3JhcHBlclR5cGVJbmZvKiB0eXBlLCB2ODo6RXh0ZXJuYWxBcnJheVR5cGUgYXJyYXlUeXBl
KQogewogICAgIGlmICghYXJncy5Jc0NvbnN0cnVjdENhbGwoKSkKICAgICAgICAgcmV0dXJuIHRo
cm93RXJyb3IoIkRPTSBvYmplY3QgY29uc3RydWN0b3IgY2Fubm90IGJlIGNhbGxlZCBhcyBhIGZ1
bmN0aW9uLiIpOwogCiAgICAgaW50IGFyZ0xlbiA9IGFyZ3MuTGVuZ3RoKCk7Ci0gICAgaWYgKGFy
Z0xlbiA9PSAwKSB7CisgICAgaWYgKCFhcmdMZW4pIHsKICAgICAgICAgLy8gVGhpcyBoYXBwZW5z
IHdoZW4gd2UgcmV0dXJuIGEgcHJldmlvdXNseSBjb25zdHJ1Y3RlZAogICAgICAgICAvLyBBcnJh
eUJ1ZmZlclZpZXcsIGUuZy4gZnJvbSB0aGUgY2FsbCB0byA8VHlwZT5BcnJheS5zbGljZSgpLgog
ICAgICAgICAvLyBUaGUgVjhET01XcmFwcGVyIHdpbGwgc2V0IHRoZSBpbnRlcm5hbCBwb2ludGVy
IGluIHRoZQpAQCAtODMsMzYgKzExOSw4IEBAIHY4OjpIYW5kbGU8djg6OlZhbHVlPiBjb25zdHJ1
Y3RXZWJHTEFycmF5KGNvbnN0IHY4OjpBcmd1bWVudHMmIGFyZ3MsIFdyYXBwZXJUeXBlCiAgICAg
fQogCiAgICAgLy8gU2VlIHdoZXRoZXIgdGhlIGZpcnN0IGFyZ3VtZW50IGlzIGEgQXJyYXlCdWZm
ZXIuCi0gICAgaWYgKFY4QXJyYXlCdWZmZXI6Okhhc0luc3RhbmNlKGFyZ3NbMF0pKSB7Ci0gICAg
ICAgIEFycmF5QnVmZmVyKiBidWYgPSBWOEFycmF5QnVmZmVyOjp0b05hdGl2ZShhcmdzWzBdLT5U
b09iamVjdCgpKTsKLSAgICAgICAgaWYgKCFidWYpCi0gICAgICAgICAgICByZXR1cm4gdGhyb3dF
cnJvcigiQ291bGQgbm90IGNvbnZlcnQgYXJndW1lbnQgMCB0byBhIEFycmF5QnVmZmVyIik7Ci0g
ICAgICAgIGJvb2wgb2s7Ci0gICAgICAgIHVpbnQzMl90IG9mZnNldCA9IDA7Ci0gICAgICAgIGlm
IChhcmdMZW4gPiAxKSB7Ci0gICAgICAgICAgICBvZmZzZXQgPSB0b1VJbnQzMihhcmdzWzFdLCBv
ayk7Ci0gICAgICAgICAgICBpZiAoIW9rKQotICAgICAgICAgICAgICAgIHJldHVybiB0aHJvd0Vy
cm9yKCJDb3VsZCBub3QgY29udmVydCBhcmd1bWVudCAxIHRvIGEgbnVtYmVyIik7Ci0gICAgICAg
IH0KLSAgICAgICAgaWYgKChidWYtPmJ5dGVMZW5ndGgoKSAtIG9mZnNldCkgJSBzaXplb2YoRWxl
bWVudFR5cGUpKQotICAgICAgICAgICAgcmV0dXJuIHRocm93RXJyb3IoIkFycmF5QnVmZmVyIGxl
bmd0aCBtaW51cyB0aGUgYnl0ZU9mZnNldCBpcyBub3QgYSBtdWx0aXBsZSBvZiB0aGUgZWxlbWVu
dCBzaXplLiIsIFY4UHJveHk6OlJhbmdlRXJyb3IpOwotICAgICAgICB1aW50MzJfdCBsZW5ndGgg
PSAoYnVmLT5ieXRlTGVuZ3RoKCkgLSBvZmZzZXQpIC8gc2l6ZW9mKEVsZW1lbnRUeXBlKTsKLSAg
ICAgICAgaWYgKGFyZ0xlbiA+IDIpIHsKLSAgICAgICAgICAgIGxlbmd0aCA9IHRvVUludDMyKGFy
Z3NbMl0sIG9rKTsKLSAgICAgICAgICAgIGlmICghb2spCi0gICAgICAgICAgICAgICAgcmV0dXJu
IHRocm93RXJyb3IoIkNvdWxkIG5vdCBjb252ZXJ0IGFyZ3VtZW50IDIgdG8gYSBudW1iZXIiKTsK
LSAgICAgICAgfQotCi0gICAgICAgIFJlZlB0cjxBcnJheUNsYXNzPiBhcnJheSA9IEFycmF5Q2xh
c3M6OmNyZWF0ZShidWYsIG9mZnNldCwgbGVuZ3RoKTsKLSAgICAgICAgaWYgKCFhcnJheSkgewot
ICAgICAgICAgICAgVjhQcm94eTo6c2V0RE9NRXhjZXB0aW9uKElOREVYX1NJWkVfRVJSKTsKLSAg
ICAgICAgICAgIHJldHVybiBub3RIYW5kbGVkQnlJbnRlcmNlcHRvcigpOwotICAgICAgICB9Ci0g
ICAgICAgIC8vIFRyYW5zZm9ybSB0aGUgaG9sZGVyIGludG8gYSB3cmFwcGVyIG9iamVjdCBmb3Ig
dGhlIGFycmF5LgotICAgICAgICBWOERPTVdyYXBwZXI6OnNldERPTVdyYXBwZXIoYXJncy5Ib2xk
ZXIoKSwgdHlwZSwgYXJyYXkuZ2V0KCkpOwotICAgICAgICBhcmdzLkhvbGRlcigpLT5TZXRJbmRl
eGVkUHJvcGVydGllc1RvRXh0ZXJuYWxBcnJheURhdGEoYXJyYXkuZ2V0KCktPmJhc2VBZGRyZXNz
KCksIGFycmF5VHlwZSwgYXJyYXkuZ2V0KCktPmxlbmd0aCgpKTsKLSAgICAgICAgcmV0dXJuIHRv
VjgoYXJyYXkucmVsZWFzZSgpLCBhcmdzLkhvbGRlcigpKTsKLSAgICB9CisgICAgaWYgKFY4QXJy
YXlCdWZmZXI6Okhhc0luc3RhbmNlKGFyZ3NbMF0pKQorICAgICAgcmV0dXJuIGNvbnN0cnVjdFdl
YkdMQXJyYXlXaXRoQXJyYXlCdWZmZXJBcmd1bWVudDxBcnJheUNsYXNzLCBFbGVtZW50VHlwZT4o
YXJncywgdHlwZSwgYXJyYXlUeXBlKTsKIAogICAgIHVpbnQzMl90IGxlbiA9IDA7CiAgICAgdjg6
OkhhbmRsZTx2ODo6T2JqZWN0PiBzcmNBcnJheTsKQEAgLTIwMSwzICsyMDksNSBAQCB2ODo6SGFu
ZGxlPHY4OjpWYWx1ZT4gc2V0V2ViR0xBcnJheUhlbHBlcihjb25zdCB2ODo6QXJndW1lbnRzJiBh
cmdzKQogfQogCiAjZW5kaWYgLy8gRU5BQkxFKDNEX0NBTlZBUykKKworI2VuZGlmIC8vIFY4QXJy
YXlCdWZmZXJWaWV3Q3VzdG9tX2gKZGlmZiAtLWdpdCBhL1dlYkNvcmUvYmluZGluZ3MvdjgvY3Vz
dG9tL1Y4RGF0YVZpZXdDdXN0b20uY3BwIGIvV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhE
YXRhVmlld0N1c3RvbS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uMDI3
MzhmMwotLS0gL2Rldi9udWxsCisrKyBiL1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4RGF0
YVZpZXdDdXN0b20uY3BwCkBAIC0wLDAgKzEsMTYwIEBACisvKgorICogQ29weXJpZ2h0IChDKSAy
MDEwIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Cisg
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMgYXJlCisgKiBtZXQ6CisgKgorICogICAgICogUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAq
ICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUKKyAqIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKKyAqIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKKyAqIGRpc3RyaWJ1dGlvbi4KKyAqICAg
ICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMK
KyAqIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVj
dHMgZGVyaXZlZCBmcm9tCisgKiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Ig
d3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
VEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKKyAqICJBUyBJUyIgQU5EIEFO
WSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisgKiBM
SU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IKKyAqIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBO
TyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCisgKiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUg
TElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKyAqIFNQRUNJQUws
IEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QK
KyAqIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7IExPU1MgT0YgVVNFLAorICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisgKiBUSEVPUlkgT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorCisj
aWYgRU5BQkxFKDNEX0NBTlZBUykgfHwgRU5BQkxFKEJMT0IpCisKKyNpbmNsdWRlICJEYXRhVmll
dy5oIgorCisjaW5jbHVkZSAiVjhBcnJheUJ1ZmZlclZpZXdDdXN0b20uaCIKKyNpbmNsdWRlICJW
OEJpbmRpbmcuaCIKKyNpbmNsdWRlICJWOEJpbmRpbmdNYWNyb3MuaCIKKyNpbmNsdWRlICJWOERh
dGFWaWV3LmgiCisjaW5jbHVkZSAiVjhQcm94eS5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisK
K3Y4OjpIYW5kbGU8djg6OlZhbHVlPiBWOERhdGFWaWV3Ojpjb25zdHJ1Y3RvckNhbGxiYWNrKGNv
bnN0IHY4OjpBcmd1bWVudHMmIGFyZ3MpCit7CisgICAgSU5DX1NUQVRTKCJET00uQXJyYXlCdWZm
ZXIuQ29uc3RydWN0b3IiKTsKKworICAgIGlmIChhcmdzWzBdLT5Jc051bGwoKSB8fCAhVjhBcnJh
eUJ1ZmZlcjo6SGFzSW5zdGFuY2UoYXJnc1swXSkpCisgICAgICAgIHJldHVybiBWOFByb3h5Ojp0
aHJvd1R5cGVFcnJvcigpOworICAgIHJldHVybiBjb25zdHJ1Y3RXZWJHTEFycmF5V2l0aEFycmF5
QnVmZmVyQXJndW1lbnQ8RGF0YVZpZXcsIGNoYXI+KGFyZ3MsICZpbmZvLCB2ODo6a0V4dGVybmFs
Qnl0ZUFycmF5KTsKK30KKwordjg6OkhhbmRsZTx2ODo6VmFsdWU+IHRvVjgoRGF0YVZpZXcqIGlt
cGwpCit7CisgICAgaWYgKCFpbXBsKQorICAgICAgICByZXR1cm4gdjg6Ok51bGwoKTsKKyAgICB2
ODo6SGFuZGxlPHY4OjpPYmplY3Q+IHdyYXBwZXIgPSBWOERhdGFWaWV3Ojp3cmFwKGltcGwpOwor
ICAgIGlmICghd3JhcHBlci5Jc0VtcHR5KCkpCisgICAgICAgIHdyYXBwZXItPlNldEluZGV4ZWRQ
cm9wZXJ0aWVzVG9FeHRlcm5hbEFycmF5RGF0YShpbXBsLT5iYXNlQWRkcmVzcygpLCB2ODo6a0V4
dGVybmFsQnl0ZUFycmF5LCBpbXBsLT5sZW5ndGgoKSk7CisgICAgcmV0dXJuIHdyYXBwZXI7Cit9
CisKK3Y4OjpIYW5kbGU8djg6OlZhbHVlPiBWOERhdGFWaWV3OjpnZXRJbnQ4Q2FsbGJhY2soY29u
c3Qgdjg6OkFyZ3VtZW50cyYgYXJncykKK3sKKyAgICBJTkNfU1RBVFMoIkRPTS5EYXRhVmlldy5n
ZXRJbnQ4Iik7CisgICAgaWYgKGFyZ3MuTGVuZ3RoKCkgPCAxKQorICAgICAgICByZXR1cm4gdGhy
b3dFcnJvcigiTm90IGVub3VnaCBhcmd1bWVudHMiLCBWOFByb3h5OjpTeW50YXhFcnJvcik7Cisg
ICAgaWYgKCFpc1VuZGVmaW5lZE9yTnVsbChhcmdzWzBdKSAmJiAhYXJnc1swXS0+SXNOdW1iZXIo
KSAmJiAhYXJnc1swXS0+SXNCb29sZWFuKCkpIHsKKyAgICAgICAgVjhQcm94eTo6dGhyb3dUeXBl
RXJyb3IoKTsKKyAgICAgICAgcmV0dXJuIG5vdEhhbmRsZWRCeUludGVyY2VwdG9yKCk7CisgICAg
fQorCisgICAgRGF0YVZpZXcqIGltcCA9IFY4RGF0YVZpZXc6OnRvTmF0aXZlKGFyZ3MuSG9sZGVy
KCkpOworICAgIEV4Y2VwdGlvbkNvZGUgZWMgPSAwOworICAgIEVYQ0VQVElPTl9CTE9DSyh1bnNp
Z25lZCwgYnl0ZU9mZnNldCwgdG9VSW50MzIoYXJnc1swXSkpOworICAgIGNoYXIgcmVzdWx0ID0g
aW1wLT5nZXRJbnQ4KGJ5dGVPZmZzZXQsIGVjKTsKKyAgICBpZiAoVU5MSUtFTFkoZWMpKSB7Cisg
ICAgICAgIFY4UHJveHk6OnNldERPTUV4Y2VwdGlvbihlYyk7CisgICAgICAgIHJldHVybiB2ODo6
SGFuZGxlPHY4OjpWYWx1ZT4oKTsKKyAgICB9CisgICAgcmV0dXJuIHY4OjpJbnRlZ2VyOjpOZXco
cmVzdWx0KTsKK30KKwordjg6OkhhbmRsZTx2ODo6VmFsdWU+IFY4RGF0YVZpZXc6OmdldFVpbnQ4
Q2FsbGJhY2soY29uc3Qgdjg6OkFyZ3VtZW50cyYgYXJncykKK3sKKyAgICBJTkNfU1RBVFMoIkRP
TS5EYXRhVmlldy5nZXRVaW50OCIpOworICAgIGlmIChhcmdzLkxlbmd0aCgpIDwgMSkKKyAgICAg
ICAgcmV0dXJuIHRocm93RXJyb3IoIk5vdCBlbm91Z2ggYXJndW1lbnRzIiwgVjhQcm94eTo6U3lu
dGF4RXJyb3IpOworICAgIGlmICghaXNVbmRlZmluZWRPck51bGwoYXJnc1swXSkgJiYgIWFyZ3Nb
MF0tPklzTnVtYmVyKCkgJiYgIWFyZ3NbMF0tPklzQm9vbGVhbigpKSB7CisgICAgICAgIFY4UHJv
eHk6OnRocm93VHlwZUVycm9yKCk7CisgICAgICAgIHJldHVybiBub3RIYW5kbGVkQnlJbnRlcmNl
cHRvcigpOworICAgIH0KKworICAgIERhdGFWaWV3KiBpbXAgPSBWOERhdGFWaWV3Ojp0b05hdGl2
ZShhcmdzLkhvbGRlcigpKTsKKyAgICBFeGNlcHRpb25Db2RlIGVjID0gMDsKKyAgICBFWENFUFRJ
T05fQkxPQ0sodW5zaWduZWQsIGJ5dGVPZmZzZXQsIHRvVUludDMyKGFyZ3NbMF0pKTsKKyAgICB1
bnNpZ25lZCBjaGFyIHJlc3VsdCA9IGltcC0+Z2V0VWludDgoYnl0ZU9mZnNldCwgZWMpOworICAg
IGlmIChVTkxJS0VMWShlYykpIHsKKyAgICAgICAgVjhQcm94eTo6c2V0RE9NRXhjZXB0aW9uKGVj
KTsKKyAgICAgICAgcmV0dXJuIHY4OjpIYW5kbGU8djg6OlZhbHVlPigpOworICAgIH0KKyAgICBy
ZXR1cm4gdjg6OkludGVnZXI6Ok5ldyhyZXN1bHQpOworfQorCit2ODo6SGFuZGxlPHY4OjpWYWx1
ZT4gVjhEYXRhVmlldzo6c2V0SW50OENhbGxiYWNrKGNvbnN0IHY4OjpBcmd1bWVudHMmIGFyZ3Mp
Cit7CisgICAgSU5DX1NUQVRTKCJET00uRGF0YVZpZXcuc2V0SW50OCIpOworICAgIGlmIChhcmdz
Lkxlbmd0aCgpIDwgMikKKyAgICAgICAgcmV0dXJuIHRocm93RXJyb3IoIk5vdCBlbm91Z2ggYXJn
dW1lbnRzIiwgVjhQcm94eTo6U3ludGF4RXJyb3IpOworICAgIGlmICghaXNVbmRlZmluZWRPck51
bGwoYXJnc1swXSkgJiYgIWFyZ3NbMF0tPklzTnVtYmVyKCkgJiYgIWFyZ3NbMF0tPklzQm9vbGVh
bigpKSB7CisgICAgICAgIFY4UHJveHk6OnRocm93VHlwZUVycm9yKCk7CisgICAgICAgIHJldHVy
biBub3RIYW5kbGVkQnlJbnRlcmNlcHRvcigpOworICAgIH0KKyAgICBpZiAoIWlzVW5kZWZpbmVk
T3JOdWxsKGFyZ3NbMV0pICYmICFhcmdzWzFdLT5Jc051bWJlcigpICYmICFhcmdzWzFdLT5Jc0Jv
b2xlYW4oKSkgeworICAgICAgICBWOFByb3h5Ojp0aHJvd1R5cGVFcnJvcigpOworICAgICAgICBy
ZXR1cm4gbm90SGFuZGxlZEJ5SW50ZXJjZXB0b3IoKTsKKyAgICB9CisKKyAgICBEYXRhVmlldyog
aW1wID0gVjhEYXRhVmlldzo6dG9OYXRpdmUoYXJncy5Ib2xkZXIoKSk7CisgICAgRXhjZXB0aW9u
Q29kZSBlYyA9IDA7CisgICAgRVhDRVBUSU9OX0JMT0NLKHVuc2lnbmVkLCBieXRlT2Zmc2V0LCB0
b1VJbnQzMihhcmdzWzBdKSk7CisgICAgRVhDRVBUSU9OX0JMT0NLKGludCwgdmFsdWUsIHRvSW50
MzIoYXJnc1sxXSkpOworICAgIGlmICh2YWx1ZSA8IC0xMjggfHwgdmFsdWUgPiAxMjcpCisgICAg
ICAgIHJldHVybiB0aHJvd0Vycm9yKCJUaGUgdmFsdWUgdG8gc2V0IHRvIGlzIG91dCBvZiByYW5n
ZSIsIFY4UHJveHk6OlN5bnRheEVycm9yKTsKKyAgICBpbXAtPnNldEludDgoYnl0ZU9mZnNldCwg
c3RhdGljX2Nhc3Q8Y2hhcj4odmFsdWUpLCBlYyk7CisgICAgaWYgKFVOTElLRUxZKGVjKSkKKyAg
ICAgICAgVjhQcm94eTo6c2V0RE9NRXhjZXB0aW9uKGVjKTsKKyAgICByZXR1cm4gdjg6OkhhbmRs
ZTx2ODo6VmFsdWU+KCk7Cit9CisKK3Y4OjpIYW5kbGU8djg6OlZhbHVlPiBWOERhdGFWaWV3Ojpz
ZXRVaW50OENhbGxiYWNrKGNvbnN0IHY4OjpBcmd1bWVudHMmIGFyZ3MpCit7CisgICAgSU5DX1NU
QVRTKCJET00uRGF0YVZpZXcuc2V0VWludDgiKTsKKyAgICBpZiAoYXJncy5MZW5ndGgoKSA8IDIp
CisgICAgICAgIHJldHVybiB0aHJvd0Vycm9yKCJOb3QgZW5vdWdoIGFyZ3VtZW50cyIsIFY4UHJv
eHk6OlN5bnRheEVycm9yKTsKKyAgICBpZiAoIWlzVW5kZWZpbmVkT3JOdWxsKGFyZ3NbMF0pICYm
ICFhcmdzWzBdLT5Jc051bWJlcigpICYmICFhcmdzWzBdLT5Jc0Jvb2xlYW4oKSkgeworICAgICAg
ICBWOFByb3h5Ojp0aHJvd1R5cGVFcnJvcigpOworICAgICAgICByZXR1cm4gbm90SGFuZGxlZEJ5
SW50ZXJjZXB0b3IoKTsKKyAgICB9CisgICAgaWYgKCFpc1VuZGVmaW5lZE9yTnVsbChhcmdzWzFd
KSAmJiAhYXJnc1sxXS0+SXNOdW1iZXIoKSAmJiAhYXJnc1sxXS0+SXNCb29sZWFuKCkpIHsKKyAg
ICAgICAgVjhQcm94eTo6dGhyb3dUeXBlRXJyb3IoKTsKKyAgICAgICAgcmV0dXJuIG5vdEhhbmRs
ZWRCeUludGVyY2VwdG9yKCk7CisgICAgfQorCisgICAgRGF0YVZpZXcqIGltcCA9IFY4RGF0YVZp
ZXc6OnRvTmF0aXZlKGFyZ3MuSG9sZGVyKCkpOworICAgIEV4Y2VwdGlvbkNvZGUgZWMgPSAwOwor
ICAgIEVYQ0VQVElPTl9CTE9DSyh1bnNpZ25lZCwgYnl0ZU9mZnNldCwgdG9VSW50MzIoYXJnc1sw
XSkpOworICAgIEVYQ0VQVElPTl9CTE9DSyhpbnQsIHZhbHVlLCB0b0ludDMyKGFyZ3NbMV0pKTsK
KyAgICBpZiAodmFsdWUgPCAwIHx8IHZhbHVlID4gMjU1KQorICAgICAgICByZXR1cm4gdGhyb3dF
cnJvcigiVGhlIHZhbHVlIHRvIHNldCB0byBpcyBvdXQgb2YgcmFuZ2UiLCBWOFByb3h5OjpTeW50
YXhFcnJvcik7CisgICAgaW1wLT5zZXRVaW50OChieXRlT2Zmc2V0LCBzdGF0aWNfY2FzdDx1bnNp
Z25lZCBjaGFyPih2YWx1ZSksIGVjKTsKKyAgICBpZiAoVU5MSUtFTFkoZWMpKQorICAgICAgICBW
OFByb3h5OjpzZXRET01FeGNlcHRpb24oZWMpOworICAgIHJldHVybiB2ODo6SGFuZGxlPHY4OjpW
YWx1ZT4oKTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gRU5BQkxF
KDNEX0NBTlZBUykgfHwgRU5BQkxFKEJMT0IpCmRpZmYgLS1naXQgYS9XZWJDb3JlL2h0bWwvY2Fu
dmFzL0FycmF5QnVmZmVyVmlldy5oIGIvV2ViQ29yZS9odG1sL2NhbnZhcy9BcnJheUJ1ZmZlclZp
ZXcuaAppbmRleCBkMzdiYWRhLi43MDFhYmJjIDEwMDY0NAotLS0gYS9XZWJDb3JlL2h0bWwvY2Fu
dmFzL0FycmF5QnVmZmVyVmlldy5oCisrKyBiL1dlYkNvcmUvaHRtbC9jYW52YXMvQXJyYXlCdWZm
ZXJWaWV3LmgKQEAgLTQ2LDYgKzQ2LDcgQEAgY2xhc3MgQXJyYXlCdWZmZXJWaWV3IDogcHVibGlj
IFJlZkNvdW50ZWQ8QXJyYXlCdWZmZXJWaWV3PiB7CiAgICAgdmlydHVhbCBib29sIGlzSW50QXJy
YXkoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQogICAgIHZpcnR1YWwgYm9vbCBpc1Vuc2lnbmVk
SW50QXJyYXkoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQogICAgIHZpcnR1YWwgYm9vbCBpc0Zs
b2F0QXJyYXkoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQorICAgIHZpcnR1YWwgYm9vbCBpc0Rh
dGFWaWV3KCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KIAogICAgIFBhc3NSZWZQdHI8QXJyYXlC
dWZmZXI+IGJ1ZmZlcigpIGNvbnN0CiAgICAgewpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9odG1sL2Nh
bnZhcy9EYXRhVmlldy5jcHAgYi9XZWJDb3JlL2h0bWwvY2FudmFzL0RhdGFWaWV3LmNwcApuZXcg
ZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi41NDEwNjk0Ci0tLSAvZGV2L251bGwKKysr
IGIvV2ViQ29yZS9odG1sL2NhbnZhcy9EYXRhVmlldy5jcHAKQEAgLTAsMCArMSwxNzIgQEAKKy8q
CisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgR29vZ2xlIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCisgKiBtZXQ6CisgKgorICogICAg
ICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKKyAqIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKKyAqIGluIHRoZSBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKKyAq
IGRpc3RyaWJ1dGlvbi4KKyAqICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4g
bm9yIHRoZSBuYW1lcyBvZiBpdHMKKyAqIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRv
cnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCisgKiB0aGlzIHNvZnR3YXJlIHdp
dGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRP
UlMKKyAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKKyAqIEEgUEFSVElDVUxBUiBQVVJQT1NF
IEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCisgKiBPV05F
UiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwKKyAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAorICogREFUQSwgT1IgUFJPRklU
UzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisg
KiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lu
Y2x1ZGUgImNvbmZpZy5oIgorCisjaWYgRU5BQkxFKDNEX0NBTlZBUykgfHwgRU5BQkxFKEJMT0Ip
CisKKyNpbmNsdWRlICJEYXRhVmlldy5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK0RhdGFW
aWV3OjpEYXRhVmlldyhQYXNzUmVmUHRyPEFycmF5QnVmZmVyPiBidWZmZXIsIHVuc2lnbmVkIGJ5
dGVPZmZzZXQsIHVuc2lnbmVkIGJ5dGVMZW5ndGgpCisgICAgOiBBcnJheUJ1ZmZlclZpZXcoYnVm
ZmVyLCBieXRlT2Zmc2V0KQorICAgICwgbV9ieXRlTGVuZ3RoKGJ5dGVMZW5ndGgpCit7Cit9CisK
K3N0YXRpYyB2b2lkIGZsaXBCeXRlc1RvTWVldEVuZGlhblJlcXVpcmVtZW50KHZvaWQqIHZhbHVl
LCBzaXplX3QgdHlwZVNpemUsIGJvb2wgbGl0dGxlRW5kaWFuKQoreworI2lmIENQVShCSUdfRU5E
SUFOKQorICAgIGJvb2wgZmxpcEJ5dGVzID0gbGl0dGxlRW5kaWFuOworI2Vsc2UKKyAgICBib29s
IGZsaXBCeXRlcyA9ICFsaXR0bGVFbmRpYW47CisjZW5kaWYKKworICAgIGlmICghZmxpcEJ5dGVz
KSAKKyAgICAgICAgcmV0dXJuOworCisgICAgY2hhciogYmVnaW4gPSBzdGF0aWNfY2FzdDxjaGFy
Kj4odmFsdWUpOworICAgIGNoYXIqIGVuZCA9IHN0YXRpY19jYXN0PGNoYXIqPih2YWx1ZSkgKyB0
eXBlU2l6ZSAtIDE7CisgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCB0eXBlU2l6ZSAvIDI7ICsr
aSwgKytiZWdpbiwgLS1lbmQpIHsKKyAgICAgICAgY2hhciB0ZW1wID0gKmJlZ2luOworICAgICAg
ICAqYmVnaW4gPSAqZW5kOworICAgICAgICAqZW5kID0gdGVtcDsKKyAgICB9Cit9CisKK3RlbXBs
YXRlPHR5cGVuYW1lIFQ+CitUIERhdGFWaWV3OjpnZXREYXRhKHVuc2lnbmVkIGJ5dGVPZmZzZXQs
IGJvb2wgbGl0dGxlRW5kaWFuLCBFeGNlcHRpb25Db2RlJiBlYykgY29uc3QKK3sKKyAgICBpZiAo
YmV5b25kUmFuZ2U8VD4oYnl0ZU9mZnNldCkpIHsKKyAgICAgICAgZWMgPSBJTkRFWF9TSVpFX0VS
UjsKKyAgICAgICAgcmV0dXJuIDA7CisgICAgfQorICAgIFQgdmFsdWUgPSAqKHN0YXRpY19jYXN0
PGNvbnN0IFQqPihzdGF0aWNfY2FzdDxjb25zdCB2b2lkKj4oc3RhdGljX2Nhc3Q8Y29uc3QgY2hh
cio+KG1fYmFzZUFkZHJlc3MpICsgYnl0ZU9mZnNldCkpKTsKKyAgICBpZiAoc2l6ZW9mKFQpID4g
MSkKKyAgICAgIGZsaXBCeXRlc1RvTWVldEVuZGlhblJlcXVpcmVtZW50KCZ2YWx1ZSwgc2l6ZW9m
KFQpLCBsaXR0bGVFbmRpYW4pOworICAgIHJldHVybiB2YWx1ZTsKK30KKwordGVtcGxhdGU8dHlw
ZW5hbWUgVD4KK3ZvaWQgRGF0YVZpZXc6OnNldERhdGEodW5zaWduZWQgYnl0ZU9mZnNldCwgVCB2
YWx1ZSwgYm9vbCBsaXR0bGVFbmRpYW4sIEV4Y2VwdGlvbkNvZGUmIGVjKQoreworICAgIGlmIChi
ZXlvbmRSYW5nZTxUPihieXRlT2Zmc2V0KSkgeworICAgICAgICBlYyA9IElOREVYX1NJWkVfRVJS
OworICAgICAgICByZXR1cm47CisgICAgfQorICAgIGlmIChzaXplb2YoVCkgPiAxKQorICAgICAg
ZmxpcEJ5dGVzVG9NZWV0RW5kaWFuUmVxdWlyZW1lbnQoJnZhbHVlLCBzaXplb2YoVCksIGxpdHRs
ZUVuZGlhbik7CisgICAgKihzdGF0aWNfY2FzdDxUKj4oc3RhdGljX2Nhc3Q8dm9pZCo+KHN0YXRp
Y19jYXN0PGNoYXIqPihtX2Jhc2VBZGRyZXNzKSArIGJ5dGVPZmZzZXQpKSkgPSB2YWx1ZTsKK30K
KworY2hhciBEYXRhVmlldzo6Z2V0SW50OCh1bnNpZ25lZCBieXRlT2Zmc2V0LCBFeGNlcHRpb25D
b2RlJiBlYykKK3sKKyAgICByZXR1cm4gZ2V0RGF0YTxjaGFyPihieXRlT2Zmc2V0LCBmYWxzZSwg
ZWMpOworfQorCit1bnNpZ25lZCBjaGFyIERhdGFWaWV3OjpnZXRVaW50OCh1bnNpZ25lZCBieXRl
T2Zmc2V0LCBFeGNlcHRpb25Db2RlJiBlYykKK3sKKyAgICByZXR1cm4gZ2V0RGF0YTx1bnNpZ25l
ZCBjaGFyPihieXRlT2Zmc2V0LCBmYWxzZSwgZWMpOworfQorCitzaG9ydCBEYXRhVmlldzo6Z2V0
SW50MTYodW5zaWduZWQgYnl0ZU9mZnNldCwgYm9vbCBsaXR0bGVFbmRpYW4sIEV4Y2VwdGlvbkNv
ZGUmIGVjKQoreworICAgIHJldHVybiBnZXREYXRhPHNob3J0PihieXRlT2Zmc2V0LCBsaXR0bGVF
bmRpYW4sIGVjKTsKK30KKwordW5zaWduZWQgc2hvcnQgRGF0YVZpZXc6OmdldFVpbnQxNih1bnNp
Z25lZCBieXRlT2Zmc2V0LCBib29sIGxpdHRsZUVuZGlhbiwgRXhjZXB0aW9uQ29kZSYgZWMpCit7
CisgICAgcmV0dXJuIGdldERhdGE8dW5zaWduZWQgc2hvcnQ+KGJ5dGVPZmZzZXQsIGxpdHRsZUVu
ZGlhbiwgZWMpOworfQorCitpbnQgRGF0YVZpZXc6OmdldEludDMyKHVuc2lnbmVkIGJ5dGVPZmZz
ZXQsIGJvb2wgbGl0dGxlRW5kaWFuLCBFeGNlcHRpb25Db2RlJiBlYykKK3sKKyAgICByZXR1cm4g
Z2V0RGF0YTxpbnQ+KGJ5dGVPZmZzZXQsIGxpdHRsZUVuZGlhbiwgZWMpOworfQorCit1bnNpZ25l
ZCBEYXRhVmlldzo6Z2V0VWludDMyKHVuc2lnbmVkIGJ5dGVPZmZzZXQsIGJvb2wgbGl0dGxlRW5k
aWFuLCBFeGNlcHRpb25Db2RlJiBlYykKK3sKKyAgICByZXR1cm4gZ2V0RGF0YTx1bnNpZ25lZD4o
Ynl0ZU9mZnNldCwgbGl0dGxlRW5kaWFuLCBlYyk7Cit9CisKK2Zsb2F0IERhdGFWaWV3OjpnZXRG
bG9hdDMyKHVuc2lnbmVkIGJ5dGVPZmZzZXQsIGJvb2wgbGl0dGxlRW5kaWFuLCBFeGNlcHRpb25D
b2RlJiBlYykKK3sKKyAgICByZXR1cm4gZ2V0RGF0YTxmbG9hdD4oYnl0ZU9mZnNldCwgbGl0dGxl
RW5kaWFuLCBlYyk7Cit9CisKK2RvdWJsZSBEYXRhVmlldzo6Z2V0RmxvYXQ2NCh1bnNpZ25lZCBi
eXRlT2Zmc2V0LCBib29sIGxpdHRsZUVuZGlhbiwgRXhjZXB0aW9uQ29kZSYgZWMpCit7CisgICAg
cmV0dXJuIGdldERhdGE8ZG91YmxlPihieXRlT2Zmc2V0LCBsaXR0bGVFbmRpYW4sIGVjKTsKK30K
Kwordm9pZCBEYXRhVmlldzo6c2V0SW50OCh1bnNpZ25lZCBieXRlT2Zmc2V0LCBjaGFyIHZhbHVl
LCBFeGNlcHRpb25Db2RlJiBlYykKK3sKKyAgICBzZXREYXRhPGNoYXI+KGJ5dGVPZmZzZXQsIHZh
bHVlLCBmYWxzZSwgZWMpOworfQorCit2b2lkIERhdGFWaWV3OjpzZXRVaW50OCh1bnNpZ25lZCBi
eXRlT2Zmc2V0LCB1bnNpZ25lZCBjaGFyIHZhbHVlLCBFeGNlcHRpb25Db2RlJiBlYykKK3sKKyAg
ICBzZXREYXRhPHVuc2lnbmVkIGNoYXI+KGJ5dGVPZmZzZXQsIHZhbHVlLCBmYWxzZSwgZWMpOwor
fQorCit2b2lkIERhdGFWaWV3OjpzZXRJbnQxNih1bnNpZ25lZCBieXRlT2Zmc2V0LCBzaG9ydCB2
YWx1ZSwgYm9vbCBsaXR0bGVFbmRpYW4sIEV4Y2VwdGlvbkNvZGUmIGVjKQoreworICAgIHNldERh
dGE8c2hvcnQ+KGJ5dGVPZmZzZXQsIHZhbHVlLCBsaXR0bGVFbmRpYW4sIGVjKTsKK30KKwordm9p
ZCBEYXRhVmlldzo6c2V0VWludDE2KHVuc2lnbmVkIGJ5dGVPZmZzZXQsIHVuc2lnbmVkIHNob3J0
IHZhbHVlLCBib29sIGxpdHRsZUVuZGlhbiwgRXhjZXB0aW9uQ29kZSYgZWMpCit7CisgICAgc2V0
RGF0YTx1bnNpZ25lZCBzaG9ydD4oYnl0ZU9mZnNldCwgdmFsdWUsIGxpdHRsZUVuZGlhbiwgZWMp
OworfQorCit2b2lkIERhdGFWaWV3OjpzZXRJbnQzMih1bnNpZ25lZCBieXRlT2Zmc2V0LCBpbnQg
dmFsdWUsIGJvb2wgbGl0dGxlRW5kaWFuLCBFeGNlcHRpb25Db2RlJiBlYykKK3sKKyAgICBzZXRE
YXRhPGludD4oYnl0ZU9mZnNldCwgdmFsdWUsIGxpdHRsZUVuZGlhbiwgZWMpOworfQorCit2b2lk
IERhdGFWaWV3OjpzZXRVaW50MzIodW5zaWduZWQgYnl0ZU9mZnNldCwgdW5zaWduZWQgdmFsdWUs
IGJvb2wgbGl0dGxlRW5kaWFuLCBFeGNlcHRpb25Db2RlJiBlYykKK3sKKyAgICBzZXREYXRhPHVu
c2lnbmVkPihieXRlT2Zmc2V0LCB2YWx1ZSwgbGl0dGxlRW5kaWFuLCBlYyk7Cit9CisKK3ZvaWQg
RGF0YVZpZXc6OnNldEZsb2F0MzIodW5zaWduZWQgYnl0ZU9mZnNldCwgZmxvYXQgdmFsdWUsIGJv
b2wgbGl0dGxlRW5kaWFuLCBFeGNlcHRpb25Db2RlJiBlYykKK3sKKyAgICBzZXREYXRhPGZsb2F0
PihieXRlT2Zmc2V0LCB2YWx1ZSwgbGl0dGxlRW5kaWFuLCBlYyk7Cit9CisKK3ZvaWQgRGF0YVZp
ZXc6OnNldEZsb2F0NjQodW5zaWduZWQgYnl0ZU9mZnNldCwgZG91YmxlIHZhbHVlLCBib29sIGxp
dHRsZUVuZGlhbiwgRXhjZXB0aW9uQ29kZSYgZWMpCit7CisgICAgc2V0RGF0YTxkb3VibGU+KGJ5
dGVPZmZzZXQsIHZhbHVlLCBsaXR0bGVFbmRpYW4sIGVjKTsKK30KKworfQorCisjZW5kaWYgLy8g
RU5BQkxFKDNEX0NBTlZBUykgfHwgRU5BQkxFKEJMT0IpCmRpZmYgLS1naXQgYS9XZWJDb3JlL2h0
bWwvY2FudmFzL0RhdGFWaWV3LmggYi9XZWJDb3JlL2h0bWwvY2FudmFzL0RhdGFWaWV3LmgKbmV3
IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uZDNjZjUyNAotLS0gL2Rldi9udWxsCisr
KyBiL1dlYkNvcmUvaHRtbC9jYW52YXMvRGF0YVZpZXcuaApAQCAtMCwwICsxLDEwMCBAQAorLyoK
KyAqIENvcHlyaWdodCAoQykgMjAxMCBHb29nbGUgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKKyAqIG1ldDoKKyAqCisgKiAgICAg
KiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAorICogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgorICogICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQorICogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgorICogaW4gdGhlIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQorICog
ZGlzdHJpYnV0aW9uLgorICogICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBu
b3IgdGhlIG5hbWVzIG9mIGl0cworICogY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9y
c2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KKyAqIHRoaXMgc29mdHdhcmUgd2l0
aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisgKgorICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9S
UworICogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgorICogQSBQQVJUSUNVTEFSIFBVUlBPU0Ug
QVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKKyAqIE9XTkVS
IE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLAorICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCisgKiBEQVRBLCBPUiBQUk9GSVRT
OyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKyAq
IFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZu
ZGVmIERhdGFWaWV3X2gKKyNkZWZpbmUgRGF0YVZpZXdfaAorCisjaW5jbHVkZSAiQXJyYXlCdWZm
ZXJWaWV3LmgiCisjaW5jbHVkZSAiRXhjZXB0aW9uQ29kZS5oIgorI2luY2x1ZGUgPHd0Zi9QYXNz
UmVmUHRyLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgRGF0YVZpZXcgOiBwdWJs
aWMgQXJyYXlCdWZmZXJWaWV3IHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxEYXRh
Vmlldz4gY3JlYXRlKFBhc3NSZWZQdHI8QXJyYXlCdWZmZXI+IGJ1ZmZlciwgdW5zaWduZWQgYnl0
ZU9mZnNldCwgdW5zaWduZWQgYnl0ZUxlbmd0aCkKKyAgICB7CisgICAgICAgIHJldHVybiBhZG9w
dFJlZihuZXcgRGF0YVZpZXcoYnVmZmVyLCBieXRlT2Zmc2V0LCBieXRlTGVuZ3RoKSk7CisgICAg
fQorCisgICAgdmlydHVhbCBib29sIGlzRGF0YVZpZXcoKSBjb25zdCB7IHJldHVybiB0cnVlOyB9
CisgICAgdmlydHVhbCB1bnNpZ25lZCBsZW5ndGgoKSBjb25zdCB7IHJldHVybiBtX2J5dGVMZW5n
dGg7IH0KKyAgICB2aXJ0dWFsIHVuc2lnbmVkIGJ5dGVMZW5ndGgoKSBjb25zdCB7IHJldHVybiBt
X2J5dGVMZW5ndGg7IH0KKyAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8QXJyYXlCdWZmZXJWaWV3PiBz
bGljZShpbnQsIGludCkgY29uc3QgeyByZXR1cm4gMDsgfQorCisgICAgY2hhciBnZXRJbnQ4KHVu
c2lnbmVkIGJ5dGVPZmZzZXQsIEV4Y2VwdGlvbkNvZGUmKTsKKyAgICB1bnNpZ25lZCBjaGFyIGdl
dFVpbnQ4KHVuc2lnbmVkIGJ5dGVPZmZzZXQsIEV4Y2VwdGlvbkNvZGUmKTsKKyAgICBzaG9ydCBn
ZXRJbnQxNih1bnNpZ25lZCBieXRlT2Zmc2V0LCBFeGNlcHRpb25Db2RlJiBlYykgeyByZXR1cm4g
Z2V0SW50MTYoYnl0ZU9mZnNldCwgZmFsc2UsIGVjKTsgfQorICAgIHNob3J0IGdldEludDE2KHVu
c2lnbmVkIGJ5dGVPZmZzZXQsIGJvb2wgbGl0dGxlRW5kaWFuLCBFeGNlcHRpb25Db2RlJik7Cisg
ICAgdW5zaWduZWQgc2hvcnQgZ2V0VWludDE2KHVuc2lnbmVkIGJ5dGVPZmZzZXQsIEV4Y2VwdGlv
bkNvZGUmIGVjKSB7IHJldHVybiBnZXRVaW50MTYoYnl0ZU9mZnNldCwgZmFsc2UsIGVjKTsgfQor
ICAgIHVuc2lnbmVkIHNob3J0IGdldFVpbnQxNih1bnNpZ25lZCBieXRlT2Zmc2V0LCBib29sIGxp
dHRsZUVuZGlhbiwgRXhjZXB0aW9uQ29kZSYpOworICAgIGludCBnZXRJbnQzMih1bnNpZ25lZCBi
eXRlT2Zmc2V0LCBFeGNlcHRpb25Db2RlJiBlYykgeyByZXR1cm4gZ2V0SW50MzIoYnl0ZU9mZnNl
dCwgZmFsc2UsIGVjKTsgfQorICAgIGludCBnZXRJbnQzMih1bnNpZ25lZCBieXRlT2Zmc2V0LCBi
b29sIGxpdHRsZUVuZGlhbiwgRXhjZXB0aW9uQ29kZSYpOworICAgIHVuc2lnbmVkIGdldFVpbnQz
Mih1bnNpZ25lZCBieXRlT2Zmc2V0LCBFeGNlcHRpb25Db2RlJiBlYykgeyByZXR1cm4gZ2V0VWlu
dDMyKGJ5dGVPZmZzZXQsIGZhbHNlLCBlYyk7IH0KKyAgICB1bnNpZ25lZCBnZXRVaW50MzIodW5z
aWduZWQgYnl0ZU9mZnNldCwgYm9vbCBsaXR0bGVFbmRpYW4sIEV4Y2VwdGlvbkNvZGUmKTsKKyAg
ICBmbG9hdCBnZXRGbG9hdDMyKHVuc2lnbmVkIGJ5dGVPZmZzZXQsIEV4Y2VwdGlvbkNvZGUmIGVj
KSB7IHJldHVybiBnZXRGbG9hdDMyKGJ5dGVPZmZzZXQsIGZhbHNlLCBlYyk7IH0KKyAgICBmbG9h
dCBnZXRGbG9hdDMyKHVuc2lnbmVkIGJ5dGVPZmZzZXQsIGJvb2wgbGl0dGxlRW5kaWFuLCBFeGNl
cHRpb25Db2RlJik7CisgICAgZG91YmxlIGdldEZsb2F0NjQodW5zaWduZWQgYnl0ZU9mZnNldCwg
RXhjZXB0aW9uQ29kZSYgZWMpIHsgcmV0dXJuIGdldEZsb2F0NjQoYnl0ZU9mZnNldCwgZmFsc2Us
IGVjKTsgfQorICAgIGRvdWJsZSBnZXRGbG9hdDY0KHVuc2lnbmVkIGJ5dGVPZmZzZXQsIGJvb2wg
bGl0dGxlRW5kaWFuLCBFeGNlcHRpb25Db2RlJik7CisKKyAgICB2b2lkIHNldEludDgodW5zaWdu
ZWQgYnl0ZU9mZnNldCwgY2hhciB2YWx1ZSwgRXhjZXB0aW9uQ29kZSYpOworICAgIHZvaWQgc2V0
VWludDgodW5zaWduZWQgYnl0ZU9mZnNldCwgdW5zaWduZWQgY2hhciB2YWx1ZSwgRXhjZXB0aW9u
Q29kZSYpOworICAgIHZvaWQgc2V0SW50MTYodW5zaWduZWQgYnl0ZU9mZnNldCwgc2hvcnQgdmFs
dWUsIEV4Y2VwdGlvbkNvZGUmIGVjKSB7IHNldEludDE2KGJ5dGVPZmZzZXQsIHZhbHVlLCBmYWxz
ZSwgZWMpOyB9CisgICAgdm9pZCBzZXRJbnQxNih1bnNpZ25lZCBieXRlT2Zmc2V0LCBzaG9ydCB2
YWx1ZSwgYm9vbCBsaXR0bGVFbmRpYW4sIEV4Y2VwdGlvbkNvZGUmKTsKKyAgICB2b2lkIHNldFVp
bnQxNih1bnNpZ25lZCBieXRlT2Zmc2V0LCB1bnNpZ25lZCBzaG9ydCB2YWx1ZSwgRXhjZXB0aW9u
Q29kZSYgZWMpIHsgc2V0VWludDE2KGJ5dGVPZmZzZXQsIHZhbHVlLCBmYWxzZSwgZWMpOyB9Cisg
ICAgdm9pZCBzZXRVaW50MTYodW5zaWduZWQgYnl0ZU9mZnNldCwgdW5zaWduZWQgc2hvcnQgdmFs
dWUsIGJvb2wgbGl0dGxlRW5kaWFuLCBFeGNlcHRpb25Db2RlJik7CisgICAgdm9pZCBzZXRJbnQz
Mih1bnNpZ25lZCBieXRlT2Zmc2V0LCBpbnQgdmFsdWUsIEV4Y2VwdGlvbkNvZGUmIGVjKSB7IHNl
dEludDMyKGJ5dGVPZmZzZXQsIHZhbHVlLCBmYWxzZSwgZWMpOyB9IAorICAgIHZvaWQgc2V0SW50
MzIodW5zaWduZWQgYnl0ZU9mZnNldCwgaW50IHZhbHVlLCBib29sIGxpdHRsZUVuZGlhbiwgRXhj
ZXB0aW9uQ29kZSYpOworICAgIHZvaWQgc2V0VWludDMyKHVuc2lnbmVkIGJ5dGVPZmZzZXQsIHVu
c2lnbmVkIHZhbHVlLCBFeGNlcHRpb25Db2RlJiBlYykgeyBzZXRVaW50MzIoYnl0ZU9mZnNldCwg
dmFsdWUsIGZhbHNlLCBlYyk7IH0KKyAgICB2b2lkIHNldFVpbnQzMih1bnNpZ25lZCBieXRlT2Zm
c2V0LCB1bnNpZ25lZCB2YWx1ZSwgYm9vbCBsaXR0bGVFbmRpYW4sIEV4Y2VwdGlvbkNvZGUmKTsK
KyAgICB2b2lkIHNldEZsb2F0MzIodW5zaWduZWQgYnl0ZU9mZnNldCwgZmxvYXQgdmFsdWUsIEV4
Y2VwdGlvbkNvZGUmIGVjKSB7IHNldEZsb2F0MzIoYnl0ZU9mZnNldCwgdmFsdWUsIGZhbHNlLCBl
Yyk7IH0KKyAgICB2b2lkIHNldEZsb2F0MzIodW5zaWduZWQgYnl0ZU9mZnNldCwgZmxvYXQgdmFs
dWUsIGJvb2wgbGl0dGxlRW5kaWFuLCBFeGNlcHRpb25Db2RlJik7CisgICAgdm9pZCBzZXRGbG9h
dDY0KHVuc2lnbmVkIGJ5dGVPZmZzZXQsIGRvdWJsZSB2YWx1ZSwgRXhjZXB0aW9uQ29kZSYgZWMp
IHsgc2V0RmxvYXQ2NChieXRlT2Zmc2V0LCB2YWx1ZSwgZmFsc2UsIGVjKTsgfQorICAgIHZvaWQg
c2V0RmxvYXQ2NCh1bnNpZ25lZCBieXRlT2Zmc2V0LCBkb3VibGUgdmFsdWUsIGJvb2wgbGl0dGxl
RW5kaWFuLCBFeGNlcHRpb25Db2RlJik7CisKK3ByaXZhdGU6CisgICAgRGF0YVZpZXcoUGFzc1Jl
ZlB0cjxBcnJheUJ1ZmZlcj4sIHVuc2lnbmVkIGJ5dGVPZmZzZXQsIHVuc2lnbmVkIGJ5dGVMZW5n
dGgpOworCisgICAgdGVtcGxhdGU8dHlwZW5hbWUgVD4KKyAgICBpbmxpbmUgYm9vbCBiZXlvbmRS
YW5nZSh1bnNpZ25lZCBieXRlT2Zmc2V0KSBjb25zdCB7IHJldHVybiBieXRlT2Zmc2V0ICsgc2l6
ZW9mKFQpID4gbV9ieXRlTGVuZ3RoOyB9CisKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBUPgorICAg
IFQgZ2V0RGF0YSh1bnNpZ25lZCBieXRlT2Zmc2V0LCBib29sIGxpdHRsZUVuZGlhbiwgRXhjZXB0
aW9uQ29kZSYpIGNvbnN0OworCisgICAgdGVtcGxhdGU8dHlwZW5hbWUgVD4KKyAgICB2b2lkIHNl
dERhdGEodW5zaWduZWQgYnl0ZU9mZnNldCwgVCB2YWx1ZSwgYm9vbCBsaXR0bGVFbmRpYW4sIEV4
Y2VwdGlvbkNvZGUmKTsKKworICAgIHVuc2lnbmVkIG1fYnl0ZUxlbmd0aDsKK307CisKKworfSAv
LyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gRGF0YVZpZXdfaApkaWZmIC0tZ2l0IGEv
V2ViQ29yZS9odG1sL2NhbnZhcy9EYXRhVmlldy5pZGwgYi9XZWJDb3JlL2h0bWwvY2FudmFzL0Rh
dGFWaWV3LmlkbApuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5iNTY1ODAxCi0t
LSAvZGV2L251bGwKKysrIGIvV2ViQ29yZS9odG1sL2NhbnZhcy9EYXRhVmlldy5pZGwKQEAgLTAs
MCArMSw4NiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMCBHb29nbGUgSW5jLiAgQWxsIHJp
Z2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKKyAqIG1l
dDoKKyAqCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogICAgICogUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQorICogY29weXJpZ2h0IG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
cgorICogaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZQorICogZGlzdHJpYnV0aW9uLgorICogICAgICogTmVpdGhlciB0aGUgbmFtZSBv
ZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cworICogY29udHJpYnV0b3JzIG1heSBi
ZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KKyAqIHRo
aXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisg
KgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMg
QU5EIENPTlRSSUJVVE9SUworICogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFRIRSBJTVBMSUVE
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgorICogQSBQQVJU
SUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZ
UklHSFQKKyAqIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLAorICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFV
RU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgUFJPQ1VS
RU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCisgKiBE
QVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORCBPTiBBTlkKKyAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4KKyAqLworCittb2R1bGUgaHRtbCB7CisKKyAgICBpbnRlcmZhY2UgWworICAgICAgICBDb25k
aXRpb25hbD0zRF9DQU5WQVN8QkxPQiwKKyAgICAgICAgQ2FuQmVDb25zdHJ1Y3RlZCwKKyAgICAg
ICAgQ3VzdG9tQ29uc3RydWN0RnVuY3Rpb24sCisgICAgICAgIEN1c3RvbVRvSlMsCisgICAgICAg
IE5vU3RhdGljVGFibGVzLAorICAgICAgICBWOEN1c3RvbUNvbnN0cnVjdG9yCisgICAgXSBEYXRh
VmlldyA6IEFycmF5QnVmZmVyVmlldyB7CisgICAgICAgIC8vIEFsbCB0aGVzZSBtZXRob2RzIHJh
aXNlIGFuIGV4Y2VwdGlvbiBpZiB0aGV5IHdvdWxkIHJlYWQgb3Igd3JpdGUgYmV5b25kIHRoZSBl
bmQgb2YgdGhlIHZpZXcuCisKKyAgICAgICAgLy8gV2UgaGF2ZSB0byB1c2UgY3VzdG9tIGNvZGUg
YmVjYXVzZSBvdXIgY29kZSBnZW5lcmF0b3IgZG9lcyBub3Qgc3VwcG9ydCBjaGFyIHR5cGUuCisg
ICAgICAgIC8vIGNoYXIgZ2V0SW50OChpbiB1bnNpZ25lZCBsb25nIGJ5dGVPZmZzZXQpOworICAg
ICAgICAvLyB1bnNpZ25lZCBjaGFyIGdldFVpbnQ4KGluIHVuc2lnbmVkIGxvbmcgYnl0ZU9mZnNl
dCk7CisgICAgICAgIFtDdXN0b21dIERPTU9iamVjdCBnZXRJbnQ4KCkKKyAgICAgICAgICAgIHJh
aXNlcyAoRE9NRXhjZXB0aW9uKTsKKyAgICAgICAgW0N1c3RvbV0gRE9NT2JqZWN0IGdldFVpbnQ4
KCkKKyAgICAgICAgICAgIHJhaXNlcyAoRE9NRXhjZXB0aW9uKTsKKworICAgICAgICBbU3RyaWN0
VHlwZUNoZWNraW5nLCBSZXF1aXJlc0FsbEFyZ3VtZW50cz1SYWlzZV0gc2hvcnQgZ2V0SW50MTYo
aW4gdW5zaWduZWQgbG9uZyBieXRlT2Zmc2V0LCBpbiBbT3B0aW9uYWxdIGJvb2xlYW4gbGl0dGxl
RW5kaWFuKQorICAgICAgICAgICAgcmFpc2VzIChET01FeGNlcHRpb24pOworICAgICAgICBbU3Ry
aWN0VHlwZUNoZWNraW5nLCBSZXF1aXJlc0FsbEFyZ3VtZW50cz1SYWlzZV0gdW5zaWduZWQgc2hv
cnQgZ2V0VWludDE2KGluIHVuc2lnbmVkIGxvbmcgYnl0ZU9mZnNldCwgaW4gW09wdGlvbmFsXSBi
b29sZWFuIGxpdHRsZUVuZGlhbikKKyAgICAgICAgICAgIHJhaXNlcyAoRE9NRXhjZXB0aW9uKTsK
KyAgICAgICAgW1N0cmljdFR5cGVDaGVja2luZywgUmVxdWlyZXNBbGxBcmd1bWVudHM9UmFpc2Vd
IGxvbmcgZ2V0SW50MzIoaW4gdW5zaWduZWQgbG9uZyBieXRlT2Zmc2V0LCBpbiBbT3B0aW9uYWxd
IGJvb2xlYW4gbGl0dGxlRW5kaWFuKQorICAgICAgICAgICAgcmFpc2VzIChET01FeGNlcHRpb24p
OworICAgICAgICBbU3RyaWN0VHlwZUNoZWNraW5nLCBSZXF1aXJlc0FsbEFyZ3VtZW50cz1SYWlz
ZV0gdW5zaWduZWQgbG9uZyBnZXRVaW50MzIoaW4gdW5zaWduZWQgbG9uZyBieXRlT2Zmc2V0LCBp
biBbT3B0aW9uYWxdIGJvb2xlYW4gbGl0dGxlRW5kaWFuKQorICAgICAgICAgICAgcmFpc2VzIChE
T01FeGNlcHRpb24pOworICAgICAgICBbU3RyaWN0VHlwZUNoZWNraW5nLCBSZXF1aXJlc0FsbEFy
Z3VtZW50cz1SYWlzZV0gZmxvYXQgZ2V0RmxvYXQzMihpbiB1bnNpZ25lZCBsb25nIGJ5dGVPZmZz
ZXQsIGluIFtPcHRpb25hbF0gYm9vbGVhbiBsaXR0bGVFbmRpYW4pCisgICAgICAgICAgICByYWlz
ZXMgKERPTUV4Y2VwdGlvbik7CisgICAgICAgIFtTdHJpY3RUeXBlQ2hlY2tpbmcsIFJlcXVpcmVz
QWxsQXJndW1lbnRzPVJhaXNlXSBkb3VibGUgZ2V0RmxvYXQ2NChpbiB1bnNpZ25lZCBsb25nIGJ5
dGVPZmZzZXQsIGluIFtPcHRpb25hbF0gYm9vbGVhbiBsaXR0bGVFbmRpYW4pCisgICAgICAgICAg
ICByYWlzZXMgKERPTUV4Y2VwdGlvbik7CisKKyAgICAgICAgLy8gV2UgaGF2ZSB0byB1c2UgY3Vz
dG9tIGNvZGUgYmVjYXVzZSBvdXIgY29kZSBnZW5lcmF0b3IgZG9lcyBub3Qgc3VwcG9ydCBjaGFy
IHR5cGUuCisgICAgICAgIC8vIHZvaWQgc2V0SW50OChpbiB1bnNpZ25lZCBsb25nIGJ5dGVPZmZz
ZXQsIGluIGJ5dGUgdmFsdWUpOworICAgICAgICAvLyB2b2lkIHNldFVpbnQ4KGluIHVuc2lnbmVk
IGxvbmcgYnl0ZU9mZnNldCwgaW4gdW5zaWduZWQgYnl0ZSB2YWx1ZSk7CisgICAgICAgIFtDdXN0
b21dIHZvaWQgc2V0SW50OCgpCisgICAgICAgICAgICByYWlzZXMgKERPTUV4Y2VwdGlvbik7Cisg
ICAgICAgIFtDdXN0b21dIHZvaWQgc2V0VWludDgoKQorICAgICAgICAgICAgcmFpc2VzIChET01F
eGNlcHRpb24pOworCisgICAgICAgIFtTdHJpY3RUeXBlQ2hlY2tpbmcsIFJlcXVpcmVzQWxsQXJn
dW1lbnRzPVJhaXNlXSB2b2lkIHNldEludDE2KGluIHVuc2lnbmVkIGxvbmcgYnl0ZU9mZnNldCwg
aW4gc2hvcnQgdmFsdWUsIGluIFtPcHRpb25hbF0gYm9vbGVhbiBsaXR0bGVFbmRpYW4pCisgICAg
ICAgICAgICByYWlzZXMgKERPTUV4Y2VwdGlvbik7CisgICAgICAgIFtTdHJpY3RUeXBlQ2hlY2tp
bmcsIFJlcXVpcmVzQWxsQXJndW1lbnRzPVJhaXNlXSB2b2lkIHNldFVpbnQxNihpbiB1bnNpZ25l
ZCBsb25nIGJ5dGVPZmZzZXQsIGluIHVuc2lnbmVkIHNob3J0IHZhbHVlLCBpbiBbT3B0aW9uYWxd
IGJvb2xlYW4gbGl0dGxlRW5kaWFuKQorICAgICAgICAgICAgcmFpc2VzIChET01FeGNlcHRpb24p
OworICAgICAgICBbU3RyaWN0VHlwZUNoZWNraW5nLCBSZXF1aXJlc0FsbEFyZ3VtZW50cz1SYWlz
ZV0gdm9pZCBzZXRJbnQzMihpbiB1bnNpZ25lZCBsb25nIGJ5dGVPZmZzZXQsIGluIGxvbmcgdmFs
dWUsIGluIFtPcHRpb25hbF0gYm9vbGVhbiBsaXR0bGVFbmRpYW4pCisgICAgICAgICAgICByYWlz
ZXMgKERPTUV4Y2VwdGlvbik7CisgICAgICAgIFtTdHJpY3RUeXBlQ2hlY2tpbmcsIFJlcXVpcmVz
QWxsQXJndW1lbnRzPVJhaXNlXSB2b2lkIHNldFVpbnQzMihpbiB1bnNpZ25lZCBsb25nIGJ5dGVP
ZmZzZXQsIGluIHVuc2lnbmVkIGxvbmcgdmFsdWUsIGluIFtPcHRpb25hbF0gYm9vbGVhbiBsaXR0
bGVFbmRpYW4pCisgICAgICAgICAgICByYWlzZXMgKERPTUV4Y2VwdGlvbik7CisgICAgICAgIFtT
dHJpY3RUeXBlQ2hlY2tpbmcsIFJlcXVpcmVzQWxsQXJndW1lbnRzPVJhaXNlXSB2b2lkIHNldEZs
b2F0MzIoaW4gdW5zaWduZWQgbG9uZyBieXRlT2Zmc2V0LCBpbiBmbG9hdCB2YWx1ZSwgaW4gW09w
dGlvbmFsXSBib29sZWFuIGxpdHRsZUVuZGlhbikKKyAgICAgICAgICAgIHJhaXNlcyAoRE9NRXhj
ZXB0aW9uKTsKKyAgICAgICAgW1N0cmljdFR5cGVDaGVja2luZywgUmVxdWlyZXNBbGxBcmd1bWVu
dHM9UmFpc2VdIHZvaWQgc2V0RmxvYXQ2NChpbiB1bnNpZ25lZCBsb25nIGJ5dGVPZmZzZXQsIGlu
IGRvdWJsZSB2YWx1ZSwgaW4gW09wdGlvbmFsXSBib29sZWFuIGxpdHRsZUVuZGlhbikKKyAgICAg
ICAgICAgIHJhaXNlcyAoRE9NRXhjZXB0aW9uKTsKKyAgICB9OworCit9CmRpZmYgLS1naXQgYS9X
ZWJDb3JlL3BhZ2UvRE9NV2luZG93LmlkbCBiL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuaWRsCmlu
ZGV4IGI5M2ZmNTUuLmE0NDRkNmEgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cu
aWRsCisrKyBiL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuaWRsCkBAIC00OTUsNiArNDk1LDcgQEAg
bW9kdWxlIHdpbmRvdyB7CiAgICAgICAgIGF0dHJpYnV0ZSBbSlNDQ3VzdG9tR2V0dGVyLENvbmRp
dGlvbmFsPTNEX0NBTlZBU3xCTE9CLEVuYWJsZWRBdFJ1bnRpbWVdIEludDMyQXJyYXlDb25zdHJ1
Y3RvciBJbnQzMkFycmF5OyAvLyBVc2FibGUgd2l0aCBuZXcgb3BlcmF0b3IKICAgICAgICAgYXR0
cmlidXRlIFtKU0NDdXN0b21HZXR0ZXIsQ29uZGl0aW9uYWw9M0RfQ0FOVkFTfEJMT0IsRW5hYmxl
ZEF0UnVudGltZV0gVWludDMyQXJyYXlDb25zdHJ1Y3RvciBVaW50MzJBcnJheTsgLy8gVXNhYmxl
IHdpdGggbmV3IG9wZXJhdG9yCiAgICAgICAgIGF0dHJpYnV0ZSBbSlNDQ3VzdG9tR2V0dGVyLENv
bmRpdGlvbmFsPTNEX0NBTlZBU3xCTE9CLEVuYWJsZWRBdFJ1bnRpbWVdIEZsb2F0MzJBcnJheUNv
bnN0cnVjdG9yIEZsb2F0MzJBcnJheTsgLy8gVXNhYmxlIHdpdGggbmV3IG9wZXJhdG9yCisgICAg
ICAgIGF0dHJpYnV0ZSBbSlNDQ3VzdG9tR2V0dGVyLENvbmRpdGlvbmFsPTNEX0NBTlZBU3xCTE9C
LEVuYWJsZWRBdFJ1bnRpbWVdIERhdGFWaWV3Q29uc3RydWN0b3IgRGF0YVZpZXc7IC8vIFVzYWJs
ZSB3aXRoIG5ldyBvcGVyYXRvcgogCiAgICAgICAgIGF0dHJpYnV0ZSBFdmVudENvbnN0cnVjdG9y
IEV2ZW50OwogICAgICAgICBhdHRyaWJ1dGUgQmVmb3JlTG9hZEV2ZW50Q29uc3RydWN0b3IgQmVm
b3JlTG9hZEV2ZW50Owo=
</data>
<flag name="review"
          id="64928"
          type_id="1"
          status="-"
          setter="kbr"
    />
    <flag name="commit-queue"
          id="64929"
          type_id="3"
          status="-"
          setter="jianli"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>74719</attachid>
            <date>2010-11-23 19:30:44 -0800</date>
            <delta_ts>2010-11-23 20:33:19 -0800</delta_ts>
            <desc>Proposed Patch</desc>
            <filename>46541_4</filename>
            <type>text/plain</type>
            <size>117586</size>
            <attacher name="Jian Li">jianli</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCBmYjIwZTZkLi5kYmEzNjBiIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjMgQEAKKzIwMTAtMTEt
MjIgIEppYW4gTGkgIDxqaWFubGlAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEltcGxlbWVudCBEYXRhVmlldyBpbnRlcmZhY2Ug
ZnJvbSBUeXBlZCBBcnJheSBzcGVjaWZpY2F0aW9uCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD00NjU0MQorCisgICAgICAgIEFkZCBhIG5ldyB0ZXN0IGZv
ciB0ZXN0aW5nIERhdGFWaWV3IGludGVyZmFjZS4gQWxzbyB1cGRhdGUgc29tZSB0ZXN0cworICAg
ICAgICB0byBleGNsdWRlIERhdGFWaWV3IHByb3BlcnR5IGZyb20gYmVpbmcgdGVzdGVkIGJlY2F1
c2UgaXQgaXMgbm90CisgICAgICAgIGV4cG9zZWQgdG8gYWxsIHBsYXRmb3Jtcy4KKworICAgICAg
ICAqIGZhc3QvY2FudmFzL3dlYmdsL2RhdGEtdmlldy10ZXN0LWV4cGVjdGVkLnR4dDogQWRkZWQu
CisgICAgICAgICogZmFzdC9jYW52YXMvd2ViZ2wvZGF0YS12aWV3LXRlc3QuaHRtbDogQWRkZWQu
CisgICAgICAgICogZmFzdC9kb20vV2luZG93L3NjcmlwdC10ZXN0cy93aW5kb3ctcHJvcGVydHkt
ZGVzY3JpcHRvcnMuanM6CisgICAgICAgICogZmFzdC9kb20vV2luZG93L3dpbmRvdy1wcm9wZXJ0
aWVzLmh0bWw6CisgICAgICAgICogZmFzdC9kb20vc2NyaXB0LXRlc3RzL3Byb3RvdHlwZS1pbmhl
cml0YW5jZS0yLmpzOgorICAgICAgICAoY29uc3RydWN0b3JOYW1lc0ZvcldpbmRvdyk6CisgICAg
ICAgICogZmFzdC9kb20vc2NyaXB0LXRlc3RzL3Byb3RvdHlwZS1pbmhlcml0YW5jZS5qczoKKyAg
ICAgICAgKiBmYXN0L2pzL3NjcmlwdC10ZXN0cy9nbG9iYWwtY29uc3RydWN0b3JzLmpzOgorCiAy
MDEwLTExLTIyICBKYW1lcyBSb2JpbnNvbiAgPGphbWVzckBjaHJvbWl1bS5vcmc+CiAKICAgICAg
ICAgUmV2aWV3ZWQgYnkgRGltaXRyaSBHbGF6a292LgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
ZmFzdC9jYW52YXMvd2ViZ2wvZGF0YS12aWV3LXRlc3QtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVz
dHMvZmFzdC9jYW52YXMvd2ViZ2wvZGF0YS12aWV3LXRlc3QtZXhwZWN0ZWQudHh0Cm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjZhZDRlNDQKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9mYXN0L2NhbnZhcy93ZWJnbC9kYXRhLXZpZXctdGVzdC1leHBlY3RlZC50eHQK
QEAgLTAsMCArMSw3NjUgQEAKK1Rlc3QgRGF0YVZpZXcuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxs
IHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBM
RVRFIi4KKworCitUZXN0IGZvciBjb25zdHJ1Y3RvciB0YWtpbmcgMSBhcmd1bWVudAorUEFTUyB2
aWV3ID0gbmV3IERhdGFWaWV3KGFyYXlCdWZmZXIpIGlzIGRlZmluZWQuCitQQVNTIHZpZXcuYnl0
ZU9mZnNldCBpcyAwCitQQVNTIHZpZXcuYnl0ZUxlbmd0aCBpcyAyCisKK1Rlc3QgZm9yIGNvbnN0
cnVjdG9yIHRha2luZyAyIGFyZ3VtZW50cworUEFTUyB2aWV3ID0gbmV3IERhdGFWaWV3KGFyYXlC
dWZmZXIsIDEpIGlzIGRlZmluZWQuCitQQVNTIHZpZXcuYnl0ZU9mZnNldCBpcyAxCitQQVNTIHZp
ZXcuYnl0ZUxlbmd0aCBpcyAxCisKK1Rlc3QgZm9yIGNvbnN0cnVjdG9yIHRha2luZyAzIGFyZ3Vt
ZW50cworUEFTUyB2aWV3ID0gbmV3IERhdGFWaWV3KGFyYXlCdWZmZXIsIDAsIDEpIGlzIGRlZmlu
ZWQuCitQQVNTIHZpZXcuYnl0ZU9mZnNldCBpcyAwCitQQVNTIHZpZXcuYnl0ZUxlbmd0aCBpcyAx
CisKK1Rlc3QgZm9yIGNvbnN0cnVjdG9yIHRocm93aW5nIGV4Y2VwdGlvbgorUEFTUyB2aWV3ID0g
bmV3IERhdGFWaWV3KGFyYXlCdWZmZXIsIDAsIDMpIHRocmV3IGV4Y2VwdGlvbiBFcnJvcjogSU5E
RVhfU0laRV9FUlI6IERPTSBFeGNlcHRpb24gMS4KK1BBU1MgdmlldyA9IG5ldyBEYXRhVmlldyhh
cmF5QnVmZmVyLCAxLCAyKSB0aHJldyBleGNlcHRpb24gRXJyb3I6IElOREVYX1NJWkVfRVJSOiBE
T00gRXhjZXB0aW9uIDEuCitQQVNTIHZpZXcgPSBuZXcgRGF0YVZpZXcoYXJheUJ1ZmZlciwgMiwg
MSkgdGhyZXcgZXhjZXB0aW9uIEVycm9yOiBJTkRFWF9TSVpFX0VSUjogRE9NIEV4Y2VwdGlvbiAx
LgorCitUZXN0IGZvciBnZXQgbWV0aG9kcyB0aGF0IHdvcmsKK1BBU1Mgdmlldy5nZXRJbnQ4KDAp
IGlzIDAKK1BBU1Mgdmlldy5nZXRJbnQ4KDgpIGlzIC0xMjgKK1BBU1Mgdmlldy5nZXRJbnQ4KDE1
KSBpcyAtMQorUEFTUyB2aWV3LmdldFVpbnQ4KDApIGlzIDAKK1BBU1Mgdmlldy5nZXRVaW50OCg4
KSBpcyAxMjgKK1BBU1Mgdmlldy5nZXRVaW50OCgxNSkgaXMgMjU1CitQQVNTIHZpZXcuZ2V0SW50
MTYoMCwgdHJ1ZSkgaXMgMjU2CitQQVNTIHZpZXcuZ2V0SW50MTYoNSwgdHJ1ZSkgaXMgMjYyMTMK
K1BBU1Mgdmlldy5nZXRJbnQxNig5LCB0cnVlKSBpcyAtMzIxMjcKK1BBU1Mgdmlldy5nZXRJbnQx
NigxNCwgdHJ1ZSkgaXMgLTIKK1BBU1Mgdmlldy5nZXRJbnQxNigwKSBpcyAxCitQQVNTIHZpZXcu
Z2V0SW50MTYoNSkgaXMgMjU5NTgKK1BBU1Mgdmlldy5nZXRJbnQxNig5KSBpcyAtMzIzODIKK1BB
U1Mgdmlldy5nZXRJbnQxNigxNCkgaXMgLTI1NworUEFTUyB2aWV3LmdldFVpbnQxNigwLCB0cnVl
KSBpcyAyNTYKK1BBU1Mgdmlldy5nZXRVaW50MTYoNSwgdHJ1ZSkgaXMgMjYyMTMKK1BBU1Mgdmll
dy5nZXRVaW50MTYoOSwgdHJ1ZSkgaXMgMzM0MDkKK1BBU1Mgdmlldy5nZXRVaW50MTYoMTQsIHRy
dWUpIGlzIDY1NTM0CitQQVNTIHZpZXcuZ2V0VWludDE2KDApIGlzIDEKK1BBU1Mgdmlldy5nZXRV
aW50MTYoNSkgaXMgMjU5NTgKK1BBU1Mgdmlldy5nZXRVaW50MTYoOSkgaXMgMzMxNTQKK1BBU1Mg
dmlldy5nZXRVaW50MTYoMTQpIGlzIDY1Mjc5CitQQVNTIHZpZXcuZ2V0SW50MzIoMCwgdHJ1ZSkg
aXMgNTA0NjI5NzYKK1BBU1Mgdmlldy5nZXRJbnQzMigzLCB0cnVlKSBpcyAxNzE3OTIwNzcxCitQ
QVNTIHZpZXcuZ2V0SW50MzIoNiwgdHJ1ZSkgaXMgLTIxMjIyOTEzNTQKK1BBU1Mgdmlldy5nZXRJ
bnQzMig5LCB0cnVlKSBpcyAtNTg0OTAyMzkKK1BBU1Mgdmlldy5nZXRJbnQzMigxMiwgdHJ1ZSkg
aXMgLTY2MDUyCitQQVNTIHZpZXcuZ2V0SW50MzIoMCkgaXMgNjYwNTEKK1BBU1Mgdmlldy5nZXRJ
bnQzMigzKSBpcyA1NjkxMTIwNgorUEFTUyB2aWV3LmdldEludDMyKDYpIGlzIDE3MTgwNTkxMzcK
K1BBU1Mgdmlldy5nZXRJbnQzMig5KSBpcyAtMjEyMjE1Mjk2NAorUEFTUyB2aWV3LmdldEludDMy
KDEyKSBpcyAtNTA0NjI5NzcKK1BBU1Mgdmlldy5nZXRVaW50MzIoMCwgdHJ1ZSkgaXMgNTA0NjI5
NzYKK1BBU1Mgdmlldy5nZXRVaW50MzIoMywgdHJ1ZSkgaXMgMTcxNzkyMDc3MQorUEFTUyB2aWV3
LmdldFVpbnQzMig2LCB0cnVlKSBpcyAyMTcyNjc1OTQyCitQQVNTIHZpZXcuZ2V0VWludDMyKDks
IHRydWUpIGlzIDQyMzY0NzcwNTcKK1BBU1Mgdmlldy5nZXRVaW50MzIoMTIsIHRydWUpIGlzIDQy
OTQ5MDEyNDQKK1BBU1Mgdmlldy5nZXRVaW50MzIoMCkgaXMgNjYwNTEKK1BBU1Mgdmlldy5nZXRV
aW50MzIoMykgaXMgNTY5MTEyMDYKK1BBU1Mgdmlldy5nZXRVaW50MzIoNikgaXMgMTcxODA1OTEz
NworUEFTUyB2aWV3LmdldFVpbnQzMig5KSBpcyAyMTcyODE0MzMyCitQQVNTIHZpZXcuZ2V0VWlu
dDMyKDEyKSBpcyA0MjQ0NTA0MzE5CitQQVNTIHZpZXcuZ2V0RmxvYXQzMigwLCB0cnVlKSBpcyAx
MAorUEFTUyB2aWV3LmdldEZsb2F0MzIoMywgdHJ1ZSkgaXMgMTAKK1BBU1Mgdmlldy5nZXRGbG9h
dDMyKDcsIHRydWUpIGlzIDEwCitQQVNTIHZpZXcuZ2V0RmxvYXQzMigxMCwgdHJ1ZSkgaXMgMTAK
K1BBU1Mgdmlldy5nZXRGbG9hdDMyKDAsIGZhbHNlKSBpcyAxMAorUEFTUyB2aWV3LmdldEZsb2F0
MzIoMywgZmFsc2UpIGlzIDEwCitQQVNTIHZpZXcuZ2V0RmxvYXQzMig3LCBmYWxzZSkgaXMgMTAK
K1BBU1Mgdmlldy5nZXRGbG9hdDMyKDEwLCBmYWxzZSkgaXMgMTAKK1BBU1Mgdmlldy5nZXRGbG9h
dDMyKDAsIHRydWUpIGlzIDEuMjMwMDAwMDE5MDczNDg2MworUEFTUyB2aWV3LmdldEZsb2F0MzIo
MywgdHJ1ZSkgaXMgMS4yMzAwMDAwMTkwNzM0ODYzCitQQVNTIHZpZXcuZ2V0RmxvYXQzMig3LCB0
cnVlKSBpcyAxLjIzMDAwMDAxOTA3MzQ4NjMKK1BBU1Mgdmlldy5nZXRGbG9hdDMyKDEwLCB0cnVl
KSBpcyAxLjIzMDAwMDAxOTA3MzQ4NjMKK1BBU1Mgdmlldy5nZXRGbG9hdDMyKDAsIGZhbHNlKSBp
cyAxLjIzMDAwMDAxOTA3MzQ4NjMKK1BBU1Mgdmlldy5nZXRGbG9hdDMyKDMsIGZhbHNlKSBpcyAx
LjIzMDAwMDAxOTA3MzQ4NjMKK1BBU1Mgdmlldy5nZXRGbG9hdDMyKDcsIGZhbHNlKSBpcyAxLjIz
MDAwMDAxOTA3MzQ4NjMKK1BBU1Mgdmlldy5nZXRGbG9hdDMyKDEwLCBmYWxzZSkgaXMgMS4yMzAw
MDAwMTkwNzM0ODYzCitQQVNTIHZpZXcuZ2V0RmxvYXQzMigwLCB0cnVlKSBpcyAtNDU2MjEuMzcx
MDkzNzUKK1BBU1Mgdmlldy5nZXRGbG9hdDMyKDMsIHRydWUpIGlzIC00NTYyMS4zNzEwOTM3NQor
UEFTUyB2aWV3LmdldEZsb2F0MzIoNywgdHJ1ZSkgaXMgLTQ1NjIxLjM3MTA5Mzc1CitQQVNTIHZp
ZXcuZ2V0RmxvYXQzMigxMCwgdHJ1ZSkgaXMgLTQ1NjIxLjM3MTA5Mzc1CitQQVNTIHZpZXcuZ2V0
RmxvYXQzMigwLCBmYWxzZSkgaXMgLTQ1NjIxLjM3MTA5Mzc1CitQQVNTIHZpZXcuZ2V0RmxvYXQz
MigzLCBmYWxzZSkgaXMgLTQ1NjIxLjM3MTA5Mzc1CitQQVNTIHZpZXcuZ2V0RmxvYXQzMig3LCBm
YWxzZSkgaXMgLTQ1NjIxLjM3MTA5Mzc1CitQQVNTIHZpZXcuZ2V0RmxvYXQzMigxMCwgZmFsc2Up
IGlzIC00NTYyMS4zNzEwOTM3NQorUEFTUyB2aWV3LmdldEZsb2F0MzIoMCwgdHJ1ZSkgaXMgTmFO
CitQQVNTIHZpZXcuZ2V0RmxvYXQzMigzLCB0cnVlKSBpcyBOYU4KK1BBU1Mgdmlldy5nZXRGbG9h
dDMyKDcsIHRydWUpIGlzIE5hTgorUEFTUyB2aWV3LmdldEZsb2F0MzIoMTAsIHRydWUpIGlzIE5h
TgorUEFTUyB2aWV3LmdldEZsb2F0MzIoMCwgZmFsc2UpIGlzIE5hTgorUEFTUyB2aWV3LmdldEZs
b2F0MzIoMywgZmFsc2UpIGlzIE5hTgorUEFTUyB2aWV3LmdldEZsb2F0MzIoNywgZmFsc2UpIGlz
IE5hTgorUEFTUyB2aWV3LmdldEZsb2F0MzIoMTAsIGZhbHNlKSBpcyBOYU4KK1BBU1Mgdmlldy5n
ZXRGbG9hdDMyKDAsIHRydWUpIGlzIC1OYU4KK1BBU1Mgdmlldy5nZXRGbG9hdDMyKDMsIHRydWUp
IGlzIC1OYU4KK1BBU1Mgdmlldy5nZXRGbG9hdDMyKDcsIHRydWUpIGlzIC1OYU4KK1BBU1Mgdmll
dy5nZXRGbG9hdDMyKDEwLCB0cnVlKSBpcyAtTmFOCitQQVNTIHZpZXcuZ2V0RmxvYXQzMigwLCBm
YWxzZSkgaXMgLU5hTgorUEFTUyB2aWV3LmdldEZsb2F0MzIoMywgZmFsc2UpIGlzIC1OYU4KK1BB
U1Mgdmlldy5nZXRGbG9hdDMyKDcsIGZhbHNlKSBpcyAtTmFOCitQQVNTIHZpZXcuZ2V0RmxvYXQz
MigxMCwgZmFsc2UpIGlzIC1OYU4KK1BBU1Mgdmlldy5nZXRGbG9hdDY0KDAsIHRydWUpIGlzIDEw
CitQQVNTIHZpZXcuZ2V0RmxvYXQ2NCgzLCB0cnVlKSBpcyAxMAorUEFTUyB2aWV3LmdldEZsb2F0
NjQoNywgdHJ1ZSkgaXMgMTAKK1BBU1Mgdmlldy5nZXRGbG9hdDY0KDEwLCB0cnVlKSBpcyAxMAor
UEFTUyB2aWV3LmdldEZsb2F0NjQoMCwgZmFsc2UpIGlzIDEwCitQQVNTIHZpZXcuZ2V0RmxvYXQ2
NCgzLCBmYWxzZSkgaXMgMTAKK1BBU1Mgdmlldy5nZXRGbG9hdDY0KDcsIGZhbHNlKSBpcyAxMAor
UEFTUyB2aWV3LmdldEZsb2F0NjQoMTAsIGZhbHNlKSBpcyAxMAorUEFTUyB2aWV3LmdldEZsb2F0
NjQoMCwgdHJ1ZSkgaXMgMS4yMworUEFTUyB2aWV3LmdldEZsb2F0NjQoMywgdHJ1ZSkgaXMgMS4y
MworUEFTUyB2aWV3LmdldEZsb2F0NjQoNywgdHJ1ZSkgaXMgMS4yMworUEFTUyB2aWV3LmdldEZs
b2F0NjQoMTAsIHRydWUpIGlzIDEuMjMKK1BBU1Mgdmlldy5nZXRGbG9hdDY0KDAsIGZhbHNlKSBp
cyAxLjIzCitQQVNTIHZpZXcuZ2V0RmxvYXQ2NCgzLCBmYWxzZSkgaXMgMS4yMworUEFTUyB2aWV3
LmdldEZsb2F0NjQoNywgZmFsc2UpIGlzIDEuMjMKK1BBU1Mgdmlldy5nZXRGbG9hdDY0KDEwLCBm
YWxzZSkgaXMgMS4yMworUEFTUyB2aWV3LmdldEZsb2F0NjQoMCwgdHJ1ZSkgaXMgLTYyMTM1NzYu
NDgzOQorUEFTUyB2aWV3LmdldEZsb2F0NjQoMywgdHJ1ZSkgaXMgLTYyMTM1NzYuNDgzOQorUEFT
UyB2aWV3LmdldEZsb2F0NjQoNywgdHJ1ZSkgaXMgLTYyMTM1NzYuNDgzOQorUEFTUyB2aWV3Lmdl
dEZsb2F0NjQoMTAsIHRydWUpIGlzIC02MjEzNTc2LjQ4MzkKK1BBU1Mgdmlldy5nZXRGbG9hdDY0
KDAsIGZhbHNlKSBpcyAtNjIxMzU3Ni40ODM5CitQQVNTIHZpZXcuZ2V0RmxvYXQ2NCgzLCBmYWxz
ZSkgaXMgLTYyMTM1NzYuNDgzOQorUEFTUyB2aWV3LmdldEZsb2F0NjQoNywgZmFsc2UpIGlzIC02
MjEzNTc2LjQ4MzkKK1BBU1Mgdmlldy5nZXRGbG9hdDY0KDEwLCBmYWxzZSkgaXMgLTYyMTM1NzYu
NDgzOQorUEFTUyB2aWV3LmdldEZsb2F0NjQoMCwgdHJ1ZSkgaXMgTmFOCitQQVNTIHZpZXcuZ2V0
RmxvYXQ2NCgzLCB0cnVlKSBpcyBOYU4KK1BBU1Mgdmlldy5nZXRGbG9hdDY0KDcsIHRydWUpIGlz
IE5hTgorUEFTUyB2aWV3LmdldEZsb2F0NjQoMTAsIHRydWUpIGlzIE5hTgorUEFTUyB2aWV3Lmdl
dEZsb2F0NjQoMCwgZmFsc2UpIGlzIE5hTgorUEFTUyB2aWV3LmdldEZsb2F0NjQoMywgZmFsc2Up
IGlzIE5hTgorUEFTUyB2aWV3LmdldEZsb2F0NjQoNywgZmFsc2UpIGlzIE5hTgorUEFTUyB2aWV3
LmdldEZsb2F0NjQoMTAsIGZhbHNlKSBpcyBOYU4KK1BBU1Mgdmlldy5nZXRGbG9hdDY0KDAsIHRy
dWUpIGlzIC1OYU4KK1BBU1Mgdmlldy5nZXRGbG9hdDY0KDMsIHRydWUpIGlzIC1OYU4KK1BBU1Mg
dmlldy5nZXRGbG9hdDY0KDcsIHRydWUpIGlzIC1OYU4KK1BBU1Mgdmlldy5nZXRGbG9hdDY0KDEw
LCB0cnVlKSBpcyAtTmFOCitQQVNTIHZpZXcuZ2V0RmxvYXQ2NCgwLCBmYWxzZSkgaXMgLU5hTgor
UEFTUyB2aWV3LmdldEZsb2F0NjQoMywgZmFsc2UpIGlzIC1OYU4KK1BBU1Mgdmlldy5nZXRGbG9h
dDY0KDcsIGZhbHNlKSBpcyAtTmFOCitQQVNTIHZpZXcuZ2V0RmxvYXQ2NCgxMCwgZmFsc2UpIGlz
IC1OYU4KKworVGVzdCBmb3IgZ2V0IG1ldGhvZHMgdGhhdCBtaWdodCByZWFkIGJleW91bmQgcmFu
Z2UKK1BBU1Mgdmlldy5nZXRJbnQ4KDApIGlzIDAKK1BBU1Mgdmlldy5nZXRJbnQ4KDgpIHRocmV3
IGV4Y2VwdGlvbiBFcnJvcjogSU5ERVhfU0laRV9FUlI6IERPTSBFeGNlcHRpb24gMS4KK1BBU1Mg
dmlldy5nZXRJbnQ4KDE1KSB0aHJldyBleGNlcHRpb24gRXJyb3I6IElOREVYX1NJWkVfRVJSOiBE
T00gRXhjZXB0aW9uIDEuCitQQVNTIHZpZXcuZ2V0VWludDgoMCkgaXMgMAorUEFTUyB2aWV3Lmdl
dFVpbnQ4KDgpIHRocmV3IGV4Y2VwdGlvbiBFcnJvcjogSU5ERVhfU0laRV9FUlI6IERPTSBFeGNl
cHRpb24gMS4KK1BBU1Mgdmlldy5nZXRVaW50OCgxNSkgdGhyZXcgZXhjZXB0aW9uIEVycm9yOiBJ
TkRFWF9TSVpFX0VSUjogRE9NIEV4Y2VwdGlvbiAxLgorUEFTUyB2aWV3LmdldEludDE2KDAsIHRy
dWUpIGlzIDI1NgorUEFTUyB2aWV3LmdldEludDE2KDUsIHRydWUpIHRocmV3IGV4Y2VwdGlvbiBF
cnJvcjogSU5ERVhfU0laRV9FUlI6IERPTSBFeGNlcHRpb24gMS4KK1BBU1Mgdmlldy5nZXRJbnQx
Nig5LCB0cnVlKSB0aHJldyBleGNlcHRpb24gRXJyb3I6IElOREVYX1NJWkVfRVJSOiBET00gRXhj
ZXB0aW9uIDEuCitQQVNTIHZpZXcuZ2V0SW50MTYoMTQsIHRydWUpIHRocmV3IGV4Y2VwdGlvbiBF
cnJvcjogSU5ERVhfU0laRV9FUlI6IERPTSBFeGNlcHRpb24gMS4KK1BBU1Mgdmlldy5nZXRJbnQx
NigwKSBpcyAxCitQQVNTIHZpZXcuZ2V0SW50MTYoNSkgdGhyZXcgZXhjZXB0aW9uIEVycm9yOiBJ
TkRFWF9TSVpFX0VSUjogRE9NIEV4Y2VwdGlvbiAxLgorUEFTUyB2aWV3LmdldEludDE2KDkpIHRo
cmV3IGV4Y2VwdGlvbiBFcnJvcjogSU5ERVhfU0laRV9FUlI6IERPTSBFeGNlcHRpb24gMS4KK1BB
U1Mgdmlldy5nZXRJbnQxNigxNCkgdGhyZXcgZXhjZXB0aW9uIEVycm9yOiBJTkRFWF9TSVpFX0VS
UjogRE9NIEV4Y2VwdGlvbiAxLgorUEFTUyB2aWV3LmdldFVpbnQxNigwLCB0cnVlKSBpcyAyNTYK
K1BBU1Mgdmlldy5nZXRVaW50MTYoNSwgdHJ1ZSkgdGhyZXcgZXhjZXB0aW9uIEVycm9yOiBJTkRF
WF9TSVpFX0VSUjogRE9NIEV4Y2VwdGlvbiAxLgorUEFTUyB2aWV3LmdldFVpbnQxNig5LCB0cnVl
KSB0aHJldyBleGNlcHRpb24gRXJyb3I6IElOREVYX1NJWkVfRVJSOiBET00gRXhjZXB0aW9uIDEu
CitQQVNTIHZpZXcuZ2V0VWludDE2KDE0LCB0cnVlKSB0aHJldyBleGNlcHRpb24gRXJyb3I6IElO
REVYX1NJWkVfRVJSOiBET00gRXhjZXB0aW9uIDEuCitQQVNTIHZpZXcuZ2V0VWludDE2KDApIGlz
IDEKK1BBU1Mgdmlldy5nZXRVaW50MTYoNSkgdGhyZXcgZXhjZXB0aW9uIEVycm9yOiBJTkRFWF9T
SVpFX0VSUjogRE9NIEV4Y2VwdGlvbiAxLgorUEFTUyB2aWV3LmdldFVpbnQxNig5KSB0aHJldyBl
eGNlcHRpb24gRXJyb3I6IElOREVYX1NJWkVfRVJSOiBET00gRXhjZXB0aW9uIDEuCitQQVNTIHZp
ZXcuZ2V0VWludDE2KDE0KSB0aHJldyBleGNlcHRpb24gRXJyb3I6IElOREVYX1NJWkVfRVJSOiBE
T00gRXhjZXB0aW9uIDEuCitQQVNTIHZpZXcuZ2V0SW50MzIoMCwgdHJ1ZSkgdGhyZXcgZXhjZXB0
aW9uIEVycm9yOiBJTkRFWF9TSVpFX0VSUjogRE9NIEV4Y2VwdGlvbiAxLgorUEFTUyB2aWV3Lmdl
dEludDMyKDMsIHRydWUpIHRocmV3IGV4Y2VwdGlvbiBFcnJvcjogSU5ERVhfU0laRV9FUlI6IERP
TSBFeGNlcHRpb24gMS4KK1BBU1Mgdmlldy5nZXRJbnQzMig2LCB0cnVlKSB0aHJldyBleGNlcHRp
b24gRXJyb3I6IElOREVYX1NJWkVfRVJSOiBET00gRXhjZXB0aW9uIDEuCitQQVNTIHZpZXcuZ2V0
SW50MzIoOSwgdHJ1ZSkgdGhyZXcgZXhjZXB0aW9uIEVycm9yOiBJTkRFWF9TSVpFX0VSUjogRE9N
IEV4Y2VwdGlvbiAxLgorUEFTUyB2aWV3LmdldEludDMyKDEyLCB0cnVlKSB0aHJldyBleGNlcHRp
b24gRXJyb3I6IElOREVYX1NJWkVfRVJSOiBET00gRXhjZXB0aW9uIDEuCitQQVNTIHZpZXcuZ2V0
SW50MzIoMCkgdGhyZXcgZXhjZXB0aW9uIEVycm9yOiBJTkRFWF9TSVpFX0VSUjogRE9NIEV4Y2Vw
dGlvbiAxLgorUEFTUyB2aWV3LmdldEludDMyKDMpIHRocmV3IGV4Y2VwdGlvbiBFcnJvcjogSU5E
RVhfU0laRV9FUlI6IERPTSBFeGNlcHRpb24gMS4KK1BBU1Mgdmlldy5nZXRJbnQzMig2KSB0aHJl
dyBleGNlcHRpb24gRXJyb3I6IElOREVYX1NJWkVfRVJSOiBET00gRXhjZXB0aW9uIDEuCitQQVNT
IHZpZXcuZ2V0SW50MzIoOSkgdGhyZXcgZXhjZXB0aW9uIEVycm9yOiBJTkRFWF9TSVpFX0VSUjog
RE9NIEV4Y2VwdGlvbiAxLgorUEFTUyB2aWV3LmdldEludDMyKDEyKSB0aHJldyBleGNlcHRpb24g
RXJyb3I6IElOREVYX1NJWkVfRVJSOiBET00gRXhjZXB0aW9uIDEuCitQQVNTIHZpZXcuZ2V0VWlu
dDMyKDAsIHRydWUpIHRocmV3IGV4Y2VwdGlvbiBFcnJvcjogSU5ERVhfU0laRV9FUlI6IERPTSBF
eGNlcHRpb24gMS4KK1BBU1Mgdmlldy5nZXRVaW50MzIoMywgdHJ1ZSkgdGhyZXcgZXhjZXB0aW9u
IEVycm9yOiBJTkRFWF9TSVpFX0VSUjogRE9NIEV4Y2VwdGlvbiAxLgorUEFTUyB2aWV3LmdldFVp
bnQzMig2LCB0cnVlKSB0aHJldyBleGNlcHRpb24gRXJyb3I6IElOREVYX1NJWkVfRVJSOiBET00g
RXhjZXB0aW9uIDEuCitQQVNTIHZpZXcuZ2V0VWludDMyKDksIHRydWUpIHRocmV3IGV4Y2VwdGlv
biBFcnJvcjogSU5ERVhfU0laRV9FUlI6IERPTSBFeGNlcHRpb24gMS4KK1BBU1Mgdmlldy5nZXRV
aW50MzIoMTIsIHRydWUpIHRocmV3IGV4Y2VwdGlvbiBFcnJvcjogSU5ERVhfU0laRV9FUlI6IERP
TSBFeGNlcHRpb24gMS4KK1BBU1Mgdmlldy5nZXRVaW50MzIoMCkgdGhyZXcgZXhjZXB0aW9uIEVy
cm9yOiBJTkRFWF9TSVpFX0VSUjogRE9NIEV4Y2VwdGlvbiAxLgorUEFTUyB2aWV3LmdldFVpbnQz
MigzKSB0aHJldyBleGNlcHRpb24gRXJyb3I6IElOREVYX1NJWkVfRVJSOiBET00gRXhjZXB0aW9u
IDEuCitQQVNTIHZpZXcuZ2V0VWludDMyKDYpIHRocmV3IGV4Y2VwdGlvbiBFcnJvcjogSU5ERVhf
U0laRV9FUlI6IERPTSBFeGNlcHRpb24gMS4KK1BBU1Mgdmlldy5nZXRVaW50MzIoOSkgdGhyZXcg
ZXhjZXB0aW9uIEVycm9yOiBJTkRFWF9TSVpFX0VSUjogRE9NIEV4Y2VwdGlvbiAxLgorUEFTUyB2
aWV3LmdldFVpbnQzMigxMikgdGhyZXcgZXhjZXB0aW9uIEVycm9yOiBJTkRFWF9TSVpFX0VSUjog
RE9NIEV4Y2VwdGlvbiAxLgorUEFTUyB2aWV3LmdldEZsb2F0MzIoMCwgdHJ1ZSkgdGhyZXcgZXhj
ZXB0aW9uIEVycm9yOiBJTkRFWF9TSVpFX0VSUjogRE9NIEV4Y2VwdGlvbiAxLgorUEFTUyB2aWV3
LmdldEZsb2F0MzIoMywgdHJ1ZSkgdGhyZXcgZXhjZXB0aW9uIEVycm9yOiBJTkRFWF9TSVpFX0VS
UjogRE9NIEV4Y2VwdGlvbiAxLgorUEFTUyB2aWV3LmdldEZsb2F0MzIoNywgdHJ1ZSkgdGhyZXcg
ZXhjZXB0aW9uIEVycm9yOiBJTkRFWF9TSVpFX0VSUjogRE9NIEV4Y2VwdGlvbiAxLgorUEFTUyB2
aWV3LmdldEZsb2F0MzIoMTAsIHRydWUpIHRocmV3IGV4Y2VwdGlvbiBFcnJvcjogSU5ERVhfU0la
RV9FUlI6IERPTSBFeGNlcHRpb24gMS4KK1BBU1Mgdmlldy5nZXRGbG9hdDMyKDAsIGZhbHNlKSBp
cyAxMAorUEFTUyB2aWV3LmdldEZsb2F0MzIoMywgZmFsc2UpIGlzIDEwCitQQVNTIHZpZXcuZ2V0
RmxvYXQzMig3LCBmYWxzZSkgaXMgMTAKK1BBU1Mgdmlldy5nZXRGbG9hdDMyKDEwLCBmYWxzZSkg
aXMgMTAKK1BBU1Mgdmlldy5nZXRGbG9hdDMyKDAsIHRydWUpIHRocmV3IGV4Y2VwdGlvbiBFcnJv
cjogSU5ERVhfU0laRV9FUlI6IERPTSBFeGNlcHRpb24gMS4KK1BBU1Mgdmlldy5nZXRGbG9hdDMy
KDMsIHRydWUpIHRocmV3IGV4Y2VwdGlvbiBFcnJvcjogSU5ERVhfU0laRV9FUlI6IERPTSBFeGNl
cHRpb24gMS4KK1BBU1Mgdmlldy5nZXRGbG9hdDMyKDcsIHRydWUpIHRocmV3IGV4Y2VwdGlvbiBF
cnJvcjogSU5ERVhfU0laRV9FUlI6IERPTSBFeGNlcHRpb24gMS4KK1BBU1Mgdmlldy5nZXRGbG9h
dDMyKDEwLCB0cnVlKSB0aHJldyBleGNlcHRpb24gRXJyb3I6IElOREVYX1NJWkVfRVJSOiBET00g
RXhjZXB0aW9uIDEuCitQQVNTIHZpZXcuZ2V0RmxvYXQzMigwLCBmYWxzZSkgaXMgMS4yMzAwMDAw
MTkwNzM0ODYzCitQQVNTIHZpZXcuZ2V0RmxvYXQzMigzLCBmYWxzZSkgaXMgMS4yMzAwMDAwMTkw
NzM0ODYzCitQQVNTIHZpZXcuZ2V0RmxvYXQzMig3LCBmYWxzZSkgaXMgMS4yMzAwMDAwMTkwNzM0
ODYzCitQQVNTIHZpZXcuZ2V0RmxvYXQzMigxMCwgZmFsc2UpIGlzIDEuMjMwMDAwMDE5MDczNDg2
MworUEFTUyB2aWV3LmdldEZsb2F0MzIoMCwgdHJ1ZSkgdGhyZXcgZXhjZXB0aW9uIEVycm9yOiBJ
TkRFWF9TSVpFX0VSUjogRE9NIEV4Y2VwdGlvbiAxLgorUEFTUyB2aWV3LmdldEZsb2F0MzIoMywg
dHJ1ZSkgdGhyZXcgZXhjZXB0aW9uIEVycm9yOiBJTkRFWF9TSVpFX0VSUjogRE9NIEV4Y2VwdGlv
biAxLgorUEFTUyB2aWV3LmdldEZsb2F0MzIoNywgdHJ1ZSkgdGhyZXcgZXhjZXB0aW9uIEVycm9y
OiBJTkRFWF9TSVpFX0VSUjogRE9NIEV4Y2VwdGlvbiAxLgorUEFTUyB2aWV3LmdldEZsb2F0MzIo
MTAsIHRydWUpIHRocmV3IGV4Y2VwdGlvbiBFcnJvcjogSU5ERVhfU0laRV9FUlI6IERPTSBFeGNl
cHRpb24gMS4KK1BBU1Mgdmlldy5nZXRGbG9hdDMyKDAsIGZhbHNlKSBpcyAtNDU2MjEuMzcxMDkz
NzUKK1BBU1Mgdmlldy5nZXRGbG9hdDMyKDMsIGZhbHNlKSBpcyAtNDU2MjEuMzcxMDkzNzUKK1BB
U1Mgdmlldy5nZXRGbG9hdDMyKDcsIGZhbHNlKSBpcyAtNDU2MjEuMzcxMDkzNzUKK1BBU1Mgdmll
dy5nZXRGbG9hdDMyKDEwLCBmYWxzZSkgaXMgLTQ1NjIxLjM3MTA5Mzc1CitQQVNTIHZpZXcuZ2V0
RmxvYXQzMigwLCB0cnVlKSB0aHJldyBleGNlcHRpb24gRXJyb3I6IElOREVYX1NJWkVfRVJSOiBE
T00gRXhjZXB0aW9uIDEuCitQQVNTIHZpZXcuZ2V0RmxvYXQzMigzLCB0cnVlKSB0aHJldyBleGNl
cHRpb24gRXJyb3I6IElOREVYX1NJWkVfRVJSOiBET00gRXhjZXB0aW9uIDEuCitQQVNTIHZpZXcu
Z2V0RmxvYXQzMig3LCB0cnVlKSB0aHJldyBleGNlcHRpb24gRXJyb3I6IElOREVYX1NJWkVfRVJS
OiBET00gRXhjZXB0aW9uIDEuCitQQVNTIHZpZXcuZ2V0RmxvYXQzMigxMCwgdHJ1ZSkgdGhyZXcg
ZXhjZXB0aW9uIEVycm9yOiBJTkRFWF9TSVpFX0VSUjogRE9NIEV4Y2VwdGlvbiAxLgorUEFTUyB2
aWV3LmdldEZsb2F0MzIoMCwgZmFsc2UpIGlzIE5hTgorUEFTUyB2aWV3LmdldEZsb2F0MzIoMywg
ZmFsc2UpIGlzIE5hTgorUEFTUyB2aWV3LmdldEZsb2F0MzIoNywgZmFsc2UpIGlzIE5hTgorUEFT
UyB2aWV3LmdldEZsb2F0MzIoMTAsIGZhbHNlKSBpcyBOYU4KK1BBU1Mgdmlldy5nZXRGbG9hdDMy
KDAsIHRydWUpIHRocmV3IGV4Y2VwdGlvbiBFcnJvcjogSU5ERVhfU0laRV9FUlI6IERPTSBFeGNl
cHRpb24gMS4KK1BBU1Mgdmlldy5nZXRGbG9hdDMyKDMsIHRydWUpIHRocmV3IGV4Y2VwdGlvbiBF
cnJvcjogSU5ERVhfU0laRV9FUlI6IERPTSBFeGNlcHRpb24gMS4KK1BBU1Mgdmlldy5nZXRGbG9h
dDMyKDcsIHRydWUpIHRocmV3IGV4Y2VwdGlvbiBFcnJvcjogSU5ERVhfU0laRV9FUlI6IERPTSBF
eGNlcHRpb24gMS4KK1BBU1Mgdmlldy5nZXRGbG9hdDMyKDEwLCB0cnVlKSB0aHJldyBleGNlcHRp
b24gRXJyb3I6IElOREVYX1NJWkVfRVJSOiBET00gRXhjZXB0aW9uIDEuCitQQVNTIHZpZXcuZ2V0
RmxvYXQzMigwLCBmYWxzZSkgaXMgLU5hTgorUEFTUyB2aWV3LmdldEZsb2F0MzIoMywgZmFsc2Up
IGlzIC1OYU4KK1BBU1Mgdmlldy5nZXRGbG9hdDMyKDcsIGZhbHNlKSBpcyAtTmFOCitQQVNTIHZp
ZXcuZ2V0RmxvYXQzMigxMCwgZmFsc2UpIGlzIC1OYU4KK1BBU1Mgdmlldy5nZXRGbG9hdDY0KDAs
IHRydWUpIHRocmV3IGV4Y2VwdGlvbiBFcnJvcjogSU5ERVhfU0laRV9FUlI6IERPTSBFeGNlcHRp
b24gMS4KK1BBU1Mgdmlldy5nZXRGbG9hdDY0KDMsIHRydWUpIHRocmV3IGV4Y2VwdGlvbiBFcnJv
cjogSU5ERVhfU0laRV9FUlI6IERPTSBFeGNlcHRpb24gMS4KK1BBU1Mgdmlldy5nZXRGbG9hdDY0
KDcsIHRydWUpIHRocmV3IGV4Y2VwdGlvbiBFcnJvcjogSU5ERVhfU0laRV9FUlI6IERPTSBFeGNl
cHRpb24gMS4KK1BBU1Mgdmlldy5nZXRGbG9hdDY0KDEwLCB0cnVlKSB0aHJldyBleGNlcHRpb24g
RXJyb3I6IElOREVYX1NJWkVfRVJSOiBET00gRXhjZXB0aW9uIDEuCitQQVNTIHZpZXcuZ2V0Rmxv
YXQ2NCgwLCBmYWxzZSkgaXMgMTAKK1BBU1Mgdmlldy5nZXRGbG9hdDY0KDMsIGZhbHNlKSBpcyAx
MAorUEFTUyB2aWV3LmdldEZsb2F0NjQoNywgZmFsc2UpIGlzIDEwCitQQVNTIHZpZXcuZ2V0Rmxv
YXQ2NCgxMCwgZmFsc2UpIGlzIDEwCitQQVNTIHZpZXcuZ2V0RmxvYXQ2NCgwLCB0cnVlKSB0aHJl
dyBleGNlcHRpb24gRXJyb3I6IElOREVYX1NJWkVfRVJSOiBET00gRXhjZXB0aW9uIDEuCitQQVNT
IHZpZXcuZ2V0RmxvYXQ2NCgzLCB0cnVlKSB0aHJldyBleGNlcHRpb24gRXJyb3I6IElOREVYX1NJ
WkVfRVJSOiBET00gRXhjZXB0aW9uIDEuCitQQVNTIHZpZXcuZ2V0RmxvYXQ2NCg3LCB0cnVlKSB0
aHJldyBleGNlcHRpb24gRXJyb3I6IElOREVYX1NJWkVfRVJSOiBET00gRXhjZXB0aW9uIDEuCitQ
QVNTIHZpZXcuZ2V0RmxvYXQ2NCgxMCwgdHJ1ZSkgdGhyZXcgZXhjZXB0aW9uIEVycm9yOiBJTkRF
WF9TSVpFX0VSUjogRE9NIEV4Y2VwdGlvbiAxLgorUEFTUyB2aWV3LmdldEZsb2F0NjQoMCwgZmFs
c2UpIGlzIDEuMjMKK1BBU1Mgdmlldy5nZXRGbG9hdDY0KDMsIGZhbHNlKSBpcyAxLjIzCitQQVNT
IHZpZXcuZ2V0RmxvYXQ2NCg3LCBmYWxzZSkgaXMgMS4yMworUEFTUyB2aWV3LmdldEZsb2F0NjQo
MTAsIGZhbHNlKSBpcyAxLjIzCitQQVNTIHZpZXcuZ2V0RmxvYXQ2NCgwLCB0cnVlKSB0aHJldyBl
eGNlcHRpb24gRXJyb3I6IElOREVYX1NJWkVfRVJSOiBET00gRXhjZXB0aW9uIDEuCitQQVNTIHZp
ZXcuZ2V0RmxvYXQ2NCgzLCB0cnVlKSB0aHJldyBleGNlcHRpb24gRXJyb3I6IElOREVYX1NJWkVf
RVJSOiBET00gRXhjZXB0aW9uIDEuCitQQVNTIHZpZXcuZ2V0RmxvYXQ2NCg3LCB0cnVlKSB0aHJl
dyBleGNlcHRpb24gRXJyb3I6IElOREVYX1NJWkVfRVJSOiBET00gRXhjZXB0aW9uIDEuCitQQVNT
IHZpZXcuZ2V0RmxvYXQ2NCgxMCwgdHJ1ZSkgdGhyZXcgZXhjZXB0aW9uIEVycm9yOiBJTkRFWF9T
SVpFX0VSUjogRE9NIEV4Y2VwdGlvbiAxLgorUEFTUyB2aWV3LmdldEZsb2F0NjQoMCwgZmFsc2Up
IGlzIC02MjEzNTc2LjQ4MzkKK1BBU1Mgdmlldy5nZXRGbG9hdDY0KDMsIGZhbHNlKSBpcyAtNjIx
MzU3Ni40ODM5CitQQVNTIHZpZXcuZ2V0RmxvYXQ2NCg3LCBmYWxzZSkgaXMgLTYyMTM1NzYuNDgz
OQorUEFTUyB2aWV3LmdldEZsb2F0NjQoMTAsIGZhbHNlKSBpcyAtNjIxMzU3Ni40ODM5CitQQVNT
IHZpZXcuZ2V0RmxvYXQ2NCgwLCB0cnVlKSB0aHJldyBleGNlcHRpb24gRXJyb3I6IElOREVYX1NJ
WkVfRVJSOiBET00gRXhjZXB0aW9uIDEuCitQQVNTIHZpZXcuZ2V0RmxvYXQ2NCgzLCB0cnVlKSB0
aHJldyBleGNlcHRpb24gRXJyb3I6IElOREVYX1NJWkVfRVJSOiBET00gRXhjZXB0aW9uIDEuCitQ
QVNTIHZpZXcuZ2V0RmxvYXQ2NCg3LCB0cnVlKSB0aHJldyBleGNlcHRpb24gRXJyb3I6IElOREVY
X1NJWkVfRVJSOiBET00gRXhjZXB0aW9uIDEuCitQQVNTIHZpZXcuZ2V0RmxvYXQ2NCgxMCwgdHJ1
ZSkgdGhyZXcgZXhjZXB0aW9uIEVycm9yOiBJTkRFWF9TSVpFX0VSUjogRE9NIEV4Y2VwdGlvbiAx
LgorUEFTUyB2aWV3LmdldEZsb2F0NjQoMCwgZmFsc2UpIGlzIE5hTgorUEFTUyB2aWV3LmdldEZs
b2F0NjQoMywgZmFsc2UpIGlzIE5hTgorUEFTUyB2aWV3LmdldEZsb2F0NjQoNywgZmFsc2UpIGlz
IE5hTgorUEFTUyB2aWV3LmdldEZsb2F0NjQoMTAsIGZhbHNlKSBpcyBOYU4KK1BBU1Mgdmlldy5n
ZXRGbG9hdDY0KDAsIHRydWUpIHRocmV3IGV4Y2VwdGlvbiBFcnJvcjogSU5ERVhfU0laRV9FUlI6
IERPTSBFeGNlcHRpb24gMS4KK1BBU1Mgdmlldy5nZXRGbG9hdDY0KDMsIHRydWUpIHRocmV3IGV4
Y2VwdGlvbiBFcnJvcjogSU5ERVhfU0laRV9FUlI6IERPTSBFeGNlcHRpb24gMS4KK1BBU1Mgdmll
dy5nZXRGbG9hdDY0KDcsIHRydWUpIHRocmV3IGV4Y2VwdGlvbiBFcnJvcjogSU5ERVhfU0laRV9F
UlI6IERPTSBFeGNlcHRpb24gMS4KK1BBU1Mgdmlldy5nZXRGbG9hdDY0KDEwLCB0cnVlKSB0aHJl
dyBleGNlcHRpb24gRXJyb3I6IElOREVYX1NJWkVfRVJSOiBET00gRXhjZXB0aW9uIDEuCitQQVNT
IHZpZXcuZ2V0RmxvYXQ2NCgwLCBmYWxzZSkgaXMgLU5hTgorUEFTUyB2aWV3LmdldEZsb2F0NjQo
MywgZmFsc2UpIGlzIC1OYU4KK1BBU1Mgdmlldy5nZXRGbG9hdDY0KDcsIGZhbHNlKSBpcyAtTmFO
CitQQVNTIHZpZXcuZ2V0RmxvYXQ2NCgxMCwgZmFsc2UpIGlzIC1OYU4KKworVGVzdCBmb3Igd3Jv
bmcgYXJndW1lbnRzIHBhc3NlZCB0byBnZXQgbWV0aG9kcworUEFTUyB2aWV3LmdldEludDgoKSB0
aHJldyBleGNlcHRpb24gU3ludGF4RXJyb3I6IE5vdCBlbm91Z2ggYXJndW1lbnRzLgorUEFTUyB2
aWV3LmdldFVpbnQ4KCkgdGhyZXcgZXhjZXB0aW9uIFN5bnRheEVycm9yOiBOb3QgZW5vdWdoIGFy
Z3VtZW50cy4KK1BBU1Mgdmlldy5nZXRJbnQxNigpIHRocmV3IGV4Y2VwdGlvbiBTeW50YXhFcnJv
cjogTm90IGVub3VnaCBhcmd1bWVudHMuCitQQVNTIHZpZXcuZ2V0VWludDE2KCkgdGhyZXcgZXhj
ZXB0aW9uIFN5bnRheEVycm9yOiBOb3QgZW5vdWdoIGFyZ3VtZW50cy4KK1BBU1Mgdmlldy5nZXRJ
bnQzMigpIHRocmV3IGV4Y2VwdGlvbiBTeW50YXhFcnJvcjogTm90IGVub3VnaCBhcmd1bWVudHMu
CitQQVNTIHZpZXcuZ2V0VWludDMyKCkgdGhyZXcgZXhjZXB0aW9uIFN5bnRheEVycm9yOiBOb3Qg
ZW5vdWdoIGFyZ3VtZW50cy4KK1BBU1Mgdmlldy5nZXRGbG9hdDMyKCkgdGhyZXcgZXhjZXB0aW9u
IFN5bnRheEVycm9yOiBOb3QgZW5vdWdoIGFyZ3VtZW50cy4KK1BBU1Mgdmlldy5nZXRGbG9hdDY0
KCkgdGhyZXcgZXhjZXB0aW9uIFN5bnRheEVycm9yOiBOb3QgZW5vdWdoIGFyZ3VtZW50cy4KKwor
VGVzdCBmb3Igc2V0IG1ldGhvZHMgdGhhdCB3b3JrCitQQVNTIHZpZXcuc2V0SW50OCgwLCAwKSBp
cyB1bmRlZmluZWQuCitQQVNTIHZpZXcuZ2V0SW50OCgwKSBpcyAwCitQQVNTIHZpZXcuc2V0SW50
OCg4LCAtMTI4KSBpcyB1bmRlZmluZWQuCitQQVNTIHZpZXcuZ2V0SW50OCg4KSBpcyAtMTI4CitQ
QVNTIHZpZXcuc2V0SW50OCgxNSwgLTEpIGlzIHVuZGVmaW5lZC4KK1BBU1Mgdmlldy5nZXRJbnQ4
KDE1KSBpcyAtMQorUEFTUyB2aWV3LnNldFVpbnQ4KDAsIDApIGlzIHVuZGVmaW5lZC4KK1BBU1Mg
dmlldy5nZXRVaW50OCgwKSBpcyAwCitQQVNTIHZpZXcuc2V0VWludDgoOCwgMTI4KSBpcyB1bmRl
ZmluZWQuCitQQVNTIHZpZXcuZ2V0VWludDgoOCkgaXMgMTI4CitQQVNTIHZpZXcuc2V0VWludDgo
MTUsIDI1NSkgaXMgdW5kZWZpbmVkLgorUEFTUyB2aWV3LmdldFVpbnQ4KDE1KSBpcyAyNTUKK1BB
U1Mgdmlldy5zZXRJbnQxNigwLCAyNTYsIHRydWUpIGlzIHVuZGVmaW5lZC4KK1BBU1Mgdmlldy5n
ZXRJbnQxNigwLCB0cnVlKSBpcyAyNTYKK1BBU1Mgdmlldy5zZXRJbnQxNig1LCAyNjIxMywgdHJ1
ZSkgaXMgdW5kZWZpbmVkLgorUEFTUyB2aWV3LmdldEludDE2KDUsIHRydWUpIGlzIDI2MjEzCitQ
QVNTIHZpZXcuc2V0SW50MTYoOSwgLTMyMTI3LCB0cnVlKSBpcyB1bmRlZmluZWQuCitQQVNTIHZp
ZXcuZ2V0SW50MTYoOSwgdHJ1ZSkgaXMgLTMyMTI3CitQQVNTIHZpZXcuc2V0SW50MTYoMTQsIC0y
LCB0cnVlKSBpcyB1bmRlZmluZWQuCitQQVNTIHZpZXcuZ2V0SW50MTYoMTQsIHRydWUpIGlzIC0y
CitQQVNTIHZpZXcuc2V0SW50MTYoMCwgMSkgaXMgdW5kZWZpbmVkLgorUEFTUyB2aWV3LmdldElu
dDE2KDApIGlzIDEKK1BBU1Mgdmlldy5zZXRJbnQxNig1LCAyNTk1OCkgaXMgdW5kZWZpbmVkLgor
UEFTUyB2aWV3LmdldEludDE2KDUpIGlzIDI1OTU4CitQQVNTIHZpZXcuc2V0SW50MTYoOSwgLTMy
MzgyKSBpcyB1bmRlZmluZWQuCitQQVNTIHZpZXcuZ2V0SW50MTYoOSkgaXMgLTMyMzgyCitQQVNT
IHZpZXcuc2V0SW50MTYoMTQsIC0yNTcpIGlzIHVuZGVmaW5lZC4KK1BBU1Mgdmlldy5nZXRJbnQx
NigxNCkgaXMgLTI1NworUEFTUyB2aWV3LnNldFVpbnQxNigwLCAyNTYsIHRydWUpIGlzIHVuZGVm
aW5lZC4KK1BBU1Mgdmlldy5nZXRVaW50MTYoMCwgdHJ1ZSkgaXMgMjU2CitQQVNTIHZpZXcuc2V0
VWludDE2KDUsIDI2MjEzLCB0cnVlKSBpcyB1bmRlZmluZWQuCitQQVNTIHZpZXcuZ2V0VWludDE2
KDUsIHRydWUpIGlzIDI2MjEzCitQQVNTIHZpZXcuc2V0VWludDE2KDksIDMzNDA5LCB0cnVlKSBp
cyB1bmRlZmluZWQuCitQQVNTIHZpZXcuZ2V0VWludDE2KDksIHRydWUpIGlzIDMzNDA5CitQQVNT
IHZpZXcuc2V0VWludDE2KDE0LCA2NTUzNCwgdHJ1ZSkgaXMgdW5kZWZpbmVkLgorUEFTUyB2aWV3
LmdldFVpbnQxNigxNCwgdHJ1ZSkgaXMgNjU1MzQKK1BBU1Mgdmlldy5zZXRVaW50MTYoMCwgMSkg
aXMgdW5kZWZpbmVkLgorUEFTUyB2aWV3LmdldFVpbnQxNigwKSBpcyAxCitQQVNTIHZpZXcuc2V0
VWludDE2KDUsIDI1OTU4KSBpcyB1bmRlZmluZWQuCitQQVNTIHZpZXcuZ2V0VWludDE2KDUpIGlz
IDI1OTU4CitQQVNTIHZpZXcuc2V0VWludDE2KDksIDMzMTU0KSBpcyB1bmRlZmluZWQuCitQQVNT
IHZpZXcuZ2V0VWludDE2KDkpIGlzIDMzMTU0CitQQVNTIHZpZXcuc2V0VWludDE2KDE0LCA2NTI3
OSkgaXMgdW5kZWZpbmVkLgorUEFTUyB2aWV3LmdldFVpbnQxNigxNCkgaXMgNjUyNzkKK1BBU1Mg
dmlldy5zZXRJbnQzMigwLCA1MDQ2Mjk3NiwgdHJ1ZSkgaXMgdW5kZWZpbmVkLgorUEFTUyB2aWV3
LmdldEludDMyKDAsIHRydWUpIGlzIDUwNDYyOTc2CitQQVNTIHZpZXcuc2V0SW50MzIoMywgMTcx
NzkyMDc3MSwgdHJ1ZSkgaXMgdW5kZWZpbmVkLgorUEFTUyB2aWV3LmdldEludDMyKDMsIHRydWUp
IGlzIDE3MTc5MjA3NzEKK1BBU1Mgdmlldy5zZXRJbnQzMig2LCAtMjEyMjI5MTM1NCwgdHJ1ZSkg
aXMgdW5kZWZpbmVkLgorUEFTUyB2aWV3LmdldEludDMyKDYsIHRydWUpIGlzIC0yMTIyMjkxMzU0
CitQQVNTIHZpZXcuc2V0SW50MzIoOSwgLTU4NDkwMjM5LCB0cnVlKSBpcyB1bmRlZmluZWQuCitQ
QVNTIHZpZXcuZ2V0SW50MzIoOSwgdHJ1ZSkgaXMgLTU4NDkwMjM5CitQQVNTIHZpZXcuc2V0SW50
MzIoMTIsIC02NjA1MiwgdHJ1ZSkgaXMgdW5kZWZpbmVkLgorUEFTUyB2aWV3LmdldEludDMyKDEy
LCB0cnVlKSBpcyAtNjYwNTIKK1BBU1Mgdmlldy5zZXRJbnQzMigwLCA2NjA1MSkgaXMgdW5kZWZp
bmVkLgorUEFTUyB2aWV3LmdldEludDMyKDApIGlzIDY2MDUxCitQQVNTIHZpZXcuc2V0SW50MzIo
MywgNTY5MTEyMDYpIGlzIHVuZGVmaW5lZC4KK1BBU1Mgdmlldy5nZXRJbnQzMigzKSBpcyA1Njkx
MTIwNgorUEFTUyB2aWV3LnNldEludDMyKDYsIDE3MTgwNTkxMzcpIGlzIHVuZGVmaW5lZC4KK1BB
U1Mgdmlldy5nZXRJbnQzMig2KSBpcyAxNzE4MDU5MTM3CitQQVNTIHZpZXcuc2V0SW50MzIoOSwg
LTIxMjIxNTI5NjQpIGlzIHVuZGVmaW5lZC4KK1BBU1Mgdmlldy5nZXRJbnQzMig5KSBpcyAtMjEy
MjE1Mjk2NAorUEFTUyB2aWV3LnNldEludDMyKDEyLCAtNTA0NjI5NzcpIGlzIHVuZGVmaW5lZC4K
K1BBU1Mgdmlldy5nZXRJbnQzMigxMikgaXMgLTUwNDYyOTc3CitQQVNTIHZpZXcuc2V0VWludDMy
KDAsIDUwNDYyOTc2LCB0cnVlKSBpcyB1bmRlZmluZWQuCitQQVNTIHZpZXcuZ2V0VWludDMyKDAs
IHRydWUpIGlzIDUwNDYyOTc2CitQQVNTIHZpZXcuc2V0VWludDMyKDMsIDE3MTc5MjA3NzEsIHRy
dWUpIGlzIHVuZGVmaW5lZC4KK1BBU1Mgdmlldy5nZXRVaW50MzIoMywgdHJ1ZSkgaXMgMTcxNzky
MDc3MQorUEFTUyB2aWV3LnNldFVpbnQzMig2LCAyMTcyNjc1OTQyLCB0cnVlKSBpcyB1bmRlZmlu
ZWQuCitQQVNTIHZpZXcuZ2V0VWludDMyKDYsIHRydWUpIGlzIDIxNzI2NzU5NDIKK1BBU1Mgdmll
dy5zZXRVaW50MzIoOSwgNDIzNjQ3NzA1NywgdHJ1ZSkgaXMgdW5kZWZpbmVkLgorUEFTUyB2aWV3
LmdldFVpbnQzMig5LCB0cnVlKSBpcyA0MjM2NDc3MDU3CitQQVNTIHZpZXcuc2V0VWludDMyKDEy
LCA0Mjk0OTAxMjQ0LCB0cnVlKSBpcyB1bmRlZmluZWQuCitQQVNTIHZpZXcuZ2V0VWludDMyKDEy
LCB0cnVlKSBpcyA0Mjk0OTAxMjQ0CitQQVNTIHZpZXcuc2V0VWludDMyKDAsIDY2MDUxKSBpcyB1
bmRlZmluZWQuCitQQVNTIHZpZXcuZ2V0VWludDMyKDApIGlzIDY2MDUxCitQQVNTIHZpZXcuc2V0
VWludDMyKDMsIDU2OTExMjA2KSBpcyB1bmRlZmluZWQuCitQQVNTIHZpZXcuZ2V0VWludDMyKDMp
IGlzIDU2OTExMjA2CitQQVNTIHZpZXcuc2V0VWludDMyKDYsIDE3MTgwNTkxMzcpIGlzIHVuZGVm
aW5lZC4KK1BBU1Mgdmlldy5nZXRVaW50MzIoNikgaXMgMTcxODA1OTEzNworUEFTUyB2aWV3LnNl
dFVpbnQzMig5LCAyMTcyODE0MzMyKSBpcyB1bmRlZmluZWQuCitQQVNTIHZpZXcuZ2V0VWludDMy
KDkpIGlzIDIxNzI4MTQzMzIKK1BBU1Mgdmlldy5zZXRVaW50MzIoMTIsIDQyNDQ1MDQzMTkpIGlz
IHVuZGVmaW5lZC4KK1BBU1Mgdmlldy5nZXRVaW50MzIoMTIpIGlzIDQyNDQ1MDQzMTkKK1BBU1Mg
dmlldy5zZXRGbG9hdDMyKDAsIDEwLCB0cnVlKSBpcyB1bmRlZmluZWQuCitQQVNTIHZpZXcuZ2V0
RmxvYXQzMigwLCB0cnVlKSBpcyAxMAorUEFTUyB2aWV3LnNldEZsb2F0MzIoMywgMTAsIHRydWUp
IGlzIHVuZGVmaW5lZC4KK1BBU1Mgdmlldy5nZXRGbG9hdDMyKDMsIHRydWUpIGlzIDEwCitQQVNT
IHZpZXcuc2V0RmxvYXQzMig3LCAxMCwgdHJ1ZSkgaXMgdW5kZWZpbmVkLgorUEFTUyB2aWV3Lmdl
dEZsb2F0MzIoNywgdHJ1ZSkgaXMgMTAKK1BBU1Mgdmlldy5zZXRGbG9hdDMyKDEwLCAxMCwgdHJ1
ZSkgaXMgdW5kZWZpbmVkLgorUEFTUyB2aWV3LmdldEZsb2F0MzIoMTAsIHRydWUpIGlzIDEwCitQ
QVNTIHZpZXcuc2V0RmxvYXQzMigwLCAxMCwgZmFsc2UpIGlzIHVuZGVmaW5lZC4KK1BBU1Mgdmll
dy5nZXRGbG9hdDMyKDAsIGZhbHNlKSBpcyAxMAorUEFTUyB2aWV3LnNldEZsb2F0MzIoMywgMTAs
IGZhbHNlKSBpcyB1bmRlZmluZWQuCitQQVNTIHZpZXcuZ2V0RmxvYXQzMigzLCBmYWxzZSkgaXMg
MTAKK1BBU1Mgdmlldy5zZXRGbG9hdDMyKDcsIDEwLCBmYWxzZSkgaXMgdW5kZWZpbmVkLgorUEFT
UyB2aWV3LmdldEZsb2F0MzIoNywgZmFsc2UpIGlzIDEwCitQQVNTIHZpZXcuc2V0RmxvYXQzMigx
MCwgMTAsIGZhbHNlKSBpcyB1bmRlZmluZWQuCitQQVNTIHZpZXcuZ2V0RmxvYXQzMigxMCwgZmFs
c2UpIGlzIDEwCitQQVNTIHZpZXcuc2V0RmxvYXQzMigwLCAxLjIzMDAwMDAxOTA3MzQ4NjMsIHRy
dWUpIGlzIHVuZGVmaW5lZC4KK1BBU1Mgdmlldy5nZXRGbG9hdDMyKDAsIHRydWUpIGlzIDEuMjMw
MDAwMDE5MDczNDg2MworUEFTUyB2aWV3LnNldEZsb2F0MzIoMywgMS4yMzAwMDAwMTkwNzM0ODYz
LCB0cnVlKSBpcyB1bmRlZmluZWQuCitQQVNTIHZpZXcuZ2V0RmxvYXQzMigzLCB0cnVlKSBpcyAx
LjIzMDAwMDAxOTA3MzQ4NjMKK1BBU1Mgdmlldy5zZXRGbG9hdDMyKDcsIDEuMjMwMDAwMDE5MDcz
NDg2MywgdHJ1ZSkgaXMgdW5kZWZpbmVkLgorUEFTUyB2aWV3LmdldEZsb2F0MzIoNywgdHJ1ZSkg
aXMgMS4yMzAwMDAwMTkwNzM0ODYzCitQQVNTIHZpZXcuc2V0RmxvYXQzMigxMCwgMS4yMzAwMDAw
MTkwNzM0ODYzLCB0cnVlKSBpcyB1bmRlZmluZWQuCitQQVNTIHZpZXcuZ2V0RmxvYXQzMigxMCwg
dHJ1ZSkgaXMgMS4yMzAwMDAwMTkwNzM0ODYzCitQQVNTIHZpZXcuc2V0RmxvYXQzMigwLCAxLjIz
MDAwMDAxOTA3MzQ4NjMsIGZhbHNlKSBpcyB1bmRlZmluZWQuCitQQVNTIHZpZXcuZ2V0RmxvYXQz
MigwLCBmYWxzZSkgaXMgMS4yMzAwMDAwMTkwNzM0ODYzCitQQVNTIHZpZXcuc2V0RmxvYXQzMigz
LCAxLjIzMDAwMDAxOTA3MzQ4NjMsIGZhbHNlKSBpcyB1bmRlZmluZWQuCitQQVNTIHZpZXcuZ2V0
RmxvYXQzMigzLCBmYWxzZSkgaXMgMS4yMzAwMDAwMTkwNzM0ODYzCitQQVNTIHZpZXcuc2V0Rmxv
YXQzMig3LCAxLjIzMDAwMDAxOTA3MzQ4NjMsIGZhbHNlKSBpcyB1bmRlZmluZWQuCitQQVNTIHZp
ZXcuZ2V0RmxvYXQzMig3LCBmYWxzZSkgaXMgMS4yMzAwMDAwMTkwNzM0ODYzCitQQVNTIHZpZXcu
c2V0RmxvYXQzMigxMCwgMS4yMzAwMDAwMTkwNzM0ODYzLCBmYWxzZSkgaXMgdW5kZWZpbmVkLgor
UEFTUyB2aWV3LmdldEZsb2F0MzIoMTAsIGZhbHNlKSBpcyAxLjIzMDAwMDAxOTA3MzQ4NjMKK1BB
U1Mgdmlldy5zZXRGbG9hdDMyKDAsIC00NTYyMS4zNzEwOTM3NSwgdHJ1ZSkgaXMgdW5kZWZpbmVk
LgorUEFTUyB2aWV3LmdldEZsb2F0MzIoMCwgdHJ1ZSkgaXMgLTQ1NjIxLjM3MTA5Mzc1CitQQVNT
IHZpZXcuc2V0RmxvYXQzMigzLCAtNDU2MjEuMzcxMDkzNzUsIHRydWUpIGlzIHVuZGVmaW5lZC4K
K1BBU1Mgdmlldy5nZXRGbG9hdDMyKDMsIHRydWUpIGlzIC00NTYyMS4zNzEwOTM3NQorUEFTUyB2
aWV3LnNldEZsb2F0MzIoNywgLTQ1NjIxLjM3MTA5Mzc1LCB0cnVlKSBpcyB1bmRlZmluZWQuCitQ
QVNTIHZpZXcuZ2V0RmxvYXQzMig3LCB0cnVlKSBpcyAtNDU2MjEuMzcxMDkzNzUKK1BBU1Mgdmll
dy5zZXRGbG9hdDMyKDEwLCAtNDU2MjEuMzcxMDkzNzUsIHRydWUpIGlzIHVuZGVmaW5lZC4KK1BB
U1Mgdmlldy5nZXRGbG9hdDMyKDEwLCB0cnVlKSBpcyAtNDU2MjEuMzcxMDkzNzUKK1BBU1Mgdmll
dy5zZXRGbG9hdDMyKDAsIC00NTYyMS4zNzEwOTM3NSwgZmFsc2UpIGlzIHVuZGVmaW5lZC4KK1BB
U1Mgdmlldy5nZXRGbG9hdDMyKDAsIGZhbHNlKSBpcyAtNDU2MjEuMzcxMDkzNzUKK1BBU1Mgdmll
dy5zZXRGbG9hdDMyKDMsIC00NTYyMS4zNzEwOTM3NSwgZmFsc2UpIGlzIHVuZGVmaW5lZC4KK1BB
U1Mgdmlldy5nZXRGbG9hdDMyKDMsIGZhbHNlKSBpcyAtNDU2MjEuMzcxMDkzNzUKK1BBU1Mgdmll
dy5zZXRGbG9hdDMyKDcsIC00NTYyMS4zNzEwOTM3NSwgZmFsc2UpIGlzIHVuZGVmaW5lZC4KK1BB
U1Mgdmlldy5nZXRGbG9hdDMyKDcsIGZhbHNlKSBpcyAtNDU2MjEuMzcxMDkzNzUKK1BBU1Mgdmll
dy5zZXRGbG9hdDMyKDEwLCAtNDU2MjEuMzcxMDkzNzUsIGZhbHNlKSBpcyB1bmRlZmluZWQuCitQ
QVNTIHZpZXcuZ2V0RmxvYXQzMigxMCwgZmFsc2UpIGlzIC00NTYyMS4zNzEwOTM3NQorUEFTUyB2
aWV3LnNldEZsb2F0MzIoMCwgTmFOLCB0cnVlKSBpcyB1bmRlZmluZWQuCitQQVNTIHZpZXcuZ2V0
RmxvYXQzMigwLCB0cnVlKSBpcyBOYU4KK1BBU1Mgdmlldy5zZXRGbG9hdDMyKDMsIE5hTiwgdHJ1
ZSkgaXMgdW5kZWZpbmVkLgorUEFTUyB2aWV3LmdldEZsb2F0MzIoMywgdHJ1ZSkgaXMgTmFOCitQ
QVNTIHZpZXcuc2V0RmxvYXQzMig3LCBOYU4sIHRydWUpIGlzIHVuZGVmaW5lZC4KK1BBU1Mgdmll
dy5nZXRGbG9hdDMyKDcsIHRydWUpIGlzIE5hTgorUEFTUyB2aWV3LnNldEZsb2F0MzIoMTAsIE5h
TiwgdHJ1ZSkgaXMgdW5kZWZpbmVkLgorUEFTUyB2aWV3LmdldEZsb2F0MzIoMTAsIHRydWUpIGlz
IE5hTgorUEFTUyB2aWV3LnNldEZsb2F0MzIoMCwgTmFOLCBmYWxzZSkgaXMgdW5kZWZpbmVkLgor
UEFTUyB2aWV3LmdldEZsb2F0MzIoMCwgZmFsc2UpIGlzIE5hTgorUEFTUyB2aWV3LnNldEZsb2F0
MzIoMywgTmFOLCBmYWxzZSkgaXMgdW5kZWZpbmVkLgorUEFTUyB2aWV3LmdldEZsb2F0MzIoMywg
ZmFsc2UpIGlzIE5hTgorUEFTUyB2aWV3LnNldEZsb2F0MzIoNywgTmFOLCBmYWxzZSkgaXMgdW5k
ZWZpbmVkLgorUEFTUyB2aWV3LmdldEZsb2F0MzIoNywgZmFsc2UpIGlzIE5hTgorUEFTUyB2aWV3
LnNldEZsb2F0MzIoMTAsIE5hTiwgZmFsc2UpIGlzIHVuZGVmaW5lZC4KK1BBU1Mgdmlldy5nZXRG
bG9hdDMyKDEwLCBmYWxzZSkgaXMgTmFOCitQQVNTIHZpZXcuc2V0RmxvYXQzMigwLCAtTmFOLCB0
cnVlKSBpcyB1bmRlZmluZWQuCitQQVNTIHZpZXcuZ2V0RmxvYXQzMigwLCB0cnVlKSBpcyAtTmFO
CitQQVNTIHZpZXcuc2V0RmxvYXQzMigzLCAtTmFOLCB0cnVlKSBpcyB1bmRlZmluZWQuCitQQVNT
IHZpZXcuZ2V0RmxvYXQzMigzLCB0cnVlKSBpcyAtTmFOCitQQVNTIHZpZXcuc2V0RmxvYXQzMig3
LCAtTmFOLCB0cnVlKSBpcyB1bmRlZmluZWQuCitQQVNTIHZpZXcuZ2V0RmxvYXQzMig3LCB0cnVl
KSBpcyAtTmFOCitQQVNTIHZpZXcuc2V0RmxvYXQzMigxMCwgLU5hTiwgdHJ1ZSkgaXMgdW5kZWZp
bmVkLgorUEFTUyB2aWV3LmdldEZsb2F0MzIoMTAsIHRydWUpIGlzIC1OYU4KK1BBU1Mgdmlldy5z
ZXRGbG9hdDMyKDAsIC1OYU4sIGZhbHNlKSBpcyB1bmRlZmluZWQuCitQQVNTIHZpZXcuZ2V0Rmxv
YXQzMigwLCBmYWxzZSkgaXMgLU5hTgorUEFTUyB2aWV3LnNldEZsb2F0MzIoMywgLU5hTiwgZmFs
c2UpIGlzIHVuZGVmaW5lZC4KK1BBU1Mgdmlldy5nZXRGbG9hdDMyKDMsIGZhbHNlKSBpcyAtTmFO
CitQQVNTIHZpZXcuc2V0RmxvYXQzMig3LCAtTmFOLCBmYWxzZSkgaXMgdW5kZWZpbmVkLgorUEFT
UyB2aWV3LmdldEZsb2F0MzIoNywgZmFsc2UpIGlzIC1OYU4KK1BBU1Mgdmlldy5zZXRGbG9hdDMy
KDEwLCAtTmFOLCBmYWxzZSkgaXMgdW5kZWZpbmVkLgorUEFTUyB2aWV3LmdldEZsb2F0MzIoMTAs
IGZhbHNlKSBpcyAtTmFOCitQQVNTIHZpZXcuc2V0RmxvYXQ2NCgwLCAxMCwgdHJ1ZSkgaXMgdW5k
ZWZpbmVkLgorUEFTUyB2aWV3LmdldEZsb2F0NjQoMCwgdHJ1ZSkgaXMgMTAKK1BBU1Mgdmlldy5z
ZXRGbG9hdDY0KDMsIDEwLCB0cnVlKSBpcyB1bmRlZmluZWQuCitQQVNTIHZpZXcuZ2V0RmxvYXQ2
NCgzLCB0cnVlKSBpcyAxMAorUEFTUyB2aWV3LnNldEZsb2F0NjQoNywgMTAsIHRydWUpIGlzIHVu
ZGVmaW5lZC4KK1BBU1Mgdmlldy5nZXRGbG9hdDY0KDcsIHRydWUpIGlzIDEwCitQQVNTIHZpZXcu
c2V0RmxvYXQ2NCgxMCwgMTAsIHRydWUpIGlzIHVuZGVmaW5lZC4KK1BBU1Mgdmlldy5nZXRGbG9h
dDY0KDEwLCB0cnVlKSBpcyAxMAorUEFTUyB2aWV3LnNldEZsb2F0NjQoMCwgMTAsIGZhbHNlKSBp
cyB1bmRlZmluZWQuCitQQVNTIHZpZXcuZ2V0RmxvYXQ2NCgwLCBmYWxzZSkgaXMgMTAKK1BBU1Mg
dmlldy5zZXRGbG9hdDY0KDMsIDEwLCBmYWxzZSkgaXMgdW5kZWZpbmVkLgorUEFTUyB2aWV3Lmdl
dEZsb2F0NjQoMywgZmFsc2UpIGlzIDEwCitQQVNTIHZpZXcuc2V0RmxvYXQ2NCg3LCAxMCwgZmFs
c2UpIGlzIHVuZGVmaW5lZC4KK1BBU1Mgdmlldy5nZXRGbG9hdDY0KDcsIGZhbHNlKSBpcyAxMAor
UEFTUyB2aWV3LnNldEZsb2F0NjQoMTAsIDEwLCBmYWxzZSkgaXMgdW5kZWZpbmVkLgorUEFTUyB2
aWV3LmdldEZsb2F0NjQoMTAsIGZhbHNlKSBpcyAxMAorUEFTUyB2aWV3LnNldEZsb2F0NjQoMCwg
MS4yMywgdHJ1ZSkgaXMgdW5kZWZpbmVkLgorUEFTUyB2aWV3LmdldEZsb2F0NjQoMCwgdHJ1ZSkg
aXMgMS4yMworUEFTUyB2aWV3LnNldEZsb2F0NjQoMywgMS4yMywgdHJ1ZSkgaXMgdW5kZWZpbmVk
LgorUEFTUyB2aWV3LmdldEZsb2F0NjQoMywgdHJ1ZSkgaXMgMS4yMworUEFTUyB2aWV3LnNldEZs
b2F0NjQoNywgMS4yMywgdHJ1ZSkgaXMgdW5kZWZpbmVkLgorUEFTUyB2aWV3LmdldEZsb2F0NjQo
NywgdHJ1ZSkgaXMgMS4yMworUEFTUyB2aWV3LnNldEZsb2F0NjQoMTAsIDEuMjMsIHRydWUpIGlz
IHVuZGVmaW5lZC4KK1BBU1Mgdmlldy5nZXRGbG9hdDY0KDEwLCB0cnVlKSBpcyAxLjIzCitQQVNT
IHZpZXcuc2V0RmxvYXQ2NCgwLCAxLjIzLCBmYWxzZSkgaXMgdW5kZWZpbmVkLgorUEFTUyB2aWV3
LmdldEZsb2F0NjQoMCwgZmFsc2UpIGlzIDEuMjMKK1BBU1Mgdmlldy5zZXRGbG9hdDY0KDMsIDEu
MjMsIGZhbHNlKSBpcyB1bmRlZmluZWQuCitQQVNTIHZpZXcuZ2V0RmxvYXQ2NCgzLCBmYWxzZSkg
aXMgMS4yMworUEFTUyB2aWV3LnNldEZsb2F0NjQoNywgMS4yMywgZmFsc2UpIGlzIHVuZGVmaW5l
ZC4KK1BBU1Mgdmlldy5nZXRGbG9hdDY0KDcsIGZhbHNlKSBpcyAxLjIzCitQQVNTIHZpZXcuc2V0
RmxvYXQ2NCgxMCwgMS4yMywgZmFsc2UpIGlzIHVuZGVmaW5lZC4KK1BBU1Mgdmlldy5nZXRGbG9h
dDY0KDEwLCBmYWxzZSkgaXMgMS4yMworUEFTUyB2aWV3LnNldEZsb2F0NjQoMCwgLTYyMTM1NzYu
NDgzOSwgdHJ1ZSkgaXMgdW5kZWZpbmVkLgorUEFTUyB2aWV3LmdldEZsb2F0NjQoMCwgdHJ1ZSkg
aXMgLTYyMTM1NzYuNDgzOQorUEFTUyB2aWV3LnNldEZsb2F0NjQoMywgLTYyMTM1NzYuNDgzOSwg
dHJ1ZSkgaXMgdW5kZWZpbmVkLgorUEFTUyB2aWV3LmdldEZsb2F0NjQoMywgdHJ1ZSkgaXMgLTYy
MTM1NzYuNDgzOQorUEFTUyB2aWV3LnNldEZsb2F0NjQoNywgLTYyMTM1NzYuNDgzOSwgdHJ1ZSkg
aXMgdW5kZWZpbmVkLgorUEFTUyB2aWV3LmdldEZsb2F0NjQoNywgdHJ1ZSkgaXMgLTYyMTM1NzYu
NDgzOQorUEFTUyB2aWV3LnNldEZsb2F0NjQoMTAsIC02MjEzNTc2LjQ4MzksIHRydWUpIGlzIHVu
ZGVmaW5lZC4KK1BBU1Mgdmlldy5nZXRGbG9hdDY0KDEwLCB0cnVlKSBpcyAtNjIxMzU3Ni40ODM5
CitQQVNTIHZpZXcuc2V0RmxvYXQ2NCgwLCAtNjIxMzU3Ni40ODM5LCBmYWxzZSkgaXMgdW5kZWZp
bmVkLgorUEFTUyB2aWV3LmdldEZsb2F0NjQoMCwgZmFsc2UpIGlzIC02MjEzNTc2LjQ4MzkKK1BB
U1Mgdmlldy5zZXRGbG9hdDY0KDMsIC02MjEzNTc2LjQ4MzksIGZhbHNlKSBpcyB1bmRlZmluZWQu
CitQQVNTIHZpZXcuZ2V0RmxvYXQ2NCgzLCBmYWxzZSkgaXMgLTYyMTM1NzYuNDgzOQorUEFTUyB2
aWV3LnNldEZsb2F0NjQoNywgLTYyMTM1NzYuNDgzOSwgZmFsc2UpIGlzIHVuZGVmaW5lZC4KK1BB
U1Mgdmlldy5nZXRGbG9hdDY0KDcsIGZhbHNlKSBpcyAtNjIxMzU3Ni40ODM5CitQQVNTIHZpZXcu
c2V0RmxvYXQ2NCgxMCwgLTYyMTM1NzYuNDgzOSwgZmFsc2UpIGlzIHVuZGVmaW5lZC4KK1BBU1Mg
dmlldy5nZXRGbG9hdDY0KDEwLCBmYWxzZSkgaXMgLTYyMTM1NzYuNDgzOQorUEFTUyB2aWV3LnNl
dEZsb2F0NjQoMCwgTmFOLCB0cnVlKSBpcyB1bmRlZmluZWQuCitQQVNTIHZpZXcuZ2V0RmxvYXQ2
NCgwLCB0cnVlKSBpcyBOYU4KK1BBU1Mgdmlldy5zZXRGbG9hdDY0KDMsIE5hTiwgdHJ1ZSkgaXMg
dW5kZWZpbmVkLgorUEFTUyB2aWV3LmdldEZsb2F0NjQoMywgdHJ1ZSkgaXMgTmFOCitQQVNTIHZp
ZXcuc2V0RmxvYXQ2NCg3LCBOYU4sIHRydWUpIGlzIHVuZGVmaW5lZC4KK1BBU1Mgdmlldy5nZXRG
bG9hdDY0KDcsIHRydWUpIGlzIE5hTgorUEFTUyB2aWV3LnNldEZsb2F0NjQoMTAsIE5hTiwgdHJ1
ZSkgaXMgdW5kZWZpbmVkLgorUEFTUyB2aWV3LmdldEZsb2F0NjQoMTAsIHRydWUpIGlzIE5hTgor
UEFTUyB2aWV3LnNldEZsb2F0NjQoMCwgTmFOLCBmYWxzZSkgaXMgdW5kZWZpbmVkLgorUEFTUyB2
aWV3LmdldEZsb2F0NjQoMCwgZmFsc2UpIGlzIE5hTgorUEFTUyB2aWV3LnNldEZsb2F0NjQoMywg
TmFOLCBmYWxzZSkgaXMgdW5kZWZpbmVkLgorUEFTUyB2aWV3LmdldEZsb2F0NjQoMywgZmFsc2Up
IGlzIE5hTgorUEFTUyB2aWV3LnNldEZsb2F0NjQoNywgTmFOLCBmYWxzZSkgaXMgdW5kZWZpbmVk
LgorUEFTUyB2aWV3LmdldEZsb2F0NjQoNywgZmFsc2UpIGlzIE5hTgorUEFTUyB2aWV3LnNldEZs
b2F0NjQoMTAsIE5hTiwgZmFsc2UpIGlzIHVuZGVmaW5lZC4KK1BBU1Mgdmlldy5nZXRGbG9hdDY0
KDEwLCBmYWxzZSkgaXMgTmFOCitQQVNTIHZpZXcuc2V0RmxvYXQ2NCgwLCAtTmFOLCB0cnVlKSBp
cyB1bmRlZmluZWQuCitQQVNTIHZpZXcuZ2V0RmxvYXQ2NCgwLCB0cnVlKSBpcyAtTmFOCitQQVNT
IHZpZXcuc2V0RmxvYXQ2NCgzLCAtTmFOLCB0cnVlKSBpcyB1bmRlZmluZWQuCitQQVNTIHZpZXcu
Z2V0RmxvYXQ2NCgzLCB0cnVlKSBpcyAtTmFOCitQQVNTIHZpZXcuc2V0RmxvYXQ2NCg3LCAtTmFO
LCB0cnVlKSBpcyB1bmRlZmluZWQuCitQQVNTIHZpZXcuZ2V0RmxvYXQ2NCg3LCB0cnVlKSBpcyAt
TmFOCitQQVNTIHZpZXcuc2V0RmxvYXQ2NCgxMCwgLU5hTiwgdHJ1ZSkgaXMgdW5kZWZpbmVkLgor
UEFTUyB2aWV3LmdldEZsb2F0NjQoMTAsIHRydWUpIGlzIC1OYU4KK1BBU1Mgdmlldy5zZXRGbG9h
dDY0KDAsIC1OYU4sIGZhbHNlKSBpcyB1bmRlZmluZWQuCitQQVNTIHZpZXcuZ2V0RmxvYXQ2NCgw
LCBmYWxzZSkgaXMgLU5hTgorUEFTUyB2aWV3LnNldEZsb2F0NjQoMywgLU5hTiwgZmFsc2UpIGlz
IHVuZGVmaW5lZC4KK1BBU1Mgdmlldy5nZXRGbG9hdDY0KDMsIGZhbHNlKSBpcyAtTmFOCitQQVNT
IHZpZXcuc2V0RmxvYXQ2NCg3LCAtTmFOLCBmYWxzZSkgaXMgdW5kZWZpbmVkLgorUEFTUyB2aWV3
LmdldEZsb2F0NjQoNywgZmFsc2UpIGlzIC1OYU4KK1BBU1Mgdmlldy5zZXRGbG9hdDY0KDEwLCAt
TmFOLCBmYWxzZSkgaXMgdW5kZWZpbmVkLgorUEFTUyB2aWV3LmdldEZsb2F0NjQoMTAsIGZhbHNl
KSBpcyAtTmFOCisKK1Rlc3QgZm9yIHNldCBtZXRob2RzIHRoYXQgbWlnaHQgd3JpdGUgYmV5b25k
IHRoZSByYW5nZQorUEFTUyB2aWV3LnNldEludDgoMCwgMCkgaXMgdW5kZWZpbmVkLgorUEFTUyB2
aWV3LmdldEludDgoMCkgaXMgMAorUEFTUyB2aWV3LnNldEludDgoOCwgLTEyOCkgdGhyZXcgZXhj
ZXB0aW9uIEVycm9yOiBJTkRFWF9TSVpFX0VSUjogRE9NIEV4Y2VwdGlvbiAxLgorUEFTUyB2aWV3
LnNldEludDgoMTUsIC0xKSB0aHJldyBleGNlcHRpb24gRXJyb3I6IElOREVYX1NJWkVfRVJSOiBE
T00gRXhjZXB0aW9uIDEuCitQQVNTIHZpZXcuc2V0VWludDgoMCwgMCkgaXMgdW5kZWZpbmVkLgor
UEFTUyB2aWV3LmdldFVpbnQ4KDApIGlzIDAKK1BBU1Mgdmlldy5zZXRVaW50OCg4LCAxMjgpIHRo
cmV3IGV4Y2VwdGlvbiBFcnJvcjogSU5ERVhfU0laRV9FUlI6IERPTSBFeGNlcHRpb24gMS4KK1BB
U1Mgdmlldy5zZXRVaW50OCgxNSwgMjU1KSB0aHJldyBleGNlcHRpb24gRXJyb3I6IElOREVYX1NJ
WkVfRVJSOiBET00gRXhjZXB0aW9uIDEuCitQQVNTIHZpZXcuc2V0SW50MTYoMCwgMjU2LCB0cnVl
KSBpcyB1bmRlZmluZWQuCitQQVNTIHZpZXcuZ2V0SW50MTYoMCwgdHJ1ZSkgaXMgMjU2CitQQVNT
IHZpZXcuc2V0SW50MTYoNSwgMjYyMTMsIHRydWUpIHRocmV3IGV4Y2VwdGlvbiBFcnJvcjogSU5E
RVhfU0laRV9FUlI6IERPTSBFeGNlcHRpb24gMS4KK1BBU1Mgdmlldy5zZXRJbnQxNig5LCAtMzIx
MjcsIHRydWUpIHRocmV3IGV4Y2VwdGlvbiBFcnJvcjogSU5ERVhfU0laRV9FUlI6IERPTSBFeGNl
cHRpb24gMS4KK1BBU1Mgdmlldy5zZXRJbnQxNigxNCwgLTIsIHRydWUpIHRocmV3IGV4Y2VwdGlv
biBFcnJvcjogSU5ERVhfU0laRV9FUlI6IERPTSBFeGNlcHRpb24gMS4KK1BBU1Mgdmlldy5zZXRJ
bnQxNigwLCAxKSBpcyB1bmRlZmluZWQuCitQQVNTIHZpZXcuZ2V0SW50MTYoMCkgaXMgMQorUEFT
UyB2aWV3LnNldEludDE2KDUsIDI1OTU4KSB0aHJldyBleGNlcHRpb24gRXJyb3I6IElOREVYX1NJ
WkVfRVJSOiBET00gRXhjZXB0aW9uIDEuCitQQVNTIHZpZXcuc2V0SW50MTYoOSwgLTMyMzgyKSB0
aHJldyBleGNlcHRpb24gRXJyb3I6IElOREVYX1NJWkVfRVJSOiBET00gRXhjZXB0aW9uIDEuCitQ
QVNTIHZpZXcuc2V0SW50MTYoMTQsIC0yNTcpIHRocmV3IGV4Y2VwdGlvbiBFcnJvcjogSU5ERVhf
U0laRV9FUlI6IERPTSBFeGNlcHRpb24gMS4KK1BBU1Mgdmlldy5zZXRVaW50MTYoMCwgMjU2LCB0
cnVlKSBpcyB1bmRlZmluZWQuCitQQVNTIHZpZXcuZ2V0VWludDE2KDAsIHRydWUpIGlzIDI1Ngor
UEFTUyB2aWV3LnNldFVpbnQxNig1LCAyNjIxMywgdHJ1ZSkgdGhyZXcgZXhjZXB0aW9uIEVycm9y
OiBJTkRFWF9TSVpFX0VSUjogRE9NIEV4Y2VwdGlvbiAxLgorUEFTUyB2aWV3LnNldFVpbnQxNig5
LCAzMzQwOSwgdHJ1ZSkgdGhyZXcgZXhjZXB0aW9uIEVycm9yOiBJTkRFWF9TSVpFX0VSUjogRE9N
IEV4Y2VwdGlvbiAxLgorUEFTUyB2aWV3LnNldFVpbnQxNigxNCwgNjU1MzQsIHRydWUpIHRocmV3
IGV4Y2VwdGlvbiBFcnJvcjogSU5ERVhfU0laRV9FUlI6IERPTSBFeGNlcHRpb24gMS4KK1BBU1Mg
dmlldy5zZXRVaW50MTYoMCwgMSkgaXMgdW5kZWZpbmVkLgorUEFTUyB2aWV3LmdldFVpbnQxNigw
KSBpcyAxCitQQVNTIHZpZXcuc2V0VWludDE2KDUsIDI1OTU4KSB0aHJldyBleGNlcHRpb24gRXJy
b3I6IElOREVYX1NJWkVfRVJSOiBET00gRXhjZXB0aW9uIDEuCitQQVNTIHZpZXcuc2V0VWludDE2
KDksIDMzMTU0KSB0aHJldyBleGNlcHRpb24gRXJyb3I6IElOREVYX1NJWkVfRVJSOiBET00gRXhj
ZXB0aW9uIDEuCitQQVNTIHZpZXcuc2V0VWludDE2KDE0LCA2NTI3OSkgdGhyZXcgZXhjZXB0aW9u
IEVycm9yOiBJTkRFWF9TSVpFX0VSUjogRE9NIEV4Y2VwdGlvbiAxLgorUEFTUyB2aWV3LnNldElu
dDMyKDAsIDUwNDYyOTc2LCB0cnVlKSB0aHJldyBleGNlcHRpb24gRXJyb3I6IElOREVYX1NJWkVf
RVJSOiBET00gRXhjZXB0aW9uIDEuCitQQVNTIHZpZXcuc2V0SW50MzIoMywgMTcxNzkyMDc3MSwg
dHJ1ZSkgdGhyZXcgZXhjZXB0aW9uIEVycm9yOiBJTkRFWF9TSVpFX0VSUjogRE9NIEV4Y2VwdGlv
biAxLgorUEFTUyB2aWV3LnNldEludDMyKDYsIC0yMTIyMjkxMzU0LCB0cnVlKSB0aHJldyBleGNl
cHRpb24gRXJyb3I6IElOREVYX1NJWkVfRVJSOiBET00gRXhjZXB0aW9uIDEuCitQQVNTIHZpZXcu
c2V0SW50MzIoOSwgLTU4NDkwMjM5LCB0cnVlKSB0aHJldyBleGNlcHRpb24gRXJyb3I6IElOREVY
X1NJWkVfRVJSOiBET00gRXhjZXB0aW9uIDEuCitQQVNTIHZpZXcuc2V0SW50MzIoMTIsIC02NjA1
MiwgdHJ1ZSkgdGhyZXcgZXhjZXB0aW9uIEVycm9yOiBJTkRFWF9TSVpFX0VSUjogRE9NIEV4Y2Vw
dGlvbiAxLgorUEFTUyB2aWV3LnNldEludDMyKDAsIDY2MDUxKSB0aHJldyBleGNlcHRpb24gRXJy
b3I6IElOREVYX1NJWkVfRVJSOiBET00gRXhjZXB0aW9uIDEuCitQQVNTIHZpZXcuc2V0SW50MzIo
MywgNTY5MTEyMDYpIHRocmV3IGV4Y2VwdGlvbiBFcnJvcjogSU5ERVhfU0laRV9FUlI6IERPTSBF
eGNlcHRpb24gMS4KK1BBU1Mgdmlldy5zZXRJbnQzMig2LCAxNzE4MDU5MTM3KSB0aHJldyBleGNl
cHRpb24gRXJyb3I6IElOREVYX1NJWkVfRVJSOiBET00gRXhjZXB0aW9uIDEuCitQQVNTIHZpZXcu
c2V0SW50MzIoOSwgLTIxMjIxNTI5NjQpIHRocmV3IGV4Y2VwdGlvbiBFcnJvcjogSU5ERVhfU0la
RV9FUlI6IERPTSBFeGNlcHRpb24gMS4KK1BBU1Mgdmlldy5zZXRJbnQzMigxMiwgLTUwNDYyOTc3
KSB0aHJldyBleGNlcHRpb24gRXJyb3I6IElOREVYX1NJWkVfRVJSOiBET00gRXhjZXB0aW9uIDEu
CitQQVNTIHZpZXcuc2V0VWludDMyKDAsIDUwNDYyOTc2LCB0cnVlKSB0aHJldyBleGNlcHRpb24g
RXJyb3I6IElOREVYX1NJWkVfRVJSOiBET00gRXhjZXB0aW9uIDEuCitQQVNTIHZpZXcuc2V0VWlu
dDMyKDMsIDE3MTc5MjA3NzEsIHRydWUpIHRocmV3IGV4Y2VwdGlvbiBFcnJvcjogSU5ERVhfU0la
RV9FUlI6IERPTSBFeGNlcHRpb24gMS4KK1BBU1Mgdmlldy5zZXRVaW50MzIoNiwgMjE3MjY3NTk0
MiwgdHJ1ZSkgdGhyZXcgZXhjZXB0aW9uIEVycm9yOiBJTkRFWF9TSVpFX0VSUjogRE9NIEV4Y2Vw
dGlvbiAxLgorUEFTUyB2aWV3LnNldFVpbnQzMig5LCA0MjM2NDc3MDU3LCB0cnVlKSB0aHJldyBl
eGNlcHRpb24gRXJyb3I6IElOREVYX1NJWkVfRVJSOiBET00gRXhjZXB0aW9uIDEuCitQQVNTIHZp
ZXcuc2V0VWludDMyKDEyLCA0Mjk0OTAxMjQ0LCB0cnVlKSB0aHJldyBleGNlcHRpb24gRXJyb3I6
IElOREVYX1NJWkVfRVJSOiBET00gRXhjZXB0aW9uIDEuCitQQVNTIHZpZXcuc2V0VWludDMyKDAs
IDY2MDUxKSB0aHJldyBleGNlcHRpb24gRXJyb3I6IElOREVYX1NJWkVfRVJSOiBET00gRXhjZXB0
aW9uIDEuCitQQVNTIHZpZXcuc2V0VWludDMyKDMsIDU2OTExMjA2KSB0aHJldyBleGNlcHRpb24g
RXJyb3I6IElOREVYX1NJWkVfRVJSOiBET00gRXhjZXB0aW9uIDEuCitQQVNTIHZpZXcuc2V0VWlu
dDMyKDYsIDE3MTgwNTkxMzcpIHRocmV3IGV4Y2VwdGlvbiBFcnJvcjogSU5ERVhfU0laRV9FUlI6
IERPTSBFeGNlcHRpb24gMS4KK1BBU1Mgdmlldy5zZXRVaW50MzIoOSwgMjE3MjgxNDMzMikgdGhy
ZXcgZXhjZXB0aW9uIEVycm9yOiBJTkRFWF9TSVpFX0VSUjogRE9NIEV4Y2VwdGlvbiAxLgorUEFT
UyB2aWV3LnNldFVpbnQzMigxMiwgNDI0NDUwNDMxOSkgdGhyZXcgZXhjZXB0aW9uIEVycm9yOiBJ
TkRFWF9TSVpFX0VSUjogRE9NIEV4Y2VwdGlvbiAxLgorUEFTUyB2aWV3LnNldEZsb2F0MzIoMCwg
MTAsIHRydWUpIGlzIHVuZGVmaW5lZC4KK1BBU1Mgdmlldy5nZXRGbG9hdDMyKDAsIHRydWUpIGlz
IDEwCitQQVNTIHZpZXcuc2V0RmxvYXQzMigzLCAxMCwgdHJ1ZSkgaXMgdW5kZWZpbmVkLgorUEFT
UyB2aWV3LmdldEZsb2F0MzIoMywgdHJ1ZSkgaXMgMTAKK1BBU1Mgdmlldy5zZXRGbG9hdDMyKDcs
IDEwLCB0cnVlKSBpcyB1bmRlZmluZWQuCitQQVNTIHZpZXcuZ2V0RmxvYXQzMig3LCB0cnVlKSBp
cyAxMAorUEFTUyB2aWV3LnNldEZsb2F0MzIoMTAsIDEwLCB0cnVlKSBpcyB1bmRlZmluZWQuCitQ
QVNTIHZpZXcuZ2V0RmxvYXQzMigxMCwgdHJ1ZSkgaXMgMTAKK1BBU1Mgdmlldy5zZXRGbG9hdDMy
KDAsIDEwLCBmYWxzZSkgaXMgdW5kZWZpbmVkLgorUEFTUyB2aWV3LmdldEZsb2F0MzIoMCwgZmFs
c2UpIGlzIDEwCitQQVNTIHZpZXcuc2V0RmxvYXQzMigzLCAxMCwgZmFsc2UpIGlzIHVuZGVmaW5l
ZC4KK1BBU1Mgdmlldy5nZXRGbG9hdDMyKDMsIGZhbHNlKSBpcyAxMAorUEFTUyB2aWV3LnNldEZs
b2F0MzIoNywgMTAsIGZhbHNlKSBpcyB1bmRlZmluZWQuCitQQVNTIHZpZXcuZ2V0RmxvYXQzMig3
LCBmYWxzZSkgaXMgMTAKK1BBU1Mgdmlldy5zZXRGbG9hdDMyKDEwLCAxMCwgZmFsc2UpIGlzIHVu
ZGVmaW5lZC4KK1BBU1Mgdmlldy5nZXRGbG9hdDMyKDEwLCBmYWxzZSkgaXMgMTAKK1BBU1Mgdmll
dy5zZXRGbG9hdDMyKDAsIDEuMjMwMDAwMDE5MDczNDg2MywgdHJ1ZSkgaXMgdW5kZWZpbmVkLgor
UEFTUyB2aWV3LmdldEZsb2F0MzIoMCwgdHJ1ZSkgaXMgMS4yMzAwMDAwMTkwNzM0ODYzCitQQVNT
IHZpZXcuc2V0RmxvYXQzMigzLCAxLjIzMDAwMDAxOTA3MzQ4NjMsIHRydWUpIGlzIHVuZGVmaW5l
ZC4KK1BBU1Mgdmlldy5nZXRGbG9hdDMyKDMsIHRydWUpIGlzIDEuMjMwMDAwMDE5MDczNDg2Mwor
UEFTUyB2aWV3LnNldEZsb2F0MzIoNywgMS4yMzAwMDAwMTkwNzM0ODYzLCB0cnVlKSBpcyB1bmRl
ZmluZWQuCitQQVNTIHZpZXcuZ2V0RmxvYXQzMig3LCB0cnVlKSBpcyAxLjIzMDAwMDAxOTA3MzQ4
NjMKK1BBU1Mgdmlldy5zZXRGbG9hdDMyKDEwLCAxLjIzMDAwMDAxOTA3MzQ4NjMsIHRydWUpIGlz
IHVuZGVmaW5lZC4KK1BBU1Mgdmlldy5nZXRGbG9hdDMyKDEwLCB0cnVlKSBpcyAxLjIzMDAwMDAx
OTA3MzQ4NjMKK1BBU1Mgdmlldy5zZXRGbG9hdDMyKDAsIDEuMjMwMDAwMDE5MDczNDg2MywgZmFs
c2UpIGlzIHVuZGVmaW5lZC4KK1BBU1Mgdmlldy5nZXRGbG9hdDMyKDAsIGZhbHNlKSBpcyAxLjIz
MDAwMDAxOTA3MzQ4NjMKK1BBU1Mgdmlldy5zZXRGbG9hdDMyKDMsIDEuMjMwMDAwMDE5MDczNDg2
MywgZmFsc2UpIGlzIHVuZGVmaW5lZC4KK1BBU1Mgdmlldy5nZXRGbG9hdDMyKDMsIGZhbHNlKSBp
cyAxLjIzMDAwMDAxOTA3MzQ4NjMKK1BBU1Mgdmlldy5zZXRGbG9hdDMyKDcsIDEuMjMwMDAwMDE5
MDczNDg2MywgZmFsc2UpIGlzIHVuZGVmaW5lZC4KK1BBU1Mgdmlldy5nZXRGbG9hdDMyKDcsIGZh
bHNlKSBpcyAxLjIzMDAwMDAxOTA3MzQ4NjMKK1BBU1Mgdmlldy5zZXRGbG9hdDMyKDEwLCAxLjIz
MDAwMDAxOTA3MzQ4NjMsIGZhbHNlKSBpcyB1bmRlZmluZWQuCitQQVNTIHZpZXcuZ2V0RmxvYXQz
MigxMCwgZmFsc2UpIGlzIDEuMjMwMDAwMDE5MDczNDg2MworUEFTUyB2aWV3LnNldEZsb2F0MzIo
MCwgLTQ1NjIxLjM3MTA5Mzc1LCB0cnVlKSBpcyB1bmRlZmluZWQuCitQQVNTIHZpZXcuZ2V0Rmxv
YXQzMigwLCB0cnVlKSBpcyAtNDU2MjEuMzcxMDkzNzUKK1BBU1Mgdmlldy5zZXRGbG9hdDMyKDMs
IC00NTYyMS4zNzEwOTM3NSwgdHJ1ZSkgaXMgdW5kZWZpbmVkLgorUEFTUyB2aWV3LmdldEZsb2F0
MzIoMywgdHJ1ZSkgaXMgLTQ1NjIxLjM3MTA5Mzc1CitQQVNTIHZpZXcuc2V0RmxvYXQzMig3LCAt
NDU2MjEuMzcxMDkzNzUsIHRydWUpIGlzIHVuZGVmaW5lZC4KK1BBU1Mgdmlldy5nZXRGbG9hdDMy
KDcsIHRydWUpIGlzIC00NTYyMS4zNzEwOTM3NQorUEFTUyB2aWV3LnNldEZsb2F0MzIoMTAsIC00
NTYyMS4zNzEwOTM3NSwgdHJ1ZSkgaXMgdW5kZWZpbmVkLgorUEFTUyB2aWV3LmdldEZsb2F0MzIo
MTAsIHRydWUpIGlzIC00NTYyMS4zNzEwOTM3NQorUEFTUyB2aWV3LnNldEZsb2F0MzIoMCwgLTQ1
NjIxLjM3MTA5Mzc1LCBmYWxzZSkgaXMgdW5kZWZpbmVkLgorUEFTUyB2aWV3LmdldEZsb2F0MzIo
MCwgZmFsc2UpIGlzIC00NTYyMS4zNzEwOTM3NQorUEFTUyB2aWV3LnNldEZsb2F0MzIoMywgLTQ1
NjIxLjM3MTA5Mzc1LCBmYWxzZSkgaXMgdW5kZWZpbmVkLgorUEFTUyB2aWV3LmdldEZsb2F0MzIo
MywgZmFsc2UpIGlzIC00NTYyMS4zNzEwOTM3NQorUEFTUyB2aWV3LnNldEZsb2F0MzIoNywgLTQ1
NjIxLjM3MTA5Mzc1LCBmYWxzZSkgaXMgdW5kZWZpbmVkLgorUEFTUyB2aWV3LmdldEZsb2F0MzIo
NywgZmFsc2UpIGlzIC00NTYyMS4zNzEwOTM3NQorUEFTUyB2aWV3LnNldEZsb2F0MzIoMTAsIC00
NTYyMS4zNzEwOTM3NSwgZmFsc2UpIGlzIHVuZGVmaW5lZC4KK1BBU1Mgdmlldy5nZXRGbG9hdDMy
KDEwLCBmYWxzZSkgaXMgLTQ1NjIxLjM3MTA5Mzc1CitQQVNTIHZpZXcuc2V0RmxvYXQzMigwLCBO
YU4sIHRydWUpIGlzIHVuZGVmaW5lZC4KK1BBU1Mgdmlldy5nZXRGbG9hdDMyKDAsIHRydWUpIGlz
IE5hTgorUEFTUyB2aWV3LnNldEZsb2F0MzIoMywgTmFOLCB0cnVlKSBpcyB1bmRlZmluZWQuCitQ
QVNTIHZpZXcuZ2V0RmxvYXQzMigzLCB0cnVlKSBpcyBOYU4KK1BBU1Mgdmlldy5zZXRGbG9hdDMy
KDcsIE5hTiwgdHJ1ZSkgaXMgdW5kZWZpbmVkLgorUEFTUyB2aWV3LmdldEZsb2F0MzIoNywgdHJ1
ZSkgaXMgTmFOCitQQVNTIHZpZXcuc2V0RmxvYXQzMigxMCwgTmFOLCB0cnVlKSBpcyB1bmRlZmlu
ZWQuCitQQVNTIHZpZXcuZ2V0RmxvYXQzMigxMCwgdHJ1ZSkgaXMgTmFOCitQQVNTIHZpZXcuc2V0
RmxvYXQzMigwLCBOYU4sIGZhbHNlKSBpcyB1bmRlZmluZWQuCitQQVNTIHZpZXcuZ2V0RmxvYXQz
MigwLCBmYWxzZSkgaXMgTmFOCitQQVNTIHZpZXcuc2V0RmxvYXQzMigzLCBOYU4sIGZhbHNlKSBp
cyB1bmRlZmluZWQuCitQQVNTIHZpZXcuZ2V0RmxvYXQzMigzLCBmYWxzZSkgaXMgTmFOCitQQVNT
IHZpZXcuc2V0RmxvYXQzMig3LCBOYU4sIGZhbHNlKSBpcyB1bmRlZmluZWQuCitQQVNTIHZpZXcu
Z2V0RmxvYXQzMig3LCBmYWxzZSkgaXMgTmFOCitQQVNTIHZpZXcuc2V0RmxvYXQzMigxMCwgTmFO
LCBmYWxzZSkgaXMgdW5kZWZpbmVkLgorUEFTUyB2aWV3LmdldEZsb2F0MzIoMTAsIGZhbHNlKSBp
cyBOYU4KK1BBU1Mgdmlldy5zZXRGbG9hdDMyKDAsIC1OYU4sIHRydWUpIGlzIHVuZGVmaW5lZC4K
K1BBU1Mgdmlldy5nZXRGbG9hdDMyKDAsIHRydWUpIGlzIC1OYU4KK1BBU1Mgdmlldy5zZXRGbG9h
dDMyKDMsIC1OYU4sIHRydWUpIGlzIHVuZGVmaW5lZC4KK1BBU1Mgdmlldy5nZXRGbG9hdDMyKDMs
IHRydWUpIGlzIC1OYU4KK1BBU1Mgdmlldy5zZXRGbG9hdDMyKDcsIC1OYU4sIHRydWUpIGlzIHVu
ZGVmaW5lZC4KK1BBU1Mgdmlldy5nZXRGbG9hdDMyKDcsIHRydWUpIGlzIC1OYU4KK1BBU1Mgdmll
dy5zZXRGbG9hdDMyKDEwLCAtTmFOLCB0cnVlKSBpcyB1bmRlZmluZWQuCitQQVNTIHZpZXcuZ2V0
RmxvYXQzMigxMCwgdHJ1ZSkgaXMgLU5hTgorUEFTUyB2aWV3LnNldEZsb2F0MzIoMCwgLU5hTiwg
ZmFsc2UpIGlzIHVuZGVmaW5lZC4KK1BBU1Mgdmlldy5nZXRGbG9hdDMyKDAsIGZhbHNlKSBpcyAt
TmFOCitQQVNTIHZpZXcuc2V0RmxvYXQzMigzLCAtTmFOLCBmYWxzZSkgaXMgdW5kZWZpbmVkLgor
UEFTUyB2aWV3LmdldEZsb2F0MzIoMywgZmFsc2UpIGlzIC1OYU4KK1BBU1Mgdmlldy5zZXRGbG9h
dDMyKDcsIC1OYU4sIGZhbHNlKSBpcyB1bmRlZmluZWQuCitQQVNTIHZpZXcuZ2V0RmxvYXQzMig3
LCBmYWxzZSkgaXMgLU5hTgorUEFTUyB2aWV3LnNldEZsb2F0MzIoMTAsIC1OYU4sIGZhbHNlKSBp
cyB1bmRlZmluZWQuCitQQVNTIHZpZXcuZ2V0RmxvYXQzMigxMCwgZmFsc2UpIGlzIC1OYU4KK1BB
U1Mgdmlldy5zZXRGbG9hdDY0KDAsIDEwLCB0cnVlKSBpcyB1bmRlZmluZWQuCitQQVNTIHZpZXcu
Z2V0RmxvYXQ2NCgwLCB0cnVlKSBpcyAxMAorUEFTUyB2aWV3LnNldEZsb2F0NjQoMywgMTAsIHRy
dWUpIGlzIHVuZGVmaW5lZC4KK1BBU1Mgdmlldy5nZXRGbG9hdDY0KDMsIHRydWUpIGlzIDEwCitQ
QVNTIHZpZXcuc2V0RmxvYXQ2NCg3LCAxMCwgdHJ1ZSkgaXMgdW5kZWZpbmVkLgorUEFTUyB2aWV3
LmdldEZsb2F0NjQoNywgdHJ1ZSkgaXMgMTAKK1BBU1Mgdmlldy5zZXRGbG9hdDY0KDEwLCAxMCwg
dHJ1ZSkgaXMgdW5kZWZpbmVkLgorUEFTUyB2aWV3LmdldEZsb2F0NjQoMTAsIHRydWUpIGlzIDEw
CitQQVNTIHZpZXcuc2V0RmxvYXQ2NCgwLCAxMCwgZmFsc2UpIGlzIHVuZGVmaW5lZC4KK1BBU1Mg
dmlldy5nZXRGbG9hdDY0KDAsIGZhbHNlKSBpcyAxMAorUEFTUyB2aWV3LnNldEZsb2F0NjQoMywg
MTAsIGZhbHNlKSBpcyB1bmRlZmluZWQuCitQQVNTIHZpZXcuZ2V0RmxvYXQ2NCgzLCBmYWxzZSkg
aXMgMTAKK1BBU1Mgdmlldy5zZXRGbG9hdDY0KDcsIDEwLCBmYWxzZSkgaXMgdW5kZWZpbmVkLgor
UEFTUyB2aWV3LmdldEZsb2F0NjQoNywgZmFsc2UpIGlzIDEwCitQQVNTIHZpZXcuc2V0RmxvYXQ2
NCgxMCwgMTAsIGZhbHNlKSBpcyB1bmRlZmluZWQuCitQQVNTIHZpZXcuZ2V0RmxvYXQ2NCgxMCwg
ZmFsc2UpIGlzIDEwCitQQVNTIHZpZXcuc2V0RmxvYXQ2NCgwLCAxLjIzLCB0cnVlKSBpcyB1bmRl
ZmluZWQuCitQQVNTIHZpZXcuZ2V0RmxvYXQ2NCgwLCB0cnVlKSBpcyAxLjIzCitQQVNTIHZpZXcu
c2V0RmxvYXQ2NCgzLCAxLjIzLCB0cnVlKSBpcyB1bmRlZmluZWQuCitQQVNTIHZpZXcuZ2V0Rmxv
YXQ2NCgzLCB0cnVlKSBpcyAxLjIzCitQQVNTIHZpZXcuc2V0RmxvYXQ2NCg3LCAxLjIzLCB0cnVl
KSBpcyB1bmRlZmluZWQuCitQQVNTIHZpZXcuZ2V0RmxvYXQ2NCg3LCB0cnVlKSBpcyAxLjIzCitQ
QVNTIHZpZXcuc2V0RmxvYXQ2NCgxMCwgMS4yMywgdHJ1ZSkgaXMgdW5kZWZpbmVkLgorUEFTUyB2
aWV3LmdldEZsb2F0NjQoMTAsIHRydWUpIGlzIDEuMjMKK1BBU1Mgdmlldy5zZXRGbG9hdDY0KDAs
IDEuMjMsIGZhbHNlKSBpcyB1bmRlZmluZWQuCitQQVNTIHZpZXcuZ2V0RmxvYXQ2NCgwLCBmYWxz
ZSkgaXMgMS4yMworUEFTUyB2aWV3LnNldEZsb2F0NjQoMywgMS4yMywgZmFsc2UpIGlzIHVuZGVm
aW5lZC4KK1BBU1Mgdmlldy5nZXRGbG9hdDY0KDMsIGZhbHNlKSBpcyAxLjIzCitQQVNTIHZpZXcu
c2V0RmxvYXQ2NCg3LCAxLjIzLCBmYWxzZSkgaXMgdW5kZWZpbmVkLgorUEFTUyB2aWV3LmdldEZs
b2F0NjQoNywgZmFsc2UpIGlzIDEuMjMKK1BBU1Mgdmlldy5zZXRGbG9hdDY0KDEwLCAxLjIzLCBm
YWxzZSkgaXMgdW5kZWZpbmVkLgorUEFTUyB2aWV3LmdldEZsb2F0NjQoMTAsIGZhbHNlKSBpcyAx
LjIzCitQQVNTIHZpZXcuc2V0RmxvYXQ2NCgwLCAtNjIxMzU3Ni40ODM5LCB0cnVlKSBpcyB1bmRl
ZmluZWQuCitQQVNTIHZpZXcuZ2V0RmxvYXQ2NCgwLCB0cnVlKSBpcyAtNjIxMzU3Ni40ODM5CitQ
QVNTIHZpZXcuc2V0RmxvYXQ2NCgzLCAtNjIxMzU3Ni40ODM5LCB0cnVlKSBpcyB1bmRlZmluZWQu
CitQQVNTIHZpZXcuZ2V0RmxvYXQ2NCgzLCB0cnVlKSBpcyAtNjIxMzU3Ni40ODM5CitQQVNTIHZp
ZXcuc2V0RmxvYXQ2NCg3LCAtNjIxMzU3Ni40ODM5LCB0cnVlKSBpcyB1bmRlZmluZWQuCitQQVNT
IHZpZXcuZ2V0RmxvYXQ2NCg3LCB0cnVlKSBpcyAtNjIxMzU3Ni40ODM5CitQQVNTIHZpZXcuc2V0
RmxvYXQ2NCgxMCwgLTYyMTM1NzYuNDgzOSwgdHJ1ZSkgaXMgdW5kZWZpbmVkLgorUEFTUyB2aWV3
LmdldEZsb2F0NjQoMTAsIHRydWUpIGlzIC02MjEzNTc2LjQ4MzkKK1BBU1Mgdmlldy5zZXRGbG9h
dDY0KDAsIC02MjEzNTc2LjQ4MzksIGZhbHNlKSBpcyB1bmRlZmluZWQuCitQQVNTIHZpZXcuZ2V0
RmxvYXQ2NCgwLCBmYWxzZSkgaXMgLTYyMTM1NzYuNDgzOQorUEFTUyB2aWV3LnNldEZsb2F0NjQo
MywgLTYyMTM1NzYuNDgzOSwgZmFsc2UpIGlzIHVuZGVmaW5lZC4KK1BBU1Mgdmlldy5nZXRGbG9h
dDY0KDMsIGZhbHNlKSBpcyAtNjIxMzU3Ni40ODM5CitQQVNTIHZpZXcuc2V0RmxvYXQ2NCg3LCAt
NjIxMzU3Ni40ODM5LCBmYWxzZSkgaXMgdW5kZWZpbmVkLgorUEFTUyB2aWV3LmdldEZsb2F0NjQo
NywgZmFsc2UpIGlzIC02MjEzNTc2LjQ4MzkKK1BBU1Mgdmlldy5zZXRGbG9hdDY0KDEwLCAtNjIx
MzU3Ni40ODM5LCBmYWxzZSkgaXMgdW5kZWZpbmVkLgorUEFTUyB2aWV3LmdldEZsb2F0NjQoMTAs
IGZhbHNlKSBpcyAtNjIxMzU3Ni40ODM5CitQQVNTIHZpZXcuc2V0RmxvYXQ2NCgwLCBOYU4sIHRy
dWUpIGlzIHVuZGVmaW5lZC4KK1BBU1Mgdmlldy5nZXRGbG9hdDY0KDAsIHRydWUpIGlzIE5hTgor
UEFTUyB2aWV3LnNldEZsb2F0NjQoMywgTmFOLCB0cnVlKSBpcyB1bmRlZmluZWQuCitQQVNTIHZp
ZXcuZ2V0RmxvYXQ2NCgzLCB0cnVlKSBpcyBOYU4KK1BBU1Mgdmlldy5zZXRGbG9hdDY0KDcsIE5h
TiwgdHJ1ZSkgaXMgdW5kZWZpbmVkLgorUEFTUyB2aWV3LmdldEZsb2F0NjQoNywgdHJ1ZSkgaXMg
TmFOCitQQVNTIHZpZXcuc2V0RmxvYXQ2NCgxMCwgTmFOLCB0cnVlKSBpcyB1bmRlZmluZWQuCitQ
QVNTIHZpZXcuZ2V0RmxvYXQ2NCgxMCwgdHJ1ZSkgaXMgTmFOCitQQVNTIHZpZXcuc2V0RmxvYXQ2
NCgwLCBOYU4sIGZhbHNlKSBpcyB1bmRlZmluZWQuCitQQVNTIHZpZXcuZ2V0RmxvYXQ2NCgwLCBm
YWxzZSkgaXMgTmFOCitQQVNTIHZpZXcuc2V0RmxvYXQ2NCgzLCBOYU4sIGZhbHNlKSBpcyB1bmRl
ZmluZWQuCitQQVNTIHZpZXcuZ2V0RmxvYXQ2NCgzLCBmYWxzZSkgaXMgTmFOCitQQVNTIHZpZXcu
c2V0RmxvYXQ2NCg3LCBOYU4sIGZhbHNlKSBpcyB1bmRlZmluZWQuCitQQVNTIHZpZXcuZ2V0Rmxv
YXQ2NCg3LCBmYWxzZSkgaXMgTmFOCitQQVNTIHZpZXcuc2V0RmxvYXQ2NCgxMCwgTmFOLCBmYWxz
ZSkgaXMgdW5kZWZpbmVkLgorUEFTUyB2aWV3LmdldEZsb2F0NjQoMTAsIGZhbHNlKSBpcyBOYU4K
K1BBU1Mgdmlldy5zZXRGbG9hdDY0KDAsIC1OYU4sIHRydWUpIGlzIHVuZGVmaW5lZC4KK1BBU1Mg
dmlldy5nZXRGbG9hdDY0KDAsIHRydWUpIGlzIC1OYU4KK1BBU1Mgdmlldy5zZXRGbG9hdDY0KDMs
IC1OYU4sIHRydWUpIGlzIHVuZGVmaW5lZC4KK1BBU1Mgdmlldy5nZXRGbG9hdDY0KDMsIHRydWUp
IGlzIC1OYU4KK1BBU1Mgdmlldy5zZXRGbG9hdDY0KDcsIC1OYU4sIHRydWUpIGlzIHVuZGVmaW5l
ZC4KK1BBU1Mgdmlldy5nZXRGbG9hdDY0KDcsIHRydWUpIGlzIC1OYU4KK1BBU1Mgdmlldy5zZXRG
bG9hdDY0KDEwLCAtTmFOLCB0cnVlKSBpcyB1bmRlZmluZWQuCitQQVNTIHZpZXcuZ2V0RmxvYXQ2
NCgxMCwgdHJ1ZSkgaXMgLU5hTgorUEFTUyB2aWV3LnNldEZsb2F0NjQoMCwgLU5hTiwgZmFsc2Up
IGlzIHVuZGVmaW5lZC4KK1BBU1Mgdmlldy5nZXRGbG9hdDY0KDAsIGZhbHNlKSBpcyAtTmFOCitQ
QVNTIHZpZXcuc2V0RmxvYXQ2NCgzLCAtTmFOLCBmYWxzZSkgaXMgdW5kZWZpbmVkLgorUEFTUyB2
aWV3LmdldEZsb2F0NjQoMywgZmFsc2UpIGlzIC1OYU4KK1BBU1Mgdmlldy5zZXRGbG9hdDY0KDcs
IC1OYU4sIGZhbHNlKSBpcyB1bmRlZmluZWQuCitQQVNTIHZpZXcuZ2V0RmxvYXQ2NCg3LCBmYWxz
ZSkgaXMgLU5hTgorUEFTUyB2aWV3LnNldEZsb2F0NjQoMTAsIC1OYU4sIGZhbHNlKSBpcyB1bmRl
ZmluZWQuCitQQVNTIHZpZXcuZ2V0RmxvYXQ2NCgxMCwgZmFsc2UpIGlzIC1OYU4KKworVGVzdCBm
b3Igd3JvbmcgYXJndW1lbnRzIHBhc3NlZCB0byBnZXQgbWV0aG9kcworUEFTUyB2aWV3LnNldElu
dDgoKSB0aHJldyBleGNlcHRpb24gU3ludGF4RXJyb3I6IE5vdCBlbm91Z2ggYXJndW1lbnRzLgor
UEFTUyB2aWV3LnNldFVpbnQ4KCkgdGhyZXcgZXhjZXB0aW9uIFN5bnRheEVycm9yOiBOb3QgZW5v
dWdoIGFyZ3VtZW50cy4KK1BBU1Mgdmlldy5zZXRJbnQxNigpIHRocmV3IGV4Y2VwdGlvbiBTeW50
YXhFcnJvcjogTm90IGVub3VnaCBhcmd1bWVudHMuCitQQVNTIHZpZXcuc2V0VWludDE2KCkgdGhy
ZXcgZXhjZXB0aW9uIFN5bnRheEVycm9yOiBOb3QgZW5vdWdoIGFyZ3VtZW50cy4KK1BBU1Mgdmll
dy5zZXRJbnQzMigpIHRocmV3IGV4Y2VwdGlvbiBTeW50YXhFcnJvcjogTm90IGVub3VnaCBhcmd1
bWVudHMuCitQQVNTIHZpZXcuc2V0VWludDMyKCkgdGhyZXcgZXhjZXB0aW9uIFN5bnRheEVycm9y
OiBOb3QgZW5vdWdoIGFyZ3VtZW50cy4KK1BBU1Mgdmlldy5zZXRGbG9hdDMyKCkgdGhyZXcgZXhj
ZXB0aW9uIFN5bnRheEVycm9yOiBOb3QgZW5vdWdoIGFyZ3VtZW50cy4KK1BBU1Mgdmlldy5zZXRG
bG9hdDY0KCkgdGhyZXcgZXhjZXB0aW9uIFN5bnRheEVycm9yOiBOb3QgZW5vdWdoIGFyZ3VtZW50
cy4KK1BBU1Mgdmlldy5zZXRJbnQ4KDEpIHRocmV3IGV4Y2VwdGlvbiBTeW50YXhFcnJvcjogTm90
IGVub3VnaCBhcmd1bWVudHMuCitQQVNTIHZpZXcuc2V0VWludDgoMSkgdGhyZXcgZXhjZXB0aW9u
IFN5bnRheEVycm9yOiBOb3QgZW5vdWdoIGFyZ3VtZW50cy4KK1BBU1Mgdmlldy5zZXRJbnQxNigx
KSB0aHJldyBleGNlcHRpb24gU3ludGF4RXJyb3I6IE5vdCBlbm91Z2ggYXJndW1lbnRzLgorUEFT
UyB2aWV3LnNldFVpbnQxNigxKSB0aHJldyBleGNlcHRpb24gU3ludGF4RXJyb3I6IE5vdCBlbm91
Z2ggYXJndW1lbnRzLgorUEFTUyB2aWV3LnNldEludDMyKDEpIHRocmV3IGV4Y2VwdGlvbiBTeW50
YXhFcnJvcjogTm90IGVub3VnaCBhcmd1bWVudHMuCitQQVNTIHZpZXcuc2V0VWludDMyKDEpIHRo
cmV3IGV4Y2VwdGlvbiBTeW50YXhFcnJvcjogTm90IGVub3VnaCBhcmd1bWVudHMuCitQQVNTIHZp
ZXcuc2V0RmxvYXQzMigxKSB0aHJldyBleGNlcHRpb24gU3ludGF4RXJyb3I6IE5vdCBlbm91Z2gg
YXJndW1lbnRzLgorUEFTUyB2aWV3LnNldEZsb2F0NjQoMSkgdGhyZXcgZXhjZXB0aW9uIFN5bnRh
eEVycm9yOiBOb3QgZW5vdWdoIGFyZ3VtZW50cy4KKworVGVzdCBmb3IgaW5kZXhpbmcgdGhhdCBz
aG91bGQgbm90IHdvcmsKK1BBU1Mgdmlld1swXSBpcyB1bmRlZmluZWQuCitQQVNTIHZpZXdbMF0g
PSAzIGlzIGRlZmluZWQuCitQQVNTIHZpZXcuZ2V0VWludDgoMCkgaXMgMQorUEFTUyBzdWNjZXNz
ZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2Zhc3QvY2FudmFzL3dlYmdsL2RhdGEtdmlldy10ZXN0Lmh0bWwgYi9MYXlvdXRUZXN0
cy9mYXN0L2NhbnZhcy93ZWJnbC9kYXRhLXZpZXctdGVzdC5odG1sCm5ldyBmaWxlIG1vZGUgMTAw
NzU1CmluZGV4IDAwMDAwMDAuLmQ3Y2JjYzA4Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvZmFzdC9jYW52YXMvd2ViZ2wvZGF0YS12aWV3LXRlc3QuaHRtbApAQCAtMCwwICsxLDMwMSBA
QAorPGh0bWw+Cis8aGVhZD4KKzxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iLi4vLi4vanMv
cmVzb3VyY2VzL2pzLXRlc3Qtc3R5bGUuY3NzIi8+Cis8c2NyaXB0IHNyYz0iLi4vLi4vanMvcmVz
b3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPGRpdiBp
ZD0iZGVzY3JpcHRpb24iPjwvZGl2PgorPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+CisKKzxzY3Jp
cHQ+CitkZXNjcmlwdGlvbigiVGVzdCBEYXRhVmlldy4iKTsKKwordmFyIGludEFycmF5MSA9IFsw
LCAxLCAyLCAzLCAxMDAsIDEwMSwgMTAyLCAxMDMsIDEyOCwgMTI5LCAxMzAsIDEzMSwgMjUyLCAy
NTMsIDI1NCwgMjU1XTsKK3ZhciBpbnRBcnJheTIgPSBbMzEsIDMyLCAzMywgMCwgMSwgMiwgMywg
MTAwLCAxMDEsIDEwMiwgMTAzLCAxMjgsIDEyOSwgMTMwLCAxMzEsIDI1MiwgMjUzLCAyNTQsIDI1
NV07Cit2YXIgZW1wdHlBcnJheSA9IFsyMDQsIDIwNCwgMjA0LCAyMDQsIDIwNCwgMjA0LCAyMDQs
IDIwNCwgMjA0LCAyMDQsIDIwNCwgMjA0LCAyMDQsIDIwNCwgMjA0LCAyMDRdOworCit2YXIgYXJh
eUJ1ZmZlciA9IG51bGw7Cit2YXIgdmlldyA9IG51bGw7Cit2YXIgdmlld1N0YXJ0ID0gMDsKK3Zh
ciB2aWV3TGVuZ3RoID0gMDsKKworZnVuY3Rpb24gZ2V0RWxlbWVudFNpemUoZnVuYykKK3sKKyAg
ICBzd2l0Y2ggKGZ1bmMpIHsKKyAgICBjYXNlICJJbnQ4IjoKKyAgICBjYXNlICJVaW50OCI6Cisg
ICAgICAgIHJldHVybiAxOworICAgIGNhc2UgIkludDE2IjoKKyAgICBjYXNlICJVaW50MTYiOgor
ICAgICAgICByZXR1cm4gMjsKKyAgICBjYXNlICJJbnQzMiI6CisgICAgY2FzZSAiVWludDMyIjoK
KyAgICBjYXNlICJGbG9hdDMyIjoKKyAgICAgICAgcmV0dXJuIDQ7CisgICAgY2FzZSAiRmxvYXQ2
NCI6CisgICAgICAgIHJldHVybiA4OworICAgIGRlZmF1bHQ6CisgICAgICAgIGRlYnVnKCJTaG91
bGQgbm90IHJlYWNoZWQiKTsKKyAgICB9Cit9CisKK2Z1bmN0aW9uIGNoZWNrR2V0KGZ1bmMsIGlu
ZGV4LCBleHBlY3RlZCwgbGl0dGxlRW5kaWFuKQoreworICAgIHZhciBleHByID0gInZpZXcuZ2V0
IiArIGZ1bmMgKyAiKCIgKyBpbmRleDsKKyAgICBpZiAobGl0dGxlRW5kaWFuICE9IHVuZGVmaW5l
ZCkgeworICAgICAgICBleHByICs9ICIsICI7CisgICAgICAgIGV4cHIgKz0gbGl0dGxlRW5kaWFu
ID8gInRydWUiIDogImZhbHNlIjsKKyAgICB9CisgICAgZXhwciArPSAiKSI7CisgICAgaWYgKGlu
ZGV4ICsgZ2V0RWxlbWVudFNpemUoZnVuYykgLSAxIDwgdmlldy5ieXRlTGVuZ3RoKQorICAgICAg
ICBzaG91bGRCZShleHByLCBleHBlY3RlZCk7CisgICAgZWxzZQorICAgICAgICBzaG91bGRUaHJv
dyhleHByKTsKK30KKworZnVuY3Rpb24gY2hlY2tTZXQoZnVuYywgaW5kZXgsIHZhbHVlLCBsaXR0
bGVFbmRpYW4pCit7CisgICAgdmFyIGV4cHIgPSAidmlldy5zZXQiICsgZnVuYyArICIoIiArIGlu
ZGV4ICsgIiwgIiArIHZhbHVlOworICAgIGlmIChsaXR0bGVFbmRpYW4gIT0gdW5kZWZpbmVkKSB7
CisgICAgICAgIGV4cHIgKz0gIiwgIjsKKyAgICAgICAgZXhwciArPSBsaXR0bGVFbmRpYW4gPyAi
dHJ1ZSIgOiAiZmFsc2UiOworICAgIH0KKyAgICBleHByICs9ICIpIjsKKyAgICBpZiAoaW5kZXgg
KyBnZXRFbGVtZW50U2l6ZShmdW5jKSAtIDEgPCB2aWV3LmJ5dGVMZW5ndGgpIHsKKyAgICAgICAg
c2hvdWxkQmVVbmRlZmluZWQoZXhwcik7CisgICAgICAgIGNoZWNrR2V0KGZ1bmMsIGluZGV4LCB2
YWx1ZSwgbGl0dGxlRW5kaWFuKTsKKyAgICB9IGVsc2UKKyAgICAgICAgc2hvdWxkVGhyb3coZXhw
cik7Cit9CisKK2Z1bmN0aW9uIHRlc3QoaXNUZXN0aW5nR2V0LCBmdW5jLCBpbmRleCwgdmFsdWUs
IGxpdHRsZUVuZGlhbikKK3sKKyAgICBpZiAoaXNUZXN0aW5nR2V0KQorICAgICAgICBjaGVja0dl
dChmdW5jLCBpbmRleCwgdmFsdWUsIGxpdHRsZUVuZGlhbik7CisgICAgIGVsc2UKKyAgICAgICAg
Y2hlY2tTZXQoZnVuYywgaW5kZXgsIHZhbHVlLCBsaXR0bGVFbmRpYW4pOworfQorCitmdW5jdGlv
biBjcmVhdGVEYXRhVmlldyhhcnJheSwgZnJvbnRQYWRkaW5nTnVtLCBsaXR0bGVFbmRpYW4sIHN0
YXJ0LCBsZW5ndGgpCit7CisgICAgaWYgKCFsaXR0bGVFbmRpYW4pCisgICAgICAgIGFycmF5LnJl
dmVyc2UoKTsKKyAgICB2YXIgcGFkZGluZ0FycmF5ID0gbmV3IEFycmF5KGZyb250UGFkZGluZ051
bSk7CisgICAgYXJyYXlCdWZmZXIgPSAobmV3IFVpbnQ4QXJyYXkocGFkZGluZ0FycmF5LmNvbmNh
dChhcnJheSkpKS5idWZmZXI7CisgICAgdmlld1N0YXJ0ID0gKHN0YXJ0ICE9IHVuZGVmaW5lZCkg
PyBzdGFydCA6IDA7CisgICAgdmlld0xlbmd0aCA9IChsZW5ndGggIT0gdW5kZWZpbmVkKSA/IGxl
bmd0aCA6IGFycmF5QnVmZmVyLmJ5dGVMZW5ndGggLSB2aWV3U3RhcnQ7CisgICAgdmlldyA9IG5l
dyBEYXRhVmlldyhhcnJheUJ1ZmZlciwgdmlld1N0YXJ0LCB2aWV3TGVuZ3RoKTsKKyAgICBpZiAo
IWxpdHRsZUVuZGlhbikKKyAgICAgICAgYXJyYXkucmV2ZXJzZSgpOyAvLyByZXN0b3JlIHRoZSBh
cnJheS4KK30KKworZnVuY3Rpb24gcnVuSW50ZWdlclRlc3RDYXNlcyhpc1Rlc3RpbmdHZXQsIGFy
cmF5LCBzdGFydCwgbGVuZ3RoKQoreworICAgIGNyZWF0ZURhdGFWaWV3KGFycmF5LCAwLCB0cnVl
LCBzdGFydCwgbGVuZ3RoKTsKKworICAgIHRlc3QoaXNUZXN0aW5nR2V0LCAiSW50OCIsIDAsICIw
Iik7CisgICAgdGVzdChpc1Rlc3RpbmdHZXQsICJJbnQ4IiwgOCwgIi0xMjgiKTsKKyAgICB0ZXN0
KGlzVGVzdGluZ0dldCwgIkludDgiLCAxNSwgIi0xIik7CisKKyAgICB0ZXN0KGlzVGVzdGluZ0dl
dCwgIlVpbnQ4IiwgMCwgIjAiKTsKKyAgICB0ZXN0KGlzVGVzdGluZ0dldCwgIlVpbnQ4IiwgOCwg
IjEyOCIpOworICAgIHRlc3QoaXNUZXN0aW5nR2V0LCAiVWludDgiLCAxNSwgIjI1NSIpOworCisg
ICAgLy8gTGl0dGxlIGVuZGlhbi4KKyAgICB0ZXN0KGlzVGVzdGluZ0dldCwgIkludDE2IiwgMCwg
IjI1NiIsIHRydWUpOworICAgIHRlc3QoaXNUZXN0aW5nR2V0LCAiSW50MTYiLCA1LCAiMjYyMTMi
LCB0cnVlKTsKKyAgICB0ZXN0KGlzVGVzdGluZ0dldCwgIkludDE2IiwgOSwgIi0zMjEyNyIsIHRy
dWUpOworICAgIHRlc3QoaXNUZXN0aW5nR2V0LCAiSW50MTYiLCAxNCwgIi0yIiwgdHJ1ZSk7CisK
KyAgICAvLyBCaWcgZW5kaWFuLgorICAgIHRlc3QoaXNUZXN0aW5nR2V0LCAiSW50MTYiLCAwLCAi
MSIpOworICAgIHRlc3QoaXNUZXN0aW5nR2V0LCAiSW50MTYiLCA1LCAiMjU5NTgiKTsKKyAgICB0
ZXN0KGlzVGVzdGluZ0dldCwgIkludDE2IiwgOSwgIi0zMjM4MiIpOworICAgIHRlc3QoaXNUZXN0
aW5nR2V0LCAiSW50MTYiLCAxNCwgIi0yNTciKTsKKworICAgIC8vIExpdHRsZSBlbmRpYW4uCisg
ICAgdGVzdChpc1Rlc3RpbmdHZXQsICJVaW50MTYiLCAwLCAiMjU2IiwgdHJ1ZSk7CisgICAgdGVz
dChpc1Rlc3RpbmdHZXQsICJVaW50MTYiLCA1LCAiMjYyMTMiLCB0cnVlKTsKKyAgICB0ZXN0KGlz
VGVzdGluZ0dldCwgIlVpbnQxNiIsIDksICIzMzQwOSIsIHRydWUpOworICAgIHRlc3QoaXNUZXN0
aW5nR2V0LCAiVWludDE2IiwgMTQsICI2NTUzNCIsIHRydWUpOworCisgICAgLy8gQmlnIGVuZGlh
bi4KKyAgICB0ZXN0KGlzVGVzdGluZ0dldCwgIlVpbnQxNiIsIDAsICIxIik7CisgICAgdGVzdChp
c1Rlc3RpbmdHZXQsICJVaW50MTYiLCA1LCAiMjU5NTgiKTsKKyAgICB0ZXN0KGlzVGVzdGluZ0dl
dCwgIlVpbnQxNiIsIDksICIzMzE1NCIpOworICAgIHRlc3QoaXNUZXN0aW5nR2V0LCAiVWludDE2
IiwgMTQsICI2NTI3OSIpOworCisgICAgLy8gTGl0dGxlIGVuZGlhbi4KKyAgICB0ZXN0KGlzVGVz
dGluZ0dldCwgIkludDMyIiwgMCwgIjUwNDYyOTc2IiwgdHJ1ZSk7CisgICAgdGVzdChpc1Rlc3Rp
bmdHZXQsICJJbnQzMiIsIDMsICIxNzE3OTIwNzcxIiwgdHJ1ZSk7CisgICAgdGVzdChpc1Rlc3Rp
bmdHZXQsICJJbnQzMiIsIDYsICItMjEyMjI5MTM1NCIsIHRydWUpOworICAgIHRlc3QoaXNUZXN0
aW5nR2V0LCAiSW50MzIiLCA5LCAiLTU4NDkwMjM5IiwgdHJ1ZSk7CisgICAgdGVzdChpc1Rlc3Rp
bmdHZXQsICJJbnQzMiIsIDEyLCAiLTY2MDUyIiwgdHJ1ZSk7CisKKyAgICAvLyBCaWcgZW5kaWFu
LgorICAgIHRlc3QoaXNUZXN0aW5nR2V0LCAiSW50MzIiLCAwLCAiNjYwNTEiKTsKKyAgICB0ZXN0
KGlzVGVzdGluZ0dldCwgIkludDMyIiwgMywgIjU2OTExMjA2Iik7CisgICAgdGVzdChpc1Rlc3Rp
bmdHZXQsICJJbnQzMiIsIDYsICIxNzE4MDU5MTM3Iik7CisgICAgdGVzdChpc1Rlc3RpbmdHZXQs
ICJJbnQzMiIsIDksICItMjEyMjE1Mjk2NCIpOworICAgIHRlc3QoaXNUZXN0aW5nR2V0LCAiSW50
MzIiLCAxMiwgIi01MDQ2Mjk3NyIpOworCisgICAgLy8gTGl0dGxlIGVuZGlhbi4KKyAgICB0ZXN0
KGlzVGVzdGluZ0dldCwgIlVpbnQzMiIsIDAsICI1MDQ2Mjk3NiIsIHRydWUpOworICAgIHRlc3Qo
aXNUZXN0aW5nR2V0LCAiVWludDMyIiwgMywgIjE3MTc5MjA3NzEiLCB0cnVlKTsKKyAgICB0ZXN0
KGlzVGVzdGluZ0dldCwgIlVpbnQzMiIsIDYsICIyMTcyNjc1OTQyIiwgdHJ1ZSk7CisgICAgdGVz
dChpc1Rlc3RpbmdHZXQsICJVaW50MzIiLCA5LCAiNDIzNjQ3NzA1NyIsIHRydWUpOworICAgIHRl
c3QoaXNUZXN0aW5nR2V0LCAiVWludDMyIiwgMTIsICI0Mjk0OTAxMjQ0IiwgdHJ1ZSk7CisKKyAg
ICAvLyBCaWcgZW5kaWFuLgorICAgIHRlc3QoaXNUZXN0aW5nR2V0LCAiVWludDMyIiwgMCwgIjY2
MDUxIik7CisgICAgdGVzdChpc1Rlc3RpbmdHZXQsICJVaW50MzIiLCAzLCAiNTY5MTEyMDYiKTsK
KyAgICB0ZXN0KGlzVGVzdGluZ0dldCwgIlVpbnQzMiIsIDYsICIxNzE4MDU5MTM3Iik7CisgICAg
dGVzdChpc1Rlc3RpbmdHZXQsICJVaW50MzIiLCA5LCAiMjE3MjgxNDMzMiIpOworICAgIHRlc3Qo
aXNUZXN0aW5nR2V0LCAiVWludDMyIiwgMTIsICI0MjQ0NTA0MzE5Iik7Cit9CisKK2Z1bmN0aW9u
IHRlc3RGbG9hdChpc1Rlc3RpbmdHZXQsIGZ1bmMsIGFycmF5LCBzdGFydCwgZXhwZWN0ZWQpCit7
CisgICAgLy8gTGl0dGxlIGVuZGlhbi4KKyAgICBjcmVhdGVEYXRhVmlldyhhcnJheSwgMCwgdHJ1
ZSwgc3RhcnQpOworICAgIHRlc3QoaXNUZXN0aW5nR2V0LCBmdW5jLCAwLCBleHBlY3RlZCwgdHJ1
ZSk7CisgICAgY3JlYXRlRGF0YVZpZXcoYXJyYXksIDMsIHRydWUsIHN0YXJ0KTsKKyAgICB0ZXN0
KGlzVGVzdGluZ0dldCwgZnVuYywgMywgZXhwZWN0ZWQsIHRydWUpOworICAgIGNyZWF0ZURhdGFW
aWV3KGFycmF5LCA3LCB0cnVlLCBzdGFydCk7CisgICAgdGVzdChpc1Rlc3RpbmdHZXQsIGZ1bmMs
IDcsIGV4cGVjdGVkLCB0cnVlKTsKKyAgICBjcmVhdGVEYXRhVmlldyhhcnJheSwgMTAsIHRydWUs
IHN0YXJ0KTsKKyAgICB0ZXN0KGlzVGVzdGluZ0dldCwgZnVuYywgMTAsIGV4cGVjdGVkLCB0cnVl
KTsKKyAgICAKKyAgICAvLyBCaWcgZW5kaWFuLgorICAgIGNyZWF0ZURhdGFWaWV3KGFycmF5LCAw
LCBmYWxzZSk7CisgICAgdGVzdChpc1Rlc3RpbmdHZXQsIGZ1bmMsIDAsIGV4cGVjdGVkLCBmYWxz
ZSk7CisgICAgY3JlYXRlRGF0YVZpZXcoYXJyYXksIDMsIGZhbHNlKTsKKyAgICB0ZXN0KGlzVGVz
dGluZ0dldCwgZnVuYywgMywgZXhwZWN0ZWQsIGZhbHNlKTsKKyAgICBjcmVhdGVEYXRhVmlldyhh
cnJheSwgNywgZmFsc2UpOworICAgIHRlc3QoaXNUZXN0aW5nR2V0LCBmdW5jLCA3LCBleHBlY3Rl
ZCwgZmFsc2UpOworICAgIGNyZWF0ZURhdGFWaWV3KGFycmF5LCAxMCwgZmFsc2UpOworICAgIHRl
c3QoaXNUZXN0aW5nR2V0LCBmdW5jLCAxMCwgZXhwZWN0ZWQsIGZhbHNlKTsKK30KKworZnVuY3Rp
b24gcnVuRmxvYXRUZXN0Q2FzZXMoaXNUZXN0aW5nR2V0LCBzdGFydCkKK3sKKyAgICB0ZXN0Rmxv
YXQoaXNUZXN0aW5nR2V0LCAiRmxvYXQzMiIsIGlzVGVzdGluZ0dldCA/IFswLCAwLCAzMiwgNjVd
IDogZW1wdHlBcnJheSwgc3RhcnQsICIxMCIpOworICAgIHRlc3RGbG9hdChpc1Rlc3RpbmdHZXQs
ICJGbG9hdDMyIiwgaXNUZXN0aW5nR2V0ID8gWzE2NCwgMTEyLCAxNTcsIDYzXSA6IGVtcHR5QXJy
YXksIHN0YXJ0LCAiMS4yMzAwMDAwMTkwNzM0ODYzIik7CisgICAgdGVzdEZsb2F0KGlzVGVzdGlu
Z0dldCwgIkZsb2F0MzIiLCBpc1Rlc3RpbmdHZXQgPyBbOTUsIDUzLCA1MCwgMTk5XSA6IGVtcHR5
QXJyYXksIHN0YXJ0LCAiLTQ1NjIxLjM3MTA5Mzc1Iik7CisgICAgdGVzdEZsb2F0KGlzVGVzdGlu
Z0dldCwgIkZsb2F0MzIiLCBpc1Rlc3RpbmdHZXQgPyBbMjU1LCAyNTUsIDI1NSwgMTI3XSA6IGVt
cHR5QXJyYXksIHN0YXJ0LCAiTmFOIik7CisgICAgdGVzdEZsb2F0KGlzVGVzdGluZ0dldCwgIkZs
b2F0MzIiLCBpc1Rlc3RpbmdHZXQgPyBbMjU1LCAyNTUsIDI1NSwgMjU1XSA6IGVtcHR5QXJyYXks
IHN0YXJ0LCAiLU5hTiIpOworCisgICAgdGVzdEZsb2F0KGlzVGVzdGluZ0dldCwgIkZsb2F0NjQi
LCBpc1Rlc3RpbmdHZXQgPyBbMCwgMCwgMCwgMCwgMCwgMCwgMzYsIDY0XSA6IGVtcHR5QXJyYXks
IHN0YXJ0LCAiMTAiKTsKKyAgICB0ZXN0RmxvYXQoaXNUZXN0aW5nR2V0LCAiRmxvYXQ2NCIsIGlz
VGVzdGluZ0dldCA/IFsxNzQsIDcxLCAyMjUsIDEyMiwgMjAsIDE3NCwgMjQzLCA2M10gOiBlbXB0
eUFycmF5LCBzdGFydCwgIjEuMjMiKTsKKyAgICB0ZXN0RmxvYXQoaXNUZXN0aW5nR2V0LCAiRmxv
YXQ2NCIsIGlzVGVzdGluZ0dldCA/IFsxODEsIDU1LCAyNDgsIDMwLCAyNDIsIDE3OSwgODcsIDE5
M10gOiBlbXB0eUFycmF5LCBzdGFydCwgIi02MjEzNTc2LjQ4MzkiKTsKKyAgICB0ZXN0RmxvYXQo
aXNUZXN0aW5nR2V0LCAiRmxvYXQ2NCIsIGlzVGVzdGluZ0dldCA/IFsyNTUsIDI1NSwgMjU1LCAy
NTUsIDI1NSwgMjU1LCAyNTUsIDEyN10gOiBlbXB0eUFycmF5LCBzdGFydCwgIk5hTiIpOworICAg
IHRlc3RGbG9hdChpc1Rlc3RpbmdHZXQsICJGbG9hdDY0IiwgaXNUZXN0aW5nR2V0ID8gWzI1NSwg
MjU1LCAyNTUsIDI1NSwgMjU1LCAyNTUsIDI1NSwgMjU1XSA6IGVtcHR5QXJyYXksIHN0YXJ0LCAi
LU5hTiIpOworfQorCitmdW5jdGlvbiBydW5Db25zdHJ1Y3RvclRlc3RzKCkKK3sKKyAgICBhcmF5
QnVmZmVyID0gKG5ldyBVaW50OEFycmF5KFsxLCAyXSkpLmJ1ZmZlcjsKKworICAgIGRlYnVnKCIi
KTsKKyAgICBkZWJ1ZygiVGVzdCBmb3IgY29uc3RydWN0b3IgdGFraW5nIDEgYXJndW1lbnQiKTsK
KyAgICBzaG91bGRCZURlZmluZWQoInZpZXcgPSBuZXcgRGF0YVZpZXcoYXJheUJ1ZmZlcikiKTsK
KyAgICBzaG91bGRCZSgidmlldy5ieXRlT2Zmc2V0IiwgIjAiKTsKKyAgICBzaG91bGRCZSgidmll
dy5ieXRlTGVuZ3RoIiwgIjIiKTsKKworICAgIGRlYnVnKCIiKTsKKyAgICBkZWJ1ZygiVGVzdCBm
b3IgY29uc3RydWN0b3IgdGFraW5nIDIgYXJndW1lbnRzIik7CisgICAgc2hvdWxkQmVEZWZpbmVk
KCJ2aWV3ID0gbmV3IERhdGFWaWV3KGFyYXlCdWZmZXIsIDEpIik7CisgICAgc2hvdWxkQmUoInZp
ZXcuYnl0ZU9mZnNldCIsICIxIik7CisgICAgc2hvdWxkQmUoInZpZXcuYnl0ZUxlbmd0aCIsICIx
Iik7CisKKyAgICBkZWJ1ZygiIik7CisgICAgZGVidWcoIlRlc3QgZm9yIGNvbnN0cnVjdG9yIHRh
a2luZyAzIGFyZ3VtZW50cyIpOworICAgIHNob3VsZEJlRGVmaW5lZCgidmlldyA9IG5ldyBEYXRh
VmlldyhhcmF5QnVmZmVyLCAwLCAxKSIpOworICAgIHNob3VsZEJlKCJ2aWV3LmJ5dGVPZmZzZXQi
LCAiMCIpOworICAgIHNob3VsZEJlKCJ2aWV3LmJ5dGVMZW5ndGgiLCAiMSIpOworCisgICAgZGVi
dWcoIiIpOworICAgIGRlYnVnKCJUZXN0IGZvciBjb25zdHJ1Y3RvciB0aHJvd2luZyBleGNlcHRp
b24iKTsKKyAgICBzaG91bGRUaHJvdygidmlldyA9IG5ldyBEYXRhVmlldyhhcmF5QnVmZmVyLCAw
LCAzKSIpOworICAgIHNob3VsZFRocm93KCJ2aWV3ID0gbmV3IERhdGFWaWV3KGFyYXlCdWZmZXIs
IDEsIDIpIik7CisgICAgc2hvdWxkVGhyb3coInZpZXcgPSBuZXcgRGF0YVZpZXcoYXJheUJ1ZmZl
ciwgMiwgMSkiKTsKK30KKworZnVuY3Rpb24gcnVuR2V0VGVzdHMoKQoreworICAgIGRlYnVnKCIi
KTsKKyAgICBkZWJ1ZygiVGVzdCBmb3IgZ2V0IG1ldGhvZHMgdGhhdCB3b3JrIik7CisgICAgcnVu
SW50ZWdlclRlc3RDYXNlcyh0cnVlLCBpbnRBcnJheTEsIDAsIDE2KTsKKyAgICBydW5GbG9hdFRl
c3RDYXNlcyh0cnVlLCAwKTsKKworICAgIGRlYnVnKCIiKTsKKyAgICBkZWJ1ZygiVGVzdCBmb3Ig
Z2V0IG1ldGhvZHMgdGhhdCBtaWdodCByZWFkIGJleW91bmQgcmFuZ2UiKTsKKyAgICBydW5JbnRl
Z2VyVGVzdENhc2VzKHRydWUsIGludEFycmF5MiwgMywgMik7CisgICAgcnVuRmxvYXRUZXN0Q2Fz
ZXModHJ1ZSwgMyk7CisKKyAgICBkZWJ1ZygiIik7CisgICAgZGVidWcoIlRlc3QgZm9yIHdyb25n
IGFyZ3VtZW50cyBwYXNzZWQgdG8gZ2V0IG1ldGhvZHMiKTsKKyAgICB2aWV3ID0gbmV3IERhdGFW
aWV3KChuZXcgVWludDhBcnJheShbMSwgMl0pKS5idWZmZXIpOworICAgIHNob3VsZFRocm93KCJ2
aWV3LmdldEludDgoKSIpOworICAgIHNob3VsZFRocm93KCJ2aWV3LmdldFVpbnQ4KCkiKTsKKyAg
ICBzaG91bGRUaHJvdygidmlldy5nZXRJbnQxNigpIik7CisgICAgc2hvdWxkVGhyb3coInZpZXcu
Z2V0VWludDE2KCkiKTsKKyAgICBzaG91bGRUaHJvdygidmlldy5nZXRJbnQzMigpIik7CisgICAg
c2hvdWxkVGhyb3coInZpZXcuZ2V0VWludDMyKCkiKTsKKyAgICBzaG91bGRUaHJvdygidmlldy5n
ZXRGbG9hdDMyKCkiKTsKKyAgICBzaG91bGRUaHJvdygidmlldy5nZXRGbG9hdDY0KCkiKTsKK30K
KworZnVuY3Rpb24gcnVuU2V0VGVzdHMoKQoreworICAgIGRlYnVnKCIiKTsKKyAgICBkZWJ1Zygi
VGVzdCBmb3Igc2V0IG1ldGhvZHMgdGhhdCB3b3JrIik7CisgICAgcnVuSW50ZWdlclRlc3RDYXNl
cyhmYWxzZSwgZW1wdHlBcnJheSwgMCwgMTYpOworICAgIHJ1bkZsb2F0VGVzdENhc2VzKGZhbHNl
KTsKKworICAgIGRlYnVnKCIiKTsKKyAgICBkZWJ1ZygiVGVzdCBmb3Igc2V0IG1ldGhvZHMgdGhh
dCBtaWdodCB3cml0ZSBiZXlvbmQgdGhlIHJhbmdlIik7CisgICAgcnVuSW50ZWdlclRlc3RDYXNl
cyhmYWxzZSwgZW1wdHlBcnJheSwgMywgMik7CisgICAgcnVuRmxvYXRUZXN0Q2FzZXMoZmFsc2Us
IDcpOworCisgICAgZGVidWcoIiIpOworICAgIGRlYnVnKCJUZXN0IGZvciB3cm9uZyBhcmd1bWVu
dHMgcGFzc2VkIHRvIGdldCBtZXRob2RzIik7CisgICAgdmlldyA9IG5ldyBEYXRhVmlldygobmV3
IFVpbnQ4QXJyYXkoWzEsIDJdKSkuYnVmZmVyKTsKKyAgICBzaG91bGRUaHJvdygidmlldy5zZXRJ
bnQ4KCkiKTsKKyAgICBzaG91bGRUaHJvdygidmlldy5zZXRVaW50OCgpIik7CisgICAgc2hvdWxk
VGhyb3coInZpZXcuc2V0SW50MTYoKSIpOworICAgIHNob3VsZFRocm93KCJ2aWV3LnNldFVpbnQx
NigpIik7CisgICAgc2hvdWxkVGhyb3coInZpZXcuc2V0SW50MzIoKSIpOworICAgIHNob3VsZFRo
cm93KCJ2aWV3LnNldFVpbnQzMigpIik7CisgICAgc2hvdWxkVGhyb3coInZpZXcuc2V0RmxvYXQz
MigpIik7CisgICAgc2hvdWxkVGhyb3coInZpZXcuc2V0RmxvYXQ2NCgpIik7CisgICAgc2hvdWxk
VGhyb3coInZpZXcuc2V0SW50OCgxKSIpOworICAgIHNob3VsZFRocm93KCJ2aWV3LnNldFVpbnQ4
KDEpIik7CisgICAgc2hvdWxkVGhyb3coInZpZXcuc2V0SW50MTYoMSkiKTsKKyAgICBzaG91bGRU
aHJvdygidmlldy5zZXRVaW50MTYoMSkiKTsKKyAgICBzaG91bGRUaHJvdygidmlldy5zZXRJbnQz
MigxKSIpOworICAgIHNob3VsZFRocm93KCJ2aWV3LnNldFVpbnQzMigxKSIpOworICAgIHNob3Vs
ZFRocm93KCJ2aWV3LnNldEZsb2F0MzIoMSkiKTsKKyAgICBzaG91bGRUaHJvdygidmlldy5zZXRG
bG9hdDY0KDEpIik7Cit9CisKK2Z1bmN0aW9uIHJ1bkluZGV4aW5nVGVzdHMoKQoreworICAgIGRl
YnVnKCIiKTsKKyAgICBkZWJ1ZygiVGVzdCBmb3IgaW5kZXhpbmcgdGhhdCBzaG91bGQgbm90IHdv
cmsiKTsKKyAgICB2aWV3ID0gbmV3IERhdGFWaWV3KChuZXcgVWludDhBcnJheShbMSwgMl0pKS5i
dWZmZXIpOworICAgIHNob3VsZEJlVW5kZWZpbmVkKCJ2aWV3WzBdIik7CisgICAgc2hvdWxkQmVE
ZWZpbmVkKCJ2aWV3WzBdID0gMyIpOworICAgIHNob3VsZEJlKCJ2aWV3LmdldFVpbnQ4KDApIiwg
IjEiKTsKK30KKworcnVuQ29uc3RydWN0b3JUZXN0cygpOworcnVuR2V0VGVzdHMoKTsKK3J1blNl
dFRlc3RzKCk7CitydW5JbmRleGluZ1Rlc3RzKCk7CitzdWNjZXNzZnVsbHlQYXJzZWQgPSB0cnVl
OworPC9zY3JpcHQ+CisKKzxzY3JpcHQgc3JjPSIuLi8uLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1w
b3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2Zhc3QvZG9tL1dpbmRvdy9zY3JpcHQtdGVzdHMvd2luZG93LXByb3BlcnR5LWRlc2NyaXB0
b3JzLmpzIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vV2luZG93L3NjcmlwdC10ZXN0cy93aW5kb3ct
cHJvcGVydHktZGVzY3JpcHRvcnMuanMKaW5kZXggMTQxYjYwOC4uMWE3OTY5MiAxMDA2NDQKLS0t
IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vV2luZG93L3NjcmlwdC10ZXN0cy93aW5kb3ctcHJvcGVy
dHktZGVzY3JpcHRvcnMuanMKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vV2luZG93L3Njcmlw
dC10ZXN0cy93aW5kb3ctcHJvcGVydHktZGVzY3JpcHRvcnMuanMKQEAgLTIxLDYgKzIxLDcgQEAg
dmFyIF9fc2tpcF9fID0gewogICAgIC8vIElnbm9yZSB0aGVzZSBwcm9wZXJ0aWVzIGJlY2F1c2Ug
dGhleSBkbyBub3QgZXhpc3QgaW4gYWxsIGltcGxlbWVudGF0aW9ucy4gVGhleSB3aWxsIGJlIHRl
c3RlZCBzZXBhcmF0ZWx5CiAgICAgIldlYkdMUmVuZGVyaW5nQ29udGV4dCIgOiAxLAogICAgICJB
cnJheUJ1ZmZlciIgOiAxLAorICAgICJEYXRhVmlldyIgOiAxLAogICAgICJJbnQ4QXJyYXkiIDog
MSwKICAgICAiVWludDhBcnJheSIgOiAxLAogICAgICJJbnQxNkFycmF5IiA6IDEsCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9XaW5kb3cvd2luZG93LXByb3BlcnRpZXMuaHRtbCBi
L0xheW91dFRlc3RzL2Zhc3QvZG9tL1dpbmRvdy93aW5kb3ctcHJvcGVydGllcy5odG1sCmluZGV4
IGQ1OTc0ODIuLmZhMWViNTQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL1dpbmRv
dy93aW5kb3ctcHJvcGVydGllcy5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL1dpbmRv
dy93aW5kb3ctcHJvcGVydGllcy5odG1sCkBAIC02Myw2ICs2Myw3IEBAIHZhciBfX3NraXBfXyA9
IHsKICAgICAvLyBJZ25vcmUgdGhlc2UgcHJvcGVydGllcyBiZWNhdXNlIHRoZXkgZG8gbm90IGV4
aXN0IGluIGFsbCBpbXBsZW1lbnRhdGlvbnMuIFRoZXkgd2lsbCBiZSB0ZXN0ZWQgc2VwYXJhdGVs
eQogICAgICJ3aW5kb3cuV2ViR0xSZW5kZXJpbmdDb250ZXh0IiA6IDEsIAogICAgICJ3aW5kb3cu
QXJyYXlCdWZmZXIiIDogMSwKKyAgICAid2luZG93LkRhdGFWaWV3IiA6IDEsCiAgICAgIndpbmRv
dy5JbnQ4QXJyYXkiIDogMSwKICAgICAid2luZG93LlVpbnQ4QXJyYXkiIDogMSwKICAgICAid2lu
ZG93LkludDE2QXJyYXkiIDogMSwKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL3Nj
cmlwdC10ZXN0cy9wcm90b3R5cGUtaW5oZXJpdGFuY2UtMi5qcyBiL0xheW91dFRlc3RzL2Zhc3Qv
ZG9tL3NjcmlwdC10ZXN0cy9wcm90b3R5cGUtaW5oZXJpdGFuY2UtMi5qcwppbmRleCAzYzZkMTIy
Li4yMzA5MTA2IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9zY3JpcHQtdGVzdHMv
cHJvdG90eXBlLWluaGVyaXRhbmNlLTIuanMKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vc2Ny
aXB0LXRlc3RzL3Byb3RvdHlwZS1pbmhlcml0YW5jZS0yLmpzCkBAIC02MSw2ICs2MSw3IEBAIGZ1
bmN0aW9uIGNvbnN0cnVjdG9yTmFtZXNGb3JXaW5kb3coZ2xvYmFsT2JqZWN0KQogICAgICAgICAv
LyBJZ25vcmUgdGhlc2UgcHJvcGVydGllcyBiZWNhdXNlIHRoZXkgZG8gbm90IGV4aXN0IGluIGFs
bCBpbXBsZW1lbnRhdGlvbnMuIFRoZXkgd2lsbCBiZSB0ZXN0ZWQgc2VwYXJhdGVseQogICAgICAg
ICBpZiAodHlwZSA9PSAiV2ViR0xSZW5kZXJpbmdDb250ZXh0Q29uc3RydWN0b3IiIHx8IAogICAg
ICAgICAgICAgdHlwZSA9PSAiQXJyYXlCdWZmZXJDb25zdHJ1Y3RvciIgfHwKKyAgICAgICAgICAg
IHR5cGUgPT0gIkRhdGFWaWV3Q29uc3RydWN0b3IiIHx8CiAgICAgICAgICAgICB0eXBlID09IkZs
b2F0MzJBcnJheUNvbnN0cnVjdG9yIiB8fAogICAgICAgICAgICAgdHlwZSA9PSJJbnQ4QXJyYXlD
b25zdHJ1Y3RvciIgfHwKICAgICAgICAgICAgIHR5cGUgPT0iSW50MTZBcnJheUNvbnN0cnVjdG9y
IiB8fApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vc2NyaXB0LXRlc3RzL3Byb3Rv
dHlwZS1pbmhlcml0YW5jZS5qcyBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL3NjcmlwdC10ZXN0cy9w
cm90b3R5cGUtaW5oZXJpdGFuY2UuanMKaW5kZXggODhmMjc5My4uODIyY2NiMyAxMDA2NDQKLS0t
IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vc2NyaXB0LXRlc3RzL3Byb3RvdHlwZS1pbmhlcml0YW5j
ZS5qcworKysgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9zY3JpcHQtdGVzdHMvcHJvdG90eXBlLWlu
aGVyaXRhbmNlLmpzCkBAIC0xNyw3ICsxNyw3IEBAIHZhciBza2lwcGVkUHJvcGVydGllcyA9IFsK
ICAgICAid2Via2l0UGVyZm9ybWFuY2UiLAogICAgICJXZWJHTFJlbmRlcmluZ0NvbnRleHQiLAog
ICAgICJBcnJheUJ1ZmZlciIsCi0gICAgIkludDhBcnJheSIsICJVaW50OEFycmF5IiwgIkludDE2
QXJyYXkiLCAiVWludDE2QXJyYXkiLCAiSW50MzJBcnJheSIsICJVaW50MzJBcnJheSIsICJGbG9h
dDMyQXJyYXkiLAorICAgICJEYXRhVmlldyIsICJJbnQ4QXJyYXkiLCAiVWludDhBcnJheSIsICJJ
bnQxNkFycmF5IiwgIlVpbnQxNkFycmF5IiwgIkludDMyQXJyYXkiLCAiVWludDMyQXJyYXkiLCAi
RmxvYXQzMkFycmF5IiwKICAgICAiRmlsZUVycm9yIiwgIkZpbGVSZWFkZXIiLCAicmVxdWVzdEZp
bGVTeXN0ZW0iLAogICAgICJpbmRleGVkREIiLCAiSURCS2V5UmFuZ2UiLCAiSURCQ3Vyc29yIiwg
IklEQkRhdGFiYXNlIiwgIklEQkRhdGFiYXNlRXJyb3IiLCAiSURCRGF0YWJhc2VFeGNlcHRpb24i
LCAiSURCRXJyb3JFdmVudCIsICJJREJFdmVudCIsICJJREJGYWN0b3J5IiwgIklEQkluZGV4Iiwg
IklEQk9iamVjdFN0b3JlIiwgIklEQlJlcXVlc3QiLCAiSURCU3VjY2Vzc0V2ZW50IiwgIklEQlRy
YW5zYWN0aW9uIiwKICAgICAic2hvd01vZGFsRGlhbG9nIiwKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2Zhc3QvanMvc2NyaXB0LXRlc3RzL2dsb2JhbC1jb25zdHJ1Y3RvcnMuanMgYi9MYXlvdXRU
ZXN0cy9mYXN0L2pzL3NjcmlwdC10ZXN0cy9nbG9iYWwtY29uc3RydWN0b3JzLmpzCmluZGV4IDAz
ZWYwZGYuLmQ2YzE1ZTUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvanMvc2NyaXB0LXRl
c3RzL2dsb2JhbC1jb25zdHJ1Y3RvcnMuanMKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9qcy9zY3Jp
cHQtdGVzdHMvZ2xvYmFsLWNvbnN0cnVjdG9ycy5qcwpAQCAtMTksNiArMTksNyBAQCBmb3IgKHZh
ciB4IGluIGNvbnN0cnVjdG9yTmFtZXMpIHsKICAgICAvLyBJZ25vcmUgdGhlc2UgcHJvcGVydGll
cyBiZWNhdXNlIHRoZXkgZG8gbm90IGV4aXN0IGluIGFsbCBpbXBsZW1lbnRhdGlvbnMuIFRoZXkg
d2lsbCBiZSB0ZXN0ZWQgc2VwYXJhdGVseQogICAgIGlmIChuYW1lID09ICJXZWJHTFJlbmRlcmlu
Z0NvbnRleHQiIHx8CiAgICAgICAgIG5hbWUgPT0gIkFycmF5QnVmZmVyIiB8fAorICAgICAgICBu
YW1lID09ICJEYXRhVmlldyIgfHwKICAgICAgICAgbmFtZSA9PSAiSW50OEFycmF5IiB8fAogICAg
ICAgICBuYW1lID09ICJVaW50OEFycmF5IiB8fAogICAgICAgICBuYW1lID09ICJJbnQxNkFycmF5
IiB8fApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dCBiL1dlYkNvcmUvQ01ha2VM
aXN0cy50eHQKaW5kZXggZjM5NTU2ZC4uNjEzNGE3NiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DTWFr
ZUxpc3RzLnR4dAorKysgYi9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CkBAIC0yOTMsNiArMjkzLDcg
QEAgU0VUKFdlYkNvcmVfSURMX0ZJTEVTCiAgICAgaHRtbC9jYW52YXMvQ2FudmFzUGF0dGVybi5p
ZGwKICAgICBodG1sL2NhbnZhcy9DYW52YXNSZW5kZXJpbmdDb250ZXh0MkQuaWRsCiAgICAgaHRt
bC9jYW52YXMvQ2FudmFzUmVuZGVyaW5nQ29udGV4dC5pZGwKKyAgICBodG1sL2NhbnZhcy9EYXRh
Vmlldy5pZGwKICAgICBodG1sL2NhbnZhcy9GbG9hdDMyQXJyYXkuaWRsCiAgICAgaHRtbC9jYW52
YXMvSW50MTZBcnJheS5pZGwKICAgICBodG1sL2NhbnZhcy9JbnQzMkFycmF5LmlkbApkaWZmIC0t
Z2l0IGEvV2ViQ29yZS9DaGFuZ2VMb2cgYi9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCA4ZDM5ODQ4
Li5hYTM4MTFmIDEwMDY0NAotLS0gYS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9XZWJDb3JlL0No
YW5nZUxvZwpAQCAtMSwzICsxLDUyIEBACisyMDEwLTExLTIyICBKaWFuIExpICA8amlhbmxpQGNo
cm9taXVtLm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBJbXBsZW1lbnQgRGF0YVZpZXcgaW50ZXJmYWNlIGZyb20gVHlwZWQgQXJyYXkgc3BlY2lm
aWNhdGlvbgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
NDY1NDEKKworICAgICAgICBUZXN0OiBmYXN0L2NhbnZhcy93ZWJnbC9kYXRhLXZpZXctdGVzdC5o
dG1sCisKKyAgICAgICAgKiBDTWFrZUxpc3RzLnR4dDoKKyAgICAgICAgKiBEZXJpdmVkU291cmNl
cy5tYWtlOgorICAgICAgICAqIEdOVW1ha2VmaWxlLmFtOgorICAgICAgICAqIFdlYkNvcmUuZ3lw
aToKKyAgICAgICAgKiBXZWJDb3JlLnByaToKKyAgICAgICAgKiBXZWJDb3JlLnBybzoKKyAgICAg
ICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogYmluZGlu
Z3MvZ2VuZXJpYy9SdW50aW1lRW5hYmxlZEZlYXR1cmVzLmg6CisgICAgICAgIChXZWJDb3JlOjpS
dW50aW1lRW5hYmxlZEZlYXR1cmVzOjpkYXRhVmlld0VuYWJsZWQpOgorICAgICAgICAqIGJpbmRp
bmdzL2pzL0pTQXJyYXlCdWZmZXJWaWV3SGVscGVyLmg6CisgICAgICAgIChXZWJDb3JlOjpjb25z
dHJ1Y3RBcnJheUJ1ZmZlclZpZXdXaXRoQXJyYXlCdWZmZXJBcmd1bWVudCk6CisgICAgICAgIChX
ZWJDb3JlOjpjb25zdHJ1Y3RBcnJheUJ1ZmZlclZpZXcpOgorICAgICAgICAqIGJpbmRpbmdzL2pz
L0pTRE9NV2luZG93Q3VzdG9tLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkpTRE9NV2luZG93Ojpk
YXRhVmlldyk6CisgICAgICAgICogYmluZGluZ3MvanMvSlNEYXRhVmlld0N1c3RvbS5jcHA6IEFk
ZGVkLgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pTRmxvYXQzMkFycmF5Q3VzdG9tLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OkpTRmxvYXQzMkFycmF5Q29uc3RydWN0b3I6OmNvbnN0cnVjdEpTRmxv
YXQzMkFycmF5KToKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU0ludDE2QXJyYXlDdXN0b20uY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6SlNJbnQxNkFycmF5Q29uc3RydWN0b3I6OmNvbnN0cnVjdEpT
SW50MTZBcnJheSk6CisgICAgICAgICogYmluZGluZ3MvanMvSlNJbnQzMkFycmF5Q3VzdG9tLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OkpTSW50MzJBcnJheUNvbnN0cnVjdG9yOjpjb25zdHJ1Y3RK
U0ludDMyQXJyYXkpOgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pTSW50OEFycmF5Q3VzdG9tLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OkpTSW50OEFycmF5Q29uc3RydWN0b3I6OmNvbnN0cnVjdEpT
SW50OEFycmF5KToKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU1VpbnQxNkFycmF5Q3VzdG9tLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OkpTVWludDE2QXJyYXlDb25zdHJ1Y3Rvcjo6Y29uc3RydWN0
SlNVaW50MTZBcnJheSk6CisgICAgICAgICogYmluZGluZ3MvanMvSlNVaW50MzJBcnJheUN1c3Rv
bS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpKU1VpbnQzMkFycmF5Q29uc3RydWN0b3I6OmNvbnN0
cnVjdEpTVWludDMyQXJyYXkpOgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pTVWludDhBcnJheUN1
c3RvbS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpKU1VpbnQ4QXJyYXlDb25zdHJ1Y3Rvcjo6Y29u
c3RydWN0SlNVaW50OEFycmF5KToKKyAgICAgICAgKiBiaW5kaW5ncy92OC9jdXN0b20vVjhBcnJh
eUJ1ZmZlclZpZXdDdXN0b20uaDoKKyAgICAgICAgKFdlYkNvcmU6OmNvbnN0cnVjdFdlYkdMQXJy
YXlXaXRoQXJyYXlCdWZmZXJBcmd1bWVudCk6CisgICAgICAgIChXZWJDb3JlOjpjb25zdHJ1Y3RX
ZWJHTEFycmF5KToKKyAgICAgICAgKiBiaW5kaW5ncy92OC9jdXN0b20vVjhEYXRhVmlld0N1c3Rv
bS5jcHA6IEFkZGVkLgorICAgICAgICAqIGh0bWwvY2FudmFzL0FycmF5QnVmZmVyVmlldy5oOgor
ICAgICAgICAoV2ViQ29yZTo6QXJyYXlCdWZmZXJWaWV3Ojppc0RhdGFWaWV3KToKKyAgICAgICAg
KiBodG1sL2NhbnZhcy9EYXRhVmlldy5jcHA6IEFkZGVkLgorICAgICAgICAqIGh0bWwvY2FudmFz
L0RhdGFWaWV3Lmg6IEFkZGVkLgorICAgICAgICAqIGh0bWwvY2FudmFzL0RhdGFWaWV3LmlkbDog
QWRkZWQuCisgICAgICAgICogcGFnZS9ET01XaW5kb3cuaWRsOgorCiAyMDEwLTExLTIyICBKYW1l
cyBSb2JpbnNvbiAgPGphbWVzckBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkg
RGltaXRyaSBHbGF6a292LgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtl
IGIvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtlCmluZGV4IDViMGZiMDkuLmQ4ZjA2Y2QgMTAw
NjQ0Ci0tLSBhL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZQorKysgYi9XZWJDb3JlL0Rlcml2
ZWRTb3VyY2VzLm1ha2UKQEAgLTc2LDYgKzc2LDcgQEAgRE9NX0NMQVNTRVMgPSBcCiAgICAgV2Vi
R0xBY3RpdmVJbmZvIFwKICAgICBBcnJheUJ1ZmZlclZpZXcgXAogICAgIEFycmF5QnVmZmVyIFwK
KyAgICBEYXRhVmlldyBcCiAgICAgV2ViR0xCdWZmZXIgXAogICAgIEludDhBcnJheSBcCiAgICAg
V2ViR0xDb250ZXh0QXR0cmlidXRlcyBcCmRpZmYgLS1naXQgYS9XZWJDb3JlL0dOVW1ha2VmaWxl
LmFtIGIvV2ViQ29yZS9HTlVtYWtlZmlsZS5hbQppbmRleCBlYzJjNWMxLi4wN2I1ZjE5IDEwMDY0
NAotLS0gYS9XZWJDb3JlL0dOVW1ha2VmaWxlLmFtCisrKyBiL1dlYkNvcmUvR05VbWFrZWZpbGUu
YW0KQEAgLTE4OCw2ICsxODgsOCBAQCB3ZWJjb3JlX2J1aWx0X3NvdXJjZXMgKz0gXAogCURlcml2
ZWRTb3VyY2VzL1dlYkNvcmUvSlNEYXRhR3JpZENvbHVtbi5oIFwKIAlEZXJpdmVkU291cmNlcy9X
ZWJDb3JlL0pTRGF0YUdyaWRDb2x1bW5MaXN0LmNwcCBcCiAJRGVyaXZlZFNvdXJjZXMvV2ViQ29y
ZS9KU0RhdGFHcmlkQ29sdW1uTGlzdC5oIFwKKwlEZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTRGF0
YVZpZXcuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTRGF0YVZpZXcuaCBcCiAJRGVy
aXZlZFNvdXJjZXMvV2ViQ29yZS9KU0RlZGljYXRlZFdvcmtlckNvbnRleHQuY3BwIFwKIAlEZXJp
dmVkU291cmNlcy9XZWJDb3JlL0pTRGVkaWNhdGVkV29ya2VyQ29udGV4dC5oIFwKIAlEZXJpdmVk
U291cmNlcy9XZWJDb3JlL0pTRGV2aWNlTW90aW9uRXZlbnQuY3BwIFwKZGlmZiAtLWdpdCBhL1dl
YkNvcmUvV2ViQ29yZS5neXBpIGIvV2ViQ29yZS9XZWJDb3JlLmd5cGkKaW5kZXggMDAxMTUxNi4u
MWFmN2U2OSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9XZWJDb3JlLmd5cGkKKysrIGIvV2ViQ29yZS9X
ZWJDb3JlLmd5cGkKQEAgLTIwNyw2ICsyMDcsNyBAQAogICAgICAgICAgICAgJ2h0bWwvY2FudmFz
L0NhbnZhc1BpeGVsQXJyYXkuaWRsJywKICAgICAgICAgICAgICdodG1sL2NhbnZhcy9DYW52YXNS
ZW5kZXJpbmdDb250ZXh0LmlkbCcsCiAgICAgICAgICAgICAnaHRtbC9jYW52YXMvQ2FudmFzUmVu
ZGVyaW5nQ29udGV4dDJELmlkbCcsCisgICAgICAgICAgICAnaHRtbC9jYW52YXMvRGF0YVZpZXcu
aWRsJywKICAgICAgICAgICAgICdodG1sL2NhbnZhcy9GbG9hdDMyQXJyYXkuaWRsJywKICAgICAg
ICAgICAgICdodG1sL2NhbnZhcy9JbnQxNkFycmF5LmlkbCcsCiAgICAgICAgICAgICAnaHRtbC9j
YW52YXMvSW50MzJBcnJheS5pZGwnLApAQCAtNzM3LDYgKzczOCw4IEBACiAgICAgICAgICAgICAn
YmluZGluZ3MvdjgvY3VzdG9tL1Y4Q2FudmFzUGl4ZWxBcnJheUN1c3RvbS5jcHAnLAogICAgICAg
ICAgICAgJ2JpbmRpbmdzL3Y4L2N1c3RvbS9WOEFycmF5QnVmZmVyVmlld0N1c3RvbS5oJywKICAg
ICAgICAgICAgICdiaW5kaW5ncy92OC9jdXN0b20vVjhBcnJheUJ1ZmZlckN1c3RvbS5jcHAnLAor
ICAgICAgICAgICAgJ2JpbmRpbmdzL3Y4L2N1c3RvbS9WOERhdGFWaWV3Q3VzdG9tLmNwcCcsCisg
ICAgICAgICAgICAnYmluZGluZ3MvdjgvY3VzdG9tL1Y4RGF0YVZpZXdDdXN0b20uaCcsCiAgICAg
ICAgICAgICAnYmluZGluZ3MvdjgvY3VzdG9tL1Y4SW50OEFycmF5Q3VzdG9tLmNwcCcsCiAgICAg
ICAgICAgICAnYmluZGluZ3MvdjgvY3VzdG9tL1Y4SW50MzJBcnJheUN1c3RvbS5jcHAnLAogICAg
ICAgICAgICAgJ2JpbmRpbmdzL3Y4L2N1c3RvbS9WOEZpbGVSZWFkZXJDdXN0b20uY3BwJywKQEAg
LTE4NTIsNiArMTg1NSw4IEBACiAgICAgICAgICAgICAnaHRtbC9jYW52YXMvQ2FudmFzU3R5bGUu
Y3BwJywKICAgICAgICAgICAgICdodG1sL2NhbnZhcy9DYW52YXNTdHlsZS5oJywKICAgICAgICAg
ICAgICdodG1sL2NhbnZhcy9DaGVja2VkSW50LmgnLAorICAgICAgICAgICAgJ2h0bWwvY2FudmFz
L0RhdGFWaWV3LmNwcCcsCisgICAgICAgICAgICAnaHRtbC9jYW52YXMvRGF0YVZpZXcuaCcsCiAg
ICAgICAgICAgICAnaHRtbC9jYW52YXMvRmxvYXQzMkFycmF5LmNwcCcsCiAgICAgICAgICAgICAn
aHRtbC9jYW52YXMvRmxvYXQzMkFycmF5LmgnLAogICAgICAgICAgICAgJ2h0bWwvY2FudmFzL0lu
dDE2QXJyYXkuY3BwJywKZGlmZiAtLWdpdCBhL1dlYkNvcmUvV2ViQ29yZS5wcmkgYi9XZWJDb3Jl
L1dlYkNvcmUucHJpCmluZGV4IGZhNzNjYTQuLmVlNjQ4YWMgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUv
V2ViQ29yZS5wcmkKKysrIGIvV2ViQ29yZS9XZWJDb3JlLnByaQpAQCAtMTgyLDYgKzE4Miw3IEBA
IElETF9CSU5ESU5HUyArPSBcCiAgICAgZmlsZWFwaS9NZXRhZGF0YUNhbGxiYWNrLmlkbCBcCiAg
ICAgaHRtbC9jYW52YXMvQXJyYXlCdWZmZXJWaWV3LmlkbCBcCiAgICAgaHRtbC9jYW52YXMvQXJy
YXlCdWZmZXIuaWRsIFwKKyAgICBodG1sL2NhbnZhcy9EYXRhVmlldy5pZGwgXAogICAgIGh0bWwv
Y2FudmFzL0ludDhBcnJheS5pZGwgXAogICAgIGh0bWwvY2FudmFzL0Zsb2F0MzJBcnJheS5pZGwg
XAogICAgIGh0bWwvY2FudmFzL0NhbnZhc0dyYWRpZW50LmlkbCBcCmRpZmYgLS1naXQgYS9XZWJD
b3JlL1dlYkNvcmUucHJvIGIvV2ViQ29yZS9XZWJDb3JlLnBybwppbmRleCA4NjQ4NjUwLi5jMGU5
N2QyIDEwMDY0NAotLS0gYS9XZWJDb3JlL1dlYkNvcmUucHJvCisrKyBiL1dlYkNvcmUvV2ViQ29y
ZS5wcm8KQEAgLTM2ODQsNiArMzY4NCw3IEBAIEhFQURFUlMgKz0gXAogICAgICAgICBodG1sL2Nh
bnZhcy9XZWJHTEFjdGl2ZUluZm8uaCBcCiAgICAgICAgIGh0bWwvY2FudmFzL0FycmF5QnVmZmVy
LmggXAogICAgICAgICBodG1sL2NhbnZhcy9BcnJheUJ1ZmZlclZpZXcuaCBcCisgICAgICAgIGh0
bWwvY2FudmFzL0RhdGFWaWV3LmggXAogICAgICAgICBodG1sL2NhbnZhcy9XZWJHTEJ1ZmZlci5o
IFwKICAgICAgICAgaHRtbC9jYW52YXMvSW50OEFycmF5LmggXAogICAgICAgICBodG1sL2NhbnZh
cy9XZWJHTENvbnRleHRBdHRyaWJ1dGVzLmggXApAQCAtMzcwOCw2ICszNzA5LDcgQEAgSEVBREVS
UyArPSBcCiAgICAgIXY4IHsKICAgICAgICAgU09VUkNFUyArPSBcCiAgICAgICAgICAgICAgICAg
YmluZGluZ3MvanMvSlNBcnJheUJ1ZmZlckN1c3RvbS5jcHAgXAorICAgICAgICAgICAgICAgIGJp
bmRpbmdzL2pzL0pTRGF0YVZpZXdDdXN0b20uY3BwIFwKICAgICAgICAgICAgICAgICBiaW5kaW5n
cy9qcy9KU0ludDhBcnJheUN1c3RvbS5jcHAgXAogICAgICAgICAgICAgICAgIGJpbmRpbmdzL2pz
L0pTRmxvYXQzMkFycmF5Q3VzdG9tLmNwcCBcCiAgICAgICAgICAgICAgICAgYmluZGluZ3MvanMv
SlNJbnQzMkFycmF5Q3VzdG9tLmNwcCBcCkBAIC0zNzIyLDYgKzM3MjQsNyBAQCBTT1VSQ0VTICs9
IFwKICAgICAgICAgaHRtbC9jYW52YXMvV2ViR0xPYmplY3QuY3BwIFwKICAgICAgICAgaHRtbC9j
YW52YXMvQXJyYXlCdWZmZXIuY3BwIFwKICAgICAgICAgaHRtbC9jYW52YXMvQXJyYXlCdWZmZXJW
aWV3LmNwcCBcCisgICAgICAgIGh0bWwvY2FudmFzL0RhdGFWaWV3LmNwcCBcCiAgICAgICAgIGh0
bWwvY2FudmFzL1dlYkdMQnVmZmVyLmNwcCBcCiAgICAgICAgIGh0bWwvY2FudmFzL0ludDhBcnJh
eS5jcHAgXAogICAgICAgICBodG1sL2NhbnZhcy9XZWJHTENvbnRleHRBdHRyaWJ1dGVzLmNwcCBc
CmRpZmYgLS1naXQgYS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBi
L1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDg1MzFkNzQu
LjY2MDVjYzAgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qCisrKyBiL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBA
IC03NjUsNiArNzY1LDExIEBACiAJCTJFNzU4NDFGMTI3NzlBREEwMDYyNjI4QiAvKiBGaWxlUmVh
ZGVyTG9hZGVyQ2xpZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSAyRTc1ODQxQzEyNzc5QURBMDA2MjYyOEIgLyogRmlsZVJlYWRlckxvYWRlckNsaWVu
dC5oICovOyB9OwogCQkyRTk0RjQzQjExOTIwN0RBMDBCN0Y3NUQgLyogSlNGaWxlUmVhZGVyLmNw
cCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDJFOTRGNDM5
MTE5MjA3REEwMEI3Rjc1RCAvKiBKU0ZpbGVSZWFkZXIuY3BwICovOyB9OwogCQkyRTk0RjQzQzEx
OTIwN0RBMDBCN0Y3NUQgLyogSlNGaWxlUmVhZGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyRTk0RjQzQTExOTIwN0RBMDBCN0Y3NUQgLyogSlNGaWxl
UmVhZGVyLmggKi87IH07CisJCTJFOTdDQ0VBMTI5MzlDQjgwMEM1QzhGRiAvKiBEYXRhVmlldy5j
cHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyRTk3Q0NF
NzEyOTM5Q0I4MDBDNUM4RkYgLyogRGF0YVZpZXcuY3BwICovOyB9OworCQkyRTk3Q0NFQjEyOTM5
Q0I4MDBDNUM4RkYgLyogRGF0YVZpZXcuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDJFOTdDQ0U4MTI5MzlDQjgwMEM1QzhGRiAvKiBEYXRhVmlldy5oICov
OyB9OworCQkyRTk3Q0NGNzEyOTNBNDNBMDBDNUM4RkYgLyogSlNEYXRhVmlld0N1c3RvbS5jcHAg
aW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyRTk3Q0NGNjEy
OTNBNDNBMDBDNUM4RkYgLyogSlNEYXRhVmlld0N1c3RvbS5jcHAgKi87IH07CisJCTJFOTdDRTZG
MTI5M0FENkIwMEM1QzhGRiAvKiBKU0RhdGFWaWV3LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDJFOTdDRTZEMTI5M0FENkIwMEM1QzhGRiAvKiBKU0Rh
dGFWaWV3LmNwcCAqLzsgfTsKKwkJMkU5N0NFNzAxMjkzQUQ2QjAwQzVDOEZGIC8qIEpTRGF0YVZp
ZXcuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDJFOTdD
RTZFMTI5M0FENkIwMEM1QzhGRiAvKiBKU0RhdGFWaWV3LmggKi87IH07CiAJCTJFQTc2ODA0MEZF
NzEyNjQwMEFCOUM4QSAvKiBXb3JrZXJTY3JpcHRMb2FkZXJDbGllbnQuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDJFQTc2ODAzMEZFNzEyNjQwMEFCOUM4
QSAvKiBXb3JrZXJTY3JpcHRMb2FkZXJDbGllbnQuaCAqLzsgfTsKIAkJMkVCNEJDRDIxMjFGMDNF
MzAwRUM0ODg1IC8qIEJsb2JSZXNvdXJjZUhhbmRsZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyRUI0QkNEMDEyMUYwM0UzMDBFQzQ4ODUgLyogQmxv
YlJlc291cmNlSGFuZGxlLmNwcCAqLzsgfTsKIAkJMkVCNEJDRDMxMjFGMDNFMzAwRUM0ODg1IC8q
IEJsb2JSZXNvdXJjZUhhbmRsZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gMkVCNEJDRDExMjFGMDNFMzAwRUM0ODg1IC8qIEJsb2JSZXNvdXJjZUhhbmRs
ZS5oICovOyB9OwpAQCAtNjgzMyw2ICs2ODM4LDEyIEBACiAJCTJFNzU4NDFDMTI3NzlBREEwMDYy
NjI4QiAvKiBGaWxlUmVhZGVyTG9hZGVyQ2xpZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgbmFtZSA9IEZpbGVSZWFkZXJMb2FkZXJDbGllbnQuaDsgcGF0aCA9IGZpbGVhcGkvRmlsZVJl
YWRlckxvYWRlckNsaWVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkyRTk0RjQz
OTExOTIwN0RBMDBCN0Y3NUQgLyogSlNGaWxlUmVhZGVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLmNwcDsgcGF0aCA9IEpTRmlsZVJlYWRlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCTJFOTRGNDNBMTE5MjA3REEwMEI3Rjc1RCAvKiBKU0ZpbGVSZWFkZXIuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNGaWxlUmVhZGVyLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CisJCTJFOTdDQ0U3MTI5MzlDQjgwMEM1QzhGRiAvKiBEYXRhVmlldy5j
cHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBEYXRhVmlldy5jcHA7IHBh
dGggPSBjYW52YXMvRGF0YVZpZXcuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQky
RTk3Q0NFODEyOTM5Q0I4MDBDNUM4RkYgLyogRGF0YVZpZXcuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBuYW1lID0gRGF0YVZpZXcuaDsgcGF0aCA9IGNhbnZhcy9EYXRhVmlldy5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OworCQkyRTk3Q0NFOTEyOTM5Q0I4MDBDNUM4RkYgLyogRGF0
YVZpZXcuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgbmFtZSA9IERhdGFWaWV3LmlkbDsgcGF0aCA9IGNh
bnZhcy9EYXRhVmlldy5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTJFOTdDQ0Y2
MTI5M0E0M0EwMEM1QzhGRiAvKiBKU0RhdGFWaWV3Q3VzdG9tLmNwcCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTRGF0YVZpZXdDdXN0b20uY3BwOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OworCQkyRTk3Q0U2RDEyOTNBRDZCMDBDNUM4RkYgLyogSlNEYXRhVmlldy5j
cHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU0RhdGFWaWV3LmNwcDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMkU5N0NFNkUxMjkzQUQ2QjAwQzVDOEZGIC8q
IEpTRGF0YVZpZXcuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNEYXRhVmll
dy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkyRUE3NjgwMzBGRTcxMjY0MDBBQjlD
OEEgLyogV29ya2VyU2NyaXB0TG9hZGVyQ2xpZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgbmFtZSA9IFdvcmtlclNjcmlwdExvYWRlckNsaWVudC5oOyBwYXRoID0gd29ya2Vycy9Xb3Jr
ZXJTY3JpcHRMb2FkZXJDbGllbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMkVC
NEJDRDAxMjFGMDNFMzAwRUM0ODg1IC8qIEJsb2JSZXNvdXJjZUhhbmRsZS5jcHAgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBCbG9iUmVzb3VyY2VIYW5kbGUuY3BwOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkyRUI0QkNEMTEyMUYwM0UzMDBFQzQ4ODUgLyogQmxv
YlJlc291cmNlSGFuZGxlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEJsb2JS
ZXNvdXJjZUhhbmRsZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTI1ODQsNiAr
MTI1OTUsOSBAQAogCQkJCTQ5NDg0RkJGMTAyQ0YyM0MwMDE4N0REMyAvKiBDYW52YXNTdHlsZS5j
cHAgKi8sCiAJCQkJNDk0ODRGQzAxMDJDRjIzQzAwMTg3REQzIC8qIENhbnZhc1N0eWxlLmggKi8s
CiAJCQkJQTAwQjcyMTkxMURFNjQyNzAwOEFCOUZGIC8qIENoZWNrZWRJbnQuaCAqLywKKwkJCQky
RTk3Q0NFNzEyOTM5Q0I4MDBDNUM4RkYgLyogRGF0YVZpZXcuY3BwICovLAorCQkJCTJFOTdDQ0U4
MTI5MzlDQjgwMEM1QzhGRiAvKiBEYXRhVmlldy5oICovLAorCQkJCTJFOTdDQ0U5MTI5MzlDQjgw
MEM1QzhGRiAvKiBEYXRhVmlldy5pZGwgKi8sCiAJCQkJNDlFRUNEQ0QxMDUwM0MyMzAwMDk5RkFC
IC8qIEZsb2F0MzJBcnJheS5jcHAgKi8sCiAJCQkJNDlFRUNEQ0UxMDUwM0MyMzAwMDk5RkFCIC8q
IEZsb2F0MzJBcnJheS5oICovLAogCQkJCTQ5RUVDRENGMTA1MDNDMjMwMDA5OUZBQiAvKiBGbG9h
dDMyQXJyYXkuaWRsICovLApAQCAtMTUyNjIsNiArMTUyNzYsOCBAQAogCQkJCUJDNzdEMTY2MEZG
MTlGNTUwMDcwODg3QiAvKiBKU0RhdGFHcmlkQ29sdW1uLmggKi8sCiAJCQkJQkM3N0QxNjcwRkYx
OUY1NTAwNzA4ODdCIC8qIEpTRGF0YUdyaWRDb2x1bW5MaXN0LmNwcCAqLywKIAkJCQlCQzc3RDE2
ODBGRjE5RjU1MDA3MDg4N0IgLyogSlNEYXRhR3JpZENvbHVtbkxpc3QuaCAqLywKKwkJCQkyRTk3
Q0U2RDEyOTNBRDZCMDBDNUM4RkYgLyogSlNEYXRhVmlldy5jcHAgKi8sCisJCQkJMkU5N0NFNkUx
MjkzQUQ2QjAwQzVDOEZGIC8qIEpTRGF0YVZpZXcuaCAqLywKIAkJCQkyRTA4ODhEMjExNDg4NDhB
MDBBRjQyNjUgLyogSlNET01Gb3JtRGF0YS5jcHAgKi8sCiAJCQkJMkUwODg4RDMxMTQ4ODQ4QTAw
QUY0MjY1IC8qIEpTRE9NRm9ybURhdGEuaCAqLywKIAkJCQk0QUNCQzBDODEyNzEzRDBBMDA5NEY5
QjIgLyogSlNET01TZXR0YWJsZVRva2VuTGlzdC5jcHAgKi8sCkBAIC0xNzAzMCw2ICsxNzA0Niw3
IEBACiAJCQkJQkM1ODI1RjIwQzBCODkzODAwNTNGMUI1IC8qIEpTQ1NTU3R5bGVEZWNsYXJhdGlv
bkN1c3RvbS5jcHAgKi8sCiAJCQkJQkMyMEZCN0UwQzBFOEU2QzAwRDE0NDdGIC8qIEpTQ1NTVmFs
dWVDdXN0b20uY3BwICovLAogCQkJCUJDNzdEMTUxMEZGMTlDNzMwMDcwODg3QiAvKiBKU0RhdGFH
cmlkQ29sdW1uTGlzdEN1c3RvbS5jcHAgKi8sCisJCQkJMkU5N0NDRjYxMjkzQTQzQTAwQzVDOEZG
IC8qIEpTRGF0YVZpZXdDdXN0b20uY3BwICovLAogCQkJCTQxNjJBNDUzMTAxMTQ1RTMwMERGRjNF
RCAvKiBKU0RlZGljYXRlZFdvcmtlckNvbnRleHRDdXN0b20uY3BwICovLAogCQkJCTMzNTAzQ0JG
MTAxNzlDMUEwMDNCNDdFMSAvKiBKU0Rlc2t0b3BOb3RpZmljYXRpb25zQ3VzdG9tLmNwcCAqLywK
IAkJCQkzMUZCMUE2QjEyMEE1RDY5MDBEQzAyQTAgLyogSlNEZXZpY2VNb3Rpb25FdmVudEN1c3Rv
bS5jcHAgKi8sCkBAIC0yMTMyMyw2ICsyMTM0MCw4IEBACiAJCQkJRDNBOTRBM0IxMjJEQUJBQzAw
QTM3QkJDIC8qIE1lZGlhUXVlcnlMaXN0TGlzdGVuZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCUQz
QTk0QTQ3MTIyREM0MEYwMEEzN0JCQyAvKiBKU01lZGlhUXVlcnlMaXN0LmggaW4gSGVhZGVycyAq
LywKIAkJCQlEM0FBMTBGNDEyM0E5OEFBMDA5MjE1MkIgLyogTWVkaWFRdWVyeU1hdGNoZXIuaCBp
biBIZWFkZXJzICovLAorCQkJCTJFOTdDQ0VCMTI5MzlDQjgwMEM1QzhGRiAvKiBEYXRhVmlldy5o
IGluIEhlYWRlcnMgKi8sCisJCQkJMkU5N0NFNzAxMjkzQUQ2QjAwQzVDOEZGIC8qIEpTRGF0YVZp
ZXcuaCBpbiBIZWFkZXJzICovLAogCQkJKTsKIAkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9zdHBy
b2Nlc3NpbmcgPSAwOwogCQl9OwpAQCAtMjM4ODQsNiArMjM5MDMsOSBAQAogCQkJCUQzQTk0QTQ2
MTIyREM0MEYwMEEzN0JCQyAvKiBKU01lZGlhUXVlcnlMaXN0LmNwcCBpbiBTb3VyY2VzICovLAog
CQkJCUQzQUExMEYzMTIzQTk4QUEwMDkyMTUyQiAvKiBNZWRpYVF1ZXJ5TWF0Y2hlci5jcHAgaW4g
U291cmNlcyAqLywKIAkJCQlEMzQwNjI5QjEyNTNCQzhDMDA5RTQyNTkgLyogTWVkaWFRdWVyeUxp
c3RMaXN0ZW5lci5jcHAgaW4gU291cmNlcyAqLywKKwkJCQkyRTk3Q0NFQTEyOTM5Q0I4MDBDNUM4
RkYgLyogRGF0YVZpZXcuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJMkU5N0NDRjcxMjkzQTQzQTAw
QzVDOEZGIC8qIEpTRGF0YVZpZXdDdXN0b20uY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJMkU5N0NF
NkYxMjkzQUQ2QjAwQzVDOEZGIC8qIEpTRGF0YVZpZXcuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkp
OwogCQkJcnVuT25seUZvckRlcGxveW1lbnRQb3N0cHJvY2Vzc2luZyA9IDA7CiAJCX07CmRpZmYg
LS1naXQgYS9XZWJDb3JlL2JpbmRpbmdzL2dlbmVyaWMvUnVudGltZUVuYWJsZWRGZWF0dXJlcy5o
IGIvV2ViQ29yZS9iaW5kaW5ncy9nZW5lcmljL1J1bnRpbWVFbmFibGVkRmVhdHVyZXMuaAppbmRl
eCAwYWI1MTIwLi4zMzQzMmNlIDEwMDY0NAotLS0gYS9XZWJDb3JlL2JpbmRpbmdzL2dlbmVyaWMv
UnVudGltZUVuYWJsZWRGZWF0dXJlcy5oCisrKyBiL1dlYkNvcmUvYmluZGluZ3MvZ2VuZXJpYy9S
dW50aW1lRW5hYmxlZEZlYXR1cmVzLmgKQEAgLTEwMiw2ICsxMDIsNyBAQCBwdWJsaWM6CiAgICAg
c3RhdGljIGJvb2wgaW50MzJBcnJheUVuYWJsZWQoKSB7IHJldHVybiBpc1dlYkdMRW5hYmxlZDsg
fQogICAgIHN0YXRpYyBib29sIHVpbnQzMkFycmF5RW5hYmxlZCgpIHsgcmV0dXJuIGlzV2ViR0xF
bmFibGVkOyB9CiAgICAgc3RhdGljIGJvb2wgZmxvYXQzMkFycmF5RW5hYmxlZCgpIHsgcmV0dXJu
IGlzV2ViR0xFbmFibGVkOyB9CisgICAgc3RhdGljIGJvb2wgZGF0YVZpZXdFbmFibGVkKCkgeyBy
ZXR1cm4gaXNXZWJHTEVuYWJsZWQ7IH0KICAgICBzdGF0aWMgYm9vbCB3ZWJHTFJlbmRlcmluZ0Nv
bnRleHRFbmFibGVkKCkgeyByZXR1cm4gaXNXZWJHTEVuYWJsZWQ7IH0KICAgICBzdGF0aWMgYm9v
bCB3ZWJHTEFycmF5QnVmZmVyRW5hYmxlZCgpIHsgcmV0dXJuIGlzV2ViR0xFbmFibGVkOyB9CiAg
ICAgc3RhdGljIGJvb2wgd2ViR0xCeXRlQXJyYXlFbmFibGVkKCkgeyByZXR1cm4gaXNXZWJHTEVu
YWJsZWQ7IH0KZGlmZiAtLWdpdCBhL1dlYkNvcmUvYmluZGluZ3MvanMvSlNBcnJheUJ1ZmZlclZp
ZXdIZWxwZXIuaCBiL1dlYkNvcmUvYmluZGluZ3MvanMvSlNBcnJheUJ1ZmZlclZpZXdIZWxwZXIu
aAppbmRleCBiYTcxMmM2Li5mMzRmNGI5IDEwMDY0NAotLS0gYS9XZWJDb3JlL2JpbmRpbmdzL2pz
L0pTQXJyYXlCdWZmZXJWaWV3SGVscGVyLmgKKysrIGIvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0Fy
cmF5QnVmZmVyVmlld0hlbHBlci5oCkBAIC04NiwxNiArODYsMzMgQEAgSlNDOjpKU1ZhbHVlIHNl
dFdlYkdMQXJyYXlIZWxwZXIoSlNDOjpFeGVjU3RhdGUqIGV4ZWMsIFQqIGltcGwsIFQqICgqY29u
dmVyc2lvbkYKIC8vIFRlbXBsYXRlIGZ1bmN0aW9uIHVzZWQgYnkgWFhYQXJyYXlDb25zdHJ1Y3Rv
cnMuCiAvLyBJZiB0aGlzIHJldHVybnMgMCwgaXQgd2lsbCBhbHJlYWR5IGhhdmUgdGhyb3duIGEg
SmF2YVNjcmlwdCBleGNlcHRpb24uCiB0ZW1wbGF0ZTxjbGFzcyBDLCB0eXBlbmFtZSBUPgotUGFz
c1JlZlB0cjxBcnJheUJ1ZmZlclZpZXc+IGNvbnN0cnVjdEFycmF5QnVmZmVyVmlldyhKU0M6OkV4
ZWNTdGF0ZSogZXhlYykKK1Bhc3NSZWZQdHI8Qz4gY29uc3RydWN0QXJyYXlCdWZmZXJWaWV3V2l0
aEFycmF5QnVmZmVyQXJndW1lbnQoSlNDOjpFeGVjU3RhdGUqIGV4ZWMpCit7CisgICAgUmVmUHRy
PEFycmF5QnVmZmVyPiBidWZmZXIgPSB0b0FycmF5QnVmZmVyKGV4ZWMtPmFyZ3VtZW50KDApKTsK
KyAgICBpZiAoIWJ1ZmZlcikKKyAgICAgICAgcmV0dXJuIDA7CisKKyAgICB1bnNpZ25lZCBvZmZz
ZXQgPSAoZXhlYy0+YXJndW1lbnRDb3VudCgpID4gMSkgPyBleGVjLT5hcmd1bWVudCgxKS50b1VJ
bnQzMihleGVjKSA6IDA7CisgICAgaWYgKChidWZmZXItPmJ5dGVMZW5ndGgoKSAtIG9mZnNldCkg
JSBzaXplb2YoVCkpCisgICAgICAgIHRocm93RXJyb3IoZXhlYywgY3JlYXRlUmFuZ2VFcnJvcihl
eGVjLCAiQXJyYXlCdWZmZXIgbGVuZ3RoIG1pbnVzIHRoZSBieXRlT2Zmc2V0IGlzIG5vdCBhIG11
bHRpcGxlIG9mIHRoZSBlbGVtZW50IHNpemUuIikpOworICAgIHVuc2lnbmVkIGludCBsZW5ndGgg
PSAoYnVmZmVyLT5ieXRlTGVuZ3RoKCkgLSBvZmZzZXQpIC8gc2l6ZW9mKFQpOworICAgIGlmIChl
eGVjLT5hcmd1bWVudENvdW50KCkgPiAyKQorICAgICAgICBsZW5ndGggPSBleGVjLT5hcmd1bWVu
dCgyKS50b1VJbnQzMihleGVjKTsKKyAgICBSZWZQdHI8Qz4gYXJyYXkgPSBDOjpjcmVhdGUoYnVm
ZmVyLCBvZmZzZXQsIGxlbmd0aCk7CisgICAgaWYgKCFhcnJheSkKKyAgICAgICAgc2V0RE9NRXhj
ZXB0aW9uKGV4ZWMsIElOREVYX1NJWkVfRVJSKTsKKyAgICByZXR1cm4gYXJyYXk7Cit9CisKK3Rl
bXBsYXRlPGNsYXNzIEMsIHR5cGVuYW1lIFQ+CitQYXNzUmVmUHRyPEM+IGNvbnN0cnVjdEFycmF5
QnVmZmVyVmlldyhKU0M6OkV4ZWNTdGF0ZSogZXhlYykKIHsKICAgICAvLyBUaGVyZSBhcmUgMyBj
b25zdHJ1Y3RvcnM6CiAgICAgLy8KICAgICAvLyAgMSkgKGluIGludCBzaXplKQogICAgIC8vICAy
KSAoaW4gQXJyYXlCdWZmZXIgYnVmZmVyLCBbT3B0aW9uYWxdIGluIGludCBvZmZzZXQsIFtPcHRp
b25hbF0gaW4gdW5zaWduZWQgaW50IGxlbmd0aCkKICAgICAvLyAgMykgKGluIHNlcXVlbmNlPFQ+
KSAtIFRoaXMgZW5kcyB1cCBiZWluZyBhIEpTICJhcnJheS1saWtlIiBvYmplY3QKLSAgICAvLwot
ICAgIFJlZlB0cjxDPiBhcnJheU9iamVjdDsKLSAgICAKKyAgICAvLyAgICAKICAgICAvLyBGb3Ig
dGhlIDAgYXJncyBjYXNlLCBqdXN0IGNyZWF0ZSBhIHplcm8tbGVuZ3RoIHZpZXcuIFdlIGNvdWxk
CiAgICAgLy8gY29uc2lkZXIgcmFpc2luZyBhIFN5bnRheEVycm9yIGZvciB0aGlzIGNhc2UsIGJ1
dCBub3QgYWxsCiAgICAgLy8gSmF2YVNjcmlwdCBET00gYmluZGluZ3MgY2FuIGRpc3Rpbmd1aXNo
IGJldHdlZW4gIm5ldwpAQCAtMTEyLDIwICsxMjksMTAgQEAgUGFzc1JlZlB0cjxBcnJheUJ1ZmZl
clZpZXc+IGNvbnN0cnVjdEFycmF5QnVmZmVyVmlldyhKU0M6OkV4ZWNTdGF0ZSogZXhlYykKICAg
ICB9CiAKICAgICBpZiAoZXhlYy0+YXJndW1lbnQoMCkuaXNPYmplY3QoKSkgewotICAgICAgICBS
ZWZQdHI8QXJyYXlCdWZmZXI+IGJ1ZmZlciA9IHRvQXJyYXlCdWZmZXIoZXhlYy0+YXJndW1lbnQo
MCkpOwotICAgICAgICBpZiAoYnVmZmVyKSB7Ci0gICAgICAgICAgICB1bnNpZ25lZCBvZmZzZXQg
PSAoZXhlYy0+YXJndW1lbnRDb3VudCgpID4gMSkgPyBleGVjLT5hcmd1bWVudCgxKS50b1VJbnQz
MihleGVjKSA6IDA7Ci0gICAgICAgICAgICBpZiAoKGJ1ZmZlci0+Ynl0ZUxlbmd0aCgpIC0gb2Zm
c2V0KSAlIHNpemVvZihUKSkKLSAgICAgICAgICAgICAgICB0aHJvd0Vycm9yKGV4ZWMsIGNyZWF0
ZVJhbmdlRXJyb3IoZXhlYywgIkFycmF5QnVmZmVyIGxlbmd0aCBtaW51cyB0aGUgYnl0ZU9mZnNl
dCBpcyBub3QgYSBtdWx0aXBsZSBvZiB0aGUgZWxlbWVudCBzaXplLiIpKTsKLSAgICAgICAgICAg
IHVuc2lnbmVkIGludCBsZW5ndGggPSAoYnVmZmVyLT5ieXRlTGVuZ3RoKCkgLSBvZmZzZXQpIC8g
c2l6ZW9mKFQpOwotICAgICAgICAgICAgaWYgKGV4ZWMtPmFyZ3VtZW50Q291bnQoKSA+IDIpCi0g
ICAgICAgICAgICAgICAgbGVuZ3RoID0gZXhlYy0+YXJndW1lbnQoMikudG9VSW50MzIoZXhlYyk7
Ci0gICAgICAgICAgICBQYXNzUmVmUHRyPEFycmF5QnVmZmVyVmlldz4gYXJyYXkgPSBDOjpjcmVh
dGUoYnVmZmVyLCBvZmZzZXQsIGxlbmd0aCk7Ci0gICAgICAgICAgICBpZiAoIWFycmF5KQotICAg
ICAgICAgICAgICAgIHNldERPTUV4Y2VwdGlvbihleGVjLCBJTkRFWF9TSVpFX0VSUik7Ci0gICAg
ICAgICAgICByZXR1cm4gYXJyYXk7Ci0gICAgICAgIH0KLSAgICAgICAgCisgICAgICAgIFJlZlB0
cjxDPiB2aWV3ID0gY29uc3RydWN0QXJyYXlCdWZmZXJWaWV3V2l0aEFycmF5QnVmZmVyQXJndW1l
bnQ8QywgVD4oZXhlYyk7CisgICAgICAgIGlmICh2aWV3KQorICAgICAgICAgICAgcmV0dXJuIHZp
ZXc7CisgICAgCiAgICAgICAgIEpTQzo6SlNPYmplY3QqIGFycmF5ID0gYXNPYmplY3QoZXhlYy0+
YXJndW1lbnQoMCkpOwogICAgICAgICB1bnNpZ25lZCBsZW5ndGggPSBhcnJheS0+Z2V0KGV4ZWMs
IEpTQzo6SWRlbnRpZmllcihleGVjLCAibGVuZ3RoIikpLnRvVUludDMyKGV4ZWMpOwogICAgICAg
ICB2b2lkKiB0ZW1wVmFsdWVzOwpAQCAtMTQyLDE0ICsxNDksMTQgQEAgUGFzc1JlZlB0cjxBcnJh
eUJ1ZmZlclZpZXc+IGNvbnN0cnVjdEFycmF5QnVmZmVyVmlldyhKU0M6OkV4ZWNTdGF0ZSogZXhl
YykKICAgICAgICAgICAgIHZhbHVlcy5nZXQoKVtpXSA9IHN0YXRpY19jYXN0PFQ+KHYudG9OdW1i
ZXIoZXhlYykpOwogICAgICAgICB9CiAgICAgICAgIAotICAgICAgICBQYXNzUmVmUHRyPEFycmF5
QnVmZmVyVmlldz4gcmVzdWx0ID0gQzo6Y3JlYXRlKHZhbHVlcy5nZXQoKSwgbGVuZ3RoKTsKKyAg
ICAgICAgUmVmUHRyPEM+IHJlc3VsdCA9IEM6OmNyZWF0ZSh2YWx1ZXMuZ2V0KCksIGxlbmd0aCk7
CiAgICAgICAgIGlmICghcmVzdWx0KQogICAgICAgICAgICAgc2V0RE9NRXhjZXB0aW9uKGV4ZWMs
IElOREVYX1NJWkVfRVJSKTsKICAgICAgICAgcmV0dXJuIHJlc3VsdDsKICAgICB9Ci0gICAgCisK
ICAgICBpbnQgbGVuZ3RoID0gZXhlYy0+YXJndW1lbnQoMCkudG9JbnQzMihleGVjKTsKLSAgICBQ
YXNzUmVmUHRyPEFycmF5QnVmZmVyVmlldz4gcmVzdWx0OworICAgIFJlZlB0cjxDPiByZXN1bHQ7
CiAgICAgaWYgKGxlbmd0aCA+PSAwKQogICAgICAgICByZXN1bHQgPSBDOjpjcmVhdGUoc3RhdGlj
X2Nhc3Q8dW5zaWduZWQ+KGxlbmd0aCkpOwogICAgIGlmICghcmVzdWx0KQpkaWZmIC0tZ2l0IGEv
V2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTVdpbmRvd0N1c3RvbS5jcHAgYi9XZWJDb3JlL2JpbmRp
bmdzL2pzL0pTRE9NV2luZG93Q3VzdG9tLmNwcAppbmRleCA3MTE5ZWE2Li45NWZjZGMxIDEwMDY0
NAotLS0gYS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NV2luZG93Q3VzdG9tLmNwcAorKysgYi9X
ZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NV2luZG93Q3VzdG9tLmNwcApAQCAtNTMsNiArNTMsNyBA
QAogCiAjaWYgRU5BQkxFKDNEX0NBTlZBUykgfHwgRU5BQkxFKEJMT0IpCiAjaW5jbHVkZSAiSlNB
cnJheUJ1ZmZlci5oIgorI2luY2x1ZGUgIkpTRGF0YVZpZXcuaCIKICNpbmNsdWRlICJKU0ludDhB
cnJheS5oIgogI2luY2x1ZGUgIkpTVWludDhBcnJheS5oIgogI2luY2x1ZGUgIkpTSW50MzJBcnJh
eS5oIgpAQCAtNjA2LDYgKzYwNywxMCBAQCBKU1ZhbHVlIEpTRE9NV2luZG93OjpmbG9hdDMyQXJy
YXkoRXhlY1N0YXRlKiBleGVjKSBjb25zdAogICAgIHJldHVybiBnZXRET01Db25zdHJ1Y3RvcjxK
U0Zsb2F0MzJBcnJheUNvbnN0cnVjdG9yPihleGVjLCB0aGlzKTsKIH0KIAorSlNWYWx1ZSBKU0RP
TVdpbmRvdzo6ZGF0YVZpZXcoRXhlY1N0YXRlKiBleGVjKSBjb25zdAoreworICAgIHJldHVybiBn
ZXRET01Db25zdHJ1Y3RvcjxKU0RhdGFWaWV3Q29uc3RydWN0b3I+KGV4ZWMsIHRoaXMpOworfQog
I2VuZGlmCiAgCiBKU1ZhbHVlIEpTRE9NV2luZG93Ojp4bWxIdHRwUmVxdWVzdChFeGVjU3RhdGUq
IGV4ZWMpIGNvbnN0CmRpZmYgLS1naXQgYS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRGF0YVZpZXdD
dXN0b20uY3BwIGIvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RhdGFWaWV3Q3VzdG9tLmNwcApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wNzU2ZTk4Ci0tLSAvZGV2L251bGwKKysr
IGIvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RhdGFWaWV3Q3VzdG9tLmNwcApAQCAtMCwwICsxLDE3
OCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMCBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICoK
KyAqIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmlu
YXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBp
biB0aGUKKyAqICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgQVBQTEUgQU5EIElUUyBDT05UUklCVVRPUlMgIkFTIElTIiBBTkQgQU5ZCisgKiBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFRIRSBJTVBMSUVECisgKiBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCisgKiBESVNDTEFJTUVELiBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZCisgKiBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNF
UVVFTlRJQUwgREFNQUdFUworICogKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9D
VVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOworICogTE9TUyBPRiBVU0Us
IERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5ECisgKiBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GCisgKiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKworI2lmIEVOQUJMRSgzRF9DQU5WQVMp
IHx8IEVOQUJMRShCTE9CKQorCisjaW5jbHVkZSAiSlNEYXRhVmlldy5oIgorCisjaW5jbHVkZSAi
RGF0YVZpZXcuaCIKKyNpbmNsdWRlICJFeGNlcHRpb25Db2RlLmgiCisjaW5jbHVkZSAiSlNBcnJh
eUJ1ZmZlclZpZXdIZWxwZXIuaCIKKyNpbmNsdWRlIDx3dGYvTWF0aEV4dHJhcy5oPgorCit1c2lu
ZyBuYW1lc3BhY2UgSlNDOworCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2VudW0gRGF0YVZpZXdB
Y2Nlc3NUeXBlIHsKKyAgICBBY2Nlc3NEYXRhVmlld01lbWJlckFzSW50OCwKKyAgICBBY2Nlc3NE
YXRhVmlld01lbWJlckFzVWludDgsCisgICAgQWNjZXNzRGF0YVZpZXdNZW1iZXJBc0Zsb2F0MzIs
CisgICAgQWNjZXNzRGF0YVZpZXdNZW1iZXJBc0Zsb2F0NjQKK307CisKK0pTVmFsdWUgdG9KUyhF
eGVjU3RhdGUqIGV4ZWMsIEpTRE9NR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIERhdGFWaWV3
KiBvYmplY3QpCit7CisgICAgcmV0dXJuIGdldERPTU9iamVjdFdyYXBwZXI8SlNEYXRhVmlldz4o
ZXhlYywgZ2xvYmFsT2JqZWN0LCBvYmplY3QpOworfQorCitFbmNvZGVkSlNWYWx1ZSBKU0NfSE9T
VF9DQUxMIEpTRGF0YVZpZXdDb25zdHJ1Y3Rvcjo6Y29uc3RydWN0SlNEYXRhVmlldyhFeGVjU3Rh
dGUqIGV4ZWMpCit7CisgICAgaWYgKGV4ZWMtPmFyZ3VtZW50KDApLmlzTnVsbCgpIHx8ICFleGVj
LT5hcmd1bWVudCgwKS5pc09iamVjdCgpKQorICAgICAgICByZXR1cm4gdGhyb3dWTVR5cGVFcnJv
cihleGVjKTsKKworICAgIFJlZlB0cjxEYXRhVmlldz4gdmlldyA9IGNvbnN0cnVjdEFycmF5QnVm
ZmVyVmlld1dpdGhBcnJheUJ1ZmZlckFyZ3VtZW50PERhdGFWaWV3LCBjaGFyPihleGVjKTsKKyAg
ICBpZiAoIXZpZXcuZ2V0KCkpIHsKKyAgICAgICAgc2V0RE9NRXhjZXB0aW9uKGV4ZWMsIElOREVY
X1NJWkVfRVJSKTsKKyAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgp
KTsKKyAgICB9CisKKyAgICBKU0RhdGFWaWV3Q29uc3RydWN0b3IqIGpzQ29uc3RydWN0b3IgPSBz
dGF0aWNfY2FzdDxKU0RhdGFWaWV3Q29uc3RydWN0b3IqPihleGVjLT5jYWxsZWUoKSk7CisgICAg
cmV0dXJuIEpTVmFsdWU6OmVuY29kZShhc09iamVjdCh0b0pTKGV4ZWMsIGpzQ29uc3RydWN0b3It
Pmdsb2JhbE9iamVjdCgpLCB2aWV3LmdldCgpKSkpOworfQorCitzdGF0aWMgSlNWYWx1ZSBnZXRE
YXRhVmlld01lbWJlcihFeGVjU3RhdGUqIGV4ZWMsIERhdGFWaWV3QWNjZXNzVHlwZSB0eXBlKQor
eworICAgIEpTVmFsdWUgdGhpc1ZhbHVlID0gZXhlYy0+aG9zdFRoaXNWYWx1ZSgpOworICAgIGlm
ICghdGhpc1ZhbHVlLmluaGVyaXRzKCZKU0RhdGFWaWV3OjpzX2luZm8pKQorICAgICAgICByZXR1
cm4gdGhyb3dUeXBlRXJyb3IoZXhlYyk7CisgICAgSlNEYXRhVmlldyogY2FzdGVkVGhpcyA9IHN0
YXRpY19jYXN0PEpTRGF0YVZpZXcqPihhc09iamVjdCh0aGlzVmFsdWUpKTsKKyAgICBEYXRhVmll
dyogaW1wID0gc3RhdGljX2Nhc3Q8RGF0YVZpZXcqPihjYXN0ZWRUaGlzLT5pbXBsKCkpOworICAg
IGlmIChleGVjLT5hcmd1bWVudENvdW50KCkgPCAxKQorICAgICAgICByZXR1cm4gdGhyb3dFcnJv
cihleGVjLCBjcmVhdGVTeW50YXhFcnJvcihleGVjLCAiTm90IGVub3VnaCBhcmd1bWVudHMiKSk7
CisgICAgRXhjZXB0aW9uQ29kZSBlYyA9IDA7CisgICAgdW5zaWduZWQgYnl0ZU9mZnNldCA9IGV4
ZWMtPmFyZ3VtZW50KDApLnRvVUludDMyKGV4ZWMpOworICAgIGlmIChleGVjLT5oYWRFeGNlcHRp
b24oKSkKKyAgICAgICAgcmV0dXJuIGpzVW5kZWZpbmVkKCk7CisKKyAgICBib29sIGxpdHRsZUVu
ZGlhbiA9IGZhbHNlOworICAgIGlmIChleGVjLT5hcmd1bWVudENvdW50KCkgPiAxICYmICh0eXBl
ID09IEFjY2Vzc0RhdGFWaWV3TWVtYmVyQXNGbG9hdDMyIHx8IHR5cGUgPT0gQWNjZXNzRGF0YVZp
ZXdNZW1iZXJBc0Zsb2F0NjQpKSB7CisgICAgICAgIGxpdHRsZUVuZGlhbiA9IGV4ZWMtPmFyZ3Vt
ZW50KDEpLnRvQm9vbGVhbihleGVjKTsKKyAgICAgICAgaWYgKGV4ZWMtPmhhZEV4Y2VwdGlvbigp
KQorICAgICAgICAgICAgcmV0dXJuIGpzVW5kZWZpbmVkKCk7CisgICAgfQorCisgICAgSlNDOjpK
U1ZhbHVlIHJlc3VsdDsKKyAgICBzd2l0Y2ggKHR5cGUpIHsKKyAgICAgICAgY2FzZSBBY2Nlc3NE
YXRhVmlld01lbWJlckFzSW50ODoKKyAgICAgICAgICAgIHJlc3VsdCA9IGpzTnVtYmVyKGltcC0+
Z2V0SW50OChieXRlT2Zmc2V0LCBlYykpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNh
c2UgQWNjZXNzRGF0YVZpZXdNZW1iZXJBc1VpbnQ4OgorICAgICAgICAgICAgcmVzdWx0ID0ganNO
dW1iZXIoaW1wLT5nZXRVaW50OChieXRlT2Zmc2V0LCBlYykpOworICAgICAgICAgICAgYnJlYWs7
CisgICAgICAgIGNhc2UgQWNjZXNzRGF0YVZpZXdNZW1iZXJBc0Zsb2F0MzI6CisgICAgICAgIGNh
c2UgQWNjZXNzRGF0YVZpZXdNZW1iZXJBc0Zsb2F0NjQ6IHsKKyAgICAgICAgICAgIGRvdWJsZSB2
YWx1ZSA9ICh0eXBlID09IEFjY2Vzc0RhdGFWaWV3TWVtYmVyQXNGbG9hdDMyKSA/IGltcC0+Z2V0
RmxvYXQzMihieXRlT2Zmc2V0LCBsaXR0bGVFbmRpYW4sIGVjKSA6IGltcC0+Z2V0RmxvYXQ2NChi
eXRlT2Zmc2V0LCBsaXR0bGVFbmRpYW4sIGVjKTsKKyAgICAgICAgICAgIHJlc3VsdCA9IGlzbmFu
KHZhbHVlKSA/IEpTVmFsdWUobm9uSW5saW5lTmFOKCkpIDoganNOdW1iZXIodmFsdWUpOworICAg
ICAgICAgICAgYnJlYWs7CisgICAgICAgIH0gZGVmYXVsdDoKKyAgICAgICAgICAgIEFTU0VSVF9O
T1RfUkVBQ0hFRCgpOworICAgICAgICAgICAgYnJlYWs7CisgICAgfQorICAgIHNldERPTUV4Y2Vw
dGlvbihleGVjLCBlYyk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KKworSlNWYWx1ZSBKU0NfSE9T
VF9DQUxMIEpTRGF0YVZpZXc6OmdldEludDgoRXhlY1N0YXRlKiBleGVjKQoreworICAgIHJldHVy
biBnZXREYXRhVmlld01lbWJlcihleGVjLCBBY2Nlc3NEYXRhVmlld01lbWJlckFzSW50OCk7Cit9
CisKK0pTVmFsdWUgSlNDX0hPU1RfQ0FMTCBKU0RhdGFWaWV3OjpnZXRVaW50OChFeGVjU3RhdGUq
IGV4ZWMpCit7CisgICAgcmV0dXJuIGdldERhdGFWaWV3TWVtYmVyKGV4ZWMsIEFjY2Vzc0RhdGFW
aWV3TWVtYmVyQXNVaW50OCk7Cit9CisKK0pTVmFsdWUgSlNDX0hPU1RfQ0FMTCBKU0RhdGFWaWV3
OjpnZXRGbG9hdDMyKEV4ZWNTdGF0ZSogZXhlYykKK3sKKyAgICByZXR1cm4gZ2V0RGF0YVZpZXdN
ZW1iZXIoZXhlYywgQWNjZXNzRGF0YVZpZXdNZW1iZXJBc0Zsb2F0MzIpOworfQorCitKU1ZhbHVl
IEpTQ19IT1NUX0NBTEwgSlNEYXRhVmlldzo6Z2V0RmxvYXQ2NChFeGVjU3RhdGUqIGV4ZWMpCit7
CisgICAgcmV0dXJuIGdldERhdGFWaWV3TWVtYmVyKGV4ZWMsIEFjY2Vzc0RhdGFWaWV3TWVtYmVy
QXNGbG9hdDY0KTsKK30KKworc3RhdGljIEpTVmFsdWUgc2V0RGF0YVZpZXdNZW1iZXIoRXhlY1N0
YXRlKiBleGVjLCBEYXRhVmlld0FjY2Vzc1R5cGUgdHlwZSkKK3sKKyAgICBKU1ZhbHVlIHRoaXNW
YWx1ZSA9IGV4ZWMtPmhvc3RUaGlzVmFsdWUoKTsKKyAgICBpZiAoIXRoaXNWYWx1ZS5pbmhlcml0
cygmSlNEYXRhVmlldzo6c19pbmZvKSkKKyAgICAgICAgcmV0dXJuIHRocm93VHlwZUVycm9yKGV4
ZWMpOworICAgIEpTRGF0YVZpZXcqIGNhc3RlZFRoaXMgPSBzdGF0aWNfY2FzdDxKU0RhdGFWaWV3
Kj4oYXNPYmplY3QodGhpc1ZhbHVlKSk7CisgICAgRGF0YVZpZXcqIGltcCA9IHN0YXRpY19jYXN0
PERhdGFWaWV3Kj4oY2FzdGVkVGhpcy0+aW1wbCgpKTsKKyAgICBpZiAoZXhlYy0+YXJndW1lbnRD
b3VudCgpIDwgMikKKyAgICAgICAgcmV0dXJuIHRocm93RXJyb3IoZXhlYywgY3JlYXRlU3ludGF4
RXJyb3IoZXhlYywgIk5vdCBlbm91Z2ggYXJndW1lbnRzIikpOworICAgIEV4Y2VwdGlvbkNvZGUg
ZWMgPSAwOworICAgIHVuc2lnbmVkIGJ5dGVPZmZzZXQgPSBleGVjLT5hcmd1bWVudCgwKS50b1VJ
bnQzMihleGVjKTsKKyAgICBpZiAoZXhlYy0+aGFkRXhjZXB0aW9uKCkpCisgICAgICAgIHJldHVy
biBqc1VuZGVmaW5lZCgpOworICAgIGludCB2YWx1ZSA9IGV4ZWMtPmFyZ3VtZW50KDEpLnRvSW50
MzIoZXhlYyk7CisgICAgaWYgKGV4ZWMtPmhhZEV4Y2VwdGlvbigpKQorICAgICAgICByZXR1cm4g
anNVbmRlZmluZWQoKTsKKyAgICAgICAgCisgICAgc3dpdGNoICh0eXBlKXsKKyAgICBjYXNlIEFj
Y2Vzc0RhdGFWaWV3TWVtYmVyQXNJbnQ4OgorICAgICAgICBpZiAodmFsdWUgPCAtMTI4IHx8IHZh
bHVlID4gMTI3KQorICAgICAgICAgICAgcmV0dXJuIHRocm93RXJyb3IoZXhlYywgY3JlYXRlU3lu
dGF4RXJyb3IoZXhlYywgIlRoZSB2YWx1ZSB0byBzZXQgdG8gaXMgb3V0IG9mIHJhbmdlIikpOwor
ICAgICAgICBpbXAtPnNldEludDgoYnl0ZU9mZnNldCwgc3RhdGljX2Nhc3Q8dW5zaWduZWQgY2hh
cj4odmFsdWUpLCBlYyk7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgQWNjZXNzRGF0YVZpZXdN
ZW1iZXJBc1VpbnQ4OgorICAgICAgICBpZiAodmFsdWUgPCAwIHx8IHZhbHVlID4gMjU1KQorICAg
ICAgICAgICAgcmV0dXJuIHRocm93RXJyb3IoZXhlYywgY3JlYXRlU3ludGF4RXJyb3IoZXhlYywg
IlRoZSB2YWx1ZSB0byBzZXQgdG8gaXMgb3V0IG9mIHJhbmdlIikpOworICAgICAgICBpbXAtPnNl
dFVpbnQ4KGJ5dGVPZmZzZXQsIHN0YXRpY19jYXN0PHVuc2lnbmVkIGNoYXI+KHZhbHVlKSwgZWMp
OworICAgICAgICBicmVhazsKKyAgICBkZWZhdWx0OgorICAgICAgICBBU1NFUlRfTk9UX1JFQUNI
RUQoKTsKKyAgICAgICAgYnJlYWs7CisgICAgfQorICAgIHNldERPTUV4Y2VwdGlvbihleGVjLCBl
Yyk7CisgICAgcmV0dXJuIGpzVW5kZWZpbmVkKCk7Cit9CisKK0pTVmFsdWUgSlNDX0hPU1RfQ0FM
TCBKU0RhdGFWaWV3OjpzZXRJbnQ4KEV4ZWNTdGF0ZSogZXhlYykKK3sKKyAgICByZXR1cm4gc2V0
RGF0YVZpZXdNZW1iZXIoZXhlYywgQWNjZXNzRGF0YVZpZXdNZW1iZXJBc0ludDgpOworfQorCitK
U1ZhbHVlIEpTQ19IT1NUX0NBTEwgSlNEYXRhVmlldzo6c2V0VWludDgoRXhlY1N0YXRlKiBleGVj
KQoreworICAgIHJldHVybiBzZXREYXRhVmlld01lbWJlcihleGVjLCBBY2Nlc3NEYXRhVmlld01l
bWJlckFzVWludDgpOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBF
TkFCTEUoM0RfQ0FOVkFTKSB8fCBFTkFCTEUoQkxPQikKZGlmZiAtLWdpdCBhL1dlYkNvcmUvYmlu
ZGluZ3MvanMvSlNGbG9hdDMyQXJyYXlDdXN0b20uY3BwIGIvV2ViQ29yZS9iaW5kaW5ncy9qcy9K
U0Zsb2F0MzJBcnJheUN1c3RvbS5jcHAKaW5kZXggNjcxZWU2OC4uODgwZDY4YyAxMDA2NDQKLS0t
IGEvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0Zsb2F0MzJBcnJheUN1c3RvbS5jcHAKKysrIGIvV2Vi
Q29yZS9iaW5kaW5ncy9qcy9KU0Zsb2F0MzJBcnJheUN1c3RvbS5jcHAKQEAgLTI3LDEwICsyNywx
MCBAQAogCiAjaWYgRU5BQkxFKDNEX0NBTlZBUykgfHwgRU5BQkxFKEJMT0IpCiAKLSNpbmNsdWRl
ICJKU0FycmF5QnVmZmVyVmlld0hlbHBlci5oIgogI2luY2x1ZGUgIkpTRmxvYXQzMkFycmF5Lmgi
CiAKICNpbmNsdWRlICJGbG9hdDMyQXJyYXkuaCIKKyNpbmNsdWRlICJKU0FycmF5QnVmZmVyVmll
d0hlbHBlci5oIgogCiB1c2luZyBuYW1lc3BhY2UgSlNDOwogCkBAIC01NCw3ICs1NCw3IEBAIEpT
Qzo6SlNWYWx1ZSBKU0Zsb2F0MzJBcnJheTo6c2V0KEpTQzo6RXhlY1N0YXRlKiBleGVjKQogRW5j
b2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBKU0Zsb2F0MzJBcnJheUNvbnN0cnVjdG9yOjpjb25z
dHJ1Y3RKU0Zsb2F0MzJBcnJheShFeGVjU3RhdGUqIGV4ZWMpCiB7CiAgICAgSlNGbG9hdDMyQXJy
YXlDb25zdHJ1Y3RvcioganNDb25zdHJ1Y3RvciA9IHN0YXRpY19jYXN0PEpTRmxvYXQzMkFycmF5
Q29uc3RydWN0b3IqPihleGVjLT5jYWxsZWUoKSk7Ci0gICAgUmVmUHRyPEZsb2F0MzJBcnJheT4g
YXJyYXkgPSBzdGF0aWNfY2FzdDxGbG9hdDMyQXJyYXkqPihjb25zdHJ1Y3RBcnJheUJ1ZmZlclZp
ZXc8RmxvYXQzMkFycmF5LCBmbG9hdD4oZXhlYykuZ2V0KCkpOworICAgIFJlZlB0cjxGbG9hdDMy
QXJyYXk+IGFycmF5ID0gY29uc3RydWN0QXJyYXlCdWZmZXJWaWV3PEZsb2F0MzJBcnJheSwgZmxv
YXQ+KGV4ZWMpOwogICAgIGlmICghYXJyYXkuZ2V0KCkpCiAgICAgICAgIC8vIEV4Y2VwdGlvbiBo
YXMgYWxyZWFkeSBiZWVuIHRocm93bi4KICAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShK
U1ZhbHVlKCkpOwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0ludDE2QXJyYXlD
dXN0b20uY3BwIGIvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0ludDE2QXJyYXlDdXN0b20uY3BwCmlu
ZGV4IDc5NzU2OGMuLmUwOGRhOGEgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvYmluZGluZ3MvanMvSlNJ
bnQxNkFycmF5Q3VzdG9tLmNwcAorKysgYi9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTSW50MTZBcnJh
eUN1c3RvbS5jcHAKQEAgLTI3LDEwICsyNywxMCBAQAogCiAjaWYgRU5BQkxFKDNEX0NBTlZBUykg
fHwgRU5BQkxFKEJMT0IpCiAKLSNpbmNsdWRlICJKU0FycmF5QnVmZmVyVmlld0hlbHBlci5oIgog
I2luY2x1ZGUgIkpTSW50MTZBcnJheS5oIgogCiAjaW5jbHVkZSAiSW50MTZBcnJheS5oIgorI2lu
Y2x1ZGUgIkpTQXJyYXlCdWZmZXJWaWV3SGVscGVyLmgiCiAKIHVzaW5nIG5hbWVzcGFjZSBKU0M7
CiAKQEAgLTU0LDcgKzU0LDcgQEAgSlNDOjpKU1ZhbHVlIEpTSW50MTZBcnJheTo6c2V0KEpTQzo6
RXhlY1N0YXRlKiBleGVjKQogRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBKU0ludDE2QXJy
YXlDb25zdHJ1Y3Rvcjo6Y29uc3RydWN0SlNJbnQxNkFycmF5KEV4ZWNTdGF0ZSogZXhlYykKIHsK
ICAgICBKU0ludDE2QXJyYXlDb25zdHJ1Y3RvcioganNDb25zdHJ1Y3RvciA9IHN0YXRpY19jYXN0
PEpTSW50MTZBcnJheUNvbnN0cnVjdG9yKj4oZXhlYy0+Y2FsbGVlKCkpOwotICAgIFJlZlB0cjxJ
bnQxNkFycmF5PiBhcnJheSA9IHN0YXRpY19jYXN0PEludDE2QXJyYXkqPihjb25zdHJ1Y3RBcnJh
eUJ1ZmZlclZpZXc8SW50MTZBcnJheSwgc2hvcnQ+KGV4ZWMpLmdldCgpKTsKKyAgICBSZWZQdHI8
SW50MTZBcnJheT4gYXJyYXkgPSBjb25zdHJ1Y3RBcnJheUJ1ZmZlclZpZXc8SW50MTZBcnJheSwg
c2hvcnQ+KGV4ZWMpOwogICAgIGlmICghYXJyYXkuZ2V0KCkpCiAgICAgICAgIC8vIEV4Y2VwdGlv
biBoYXMgYWxyZWFkeSBiZWVuIHRocm93bi4KICAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29k
ZShKU1ZhbHVlKCkpOwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0ludDMyQXJy
YXlDdXN0b20uY3BwIGIvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0ludDMyQXJyYXlDdXN0b20uY3Bw
CmluZGV4IDUzZTZlYzYuLjVhYTY0YmIgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvYmluZGluZ3MvanMv
SlNJbnQzMkFycmF5Q3VzdG9tLmNwcAorKysgYi9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTSW50MzJB
cnJheUN1c3RvbS5jcHAKQEAgLTI3LDEwICsyNywxMCBAQAogCiAjaWYgRU5BQkxFKDNEX0NBTlZB
UykgfHwgRU5BQkxFKEJMT0IpCiAKLSNpbmNsdWRlICJKU0FycmF5QnVmZmVyVmlld0hlbHBlci5o
IgogI2luY2x1ZGUgIkpTSW50MzJBcnJheS5oIgogCiAjaW5jbHVkZSAiSW50MzJBcnJheS5oIgor
I2luY2x1ZGUgIkpTQXJyYXlCdWZmZXJWaWV3SGVscGVyLmgiCiAKIHVzaW5nIG5hbWVzcGFjZSBK
U0M7CiAKQEAgLTU0LDcgKzU0LDcgQEAgSlNDOjpKU1ZhbHVlIEpTSW50MzJBcnJheTo6c2V0KEpT
Qzo6RXhlY1N0YXRlKiBleGVjKQogRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBKU0ludDMy
QXJyYXlDb25zdHJ1Y3Rvcjo6Y29uc3RydWN0SlNJbnQzMkFycmF5KEV4ZWNTdGF0ZSogZXhlYykK
IHsKICAgICBKU0ludDMyQXJyYXlDb25zdHJ1Y3RvcioganNDb25zdHJ1Y3RvciA9IHN0YXRpY19j
YXN0PEpTSW50MzJBcnJheUNvbnN0cnVjdG9yKj4oZXhlYy0+Y2FsbGVlKCkpOwotICAgIFJlZlB0
cjxJbnQzMkFycmF5PiBhcnJheSA9IHN0YXRpY19jYXN0PEludDMyQXJyYXkqPihjb25zdHJ1Y3RB
cnJheUJ1ZmZlclZpZXc8SW50MzJBcnJheSwgaW50PihleGVjKS5nZXQoKSk7CisgICAgUmVmUHRy
PEludDMyQXJyYXk+IGFycmF5ID0gY29uc3RydWN0QXJyYXlCdWZmZXJWaWV3PEludDMyQXJyYXks
IGludD4oZXhlYyk7CiAgICAgaWYgKCFhcnJheS5nZXQoKSkKICAgICAgICAgLy8gRXhjZXB0aW9u
IGhhcyBhbHJlYWR5IGJlZW4gdGhyb3duLgogICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2Rl
KEpTVmFsdWUoKSk7CmRpZmYgLS1naXQgYS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTSW50OEFycmF5
Q3VzdG9tLmNwcCBiL1dlYkNvcmUvYmluZGluZ3MvanMvSlNJbnQ4QXJyYXlDdXN0b20uY3BwCmlu
ZGV4IDc1NTZkNmEuLmI2M2RlNTQgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvYmluZGluZ3MvanMvSlNJ
bnQ4QXJyYXlDdXN0b20uY3BwCisrKyBiL1dlYkNvcmUvYmluZGluZ3MvanMvSlNJbnQ4QXJyYXlD
dXN0b20uY3BwCkBAIC0yNywxMCArMjcsMTAgQEAKIAogI2lmIEVOQUJMRSgzRF9DQU5WQVMpIHx8
IEVOQUJMRShCTE9CKQogCi0jaW5jbHVkZSAiSlNBcnJheUJ1ZmZlclZpZXdIZWxwZXIuaCIKICNp
bmNsdWRlICJKU0ludDhBcnJheS5oIgogCiAjaW5jbHVkZSAiSW50OEFycmF5LmgiCisjaW5jbHVk
ZSAiSlNBcnJheUJ1ZmZlclZpZXdIZWxwZXIuaCIKICNpbmNsdWRlIDxydW50aW1lL0Vycm9yLmg+
CiAKIHVzaW5nIG5hbWVzcGFjZSBKU0M7CkBAIC01NSw3ICs1NSw3IEBAIEpTQzo6SlNWYWx1ZSBK
U0ludDhBcnJheTo6c2V0KEpTQzo6RXhlY1N0YXRlKiBleGVjKQogRW5jb2RlZEpTVmFsdWUgSlND
X0hPU1RfQ0FMTCBKU0ludDhBcnJheUNvbnN0cnVjdG9yOjpjb25zdHJ1Y3RKU0ludDhBcnJheShF
eGVjU3RhdGUqIGV4ZWMpCiB7CiAgICAgSlNJbnQ4QXJyYXlDb25zdHJ1Y3RvcioganNDb25zdHJ1
Y3RvciA9IHN0YXRpY19jYXN0PEpTSW50OEFycmF5Q29uc3RydWN0b3IqPihleGVjLT5jYWxsZWUo
KSk7Ci0gICAgUmVmUHRyPEludDhBcnJheT4gYXJyYXkgPSBzdGF0aWNfY2FzdDxJbnQ4QXJyYXkq
Pihjb25zdHJ1Y3RBcnJheUJ1ZmZlclZpZXc8SW50OEFycmF5LCBzaWduZWQgY2hhcj4oZXhlYyku
Z2V0KCkpOworICAgIFJlZlB0cjxJbnQ4QXJyYXk+IGFycmF5ID0gY29uc3RydWN0QXJyYXlCdWZm
ZXJWaWV3PEludDhBcnJheSwgc2lnbmVkIGNoYXI+KGV4ZWMpOwogICAgIGlmICghYXJyYXkuZ2V0
KCkpCiAgICAgICAgIC8vIEV4Y2VwdGlvbiBoYXMgYWxyZWFkeSBiZWVuIHRocm93bi4KICAgICAg
ICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShKU1ZhbHVlKCkpOwpkaWZmIC0tZ2l0IGEvV2ViQ29y
ZS9iaW5kaW5ncy9qcy9KU1VpbnQxNkFycmF5Q3VzdG9tLmNwcCBiL1dlYkNvcmUvYmluZGluZ3Mv
anMvSlNVaW50MTZBcnJheUN1c3RvbS5jcHAKaW5kZXggOWYxMmZhNy4uNmEwMjRlZSAxMDA2NDQK
LS0tIGEvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1VpbnQxNkFycmF5Q3VzdG9tLmNwcAorKysgYi9X
ZWJDb3JlL2JpbmRpbmdzL2pzL0pTVWludDE2QXJyYXlDdXN0b20uY3BwCkBAIC0yNyw5ICsyNyw5
IEBACiAKICNpZiBFTkFCTEUoM0RfQ0FOVkFTKSB8fCBFTkFCTEUoQkxPQikKIAotI2luY2x1ZGUg
IkpTQXJyYXlCdWZmZXJWaWV3SGVscGVyLmgiCiAjaW5jbHVkZSAiSlNVaW50MTZBcnJheS5oIgog
CisjaW5jbHVkZSAiSlNBcnJheUJ1ZmZlclZpZXdIZWxwZXIuaCIKICNpbmNsdWRlICJVaW50MTZB
cnJheS5oIgogCiB1c2luZyBuYW1lc3BhY2UgSlNDOwpAQCAtNTQsNyArNTQsNyBAQCBKU0M6OkpT
VmFsdWUgSlNVaW50MTZBcnJheTo6c2V0KEpTQzo6RXhlY1N0YXRlKiBleGVjKQogRW5jb2RlZEpT
VmFsdWUgSlNDX0hPU1RfQ0FMTCBKU1VpbnQxNkFycmF5Q29uc3RydWN0b3I6OmNvbnN0cnVjdEpT
VWludDE2QXJyYXkoRXhlY1N0YXRlKiBleGVjKQogewogICAgIEpTVWludDE2QXJyYXlDb25zdHJ1
Y3RvcioganNDb25zdHJ1Y3RvciA9IHN0YXRpY19jYXN0PEpTVWludDE2QXJyYXlDb25zdHJ1Y3Rv
cio+KGV4ZWMtPmNhbGxlZSgpKTsKLSAgICBSZWZQdHI8VWludDE2QXJyYXk+IGFycmF5ID0gc3Rh
dGljX2Nhc3Q8VWludDE2QXJyYXkqPihjb25zdHJ1Y3RBcnJheUJ1ZmZlclZpZXc8VWludDE2QXJy
YXksIHVuc2lnbmVkIHNob3J0PihleGVjKS5nZXQoKSk7CisgICAgUmVmUHRyPFVpbnQxNkFycmF5
PiBhcnJheSA9IGNvbnN0cnVjdEFycmF5QnVmZmVyVmlldzxVaW50MTZBcnJheSwgdW5zaWduZWQg
c2hvcnQ+KGV4ZWMpOwogICAgIGlmICghYXJyYXkuZ2V0KCkpCiAgICAgICAgIC8vIEV4Y2VwdGlv
biBoYXMgYWxyZWFkeSBiZWVuIHRocm93bi4KICAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29k
ZShKU1ZhbHVlKCkpOwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1VpbnQzMkFy
cmF5Q3VzdG9tLmNwcCBiL1dlYkNvcmUvYmluZGluZ3MvanMvSlNVaW50MzJBcnJheUN1c3RvbS5j
cHAKaW5kZXggYzc1Nzc4Ni4uMzRlYjhkZSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9iaW5kaW5ncy9q
cy9KU1VpbnQzMkFycmF5Q3VzdG9tLmNwcAorKysgYi9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTVWlu
dDMyQXJyYXlDdXN0b20uY3BwCkBAIC0yNyw5ICsyNyw5IEBACiAKICNpZiBFTkFCTEUoM0RfQ0FO
VkFTKSB8fCBFTkFCTEUoQkxPQikKIAotI2luY2x1ZGUgIkpTQXJyYXlCdWZmZXJWaWV3SGVscGVy
LmgiCiAjaW5jbHVkZSAiSlNVaW50MzJBcnJheS5oIgogCisjaW5jbHVkZSAiSlNBcnJheUJ1ZmZl
clZpZXdIZWxwZXIuaCIKICNpbmNsdWRlICJVaW50MzJBcnJheS5oIgogCiB1c2luZyBuYW1lc3Bh
Y2UgSlNDOwpAQCAtNTQsNyArNTQsNyBAQCBKU0M6OkpTVmFsdWUgSlNVaW50MzJBcnJheTo6c2V0
KEpTQzo6RXhlY1N0YXRlKiBleGVjKQogRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBKU1Vp
bnQzMkFycmF5Q29uc3RydWN0b3I6OmNvbnN0cnVjdEpTVWludDMyQXJyYXkoRXhlY1N0YXRlKiBl
eGVjKQogewogICAgIEpTVWludDMyQXJyYXlDb25zdHJ1Y3RvcioganNDb25zdHJ1Y3RvciA9IHN0
YXRpY19jYXN0PEpTVWludDMyQXJyYXlDb25zdHJ1Y3Rvcio+KGV4ZWMtPmNhbGxlZSgpKTsKLSAg
ICBSZWZQdHI8VWludDMyQXJyYXk+IGFycmF5ID0gc3RhdGljX2Nhc3Q8VWludDMyQXJyYXkqPihj
b25zdHJ1Y3RBcnJheUJ1ZmZlclZpZXc8VWludDMyQXJyYXksIHVuc2lnbmVkIGludD4oZXhlYyku
Z2V0KCkpOworICAgIFJlZlB0cjxVaW50MzJBcnJheT4gYXJyYXkgPSBjb25zdHJ1Y3RBcnJheUJ1
ZmZlclZpZXc8VWludDMyQXJyYXksIHVuc2lnbmVkIGludD4oZXhlYyk7CiAgICAgaWYgKCFhcnJh
eS5nZXQoKSkKICAgICAgICAgLy8gRXhjZXB0aW9uIGhhcyBhbHJlYWR5IGJlZW4gdGhyb3duLgog
ICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKEpTVmFsdWUoKSk7CmRpZmYgLS1naXQgYS9X
ZWJDb3JlL2JpbmRpbmdzL2pzL0pTVWludDhBcnJheUN1c3RvbS5jcHAgYi9XZWJDb3JlL2JpbmRp
bmdzL2pzL0pTVWludDhBcnJheUN1c3RvbS5jcHAKaW5kZXggYWRmNjBhOS4uYTllZDczZiAxMDA2
NDQKLS0tIGEvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1VpbnQ4QXJyYXlDdXN0b20uY3BwCisrKyBi
L1dlYkNvcmUvYmluZGluZ3MvanMvSlNVaW50OEFycmF5Q3VzdG9tLmNwcApAQCAtMjcsOSArMjcs
OSBAQAogCiAjaWYgRU5BQkxFKDNEX0NBTlZBUykgfHwgRU5BQkxFKEJMT0IpCiAKLSNpbmNsdWRl
ICJKU0FycmF5QnVmZmVyVmlld0hlbHBlci5oIgogI2luY2x1ZGUgIkpTVWludDhBcnJheS5oIgog
CisjaW5jbHVkZSAiSlNBcnJheUJ1ZmZlclZpZXdIZWxwZXIuaCIKICNpbmNsdWRlICJVaW50OEFy
cmF5LmgiCiAKIHVzaW5nIG5hbWVzcGFjZSBKU0M7CkBAIC01NCw3ICs1NCw3IEBAIEpTQzo6SlNW
YWx1ZSBKU1VpbnQ4QXJyYXk6OnNldChKU0M6OkV4ZWNTdGF0ZSogZXhlYykKIEVuY29kZWRKU1Zh
bHVlIEpTQ19IT1NUX0NBTEwgSlNVaW50OEFycmF5Q29uc3RydWN0b3I6OmNvbnN0cnVjdEpTVWlu
dDhBcnJheShFeGVjU3RhdGUqIGV4ZWMpCiB7CiAgICAgSlNVaW50OEFycmF5Q29uc3RydWN0b3Iq
IGpzQ29uc3RydWN0b3IgPSBzdGF0aWNfY2FzdDxKU1VpbnQ4QXJyYXlDb25zdHJ1Y3Rvcio+KGV4
ZWMtPmNhbGxlZSgpKTsKLSAgICBSZWZQdHI8VWludDhBcnJheT4gYXJyYXkgPSBzdGF0aWNfY2Fz
dDxVaW50OEFycmF5Kj4oY29uc3RydWN0QXJyYXlCdWZmZXJWaWV3PFVpbnQ4QXJyYXksIHVuc2ln
bmVkIGNoYXI+KGV4ZWMpLmdldCgpKTsKKyAgICBSZWZQdHI8VWludDhBcnJheT4gYXJyYXkgPSBj
b25zdHJ1Y3RBcnJheUJ1ZmZlclZpZXc8VWludDhBcnJheSwgdW5zaWduZWQgY2hhcj4oZXhlYyk7
CiAgICAgaWYgKCFhcnJheS5nZXQoKSkKICAgICAgICAgLy8gRXhjZXB0aW9uIGhhcyBhbHJlYWR5
IGJlZW4gdGhyb3duLgogICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKEpTVmFsdWUoKSk7
CmRpZmYgLS1naXQgYS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOEFycmF5QnVmZmVyVmll
d0N1c3RvbS5oIGIvV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhBcnJheUJ1ZmZlclZpZXdD
dXN0b20uaAppbmRleCAyNTY2YjY3Li42ODgxYTAxIDEwMDY0NAotLS0gYS9XZWJDb3JlL2JpbmRp
bmdzL3Y4L2N1c3RvbS9WOEFycmF5QnVmZmVyVmlld0N1c3RvbS5oCisrKyBiL1dlYkNvcmUvYmlu
ZGluZ3MvdjgvY3VzdG9tL1Y4QXJyYXlCdWZmZXJWaWV3Q3VzdG9tLmgKQEAgLTI4LDI3ICsyOCw2
NCBAQAogICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KICAqLwogCi0jaW5jbHVkZSAiY29uZmlnLmgiCisjaWZuZGVm
IFY4QXJyYXlCdWZmZXJWaWV3Q3VzdG9tX2gKKyNkZWZpbmUgVjhBcnJheUJ1ZmZlclZpZXdDdXN0
b21faAogCiAjaWYgRU5BQkxFKDNEX0NBTlZBUykgfHwgRU5BQkxFKEJMT0IpCiAKICNpbmNsdWRl
ICJBcnJheUJ1ZmZlci5oIgogCi0jaW5jbHVkZSAiVjhCaW5kaW5nLmgiCiAjaW5jbHVkZSAiVjhB
cnJheUJ1ZmZlci5oIgorI2luY2x1ZGUgIlY4QmluZGluZy5oIgogI2luY2x1ZGUgIlY4UHJveHku
aCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCiAvLyBUZW1wbGF0ZSBmdW5jdGlvbiB1c2VkIGJ5
IHRoZSBBcnJheUJ1ZmZlclZpZXcqQ29uc3RydWN0b3IgY2FsbGJhY2tzLgogdGVtcGxhdGU8Y2xh
c3MgQXJyYXlDbGFzcywgY2xhc3MgRWxlbWVudFR5cGU+Cit2ODo6SGFuZGxlPHY4OjpWYWx1ZT4g
Y29uc3RydWN0V2ViR0xBcnJheVdpdGhBcnJheUJ1ZmZlckFyZ3VtZW50KGNvbnN0IHY4OjpBcmd1
bWVudHMmIGFyZ3MsIFdyYXBwZXJUeXBlSW5mbyogdHlwZSwgdjg6OkV4dGVybmFsQXJyYXlUeXBl
IGFycmF5VHlwZSwgYm9vbCBoYXNJbmRleGVyKQoreworICAgIEFycmF5QnVmZmVyKiBidWYgPSBW
OEFycmF5QnVmZmVyOjp0b05hdGl2ZShhcmdzWzBdLT5Ub09iamVjdCgpKTsKKyAgICBpZiAoIWJ1
ZikKKyAgICAgICAgcmV0dXJuIHRocm93RXJyb3IoIkNvdWxkIG5vdCBjb252ZXJ0IGFyZ3VtZW50
IDAgdG8gYSBBcnJheUJ1ZmZlciIpOworICAgIGJvb2wgb2s7CisgICAgdWludDMyX3Qgb2Zmc2V0
ID0gMDsKKyAgICBpbnQgYXJnTGVuID0gYXJncy5MZW5ndGgoKTsKKyAgICBpZiAoYXJnTGVuID4g
MSkgeworICAgICAgICBvZmZzZXQgPSB0b1VJbnQzMihhcmdzWzFdLCBvayk7CisgICAgICAgIGlm
ICghb2spCisgICAgICAgICAgICByZXR1cm4gdGhyb3dFcnJvcigiQ291bGQgbm90IGNvbnZlcnQg
YXJndW1lbnQgMSB0byBhIG51bWJlciIpOworICAgIH0KKyAgICBpZiAoKGJ1Zi0+Ynl0ZUxlbmd0
aCgpIC0gb2Zmc2V0KSAlIHNpemVvZihFbGVtZW50VHlwZSkpCisgICAgICAgIHJldHVybiB0aHJv
d0Vycm9yKCJBcnJheUJ1ZmZlciBsZW5ndGggbWludXMgdGhlIGJ5dGVPZmZzZXQgaXMgbm90IGEg
bXVsdGlwbGUgb2YgdGhlIGVsZW1lbnQgc2l6ZS4iLCBWOFByb3h5OjpSYW5nZUVycm9yKTsKKyAg
ICB1aW50MzJfdCBsZW5ndGggPSAoYnVmLT5ieXRlTGVuZ3RoKCkgLSBvZmZzZXQpIC8gc2l6ZW9m
KEVsZW1lbnRUeXBlKTsKKyAgICBpZiAoYXJnTGVuID4gMikgeworICAgICAgICBsZW5ndGggPSB0
b1VJbnQzMihhcmdzWzJdLCBvayk7CisgICAgICAgIGlmICghb2spCisgICAgICAgICAgICByZXR1
cm4gdGhyb3dFcnJvcigiQ291bGQgbm90IGNvbnZlcnQgYXJndW1lbnQgMiB0byBhIG51bWJlciIp
OworICAgIH0KKworICAgIFJlZlB0cjxBcnJheUNsYXNzPiBhcnJheSA9IEFycmF5Q2xhc3M6OmNy
ZWF0ZShidWYsIG9mZnNldCwgbGVuZ3RoKTsKKyAgICBpZiAoIWFycmF5KSB7CisgICAgICAgIFY4
UHJveHk6OnNldERPTUV4Y2VwdGlvbihJTkRFWF9TSVpFX0VSUik7CisgICAgICAgIHJldHVybiBu
b3RIYW5kbGVkQnlJbnRlcmNlcHRvcigpOworICAgIH0KKyAgICAvLyBUcmFuc2Zvcm0gdGhlIGhv
bGRlciBpbnRvIGEgd3JhcHBlciBvYmplY3QgZm9yIHRoZSBhcnJheS4KKyAgICBWOERPTVdyYXBw
ZXI6OnNldERPTVdyYXBwZXIoYXJncy5Ib2xkZXIoKSwgdHlwZSwgYXJyYXkuZ2V0KCkpOworICAg
IGlmIChoYXNJbmRleGVyKQorICAgICAgICBhcmdzLkhvbGRlcigpLT5TZXRJbmRleGVkUHJvcGVy
dGllc1RvRXh0ZXJuYWxBcnJheURhdGEoYXJyYXkuZ2V0KCktPmJhc2VBZGRyZXNzKCksIGFycmF5
VHlwZSwgYXJyYXkuZ2V0KCktPmxlbmd0aCgpKTsKKyAgICByZXR1cm4gdG9WOChhcnJheS5yZWxl
YXNlKCksIGFyZ3MuSG9sZGVyKCkpOworfQorCisvLyBUZW1wbGF0ZSBmdW5jdGlvbiB1c2VkIGJ5
IHRoZSBBcnJheUJ1ZmZlclZpZXcqQ29uc3RydWN0b3IgY2FsbGJhY2tzLgordGVtcGxhdGU8Y2xh
c3MgQXJyYXlDbGFzcywgY2xhc3MgRWxlbWVudFR5cGU+CiB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4g
Y29uc3RydWN0V2ViR0xBcnJheShjb25zdCB2ODo6QXJndW1lbnRzJiBhcmdzLCBXcmFwcGVyVHlw
ZUluZm8qIHR5cGUsIHY4OjpFeHRlcm5hbEFycmF5VHlwZSBhcnJheVR5cGUpCiB7CiAgICAgaWYg
KCFhcmdzLklzQ29uc3RydWN0Q2FsbCgpKQogICAgICAgICByZXR1cm4gdGhyb3dFcnJvcigiRE9N
IG9iamVjdCBjb25zdHJ1Y3RvciBjYW5ub3QgYmUgY2FsbGVkIGFzIGEgZnVuY3Rpb24uIik7CiAK
ICAgICBpbnQgYXJnTGVuID0gYXJncy5MZW5ndGgoKTsKLSAgICBpZiAoYXJnTGVuID09IDApIHsK
KyAgICBpZiAoIWFyZ0xlbikgewogICAgICAgICAvLyBUaGlzIGhhcHBlbnMgd2hlbiB3ZSByZXR1
cm4gYSBwcmV2aW91c2x5IGNvbnN0cnVjdGVkCiAgICAgICAgIC8vIEFycmF5QnVmZmVyVmlldywg
ZS5nLiBmcm9tIHRoZSBjYWxsIHRvIDxUeXBlPkFycmF5LnNsaWNlKCkuCiAgICAgICAgIC8vIFRo
ZSBWOERPTVdyYXBwZXIgd2lsbCBzZXQgdGhlIGludGVybmFsIHBvaW50ZXIgaW4gdGhlCkBAIC04
MywzNiArMTIwLDggQEAgdjg6OkhhbmRsZTx2ODo6VmFsdWU+IGNvbnN0cnVjdFdlYkdMQXJyYXko
Y29uc3Qgdjg6OkFyZ3VtZW50cyYgYXJncywgV3JhcHBlclR5cGUKICAgICB9CiAKICAgICAvLyBT
ZWUgd2hldGhlciB0aGUgZmlyc3QgYXJndW1lbnQgaXMgYSBBcnJheUJ1ZmZlci4KLSAgICBpZiAo
VjhBcnJheUJ1ZmZlcjo6SGFzSW5zdGFuY2UoYXJnc1swXSkpIHsKLSAgICAgICAgQXJyYXlCdWZm
ZXIqIGJ1ZiA9IFY4QXJyYXlCdWZmZXI6OnRvTmF0aXZlKGFyZ3NbMF0tPlRvT2JqZWN0KCkpOwot
ICAgICAgICBpZiAoIWJ1ZikKLSAgICAgICAgICAgIHJldHVybiB0aHJvd0Vycm9yKCJDb3VsZCBu
b3QgY29udmVydCBhcmd1bWVudCAwIHRvIGEgQXJyYXlCdWZmZXIiKTsKLSAgICAgICAgYm9vbCBv
azsKLSAgICAgICAgdWludDMyX3Qgb2Zmc2V0ID0gMDsKLSAgICAgICAgaWYgKGFyZ0xlbiA+IDEp
IHsKLSAgICAgICAgICAgIG9mZnNldCA9IHRvVUludDMyKGFyZ3NbMV0sIG9rKTsKLSAgICAgICAg
ICAgIGlmICghb2spCi0gICAgICAgICAgICAgICAgcmV0dXJuIHRocm93RXJyb3IoIkNvdWxkIG5v
dCBjb252ZXJ0IGFyZ3VtZW50IDEgdG8gYSBudW1iZXIiKTsKLSAgICAgICAgfQotICAgICAgICBp
ZiAoKGJ1Zi0+Ynl0ZUxlbmd0aCgpIC0gb2Zmc2V0KSAlIHNpemVvZihFbGVtZW50VHlwZSkpCi0g
ICAgICAgICAgICByZXR1cm4gdGhyb3dFcnJvcigiQXJyYXlCdWZmZXIgbGVuZ3RoIG1pbnVzIHRo
ZSBieXRlT2Zmc2V0IGlzIG5vdCBhIG11bHRpcGxlIG9mIHRoZSBlbGVtZW50IHNpemUuIiwgVjhQ
cm94eTo6UmFuZ2VFcnJvcik7Ci0gICAgICAgIHVpbnQzMl90IGxlbmd0aCA9IChidWYtPmJ5dGVM
ZW5ndGgoKSAtIG9mZnNldCkgLyBzaXplb2YoRWxlbWVudFR5cGUpOwotICAgICAgICBpZiAoYXJn
TGVuID4gMikgewotICAgICAgICAgICAgbGVuZ3RoID0gdG9VSW50MzIoYXJnc1syXSwgb2spOwot
ICAgICAgICAgICAgaWYgKCFvaykKLSAgICAgICAgICAgICAgICByZXR1cm4gdGhyb3dFcnJvcigi
Q291bGQgbm90IGNvbnZlcnQgYXJndW1lbnQgMiB0byBhIG51bWJlciIpOwotICAgICAgICB9Ci0K
LSAgICAgICAgUmVmUHRyPEFycmF5Q2xhc3M+IGFycmF5ID0gQXJyYXlDbGFzczo6Y3JlYXRlKGJ1
Ziwgb2Zmc2V0LCBsZW5ndGgpOwotICAgICAgICBpZiAoIWFycmF5KSB7Ci0gICAgICAgICAgICBW
OFByb3h5OjpzZXRET01FeGNlcHRpb24oSU5ERVhfU0laRV9FUlIpOwotICAgICAgICAgICAgcmV0
dXJuIG5vdEhhbmRsZWRCeUludGVyY2VwdG9yKCk7Ci0gICAgICAgIH0KLSAgICAgICAgLy8gVHJh
bnNmb3JtIHRoZSBob2xkZXIgaW50byBhIHdyYXBwZXIgb2JqZWN0IGZvciB0aGUgYXJyYXkuCi0g
ICAgICAgIFY4RE9NV3JhcHBlcjo6c2V0RE9NV3JhcHBlcihhcmdzLkhvbGRlcigpLCB0eXBlLCBh
cnJheS5nZXQoKSk7Ci0gICAgICAgIGFyZ3MuSG9sZGVyKCktPlNldEluZGV4ZWRQcm9wZXJ0aWVz
VG9FeHRlcm5hbEFycmF5RGF0YShhcnJheS5nZXQoKS0+YmFzZUFkZHJlc3MoKSwgYXJyYXlUeXBl
LCBhcnJheS5nZXQoKS0+bGVuZ3RoKCkpOwotICAgICAgICByZXR1cm4gdG9WOChhcnJheS5yZWxl
YXNlKCksIGFyZ3MuSG9sZGVyKCkpOwotICAgIH0KKyAgICBpZiAoVjhBcnJheUJ1ZmZlcjo6SGFz
SW5zdGFuY2UoYXJnc1swXSkpCisgICAgICByZXR1cm4gY29uc3RydWN0V2ViR0xBcnJheVdpdGhB
cnJheUJ1ZmZlckFyZ3VtZW50PEFycmF5Q2xhc3MsIEVsZW1lbnRUeXBlPihhcmdzLCB0eXBlLCBh
cnJheVR5cGUsIHRydWUpOwogCiAgICAgdWludDMyX3QgbGVuID0gMDsKICAgICB2ODo6SGFuZGxl
PHY4OjpPYmplY3Q+IHNyY0FycmF5OwpAQCAtMjAxLDMgKzIxMCw1IEBAIHY4OjpIYW5kbGU8djg6
OlZhbHVlPiBzZXRXZWJHTEFycmF5SGVscGVyKGNvbnN0IHY4OjpBcmd1bWVudHMmIGFyZ3MpCiB9
CiAKICNlbmRpZiAvLyBFTkFCTEUoM0RfQ0FOVkFTKQorCisjZW5kaWYgLy8gVjhBcnJheUJ1ZmZl
clZpZXdDdXN0b21faApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhE
YXRhVmlld0N1c3RvbS5jcHAgYi9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOERhdGFWaWV3
Q3VzdG9tLmNwcApuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi40NGU5YzRhCi0t
LSAvZGV2L251bGwKKysrIGIvV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhEYXRhVmlld0N1
c3RvbS5jcHAKQEAgLTAsMCArMSwxNTIgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgR29v
Z2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucworICogYXJlIG1ldDoKKyAqCisgKiAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiAg
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIEFORCBJVFMgQ09OVFJJQlVUT1JTICJB
UyBJUyIgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAorICogV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQorICog
RElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgT1IgSVRTIENPTlRSSUJVVE9SUyBC
RSBMSUFCTEUgRk9SIEFOWQorICogRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lB
TCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMKKyAqIChJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsKKyAqIExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORAorICogT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRSBPRgorICogVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisK
KyNpZiBFTkFCTEUoM0RfQ0FOVkFTKSB8fCBFTkFCTEUoQkxPQikKKworI2luY2x1ZGUgIkRhdGFW
aWV3LmgiCisKKyNpbmNsdWRlICJWOEFycmF5QnVmZmVyVmlld0N1c3RvbS5oIgorI2luY2x1ZGUg
IlY4QmluZGluZy5oIgorI2luY2x1ZGUgIlY4QmluZGluZ01hY3Jvcy5oIgorI2luY2x1ZGUgIlY4
RGF0YVZpZXcuaCIKKyNpbmNsdWRlICJWOFByb3h5LmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsK
Kwordjg6OkhhbmRsZTx2ODo6VmFsdWU+IFY4RGF0YVZpZXc6OmNvbnN0cnVjdG9yQ2FsbGJhY2so
Y29uc3Qgdjg6OkFyZ3VtZW50cyYgYXJncykKK3sKKyAgICBJTkNfU1RBVFMoIkRPTS5BcnJheUJ1
ZmZlci5Db25zdHJ1Y3RvciIpOworCisgICAgaWYgKGFyZ3NbMF0tPklzTnVsbCgpIHx8ICFWOEFy
cmF5QnVmZmVyOjpIYXNJbnN0YW5jZShhcmdzWzBdKSkKKyAgICAgICAgcmV0dXJuIFY4UHJveHk6
OnRocm93VHlwZUVycm9yKCk7CisgICAgcmV0dXJuIGNvbnN0cnVjdFdlYkdMQXJyYXlXaXRoQXJy
YXlCdWZmZXJBcmd1bWVudDxEYXRhVmlldywgY2hhcj4oYXJncywgJmluZm8sIHY4OjprRXh0ZXJu
YWxCeXRlQXJyYXksIGZhbHNlKTsKK30KKwordjg6OkhhbmRsZTx2ODo6VmFsdWU+IHRvVjgoRGF0
YVZpZXcqIGltcGwpCit7CisgICAgaWYgKCFpbXBsKQorICAgICAgICByZXR1cm4gdjg6Ok51bGwo
KTsKKyAgICByZXR1cm4gVjhEYXRhVmlldzo6d3JhcChpbXBsKTsKK30KKwordjg6OkhhbmRsZTx2
ODo6VmFsdWU+IFY4RGF0YVZpZXc6OmdldEludDhDYWxsYmFjayhjb25zdCB2ODo6QXJndW1lbnRz
JiBhcmdzKQoreworICAgIElOQ19TVEFUUygiRE9NLkRhdGFWaWV3LmdldEludDgiKTsKKyAgICBp
ZiAoYXJncy5MZW5ndGgoKSA8IDEpCisgICAgICAgIHJldHVybiB0aHJvd0Vycm9yKCJOb3QgZW5v
dWdoIGFyZ3VtZW50cyIsIFY4UHJveHk6OlN5bnRheEVycm9yKTsKKyAgICBpZiAoIWlzVW5kZWZp
bmVkT3JOdWxsKGFyZ3NbMF0pICYmICFhcmdzWzBdLT5Jc051bWJlcigpICYmICFhcmdzWzBdLT5J
c0Jvb2xlYW4oKSkgeworICAgICAgICBWOFByb3h5Ojp0aHJvd1R5cGVFcnJvcigpOworICAgICAg
ICByZXR1cm4gbm90SGFuZGxlZEJ5SW50ZXJjZXB0b3IoKTsKKyAgICB9CisKKyAgICBEYXRhVmll
dyogaW1wID0gVjhEYXRhVmlldzo6dG9OYXRpdmUoYXJncy5Ib2xkZXIoKSk7CisgICAgRXhjZXB0
aW9uQ29kZSBlYyA9IDA7CisgICAgRVhDRVBUSU9OX0JMT0NLKHVuc2lnbmVkLCBieXRlT2Zmc2V0
LCB0b1VJbnQzMihhcmdzWzBdKSk7CisgICAgY2hhciByZXN1bHQgPSBpbXAtPmdldEludDgoYnl0
ZU9mZnNldCwgZWMpOworICAgIGlmIChVTkxJS0VMWShlYykpIHsKKyAgICAgICAgVjhQcm94eTo6
c2V0RE9NRXhjZXB0aW9uKGVjKTsKKyAgICAgICAgcmV0dXJuIHY4OjpIYW5kbGU8djg6OlZhbHVl
PigpOworICAgIH0KKyAgICByZXR1cm4gdjg6OkludGVnZXI6Ok5ldyhyZXN1bHQpOworfQorCit2
ODo6SGFuZGxlPHY4OjpWYWx1ZT4gVjhEYXRhVmlldzo6Z2V0VWludDhDYWxsYmFjayhjb25zdCB2
ODo6QXJndW1lbnRzJiBhcmdzKQoreworICAgIElOQ19TVEFUUygiRE9NLkRhdGFWaWV3LmdldFVp
bnQ4Iik7CisgICAgaWYgKGFyZ3MuTGVuZ3RoKCkgPCAxKQorICAgICAgICByZXR1cm4gdGhyb3dF
cnJvcigiTm90IGVub3VnaCBhcmd1bWVudHMiLCBWOFByb3h5OjpTeW50YXhFcnJvcik7CisgICAg
aWYgKCFpc1VuZGVmaW5lZE9yTnVsbChhcmdzWzBdKSAmJiAhYXJnc1swXS0+SXNOdW1iZXIoKSAm
JiAhYXJnc1swXS0+SXNCb29sZWFuKCkpIHsKKyAgICAgICAgVjhQcm94eTo6dGhyb3dUeXBlRXJy
b3IoKTsKKyAgICAgICAgcmV0dXJuIG5vdEhhbmRsZWRCeUludGVyY2VwdG9yKCk7CisgICAgfQor
CisgICAgRGF0YVZpZXcqIGltcCA9IFY4RGF0YVZpZXc6OnRvTmF0aXZlKGFyZ3MuSG9sZGVyKCkp
OworICAgIEV4Y2VwdGlvbkNvZGUgZWMgPSAwOworICAgIEVYQ0VQVElPTl9CTE9DSyh1bnNpZ25l
ZCwgYnl0ZU9mZnNldCwgdG9VSW50MzIoYXJnc1swXSkpOworICAgIHVuc2lnbmVkIGNoYXIgcmVz
dWx0ID0gaW1wLT5nZXRVaW50OChieXRlT2Zmc2V0LCBlYyk7CisgICAgaWYgKFVOTElLRUxZKGVj
KSkgeworICAgICAgICBWOFByb3h5OjpzZXRET01FeGNlcHRpb24oZWMpOworICAgICAgICByZXR1
cm4gdjg6OkhhbmRsZTx2ODo6VmFsdWU+KCk7CisgICAgfQorICAgIHJldHVybiB2ODo6SW50ZWdl
cjo6TmV3KHJlc3VsdCk7Cit9CisKK3Y4OjpIYW5kbGU8djg6OlZhbHVlPiBWOERhdGFWaWV3Ojpz
ZXRJbnQ4Q2FsbGJhY2soY29uc3Qgdjg6OkFyZ3VtZW50cyYgYXJncykKK3sKKyAgICBJTkNfU1RB
VFMoIkRPTS5EYXRhVmlldy5zZXRJbnQ4Iik7CisgICAgaWYgKGFyZ3MuTGVuZ3RoKCkgPCAyKQor
ICAgICAgICByZXR1cm4gdGhyb3dFcnJvcigiTm90IGVub3VnaCBhcmd1bWVudHMiLCBWOFByb3h5
OjpTeW50YXhFcnJvcik7CisgICAgaWYgKCFpc1VuZGVmaW5lZE9yTnVsbChhcmdzWzBdKSAmJiAh
YXJnc1swXS0+SXNOdW1iZXIoKSAmJiAhYXJnc1swXS0+SXNCb29sZWFuKCkpIHsKKyAgICAgICAg
VjhQcm94eTo6dGhyb3dUeXBlRXJyb3IoKTsKKyAgICAgICAgcmV0dXJuIG5vdEhhbmRsZWRCeUlu
dGVyY2VwdG9yKCk7CisgICAgfQorICAgIGlmICghaXNVbmRlZmluZWRPck51bGwoYXJnc1sxXSkg
JiYgIWFyZ3NbMV0tPklzTnVtYmVyKCkgJiYgIWFyZ3NbMV0tPklzQm9vbGVhbigpKSB7CisgICAg
ICAgIFY4UHJveHk6OnRocm93VHlwZUVycm9yKCk7CisgICAgICAgIHJldHVybiBub3RIYW5kbGVk
QnlJbnRlcmNlcHRvcigpOworICAgIH0KKworICAgIERhdGFWaWV3KiBpbXAgPSBWOERhdGFWaWV3
Ojp0b05hdGl2ZShhcmdzLkhvbGRlcigpKTsKKyAgICBFeGNlcHRpb25Db2RlIGVjID0gMDsKKyAg
ICBFWENFUFRJT05fQkxPQ0sodW5zaWduZWQsIGJ5dGVPZmZzZXQsIHRvVUludDMyKGFyZ3NbMF0p
KTsKKyAgICBFWENFUFRJT05fQkxPQ0soaW50LCB2YWx1ZSwgdG9JbnQzMihhcmdzWzFdKSk7Cisg
ICAgaWYgKHZhbHVlIDwgLTEyOCB8fCB2YWx1ZSA+IDEyNykKKyAgICAgICAgcmV0dXJuIHRocm93
RXJyb3IoIlRoZSB2YWx1ZSB0byBzZXQgdG8gaXMgb3V0IG9mIHJhbmdlIiwgVjhQcm94eTo6U3lu
dGF4RXJyb3IpOworICAgIGltcC0+c2V0SW50OChieXRlT2Zmc2V0LCBzdGF0aWNfY2FzdDxjaGFy
Pih2YWx1ZSksIGVjKTsKKyAgICBpZiAoVU5MSUtFTFkoZWMpKQorICAgICAgICBWOFByb3h5Ojpz
ZXRET01FeGNlcHRpb24oZWMpOworICAgIHJldHVybiB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4oKTsK
K30KKwordjg6OkhhbmRsZTx2ODo6VmFsdWU+IFY4RGF0YVZpZXc6OnNldFVpbnQ4Q2FsbGJhY2so
Y29uc3Qgdjg6OkFyZ3VtZW50cyYgYXJncykKK3sKKyAgICBJTkNfU1RBVFMoIkRPTS5EYXRhVmll
dy5zZXRVaW50OCIpOworICAgIGlmIChhcmdzLkxlbmd0aCgpIDwgMikKKyAgICAgICAgcmV0dXJu
IHRocm93RXJyb3IoIk5vdCBlbm91Z2ggYXJndW1lbnRzIiwgVjhQcm94eTo6U3ludGF4RXJyb3Ip
OworICAgIGlmICghaXNVbmRlZmluZWRPck51bGwoYXJnc1swXSkgJiYgIWFyZ3NbMF0tPklzTnVt
YmVyKCkgJiYgIWFyZ3NbMF0tPklzQm9vbGVhbigpKSB7CisgICAgICAgIFY4UHJveHk6OnRocm93
VHlwZUVycm9yKCk7CisgICAgICAgIHJldHVybiBub3RIYW5kbGVkQnlJbnRlcmNlcHRvcigpOwor
ICAgIH0KKyAgICBpZiAoIWlzVW5kZWZpbmVkT3JOdWxsKGFyZ3NbMV0pICYmICFhcmdzWzFdLT5J
c051bWJlcigpICYmICFhcmdzWzFdLT5Jc0Jvb2xlYW4oKSkgeworICAgICAgICBWOFByb3h5Ojp0
aHJvd1R5cGVFcnJvcigpOworICAgICAgICByZXR1cm4gbm90SGFuZGxlZEJ5SW50ZXJjZXB0b3Io
KTsKKyAgICB9CisKKyAgICBEYXRhVmlldyogaW1wID0gVjhEYXRhVmlldzo6dG9OYXRpdmUoYXJn
cy5Ib2xkZXIoKSk7CisgICAgRXhjZXB0aW9uQ29kZSBlYyA9IDA7CisgICAgRVhDRVBUSU9OX0JM
T0NLKHVuc2lnbmVkLCBieXRlT2Zmc2V0LCB0b1VJbnQzMihhcmdzWzBdKSk7CisgICAgRVhDRVBU
SU9OX0JMT0NLKGludCwgdmFsdWUsIHRvSW50MzIoYXJnc1sxXSkpOworICAgIGlmICh2YWx1ZSA8
IDAgfHwgdmFsdWUgPiAyNTUpCisgICAgICAgIHJldHVybiB0aHJvd0Vycm9yKCJUaGUgdmFsdWUg
dG8gc2V0IHRvIGlzIG91dCBvZiByYW5nZSIsIFY4UHJveHk6OlN5bnRheEVycm9yKTsKKyAgICBp
bXAtPnNldFVpbnQ4KGJ5dGVPZmZzZXQsIHN0YXRpY19jYXN0PHVuc2lnbmVkIGNoYXI+KHZhbHVl
KSwgZWMpOworICAgIGlmIChVTkxJS0VMWShlYykpCisgICAgICAgIFY4UHJveHk6OnNldERPTUV4
Y2VwdGlvbihlYyk7CisgICAgcmV0dXJuIHY4OjpIYW5kbGU8djg6OlZhbHVlPigpOworfQorCit9
IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBFTkFCTEUoM0RfQ0FOVkFTKSB8fCBF
TkFCTEUoQkxPQikKZGlmZiAtLWdpdCBhL1dlYkNvcmUvaHRtbC9jYW52YXMvQXJyYXlCdWZmZXJW
aWV3LmggYi9XZWJDb3JlL2h0bWwvY2FudmFzL0FycmF5QnVmZmVyVmlldy5oCmluZGV4IGQzN2Jh
ZGEuLjcwMWFiYmMgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvaHRtbC9jYW52YXMvQXJyYXlCdWZmZXJW
aWV3LmgKKysrIGIvV2ViQ29yZS9odG1sL2NhbnZhcy9BcnJheUJ1ZmZlclZpZXcuaApAQCAtNDYs
NiArNDYsNyBAQCBjbGFzcyBBcnJheUJ1ZmZlclZpZXcgOiBwdWJsaWMgUmVmQ291bnRlZDxBcnJh
eUJ1ZmZlclZpZXc+IHsKICAgICB2aXJ0dWFsIGJvb2wgaXNJbnRBcnJheSgpIGNvbnN0IHsgcmV0
dXJuIGZhbHNlOyB9CiAgICAgdmlydHVhbCBib29sIGlzVW5zaWduZWRJbnRBcnJheSgpIGNvbnN0
IHsgcmV0dXJuIGZhbHNlOyB9CiAgICAgdmlydHVhbCBib29sIGlzRmxvYXRBcnJheSgpIGNvbnN0
IHsgcmV0dXJuIGZhbHNlOyB9CisgICAgdmlydHVhbCBib29sIGlzRGF0YVZpZXcoKSBjb25zdCB7
IHJldHVybiBmYWxzZTsgfQogCiAgICAgUGFzc1JlZlB0cjxBcnJheUJ1ZmZlcj4gYnVmZmVyKCkg
Y29uc3QKICAgICB7CmRpZmYgLS1naXQgYS9XZWJDb3JlL2h0bWwvY2FudmFzL0RhdGFWaWV3LmNw
cCBiL1dlYkNvcmUvaHRtbC9jYW52YXMvRGF0YVZpZXcuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNzU1
CmluZGV4IDAwMDAwMDAuLjY3MGFiMmQKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJDb3JlL2h0bWwv
Y2FudmFzL0RhdGFWaWV3LmNwcApAQCAtMCwwICsxLDIyOSBAQAorLyoKKyAqIENvcHlyaWdodCAo
QykgMjAxMCBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICoKKyAqIDEuICBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ci4KKyAqIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgICBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9u
LgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQU5EIElUUyBDT05U
UklCVVRPUlMgIkFTIElTIiBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF
UywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECisgKiBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBP
U0UgQVJFCisgKiBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBPUiBJVFMgQ09O
VFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZCisgKiBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUworICogKElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdP
T0RTIE9SIFNFUlZJQ0VTOworICogTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJV
U0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5ECisgKiBPTiBBTlkgVEhFT1JZ
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1Ig
VE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBB
TlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GCisgKiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJj
b25maWcuaCIKKworI2lmIEVOQUJMRSgzRF9DQU5WQVMpIHx8IEVOQUJMRShCTE9CKQorCisjaW5j
bHVkZSAiRGF0YVZpZXcuaCIKKworbmFtZXNwYWNlIHsKKwordGVtcGxhdGU8dHlwZW5hbWUgVD4K
K3VuaW9uIFZhbHVlCit7CisgICAgVCBkYXRhOworICAgIGNoYXIgYnl0ZXNbc2l6ZW9mKFQpXTsK
K307CisKK30KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitQYXNzUmVmUHRyPERhdGFWaWV3PiBE
YXRhVmlldzo6Y3JlYXRlKFBhc3NSZWZQdHI8QXJyYXlCdWZmZXI+IGJ1ZmZlciwgdW5zaWduZWQg
Ynl0ZU9mZnNldCwgdW5zaWduZWQgYnl0ZUxlbmd0aCkKK3sKKyAgICBpZiAoYnl0ZU9mZnNldCAr
IGJ5dGVMZW5ndGggPiBidWZmZXItPmJ5dGVMZW5ndGgoKSkKKyAgICAgICAgcmV0dXJuIDA7Cisg
ICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBEYXRhVmlldyhidWZmZXIsIGJ5dGVPZmZzZXQsIGJ5dGVM
ZW5ndGgpKTsKK30KKworRGF0YVZpZXc6OkRhdGFWaWV3KFBhc3NSZWZQdHI8QXJyYXlCdWZmZXI+
IGJ1ZmZlciwgdW5zaWduZWQgYnl0ZU9mZnNldCwgdW5zaWduZWQgYnl0ZUxlbmd0aCkKKyAgICA6
IEFycmF5QnVmZmVyVmlldyhidWZmZXIsIGJ5dGVPZmZzZXQpCisgICAgLCBtX2J5dGVMZW5ndGgo
Ynl0ZUxlbmd0aCkKK3sKK30KKworc3RhdGljIGJvb2wgbmVlZFRvRmxpcEJ5dGVzKGJvb2wgbGl0
dGxlRW5kaWFuKQoreworI2lmIENQVShCSUdfRU5ESUFOKQorICAgIHJldHVybiBsaXR0bGVFbmRp
YW47CisjZWxzZQorICAgIHJldHVybiAhbGl0dGxlRW5kaWFuOworI2VuZGlmCit9CisKK2lubGlu
ZSB2b2lkIHN3YXBCeXRlcyhjaGFyKiBwLCBjaGFyKiBxKQoreworICAgIGNoYXIgdGVtcCA9ICpw
OworICAgICpwID0gKnE7CisgICAgKnEgPSB0ZW1wOworfQorCitzdGF0aWMgdm9pZCBmbGlwQnl0
ZXNGb3IxNkJpdHMoY2hhciogcCkKK3sKKyAgICBzd2FwQnl0ZXMocCwgcCArIDEpOworfQorCitz
dGF0aWMgdm9pZCBmbGlwQnl0ZXNGb3IzMkJpdHMoY2hhciogcCkKK3sKKyAgICBzd2FwQnl0ZXMo
cCwgcCArIDMpOworICAgIHN3YXBCeXRlcyhwICsgMSwgcCArIDIpOworfQorCitzdGF0aWMgdm9p
ZCBmbGlwQnl0ZXNGb3I2NEJpdHMoY2hhciogcCkKK3sKKyAgICBzd2FwQnl0ZXMocCwgcCArIDcp
OworICAgIHN3YXBCeXRlcyhwICsgMSwgcCArIDYpOworICAgIHN3YXBCeXRlcyhwICsgMiwgcCAr
IDUpOworICAgIHN3YXBCeXRlcyhwICsgMywgcCArIDQpOworfQorCitzdGF0aWMgdm9pZCBmbGlw
Qnl0ZXNJZk5lZWRlZChjaGFyKiB2YWx1ZSwgc2l6ZV90IHNpemUsIGJvb2wgbGl0dGxlRW5kaWFu
KQoreworICAgIGlmICghbmVlZFRvRmxpcEJ5dGVzKGxpdHRsZUVuZGlhbikpCisgICAgICAgIHJl
dHVybjsKKworICAgIHN3aXRjaCAoc2l6ZSkgeworICAgIGNhc2UgMToKKyAgICAgICAgLy8gTm90
aGluZyB0byBkby4KKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSAyOgorICAgICAgICBmbGlwQnl0
ZXNGb3IxNkJpdHModmFsdWUpOworICAgICAgICBicmVhazsKKyAgICBjYXNlIDQ6CisgICAgICAg
IGZsaXBCeXRlc0ZvcjMyQml0cyh2YWx1ZSk7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgODoK
KyAgICAgICAgZmxpcEJ5dGVzRm9yNjRCaXRzKHZhbHVlKTsKKyAgICAgICAgYnJlYWs7CisgICAg
ZGVmYXVsdDoKKyAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgICAgIGJyZWFrOwor
ICAgIH0KK30KKwordGVtcGxhdGU8dHlwZW5hbWUgVD4KK1QgRGF0YVZpZXc6OmdldERhdGEodW5z
aWduZWQgYnl0ZU9mZnNldCwgYm9vbCBsaXR0bGVFbmRpYW4sIEV4Y2VwdGlvbkNvZGUmIGVjKSBj
b25zdAoreworICAgIGlmIChiZXlvbmRSYW5nZTxUPihieXRlT2Zmc2V0KSkgeworICAgICAgICBl
YyA9IElOREVYX1NJWkVfRVJSOworICAgICAgICByZXR1cm4gMDsKKyAgICB9CisKKyAgICAvLyBX
ZSBkbyBub3Qgd2FudCB0byBsb2FkIHRoZSBkYXRhIGRpcmVjdGx5IHNpbmNlIGl0IHdvdWxkIGNh
dXNlIGEgYnVzIGVycm9yIG9uIGFyY2hpdGVjdHVyZXMgdGhhdCBkb24ndCBzdXBwb3J0IHVuYWxp
Z25lZCBsb2Fkcy4KKyAgICBWYWx1ZTxUPiB2YWx1ZTsKKyAgICBtZW1jcHkodmFsdWUuYnl0ZXMs
IHN0YXRpY19jYXN0PGNvbnN0IGNoYXIqPihtX2Jhc2VBZGRyZXNzKSArIGJ5dGVPZmZzZXQsIHNp
emVvZihUKSk7CisgICAgZmxpcEJ5dGVzSWZOZWVkZWQodmFsdWUuYnl0ZXMsIHNpemVvZihUKSwg
bGl0dGxlRW5kaWFuKTsKKyAgICByZXR1cm4gdmFsdWUuZGF0YTsKK30KKwordGVtcGxhdGU8dHlw
ZW5hbWUgVD4KK3ZvaWQgRGF0YVZpZXc6OnNldERhdGEodW5zaWduZWQgYnl0ZU9mZnNldCwgVCB2
YWx1ZSwgYm9vbCBsaXR0bGVFbmRpYW4sIEV4Y2VwdGlvbkNvZGUmIGVjKQoreworICAgIGlmIChi
ZXlvbmRSYW5nZTxUPihieXRlT2Zmc2V0KSkgeworICAgICAgICBlYyA9IElOREVYX1NJWkVfRVJS
OworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgLy8gV2UgZG8gbm90IHdhbnQgdG8gc3Rv
cmUgdGhlIGRhdGEgZGlyZWN0bHkgc2luY2UgaXQgd291bGQgY2F1c2UgYSBidXMgZXJyb3Igb24g
YXJjaGl0ZWN0dXJlcyB0aGF0IGRvbid0IHN1cHBvcnQgdW5hbGlnbmVkIHN0b3Jlcy4KKyAgICBW
YWx1ZTxUPiB0ZW1wVmFsdWU7CisgICAgdGVtcFZhbHVlLmRhdGEgPSB2YWx1ZTsKKyAgICBmbGlw
Qnl0ZXNJZk5lZWRlZCh0ZW1wVmFsdWUuYnl0ZXMsIHNpemVvZihUKSwgbGl0dGxlRW5kaWFuKTsK
KyAgICBtZW1jcHkoc3RhdGljX2Nhc3Q8Y2hhcio+KG1fYmFzZUFkZHJlc3MpICsgYnl0ZU9mZnNl
dCwgdGVtcFZhbHVlLmJ5dGVzLCBzaXplb2YoVCkpOworfQorCitjaGFyIERhdGFWaWV3OjpnZXRJ
bnQ4KHVuc2lnbmVkIGJ5dGVPZmZzZXQsIEV4Y2VwdGlvbkNvZGUmIGVjKQoreworICAgIHJldHVy
biBnZXREYXRhPGNoYXI+KGJ5dGVPZmZzZXQsIGZhbHNlLCBlYyk7Cit9CisKK3Vuc2lnbmVkIGNo
YXIgRGF0YVZpZXc6OmdldFVpbnQ4KHVuc2lnbmVkIGJ5dGVPZmZzZXQsIEV4Y2VwdGlvbkNvZGUm
IGVjKQoreworICAgIHJldHVybiBnZXREYXRhPHVuc2lnbmVkIGNoYXI+KGJ5dGVPZmZzZXQsIGZh
bHNlLCBlYyk7Cit9CisKK3Nob3J0IERhdGFWaWV3OjpnZXRJbnQxNih1bnNpZ25lZCBieXRlT2Zm
c2V0LCBib29sIGxpdHRsZUVuZGlhbiwgRXhjZXB0aW9uQ29kZSYgZWMpCit7CisgICAgcmV0dXJu
IGdldERhdGE8c2hvcnQ+KGJ5dGVPZmZzZXQsIGxpdHRsZUVuZGlhbiwgZWMpOworfQorCit1bnNp
Z25lZCBzaG9ydCBEYXRhVmlldzo6Z2V0VWludDE2KHVuc2lnbmVkIGJ5dGVPZmZzZXQsIGJvb2wg
bGl0dGxlRW5kaWFuLCBFeGNlcHRpb25Db2RlJiBlYykKK3sKKyAgICByZXR1cm4gZ2V0RGF0YTx1
bnNpZ25lZCBzaG9ydD4oYnl0ZU9mZnNldCwgbGl0dGxlRW5kaWFuLCBlYyk7Cit9CisKK2ludCBE
YXRhVmlldzo6Z2V0SW50MzIodW5zaWduZWQgYnl0ZU9mZnNldCwgYm9vbCBsaXR0bGVFbmRpYW4s
IEV4Y2VwdGlvbkNvZGUmIGVjKQoreworICAgIHJldHVybiBnZXREYXRhPGludD4oYnl0ZU9mZnNl
dCwgbGl0dGxlRW5kaWFuLCBlYyk7Cit9CisKK3Vuc2lnbmVkIERhdGFWaWV3OjpnZXRVaW50MzIo
dW5zaWduZWQgYnl0ZU9mZnNldCwgYm9vbCBsaXR0bGVFbmRpYW4sIEV4Y2VwdGlvbkNvZGUmIGVj
KQoreworICAgIHJldHVybiBnZXREYXRhPHVuc2lnbmVkPihieXRlT2Zmc2V0LCBsaXR0bGVFbmRp
YW4sIGVjKTsKK30KKworZmxvYXQgRGF0YVZpZXc6OmdldEZsb2F0MzIodW5zaWduZWQgYnl0ZU9m
ZnNldCwgYm9vbCBsaXR0bGVFbmRpYW4sIEV4Y2VwdGlvbkNvZGUmIGVjKQoreworICAgIHJldHVy
biBnZXREYXRhPGZsb2F0PihieXRlT2Zmc2V0LCBsaXR0bGVFbmRpYW4sIGVjKTsKK30KKworZG91
YmxlIERhdGFWaWV3OjpnZXRGbG9hdDY0KHVuc2lnbmVkIGJ5dGVPZmZzZXQsIGJvb2wgbGl0dGxl
RW5kaWFuLCBFeGNlcHRpb25Db2RlJiBlYykKK3sKKyAgICByZXR1cm4gZ2V0RGF0YTxkb3VibGU+
KGJ5dGVPZmZzZXQsIGxpdHRsZUVuZGlhbiwgZWMpOworfQorCit2b2lkIERhdGFWaWV3OjpzZXRJ
bnQ4KHVuc2lnbmVkIGJ5dGVPZmZzZXQsIGNoYXIgdmFsdWUsIEV4Y2VwdGlvbkNvZGUmIGVjKQor
eworICAgIHNldERhdGE8Y2hhcj4oYnl0ZU9mZnNldCwgdmFsdWUsIGZhbHNlLCBlYyk7Cit9CisK
K3ZvaWQgRGF0YVZpZXc6OnNldFVpbnQ4KHVuc2lnbmVkIGJ5dGVPZmZzZXQsIHVuc2lnbmVkIGNo
YXIgdmFsdWUsIEV4Y2VwdGlvbkNvZGUmIGVjKQoreworICAgIHNldERhdGE8dW5zaWduZWQgY2hh
cj4oYnl0ZU9mZnNldCwgdmFsdWUsIGZhbHNlLCBlYyk7Cit9CisKK3ZvaWQgRGF0YVZpZXc6OnNl
dEludDE2KHVuc2lnbmVkIGJ5dGVPZmZzZXQsIHNob3J0IHZhbHVlLCBib29sIGxpdHRsZUVuZGlh
biwgRXhjZXB0aW9uQ29kZSYgZWMpCit7CisgICAgc2V0RGF0YTxzaG9ydD4oYnl0ZU9mZnNldCwg
dmFsdWUsIGxpdHRsZUVuZGlhbiwgZWMpOworfQorCit2b2lkIERhdGFWaWV3OjpzZXRVaW50MTYo
dW5zaWduZWQgYnl0ZU9mZnNldCwgdW5zaWduZWQgc2hvcnQgdmFsdWUsIGJvb2wgbGl0dGxlRW5k
aWFuLCBFeGNlcHRpb25Db2RlJiBlYykKK3sKKyAgICBzZXREYXRhPHVuc2lnbmVkIHNob3J0Pihi
eXRlT2Zmc2V0LCB2YWx1ZSwgbGl0dGxlRW5kaWFuLCBlYyk7Cit9CisKK3ZvaWQgRGF0YVZpZXc6
OnNldEludDMyKHVuc2lnbmVkIGJ5dGVPZmZzZXQsIGludCB2YWx1ZSwgYm9vbCBsaXR0bGVFbmRp
YW4sIEV4Y2VwdGlvbkNvZGUmIGVjKQoreworICAgIHNldERhdGE8aW50PihieXRlT2Zmc2V0LCB2
YWx1ZSwgbGl0dGxlRW5kaWFuLCBlYyk7Cit9CisKK3ZvaWQgRGF0YVZpZXc6OnNldFVpbnQzMih1
bnNpZ25lZCBieXRlT2Zmc2V0LCB1bnNpZ25lZCB2YWx1ZSwgYm9vbCBsaXR0bGVFbmRpYW4sIEV4
Y2VwdGlvbkNvZGUmIGVjKQoreworICAgIHNldERhdGE8dW5zaWduZWQ+KGJ5dGVPZmZzZXQsIHZh
bHVlLCBsaXR0bGVFbmRpYW4sIGVjKTsKK30KKwordm9pZCBEYXRhVmlldzo6c2V0RmxvYXQzMih1
bnNpZ25lZCBieXRlT2Zmc2V0LCBmbG9hdCB2YWx1ZSwgYm9vbCBsaXR0bGVFbmRpYW4sIEV4Y2Vw
dGlvbkNvZGUmIGVjKQoreworICAgIHNldERhdGE8ZmxvYXQ+KGJ5dGVPZmZzZXQsIHZhbHVlLCBs
aXR0bGVFbmRpYW4sIGVjKTsKK30KKwordm9pZCBEYXRhVmlldzo6c2V0RmxvYXQ2NCh1bnNpZ25l
ZCBieXRlT2Zmc2V0LCBkb3VibGUgdmFsdWUsIGJvb2wgbGl0dGxlRW5kaWFuLCBFeGNlcHRpb25D
b2RlJiBlYykKK3sKKyAgICBzZXREYXRhPGRvdWJsZT4oYnl0ZU9mZnNldCwgdmFsdWUsIGxpdHRs
ZUVuZGlhbiwgZWMpOworfQorCit9CisKKyNlbmRpZiAvLyBFTkFCTEUoM0RfQ0FOVkFTKSB8fCBF
TkFCTEUoQkxPQikKZGlmZiAtLWdpdCBhL1dlYkNvcmUvaHRtbC9jYW52YXMvRGF0YVZpZXcuaCBi
L1dlYkNvcmUvaHRtbC9jYW52YXMvRGF0YVZpZXcuaApuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRl
eCAwMDAwMDAwLi4wNjgxMzQxCi0tLSAvZGV2L251bGwKKysrIGIvV2ViQ29yZS9odG1sL2NhbnZh
cy9EYXRhVmlldy5oCkBAIC0wLDAgKzEsOTIgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAg
R29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucworICogYXJlIG1ldDoKKyAqCisgKiAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAy
LiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICAgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisg
KiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIEFORCBJVFMgQ09OVFJJQlVUT1JT
ICJBUyBJUyIgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAorICogV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQor
ICogRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgT1IgSVRTIENPTlRSSUJVVE9S
UyBCRSBMSUFCTEUgRk9SIEFOWQorICogRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BF
Q0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMKKyAqIChJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsKKyAqIExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORAorICogT04gQU5ZIFRIRU9SWSBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAq
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRSBPRgorICogVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIERhdGFWaWV3X2gK
KyNkZWZpbmUgRGF0YVZpZXdfaAorCisjaW5jbHVkZSAiQXJyYXlCdWZmZXJWaWV3LmgiCisjaW5j
bHVkZSAiRXhjZXB0aW9uQ29kZS5oIgorI2luY2x1ZGUgPHd0Zi9QYXNzUmVmUHRyLmg+CisKK25h
bWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgRGF0YVZpZXcgOiBwdWJsaWMgQXJyYXlCdWZmZXJW
aWV3IHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxEYXRhVmlldz4gY3JlYXRlKFBh
c3NSZWZQdHI8QXJyYXlCdWZmZXI+LCB1bnNpZ25lZCBieXRlT2Zmc2V0LCB1bnNpZ25lZCBieXRl
TGVuZ3RoKTsKKworICAgIHZpcnR1YWwgYm9vbCBpc0RhdGFWaWV3KCkgY29uc3QgeyByZXR1cm4g
dHJ1ZTsgfQorICAgIHZpcnR1YWwgdW5zaWduZWQgbGVuZ3RoKCkgY29uc3QgeyByZXR1cm4gbV9i
eXRlTGVuZ3RoOyB9CisgICAgdmlydHVhbCB1bnNpZ25lZCBieXRlTGVuZ3RoKCkgY29uc3QgeyBy
ZXR1cm4gbV9ieXRlTGVuZ3RoOyB9CisgICAgdmlydHVhbCBQYXNzUmVmUHRyPEFycmF5QnVmZmVy
Vmlldz4gc2xpY2UoaW50LCBpbnQpIGNvbnN0IHsgcmV0dXJuIDA7IH0KKworICAgIGNoYXIgZ2V0
SW50OCh1bnNpZ25lZCBieXRlT2Zmc2V0LCBFeGNlcHRpb25Db2RlJik7CisgICAgdW5zaWduZWQg
Y2hhciBnZXRVaW50OCh1bnNpZ25lZCBieXRlT2Zmc2V0LCBFeGNlcHRpb25Db2RlJik7CisgICAg
c2hvcnQgZ2V0SW50MTYodW5zaWduZWQgYnl0ZU9mZnNldCwgRXhjZXB0aW9uQ29kZSYgZWMpIHsg
cmV0dXJuIGdldEludDE2KGJ5dGVPZmZzZXQsIGZhbHNlLCBlYyk7IH0KKyAgICBzaG9ydCBnZXRJ
bnQxNih1bnNpZ25lZCBieXRlT2Zmc2V0LCBib29sIGxpdHRsZUVuZGlhbiwgRXhjZXB0aW9uQ29k
ZSYpOworICAgIHVuc2lnbmVkIHNob3J0IGdldFVpbnQxNih1bnNpZ25lZCBieXRlT2Zmc2V0LCBF
eGNlcHRpb25Db2RlJiBlYykgeyByZXR1cm4gZ2V0VWludDE2KGJ5dGVPZmZzZXQsIGZhbHNlLCBl
Yyk7IH0KKyAgICB1bnNpZ25lZCBzaG9ydCBnZXRVaW50MTYodW5zaWduZWQgYnl0ZU9mZnNldCwg
Ym9vbCBsaXR0bGVFbmRpYW4sIEV4Y2VwdGlvbkNvZGUmKTsKKyAgICBpbnQgZ2V0SW50MzIodW5z
aWduZWQgYnl0ZU9mZnNldCwgRXhjZXB0aW9uQ29kZSYgZWMpIHsgcmV0dXJuIGdldEludDMyKGJ5
dGVPZmZzZXQsIGZhbHNlLCBlYyk7IH0KKyAgICBpbnQgZ2V0SW50MzIodW5zaWduZWQgYnl0ZU9m
ZnNldCwgYm9vbCBsaXR0bGVFbmRpYW4sIEV4Y2VwdGlvbkNvZGUmKTsKKyAgICB1bnNpZ25lZCBn
ZXRVaW50MzIodW5zaWduZWQgYnl0ZU9mZnNldCwgRXhjZXB0aW9uQ29kZSYgZWMpIHsgcmV0dXJu
IGdldFVpbnQzMihieXRlT2Zmc2V0LCBmYWxzZSwgZWMpOyB9CisgICAgdW5zaWduZWQgZ2V0VWlu
dDMyKHVuc2lnbmVkIGJ5dGVPZmZzZXQsIGJvb2wgbGl0dGxlRW5kaWFuLCBFeGNlcHRpb25Db2Rl
Jik7CisgICAgZmxvYXQgZ2V0RmxvYXQzMih1bnNpZ25lZCBieXRlT2Zmc2V0LCBFeGNlcHRpb25D
b2RlJiBlYykgeyByZXR1cm4gZ2V0RmxvYXQzMihieXRlT2Zmc2V0LCBmYWxzZSwgZWMpOyB9Cisg
ICAgZmxvYXQgZ2V0RmxvYXQzMih1bnNpZ25lZCBieXRlT2Zmc2V0LCBib29sIGxpdHRsZUVuZGlh
biwgRXhjZXB0aW9uQ29kZSYpOworICAgIGRvdWJsZSBnZXRGbG9hdDY0KHVuc2lnbmVkIGJ5dGVP
ZmZzZXQsIEV4Y2VwdGlvbkNvZGUmIGVjKSB7IHJldHVybiBnZXRGbG9hdDY0KGJ5dGVPZmZzZXQs
IGZhbHNlLCBlYyk7IH0KKyAgICBkb3VibGUgZ2V0RmxvYXQ2NCh1bnNpZ25lZCBieXRlT2Zmc2V0
LCBib29sIGxpdHRsZUVuZGlhbiwgRXhjZXB0aW9uQ29kZSYpOworCisgICAgdm9pZCBzZXRJbnQ4
KHVuc2lnbmVkIGJ5dGVPZmZzZXQsIGNoYXIgdmFsdWUsIEV4Y2VwdGlvbkNvZGUmKTsKKyAgICB2
b2lkIHNldFVpbnQ4KHVuc2lnbmVkIGJ5dGVPZmZzZXQsIHVuc2lnbmVkIGNoYXIgdmFsdWUsIEV4
Y2VwdGlvbkNvZGUmKTsKKyAgICB2b2lkIHNldEludDE2KHVuc2lnbmVkIGJ5dGVPZmZzZXQsIHNo
b3J0IHZhbHVlLCBFeGNlcHRpb25Db2RlJiBlYykgeyBzZXRJbnQxNihieXRlT2Zmc2V0LCB2YWx1
ZSwgZmFsc2UsIGVjKTsgfQorICAgIHZvaWQgc2V0SW50MTYodW5zaWduZWQgYnl0ZU9mZnNldCwg
c2hvcnQgdmFsdWUsIGJvb2wgbGl0dGxlRW5kaWFuLCBFeGNlcHRpb25Db2RlJik7CisgICAgdm9p
ZCBzZXRVaW50MTYodW5zaWduZWQgYnl0ZU9mZnNldCwgdW5zaWduZWQgc2hvcnQgdmFsdWUsIEV4
Y2VwdGlvbkNvZGUmIGVjKSB7IHNldFVpbnQxNihieXRlT2Zmc2V0LCB2YWx1ZSwgZmFsc2UsIGVj
KTsgfQorICAgIHZvaWQgc2V0VWludDE2KHVuc2lnbmVkIGJ5dGVPZmZzZXQsIHVuc2lnbmVkIHNo
b3J0IHZhbHVlLCBib29sIGxpdHRsZUVuZGlhbiwgRXhjZXB0aW9uQ29kZSYpOworICAgIHZvaWQg
c2V0SW50MzIodW5zaWduZWQgYnl0ZU9mZnNldCwgaW50IHZhbHVlLCBFeGNlcHRpb25Db2RlJiBl
YykgeyBzZXRJbnQzMihieXRlT2Zmc2V0LCB2YWx1ZSwgZmFsc2UsIGVjKTsgfSAKKyAgICB2b2lk
IHNldEludDMyKHVuc2lnbmVkIGJ5dGVPZmZzZXQsIGludCB2YWx1ZSwgYm9vbCBsaXR0bGVFbmRp
YW4sIEV4Y2VwdGlvbkNvZGUmKTsKKyAgICB2b2lkIHNldFVpbnQzMih1bnNpZ25lZCBieXRlT2Zm
c2V0LCB1bnNpZ25lZCB2YWx1ZSwgRXhjZXB0aW9uQ29kZSYgZWMpIHsgc2V0VWludDMyKGJ5dGVP
ZmZzZXQsIHZhbHVlLCBmYWxzZSwgZWMpOyB9CisgICAgdm9pZCBzZXRVaW50MzIodW5zaWduZWQg
Ynl0ZU9mZnNldCwgdW5zaWduZWQgdmFsdWUsIGJvb2wgbGl0dGxlRW5kaWFuLCBFeGNlcHRpb25D
b2RlJik7CisgICAgdm9pZCBzZXRGbG9hdDMyKHVuc2lnbmVkIGJ5dGVPZmZzZXQsIGZsb2F0IHZh
bHVlLCBFeGNlcHRpb25Db2RlJiBlYykgeyBzZXRGbG9hdDMyKGJ5dGVPZmZzZXQsIHZhbHVlLCBm
YWxzZSwgZWMpOyB9CisgICAgdm9pZCBzZXRGbG9hdDMyKHVuc2lnbmVkIGJ5dGVPZmZzZXQsIGZs
b2F0IHZhbHVlLCBib29sIGxpdHRsZUVuZGlhbiwgRXhjZXB0aW9uQ29kZSYpOworICAgIHZvaWQg
c2V0RmxvYXQ2NCh1bnNpZ25lZCBieXRlT2Zmc2V0LCBkb3VibGUgdmFsdWUsIEV4Y2VwdGlvbkNv
ZGUmIGVjKSB7IHNldEZsb2F0NjQoYnl0ZU9mZnNldCwgdmFsdWUsIGZhbHNlLCBlYyk7IH0KKyAg
ICB2b2lkIHNldEZsb2F0NjQodW5zaWduZWQgYnl0ZU9mZnNldCwgZG91YmxlIHZhbHVlLCBib29s
IGxpdHRsZUVuZGlhbiwgRXhjZXB0aW9uQ29kZSYpOworCitwcml2YXRlOgorICAgIERhdGFWaWV3
KFBhc3NSZWZQdHI8QXJyYXlCdWZmZXI+LCB1bnNpZ25lZCBieXRlT2Zmc2V0LCB1bnNpZ25lZCBi
eXRlTGVuZ3RoKTsKKworICAgIHRlbXBsYXRlPHR5cGVuYW1lIFQ+CisgICAgaW5saW5lIGJvb2wg
YmV5b25kUmFuZ2UodW5zaWduZWQgYnl0ZU9mZnNldCkgY29uc3QgeyByZXR1cm4gYnl0ZU9mZnNl
dCArIHNpemVvZihUKSA+IG1fYnl0ZUxlbmd0aDsgfQorCisgICAgdGVtcGxhdGU8dHlwZW5hbWUg
VD4KKyAgICBUIGdldERhdGEodW5zaWduZWQgYnl0ZU9mZnNldCwgYm9vbCBsaXR0bGVFbmRpYW4s
IEV4Y2VwdGlvbkNvZGUmKSBjb25zdDsKKworICAgIHRlbXBsYXRlPHR5cGVuYW1lIFQ+CisgICAg
dm9pZCBzZXREYXRhKHVuc2lnbmVkIGJ5dGVPZmZzZXQsIFQgdmFsdWUsIGJvb2wgbGl0dGxlRW5k
aWFuLCBFeGNlcHRpb25Db2RlJik7CisKKyAgICB1bnNpZ25lZCBtX2J5dGVMZW5ndGg7Cit9Owor
CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIERhdGFWaWV3X2gKZGlmZiAt
LWdpdCBhL1dlYkNvcmUvaHRtbC9jYW52YXMvRGF0YVZpZXcuaWRsIGIvV2ViQ29yZS9odG1sL2Nh
bnZhcy9EYXRhVmlldy5pZGwKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uYmVm
ODgwNQotLS0gL2Rldi9udWxsCisrKyBiL1dlYkNvcmUvaHRtbC9jYW52YXMvRGF0YVZpZXcuaWRs
CkBAIC0wLDAgKzEsODMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgR29vZ2xlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICog
YXJlIG1ldDoKKyAqCisgKiAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiAgUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIEFQUExFIEFORCBJVFMgQ09OVFJJQlVUT1JTICJBUyBJUyIgQU5E
IEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAorICogV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQorICogRElTQ0xBSU1F
RC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUg
Rk9SIEFOWQorICogRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBM
QVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMKKyAqIChJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsKKyAq
IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORAorICogT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RSBPRgorICogVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KKyAqLworCittb2R1bGUgaHRtbCB7CisKKyAgICBpbnRlcmZhY2Ug
WworICAgICAgICBDb25kaXRpb25hbD0zRF9DQU5WQVN8QkxPQiwKKyAgICAgICAgQ2FuQmVDb25z
dHJ1Y3RlZCwKKyAgICAgICAgQ3VzdG9tQ29uc3RydWN0RnVuY3Rpb24sCisgICAgICAgIEN1c3Rv
bVRvSlMsCisgICAgICAgIE5vU3RhdGljVGFibGVzLAorICAgICAgICBWOEN1c3RvbUNvbnN0cnVj
dG9yCisgICAgXSBEYXRhVmlldyA6IEFycmF5QnVmZmVyVmlldyB7CisgICAgICAgIC8vIEFsbCB0
aGVzZSBtZXRob2RzIHJhaXNlIGFuIGV4Y2VwdGlvbiBpZiB0aGV5IHdvdWxkIHJlYWQgb3Igd3Jp
dGUgYmV5b25kIHRoZSBlbmQgb2YgdGhlIHZpZXcuCisKKyAgICAgICAgLy8gV2UgaGF2ZSB0byB1
c2UgY3VzdG9tIGNvZGUgYmVjYXVzZSBvdXIgY29kZSBnZW5lcmF0b3IgZG9lcyBub3Qgc3VwcG9y
dCBjaGFyIHR5cGUuCisgICAgICAgIC8vIGNoYXIgZ2V0SW50OChpbiB1bnNpZ25lZCBsb25nIGJ5
dGVPZmZzZXQpOworICAgICAgICAvLyB1bnNpZ25lZCBjaGFyIGdldFVpbnQ4KGluIHVuc2lnbmVk
IGxvbmcgYnl0ZU9mZnNldCk7CisgICAgICAgIFtDdXN0b21dIERPTU9iamVjdCBnZXRJbnQ4KCkK
KyAgICAgICAgICAgIHJhaXNlcyAoRE9NRXhjZXB0aW9uKTsKKyAgICAgICAgW0N1c3RvbV0gRE9N
T2JqZWN0IGdldFVpbnQ4KCkKKyAgICAgICAgICAgIHJhaXNlcyAoRE9NRXhjZXB0aW9uKTsKKwor
ICAgICAgICBbU3RyaWN0VHlwZUNoZWNraW5nLCBSZXF1aXJlc0FsbEFyZ3VtZW50cz1SYWlzZV0g
c2hvcnQgZ2V0SW50MTYoaW4gdW5zaWduZWQgbG9uZyBieXRlT2Zmc2V0LCBpbiBbT3B0aW9uYWxd
IGJvb2xlYW4gbGl0dGxlRW5kaWFuKQorICAgICAgICAgICAgcmFpc2VzIChET01FeGNlcHRpb24p
OworICAgICAgICBbU3RyaWN0VHlwZUNoZWNraW5nLCBSZXF1aXJlc0FsbEFyZ3VtZW50cz1SYWlz
ZV0gdW5zaWduZWQgc2hvcnQgZ2V0VWludDE2KGluIHVuc2lnbmVkIGxvbmcgYnl0ZU9mZnNldCwg
aW4gW09wdGlvbmFsXSBib29sZWFuIGxpdHRsZUVuZGlhbikKKyAgICAgICAgICAgIHJhaXNlcyAo
RE9NRXhjZXB0aW9uKTsKKyAgICAgICAgW1N0cmljdFR5cGVDaGVja2luZywgUmVxdWlyZXNBbGxB
cmd1bWVudHM9UmFpc2VdIGxvbmcgZ2V0SW50MzIoaW4gdW5zaWduZWQgbG9uZyBieXRlT2Zmc2V0
LCBpbiBbT3B0aW9uYWxdIGJvb2xlYW4gbGl0dGxlRW5kaWFuKQorICAgICAgICAgICAgcmFpc2Vz
IChET01FeGNlcHRpb24pOworICAgICAgICBbU3RyaWN0VHlwZUNoZWNraW5nLCBSZXF1aXJlc0Fs
bEFyZ3VtZW50cz1SYWlzZV0gdW5zaWduZWQgbG9uZyBnZXRVaW50MzIoaW4gdW5zaWduZWQgbG9u
ZyBieXRlT2Zmc2V0LCBpbiBbT3B0aW9uYWxdIGJvb2xlYW4gbGl0dGxlRW5kaWFuKQorICAgICAg
ICAgICAgcmFpc2VzIChET01FeGNlcHRpb24pOworCisgICAgICAgIC8vIFVzZSBjdXN0b20gY29k
ZSB0byBoYW5kbGUgTmFOIGNhc2UgZm9yIEpTQy4KKyAgICAgICAgW0pTQ0N1c3RvbSwgU3RyaWN0
VHlwZUNoZWNraW5nLCBSZXF1aXJlc0FsbEFyZ3VtZW50cz1SYWlzZV0gZmxvYXQgZ2V0RmxvYXQz
MihpbiB1bnNpZ25lZCBsb25nIGJ5dGVPZmZzZXQsIGluIFtPcHRpb25hbF0gYm9vbGVhbiBsaXR0
bGVFbmRpYW4pCisgICAgICAgICAgICByYWlzZXMgKERPTUV4Y2VwdGlvbik7CisgICAgICAgIFtK
U0NDdXN0b20sIFN0cmljdFR5cGVDaGVja2luZywgUmVxdWlyZXNBbGxBcmd1bWVudHM9UmFpc2Vd
IGRvdWJsZSBnZXRGbG9hdDY0KGluIHVuc2lnbmVkIGxvbmcgYnl0ZU9mZnNldCwgaW4gW09wdGlv
bmFsXSBib29sZWFuIGxpdHRsZUVuZGlhbikKKyAgICAgICAgICAgIHJhaXNlcyAoRE9NRXhjZXB0
aW9uKTsKKworICAgICAgICAvLyBXZSBoYXZlIHRvIHVzZSBjdXN0b20gY29kZSBiZWNhdXNlIG91
ciBjb2RlIGdlbmVyYXRvciBkb2VzIG5vdCBzdXBwb3J0IGNoYXIgdHlwZS4KKyAgICAgICAgLy8g
dm9pZCBzZXRJbnQ4KGluIHVuc2lnbmVkIGxvbmcgYnl0ZU9mZnNldCwgaW4gYnl0ZSB2YWx1ZSk7
CisgICAgICAgIC8vIHZvaWQgc2V0VWludDgoaW4gdW5zaWduZWQgbG9uZyBieXRlT2Zmc2V0LCBp
biB1bnNpZ25lZCBieXRlIHZhbHVlKTsKKyAgICAgICAgW0N1c3RvbV0gdm9pZCBzZXRJbnQ4KCkK
KyAgICAgICAgICAgIHJhaXNlcyAoRE9NRXhjZXB0aW9uKTsKKyAgICAgICAgW0N1c3RvbV0gdm9p
ZCBzZXRVaW50OCgpCisgICAgICAgICAgICByYWlzZXMgKERPTUV4Y2VwdGlvbik7CisKKyAgICAg
ICAgW1N0cmljdFR5cGVDaGVja2luZywgUmVxdWlyZXNBbGxBcmd1bWVudHM9UmFpc2VdIHZvaWQg
c2V0SW50MTYoaW4gdW5zaWduZWQgbG9uZyBieXRlT2Zmc2V0LCBpbiBzaG9ydCB2YWx1ZSwgaW4g
W09wdGlvbmFsXSBib29sZWFuIGxpdHRsZUVuZGlhbikKKyAgICAgICAgICAgIHJhaXNlcyAoRE9N
RXhjZXB0aW9uKTsKKyAgICAgICAgW1N0cmljdFR5cGVDaGVja2luZywgUmVxdWlyZXNBbGxBcmd1
bWVudHM9UmFpc2VdIHZvaWQgc2V0VWludDE2KGluIHVuc2lnbmVkIGxvbmcgYnl0ZU9mZnNldCwg
aW4gdW5zaWduZWQgc2hvcnQgdmFsdWUsIGluIFtPcHRpb25hbF0gYm9vbGVhbiBsaXR0bGVFbmRp
YW4pCisgICAgICAgICAgICByYWlzZXMgKERPTUV4Y2VwdGlvbik7CisgICAgICAgIFtTdHJpY3RU
eXBlQ2hlY2tpbmcsIFJlcXVpcmVzQWxsQXJndW1lbnRzPVJhaXNlXSB2b2lkIHNldEludDMyKGlu
IHVuc2lnbmVkIGxvbmcgYnl0ZU9mZnNldCwgaW4gbG9uZyB2YWx1ZSwgaW4gW09wdGlvbmFsXSBi
b29sZWFuIGxpdHRsZUVuZGlhbikKKyAgICAgICAgICAgIHJhaXNlcyAoRE9NRXhjZXB0aW9uKTsK
KyAgICAgICAgW1N0cmljdFR5cGVDaGVja2luZywgUmVxdWlyZXNBbGxBcmd1bWVudHM9UmFpc2Vd
IHZvaWQgc2V0VWludDMyKGluIHVuc2lnbmVkIGxvbmcgYnl0ZU9mZnNldCwgaW4gdW5zaWduZWQg
bG9uZyB2YWx1ZSwgaW4gW09wdGlvbmFsXSBib29sZWFuIGxpdHRsZUVuZGlhbikKKyAgICAgICAg
ICAgIHJhaXNlcyAoRE9NRXhjZXB0aW9uKTsKKyAgICAgICAgW1N0cmljdFR5cGVDaGVja2luZywg
UmVxdWlyZXNBbGxBcmd1bWVudHM9UmFpc2VdIHZvaWQgc2V0RmxvYXQzMihpbiB1bnNpZ25lZCBs
b25nIGJ5dGVPZmZzZXQsIGluIGZsb2F0IHZhbHVlLCBpbiBbT3B0aW9uYWxdIGJvb2xlYW4gbGl0
dGxlRW5kaWFuKQorICAgICAgICAgICAgcmFpc2VzIChET01FeGNlcHRpb24pOworICAgICAgICBb
U3RyaWN0VHlwZUNoZWNraW5nLCBSZXF1aXJlc0FsbEFyZ3VtZW50cz1SYWlzZV0gdm9pZCBzZXRG
bG9hdDY0KGluIHVuc2lnbmVkIGxvbmcgYnl0ZU9mZnNldCwgaW4gZG91YmxlIHZhbHVlLCBpbiBb
T3B0aW9uYWxdIGJvb2xlYW4gbGl0dGxlRW5kaWFuKQorICAgICAgICAgICAgcmFpc2VzIChET01F
eGNlcHRpb24pOworICAgIH07CisKK30KZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGFnZS9ET01XaW5k
b3cuaWRsIGIvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5pZGwKaW5kZXggMGI5ZjVlZC4uZTMyY2I3
OSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5pZGwKKysrIGIvV2ViQ29yZS9w
YWdlL0RPTVdpbmRvdy5pZGwKQEAgLTQ5OCw2ICs0OTgsNyBAQCBtb2R1bGUgd2luZG93IHsKICAg
ICAgICAgYXR0cmlidXRlIFtKU0NDdXN0b21HZXR0ZXIsQ29uZGl0aW9uYWw9M0RfQ0FOVkFTfEJM
T0IsRW5hYmxlZEF0UnVudGltZV0gSW50MzJBcnJheUNvbnN0cnVjdG9yIEludDMyQXJyYXk7IC8v
IFVzYWJsZSB3aXRoIG5ldyBvcGVyYXRvcgogICAgICAgICBhdHRyaWJ1dGUgW0pTQ0N1c3RvbUdl
dHRlcixDb25kaXRpb25hbD0zRF9DQU5WQVN8QkxPQixFbmFibGVkQXRSdW50aW1lXSBVaW50MzJB
cnJheUNvbnN0cnVjdG9yIFVpbnQzMkFycmF5OyAvLyBVc2FibGUgd2l0aCBuZXcgb3BlcmF0b3IK
ICAgICAgICAgYXR0cmlidXRlIFtKU0NDdXN0b21HZXR0ZXIsQ29uZGl0aW9uYWw9M0RfQ0FOVkFT
fEJMT0IsRW5hYmxlZEF0UnVudGltZV0gRmxvYXQzMkFycmF5Q29uc3RydWN0b3IgRmxvYXQzMkFy
cmF5OyAvLyBVc2FibGUgd2l0aCBuZXcgb3BlcmF0b3IKKyAgICAgICAgYXR0cmlidXRlIFtKU0ND
dXN0b21HZXR0ZXIsQ29uZGl0aW9uYWw9M0RfQ0FOVkFTfEJMT0IsRW5hYmxlZEF0UnVudGltZV0g
RGF0YVZpZXdDb25zdHJ1Y3RvciBEYXRhVmlldzsgLy8gVXNhYmxlIHdpdGggbmV3IG9wZXJhdG9y
CiAKICAgICAgICAgYXR0cmlidXRlIEV2ZW50Q29uc3RydWN0b3IgRXZlbnQ7CiAgICAgICAgIGF0
dHJpYnV0ZSBCZWZvcmVMb2FkRXZlbnRDb25zdHJ1Y3RvciBCZWZvcmVMb2FkRXZlbnQ7Cg==
</data>
<flag name="commit-queue"
          id="65391"
          type_id="3"
          status="-"
          setter="jianli"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>74720</attachid>
            <date>2010-11-23 20:33:19 -0800</date>
            <delta_ts>2010-11-24 14:55:15 -0800</delta_ts>
            <desc>Proposed Patch</desc>
            <filename>46541_5</filename>
            <type>text/plain</type>
            <size>117579</size>
            <attacher name="Jian Li">jianli</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCBjZjdlMjRkLi4xYmZiMTQ4IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjMgQEAKKzIwMTAtMTEt
MjMgIEppYW4gTGkgIDxqaWFubGlAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEltcGxlbWVudCBEYXRhVmlldyBpbnRlcmZhY2Ug
ZnJvbSBUeXBlZCBBcnJheSBzcGVjaWZpY2F0aW9uCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD00NjU0MQorCisgICAgICAgIEFkZCBhIG5ldyB0ZXN0IGZv
ciB0ZXN0aW5nIERhdGFWaWV3IGludGVyZmFjZS4gQWxzbyB1cGRhdGUgc29tZSB0ZXN0cworICAg
ICAgICB0byBleGNsdWRlIERhdGFWaWV3IHByb3BlcnR5IGZyb20gYmVpbmcgdGVzdGVkIGJlY2F1
c2UgaXQgaXMgbm90CisgICAgICAgIGV4cG9zZWQgdG8gYWxsIHBsYXRmb3Jtcy4KKworICAgICAg
ICAqIGZhc3QvY2FudmFzL3dlYmdsL2RhdGEtdmlldy10ZXN0LWV4cGVjdGVkLnR4dDogQWRkZWQu
CisgICAgICAgICogZmFzdC9jYW52YXMvd2ViZ2wvZGF0YS12aWV3LXRlc3QuaHRtbDogQWRkZWQu
CisgICAgICAgICogZmFzdC9kb20vV2luZG93L3NjcmlwdC10ZXN0cy93aW5kb3ctcHJvcGVydHkt
ZGVzY3JpcHRvcnMuanM6CisgICAgICAgICogZmFzdC9kb20vV2luZG93L3dpbmRvdy1wcm9wZXJ0
aWVzLmh0bWw6CisgICAgICAgICogZmFzdC9kb20vc2NyaXB0LXRlc3RzL3Byb3RvdHlwZS1pbmhl
cml0YW5jZS0yLmpzOgorICAgICAgICAoY29uc3RydWN0b3JOYW1lc0ZvcldpbmRvdyk6CisgICAg
ICAgICogZmFzdC9kb20vc2NyaXB0LXRlc3RzL3Byb3RvdHlwZS1pbmhlcml0YW5jZS5qczoKKyAg
ICAgICAgKiBmYXN0L2pzL3NjcmlwdC10ZXN0cy9nbG9iYWwtY29uc3RydWN0b3JzLmpzOgorCiAy
MDEwLTExLTIzICBBYmhpc2hlayBBcnlhICA8aW5mZXJub0BjaHJvbWl1bS5vcmc+CiAKICAgICAg
ICAgUmV2aWV3ZWQgYnkgQWRhbSBCYXJ0aC4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3Qv
Y2FudmFzL3dlYmdsL2RhdGEtdmlldy10ZXN0LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zh
c3QvY2FudmFzL3dlYmdsL2RhdGEtdmlldy10ZXN0LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwLi42YWQ0ZTQ0Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvZmFzdC9jYW52YXMvd2ViZ2wvZGF0YS12aWV3LXRlc3QtZXhwZWN0ZWQudHh0CkBAIC0w
LDAgKzEsNzY1IEBACitUZXN0IERhdGFWaWV3LgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUg
YSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIu
CisKKworVGVzdCBmb3IgY29uc3RydWN0b3IgdGFraW5nIDEgYXJndW1lbnQKK1BBU1MgdmlldyA9
IG5ldyBEYXRhVmlldyhhcmF5QnVmZmVyKSBpcyBkZWZpbmVkLgorUEFTUyB2aWV3LmJ5dGVPZmZz
ZXQgaXMgMAorUEFTUyB2aWV3LmJ5dGVMZW5ndGggaXMgMgorCitUZXN0IGZvciBjb25zdHJ1Y3Rv
ciB0YWtpbmcgMiBhcmd1bWVudHMKK1BBU1MgdmlldyA9IG5ldyBEYXRhVmlldyhhcmF5QnVmZmVy
LCAxKSBpcyBkZWZpbmVkLgorUEFTUyB2aWV3LmJ5dGVPZmZzZXQgaXMgMQorUEFTUyB2aWV3LmJ5
dGVMZW5ndGggaXMgMQorCitUZXN0IGZvciBjb25zdHJ1Y3RvciB0YWtpbmcgMyBhcmd1bWVudHMK
K1BBU1MgdmlldyA9IG5ldyBEYXRhVmlldyhhcmF5QnVmZmVyLCAwLCAxKSBpcyBkZWZpbmVkLgor
UEFTUyB2aWV3LmJ5dGVPZmZzZXQgaXMgMAorUEFTUyB2aWV3LmJ5dGVMZW5ndGggaXMgMQorCitU
ZXN0IGZvciBjb25zdHJ1Y3RvciB0aHJvd2luZyBleGNlcHRpb24KK1BBU1MgdmlldyA9IG5ldyBE
YXRhVmlldyhhcmF5QnVmZmVyLCAwLCAzKSB0aHJldyBleGNlcHRpb24gRXJyb3I6IElOREVYX1NJ
WkVfRVJSOiBET00gRXhjZXB0aW9uIDEuCitQQVNTIHZpZXcgPSBuZXcgRGF0YVZpZXcoYXJheUJ1
ZmZlciwgMSwgMikgdGhyZXcgZXhjZXB0aW9uIEVycm9yOiBJTkRFWF9TSVpFX0VSUjogRE9NIEV4
Y2VwdGlvbiAxLgorUEFTUyB2aWV3ID0gbmV3IERhdGFWaWV3KGFyYXlCdWZmZXIsIDIsIDEpIHRo
cmV3IGV4Y2VwdGlvbiBFcnJvcjogSU5ERVhfU0laRV9FUlI6IERPTSBFeGNlcHRpb24gMS4KKwor
VGVzdCBmb3IgZ2V0IG1ldGhvZHMgdGhhdCB3b3JrCitQQVNTIHZpZXcuZ2V0SW50OCgwKSBpcyAw
CitQQVNTIHZpZXcuZ2V0SW50OCg4KSBpcyAtMTI4CitQQVNTIHZpZXcuZ2V0SW50OCgxNSkgaXMg
LTEKK1BBU1Mgdmlldy5nZXRVaW50OCgwKSBpcyAwCitQQVNTIHZpZXcuZ2V0VWludDgoOCkgaXMg
MTI4CitQQVNTIHZpZXcuZ2V0VWludDgoMTUpIGlzIDI1NQorUEFTUyB2aWV3LmdldEludDE2KDAs
IHRydWUpIGlzIDI1NgorUEFTUyB2aWV3LmdldEludDE2KDUsIHRydWUpIGlzIDI2MjEzCitQQVNT
IHZpZXcuZ2V0SW50MTYoOSwgdHJ1ZSkgaXMgLTMyMTI3CitQQVNTIHZpZXcuZ2V0SW50MTYoMTQs
IHRydWUpIGlzIC0yCitQQVNTIHZpZXcuZ2V0SW50MTYoMCkgaXMgMQorUEFTUyB2aWV3LmdldElu
dDE2KDUpIGlzIDI1OTU4CitQQVNTIHZpZXcuZ2V0SW50MTYoOSkgaXMgLTMyMzgyCitQQVNTIHZp
ZXcuZ2V0SW50MTYoMTQpIGlzIC0yNTcKK1BBU1Mgdmlldy5nZXRVaW50MTYoMCwgdHJ1ZSkgaXMg
MjU2CitQQVNTIHZpZXcuZ2V0VWludDE2KDUsIHRydWUpIGlzIDI2MjEzCitQQVNTIHZpZXcuZ2V0
VWludDE2KDksIHRydWUpIGlzIDMzNDA5CitQQVNTIHZpZXcuZ2V0VWludDE2KDE0LCB0cnVlKSBp
cyA2NTUzNAorUEFTUyB2aWV3LmdldFVpbnQxNigwKSBpcyAxCitQQVNTIHZpZXcuZ2V0VWludDE2
KDUpIGlzIDI1OTU4CitQQVNTIHZpZXcuZ2V0VWludDE2KDkpIGlzIDMzMTU0CitQQVNTIHZpZXcu
Z2V0VWludDE2KDE0KSBpcyA2NTI3OQorUEFTUyB2aWV3LmdldEludDMyKDAsIHRydWUpIGlzIDUw
NDYyOTc2CitQQVNTIHZpZXcuZ2V0SW50MzIoMywgdHJ1ZSkgaXMgMTcxNzkyMDc3MQorUEFTUyB2
aWV3LmdldEludDMyKDYsIHRydWUpIGlzIC0yMTIyMjkxMzU0CitQQVNTIHZpZXcuZ2V0SW50MzIo
OSwgdHJ1ZSkgaXMgLTU4NDkwMjM5CitQQVNTIHZpZXcuZ2V0SW50MzIoMTIsIHRydWUpIGlzIC02
NjA1MgorUEFTUyB2aWV3LmdldEludDMyKDApIGlzIDY2MDUxCitQQVNTIHZpZXcuZ2V0SW50MzIo
MykgaXMgNTY5MTEyMDYKK1BBU1Mgdmlldy5nZXRJbnQzMig2KSBpcyAxNzE4MDU5MTM3CitQQVNT
IHZpZXcuZ2V0SW50MzIoOSkgaXMgLTIxMjIxNTI5NjQKK1BBU1Mgdmlldy5nZXRJbnQzMigxMikg
aXMgLTUwNDYyOTc3CitQQVNTIHZpZXcuZ2V0VWludDMyKDAsIHRydWUpIGlzIDUwNDYyOTc2CitQ
QVNTIHZpZXcuZ2V0VWludDMyKDMsIHRydWUpIGlzIDE3MTc5MjA3NzEKK1BBU1Mgdmlldy5nZXRV
aW50MzIoNiwgdHJ1ZSkgaXMgMjE3MjY3NTk0MgorUEFTUyB2aWV3LmdldFVpbnQzMig5LCB0cnVl
KSBpcyA0MjM2NDc3MDU3CitQQVNTIHZpZXcuZ2V0VWludDMyKDEyLCB0cnVlKSBpcyA0Mjk0OTAx
MjQ0CitQQVNTIHZpZXcuZ2V0VWludDMyKDApIGlzIDY2MDUxCitQQVNTIHZpZXcuZ2V0VWludDMy
KDMpIGlzIDU2OTExMjA2CitQQVNTIHZpZXcuZ2V0VWludDMyKDYpIGlzIDE3MTgwNTkxMzcKK1BB
U1Mgdmlldy5nZXRVaW50MzIoOSkgaXMgMjE3MjgxNDMzMgorUEFTUyB2aWV3LmdldFVpbnQzMigx
MikgaXMgNDI0NDUwNDMxOQorUEFTUyB2aWV3LmdldEZsb2F0MzIoMCwgdHJ1ZSkgaXMgMTAKK1BB
U1Mgdmlldy5nZXRGbG9hdDMyKDMsIHRydWUpIGlzIDEwCitQQVNTIHZpZXcuZ2V0RmxvYXQzMig3
LCB0cnVlKSBpcyAxMAorUEFTUyB2aWV3LmdldEZsb2F0MzIoMTAsIHRydWUpIGlzIDEwCitQQVNT
IHZpZXcuZ2V0RmxvYXQzMigwLCBmYWxzZSkgaXMgMTAKK1BBU1Mgdmlldy5nZXRGbG9hdDMyKDMs
IGZhbHNlKSBpcyAxMAorUEFTUyB2aWV3LmdldEZsb2F0MzIoNywgZmFsc2UpIGlzIDEwCitQQVNT
IHZpZXcuZ2V0RmxvYXQzMigxMCwgZmFsc2UpIGlzIDEwCitQQVNTIHZpZXcuZ2V0RmxvYXQzMigw
LCB0cnVlKSBpcyAxLjIzMDAwMDAxOTA3MzQ4NjMKK1BBU1Mgdmlldy5nZXRGbG9hdDMyKDMsIHRy
dWUpIGlzIDEuMjMwMDAwMDE5MDczNDg2MworUEFTUyB2aWV3LmdldEZsb2F0MzIoNywgdHJ1ZSkg
aXMgMS4yMzAwMDAwMTkwNzM0ODYzCitQQVNTIHZpZXcuZ2V0RmxvYXQzMigxMCwgdHJ1ZSkgaXMg
MS4yMzAwMDAwMTkwNzM0ODYzCitQQVNTIHZpZXcuZ2V0RmxvYXQzMigwLCBmYWxzZSkgaXMgMS4y
MzAwMDAwMTkwNzM0ODYzCitQQVNTIHZpZXcuZ2V0RmxvYXQzMigzLCBmYWxzZSkgaXMgMS4yMzAw
MDAwMTkwNzM0ODYzCitQQVNTIHZpZXcuZ2V0RmxvYXQzMig3LCBmYWxzZSkgaXMgMS4yMzAwMDAw
MTkwNzM0ODYzCitQQVNTIHZpZXcuZ2V0RmxvYXQzMigxMCwgZmFsc2UpIGlzIDEuMjMwMDAwMDE5
MDczNDg2MworUEFTUyB2aWV3LmdldEZsb2F0MzIoMCwgdHJ1ZSkgaXMgLTQ1NjIxLjM3MTA5Mzc1
CitQQVNTIHZpZXcuZ2V0RmxvYXQzMigzLCB0cnVlKSBpcyAtNDU2MjEuMzcxMDkzNzUKK1BBU1Mg
dmlldy5nZXRGbG9hdDMyKDcsIHRydWUpIGlzIC00NTYyMS4zNzEwOTM3NQorUEFTUyB2aWV3Lmdl
dEZsb2F0MzIoMTAsIHRydWUpIGlzIC00NTYyMS4zNzEwOTM3NQorUEFTUyB2aWV3LmdldEZsb2F0
MzIoMCwgZmFsc2UpIGlzIC00NTYyMS4zNzEwOTM3NQorUEFTUyB2aWV3LmdldEZsb2F0MzIoMywg
ZmFsc2UpIGlzIC00NTYyMS4zNzEwOTM3NQorUEFTUyB2aWV3LmdldEZsb2F0MzIoNywgZmFsc2Up
IGlzIC00NTYyMS4zNzEwOTM3NQorUEFTUyB2aWV3LmdldEZsb2F0MzIoMTAsIGZhbHNlKSBpcyAt
NDU2MjEuMzcxMDkzNzUKK1BBU1Mgdmlldy5nZXRGbG9hdDMyKDAsIHRydWUpIGlzIE5hTgorUEFT
UyB2aWV3LmdldEZsb2F0MzIoMywgdHJ1ZSkgaXMgTmFOCitQQVNTIHZpZXcuZ2V0RmxvYXQzMig3
LCB0cnVlKSBpcyBOYU4KK1BBU1Mgdmlldy5nZXRGbG9hdDMyKDEwLCB0cnVlKSBpcyBOYU4KK1BB
U1Mgdmlldy5nZXRGbG9hdDMyKDAsIGZhbHNlKSBpcyBOYU4KK1BBU1Mgdmlldy5nZXRGbG9hdDMy
KDMsIGZhbHNlKSBpcyBOYU4KK1BBU1Mgdmlldy5nZXRGbG9hdDMyKDcsIGZhbHNlKSBpcyBOYU4K
K1BBU1Mgdmlldy5nZXRGbG9hdDMyKDEwLCBmYWxzZSkgaXMgTmFOCitQQVNTIHZpZXcuZ2V0Rmxv
YXQzMigwLCB0cnVlKSBpcyAtTmFOCitQQVNTIHZpZXcuZ2V0RmxvYXQzMigzLCB0cnVlKSBpcyAt
TmFOCitQQVNTIHZpZXcuZ2V0RmxvYXQzMig3LCB0cnVlKSBpcyAtTmFOCitQQVNTIHZpZXcuZ2V0
RmxvYXQzMigxMCwgdHJ1ZSkgaXMgLU5hTgorUEFTUyB2aWV3LmdldEZsb2F0MzIoMCwgZmFsc2Up
IGlzIC1OYU4KK1BBU1Mgdmlldy5nZXRGbG9hdDMyKDMsIGZhbHNlKSBpcyAtTmFOCitQQVNTIHZp
ZXcuZ2V0RmxvYXQzMig3LCBmYWxzZSkgaXMgLU5hTgorUEFTUyB2aWV3LmdldEZsb2F0MzIoMTAs
IGZhbHNlKSBpcyAtTmFOCitQQVNTIHZpZXcuZ2V0RmxvYXQ2NCgwLCB0cnVlKSBpcyAxMAorUEFT
UyB2aWV3LmdldEZsb2F0NjQoMywgdHJ1ZSkgaXMgMTAKK1BBU1Mgdmlldy5nZXRGbG9hdDY0KDcs
IHRydWUpIGlzIDEwCitQQVNTIHZpZXcuZ2V0RmxvYXQ2NCgxMCwgdHJ1ZSkgaXMgMTAKK1BBU1Mg
dmlldy5nZXRGbG9hdDY0KDAsIGZhbHNlKSBpcyAxMAorUEFTUyB2aWV3LmdldEZsb2F0NjQoMywg
ZmFsc2UpIGlzIDEwCitQQVNTIHZpZXcuZ2V0RmxvYXQ2NCg3LCBmYWxzZSkgaXMgMTAKK1BBU1Mg
dmlldy5nZXRGbG9hdDY0KDEwLCBmYWxzZSkgaXMgMTAKK1BBU1Mgdmlldy5nZXRGbG9hdDY0KDAs
IHRydWUpIGlzIDEuMjMKK1BBU1Mgdmlldy5nZXRGbG9hdDY0KDMsIHRydWUpIGlzIDEuMjMKK1BB
U1Mgdmlldy5nZXRGbG9hdDY0KDcsIHRydWUpIGlzIDEuMjMKK1BBU1Mgdmlldy5nZXRGbG9hdDY0
KDEwLCB0cnVlKSBpcyAxLjIzCitQQVNTIHZpZXcuZ2V0RmxvYXQ2NCgwLCBmYWxzZSkgaXMgMS4y
MworUEFTUyB2aWV3LmdldEZsb2F0NjQoMywgZmFsc2UpIGlzIDEuMjMKK1BBU1Mgdmlldy5nZXRG
bG9hdDY0KDcsIGZhbHNlKSBpcyAxLjIzCitQQVNTIHZpZXcuZ2V0RmxvYXQ2NCgxMCwgZmFsc2Up
IGlzIDEuMjMKK1BBU1Mgdmlldy5nZXRGbG9hdDY0KDAsIHRydWUpIGlzIC02MjEzNTc2LjQ4MzkK
K1BBU1Mgdmlldy5nZXRGbG9hdDY0KDMsIHRydWUpIGlzIC02MjEzNTc2LjQ4MzkKK1BBU1Mgdmll
dy5nZXRGbG9hdDY0KDcsIHRydWUpIGlzIC02MjEzNTc2LjQ4MzkKK1BBU1Mgdmlldy5nZXRGbG9h
dDY0KDEwLCB0cnVlKSBpcyAtNjIxMzU3Ni40ODM5CitQQVNTIHZpZXcuZ2V0RmxvYXQ2NCgwLCBm
YWxzZSkgaXMgLTYyMTM1NzYuNDgzOQorUEFTUyB2aWV3LmdldEZsb2F0NjQoMywgZmFsc2UpIGlz
IC02MjEzNTc2LjQ4MzkKK1BBU1Mgdmlldy5nZXRGbG9hdDY0KDcsIGZhbHNlKSBpcyAtNjIxMzU3
Ni40ODM5CitQQVNTIHZpZXcuZ2V0RmxvYXQ2NCgxMCwgZmFsc2UpIGlzIC02MjEzNTc2LjQ4MzkK
K1BBU1Mgdmlldy5nZXRGbG9hdDY0KDAsIHRydWUpIGlzIE5hTgorUEFTUyB2aWV3LmdldEZsb2F0
NjQoMywgdHJ1ZSkgaXMgTmFOCitQQVNTIHZpZXcuZ2V0RmxvYXQ2NCg3LCB0cnVlKSBpcyBOYU4K
K1BBU1Mgdmlldy5nZXRGbG9hdDY0KDEwLCB0cnVlKSBpcyBOYU4KK1BBU1Mgdmlldy5nZXRGbG9h
dDY0KDAsIGZhbHNlKSBpcyBOYU4KK1BBU1Mgdmlldy5nZXRGbG9hdDY0KDMsIGZhbHNlKSBpcyBO
YU4KK1BBU1Mgdmlldy5nZXRGbG9hdDY0KDcsIGZhbHNlKSBpcyBOYU4KK1BBU1Mgdmlldy5nZXRG
bG9hdDY0KDEwLCBmYWxzZSkgaXMgTmFOCitQQVNTIHZpZXcuZ2V0RmxvYXQ2NCgwLCB0cnVlKSBp
cyAtTmFOCitQQVNTIHZpZXcuZ2V0RmxvYXQ2NCgzLCB0cnVlKSBpcyAtTmFOCitQQVNTIHZpZXcu
Z2V0RmxvYXQ2NCg3LCB0cnVlKSBpcyAtTmFOCitQQVNTIHZpZXcuZ2V0RmxvYXQ2NCgxMCwgdHJ1
ZSkgaXMgLU5hTgorUEFTUyB2aWV3LmdldEZsb2F0NjQoMCwgZmFsc2UpIGlzIC1OYU4KK1BBU1Mg
dmlldy5nZXRGbG9hdDY0KDMsIGZhbHNlKSBpcyAtTmFOCitQQVNTIHZpZXcuZ2V0RmxvYXQ2NCg3
LCBmYWxzZSkgaXMgLU5hTgorUEFTUyB2aWV3LmdldEZsb2F0NjQoMTAsIGZhbHNlKSBpcyAtTmFO
CisKK1Rlc3QgZm9yIGdldCBtZXRob2RzIHRoYXQgbWlnaHQgcmVhZCBiZXlvdW5kIHJhbmdlCitQ
QVNTIHZpZXcuZ2V0SW50OCgwKSBpcyAwCitQQVNTIHZpZXcuZ2V0SW50OCg4KSB0aHJldyBleGNl
cHRpb24gRXJyb3I6IElOREVYX1NJWkVfRVJSOiBET00gRXhjZXB0aW9uIDEuCitQQVNTIHZpZXcu
Z2V0SW50OCgxNSkgdGhyZXcgZXhjZXB0aW9uIEVycm9yOiBJTkRFWF9TSVpFX0VSUjogRE9NIEV4
Y2VwdGlvbiAxLgorUEFTUyB2aWV3LmdldFVpbnQ4KDApIGlzIDAKK1BBU1Mgdmlldy5nZXRVaW50
OCg4KSB0aHJldyBleGNlcHRpb24gRXJyb3I6IElOREVYX1NJWkVfRVJSOiBET00gRXhjZXB0aW9u
IDEuCitQQVNTIHZpZXcuZ2V0VWludDgoMTUpIHRocmV3IGV4Y2VwdGlvbiBFcnJvcjogSU5ERVhf
U0laRV9FUlI6IERPTSBFeGNlcHRpb24gMS4KK1BBU1Mgdmlldy5nZXRJbnQxNigwLCB0cnVlKSBp
cyAyNTYKK1BBU1Mgdmlldy5nZXRJbnQxNig1LCB0cnVlKSB0aHJldyBleGNlcHRpb24gRXJyb3I6
IElOREVYX1NJWkVfRVJSOiBET00gRXhjZXB0aW9uIDEuCitQQVNTIHZpZXcuZ2V0SW50MTYoOSwg
dHJ1ZSkgdGhyZXcgZXhjZXB0aW9uIEVycm9yOiBJTkRFWF9TSVpFX0VSUjogRE9NIEV4Y2VwdGlv
biAxLgorUEFTUyB2aWV3LmdldEludDE2KDE0LCB0cnVlKSB0aHJldyBleGNlcHRpb24gRXJyb3I6
IElOREVYX1NJWkVfRVJSOiBET00gRXhjZXB0aW9uIDEuCitQQVNTIHZpZXcuZ2V0SW50MTYoMCkg
aXMgMQorUEFTUyB2aWV3LmdldEludDE2KDUpIHRocmV3IGV4Y2VwdGlvbiBFcnJvcjogSU5ERVhf
U0laRV9FUlI6IERPTSBFeGNlcHRpb24gMS4KK1BBU1Mgdmlldy5nZXRJbnQxNig5KSB0aHJldyBl
eGNlcHRpb24gRXJyb3I6IElOREVYX1NJWkVfRVJSOiBET00gRXhjZXB0aW9uIDEuCitQQVNTIHZp
ZXcuZ2V0SW50MTYoMTQpIHRocmV3IGV4Y2VwdGlvbiBFcnJvcjogSU5ERVhfU0laRV9FUlI6IERP
TSBFeGNlcHRpb24gMS4KK1BBU1Mgdmlldy5nZXRVaW50MTYoMCwgdHJ1ZSkgaXMgMjU2CitQQVNT
IHZpZXcuZ2V0VWludDE2KDUsIHRydWUpIHRocmV3IGV4Y2VwdGlvbiBFcnJvcjogSU5ERVhfU0la
RV9FUlI6IERPTSBFeGNlcHRpb24gMS4KK1BBU1Mgdmlldy5nZXRVaW50MTYoOSwgdHJ1ZSkgdGhy
ZXcgZXhjZXB0aW9uIEVycm9yOiBJTkRFWF9TSVpFX0VSUjogRE9NIEV4Y2VwdGlvbiAxLgorUEFT
UyB2aWV3LmdldFVpbnQxNigxNCwgdHJ1ZSkgdGhyZXcgZXhjZXB0aW9uIEVycm9yOiBJTkRFWF9T
SVpFX0VSUjogRE9NIEV4Y2VwdGlvbiAxLgorUEFTUyB2aWV3LmdldFVpbnQxNigwKSBpcyAxCitQ
QVNTIHZpZXcuZ2V0VWludDE2KDUpIHRocmV3IGV4Y2VwdGlvbiBFcnJvcjogSU5ERVhfU0laRV9F
UlI6IERPTSBFeGNlcHRpb24gMS4KK1BBU1Mgdmlldy5nZXRVaW50MTYoOSkgdGhyZXcgZXhjZXB0
aW9uIEVycm9yOiBJTkRFWF9TSVpFX0VSUjogRE9NIEV4Y2VwdGlvbiAxLgorUEFTUyB2aWV3Lmdl
dFVpbnQxNigxNCkgdGhyZXcgZXhjZXB0aW9uIEVycm9yOiBJTkRFWF9TSVpFX0VSUjogRE9NIEV4
Y2VwdGlvbiAxLgorUEFTUyB2aWV3LmdldEludDMyKDAsIHRydWUpIHRocmV3IGV4Y2VwdGlvbiBF
cnJvcjogSU5ERVhfU0laRV9FUlI6IERPTSBFeGNlcHRpb24gMS4KK1BBU1Mgdmlldy5nZXRJbnQz
MigzLCB0cnVlKSB0aHJldyBleGNlcHRpb24gRXJyb3I6IElOREVYX1NJWkVfRVJSOiBET00gRXhj
ZXB0aW9uIDEuCitQQVNTIHZpZXcuZ2V0SW50MzIoNiwgdHJ1ZSkgdGhyZXcgZXhjZXB0aW9uIEVy
cm9yOiBJTkRFWF9TSVpFX0VSUjogRE9NIEV4Y2VwdGlvbiAxLgorUEFTUyB2aWV3LmdldEludDMy
KDksIHRydWUpIHRocmV3IGV4Y2VwdGlvbiBFcnJvcjogSU5ERVhfU0laRV9FUlI6IERPTSBFeGNl
cHRpb24gMS4KK1BBU1Mgdmlldy5nZXRJbnQzMigxMiwgdHJ1ZSkgdGhyZXcgZXhjZXB0aW9uIEVy
cm9yOiBJTkRFWF9TSVpFX0VSUjogRE9NIEV4Y2VwdGlvbiAxLgorUEFTUyB2aWV3LmdldEludDMy
KDApIHRocmV3IGV4Y2VwdGlvbiBFcnJvcjogSU5ERVhfU0laRV9FUlI6IERPTSBFeGNlcHRpb24g
MS4KK1BBU1Mgdmlldy5nZXRJbnQzMigzKSB0aHJldyBleGNlcHRpb24gRXJyb3I6IElOREVYX1NJ
WkVfRVJSOiBET00gRXhjZXB0aW9uIDEuCitQQVNTIHZpZXcuZ2V0SW50MzIoNikgdGhyZXcgZXhj
ZXB0aW9uIEVycm9yOiBJTkRFWF9TSVpFX0VSUjogRE9NIEV4Y2VwdGlvbiAxLgorUEFTUyB2aWV3
LmdldEludDMyKDkpIHRocmV3IGV4Y2VwdGlvbiBFcnJvcjogSU5ERVhfU0laRV9FUlI6IERPTSBF
eGNlcHRpb24gMS4KK1BBU1Mgdmlldy5nZXRJbnQzMigxMikgdGhyZXcgZXhjZXB0aW9uIEVycm9y
OiBJTkRFWF9TSVpFX0VSUjogRE9NIEV4Y2VwdGlvbiAxLgorUEFTUyB2aWV3LmdldFVpbnQzMigw
LCB0cnVlKSB0aHJldyBleGNlcHRpb24gRXJyb3I6IElOREVYX1NJWkVfRVJSOiBET00gRXhjZXB0
aW9uIDEuCitQQVNTIHZpZXcuZ2V0VWludDMyKDMsIHRydWUpIHRocmV3IGV4Y2VwdGlvbiBFcnJv
cjogSU5ERVhfU0laRV9FUlI6IERPTSBFeGNlcHRpb24gMS4KK1BBU1Mgdmlldy5nZXRVaW50MzIo
NiwgdHJ1ZSkgdGhyZXcgZXhjZXB0aW9uIEVycm9yOiBJTkRFWF9TSVpFX0VSUjogRE9NIEV4Y2Vw
dGlvbiAxLgorUEFTUyB2aWV3LmdldFVpbnQzMig5LCB0cnVlKSB0aHJldyBleGNlcHRpb24gRXJy
b3I6IElOREVYX1NJWkVfRVJSOiBET00gRXhjZXB0aW9uIDEuCitQQVNTIHZpZXcuZ2V0VWludDMy
KDEyLCB0cnVlKSB0aHJldyBleGNlcHRpb24gRXJyb3I6IElOREVYX1NJWkVfRVJSOiBET00gRXhj
ZXB0aW9uIDEuCitQQVNTIHZpZXcuZ2V0VWludDMyKDApIHRocmV3IGV4Y2VwdGlvbiBFcnJvcjog
SU5ERVhfU0laRV9FUlI6IERPTSBFeGNlcHRpb24gMS4KK1BBU1Mgdmlldy5nZXRVaW50MzIoMykg
dGhyZXcgZXhjZXB0aW9uIEVycm9yOiBJTkRFWF9TSVpFX0VSUjogRE9NIEV4Y2VwdGlvbiAxLgor
UEFTUyB2aWV3LmdldFVpbnQzMig2KSB0aHJldyBleGNlcHRpb24gRXJyb3I6IElOREVYX1NJWkVf
RVJSOiBET00gRXhjZXB0aW9uIDEuCitQQVNTIHZpZXcuZ2V0VWludDMyKDkpIHRocmV3IGV4Y2Vw
dGlvbiBFcnJvcjogSU5ERVhfU0laRV9FUlI6IERPTSBFeGNlcHRpb24gMS4KK1BBU1Mgdmlldy5n
ZXRVaW50MzIoMTIpIHRocmV3IGV4Y2VwdGlvbiBFcnJvcjogSU5ERVhfU0laRV9FUlI6IERPTSBF
eGNlcHRpb24gMS4KK1BBU1Mgdmlldy5nZXRGbG9hdDMyKDAsIHRydWUpIHRocmV3IGV4Y2VwdGlv
biBFcnJvcjogSU5ERVhfU0laRV9FUlI6IERPTSBFeGNlcHRpb24gMS4KK1BBU1Mgdmlldy5nZXRG
bG9hdDMyKDMsIHRydWUpIHRocmV3IGV4Y2VwdGlvbiBFcnJvcjogSU5ERVhfU0laRV9FUlI6IERP
TSBFeGNlcHRpb24gMS4KK1BBU1Mgdmlldy5nZXRGbG9hdDMyKDcsIHRydWUpIHRocmV3IGV4Y2Vw
dGlvbiBFcnJvcjogSU5ERVhfU0laRV9FUlI6IERPTSBFeGNlcHRpb24gMS4KK1BBU1Mgdmlldy5n
ZXRGbG9hdDMyKDEwLCB0cnVlKSB0aHJldyBleGNlcHRpb24gRXJyb3I6IElOREVYX1NJWkVfRVJS
OiBET00gRXhjZXB0aW9uIDEuCitQQVNTIHZpZXcuZ2V0RmxvYXQzMigwLCBmYWxzZSkgaXMgMTAK
K1BBU1Mgdmlldy5nZXRGbG9hdDMyKDMsIGZhbHNlKSBpcyAxMAorUEFTUyB2aWV3LmdldEZsb2F0
MzIoNywgZmFsc2UpIGlzIDEwCitQQVNTIHZpZXcuZ2V0RmxvYXQzMigxMCwgZmFsc2UpIGlzIDEw
CitQQVNTIHZpZXcuZ2V0RmxvYXQzMigwLCB0cnVlKSB0aHJldyBleGNlcHRpb24gRXJyb3I6IElO
REVYX1NJWkVfRVJSOiBET00gRXhjZXB0aW9uIDEuCitQQVNTIHZpZXcuZ2V0RmxvYXQzMigzLCB0
cnVlKSB0aHJldyBleGNlcHRpb24gRXJyb3I6IElOREVYX1NJWkVfRVJSOiBET00gRXhjZXB0aW9u
IDEuCitQQVNTIHZpZXcuZ2V0RmxvYXQzMig3LCB0cnVlKSB0aHJldyBleGNlcHRpb24gRXJyb3I6
IElOREVYX1NJWkVfRVJSOiBET00gRXhjZXB0aW9uIDEuCitQQVNTIHZpZXcuZ2V0RmxvYXQzMigx
MCwgdHJ1ZSkgdGhyZXcgZXhjZXB0aW9uIEVycm9yOiBJTkRFWF9TSVpFX0VSUjogRE9NIEV4Y2Vw
dGlvbiAxLgorUEFTUyB2aWV3LmdldEZsb2F0MzIoMCwgZmFsc2UpIGlzIDEuMjMwMDAwMDE5MDcz
NDg2MworUEFTUyB2aWV3LmdldEZsb2F0MzIoMywgZmFsc2UpIGlzIDEuMjMwMDAwMDE5MDczNDg2
MworUEFTUyB2aWV3LmdldEZsb2F0MzIoNywgZmFsc2UpIGlzIDEuMjMwMDAwMDE5MDczNDg2Mwor
UEFTUyB2aWV3LmdldEZsb2F0MzIoMTAsIGZhbHNlKSBpcyAxLjIzMDAwMDAxOTA3MzQ4NjMKK1BB
U1Mgdmlldy5nZXRGbG9hdDMyKDAsIHRydWUpIHRocmV3IGV4Y2VwdGlvbiBFcnJvcjogSU5ERVhf
U0laRV9FUlI6IERPTSBFeGNlcHRpb24gMS4KK1BBU1Mgdmlldy5nZXRGbG9hdDMyKDMsIHRydWUp
IHRocmV3IGV4Y2VwdGlvbiBFcnJvcjogSU5ERVhfU0laRV9FUlI6IERPTSBFeGNlcHRpb24gMS4K
K1BBU1Mgdmlldy5nZXRGbG9hdDMyKDcsIHRydWUpIHRocmV3IGV4Y2VwdGlvbiBFcnJvcjogSU5E
RVhfU0laRV9FUlI6IERPTSBFeGNlcHRpb24gMS4KK1BBU1Mgdmlldy5nZXRGbG9hdDMyKDEwLCB0
cnVlKSB0aHJldyBleGNlcHRpb24gRXJyb3I6IElOREVYX1NJWkVfRVJSOiBET00gRXhjZXB0aW9u
IDEuCitQQVNTIHZpZXcuZ2V0RmxvYXQzMigwLCBmYWxzZSkgaXMgLTQ1NjIxLjM3MTA5Mzc1CitQ
QVNTIHZpZXcuZ2V0RmxvYXQzMigzLCBmYWxzZSkgaXMgLTQ1NjIxLjM3MTA5Mzc1CitQQVNTIHZp
ZXcuZ2V0RmxvYXQzMig3LCBmYWxzZSkgaXMgLTQ1NjIxLjM3MTA5Mzc1CitQQVNTIHZpZXcuZ2V0
RmxvYXQzMigxMCwgZmFsc2UpIGlzIC00NTYyMS4zNzEwOTM3NQorUEFTUyB2aWV3LmdldEZsb2F0
MzIoMCwgdHJ1ZSkgdGhyZXcgZXhjZXB0aW9uIEVycm9yOiBJTkRFWF9TSVpFX0VSUjogRE9NIEV4
Y2VwdGlvbiAxLgorUEFTUyB2aWV3LmdldEZsb2F0MzIoMywgdHJ1ZSkgdGhyZXcgZXhjZXB0aW9u
IEVycm9yOiBJTkRFWF9TSVpFX0VSUjogRE9NIEV4Y2VwdGlvbiAxLgorUEFTUyB2aWV3LmdldEZs
b2F0MzIoNywgdHJ1ZSkgdGhyZXcgZXhjZXB0aW9uIEVycm9yOiBJTkRFWF9TSVpFX0VSUjogRE9N
IEV4Y2VwdGlvbiAxLgorUEFTUyB2aWV3LmdldEZsb2F0MzIoMTAsIHRydWUpIHRocmV3IGV4Y2Vw
dGlvbiBFcnJvcjogSU5ERVhfU0laRV9FUlI6IERPTSBFeGNlcHRpb24gMS4KK1BBU1Mgdmlldy5n
ZXRGbG9hdDMyKDAsIGZhbHNlKSBpcyBOYU4KK1BBU1Mgdmlldy5nZXRGbG9hdDMyKDMsIGZhbHNl
KSBpcyBOYU4KK1BBU1Mgdmlldy5nZXRGbG9hdDMyKDcsIGZhbHNlKSBpcyBOYU4KK1BBU1Mgdmll
dy5nZXRGbG9hdDMyKDEwLCBmYWxzZSkgaXMgTmFOCitQQVNTIHZpZXcuZ2V0RmxvYXQzMigwLCB0
cnVlKSB0aHJldyBleGNlcHRpb24gRXJyb3I6IElOREVYX1NJWkVfRVJSOiBET00gRXhjZXB0aW9u
IDEuCitQQVNTIHZpZXcuZ2V0RmxvYXQzMigzLCB0cnVlKSB0aHJldyBleGNlcHRpb24gRXJyb3I6
IElOREVYX1NJWkVfRVJSOiBET00gRXhjZXB0aW9uIDEuCitQQVNTIHZpZXcuZ2V0RmxvYXQzMig3
LCB0cnVlKSB0aHJldyBleGNlcHRpb24gRXJyb3I6IElOREVYX1NJWkVfRVJSOiBET00gRXhjZXB0
aW9uIDEuCitQQVNTIHZpZXcuZ2V0RmxvYXQzMigxMCwgdHJ1ZSkgdGhyZXcgZXhjZXB0aW9uIEVy
cm9yOiBJTkRFWF9TSVpFX0VSUjogRE9NIEV4Y2VwdGlvbiAxLgorUEFTUyB2aWV3LmdldEZsb2F0
MzIoMCwgZmFsc2UpIGlzIC1OYU4KK1BBU1Mgdmlldy5nZXRGbG9hdDMyKDMsIGZhbHNlKSBpcyAt
TmFOCitQQVNTIHZpZXcuZ2V0RmxvYXQzMig3LCBmYWxzZSkgaXMgLU5hTgorUEFTUyB2aWV3Lmdl
dEZsb2F0MzIoMTAsIGZhbHNlKSBpcyAtTmFOCitQQVNTIHZpZXcuZ2V0RmxvYXQ2NCgwLCB0cnVl
KSB0aHJldyBleGNlcHRpb24gRXJyb3I6IElOREVYX1NJWkVfRVJSOiBET00gRXhjZXB0aW9uIDEu
CitQQVNTIHZpZXcuZ2V0RmxvYXQ2NCgzLCB0cnVlKSB0aHJldyBleGNlcHRpb24gRXJyb3I6IElO
REVYX1NJWkVfRVJSOiBET00gRXhjZXB0aW9uIDEuCitQQVNTIHZpZXcuZ2V0RmxvYXQ2NCg3LCB0
cnVlKSB0aHJldyBleGNlcHRpb24gRXJyb3I6IElOREVYX1NJWkVfRVJSOiBET00gRXhjZXB0aW9u
IDEuCitQQVNTIHZpZXcuZ2V0RmxvYXQ2NCgxMCwgdHJ1ZSkgdGhyZXcgZXhjZXB0aW9uIEVycm9y
OiBJTkRFWF9TSVpFX0VSUjogRE9NIEV4Y2VwdGlvbiAxLgorUEFTUyB2aWV3LmdldEZsb2F0NjQo
MCwgZmFsc2UpIGlzIDEwCitQQVNTIHZpZXcuZ2V0RmxvYXQ2NCgzLCBmYWxzZSkgaXMgMTAKK1BB
U1Mgdmlldy5nZXRGbG9hdDY0KDcsIGZhbHNlKSBpcyAxMAorUEFTUyB2aWV3LmdldEZsb2F0NjQo
MTAsIGZhbHNlKSBpcyAxMAorUEFTUyB2aWV3LmdldEZsb2F0NjQoMCwgdHJ1ZSkgdGhyZXcgZXhj
ZXB0aW9uIEVycm9yOiBJTkRFWF9TSVpFX0VSUjogRE9NIEV4Y2VwdGlvbiAxLgorUEFTUyB2aWV3
LmdldEZsb2F0NjQoMywgdHJ1ZSkgdGhyZXcgZXhjZXB0aW9uIEVycm9yOiBJTkRFWF9TSVpFX0VS
UjogRE9NIEV4Y2VwdGlvbiAxLgorUEFTUyB2aWV3LmdldEZsb2F0NjQoNywgdHJ1ZSkgdGhyZXcg
ZXhjZXB0aW9uIEVycm9yOiBJTkRFWF9TSVpFX0VSUjogRE9NIEV4Y2VwdGlvbiAxLgorUEFTUyB2
aWV3LmdldEZsb2F0NjQoMTAsIHRydWUpIHRocmV3IGV4Y2VwdGlvbiBFcnJvcjogSU5ERVhfU0la
RV9FUlI6IERPTSBFeGNlcHRpb24gMS4KK1BBU1Mgdmlldy5nZXRGbG9hdDY0KDAsIGZhbHNlKSBp
cyAxLjIzCitQQVNTIHZpZXcuZ2V0RmxvYXQ2NCgzLCBmYWxzZSkgaXMgMS4yMworUEFTUyB2aWV3
LmdldEZsb2F0NjQoNywgZmFsc2UpIGlzIDEuMjMKK1BBU1Mgdmlldy5nZXRGbG9hdDY0KDEwLCBm
YWxzZSkgaXMgMS4yMworUEFTUyB2aWV3LmdldEZsb2F0NjQoMCwgdHJ1ZSkgdGhyZXcgZXhjZXB0
aW9uIEVycm9yOiBJTkRFWF9TSVpFX0VSUjogRE9NIEV4Y2VwdGlvbiAxLgorUEFTUyB2aWV3Lmdl
dEZsb2F0NjQoMywgdHJ1ZSkgdGhyZXcgZXhjZXB0aW9uIEVycm9yOiBJTkRFWF9TSVpFX0VSUjog
RE9NIEV4Y2VwdGlvbiAxLgorUEFTUyB2aWV3LmdldEZsb2F0NjQoNywgdHJ1ZSkgdGhyZXcgZXhj
ZXB0aW9uIEVycm9yOiBJTkRFWF9TSVpFX0VSUjogRE9NIEV4Y2VwdGlvbiAxLgorUEFTUyB2aWV3
LmdldEZsb2F0NjQoMTAsIHRydWUpIHRocmV3IGV4Y2VwdGlvbiBFcnJvcjogSU5ERVhfU0laRV9F
UlI6IERPTSBFeGNlcHRpb24gMS4KK1BBU1Mgdmlldy5nZXRGbG9hdDY0KDAsIGZhbHNlKSBpcyAt
NjIxMzU3Ni40ODM5CitQQVNTIHZpZXcuZ2V0RmxvYXQ2NCgzLCBmYWxzZSkgaXMgLTYyMTM1NzYu
NDgzOQorUEFTUyB2aWV3LmdldEZsb2F0NjQoNywgZmFsc2UpIGlzIC02MjEzNTc2LjQ4MzkKK1BB
U1Mgdmlldy5nZXRGbG9hdDY0KDEwLCBmYWxzZSkgaXMgLTYyMTM1NzYuNDgzOQorUEFTUyB2aWV3
LmdldEZsb2F0NjQoMCwgdHJ1ZSkgdGhyZXcgZXhjZXB0aW9uIEVycm9yOiBJTkRFWF9TSVpFX0VS
UjogRE9NIEV4Y2VwdGlvbiAxLgorUEFTUyB2aWV3LmdldEZsb2F0NjQoMywgdHJ1ZSkgdGhyZXcg
ZXhjZXB0aW9uIEVycm9yOiBJTkRFWF9TSVpFX0VSUjogRE9NIEV4Y2VwdGlvbiAxLgorUEFTUyB2
aWV3LmdldEZsb2F0NjQoNywgdHJ1ZSkgdGhyZXcgZXhjZXB0aW9uIEVycm9yOiBJTkRFWF9TSVpF
X0VSUjogRE9NIEV4Y2VwdGlvbiAxLgorUEFTUyB2aWV3LmdldEZsb2F0NjQoMTAsIHRydWUpIHRo
cmV3IGV4Y2VwdGlvbiBFcnJvcjogSU5ERVhfU0laRV9FUlI6IERPTSBFeGNlcHRpb24gMS4KK1BB
U1Mgdmlldy5nZXRGbG9hdDY0KDAsIGZhbHNlKSBpcyBOYU4KK1BBU1Mgdmlldy5nZXRGbG9hdDY0
KDMsIGZhbHNlKSBpcyBOYU4KK1BBU1Mgdmlldy5nZXRGbG9hdDY0KDcsIGZhbHNlKSBpcyBOYU4K
K1BBU1Mgdmlldy5nZXRGbG9hdDY0KDEwLCBmYWxzZSkgaXMgTmFOCitQQVNTIHZpZXcuZ2V0Rmxv
YXQ2NCgwLCB0cnVlKSB0aHJldyBleGNlcHRpb24gRXJyb3I6IElOREVYX1NJWkVfRVJSOiBET00g
RXhjZXB0aW9uIDEuCitQQVNTIHZpZXcuZ2V0RmxvYXQ2NCgzLCB0cnVlKSB0aHJldyBleGNlcHRp
b24gRXJyb3I6IElOREVYX1NJWkVfRVJSOiBET00gRXhjZXB0aW9uIDEuCitQQVNTIHZpZXcuZ2V0
RmxvYXQ2NCg3LCB0cnVlKSB0aHJldyBleGNlcHRpb24gRXJyb3I6IElOREVYX1NJWkVfRVJSOiBE
T00gRXhjZXB0aW9uIDEuCitQQVNTIHZpZXcuZ2V0RmxvYXQ2NCgxMCwgdHJ1ZSkgdGhyZXcgZXhj
ZXB0aW9uIEVycm9yOiBJTkRFWF9TSVpFX0VSUjogRE9NIEV4Y2VwdGlvbiAxLgorUEFTUyB2aWV3
LmdldEZsb2F0NjQoMCwgZmFsc2UpIGlzIC1OYU4KK1BBU1Mgdmlldy5nZXRGbG9hdDY0KDMsIGZh
bHNlKSBpcyAtTmFOCitQQVNTIHZpZXcuZ2V0RmxvYXQ2NCg3LCBmYWxzZSkgaXMgLU5hTgorUEFT
UyB2aWV3LmdldEZsb2F0NjQoMTAsIGZhbHNlKSBpcyAtTmFOCisKK1Rlc3QgZm9yIHdyb25nIGFy
Z3VtZW50cyBwYXNzZWQgdG8gZ2V0IG1ldGhvZHMKK1BBU1Mgdmlldy5nZXRJbnQ4KCkgdGhyZXcg
ZXhjZXB0aW9uIFN5bnRheEVycm9yOiBOb3QgZW5vdWdoIGFyZ3VtZW50cy4KK1BBU1Mgdmlldy5n
ZXRVaW50OCgpIHRocmV3IGV4Y2VwdGlvbiBTeW50YXhFcnJvcjogTm90IGVub3VnaCBhcmd1bWVu
dHMuCitQQVNTIHZpZXcuZ2V0SW50MTYoKSB0aHJldyBleGNlcHRpb24gU3ludGF4RXJyb3I6IE5v
dCBlbm91Z2ggYXJndW1lbnRzLgorUEFTUyB2aWV3LmdldFVpbnQxNigpIHRocmV3IGV4Y2VwdGlv
biBTeW50YXhFcnJvcjogTm90IGVub3VnaCBhcmd1bWVudHMuCitQQVNTIHZpZXcuZ2V0SW50MzIo
KSB0aHJldyBleGNlcHRpb24gU3ludGF4RXJyb3I6IE5vdCBlbm91Z2ggYXJndW1lbnRzLgorUEFT
UyB2aWV3LmdldFVpbnQzMigpIHRocmV3IGV4Y2VwdGlvbiBTeW50YXhFcnJvcjogTm90IGVub3Vn
aCBhcmd1bWVudHMuCitQQVNTIHZpZXcuZ2V0RmxvYXQzMigpIHRocmV3IGV4Y2VwdGlvbiBTeW50
YXhFcnJvcjogTm90IGVub3VnaCBhcmd1bWVudHMuCitQQVNTIHZpZXcuZ2V0RmxvYXQ2NCgpIHRo
cmV3IGV4Y2VwdGlvbiBTeW50YXhFcnJvcjogTm90IGVub3VnaCBhcmd1bWVudHMuCisKK1Rlc3Qg
Zm9yIHNldCBtZXRob2RzIHRoYXQgd29yaworUEFTUyB2aWV3LnNldEludDgoMCwgMCkgaXMgdW5k
ZWZpbmVkLgorUEFTUyB2aWV3LmdldEludDgoMCkgaXMgMAorUEFTUyB2aWV3LnNldEludDgoOCwg
LTEyOCkgaXMgdW5kZWZpbmVkLgorUEFTUyB2aWV3LmdldEludDgoOCkgaXMgLTEyOAorUEFTUyB2
aWV3LnNldEludDgoMTUsIC0xKSBpcyB1bmRlZmluZWQuCitQQVNTIHZpZXcuZ2V0SW50OCgxNSkg
aXMgLTEKK1BBU1Mgdmlldy5zZXRVaW50OCgwLCAwKSBpcyB1bmRlZmluZWQuCitQQVNTIHZpZXcu
Z2V0VWludDgoMCkgaXMgMAorUEFTUyB2aWV3LnNldFVpbnQ4KDgsIDEyOCkgaXMgdW5kZWZpbmVk
LgorUEFTUyB2aWV3LmdldFVpbnQ4KDgpIGlzIDEyOAorUEFTUyB2aWV3LnNldFVpbnQ4KDE1LCAy
NTUpIGlzIHVuZGVmaW5lZC4KK1BBU1Mgdmlldy5nZXRVaW50OCgxNSkgaXMgMjU1CitQQVNTIHZp
ZXcuc2V0SW50MTYoMCwgMjU2LCB0cnVlKSBpcyB1bmRlZmluZWQuCitQQVNTIHZpZXcuZ2V0SW50
MTYoMCwgdHJ1ZSkgaXMgMjU2CitQQVNTIHZpZXcuc2V0SW50MTYoNSwgMjYyMTMsIHRydWUpIGlz
IHVuZGVmaW5lZC4KK1BBU1Mgdmlldy5nZXRJbnQxNig1LCB0cnVlKSBpcyAyNjIxMworUEFTUyB2
aWV3LnNldEludDE2KDksIC0zMjEyNywgdHJ1ZSkgaXMgdW5kZWZpbmVkLgorUEFTUyB2aWV3Lmdl
dEludDE2KDksIHRydWUpIGlzIC0zMjEyNworUEFTUyB2aWV3LnNldEludDE2KDE0LCAtMiwgdHJ1
ZSkgaXMgdW5kZWZpbmVkLgorUEFTUyB2aWV3LmdldEludDE2KDE0LCB0cnVlKSBpcyAtMgorUEFT
UyB2aWV3LnNldEludDE2KDAsIDEpIGlzIHVuZGVmaW5lZC4KK1BBU1Mgdmlldy5nZXRJbnQxNigw
KSBpcyAxCitQQVNTIHZpZXcuc2V0SW50MTYoNSwgMjU5NTgpIGlzIHVuZGVmaW5lZC4KK1BBU1Mg
dmlldy5nZXRJbnQxNig1KSBpcyAyNTk1OAorUEFTUyB2aWV3LnNldEludDE2KDksIC0zMjM4Mikg
aXMgdW5kZWZpbmVkLgorUEFTUyB2aWV3LmdldEludDE2KDkpIGlzIC0zMjM4MgorUEFTUyB2aWV3
LnNldEludDE2KDE0LCAtMjU3KSBpcyB1bmRlZmluZWQuCitQQVNTIHZpZXcuZ2V0SW50MTYoMTQp
IGlzIC0yNTcKK1BBU1Mgdmlldy5zZXRVaW50MTYoMCwgMjU2LCB0cnVlKSBpcyB1bmRlZmluZWQu
CitQQVNTIHZpZXcuZ2V0VWludDE2KDAsIHRydWUpIGlzIDI1NgorUEFTUyB2aWV3LnNldFVpbnQx
Nig1LCAyNjIxMywgdHJ1ZSkgaXMgdW5kZWZpbmVkLgorUEFTUyB2aWV3LmdldFVpbnQxNig1LCB0
cnVlKSBpcyAyNjIxMworUEFTUyB2aWV3LnNldFVpbnQxNig5LCAzMzQwOSwgdHJ1ZSkgaXMgdW5k
ZWZpbmVkLgorUEFTUyB2aWV3LmdldFVpbnQxNig5LCB0cnVlKSBpcyAzMzQwOQorUEFTUyB2aWV3
LnNldFVpbnQxNigxNCwgNjU1MzQsIHRydWUpIGlzIHVuZGVmaW5lZC4KK1BBU1Mgdmlldy5nZXRV
aW50MTYoMTQsIHRydWUpIGlzIDY1NTM0CitQQVNTIHZpZXcuc2V0VWludDE2KDAsIDEpIGlzIHVu
ZGVmaW5lZC4KK1BBU1Mgdmlldy5nZXRVaW50MTYoMCkgaXMgMQorUEFTUyB2aWV3LnNldFVpbnQx
Nig1LCAyNTk1OCkgaXMgdW5kZWZpbmVkLgorUEFTUyB2aWV3LmdldFVpbnQxNig1KSBpcyAyNTk1
OAorUEFTUyB2aWV3LnNldFVpbnQxNig5LCAzMzE1NCkgaXMgdW5kZWZpbmVkLgorUEFTUyB2aWV3
LmdldFVpbnQxNig5KSBpcyAzMzE1NAorUEFTUyB2aWV3LnNldFVpbnQxNigxNCwgNjUyNzkpIGlz
IHVuZGVmaW5lZC4KK1BBU1Mgdmlldy5nZXRVaW50MTYoMTQpIGlzIDY1Mjc5CitQQVNTIHZpZXcu
c2V0SW50MzIoMCwgNTA0NjI5NzYsIHRydWUpIGlzIHVuZGVmaW5lZC4KK1BBU1Mgdmlldy5nZXRJ
bnQzMigwLCB0cnVlKSBpcyA1MDQ2Mjk3NgorUEFTUyB2aWV3LnNldEludDMyKDMsIDE3MTc5MjA3
NzEsIHRydWUpIGlzIHVuZGVmaW5lZC4KK1BBU1Mgdmlldy5nZXRJbnQzMigzLCB0cnVlKSBpcyAx
NzE3OTIwNzcxCitQQVNTIHZpZXcuc2V0SW50MzIoNiwgLTIxMjIyOTEzNTQsIHRydWUpIGlzIHVu
ZGVmaW5lZC4KK1BBU1Mgdmlldy5nZXRJbnQzMig2LCB0cnVlKSBpcyAtMjEyMjI5MTM1NAorUEFT
UyB2aWV3LnNldEludDMyKDksIC01ODQ5MDIzOSwgdHJ1ZSkgaXMgdW5kZWZpbmVkLgorUEFTUyB2
aWV3LmdldEludDMyKDksIHRydWUpIGlzIC01ODQ5MDIzOQorUEFTUyB2aWV3LnNldEludDMyKDEy
LCAtNjYwNTIsIHRydWUpIGlzIHVuZGVmaW5lZC4KK1BBU1Mgdmlldy5nZXRJbnQzMigxMiwgdHJ1
ZSkgaXMgLTY2MDUyCitQQVNTIHZpZXcuc2V0SW50MzIoMCwgNjYwNTEpIGlzIHVuZGVmaW5lZC4K
K1BBU1Mgdmlldy5nZXRJbnQzMigwKSBpcyA2NjA1MQorUEFTUyB2aWV3LnNldEludDMyKDMsIDU2
OTExMjA2KSBpcyB1bmRlZmluZWQuCitQQVNTIHZpZXcuZ2V0SW50MzIoMykgaXMgNTY5MTEyMDYK
K1BBU1Mgdmlldy5zZXRJbnQzMig2LCAxNzE4MDU5MTM3KSBpcyB1bmRlZmluZWQuCitQQVNTIHZp
ZXcuZ2V0SW50MzIoNikgaXMgMTcxODA1OTEzNworUEFTUyB2aWV3LnNldEludDMyKDksIC0yMTIy
MTUyOTY0KSBpcyB1bmRlZmluZWQuCitQQVNTIHZpZXcuZ2V0SW50MzIoOSkgaXMgLTIxMjIxNTI5
NjQKK1BBU1Mgdmlldy5zZXRJbnQzMigxMiwgLTUwNDYyOTc3KSBpcyB1bmRlZmluZWQuCitQQVNT
IHZpZXcuZ2V0SW50MzIoMTIpIGlzIC01MDQ2Mjk3NworUEFTUyB2aWV3LnNldFVpbnQzMigwLCA1
MDQ2Mjk3NiwgdHJ1ZSkgaXMgdW5kZWZpbmVkLgorUEFTUyB2aWV3LmdldFVpbnQzMigwLCB0cnVl
KSBpcyA1MDQ2Mjk3NgorUEFTUyB2aWV3LnNldFVpbnQzMigzLCAxNzE3OTIwNzcxLCB0cnVlKSBp
cyB1bmRlZmluZWQuCitQQVNTIHZpZXcuZ2V0VWludDMyKDMsIHRydWUpIGlzIDE3MTc5MjA3NzEK
K1BBU1Mgdmlldy5zZXRVaW50MzIoNiwgMjE3MjY3NTk0MiwgdHJ1ZSkgaXMgdW5kZWZpbmVkLgor
UEFTUyB2aWV3LmdldFVpbnQzMig2LCB0cnVlKSBpcyAyMTcyNjc1OTQyCitQQVNTIHZpZXcuc2V0
VWludDMyKDksIDQyMzY0NzcwNTcsIHRydWUpIGlzIHVuZGVmaW5lZC4KK1BBU1Mgdmlldy5nZXRV
aW50MzIoOSwgdHJ1ZSkgaXMgNDIzNjQ3NzA1NworUEFTUyB2aWV3LnNldFVpbnQzMigxMiwgNDI5
NDkwMTI0NCwgdHJ1ZSkgaXMgdW5kZWZpbmVkLgorUEFTUyB2aWV3LmdldFVpbnQzMigxMiwgdHJ1
ZSkgaXMgNDI5NDkwMTI0NAorUEFTUyB2aWV3LnNldFVpbnQzMigwLCA2NjA1MSkgaXMgdW5kZWZp
bmVkLgorUEFTUyB2aWV3LmdldFVpbnQzMigwKSBpcyA2NjA1MQorUEFTUyB2aWV3LnNldFVpbnQz
MigzLCA1NjkxMTIwNikgaXMgdW5kZWZpbmVkLgorUEFTUyB2aWV3LmdldFVpbnQzMigzKSBpcyA1
NjkxMTIwNgorUEFTUyB2aWV3LnNldFVpbnQzMig2LCAxNzE4MDU5MTM3KSBpcyB1bmRlZmluZWQu
CitQQVNTIHZpZXcuZ2V0VWludDMyKDYpIGlzIDE3MTgwNTkxMzcKK1BBU1Mgdmlldy5zZXRVaW50
MzIoOSwgMjE3MjgxNDMzMikgaXMgdW5kZWZpbmVkLgorUEFTUyB2aWV3LmdldFVpbnQzMig5KSBp
cyAyMTcyODE0MzMyCitQQVNTIHZpZXcuc2V0VWludDMyKDEyLCA0MjQ0NTA0MzE5KSBpcyB1bmRl
ZmluZWQuCitQQVNTIHZpZXcuZ2V0VWludDMyKDEyKSBpcyA0MjQ0NTA0MzE5CitQQVNTIHZpZXcu
c2V0RmxvYXQzMigwLCAxMCwgdHJ1ZSkgaXMgdW5kZWZpbmVkLgorUEFTUyB2aWV3LmdldEZsb2F0
MzIoMCwgdHJ1ZSkgaXMgMTAKK1BBU1Mgdmlldy5zZXRGbG9hdDMyKDMsIDEwLCB0cnVlKSBpcyB1
bmRlZmluZWQuCitQQVNTIHZpZXcuZ2V0RmxvYXQzMigzLCB0cnVlKSBpcyAxMAorUEFTUyB2aWV3
LnNldEZsb2F0MzIoNywgMTAsIHRydWUpIGlzIHVuZGVmaW5lZC4KK1BBU1Mgdmlldy5nZXRGbG9h
dDMyKDcsIHRydWUpIGlzIDEwCitQQVNTIHZpZXcuc2V0RmxvYXQzMigxMCwgMTAsIHRydWUpIGlz
IHVuZGVmaW5lZC4KK1BBU1Mgdmlldy5nZXRGbG9hdDMyKDEwLCB0cnVlKSBpcyAxMAorUEFTUyB2
aWV3LnNldEZsb2F0MzIoMCwgMTAsIGZhbHNlKSBpcyB1bmRlZmluZWQuCitQQVNTIHZpZXcuZ2V0
RmxvYXQzMigwLCBmYWxzZSkgaXMgMTAKK1BBU1Mgdmlldy5zZXRGbG9hdDMyKDMsIDEwLCBmYWxz
ZSkgaXMgdW5kZWZpbmVkLgorUEFTUyB2aWV3LmdldEZsb2F0MzIoMywgZmFsc2UpIGlzIDEwCitQ
QVNTIHZpZXcuc2V0RmxvYXQzMig3LCAxMCwgZmFsc2UpIGlzIHVuZGVmaW5lZC4KK1BBU1Mgdmll
dy5nZXRGbG9hdDMyKDcsIGZhbHNlKSBpcyAxMAorUEFTUyB2aWV3LnNldEZsb2F0MzIoMTAsIDEw
LCBmYWxzZSkgaXMgdW5kZWZpbmVkLgorUEFTUyB2aWV3LmdldEZsb2F0MzIoMTAsIGZhbHNlKSBp
cyAxMAorUEFTUyB2aWV3LnNldEZsb2F0MzIoMCwgMS4yMzAwMDAwMTkwNzM0ODYzLCB0cnVlKSBp
cyB1bmRlZmluZWQuCitQQVNTIHZpZXcuZ2V0RmxvYXQzMigwLCB0cnVlKSBpcyAxLjIzMDAwMDAx
OTA3MzQ4NjMKK1BBU1Mgdmlldy5zZXRGbG9hdDMyKDMsIDEuMjMwMDAwMDE5MDczNDg2MywgdHJ1
ZSkgaXMgdW5kZWZpbmVkLgorUEFTUyB2aWV3LmdldEZsb2F0MzIoMywgdHJ1ZSkgaXMgMS4yMzAw
MDAwMTkwNzM0ODYzCitQQVNTIHZpZXcuc2V0RmxvYXQzMig3LCAxLjIzMDAwMDAxOTA3MzQ4NjMs
IHRydWUpIGlzIHVuZGVmaW5lZC4KK1BBU1Mgdmlldy5nZXRGbG9hdDMyKDcsIHRydWUpIGlzIDEu
MjMwMDAwMDE5MDczNDg2MworUEFTUyB2aWV3LnNldEZsb2F0MzIoMTAsIDEuMjMwMDAwMDE5MDcz
NDg2MywgdHJ1ZSkgaXMgdW5kZWZpbmVkLgorUEFTUyB2aWV3LmdldEZsb2F0MzIoMTAsIHRydWUp
IGlzIDEuMjMwMDAwMDE5MDczNDg2MworUEFTUyB2aWV3LnNldEZsb2F0MzIoMCwgMS4yMzAwMDAw
MTkwNzM0ODYzLCBmYWxzZSkgaXMgdW5kZWZpbmVkLgorUEFTUyB2aWV3LmdldEZsb2F0MzIoMCwg
ZmFsc2UpIGlzIDEuMjMwMDAwMDE5MDczNDg2MworUEFTUyB2aWV3LnNldEZsb2F0MzIoMywgMS4y
MzAwMDAwMTkwNzM0ODYzLCBmYWxzZSkgaXMgdW5kZWZpbmVkLgorUEFTUyB2aWV3LmdldEZsb2F0
MzIoMywgZmFsc2UpIGlzIDEuMjMwMDAwMDE5MDczNDg2MworUEFTUyB2aWV3LnNldEZsb2F0MzIo
NywgMS4yMzAwMDAwMTkwNzM0ODYzLCBmYWxzZSkgaXMgdW5kZWZpbmVkLgorUEFTUyB2aWV3Lmdl
dEZsb2F0MzIoNywgZmFsc2UpIGlzIDEuMjMwMDAwMDE5MDczNDg2MworUEFTUyB2aWV3LnNldEZs
b2F0MzIoMTAsIDEuMjMwMDAwMDE5MDczNDg2MywgZmFsc2UpIGlzIHVuZGVmaW5lZC4KK1BBU1Mg
dmlldy5nZXRGbG9hdDMyKDEwLCBmYWxzZSkgaXMgMS4yMzAwMDAwMTkwNzM0ODYzCitQQVNTIHZp
ZXcuc2V0RmxvYXQzMigwLCAtNDU2MjEuMzcxMDkzNzUsIHRydWUpIGlzIHVuZGVmaW5lZC4KK1BB
U1Mgdmlldy5nZXRGbG9hdDMyKDAsIHRydWUpIGlzIC00NTYyMS4zNzEwOTM3NQorUEFTUyB2aWV3
LnNldEZsb2F0MzIoMywgLTQ1NjIxLjM3MTA5Mzc1LCB0cnVlKSBpcyB1bmRlZmluZWQuCitQQVNT
IHZpZXcuZ2V0RmxvYXQzMigzLCB0cnVlKSBpcyAtNDU2MjEuMzcxMDkzNzUKK1BBU1Mgdmlldy5z
ZXRGbG9hdDMyKDcsIC00NTYyMS4zNzEwOTM3NSwgdHJ1ZSkgaXMgdW5kZWZpbmVkLgorUEFTUyB2
aWV3LmdldEZsb2F0MzIoNywgdHJ1ZSkgaXMgLTQ1NjIxLjM3MTA5Mzc1CitQQVNTIHZpZXcuc2V0
RmxvYXQzMigxMCwgLTQ1NjIxLjM3MTA5Mzc1LCB0cnVlKSBpcyB1bmRlZmluZWQuCitQQVNTIHZp
ZXcuZ2V0RmxvYXQzMigxMCwgdHJ1ZSkgaXMgLTQ1NjIxLjM3MTA5Mzc1CitQQVNTIHZpZXcuc2V0
RmxvYXQzMigwLCAtNDU2MjEuMzcxMDkzNzUsIGZhbHNlKSBpcyB1bmRlZmluZWQuCitQQVNTIHZp
ZXcuZ2V0RmxvYXQzMigwLCBmYWxzZSkgaXMgLTQ1NjIxLjM3MTA5Mzc1CitQQVNTIHZpZXcuc2V0
RmxvYXQzMigzLCAtNDU2MjEuMzcxMDkzNzUsIGZhbHNlKSBpcyB1bmRlZmluZWQuCitQQVNTIHZp
ZXcuZ2V0RmxvYXQzMigzLCBmYWxzZSkgaXMgLTQ1NjIxLjM3MTA5Mzc1CitQQVNTIHZpZXcuc2V0
RmxvYXQzMig3LCAtNDU2MjEuMzcxMDkzNzUsIGZhbHNlKSBpcyB1bmRlZmluZWQuCitQQVNTIHZp
ZXcuZ2V0RmxvYXQzMig3LCBmYWxzZSkgaXMgLTQ1NjIxLjM3MTA5Mzc1CitQQVNTIHZpZXcuc2V0
RmxvYXQzMigxMCwgLTQ1NjIxLjM3MTA5Mzc1LCBmYWxzZSkgaXMgdW5kZWZpbmVkLgorUEFTUyB2
aWV3LmdldEZsb2F0MzIoMTAsIGZhbHNlKSBpcyAtNDU2MjEuMzcxMDkzNzUKK1BBU1Mgdmlldy5z
ZXRGbG9hdDMyKDAsIE5hTiwgdHJ1ZSkgaXMgdW5kZWZpbmVkLgorUEFTUyB2aWV3LmdldEZsb2F0
MzIoMCwgdHJ1ZSkgaXMgTmFOCitQQVNTIHZpZXcuc2V0RmxvYXQzMigzLCBOYU4sIHRydWUpIGlz
IHVuZGVmaW5lZC4KK1BBU1Mgdmlldy5nZXRGbG9hdDMyKDMsIHRydWUpIGlzIE5hTgorUEFTUyB2
aWV3LnNldEZsb2F0MzIoNywgTmFOLCB0cnVlKSBpcyB1bmRlZmluZWQuCitQQVNTIHZpZXcuZ2V0
RmxvYXQzMig3LCB0cnVlKSBpcyBOYU4KK1BBU1Mgdmlldy5zZXRGbG9hdDMyKDEwLCBOYU4sIHRy
dWUpIGlzIHVuZGVmaW5lZC4KK1BBU1Mgdmlldy5nZXRGbG9hdDMyKDEwLCB0cnVlKSBpcyBOYU4K
K1BBU1Mgdmlldy5zZXRGbG9hdDMyKDAsIE5hTiwgZmFsc2UpIGlzIHVuZGVmaW5lZC4KK1BBU1Mg
dmlldy5nZXRGbG9hdDMyKDAsIGZhbHNlKSBpcyBOYU4KK1BBU1Mgdmlldy5zZXRGbG9hdDMyKDMs
IE5hTiwgZmFsc2UpIGlzIHVuZGVmaW5lZC4KK1BBU1Mgdmlldy5nZXRGbG9hdDMyKDMsIGZhbHNl
KSBpcyBOYU4KK1BBU1Mgdmlldy5zZXRGbG9hdDMyKDcsIE5hTiwgZmFsc2UpIGlzIHVuZGVmaW5l
ZC4KK1BBU1Mgdmlldy5nZXRGbG9hdDMyKDcsIGZhbHNlKSBpcyBOYU4KK1BBU1Mgdmlldy5zZXRG
bG9hdDMyKDEwLCBOYU4sIGZhbHNlKSBpcyB1bmRlZmluZWQuCitQQVNTIHZpZXcuZ2V0RmxvYXQz
MigxMCwgZmFsc2UpIGlzIE5hTgorUEFTUyB2aWV3LnNldEZsb2F0MzIoMCwgLU5hTiwgdHJ1ZSkg
aXMgdW5kZWZpbmVkLgorUEFTUyB2aWV3LmdldEZsb2F0MzIoMCwgdHJ1ZSkgaXMgLU5hTgorUEFT
UyB2aWV3LnNldEZsb2F0MzIoMywgLU5hTiwgdHJ1ZSkgaXMgdW5kZWZpbmVkLgorUEFTUyB2aWV3
LmdldEZsb2F0MzIoMywgdHJ1ZSkgaXMgLU5hTgorUEFTUyB2aWV3LnNldEZsb2F0MzIoNywgLU5h
TiwgdHJ1ZSkgaXMgdW5kZWZpbmVkLgorUEFTUyB2aWV3LmdldEZsb2F0MzIoNywgdHJ1ZSkgaXMg
LU5hTgorUEFTUyB2aWV3LnNldEZsb2F0MzIoMTAsIC1OYU4sIHRydWUpIGlzIHVuZGVmaW5lZC4K
K1BBU1Mgdmlldy5nZXRGbG9hdDMyKDEwLCB0cnVlKSBpcyAtTmFOCitQQVNTIHZpZXcuc2V0Rmxv
YXQzMigwLCAtTmFOLCBmYWxzZSkgaXMgdW5kZWZpbmVkLgorUEFTUyB2aWV3LmdldEZsb2F0MzIo
MCwgZmFsc2UpIGlzIC1OYU4KK1BBU1Mgdmlldy5zZXRGbG9hdDMyKDMsIC1OYU4sIGZhbHNlKSBp
cyB1bmRlZmluZWQuCitQQVNTIHZpZXcuZ2V0RmxvYXQzMigzLCBmYWxzZSkgaXMgLU5hTgorUEFT
UyB2aWV3LnNldEZsb2F0MzIoNywgLU5hTiwgZmFsc2UpIGlzIHVuZGVmaW5lZC4KK1BBU1Mgdmll
dy5nZXRGbG9hdDMyKDcsIGZhbHNlKSBpcyAtTmFOCitQQVNTIHZpZXcuc2V0RmxvYXQzMigxMCwg
LU5hTiwgZmFsc2UpIGlzIHVuZGVmaW5lZC4KK1BBU1Mgdmlldy5nZXRGbG9hdDMyKDEwLCBmYWxz
ZSkgaXMgLU5hTgorUEFTUyB2aWV3LnNldEZsb2F0NjQoMCwgMTAsIHRydWUpIGlzIHVuZGVmaW5l
ZC4KK1BBU1Mgdmlldy5nZXRGbG9hdDY0KDAsIHRydWUpIGlzIDEwCitQQVNTIHZpZXcuc2V0Rmxv
YXQ2NCgzLCAxMCwgdHJ1ZSkgaXMgdW5kZWZpbmVkLgorUEFTUyB2aWV3LmdldEZsb2F0NjQoMywg
dHJ1ZSkgaXMgMTAKK1BBU1Mgdmlldy5zZXRGbG9hdDY0KDcsIDEwLCB0cnVlKSBpcyB1bmRlZmlu
ZWQuCitQQVNTIHZpZXcuZ2V0RmxvYXQ2NCg3LCB0cnVlKSBpcyAxMAorUEFTUyB2aWV3LnNldEZs
b2F0NjQoMTAsIDEwLCB0cnVlKSBpcyB1bmRlZmluZWQuCitQQVNTIHZpZXcuZ2V0RmxvYXQ2NCgx
MCwgdHJ1ZSkgaXMgMTAKK1BBU1Mgdmlldy5zZXRGbG9hdDY0KDAsIDEwLCBmYWxzZSkgaXMgdW5k
ZWZpbmVkLgorUEFTUyB2aWV3LmdldEZsb2F0NjQoMCwgZmFsc2UpIGlzIDEwCitQQVNTIHZpZXcu
c2V0RmxvYXQ2NCgzLCAxMCwgZmFsc2UpIGlzIHVuZGVmaW5lZC4KK1BBU1Mgdmlldy5nZXRGbG9h
dDY0KDMsIGZhbHNlKSBpcyAxMAorUEFTUyB2aWV3LnNldEZsb2F0NjQoNywgMTAsIGZhbHNlKSBp
cyB1bmRlZmluZWQuCitQQVNTIHZpZXcuZ2V0RmxvYXQ2NCg3LCBmYWxzZSkgaXMgMTAKK1BBU1Mg
dmlldy5zZXRGbG9hdDY0KDEwLCAxMCwgZmFsc2UpIGlzIHVuZGVmaW5lZC4KK1BBU1Mgdmlldy5n
ZXRGbG9hdDY0KDEwLCBmYWxzZSkgaXMgMTAKK1BBU1Mgdmlldy5zZXRGbG9hdDY0KDAsIDEuMjMs
IHRydWUpIGlzIHVuZGVmaW5lZC4KK1BBU1Mgdmlldy5nZXRGbG9hdDY0KDAsIHRydWUpIGlzIDEu
MjMKK1BBU1Mgdmlldy5zZXRGbG9hdDY0KDMsIDEuMjMsIHRydWUpIGlzIHVuZGVmaW5lZC4KK1BB
U1Mgdmlldy5nZXRGbG9hdDY0KDMsIHRydWUpIGlzIDEuMjMKK1BBU1Mgdmlldy5zZXRGbG9hdDY0
KDcsIDEuMjMsIHRydWUpIGlzIHVuZGVmaW5lZC4KK1BBU1Mgdmlldy5nZXRGbG9hdDY0KDcsIHRy
dWUpIGlzIDEuMjMKK1BBU1Mgdmlldy5zZXRGbG9hdDY0KDEwLCAxLjIzLCB0cnVlKSBpcyB1bmRl
ZmluZWQuCitQQVNTIHZpZXcuZ2V0RmxvYXQ2NCgxMCwgdHJ1ZSkgaXMgMS4yMworUEFTUyB2aWV3
LnNldEZsb2F0NjQoMCwgMS4yMywgZmFsc2UpIGlzIHVuZGVmaW5lZC4KK1BBU1Mgdmlldy5nZXRG
bG9hdDY0KDAsIGZhbHNlKSBpcyAxLjIzCitQQVNTIHZpZXcuc2V0RmxvYXQ2NCgzLCAxLjIzLCBm
YWxzZSkgaXMgdW5kZWZpbmVkLgorUEFTUyB2aWV3LmdldEZsb2F0NjQoMywgZmFsc2UpIGlzIDEu
MjMKK1BBU1Mgdmlldy5zZXRGbG9hdDY0KDcsIDEuMjMsIGZhbHNlKSBpcyB1bmRlZmluZWQuCitQ
QVNTIHZpZXcuZ2V0RmxvYXQ2NCg3LCBmYWxzZSkgaXMgMS4yMworUEFTUyB2aWV3LnNldEZsb2F0
NjQoMTAsIDEuMjMsIGZhbHNlKSBpcyB1bmRlZmluZWQuCitQQVNTIHZpZXcuZ2V0RmxvYXQ2NCgx
MCwgZmFsc2UpIGlzIDEuMjMKK1BBU1Mgdmlldy5zZXRGbG9hdDY0KDAsIC02MjEzNTc2LjQ4Mzks
IHRydWUpIGlzIHVuZGVmaW5lZC4KK1BBU1Mgdmlldy5nZXRGbG9hdDY0KDAsIHRydWUpIGlzIC02
MjEzNTc2LjQ4MzkKK1BBU1Mgdmlldy5zZXRGbG9hdDY0KDMsIC02MjEzNTc2LjQ4MzksIHRydWUp
IGlzIHVuZGVmaW5lZC4KK1BBU1Mgdmlldy5nZXRGbG9hdDY0KDMsIHRydWUpIGlzIC02MjEzNTc2
LjQ4MzkKK1BBU1Mgdmlldy5zZXRGbG9hdDY0KDcsIC02MjEzNTc2LjQ4MzksIHRydWUpIGlzIHVu
ZGVmaW5lZC4KK1BBU1Mgdmlldy5nZXRGbG9hdDY0KDcsIHRydWUpIGlzIC02MjEzNTc2LjQ4MzkK
K1BBU1Mgdmlldy5zZXRGbG9hdDY0KDEwLCAtNjIxMzU3Ni40ODM5LCB0cnVlKSBpcyB1bmRlZmlu
ZWQuCitQQVNTIHZpZXcuZ2V0RmxvYXQ2NCgxMCwgdHJ1ZSkgaXMgLTYyMTM1NzYuNDgzOQorUEFT
UyB2aWV3LnNldEZsb2F0NjQoMCwgLTYyMTM1NzYuNDgzOSwgZmFsc2UpIGlzIHVuZGVmaW5lZC4K
K1BBU1Mgdmlldy5nZXRGbG9hdDY0KDAsIGZhbHNlKSBpcyAtNjIxMzU3Ni40ODM5CitQQVNTIHZp
ZXcuc2V0RmxvYXQ2NCgzLCAtNjIxMzU3Ni40ODM5LCBmYWxzZSkgaXMgdW5kZWZpbmVkLgorUEFT
UyB2aWV3LmdldEZsb2F0NjQoMywgZmFsc2UpIGlzIC02MjEzNTc2LjQ4MzkKK1BBU1Mgdmlldy5z
ZXRGbG9hdDY0KDcsIC02MjEzNTc2LjQ4MzksIGZhbHNlKSBpcyB1bmRlZmluZWQuCitQQVNTIHZp
ZXcuZ2V0RmxvYXQ2NCg3LCBmYWxzZSkgaXMgLTYyMTM1NzYuNDgzOQorUEFTUyB2aWV3LnNldEZs
b2F0NjQoMTAsIC02MjEzNTc2LjQ4MzksIGZhbHNlKSBpcyB1bmRlZmluZWQuCitQQVNTIHZpZXcu
Z2V0RmxvYXQ2NCgxMCwgZmFsc2UpIGlzIC02MjEzNTc2LjQ4MzkKK1BBU1Mgdmlldy5zZXRGbG9h
dDY0KDAsIE5hTiwgdHJ1ZSkgaXMgdW5kZWZpbmVkLgorUEFTUyB2aWV3LmdldEZsb2F0NjQoMCwg
dHJ1ZSkgaXMgTmFOCitQQVNTIHZpZXcuc2V0RmxvYXQ2NCgzLCBOYU4sIHRydWUpIGlzIHVuZGVm
aW5lZC4KK1BBU1Mgdmlldy5nZXRGbG9hdDY0KDMsIHRydWUpIGlzIE5hTgorUEFTUyB2aWV3LnNl
dEZsb2F0NjQoNywgTmFOLCB0cnVlKSBpcyB1bmRlZmluZWQuCitQQVNTIHZpZXcuZ2V0RmxvYXQ2
NCg3LCB0cnVlKSBpcyBOYU4KK1BBU1Mgdmlldy5zZXRGbG9hdDY0KDEwLCBOYU4sIHRydWUpIGlz
IHVuZGVmaW5lZC4KK1BBU1Mgdmlldy5nZXRGbG9hdDY0KDEwLCB0cnVlKSBpcyBOYU4KK1BBU1Mg
dmlldy5zZXRGbG9hdDY0KDAsIE5hTiwgZmFsc2UpIGlzIHVuZGVmaW5lZC4KK1BBU1Mgdmlldy5n
ZXRGbG9hdDY0KDAsIGZhbHNlKSBpcyBOYU4KK1BBU1Mgdmlldy5zZXRGbG9hdDY0KDMsIE5hTiwg
ZmFsc2UpIGlzIHVuZGVmaW5lZC4KK1BBU1Mgdmlldy5nZXRGbG9hdDY0KDMsIGZhbHNlKSBpcyBO
YU4KK1BBU1Mgdmlldy5zZXRGbG9hdDY0KDcsIE5hTiwgZmFsc2UpIGlzIHVuZGVmaW5lZC4KK1BB
U1Mgdmlldy5nZXRGbG9hdDY0KDcsIGZhbHNlKSBpcyBOYU4KK1BBU1Mgdmlldy5zZXRGbG9hdDY0
KDEwLCBOYU4sIGZhbHNlKSBpcyB1bmRlZmluZWQuCitQQVNTIHZpZXcuZ2V0RmxvYXQ2NCgxMCwg
ZmFsc2UpIGlzIE5hTgorUEFTUyB2aWV3LnNldEZsb2F0NjQoMCwgLU5hTiwgdHJ1ZSkgaXMgdW5k
ZWZpbmVkLgorUEFTUyB2aWV3LmdldEZsb2F0NjQoMCwgdHJ1ZSkgaXMgLU5hTgorUEFTUyB2aWV3
LnNldEZsb2F0NjQoMywgLU5hTiwgdHJ1ZSkgaXMgdW5kZWZpbmVkLgorUEFTUyB2aWV3LmdldEZs
b2F0NjQoMywgdHJ1ZSkgaXMgLU5hTgorUEFTUyB2aWV3LnNldEZsb2F0NjQoNywgLU5hTiwgdHJ1
ZSkgaXMgdW5kZWZpbmVkLgorUEFTUyB2aWV3LmdldEZsb2F0NjQoNywgdHJ1ZSkgaXMgLU5hTgor
UEFTUyB2aWV3LnNldEZsb2F0NjQoMTAsIC1OYU4sIHRydWUpIGlzIHVuZGVmaW5lZC4KK1BBU1Mg
dmlldy5nZXRGbG9hdDY0KDEwLCB0cnVlKSBpcyAtTmFOCitQQVNTIHZpZXcuc2V0RmxvYXQ2NCgw
LCAtTmFOLCBmYWxzZSkgaXMgdW5kZWZpbmVkLgorUEFTUyB2aWV3LmdldEZsb2F0NjQoMCwgZmFs
c2UpIGlzIC1OYU4KK1BBU1Mgdmlldy5zZXRGbG9hdDY0KDMsIC1OYU4sIGZhbHNlKSBpcyB1bmRl
ZmluZWQuCitQQVNTIHZpZXcuZ2V0RmxvYXQ2NCgzLCBmYWxzZSkgaXMgLU5hTgorUEFTUyB2aWV3
LnNldEZsb2F0NjQoNywgLU5hTiwgZmFsc2UpIGlzIHVuZGVmaW5lZC4KK1BBU1Mgdmlldy5nZXRG
bG9hdDY0KDcsIGZhbHNlKSBpcyAtTmFOCitQQVNTIHZpZXcuc2V0RmxvYXQ2NCgxMCwgLU5hTiwg
ZmFsc2UpIGlzIHVuZGVmaW5lZC4KK1BBU1Mgdmlldy5nZXRGbG9hdDY0KDEwLCBmYWxzZSkgaXMg
LU5hTgorCitUZXN0IGZvciBzZXQgbWV0aG9kcyB0aGF0IG1pZ2h0IHdyaXRlIGJleW9uZCB0aGUg
cmFuZ2UKK1BBU1Mgdmlldy5zZXRJbnQ4KDAsIDApIGlzIHVuZGVmaW5lZC4KK1BBU1Mgdmlldy5n
ZXRJbnQ4KDApIGlzIDAKK1BBU1Mgdmlldy5zZXRJbnQ4KDgsIC0xMjgpIHRocmV3IGV4Y2VwdGlv
biBFcnJvcjogSU5ERVhfU0laRV9FUlI6IERPTSBFeGNlcHRpb24gMS4KK1BBU1Mgdmlldy5zZXRJ
bnQ4KDE1LCAtMSkgdGhyZXcgZXhjZXB0aW9uIEVycm9yOiBJTkRFWF9TSVpFX0VSUjogRE9NIEV4
Y2VwdGlvbiAxLgorUEFTUyB2aWV3LnNldFVpbnQ4KDAsIDApIGlzIHVuZGVmaW5lZC4KK1BBU1Mg
dmlldy5nZXRVaW50OCgwKSBpcyAwCitQQVNTIHZpZXcuc2V0VWludDgoOCwgMTI4KSB0aHJldyBl
eGNlcHRpb24gRXJyb3I6IElOREVYX1NJWkVfRVJSOiBET00gRXhjZXB0aW9uIDEuCitQQVNTIHZp
ZXcuc2V0VWludDgoMTUsIDI1NSkgdGhyZXcgZXhjZXB0aW9uIEVycm9yOiBJTkRFWF9TSVpFX0VS
UjogRE9NIEV4Y2VwdGlvbiAxLgorUEFTUyB2aWV3LnNldEludDE2KDAsIDI1NiwgdHJ1ZSkgaXMg
dW5kZWZpbmVkLgorUEFTUyB2aWV3LmdldEludDE2KDAsIHRydWUpIGlzIDI1NgorUEFTUyB2aWV3
LnNldEludDE2KDUsIDI2MjEzLCB0cnVlKSB0aHJldyBleGNlcHRpb24gRXJyb3I6IElOREVYX1NJ
WkVfRVJSOiBET00gRXhjZXB0aW9uIDEuCitQQVNTIHZpZXcuc2V0SW50MTYoOSwgLTMyMTI3LCB0
cnVlKSB0aHJldyBleGNlcHRpb24gRXJyb3I6IElOREVYX1NJWkVfRVJSOiBET00gRXhjZXB0aW9u
IDEuCitQQVNTIHZpZXcuc2V0SW50MTYoMTQsIC0yLCB0cnVlKSB0aHJldyBleGNlcHRpb24gRXJy
b3I6IElOREVYX1NJWkVfRVJSOiBET00gRXhjZXB0aW9uIDEuCitQQVNTIHZpZXcuc2V0SW50MTYo
MCwgMSkgaXMgdW5kZWZpbmVkLgorUEFTUyB2aWV3LmdldEludDE2KDApIGlzIDEKK1BBU1Mgdmll
dy5zZXRJbnQxNig1LCAyNTk1OCkgdGhyZXcgZXhjZXB0aW9uIEVycm9yOiBJTkRFWF9TSVpFX0VS
UjogRE9NIEV4Y2VwdGlvbiAxLgorUEFTUyB2aWV3LnNldEludDE2KDksIC0zMjM4MikgdGhyZXcg
ZXhjZXB0aW9uIEVycm9yOiBJTkRFWF9TSVpFX0VSUjogRE9NIEV4Y2VwdGlvbiAxLgorUEFTUyB2
aWV3LnNldEludDE2KDE0LCAtMjU3KSB0aHJldyBleGNlcHRpb24gRXJyb3I6IElOREVYX1NJWkVf
RVJSOiBET00gRXhjZXB0aW9uIDEuCitQQVNTIHZpZXcuc2V0VWludDE2KDAsIDI1NiwgdHJ1ZSkg
aXMgdW5kZWZpbmVkLgorUEFTUyB2aWV3LmdldFVpbnQxNigwLCB0cnVlKSBpcyAyNTYKK1BBU1Mg
dmlldy5zZXRVaW50MTYoNSwgMjYyMTMsIHRydWUpIHRocmV3IGV4Y2VwdGlvbiBFcnJvcjogSU5E
RVhfU0laRV9FUlI6IERPTSBFeGNlcHRpb24gMS4KK1BBU1Mgdmlldy5zZXRVaW50MTYoOSwgMzM0
MDksIHRydWUpIHRocmV3IGV4Y2VwdGlvbiBFcnJvcjogSU5ERVhfU0laRV9FUlI6IERPTSBFeGNl
cHRpb24gMS4KK1BBU1Mgdmlldy5zZXRVaW50MTYoMTQsIDY1NTM0LCB0cnVlKSB0aHJldyBleGNl
cHRpb24gRXJyb3I6IElOREVYX1NJWkVfRVJSOiBET00gRXhjZXB0aW9uIDEuCitQQVNTIHZpZXcu
c2V0VWludDE2KDAsIDEpIGlzIHVuZGVmaW5lZC4KK1BBU1Mgdmlldy5nZXRVaW50MTYoMCkgaXMg
MQorUEFTUyB2aWV3LnNldFVpbnQxNig1LCAyNTk1OCkgdGhyZXcgZXhjZXB0aW9uIEVycm9yOiBJ
TkRFWF9TSVpFX0VSUjogRE9NIEV4Y2VwdGlvbiAxLgorUEFTUyB2aWV3LnNldFVpbnQxNig5LCAz
MzE1NCkgdGhyZXcgZXhjZXB0aW9uIEVycm9yOiBJTkRFWF9TSVpFX0VSUjogRE9NIEV4Y2VwdGlv
biAxLgorUEFTUyB2aWV3LnNldFVpbnQxNigxNCwgNjUyNzkpIHRocmV3IGV4Y2VwdGlvbiBFcnJv
cjogSU5ERVhfU0laRV9FUlI6IERPTSBFeGNlcHRpb24gMS4KK1BBU1Mgdmlldy5zZXRJbnQzMigw
LCA1MDQ2Mjk3NiwgdHJ1ZSkgdGhyZXcgZXhjZXB0aW9uIEVycm9yOiBJTkRFWF9TSVpFX0VSUjog
RE9NIEV4Y2VwdGlvbiAxLgorUEFTUyB2aWV3LnNldEludDMyKDMsIDE3MTc5MjA3NzEsIHRydWUp
IHRocmV3IGV4Y2VwdGlvbiBFcnJvcjogSU5ERVhfU0laRV9FUlI6IERPTSBFeGNlcHRpb24gMS4K
K1BBU1Mgdmlldy5zZXRJbnQzMig2LCAtMjEyMjI5MTM1NCwgdHJ1ZSkgdGhyZXcgZXhjZXB0aW9u
IEVycm9yOiBJTkRFWF9TSVpFX0VSUjogRE9NIEV4Y2VwdGlvbiAxLgorUEFTUyB2aWV3LnNldElu
dDMyKDksIC01ODQ5MDIzOSwgdHJ1ZSkgdGhyZXcgZXhjZXB0aW9uIEVycm9yOiBJTkRFWF9TSVpF
X0VSUjogRE9NIEV4Y2VwdGlvbiAxLgorUEFTUyB2aWV3LnNldEludDMyKDEyLCAtNjYwNTIsIHRy
dWUpIHRocmV3IGV4Y2VwdGlvbiBFcnJvcjogSU5ERVhfU0laRV9FUlI6IERPTSBFeGNlcHRpb24g
MS4KK1BBU1Mgdmlldy5zZXRJbnQzMigwLCA2NjA1MSkgdGhyZXcgZXhjZXB0aW9uIEVycm9yOiBJ
TkRFWF9TSVpFX0VSUjogRE9NIEV4Y2VwdGlvbiAxLgorUEFTUyB2aWV3LnNldEludDMyKDMsIDU2
OTExMjA2KSB0aHJldyBleGNlcHRpb24gRXJyb3I6IElOREVYX1NJWkVfRVJSOiBET00gRXhjZXB0
aW9uIDEuCitQQVNTIHZpZXcuc2V0SW50MzIoNiwgMTcxODA1OTEzNykgdGhyZXcgZXhjZXB0aW9u
IEVycm9yOiBJTkRFWF9TSVpFX0VSUjogRE9NIEV4Y2VwdGlvbiAxLgorUEFTUyB2aWV3LnNldElu
dDMyKDksIC0yMTIyMTUyOTY0KSB0aHJldyBleGNlcHRpb24gRXJyb3I6IElOREVYX1NJWkVfRVJS
OiBET00gRXhjZXB0aW9uIDEuCitQQVNTIHZpZXcuc2V0SW50MzIoMTIsIC01MDQ2Mjk3NykgdGhy
ZXcgZXhjZXB0aW9uIEVycm9yOiBJTkRFWF9TSVpFX0VSUjogRE9NIEV4Y2VwdGlvbiAxLgorUEFT
UyB2aWV3LnNldFVpbnQzMigwLCA1MDQ2Mjk3NiwgdHJ1ZSkgdGhyZXcgZXhjZXB0aW9uIEVycm9y
OiBJTkRFWF9TSVpFX0VSUjogRE9NIEV4Y2VwdGlvbiAxLgorUEFTUyB2aWV3LnNldFVpbnQzMigz
LCAxNzE3OTIwNzcxLCB0cnVlKSB0aHJldyBleGNlcHRpb24gRXJyb3I6IElOREVYX1NJWkVfRVJS
OiBET00gRXhjZXB0aW9uIDEuCitQQVNTIHZpZXcuc2V0VWludDMyKDYsIDIxNzI2NzU5NDIsIHRy
dWUpIHRocmV3IGV4Y2VwdGlvbiBFcnJvcjogSU5ERVhfU0laRV9FUlI6IERPTSBFeGNlcHRpb24g
MS4KK1BBU1Mgdmlldy5zZXRVaW50MzIoOSwgNDIzNjQ3NzA1NywgdHJ1ZSkgdGhyZXcgZXhjZXB0
aW9uIEVycm9yOiBJTkRFWF9TSVpFX0VSUjogRE9NIEV4Y2VwdGlvbiAxLgorUEFTUyB2aWV3LnNl
dFVpbnQzMigxMiwgNDI5NDkwMTI0NCwgdHJ1ZSkgdGhyZXcgZXhjZXB0aW9uIEVycm9yOiBJTkRF
WF9TSVpFX0VSUjogRE9NIEV4Y2VwdGlvbiAxLgorUEFTUyB2aWV3LnNldFVpbnQzMigwLCA2NjA1
MSkgdGhyZXcgZXhjZXB0aW9uIEVycm9yOiBJTkRFWF9TSVpFX0VSUjogRE9NIEV4Y2VwdGlvbiAx
LgorUEFTUyB2aWV3LnNldFVpbnQzMigzLCA1NjkxMTIwNikgdGhyZXcgZXhjZXB0aW9uIEVycm9y
OiBJTkRFWF9TSVpFX0VSUjogRE9NIEV4Y2VwdGlvbiAxLgorUEFTUyB2aWV3LnNldFVpbnQzMig2
LCAxNzE4MDU5MTM3KSB0aHJldyBleGNlcHRpb24gRXJyb3I6IElOREVYX1NJWkVfRVJSOiBET00g
RXhjZXB0aW9uIDEuCitQQVNTIHZpZXcuc2V0VWludDMyKDksIDIxNzI4MTQzMzIpIHRocmV3IGV4
Y2VwdGlvbiBFcnJvcjogSU5ERVhfU0laRV9FUlI6IERPTSBFeGNlcHRpb24gMS4KK1BBU1Mgdmll
dy5zZXRVaW50MzIoMTIsIDQyNDQ1MDQzMTkpIHRocmV3IGV4Y2VwdGlvbiBFcnJvcjogSU5ERVhf
U0laRV9FUlI6IERPTSBFeGNlcHRpb24gMS4KK1BBU1Mgdmlldy5zZXRGbG9hdDMyKDAsIDEwLCB0
cnVlKSBpcyB1bmRlZmluZWQuCitQQVNTIHZpZXcuZ2V0RmxvYXQzMigwLCB0cnVlKSBpcyAxMAor
UEFTUyB2aWV3LnNldEZsb2F0MzIoMywgMTAsIHRydWUpIGlzIHVuZGVmaW5lZC4KK1BBU1Mgdmll
dy5nZXRGbG9hdDMyKDMsIHRydWUpIGlzIDEwCitQQVNTIHZpZXcuc2V0RmxvYXQzMig3LCAxMCwg
dHJ1ZSkgaXMgdW5kZWZpbmVkLgorUEFTUyB2aWV3LmdldEZsb2F0MzIoNywgdHJ1ZSkgaXMgMTAK
K1BBU1Mgdmlldy5zZXRGbG9hdDMyKDEwLCAxMCwgdHJ1ZSkgaXMgdW5kZWZpbmVkLgorUEFTUyB2
aWV3LmdldEZsb2F0MzIoMTAsIHRydWUpIGlzIDEwCitQQVNTIHZpZXcuc2V0RmxvYXQzMigwLCAx
MCwgZmFsc2UpIGlzIHVuZGVmaW5lZC4KK1BBU1Mgdmlldy5nZXRGbG9hdDMyKDAsIGZhbHNlKSBp
cyAxMAorUEFTUyB2aWV3LnNldEZsb2F0MzIoMywgMTAsIGZhbHNlKSBpcyB1bmRlZmluZWQuCitQ
QVNTIHZpZXcuZ2V0RmxvYXQzMigzLCBmYWxzZSkgaXMgMTAKK1BBU1Mgdmlldy5zZXRGbG9hdDMy
KDcsIDEwLCBmYWxzZSkgaXMgdW5kZWZpbmVkLgorUEFTUyB2aWV3LmdldEZsb2F0MzIoNywgZmFs
c2UpIGlzIDEwCitQQVNTIHZpZXcuc2V0RmxvYXQzMigxMCwgMTAsIGZhbHNlKSBpcyB1bmRlZmlu
ZWQuCitQQVNTIHZpZXcuZ2V0RmxvYXQzMigxMCwgZmFsc2UpIGlzIDEwCitQQVNTIHZpZXcuc2V0
RmxvYXQzMigwLCAxLjIzMDAwMDAxOTA3MzQ4NjMsIHRydWUpIGlzIHVuZGVmaW5lZC4KK1BBU1Mg
dmlldy5nZXRGbG9hdDMyKDAsIHRydWUpIGlzIDEuMjMwMDAwMDE5MDczNDg2MworUEFTUyB2aWV3
LnNldEZsb2F0MzIoMywgMS4yMzAwMDAwMTkwNzM0ODYzLCB0cnVlKSBpcyB1bmRlZmluZWQuCitQ
QVNTIHZpZXcuZ2V0RmxvYXQzMigzLCB0cnVlKSBpcyAxLjIzMDAwMDAxOTA3MzQ4NjMKK1BBU1Mg
dmlldy5zZXRGbG9hdDMyKDcsIDEuMjMwMDAwMDE5MDczNDg2MywgdHJ1ZSkgaXMgdW5kZWZpbmVk
LgorUEFTUyB2aWV3LmdldEZsb2F0MzIoNywgdHJ1ZSkgaXMgMS4yMzAwMDAwMTkwNzM0ODYzCitQ
QVNTIHZpZXcuc2V0RmxvYXQzMigxMCwgMS4yMzAwMDAwMTkwNzM0ODYzLCB0cnVlKSBpcyB1bmRl
ZmluZWQuCitQQVNTIHZpZXcuZ2V0RmxvYXQzMigxMCwgdHJ1ZSkgaXMgMS4yMzAwMDAwMTkwNzM0
ODYzCitQQVNTIHZpZXcuc2V0RmxvYXQzMigwLCAxLjIzMDAwMDAxOTA3MzQ4NjMsIGZhbHNlKSBp
cyB1bmRlZmluZWQuCitQQVNTIHZpZXcuZ2V0RmxvYXQzMigwLCBmYWxzZSkgaXMgMS4yMzAwMDAw
MTkwNzM0ODYzCitQQVNTIHZpZXcuc2V0RmxvYXQzMigzLCAxLjIzMDAwMDAxOTA3MzQ4NjMsIGZh
bHNlKSBpcyB1bmRlZmluZWQuCitQQVNTIHZpZXcuZ2V0RmxvYXQzMigzLCBmYWxzZSkgaXMgMS4y
MzAwMDAwMTkwNzM0ODYzCitQQVNTIHZpZXcuc2V0RmxvYXQzMig3LCAxLjIzMDAwMDAxOTA3MzQ4
NjMsIGZhbHNlKSBpcyB1bmRlZmluZWQuCitQQVNTIHZpZXcuZ2V0RmxvYXQzMig3LCBmYWxzZSkg
aXMgMS4yMzAwMDAwMTkwNzM0ODYzCitQQVNTIHZpZXcuc2V0RmxvYXQzMigxMCwgMS4yMzAwMDAw
MTkwNzM0ODYzLCBmYWxzZSkgaXMgdW5kZWZpbmVkLgorUEFTUyB2aWV3LmdldEZsb2F0MzIoMTAs
IGZhbHNlKSBpcyAxLjIzMDAwMDAxOTA3MzQ4NjMKK1BBU1Mgdmlldy5zZXRGbG9hdDMyKDAsIC00
NTYyMS4zNzEwOTM3NSwgdHJ1ZSkgaXMgdW5kZWZpbmVkLgorUEFTUyB2aWV3LmdldEZsb2F0MzIo
MCwgdHJ1ZSkgaXMgLTQ1NjIxLjM3MTA5Mzc1CitQQVNTIHZpZXcuc2V0RmxvYXQzMigzLCAtNDU2
MjEuMzcxMDkzNzUsIHRydWUpIGlzIHVuZGVmaW5lZC4KK1BBU1Mgdmlldy5nZXRGbG9hdDMyKDMs
IHRydWUpIGlzIC00NTYyMS4zNzEwOTM3NQorUEFTUyB2aWV3LnNldEZsb2F0MzIoNywgLTQ1NjIx
LjM3MTA5Mzc1LCB0cnVlKSBpcyB1bmRlZmluZWQuCitQQVNTIHZpZXcuZ2V0RmxvYXQzMig3LCB0
cnVlKSBpcyAtNDU2MjEuMzcxMDkzNzUKK1BBU1Mgdmlldy5zZXRGbG9hdDMyKDEwLCAtNDU2MjEu
MzcxMDkzNzUsIHRydWUpIGlzIHVuZGVmaW5lZC4KK1BBU1Mgdmlldy5nZXRGbG9hdDMyKDEwLCB0
cnVlKSBpcyAtNDU2MjEuMzcxMDkzNzUKK1BBU1Mgdmlldy5zZXRGbG9hdDMyKDAsIC00NTYyMS4z
NzEwOTM3NSwgZmFsc2UpIGlzIHVuZGVmaW5lZC4KK1BBU1Mgdmlldy5nZXRGbG9hdDMyKDAsIGZh
bHNlKSBpcyAtNDU2MjEuMzcxMDkzNzUKK1BBU1Mgdmlldy5zZXRGbG9hdDMyKDMsIC00NTYyMS4z
NzEwOTM3NSwgZmFsc2UpIGlzIHVuZGVmaW5lZC4KK1BBU1Mgdmlldy5nZXRGbG9hdDMyKDMsIGZh
bHNlKSBpcyAtNDU2MjEuMzcxMDkzNzUKK1BBU1Mgdmlldy5zZXRGbG9hdDMyKDcsIC00NTYyMS4z
NzEwOTM3NSwgZmFsc2UpIGlzIHVuZGVmaW5lZC4KK1BBU1Mgdmlldy5nZXRGbG9hdDMyKDcsIGZh
bHNlKSBpcyAtNDU2MjEuMzcxMDkzNzUKK1BBU1Mgdmlldy5zZXRGbG9hdDMyKDEwLCAtNDU2MjEu
MzcxMDkzNzUsIGZhbHNlKSBpcyB1bmRlZmluZWQuCitQQVNTIHZpZXcuZ2V0RmxvYXQzMigxMCwg
ZmFsc2UpIGlzIC00NTYyMS4zNzEwOTM3NQorUEFTUyB2aWV3LnNldEZsb2F0MzIoMCwgTmFOLCB0
cnVlKSBpcyB1bmRlZmluZWQuCitQQVNTIHZpZXcuZ2V0RmxvYXQzMigwLCB0cnVlKSBpcyBOYU4K
K1BBU1Mgdmlldy5zZXRGbG9hdDMyKDMsIE5hTiwgdHJ1ZSkgaXMgdW5kZWZpbmVkLgorUEFTUyB2
aWV3LmdldEZsb2F0MzIoMywgdHJ1ZSkgaXMgTmFOCitQQVNTIHZpZXcuc2V0RmxvYXQzMig3LCBO
YU4sIHRydWUpIGlzIHVuZGVmaW5lZC4KK1BBU1Mgdmlldy5nZXRGbG9hdDMyKDcsIHRydWUpIGlz
IE5hTgorUEFTUyB2aWV3LnNldEZsb2F0MzIoMTAsIE5hTiwgdHJ1ZSkgaXMgdW5kZWZpbmVkLgor
UEFTUyB2aWV3LmdldEZsb2F0MzIoMTAsIHRydWUpIGlzIE5hTgorUEFTUyB2aWV3LnNldEZsb2F0
MzIoMCwgTmFOLCBmYWxzZSkgaXMgdW5kZWZpbmVkLgorUEFTUyB2aWV3LmdldEZsb2F0MzIoMCwg
ZmFsc2UpIGlzIE5hTgorUEFTUyB2aWV3LnNldEZsb2F0MzIoMywgTmFOLCBmYWxzZSkgaXMgdW5k
ZWZpbmVkLgorUEFTUyB2aWV3LmdldEZsb2F0MzIoMywgZmFsc2UpIGlzIE5hTgorUEFTUyB2aWV3
LnNldEZsb2F0MzIoNywgTmFOLCBmYWxzZSkgaXMgdW5kZWZpbmVkLgorUEFTUyB2aWV3LmdldEZs
b2F0MzIoNywgZmFsc2UpIGlzIE5hTgorUEFTUyB2aWV3LnNldEZsb2F0MzIoMTAsIE5hTiwgZmFs
c2UpIGlzIHVuZGVmaW5lZC4KK1BBU1Mgdmlldy5nZXRGbG9hdDMyKDEwLCBmYWxzZSkgaXMgTmFO
CitQQVNTIHZpZXcuc2V0RmxvYXQzMigwLCAtTmFOLCB0cnVlKSBpcyB1bmRlZmluZWQuCitQQVNT
IHZpZXcuZ2V0RmxvYXQzMigwLCB0cnVlKSBpcyAtTmFOCitQQVNTIHZpZXcuc2V0RmxvYXQzMigz
LCAtTmFOLCB0cnVlKSBpcyB1bmRlZmluZWQuCitQQVNTIHZpZXcuZ2V0RmxvYXQzMigzLCB0cnVl
KSBpcyAtTmFOCitQQVNTIHZpZXcuc2V0RmxvYXQzMig3LCAtTmFOLCB0cnVlKSBpcyB1bmRlZmlu
ZWQuCitQQVNTIHZpZXcuZ2V0RmxvYXQzMig3LCB0cnVlKSBpcyAtTmFOCitQQVNTIHZpZXcuc2V0
RmxvYXQzMigxMCwgLU5hTiwgdHJ1ZSkgaXMgdW5kZWZpbmVkLgorUEFTUyB2aWV3LmdldEZsb2F0
MzIoMTAsIHRydWUpIGlzIC1OYU4KK1BBU1Mgdmlldy5zZXRGbG9hdDMyKDAsIC1OYU4sIGZhbHNl
KSBpcyB1bmRlZmluZWQuCitQQVNTIHZpZXcuZ2V0RmxvYXQzMigwLCBmYWxzZSkgaXMgLU5hTgor
UEFTUyB2aWV3LnNldEZsb2F0MzIoMywgLU5hTiwgZmFsc2UpIGlzIHVuZGVmaW5lZC4KK1BBU1Mg
dmlldy5nZXRGbG9hdDMyKDMsIGZhbHNlKSBpcyAtTmFOCitQQVNTIHZpZXcuc2V0RmxvYXQzMig3
LCAtTmFOLCBmYWxzZSkgaXMgdW5kZWZpbmVkLgorUEFTUyB2aWV3LmdldEZsb2F0MzIoNywgZmFs
c2UpIGlzIC1OYU4KK1BBU1Mgdmlldy5zZXRGbG9hdDMyKDEwLCAtTmFOLCBmYWxzZSkgaXMgdW5k
ZWZpbmVkLgorUEFTUyB2aWV3LmdldEZsb2F0MzIoMTAsIGZhbHNlKSBpcyAtTmFOCitQQVNTIHZp
ZXcuc2V0RmxvYXQ2NCgwLCAxMCwgdHJ1ZSkgaXMgdW5kZWZpbmVkLgorUEFTUyB2aWV3LmdldEZs
b2F0NjQoMCwgdHJ1ZSkgaXMgMTAKK1BBU1Mgdmlldy5zZXRGbG9hdDY0KDMsIDEwLCB0cnVlKSBp
cyB1bmRlZmluZWQuCitQQVNTIHZpZXcuZ2V0RmxvYXQ2NCgzLCB0cnVlKSBpcyAxMAorUEFTUyB2
aWV3LnNldEZsb2F0NjQoNywgMTAsIHRydWUpIGlzIHVuZGVmaW5lZC4KK1BBU1Mgdmlldy5nZXRG
bG9hdDY0KDcsIHRydWUpIGlzIDEwCitQQVNTIHZpZXcuc2V0RmxvYXQ2NCgxMCwgMTAsIHRydWUp
IGlzIHVuZGVmaW5lZC4KK1BBU1Mgdmlldy5nZXRGbG9hdDY0KDEwLCB0cnVlKSBpcyAxMAorUEFT
UyB2aWV3LnNldEZsb2F0NjQoMCwgMTAsIGZhbHNlKSBpcyB1bmRlZmluZWQuCitQQVNTIHZpZXcu
Z2V0RmxvYXQ2NCgwLCBmYWxzZSkgaXMgMTAKK1BBU1Mgdmlldy5zZXRGbG9hdDY0KDMsIDEwLCBm
YWxzZSkgaXMgdW5kZWZpbmVkLgorUEFTUyB2aWV3LmdldEZsb2F0NjQoMywgZmFsc2UpIGlzIDEw
CitQQVNTIHZpZXcuc2V0RmxvYXQ2NCg3LCAxMCwgZmFsc2UpIGlzIHVuZGVmaW5lZC4KK1BBU1Mg
dmlldy5nZXRGbG9hdDY0KDcsIGZhbHNlKSBpcyAxMAorUEFTUyB2aWV3LnNldEZsb2F0NjQoMTAs
IDEwLCBmYWxzZSkgaXMgdW5kZWZpbmVkLgorUEFTUyB2aWV3LmdldEZsb2F0NjQoMTAsIGZhbHNl
KSBpcyAxMAorUEFTUyB2aWV3LnNldEZsb2F0NjQoMCwgMS4yMywgdHJ1ZSkgaXMgdW5kZWZpbmVk
LgorUEFTUyB2aWV3LmdldEZsb2F0NjQoMCwgdHJ1ZSkgaXMgMS4yMworUEFTUyB2aWV3LnNldEZs
b2F0NjQoMywgMS4yMywgdHJ1ZSkgaXMgdW5kZWZpbmVkLgorUEFTUyB2aWV3LmdldEZsb2F0NjQo
MywgdHJ1ZSkgaXMgMS4yMworUEFTUyB2aWV3LnNldEZsb2F0NjQoNywgMS4yMywgdHJ1ZSkgaXMg
dW5kZWZpbmVkLgorUEFTUyB2aWV3LmdldEZsb2F0NjQoNywgdHJ1ZSkgaXMgMS4yMworUEFTUyB2
aWV3LnNldEZsb2F0NjQoMTAsIDEuMjMsIHRydWUpIGlzIHVuZGVmaW5lZC4KK1BBU1Mgdmlldy5n
ZXRGbG9hdDY0KDEwLCB0cnVlKSBpcyAxLjIzCitQQVNTIHZpZXcuc2V0RmxvYXQ2NCgwLCAxLjIz
LCBmYWxzZSkgaXMgdW5kZWZpbmVkLgorUEFTUyB2aWV3LmdldEZsb2F0NjQoMCwgZmFsc2UpIGlz
IDEuMjMKK1BBU1Mgdmlldy5zZXRGbG9hdDY0KDMsIDEuMjMsIGZhbHNlKSBpcyB1bmRlZmluZWQu
CitQQVNTIHZpZXcuZ2V0RmxvYXQ2NCgzLCBmYWxzZSkgaXMgMS4yMworUEFTUyB2aWV3LnNldEZs
b2F0NjQoNywgMS4yMywgZmFsc2UpIGlzIHVuZGVmaW5lZC4KK1BBU1Mgdmlldy5nZXRGbG9hdDY0
KDcsIGZhbHNlKSBpcyAxLjIzCitQQVNTIHZpZXcuc2V0RmxvYXQ2NCgxMCwgMS4yMywgZmFsc2Up
IGlzIHVuZGVmaW5lZC4KK1BBU1Mgdmlldy5nZXRGbG9hdDY0KDEwLCBmYWxzZSkgaXMgMS4yMwor
UEFTUyB2aWV3LnNldEZsb2F0NjQoMCwgLTYyMTM1NzYuNDgzOSwgdHJ1ZSkgaXMgdW5kZWZpbmVk
LgorUEFTUyB2aWV3LmdldEZsb2F0NjQoMCwgdHJ1ZSkgaXMgLTYyMTM1NzYuNDgzOQorUEFTUyB2
aWV3LnNldEZsb2F0NjQoMywgLTYyMTM1NzYuNDgzOSwgdHJ1ZSkgaXMgdW5kZWZpbmVkLgorUEFT
UyB2aWV3LmdldEZsb2F0NjQoMywgdHJ1ZSkgaXMgLTYyMTM1NzYuNDgzOQorUEFTUyB2aWV3LnNl
dEZsb2F0NjQoNywgLTYyMTM1NzYuNDgzOSwgdHJ1ZSkgaXMgdW5kZWZpbmVkLgorUEFTUyB2aWV3
LmdldEZsb2F0NjQoNywgdHJ1ZSkgaXMgLTYyMTM1NzYuNDgzOQorUEFTUyB2aWV3LnNldEZsb2F0
NjQoMTAsIC02MjEzNTc2LjQ4MzksIHRydWUpIGlzIHVuZGVmaW5lZC4KK1BBU1Mgdmlldy5nZXRG
bG9hdDY0KDEwLCB0cnVlKSBpcyAtNjIxMzU3Ni40ODM5CitQQVNTIHZpZXcuc2V0RmxvYXQ2NCgw
LCAtNjIxMzU3Ni40ODM5LCBmYWxzZSkgaXMgdW5kZWZpbmVkLgorUEFTUyB2aWV3LmdldEZsb2F0
NjQoMCwgZmFsc2UpIGlzIC02MjEzNTc2LjQ4MzkKK1BBU1Mgdmlldy5zZXRGbG9hdDY0KDMsIC02
MjEzNTc2LjQ4MzksIGZhbHNlKSBpcyB1bmRlZmluZWQuCitQQVNTIHZpZXcuZ2V0RmxvYXQ2NCgz
LCBmYWxzZSkgaXMgLTYyMTM1NzYuNDgzOQorUEFTUyB2aWV3LnNldEZsb2F0NjQoNywgLTYyMTM1
NzYuNDgzOSwgZmFsc2UpIGlzIHVuZGVmaW5lZC4KK1BBU1Mgdmlldy5nZXRGbG9hdDY0KDcsIGZh
bHNlKSBpcyAtNjIxMzU3Ni40ODM5CitQQVNTIHZpZXcuc2V0RmxvYXQ2NCgxMCwgLTYyMTM1NzYu
NDgzOSwgZmFsc2UpIGlzIHVuZGVmaW5lZC4KK1BBU1Mgdmlldy5nZXRGbG9hdDY0KDEwLCBmYWxz
ZSkgaXMgLTYyMTM1NzYuNDgzOQorUEFTUyB2aWV3LnNldEZsb2F0NjQoMCwgTmFOLCB0cnVlKSBp
cyB1bmRlZmluZWQuCitQQVNTIHZpZXcuZ2V0RmxvYXQ2NCgwLCB0cnVlKSBpcyBOYU4KK1BBU1Mg
dmlldy5zZXRGbG9hdDY0KDMsIE5hTiwgdHJ1ZSkgaXMgdW5kZWZpbmVkLgorUEFTUyB2aWV3Lmdl
dEZsb2F0NjQoMywgdHJ1ZSkgaXMgTmFOCitQQVNTIHZpZXcuc2V0RmxvYXQ2NCg3LCBOYU4sIHRy
dWUpIGlzIHVuZGVmaW5lZC4KK1BBU1Mgdmlldy5nZXRGbG9hdDY0KDcsIHRydWUpIGlzIE5hTgor
UEFTUyB2aWV3LnNldEZsb2F0NjQoMTAsIE5hTiwgdHJ1ZSkgaXMgdW5kZWZpbmVkLgorUEFTUyB2
aWV3LmdldEZsb2F0NjQoMTAsIHRydWUpIGlzIE5hTgorUEFTUyB2aWV3LnNldEZsb2F0NjQoMCwg
TmFOLCBmYWxzZSkgaXMgdW5kZWZpbmVkLgorUEFTUyB2aWV3LmdldEZsb2F0NjQoMCwgZmFsc2Up
IGlzIE5hTgorUEFTUyB2aWV3LnNldEZsb2F0NjQoMywgTmFOLCBmYWxzZSkgaXMgdW5kZWZpbmVk
LgorUEFTUyB2aWV3LmdldEZsb2F0NjQoMywgZmFsc2UpIGlzIE5hTgorUEFTUyB2aWV3LnNldEZs
b2F0NjQoNywgTmFOLCBmYWxzZSkgaXMgdW5kZWZpbmVkLgorUEFTUyB2aWV3LmdldEZsb2F0NjQo
NywgZmFsc2UpIGlzIE5hTgorUEFTUyB2aWV3LnNldEZsb2F0NjQoMTAsIE5hTiwgZmFsc2UpIGlz
IHVuZGVmaW5lZC4KK1BBU1Mgdmlldy5nZXRGbG9hdDY0KDEwLCBmYWxzZSkgaXMgTmFOCitQQVNT
IHZpZXcuc2V0RmxvYXQ2NCgwLCAtTmFOLCB0cnVlKSBpcyB1bmRlZmluZWQuCitQQVNTIHZpZXcu
Z2V0RmxvYXQ2NCgwLCB0cnVlKSBpcyAtTmFOCitQQVNTIHZpZXcuc2V0RmxvYXQ2NCgzLCAtTmFO
LCB0cnVlKSBpcyB1bmRlZmluZWQuCitQQVNTIHZpZXcuZ2V0RmxvYXQ2NCgzLCB0cnVlKSBpcyAt
TmFOCitQQVNTIHZpZXcuc2V0RmxvYXQ2NCg3LCAtTmFOLCB0cnVlKSBpcyB1bmRlZmluZWQuCitQ
QVNTIHZpZXcuZ2V0RmxvYXQ2NCg3LCB0cnVlKSBpcyAtTmFOCitQQVNTIHZpZXcuc2V0RmxvYXQ2
NCgxMCwgLU5hTiwgdHJ1ZSkgaXMgdW5kZWZpbmVkLgorUEFTUyB2aWV3LmdldEZsb2F0NjQoMTAs
IHRydWUpIGlzIC1OYU4KK1BBU1Mgdmlldy5zZXRGbG9hdDY0KDAsIC1OYU4sIGZhbHNlKSBpcyB1
bmRlZmluZWQuCitQQVNTIHZpZXcuZ2V0RmxvYXQ2NCgwLCBmYWxzZSkgaXMgLU5hTgorUEFTUyB2
aWV3LnNldEZsb2F0NjQoMywgLU5hTiwgZmFsc2UpIGlzIHVuZGVmaW5lZC4KK1BBU1Mgdmlldy5n
ZXRGbG9hdDY0KDMsIGZhbHNlKSBpcyAtTmFOCitQQVNTIHZpZXcuc2V0RmxvYXQ2NCg3LCAtTmFO
LCBmYWxzZSkgaXMgdW5kZWZpbmVkLgorUEFTUyB2aWV3LmdldEZsb2F0NjQoNywgZmFsc2UpIGlz
IC1OYU4KK1BBU1Mgdmlldy5zZXRGbG9hdDY0KDEwLCAtTmFOLCBmYWxzZSkgaXMgdW5kZWZpbmVk
LgorUEFTUyB2aWV3LmdldEZsb2F0NjQoMTAsIGZhbHNlKSBpcyAtTmFOCisKK1Rlc3QgZm9yIHdy
b25nIGFyZ3VtZW50cyBwYXNzZWQgdG8gZ2V0IG1ldGhvZHMKK1BBU1Mgdmlldy5zZXRJbnQ4KCkg
dGhyZXcgZXhjZXB0aW9uIFN5bnRheEVycm9yOiBOb3QgZW5vdWdoIGFyZ3VtZW50cy4KK1BBU1Mg
dmlldy5zZXRVaW50OCgpIHRocmV3IGV4Y2VwdGlvbiBTeW50YXhFcnJvcjogTm90IGVub3VnaCBh
cmd1bWVudHMuCitQQVNTIHZpZXcuc2V0SW50MTYoKSB0aHJldyBleGNlcHRpb24gU3ludGF4RXJy
b3I6IE5vdCBlbm91Z2ggYXJndW1lbnRzLgorUEFTUyB2aWV3LnNldFVpbnQxNigpIHRocmV3IGV4
Y2VwdGlvbiBTeW50YXhFcnJvcjogTm90IGVub3VnaCBhcmd1bWVudHMuCitQQVNTIHZpZXcuc2V0
SW50MzIoKSB0aHJldyBleGNlcHRpb24gU3ludGF4RXJyb3I6IE5vdCBlbm91Z2ggYXJndW1lbnRz
LgorUEFTUyB2aWV3LnNldFVpbnQzMigpIHRocmV3IGV4Y2VwdGlvbiBTeW50YXhFcnJvcjogTm90
IGVub3VnaCBhcmd1bWVudHMuCitQQVNTIHZpZXcuc2V0RmxvYXQzMigpIHRocmV3IGV4Y2VwdGlv
biBTeW50YXhFcnJvcjogTm90IGVub3VnaCBhcmd1bWVudHMuCitQQVNTIHZpZXcuc2V0RmxvYXQ2
NCgpIHRocmV3IGV4Y2VwdGlvbiBTeW50YXhFcnJvcjogTm90IGVub3VnaCBhcmd1bWVudHMuCitQ
QVNTIHZpZXcuc2V0SW50OCgxKSB0aHJldyBleGNlcHRpb24gU3ludGF4RXJyb3I6IE5vdCBlbm91
Z2ggYXJndW1lbnRzLgorUEFTUyB2aWV3LnNldFVpbnQ4KDEpIHRocmV3IGV4Y2VwdGlvbiBTeW50
YXhFcnJvcjogTm90IGVub3VnaCBhcmd1bWVudHMuCitQQVNTIHZpZXcuc2V0SW50MTYoMSkgdGhy
ZXcgZXhjZXB0aW9uIFN5bnRheEVycm9yOiBOb3QgZW5vdWdoIGFyZ3VtZW50cy4KK1BBU1Mgdmll
dy5zZXRVaW50MTYoMSkgdGhyZXcgZXhjZXB0aW9uIFN5bnRheEVycm9yOiBOb3QgZW5vdWdoIGFy
Z3VtZW50cy4KK1BBU1Mgdmlldy5zZXRJbnQzMigxKSB0aHJldyBleGNlcHRpb24gU3ludGF4RXJy
b3I6IE5vdCBlbm91Z2ggYXJndW1lbnRzLgorUEFTUyB2aWV3LnNldFVpbnQzMigxKSB0aHJldyBl
eGNlcHRpb24gU3ludGF4RXJyb3I6IE5vdCBlbm91Z2ggYXJndW1lbnRzLgorUEFTUyB2aWV3LnNl
dEZsb2F0MzIoMSkgdGhyZXcgZXhjZXB0aW9uIFN5bnRheEVycm9yOiBOb3QgZW5vdWdoIGFyZ3Vt
ZW50cy4KK1BBU1Mgdmlldy5zZXRGbG9hdDY0KDEpIHRocmV3IGV4Y2VwdGlvbiBTeW50YXhFcnJv
cjogTm90IGVub3VnaCBhcmd1bWVudHMuCisKK1Rlc3QgZm9yIGluZGV4aW5nIHRoYXQgc2hvdWxk
IG5vdCB3b3JrCitQQVNTIHZpZXdbMF0gaXMgdW5kZWZpbmVkLgorUEFTUyB2aWV3WzBdID0gMyBp
cyBkZWZpbmVkLgorUEFTUyB2aWV3LmdldFVpbnQ4KDApIGlzIDEKK1BBU1Mgc3VjY2Vzc2Z1bGx5
UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9mYXN0L2NhbnZhcy93ZWJnbC9kYXRhLXZpZXctdGVzdC5odG1sIGIvTGF5b3V0VGVzdHMvZmFz
dC9jYW52YXMvd2ViZ2wvZGF0YS12aWV3LXRlc3QuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDc1NQpp
bmRleCAwMDAwMDAwLi5kN2NiY2MwOAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zh
c3QvY2FudmFzL3dlYmdsL2RhdGEtdmlldy10ZXN0Lmh0bWwKQEAgLTAsMCArMSwzMDEgQEAKKzxo
dG1sPgorPGhlYWQ+Cis8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Ii4uLy4uL2pzL3Jlc291
cmNlcy9qcy10ZXN0LXN0eWxlLmNzcyIvPgorPHNjcmlwdCBzcmM9Ii4uLy4uL2pzL3Jlc291cmNl
cy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxkaXYgaWQ9ImRl
c2NyaXB0aW9uIj48L2Rpdj4KKzxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgorCis8c2NyaXB0Pgor
ZGVzY3JpcHRpb24oIlRlc3QgRGF0YVZpZXcuIik7CisKK3ZhciBpbnRBcnJheTEgPSBbMCwgMSwg
MiwgMywgMTAwLCAxMDEsIDEwMiwgMTAzLCAxMjgsIDEyOSwgMTMwLCAxMzEsIDI1MiwgMjUzLCAy
NTQsIDI1NV07Cit2YXIgaW50QXJyYXkyID0gWzMxLCAzMiwgMzMsIDAsIDEsIDIsIDMsIDEwMCwg
MTAxLCAxMDIsIDEwMywgMTI4LCAxMjksIDEzMCwgMTMxLCAyNTIsIDI1MywgMjU0LCAyNTVdOwor
dmFyIGVtcHR5QXJyYXkgPSBbMjA0LCAyMDQsIDIwNCwgMjA0LCAyMDQsIDIwNCwgMjA0LCAyMDQs
IDIwNCwgMjA0LCAyMDQsIDIwNCwgMjA0LCAyMDQsIDIwNCwgMjA0XTsKKwordmFyIGFyYXlCdWZm
ZXIgPSBudWxsOwordmFyIHZpZXcgPSBudWxsOwordmFyIHZpZXdTdGFydCA9IDA7Cit2YXIgdmll
d0xlbmd0aCA9IDA7CisKK2Z1bmN0aW9uIGdldEVsZW1lbnRTaXplKGZ1bmMpCit7CisgICAgc3dp
dGNoIChmdW5jKSB7CisgICAgY2FzZSAiSW50OCI6CisgICAgY2FzZSAiVWludDgiOgorICAgICAg
ICByZXR1cm4gMTsKKyAgICBjYXNlICJJbnQxNiI6CisgICAgY2FzZSAiVWludDE2IjoKKyAgICAg
ICAgcmV0dXJuIDI7CisgICAgY2FzZSAiSW50MzIiOgorICAgIGNhc2UgIlVpbnQzMiI6CisgICAg
Y2FzZSAiRmxvYXQzMiI6CisgICAgICAgIHJldHVybiA0OworICAgIGNhc2UgIkZsb2F0NjQiOgor
ICAgICAgICByZXR1cm4gODsKKyAgICBkZWZhdWx0OgorICAgICAgICBkZWJ1ZygiU2hvdWxkIG5v
dCByZWFjaGVkIik7CisgICAgfQorfQorCitmdW5jdGlvbiBjaGVja0dldChmdW5jLCBpbmRleCwg
ZXhwZWN0ZWQsIGxpdHRsZUVuZGlhbikKK3sKKyAgICB2YXIgZXhwciA9ICJ2aWV3LmdldCIgKyBm
dW5jICsgIigiICsgaW5kZXg7CisgICAgaWYgKGxpdHRsZUVuZGlhbiAhPSB1bmRlZmluZWQpIHsK
KyAgICAgICAgZXhwciArPSAiLCAiOworICAgICAgICBleHByICs9IGxpdHRsZUVuZGlhbiA/ICJ0
cnVlIiA6ICJmYWxzZSI7CisgICAgfQorICAgIGV4cHIgKz0gIikiOworICAgIGlmIChpbmRleCAr
IGdldEVsZW1lbnRTaXplKGZ1bmMpIC0gMSA8IHZpZXcuYnl0ZUxlbmd0aCkKKyAgICAgICAgc2hv
dWxkQmUoZXhwciwgZXhwZWN0ZWQpOworICAgIGVsc2UKKyAgICAgICAgc2hvdWxkVGhyb3coZXhw
cik7Cit9CisKK2Z1bmN0aW9uIGNoZWNrU2V0KGZ1bmMsIGluZGV4LCB2YWx1ZSwgbGl0dGxlRW5k
aWFuKQoreworICAgIHZhciBleHByID0gInZpZXcuc2V0IiArIGZ1bmMgKyAiKCIgKyBpbmRleCAr
ICIsICIgKyB2YWx1ZTsKKyAgICBpZiAobGl0dGxlRW5kaWFuICE9IHVuZGVmaW5lZCkgeworICAg
ICAgICBleHByICs9ICIsICI7CisgICAgICAgIGV4cHIgKz0gbGl0dGxlRW5kaWFuID8gInRydWUi
IDogImZhbHNlIjsKKyAgICB9CisgICAgZXhwciArPSAiKSI7CisgICAgaWYgKGluZGV4ICsgZ2V0
RWxlbWVudFNpemUoZnVuYykgLSAxIDwgdmlldy5ieXRlTGVuZ3RoKSB7CisgICAgICAgIHNob3Vs
ZEJlVW5kZWZpbmVkKGV4cHIpOworICAgICAgICBjaGVja0dldChmdW5jLCBpbmRleCwgdmFsdWUs
IGxpdHRsZUVuZGlhbik7CisgICAgfSBlbHNlCisgICAgICAgIHNob3VsZFRocm93KGV4cHIpOwor
fQorCitmdW5jdGlvbiB0ZXN0KGlzVGVzdGluZ0dldCwgZnVuYywgaW5kZXgsIHZhbHVlLCBsaXR0
bGVFbmRpYW4pCit7CisgICAgaWYgKGlzVGVzdGluZ0dldCkKKyAgICAgICAgY2hlY2tHZXQoZnVu
YywgaW5kZXgsIHZhbHVlLCBsaXR0bGVFbmRpYW4pOworICAgICBlbHNlCisgICAgICAgIGNoZWNr
U2V0KGZ1bmMsIGluZGV4LCB2YWx1ZSwgbGl0dGxlRW5kaWFuKTsKK30KKworZnVuY3Rpb24gY3Jl
YXRlRGF0YVZpZXcoYXJyYXksIGZyb250UGFkZGluZ051bSwgbGl0dGxlRW5kaWFuLCBzdGFydCwg
bGVuZ3RoKQoreworICAgIGlmICghbGl0dGxlRW5kaWFuKQorICAgICAgICBhcnJheS5yZXZlcnNl
KCk7CisgICAgdmFyIHBhZGRpbmdBcnJheSA9IG5ldyBBcnJheShmcm9udFBhZGRpbmdOdW0pOwor
ICAgIGFycmF5QnVmZmVyID0gKG5ldyBVaW50OEFycmF5KHBhZGRpbmdBcnJheS5jb25jYXQoYXJy
YXkpKSkuYnVmZmVyOworICAgIHZpZXdTdGFydCA9IChzdGFydCAhPSB1bmRlZmluZWQpID8gc3Rh
cnQgOiAwOworICAgIHZpZXdMZW5ndGggPSAobGVuZ3RoICE9IHVuZGVmaW5lZCkgPyBsZW5ndGgg
OiBhcnJheUJ1ZmZlci5ieXRlTGVuZ3RoIC0gdmlld1N0YXJ0OworICAgIHZpZXcgPSBuZXcgRGF0
YVZpZXcoYXJyYXlCdWZmZXIsIHZpZXdTdGFydCwgdmlld0xlbmd0aCk7CisgICAgaWYgKCFsaXR0
bGVFbmRpYW4pCisgICAgICAgIGFycmF5LnJldmVyc2UoKTsgLy8gcmVzdG9yZSB0aGUgYXJyYXku
Cit9CisKK2Z1bmN0aW9uIHJ1bkludGVnZXJUZXN0Q2FzZXMoaXNUZXN0aW5nR2V0LCBhcnJheSwg
c3RhcnQsIGxlbmd0aCkKK3sKKyAgICBjcmVhdGVEYXRhVmlldyhhcnJheSwgMCwgdHJ1ZSwgc3Rh
cnQsIGxlbmd0aCk7CisKKyAgICB0ZXN0KGlzVGVzdGluZ0dldCwgIkludDgiLCAwLCAiMCIpOwor
ICAgIHRlc3QoaXNUZXN0aW5nR2V0LCAiSW50OCIsIDgsICItMTI4Iik7CisgICAgdGVzdChpc1Rl
c3RpbmdHZXQsICJJbnQ4IiwgMTUsICItMSIpOworCisgICAgdGVzdChpc1Rlc3RpbmdHZXQsICJV
aW50OCIsIDAsICIwIik7CisgICAgdGVzdChpc1Rlc3RpbmdHZXQsICJVaW50OCIsIDgsICIxMjgi
KTsKKyAgICB0ZXN0KGlzVGVzdGluZ0dldCwgIlVpbnQ4IiwgMTUsICIyNTUiKTsKKworICAgIC8v
IExpdHRsZSBlbmRpYW4uCisgICAgdGVzdChpc1Rlc3RpbmdHZXQsICJJbnQxNiIsIDAsICIyNTYi
LCB0cnVlKTsKKyAgICB0ZXN0KGlzVGVzdGluZ0dldCwgIkludDE2IiwgNSwgIjI2MjEzIiwgdHJ1
ZSk7CisgICAgdGVzdChpc1Rlc3RpbmdHZXQsICJJbnQxNiIsIDksICItMzIxMjciLCB0cnVlKTsK
KyAgICB0ZXN0KGlzVGVzdGluZ0dldCwgIkludDE2IiwgMTQsICItMiIsIHRydWUpOworCisgICAg
Ly8gQmlnIGVuZGlhbi4KKyAgICB0ZXN0KGlzVGVzdGluZ0dldCwgIkludDE2IiwgMCwgIjEiKTsK
KyAgICB0ZXN0KGlzVGVzdGluZ0dldCwgIkludDE2IiwgNSwgIjI1OTU4Iik7CisgICAgdGVzdChp
c1Rlc3RpbmdHZXQsICJJbnQxNiIsIDksICItMzIzODIiKTsKKyAgICB0ZXN0KGlzVGVzdGluZ0dl
dCwgIkludDE2IiwgMTQsICItMjU3Iik7CisKKyAgICAvLyBMaXR0bGUgZW5kaWFuLgorICAgIHRl
c3QoaXNUZXN0aW5nR2V0LCAiVWludDE2IiwgMCwgIjI1NiIsIHRydWUpOworICAgIHRlc3QoaXNU
ZXN0aW5nR2V0LCAiVWludDE2IiwgNSwgIjI2MjEzIiwgdHJ1ZSk7CisgICAgdGVzdChpc1Rlc3Rp
bmdHZXQsICJVaW50MTYiLCA5LCAiMzM0MDkiLCB0cnVlKTsKKyAgICB0ZXN0KGlzVGVzdGluZ0dl
dCwgIlVpbnQxNiIsIDE0LCAiNjU1MzQiLCB0cnVlKTsKKworICAgIC8vIEJpZyBlbmRpYW4uCisg
ICAgdGVzdChpc1Rlc3RpbmdHZXQsICJVaW50MTYiLCAwLCAiMSIpOworICAgIHRlc3QoaXNUZXN0
aW5nR2V0LCAiVWludDE2IiwgNSwgIjI1OTU4Iik7CisgICAgdGVzdChpc1Rlc3RpbmdHZXQsICJV
aW50MTYiLCA5LCAiMzMxNTQiKTsKKyAgICB0ZXN0KGlzVGVzdGluZ0dldCwgIlVpbnQxNiIsIDE0
LCAiNjUyNzkiKTsKKworICAgIC8vIExpdHRsZSBlbmRpYW4uCisgICAgdGVzdChpc1Rlc3RpbmdH
ZXQsICJJbnQzMiIsIDAsICI1MDQ2Mjk3NiIsIHRydWUpOworICAgIHRlc3QoaXNUZXN0aW5nR2V0
LCAiSW50MzIiLCAzLCAiMTcxNzkyMDc3MSIsIHRydWUpOworICAgIHRlc3QoaXNUZXN0aW5nR2V0
LCAiSW50MzIiLCA2LCAiLTIxMjIyOTEzNTQiLCB0cnVlKTsKKyAgICB0ZXN0KGlzVGVzdGluZ0dl
dCwgIkludDMyIiwgOSwgIi01ODQ5MDIzOSIsIHRydWUpOworICAgIHRlc3QoaXNUZXN0aW5nR2V0
LCAiSW50MzIiLCAxMiwgIi02NjA1MiIsIHRydWUpOworCisgICAgLy8gQmlnIGVuZGlhbi4KKyAg
ICB0ZXN0KGlzVGVzdGluZ0dldCwgIkludDMyIiwgMCwgIjY2MDUxIik7CisgICAgdGVzdChpc1Rl
c3RpbmdHZXQsICJJbnQzMiIsIDMsICI1NjkxMTIwNiIpOworICAgIHRlc3QoaXNUZXN0aW5nR2V0
LCAiSW50MzIiLCA2LCAiMTcxODA1OTEzNyIpOworICAgIHRlc3QoaXNUZXN0aW5nR2V0LCAiSW50
MzIiLCA5LCAiLTIxMjIxNTI5NjQiKTsKKyAgICB0ZXN0KGlzVGVzdGluZ0dldCwgIkludDMyIiwg
MTIsICItNTA0NjI5NzciKTsKKworICAgIC8vIExpdHRsZSBlbmRpYW4uCisgICAgdGVzdChpc1Rl
c3RpbmdHZXQsICJVaW50MzIiLCAwLCAiNTA0NjI5NzYiLCB0cnVlKTsKKyAgICB0ZXN0KGlzVGVz
dGluZ0dldCwgIlVpbnQzMiIsIDMsICIxNzE3OTIwNzcxIiwgdHJ1ZSk7CisgICAgdGVzdChpc1Rl
c3RpbmdHZXQsICJVaW50MzIiLCA2LCAiMjE3MjY3NTk0MiIsIHRydWUpOworICAgIHRlc3QoaXNU
ZXN0aW5nR2V0LCAiVWludDMyIiwgOSwgIjQyMzY0NzcwNTciLCB0cnVlKTsKKyAgICB0ZXN0KGlz
VGVzdGluZ0dldCwgIlVpbnQzMiIsIDEyLCAiNDI5NDkwMTI0NCIsIHRydWUpOworCisgICAgLy8g
QmlnIGVuZGlhbi4KKyAgICB0ZXN0KGlzVGVzdGluZ0dldCwgIlVpbnQzMiIsIDAsICI2NjA1MSIp
OworICAgIHRlc3QoaXNUZXN0aW5nR2V0LCAiVWludDMyIiwgMywgIjU2OTExMjA2Iik7CisgICAg
dGVzdChpc1Rlc3RpbmdHZXQsICJVaW50MzIiLCA2LCAiMTcxODA1OTEzNyIpOworICAgIHRlc3Qo
aXNUZXN0aW5nR2V0LCAiVWludDMyIiwgOSwgIjIxNzI4MTQzMzIiKTsKKyAgICB0ZXN0KGlzVGVz
dGluZ0dldCwgIlVpbnQzMiIsIDEyLCAiNDI0NDUwNDMxOSIpOworfQorCitmdW5jdGlvbiB0ZXN0
RmxvYXQoaXNUZXN0aW5nR2V0LCBmdW5jLCBhcnJheSwgc3RhcnQsIGV4cGVjdGVkKQoreworICAg
IC8vIExpdHRsZSBlbmRpYW4uCisgICAgY3JlYXRlRGF0YVZpZXcoYXJyYXksIDAsIHRydWUsIHN0
YXJ0KTsKKyAgICB0ZXN0KGlzVGVzdGluZ0dldCwgZnVuYywgMCwgZXhwZWN0ZWQsIHRydWUpOwor
ICAgIGNyZWF0ZURhdGFWaWV3KGFycmF5LCAzLCB0cnVlLCBzdGFydCk7CisgICAgdGVzdChpc1Rl
c3RpbmdHZXQsIGZ1bmMsIDMsIGV4cGVjdGVkLCB0cnVlKTsKKyAgICBjcmVhdGVEYXRhVmlldyhh
cnJheSwgNywgdHJ1ZSwgc3RhcnQpOworICAgIHRlc3QoaXNUZXN0aW5nR2V0LCBmdW5jLCA3LCBl
eHBlY3RlZCwgdHJ1ZSk7CisgICAgY3JlYXRlRGF0YVZpZXcoYXJyYXksIDEwLCB0cnVlLCBzdGFy
dCk7CisgICAgdGVzdChpc1Rlc3RpbmdHZXQsIGZ1bmMsIDEwLCBleHBlY3RlZCwgdHJ1ZSk7Cisg
ICAgCisgICAgLy8gQmlnIGVuZGlhbi4KKyAgICBjcmVhdGVEYXRhVmlldyhhcnJheSwgMCwgZmFs
c2UpOworICAgIHRlc3QoaXNUZXN0aW5nR2V0LCBmdW5jLCAwLCBleHBlY3RlZCwgZmFsc2UpOwor
ICAgIGNyZWF0ZURhdGFWaWV3KGFycmF5LCAzLCBmYWxzZSk7CisgICAgdGVzdChpc1Rlc3RpbmdH
ZXQsIGZ1bmMsIDMsIGV4cGVjdGVkLCBmYWxzZSk7CisgICAgY3JlYXRlRGF0YVZpZXcoYXJyYXks
IDcsIGZhbHNlKTsKKyAgICB0ZXN0KGlzVGVzdGluZ0dldCwgZnVuYywgNywgZXhwZWN0ZWQsIGZh
bHNlKTsKKyAgICBjcmVhdGVEYXRhVmlldyhhcnJheSwgMTAsIGZhbHNlKTsKKyAgICB0ZXN0KGlz
VGVzdGluZ0dldCwgZnVuYywgMTAsIGV4cGVjdGVkLCBmYWxzZSk7Cit9CisKK2Z1bmN0aW9uIHJ1
bkZsb2F0VGVzdENhc2VzKGlzVGVzdGluZ0dldCwgc3RhcnQpCit7CisgICAgdGVzdEZsb2F0KGlz
VGVzdGluZ0dldCwgIkZsb2F0MzIiLCBpc1Rlc3RpbmdHZXQgPyBbMCwgMCwgMzIsIDY1XSA6IGVt
cHR5QXJyYXksIHN0YXJ0LCAiMTAiKTsKKyAgICB0ZXN0RmxvYXQoaXNUZXN0aW5nR2V0LCAiRmxv
YXQzMiIsIGlzVGVzdGluZ0dldCA/IFsxNjQsIDExMiwgMTU3LCA2M10gOiBlbXB0eUFycmF5LCBz
dGFydCwgIjEuMjMwMDAwMDE5MDczNDg2MyIpOworICAgIHRlc3RGbG9hdChpc1Rlc3RpbmdHZXQs
ICJGbG9hdDMyIiwgaXNUZXN0aW5nR2V0ID8gWzk1LCA1MywgNTAsIDE5OV0gOiBlbXB0eUFycmF5
LCBzdGFydCwgIi00NTYyMS4zNzEwOTM3NSIpOworICAgIHRlc3RGbG9hdChpc1Rlc3RpbmdHZXQs
ICJGbG9hdDMyIiwgaXNUZXN0aW5nR2V0ID8gWzI1NSwgMjU1LCAyNTUsIDEyN10gOiBlbXB0eUFy
cmF5LCBzdGFydCwgIk5hTiIpOworICAgIHRlc3RGbG9hdChpc1Rlc3RpbmdHZXQsICJGbG9hdDMy
IiwgaXNUZXN0aW5nR2V0ID8gWzI1NSwgMjU1LCAyNTUsIDI1NV0gOiBlbXB0eUFycmF5LCBzdGFy
dCwgIi1OYU4iKTsKKworICAgIHRlc3RGbG9hdChpc1Rlc3RpbmdHZXQsICJGbG9hdDY0IiwgaXNU
ZXN0aW5nR2V0ID8gWzAsIDAsIDAsIDAsIDAsIDAsIDM2LCA2NF0gOiBlbXB0eUFycmF5LCBzdGFy
dCwgIjEwIik7CisgICAgdGVzdEZsb2F0KGlzVGVzdGluZ0dldCwgIkZsb2F0NjQiLCBpc1Rlc3Rp
bmdHZXQgPyBbMTc0LCA3MSwgMjI1LCAxMjIsIDIwLCAxNzQsIDI0MywgNjNdIDogZW1wdHlBcnJh
eSwgc3RhcnQsICIxLjIzIik7CisgICAgdGVzdEZsb2F0KGlzVGVzdGluZ0dldCwgIkZsb2F0NjQi
LCBpc1Rlc3RpbmdHZXQgPyBbMTgxLCA1NSwgMjQ4LCAzMCwgMjQyLCAxNzksIDg3LCAxOTNdIDog
ZW1wdHlBcnJheSwgc3RhcnQsICItNjIxMzU3Ni40ODM5Iik7CisgICAgdGVzdEZsb2F0KGlzVGVz
dGluZ0dldCwgIkZsb2F0NjQiLCBpc1Rlc3RpbmdHZXQgPyBbMjU1LCAyNTUsIDI1NSwgMjU1LCAy
NTUsIDI1NSwgMjU1LCAxMjddIDogZW1wdHlBcnJheSwgc3RhcnQsICJOYU4iKTsKKyAgICB0ZXN0
RmxvYXQoaXNUZXN0aW5nR2V0LCAiRmxvYXQ2NCIsIGlzVGVzdGluZ0dldCA/IFsyNTUsIDI1NSwg
MjU1LCAyNTUsIDI1NSwgMjU1LCAyNTUsIDI1NV0gOiBlbXB0eUFycmF5LCBzdGFydCwgIi1OYU4i
KTsKK30KKworZnVuY3Rpb24gcnVuQ29uc3RydWN0b3JUZXN0cygpCit7CisgICAgYXJheUJ1ZmZl
ciA9IChuZXcgVWludDhBcnJheShbMSwgMl0pKS5idWZmZXI7CisKKyAgICBkZWJ1ZygiIik7Cisg
ICAgZGVidWcoIlRlc3QgZm9yIGNvbnN0cnVjdG9yIHRha2luZyAxIGFyZ3VtZW50Iik7CisgICAg
c2hvdWxkQmVEZWZpbmVkKCJ2aWV3ID0gbmV3IERhdGFWaWV3KGFyYXlCdWZmZXIpIik7CisgICAg
c2hvdWxkQmUoInZpZXcuYnl0ZU9mZnNldCIsICIwIik7CisgICAgc2hvdWxkQmUoInZpZXcuYnl0
ZUxlbmd0aCIsICIyIik7CisKKyAgICBkZWJ1ZygiIik7CisgICAgZGVidWcoIlRlc3QgZm9yIGNv
bnN0cnVjdG9yIHRha2luZyAyIGFyZ3VtZW50cyIpOworICAgIHNob3VsZEJlRGVmaW5lZCgidmll
dyA9IG5ldyBEYXRhVmlldyhhcmF5QnVmZmVyLCAxKSIpOworICAgIHNob3VsZEJlKCJ2aWV3LmJ5
dGVPZmZzZXQiLCAiMSIpOworICAgIHNob3VsZEJlKCJ2aWV3LmJ5dGVMZW5ndGgiLCAiMSIpOwor
CisgICAgZGVidWcoIiIpOworICAgIGRlYnVnKCJUZXN0IGZvciBjb25zdHJ1Y3RvciB0YWtpbmcg
MyBhcmd1bWVudHMiKTsKKyAgICBzaG91bGRCZURlZmluZWQoInZpZXcgPSBuZXcgRGF0YVZpZXco
YXJheUJ1ZmZlciwgMCwgMSkiKTsKKyAgICBzaG91bGRCZSgidmlldy5ieXRlT2Zmc2V0IiwgIjAi
KTsKKyAgICBzaG91bGRCZSgidmlldy5ieXRlTGVuZ3RoIiwgIjEiKTsKKworICAgIGRlYnVnKCIi
KTsKKyAgICBkZWJ1ZygiVGVzdCBmb3IgY29uc3RydWN0b3IgdGhyb3dpbmcgZXhjZXB0aW9uIik7
CisgICAgc2hvdWxkVGhyb3coInZpZXcgPSBuZXcgRGF0YVZpZXcoYXJheUJ1ZmZlciwgMCwgMyki
KTsKKyAgICBzaG91bGRUaHJvdygidmlldyA9IG5ldyBEYXRhVmlldyhhcmF5QnVmZmVyLCAxLCAy
KSIpOworICAgIHNob3VsZFRocm93KCJ2aWV3ID0gbmV3IERhdGFWaWV3KGFyYXlCdWZmZXIsIDIs
IDEpIik7Cit9CisKK2Z1bmN0aW9uIHJ1bkdldFRlc3RzKCkKK3sKKyAgICBkZWJ1ZygiIik7Cisg
ICAgZGVidWcoIlRlc3QgZm9yIGdldCBtZXRob2RzIHRoYXQgd29yayIpOworICAgIHJ1bkludGVn
ZXJUZXN0Q2FzZXModHJ1ZSwgaW50QXJyYXkxLCAwLCAxNik7CisgICAgcnVuRmxvYXRUZXN0Q2Fz
ZXModHJ1ZSwgMCk7CisKKyAgICBkZWJ1ZygiIik7CisgICAgZGVidWcoIlRlc3QgZm9yIGdldCBt
ZXRob2RzIHRoYXQgbWlnaHQgcmVhZCBiZXlvdW5kIHJhbmdlIik7CisgICAgcnVuSW50ZWdlclRl
c3RDYXNlcyh0cnVlLCBpbnRBcnJheTIsIDMsIDIpOworICAgIHJ1bkZsb2F0VGVzdENhc2VzKHRy
dWUsIDMpOworCisgICAgZGVidWcoIiIpOworICAgIGRlYnVnKCJUZXN0IGZvciB3cm9uZyBhcmd1
bWVudHMgcGFzc2VkIHRvIGdldCBtZXRob2RzIik7CisgICAgdmlldyA9IG5ldyBEYXRhVmlldygo
bmV3IFVpbnQ4QXJyYXkoWzEsIDJdKSkuYnVmZmVyKTsKKyAgICBzaG91bGRUaHJvdygidmlldy5n
ZXRJbnQ4KCkiKTsKKyAgICBzaG91bGRUaHJvdygidmlldy5nZXRVaW50OCgpIik7CisgICAgc2hv
dWxkVGhyb3coInZpZXcuZ2V0SW50MTYoKSIpOworICAgIHNob3VsZFRocm93KCJ2aWV3LmdldFVp
bnQxNigpIik7CisgICAgc2hvdWxkVGhyb3coInZpZXcuZ2V0SW50MzIoKSIpOworICAgIHNob3Vs
ZFRocm93KCJ2aWV3LmdldFVpbnQzMigpIik7CisgICAgc2hvdWxkVGhyb3coInZpZXcuZ2V0Rmxv
YXQzMigpIik7CisgICAgc2hvdWxkVGhyb3coInZpZXcuZ2V0RmxvYXQ2NCgpIik7Cit9CisKK2Z1
bmN0aW9uIHJ1blNldFRlc3RzKCkKK3sKKyAgICBkZWJ1ZygiIik7CisgICAgZGVidWcoIlRlc3Qg
Zm9yIHNldCBtZXRob2RzIHRoYXQgd29yayIpOworICAgIHJ1bkludGVnZXJUZXN0Q2FzZXMoZmFs
c2UsIGVtcHR5QXJyYXksIDAsIDE2KTsKKyAgICBydW5GbG9hdFRlc3RDYXNlcyhmYWxzZSk7CisK
KyAgICBkZWJ1ZygiIik7CisgICAgZGVidWcoIlRlc3QgZm9yIHNldCBtZXRob2RzIHRoYXQgbWln
aHQgd3JpdGUgYmV5b25kIHRoZSByYW5nZSIpOworICAgIHJ1bkludGVnZXJUZXN0Q2FzZXMoZmFs
c2UsIGVtcHR5QXJyYXksIDMsIDIpOworICAgIHJ1bkZsb2F0VGVzdENhc2VzKGZhbHNlLCA3KTsK
KworICAgIGRlYnVnKCIiKTsKKyAgICBkZWJ1ZygiVGVzdCBmb3Igd3JvbmcgYXJndW1lbnRzIHBh
c3NlZCB0byBnZXQgbWV0aG9kcyIpOworICAgIHZpZXcgPSBuZXcgRGF0YVZpZXcoKG5ldyBVaW50
OEFycmF5KFsxLCAyXSkpLmJ1ZmZlcik7CisgICAgc2hvdWxkVGhyb3coInZpZXcuc2V0SW50OCgp
Iik7CisgICAgc2hvdWxkVGhyb3coInZpZXcuc2V0VWludDgoKSIpOworICAgIHNob3VsZFRocm93
KCJ2aWV3LnNldEludDE2KCkiKTsKKyAgICBzaG91bGRUaHJvdygidmlldy5zZXRVaW50MTYoKSIp
OworICAgIHNob3VsZFRocm93KCJ2aWV3LnNldEludDMyKCkiKTsKKyAgICBzaG91bGRUaHJvdygi
dmlldy5zZXRVaW50MzIoKSIpOworICAgIHNob3VsZFRocm93KCJ2aWV3LnNldEZsb2F0MzIoKSIp
OworICAgIHNob3VsZFRocm93KCJ2aWV3LnNldEZsb2F0NjQoKSIpOworICAgIHNob3VsZFRocm93
KCJ2aWV3LnNldEludDgoMSkiKTsKKyAgICBzaG91bGRUaHJvdygidmlldy5zZXRVaW50OCgxKSIp
OworICAgIHNob3VsZFRocm93KCJ2aWV3LnNldEludDE2KDEpIik7CisgICAgc2hvdWxkVGhyb3co
InZpZXcuc2V0VWludDE2KDEpIik7CisgICAgc2hvdWxkVGhyb3coInZpZXcuc2V0SW50MzIoMSki
KTsKKyAgICBzaG91bGRUaHJvdygidmlldy5zZXRVaW50MzIoMSkiKTsKKyAgICBzaG91bGRUaHJv
dygidmlldy5zZXRGbG9hdDMyKDEpIik7CisgICAgc2hvdWxkVGhyb3coInZpZXcuc2V0RmxvYXQ2
NCgxKSIpOworfQorCitmdW5jdGlvbiBydW5JbmRleGluZ1Rlc3RzKCkKK3sKKyAgICBkZWJ1Zygi
Iik7CisgICAgZGVidWcoIlRlc3QgZm9yIGluZGV4aW5nIHRoYXQgc2hvdWxkIG5vdCB3b3JrIik7
CisgICAgdmlldyA9IG5ldyBEYXRhVmlldygobmV3IFVpbnQ4QXJyYXkoWzEsIDJdKSkuYnVmZmVy
KTsKKyAgICBzaG91bGRCZVVuZGVmaW5lZCgidmlld1swXSIpOworICAgIHNob3VsZEJlRGVmaW5l
ZCgidmlld1swXSA9IDMiKTsKKyAgICBzaG91bGRCZSgidmlldy5nZXRVaW50OCgwKSIsICIxIik7
Cit9CisKK3J1bkNvbnN0cnVjdG9yVGVzdHMoKTsKK3J1bkdldFRlc3RzKCk7CitydW5TZXRUZXN0
cygpOworcnVuSW5kZXhpbmdUZXN0cygpOworc3VjY2Vzc2Z1bGx5UGFyc2VkID0gdHJ1ZTsKKzwv
c2NyaXB0PgorCis8c2NyaXB0IHNyYz0iLi4vLi4vanMvcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5q
cyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9m
YXN0L2RvbS9XaW5kb3cvc2NyaXB0LXRlc3RzL3dpbmRvdy1wcm9wZXJ0eS1kZXNjcmlwdG9ycy5q
cyBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL1dpbmRvdy9zY3JpcHQtdGVzdHMvd2luZG93LXByb3Bl
cnR5LWRlc2NyaXB0b3JzLmpzCmluZGV4IDE0MWI2MDguLjFhNzk2OTIgMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL2Zhc3QvZG9tL1dpbmRvdy9zY3JpcHQtdGVzdHMvd2luZG93LXByb3BlcnR5LWRl
c2NyaXB0b3JzLmpzCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL1dpbmRvdy9zY3JpcHQtdGVz
dHMvd2luZG93LXByb3BlcnR5LWRlc2NyaXB0b3JzLmpzCkBAIC0yMSw2ICsyMSw3IEBAIHZhciBf
X3NraXBfXyA9IHsKICAgICAvLyBJZ25vcmUgdGhlc2UgcHJvcGVydGllcyBiZWNhdXNlIHRoZXkg
ZG8gbm90IGV4aXN0IGluIGFsbCBpbXBsZW1lbnRhdGlvbnMuIFRoZXkgd2lsbCBiZSB0ZXN0ZWQg
c2VwYXJhdGVseQogICAgICJXZWJHTFJlbmRlcmluZ0NvbnRleHQiIDogMSwKICAgICAiQXJyYXlC
dWZmZXIiIDogMSwKKyAgICAiRGF0YVZpZXciIDogMSwKICAgICAiSW50OEFycmF5IiA6IDEsCiAg
ICAgIlVpbnQ4QXJyYXkiIDogMSwKICAgICAiSW50MTZBcnJheSIgOiAxLApkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvZmFzdC9kb20vV2luZG93L3dpbmRvdy1wcm9wZXJ0aWVzLmh0bWwgYi9MYXlv
dXRUZXN0cy9mYXN0L2RvbS9XaW5kb3cvd2luZG93LXByb3BlcnRpZXMuaHRtbAppbmRleCBkNTk3
NDgyLi5mYTFlYjU0IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9XaW5kb3cvd2lu
ZG93LXByb3BlcnRpZXMuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9XaW5kb3cvd2lu
ZG93LXByb3BlcnRpZXMuaHRtbApAQCAtNjMsNiArNjMsNyBAQCB2YXIgX19za2lwX18gPSB7CiAg
ICAgLy8gSWdub3JlIHRoZXNlIHByb3BlcnRpZXMgYmVjYXVzZSB0aGV5IGRvIG5vdCBleGlzdCBp
biBhbGwgaW1wbGVtZW50YXRpb25zLiBUaGV5IHdpbGwgYmUgdGVzdGVkIHNlcGFyYXRlbHkKICAg
ICAid2luZG93LldlYkdMUmVuZGVyaW5nQ29udGV4dCIgOiAxLCAKICAgICAid2luZG93LkFycmF5
QnVmZmVyIiA6IDEsCisgICAgIndpbmRvdy5EYXRhVmlldyIgOiAxLAogICAgICJ3aW5kb3cuSW50
OEFycmF5IiA6IDEsCiAgICAgIndpbmRvdy5VaW50OEFycmF5IiA6IDEsCiAgICAgIndpbmRvdy5J
bnQxNkFycmF5IiA6IDEsCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9zY3JpcHQt
dGVzdHMvcHJvdG90eXBlLWluaGVyaXRhbmNlLTIuanMgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9z
Y3JpcHQtdGVzdHMvcHJvdG90eXBlLWluaGVyaXRhbmNlLTIuanMKaW5kZXggM2M2ZDEyMi4uMjMw
OTEwNiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vc2NyaXB0LXRlc3RzL3Byb3Rv
dHlwZS1pbmhlcml0YW5jZS0yLmpzCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL3NjcmlwdC10
ZXN0cy9wcm90b3R5cGUtaW5oZXJpdGFuY2UtMi5qcwpAQCAtNjEsNiArNjEsNyBAQCBmdW5jdGlv
biBjb25zdHJ1Y3Rvck5hbWVzRm9yV2luZG93KGdsb2JhbE9iamVjdCkKICAgICAgICAgLy8gSWdu
b3JlIHRoZXNlIHByb3BlcnRpZXMgYmVjYXVzZSB0aGV5IGRvIG5vdCBleGlzdCBpbiBhbGwgaW1w
bGVtZW50YXRpb25zLiBUaGV5IHdpbGwgYmUgdGVzdGVkIHNlcGFyYXRlbHkKICAgICAgICAgaWYg
KHR5cGUgPT0gIldlYkdMUmVuZGVyaW5nQ29udGV4dENvbnN0cnVjdG9yIiB8fCAKICAgICAgICAg
ICAgIHR5cGUgPT0gIkFycmF5QnVmZmVyQ29uc3RydWN0b3IiIHx8CisgICAgICAgICAgICB0eXBl
ID09ICJEYXRhVmlld0NvbnN0cnVjdG9yIiB8fAogICAgICAgICAgICAgdHlwZSA9PSJGbG9hdDMy
QXJyYXlDb25zdHJ1Y3RvciIgfHwKICAgICAgICAgICAgIHR5cGUgPT0iSW50OEFycmF5Q29uc3Ry
dWN0b3IiIHx8CiAgICAgICAgICAgICB0eXBlID09IkludDE2QXJyYXlDb25zdHJ1Y3RvciIgfHwK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL3NjcmlwdC10ZXN0cy9wcm90b3R5cGUt
aW5oZXJpdGFuY2UuanMgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9zY3JpcHQtdGVzdHMvcHJvdG90
eXBlLWluaGVyaXRhbmNlLmpzCmluZGV4IDg4ZjI3OTMuLjgyMmNjYjMgMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL2Zhc3QvZG9tL3NjcmlwdC10ZXN0cy9wcm90b3R5cGUtaW5oZXJpdGFuY2UuanMK
KysrIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vc2NyaXB0LXRlc3RzL3Byb3RvdHlwZS1pbmhlcml0
YW5jZS5qcwpAQCAtMTcsNyArMTcsNyBAQCB2YXIgc2tpcHBlZFByb3BlcnRpZXMgPSBbCiAgICAg
IndlYmtpdFBlcmZvcm1hbmNlIiwKICAgICAiV2ViR0xSZW5kZXJpbmdDb250ZXh0IiwKICAgICAi
QXJyYXlCdWZmZXIiLAotICAgICJJbnQ4QXJyYXkiLCAiVWludDhBcnJheSIsICJJbnQxNkFycmF5
IiwgIlVpbnQxNkFycmF5IiwgIkludDMyQXJyYXkiLCAiVWludDMyQXJyYXkiLCAiRmxvYXQzMkFy
cmF5IiwKKyAgICAiRGF0YVZpZXciLCAiSW50OEFycmF5IiwgIlVpbnQ4QXJyYXkiLCAiSW50MTZB
cnJheSIsICJVaW50MTZBcnJheSIsICJJbnQzMkFycmF5IiwgIlVpbnQzMkFycmF5IiwgIkZsb2F0
MzJBcnJheSIsCiAgICAgIkZpbGVFcnJvciIsICJGaWxlUmVhZGVyIiwgInJlcXVlc3RGaWxlU3lz
dGVtIiwKICAgICAiaW5kZXhlZERCIiwgIklEQktleVJhbmdlIiwgIklEQkN1cnNvciIsICJJREJE
YXRhYmFzZSIsICJJREJEYXRhYmFzZUVycm9yIiwgIklEQkRhdGFiYXNlRXhjZXB0aW9uIiwgIklE
QkVycm9yRXZlbnQiLCAiSURCRXZlbnQiLCAiSURCRmFjdG9yeSIsICJJREJJbmRleCIsICJJREJP
YmplY3RTdG9yZSIsICJJREJSZXF1ZXN0IiwgIklEQlN1Y2Nlc3NFdmVudCIsICJJREJUcmFuc2Fj
dGlvbiIsCiAgICAgInNob3dNb2RhbERpYWxvZyIsCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9m
YXN0L2pzL3NjcmlwdC10ZXN0cy9nbG9iYWwtY29uc3RydWN0b3JzLmpzIGIvTGF5b3V0VGVzdHMv
ZmFzdC9qcy9zY3JpcHQtdGVzdHMvZ2xvYmFsLWNvbnN0cnVjdG9ycy5qcwppbmRleCAwM2VmMGRm
Li5kNmMxNWU1IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2pzL3NjcmlwdC10ZXN0cy9n
bG9iYWwtY29uc3RydWN0b3JzLmpzCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvanMvc2NyaXB0LXRl
c3RzL2dsb2JhbC1jb25zdHJ1Y3RvcnMuanMKQEAgLTE5LDYgKzE5LDcgQEAgZm9yICh2YXIgeCBp
biBjb25zdHJ1Y3Rvck5hbWVzKSB7CiAgICAgLy8gSWdub3JlIHRoZXNlIHByb3BlcnRpZXMgYmVj
YXVzZSB0aGV5IGRvIG5vdCBleGlzdCBpbiBhbGwgaW1wbGVtZW50YXRpb25zLiBUaGV5IHdpbGwg
YmUgdGVzdGVkIHNlcGFyYXRlbHkKICAgICBpZiAobmFtZSA9PSAiV2ViR0xSZW5kZXJpbmdDb250
ZXh0IiB8fAogICAgICAgICBuYW1lID09ICJBcnJheUJ1ZmZlciIgfHwKKyAgICAgICAgbmFtZSA9
PSAiRGF0YVZpZXciIHx8CiAgICAgICAgIG5hbWUgPT0gIkludDhBcnJheSIgfHwKICAgICAgICAg
bmFtZSA9PSAiVWludDhBcnJheSIgfHwKICAgICAgICAgbmFtZSA9PSAiSW50MTZBcnJheSIgfHwK
ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQgYi9XZWJDb3JlL0NNYWtlTGlzdHMu
dHh0CmluZGV4IDU4ZDgwNjYuLjU0ZGQ2ZGYgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvQ01ha2VMaXN0
cy50eHQKKysrIGIvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dApAQCAtMjkzLDYgKzI5Myw3IEBAIFNF
VChXZWJDb3JlX0lETF9GSUxFUwogICAgIGh0bWwvY2FudmFzL0NhbnZhc1BhdHRlcm4uaWRsCiAg
ICAgaHRtbC9jYW52YXMvQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJELmlkbAogICAgIGh0bWwvY2Fu
dmFzL0NhbnZhc1JlbmRlcmluZ0NvbnRleHQuaWRsCisgICAgaHRtbC9jYW52YXMvRGF0YVZpZXcu
aWRsCiAgICAgaHRtbC9jYW52YXMvRmxvYXQzMkFycmF5LmlkbAogICAgIGh0bWwvY2FudmFzL0lu
dDE2QXJyYXkuaWRsCiAgICAgaHRtbC9jYW52YXMvSW50MzJBcnJheS5pZGwKZGlmZiAtLWdpdCBh
L1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOWE5YWNkNS4uMjY4
ZjRkMiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvV2ViQ29yZS9DaGFuZ2VM
b2cKQEAgLTEsMyArMSw1MiBAQAorMjAxMC0xMS0yMyAgSmlhbiBMaSAgPGppYW5saUBjaHJvbWl1
bS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
SW1wbGVtZW50IERhdGFWaWV3IGludGVyZmFjZSBmcm9tIFR5cGVkIEFycmF5IHNwZWNpZmljYXRp
b24KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQ2NTQx
CisKKyAgICAgICAgVGVzdDogZmFzdC9jYW52YXMvd2ViZ2wvZGF0YS12aWV3LXRlc3QuaHRtbAor
CisgICAgICAgICogQ01ha2VMaXN0cy50eHQ6CisgICAgICAgICogRGVyaXZlZFNvdXJjZXMubWFr
ZToKKyAgICAgICAgKiBHTlVtYWtlZmlsZS5hbToKKyAgICAgICAgKiBXZWJDb3JlLmd5cGk6Cisg
ICAgICAgICogV2ViQ29yZS5wcmk6CisgICAgICAgICogV2ViQ29yZS5wcm86CisgICAgICAgICog
V2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIGJpbmRpbmdzL2dl
bmVyaWMvUnVudGltZUVuYWJsZWRGZWF0dXJlcy5oOgorICAgICAgICAoV2ViQ29yZTo6UnVudGlt
ZUVuYWJsZWRGZWF0dXJlczo6ZGF0YVZpZXdFbmFibGVkKToKKyAgICAgICAgKiBiaW5kaW5ncy9q
cy9KU0FycmF5QnVmZmVyVmlld0hlbHBlci5oOgorICAgICAgICAoV2ViQ29yZTo6Y29uc3RydWN0
QXJyYXlCdWZmZXJWaWV3V2l0aEFycmF5QnVmZmVyQXJndW1lbnQpOgorICAgICAgICAoV2ViQ29y
ZTo6Y29uc3RydWN0QXJyYXlCdWZmZXJWaWV3KToKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU0RP
TVdpbmRvd0N1c3RvbS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpKU0RPTVdpbmRvdzo6ZGF0YVZp
ZXcpOgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pTRGF0YVZpZXdDdXN0b20uY3BwOiBBZGRlZC4K
KyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU0Zsb2F0MzJBcnJheUN1c3RvbS5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpKU0Zsb2F0MzJBcnJheUNvbnN0cnVjdG9yOjpjb25zdHJ1Y3RKU0Zsb2F0MzJB
cnJheSk6CisgICAgICAgICogYmluZGluZ3MvanMvSlNJbnQxNkFycmF5Q3VzdG9tLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OkpTSW50MTZBcnJheUNvbnN0cnVjdG9yOjpjb25zdHJ1Y3RKU0ludDE2
QXJyYXkpOgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pTSW50MzJBcnJheUN1c3RvbS5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpKU0ludDMyQXJyYXlDb25zdHJ1Y3Rvcjo6Y29uc3RydWN0SlNJbnQz
MkFycmF5KToKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU0ludDhBcnJheUN1c3RvbS5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpKU0ludDhBcnJheUNvbnN0cnVjdG9yOjpjb25zdHJ1Y3RKU0ludDhB
cnJheSk6CisgICAgICAgICogYmluZGluZ3MvanMvSlNVaW50MTZBcnJheUN1c3RvbS5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpKU1VpbnQxNkFycmF5Q29uc3RydWN0b3I6OmNvbnN0cnVjdEpTVWlu
dDE2QXJyYXkpOgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pTVWludDMyQXJyYXlDdXN0b20uY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6SlNVaW50MzJBcnJheUNvbnN0cnVjdG9yOjpjb25zdHJ1Y3RK
U1VpbnQzMkFycmF5KToKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU1VpbnQ4QXJyYXlDdXN0b20u
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6SlNVaW50OEFycmF5Q29uc3RydWN0b3I6OmNvbnN0cnVj
dEpTVWludDhBcnJheSk6CisgICAgICAgICogYmluZGluZ3MvdjgvY3VzdG9tL1Y4QXJyYXlCdWZm
ZXJWaWV3Q3VzdG9tLmg6CisgICAgICAgIChXZWJDb3JlOjpjb25zdHJ1Y3RXZWJHTEFycmF5V2l0
aEFycmF5QnVmZmVyQXJndW1lbnQpOgorICAgICAgICAoV2ViQ29yZTo6Y29uc3RydWN0V2ViR0xB
cnJheSk6CisgICAgICAgICogYmluZGluZ3MvdjgvY3VzdG9tL1Y4RGF0YVZpZXdDdXN0b20uY3Bw
OiBBZGRlZC4KKyAgICAgICAgKiBodG1sL2NhbnZhcy9BcnJheUJ1ZmZlclZpZXcuaDoKKyAgICAg
ICAgKFdlYkNvcmU6OkFycmF5QnVmZmVyVmlldzo6aXNEYXRhVmlldyk6CisgICAgICAgICogaHRt
bC9jYW52YXMvRGF0YVZpZXcuY3BwOiBBZGRlZC4KKyAgICAgICAgKiBodG1sL2NhbnZhcy9EYXRh
Vmlldy5oOiBBZGRlZC4KKyAgICAgICAgKiBodG1sL2NhbnZhcy9EYXRhVmlldy5pZGw6IEFkZGVk
LgorICAgICAgICAqIHBhZ2UvRE9NV2luZG93LmlkbDoKKwogMjAxMC0xMS0yMiAgQWJoaXNoZWsg
QXJ5YSAgPGluZmVybm9AY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5IEFkYW0g
QmFydGguCmRpZmYgLS1naXQgYS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UgYi9XZWJDb3Jl
L0Rlcml2ZWRTb3VyY2VzLm1ha2UKaW5kZXggYzJhMTVmNy4uN2JmY2YxNCAxMDA2NDQKLS0tIGEv
V2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtlCisrKyBiL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMu
bWFrZQpAQCAtNzYsNiArNzYsNyBAQCBET01fQ0xBU1NFUyA9IFwKICAgICBXZWJHTEFjdGl2ZUlu
Zm8gXAogICAgIEFycmF5QnVmZmVyVmlldyBcCiAgICAgQXJyYXlCdWZmZXIgXAorICAgIERhdGFW
aWV3IFwKICAgICBXZWJHTEJ1ZmZlciBcCiAgICAgSW50OEFycmF5IFwKICAgICBXZWJHTENvbnRl
eHRBdHRyaWJ1dGVzIFwKZGlmZiAtLWdpdCBhL1dlYkNvcmUvR05VbWFrZWZpbGUuYW0gYi9XZWJD
b3JlL0dOVW1ha2VmaWxlLmFtCmluZGV4IDY1NDFmZTEuLmJmYTNlZDYgMTAwNjQ0Ci0tLSBhL1dl
YkNvcmUvR05VbWFrZWZpbGUuYW0KKysrIGIvV2ViQ29yZS9HTlVtYWtlZmlsZS5hbQpAQCAtMTg4
LDYgKzE4OCw4IEBAIHdlYmNvcmVfYnVpbHRfc291cmNlcyArPSBcCiAJRGVyaXZlZFNvdXJjZXMv
V2ViQ29yZS9KU0RhdGFHcmlkQ29sdW1uLmggXAogCURlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNE
YXRhR3JpZENvbHVtbkxpc3QuY3BwIFwKIAlEZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTRGF0YUdy
aWRDb2x1bW5MaXN0LmggXAorCURlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNEYXRhVmlldy5jcHAg
XAorCURlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNEYXRhVmlldy5oIFwKIAlEZXJpdmVkU291cmNl
cy9XZWJDb3JlL0pTRGVkaWNhdGVkV29ya2VyQ29udGV4dC5jcHAgXAogCURlcml2ZWRTb3VyY2Vz
L1dlYkNvcmUvSlNEZWRpY2F0ZWRXb3JrZXJDb250ZXh0LmggXAogCURlcml2ZWRTb3VyY2VzL1dl
YkNvcmUvSlNEZXZpY2VNb3Rpb25FdmVudC5jcHAgXApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9XZWJD
b3JlLmd5cGkgYi9XZWJDb3JlL1dlYkNvcmUuZ3lwaQppbmRleCBjYmY3ODE0Li5kZWNiN2Q0IDEw
MDY0NAotLS0gYS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQorKysgYi9XZWJDb3JlL1dlYkNvcmUuZ3lw
aQpAQCAtMjA3LDYgKzIwNyw3IEBACiAgICAgICAgICAgICAnaHRtbC9jYW52YXMvQ2FudmFzUGl4
ZWxBcnJheS5pZGwnLAogICAgICAgICAgICAgJ2h0bWwvY2FudmFzL0NhbnZhc1JlbmRlcmluZ0Nv
bnRleHQuaWRsJywKICAgICAgICAgICAgICdodG1sL2NhbnZhcy9DYW52YXNSZW5kZXJpbmdDb250
ZXh0MkQuaWRsJywKKyAgICAgICAgICAgICdodG1sL2NhbnZhcy9EYXRhVmlldy5pZGwnLAogICAg
ICAgICAgICAgJ2h0bWwvY2FudmFzL0Zsb2F0MzJBcnJheS5pZGwnLAogICAgICAgICAgICAgJ2h0
bWwvY2FudmFzL0ludDE2QXJyYXkuaWRsJywKICAgICAgICAgICAgICdodG1sL2NhbnZhcy9JbnQz
MkFycmF5LmlkbCcsCkBAIC03NDcsNiArNzQ4LDggQEAKICAgICAgICAgICAgICdiaW5kaW5ncy92
OC9jdXN0b20vVjhDYW52YXNQaXhlbEFycmF5Q3VzdG9tLmNwcCcsCiAgICAgICAgICAgICAnYmlu
ZGluZ3MvdjgvY3VzdG9tL1Y4QXJyYXlCdWZmZXJWaWV3Q3VzdG9tLmgnLAogICAgICAgICAgICAg
J2JpbmRpbmdzL3Y4L2N1c3RvbS9WOEFycmF5QnVmZmVyQ3VzdG9tLmNwcCcsCisgICAgICAgICAg
ICAnYmluZGluZ3MvdjgvY3VzdG9tL1Y4RGF0YVZpZXdDdXN0b20uY3BwJywKKyAgICAgICAgICAg
ICdiaW5kaW5ncy92OC9jdXN0b20vVjhEYXRhVmlld0N1c3RvbS5oJywKICAgICAgICAgICAgICdi
aW5kaW5ncy92OC9jdXN0b20vVjhJbnQ4QXJyYXlDdXN0b20uY3BwJywKICAgICAgICAgICAgICdi
aW5kaW5ncy92OC9jdXN0b20vVjhJbnQzMkFycmF5Q3VzdG9tLmNwcCcsCiAgICAgICAgICAgICAn
YmluZGluZ3MvdjgvY3VzdG9tL1Y4RmlsZVJlYWRlckN1c3RvbS5jcHAnLApAQCAtMTg2Miw2ICsx
ODY1LDggQEAKICAgICAgICAgICAgICdodG1sL2NhbnZhcy9DYW52YXNTdHlsZS5jcHAnLAogICAg
ICAgICAgICAgJ2h0bWwvY2FudmFzL0NhbnZhc1N0eWxlLmgnLAogICAgICAgICAgICAgJ2h0bWwv
Y2FudmFzL0NoZWNrZWRJbnQuaCcsCisgICAgICAgICAgICAnaHRtbC9jYW52YXMvRGF0YVZpZXcu
Y3BwJywKKyAgICAgICAgICAgICdodG1sL2NhbnZhcy9EYXRhVmlldy5oJywKICAgICAgICAgICAg
ICdodG1sL2NhbnZhcy9GbG9hdDMyQXJyYXkuY3BwJywKICAgICAgICAgICAgICdodG1sL2NhbnZh
cy9GbG9hdDMyQXJyYXkuaCcsCiAgICAgICAgICAgICAnaHRtbC9jYW52YXMvSW50MTZBcnJheS5j
cHAnLApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9XZWJDb3JlLnByaSBiL1dlYkNvcmUvV2ViQ29yZS5w
cmkKaW5kZXggZjhjZWE0MS4uNTA0MzE4OCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9XZWJDb3JlLnBy
aQorKysgYi9XZWJDb3JlL1dlYkNvcmUucHJpCkBAIC0xODIsNiArMTgyLDcgQEAgSURMX0JJTkRJ
TkdTICs9IFwKICAgICBmaWxlYXBpL01ldGFkYXRhQ2FsbGJhY2suaWRsIFwKICAgICBodG1sL2Nh
bnZhcy9BcnJheUJ1ZmZlclZpZXcuaWRsIFwKICAgICBodG1sL2NhbnZhcy9BcnJheUJ1ZmZlci5p
ZGwgXAorICAgIGh0bWwvY2FudmFzL0RhdGFWaWV3LmlkbCBcCiAgICAgaHRtbC9jYW52YXMvSW50
OEFycmF5LmlkbCBcCiAgICAgaHRtbC9jYW52YXMvRmxvYXQzMkFycmF5LmlkbCBcCiAgICAgaHRt
bC9jYW52YXMvQ2FudmFzR3JhZGllbnQuaWRsIFwKZGlmZiAtLWdpdCBhL1dlYkNvcmUvV2ViQ29y
ZS5wcm8gYi9XZWJDb3JlL1dlYkNvcmUucHJvCmluZGV4IDEwNjdjZTIuLjMyODlmNzEgMTAwNjQ0
Ci0tLSBhL1dlYkNvcmUvV2ViQ29yZS5wcm8KKysrIGIvV2ViQ29yZS9XZWJDb3JlLnBybwpAQCAt
MzY5Nyw2ICszNjk3LDcgQEAgSEVBREVSUyArPSBcCiAgICAgICAgIGh0bWwvY2FudmFzL1dlYkdM
QWN0aXZlSW5mby5oIFwKICAgICAgICAgaHRtbC9jYW52YXMvQXJyYXlCdWZmZXIuaCBcCiAgICAg
ICAgIGh0bWwvY2FudmFzL0FycmF5QnVmZmVyVmlldy5oIFwKKyAgICAgICAgaHRtbC9jYW52YXMv
RGF0YVZpZXcuaCBcCiAgICAgICAgIGh0bWwvY2FudmFzL1dlYkdMQnVmZmVyLmggXAogICAgICAg
ICBodG1sL2NhbnZhcy9JbnQ4QXJyYXkuaCBcCiAgICAgICAgIGh0bWwvY2FudmFzL1dlYkdMQ29u
dGV4dEF0dHJpYnV0ZXMuaCBcCkBAIC0zNzIxLDYgKzM3MjIsNyBAQCBIRUFERVJTICs9IFwKICAg
ICAhdjggewogICAgICAgICBTT1VSQ0VTICs9IFwKICAgICAgICAgICAgICAgICBiaW5kaW5ncy9q
cy9KU0FycmF5QnVmZmVyQ3VzdG9tLmNwcCBcCisgICAgICAgICAgICAgICAgYmluZGluZ3MvanMv
SlNEYXRhVmlld0N1c3RvbS5jcHAgXAogICAgICAgICAgICAgICAgIGJpbmRpbmdzL2pzL0pTSW50
OEFycmF5Q3VzdG9tLmNwcCBcCiAgICAgICAgICAgICAgICAgYmluZGluZ3MvanMvSlNGbG9hdDMy
QXJyYXlDdXN0b20uY3BwIFwKICAgICAgICAgICAgICAgICBiaW5kaW5ncy9qcy9KU0ludDMyQXJy
YXlDdXN0b20uY3BwIFwKQEAgLTM3MzUsNiArMzczNyw3IEBAIFNPVVJDRVMgKz0gXAogICAgICAg
ICBodG1sL2NhbnZhcy9XZWJHTE9iamVjdC5jcHAgXAogICAgICAgICBodG1sL2NhbnZhcy9BcnJh
eUJ1ZmZlci5jcHAgXAogICAgICAgICBodG1sL2NhbnZhcy9BcnJheUJ1ZmZlclZpZXcuY3BwIFwK
KyAgICAgICAgaHRtbC9jYW52YXMvRGF0YVZpZXcuY3BwIFwKICAgICAgICAgaHRtbC9jYW52YXMv
V2ViR0xCdWZmZXIuY3BwIFwKICAgICAgICAgaHRtbC9jYW52YXMvSW50OEFycmF5LmNwcCBcCiAg
ICAgICAgIGh0bWwvY2FudmFzL1dlYkdMQ29udGV4dEF0dHJpYnV0ZXMuY3BwIFwKZGlmZiAtLWdp
dCBhL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvV2ViQ29yZS9X
ZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggMjMxNmNlZi4uNmFkNzc4OCAx
MDA2NDQKLS0tIGEvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysr
IGIvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTc2Nyw2ICs3
NjcsMTEgQEAKIAkJMkU3NTg0MUYxMjc3OUFEQTAwNjI2MjhCIC8qIEZpbGVSZWFkZXJMb2FkZXJD
bGllbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDJF
NzU4NDFDMTI3NzlBREEwMDYyNjI4QiAvKiBGaWxlUmVhZGVyTG9hZGVyQ2xpZW50LmggKi87IH07
CiAJCTJFOTRGNDNCMTE5MjA3REEwMEI3Rjc1RCAvKiBKU0ZpbGVSZWFkZXIuY3BwIGluIFNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMkU5NEY0MzkxMTkyMDdEQTAw
QjdGNzVEIC8qIEpTRmlsZVJlYWRlci5jcHAgKi87IH07CiAJCTJFOTRGNDNDMTE5MjA3REEwMEI3
Rjc1RCAvKiBKU0ZpbGVSZWFkZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDJFOTRGNDNBMTE5MjA3REEwMEI3Rjc1RCAvKiBKU0ZpbGVSZWFkZXIuaCAq
LzsgfTsKKwkJMkU5N0NDRUExMjkzOUNCODAwQzVDOEZGIC8qIERhdGFWaWV3LmNwcCBpbiBTb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDJFOTdDQ0U3MTI5MzlDQjgw
MEM1QzhGRiAvKiBEYXRhVmlldy5jcHAgKi87IH07CisJCTJFOTdDQ0VCMTI5MzlDQjgwMEM1QzhG
RiAvKiBEYXRhVmlldy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gMkU5N0NDRTgxMjkzOUNCODAwQzVDOEZGIC8qIERhdGFWaWV3LmggKi87IH07CisJCTJF
OTdDQ0Y3MTI5M0E0M0EwMEM1QzhGRiAvKiBKU0RhdGFWaWV3Q3VzdG9tLmNwcCBpbiBTb3VyY2Vz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDJFOTdDQ0Y2MTI5M0E0M0EwMEM1
QzhGRiAvKiBKU0RhdGFWaWV3Q3VzdG9tLmNwcCAqLzsgfTsKKwkJMkU5N0NFNkYxMjkzQUQ2QjAw
QzVDOEZGIC8qIEpTRGF0YVZpZXcuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gMkU5N0NFNkQxMjkzQUQ2QjAwQzVDOEZGIC8qIEpTRGF0YVZpZXcuY3Bw
ICovOyB9OworCQkyRTk3Q0U3MDEyOTNBRDZCMDBDNUM4RkYgLyogSlNEYXRhVmlldy5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMkU5N0NFNkUxMjkzQUQ2
QjAwQzVDOEZGIC8qIEpTRGF0YVZpZXcuaCAqLzsgfTsKIAkJMkVBNzY4MDQwRkU3MTI2NDAwQUI5
QzhBIC8qIFdvcmtlclNjcmlwdExvYWRlckNsaWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMkVBNzY4MDMwRkU3MTI2NDAwQUI5QzhBIC8qIFdvcmtl
clNjcmlwdExvYWRlckNsaWVudC5oICovOyB9OwogCQkyRUI0QkNEMjEyMUYwM0UzMDBFQzQ4ODUg
LyogQmxvYlJlc291cmNlSGFuZGxlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDJFQjRCQ0QwMTIxRjAzRTMwMEVDNDg4NSAvKiBCbG9iUmVzb3VyY2VI
YW5kbGUuY3BwICovOyB9OwogCQkyRUI0QkNEMzEyMUYwM0UzMDBFQzQ4ODUgLyogQmxvYlJlc291
cmNlSGFuZGxlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSAyRUI0QkNEMTEyMUYwM0UzMDBFQzQ4ODUgLyogQmxvYlJlc291cmNlSGFuZGxlLmggKi87IH07
CkBAIC02ODU0LDYgKzY4NTksMTIgQEAKIAkJMkU3NTg0MUMxMjc3OUFEQTAwNjI2MjhCIC8qIEZp
bGVSZWFkZXJMb2FkZXJDbGllbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0g
RmlsZVJlYWRlckxvYWRlckNsaWVudC5oOyBwYXRoID0gZmlsZWFwaS9GaWxlUmVhZGVyTG9hZGVy
Q2xpZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTJFOTRGNDM5MTE5MjA3REEw
MEI3Rjc1RCAvKiBKU0ZpbGVSZWFkZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3Bw
OyBwYXRoID0gSlNGaWxlUmVhZGVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
MkU5NEY0M0ExMTkyMDdEQTAwQjdGNzVEIC8qIEpTRmlsZVJlYWRlci5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBKU0ZpbGVSZWFkZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKKwkJMkU5N0NDRTcxMjkzOUNCODAwQzVDOEZGIC8qIERhdGFWaWV3LmNwcCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IERhdGFWaWV3LmNwcDsgcGF0aCA9IGNhbnZh
cy9EYXRhVmlldy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTJFOTdDQ0U4MTI5
MzlDQjgwMEM1QzhGRiAvKiBEYXRhVmlldy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5h
bWUgPSBEYXRhVmlldy5oOyBwYXRoID0gY2FudmFzL0RhdGFWaWV3Lmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CisJCTJFOTdDQ0U5MTI5MzlDQjgwMEM1QzhGRiAvKiBEYXRhVmlldy5pZGwg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSB0ZXh0OyBuYW1lID0gRGF0YVZpZXcuaWRsOyBwYXRoID0gY2FudmFzL0RhdGFW
aWV3LmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMkU5N0NDRjYxMjkzQTQzQTAw
QzVDOEZGIC8qIEpTRGF0YVZpZXdDdXN0b20uY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
Y3BwOyBwYXRoID0gSlNEYXRhVmlld0N1c3RvbS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CisJCTJFOTdDRTZEMTI5M0FENkIwMEM1QzhGRiAvKiBKU0RhdGFWaWV3LmNwcCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTRGF0YVZpZXcuY3BwOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OworCQkyRTk3Q0U2RTEyOTNBRDZCMDBDNUM4RkYgLyogSlNEYXRhVmll
dy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU0RhdGFWaWV3Lmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTJFQTc2ODAzMEZFNzEyNjQwMEFCOUM4QSAvKiBXb3Jr
ZXJTY3JpcHRMb2FkZXJDbGllbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0g
V29ya2VyU2NyaXB0TG9hZGVyQ2xpZW50Lmg7IHBhdGggPSB3b3JrZXJzL1dvcmtlclNjcmlwdExv
YWRlckNsaWVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkyRUI0QkNEMDEyMUYw
M0UzMDBFQzQ4ODUgLyogQmxvYlJlc291cmNlSGFuZGxlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLmNwcDsgcGF0aCA9IEJsb2JSZXNvdXJjZUhhbmRsZS5jcHA7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTJFQjRCQ0QxMTIxRjAzRTMwMEVDNDg4NSAvKiBCbG9iUmVzb3VyY2VI
YW5kbGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQmxvYlJlc291cmNlSGFu
ZGxlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xMjYyNSw2ICsxMjYzNiw5IEBA
CiAJCQkJNDk0ODRGQkYxMDJDRjIzQzAwMTg3REQzIC8qIENhbnZhc1N0eWxlLmNwcCAqLywKIAkJ
CQk0OTQ4NEZDMDEwMkNGMjNDMDAxODdERDMgLyogQ2FudmFzU3R5bGUuaCAqLywKIAkJCQlBMDBC
NzIxOTExREU2NDI3MDA4QUI5RkYgLyogQ2hlY2tlZEludC5oICovLAorCQkJCTJFOTdDQ0U3MTI5
MzlDQjgwMEM1QzhGRiAvKiBEYXRhVmlldy5jcHAgKi8sCisJCQkJMkU5N0NDRTgxMjkzOUNCODAw
QzVDOEZGIC8qIERhdGFWaWV3LmggKi8sCisJCQkJMkU5N0NDRTkxMjkzOUNCODAwQzVDOEZGIC8q
IERhdGFWaWV3LmlkbCAqLywKIAkJCQk0OUVFQ0RDRDEwNTAzQzIzMDAwOTlGQUIgLyogRmxvYXQz
MkFycmF5LmNwcCAqLywKIAkJCQk0OUVFQ0RDRTEwNTAzQzIzMDAwOTlGQUIgLyogRmxvYXQzMkFy
cmF5LmggKi8sCiAJCQkJNDlFRUNEQ0YxMDUwM0MyMzAwMDk5RkFCIC8qIEZsb2F0MzJBcnJheS5p
ZGwgKi8sCkBAIC0xNTMxMiw2ICsxNTMyNiw4IEBACiAJCQkJQkM3N0QxNjYwRkYxOUY1NTAwNzA4
ODdCIC8qIEpTRGF0YUdyaWRDb2x1bW4uaCAqLywKIAkJCQlCQzc3RDE2NzBGRjE5RjU1MDA3MDg4
N0IgLyogSlNEYXRhR3JpZENvbHVtbkxpc3QuY3BwICovLAogCQkJCUJDNzdEMTY4MEZGMTlGNTUw
MDcwODg3QiAvKiBKU0RhdGFHcmlkQ29sdW1uTGlzdC5oICovLAorCQkJCTJFOTdDRTZEMTI5M0FE
NkIwMEM1QzhGRiAvKiBKU0RhdGFWaWV3LmNwcCAqLywKKwkJCQkyRTk3Q0U2RTEyOTNBRDZCMDBD
NUM4RkYgLyogSlNEYXRhVmlldy5oICovLAogCQkJCTJFMDg4OEQyMTE0ODg0OEEwMEFGNDI2NSAv
KiBKU0RPTUZvcm1EYXRhLmNwcCAqLywKIAkJCQkyRTA4ODhEMzExNDg4NDhBMDBBRjQyNjUgLyog
SlNET01Gb3JtRGF0YS5oICovLAogCQkJCTRBQ0JDMEM4MTI3MTNEMEEwMDk0RjlCMiAvKiBKU0RP
TVNldHRhYmxlVG9rZW5MaXN0LmNwcCAqLywKQEAgLTE3MDkxLDYgKzE3MTA3LDcgQEAKIAkJCQlF
MUFEMTRFNzEyOTczNzc0MDBBQ0E5ODkgLyogSlNDU1NTdHlsZVJ1bGVDdXN0b20uY3BwICovLAog
CQkJCUJDMjBGQjdFMEMwRThFNkMwMEQxNDQ3RiAvKiBKU0NTU1ZhbHVlQ3VzdG9tLmNwcCAqLywK
IAkJCQlCQzc3RDE1MTBGRjE5QzczMDA3MDg4N0IgLyogSlNEYXRhR3JpZENvbHVtbkxpc3RDdXN0
b20uY3BwICovLAorCQkJCTJFOTdDQ0Y2MTI5M0E0M0EwMEM1QzhGRiAvKiBKU0RhdGFWaWV3Q3Vz
dG9tLmNwcCAqLywKIAkJCQk0MTYyQTQ1MzEwMTE0NUUzMDBERkYzRUQgLyogSlNEZWRpY2F0ZWRX
b3JrZXJDb250ZXh0Q3VzdG9tLmNwcCAqLywKIAkJCQkzMzUwM0NCRjEwMTc5QzFBMDAzQjQ3RTEg
LyogSlNEZXNrdG9wTm90aWZpY2F0aW9uc0N1c3RvbS5jcHAgKi8sCiAJCQkJMzFGQjFBNkIxMjBB
NUQ2OTAwREMwMkEwIC8qIEpTRGV2aWNlTW90aW9uRXZlbnRDdXN0b20uY3BwICovLApAQCAtMjEz
OTIsNiArMjE0MDksOCBAQAogCQkJCTc1NDE1RDU2MTI5QUIyRDIwMDNBRDY2OSAvKiBKU1NwZWVj
aElucHV0RXZlbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCTc1NDE1RDU4MTI5QUIyRDIwMDNBRDY2
OSAvKiBKU1NwZWVjaElucHV0UmVzdWx0LmggaW4gSGVhZGVycyAqLywKIAkJCQk3NTQxNUQ1QTEy
OUFCMkQyMDAzQUQ2NjkgLyogSlNTcGVlY2hJbnB1dFJlc3VsdExpc3QuaCBpbiBIZWFkZXJzICov
LAorCQkJCTJFOTdDQ0VCMTI5MzlDQjgwMEM1QzhGRiAvKiBEYXRhVmlldy5oIGluIEhlYWRlcnMg
Ki8sCisJCQkJMkU5N0NFNzAxMjkzQUQ2QjAwQzVDOEZGIC8qIEpTRGF0YVZpZXcuaCBpbiBIZWFk
ZXJzICovLAogCQkJKTsKIAkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9zdHByb2Nlc3NpbmcgPSAw
OwogCQl9OwpAQCAtMjM5NjYsNiArMjM5ODUsOSBAQAogCQkJCTc1NDE1RDU1MTI5QUIyRDIwMDNB
RDY2OSAvKiBKU1NwZWVjaElucHV0RXZlbnQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNzU0MTVE
NTcxMjlBQjJEMjAwM0FENjY5IC8qIEpTU3BlZWNoSW5wdXRSZXN1bHQuY3BwIGluIFNvdXJjZXMg
Ki8sCiAJCQkJNzU0MTVENTkxMjlBQjJEMjAwM0FENjY5IC8qIEpTU3BlZWNoSW5wdXRSZXN1bHRM
aXN0LmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTJFOTdDQ0VBMTI5MzlDQjgwMEM1QzhGRiAvKiBE
YXRhVmlldy5jcHAgaW4gU291cmNlcyAqLywKKwkJCQkyRTk3Q0NGNzEyOTNBNDNBMDBDNUM4RkYg
LyogSlNEYXRhVmlld0N1c3RvbS5jcHAgaW4gU291cmNlcyAqLywKKwkJCQkyRTk3Q0U2RjEyOTNB
RDZCMDBDNUM4RkYgLyogSlNEYXRhVmlldy5jcHAgaW4gU291cmNlcyAqLywKIAkJCSk7CiAJCQly
dW5Pbmx5Rm9yRGVwbG95bWVudFBvc3Rwcm9jZXNzaW5nID0gMDsKIAkJfTsKZGlmZiAtLWdpdCBh
L1dlYkNvcmUvYmluZGluZ3MvZ2VuZXJpYy9SdW50aW1lRW5hYmxlZEZlYXR1cmVzLmggYi9XZWJD
b3JlL2JpbmRpbmdzL2dlbmVyaWMvUnVudGltZUVuYWJsZWRGZWF0dXJlcy5oCmluZGV4IDBhYjUx
MjAuLjMzNDMyY2UgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvYmluZGluZ3MvZ2VuZXJpYy9SdW50aW1l
RW5hYmxlZEZlYXR1cmVzLmgKKysrIGIvV2ViQ29yZS9iaW5kaW5ncy9nZW5lcmljL1J1bnRpbWVF
bmFibGVkRmVhdHVyZXMuaApAQCAtMTAyLDYgKzEwMiw3IEBAIHB1YmxpYzoKICAgICBzdGF0aWMg
Ym9vbCBpbnQzMkFycmF5RW5hYmxlZCgpIHsgcmV0dXJuIGlzV2ViR0xFbmFibGVkOyB9CiAgICAg
c3RhdGljIGJvb2wgdWludDMyQXJyYXlFbmFibGVkKCkgeyByZXR1cm4gaXNXZWJHTEVuYWJsZWQ7
IH0KICAgICBzdGF0aWMgYm9vbCBmbG9hdDMyQXJyYXlFbmFibGVkKCkgeyByZXR1cm4gaXNXZWJH
TEVuYWJsZWQ7IH0KKyAgICBzdGF0aWMgYm9vbCBkYXRhVmlld0VuYWJsZWQoKSB7IHJldHVybiBp
c1dlYkdMRW5hYmxlZDsgfQogICAgIHN0YXRpYyBib29sIHdlYkdMUmVuZGVyaW5nQ29udGV4dEVu
YWJsZWQoKSB7IHJldHVybiBpc1dlYkdMRW5hYmxlZDsgfQogICAgIHN0YXRpYyBib29sIHdlYkdM
QXJyYXlCdWZmZXJFbmFibGVkKCkgeyByZXR1cm4gaXNXZWJHTEVuYWJsZWQ7IH0KICAgICBzdGF0
aWMgYm9vbCB3ZWJHTEJ5dGVBcnJheUVuYWJsZWQoKSB7IHJldHVybiBpc1dlYkdMRW5hYmxlZDsg
fQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0FycmF5QnVmZmVyVmlld0hlbHBl
ci5oIGIvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0FycmF5QnVmZmVyVmlld0hlbHBlci5oCmluZGV4
IGJhNzEyYzYuLmYzNGY0YjkgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvYmluZGluZ3MvanMvSlNBcnJh
eUJ1ZmZlclZpZXdIZWxwZXIuaAorKysgYi9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTQXJyYXlCdWZm
ZXJWaWV3SGVscGVyLmgKQEAgLTg2LDE2ICs4NiwzMyBAQCBKU0M6OkpTVmFsdWUgc2V0V2ViR0xB
cnJheUhlbHBlcihKU0M6OkV4ZWNTdGF0ZSogZXhlYywgVCogaW1wbCwgVCogKCpjb252ZXJzaW9u
RgogLy8gVGVtcGxhdGUgZnVuY3Rpb24gdXNlZCBieSBYWFhBcnJheUNvbnN0cnVjdG9ycy4KIC8v
IElmIHRoaXMgcmV0dXJucyAwLCBpdCB3aWxsIGFscmVhZHkgaGF2ZSB0aHJvd24gYSBKYXZhU2Ny
aXB0IGV4Y2VwdGlvbi4KIHRlbXBsYXRlPGNsYXNzIEMsIHR5cGVuYW1lIFQ+Ci1QYXNzUmVmUHRy
PEFycmF5QnVmZmVyVmlldz4gY29uc3RydWN0QXJyYXlCdWZmZXJWaWV3KEpTQzo6RXhlY1N0YXRl
KiBleGVjKQorUGFzc1JlZlB0cjxDPiBjb25zdHJ1Y3RBcnJheUJ1ZmZlclZpZXdXaXRoQXJyYXlC
dWZmZXJBcmd1bWVudChKU0M6OkV4ZWNTdGF0ZSogZXhlYykKK3sKKyAgICBSZWZQdHI8QXJyYXlC
dWZmZXI+IGJ1ZmZlciA9IHRvQXJyYXlCdWZmZXIoZXhlYy0+YXJndW1lbnQoMCkpOworICAgIGlm
ICghYnVmZmVyKQorICAgICAgICByZXR1cm4gMDsKKworICAgIHVuc2lnbmVkIG9mZnNldCA9IChl
eGVjLT5hcmd1bWVudENvdW50KCkgPiAxKSA/IGV4ZWMtPmFyZ3VtZW50KDEpLnRvVUludDMyKGV4
ZWMpIDogMDsKKyAgICBpZiAoKGJ1ZmZlci0+Ynl0ZUxlbmd0aCgpIC0gb2Zmc2V0KSAlIHNpemVv
ZihUKSkKKyAgICAgICAgdGhyb3dFcnJvcihleGVjLCBjcmVhdGVSYW5nZUVycm9yKGV4ZWMsICJB
cnJheUJ1ZmZlciBsZW5ndGggbWludXMgdGhlIGJ5dGVPZmZzZXQgaXMgbm90IGEgbXVsdGlwbGUg
b2YgdGhlIGVsZW1lbnQgc2l6ZS4iKSk7CisgICAgdW5zaWduZWQgaW50IGxlbmd0aCA9IChidWZm
ZXItPmJ5dGVMZW5ndGgoKSAtIG9mZnNldCkgLyBzaXplb2YoVCk7CisgICAgaWYgKGV4ZWMtPmFy
Z3VtZW50Q291bnQoKSA+IDIpCisgICAgICAgIGxlbmd0aCA9IGV4ZWMtPmFyZ3VtZW50KDIpLnRv
VUludDMyKGV4ZWMpOworICAgIFJlZlB0cjxDPiBhcnJheSA9IEM6OmNyZWF0ZShidWZmZXIsIG9m
ZnNldCwgbGVuZ3RoKTsKKyAgICBpZiAoIWFycmF5KQorICAgICAgICBzZXRET01FeGNlcHRpb24o
ZXhlYywgSU5ERVhfU0laRV9FUlIpOworICAgIHJldHVybiBhcnJheTsKK30KKwordGVtcGxhdGU8
Y2xhc3MgQywgdHlwZW5hbWUgVD4KK1Bhc3NSZWZQdHI8Qz4gY29uc3RydWN0QXJyYXlCdWZmZXJW
aWV3KEpTQzo6RXhlY1N0YXRlKiBleGVjKQogewogICAgIC8vIFRoZXJlIGFyZSAzIGNvbnN0cnVj
dG9yczoKICAgICAvLwogICAgIC8vICAxKSAoaW4gaW50IHNpemUpCiAgICAgLy8gIDIpIChpbiBB
cnJheUJ1ZmZlciBidWZmZXIsIFtPcHRpb25hbF0gaW4gaW50IG9mZnNldCwgW09wdGlvbmFsXSBp
biB1bnNpZ25lZCBpbnQgbGVuZ3RoKQogICAgIC8vICAzKSAoaW4gc2VxdWVuY2U8VD4pIC0gVGhp
cyBlbmRzIHVwIGJlaW5nIGEgSlMgImFycmF5LWxpa2UiIG9iamVjdAotICAgIC8vCi0gICAgUmVm
UHRyPEM+IGFycmF5T2JqZWN0OwotICAgIAorICAgIC8vICAgIAogICAgIC8vIEZvciB0aGUgMCBh
cmdzIGNhc2UsIGp1c3QgY3JlYXRlIGEgemVyby1sZW5ndGggdmlldy4gV2UgY291bGQKICAgICAv
LyBjb25zaWRlciByYWlzaW5nIGEgU3ludGF4RXJyb3IgZm9yIHRoaXMgY2FzZSwgYnV0IG5vdCBh
bGwKICAgICAvLyBKYXZhU2NyaXB0IERPTSBiaW5kaW5ncyBjYW4gZGlzdGluZ3Vpc2ggYmV0d2Vl
biAibmV3CkBAIC0xMTIsMjAgKzEyOSwxMCBAQCBQYXNzUmVmUHRyPEFycmF5QnVmZmVyVmlldz4g
Y29uc3RydWN0QXJyYXlCdWZmZXJWaWV3KEpTQzo6RXhlY1N0YXRlKiBleGVjKQogICAgIH0KIAog
ICAgIGlmIChleGVjLT5hcmd1bWVudCgwKS5pc09iamVjdCgpKSB7Ci0gICAgICAgIFJlZlB0cjxB
cnJheUJ1ZmZlcj4gYnVmZmVyID0gdG9BcnJheUJ1ZmZlcihleGVjLT5hcmd1bWVudCgwKSk7Ci0g
ICAgICAgIGlmIChidWZmZXIpIHsKLSAgICAgICAgICAgIHVuc2lnbmVkIG9mZnNldCA9IChleGVj
LT5hcmd1bWVudENvdW50KCkgPiAxKSA/IGV4ZWMtPmFyZ3VtZW50KDEpLnRvVUludDMyKGV4ZWMp
IDogMDsKLSAgICAgICAgICAgIGlmICgoYnVmZmVyLT5ieXRlTGVuZ3RoKCkgLSBvZmZzZXQpICUg
c2l6ZW9mKFQpKQotICAgICAgICAgICAgICAgIHRocm93RXJyb3IoZXhlYywgY3JlYXRlUmFuZ2VF
cnJvcihleGVjLCAiQXJyYXlCdWZmZXIgbGVuZ3RoIG1pbnVzIHRoZSBieXRlT2Zmc2V0IGlzIG5v
dCBhIG11bHRpcGxlIG9mIHRoZSBlbGVtZW50IHNpemUuIikpOwotICAgICAgICAgICAgdW5zaWdu
ZWQgaW50IGxlbmd0aCA9IChidWZmZXItPmJ5dGVMZW5ndGgoKSAtIG9mZnNldCkgLyBzaXplb2Yo
VCk7Ci0gICAgICAgICAgICBpZiAoZXhlYy0+YXJndW1lbnRDb3VudCgpID4gMikKLSAgICAgICAg
ICAgICAgICBsZW5ndGggPSBleGVjLT5hcmd1bWVudCgyKS50b1VJbnQzMihleGVjKTsKLSAgICAg
ICAgICAgIFBhc3NSZWZQdHI8QXJyYXlCdWZmZXJWaWV3PiBhcnJheSA9IEM6OmNyZWF0ZShidWZm
ZXIsIG9mZnNldCwgbGVuZ3RoKTsKLSAgICAgICAgICAgIGlmICghYXJyYXkpCi0gICAgICAgICAg
ICAgICAgc2V0RE9NRXhjZXB0aW9uKGV4ZWMsIElOREVYX1NJWkVfRVJSKTsKLSAgICAgICAgICAg
IHJldHVybiBhcnJheTsKLSAgICAgICAgfQotICAgICAgICAKKyAgICAgICAgUmVmUHRyPEM+IHZp
ZXcgPSBjb25zdHJ1Y3RBcnJheUJ1ZmZlclZpZXdXaXRoQXJyYXlCdWZmZXJBcmd1bWVudDxDLCBU
PihleGVjKTsKKyAgICAgICAgaWYgKHZpZXcpCisgICAgICAgICAgICByZXR1cm4gdmlldzsKKyAg
ICAKICAgICAgICAgSlNDOjpKU09iamVjdCogYXJyYXkgPSBhc09iamVjdChleGVjLT5hcmd1bWVu
dCgwKSk7CiAgICAgICAgIHVuc2lnbmVkIGxlbmd0aCA9IGFycmF5LT5nZXQoZXhlYywgSlNDOjpJ
ZGVudGlmaWVyKGV4ZWMsICJsZW5ndGgiKSkudG9VSW50MzIoZXhlYyk7CiAgICAgICAgIHZvaWQq
IHRlbXBWYWx1ZXM7CkBAIC0xNDIsMTQgKzE0OSwxNCBAQCBQYXNzUmVmUHRyPEFycmF5QnVmZmVy
Vmlldz4gY29uc3RydWN0QXJyYXlCdWZmZXJWaWV3KEpTQzo6RXhlY1N0YXRlKiBleGVjKQogICAg
ICAgICAgICAgdmFsdWVzLmdldCgpW2ldID0gc3RhdGljX2Nhc3Q8VD4odi50b051bWJlcihleGVj
KSk7CiAgICAgICAgIH0KICAgICAgICAgCi0gICAgICAgIFBhc3NSZWZQdHI8QXJyYXlCdWZmZXJW
aWV3PiByZXN1bHQgPSBDOjpjcmVhdGUodmFsdWVzLmdldCgpLCBsZW5ndGgpOworICAgICAgICBS
ZWZQdHI8Qz4gcmVzdWx0ID0gQzo6Y3JlYXRlKHZhbHVlcy5nZXQoKSwgbGVuZ3RoKTsKICAgICAg
ICAgaWYgKCFyZXN1bHQpCiAgICAgICAgICAgICBzZXRET01FeGNlcHRpb24oZXhlYywgSU5ERVhf
U0laRV9FUlIpOwogICAgICAgICByZXR1cm4gcmVzdWx0OwogICAgIH0KLSAgICAKKwogICAgIGlu
dCBsZW5ndGggPSBleGVjLT5hcmd1bWVudCgwKS50b0ludDMyKGV4ZWMpOwotICAgIFBhc3NSZWZQ
dHI8QXJyYXlCdWZmZXJWaWV3PiByZXN1bHQ7CisgICAgUmVmUHRyPEM+IHJlc3VsdDsKICAgICBp
ZiAobGVuZ3RoID49IDApCiAgICAgICAgIHJlc3VsdCA9IEM6OmNyZWF0ZShzdGF0aWNfY2FzdDx1
bnNpZ25lZD4obGVuZ3RoKSk7CiAgICAgaWYgKCFyZXN1bHQpCmRpZmYgLS1naXQgYS9XZWJDb3Jl
L2JpbmRpbmdzL2pzL0pTRE9NV2luZG93Q3VzdG9tLmNwcCBiL1dlYkNvcmUvYmluZGluZ3MvanMv
SlNET01XaW5kb3dDdXN0b20uY3BwCmluZGV4IDcxMTllYTYuLjk1ZmNkYzEgMTAwNjQ0Ci0tLSBh
L1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01XaW5kb3dDdXN0b20uY3BwCisrKyBiL1dlYkNvcmUv
YmluZGluZ3MvanMvSlNET01XaW5kb3dDdXN0b20uY3BwCkBAIC01Myw2ICs1Myw3IEBACiAKICNp
ZiBFTkFCTEUoM0RfQ0FOVkFTKSB8fCBFTkFCTEUoQkxPQikKICNpbmNsdWRlICJKU0FycmF5QnVm
ZmVyLmgiCisjaW5jbHVkZSAiSlNEYXRhVmlldy5oIgogI2luY2x1ZGUgIkpTSW50OEFycmF5Lmgi
CiAjaW5jbHVkZSAiSlNVaW50OEFycmF5LmgiCiAjaW5jbHVkZSAiSlNJbnQzMkFycmF5LmgiCkBA
IC02MDYsNiArNjA3LDEwIEBAIEpTVmFsdWUgSlNET01XaW5kb3c6OmZsb2F0MzJBcnJheShFeGVj
U3RhdGUqIGV4ZWMpIGNvbnN0CiAgICAgcmV0dXJuIGdldERPTUNvbnN0cnVjdG9yPEpTRmxvYXQz
MkFycmF5Q29uc3RydWN0b3I+KGV4ZWMsIHRoaXMpOwogfQogCitKU1ZhbHVlIEpTRE9NV2luZG93
OjpkYXRhVmlldyhFeGVjU3RhdGUqIGV4ZWMpIGNvbnN0Cit7CisgICAgcmV0dXJuIGdldERPTUNv
bnN0cnVjdG9yPEpTRGF0YVZpZXdDb25zdHJ1Y3Rvcj4oZXhlYywgdGhpcyk7Cit9CiAjZW5kaWYK
ICAKIEpTVmFsdWUgSlNET01XaW5kb3c6OnhtbEh0dHBSZXF1ZXN0KEV4ZWNTdGF0ZSogZXhlYykg
Y29uc3QKZGlmZiAtLWdpdCBhL1dlYkNvcmUvYmluZGluZ3MvanMvSlNEYXRhVmlld0N1c3RvbS5j
cHAgYi9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRGF0YVZpZXdDdXN0b20uY3BwCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjA3NTZlOTgKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJD
b3JlL2JpbmRpbmdzL2pzL0pTRGF0YVZpZXdDdXN0b20uY3BwCkBAIC0wLDAgKzEsMTc4IEBACisv
KgorICogQ29weXJpZ2h0IChDKSAyMDEwIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKgorICogMS4g
IFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQor
ICogICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBB
UFBMRSBBTkQgSVRTIENPTlRSSUJVVE9SUyAiQVMgSVMiIEFORCBBTlkKKyAqIEVYUFJFU1MgT1Ig
SU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElN
UExJRUQKKyAqIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKKyAqIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxM
IEFQUExFIE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkKKyAqIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElB
TCBEQU1BR0VTCisgKiAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5U
IE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7CisgKiBMT1NTIE9GIFVTRSwgREFUQSwg
T1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQK
KyAqIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YKKyAqIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisg
Ki8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorCisjaWYgRU5BQkxFKDNEX0NBTlZBUykgfHwgRU5B
QkxFKEJMT0IpCisKKyNpbmNsdWRlICJKU0RhdGFWaWV3LmgiCisKKyNpbmNsdWRlICJEYXRhVmll
dy5oIgorI2luY2x1ZGUgIkV4Y2VwdGlvbkNvZGUuaCIKKyNpbmNsdWRlICJKU0FycmF5QnVmZmVy
Vmlld0hlbHBlci5oIgorI2luY2x1ZGUgPHd0Zi9NYXRoRXh0cmFzLmg+CisKK3VzaW5nIG5hbWVz
cGFjZSBKU0M7CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworZW51bSBEYXRhVmlld0FjY2Vzc1R5
cGUgeworICAgIEFjY2Vzc0RhdGFWaWV3TWVtYmVyQXNJbnQ4LAorICAgIEFjY2Vzc0RhdGFWaWV3
TWVtYmVyQXNVaW50OCwKKyAgICBBY2Nlc3NEYXRhVmlld01lbWJlckFzRmxvYXQzMiwKKyAgICBB
Y2Nlc3NEYXRhVmlld01lbWJlckFzRmxvYXQ2NAorfTsKKworSlNWYWx1ZSB0b0pTKEV4ZWNTdGF0
ZSogZXhlYywgSlNET01HbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgRGF0YVZpZXcqIG9iamVj
dCkKK3sKKyAgICByZXR1cm4gZ2V0RE9NT2JqZWN0V3JhcHBlcjxKU0RhdGFWaWV3PihleGVjLCBn
bG9iYWxPYmplY3QsIG9iamVjdCk7Cit9CisKK0VuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwg
SlNEYXRhVmlld0NvbnN0cnVjdG9yOjpjb25zdHJ1Y3RKU0RhdGFWaWV3KEV4ZWNTdGF0ZSogZXhl
YykKK3sKKyAgICBpZiAoZXhlYy0+YXJndW1lbnQoMCkuaXNOdWxsKCkgfHwgIWV4ZWMtPmFyZ3Vt
ZW50KDApLmlzT2JqZWN0KCkpCisgICAgICAgIHJldHVybiB0aHJvd1ZNVHlwZUVycm9yKGV4ZWMp
OworCisgICAgUmVmUHRyPERhdGFWaWV3PiB2aWV3ID0gY29uc3RydWN0QXJyYXlCdWZmZXJWaWV3
V2l0aEFycmF5QnVmZmVyQXJndW1lbnQ8RGF0YVZpZXcsIGNoYXI+KGV4ZWMpOworICAgIGlmICgh
dmlldy5nZXQoKSkgeworICAgICAgICBzZXRET01FeGNlcHRpb24oZXhlYywgSU5ERVhfU0laRV9F
UlIpOworICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOworICAg
IH0KKworICAgIEpTRGF0YVZpZXdDb25zdHJ1Y3RvcioganNDb25zdHJ1Y3RvciA9IHN0YXRpY19j
YXN0PEpTRGF0YVZpZXdDb25zdHJ1Y3Rvcio+KGV4ZWMtPmNhbGxlZSgpKTsKKyAgICByZXR1cm4g
SlNWYWx1ZTo6ZW5jb2RlKGFzT2JqZWN0KHRvSlMoZXhlYywganNDb25zdHJ1Y3Rvci0+Z2xvYmFs
T2JqZWN0KCksIHZpZXcuZ2V0KCkpKSk7Cit9CisKK3N0YXRpYyBKU1ZhbHVlIGdldERhdGFWaWV3
TWVtYmVyKEV4ZWNTdGF0ZSogZXhlYywgRGF0YVZpZXdBY2Nlc3NUeXBlIHR5cGUpCit7CisgICAg
SlNWYWx1ZSB0aGlzVmFsdWUgPSBleGVjLT5ob3N0VGhpc1ZhbHVlKCk7CisgICAgaWYgKCF0aGlz
VmFsdWUuaW5oZXJpdHMoJkpTRGF0YVZpZXc6OnNfaW5mbykpCisgICAgICAgIHJldHVybiB0aHJv
d1R5cGVFcnJvcihleGVjKTsKKyAgICBKU0RhdGFWaWV3KiBjYXN0ZWRUaGlzID0gc3RhdGljX2Nh
c3Q8SlNEYXRhVmlldyo+KGFzT2JqZWN0KHRoaXNWYWx1ZSkpOworICAgIERhdGFWaWV3KiBpbXAg
PSBzdGF0aWNfY2FzdDxEYXRhVmlldyo+KGNhc3RlZFRoaXMtPmltcGwoKSk7CisgICAgaWYgKGV4
ZWMtPmFyZ3VtZW50Q291bnQoKSA8IDEpCisgICAgICAgIHJldHVybiB0aHJvd0Vycm9yKGV4ZWMs
IGNyZWF0ZVN5bnRheEVycm9yKGV4ZWMsICJOb3QgZW5vdWdoIGFyZ3VtZW50cyIpKTsKKyAgICBF
eGNlcHRpb25Db2RlIGVjID0gMDsKKyAgICB1bnNpZ25lZCBieXRlT2Zmc2V0ID0gZXhlYy0+YXJn
dW1lbnQoMCkudG9VSW50MzIoZXhlYyk7CisgICAgaWYgKGV4ZWMtPmhhZEV4Y2VwdGlvbigpKQor
ICAgICAgICByZXR1cm4ganNVbmRlZmluZWQoKTsKKworICAgIGJvb2wgbGl0dGxlRW5kaWFuID0g
ZmFsc2U7CisgICAgaWYgKGV4ZWMtPmFyZ3VtZW50Q291bnQoKSA+IDEgJiYgKHR5cGUgPT0gQWNj
ZXNzRGF0YVZpZXdNZW1iZXJBc0Zsb2F0MzIgfHwgdHlwZSA9PSBBY2Nlc3NEYXRhVmlld01lbWJl
ckFzRmxvYXQ2NCkpIHsKKyAgICAgICAgbGl0dGxlRW5kaWFuID0gZXhlYy0+YXJndW1lbnQoMSku
dG9Cb29sZWFuKGV4ZWMpOworICAgICAgICBpZiAoZXhlYy0+aGFkRXhjZXB0aW9uKCkpCisgICAg
ICAgICAgICByZXR1cm4ganNVbmRlZmluZWQoKTsKKyAgICB9CisKKyAgICBKU0M6OkpTVmFsdWUg
cmVzdWx0OworICAgIHN3aXRjaCAodHlwZSkgeworICAgICAgICBjYXNlIEFjY2Vzc0RhdGFWaWV3
TWVtYmVyQXNJbnQ4OgorICAgICAgICAgICAgcmVzdWx0ID0ganNOdW1iZXIoaW1wLT5nZXRJbnQ4
KGJ5dGVPZmZzZXQsIGVjKSk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBBY2Nl
c3NEYXRhVmlld01lbWJlckFzVWludDg6CisgICAgICAgICAgICByZXN1bHQgPSBqc051bWJlcihp
bXAtPmdldFVpbnQ4KGJ5dGVPZmZzZXQsIGVjKSk7CisgICAgICAgICAgICBicmVhazsKKyAgICAg
ICAgY2FzZSBBY2Nlc3NEYXRhVmlld01lbWJlckFzRmxvYXQzMjoKKyAgICAgICAgY2FzZSBBY2Nl
c3NEYXRhVmlld01lbWJlckFzRmxvYXQ2NDogeworICAgICAgICAgICAgZG91YmxlIHZhbHVlID0g
KHR5cGUgPT0gQWNjZXNzRGF0YVZpZXdNZW1iZXJBc0Zsb2F0MzIpID8gaW1wLT5nZXRGbG9hdDMy
KGJ5dGVPZmZzZXQsIGxpdHRsZUVuZGlhbiwgZWMpIDogaW1wLT5nZXRGbG9hdDY0KGJ5dGVPZmZz
ZXQsIGxpdHRsZUVuZGlhbiwgZWMpOworICAgICAgICAgICAgcmVzdWx0ID0gaXNuYW4odmFsdWUp
ID8gSlNWYWx1ZShub25JbmxpbmVOYU4oKSkgOiBqc051bWJlcih2YWx1ZSk7CisgICAgICAgICAg
ICBicmVhazsKKyAgICAgICAgfSBkZWZhdWx0OgorICAgICAgICAgICAgQVNTRVJUX05PVF9SRUFD
SEVEKCk7CisgICAgICAgICAgICBicmVhazsKKyAgICB9CisgICAgc2V0RE9NRXhjZXB0aW9uKGV4
ZWMsIGVjKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorCitKU1ZhbHVlIEpTQ19IT1NUX0NBTEwg
SlNEYXRhVmlldzo6Z2V0SW50OChFeGVjU3RhdGUqIGV4ZWMpCit7CisgICAgcmV0dXJuIGdldERh
dGFWaWV3TWVtYmVyKGV4ZWMsIEFjY2Vzc0RhdGFWaWV3TWVtYmVyQXNJbnQ4KTsKK30KKworSlNW
YWx1ZSBKU0NfSE9TVF9DQUxMIEpTRGF0YVZpZXc6OmdldFVpbnQ4KEV4ZWNTdGF0ZSogZXhlYykK
K3sKKyAgICByZXR1cm4gZ2V0RGF0YVZpZXdNZW1iZXIoZXhlYywgQWNjZXNzRGF0YVZpZXdNZW1i
ZXJBc1VpbnQ4KTsKK30KKworSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIEpTRGF0YVZpZXc6OmdldEZs
b2F0MzIoRXhlY1N0YXRlKiBleGVjKQoreworICAgIHJldHVybiBnZXREYXRhVmlld01lbWJlcihl
eGVjLCBBY2Nlc3NEYXRhVmlld01lbWJlckFzRmxvYXQzMik7Cit9CisKK0pTVmFsdWUgSlNDX0hP
U1RfQ0FMTCBKU0RhdGFWaWV3OjpnZXRGbG9hdDY0KEV4ZWNTdGF0ZSogZXhlYykKK3sKKyAgICBy
ZXR1cm4gZ2V0RGF0YVZpZXdNZW1iZXIoZXhlYywgQWNjZXNzRGF0YVZpZXdNZW1iZXJBc0Zsb2F0
NjQpOworfQorCitzdGF0aWMgSlNWYWx1ZSBzZXREYXRhVmlld01lbWJlcihFeGVjU3RhdGUqIGV4
ZWMsIERhdGFWaWV3QWNjZXNzVHlwZSB0eXBlKQoreworICAgIEpTVmFsdWUgdGhpc1ZhbHVlID0g
ZXhlYy0+aG9zdFRoaXNWYWx1ZSgpOworICAgIGlmICghdGhpc1ZhbHVlLmluaGVyaXRzKCZKU0Rh
dGFWaWV3OjpzX2luZm8pKQorICAgICAgICByZXR1cm4gdGhyb3dUeXBlRXJyb3IoZXhlYyk7Cisg
ICAgSlNEYXRhVmlldyogY2FzdGVkVGhpcyA9IHN0YXRpY19jYXN0PEpTRGF0YVZpZXcqPihhc09i
amVjdCh0aGlzVmFsdWUpKTsKKyAgICBEYXRhVmlldyogaW1wID0gc3RhdGljX2Nhc3Q8RGF0YVZp
ZXcqPihjYXN0ZWRUaGlzLT5pbXBsKCkpOworICAgIGlmIChleGVjLT5hcmd1bWVudENvdW50KCkg
PCAyKQorICAgICAgICByZXR1cm4gdGhyb3dFcnJvcihleGVjLCBjcmVhdGVTeW50YXhFcnJvcihl
eGVjLCAiTm90IGVub3VnaCBhcmd1bWVudHMiKSk7CisgICAgRXhjZXB0aW9uQ29kZSBlYyA9IDA7
CisgICAgdW5zaWduZWQgYnl0ZU9mZnNldCA9IGV4ZWMtPmFyZ3VtZW50KDApLnRvVUludDMyKGV4
ZWMpOworICAgIGlmIChleGVjLT5oYWRFeGNlcHRpb24oKSkKKyAgICAgICAgcmV0dXJuIGpzVW5k
ZWZpbmVkKCk7CisgICAgaW50IHZhbHVlID0gZXhlYy0+YXJndW1lbnQoMSkudG9JbnQzMihleGVj
KTsKKyAgICBpZiAoZXhlYy0+aGFkRXhjZXB0aW9uKCkpCisgICAgICAgIHJldHVybiBqc1VuZGVm
aW5lZCgpOworICAgICAgICAKKyAgICBzd2l0Y2ggKHR5cGUpeworICAgIGNhc2UgQWNjZXNzRGF0
YVZpZXdNZW1iZXJBc0ludDg6CisgICAgICAgIGlmICh2YWx1ZSA8IC0xMjggfHwgdmFsdWUgPiAx
MjcpCisgICAgICAgICAgICByZXR1cm4gdGhyb3dFcnJvcihleGVjLCBjcmVhdGVTeW50YXhFcnJv
cihleGVjLCAiVGhlIHZhbHVlIHRvIHNldCB0byBpcyBvdXQgb2YgcmFuZ2UiKSk7CisgICAgICAg
IGltcC0+c2V0SW50OChieXRlT2Zmc2V0LCBzdGF0aWNfY2FzdDx1bnNpZ25lZCBjaGFyPih2YWx1
ZSksIGVjKTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBBY2Nlc3NEYXRhVmlld01lbWJlckFz
VWludDg6CisgICAgICAgIGlmICh2YWx1ZSA8IDAgfHwgdmFsdWUgPiAyNTUpCisgICAgICAgICAg
ICByZXR1cm4gdGhyb3dFcnJvcihleGVjLCBjcmVhdGVTeW50YXhFcnJvcihleGVjLCAiVGhlIHZh
bHVlIHRvIHNldCB0byBpcyBvdXQgb2YgcmFuZ2UiKSk7CisgICAgICAgIGltcC0+c2V0VWludDgo
Ynl0ZU9mZnNldCwgc3RhdGljX2Nhc3Q8dW5zaWduZWQgY2hhcj4odmFsdWUpLCBlYyk7CisgICAg
ICAgIGJyZWFrOworICAgIGRlZmF1bHQ6CisgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwor
ICAgICAgICBicmVhazsKKyAgICB9CisgICAgc2V0RE9NRXhjZXB0aW9uKGV4ZWMsIGVjKTsKKyAg
ICByZXR1cm4ganNVbmRlZmluZWQoKTsKK30KKworSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIEpTRGF0
YVZpZXc6OnNldEludDgoRXhlY1N0YXRlKiBleGVjKQoreworICAgIHJldHVybiBzZXREYXRhVmll
d01lbWJlcihleGVjLCBBY2Nlc3NEYXRhVmlld01lbWJlckFzSW50OCk7Cit9CisKK0pTVmFsdWUg
SlNDX0hPU1RfQ0FMTCBKU0RhdGFWaWV3OjpzZXRVaW50OChFeGVjU3RhdGUqIGV4ZWMpCit7Cisg
ICAgcmV0dXJuIHNldERhdGFWaWV3TWVtYmVyKGV4ZWMsIEFjY2Vzc0RhdGFWaWV3TWVtYmVyQXNV
aW50OCk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEVOQUJMRSgz
RF9DQU5WQVMpIHx8IEVOQUJMRShCTE9CKQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9iaW5kaW5ncy9q
cy9KU0Zsb2F0MzJBcnJheUN1c3RvbS5jcHAgYi9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRmxvYXQz
MkFycmF5Q3VzdG9tLmNwcAppbmRleCA2NzFlZTY4Li44ODBkNjhjIDEwMDY0NAotLS0gYS9XZWJD
b3JlL2JpbmRpbmdzL2pzL0pTRmxvYXQzMkFycmF5Q3VzdG9tLmNwcAorKysgYi9XZWJDb3JlL2Jp
bmRpbmdzL2pzL0pTRmxvYXQzMkFycmF5Q3VzdG9tLmNwcApAQCAtMjcsMTAgKzI3LDEwIEBACiAK
ICNpZiBFTkFCTEUoM0RfQ0FOVkFTKSB8fCBFTkFCTEUoQkxPQikKIAotI2luY2x1ZGUgIkpTQXJy
YXlCdWZmZXJWaWV3SGVscGVyLmgiCiAjaW5jbHVkZSAiSlNGbG9hdDMyQXJyYXkuaCIKIAogI2lu
Y2x1ZGUgIkZsb2F0MzJBcnJheS5oIgorI2luY2x1ZGUgIkpTQXJyYXlCdWZmZXJWaWV3SGVscGVy
LmgiCiAKIHVzaW5nIG5hbWVzcGFjZSBKU0M7CiAKQEAgLTU0LDcgKzU0LDcgQEAgSlNDOjpKU1Zh
bHVlIEpTRmxvYXQzMkFycmF5OjpzZXQoSlNDOjpFeGVjU3RhdGUqIGV4ZWMpCiBFbmNvZGVkSlNW
YWx1ZSBKU0NfSE9TVF9DQUxMIEpTRmxvYXQzMkFycmF5Q29uc3RydWN0b3I6OmNvbnN0cnVjdEpT
RmxvYXQzMkFycmF5KEV4ZWNTdGF0ZSogZXhlYykKIHsKICAgICBKU0Zsb2F0MzJBcnJheUNvbnN0
cnVjdG9yKiBqc0NvbnN0cnVjdG9yID0gc3RhdGljX2Nhc3Q8SlNGbG9hdDMyQXJyYXlDb25zdHJ1
Y3Rvcio+KGV4ZWMtPmNhbGxlZSgpKTsKLSAgICBSZWZQdHI8RmxvYXQzMkFycmF5PiBhcnJheSA9
IHN0YXRpY19jYXN0PEZsb2F0MzJBcnJheSo+KGNvbnN0cnVjdEFycmF5QnVmZmVyVmlldzxGbG9h
dDMyQXJyYXksIGZsb2F0PihleGVjKS5nZXQoKSk7CisgICAgUmVmUHRyPEZsb2F0MzJBcnJheT4g
YXJyYXkgPSBjb25zdHJ1Y3RBcnJheUJ1ZmZlclZpZXc8RmxvYXQzMkFycmF5LCBmbG9hdD4oZXhl
Yyk7CiAgICAgaWYgKCFhcnJheS5nZXQoKSkKICAgICAgICAgLy8gRXhjZXB0aW9uIGhhcyBhbHJl
YWR5IGJlZW4gdGhyb3duLgogICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKEpTVmFsdWUo
KSk7CmRpZmYgLS1naXQgYS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTSW50MTZBcnJheUN1c3RvbS5j
cHAgYi9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTSW50MTZBcnJheUN1c3RvbS5jcHAKaW5kZXggNzk3
NTY4Yy4uZTA4ZGE4YSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0ludDE2QXJy
YXlDdXN0b20uY3BwCisrKyBiL1dlYkNvcmUvYmluZGluZ3MvanMvSlNJbnQxNkFycmF5Q3VzdG9t
LmNwcApAQCAtMjcsMTAgKzI3LDEwIEBACiAKICNpZiBFTkFCTEUoM0RfQ0FOVkFTKSB8fCBFTkFC
TEUoQkxPQikKIAotI2luY2x1ZGUgIkpTQXJyYXlCdWZmZXJWaWV3SGVscGVyLmgiCiAjaW5jbHVk
ZSAiSlNJbnQxNkFycmF5LmgiCiAKICNpbmNsdWRlICJJbnQxNkFycmF5LmgiCisjaW5jbHVkZSAi
SlNBcnJheUJ1ZmZlclZpZXdIZWxwZXIuaCIKIAogdXNpbmcgbmFtZXNwYWNlIEpTQzsKIApAQCAt
NTQsNyArNTQsNyBAQCBKU0M6OkpTVmFsdWUgSlNJbnQxNkFycmF5OjpzZXQoSlNDOjpFeGVjU3Rh
dGUqIGV4ZWMpCiBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIEpTSW50MTZBcnJheUNvbnN0
cnVjdG9yOjpjb25zdHJ1Y3RKU0ludDE2QXJyYXkoRXhlY1N0YXRlKiBleGVjKQogewogICAgIEpT
SW50MTZBcnJheUNvbnN0cnVjdG9yKiBqc0NvbnN0cnVjdG9yID0gc3RhdGljX2Nhc3Q8SlNJbnQx
NkFycmF5Q29uc3RydWN0b3IqPihleGVjLT5jYWxsZWUoKSk7Ci0gICAgUmVmUHRyPEludDE2QXJy
YXk+IGFycmF5ID0gc3RhdGljX2Nhc3Q8SW50MTZBcnJheSo+KGNvbnN0cnVjdEFycmF5QnVmZmVy
VmlldzxJbnQxNkFycmF5LCBzaG9ydD4oZXhlYykuZ2V0KCkpOworICAgIFJlZlB0cjxJbnQxNkFy
cmF5PiBhcnJheSA9IGNvbnN0cnVjdEFycmF5QnVmZmVyVmlldzxJbnQxNkFycmF5LCBzaG9ydD4o
ZXhlYyk7CiAgICAgaWYgKCFhcnJheS5nZXQoKSkKICAgICAgICAgLy8gRXhjZXB0aW9uIGhhcyBh
bHJlYWR5IGJlZW4gdGhyb3duLgogICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKEpTVmFs
dWUoKSk7CmRpZmYgLS1naXQgYS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTSW50MzJBcnJheUN1c3Rv
bS5jcHAgYi9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTSW50MzJBcnJheUN1c3RvbS5jcHAKaW5kZXgg
NTNlNmVjNi4uNWFhNjRiYiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0ludDMy
QXJyYXlDdXN0b20uY3BwCisrKyBiL1dlYkNvcmUvYmluZGluZ3MvanMvSlNJbnQzMkFycmF5Q3Vz
dG9tLmNwcApAQCAtMjcsMTAgKzI3LDEwIEBACiAKICNpZiBFTkFCTEUoM0RfQ0FOVkFTKSB8fCBF
TkFCTEUoQkxPQikKIAotI2luY2x1ZGUgIkpTQXJyYXlCdWZmZXJWaWV3SGVscGVyLmgiCiAjaW5j
bHVkZSAiSlNJbnQzMkFycmF5LmgiCiAKICNpbmNsdWRlICJJbnQzMkFycmF5LmgiCisjaW5jbHVk
ZSAiSlNBcnJheUJ1ZmZlclZpZXdIZWxwZXIuaCIKIAogdXNpbmcgbmFtZXNwYWNlIEpTQzsKIApA
QCAtNTQsNyArNTQsNyBAQCBKU0M6OkpTVmFsdWUgSlNJbnQzMkFycmF5OjpzZXQoSlNDOjpFeGVj
U3RhdGUqIGV4ZWMpCiBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIEpTSW50MzJBcnJheUNv
bnN0cnVjdG9yOjpjb25zdHJ1Y3RKU0ludDMyQXJyYXkoRXhlY1N0YXRlKiBleGVjKQogewogICAg
IEpTSW50MzJBcnJheUNvbnN0cnVjdG9yKiBqc0NvbnN0cnVjdG9yID0gc3RhdGljX2Nhc3Q8SlNJ
bnQzMkFycmF5Q29uc3RydWN0b3IqPihleGVjLT5jYWxsZWUoKSk7Ci0gICAgUmVmUHRyPEludDMy
QXJyYXk+IGFycmF5ID0gc3RhdGljX2Nhc3Q8SW50MzJBcnJheSo+KGNvbnN0cnVjdEFycmF5QnVm
ZmVyVmlldzxJbnQzMkFycmF5LCBpbnQ+KGV4ZWMpLmdldCgpKTsKKyAgICBSZWZQdHI8SW50MzJB
cnJheT4gYXJyYXkgPSBjb25zdHJ1Y3RBcnJheUJ1ZmZlclZpZXc8SW50MzJBcnJheSwgaW50Pihl
eGVjKTsKICAgICBpZiAoIWFycmF5LmdldCgpKQogICAgICAgICAvLyBFeGNlcHRpb24gaGFzIGFs
cmVhZHkgYmVlbiB0aHJvd24uCiAgICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoSlNWYWx1
ZSgpKTsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvYmluZGluZ3MvanMvSlNJbnQ4QXJyYXlDdXN0b20u
Y3BwIGIvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0ludDhBcnJheUN1c3RvbS5jcHAKaW5kZXggNzU1
NmQ2YS4uYjYzZGU1NCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0ludDhBcnJh
eUN1c3RvbS5jcHAKKysrIGIvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0ludDhBcnJheUN1c3RvbS5j
cHAKQEAgLTI3LDEwICsyNywxMCBAQAogCiAjaWYgRU5BQkxFKDNEX0NBTlZBUykgfHwgRU5BQkxF
KEJMT0IpCiAKLSNpbmNsdWRlICJKU0FycmF5QnVmZmVyVmlld0hlbHBlci5oIgogI2luY2x1ZGUg
IkpTSW50OEFycmF5LmgiCiAKICNpbmNsdWRlICJJbnQ4QXJyYXkuaCIKKyNpbmNsdWRlICJKU0Fy
cmF5QnVmZmVyVmlld0hlbHBlci5oIgogI2luY2x1ZGUgPHJ1bnRpbWUvRXJyb3IuaD4KIAogdXNp
bmcgbmFtZXNwYWNlIEpTQzsKQEAgLTU1LDcgKzU1LDcgQEAgSlNDOjpKU1ZhbHVlIEpTSW50OEFy
cmF5OjpzZXQoSlNDOjpFeGVjU3RhdGUqIGV4ZWMpCiBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9D
QUxMIEpTSW50OEFycmF5Q29uc3RydWN0b3I6OmNvbnN0cnVjdEpTSW50OEFycmF5KEV4ZWNTdGF0
ZSogZXhlYykKIHsKICAgICBKU0ludDhBcnJheUNvbnN0cnVjdG9yKiBqc0NvbnN0cnVjdG9yID0g
c3RhdGljX2Nhc3Q8SlNJbnQ4QXJyYXlDb25zdHJ1Y3Rvcio+KGV4ZWMtPmNhbGxlZSgpKTsKLSAg
ICBSZWZQdHI8SW50OEFycmF5PiBhcnJheSA9IHN0YXRpY19jYXN0PEludDhBcnJheSo+KGNvbnN0
cnVjdEFycmF5QnVmZmVyVmlldzxJbnQ4QXJyYXksIHNpZ25lZCBjaGFyPihleGVjKS5nZXQoKSk7
CisgICAgUmVmUHRyPEludDhBcnJheT4gYXJyYXkgPSBjb25zdHJ1Y3RBcnJheUJ1ZmZlclZpZXc8
SW50OEFycmF5LCBzaWduZWQgY2hhcj4oZXhlYyk7CiAgICAgaWYgKCFhcnJheS5nZXQoKSkKICAg
ICAgICAgLy8gRXhjZXB0aW9uIGhhcyBhbHJlYWR5IGJlZW4gdGhyb3duLgogICAgICAgICByZXR1
cm4gSlNWYWx1ZTo6ZW5jb2RlKEpTVmFsdWUoKSk7CmRpZmYgLS1naXQgYS9XZWJDb3JlL2JpbmRp
bmdzL2pzL0pTVWludDE2QXJyYXlDdXN0b20uY3BwIGIvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1Vp
bnQxNkFycmF5Q3VzdG9tLmNwcAppbmRleCA5ZjEyZmE3Li42YTAyNGVlIDEwMDY0NAotLS0gYS9X
ZWJDb3JlL2JpbmRpbmdzL2pzL0pTVWludDE2QXJyYXlDdXN0b20uY3BwCisrKyBiL1dlYkNvcmUv
YmluZGluZ3MvanMvSlNVaW50MTZBcnJheUN1c3RvbS5jcHAKQEAgLTI3LDkgKzI3LDkgQEAKIAog
I2lmIEVOQUJMRSgzRF9DQU5WQVMpIHx8IEVOQUJMRShCTE9CKQogCi0jaW5jbHVkZSAiSlNBcnJh
eUJ1ZmZlclZpZXdIZWxwZXIuaCIKICNpbmNsdWRlICJKU1VpbnQxNkFycmF5LmgiCiAKKyNpbmNs
dWRlICJKU0FycmF5QnVmZmVyVmlld0hlbHBlci5oIgogI2luY2x1ZGUgIlVpbnQxNkFycmF5Lmgi
CiAKIHVzaW5nIG5hbWVzcGFjZSBKU0M7CkBAIC01NCw3ICs1NCw3IEBAIEpTQzo6SlNWYWx1ZSBK
U1VpbnQxNkFycmF5OjpzZXQoSlNDOjpFeGVjU3RhdGUqIGV4ZWMpCiBFbmNvZGVkSlNWYWx1ZSBK
U0NfSE9TVF9DQUxMIEpTVWludDE2QXJyYXlDb25zdHJ1Y3Rvcjo6Y29uc3RydWN0SlNVaW50MTZB
cnJheShFeGVjU3RhdGUqIGV4ZWMpCiB7CiAgICAgSlNVaW50MTZBcnJheUNvbnN0cnVjdG9yKiBq
c0NvbnN0cnVjdG9yID0gc3RhdGljX2Nhc3Q8SlNVaW50MTZBcnJheUNvbnN0cnVjdG9yKj4oZXhl
Yy0+Y2FsbGVlKCkpOwotICAgIFJlZlB0cjxVaW50MTZBcnJheT4gYXJyYXkgPSBzdGF0aWNfY2Fz
dDxVaW50MTZBcnJheSo+KGNvbnN0cnVjdEFycmF5QnVmZmVyVmlldzxVaW50MTZBcnJheSwgdW5z
aWduZWQgc2hvcnQ+KGV4ZWMpLmdldCgpKTsKKyAgICBSZWZQdHI8VWludDE2QXJyYXk+IGFycmF5
ID0gY29uc3RydWN0QXJyYXlCdWZmZXJWaWV3PFVpbnQxNkFycmF5LCB1bnNpZ25lZCBzaG9ydD4o
ZXhlYyk7CiAgICAgaWYgKCFhcnJheS5nZXQoKSkKICAgICAgICAgLy8gRXhjZXB0aW9uIGhhcyBh
bHJlYWR5IGJlZW4gdGhyb3duLgogICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKEpTVmFs
dWUoKSk7CmRpZmYgLS1naXQgYS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTVWludDMyQXJyYXlDdXN0
b20uY3BwIGIvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1VpbnQzMkFycmF5Q3VzdG9tLmNwcAppbmRl
eCBjNzU3Nzg2Li4zNGViOGRlIDEwMDY0NAotLS0gYS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTVWlu
dDMyQXJyYXlDdXN0b20uY3BwCisrKyBiL1dlYkNvcmUvYmluZGluZ3MvanMvSlNVaW50MzJBcnJh
eUN1c3RvbS5jcHAKQEAgLTI3LDkgKzI3LDkgQEAKIAogI2lmIEVOQUJMRSgzRF9DQU5WQVMpIHx8
IEVOQUJMRShCTE9CKQogCi0jaW5jbHVkZSAiSlNBcnJheUJ1ZmZlclZpZXdIZWxwZXIuaCIKICNp
bmNsdWRlICJKU1VpbnQzMkFycmF5LmgiCiAKKyNpbmNsdWRlICJKU0FycmF5QnVmZmVyVmlld0hl
bHBlci5oIgogI2luY2x1ZGUgIlVpbnQzMkFycmF5LmgiCiAKIHVzaW5nIG5hbWVzcGFjZSBKU0M7
CkBAIC01NCw3ICs1NCw3IEBAIEpTQzo6SlNWYWx1ZSBKU1VpbnQzMkFycmF5OjpzZXQoSlNDOjpF
eGVjU3RhdGUqIGV4ZWMpCiBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIEpTVWludDMyQXJy
YXlDb25zdHJ1Y3Rvcjo6Y29uc3RydWN0SlNVaW50MzJBcnJheShFeGVjU3RhdGUqIGV4ZWMpCiB7
CiAgICAgSlNVaW50MzJBcnJheUNvbnN0cnVjdG9yKiBqc0NvbnN0cnVjdG9yID0gc3RhdGljX2Nh
c3Q8SlNVaW50MzJBcnJheUNvbnN0cnVjdG9yKj4oZXhlYy0+Y2FsbGVlKCkpOwotICAgIFJlZlB0
cjxVaW50MzJBcnJheT4gYXJyYXkgPSBzdGF0aWNfY2FzdDxVaW50MzJBcnJheSo+KGNvbnN0cnVj
dEFycmF5QnVmZmVyVmlldzxVaW50MzJBcnJheSwgdW5zaWduZWQgaW50PihleGVjKS5nZXQoKSk7
CisgICAgUmVmUHRyPFVpbnQzMkFycmF5PiBhcnJheSA9IGNvbnN0cnVjdEFycmF5QnVmZmVyVmll
dzxVaW50MzJBcnJheSwgdW5zaWduZWQgaW50PihleGVjKTsKICAgICBpZiAoIWFycmF5LmdldCgp
KQogICAgICAgICAvLyBFeGNlcHRpb24gaGFzIGFscmVhZHkgYmVlbiB0aHJvd24uCiAgICAgICAg
IHJldHVybiBKU1ZhbHVlOjplbmNvZGUoSlNWYWx1ZSgpKTsKZGlmZiAtLWdpdCBhL1dlYkNvcmUv
YmluZGluZ3MvanMvSlNVaW50OEFycmF5Q3VzdG9tLmNwcCBiL1dlYkNvcmUvYmluZGluZ3MvanMv
SlNVaW50OEFycmF5Q3VzdG9tLmNwcAppbmRleCBhZGY2MGE5Li5hOWVkNzNmIDEwMDY0NAotLS0g
YS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTVWludDhBcnJheUN1c3RvbS5jcHAKKysrIGIvV2ViQ29y
ZS9iaW5kaW5ncy9qcy9KU1VpbnQ4QXJyYXlDdXN0b20uY3BwCkBAIC0yNyw5ICsyNyw5IEBACiAK
ICNpZiBFTkFCTEUoM0RfQ0FOVkFTKSB8fCBFTkFCTEUoQkxPQikKIAotI2luY2x1ZGUgIkpTQXJy
YXlCdWZmZXJWaWV3SGVscGVyLmgiCiAjaW5jbHVkZSAiSlNVaW50OEFycmF5LmgiCiAKKyNpbmNs
dWRlICJKU0FycmF5QnVmZmVyVmlld0hlbHBlci5oIgogI2luY2x1ZGUgIlVpbnQ4QXJyYXkuaCIK
IAogdXNpbmcgbmFtZXNwYWNlIEpTQzsKQEAgLTU0LDcgKzU0LDcgQEAgSlNDOjpKU1ZhbHVlIEpT
VWludDhBcnJheTo6c2V0KEpTQzo6RXhlY1N0YXRlKiBleGVjKQogRW5jb2RlZEpTVmFsdWUgSlND
X0hPU1RfQ0FMTCBKU1VpbnQ4QXJyYXlDb25zdHJ1Y3Rvcjo6Y29uc3RydWN0SlNVaW50OEFycmF5
KEV4ZWNTdGF0ZSogZXhlYykKIHsKICAgICBKU1VpbnQ4QXJyYXlDb25zdHJ1Y3RvcioganNDb25z
dHJ1Y3RvciA9IHN0YXRpY19jYXN0PEpTVWludDhBcnJheUNvbnN0cnVjdG9yKj4oZXhlYy0+Y2Fs
bGVlKCkpOwotICAgIFJlZlB0cjxVaW50OEFycmF5PiBhcnJheSA9IHN0YXRpY19jYXN0PFVpbnQ4
QXJyYXkqPihjb25zdHJ1Y3RBcnJheUJ1ZmZlclZpZXc8VWludDhBcnJheSwgdW5zaWduZWQgY2hh
cj4oZXhlYykuZ2V0KCkpOworICAgIFJlZlB0cjxVaW50OEFycmF5PiBhcnJheSA9IGNvbnN0cnVj
dEFycmF5QnVmZmVyVmlldzxVaW50OEFycmF5LCB1bnNpZ25lZCBjaGFyPihleGVjKTsKICAgICBp
ZiAoIWFycmF5LmdldCgpKQogICAgICAgICAvLyBFeGNlcHRpb24gaGFzIGFscmVhZHkgYmVlbiB0
aHJvd24uCiAgICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoSlNWYWx1ZSgpKTsKZGlmZiAt
LWdpdCBhL1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4QXJyYXlCdWZmZXJWaWV3Q3VzdG9t
LmggYi9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOEFycmF5QnVmZmVyVmlld0N1c3RvbS5o
CmluZGV4IDI1NjZiNjcuLjY4ODFhMDEgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvYmluZGluZ3Mvdjgv
Y3VzdG9tL1Y4QXJyYXlCdWZmZXJWaWV3Q3VzdG9tLmgKKysrIGIvV2ViQ29yZS9iaW5kaW5ncy92
OC9jdXN0b20vVjhBcnJheUJ1ZmZlclZpZXdDdXN0b20uaApAQCAtMjgsMjcgKzI4LDY0IEBACiAg
KiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgogICovCiAKLSNpbmNsdWRlICJjb25maWcuaCIKKyNpZm5kZWYgVjhBcnJh
eUJ1ZmZlclZpZXdDdXN0b21faAorI2RlZmluZSBWOEFycmF5QnVmZmVyVmlld0N1c3RvbV9oCiAK
ICNpZiBFTkFCTEUoM0RfQ0FOVkFTKSB8fCBFTkFCTEUoQkxPQikKIAogI2luY2x1ZGUgIkFycmF5
QnVmZmVyLmgiCiAKLSNpbmNsdWRlICJWOEJpbmRpbmcuaCIKICNpbmNsdWRlICJWOEFycmF5QnVm
ZmVyLmgiCisjaW5jbHVkZSAiVjhCaW5kaW5nLmgiCiAjaW5jbHVkZSAiVjhQcm94eS5oIgogCiBu
YW1lc3BhY2UgV2ViQ29yZSB7CiAKIC8vIFRlbXBsYXRlIGZ1bmN0aW9uIHVzZWQgYnkgdGhlIEFy
cmF5QnVmZmVyVmlldypDb25zdHJ1Y3RvciBjYWxsYmFja3MuCiB0ZW1wbGF0ZTxjbGFzcyBBcnJh
eUNsYXNzLCBjbGFzcyBFbGVtZW50VHlwZT4KK3Y4OjpIYW5kbGU8djg6OlZhbHVlPiBjb25zdHJ1
Y3RXZWJHTEFycmF5V2l0aEFycmF5QnVmZmVyQXJndW1lbnQoY29uc3Qgdjg6OkFyZ3VtZW50cyYg
YXJncywgV3JhcHBlclR5cGVJbmZvKiB0eXBlLCB2ODo6RXh0ZXJuYWxBcnJheVR5cGUgYXJyYXlU
eXBlLCBib29sIGhhc0luZGV4ZXIpCit7CisgICAgQXJyYXlCdWZmZXIqIGJ1ZiA9IFY4QXJyYXlC
dWZmZXI6OnRvTmF0aXZlKGFyZ3NbMF0tPlRvT2JqZWN0KCkpOworICAgIGlmICghYnVmKQorICAg
ICAgICByZXR1cm4gdGhyb3dFcnJvcigiQ291bGQgbm90IGNvbnZlcnQgYXJndW1lbnQgMCB0byBh
IEFycmF5QnVmZmVyIik7CisgICAgYm9vbCBvazsKKyAgICB1aW50MzJfdCBvZmZzZXQgPSAwOwor
ICAgIGludCBhcmdMZW4gPSBhcmdzLkxlbmd0aCgpOworICAgIGlmIChhcmdMZW4gPiAxKSB7Cisg
ICAgICAgIG9mZnNldCA9IHRvVUludDMyKGFyZ3NbMV0sIG9rKTsKKyAgICAgICAgaWYgKCFvaykK
KyAgICAgICAgICAgIHJldHVybiB0aHJvd0Vycm9yKCJDb3VsZCBub3QgY29udmVydCBhcmd1bWVu
dCAxIHRvIGEgbnVtYmVyIik7CisgICAgfQorICAgIGlmICgoYnVmLT5ieXRlTGVuZ3RoKCkgLSBv
ZmZzZXQpICUgc2l6ZW9mKEVsZW1lbnRUeXBlKSkKKyAgICAgICAgcmV0dXJuIHRocm93RXJyb3Io
IkFycmF5QnVmZmVyIGxlbmd0aCBtaW51cyB0aGUgYnl0ZU9mZnNldCBpcyBub3QgYSBtdWx0aXBs
ZSBvZiB0aGUgZWxlbWVudCBzaXplLiIsIFY4UHJveHk6OlJhbmdlRXJyb3IpOworICAgIHVpbnQz
Ml90IGxlbmd0aCA9IChidWYtPmJ5dGVMZW5ndGgoKSAtIG9mZnNldCkgLyBzaXplb2YoRWxlbWVu
dFR5cGUpOworICAgIGlmIChhcmdMZW4gPiAyKSB7CisgICAgICAgIGxlbmd0aCA9IHRvVUludDMy
KGFyZ3NbMl0sIG9rKTsKKyAgICAgICAgaWYgKCFvaykKKyAgICAgICAgICAgIHJldHVybiB0aHJv
d0Vycm9yKCJDb3VsZCBub3QgY29udmVydCBhcmd1bWVudCAyIHRvIGEgbnVtYmVyIik7CisgICAg
fQorCisgICAgUmVmUHRyPEFycmF5Q2xhc3M+IGFycmF5ID0gQXJyYXlDbGFzczo6Y3JlYXRlKGJ1
Ziwgb2Zmc2V0LCBsZW5ndGgpOworICAgIGlmICghYXJyYXkpIHsKKyAgICAgICAgVjhQcm94eTo6
c2V0RE9NRXhjZXB0aW9uKElOREVYX1NJWkVfRVJSKTsKKyAgICAgICAgcmV0dXJuIG5vdEhhbmRs
ZWRCeUludGVyY2VwdG9yKCk7CisgICAgfQorICAgIC8vIFRyYW5zZm9ybSB0aGUgaG9sZGVyIGlu
dG8gYSB3cmFwcGVyIG9iamVjdCBmb3IgdGhlIGFycmF5LgorICAgIFY4RE9NV3JhcHBlcjo6c2V0
RE9NV3JhcHBlcihhcmdzLkhvbGRlcigpLCB0eXBlLCBhcnJheS5nZXQoKSk7CisgICAgaWYgKGhh
c0luZGV4ZXIpCisgICAgICAgIGFyZ3MuSG9sZGVyKCktPlNldEluZGV4ZWRQcm9wZXJ0aWVzVG9F
eHRlcm5hbEFycmF5RGF0YShhcnJheS5nZXQoKS0+YmFzZUFkZHJlc3MoKSwgYXJyYXlUeXBlLCBh
cnJheS5nZXQoKS0+bGVuZ3RoKCkpOworICAgIHJldHVybiB0b1Y4KGFycmF5LnJlbGVhc2UoKSwg
YXJncy5Ib2xkZXIoKSk7Cit9CisKKy8vIFRlbXBsYXRlIGZ1bmN0aW9uIHVzZWQgYnkgdGhlIEFy
cmF5QnVmZmVyVmlldypDb25zdHJ1Y3RvciBjYWxsYmFja3MuCit0ZW1wbGF0ZTxjbGFzcyBBcnJh
eUNsYXNzLCBjbGFzcyBFbGVtZW50VHlwZT4KIHY4OjpIYW5kbGU8djg6OlZhbHVlPiBjb25zdHJ1
Y3RXZWJHTEFycmF5KGNvbnN0IHY4OjpBcmd1bWVudHMmIGFyZ3MsIFdyYXBwZXJUeXBlSW5mbyog
dHlwZSwgdjg6OkV4dGVybmFsQXJyYXlUeXBlIGFycmF5VHlwZSkKIHsKICAgICBpZiAoIWFyZ3Mu
SXNDb25zdHJ1Y3RDYWxsKCkpCiAgICAgICAgIHJldHVybiB0aHJvd0Vycm9yKCJET00gb2JqZWN0
IGNvbnN0cnVjdG9yIGNhbm5vdCBiZSBjYWxsZWQgYXMgYSBmdW5jdGlvbi4iKTsKIAogICAgIGlu
dCBhcmdMZW4gPSBhcmdzLkxlbmd0aCgpOwotICAgIGlmIChhcmdMZW4gPT0gMCkgeworICAgIGlm
ICghYXJnTGVuKSB7CiAgICAgICAgIC8vIFRoaXMgaGFwcGVucyB3aGVuIHdlIHJldHVybiBhIHBy
ZXZpb3VzbHkgY29uc3RydWN0ZWQKICAgICAgICAgLy8gQXJyYXlCdWZmZXJWaWV3LCBlLmcuIGZy
b20gdGhlIGNhbGwgdG8gPFR5cGU+QXJyYXkuc2xpY2UoKS4KICAgICAgICAgLy8gVGhlIFY4RE9N
V3JhcHBlciB3aWxsIHNldCB0aGUgaW50ZXJuYWwgcG9pbnRlciBpbiB0aGUKQEAgLTgzLDM2ICsx
MjAsOCBAQCB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gY29uc3RydWN0V2ViR0xBcnJheShjb25zdCB2
ODo6QXJndW1lbnRzJiBhcmdzLCBXcmFwcGVyVHlwZQogICAgIH0KIAogICAgIC8vIFNlZSB3aGV0
aGVyIHRoZSBmaXJzdCBhcmd1bWVudCBpcyBhIEFycmF5QnVmZmVyLgotICAgIGlmIChWOEFycmF5
QnVmZmVyOjpIYXNJbnN0YW5jZShhcmdzWzBdKSkgewotICAgICAgICBBcnJheUJ1ZmZlciogYnVm
ID0gVjhBcnJheUJ1ZmZlcjo6dG9OYXRpdmUoYXJnc1swXS0+VG9PYmplY3QoKSk7Ci0gICAgICAg
IGlmICghYnVmKQotICAgICAgICAgICAgcmV0dXJuIHRocm93RXJyb3IoIkNvdWxkIG5vdCBjb252
ZXJ0IGFyZ3VtZW50IDAgdG8gYSBBcnJheUJ1ZmZlciIpOwotICAgICAgICBib29sIG9rOwotICAg
ICAgICB1aW50MzJfdCBvZmZzZXQgPSAwOwotICAgICAgICBpZiAoYXJnTGVuID4gMSkgewotICAg
ICAgICAgICAgb2Zmc2V0ID0gdG9VSW50MzIoYXJnc1sxXSwgb2spOwotICAgICAgICAgICAgaWYg
KCFvaykKLSAgICAgICAgICAgICAgICByZXR1cm4gdGhyb3dFcnJvcigiQ291bGQgbm90IGNvbnZl
cnQgYXJndW1lbnQgMSB0byBhIG51bWJlciIpOwotICAgICAgICB9Ci0gICAgICAgIGlmICgoYnVm
LT5ieXRlTGVuZ3RoKCkgLSBvZmZzZXQpICUgc2l6ZW9mKEVsZW1lbnRUeXBlKSkKLSAgICAgICAg
ICAgIHJldHVybiB0aHJvd0Vycm9yKCJBcnJheUJ1ZmZlciBsZW5ndGggbWludXMgdGhlIGJ5dGVP
ZmZzZXQgaXMgbm90IGEgbXVsdGlwbGUgb2YgdGhlIGVsZW1lbnQgc2l6ZS4iLCBWOFByb3h5OjpS
YW5nZUVycm9yKTsKLSAgICAgICAgdWludDMyX3QgbGVuZ3RoID0gKGJ1Zi0+Ynl0ZUxlbmd0aCgp
IC0gb2Zmc2V0KSAvIHNpemVvZihFbGVtZW50VHlwZSk7Ci0gICAgICAgIGlmIChhcmdMZW4gPiAy
KSB7Ci0gICAgICAgICAgICBsZW5ndGggPSB0b1VJbnQzMihhcmdzWzJdLCBvayk7Ci0gICAgICAg
ICAgICBpZiAoIW9rKQotICAgICAgICAgICAgICAgIHJldHVybiB0aHJvd0Vycm9yKCJDb3VsZCBu
b3QgY29udmVydCBhcmd1bWVudCAyIHRvIGEgbnVtYmVyIik7Ci0gICAgICAgIH0KLQotICAgICAg
ICBSZWZQdHI8QXJyYXlDbGFzcz4gYXJyYXkgPSBBcnJheUNsYXNzOjpjcmVhdGUoYnVmLCBvZmZz
ZXQsIGxlbmd0aCk7Ci0gICAgICAgIGlmICghYXJyYXkpIHsKLSAgICAgICAgICAgIFY4UHJveHk6
OnNldERPTUV4Y2VwdGlvbihJTkRFWF9TSVpFX0VSUik7Ci0gICAgICAgICAgICByZXR1cm4gbm90
SGFuZGxlZEJ5SW50ZXJjZXB0b3IoKTsKLSAgICAgICAgfQotICAgICAgICAvLyBUcmFuc2Zvcm0g
dGhlIGhvbGRlciBpbnRvIGEgd3JhcHBlciBvYmplY3QgZm9yIHRoZSBhcnJheS4KLSAgICAgICAg
VjhET01XcmFwcGVyOjpzZXRET01XcmFwcGVyKGFyZ3MuSG9sZGVyKCksIHR5cGUsIGFycmF5Lmdl
dCgpKTsKLSAgICAgICAgYXJncy5Ib2xkZXIoKS0+U2V0SW5kZXhlZFByb3BlcnRpZXNUb0V4dGVy
bmFsQXJyYXlEYXRhKGFycmF5LmdldCgpLT5iYXNlQWRkcmVzcygpLCBhcnJheVR5cGUsIGFycmF5
LmdldCgpLT5sZW5ndGgoKSk7Ci0gICAgICAgIHJldHVybiB0b1Y4KGFycmF5LnJlbGVhc2UoKSwg
YXJncy5Ib2xkZXIoKSk7Ci0gICAgfQorICAgIGlmIChWOEFycmF5QnVmZmVyOjpIYXNJbnN0YW5j
ZShhcmdzWzBdKSkKKyAgICAgIHJldHVybiBjb25zdHJ1Y3RXZWJHTEFycmF5V2l0aEFycmF5QnVm
ZmVyQXJndW1lbnQ8QXJyYXlDbGFzcywgRWxlbWVudFR5cGU+KGFyZ3MsIHR5cGUsIGFycmF5VHlw
ZSwgdHJ1ZSk7CiAKICAgICB1aW50MzJfdCBsZW4gPSAwOwogICAgIHY4OjpIYW5kbGU8djg6Ok9i
amVjdD4gc3JjQXJyYXk7CkBAIC0yMDEsMyArMjEwLDUgQEAgdjg6OkhhbmRsZTx2ODo6VmFsdWU+
IHNldFdlYkdMQXJyYXlIZWxwZXIoY29uc3Qgdjg6OkFyZ3VtZW50cyYgYXJncykKIH0KIAogI2Vu
ZGlmIC8vIEVOQUJMRSgzRF9DQU5WQVMpCisKKyNlbmRpZiAvLyBWOEFycmF5QnVmZmVyVmlld0N1
c3RvbV9oCmRpZmYgLS1naXQgYS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOERhdGFWaWV3
Q3VzdG9tLmNwcCBiL1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4RGF0YVZpZXdDdXN0b20u
Y3BwCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjQ0ZTljNGEKLS0tIC9kZXYv
bnVsbAorKysgYi9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOERhdGFWaWV3Q3VzdG9tLmNw
cApAQCAtMCwwICsxLDE1MiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMCBHb29nbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisg
KiBhcmUgbWV0OgorICoKKyAqIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuICBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQU5EIElUUyBDT05UUklCVVRPUlMgIkFTIElTIiBB
TkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECisgKiBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ
TElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCisgKiBESVNDTEFJ
TUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJM
RSBGT1IgQU5ZCisgKiBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVN
UExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUworICogKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOwor
ICogTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5ECisgKiBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFIE9GCisgKiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKworI2lmIEVO
QUJMRSgzRF9DQU5WQVMpIHx8IEVOQUJMRShCTE9CKQorCisjaW5jbHVkZSAiRGF0YVZpZXcuaCIK
KworI2luY2x1ZGUgIlY4QXJyYXlCdWZmZXJWaWV3Q3VzdG9tLmgiCisjaW5jbHVkZSAiVjhCaW5k
aW5nLmgiCisjaW5jbHVkZSAiVjhCaW5kaW5nTWFjcm9zLmgiCisjaW5jbHVkZSAiVjhEYXRhVmll
dy5oIgorI2luY2x1ZGUgIlY4UHJveHkuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCit2ODo6
SGFuZGxlPHY4OjpWYWx1ZT4gVjhEYXRhVmlldzo6Y29uc3RydWN0b3JDYWxsYmFjayhjb25zdCB2
ODo6QXJndW1lbnRzJiBhcmdzKQoreworICAgIElOQ19TVEFUUygiRE9NLkFycmF5QnVmZmVyLkNv
bnN0cnVjdG9yIik7CisKKyAgICBpZiAoYXJnc1swXS0+SXNOdWxsKCkgfHwgIVY4QXJyYXlCdWZm
ZXI6Okhhc0luc3RhbmNlKGFyZ3NbMF0pKQorICAgICAgICByZXR1cm4gVjhQcm94eTo6dGhyb3dU
eXBlRXJyb3IoKTsKKyAgICByZXR1cm4gY29uc3RydWN0V2ViR0xBcnJheVdpdGhBcnJheUJ1ZmZl
ckFyZ3VtZW50PERhdGFWaWV3LCBjaGFyPihhcmdzLCAmaW5mbywgdjg6OmtFeHRlcm5hbEJ5dGVB
cnJheSwgZmFsc2UpOworfQorCit2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gdG9WOChEYXRhVmlldyog
aW1wbCkKK3sKKyAgICBpZiAoIWltcGwpCisgICAgICAgIHJldHVybiB2ODo6TnVsbCgpOworICAg
IHJldHVybiBWOERhdGFWaWV3Ojp3cmFwKGltcGwpOworfQorCit2ODo6SGFuZGxlPHY4OjpWYWx1
ZT4gVjhEYXRhVmlldzo6Z2V0SW50OENhbGxiYWNrKGNvbnN0IHY4OjpBcmd1bWVudHMmIGFyZ3Mp
Cit7CisgICAgSU5DX1NUQVRTKCJET00uRGF0YVZpZXcuZ2V0SW50OCIpOworICAgIGlmIChhcmdz
Lkxlbmd0aCgpIDwgMSkKKyAgICAgICAgcmV0dXJuIHRocm93RXJyb3IoIk5vdCBlbm91Z2ggYXJn
dW1lbnRzIiwgVjhQcm94eTo6U3ludGF4RXJyb3IpOworICAgIGlmICghaXNVbmRlZmluZWRPck51
bGwoYXJnc1swXSkgJiYgIWFyZ3NbMF0tPklzTnVtYmVyKCkgJiYgIWFyZ3NbMF0tPklzQm9vbGVh
bigpKSB7CisgICAgICAgIFY4UHJveHk6OnRocm93VHlwZUVycm9yKCk7CisgICAgICAgIHJldHVy
biBub3RIYW5kbGVkQnlJbnRlcmNlcHRvcigpOworICAgIH0KKworICAgIERhdGFWaWV3KiBpbXAg
PSBWOERhdGFWaWV3Ojp0b05hdGl2ZShhcmdzLkhvbGRlcigpKTsKKyAgICBFeGNlcHRpb25Db2Rl
IGVjID0gMDsKKyAgICBFWENFUFRJT05fQkxPQ0sodW5zaWduZWQsIGJ5dGVPZmZzZXQsIHRvVUlu
dDMyKGFyZ3NbMF0pKTsKKyAgICBjaGFyIHJlc3VsdCA9IGltcC0+Z2V0SW50OChieXRlT2Zmc2V0
LCBlYyk7CisgICAgaWYgKFVOTElLRUxZKGVjKSkgeworICAgICAgICBWOFByb3h5OjpzZXRET01F
eGNlcHRpb24oZWMpOworICAgICAgICByZXR1cm4gdjg6OkhhbmRsZTx2ODo6VmFsdWU+KCk7Cisg
ICAgfQorICAgIHJldHVybiB2ODo6SW50ZWdlcjo6TmV3KHJlc3VsdCk7Cit9CisKK3Y4OjpIYW5k
bGU8djg6OlZhbHVlPiBWOERhdGFWaWV3OjpnZXRVaW50OENhbGxiYWNrKGNvbnN0IHY4OjpBcmd1
bWVudHMmIGFyZ3MpCit7CisgICAgSU5DX1NUQVRTKCJET00uRGF0YVZpZXcuZ2V0VWludDgiKTsK
KyAgICBpZiAoYXJncy5MZW5ndGgoKSA8IDEpCisgICAgICAgIHJldHVybiB0aHJvd0Vycm9yKCJO
b3QgZW5vdWdoIGFyZ3VtZW50cyIsIFY4UHJveHk6OlN5bnRheEVycm9yKTsKKyAgICBpZiAoIWlz
VW5kZWZpbmVkT3JOdWxsKGFyZ3NbMF0pICYmICFhcmdzWzBdLT5Jc051bWJlcigpICYmICFhcmdz
WzBdLT5Jc0Jvb2xlYW4oKSkgeworICAgICAgICBWOFByb3h5Ojp0aHJvd1R5cGVFcnJvcigpOwor
ICAgICAgICByZXR1cm4gbm90SGFuZGxlZEJ5SW50ZXJjZXB0b3IoKTsKKyAgICB9CisKKyAgICBE
YXRhVmlldyogaW1wID0gVjhEYXRhVmlldzo6dG9OYXRpdmUoYXJncy5Ib2xkZXIoKSk7CisgICAg
RXhjZXB0aW9uQ29kZSBlYyA9IDA7CisgICAgRVhDRVBUSU9OX0JMT0NLKHVuc2lnbmVkLCBieXRl
T2Zmc2V0LCB0b1VJbnQzMihhcmdzWzBdKSk7CisgICAgdW5zaWduZWQgY2hhciByZXN1bHQgPSBp
bXAtPmdldFVpbnQ4KGJ5dGVPZmZzZXQsIGVjKTsKKyAgICBpZiAoVU5MSUtFTFkoZWMpKSB7Cisg
ICAgICAgIFY4UHJveHk6OnNldERPTUV4Y2VwdGlvbihlYyk7CisgICAgICAgIHJldHVybiB2ODo6
SGFuZGxlPHY4OjpWYWx1ZT4oKTsKKyAgICB9CisgICAgcmV0dXJuIHY4OjpJbnRlZ2VyOjpOZXco
cmVzdWx0KTsKK30KKwordjg6OkhhbmRsZTx2ODo6VmFsdWU+IFY4RGF0YVZpZXc6OnNldEludDhD
YWxsYmFjayhjb25zdCB2ODo6QXJndW1lbnRzJiBhcmdzKQoreworICAgIElOQ19TVEFUUygiRE9N
LkRhdGFWaWV3LnNldEludDgiKTsKKyAgICBpZiAoYXJncy5MZW5ndGgoKSA8IDIpCisgICAgICAg
IHJldHVybiB0aHJvd0Vycm9yKCJOb3QgZW5vdWdoIGFyZ3VtZW50cyIsIFY4UHJveHk6OlN5bnRh
eEVycm9yKTsKKyAgICBpZiAoIWlzVW5kZWZpbmVkT3JOdWxsKGFyZ3NbMF0pICYmICFhcmdzWzBd
LT5Jc051bWJlcigpICYmICFhcmdzWzBdLT5Jc0Jvb2xlYW4oKSkgeworICAgICAgICBWOFByb3h5
Ojp0aHJvd1R5cGVFcnJvcigpOworICAgICAgICByZXR1cm4gbm90SGFuZGxlZEJ5SW50ZXJjZXB0
b3IoKTsKKyAgICB9CisgICAgaWYgKCFpc1VuZGVmaW5lZE9yTnVsbChhcmdzWzFdKSAmJiAhYXJn
c1sxXS0+SXNOdW1iZXIoKSAmJiAhYXJnc1sxXS0+SXNCb29sZWFuKCkpIHsKKyAgICAgICAgVjhQ
cm94eTo6dGhyb3dUeXBlRXJyb3IoKTsKKyAgICAgICAgcmV0dXJuIG5vdEhhbmRsZWRCeUludGVy
Y2VwdG9yKCk7CisgICAgfQorCisgICAgRGF0YVZpZXcqIGltcCA9IFY4RGF0YVZpZXc6OnRvTmF0
aXZlKGFyZ3MuSG9sZGVyKCkpOworICAgIEV4Y2VwdGlvbkNvZGUgZWMgPSAwOworICAgIEVYQ0VQ
VElPTl9CTE9DSyh1bnNpZ25lZCwgYnl0ZU9mZnNldCwgdG9VSW50MzIoYXJnc1swXSkpOworICAg
IEVYQ0VQVElPTl9CTE9DSyhpbnQsIHZhbHVlLCB0b0ludDMyKGFyZ3NbMV0pKTsKKyAgICBpZiAo
dmFsdWUgPCAtMTI4IHx8IHZhbHVlID4gMTI3KQorICAgICAgICByZXR1cm4gdGhyb3dFcnJvcigi
VGhlIHZhbHVlIHRvIHNldCB0byBpcyBvdXQgb2YgcmFuZ2UiLCBWOFByb3h5OjpTeW50YXhFcnJv
cik7CisgICAgaW1wLT5zZXRJbnQ4KGJ5dGVPZmZzZXQsIHN0YXRpY19jYXN0PGNoYXI+KHZhbHVl
KSwgZWMpOworICAgIGlmIChVTkxJS0VMWShlYykpCisgICAgICAgIFY4UHJveHk6OnNldERPTUV4
Y2VwdGlvbihlYyk7CisgICAgcmV0dXJuIHY4OjpIYW5kbGU8djg6OlZhbHVlPigpOworfQorCit2
ODo6SGFuZGxlPHY4OjpWYWx1ZT4gVjhEYXRhVmlldzo6c2V0VWludDhDYWxsYmFjayhjb25zdCB2
ODo6QXJndW1lbnRzJiBhcmdzKQoreworICAgIElOQ19TVEFUUygiRE9NLkRhdGFWaWV3LnNldFVp
bnQ4Iik7CisgICAgaWYgKGFyZ3MuTGVuZ3RoKCkgPCAyKQorICAgICAgICByZXR1cm4gdGhyb3dF
cnJvcigiTm90IGVub3VnaCBhcmd1bWVudHMiLCBWOFByb3h5OjpTeW50YXhFcnJvcik7CisgICAg
aWYgKCFpc1VuZGVmaW5lZE9yTnVsbChhcmdzWzBdKSAmJiAhYXJnc1swXS0+SXNOdW1iZXIoKSAm
JiAhYXJnc1swXS0+SXNCb29sZWFuKCkpIHsKKyAgICAgICAgVjhQcm94eTo6dGhyb3dUeXBlRXJy
b3IoKTsKKyAgICAgICAgcmV0dXJuIG5vdEhhbmRsZWRCeUludGVyY2VwdG9yKCk7CisgICAgfQor
ICAgIGlmICghaXNVbmRlZmluZWRPck51bGwoYXJnc1sxXSkgJiYgIWFyZ3NbMV0tPklzTnVtYmVy
KCkgJiYgIWFyZ3NbMV0tPklzQm9vbGVhbigpKSB7CisgICAgICAgIFY4UHJveHk6OnRocm93VHlw
ZUVycm9yKCk7CisgICAgICAgIHJldHVybiBub3RIYW5kbGVkQnlJbnRlcmNlcHRvcigpOworICAg
IH0KKworICAgIERhdGFWaWV3KiBpbXAgPSBWOERhdGFWaWV3Ojp0b05hdGl2ZShhcmdzLkhvbGRl
cigpKTsKKyAgICBFeGNlcHRpb25Db2RlIGVjID0gMDsKKyAgICBFWENFUFRJT05fQkxPQ0sodW5z
aWduZWQsIGJ5dGVPZmZzZXQsIHRvVUludDMyKGFyZ3NbMF0pKTsKKyAgICBFWENFUFRJT05fQkxP
Q0soaW50LCB2YWx1ZSwgdG9JbnQzMihhcmdzWzFdKSk7CisgICAgaWYgKHZhbHVlIDwgMCB8fCB2
YWx1ZSA+IDI1NSkKKyAgICAgICAgcmV0dXJuIHRocm93RXJyb3IoIlRoZSB2YWx1ZSB0byBzZXQg
dG8gaXMgb3V0IG9mIHJhbmdlIiwgVjhQcm94eTo6U3ludGF4RXJyb3IpOworICAgIGltcC0+c2V0
VWludDgoYnl0ZU9mZnNldCwgc3RhdGljX2Nhc3Q8dW5zaWduZWQgY2hhcj4odmFsdWUpLCBlYyk7
CisgICAgaWYgKFVOTElLRUxZKGVjKSkKKyAgICAgICAgVjhQcm94eTo6c2V0RE9NRXhjZXB0aW9u
KGVjKTsKKyAgICByZXR1cm4gdjg6OkhhbmRsZTx2ODo6VmFsdWU+KCk7Cit9CisKK30gLy8gbmFt
ZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEVOQUJMRSgzRF9DQU5WQVMpIHx8IEVOQUJMRShC
TE9CKQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9odG1sL2NhbnZhcy9BcnJheUJ1ZmZlclZpZXcuaCBi
L1dlYkNvcmUvaHRtbC9jYW52YXMvQXJyYXlCdWZmZXJWaWV3LmgKaW5kZXggZDM3YmFkYS4uNzAx
YWJiYyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9odG1sL2NhbnZhcy9BcnJheUJ1ZmZlclZpZXcuaAor
KysgYi9XZWJDb3JlL2h0bWwvY2FudmFzL0FycmF5QnVmZmVyVmlldy5oCkBAIC00Niw2ICs0Niw3
IEBAIGNsYXNzIEFycmF5QnVmZmVyVmlldyA6IHB1YmxpYyBSZWZDb3VudGVkPEFycmF5QnVmZmVy
Vmlldz4gewogICAgIHZpcnR1YWwgYm9vbCBpc0ludEFycmF5KCkgY29uc3QgeyByZXR1cm4gZmFs
c2U7IH0KICAgICB2aXJ0dWFsIGJvb2wgaXNVbnNpZ25lZEludEFycmF5KCkgY29uc3QgeyByZXR1
cm4gZmFsc2U7IH0KICAgICB2aXJ0dWFsIGJvb2wgaXNGbG9hdEFycmF5KCkgY29uc3QgeyByZXR1
cm4gZmFsc2U7IH0KKyAgICB2aXJ0dWFsIGJvb2wgaXNEYXRhVmlldygpIGNvbnN0IHsgcmV0dXJu
IGZhbHNlOyB9CiAKICAgICBQYXNzUmVmUHRyPEFycmF5QnVmZmVyPiBidWZmZXIoKSBjb25zdAog
ICAgIHsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvaHRtbC9jYW52YXMvRGF0YVZpZXcuY3BwIGIvV2Vi
Q29yZS9odG1sL2NhbnZhcy9EYXRhVmlldy5jcHAKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXgg
MDAwMDAwMC4uNjcwYWIyZAotLS0gL2Rldi9udWxsCisrKyBiL1dlYkNvcmUvaHRtbC9jYW52YXMv
RGF0YVZpZXcuY3BwCkBAIC0wLDAgKzEsMjI5IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEw
IEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKgorICogMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICog
Mi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgor
ICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBBTkQgSVRTIENPTlRSSUJVVE9S
UyAiQVMgSVMiIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKKyAqIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUK
KyAqIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIE9SIElUUyBDT05UUklCVVRP
UlMgQkUgTElBQkxFIEZPUiBBTlkKKyAqIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQ
RUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTCisgKiAoSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7CisgKiBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1Mg
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQKKyAqIE9OIEFOWSBUSEVPUlkgT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisg
KiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UgT0YKKyAqIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5o
IgorCisjaWYgRU5BQkxFKDNEX0NBTlZBUykgfHwgRU5BQkxFKEJMT0IpCisKKyNpbmNsdWRlICJE
YXRhVmlldy5oIgorCituYW1lc3BhY2UgeworCit0ZW1wbGF0ZTx0eXBlbmFtZSBUPgordW5pb24g
VmFsdWUKK3sKKyAgICBUIGRhdGE7CisgICAgY2hhciBieXRlc1tzaXplb2YoVCldOworfTsKKwor
fQorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK1Bhc3NSZWZQdHI8RGF0YVZpZXc+IERhdGFWaWV3
OjpjcmVhdGUoUGFzc1JlZlB0cjxBcnJheUJ1ZmZlcj4gYnVmZmVyLCB1bnNpZ25lZCBieXRlT2Zm
c2V0LCB1bnNpZ25lZCBieXRlTGVuZ3RoKQoreworICAgIGlmIChieXRlT2Zmc2V0ICsgYnl0ZUxl
bmd0aCA+IGJ1ZmZlci0+Ynl0ZUxlbmd0aCgpKQorICAgICAgICByZXR1cm4gMDsKKyAgICByZXR1
cm4gYWRvcHRSZWYobmV3IERhdGFWaWV3KGJ1ZmZlciwgYnl0ZU9mZnNldCwgYnl0ZUxlbmd0aCkp
OworfQorCitEYXRhVmlldzo6RGF0YVZpZXcoUGFzc1JlZlB0cjxBcnJheUJ1ZmZlcj4gYnVmZmVy
LCB1bnNpZ25lZCBieXRlT2Zmc2V0LCB1bnNpZ25lZCBieXRlTGVuZ3RoKQorICAgIDogQXJyYXlC
dWZmZXJWaWV3KGJ1ZmZlciwgYnl0ZU9mZnNldCkKKyAgICAsIG1fYnl0ZUxlbmd0aChieXRlTGVu
Z3RoKQoreworfQorCitzdGF0aWMgYm9vbCBuZWVkVG9GbGlwQnl0ZXMoYm9vbCBsaXR0bGVFbmRp
YW4pCit7CisjaWYgQ1BVKEJJR19FTkRJQU4pCisgICAgcmV0dXJuIGxpdHRsZUVuZGlhbjsKKyNl
bHNlCisgICAgcmV0dXJuICFsaXR0bGVFbmRpYW47CisjZW5kaWYKK30KKworaW5saW5lIHZvaWQg
c3dhcEJ5dGVzKGNoYXIqIHAsIGNoYXIqIHEpCit7CisgICAgY2hhciB0ZW1wID0gKnA7CisgICAg
KnAgPSAqcTsKKyAgICAqcSA9IHRlbXA7Cit9CisKK3N0YXRpYyB2b2lkIGZsaXBCeXRlc0ZvcjE2
Qml0cyhjaGFyKiBwKQoreworICAgIHN3YXBCeXRlcyhwLCBwICsgMSk7Cit9CisKK3N0YXRpYyB2
b2lkIGZsaXBCeXRlc0ZvcjMyQml0cyhjaGFyKiBwKQoreworICAgIHN3YXBCeXRlcyhwLCBwICsg
Myk7CisgICAgc3dhcEJ5dGVzKHAgKyAxLCBwICsgMik7Cit9CisKK3N0YXRpYyB2b2lkIGZsaXBC
eXRlc0ZvcjY0Qml0cyhjaGFyKiBwKQoreworICAgIHN3YXBCeXRlcyhwLCBwICsgNyk7CisgICAg
c3dhcEJ5dGVzKHAgKyAxLCBwICsgNik7CisgICAgc3dhcEJ5dGVzKHAgKyAyLCBwICsgNSk7Cisg
ICAgc3dhcEJ5dGVzKHAgKyAzLCBwICsgNCk7Cit9CisKK3N0YXRpYyB2b2lkIGZsaXBCeXRlc0lm
TmVlZGVkKGNoYXIqIHZhbHVlLCBzaXplX3Qgc2l6ZSwgYm9vbCBsaXR0bGVFbmRpYW4pCit7Cisg
ICAgaWYgKCFuZWVkVG9GbGlwQnl0ZXMobGl0dGxlRW5kaWFuKSkKKyAgICAgICAgcmV0dXJuOwor
CisgICAgc3dpdGNoIChzaXplKSB7CisgICAgY2FzZSAxOgorICAgICAgICAvLyBOb3RoaW5nIHRv
IGRvLgorICAgICAgICBicmVhazsKKyAgICBjYXNlIDI6CisgICAgICAgIGZsaXBCeXRlc0ZvcjE2
Qml0cyh2YWx1ZSk7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgNDoKKyAgICAgICAgZmxpcEJ5
dGVzRm9yMzJCaXRzKHZhbHVlKTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSA4OgorICAgICAg
ICBmbGlwQnl0ZXNGb3I2NEJpdHModmFsdWUpOworICAgICAgICBicmVhazsKKyAgICBkZWZhdWx0
OgorICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICAgICAgYnJlYWs7CisgICAgfQor
fQorCit0ZW1wbGF0ZTx0eXBlbmFtZSBUPgorVCBEYXRhVmlldzo6Z2V0RGF0YSh1bnNpZ25lZCBi
eXRlT2Zmc2V0LCBib29sIGxpdHRsZUVuZGlhbiwgRXhjZXB0aW9uQ29kZSYgZWMpIGNvbnN0Cit7
CisgICAgaWYgKGJleW9uZFJhbmdlPFQ+KGJ5dGVPZmZzZXQpKSB7CisgICAgICAgIGVjID0gSU5E
RVhfU0laRV9FUlI7CisgICAgICAgIHJldHVybiAwOworICAgIH0KKworICAgIC8vIFdlIGRvIG5v
dCB3YW50IHRvIGxvYWQgdGhlIGRhdGEgZGlyZWN0bHkgc2luY2UgaXQgd291bGQgY2F1c2UgYSBi
dXMgZXJyb3Igb24gYXJjaGl0ZWN0dXJlcyB0aGF0IGRvbid0IHN1cHBvcnQgdW5hbGlnbmVkIGxv
YWRzLgorICAgIFZhbHVlPFQ+IHZhbHVlOworICAgIG1lbWNweSh2YWx1ZS5ieXRlcywgc3RhdGlj
X2Nhc3Q8Y29uc3QgY2hhcio+KG1fYmFzZUFkZHJlc3MpICsgYnl0ZU9mZnNldCwgc2l6ZW9mKFQp
KTsKKyAgICBmbGlwQnl0ZXNJZk5lZWRlZCh2YWx1ZS5ieXRlcywgc2l6ZW9mKFQpLCBsaXR0bGVF
bmRpYW4pOworICAgIHJldHVybiB2YWx1ZS5kYXRhOworfQorCit0ZW1wbGF0ZTx0eXBlbmFtZSBU
Pgordm9pZCBEYXRhVmlldzo6c2V0RGF0YSh1bnNpZ25lZCBieXRlT2Zmc2V0LCBUIHZhbHVlLCBi
b29sIGxpdHRsZUVuZGlhbiwgRXhjZXB0aW9uQ29kZSYgZWMpCit7CisgICAgaWYgKGJleW9uZFJh
bmdlPFQ+KGJ5dGVPZmZzZXQpKSB7CisgICAgICAgIGVjID0gSU5ERVhfU0laRV9FUlI7CisgICAg
ICAgIHJldHVybjsKKyAgICB9CisKKyAgICAvLyBXZSBkbyBub3Qgd2FudCB0byBzdG9yZSB0aGUg
ZGF0YSBkaXJlY3RseSBzaW5jZSBpdCB3b3VsZCBjYXVzZSBhIGJ1cyBlcnJvciBvbiBhcmNoaXRl
Y3R1cmVzIHRoYXQgZG9uJ3Qgc3VwcG9ydCB1bmFsaWduZWQgc3RvcmVzLgorICAgIFZhbHVlPFQ+
IHRlbXBWYWx1ZTsKKyAgICB0ZW1wVmFsdWUuZGF0YSA9IHZhbHVlOworICAgIGZsaXBCeXRlc0lm
TmVlZGVkKHRlbXBWYWx1ZS5ieXRlcywgc2l6ZW9mKFQpLCBsaXR0bGVFbmRpYW4pOworICAgIG1l
bWNweShzdGF0aWNfY2FzdDxjaGFyKj4obV9iYXNlQWRkcmVzcykgKyBieXRlT2Zmc2V0LCB0ZW1w
VmFsdWUuYnl0ZXMsIHNpemVvZihUKSk7Cit9CisKK2NoYXIgRGF0YVZpZXc6OmdldEludDgodW5z
aWduZWQgYnl0ZU9mZnNldCwgRXhjZXB0aW9uQ29kZSYgZWMpCit7CisgICAgcmV0dXJuIGdldERh
dGE8Y2hhcj4oYnl0ZU9mZnNldCwgZmFsc2UsIGVjKTsKK30KKwordW5zaWduZWQgY2hhciBEYXRh
Vmlldzo6Z2V0VWludDgodW5zaWduZWQgYnl0ZU9mZnNldCwgRXhjZXB0aW9uQ29kZSYgZWMpCit7
CisgICAgcmV0dXJuIGdldERhdGE8dW5zaWduZWQgY2hhcj4oYnl0ZU9mZnNldCwgZmFsc2UsIGVj
KTsKK30KKworc2hvcnQgRGF0YVZpZXc6OmdldEludDE2KHVuc2lnbmVkIGJ5dGVPZmZzZXQsIGJv
b2wgbGl0dGxlRW5kaWFuLCBFeGNlcHRpb25Db2RlJiBlYykKK3sKKyAgICByZXR1cm4gZ2V0RGF0
YTxzaG9ydD4oYnl0ZU9mZnNldCwgbGl0dGxlRW5kaWFuLCBlYyk7Cit9CisKK3Vuc2lnbmVkIHNo
b3J0IERhdGFWaWV3OjpnZXRVaW50MTYodW5zaWduZWQgYnl0ZU9mZnNldCwgYm9vbCBsaXR0bGVF
bmRpYW4sIEV4Y2VwdGlvbkNvZGUmIGVjKQoreworICAgIHJldHVybiBnZXREYXRhPHVuc2lnbmVk
IHNob3J0PihieXRlT2Zmc2V0LCBsaXR0bGVFbmRpYW4sIGVjKTsKK30KKworaW50IERhdGFWaWV3
OjpnZXRJbnQzMih1bnNpZ25lZCBieXRlT2Zmc2V0LCBib29sIGxpdHRsZUVuZGlhbiwgRXhjZXB0
aW9uQ29kZSYgZWMpCit7CisgICAgcmV0dXJuIGdldERhdGE8aW50PihieXRlT2Zmc2V0LCBsaXR0
bGVFbmRpYW4sIGVjKTsKK30KKwordW5zaWduZWQgRGF0YVZpZXc6OmdldFVpbnQzMih1bnNpZ25l
ZCBieXRlT2Zmc2V0LCBib29sIGxpdHRsZUVuZGlhbiwgRXhjZXB0aW9uQ29kZSYgZWMpCit7Cisg
ICAgcmV0dXJuIGdldERhdGE8dW5zaWduZWQ+KGJ5dGVPZmZzZXQsIGxpdHRsZUVuZGlhbiwgZWMp
OworfQorCitmbG9hdCBEYXRhVmlldzo6Z2V0RmxvYXQzMih1bnNpZ25lZCBieXRlT2Zmc2V0LCBi
b29sIGxpdHRsZUVuZGlhbiwgRXhjZXB0aW9uQ29kZSYgZWMpCit7CisgICAgcmV0dXJuIGdldERh
dGE8ZmxvYXQ+KGJ5dGVPZmZzZXQsIGxpdHRsZUVuZGlhbiwgZWMpOworfQorCitkb3VibGUgRGF0
YVZpZXc6OmdldEZsb2F0NjQodW5zaWduZWQgYnl0ZU9mZnNldCwgYm9vbCBsaXR0bGVFbmRpYW4s
IEV4Y2VwdGlvbkNvZGUmIGVjKQoreworICAgIHJldHVybiBnZXREYXRhPGRvdWJsZT4oYnl0ZU9m
ZnNldCwgbGl0dGxlRW5kaWFuLCBlYyk7Cit9CisKK3ZvaWQgRGF0YVZpZXc6OnNldEludDgodW5z
aWduZWQgYnl0ZU9mZnNldCwgY2hhciB2YWx1ZSwgRXhjZXB0aW9uQ29kZSYgZWMpCit7CisgICAg
c2V0RGF0YTxjaGFyPihieXRlT2Zmc2V0LCB2YWx1ZSwgZmFsc2UsIGVjKTsKK30KKwordm9pZCBE
YXRhVmlldzo6c2V0VWludDgodW5zaWduZWQgYnl0ZU9mZnNldCwgdW5zaWduZWQgY2hhciB2YWx1
ZSwgRXhjZXB0aW9uQ29kZSYgZWMpCit7CisgICAgc2V0RGF0YTx1bnNpZ25lZCBjaGFyPihieXRl
T2Zmc2V0LCB2YWx1ZSwgZmFsc2UsIGVjKTsKK30KKwordm9pZCBEYXRhVmlldzo6c2V0SW50MTYo
dW5zaWduZWQgYnl0ZU9mZnNldCwgc2hvcnQgdmFsdWUsIGJvb2wgbGl0dGxlRW5kaWFuLCBFeGNl
cHRpb25Db2RlJiBlYykKK3sKKyAgICBzZXREYXRhPHNob3J0PihieXRlT2Zmc2V0LCB2YWx1ZSwg
bGl0dGxlRW5kaWFuLCBlYyk7Cit9CisKK3ZvaWQgRGF0YVZpZXc6OnNldFVpbnQxNih1bnNpZ25l
ZCBieXRlT2Zmc2V0LCB1bnNpZ25lZCBzaG9ydCB2YWx1ZSwgYm9vbCBsaXR0bGVFbmRpYW4sIEV4
Y2VwdGlvbkNvZGUmIGVjKQoreworICAgIHNldERhdGE8dW5zaWduZWQgc2hvcnQ+KGJ5dGVPZmZz
ZXQsIHZhbHVlLCBsaXR0bGVFbmRpYW4sIGVjKTsKK30KKwordm9pZCBEYXRhVmlldzo6c2V0SW50
MzIodW5zaWduZWQgYnl0ZU9mZnNldCwgaW50IHZhbHVlLCBib29sIGxpdHRsZUVuZGlhbiwgRXhj
ZXB0aW9uQ29kZSYgZWMpCit7CisgICAgc2V0RGF0YTxpbnQ+KGJ5dGVPZmZzZXQsIHZhbHVlLCBs
aXR0bGVFbmRpYW4sIGVjKTsKK30KKwordm9pZCBEYXRhVmlldzo6c2V0VWludDMyKHVuc2lnbmVk
IGJ5dGVPZmZzZXQsIHVuc2lnbmVkIHZhbHVlLCBib29sIGxpdHRsZUVuZGlhbiwgRXhjZXB0aW9u
Q29kZSYgZWMpCit7CisgICAgc2V0RGF0YTx1bnNpZ25lZD4oYnl0ZU9mZnNldCwgdmFsdWUsIGxp
dHRsZUVuZGlhbiwgZWMpOworfQorCit2b2lkIERhdGFWaWV3OjpzZXRGbG9hdDMyKHVuc2lnbmVk
IGJ5dGVPZmZzZXQsIGZsb2F0IHZhbHVlLCBib29sIGxpdHRsZUVuZGlhbiwgRXhjZXB0aW9uQ29k
ZSYgZWMpCit7CisgICAgc2V0RGF0YTxmbG9hdD4oYnl0ZU9mZnNldCwgdmFsdWUsIGxpdHRsZUVu
ZGlhbiwgZWMpOworfQorCit2b2lkIERhdGFWaWV3OjpzZXRGbG9hdDY0KHVuc2lnbmVkIGJ5dGVP
ZmZzZXQsIGRvdWJsZSB2YWx1ZSwgYm9vbCBsaXR0bGVFbmRpYW4sIEV4Y2VwdGlvbkNvZGUmIGVj
KQoreworICAgIHNldERhdGE8ZG91YmxlPihieXRlT2Zmc2V0LCB2YWx1ZSwgbGl0dGxlRW5kaWFu
LCBlYyk7Cit9CisKK30KKworI2VuZGlmIC8vIEVOQUJMRSgzRF9DQU5WQVMpIHx8IEVOQUJMRShC
TE9CKQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9odG1sL2NhbnZhcy9EYXRhVmlldy5oIGIvV2ViQ29y
ZS9odG1sL2NhbnZhcy9EYXRhVmlldy5oCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAw
MDAuLjA2ODEzNDEKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJDb3JlL2h0bWwvY2FudmFzL0RhdGFW
aWV3LmgKQEAgLTAsMCArMSw5MiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMCBHb29nbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
CisgKiBhcmUgbWV0OgorICoKKyAqIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuICBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQU5EIElUUyBDT05UUklCVVRPUlMgIkFTIElT
IiBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECisgKiBXQVJSQU5USUVTIE9GIE1FUkNIQU5U
QUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCisgKiBESVND
TEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJ
QUJMRSBGT1IgQU5ZCisgKiBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBF
WEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUworICogKElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OworICogTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5ECisgKiBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFIE9GCisgKiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgRGF0YVZpZXdfaAorI2RlZmlu
ZSBEYXRhVmlld19oCisKKyNpbmNsdWRlICJBcnJheUJ1ZmZlclZpZXcuaCIKKyNpbmNsdWRlICJF
eGNlcHRpb25Db2RlLmgiCisjaW5jbHVkZSA8d3RmL1Bhc3NSZWZQdHIuaD4KKworbmFtZXNwYWNl
IFdlYkNvcmUgeworCitjbGFzcyBEYXRhVmlldyA6IHB1YmxpYyBBcnJheUJ1ZmZlclZpZXcgewor
cHVibGljOgorICAgIHN0YXRpYyBQYXNzUmVmUHRyPERhdGFWaWV3PiBjcmVhdGUoUGFzc1JlZlB0
cjxBcnJheUJ1ZmZlcj4sIHVuc2lnbmVkIGJ5dGVPZmZzZXQsIHVuc2lnbmVkIGJ5dGVMZW5ndGgp
OworCisgICAgdmlydHVhbCBib29sIGlzRGF0YVZpZXcoKSBjb25zdCB7IHJldHVybiB0cnVlOyB9
CisgICAgdmlydHVhbCB1bnNpZ25lZCBsZW5ndGgoKSBjb25zdCB7IHJldHVybiBtX2J5dGVMZW5n
dGg7IH0KKyAgICB2aXJ0dWFsIHVuc2lnbmVkIGJ5dGVMZW5ndGgoKSBjb25zdCB7IHJldHVybiBt
X2J5dGVMZW5ndGg7IH0KKyAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8QXJyYXlCdWZmZXJWaWV3PiBz
bGljZShpbnQsIGludCkgY29uc3QgeyByZXR1cm4gMDsgfQorCisgICAgY2hhciBnZXRJbnQ4KHVu
c2lnbmVkIGJ5dGVPZmZzZXQsIEV4Y2VwdGlvbkNvZGUmKTsKKyAgICB1bnNpZ25lZCBjaGFyIGdl
dFVpbnQ4KHVuc2lnbmVkIGJ5dGVPZmZzZXQsIEV4Y2VwdGlvbkNvZGUmKTsKKyAgICBzaG9ydCBn
ZXRJbnQxNih1bnNpZ25lZCBieXRlT2Zmc2V0LCBFeGNlcHRpb25Db2RlJiBlYykgeyByZXR1cm4g
Z2V0SW50MTYoYnl0ZU9mZnNldCwgZmFsc2UsIGVjKTsgfQorICAgIHNob3J0IGdldEludDE2KHVu
c2lnbmVkIGJ5dGVPZmZzZXQsIGJvb2wgbGl0dGxlRW5kaWFuLCBFeGNlcHRpb25Db2RlJik7Cisg
ICAgdW5zaWduZWQgc2hvcnQgZ2V0VWludDE2KHVuc2lnbmVkIGJ5dGVPZmZzZXQsIEV4Y2VwdGlv
bkNvZGUmIGVjKSB7IHJldHVybiBnZXRVaW50MTYoYnl0ZU9mZnNldCwgZmFsc2UsIGVjKTsgfQor
ICAgIHVuc2lnbmVkIHNob3J0IGdldFVpbnQxNih1bnNpZ25lZCBieXRlT2Zmc2V0LCBib29sIGxp
dHRsZUVuZGlhbiwgRXhjZXB0aW9uQ29kZSYpOworICAgIGludCBnZXRJbnQzMih1bnNpZ25lZCBi
eXRlT2Zmc2V0LCBFeGNlcHRpb25Db2RlJiBlYykgeyByZXR1cm4gZ2V0SW50MzIoYnl0ZU9mZnNl
dCwgZmFsc2UsIGVjKTsgfQorICAgIGludCBnZXRJbnQzMih1bnNpZ25lZCBieXRlT2Zmc2V0LCBi
b29sIGxpdHRsZUVuZGlhbiwgRXhjZXB0aW9uQ29kZSYpOworICAgIHVuc2lnbmVkIGdldFVpbnQz
Mih1bnNpZ25lZCBieXRlT2Zmc2V0LCBFeGNlcHRpb25Db2RlJiBlYykgeyByZXR1cm4gZ2V0VWlu
dDMyKGJ5dGVPZmZzZXQsIGZhbHNlLCBlYyk7IH0KKyAgICB1bnNpZ25lZCBnZXRVaW50MzIodW5z
aWduZWQgYnl0ZU9mZnNldCwgYm9vbCBsaXR0bGVFbmRpYW4sIEV4Y2VwdGlvbkNvZGUmKTsKKyAg
ICBmbG9hdCBnZXRGbG9hdDMyKHVuc2lnbmVkIGJ5dGVPZmZzZXQsIEV4Y2VwdGlvbkNvZGUmIGVj
KSB7IHJldHVybiBnZXRGbG9hdDMyKGJ5dGVPZmZzZXQsIGZhbHNlLCBlYyk7IH0KKyAgICBmbG9h
dCBnZXRGbG9hdDMyKHVuc2lnbmVkIGJ5dGVPZmZzZXQsIGJvb2wgbGl0dGxlRW5kaWFuLCBFeGNl
cHRpb25Db2RlJik7CisgICAgZG91YmxlIGdldEZsb2F0NjQodW5zaWduZWQgYnl0ZU9mZnNldCwg
RXhjZXB0aW9uQ29kZSYgZWMpIHsgcmV0dXJuIGdldEZsb2F0NjQoYnl0ZU9mZnNldCwgZmFsc2Us
IGVjKTsgfQorICAgIGRvdWJsZSBnZXRGbG9hdDY0KHVuc2lnbmVkIGJ5dGVPZmZzZXQsIGJvb2wg
bGl0dGxlRW5kaWFuLCBFeGNlcHRpb25Db2RlJik7CisKKyAgICB2b2lkIHNldEludDgodW5zaWdu
ZWQgYnl0ZU9mZnNldCwgY2hhciB2YWx1ZSwgRXhjZXB0aW9uQ29kZSYpOworICAgIHZvaWQgc2V0
VWludDgodW5zaWduZWQgYnl0ZU9mZnNldCwgdW5zaWduZWQgY2hhciB2YWx1ZSwgRXhjZXB0aW9u
Q29kZSYpOworICAgIHZvaWQgc2V0SW50MTYodW5zaWduZWQgYnl0ZU9mZnNldCwgc2hvcnQgdmFs
dWUsIEV4Y2VwdGlvbkNvZGUmIGVjKSB7IHNldEludDE2KGJ5dGVPZmZzZXQsIHZhbHVlLCBmYWxz
ZSwgZWMpOyB9CisgICAgdm9pZCBzZXRJbnQxNih1bnNpZ25lZCBieXRlT2Zmc2V0LCBzaG9ydCB2
YWx1ZSwgYm9vbCBsaXR0bGVFbmRpYW4sIEV4Y2VwdGlvbkNvZGUmKTsKKyAgICB2b2lkIHNldFVp
bnQxNih1bnNpZ25lZCBieXRlT2Zmc2V0LCB1bnNpZ25lZCBzaG9ydCB2YWx1ZSwgRXhjZXB0aW9u
Q29kZSYgZWMpIHsgc2V0VWludDE2KGJ5dGVPZmZzZXQsIHZhbHVlLCBmYWxzZSwgZWMpOyB9Cisg
ICAgdm9pZCBzZXRVaW50MTYodW5zaWduZWQgYnl0ZU9mZnNldCwgdW5zaWduZWQgc2hvcnQgdmFs
dWUsIGJvb2wgbGl0dGxlRW5kaWFuLCBFeGNlcHRpb25Db2RlJik7CisgICAgdm9pZCBzZXRJbnQz
Mih1bnNpZ25lZCBieXRlT2Zmc2V0LCBpbnQgdmFsdWUsIEV4Y2VwdGlvbkNvZGUmIGVjKSB7IHNl
dEludDMyKGJ5dGVPZmZzZXQsIHZhbHVlLCBmYWxzZSwgZWMpOyB9IAorICAgIHZvaWQgc2V0SW50
MzIodW5zaWduZWQgYnl0ZU9mZnNldCwgaW50IHZhbHVlLCBib29sIGxpdHRsZUVuZGlhbiwgRXhj
ZXB0aW9uQ29kZSYpOworICAgIHZvaWQgc2V0VWludDMyKHVuc2lnbmVkIGJ5dGVPZmZzZXQsIHVu
c2lnbmVkIHZhbHVlLCBFeGNlcHRpb25Db2RlJiBlYykgeyBzZXRVaW50MzIoYnl0ZU9mZnNldCwg
dmFsdWUsIGZhbHNlLCBlYyk7IH0KKyAgICB2b2lkIHNldFVpbnQzMih1bnNpZ25lZCBieXRlT2Zm
c2V0LCB1bnNpZ25lZCB2YWx1ZSwgYm9vbCBsaXR0bGVFbmRpYW4sIEV4Y2VwdGlvbkNvZGUmKTsK
KyAgICB2b2lkIHNldEZsb2F0MzIodW5zaWduZWQgYnl0ZU9mZnNldCwgZmxvYXQgdmFsdWUsIEV4
Y2VwdGlvbkNvZGUmIGVjKSB7IHNldEZsb2F0MzIoYnl0ZU9mZnNldCwgdmFsdWUsIGZhbHNlLCBl
Yyk7IH0KKyAgICB2b2lkIHNldEZsb2F0MzIodW5zaWduZWQgYnl0ZU9mZnNldCwgZmxvYXQgdmFs
dWUsIGJvb2wgbGl0dGxlRW5kaWFuLCBFeGNlcHRpb25Db2RlJik7CisgICAgdm9pZCBzZXRGbG9h
dDY0KHVuc2lnbmVkIGJ5dGVPZmZzZXQsIGRvdWJsZSB2YWx1ZSwgRXhjZXB0aW9uQ29kZSYgZWMp
IHsgc2V0RmxvYXQ2NChieXRlT2Zmc2V0LCB2YWx1ZSwgZmFsc2UsIGVjKTsgfQorICAgIHZvaWQg
c2V0RmxvYXQ2NCh1bnNpZ25lZCBieXRlT2Zmc2V0LCBkb3VibGUgdmFsdWUsIGJvb2wgbGl0dGxl
RW5kaWFuLCBFeGNlcHRpb25Db2RlJik7CisKK3ByaXZhdGU6CisgICAgRGF0YVZpZXcoUGFzc1Jl
ZlB0cjxBcnJheUJ1ZmZlcj4sIHVuc2lnbmVkIGJ5dGVPZmZzZXQsIHVuc2lnbmVkIGJ5dGVMZW5n
dGgpOworCisgICAgdGVtcGxhdGU8dHlwZW5hbWUgVD4KKyAgICBpbmxpbmUgYm9vbCBiZXlvbmRS
YW5nZSh1bnNpZ25lZCBieXRlT2Zmc2V0KSBjb25zdCB7IHJldHVybiBieXRlT2Zmc2V0ICsgc2l6
ZW9mKFQpID4gbV9ieXRlTGVuZ3RoOyB9CisKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBUPgorICAg
IFQgZ2V0RGF0YSh1bnNpZ25lZCBieXRlT2Zmc2V0LCBib29sIGxpdHRsZUVuZGlhbiwgRXhjZXB0
aW9uQ29kZSYpIGNvbnN0OworCisgICAgdGVtcGxhdGU8dHlwZW5hbWUgVD4KKyAgICB2b2lkIHNl
dERhdGEodW5zaWduZWQgYnl0ZU9mZnNldCwgVCB2YWx1ZSwgYm9vbCBsaXR0bGVFbmRpYW4sIEV4
Y2VwdGlvbkNvZGUmKTsKKworICAgIHVuc2lnbmVkIG1fYnl0ZUxlbmd0aDsKK307CisKKworfSAv
LyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gRGF0YVZpZXdfaApkaWZmIC0tZ2l0IGEv
V2ViQ29yZS9odG1sL2NhbnZhcy9EYXRhVmlldy5pZGwgYi9XZWJDb3JlL2h0bWwvY2FudmFzL0Rh
dGFWaWV3LmlkbApuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5iZWY4ODA1Ci0t
LSAvZGV2L251bGwKKysrIGIvV2ViQ29yZS9odG1sL2NhbnZhcy9EYXRhVmlldy5pZGwKQEAgLTAs
MCArMSw4MyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMCBHb29nbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0
OgorICoKKyAqIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuICBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lciBpbiB0aGUKKyAqICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgQVBQTEUgQU5EIElUUyBDT05UUklCVVRPUlMgIkFTIElTIiBBTkQgQU5ZCisg
KiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFRIRSBJTVBMSUVECisgKiBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCisgKiBESVNDTEFJTUVELiBJTiBO
TyBFVkVOVCBTSEFMTCBBUFBMRSBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5Z
CisgKiBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9S
IENPTlNFUVVFTlRJQUwgREFNQUdFUworICogKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOworICogTE9TUyBP
RiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5ECisgKiBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GCisg
KiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgorICovCisKK21vZHVsZSBodG1sIHsKKworICAgIGludGVyZmFjZSBbCisgICAg
ICAgIENvbmRpdGlvbmFsPTNEX0NBTlZBU3xCTE9CLAorICAgICAgICBDYW5CZUNvbnN0cnVjdGVk
LAorICAgICAgICBDdXN0b21Db25zdHJ1Y3RGdW5jdGlvbiwKKyAgICAgICAgQ3VzdG9tVG9KUywK
KyAgICAgICAgTm9TdGF0aWNUYWJsZXMsCisgICAgICAgIFY4Q3VzdG9tQ29uc3RydWN0b3IKKyAg
ICBdIERhdGFWaWV3IDogQXJyYXlCdWZmZXJWaWV3IHsKKyAgICAgICAgLy8gQWxsIHRoZXNlIG1l
dGhvZHMgcmFpc2UgYW4gZXhjZXB0aW9uIGlmIHRoZXkgd291bGQgcmVhZCBvciB3cml0ZSBiZXlv
bmQgdGhlIGVuZCBvZiB0aGUgdmlldy4KKworICAgICAgICAvLyBXZSBoYXZlIHRvIHVzZSBjdXN0
b20gY29kZSBiZWNhdXNlIG91ciBjb2RlIGdlbmVyYXRvciBkb2VzIG5vdCBzdXBwb3J0IGNoYXIg
dHlwZS4KKyAgICAgICAgLy8gY2hhciBnZXRJbnQ4KGluIHVuc2lnbmVkIGxvbmcgYnl0ZU9mZnNl
dCk7CisgICAgICAgIC8vIHVuc2lnbmVkIGNoYXIgZ2V0VWludDgoaW4gdW5zaWduZWQgbG9uZyBi
eXRlT2Zmc2V0KTsKKyAgICAgICAgW0N1c3RvbV0gRE9NT2JqZWN0IGdldEludDgoKQorICAgICAg
ICAgICAgcmFpc2VzIChET01FeGNlcHRpb24pOworICAgICAgICBbQ3VzdG9tXSBET01PYmplY3Qg
Z2V0VWludDgoKQorICAgICAgICAgICAgcmFpc2VzIChET01FeGNlcHRpb24pOworCisgICAgICAg
IFtTdHJpY3RUeXBlQ2hlY2tpbmcsIFJlcXVpcmVzQWxsQXJndW1lbnRzPVJhaXNlXSBzaG9ydCBn
ZXRJbnQxNihpbiB1bnNpZ25lZCBsb25nIGJ5dGVPZmZzZXQsIGluIFtPcHRpb25hbF0gYm9vbGVh
biBsaXR0bGVFbmRpYW4pCisgICAgICAgICAgICByYWlzZXMgKERPTUV4Y2VwdGlvbik7CisgICAg
ICAgIFtTdHJpY3RUeXBlQ2hlY2tpbmcsIFJlcXVpcmVzQWxsQXJndW1lbnRzPVJhaXNlXSB1bnNp
Z25lZCBzaG9ydCBnZXRVaW50MTYoaW4gdW5zaWduZWQgbG9uZyBieXRlT2Zmc2V0LCBpbiBbT3B0
aW9uYWxdIGJvb2xlYW4gbGl0dGxlRW5kaWFuKQorICAgICAgICAgICAgcmFpc2VzIChET01FeGNl
cHRpb24pOworICAgICAgICBbU3RyaWN0VHlwZUNoZWNraW5nLCBSZXF1aXJlc0FsbEFyZ3VtZW50
cz1SYWlzZV0gbG9uZyBnZXRJbnQzMihpbiB1bnNpZ25lZCBsb25nIGJ5dGVPZmZzZXQsIGluIFtP
cHRpb25hbF0gYm9vbGVhbiBsaXR0bGVFbmRpYW4pCisgICAgICAgICAgICByYWlzZXMgKERPTUV4
Y2VwdGlvbik7CisgICAgICAgIFtTdHJpY3RUeXBlQ2hlY2tpbmcsIFJlcXVpcmVzQWxsQXJndW1l
bnRzPVJhaXNlXSB1bnNpZ25lZCBsb25nIGdldFVpbnQzMihpbiB1bnNpZ25lZCBsb25nIGJ5dGVP
ZmZzZXQsIGluIFtPcHRpb25hbF0gYm9vbGVhbiBsaXR0bGVFbmRpYW4pCisgICAgICAgICAgICBy
YWlzZXMgKERPTUV4Y2VwdGlvbik7CisKKyAgICAgICAgLy8gVXNlIGN1c3RvbSBjb2RlIHRvIGhh
bmRsZSBOYU4gY2FzZSBmb3IgSlNDLgorICAgICAgICBbSlNDQ3VzdG9tLCBTdHJpY3RUeXBlQ2hl
Y2tpbmcsIFJlcXVpcmVzQWxsQXJndW1lbnRzPVJhaXNlXSBmbG9hdCBnZXRGbG9hdDMyKGluIHVu
c2lnbmVkIGxvbmcgYnl0ZU9mZnNldCwgaW4gW09wdGlvbmFsXSBib29sZWFuIGxpdHRsZUVuZGlh
bikKKyAgICAgICAgICAgIHJhaXNlcyAoRE9NRXhjZXB0aW9uKTsKKyAgICAgICAgW0pTQ0N1c3Rv
bSwgU3RyaWN0VHlwZUNoZWNraW5nLCBSZXF1aXJlc0FsbEFyZ3VtZW50cz1SYWlzZV0gZG91Ymxl
IGdldEZsb2F0NjQoaW4gdW5zaWduZWQgbG9uZyBieXRlT2Zmc2V0LCBpbiBbT3B0aW9uYWxdIGJv
b2xlYW4gbGl0dGxlRW5kaWFuKQorICAgICAgICAgICAgcmFpc2VzIChET01FeGNlcHRpb24pOwor
CisgICAgICAgIC8vIFdlIGhhdmUgdG8gdXNlIGN1c3RvbSBjb2RlIGJlY2F1c2Ugb3VyIGNvZGUg
Z2VuZXJhdG9yIGRvZXMgbm90IHN1cHBvcnQgY2hhciB0eXBlLgorICAgICAgICAvLyB2b2lkIHNl
dEludDgoaW4gdW5zaWduZWQgbG9uZyBieXRlT2Zmc2V0LCBpbiBieXRlIHZhbHVlKTsKKyAgICAg
ICAgLy8gdm9pZCBzZXRVaW50OChpbiB1bnNpZ25lZCBsb25nIGJ5dGVPZmZzZXQsIGluIHVuc2ln
bmVkIGJ5dGUgdmFsdWUpOworICAgICAgICBbQ3VzdG9tXSB2b2lkIHNldEludDgoKQorICAgICAg
ICAgICAgcmFpc2VzIChET01FeGNlcHRpb24pOworICAgICAgICBbQ3VzdG9tXSB2b2lkIHNldFVp
bnQ4KCkKKyAgICAgICAgICAgIHJhaXNlcyAoRE9NRXhjZXB0aW9uKTsKKworICAgICAgICBbU3Ry
aWN0VHlwZUNoZWNraW5nLCBSZXF1aXJlc0FsbEFyZ3VtZW50cz1SYWlzZV0gdm9pZCBzZXRJbnQx
NihpbiB1bnNpZ25lZCBsb25nIGJ5dGVPZmZzZXQsIGluIHNob3J0IHZhbHVlLCBpbiBbT3B0aW9u
YWxdIGJvb2xlYW4gbGl0dGxlRW5kaWFuKQorICAgICAgICAgICAgcmFpc2VzIChET01FeGNlcHRp
b24pOworICAgICAgICBbU3RyaWN0VHlwZUNoZWNraW5nLCBSZXF1aXJlc0FsbEFyZ3VtZW50cz1S
YWlzZV0gdm9pZCBzZXRVaW50MTYoaW4gdW5zaWduZWQgbG9uZyBieXRlT2Zmc2V0LCBpbiB1bnNp
Z25lZCBzaG9ydCB2YWx1ZSwgaW4gW09wdGlvbmFsXSBib29sZWFuIGxpdHRsZUVuZGlhbikKKyAg
ICAgICAgICAgIHJhaXNlcyAoRE9NRXhjZXB0aW9uKTsKKyAgICAgICAgW1N0cmljdFR5cGVDaGVj
a2luZywgUmVxdWlyZXNBbGxBcmd1bWVudHM9UmFpc2VdIHZvaWQgc2V0SW50MzIoaW4gdW5zaWdu
ZWQgbG9uZyBieXRlT2Zmc2V0LCBpbiBsb25nIHZhbHVlLCBpbiBbT3B0aW9uYWxdIGJvb2xlYW4g
bGl0dGxlRW5kaWFuKQorICAgICAgICAgICAgcmFpc2VzIChET01FeGNlcHRpb24pOworICAgICAg
ICBbU3RyaWN0VHlwZUNoZWNraW5nLCBSZXF1aXJlc0FsbEFyZ3VtZW50cz1SYWlzZV0gdm9pZCBz
ZXRVaW50MzIoaW4gdW5zaWduZWQgbG9uZyBieXRlT2Zmc2V0LCBpbiB1bnNpZ25lZCBsb25nIHZh
bHVlLCBpbiBbT3B0aW9uYWxdIGJvb2xlYW4gbGl0dGxlRW5kaWFuKQorICAgICAgICAgICAgcmFp
c2VzIChET01FeGNlcHRpb24pOworICAgICAgICBbU3RyaWN0VHlwZUNoZWNraW5nLCBSZXF1aXJl
c0FsbEFyZ3VtZW50cz1SYWlzZV0gdm9pZCBzZXRGbG9hdDMyKGluIHVuc2lnbmVkIGxvbmcgYnl0
ZU9mZnNldCwgaW4gZmxvYXQgdmFsdWUsIGluIFtPcHRpb25hbF0gYm9vbGVhbiBsaXR0bGVFbmRp
YW4pCisgICAgICAgICAgICByYWlzZXMgKERPTUV4Y2VwdGlvbik7CisgICAgICAgIFtTdHJpY3RU
eXBlQ2hlY2tpbmcsIFJlcXVpcmVzQWxsQXJndW1lbnRzPVJhaXNlXSB2b2lkIHNldEZsb2F0NjQo
aW4gdW5zaWduZWQgbG9uZyBieXRlT2Zmc2V0LCBpbiBkb3VibGUgdmFsdWUsIGluIFtPcHRpb25h
bF0gYm9vbGVhbiBsaXR0bGVFbmRpYW4pCisgICAgICAgICAgICByYWlzZXMgKERPTUV4Y2VwdGlv
bik7CisgICAgfTsKKworfQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5pZGwg
Yi9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmlkbAppbmRleCAwYjlmNWVkLi5lMzJjYjc5IDEwMDY0
NAotLS0gYS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmlkbAorKysgYi9XZWJDb3JlL3BhZ2UvRE9N
V2luZG93LmlkbApAQCAtNDk4LDYgKzQ5OCw3IEBAIG1vZHVsZSB3aW5kb3cgewogICAgICAgICBh
dHRyaWJ1dGUgW0pTQ0N1c3RvbUdldHRlcixDb25kaXRpb25hbD0zRF9DQU5WQVN8QkxPQixFbmFi
bGVkQXRSdW50aW1lXSBJbnQzMkFycmF5Q29uc3RydWN0b3IgSW50MzJBcnJheTsgLy8gVXNhYmxl
IHdpdGggbmV3IG9wZXJhdG9yCiAgICAgICAgIGF0dHJpYnV0ZSBbSlNDQ3VzdG9tR2V0dGVyLENv
bmRpdGlvbmFsPTNEX0NBTlZBU3xCTE9CLEVuYWJsZWRBdFJ1bnRpbWVdIFVpbnQzMkFycmF5Q29u
c3RydWN0b3IgVWludDMyQXJyYXk7IC8vIFVzYWJsZSB3aXRoIG5ldyBvcGVyYXRvcgogICAgICAg
ICBhdHRyaWJ1dGUgW0pTQ0N1c3RvbUdldHRlcixDb25kaXRpb25hbD0zRF9DQU5WQVN8QkxPQixF
bmFibGVkQXRSdW50aW1lXSBGbG9hdDMyQXJyYXlDb25zdHJ1Y3RvciBGbG9hdDMyQXJyYXk7IC8v
IFVzYWJsZSB3aXRoIG5ldyBvcGVyYXRvcgorICAgICAgICBhdHRyaWJ1dGUgW0pTQ0N1c3RvbUdl
dHRlcixDb25kaXRpb25hbD0zRF9DQU5WQVN8QkxPQixFbmFibGVkQXRSdW50aW1lXSBEYXRhVmll
d0NvbnN0cnVjdG9yIERhdGFWaWV3OyAvLyBVc2FibGUgd2l0aCBuZXcgb3BlcmF0b3IKIAogICAg
ICAgICBhdHRyaWJ1dGUgRXZlbnRDb25zdHJ1Y3RvciBFdmVudDsKICAgICAgICAgYXR0cmlidXRl
IEJlZm9yZUxvYWRFdmVudENvbnN0cnVjdG9yIEJlZm9yZUxvYWRFdmVudDsK
</data>
<flag name="review"
          id="65393"
          type_id="1"
          status="-"
          setter="kbr"
    />
    <flag name="commit-queue"
          id="65394"
          type_id="3"
          status="-"
          setter="jianli"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>74797</attachid>
            <date>2010-11-24 14:55:15 -0800</date>
            <delta_ts>2010-11-24 16:09:01 -0800</delta_ts>
            <desc>Proposed Patch</desc>
            <filename>46541_6</filename>
            <type>text/plain</type>
            <size>117583</size>
            <attacher name="Jian Li">jianli</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCAwZTZhZWU4Li5mNWJmMjA3IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjMgQEAKKzIwMTAtMTEt
MjQgIEppYW4gTGkgIDxqaWFubGlAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEltcGxlbWVudCBEYXRhVmlldyBpbnRlcmZhY2Ug
ZnJvbSBUeXBlZCBBcnJheSBzcGVjaWZpY2F0aW9uCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD00NjU0MQorCisgICAgICAgIEFkZCBhIG5ldyB0ZXN0IGZv
ciB0ZXN0aW5nIERhdGFWaWV3IGludGVyZmFjZS4gQWxzbyB1cGRhdGUgc29tZSB0ZXN0cworICAg
ICAgICB0byBleGNsdWRlIERhdGFWaWV3IHByb3BlcnR5IGZyb20gYmVpbmcgdGVzdGVkIGJlY2F1
c2UgaXQgaXMgbm90CisgICAgICAgIGV4cG9zZWQgdG8gYWxsIHBsYXRmb3Jtcy4KKworICAgICAg
ICAqIGZhc3QvY2FudmFzL3dlYmdsL2RhdGEtdmlldy10ZXN0LWV4cGVjdGVkLnR4dDogQWRkZWQu
CisgICAgICAgICogZmFzdC9jYW52YXMvd2ViZ2wvZGF0YS12aWV3LXRlc3QuaHRtbDogQWRkZWQu
CisgICAgICAgICogZmFzdC9kb20vV2luZG93L3NjcmlwdC10ZXN0cy93aW5kb3ctcHJvcGVydHkt
ZGVzY3JpcHRvcnMuanM6CisgICAgICAgICogZmFzdC9kb20vV2luZG93L3dpbmRvdy1wcm9wZXJ0
aWVzLmh0bWw6CisgICAgICAgICogZmFzdC9kb20vc2NyaXB0LXRlc3RzL3Byb3RvdHlwZS1pbmhl
cml0YW5jZS0yLmpzOgorICAgICAgICAoY29uc3RydWN0b3JOYW1lc0ZvcldpbmRvdyk6CisgICAg
ICAgICogZmFzdC9kb20vc2NyaXB0LXRlc3RzL3Byb3RvdHlwZS1pbmhlcml0YW5jZS5qczoKKyAg
ICAgICAgKiBmYXN0L2pzL3NjcmlwdC10ZXN0cy9nbG9iYWwtY29uc3RydWN0b3JzLmpzOgorCiAy
MDEwLTExLTI0ICBUb255IENoYW5nICA8dG9ueUBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgVW5y
ZXZpZXdlZCwgdXBkYXRpbmcgcGx1Z2luIHRlc3QgZXhwZWN0YXRpb25zIG5vdyB0aGF0IHdlJ3Zl
IHN3aXRjaGVkCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2NhbnZhcy93ZWJnbC9kYXRh
LXZpZXctdGVzdC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2NhbnZhcy93ZWJnbC9k
YXRhLXZpZXctdGVzdC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMC4uNmFkNGU0NAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvY2FudmFz
L3dlYmdsL2RhdGEtdmlldy10ZXN0LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDc2NSBAQAorVGVz
dCBEYXRhVmlldy4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNT
IiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1Rlc3QgZm9yIGNv
bnN0cnVjdG9yIHRha2luZyAxIGFyZ3VtZW50CitQQVNTIHZpZXcgPSBuZXcgRGF0YVZpZXcoYXJh
eUJ1ZmZlcikgaXMgZGVmaW5lZC4KK1BBU1Mgdmlldy5ieXRlT2Zmc2V0IGlzIDAKK1BBU1Mgdmll
dy5ieXRlTGVuZ3RoIGlzIDIKKworVGVzdCBmb3IgY29uc3RydWN0b3IgdGFraW5nIDIgYXJndW1l
bnRzCitQQVNTIHZpZXcgPSBuZXcgRGF0YVZpZXcoYXJheUJ1ZmZlciwgMSkgaXMgZGVmaW5lZC4K
K1BBU1Mgdmlldy5ieXRlT2Zmc2V0IGlzIDEKK1BBU1Mgdmlldy5ieXRlTGVuZ3RoIGlzIDEKKwor
VGVzdCBmb3IgY29uc3RydWN0b3IgdGFraW5nIDMgYXJndW1lbnRzCitQQVNTIHZpZXcgPSBuZXcg
RGF0YVZpZXcoYXJheUJ1ZmZlciwgMCwgMSkgaXMgZGVmaW5lZC4KK1BBU1Mgdmlldy5ieXRlT2Zm
c2V0IGlzIDAKK1BBU1Mgdmlldy5ieXRlTGVuZ3RoIGlzIDEKKworVGVzdCBmb3IgY29uc3RydWN0
b3IgdGhyb3dpbmcgZXhjZXB0aW9uCitQQVNTIHZpZXcgPSBuZXcgRGF0YVZpZXcoYXJheUJ1ZmZl
ciwgMCwgMykgdGhyZXcgZXhjZXB0aW9uIEVycm9yOiBJTkRFWF9TSVpFX0VSUjogRE9NIEV4Y2Vw
dGlvbiAxLgorUEFTUyB2aWV3ID0gbmV3IERhdGFWaWV3KGFyYXlCdWZmZXIsIDEsIDIpIHRocmV3
IGV4Y2VwdGlvbiBFcnJvcjogSU5ERVhfU0laRV9FUlI6IERPTSBFeGNlcHRpb24gMS4KK1BBU1Mg
dmlldyA9IG5ldyBEYXRhVmlldyhhcmF5QnVmZmVyLCAyLCAxKSB0aHJldyBleGNlcHRpb24gRXJy
b3I6IElOREVYX1NJWkVfRVJSOiBET00gRXhjZXB0aW9uIDEuCisKK1Rlc3QgZm9yIGdldCBtZXRo
b2RzIHRoYXQgd29yaworUEFTUyB2aWV3LmdldEludDgoMCkgaXMgMAorUEFTUyB2aWV3LmdldElu
dDgoOCkgaXMgLTEyOAorUEFTUyB2aWV3LmdldEludDgoMTUpIGlzIC0xCitQQVNTIHZpZXcuZ2V0
VWludDgoMCkgaXMgMAorUEFTUyB2aWV3LmdldFVpbnQ4KDgpIGlzIDEyOAorUEFTUyB2aWV3Lmdl
dFVpbnQ4KDE1KSBpcyAyNTUKK1BBU1Mgdmlldy5nZXRJbnQxNigwLCB0cnVlKSBpcyAyNTYKK1BB
U1Mgdmlldy5nZXRJbnQxNig1LCB0cnVlKSBpcyAyNjIxMworUEFTUyB2aWV3LmdldEludDE2KDks
IHRydWUpIGlzIC0zMjEyNworUEFTUyB2aWV3LmdldEludDE2KDE0LCB0cnVlKSBpcyAtMgorUEFT
UyB2aWV3LmdldEludDE2KDApIGlzIDEKK1BBU1Mgdmlldy5nZXRJbnQxNig1KSBpcyAyNTk1OAor
UEFTUyB2aWV3LmdldEludDE2KDkpIGlzIC0zMjM4MgorUEFTUyB2aWV3LmdldEludDE2KDE0KSBp
cyAtMjU3CitQQVNTIHZpZXcuZ2V0VWludDE2KDAsIHRydWUpIGlzIDI1NgorUEFTUyB2aWV3Lmdl
dFVpbnQxNig1LCB0cnVlKSBpcyAyNjIxMworUEFTUyB2aWV3LmdldFVpbnQxNig5LCB0cnVlKSBp
cyAzMzQwOQorUEFTUyB2aWV3LmdldFVpbnQxNigxNCwgdHJ1ZSkgaXMgNjU1MzQKK1BBU1Mgdmll
dy5nZXRVaW50MTYoMCkgaXMgMQorUEFTUyB2aWV3LmdldFVpbnQxNig1KSBpcyAyNTk1OAorUEFT
UyB2aWV3LmdldFVpbnQxNig5KSBpcyAzMzE1NAorUEFTUyB2aWV3LmdldFVpbnQxNigxNCkgaXMg
NjUyNzkKK1BBU1Mgdmlldy5nZXRJbnQzMigwLCB0cnVlKSBpcyA1MDQ2Mjk3NgorUEFTUyB2aWV3
LmdldEludDMyKDMsIHRydWUpIGlzIDE3MTc5MjA3NzEKK1BBU1Mgdmlldy5nZXRJbnQzMig2LCB0
cnVlKSBpcyAtMjEyMjI5MTM1NAorUEFTUyB2aWV3LmdldEludDMyKDksIHRydWUpIGlzIC01ODQ5
MDIzOQorUEFTUyB2aWV3LmdldEludDMyKDEyLCB0cnVlKSBpcyAtNjYwNTIKK1BBU1Mgdmlldy5n
ZXRJbnQzMigwKSBpcyA2NjA1MQorUEFTUyB2aWV3LmdldEludDMyKDMpIGlzIDU2OTExMjA2CitQ
QVNTIHZpZXcuZ2V0SW50MzIoNikgaXMgMTcxODA1OTEzNworUEFTUyB2aWV3LmdldEludDMyKDkp
IGlzIC0yMTIyMTUyOTY0CitQQVNTIHZpZXcuZ2V0SW50MzIoMTIpIGlzIC01MDQ2Mjk3NworUEFT
UyB2aWV3LmdldFVpbnQzMigwLCB0cnVlKSBpcyA1MDQ2Mjk3NgorUEFTUyB2aWV3LmdldFVpbnQz
MigzLCB0cnVlKSBpcyAxNzE3OTIwNzcxCitQQVNTIHZpZXcuZ2V0VWludDMyKDYsIHRydWUpIGlz
IDIxNzI2NzU5NDIKK1BBU1Mgdmlldy5nZXRVaW50MzIoOSwgdHJ1ZSkgaXMgNDIzNjQ3NzA1Nwor
UEFTUyB2aWV3LmdldFVpbnQzMigxMiwgdHJ1ZSkgaXMgNDI5NDkwMTI0NAorUEFTUyB2aWV3Lmdl
dFVpbnQzMigwKSBpcyA2NjA1MQorUEFTUyB2aWV3LmdldFVpbnQzMigzKSBpcyA1NjkxMTIwNgor
UEFTUyB2aWV3LmdldFVpbnQzMig2KSBpcyAxNzE4MDU5MTM3CitQQVNTIHZpZXcuZ2V0VWludDMy
KDkpIGlzIDIxNzI4MTQzMzIKK1BBU1Mgdmlldy5nZXRVaW50MzIoMTIpIGlzIDQyNDQ1MDQzMTkK
K1BBU1Mgdmlldy5nZXRGbG9hdDMyKDAsIHRydWUpIGlzIDEwCitQQVNTIHZpZXcuZ2V0RmxvYXQz
MigzLCB0cnVlKSBpcyAxMAorUEFTUyB2aWV3LmdldEZsb2F0MzIoNywgdHJ1ZSkgaXMgMTAKK1BB
U1Mgdmlldy5nZXRGbG9hdDMyKDEwLCB0cnVlKSBpcyAxMAorUEFTUyB2aWV3LmdldEZsb2F0MzIo
MCwgZmFsc2UpIGlzIDEwCitQQVNTIHZpZXcuZ2V0RmxvYXQzMigzLCBmYWxzZSkgaXMgMTAKK1BB
U1Mgdmlldy5nZXRGbG9hdDMyKDcsIGZhbHNlKSBpcyAxMAorUEFTUyB2aWV3LmdldEZsb2F0MzIo
MTAsIGZhbHNlKSBpcyAxMAorUEFTUyB2aWV3LmdldEZsb2F0MzIoMCwgdHJ1ZSkgaXMgMS4yMzAw
MDAwMTkwNzM0ODYzCitQQVNTIHZpZXcuZ2V0RmxvYXQzMigzLCB0cnVlKSBpcyAxLjIzMDAwMDAx
OTA3MzQ4NjMKK1BBU1Mgdmlldy5nZXRGbG9hdDMyKDcsIHRydWUpIGlzIDEuMjMwMDAwMDE5MDcz
NDg2MworUEFTUyB2aWV3LmdldEZsb2F0MzIoMTAsIHRydWUpIGlzIDEuMjMwMDAwMDE5MDczNDg2
MworUEFTUyB2aWV3LmdldEZsb2F0MzIoMCwgZmFsc2UpIGlzIDEuMjMwMDAwMDE5MDczNDg2Mwor
UEFTUyB2aWV3LmdldEZsb2F0MzIoMywgZmFsc2UpIGlzIDEuMjMwMDAwMDE5MDczNDg2MworUEFT
UyB2aWV3LmdldEZsb2F0MzIoNywgZmFsc2UpIGlzIDEuMjMwMDAwMDE5MDczNDg2MworUEFTUyB2
aWV3LmdldEZsb2F0MzIoMTAsIGZhbHNlKSBpcyAxLjIzMDAwMDAxOTA3MzQ4NjMKK1BBU1Mgdmll
dy5nZXRGbG9hdDMyKDAsIHRydWUpIGlzIC00NTYyMS4zNzEwOTM3NQorUEFTUyB2aWV3LmdldEZs
b2F0MzIoMywgdHJ1ZSkgaXMgLTQ1NjIxLjM3MTA5Mzc1CitQQVNTIHZpZXcuZ2V0RmxvYXQzMig3
LCB0cnVlKSBpcyAtNDU2MjEuMzcxMDkzNzUKK1BBU1Mgdmlldy5nZXRGbG9hdDMyKDEwLCB0cnVl
KSBpcyAtNDU2MjEuMzcxMDkzNzUKK1BBU1Mgdmlldy5nZXRGbG9hdDMyKDAsIGZhbHNlKSBpcyAt
NDU2MjEuMzcxMDkzNzUKK1BBU1Mgdmlldy5nZXRGbG9hdDMyKDMsIGZhbHNlKSBpcyAtNDU2MjEu
MzcxMDkzNzUKK1BBU1Mgdmlldy5nZXRGbG9hdDMyKDcsIGZhbHNlKSBpcyAtNDU2MjEuMzcxMDkz
NzUKK1BBU1Mgdmlldy5nZXRGbG9hdDMyKDEwLCBmYWxzZSkgaXMgLTQ1NjIxLjM3MTA5Mzc1CitQ
QVNTIHZpZXcuZ2V0RmxvYXQzMigwLCB0cnVlKSBpcyBOYU4KK1BBU1Mgdmlldy5nZXRGbG9hdDMy
KDMsIHRydWUpIGlzIE5hTgorUEFTUyB2aWV3LmdldEZsb2F0MzIoNywgdHJ1ZSkgaXMgTmFOCitQ
QVNTIHZpZXcuZ2V0RmxvYXQzMigxMCwgdHJ1ZSkgaXMgTmFOCitQQVNTIHZpZXcuZ2V0RmxvYXQz
MigwLCBmYWxzZSkgaXMgTmFOCitQQVNTIHZpZXcuZ2V0RmxvYXQzMigzLCBmYWxzZSkgaXMgTmFO
CitQQVNTIHZpZXcuZ2V0RmxvYXQzMig3LCBmYWxzZSkgaXMgTmFOCitQQVNTIHZpZXcuZ2V0Rmxv
YXQzMigxMCwgZmFsc2UpIGlzIE5hTgorUEFTUyB2aWV3LmdldEZsb2F0MzIoMCwgdHJ1ZSkgaXMg
LU5hTgorUEFTUyB2aWV3LmdldEZsb2F0MzIoMywgdHJ1ZSkgaXMgLU5hTgorUEFTUyB2aWV3Lmdl
dEZsb2F0MzIoNywgdHJ1ZSkgaXMgLU5hTgorUEFTUyB2aWV3LmdldEZsb2F0MzIoMTAsIHRydWUp
IGlzIC1OYU4KK1BBU1Mgdmlldy5nZXRGbG9hdDMyKDAsIGZhbHNlKSBpcyAtTmFOCitQQVNTIHZp
ZXcuZ2V0RmxvYXQzMigzLCBmYWxzZSkgaXMgLU5hTgorUEFTUyB2aWV3LmdldEZsb2F0MzIoNywg
ZmFsc2UpIGlzIC1OYU4KK1BBU1Mgdmlldy5nZXRGbG9hdDMyKDEwLCBmYWxzZSkgaXMgLU5hTgor
UEFTUyB2aWV3LmdldEZsb2F0NjQoMCwgdHJ1ZSkgaXMgMTAKK1BBU1Mgdmlldy5nZXRGbG9hdDY0
KDMsIHRydWUpIGlzIDEwCitQQVNTIHZpZXcuZ2V0RmxvYXQ2NCg3LCB0cnVlKSBpcyAxMAorUEFT
UyB2aWV3LmdldEZsb2F0NjQoMTAsIHRydWUpIGlzIDEwCitQQVNTIHZpZXcuZ2V0RmxvYXQ2NCgw
LCBmYWxzZSkgaXMgMTAKK1BBU1Mgdmlldy5nZXRGbG9hdDY0KDMsIGZhbHNlKSBpcyAxMAorUEFT
UyB2aWV3LmdldEZsb2F0NjQoNywgZmFsc2UpIGlzIDEwCitQQVNTIHZpZXcuZ2V0RmxvYXQ2NCgx
MCwgZmFsc2UpIGlzIDEwCitQQVNTIHZpZXcuZ2V0RmxvYXQ2NCgwLCB0cnVlKSBpcyAxLjIzCitQ
QVNTIHZpZXcuZ2V0RmxvYXQ2NCgzLCB0cnVlKSBpcyAxLjIzCitQQVNTIHZpZXcuZ2V0RmxvYXQ2
NCg3LCB0cnVlKSBpcyAxLjIzCitQQVNTIHZpZXcuZ2V0RmxvYXQ2NCgxMCwgdHJ1ZSkgaXMgMS4y
MworUEFTUyB2aWV3LmdldEZsb2F0NjQoMCwgZmFsc2UpIGlzIDEuMjMKK1BBU1Mgdmlldy5nZXRG
bG9hdDY0KDMsIGZhbHNlKSBpcyAxLjIzCitQQVNTIHZpZXcuZ2V0RmxvYXQ2NCg3LCBmYWxzZSkg
aXMgMS4yMworUEFTUyB2aWV3LmdldEZsb2F0NjQoMTAsIGZhbHNlKSBpcyAxLjIzCitQQVNTIHZp
ZXcuZ2V0RmxvYXQ2NCgwLCB0cnVlKSBpcyAtNjIxMzU3Ni40ODM5CitQQVNTIHZpZXcuZ2V0Rmxv
YXQ2NCgzLCB0cnVlKSBpcyAtNjIxMzU3Ni40ODM5CitQQVNTIHZpZXcuZ2V0RmxvYXQ2NCg3LCB0
cnVlKSBpcyAtNjIxMzU3Ni40ODM5CitQQVNTIHZpZXcuZ2V0RmxvYXQ2NCgxMCwgdHJ1ZSkgaXMg
LTYyMTM1NzYuNDgzOQorUEFTUyB2aWV3LmdldEZsb2F0NjQoMCwgZmFsc2UpIGlzIC02MjEzNTc2
LjQ4MzkKK1BBU1Mgdmlldy5nZXRGbG9hdDY0KDMsIGZhbHNlKSBpcyAtNjIxMzU3Ni40ODM5CitQ
QVNTIHZpZXcuZ2V0RmxvYXQ2NCg3LCBmYWxzZSkgaXMgLTYyMTM1NzYuNDgzOQorUEFTUyB2aWV3
LmdldEZsb2F0NjQoMTAsIGZhbHNlKSBpcyAtNjIxMzU3Ni40ODM5CitQQVNTIHZpZXcuZ2V0Rmxv
YXQ2NCgwLCB0cnVlKSBpcyBOYU4KK1BBU1Mgdmlldy5nZXRGbG9hdDY0KDMsIHRydWUpIGlzIE5h
TgorUEFTUyB2aWV3LmdldEZsb2F0NjQoNywgdHJ1ZSkgaXMgTmFOCitQQVNTIHZpZXcuZ2V0Rmxv
YXQ2NCgxMCwgdHJ1ZSkgaXMgTmFOCitQQVNTIHZpZXcuZ2V0RmxvYXQ2NCgwLCBmYWxzZSkgaXMg
TmFOCitQQVNTIHZpZXcuZ2V0RmxvYXQ2NCgzLCBmYWxzZSkgaXMgTmFOCitQQVNTIHZpZXcuZ2V0
RmxvYXQ2NCg3LCBmYWxzZSkgaXMgTmFOCitQQVNTIHZpZXcuZ2V0RmxvYXQ2NCgxMCwgZmFsc2Up
IGlzIE5hTgorUEFTUyB2aWV3LmdldEZsb2F0NjQoMCwgdHJ1ZSkgaXMgLU5hTgorUEFTUyB2aWV3
LmdldEZsb2F0NjQoMywgdHJ1ZSkgaXMgLU5hTgorUEFTUyB2aWV3LmdldEZsb2F0NjQoNywgdHJ1
ZSkgaXMgLU5hTgorUEFTUyB2aWV3LmdldEZsb2F0NjQoMTAsIHRydWUpIGlzIC1OYU4KK1BBU1Mg
dmlldy5nZXRGbG9hdDY0KDAsIGZhbHNlKSBpcyAtTmFOCitQQVNTIHZpZXcuZ2V0RmxvYXQ2NCgz
LCBmYWxzZSkgaXMgLU5hTgorUEFTUyB2aWV3LmdldEZsb2F0NjQoNywgZmFsc2UpIGlzIC1OYU4K
K1BBU1Mgdmlldy5nZXRGbG9hdDY0KDEwLCBmYWxzZSkgaXMgLU5hTgorCitUZXN0IGZvciBnZXQg
bWV0aG9kcyB0aGF0IG1pZ2h0IHJlYWQgYmV5b3VuZCByYW5nZQorUEFTUyB2aWV3LmdldEludDgo
MCkgaXMgMAorUEFTUyB2aWV3LmdldEludDgoOCkgdGhyZXcgZXhjZXB0aW9uIEVycm9yOiBJTkRF
WF9TSVpFX0VSUjogRE9NIEV4Y2VwdGlvbiAxLgorUEFTUyB2aWV3LmdldEludDgoMTUpIHRocmV3
IGV4Y2VwdGlvbiBFcnJvcjogSU5ERVhfU0laRV9FUlI6IERPTSBFeGNlcHRpb24gMS4KK1BBU1Mg
dmlldy5nZXRVaW50OCgwKSBpcyAwCitQQVNTIHZpZXcuZ2V0VWludDgoOCkgdGhyZXcgZXhjZXB0
aW9uIEVycm9yOiBJTkRFWF9TSVpFX0VSUjogRE9NIEV4Y2VwdGlvbiAxLgorUEFTUyB2aWV3Lmdl
dFVpbnQ4KDE1KSB0aHJldyBleGNlcHRpb24gRXJyb3I6IElOREVYX1NJWkVfRVJSOiBET00gRXhj
ZXB0aW9uIDEuCitQQVNTIHZpZXcuZ2V0SW50MTYoMCwgdHJ1ZSkgaXMgMjU2CitQQVNTIHZpZXcu
Z2V0SW50MTYoNSwgdHJ1ZSkgdGhyZXcgZXhjZXB0aW9uIEVycm9yOiBJTkRFWF9TSVpFX0VSUjog
RE9NIEV4Y2VwdGlvbiAxLgorUEFTUyB2aWV3LmdldEludDE2KDksIHRydWUpIHRocmV3IGV4Y2Vw
dGlvbiBFcnJvcjogSU5ERVhfU0laRV9FUlI6IERPTSBFeGNlcHRpb24gMS4KK1BBU1Mgdmlldy5n
ZXRJbnQxNigxNCwgdHJ1ZSkgdGhyZXcgZXhjZXB0aW9uIEVycm9yOiBJTkRFWF9TSVpFX0VSUjog
RE9NIEV4Y2VwdGlvbiAxLgorUEFTUyB2aWV3LmdldEludDE2KDApIGlzIDEKK1BBU1Mgdmlldy5n
ZXRJbnQxNig1KSB0aHJldyBleGNlcHRpb24gRXJyb3I6IElOREVYX1NJWkVfRVJSOiBET00gRXhj
ZXB0aW9uIDEuCitQQVNTIHZpZXcuZ2V0SW50MTYoOSkgdGhyZXcgZXhjZXB0aW9uIEVycm9yOiBJ
TkRFWF9TSVpFX0VSUjogRE9NIEV4Y2VwdGlvbiAxLgorUEFTUyB2aWV3LmdldEludDE2KDE0KSB0
aHJldyBleGNlcHRpb24gRXJyb3I6IElOREVYX1NJWkVfRVJSOiBET00gRXhjZXB0aW9uIDEuCitQ
QVNTIHZpZXcuZ2V0VWludDE2KDAsIHRydWUpIGlzIDI1NgorUEFTUyB2aWV3LmdldFVpbnQxNig1
LCB0cnVlKSB0aHJldyBleGNlcHRpb24gRXJyb3I6IElOREVYX1NJWkVfRVJSOiBET00gRXhjZXB0
aW9uIDEuCitQQVNTIHZpZXcuZ2V0VWludDE2KDksIHRydWUpIHRocmV3IGV4Y2VwdGlvbiBFcnJv
cjogSU5ERVhfU0laRV9FUlI6IERPTSBFeGNlcHRpb24gMS4KK1BBU1Mgdmlldy5nZXRVaW50MTYo
MTQsIHRydWUpIHRocmV3IGV4Y2VwdGlvbiBFcnJvcjogSU5ERVhfU0laRV9FUlI6IERPTSBFeGNl
cHRpb24gMS4KK1BBU1Mgdmlldy5nZXRVaW50MTYoMCkgaXMgMQorUEFTUyB2aWV3LmdldFVpbnQx
Nig1KSB0aHJldyBleGNlcHRpb24gRXJyb3I6IElOREVYX1NJWkVfRVJSOiBET00gRXhjZXB0aW9u
IDEuCitQQVNTIHZpZXcuZ2V0VWludDE2KDkpIHRocmV3IGV4Y2VwdGlvbiBFcnJvcjogSU5ERVhf
U0laRV9FUlI6IERPTSBFeGNlcHRpb24gMS4KK1BBU1Mgdmlldy5nZXRVaW50MTYoMTQpIHRocmV3
IGV4Y2VwdGlvbiBFcnJvcjogSU5ERVhfU0laRV9FUlI6IERPTSBFeGNlcHRpb24gMS4KK1BBU1Mg
dmlldy5nZXRJbnQzMigwLCB0cnVlKSB0aHJldyBleGNlcHRpb24gRXJyb3I6IElOREVYX1NJWkVf
RVJSOiBET00gRXhjZXB0aW9uIDEuCitQQVNTIHZpZXcuZ2V0SW50MzIoMywgdHJ1ZSkgdGhyZXcg
ZXhjZXB0aW9uIEVycm9yOiBJTkRFWF9TSVpFX0VSUjogRE9NIEV4Y2VwdGlvbiAxLgorUEFTUyB2
aWV3LmdldEludDMyKDYsIHRydWUpIHRocmV3IGV4Y2VwdGlvbiBFcnJvcjogSU5ERVhfU0laRV9F
UlI6IERPTSBFeGNlcHRpb24gMS4KK1BBU1Mgdmlldy5nZXRJbnQzMig5LCB0cnVlKSB0aHJldyBl
eGNlcHRpb24gRXJyb3I6IElOREVYX1NJWkVfRVJSOiBET00gRXhjZXB0aW9uIDEuCitQQVNTIHZp
ZXcuZ2V0SW50MzIoMTIsIHRydWUpIHRocmV3IGV4Y2VwdGlvbiBFcnJvcjogSU5ERVhfU0laRV9F
UlI6IERPTSBFeGNlcHRpb24gMS4KK1BBU1Mgdmlldy5nZXRJbnQzMigwKSB0aHJldyBleGNlcHRp
b24gRXJyb3I6IElOREVYX1NJWkVfRVJSOiBET00gRXhjZXB0aW9uIDEuCitQQVNTIHZpZXcuZ2V0
SW50MzIoMykgdGhyZXcgZXhjZXB0aW9uIEVycm9yOiBJTkRFWF9TSVpFX0VSUjogRE9NIEV4Y2Vw
dGlvbiAxLgorUEFTUyB2aWV3LmdldEludDMyKDYpIHRocmV3IGV4Y2VwdGlvbiBFcnJvcjogSU5E
RVhfU0laRV9FUlI6IERPTSBFeGNlcHRpb24gMS4KK1BBU1Mgdmlldy5nZXRJbnQzMig5KSB0aHJl
dyBleGNlcHRpb24gRXJyb3I6IElOREVYX1NJWkVfRVJSOiBET00gRXhjZXB0aW9uIDEuCitQQVNT
IHZpZXcuZ2V0SW50MzIoMTIpIHRocmV3IGV4Y2VwdGlvbiBFcnJvcjogSU5ERVhfU0laRV9FUlI6
IERPTSBFeGNlcHRpb24gMS4KK1BBU1Mgdmlldy5nZXRVaW50MzIoMCwgdHJ1ZSkgdGhyZXcgZXhj
ZXB0aW9uIEVycm9yOiBJTkRFWF9TSVpFX0VSUjogRE9NIEV4Y2VwdGlvbiAxLgorUEFTUyB2aWV3
LmdldFVpbnQzMigzLCB0cnVlKSB0aHJldyBleGNlcHRpb24gRXJyb3I6IElOREVYX1NJWkVfRVJS
OiBET00gRXhjZXB0aW9uIDEuCitQQVNTIHZpZXcuZ2V0VWludDMyKDYsIHRydWUpIHRocmV3IGV4
Y2VwdGlvbiBFcnJvcjogSU5ERVhfU0laRV9FUlI6IERPTSBFeGNlcHRpb24gMS4KK1BBU1Mgdmll
dy5nZXRVaW50MzIoOSwgdHJ1ZSkgdGhyZXcgZXhjZXB0aW9uIEVycm9yOiBJTkRFWF9TSVpFX0VS
UjogRE9NIEV4Y2VwdGlvbiAxLgorUEFTUyB2aWV3LmdldFVpbnQzMigxMiwgdHJ1ZSkgdGhyZXcg
ZXhjZXB0aW9uIEVycm9yOiBJTkRFWF9TSVpFX0VSUjogRE9NIEV4Y2VwdGlvbiAxLgorUEFTUyB2
aWV3LmdldFVpbnQzMigwKSB0aHJldyBleGNlcHRpb24gRXJyb3I6IElOREVYX1NJWkVfRVJSOiBE
T00gRXhjZXB0aW9uIDEuCitQQVNTIHZpZXcuZ2V0VWludDMyKDMpIHRocmV3IGV4Y2VwdGlvbiBF
cnJvcjogSU5ERVhfU0laRV9FUlI6IERPTSBFeGNlcHRpb24gMS4KK1BBU1Mgdmlldy5nZXRVaW50
MzIoNikgdGhyZXcgZXhjZXB0aW9uIEVycm9yOiBJTkRFWF9TSVpFX0VSUjogRE9NIEV4Y2VwdGlv
biAxLgorUEFTUyB2aWV3LmdldFVpbnQzMig5KSB0aHJldyBleGNlcHRpb24gRXJyb3I6IElOREVY
X1NJWkVfRVJSOiBET00gRXhjZXB0aW9uIDEuCitQQVNTIHZpZXcuZ2V0VWludDMyKDEyKSB0aHJl
dyBleGNlcHRpb24gRXJyb3I6IElOREVYX1NJWkVfRVJSOiBET00gRXhjZXB0aW9uIDEuCitQQVNT
IHZpZXcuZ2V0RmxvYXQzMigwLCB0cnVlKSB0aHJldyBleGNlcHRpb24gRXJyb3I6IElOREVYX1NJ
WkVfRVJSOiBET00gRXhjZXB0aW9uIDEuCitQQVNTIHZpZXcuZ2V0RmxvYXQzMigzLCB0cnVlKSB0
aHJldyBleGNlcHRpb24gRXJyb3I6IElOREVYX1NJWkVfRVJSOiBET00gRXhjZXB0aW9uIDEuCitQ
QVNTIHZpZXcuZ2V0RmxvYXQzMig3LCB0cnVlKSB0aHJldyBleGNlcHRpb24gRXJyb3I6IElOREVY
X1NJWkVfRVJSOiBET00gRXhjZXB0aW9uIDEuCitQQVNTIHZpZXcuZ2V0RmxvYXQzMigxMCwgdHJ1
ZSkgdGhyZXcgZXhjZXB0aW9uIEVycm9yOiBJTkRFWF9TSVpFX0VSUjogRE9NIEV4Y2VwdGlvbiAx
LgorUEFTUyB2aWV3LmdldEZsb2F0MzIoMCwgZmFsc2UpIGlzIDEwCitQQVNTIHZpZXcuZ2V0Rmxv
YXQzMigzLCBmYWxzZSkgaXMgMTAKK1BBU1Mgdmlldy5nZXRGbG9hdDMyKDcsIGZhbHNlKSBpcyAx
MAorUEFTUyB2aWV3LmdldEZsb2F0MzIoMTAsIGZhbHNlKSBpcyAxMAorUEFTUyB2aWV3LmdldEZs
b2F0MzIoMCwgdHJ1ZSkgdGhyZXcgZXhjZXB0aW9uIEVycm9yOiBJTkRFWF9TSVpFX0VSUjogRE9N
IEV4Y2VwdGlvbiAxLgorUEFTUyB2aWV3LmdldEZsb2F0MzIoMywgdHJ1ZSkgdGhyZXcgZXhjZXB0
aW9uIEVycm9yOiBJTkRFWF9TSVpFX0VSUjogRE9NIEV4Y2VwdGlvbiAxLgorUEFTUyB2aWV3Lmdl
dEZsb2F0MzIoNywgdHJ1ZSkgdGhyZXcgZXhjZXB0aW9uIEVycm9yOiBJTkRFWF9TSVpFX0VSUjog
RE9NIEV4Y2VwdGlvbiAxLgorUEFTUyB2aWV3LmdldEZsb2F0MzIoMTAsIHRydWUpIHRocmV3IGV4
Y2VwdGlvbiBFcnJvcjogSU5ERVhfU0laRV9FUlI6IERPTSBFeGNlcHRpb24gMS4KK1BBU1Mgdmll
dy5nZXRGbG9hdDMyKDAsIGZhbHNlKSBpcyAxLjIzMDAwMDAxOTA3MzQ4NjMKK1BBU1Mgdmlldy5n
ZXRGbG9hdDMyKDMsIGZhbHNlKSBpcyAxLjIzMDAwMDAxOTA3MzQ4NjMKK1BBU1Mgdmlldy5nZXRG
bG9hdDMyKDcsIGZhbHNlKSBpcyAxLjIzMDAwMDAxOTA3MzQ4NjMKK1BBU1Mgdmlldy5nZXRGbG9h
dDMyKDEwLCBmYWxzZSkgaXMgMS4yMzAwMDAwMTkwNzM0ODYzCitQQVNTIHZpZXcuZ2V0RmxvYXQz
MigwLCB0cnVlKSB0aHJldyBleGNlcHRpb24gRXJyb3I6IElOREVYX1NJWkVfRVJSOiBET00gRXhj
ZXB0aW9uIDEuCitQQVNTIHZpZXcuZ2V0RmxvYXQzMigzLCB0cnVlKSB0aHJldyBleGNlcHRpb24g
RXJyb3I6IElOREVYX1NJWkVfRVJSOiBET00gRXhjZXB0aW9uIDEuCitQQVNTIHZpZXcuZ2V0Rmxv
YXQzMig3LCB0cnVlKSB0aHJldyBleGNlcHRpb24gRXJyb3I6IElOREVYX1NJWkVfRVJSOiBET00g
RXhjZXB0aW9uIDEuCitQQVNTIHZpZXcuZ2V0RmxvYXQzMigxMCwgdHJ1ZSkgdGhyZXcgZXhjZXB0
aW9uIEVycm9yOiBJTkRFWF9TSVpFX0VSUjogRE9NIEV4Y2VwdGlvbiAxLgorUEFTUyB2aWV3Lmdl
dEZsb2F0MzIoMCwgZmFsc2UpIGlzIC00NTYyMS4zNzEwOTM3NQorUEFTUyB2aWV3LmdldEZsb2F0
MzIoMywgZmFsc2UpIGlzIC00NTYyMS4zNzEwOTM3NQorUEFTUyB2aWV3LmdldEZsb2F0MzIoNywg
ZmFsc2UpIGlzIC00NTYyMS4zNzEwOTM3NQorUEFTUyB2aWV3LmdldEZsb2F0MzIoMTAsIGZhbHNl
KSBpcyAtNDU2MjEuMzcxMDkzNzUKK1BBU1Mgdmlldy5nZXRGbG9hdDMyKDAsIHRydWUpIHRocmV3
IGV4Y2VwdGlvbiBFcnJvcjogSU5ERVhfU0laRV9FUlI6IERPTSBFeGNlcHRpb24gMS4KK1BBU1Mg
dmlldy5nZXRGbG9hdDMyKDMsIHRydWUpIHRocmV3IGV4Y2VwdGlvbiBFcnJvcjogSU5ERVhfU0la
RV9FUlI6IERPTSBFeGNlcHRpb24gMS4KK1BBU1Mgdmlldy5nZXRGbG9hdDMyKDcsIHRydWUpIHRo
cmV3IGV4Y2VwdGlvbiBFcnJvcjogSU5ERVhfU0laRV9FUlI6IERPTSBFeGNlcHRpb24gMS4KK1BB
U1Mgdmlldy5nZXRGbG9hdDMyKDEwLCB0cnVlKSB0aHJldyBleGNlcHRpb24gRXJyb3I6IElOREVY
X1NJWkVfRVJSOiBET00gRXhjZXB0aW9uIDEuCitQQVNTIHZpZXcuZ2V0RmxvYXQzMigwLCBmYWxz
ZSkgaXMgTmFOCitQQVNTIHZpZXcuZ2V0RmxvYXQzMigzLCBmYWxzZSkgaXMgTmFOCitQQVNTIHZp
ZXcuZ2V0RmxvYXQzMig3LCBmYWxzZSkgaXMgTmFOCitQQVNTIHZpZXcuZ2V0RmxvYXQzMigxMCwg
ZmFsc2UpIGlzIE5hTgorUEFTUyB2aWV3LmdldEZsb2F0MzIoMCwgdHJ1ZSkgdGhyZXcgZXhjZXB0
aW9uIEVycm9yOiBJTkRFWF9TSVpFX0VSUjogRE9NIEV4Y2VwdGlvbiAxLgorUEFTUyB2aWV3Lmdl
dEZsb2F0MzIoMywgdHJ1ZSkgdGhyZXcgZXhjZXB0aW9uIEVycm9yOiBJTkRFWF9TSVpFX0VSUjog
RE9NIEV4Y2VwdGlvbiAxLgorUEFTUyB2aWV3LmdldEZsb2F0MzIoNywgdHJ1ZSkgdGhyZXcgZXhj
ZXB0aW9uIEVycm9yOiBJTkRFWF9TSVpFX0VSUjogRE9NIEV4Y2VwdGlvbiAxLgorUEFTUyB2aWV3
LmdldEZsb2F0MzIoMTAsIHRydWUpIHRocmV3IGV4Y2VwdGlvbiBFcnJvcjogSU5ERVhfU0laRV9F
UlI6IERPTSBFeGNlcHRpb24gMS4KK1BBU1Mgdmlldy5nZXRGbG9hdDMyKDAsIGZhbHNlKSBpcyAt
TmFOCitQQVNTIHZpZXcuZ2V0RmxvYXQzMigzLCBmYWxzZSkgaXMgLU5hTgorUEFTUyB2aWV3Lmdl
dEZsb2F0MzIoNywgZmFsc2UpIGlzIC1OYU4KK1BBU1Mgdmlldy5nZXRGbG9hdDMyKDEwLCBmYWxz
ZSkgaXMgLU5hTgorUEFTUyB2aWV3LmdldEZsb2F0NjQoMCwgdHJ1ZSkgdGhyZXcgZXhjZXB0aW9u
IEVycm9yOiBJTkRFWF9TSVpFX0VSUjogRE9NIEV4Y2VwdGlvbiAxLgorUEFTUyB2aWV3LmdldEZs
b2F0NjQoMywgdHJ1ZSkgdGhyZXcgZXhjZXB0aW9uIEVycm9yOiBJTkRFWF9TSVpFX0VSUjogRE9N
IEV4Y2VwdGlvbiAxLgorUEFTUyB2aWV3LmdldEZsb2F0NjQoNywgdHJ1ZSkgdGhyZXcgZXhjZXB0
aW9uIEVycm9yOiBJTkRFWF9TSVpFX0VSUjogRE9NIEV4Y2VwdGlvbiAxLgorUEFTUyB2aWV3Lmdl
dEZsb2F0NjQoMTAsIHRydWUpIHRocmV3IGV4Y2VwdGlvbiBFcnJvcjogSU5ERVhfU0laRV9FUlI6
IERPTSBFeGNlcHRpb24gMS4KK1BBU1Mgdmlldy5nZXRGbG9hdDY0KDAsIGZhbHNlKSBpcyAxMAor
UEFTUyB2aWV3LmdldEZsb2F0NjQoMywgZmFsc2UpIGlzIDEwCitQQVNTIHZpZXcuZ2V0RmxvYXQ2
NCg3LCBmYWxzZSkgaXMgMTAKK1BBU1Mgdmlldy5nZXRGbG9hdDY0KDEwLCBmYWxzZSkgaXMgMTAK
K1BBU1Mgdmlldy5nZXRGbG9hdDY0KDAsIHRydWUpIHRocmV3IGV4Y2VwdGlvbiBFcnJvcjogSU5E
RVhfU0laRV9FUlI6IERPTSBFeGNlcHRpb24gMS4KK1BBU1Mgdmlldy5nZXRGbG9hdDY0KDMsIHRy
dWUpIHRocmV3IGV4Y2VwdGlvbiBFcnJvcjogSU5ERVhfU0laRV9FUlI6IERPTSBFeGNlcHRpb24g
MS4KK1BBU1Mgdmlldy5nZXRGbG9hdDY0KDcsIHRydWUpIHRocmV3IGV4Y2VwdGlvbiBFcnJvcjog
SU5ERVhfU0laRV9FUlI6IERPTSBFeGNlcHRpb24gMS4KK1BBU1Mgdmlldy5nZXRGbG9hdDY0KDEw
LCB0cnVlKSB0aHJldyBleGNlcHRpb24gRXJyb3I6IElOREVYX1NJWkVfRVJSOiBET00gRXhjZXB0
aW9uIDEuCitQQVNTIHZpZXcuZ2V0RmxvYXQ2NCgwLCBmYWxzZSkgaXMgMS4yMworUEFTUyB2aWV3
LmdldEZsb2F0NjQoMywgZmFsc2UpIGlzIDEuMjMKK1BBU1Mgdmlldy5nZXRGbG9hdDY0KDcsIGZh
bHNlKSBpcyAxLjIzCitQQVNTIHZpZXcuZ2V0RmxvYXQ2NCgxMCwgZmFsc2UpIGlzIDEuMjMKK1BB
U1Mgdmlldy5nZXRGbG9hdDY0KDAsIHRydWUpIHRocmV3IGV4Y2VwdGlvbiBFcnJvcjogSU5ERVhf
U0laRV9FUlI6IERPTSBFeGNlcHRpb24gMS4KK1BBU1Mgdmlldy5nZXRGbG9hdDY0KDMsIHRydWUp
IHRocmV3IGV4Y2VwdGlvbiBFcnJvcjogSU5ERVhfU0laRV9FUlI6IERPTSBFeGNlcHRpb24gMS4K
K1BBU1Mgdmlldy5nZXRGbG9hdDY0KDcsIHRydWUpIHRocmV3IGV4Y2VwdGlvbiBFcnJvcjogSU5E
RVhfU0laRV9FUlI6IERPTSBFeGNlcHRpb24gMS4KK1BBU1Mgdmlldy5nZXRGbG9hdDY0KDEwLCB0
cnVlKSB0aHJldyBleGNlcHRpb24gRXJyb3I6IElOREVYX1NJWkVfRVJSOiBET00gRXhjZXB0aW9u
IDEuCitQQVNTIHZpZXcuZ2V0RmxvYXQ2NCgwLCBmYWxzZSkgaXMgLTYyMTM1NzYuNDgzOQorUEFT
UyB2aWV3LmdldEZsb2F0NjQoMywgZmFsc2UpIGlzIC02MjEzNTc2LjQ4MzkKK1BBU1Mgdmlldy5n
ZXRGbG9hdDY0KDcsIGZhbHNlKSBpcyAtNjIxMzU3Ni40ODM5CitQQVNTIHZpZXcuZ2V0RmxvYXQ2
NCgxMCwgZmFsc2UpIGlzIC02MjEzNTc2LjQ4MzkKK1BBU1Mgdmlldy5nZXRGbG9hdDY0KDAsIHRy
dWUpIHRocmV3IGV4Y2VwdGlvbiBFcnJvcjogSU5ERVhfU0laRV9FUlI6IERPTSBFeGNlcHRpb24g
MS4KK1BBU1Mgdmlldy5nZXRGbG9hdDY0KDMsIHRydWUpIHRocmV3IGV4Y2VwdGlvbiBFcnJvcjog
SU5ERVhfU0laRV9FUlI6IERPTSBFeGNlcHRpb24gMS4KK1BBU1Mgdmlldy5nZXRGbG9hdDY0KDcs
IHRydWUpIHRocmV3IGV4Y2VwdGlvbiBFcnJvcjogSU5ERVhfU0laRV9FUlI6IERPTSBFeGNlcHRp
b24gMS4KK1BBU1Mgdmlldy5nZXRGbG9hdDY0KDEwLCB0cnVlKSB0aHJldyBleGNlcHRpb24gRXJy
b3I6IElOREVYX1NJWkVfRVJSOiBET00gRXhjZXB0aW9uIDEuCitQQVNTIHZpZXcuZ2V0RmxvYXQ2
NCgwLCBmYWxzZSkgaXMgTmFOCitQQVNTIHZpZXcuZ2V0RmxvYXQ2NCgzLCBmYWxzZSkgaXMgTmFO
CitQQVNTIHZpZXcuZ2V0RmxvYXQ2NCg3LCBmYWxzZSkgaXMgTmFOCitQQVNTIHZpZXcuZ2V0Rmxv
YXQ2NCgxMCwgZmFsc2UpIGlzIE5hTgorUEFTUyB2aWV3LmdldEZsb2F0NjQoMCwgdHJ1ZSkgdGhy
ZXcgZXhjZXB0aW9uIEVycm9yOiBJTkRFWF9TSVpFX0VSUjogRE9NIEV4Y2VwdGlvbiAxLgorUEFT
UyB2aWV3LmdldEZsb2F0NjQoMywgdHJ1ZSkgdGhyZXcgZXhjZXB0aW9uIEVycm9yOiBJTkRFWF9T
SVpFX0VSUjogRE9NIEV4Y2VwdGlvbiAxLgorUEFTUyB2aWV3LmdldEZsb2F0NjQoNywgdHJ1ZSkg
dGhyZXcgZXhjZXB0aW9uIEVycm9yOiBJTkRFWF9TSVpFX0VSUjogRE9NIEV4Y2VwdGlvbiAxLgor
UEFTUyB2aWV3LmdldEZsb2F0NjQoMTAsIHRydWUpIHRocmV3IGV4Y2VwdGlvbiBFcnJvcjogSU5E
RVhfU0laRV9FUlI6IERPTSBFeGNlcHRpb24gMS4KK1BBU1Mgdmlldy5nZXRGbG9hdDY0KDAsIGZh
bHNlKSBpcyAtTmFOCitQQVNTIHZpZXcuZ2V0RmxvYXQ2NCgzLCBmYWxzZSkgaXMgLU5hTgorUEFT
UyB2aWV3LmdldEZsb2F0NjQoNywgZmFsc2UpIGlzIC1OYU4KK1BBU1Mgdmlldy5nZXRGbG9hdDY0
KDEwLCBmYWxzZSkgaXMgLU5hTgorCitUZXN0IGZvciB3cm9uZyBhcmd1bWVudHMgcGFzc2VkIHRv
IGdldCBtZXRob2RzCitQQVNTIHZpZXcuZ2V0SW50OCgpIHRocmV3IGV4Y2VwdGlvbiBTeW50YXhF
cnJvcjogTm90IGVub3VnaCBhcmd1bWVudHMuCitQQVNTIHZpZXcuZ2V0VWludDgoKSB0aHJldyBl
eGNlcHRpb24gU3ludGF4RXJyb3I6IE5vdCBlbm91Z2ggYXJndW1lbnRzLgorUEFTUyB2aWV3Lmdl
dEludDE2KCkgdGhyZXcgZXhjZXB0aW9uIFN5bnRheEVycm9yOiBOb3QgZW5vdWdoIGFyZ3VtZW50
cy4KK1BBU1Mgdmlldy5nZXRVaW50MTYoKSB0aHJldyBleGNlcHRpb24gU3ludGF4RXJyb3I6IE5v
dCBlbm91Z2ggYXJndW1lbnRzLgorUEFTUyB2aWV3LmdldEludDMyKCkgdGhyZXcgZXhjZXB0aW9u
IFN5bnRheEVycm9yOiBOb3QgZW5vdWdoIGFyZ3VtZW50cy4KK1BBU1Mgdmlldy5nZXRVaW50MzIo
KSB0aHJldyBleGNlcHRpb24gU3ludGF4RXJyb3I6IE5vdCBlbm91Z2ggYXJndW1lbnRzLgorUEFT
UyB2aWV3LmdldEZsb2F0MzIoKSB0aHJldyBleGNlcHRpb24gU3ludGF4RXJyb3I6IE5vdCBlbm91
Z2ggYXJndW1lbnRzLgorUEFTUyB2aWV3LmdldEZsb2F0NjQoKSB0aHJldyBleGNlcHRpb24gU3lu
dGF4RXJyb3I6IE5vdCBlbm91Z2ggYXJndW1lbnRzLgorCitUZXN0IGZvciBzZXQgbWV0aG9kcyB0
aGF0IHdvcmsKK1BBU1Mgdmlldy5zZXRJbnQ4KDAsIDApIGlzIHVuZGVmaW5lZC4KK1BBU1Mgdmll
dy5nZXRJbnQ4KDApIGlzIDAKK1BBU1Mgdmlldy5zZXRJbnQ4KDgsIC0xMjgpIGlzIHVuZGVmaW5l
ZC4KK1BBU1Mgdmlldy5nZXRJbnQ4KDgpIGlzIC0xMjgKK1BBU1Mgdmlldy5zZXRJbnQ4KDE1LCAt
MSkgaXMgdW5kZWZpbmVkLgorUEFTUyB2aWV3LmdldEludDgoMTUpIGlzIC0xCitQQVNTIHZpZXcu
c2V0VWludDgoMCwgMCkgaXMgdW5kZWZpbmVkLgorUEFTUyB2aWV3LmdldFVpbnQ4KDApIGlzIDAK
K1BBU1Mgdmlldy5zZXRVaW50OCg4LCAxMjgpIGlzIHVuZGVmaW5lZC4KK1BBU1Mgdmlldy5nZXRV
aW50OCg4KSBpcyAxMjgKK1BBU1Mgdmlldy5zZXRVaW50OCgxNSwgMjU1KSBpcyB1bmRlZmluZWQu
CitQQVNTIHZpZXcuZ2V0VWludDgoMTUpIGlzIDI1NQorUEFTUyB2aWV3LnNldEludDE2KDAsIDI1
NiwgdHJ1ZSkgaXMgdW5kZWZpbmVkLgorUEFTUyB2aWV3LmdldEludDE2KDAsIHRydWUpIGlzIDI1
NgorUEFTUyB2aWV3LnNldEludDE2KDUsIDI2MjEzLCB0cnVlKSBpcyB1bmRlZmluZWQuCitQQVNT
IHZpZXcuZ2V0SW50MTYoNSwgdHJ1ZSkgaXMgMjYyMTMKK1BBU1Mgdmlldy5zZXRJbnQxNig5LCAt
MzIxMjcsIHRydWUpIGlzIHVuZGVmaW5lZC4KK1BBU1Mgdmlldy5nZXRJbnQxNig5LCB0cnVlKSBp
cyAtMzIxMjcKK1BBU1Mgdmlldy5zZXRJbnQxNigxNCwgLTIsIHRydWUpIGlzIHVuZGVmaW5lZC4K
K1BBU1Mgdmlldy5nZXRJbnQxNigxNCwgdHJ1ZSkgaXMgLTIKK1BBU1Mgdmlldy5zZXRJbnQxNigw
LCAxKSBpcyB1bmRlZmluZWQuCitQQVNTIHZpZXcuZ2V0SW50MTYoMCkgaXMgMQorUEFTUyB2aWV3
LnNldEludDE2KDUsIDI1OTU4KSBpcyB1bmRlZmluZWQuCitQQVNTIHZpZXcuZ2V0SW50MTYoNSkg
aXMgMjU5NTgKK1BBU1Mgdmlldy5zZXRJbnQxNig5LCAtMzIzODIpIGlzIHVuZGVmaW5lZC4KK1BB
U1Mgdmlldy5nZXRJbnQxNig5KSBpcyAtMzIzODIKK1BBU1Mgdmlldy5zZXRJbnQxNigxNCwgLTI1
NykgaXMgdW5kZWZpbmVkLgorUEFTUyB2aWV3LmdldEludDE2KDE0KSBpcyAtMjU3CitQQVNTIHZp
ZXcuc2V0VWludDE2KDAsIDI1NiwgdHJ1ZSkgaXMgdW5kZWZpbmVkLgorUEFTUyB2aWV3LmdldFVp
bnQxNigwLCB0cnVlKSBpcyAyNTYKK1BBU1Mgdmlldy5zZXRVaW50MTYoNSwgMjYyMTMsIHRydWUp
IGlzIHVuZGVmaW5lZC4KK1BBU1Mgdmlldy5nZXRVaW50MTYoNSwgdHJ1ZSkgaXMgMjYyMTMKK1BB
U1Mgdmlldy5zZXRVaW50MTYoOSwgMzM0MDksIHRydWUpIGlzIHVuZGVmaW5lZC4KK1BBU1Mgdmll
dy5nZXRVaW50MTYoOSwgdHJ1ZSkgaXMgMzM0MDkKK1BBU1Mgdmlldy5zZXRVaW50MTYoMTQsIDY1
NTM0LCB0cnVlKSBpcyB1bmRlZmluZWQuCitQQVNTIHZpZXcuZ2V0VWludDE2KDE0LCB0cnVlKSBp
cyA2NTUzNAorUEFTUyB2aWV3LnNldFVpbnQxNigwLCAxKSBpcyB1bmRlZmluZWQuCitQQVNTIHZp
ZXcuZ2V0VWludDE2KDApIGlzIDEKK1BBU1Mgdmlldy5zZXRVaW50MTYoNSwgMjU5NTgpIGlzIHVu
ZGVmaW5lZC4KK1BBU1Mgdmlldy5nZXRVaW50MTYoNSkgaXMgMjU5NTgKK1BBU1Mgdmlldy5zZXRV
aW50MTYoOSwgMzMxNTQpIGlzIHVuZGVmaW5lZC4KK1BBU1Mgdmlldy5nZXRVaW50MTYoOSkgaXMg
MzMxNTQKK1BBU1Mgdmlldy5zZXRVaW50MTYoMTQsIDY1Mjc5KSBpcyB1bmRlZmluZWQuCitQQVNT
IHZpZXcuZ2V0VWludDE2KDE0KSBpcyA2NTI3OQorUEFTUyB2aWV3LnNldEludDMyKDAsIDUwNDYy
OTc2LCB0cnVlKSBpcyB1bmRlZmluZWQuCitQQVNTIHZpZXcuZ2V0SW50MzIoMCwgdHJ1ZSkgaXMg
NTA0NjI5NzYKK1BBU1Mgdmlldy5zZXRJbnQzMigzLCAxNzE3OTIwNzcxLCB0cnVlKSBpcyB1bmRl
ZmluZWQuCitQQVNTIHZpZXcuZ2V0SW50MzIoMywgdHJ1ZSkgaXMgMTcxNzkyMDc3MQorUEFTUyB2
aWV3LnNldEludDMyKDYsIC0yMTIyMjkxMzU0LCB0cnVlKSBpcyB1bmRlZmluZWQuCitQQVNTIHZp
ZXcuZ2V0SW50MzIoNiwgdHJ1ZSkgaXMgLTIxMjIyOTEzNTQKK1BBU1Mgdmlldy5zZXRJbnQzMig5
LCAtNTg0OTAyMzksIHRydWUpIGlzIHVuZGVmaW5lZC4KK1BBU1Mgdmlldy5nZXRJbnQzMig5LCB0
cnVlKSBpcyAtNTg0OTAyMzkKK1BBU1Mgdmlldy5zZXRJbnQzMigxMiwgLTY2MDUyLCB0cnVlKSBp
cyB1bmRlZmluZWQuCitQQVNTIHZpZXcuZ2V0SW50MzIoMTIsIHRydWUpIGlzIC02NjA1MgorUEFT
UyB2aWV3LnNldEludDMyKDAsIDY2MDUxKSBpcyB1bmRlZmluZWQuCitQQVNTIHZpZXcuZ2V0SW50
MzIoMCkgaXMgNjYwNTEKK1BBU1Mgdmlldy5zZXRJbnQzMigzLCA1NjkxMTIwNikgaXMgdW5kZWZp
bmVkLgorUEFTUyB2aWV3LmdldEludDMyKDMpIGlzIDU2OTExMjA2CitQQVNTIHZpZXcuc2V0SW50
MzIoNiwgMTcxODA1OTEzNykgaXMgdW5kZWZpbmVkLgorUEFTUyB2aWV3LmdldEludDMyKDYpIGlz
IDE3MTgwNTkxMzcKK1BBU1Mgdmlldy5zZXRJbnQzMig5LCAtMjEyMjE1Mjk2NCkgaXMgdW5kZWZp
bmVkLgorUEFTUyB2aWV3LmdldEludDMyKDkpIGlzIC0yMTIyMTUyOTY0CitQQVNTIHZpZXcuc2V0
SW50MzIoMTIsIC01MDQ2Mjk3NykgaXMgdW5kZWZpbmVkLgorUEFTUyB2aWV3LmdldEludDMyKDEy
KSBpcyAtNTA0NjI5NzcKK1BBU1Mgdmlldy5zZXRVaW50MzIoMCwgNTA0NjI5NzYsIHRydWUpIGlz
IHVuZGVmaW5lZC4KK1BBU1Mgdmlldy5nZXRVaW50MzIoMCwgdHJ1ZSkgaXMgNTA0NjI5NzYKK1BB
U1Mgdmlldy5zZXRVaW50MzIoMywgMTcxNzkyMDc3MSwgdHJ1ZSkgaXMgdW5kZWZpbmVkLgorUEFT
UyB2aWV3LmdldFVpbnQzMigzLCB0cnVlKSBpcyAxNzE3OTIwNzcxCitQQVNTIHZpZXcuc2V0VWlu
dDMyKDYsIDIxNzI2NzU5NDIsIHRydWUpIGlzIHVuZGVmaW5lZC4KK1BBU1Mgdmlldy5nZXRVaW50
MzIoNiwgdHJ1ZSkgaXMgMjE3MjY3NTk0MgorUEFTUyB2aWV3LnNldFVpbnQzMig5LCA0MjM2NDc3
MDU3LCB0cnVlKSBpcyB1bmRlZmluZWQuCitQQVNTIHZpZXcuZ2V0VWludDMyKDksIHRydWUpIGlz
IDQyMzY0NzcwNTcKK1BBU1Mgdmlldy5zZXRVaW50MzIoMTIsIDQyOTQ5MDEyNDQsIHRydWUpIGlz
IHVuZGVmaW5lZC4KK1BBU1Mgdmlldy5nZXRVaW50MzIoMTIsIHRydWUpIGlzIDQyOTQ5MDEyNDQK
K1BBU1Mgdmlldy5zZXRVaW50MzIoMCwgNjYwNTEpIGlzIHVuZGVmaW5lZC4KK1BBU1Mgdmlldy5n
ZXRVaW50MzIoMCkgaXMgNjYwNTEKK1BBU1Mgdmlldy5zZXRVaW50MzIoMywgNTY5MTEyMDYpIGlz
IHVuZGVmaW5lZC4KK1BBU1Mgdmlldy5nZXRVaW50MzIoMykgaXMgNTY5MTEyMDYKK1BBU1Mgdmll
dy5zZXRVaW50MzIoNiwgMTcxODA1OTEzNykgaXMgdW5kZWZpbmVkLgorUEFTUyB2aWV3LmdldFVp
bnQzMig2KSBpcyAxNzE4MDU5MTM3CitQQVNTIHZpZXcuc2V0VWludDMyKDksIDIxNzI4MTQzMzIp
IGlzIHVuZGVmaW5lZC4KK1BBU1Mgdmlldy5nZXRVaW50MzIoOSkgaXMgMjE3MjgxNDMzMgorUEFT
UyB2aWV3LnNldFVpbnQzMigxMiwgNDI0NDUwNDMxOSkgaXMgdW5kZWZpbmVkLgorUEFTUyB2aWV3
LmdldFVpbnQzMigxMikgaXMgNDI0NDUwNDMxOQorUEFTUyB2aWV3LnNldEZsb2F0MzIoMCwgMTAs
IHRydWUpIGlzIHVuZGVmaW5lZC4KK1BBU1Mgdmlldy5nZXRGbG9hdDMyKDAsIHRydWUpIGlzIDEw
CitQQVNTIHZpZXcuc2V0RmxvYXQzMigzLCAxMCwgdHJ1ZSkgaXMgdW5kZWZpbmVkLgorUEFTUyB2
aWV3LmdldEZsb2F0MzIoMywgdHJ1ZSkgaXMgMTAKK1BBU1Mgdmlldy5zZXRGbG9hdDMyKDcsIDEw
LCB0cnVlKSBpcyB1bmRlZmluZWQuCitQQVNTIHZpZXcuZ2V0RmxvYXQzMig3LCB0cnVlKSBpcyAx
MAorUEFTUyB2aWV3LnNldEZsb2F0MzIoMTAsIDEwLCB0cnVlKSBpcyB1bmRlZmluZWQuCitQQVNT
IHZpZXcuZ2V0RmxvYXQzMigxMCwgdHJ1ZSkgaXMgMTAKK1BBU1Mgdmlldy5zZXRGbG9hdDMyKDAs
IDEwLCBmYWxzZSkgaXMgdW5kZWZpbmVkLgorUEFTUyB2aWV3LmdldEZsb2F0MzIoMCwgZmFsc2Up
IGlzIDEwCitQQVNTIHZpZXcuc2V0RmxvYXQzMigzLCAxMCwgZmFsc2UpIGlzIHVuZGVmaW5lZC4K
K1BBU1Mgdmlldy5nZXRGbG9hdDMyKDMsIGZhbHNlKSBpcyAxMAorUEFTUyB2aWV3LnNldEZsb2F0
MzIoNywgMTAsIGZhbHNlKSBpcyB1bmRlZmluZWQuCitQQVNTIHZpZXcuZ2V0RmxvYXQzMig3LCBm
YWxzZSkgaXMgMTAKK1BBU1Mgdmlldy5zZXRGbG9hdDMyKDEwLCAxMCwgZmFsc2UpIGlzIHVuZGVm
aW5lZC4KK1BBU1Mgdmlldy5nZXRGbG9hdDMyKDEwLCBmYWxzZSkgaXMgMTAKK1BBU1Mgdmlldy5z
ZXRGbG9hdDMyKDAsIDEuMjMwMDAwMDE5MDczNDg2MywgdHJ1ZSkgaXMgdW5kZWZpbmVkLgorUEFT
UyB2aWV3LmdldEZsb2F0MzIoMCwgdHJ1ZSkgaXMgMS4yMzAwMDAwMTkwNzM0ODYzCitQQVNTIHZp
ZXcuc2V0RmxvYXQzMigzLCAxLjIzMDAwMDAxOTA3MzQ4NjMsIHRydWUpIGlzIHVuZGVmaW5lZC4K
K1BBU1Mgdmlldy5nZXRGbG9hdDMyKDMsIHRydWUpIGlzIDEuMjMwMDAwMDE5MDczNDg2MworUEFT
UyB2aWV3LnNldEZsb2F0MzIoNywgMS4yMzAwMDAwMTkwNzM0ODYzLCB0cnVlKSBpcyB1bmRlZmlu
ZWQuCitQQVNTIHZpZXcuZ2V0RmxvYXQzMig3LCB0cnVlKSBpcyAxLjIzMDAwMDAxOTA3MzQ4NjMK
K1BBU1Mgdmlldy5zZXRGbG9hdDMyKDEwLCAxLjIzMDAwMDAxOTA3MzQ4NjMsIHRydWUpIGlzIHVu
ZGVmaW5lZC4KK1BBU1Mgdmlldy5nZXRGbG9hdDMyKDEwLCB0cnVlKSBpcyAxLjIzMDAwMDAxOTA3
MzQ4NjMKK1BBU1Mgdmlldy5zZXRGbG9hdDMyKDAsIDEuMjMwMDAwMDE5MDczNDg2MywgZmFsc2Up
IGlzIHVuZGVmaW5lZC4KK1BBU1Mgdmlldy5nZXRGbG9hdDMyKDAsIGZhbHNlKSBpcyAxLjIzMDAw
MDAxOTA3MzQ4NjMKK1BBU1Mgdmlldy5zZXRGbG9hdDMyKDMsIDEuMjMwMDAwMDE5MDczNDg2Mywg
ZmFsc2UpIGlzIHVuZGVmaW5lZC4KK1BBU1Mgdmlldy5nZXRGbG9hdDMyKDMsIGZhbHNlKSBpcyAx
LjIzMDAwMDAxOTA3MzQ4NjMKK1BBU1Mgdmlldy5zZXRGbG9hdDMyKDcsIDEuMjMwMDAwMDE5MDcz
NDg2MywgZmFsc2UpIGlzIHVuZGVmaW5lZC4KK1BBU1Mgdmlldy5nZXRGbG9hdDMyKDcsIGZhbHNl
KSBpcyAxLjIzMDAwMDAxOTA3MzQ4NjMKK1BBU1Mgdmlldy5zZXRGbG9hdDMyKDEwLCAxLjIzMDAw
MDAxOTA3MzQ4NjMsIGZhbHNlKSBpcyB1bmRlZmluZWQuCitQQVNTIHZpZXcuZ2V0RmxvYXQzMigx
MCwgZmFsc2UpIGlzIDEuMjMwMDAwMDE5MDczNDg2MworUEFTUyB2aWV3LnNldEZsb2F0MzIoMCwg
LTQ1NjIxLjM3MTA5Mzc1LCB0cnVlKSBpcyB1bmRlZmluZWQuCitQQVNTIHZpZXcuZ2V0RmxvYXQz
MigwLCB0cnVlKSBpcyAtNDU2MjEuMzcxMDkzNzUKK1BBU1Mgdmlldy5zZXRGbG9hdDMyKDMsIC00
NTYyMS4zNzEwOTM3NSwgdHJ1ZSkgaXMgdW5kZWZpbmVkLgorUEFTUyB2aWV3LmdldEZsb2F0MzIo
MywgdHJ1ZSkgaXMgLTQ1NjIxLjM3MTA5Mzc1CitQQVNTIHZpZXcuc2V0RmxvYXQzMig3LCAtNDU2
MjEuMzcxMDkzNzUsIHRydWUpIGlzIHVuZGVmaW5lZC4KK1BBU1Mgdmlldy5nZXRGbG9hdDMyKDcs
IHRydWUpIGlzIC00NTYyMS4zNzEwOTM3NQorUEFTUyB2aWV3LnNldEZsb2F0MzIoMTAsIC00NTYy
MS4zNzEwOTM3NSwgdHJ1ZSkgaXMgdW5kZWZpbmVkLgorUEFTUyB2aWV3LmdldEZsb2F0MzIoMTAs
IHRydWUpIGlzIC00NTYyMS4zNzEwOTM3NQorUEFTUyB2aWV3LnNldEZsb2F0MzIoMCwgLTQ1NjIx
LjM3MTA5Mzc1LCBmYWxzZSkgaXMgdW5kZWZpbmVkLgorUEFTUyB2aWV3LmdldEZsb2F0MzIoMCwg
ZmFsc2UpIGlzIC00NTYyMS4zNzEwOTM3NQorUEFTUyB2aWV3LnNldEZsb2F0MzIoMywgLTQ1NjIx
LjM3MTA5Mzc1LCBmYWxzZSkgaXMgdW5kZWZpbmVkLgorUEFTUyB2aWV3LmdldEZsb2F0MzIoMywg
ZmFsc2UpIGlzIC00NTYyMS4zNzEwOTM3NQorUEFTUyB2aWV3LnNldEZsb2F0MzIoNywgLTQ1NjIx
LjM3MTA5Mzc1LCBmYWxzZSkgaXMgdW5kZWZpbmVkLgorUEFTUyB2aWV3LmdldEZsb2F0MzIoNywg
ZmFsc2UpIGlzIC00NTYyMS4zNzEwOTM3NQorUEFTUyB2aWV3LnNldEZsb2F0MzIoMTAsIC00NTYy
MS4zNzEwOTM3NSwgZmFsc2UpIGlzIHVuZGVmaW5lZC4KK1BBU1Mgdmlldy5nZXRGbG9hdDMyKDEw
LCBmYWxzZSkgaXMgLTQ1NjIxLjM3MTA5Mzc1CitQQVNTIHZpZXcuc2V0RmxvYXQzMigwLCBOYU4s
IHRydWUpIGlzIHVuZGVmaW5lZC4KK1BBU1Mgdmlldy5nZXRGbG9hdDMyKDAsIHRydWUpIGlzIE5h
TgorUEFTUyB2aWV3LnNldEZsb2F0MzIoMywgTmFOLCB0cnVlKSBpcyB1bmRlZmluZWQuCitQQVNT
IHZpZXcuZ2V0RmxvYXQzMigzLCB0cnVlKSBpcyBOYU4KK1BBU1Mgdmlldy5zZXRGbG9hdDMyKDcs
IE5hTiwgdHJ1ZSkgaXMgdW5kZWZpbmVkLgorUEFTUyB2aWV3LmdldEZsb2F0MzIoNywgdHJ1ZSkg
aXMgTmFOCitQQVNTIHZpZXcuc2V0RmxvYXQzMigxMCwgTmFOLCB0cnVlKSBpcyB1bmRlZmluZWQu
CitQQVNTIHZpZXcuZ2V0RmxvYXQzMigxMCwgdHJ1ZSkgaXMgTmFOCitQQVNTIHZpZXcuc2V0Rmxv
YXQzMigwLCBOYU4sIGZhbHNlKSBpcyB1bmRlZmluZWQuCitQQVNTIHZpZXcuZ2V0RmxvYXQzMigw
LCBmYWxzZSkgaXMgTmFOCitQQVNTIHZpZXcuc2V0RmxvYXQzMigzLCBOYU4sIGZhbHNlKSBpcyB1
bmRlZmluZWQuCitQQVNTIHZpZXcuZ2V0RmxvYXQzMigzLCBmYWxzZSkgaXMgTmFOCitQQVNTIHZp
ZXcuc2V0RmxvYXQzMig3LCBOYU4sIGZhbHNlKSBpcyB1bmRlZmluZWQuCitQQVNTIHZpZXcuZ2V0
RmxvYXQzMig3LCBmYWxzZSkgaXMgTmFOCitQQVNTIHZpZXcuc2V0RmxvYXQzMigxMCwgTmFOLCBm
YWxzZSkgaXMgdW5kZWZpbmVkLgorUEFTUyB2aWV3LmdldEZsb2F0MzIoMTAsIGZhbHNlKSBpcyBO
YU4KK1BBU1Mgdmlldy5zZXRGbG9hdDMyKDAsIC1OYU4sIHRydWUpIGlzIHVuZGVmaW5lZC4KK1BB
U1Mgdmlldy5nZXRGbG9hdDMyKDAsIHRydWUpIGlzIC1OYU4KK1BBU1Mgdmlldy5zZXRGbG9hdDMy
KDMsIC1OYU4sIHRydWUpIGlzIHVuZGVmaW5lZC4KK1BBU1Mgdmlldy5nZXRGbG9hdDMyKDMsIHRy
dWUpIGlzIC1OYU4KK1BBU1Mgdmlldy5zZXRGbG9hdDMyKDcsIC1OYU4sIHRydWUpIGlzIHVuZGVm
aW5lZC4KK1BBU1Mgdmlldy5nZXRGbG9hdDMyKDcsIHRydWUpIGlzIC1OYU4KK1BBU1Mgdmlldy5z
ZXRGbG9hdDMyKDEwLCAtTmFOLCB0cnVlKSBpcyB1bmRlZmluZWQuCitQQVNTIHZpZXcuZ2V0Rmxv
YXQzMigxMCwgdHJ1ZSkgaXMgLU5hTgorUEFTUyB2aWV3LnNldEZsb2F0MzIoMCwgLU5hTiwgZmFs
c2UpIGlzIHVuZGVmaW5lZC4KK1BBU1Mgdmlldy5nZXRGbG9hdDMyKDAsIGZhbHNlKSBpcyAtTmFO
CitQQVNTIHZpZXcuc2V0RmxvYXQzMigzLCAtTmFOLCBmYWxzZSkgaXMgdW5kZWZpbmVkLgorUEFT
UyB2aWV3LmdldEZsb2F0MzIoMywgZmFsc2UpIGlzIC1OYU4KK1BBU1Mgdmlldy5zZXRGbG9hdDMy
KDcsIC1OYU4sIGZhbHNlKSBpcyB1bmRlZmluZWQuCitQQVNTIHZpZXcuZ2V0RmxvYXQzMig3LCBm
YWxzZSkgaXMgLU5hTgorUEFTUyB2aWV3LnNldEZsb2F0MzIoMTAsIC1OYU4sIGZhbHNlKSBpcyB1
bmRlZmluZWQuCitQQVNTIHZpZXcuZ2V0RmxvYXQzMigxMCwgZmFsc2UpIGlzIC1OYU4KK1BBU1Mg
dmlldy5zZXRGbG9hdDY0KDAsIDEwLCB0cnVlKSBpcyB1bmRlZmluZWQuCitQQVNTIHZpZXcuZ2V0
RmxvYXQ2NCgwLCB0cnVlKSBpcyAxMAorUEFTUyB2aWV3LnNldEZsb2F0NjQoMywgMTAsIHRydWUp
IGlzIHVuZGVmaW5lZC4KK1BBU1Mgdmlldy5nZXRGbG9hdDY0KDMsIHRydWUpIGlzIDEwCitQQVNT
IHZpZXcuc2V0RmxvYXQ2NCg3LCAxMCwgdHJ1ZSkgaXMgdW5kZWZpbmVkLgorUEFTUyB2aWV3Lmdl
dEZsb2F0NjQoNywgdHJ1ZSkgaXMgMTAKK1BBU1Mgdmlldy5zZXRGbG9hdDY0KDEwLCAxMCwgdHJ1
ZSkgaXMgdW5kZWZpbmVkLgorUEFTUyB2aWV3LmdldEZsb2F0NjQoMTAsIHRydWUpIGlzIDEwCitQ
QVNTIHZpZXcuc2V0RmxvYXQ2NCgwLCAxMCwgZmFsc2UpIGlzIHVuZGVmaW5lZC4KK1BBU1Mgdmll
dy5nZXRGbG9hdDY0KDAsIGZhbHNlKSBpcyAxMAorUEFTUyB2aWV3LnNldEZsb2F0NjQoMywgMTAs
IGZhbHNlKSBpcyB1bmRlZmluZWQuCitQQVNTIHZpZXcuZ2V0RmxvYXQ2NCgzLCBmYWxzZSkgaXMg
MTAKK1BBU1Mgdmlldy5zZXRGbG9hdDY0KDcsIDEwLCBmYWxzZSkgaXMgdW5kZWZpbmVkLgorUEFT
UyB2aWV3LmdldEZsb2F0NjQoNywgZmFsc2UpIGlzIDEwCitQQVNTIHZpZXcuc2V0RmxvYXQ2NCgx
MCwgMTAsIGZhbHNlKSBpcyB1bmRlZmluZWQuCitQQVNTIHZpZXcuZ2V0RmxvYXQ2NCgxMCwgZmFs
c2UpIGlzIDEwCitQQVNTIHZpZXcuc2V0RmxvYXQ2NCgwLCAxLjIzLCB0cnVlKSBpcyB1bmRlZmlu
ZWQuCitQQVNTIHZpZXcuZ2V0RmxvYXQ2NCgwLCB0cnVlKSBpcyAxLjIzCitQQVNTIHZpZXcuc2V0
RmxvYXQ2NCgzLCAxLjIzLCB0cnVlKSBpcyB1bmRlZmluZWQuCitQQVNTIHZpZXcuZ2V0RmxvYXQ2
NCgzLCB0cnVlKSBpcyAxLjIzCitQQVNTIHZpZXcuc2V0RmxvYXQ2NCg3LCAxLjIzLCB0cnVlKSBp
cyB1bmRlZmluZWQuCitQQVNTIHZpZXcuZ2V0RmxvYXQ2NCg3LCB0cnVlKSBpcyAxLjIzCitQQVNT
IHZpZXcuc2V0RmxvYXQ2NCgxMCwgMS4yMywgdHJ1ZSkgaXMgdW5kZWZpbmVkLgorUEFTUyB2aWV3
LmdldEZsb2F0NjQoMTAsIHRydWUpIGlzIDEuMjMKK1BBU1Mgdmlldy5zZXRGbG9hdDY0KDAsIDEu
MjMsIGZhbHNlKSBpcyB1bmRlZmluZWQuCitQQVNTIHZpZXcuZ2V0RmxvYXQ2NCgwLCBmYWxzZSkg
aXMgMS4yMworUEFTUyB2aWV3LnNldEZsb2F0NjQoMywgMS4yMywgZmFsc2UpIGlzIHVuZGVmaW5l
ZC4KK1BBU1Mgdmlldy5nZXRGbG9hdDY0KDMsIGZhbHNlKSBpcyAxLjIzCitQQVNTIHZpZXcuc2V0
RmxvYXQ2NCg3LCAxLjIzLCBmYWxzZSkgaXMgdW5kZWZpbmVkLgorUEFTUyB2aWV3LmdldEZsb2F0
NjQoNywgZmFsc2UpIGlzIDEuMjMKK1BBU1Mgdmlldy5zZXRGbG9hdDY0KDEwLCAxLjIzLCBmYWxz
ZSkgaXMgdW5kZWZpbmVkLgorUEFTUyB2aWV3LmdldEZsb2F0NjQoMTAsIGZhbHNlKSBpcyAxLjIz
CitQQVNTIHZpZXcuc2V0RmxvYXQ2NCgwLCAtNjIxMzU3Ni40ODM5LCB0cnVlKSBpcyB1bmRlZmlu
ZWQuCitQQVNTIHZpZXcuZ2V0RmxvYXQ2NCgwLCB0cnVlKSBpcyAtNjIxMzU3Ni40ODM5CitQQVNT
IHZpZXcuc2V0RmxvYXQ2NCgzLCAtNjIxMzU3Ni40ODM5LCB0cnVlKSBpcyB1bmRlZmluZWQuCitQ
QVNTIHZpZXcuZ2V0RmxvYXQ2NCgzLCB0cnVlKSBpcyAtNjIxMzU3Ni40ODM5CitQQVNTIHZpZXcu
c2V0RmxvYXQ2NCg3LCAtNjIxMzU3Ni40ODM5LCB0cnVlKSBpcyB1bmRlZmluZWQuCitQQVNTIHZp
ZXcuZ2V0RmxvYXQ2NCg3LCB0cnVlKSBpcyAtNjIxMzU3Ni40ODM5CitQQVNTIHZpZXcuc2V0Rmxv
YXQ2NCgxMCwgLTYyMTM1NzYuNDgzOSwgdHJ1ZSkgaXMgdW5kZWZpbmVkLgorUEFTUyB2aWV3Lmdl
dEZsb2F0NjQoMTAsIHRydWUpIGlzIC02MjEzNTc2LjQ4MzkKK1BBU1Mgdmlldy5zZXRGbG9hdDY0
KDAsIC02MjEzNTc2LjQ4MzksIGZhbHNlKSBpcyB1bmRlZmluZWQuCitQQVNTIHZpZXcuZ2V0Rmxv
YXQ2NCgwLCBmYWxzZSkgaXMgLTYyMTM1NzYuNDgzOQorUEFTUyB2aWV3LnNldEZsb2F0NjQoMywg
LTYyMTM1NzYuNDgzOSwgZmFsc2UpIGlzIHVuZGVmaW5lZC4KK1BBU1Mgdmlldy5nZXRGbG9hdDY0
KDMsIGZhbHNlKSBpcyAtNjIxMzU3Ni40ODM5CitQQVNTIHZpZXcuc2V0RmxvYXQ2NCg3LCAtNjIx
MzU3Ni40ODM5LCBmYWxzZSkgaXMgdW5kZWZpbmVkLgorUEFTUyB2aWV3LmdldEZsb2F0NjQoNywg
ZmFsc2UpIGlzIC02MjEzNTc2LjQ4MzkKK1BBU1Mgdmlldy5zZXRGbG9hdDY0KDEwLCAtNjIxMzU3
Ni40ODM5LCBmYWxzZSkgaXMgdW5kZWZpbmVkLgorUEFTUyB2aWV3LmdldEZsb2F0NjQoMTAsIGZh
bHNlKSBpcyAtNjIxMzU3Ni40ODM5CitQQVNTIHZpZXcuc2V0RmxvYXQ2NCgwLCBOYU4sIHRydWUp
IGlzIHVuZGVmaW5lZC4KK1BBU1Mgdmlldy5nZXRGbG9hdDY0KDAsIHRydWUpIGlzIE5hTgorUEFT
UyB2aWV3LnNldEZsb2F0NjQoMywgTmFOLCB0cnVlKSBpcyB1bmRlZmluZWQuCitQQVNTIHZpZXcu
Z2V0RmxvYXQ2NCgzLCB0cnVlKSBpcyBOYU4KK1BBU1Mgdmlldy5zZXRGbG9hdDY0KDcsIE5hTiwg
dHJ1ZSkgaXMgdW5kZWZpbmVkLgorUEFTUyB2aWV3LmdldEZsb2F0NjQoNywgdHJ1ZSkgaXMgTmFO
CitQQVNTIHZpZXcuc2V0RmxvYXQ2NCgxMCwgTmFOLCB0cnVlKSBpcyB1bmRlZmluZWQuCitQQVNT
IHZpZXcuZ2V0RmxvYXQ2NCgxMCwgdHJ1ZSkgaXMgTmFOCitQQVNTIHZpZXcuc2V0RmxvYXQ2NCgw
LCBOYU4sIGZhbHNlKSBpcyB1bmRlZmluZWQuCitQQVNTIHZpZXcuZ2V0RmxvYXQ2NCgwLCBmYWxz
ZSkgaXMgTmFOCitQQVNTIHZpZXcuc2V0RmxvYXQ2NCgzLCBOYU4sIGZhbHNlKSBpcyB1bmRlZmlu
ZWQuCitQQVNTIHZpZXcuZ2V0RmxvYXQ2NCgzLCBmYWxzZSkgaXMgTmFOCitQQVNTIHZpZXcuc2V0
RmxvYXQ2NCg3LCBOYU4sIGZhbHNlKSBpcyB1bmRlZmluZWQuCitQQVNTIHZpZXcuZ2V0RmxvYXQ2
NCg3LCBmYWxzZSkgaXMgTmFOCitQQVNTIHZpZXcuc2V0RmxvYXQ2NCgxMCwgTmFOLCBmYWxzZSkg
aXMgdW5kZWZpbmVkLgorUEFTUyB2aWV3LmdldEZsb2F0NjQoMTAsIGZhbHNlKSBpcyBOYU4KK1BB
U1Mgdmlldy5zZXRGbG9hdDY0KDAsIC1OYU4sIHRydWUpIGlzIHVuZGVmaW5lZC4KK1BBU1Mgdmll
dy5nZXRGbG9hdDY0KDAsIHRydWUpIGlzIC1OYU4KK1BBU1Mgdmlldy5zZXRGbG9hdDY0KDMsIC1O
YU4sIHRydWUpIGlzIHVuZGVmaW5lZC4KK1BBU1Mgdmlldy5nZXRGbG9hdDY0KDMsIHRydWUpIGlz
IC1OYU4KK1BBU1Mgdmlldy5zZXRGbG9hdDY0KDcsIC1OYU4sIHRydWUpIGlzIHVuZGVmaW5lZC4K
K1BBU1Mgdmlldy5nZXRGbG9hdDY0KDcsIHRydWUpIGlzIC1OYU4KK1BBU1Mgdmlldy5zZXRGbG9h
dDY0KDEwLCAtTmFOLCB0cnVlKSBpcyB1bmRlZmluZWQuCitQQVNTIHZpZXcuZ2V0RmxvYXQ2NCgx
MCwgdHJ1ZSkgaXMgLU5hTgorUEFTUyB2aWV3LnNldEZsb2F0NjQoMCwgLU5hTiwgZmFsc2UpIGlz
IHVuZGVmaW5lZC4KK1BBU1Mgdmlldy5nZXRGbG9hdDY0KDAsIGZhbHNlKSBpcyAtTmFOCitQQVNT
IHZpZXcuc2V0RmxvYXQ2NCgzLCAtTmFOLCBmYWxzZSkgaXMgdW5kZWZpbmVkLgorUEFTUyB2aWV3
LmdldEZsb2F0NjQoMywgZmFsc2UpIGlzIC1OYU4KK1BBU1Mgdmlldy5zZXRGbG9hdDY0KDcsIC1O
YU4sIGZhbHNlKSBpcyB1bmRlZmluZWQuCitQQVNTIHZpZXcuZ2V0RmxvYXQ2NCg3LCBmYWxzZSkg
aXMgLU5hTgorUEFTUyB2aWV3LnNldEZsb2F0NjQoMTAsIC1OYU4sIGZhbHNlKSBpcyB1bmRlZmlu
ZWQuCitQQVNTIHZpZXcuZ2V0RmxvYXQ2NCgxMCwgZmFsc2UpIGlzIC1OYU4KKworVGVzdCBmb3Ig
c2V0IG1ldGhvZHMgdGhhdCBtaWdodCB3cml0ZSBiZXlvbmQgdGhlIHJhbmdlCitQQVNTIHZpZXcu
c2V0SW50OCgwLCAwKSBpcyB1bmRlZmluZWQuCitQQVNTIHZpZXcuZ2V0SW50OCgwKSBpcyAwCitQ
QVNTIHZpZXcuc2V0SW50OCg4LCAtMTI4KSB0aHJldyBleGNlcHRpb24gRXJyb3I6IElOREVYX1NJ
WkVfRVJSOiBET00gRXhjZXB0aW9uIDEuCitQQVNTIHZpZXcuc2V0SW50OCgxNSwgLTEpIHRocmV3
IGV4Y2VwdGlvbiBFcnJvcjogSU5ERVhfU0laRV9FUlI6IERPTSBFeGNlcHRpb24gMS4KK1BBU1Mg
dmlldy5zZXRVaW50OCgwLCAwKSBpcyB1bmRlZmluZWQuCitQQVNTIHZpZXcuZ2V0VWludDgoMCkg
aXMgMAorUEFTUyB2aWV3LnNldFVpbnQ4KDgsIDEyOCkgdGhyZXcgZXhjZXB0aW9uIEVycm9yOiBJ
TkRFWF9TSVpFX0VSUjogRE9NIEV4Y2VwdGlvbiAxLgorUEFTUyB2aWV3LnNldFVpbnQ4KDE1LCAy
NTUpIHRocmV3IGV4Y2VwdGlvbiBFcnJvcjogSU5ERVhfU0laRV9FUlI6IERPTSBFeGNlcHRpb24g
MS4KK1BBU1Mgdmlldy5zZXRJbnQxNigwLCAyNTYsIHRydWUpIGlzIHVuZGVmaW5lZC4KK1BBU1Mg
dmlldy5nZXRJbnQxNigwLCB0cnVlKSBpcyAyNTYKK1BBU1Mgdmlldy5zZXRJbnQxNig1LCAyNjIx
MywgdHJ1ZSkgdGhyZXcgZXhjZXB0aW9uIEVycm9yOiBJTkRFWF9TSVpFX0VSUjogRE9NIEV4Y2Vw
dGlvbiAxLgorUEFTUyB2aWV3LnNldEludDE2KDksIC0zMjEyNywgdHJ1ZSkgdGhyZXcgZXhjZXB0
aW9uIEVycm9yOiBJTkRFWF9TSVpFX0VSUjogRE9NIEV4Y2VwdGlvbiAxLgorUEFTUyB2aWV3LnNl
dEludDE2KDE0LCAtMiwgdHJ1ZSkgdGhyZXcgZXhjZXB0aW9uIEVycm9yOiBJTkRFWF9TSVpFX0VS
UjogRE9NIEV4Y2VwdGlvbiAxLgorUEFTUyB2aWV3LnNldEludDE2KDAsIDEpIGlzIHVuZGVmaW5l
ZC4KK1BBU1Mgdmlldy5nZXRJbnQxNigwKSBpcyAxCitQQVNTIHZpZXcuc2V0SW50MTYoNSwgMjU5
NTgpIHRocmV3IGV4Y2VwdGlvbiBFcnJvcjogSU5ERVhfU0laRV9FUlI6IERPTSBFeGNlcHRpb24g
MS4KK1BBU1Mgdmlldy5zZXRJbnQxNig5LCAtMzIzODIpIHRocmV3IGV4Y2VwdGlvbiBFcnJvcjog
SU5ERVhfU0laRV9FUlI6IERPTSBFeGNlcHRpb24gMS4KK1BBU1Mgdmlldy5zZXRJbnQxNigxNCwg
LTI1NykgdGhyZXcgZXhjZXB0aW9uIEVycm9yOiBJTkRFWF9TSVpFX0VSUjogRE9NIEV4Y2VwdGlv
biAxLgorUEFTUyB2aWV3LnNldFVpbnQxNigwLCAyNTYsIHRydWUpIGlzIHVuZGVmaW5lZC4KK1BB
U1Mgdmlldy5nZXRVaW50MTYoMCwgdHJ1ZSkgaXMgMjU2CitQQVNTIHZpZXcuc2V0VWludDE2KDUs
IDI2MjEzLCB0cnVlKSB0aHJldyBleGNlcHRpb24gRXJyb3I6IElOREVYX1NJWkVfRVJSOiBET00g
RXhjZXB0aW9uIDEuCitQQVNTIHZpZXcuc2V0VWludDE2KDksIDMzNDA5LCB0cnVlKSB0aHJldyBl
eGNlcHRpb24gRXJyb3I6IElOREVYX1NJWkVfRVJSOiBET00gRXhjZXB0aW9uIDEuCitQQVNTIHZp
ZXcuc2V0VWludDE2KDE0LCA2NTUzNCwgdHJ1ZSkgdGhyZXcgZXhjZXB0aW9uIEVycm9yOiBJTkRF
WF9TSVpFX0VSUjogRE9NIEV4Y2VwdGlvbiAxLgorUEFTUyB2aWV3LnNldFVpbnQxNigwLCAxKSBp
cyB1bmRlZmluZWQuCitQQVNTIHZpZXcuZ2V0VWludDE2KDApIGlzIDEKK1BBU1Mgdmlldy5zZXRV
aW50MTYoNSwgMjU5NTgpIHRocmV3IGV4Y2VwdGlvbiBFcnJvcjogSU5ERVhfU0laRV9FUlI6IERP
TSBFeGNlcHRpb24gMS4KK1BBU1Mgdmlldy5zZXRVaW50MTYoOSwgMzMxNTQpIHRocmV3IGV4Y2Vw
dGlvbiBFcnJvcjogSU5ERVhfU0laRV9FUlI6IERPTSBFeGNlcHRpb24gMS4KK1BBU1Mgdmlldy5z
ZXRVaW50MTYoMTQsIDY1Mjc5KSB0aHJldyBleGNlcHRpb24gRXJyb3I6IElOREVYX1NJWkVfRVJS
OiBET00gRXhjZXB0aW9uIDEuCitQQVNTIHZpZXcuc2V0SW50MzIoMCwgNTA0NjI5NzYsIHRydWUp
IHRocmV3IGV4Y2VwdGlvbiBFcnJvcjogSU5ERVhfU0laRV9FUlI6IERPTSBFeGNlcHRpb24gMS4K
K1BBU1Mgdmlldy5zZXRJbnQzMigzLCAxNzE3OTIwNzcxLCB0cnVlKSB0aHJldyBleGNlcHRpb24g
RXJyb3I6IElOREVYX1NJWkVfRVJSOiBET00gRXhjZXB0aW9uIDEuCitQQVNTIHZpZXcuc2V0SW50
MzIoNiwgLTIxMjIyOTEzNTQsIHRydWUpIHRocmV3IGV4Y2VwdGlvbiBFcnJvcjogSU5ERVhfU0la
RV9FUlI6IERPTSBFeGNlcHRpb24gMS4KK1BBU1Mgdmlldy5zZXRJbnQzMig5LCAtNTg0OTAyMzks
IHRydWUpIHRocmV3IGV4Y2VwdGlvbiBFcnJvcjogSU5ERVhfU0laRV9FUlI6IERPTSBFeGNlcHRp
b24gMS4KK1BBU1Mgdmlldy5zZXRJbnQzMigxMiwgLTY2MDUyLCB0cnVlKSB0aHJldyBleGNlcHRp
b24gRXJyb3I6IElOREVYX1NJWkVfRVJSOiBET00gRXhjZXB0aW9uIDEuCitQQVNTIHZpZXcuc2V0
SW50MzIoMCwgNjYwNTEpIHRocmV3IGV4Y2VwdGlvbiBFcnJvcjogSU5ERVhfU0laRV9FUlI6IERP
TSBFeGNlcHRpb24gMS4KK1BBU1Mgdmlldy5zZXRJbnQzMigzLCA1NjkxMTIwNikgdGhyZXcgZXhj
ZXB0aW9uIEVycm9yOiBJTkRFWF9TSVpFX0VSUjogRE9NIEV4Y2VwdGlvbiAxLgorUEFTUyB2aWV3
LnNldEludDMyKDYsIDE3MTgwNTkxMzcpIHRocmV3IGV4Y2VwdGlvbiBFcnJvcjogSU5ERVhfU0la
RV9FUlI6IERPTSBFeGNlcHRpb24gMS4KK1BBU1Mgdmlldy5zZXRJbnQzMig5LCAtMjEyMjE1Mjk2
NCkgdGhyZXcgZXhjZXB0aW9uIEVycm9yOiBJTkRFWF9TSVpFX0VSUjogRE9NIEV4Y2VwdGlvbiAx
LgorUEFTUyB2aWV3LnNldEludDMyKDEyLCAtNTA0NjI5NzcpIHRocmV3IGV4Y2VwdGlvbiBFcnJv
cjogSU5ERVhfU0laRV9FUlI6IERPTSBFeGNlcHRpb24gMS4KK1BBU1Mgdmlldy5zZXRVaW50MzIo
MCwgNTA0NjI5NzYsIHRydWUpIHRocmV3IGV4Y2VwdGlvbiBFcnJvcjogSU5ERVhfU0laRV9FUlI6
IERPTSBFeGNlcHRpb24gMS4KK1BBU1Mgdmlldy5zZXRVaW50MzIoMywgMTcxNzkyMDc3MSwgdHJ1
ZSkgdGhyZXcgZXhjZXB0aW9uIEVycm9yOiBJTkRFWF9TSVpFX0VSUjogRE9NIEV4Y2VwdGlvbiAx
LgorUEFTUyB2aWV3LnNldFVpbnQzMig2LCAyMTcyNjc1OTQyLCB0cnVlKSB0aHJldyBleGNlcHRp
b24gRXJyb3I6IElOREVYX1NJWkVfRVJSOiBET00gRXhjZXB0aW9uIDEuCitQQVNTIHZpZXcuc2V0
VWludDMyKDksIDQyMzY0NzcwNTcsIHRydWUpIHRocmV3IGV4Y2VwdGlvbiBFcnJvcjogSU5ERVhf
U0laRV9FUlI6IERPTSBFeGNlcHRpb24gMS4KK1BBU1Mgdmlldy5zZXRVaW50MzIoMTIsIDQyOTQ5
MDEyNDQsIHRydWUpIHRocmV3IGV4Y2VwdGlvbiBFcnJvcjogSU5ERVhfU0laRV9FUlI6IERPTSBF
eGNlcHRpb24gMS4KK1BBU1Mgdmlldy5zZXRVaW50MzIoMCwgNjYwNTEpIHRocmV3IGV4Y2VwdGlv
biBFcnJvcjogSU5ERVhfU0laRV9FUlI6IERPTSBFeGNlcHRpb24gMS4KK1BBU1Mgdmlldy5zZXRV
aW50MzIoMywgNTY5MTEyMDYpIHRocmV3IGV4Y2VwdGlvbiBFcnJvcjogSU5ERVhfU0laRV9FUlI6
IERPTSBFeGNlcHRpb24gMS4KK1BBU1Mgdmlldy5zZXRVaW50MzIoNiwgMTcxODA1OTEzNykgdGhy
ZXcgZXhjZXB0aW9uIEVycm9yOiBJTkRFWF9TSVpFX0VSUjogRE9NIEV4Y2VwdGlvbiAxLgorUEFT
UyB2aWV3LnNldFVpbnQzMig5LCAyMTcyODE0MzMyKSB0aHJldyBleGNlcHRpb24gRXJyb3I6IElO
REVYX1NJWkVfRVJSOiBET00gRXhjZXB0aW9uIDEuCitQQVNTIHZpZXcuc2V0VWludDMyKDEyLCA0
MjQ0NTA0MzE5KSB0aHJldyBleGNlcHRpb24gRXJyb3I6IElOREVYX1NJWkVfRVJSOiBET00gRXhj
ZXB0aW9uIDEuCitQQVNTIHZpZXcuc2V0RmxvYXQzMigwLCAxMCwgdHJ1ZSkgaXMgdW5kZWZpbmVk
LgorUEFTUyB2aWV3LmdldEZsb2F0MzIoMCwgdHJ1ZSkgaXMgMTAKK1BBU1Mgdmlldy5zZXRGbG9h
dDMyKDMsIDEwLCB0cnVlKSBpcyB1bmRlZmluZWQuCitQQVNTIHZpZXcuZ2V0RmxvYXQzMigzLCB0
cnVlKSBpcyAxMAorUEFTUyB2aWV3LnNldEZsb2F0MzIoNywgMTAsIHRydWUpIGlzIHVuZGVmaW5l
ZC4KK1BBU1Mgdmlldy5nZXRGbG9hdDMyKDcsIHRydWUpIGlzIDEwCitQQVNTIHZpZXcuc2V0Rmxv
YXQzMigxMCwgMTAsIHRydWUpIGlzIHVuZGVmaW5lZC4KK1BBU1Mgdmlldy5nZXRGbG9hdDMyKDEw
LCB0cnVlKSBpcyAxMAorUEFTUyB2aWV3LnNldEZsb2F0MzIoMCwgMTAsIGZhbHNlKSBpcyB1bmRl
ZmluZWQuCitQQVNTIHZpZXcuZ2V0RmxvYXQzMigwLCBmYWxzZSkgaXMgMTAKK1BBU1Mgdmlldy5z
ZXRGbG9hdDMyKDMsIDEwLCBmYWxzZSkgaXMgdW5kZWZpbmVkLgorUEFTUyB2aWV3LmdldEZsb2F0
MzIoMywgZmFsc2UpIGlzIDEwCitQQVNTIHZpZXcuc2V0RmxvYXQzMig3LCAxMCwgZmFsc2UpIGlz
IHVuZGVmaW5lZC4KK1BBU1Mgdmlldy5nZXRGbG9hdDMyKDcsIGZhbHNlKSBpcyAxMAorUEFTUyB2
aWV3LnNldEZsb2F0MzIoMTAsIDEwLCBmYWxzZSkgaXMgdW5kZWZpbmVkLgorUEFTUyB2aWV3Lmdl
dEZsb2F0MzIoMTAsIGZhbHNlKSBpcyAxMAorUEFTUyB2aWV3LnNldEZsb2F0MzIoMCwgMS4yMzAw
MDAwMTkwNzM0ODYzLCB0cnVlKSBpcyB1bmRlZmluZWQuCitQQVNTIHZpZXcuZ2V0RmxvYXQzMigw
LCB0cnVlKSBpcyAxLjIzMDAwMDAxOTA3MzQ4NjMKK1BBU1Mgdmlldy5zZXRGbG9hdDMyKDMsIDEu
MjMwMDAwMDE5MDczNDg2MywgdHJ1ZSkgaXMgdW5kZWZpbmVkLgorUEFTUyB2aWV3LmdldEZsb2F0
MzIoMywgdHJ1ZSkgaXMgMS4yMzAwMDAwMTkwNzM0ODYzCitQQVNTIHZpZXcuc2V0RmxvYXQzMig3
LCAxLjIzMDAwMDAxOTA3MzQ4NjMsIHRydWUpIGlzIHVuZGVmaW5lZC4KK1BBU1Mgdmlldy5nZXRG
bG9hdDMyKDcsIHRydWUpIGlzIDEuMjMwMDAwMDE5MDczNDg2MworUEFTUyB2aWV3LnNldEZsb2F0
MzIoMTAsIDEuMjMwMDAwMDE5MDczNDg2MywgdHJ1ZSkgaXMgdW5kZWZpbmVkLgorUEFTUyB2aWV3
LmdldEZsb2F0MzIoMTAsIHRydWUpIGlzIDEuMjMwMDAwMDE5MDczNDg2MworUEFTUyB2aWV3LnNl
dEZsb2F0MzIoMCwgMS4yMzAwMDAwMTkwNzM0ODYzLCBmYWxzZSkgaXMgdW5kZWZpbmVkLgorUEFT
UyB2aWV3LmdldEZsb2F0MzIoMCwgZmFsc2UpIGlzIDEuMjMwMDAwMDE5MDczNDg2MworUEFTUyB2
aWV3LnNldEZsb2F0MzIoMywgMS4yMzAwMDAwMTkwNzM0ODYzLCBmYWxzZSkgaXMgdW5kZWZpbmVk
LgorUEFTUyB2aWV3LmdldEZsb2F0MzIoMywgZmFsc2UpIGlzIDEuMjMwMDAwMDE5MDczNDg2Mwor
UEFTUyB2aWV3LnNldEZsb2F0MzIoNywgMS4yMzAwMDAwMTkwNzM0ODYzLCBmYWxzZSkgaXMgdW5k
ZWZpbmVkLgorUEFTUyB2aWV3LmdldEZsb2F0MzIoNywgZmFsc2UpIGlzIDEuMjMwMDAwMDE5MDcz
NDg2MworUEFTUyB2aWV3LnNldEZsb2F0MzIoMTAsIDEuMjMwMDAwMDE5MDczNDg2MywgZmFsc2Up
IGlzIHVuZGVmaW5lZC4KK1BBU1Mgdmlldy5nZXRGbG9hdDMyKDEwLCBmYWxzZSkgaXMgMS4yMzAw
MDAwMTkwNzM0ODYzCitQQVNTIHZpZXcuc2V0RmxvYXQzMigwLCAtNDU2MjEuMzcxMDkzNzUsIHRy
dWUpIGlzIHVuZGVmaW5lZC4KK1BBU1Mgdmlldy5nZXRGbG9hdDMyKDAsIHRydWUpIGlzIC00NTYy
MS4zNzEwOTM3NQorUEFTUyB2aWV3LnNldEZsb2F0MzIoMywgLTQ1NjIxLjM3MTA5Mzc1LCB0cnVl
KSBpcyB1bmRlZmluZWQuCitQQVNTIHZpZXcuZ2V0RmxvYXQzMigzLCB0cnVlKSBpcyAtNDU2MjEu
MzcxMDkzNzUKK1BBU1Mgdmlldy5zZXRGbG9hdDMyKDcsIC00NTYyMS4zNzEwOTM3NSwgdHJ1ZSkg
aXMgdW5kZWZpbmVkLgorUEFTUyB2aWV3LmdldEZsb2F0MzIoNywgdHJ1ZSkgaXMgLTQ1NjIxLjM3
MTA5Mzc1CitQQVNTIHZpZXcuc2V0RmxvYXQzMigxMCwgLTQ1NjIxLjM3MTA5Mzc1LCB0cnVlKSBp
cyB1bmRlZmluZWQuCitQQVNTIHZpZXcuZ2V0RmxvYXQzMigxMCwgdHJ1ZSkgaXMgLTQ1NjIxLjM3
MTA5Mzc1CitQQVNTIHZpZXcuc2V0RmxvYXQzMigwLCAtNDU2MjEuMzcxMDkzNzUsIGZhbHNlKSBp
cyB1bmRlZmluZWQuCitQQVNTIHZpZXcuZ2V0RmxvYXQzMigwLCBmYWxzZSkgaXMgLTQ1NjIxLjM3
MTA5Mzc1CitQQVNTIHZpZXcuc2V0RmxvYXQzMigzLCAtNDU2MjEuMzcxMDkzNzUsIGZhbHNlKSBp
cyB1bmRlZmluZWQuCitQQVNTIHZpZXcuZ2V0RmxvYXQzMigzLCBmYWxzZSkgaXMgLTQ1NjIxLjM3
MTA5Mzc1CitQQVNTIHZpZXcuc2V0RmxvYXQzMig3LCAtNDU2MjEuMzcxMDkzNzUsIGZhbHNlKSBp
cyB1bmRlZmluZWQuCitQQVNTIHZpZXcuZ2V0RmxvYXQzMig3LCBmYWxzZSkgaXMgLTQ1NjIxLjM3
MTA5Mzc1CitQQVNTIHZpZXcuc2V0RmxvYXQzMigxMCwgLTQ1NjIxLjM3MTA5Mzc1LCBmYWxzZSkg
aXMgdW5kZWZpbmVkLgorUEFTUyB2aWV3LmdldEZsb2F0MzIoMTAsIGZhbHNlKSBpcyAtNDU2MjEu
MzcxMDkzNzUKK1BBU1Mgdmlldy5zZXRGbG9hdDMyKDAsIE5hTiwgdHJ1ZSkgaXMgdW5kZWZpbmVk
LgorUEFTUyB2aWV3LmdldEZsb2F0MzIoMCwgdHJ1ZSkgaXMgTmFOCitQQVNTIHZpZXcuc2V0Rmxv
YXQzMigzLCBOYU4sIHRydWUpIGlzIHVuZGVmaW5lZC4KK1BBU1Mgdmlldy5nZXRGbG9hdDMyKDMs
IHRydWUpIGlzIE5hTgorUEFTUyB2aWV3LnNldEZsb2F0MzIoNywgTmFOLCB0cnVlKSBpcyB1bmRl
ZmluZWQuCitQQVNTIHZpZXcuZ2V0RmxvYXQzMig3LCB0cnVlKSBpcyBOYU4KK1BBU1Mgdmlldy5z
ZXRGbG9hdDMyKDEwLCBOYU4sIHRydWUpIGlzIHVuZGVmaW5lZC4KK1BBU1Mgdmlldy5nZXRGbG9h
dDMyKDEwLCB0cnVlKSBpcyBOYU4KK1BBU1Mgdmlldy5zZXRGbG9hdDMyKDAsIE5hTiwgZmFsc2Up
IGlzIHVuZGVmaW5lZC4KK1BBU1Mgdmlldy5nZXRGbG9hdDMyKDAsIGZhbHNlKSBpcyBOYU4KK1BB
U1Mgdmlldy5zZXRGbG9hdDMyKDMsIE5hTiwgZmFsc2UpIGlzIHVuZGVmaW5lZC4KK1BBU1Mgdmll
dy5nZXRGbG9hdDMyKDMsIGZhbHNlKSBpcyBOYU4KK1BBU1Mgdmlldy5zZXRGbG9hdDMyKDcsIE5h
TiwgZmFsc2UpIGlzIHVuZGVmaW5lZC4KK1BBU1Mgdmlldy5nZXRGbG9hdDMyKDcsIGZhbHNlKSBp
cyBOYU4KK1BBU1Mgdmlldy5zZXRGbG9hdDMyKDEwLCBOYU4sIGZhbHNlKSBpcyB1bmRlZmluZWQu
CitQQVNTIHZpZXcuZ2V0RmxvYXQzMigxMCwgZmFsc2UpIGlzIE5hTgorUEFTUyB2aWV3LnNldEZs
b2F0MzIoMCwgLU5hTiwgdHJ1ZSkgaXMgdW5kZWZpbmVkLgorUEFTUyB2aWV3LmdldEZsb2F0MzIo
MCwgdHJ1ZSkgaXMgLU5hTgorUEFTUyB2aWV3LnNldEZsb2F0MzIoMywgLU5hTiwgdHJ1ZSkgaXMg
dW5kZWZpbmVkLgorUEFTUyB2aWV3LmdldEZsb2F0MzIoMywgdHJ1ZSkgaXMgLU5hTgorUEFTUyB2
aWV3LnNldEZsb2F0MzIoNywgLU5hTiwgdHJ1ZSkgaXMgdW5kZWZpbmVkLgorUEFTUyB2aWV3Lmdl
dEZsb2F0MzIoNywgdHJ1ZSkgaXMgLU5hTgorUEFTUyB2aWV3LnNldEZsb2F0MzIoMTAsIC1OYU4s
IHRydWUpIGlzIHVuZGVmaW5lZC4KK1BBU1Mgdmlldy5nZXRGbG9hdDMyKDEwLCB0cnVlKSBpcyAt
TmFOCitQQVNTIHZpZXcuc2V0RmxvYXQzMigwLCAtTmFOLCBmYWxzZSkgaXMgdW5kZWZpbmVkLgor
UEFTUyB2aWV3LmdldEZsb2F0MzIoMCwgZmFsc2UpIGlzIC1OYU4KK1BBU1Mgdmlldy5zZXRGbG9h
dDMyKDMsIC1OYU4sIGZhbHNlKSBpcyB1bmRlZmluZWQuCitQQVNTIHZpZXcuZ2V0RmxvYXQzMigz
LCBmYWxzZSkgaXMgLU5hTgorUEFTUyB2aWV3LnNldEZsb2F0MzIoNywgLU5hTiwgZmFsc2UpIGlz
IHVuZGVmaW5lZC4KK1BBU1Mgdmlldy5nZXRGbG9hdDMyKDcsIGZhbHNlKSBpcyAtTmFOCitQQVNT
IHZpZXcuc2V0RmxvYXQzMigxMCwgLU5hTiwgZmFsc2UpIGlzIHVuZGVmaW5lZC4KK1BBU1Mgdmll
dy5nZXRGbG9hdDMyKDEwLCBmYWxzZSkgaXMgLU5hTgorUEFTUyB2aWV3LnNldEZsb2F0NjQoMCwg
MTAsIHRydWUpIGlzIHVuZGVmaW5lZC4KK1BBU1Mgdmlldy5nZXRGbG9hdDY0KDAsIHRydWUpIGlz
IDEwCitQQVNTIHZpZXcuc2V0RmxvYXQ2NCgzLCAxMCwgdHJ1ZSkgaXMgdW5kZWZpbmVkLgorUEFT
UyB2aWV3LmdldEZsb2F0NjQoMywgdHJ1ZSkgaXMgMTAKK1BBU1Mgdmlldy5zZXRGbG9hdDY0KDcs
IDEwLCB0cnVlKSBpcyB1bmRlZmluZWQuCitQQVNTIHZpZXcuZ2V0RmxvYXQ2NCg3LCB0cnVlKSBp
cyAxMAorUEFTUyB2aWV3LnNldEZsb2F0NjQoMTAsIDEwLCB0cnVlKSBpcyB1bmRlZmluZWQuCitQ
QVNTIHZpZXcuZ2V0RmxvYXQ2NCgxMCwgdHJ1ZSkgaXMgMTAKK1BBU1Mgdmlldy5zZXRGbG9hdDY0
KDAsIDEwLCBmYWxzZSkgaXMgdW5kZWZpbmVkLgorUEFTUyB2aWV3LmdldEZsb2F0NjQoMCwgZmFs
c2UpIGlzIDEwCitQQVNTIHZpZXcuc2V0RmxvYXQ2NCgzLCAxMCwgZmFsc2UpIGlzIHVuZGVmaW5l
ZC4KK1BBU1Mgdmlldy5nZXRGbG9hdDY0KDMsIGZhbHNlKSBpcyAxMAorUEFTUyB2aWV3LnNldEZs
b2F0NjQoNywgMTAsIGZhbHNlKSBpcyB1bmRlZmluZWQuCitQQVNTIHZpZXcuZ2V0RmxvYXQ2NCg3
LCBmYWxzZSkgaXMgMTAKK1BBU1Mgdmlldy5zZXRGbG9hdDY0KDEwLCAxMCwgZmFsc2UpIGlzIHVu
ZGVmaW5lZC4KK1BBU1Mgdmlldy5nZXRGbG9hdDY0KDEwLCBmYWxzZSkgaXMgMTAKK1BBU1Mgdmll
dy5zZXRGbG9hdDY0KDAsIDEuMjMsIHRydWUpIGlzIHVuZGVmaW5lZC4KK1BBU1Mgdmlldy5nZXRG
bG9hdDY0KDAsIHRydWUpIGlzIDEuMjMKK1BBU1Mgdmlldy5zZXRGbG9hdDY0KDMsIDEuMjMsIHRy
dWUpIGlzIHVuZGVmaW5lZC4KK1BBU1Mgdmlldy5nZXRGbG9hdDY0KDMsIHRydWUpIGlzIDEuMjMK
K1BBU1Mgdmlldy5zZXRGbG9hdDY0KDcsIDEuMjMsIHRydWUpIGlzIHVuZGVmaW5lZC4KK1BBU1Mg
dmlldy5nZXRGbG9hdDY0KDcsIHRydWUpIGlzIDEuMjMKK1BBU1Mgdmlldy5zZXRGbG9hdDY0KDEw
LCAxLjIzLCB0cnVlKSBpcyB1bmRlZmluZWQuCitQQVNTIHZpZXcuZ2V0RmxvYXQ2NCgxMCwgdHJ1
ZSkgaXMgMS4yMworUEFTUyB2aWV3LnNldEZsb2F0NjQoMCwgMS4yMywgZmFsc2UpIGlzIHVuZGVm
aW5lZC4KK1BBU1Mgdmlldy5nZXRGbG9hdDY0KDAsIGZhbHNlKSBpcyAxLjIzCitQQVNTIHZpZXcu
c2V0RmxvYXQ2NCgzLCAxLjIzLCBmYWxzZSkgaXMgdW5kZWZpbmVkLgorUEFTUyB2aWV3LmdldEZs
b2F0NjQoMywgZmFsc2UpIGlzIDEuMjMKK1BBU1Mgdmlldy5zZXRGbG9hdDY0KDcsIDEuMjMsIGZh
bHNlKSBpcyB1bmRlZmluZWQuCitQQVNTIHZpZXcuZ2V0RmxvYXQ2NCg3LCBmYWxzZSkgaXMgMS4y
MworUEFTUyB2aWV3LnNldEZsb2F0NjQoMTAsIDEuMjMsIGZhbHNlKSBpcyB1bmRlZmluZWQuCitQ
QVNTIHZpZXcuZ2V0RmxvYXQ2NCgxMCwgZmFsc2UpIGlzIDEuMjMKK1BBU1Mgdmlldy5zZXRGbG9h
dDY0KDAsIC02MjEzNTc2LjQ4MzksIHRydWUpIGlzIHVuZGVmaW5lZC4KK1BBU1Mgdmlldy5nZXRG
bG9hdDY0KDAsIHRydWUpIGlzIC02MjEzNTc2LjQ4MzkKK1BBU1Mgdmlldy5zZXRGbG9hdDY0KDMs
IC02MjEzNTc2LjQ4MzksIHRydWUpIGlzIHVuZGVmaW5lZC4KK1BBU1Mgdmlldy5nZXRGbG9hdDY0
KDMsIHRydWUpIGlzIC02MjEzNTc2LjQ4MzkKK1BBU1Mgdmlldy5zZXRGbG9hdDY0KDcsIC02MjEz
NTc2LjQ4MzksIHRydWUpIGlzIHVuZGVmaW5lZC4KK1BBU1Mgdmlldy5nZXRGbG9hdDY0KDcsIHRy
dWUpIGlzIC02MjEzNTc2LjQ4MzkKK1BBU1Mgdmlldy5zZXRGbG9hdDY0KDEwLCAtNjIxMzU3Ni40
ODM5LCB0cnVlKSBpcyB1bmRlZmluZWQuCitQQVNTIHZpZXcuZ2V0RmxvYXQ2NCgxMCwgdHJ1ZSkg
aXMgLTYyMTM1NzYuNDgzOQorUEFTUyB2aWV3LnNldEZsb2F0NjQoMCwgLTYyMTM1NzYuNDgzOSwg
ZmFsc2UpIGlzIHVuZGVmaW5lZC4KK1BBU1Mgdmlldy5nZXRGbG9hdDY0KDAsIGZhbHNlKSBpcyAt
NjIxMzU3Ni40ODM5CitQQVNTIHZpZXcuc2V0RmxvYXQ2NCgzLCAtNjIxMzU3Ni40ODM5LCBmYWxz
ZSkgaXMgdW5kZWZpbmVkLgorUEFTUyB2aWV3LmdldEZsb2F0NjQoMywgZmFsc2UpIGlzIC02MjEz
NTc2LjQ4MzkKK1BBU1Mgdmlldy5zZXRGbG9hdDY0KDcsIC02MjEzNTc2LjQ4MzksIGZhbHNlKSBp
cyB1bmRlZmluZWQuCitQQVNTIHZpZXcuZ2V0RmxvYXQ2NCg3LCBmYWxzZSkgaXMgLTYyMTM1NzYu
NDgzOQorUEFTUyB2aWV3LnNldEZsb2F0NjQoMTAsIC02MjEzNTc2LjQ4MzksIGZhbHNlKSBpcyB1
bmRlZmluZWQuCitQQVNTIHZpZXcuZ2V0RmxvYXQ2NCgxMCwgZmFsc2UpIGlzIC02MjEzNTc2LjQ4
MzkKK1BBU1Mgdmlldy5zZXRGbG9hdDY0KDAsIE5hTiwgdHJ1ZSkgaXMgdW5kZWZpbmVkLgorUEFT
UyB2aWV3LmdldEZsb2F0NjQoMCwgdHJ1ZSkgaXMgTmFOCitQQVNTIHZpZXcuc2V0RmxvYXQ2NCgz
LCBOYU4sIHRydWUpIGlzIHVuZGVmaW5lZC4KK1BBU1Mgdmlldy5nZXRGbG9hdDY0KDMsIHRydWUp
IGlzIE5hTgorUEFTUyB2aWV3LnNldEZsb2F0NjQoNywgTmFOLCB0cnVlKSBpcyB1bmRlZmluZWQu
CitQQVNTIHZpZXcuZ2V0RmxvYXQ2NCg3LCB0cnVlKSBpcyBOYU4KK1BBU1Mgdmlldy5zZXRGbG9h
dDY0KDEwLCBOYU4sIHRydWUpIGlzIHVuZGVmaW5lZC4KK1BBU1Mgdmlldy5nZXRGbG9hdDY0KDEw
LCB0cnVlKSBpcyBOYU4KK1BBU1Mgdmlldy5zZXRGbG9hdDY0KDAsIE5hTiwgZmFsc2UpIGlzIHVu
ZGVmaW5lZC4KK1BBU1Mgdmlldy5nZXRGbG9hdDY0KDAsIGZhbHNlKSBpcyBOYU4KK1BBU1Mgdmll
dy5zZXRGbG9hdDY0KDMsIE5hTiwgZmFsc2UpIGlzIHVuZGVmaW5lZC4KK1BBU1Mgdmlldy5nZXRG
bG9hdDY0KDMsIGZhbHNlKSBpcyBOYU4KK1BBU1Mgdmlldy5zZXRGbG9hdDY0KDcsIE5hTiwgZmFs
c2UpIGlzIHVuZGVmaW5lZC4KK1BBU1Mgdmlldy5nZXRGbG9hdDY0KDcsIGZhbHNlKSBpcyBOYU4K
K1BBU1Mgdmlldy5zZXRGbG9hdDY0KDEwLCBOYU4sIGZhbHNlKSBpcyB1bmRlZmluZWQuCitQQVNT
IHZpZXcuZ2V0RmxvYXQ2NCgxMCwgZmFsc2UpIGlzIE5hTgorUEFTUyB2aWV3LnNldEZsb2F0NjQo
MCwgLU5hTiwgdHJ1ZSkgaXMgdW5kZWZpbmVkLgorUEFTUyB2aWV3LmdldEZsb2F0NjQoMCwgdHJ1
ZSkgaXMgLU5hTgorUEFTUyB2aWV3LnNldEZsb2F0NjQoMywgLU5hTiwgdHJ1ZSkgaXMgdW5kZWZp
bmVkLgorUEFTUyB2aWV3LmdldEZsb2F0NjQoMywgdHJ1ZSkgaXMgLU5hTgorUEFTUyB2aWV3LnNl
dEZsb2F0NjQoNywgLU5hTiwgdHJ1ZSkgaXMgdW5kZWZpbmVkLgorUEFTUyB2aWV3LmdldEZsb2F0
NjQoNywgdHJ1ZSkgaXMgLU5hTgorUEFTUyB2aWV3LnNldEZsb2F0NjQoMTAsIC1OYU4sIHRydWUp
IGlzIHVuZGVmaW5lZC4KK1BBU1Mgdmlldy5nZXRGbG9hdDY0KDEwLCB0cnVlKSBpcyAtTmFOCitQ
QVNTIHZpZXcuc2V0RmxvYXQ2NCgwLCAtTmFOLCBmYWxzZSkgaXMgdW5kZWZpbmVkLgorUEFTUyB2
aWV3LmdldEZsb2F0NjQoMCwgZmFsc2UpIGlzIC1OYU4KK1BBU1Mgdmlldy5zZXRGbG9hdDY0KDMs
IC1OYU4sIGZhbHNlKSBpcyB1bmRlZmluZWQuCitQQVNTIHZpZXcuZ2V0RmxvYXQ2NCgzLCBmYWxz
ZSkgaXMgLU5hTgorUEFTUyB2aWV3LnNldEZsb2F0NjQoNywgLU5hTiwgZmFsc2UpIGlzIHVuZGVm
aW5lZC4KK1BBU1Mgdmlldy5nZXRGbG9hdDY0KDcsIGZhbHNlKSBpcyAtTmFOCitQQVNTIHZpZXcu
c2V0RmxvYXQ2NCgxMCwgLU5hTiwgZmFsc2UpIGlzIHVuZGVmaW5lZC4KK1BBU1Mgdmlldy5nZXRG
bG9hdDY0KDEwLCBmYWxzZSkgaXMgLU5hTgorCitUZXN0IGZvciB3cm9uZyBhcmd1bWVudHMgcGFz
c2VkIHRvIGdldCBtZXRob2RzCitQQVNTIHZpZXcuc2V0SW50OCgpIHRocmV3IGV4Y2VwdGlvbiBT
eW50YXhFcnJvcjogTm90IGVub3VnaCBhcmd1bWVudHMuCitQQVNTIHZpZXcuc2V0VWludDgoKSB0
aHJldyBleGNlcHRpb24gU3ludGF4RXJyb3I6IE5vdCBlbm91Z2ggYXJndW1lbnRzLgorUEFTUyB2
aWV3LnNldEludDE2KCkgdGhyZXcgZXhjZXB0aW9uIFN5bnRheEVycm9yOiBOb3QgZW5vdWdoIGFy
Z3VtZW50cy4KK1BBU1Mgdmlldy5zZXRVaW50MTYoKSB0aHJldyBleGNlcHRpb24gU3ludGF4RXJy
b3I6IE5vdCBlbm91Z2ggYXJndW1lbnRzLgorUEFTUyB2aWV3LnNldEludDMyKCkgdGhyZXcgZXhj
ZXB0aW9uIFN5bnRheEVycm9yOiBOb3QgZW5vdWdoIGFyZ3VtZW50cy4KK1BBU1Mgdmlldy5zZXRV
aW50MzIoKSB0aHJldyBleGNlcHRpb24gU3ludGF4RXJyb3I6IE5vdCBlbm91Z2ggYXJndW1lbnRz
LgorUEFTUyB2aWV3LnNldEZsb2F0MzIoKSB0aHJldyBleGNlcHRpb24gU3ludGF4RXJyb3I6IE5v
dCBlbm91Z2ggYXJndW1lbnRzLgorUEFTUyB2aWV3LnNldEZsb2F0NjQoKSB0aHJldyBleGNlcHRp
b24gU3ludGF4RXJyb3I6IE5vdCBlbm91Z2ggYXJndW1lbnRzLgorUEFTUyB2aWV3LnNldEludDgo
MSkgdGhyZXcgZXhjZXB0aW9uIFN5bnRheEVycm9yOiBOb3QgZW5vdWdoIGFyZ3VtZW50cy4KK1BB
U1Mgdmlldy5zZXRVaW50OCgxKSB0aHJldyBleGNlcHRpb24gU3ludGF4RXJyb3I6IE5vdCBlbm91
Z2ggYXJndW1lbnRzLgorUEFTUyB2aWV3LnNldEludDE2KDEpIHRocmV3IGV4Y2VwdGlvbiBTeW50
YXhFcnJvcjogTm90IGVub3VnaCBhcmd1bWVudHMuCitQQVNTIHZpZXcuc2V0VWludDE2KDEpIHRo
cmV3IGV4Y2VwdGlvbiBTeW50YXhFcnJvcjogTm90IGVub3VnaCBhcmd1bWVudHMuCitQQVNTIHZp
ZXcuc2V0SW50MzIoMSkgdGhyZXcgZXhjZXB0aW9uIFN5bnRheEVycm9yOiBOb3QgZW5vdWdoIGFy
Z3VtZW50cy4KK1BBU1Mgdmlldy5zZXRVaW50MzIoMSkgdGhyZXcgZXhjZXB0aW9uIFN5bnRheEVy
cm9yOiBOb3QgZW5vdWdoIGFyZ3VtZW50cy4KK1BBU1Mgdmlldy5zZXRGbG9hdDMyKDEpIHRocmV3
IGV4Y2VwdGlvbiBTeW50YXhFcnJvcjogTm90IGVub3VnaCBhcmd1bWVudHMuCitQQVNTIHZpZXcu
c2V0RmxvYXQ2NCgxKSB0aHJldyBleGNlcHRpb24gU3ludGF4RXJyb3I6IE5vdCBlbm91Z2ggYXJn
dW1lbnRzLgorCitUZXN0IGZvciBpbmRleGluZyB0aGF0IHNob3VsZCBub3Qgd29yaworUEFTUyB2
aWV3WzBdIGlzIHVuZGVmaW5lZC4KK1BBU1Mgdmlld1swXSA9IDMgaXMgZGVmaW5lZC4KK1BBU1Mg
dmlldy5nZXRVaW50OCgwKSBpcyAxCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisK
K1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvd2Vi
Z2wvZGF0YS12aWV3LXRlc3QuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvY2FudmFzL3dlYmdsL2Rh
dGEtdmlldy10ZXN0Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uZDdj
YmNjMDgKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2NhbnZhcy93ZWJnbC9k
YXRhLXZpZXctdGVzdC5odG1sCkBAIC0wLDAgKzEsMzAxIEBACis8aHRtbD4KKzxoZWFkPgorPGxp
bmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSIuLi8uLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1zdHls
ZS5jc3MiLz4KKzxzY3JpcHQgc3JjPSIuLi8uLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMi
Pjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8ZGl2IGlkPSJkZXNjcmlwdGlvbiI+PC9kaXY+
Cis8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKworPHNjcmlwdD4KK2Rlc2NyaXB0aW9uKCJUZXN0
IERhdGFWaWV3LiIpOworCit2YXIgaW50QXJyYXkxID0gWzAsIDEsIDIsIDMsIDEwMCwgMTAxLCAx
MDIsIDEwMywgMTI4LCAxMjksIDEzMCwgMTMxLCAyNTIsIDI1MywgMjU0LCAyNTVdOwordmFyIGlu
dEFycmF5MiA9IFszMSwgMzIsIDMzLCAwLCAxLCAyLCAzLCAxMDAsIDEwMSwgMTAyLCAxMDMsIDEy
OCwgMTI5LCAxMzAsIDEzMSwgMjUyLCAyNTMsIDI1NCwgMjU1XTsKK3ZhciBlbXB0eUFycmF5ID0g
WzIwNCwgMjA0LCAyMDQsIDIwNCwgMjA0LCAyMDQsIDIwNCwgMjA0LCAyMDQsIDIwNCwgMjA0LCAy
MDQsIDIwNCwgMjA0LCAyMDQsIDIwNF07CisKK3ZhciBhcmF5QnVmZmVyID0gbnVsbDsKK3ZhciB2
aWV3ID0gbnVsbDsKK3ZhciB2aWV3U3RhcnQgPSAwOwordmFyIHZpZXdMZW5ndGggPSAwOworCitm
dW5jdGlvbiBnZXRFbGVtZW50U2l6ZShmdW5jKQoreworICAgIHN3aXRjaCAoZnVuYykgeworICAg
IGNhc2UgIkludDgiOgorICAgIGNhc2UgIlVpbnQ4IjoKKyAgICAgICAgcmV0dXJuIDE7CisgICAg
Y2FzZSAiSW50MTYiOgorICAgIGNhc2UgIlVpbnQxNiI6CisgICAgICAgIHJldHVybiAyOworICAg
IGNhc2UgIkludDMyIjoKKyAgICBjYXNlICJVaW50MzIiOgorICAgIGNhc2UgIkZsb2F0MzIiOgor
ICAgICAgICByZXR1cm4gNDsKKyAgICBjYXNlICJGbG9hdDY0IjoKKyAgICAgICAgcmV0dXJuIDg7
CisgICAgZGVmYXVsdDoKKyAgICAgICAgZGVidWcoIlNob3VsZCBub3QgcmVhY2hlZCIpOworICAg
IH0KK30KKworZnVuY3Rpb24gY2hlY2tHZXQoZnVuYywgaW5kZXgsIGV4cGVjdGVkLCBsaXR0bGVF
bmRpYW4pCit7CisgICAgdmFyIGV4cHIgPSAidmlldy5nZXQiICsgZnVuYyArICIoIiArIGluZGV4
OworICAgIGlmIChsaXR0bGVFbmRpYW4gIT0gdW5kZWZpbmVkKSB7CisgICAgICAgIGV4cHIgKz0g
IiwgIjsKKyAgICAgICAgZXhwciArPSBsaXR0bGVFbmRpYW4gPyAidHJ1ZSIgOiAiZmFsc2UiOwor
ICAgIH0KKyAgICBleHByICs9ICIpIjsKKyAgICBpZiAoaW5kZXggKyBnZXRFbGVtZW50U2l6ZShm
dW5jKSAtIDEgPCB2aWV3LmJ5dGVMZW5ndGgpCisgICAgICAgIHNob3VsZEJlKGV4cHIsIGV4cGVj
dGVkKTsKKyAgICBlbHNlCisgICAgICAgIHNob3VsZFRocm93KGV4cHIpOworfQorCitmdW5jdGlv
biBjaGVja1NldChmdW5jLCBpbmRleCwgdmFsdWUsIGxpdHRsZUVuZGlhbikKK3sKKyAgICB2YXIg
ZXhwciA9ICJ2aWV3LnNldCIgKyBmdW5jICsgIigiICsgaW5kZXggKyAiLCAiICsgdmFsdWU7Cisg
ICAgaWYgKGxpdHRsZUVuZGlhbiAhPSB1bmRlZmluZWQpIHsKKyAgICAgICAgZXhwciArPSAiLCAi
OworICAgICAgICBleHByICs9IGxpdHRsZUVuZGlhbiA/ICJ0cnVlIiA6ICJmYWxzZSI7CisgICAg
fQorICAgIGV4cHIgKz0gIikiOworICAgIGlmIChpbmRleCArIGdldEVsZW1lbnRTaXplKGZ1bmMp
IC0gMSA8IHZpZXcuYnl0ZUxlbmd0aCkgeworICAgICAgICBzaG91bGRCZVVuZGVmaW5lZChleHBy
KTsKKyAgICAgICAgY2hlY2tHZXQoZnVuYywgaW5kZXgsIHZhbHVlLCBsaXR0bGVFbmRpYW4pOwor
ICAgIH0gZWxzZQorICAgICAgICBzaG91bGRUaHJvdyhleHByKTsKK30KKworZnVuY3Rpb24gdGVz
dChpc1Rlc3RpbmdHZXQsIGZ1bmMsIGluZGV4LCB2YWx1ZSwgbGl0dGxlRW5kaWFuKQoreworICAg
IGlmIChpc1Rlc3RpbmdHZXQpCisgICAgICAgIGNoZWNrR2V0KGZ1bmMsIGluZGV4LCB2YWx1ZSwg
bGl0dGxlRW5kaWFuKTsKKyAgICAgZWxzZQorICAgICAgICBjaGVja1NldChmdW5jLCBpbmRleCwg
dmFsdWUsIGxpdHRsZUVuZGlhbik7Cit9CisKK2Z1bmN0aW9uIGNyZWF0ZURhdGFWaWV3KGFycmF5
LCBmcm9udFBhZGRpbmdOdW0sIGxpdHRsZUVuZGlhbiwgc3RhcnQsIGxlbmd0aCkKK3sKKyAgICBp
ZiAoIWxpdHRsZUVuZGlhbikKKyAgICAgICAgYXJyYXkucmV2ZXJzZSgpOworICAgIHZhciBwYWRk
aW5nQXJyYXkgPSBuZXcgQXJyYXkoZnJvbnRQYWRkaW5nTnVtKTsKKyAgICBhcnJheUJ1ZmZlciA9
IChuZXcgVWludDhBcnJheShwYWRkaW5nQXJyYXkuY29uY2F0KGFycmF5KSkpLmJ1ZmZlcjsKKyAg
ICB2aWV3U3RhcnQgPSAoc3RhcnQgIT0gdW5kZWZpbmVkKSA/IHN0YXJ0IDogMDsKKyAgICB2aWV3
TGVuZ3RoID0gKGxlbmd0aCAhPSB1bmRlZmluZWQpID8gbGVuZ3RoIDogYXJyYXlCdWZmZXIuYnl0
ZUxlbmd0aCAtIHZpZXdTdGFydDsKKyAgICB2aWV3ID0gbmV3IERhdGFWaWV3KGFycmF5QnVmZmVy
LCB2aWV3U3RhcnQsIHZpZXdMZW5ndGgpOworICAgIGlmICghbGl0dGxlRW5kaWFuKQorICAgICAg
ICBhcnJheS5yZXZlcnNlKCk7IC8vIHJlc3RvcmUgdGhlIGFycmF5LgorfQorCitmdW5jdGlvbiBy
dW5JbnRlZ2VyVGVzdENhc2VzKGlzVGVzdGluZ0dldCwgYXJyYXksIHN0YXJ0LCBsZW5ndGgpCit7
CisgICAgY3JlYXRlRGF0YVZpZXcoYXJyYXksIDAsIHRydWUsIHN0YXJ0LCBsZW5ndGgpOworCisg
ICAgdGVzdChpc1Rlc3RpbmdHZXQsICJJbnQ4IiwgMCwgIjAiKTsKKyAgICB0ZXN0KGlzVGVzdGlu
Z0dldCwgIkludDgiLCA4LCAiLTEyOCIpOworICAgIHRlc3QoaXNUZXN0aW5nR2V0LCAiSW50OCIs
IDE1LCAiLTEiKTsKKworICAgIHRlc3QoaXNUZXN0aW5nR2V0LCAiVWludDgiLCAwLCAiMCIpOwor
ICAgIHRlc3QoaXNUZXN0aW5nR2V0LCAiVWludDgiLCA4LCAiMTI4Iik7CisgICAgdGVzdChpc1Rl
c3RpbmdHZXQsICJVaW50OCIsIDE1LCAiMjU1Iik7CisKKyAgICAvLyBMaXR0bGUgZW5kaWFuLgor
ICAgIHRlc3QoaXNUZXN0aW5nR2V0LCAiSW50MTYiLCAwLCAiMjU2IiwgdHJ1ZSk7CisgICAgdGVz
dChpc1Rlc3RpbmdHZXQsICJJbnQxNiIsIDUsICIyNjIxMyIsIHRydWUpOworICAgIHRlc3QoaXNU
ZXN0aW5nR2V0LCAiSW50MTYiLCA5LCAiLTMyMTI3IiwgdHJ1ZSk7CisgICAgdGVzdChpc1Rlc3Rp
bmdHZXQsICJJbnQxNiIsIDE0LCAiLTIiLCB0cnVlKTsKKworICAgIC8vIEJpZyBlbmRpYW4uCisg
ICAgdGVzdChpc1Rlc3RpbmdHZXQsICJJbnQxNiIsIDAsICIxIik7CisgICAgdGVzdChpc1Rlc3Rp
bmdHZXQsICJJbnQxNiIsIDUsICIyNTk1OCIpOworICAgIHRlc3QoaXNUZXN0aW5nR2V0LCAiSW50
MTYiLCA5LCAiLTMyMzgyIik7CisgICAgdGVzdChpc1Rlc3RpbmdHZXQsICJJbnQxNiIsIDE0LCAi
LTI1NyIpOworCisgICAgLy8gTGl0dGxlIGVuZGlhbi4KKyAgICB0ZXN0KGlzVGVzdGluZ0dldCwg
IlVpbnQxNiIsIDAsICIyNTYiLCB0cnVlKTsKKyAgICB0ZXN0KGlzVGVzdGluZ0dldCwgIlVpbnQx
NiIsIDUsICIyNjIxMyIsIHRydWUpOworICAgIHRlc3QoaXNUZXN0aW5nR2V0LCAiVWludDE2Iiwg
OSwgIjMzNDA5IiwgdHJ1ZSk7CisgICAgdGVzdChpc1Rlc3RpbmdHZXQsICJVaW50MTYiLCAxNCwg
IjY1NTM0IiwgdHJ1ZSk7CisKKyAgICAvLyBCaWcgZW5kaWFuLgorICAgIHRlc3QoaXNUZXN0aW5n
R2V0LCAiVWludDE2IiwgMCwgIjEiKTsKKyAgICB0ZXN0KGlzVGVzdGluZ0dldCwgIlVpbnQxNiIs
IDUsICIyNTk1OCIpOworICAgIHRlc3QoaXNUZXN0aW5nR2V0LCAiVWludDE2IiwgOSwgIjMzMTU0
Iik7CisgICAgdGVzdChpc1Rlc3RpbmdHZXQsICJVaW50MTYiLCAxNCwgIjY1Mjc5Iik7CisKKyAg
ICAvLyBMaXR0bGUgZW5kaWFuLgorICAgIHRlc3QoaXNUZXN0aW5nR2V0LCAiSW50MzIiLCAwLCAi
NTA0NjI5NzYiLCB0cnVlKTsKKyAgICB0ZXN0KGlzVGVzdGluZ0dldCwgIkludDMyIiwgMywgIjE3
MTc5MjA3NzEiLCB0cnVlKTsKKyAgICB0ZXN0KGlzVGVzdGluZ0dldCwgIkludDMyIiwgNiwgIi0y
MTIyMjkxMzU0IiwgdHJ1ZSk7CisgICAgdGVzdChpc1Rlc3RpbmdHZXQsICJJbnQzMiIsIDksICIt
NTg0OTAyMzkiLCB0cnVlKTsKKyAgICB0ZXN0KGlzVGVzdGluZ0dldCwgIkludDMyIiwgMTIsICIt
NjYwNTIiLCB0cnVlKTsKKworICAgIC8vIEJpZyBlbmRpYW4uCisgICAgdGVzdChpc1Rlc3RpbmdH
ZXQsICJJbnQzMiIsIDAsICI2NjA1MSIpOworICAgIHRlc3QoaXNUZXN0aW5nR2V0LCAiSW50MzIi
LCAzLCAiNTY5MTEyMDYiKTsKKyAgICB0ZXN0KGlzVGVzdGluZ0dldCwgIkludDMyIiwgNiwgIjE3
MTgwNTkxMzciKTsKKyAgICB0ZXN0KGlzVGVzdGluZ0dldCwgIkludDMyIiwgOSwgIi0yMTIyMTUy
OTY0Iik7CisgICAgdGVzdChpc1Rlc3RpbmdHZXQsICJJbnQzMiIsIDEyLCAiLTUwNDYyOTc3Iik7
CisKKyAgICAvLyBMaXR0bGUgZW5kaWFuLgorICAgIHRlc3QoaXNUZXN0aW5nR2V0LCAiVWludDMy
IiwgMCwgIjUwNDYyOTc2IiwgdHJ1ZSk7CisgICAgdGVzdChpc1Rlc3RpbmdHZXQsICJVaW50MzIi
LCAzLCAiMTcxNzkyMDc3MSIsIHRydWUpOworICAgIHRlc3QoaXNUZXN0aW5nR2V0LCAiVWludDMy
IiwgNiwgIjIxNzI2NzU5NDIiLCB0cnVlKTsKKyAgICB0ZXN0KGlzVGVzdGluZ0dldCwgIlVpbnQz
MiIsIDksICI0MjM2NDc3MDU3IiwgdHJ1ZSk7CisgICAgdGVzdChpc1Rlc3RpbmdHZXQsICJVaW50
MzIiLCAxMiwgIjQyOTQ5MDEyNDQiLCB0cnVlKTsKKworICAgIC8vIEJpZyBlbmRpYW4uCisgICAg
dGVzdChpc1Rlc3RpbmdHZXQsICJVaW50MzIiLCAwLCAiNjYwNTEiKTsKKyAgICB0ZXN0KGlzVGVz
dGluZ0dldCwgIlVpbnQzMiIsIDMsICI1NjkxMTIwNiIpOworICAgIHRlc3QoaXNUZXN0aW5nR2V0
LCAiVWludDMyIiwgNiwgIjE3MTgwNTkxMzciKTsKKyAgICB0ZXN0KGlzVGVzdGluZ0dldCwgIlVp
bnQzMiIsIDksICIyMTcyODE0MzMyIik7CisgICAgdGVzdChpc1Rlc3RpbmdHZXQsICJVaW50MzIi
LCAxMiwgIjQyNDQ1MDQzMTkiKTsKK30KKworZnVuY3Rpb24gdGVzdEZsb2F0KGlzVGVzdGluZ0dl
dCwgZnVuYywgYXJyYXksIHN0YXJ0LCBleHBlY3RlZCkKK3sKKyAgICAvLyBMaXR0bGUgZW5kaWFu
LgorICAgIGNyZWF0ZURhdGFWaWV3KGFycmF5LCAwLCB0cnVlLCBzdGFydCk7CisgICAgdGVzdChp
c1Rlc3RpbmdHZXQsIGZ1bmMsIDAsIGV4cGVjdGVkLCB0cnVlKTsKKyAgICBjcmVhdGVEYXRhVmll
dyhhcnJheSwgMywgdHJ1ZSwgc3RhcnQpOworICAgIHRlc3QoaXNUZXN0aW5nR2V0LCBmdW5jLCAz
LCBleHBlY3RlZCwgdHJ1ZSk7CisgICAgY3JlYXRlRGF0YVZpZXcoYXJyYXksIDcsIHRydWUsIHN0
YXJ0KTsKKyAgICB0ZXN0KGlzVGVzdGluZ0dldCwgZnVuYywgNywgZXhwZWN0ZWQsIHRydWUpOwor
ICAgIGNyZWF0ZURhdGFWaWV3KGFycmF5LCAxMCwgdHJ1ZSwgc3RhcnQpOworICAgIHRlc3QoaXNU
ZXN0aW5nR2V0LCBmdW5jLCAxMCwgZXhwZWN0ZWQsIHRydWUpOworICAgIAorICAgIC8vIEJpZyBl
bmRpYW4uCisgICAgY3JlYXRlRGF0YVZpZXcoYXJyYXksIDAsIGZhbHNlKTsKKyAgICB0ZXN0KGlz
VGVzdGluZ0dldCwgZnVuYywgMCwgZXhwZWN0ZWQsIGZhbHNlKTsKKyAgICBjcmVhdGVEYXRhVmll
dyhhcnJheSwgMywgZmFsc2UpOworICAgIHRlc3QoaXNUZXN0aW5nR2V0LCBmdW5jLCAzLCBleHBl
Y3RlZCwgZmFsc2UpOworICAgIGNyZWF0ZURhdGFWaWV3KGFycmF5LCA3LCBmYWxzZSk7CisgICAg
dGVzdChpc1Rlc3RpbmdHZXQsIGZ1bmMsIDcsIGV4cGVjdGVkLCBmYWxzZSk7CisgICAgY3JlYXRl
RGF0YVZpZXcoYXJyYXksIDEwLCBmYWxzZSk7CisgICAgdGVzdChpc1Rlc3RpbmdHZXQsIGZ1bmMs
IDEwLCBleHBlY3RlZCwgZmFsc2UpOworfQorCitmdW5jdGlvbiBydW5GbG9hdFRlc3RDYXNlcyhp
c1Rlc3RpbmdHZXQsIHN0YXJ0KQoreworICAgIHRlc3RGbG9hdChpc1Rlc3RpbmdHZXQsICJGbG9h
dDMyIiwgaXNUZXN0aW5nR2V0ID8gWzAsIDAsIDMyLCA2NV0gOiBlbXB0eUFycmF5LCBzdGFydCwg
IjEwIik7CisgICAgdGVzdEZsb2F0KGlzVGVzdGluZ0dldCwgIkZsb2F0MzIiLCBpc1Rlc3RpbmdH
ZXQgPyBbMTY0LCAxMTIsIDE1NywgNjNdIDogZW1wdHlBcnJheSwgc3RhcnQsICIxLjIzMDAwMDAx
OTA3MzQ4NjMiKTsKKyAgICB0ZXN0RmxvYXQoaXNUZXN0aW5nR2V0LCAiRmxvYXQzMiIsIGlzVGVz
dGluZ0dldCA/IFs5NSwgNTMsIDUwLCAxOTldIDogZW1wdHlBcnJheSwgc3RhcnQsICItNDU2MjEu
MzcxMDkzNzUiKTsKKyAgICB0ZXN0RmxvYXQoaXNUZXN0aW5nR2V0LCAiRmxvYXQzMiIsIGlzVGVz
dGluZ0dldCA/IFsyNTUsIDI1NSwgMjU1LCAxMjddIDogZW1wdHlBcnJheSwgc3RhcnQsICJOYU4i
KTsKKyAgICB0ZXN0RmxvYXQoaXNUZXN0aW5nR2V0LCAiRmxvYXQzMiIsIGlzVGVzdGluZ0dldCA/
IFsyNTUsIDI1NSwgMjU1LCAyNTVdIDogZW1wdHlBcnJheSwgc3RhcnQsICItTmFOIik7CisKKyAg
ICB0ZXN0RmxvYXQoaXNUZXN0aW5nR2V0LCAiRmxvYXQ2NCIsIGlzVGVzdGluZ0dldCA/IFswLCAw
LCAwLCAwLCAwLCAwLCAzNiwgNjRdIDogZW1wdHlBcnJheSwgc3RhcnQsICIxMCIpOworICAgIHRl
c3RGbG9hdChpc1Rlc3RpbmdHZXQsICJGbG9hdDY0IiwgaXNUZXN0aW5nR2V0ID8gWzE3NCwgNzEs
IDIyNSwgMTIyLCAyMCwgMTc0LCAyNDMsIDYzXSA6IGVtcHR5QXJyYXksIHN0YXJ0LCAiMS4yMyIp
OworICAgIHRlc3RGbG9hdChpc1Rlc3RpbmdHZXQsICJGbG9hdDY0IiwgaXNUZXN0aW5nR2V0ID8g
WzE4MSwgNTUsIDI0OCwgMzAsIDI0MiwgMTc5LCA4NywgMTkzXSA6IGVtcHR5QXJyYXksIHN0YXJ0
LCAiLTYyMTM1NzYuNDgzOSIpOworICAgIHRlc3RGbG9hdChpc1Rlc3RpbmdHZXQsICJGbG9hdDY0
IiwgaXNUZXN0aW5nR2V0ID8gWzI1NSwgMjU1LCAyNTUsIDI1NSwgMjU1LCAyNTUsIDI1NSwgMTI3
XSA6IGVtcHR5QXJyYXksIHN0YXJ0LCAiTmFOIik7CisgICAgdGVzdEZsb2F0KGlzVGVzdGluZ0dl
dCwgIkZsb2F0NjQiLCBpc1Rlc3RpbmdHZXQgPyBbMjU1LCAyNTUsIDI1NSwgMjU1LCAyNTUsIDI1
NSwgMjU1LCAyNTVdIDogZW1wdHlBcnJheSwgc3RhcnQsICItTmFOIik7Cit9CisKK2Z1bmN0aW9u
IHJ1bkNvbnN0cnVjdG9yVGVzdHMoKQoreworICAgIGFyYXlCdWZmZXIgPSAobmV3IFVpbnQ4QXJy
YXkoWzEsIDJdKSkuYnVmZmVyOworCisgICAgZGVidWcoIiIpOworICAgIGRlYnVnKCJUZXN0IGZv
ciBjb25zdHJ1Y3RvciB0YWtpbmcgMSBhcmd1bWVudCIpOworICAgIHNob3VsZEJlRGVmaW5lZCgi
dmlldyA9IG5ldyBEYXRhVmlldyhhcmF5QnVmZmVyKSIpOworICAgIHNob3VsZEJlKCJ2aWV3LmJ5
dGVPZmZzZXQiLCAiMCIpOworICAgIHNob3VsZEJlKCJ2aWV3LmJ5dGVMZW5ndGgiLCAiMiIpOwor
CisgICAgZGVidWcoIiIpOworICAgIGRlYnVnKCJUZXN0IGZvciBjb25zdHJ1Y3RvciB0YWtpbmcg
MiBhcmd1bWVudHMiKTsKKyAgICBzaG91bGRCZURlZmluZWQoInZpZXcgPSBuZXcgRGF0YVZpZXco
YXJheUJ1ZmZlciwgMSkiKTsKKyAgICBzaG91bGRCZSgidmlldy5ieXRlT2Zmc2V0IiwgIjEiKTsK
KyAgICBzaG91bGRCZSgidmlldy5ieXRlTGVuZ3RoIiwgIjEiKTsKKworICAgIGRlYnVnKCIiKTsK
KyAgICBkZWJ1ZygiVGVzdCBmb3IgY29uc3RydWN0b3IgdGFraW5nIDMgYXJndW1lbnRzIik7Cisg
ICAgc2hvdWxkQmVEZWZpbmVkKCJ2aWV3ID0gbmV3IERhdGFWaWV3KGFyYXlCdWZmZXIsIDAsIDEp
Iik7CisgICAgc2hvdWxkQmUoInZpZXcuYnl0ZU9mZnNldCIsICIwIik7CisgICAgc2hvdWxkQmUo
InZpZXcuYnl0ZUxlbmd0aCIsICIxIik7CisKKyAgICBkZWJ1ZygiIik7CisgICAgZGVidWcoIlRl
c3QgZm9yIGNvbnN0cnVjdG9yIHRocm93aW5nIGV4Y2VwdGlvbiIpOworICAgIHNob3VsZFRocm93
KCJ2aWV3ID0gbmV3IERhdGFWaWV3KGFyYXlCdWZmZXIsIDAsIDMpIik7CisgICAgc2hvdWxkVGhy
b3coInZpZXcgPSBuZXcgRGF0YVZpZXcoYXJheUJ1ZmZlciwgMSwgMikiKTsKKyAgICBzaG91bGRU
aHJvdygidmlldyA9IG5ldyBEYXRhVmlldyhhcmF5QnVmZmVyLCAyLCAxKSIpOworfQorCitmdW5j
dGlvbiBydW5HZXRUZXN0cygpCit7CisgICAgZGVidWcoIiIpOworICAgIGRlYnVnKCJUZXN0IGZv
ciBnZXQgbWV0aG9kcyB0aGF0IHdvcmsiKTsKKyAgICBydW5JbnRlZ2VyVGVzdENhc2VzKHRydWUs
IGludEFycmF5MSwgMCwgMTYpOworICAgIHJ1bkZsb2F0VGVzdENhc2VzKHRydWUsIDApOworCisg
ICAgZGVidWcoIiIpOworICAgIGRlYnVnKCJUZXN0IGZvciBnZXQgbWV0aG9kcyB0aGF0IG1pZ2h0
IHJlYWQgYmV5b3VuZCByYW5nZSIpOworICAgIHJ1bkludGVnZXJUZXN0Q2FzZXModHJ1ZSwgaW50
QXJyYXkyLCAzLCAyKTsKKyAgICBydW5GbG9hdFRlc3RDYXNlcyh0cnVlLCAzKTsKKworICAgIGRl
YnVnKCIiKTsKKyAgICBkZWJ1ZygiVGVzdCBmb3Igd3JvbmcgYXJndW1lbnRzIHBhc3NlZCB0byBn
ZXQgbWV0aG9kcyIpOworICAgIHZpZXcgPSBuZXcgRGF0YVZpZXcoKG5ldyBVaW50OEFycmF5KFsx
LCAyXSkpLmJ1ZmZlcik7CisgICAgc2hvdWxkVGhyb3coInZpZXcuZ2V0SW50OCgpIik7CisgICAg
c2hvdWxkVGhyb3coInZpZXcuZ2V0VWludDgoKSIpOworICAgIHNob3VsZFRocm93KCJ2aWV3Lmdl
dEludDE2KCkiKTsKKyAgICBzaG91bGRUaHJvdygidmlldy5nZXRVaW50MTYoKSIpOworICAgIHNo
b3VsZFRocm93KCJ2aWV3LmdldEludDMyKCkiKTsKKyAgICBzaG91bGRUaHJvdygidmlldy5nZXRV
aW50MzIoKSIpOworICAgIHNob3VsZFRocm93KCJ2aWV3LmdldEZsb2F0MzIoKSIpOworICAgIHNo
b3VsZFRocm93KCJ2aWV3LmdldEZsb2F0NjQoKSIpOworfQorCitmdW5jdGlvbiBydW5TZXRUZXN0
cygpCit7CisgICAgZGVidWcoIiIpOworICAgIGRlYnVnKCJUZXN0IGZvciBzZXQgbWV0aG9kcyB0
aGF0IHdvcmsiKTsKKyAgICBydW5JbnRlZ2VyVGVzdENhc2VzKGZhbHNlLCBlbXB0eUFycmF5LCAw
LCAxNik7CisgICAgcnVuRmxvYXRUZXN0Q2FzZXMoZmFsc2UpOworCisgICAgZGVidWcoIiIpOwor
ICAgIGRlYnVnKCJUZXN0IGZvciBzZXQgbWV0aG9kcyB0aGF0IG1pZ2h0IHdyaXRlIGJleW9uZCB0
aGUgcmFuZ2UiKTsKKyAgICBydW5JbnRlZ2VyVGVzdENhc2VzKGZhbHNlLCBlbXB0eUFycmF5LCAz
LCAyKTsKKyAgICBydW5GbG9hdFRlc3RDYXNlcyhmYWxzZSwgNyk7CisKKyAgICBkZWJ1ZygiIik7
CisgICAgZGVidWcoIlRlc3QgZm9yIHdyb25nIGFyZ3VtZW50cyBwYXNzZWQgdG8gZ2V0IG1ldGhv
ZHMiKTsKKyAgICB2aWV3ID0gbmV3IERhdGFWaWV3KChuZXcgVWludDhBcnJheShbMSwgMl0pKS5i
dWZmZXIpOworICAgIHNob3VsZFRocm93KCJ2aWV3LnNldEludDgoKSIpOworICAgIHNob3VsZFRo
cm93KCJ2aWV3LnNldFVpbnQ4KCkiKTsKKyAgICBzaG91bGRUaHJvdygidmlldy5zZXRJbnQxNigp
Iik7CisgICAgc2hvdWxkVGhyb3coInZpZXcuc2V0VWludDE2KCkiKTsKKyAgICBzaG91bGRUaHJv
dygidmlldy5zZXRJbnQzMigpIik7CisgICAgc2hvdWxkVGhyb3coInZpZXcuc2V0VWludDMyKCki
KTsKKyAgICBzaG91bGRUaHJvdygidmlldy5zZXRGbG9hdDMyKCkiKTsKKyAgICBzaG91bGRUaHJv
dygidmlldy5zZXRGbG9hdDY0KCkiKTsKKyAgICBzaG91bGRUaHJvdygidmlldy5zZXRJbnQ4KDEp
Iik7CisgICAgc2hvdWxkVGhyb3coInZpZXcuc2V0VWludDgoMSkiKTsKKyAgICBzaG91bGRUaHJv
dygidmlldy5zZXRJbnQxNigxKSIpOworICAgIHNob3VsZFRocm93KCJ2aWV3LnNldFVpbnQxNigx
KSIpOworICAgIHNob3VsZFRocm93KCJ2aWV3LnNldEludDMyKDEpIik7CisgICAgc2hvdWxkVGhy
b3coInZpZXcuc2V0VWludDMyKDEpIik7CisgICAgc2hvdWxkVGhyb3coInZpZXcuc2V0RmxvYXQz
MigxKSIpOworICAgIHNob3VsZFRocm93KCJ2aWV3LnNldEZsb2F0NjQoMSkiKTsKK30KKworZnVu
Y3Rpb24gcnVuSW5kZXhpbmdUZXN0cygpCit7CisgICAgZGVidWcoIiIpOworICAgIGRlYnVnKCJU
ZXN0IGZvciBpbmRleGluZyB0aGF0IHNob3VsZCBub3Qgd29yayIpOworICAgIHZpZXcgPSBuZXcg
RGF0YVZpZXcoKG5ldyBVaW50OEFycmF5KFsxLCAyXSkpLmJ1ZmZlcik7CisgICAgc2hvdWxkQmVV
bmRlZmluZWQoInZpZXdbMF0iKTsKKyAgICBzaG91bGRCZURlZmluZWQoInZpZXdbMF0gPSAzIik7
CisgICAgc2hvdWxkQmUoInZpZXcuZ2V0VWludDgoMCkiLCAiMSIpOworfQorCitydW5Db25zdHJ1
Y3RvclRlc3RzKCk7CitydW5HZXRUZXN0cygpOworcnVuU2V0VGVzdHMoKTsKK3J1bkluZGV4aW5n
VGVzdHMoKTsKK3N1Y2Nlc3NmdWxseVBhcnNlZCA9IHRydWU7Cis8L3NjcmlwdD4KKworPHNjcmlw
dCBzcmM9Ii4uLy4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9i
b2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vV2luZG93L3Nj
cmlwdC10ZXN0cy93aW5kb3ctcHJvcGVydHktZGVzY3JpcHRvcnMuanMgYi9MYXlvdXRUZXN0cy9m
YXN0L2RvbS9XaW5kb3cvc2NyaXB0LXRlc3RzL3dpbmRvdy1wcm9wZXJ0eS1kZXNjcmlwdG9ycy5q
cwppbmRleCAxNDFiNjA4Li4xYTc5NjkyIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2Rv
bS9XaW5kb3cvc2NyaXB0LXRlc3RzL3dpbmRvdy1wcm9wZXJ0eS1kZXNjcmlwdG9ycy5qcworKysg
Yi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9XaW5kb3cvc2NyaXB0LXRlc3RzL3dpbmRvdy1wcm9wZXJ0
eS1kZXNjcmlwdG9ycy5qcwpAQCAtMjEsNiArMjEsNyBAQCB2YXIgX19za2lwX18gPSB7CiAgICAg
Ly8gSWdub3JlIHRoZXNlIHByb3BlcnRpZXMgYmVjYXVzZSB0aGV5IGRvIG5vdCBleGlzdCBpbiBh
bGwgaW1wbGVtZW50YXRpb25zLiBUaGV5IHdpbGwgYmUgdGVzdGVkIHNlcGFyYXRlbHkKICAgICAi
V2ViR0xSZW5kZXJpbmdDb250ZXh0IiA6IDEsCiAgICAgIkFycmF5QnVmZmVyIiA6IDEsCisgICAg
IkRhdGFWaWV3IiA6IDEsCiAgICAgIkludDhBcnJheSIgOiAxLAogICAgICJVaW50OEFycmF5IiA6
IDEsCiAgICAgIkludDE2QXJyYXkiIDogMSwKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3Qv
ZG9tL1dpbmRvdy93aW5kb3ctcHJvcGVydGllcy5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20v
V2luZG93L3dpbmRvdy1wcm9wZXJ0aWVzLmh0bWwKaW5kZXggZDU5NzQ4Mi4uZmExZWI1NCAxMDA2
NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vV2luZG93L3dpbmRvdy1wcm9wZXJ0aWVzLmh0
bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vV2luZG93L3dpbmRvdy1wcm9wZXJ0aWVzLmh0
bWwKQEAgLTYzLDYgKzYzLDcgQEAgdmFyIF9fc2tpcF9fID0gewogICAgIC8vIElnbm9yZSB0aGVz
ZSBwcm9wZXJ0aWVzIGJlY2F1c2UgdGhleSBkbyBub3QgZXhpc3QgaW4gYWxsIGltcGxlbWVudGF0
aW9ucy4gVGhleSB3aWxsIGJlIHRlc3RlZCBzZXBhcmF0ZWx5CiAgICAgIndpbmRvdy5XZWJHTFJl
bmRlcmluZ0NvbnRleHQiIDogMSwgCiAgICAgIndpbmRvdy5BcnJheUJ1ZmZlciIgOiAxLAorICAg
ICJ3aW5kb3cuRGF0YVZpZXciIDogMSwKICAgICAid2luZG93LkludDhBcnJheSIgOiAxLAogICAg
ICJ3aW5kb3cuVWludDhBcnJheSIgOiAxLAogICAgICJ3aW5kb3cuSW50MTZBcnJheSIgOiAxLApk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vc2NyaXB0LXRlc3RzL3Byb3RvdHlwZS1p
bmhlcml0YW5jZS0yLmpzIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vc2NyaXB0LXRlc3RzL3Byb3Rv
dHlwZS1pbmhlcml0YW5jZS0yLmpzCmluZGV4IDNjNmQxMjIuLjIzMDkxMDYgMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL2Zhc3QvZG9tL3NjcmlwdC10ZXN0cy9wcm90b3R5cGUtaW5oZXJpdGFuY2Ut
Mi5qcworKysgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9zY3JpcHQtdGVzdHMvcHJvdG90eXBlLWlu
aGVyaXRhbmNlLTIuanMKQEAgLTYxLDYgKzYxLDcgQEAgZnVuY3Rpb24gY29uc3RydWN0b3JOYW1l
c0ZvcldpbmRvdyhnbG9iYWxPYmplY3QpCiAgICAgICAgIC8vIElnbm9yZSB0aGVzZSBwcm9wZXJ0
aWVzIGJlY2F1c2UgdGhleSBkbyBub3QgZXhpc3QgaW4gYWxsIGltcGxlbWVudGF0aW9ucy4gVGhl
eSB3aWxsIGJlIHRlc3RlZCBzZXBhcmF0ZWx5CiAgICAgICAgIGlmICh0eXBlID09ICJXZWJHTFJl
bmRlcmluZ0NvbnRleHRDb25zdHJ1Y3RvciIgfHwgCiAgICAgICAgICAgICB0eXBlID09ICJBcnJh
eUJ1ZmZlckNvbnN0cnVjdG9yIiB8fAorICAgICAgICAgICAgdHlwZSA9PSAiRGF0YVZpZXdDb25z
dHJ1Y3RvciIgfHwKICAgICAgICAgICAgIHR5cGUgPT0iRmxvYXQzMkFycmF5Q29uc3RydWN0b3Ii
IHx8CiAgICAgICAgICAgICB0eXBlID09IkludDhBcnJheUNvbnN0cnVjdG9yIiB8fAogICAgICAg
ICAgICAgdHlwZSA9PSJJbnQxNkFycmF5Q29uc3RydWN0b3IiIHx8CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9mYXN0L2RvbS9zY3JpcHQtdGVzdHMvcHJvdG90eXBlLWluaGVyaXRhbmNlLmpzIGIv
TGF5b3V0VGVzdHMvZmFzdC9kb20vc2NyaXB0LXRlc3RzL3Byb3RvdHlwZS1pbmhlcml0YW5jZS5q
cwppbmRleCA4OGYyNzkzLi44MjJjY2IzIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2Rv
bS9zY3JpcHQtdGVzdHMvcHJvdG90eXBlLWluaGVyaXRhbmNlLmpzCisrKyBiL0xheW91dFRlc3Rz
L2Zhc3QvZG9tL3NjcmlwdC10ZXN0cy9wcm90b3R5cGUtaW5oZXJpdGFuY2UuanMKQEAgLTE3LDcg
KzE3LDcgQEAgdmFyIHNraXBwZWRQcm9wZXJ0aWVzID0gWwogICAgICJ3ZWJraXRQZXJmb3JtYW5j
ZSIsCiAgICAgIldlYkdMUmVuZGVyaW5nQ29udGV4dCIsCiAgICAgIkFycmF5QnVmZmVyIiwKLSAg
ICAiSW50OEFycmF5IiwgIlVpbnQ4QXJyYXkiLCAiSW50MTZBcnJheSIsICJVaW50MTZBcnJheSIs
ICJJbnQzMkFycmF5IiwgIlVpbnQzMkFycmF5IiwgIkZsb2F0MzJBcnJheSIsCisgICAgIkRhdGFW
aWV3IiwgIkludDhBcnJheSIsICJVaW50OEFycmF5IiwgIkludDE2QXJyYXkiLCAiVWludDE2QXJy
YXkiLCAiSW50MzJBcnJheSIsICJVaW50MzJBcnJheSIsICJGbG9hdDMyQXJyYXkiLAogICAgICJG
aWxlRXJyb3IiLCAiRmlsZVJlYWRlciIsICJyZXF1ZXN0RmlsZVN5c3RlbSIsCiAgICAgImluZGV4
ZWREQiIsICJJREJLZXlSYW5nZSIsICJJREJDdXJzb3IiLCAiSURCRGF0YWJhc2UiLCAiSURCRGF0
YWJhc2VFcnJvciIsICJJREJEYXRhYmFzZUV4Y2VwdGlvbiIsICJJREJFcnJvckV2ZW50IiwgIklE
QkV2ZW50IiwgIklEQkZhY3RvcnkiLCAiSURCSW5kZXgiLCAiSURCT2JqZWN0U3RvcmUiLCAiSURC
UmVxdWVzdCIsICJJREJTdWNjZXNzRXZlbnQiLCAiSURCVHJhbnNhY3Rpb24iLAogICAgICJzaG93
TW9kYWxEaWFsb2ciLApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9qcy9zY3JpcHQtdGVz
dHMvZ2xvYmFsLWNvbnN0cnVjdG9ycy5qcyBiL0xheW91dFRlc3RzL2Zhc3QvanMvc2NyaXB0LXRl
c3RzL2dsb2JhbC1jb25zdHJ1Y3RvcnMuanMKaW5kZXggMDNlZjBkZi4uZDZjMTVlNSAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9qcy9zY3JpcHQtdGVzdHMvZ2xvYmFsLWNvbnN0cnVjdG9y
cy5qcworKysgYi9MYXlvdXRUZXN0cy9mYXN0L2pzL3NjcmlwdC10ZXN0cy9nbG9iYWwtY29uc3Ry
dWN0b3JzLmpzCkBAIC0xOSw2ICsxOSw3IEBAIGZvciAodmFyIHggaW4gY29uc3RydWN0b3JOYW1l
cykgewogICAgIC8vIElnbm9yZSB0aGVzZSBwcm9wZXJ0aWVzIGJlY2F1c2UgdGhleSBkbyBub3Qg
ZXhpc3QgaW4gYWxsIGltcGxlbWVudGF0aW9ucy4gVGhleSB3aWxsIGJlIHRlc3RlZCBzZXBhcmF0
ZWx5CiAgICAgaWYgKG5hbWUgPT0gIldlYkdMUmVuZGVyaW5nQ29udGV4dCIgfHwKICAgICAgICAg
bmFtZSA9PSAiQXJyYXlCdWZmZXIiIHx8CisgICAgICAgIG5hbWUgPT0gIkRhdGFWaWV3IiB8fAog
ICAgICAgICBuYW1lID09ICJJbnQ4QXJyYXkiIHx8CiAgICAgICAgIG5hbWUgPT0gIlVpbnQ4QXJy
YXkiIHx8CiAgICAgICAgIG5hbWUgPT0gIkludDE2QXJyYXkiIHx8CmRpZmYgLS1naXQgYS9XZWJD
b3JlL0NNYWtlTGlzdHMudHh0IGIvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAppbmRleCA1OGQ4MDY2
Li41NGRkNmRmIDEwMDY0NAotLS0gYS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CisrKyBiL1dlYkNv
cmUvQ01ha2VMaXN0cy50eHQKQEAgLTI5Myw2ICsyOTMsNyBAQCBTRVQoV2ViQ29yZV9JRExfRklM
RVMKICAgICBodG1sL2NhbnZhcy9DYW52YXNQYXR0ZXJuLmlkbAogICAgIGh0bWwvY2FudmFzL0Nh
bnZhc1JlbmRlcmluZ0NvbnRleHQyRC5pZGwKICAgICBodG1sL2NhbnZhcy9DYW52YXNSZW5kZXJp
bmdDb250ZXh0LmlkbAorICAgIGh0bWwvY2FudmFzL0RhdGFWaWV3LmlkbAogICAgIGh0bWwvY2Fu
dmFzL0Zsb2F0MzJBcnJheS5pZGwKICAgICBodG1sL2NhbnZhcy9JbnQxNkFycmF5LmlkbAogICAg
IGh0bWwvY2FudmFzL0ludDMyQXJyYXkuaWRsCmRpZmYgLS1naXQgYS9XZWJDb3JlL0NoYW5nZUxv
ZyBiL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IGQ5NWNhYTAuLjZjNjgzZmQgMTAwNjQ0Ci0tLSBh
L1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNTIg
QEAKKzIwMTAtMTEtMjQgIEppYW4gTGkgIDxqaWFubGlAY2hyb21pdW0ub3JnPgorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEltcGxlbWVudCBEYXRhVmll
dyBpbnRlcmZhY2UgZnJvbSBUeXBlZCBBcnJheSBzcGVjaWZpY2F0aW9uCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00NjU0MQorCisgICAgICAgIFRlc3Q6
IGZhc3QvY2FudmFzL3dlYmdsL2RhdGEtdmlldy10ZXN0Lmh0bWwKKworICAgICAgICAqIENNYWtl
TGlzdHMudHh0OgorICAgICAgICAqIERlcml2ZWRTb3VyY2VzLm1ha2U6CisgICAgICAgICogR05V
bWFrZWZpbGUuYW06CisgICAgICAgICogV2ViQ29yZS5neXBpOgorICAgICAgICAqIFdlYkNvcmUu
cHJpOgorICAgICAgICAqIFdlYkNvcmUucHJvOgorICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBiaW5kaW5ncy9nZW5lcmljL1J1bnRpbWVFbmFi
bGVkRmVhdHVyZXMuaDoKKyAgICAgICAgKFdlYkNvcmU6OlJ1bnRpbWVFbmFibGVkRmVhdHVyZXM6
OmRhdGFWaWV3RW5hYmxlZCk6CisgICAgICAgICogYmluZGluZ3MvanMvSlNBcnJheUJ1ZmZlclZp
ZXdIZWxwZXIuaDoKKyAgICAgICAgKFdlYkNvcmU6OmNvbnN0cnVjdEFycmF5QnVmZmVyVmlld1dp
dGhBcnJheUJ1ZmZlckFyZ3VtZW50KToKKyAgICAgICAgKFdlYkNvcmU6OmNvbnN0cnVjdEFycmF5
QnVmZmVyVmlldyk6CisgICAgICAgICogYmluZGluZ3MvanMvSlNET01XaW5kb3dDdXN0b20uY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6SlNET01XaW5kb3c6OmRhdGFWaWV3KToKKyAgICAgICAgKiBi
aW5kaW5ncy9qcy9KU0RhdGFWaWV3Q3VzdG9tLmNwcDogQWRkZWQuCisgICAgICAgICogYmluZGlu
Z3MvanMvSlNGbG9hdDMyQXJyYXlDdXN0b20uY3BwOgorICAgICAgICAoV2ViQ29yZTo6SlNGbG9h
dDMyQXJyYXlDb25zdHJ1Y3Rvcjo6Y29uc3RydWN0SlNGbG9hdDMyQXJyYXkpOgorICAgICAgICAq
IGJpbmRpbmdzL2pzL0pTSW50MTZBcnJheUN1c3RvbS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpK
U0ludDE2QXJyYXlDb25zdHJ1Y3Rvcjo6Y29uc3RydWN0SlNJbnQxNkFycmF5KToKKyAgICAgICAg
KiBiaW5kaW5ncy9qcy9KU0ludDMyQXJyYXlDdXN0b20uY3BwOgorICAgICAgICAoV2ViQ29yZTo6
SlNJbnQzMkFycmF5Q29uc3RydWN0b3I6OmNvbnN0cnVjdEpTSW50MzJBcnJheSk6CisgICAgICAg
ICogYmluZGluZ3MvanMvSlNJbnQ4QXJyYXlDdXN0b20uY3BwOgorICAgICAgICAoV2ViQ29yZTo6
SlNJbnQ4QXJyYXlDb25zdHJ1Y3Rvcjo6Y29uc3RydWN0SlNJbnQ4QXJyYXkpOgorICAgICAgICAq
IGJpbmRpbmdzL2pzL0pTVWludDE2QXJyYXlDdXN0b20uY3BwOgorICAgICAgICAoV2ViQ29yZTo6
SlNVaW50MTZBcnJheUNvbnN0cnVjdG9yOjpjb25zdHJ1Y3RKU1VpbnQxNkFycmF5KToKKyAgICAg
ICAgKiBiaW5kaW5ncy9qcy9KU1VpbnQzMkFycmF5Q3VzdG9tLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkpTVWludDMyQXJyYXlDb25zdHJ1Y3Rvcjo6Y29uc3RydWN0SlNVaW50MzJBcnJheSk6Cisg
ICAgICAgICogYmluZGluZ3MvanMvSlNVaW50OEFycmF5Q3VzdG9tLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OkpTVWludDhBcnJheUNvbnN0cnVjdG9yOjpjb25zdHJ1Y3RKU1VpbnQ4QXJyYXkpOgor
ICAgICAgICAqIGJpbmRpbmdzL3Y4L2N1c3RvbS9WOEFycmF5QnVmZmVyVmlld0N1c3RvbS5oOgor
ICAgICAgICAoV2ViQ29yZTo6Y29uc3RydWN0V2ViR0xBcnJheVdpdGhBcnJheUJ1ZmZlckFyZ3Vt
ZW50KToKKyAgICAgICAgKFdlYkNvcmU6OmNvbnN0cnVjdFdlYkdMQXJyYXkpOgorICAgICAgICAq
IGJpbmRpbmdzL3Y4L2N1c3RvbS9WOERhdGFWaWV3Q3VzdG9tLmNwcDogQWRkZWQuCisgICAgICAg
ICogaHRtbC9jYW52YXMvQXJyYXlCdWZmZXJWaWV3Lmg6CisgICAgICAgIChXZWJDb3JlOjpBcnJh
eUJ1ZmZlclZpZXc6OmlzRGF0YVZpZXcpOgorICAgICAgICAqIGh0bWwvY2FudmFzL0RhdGFWaWV3
LmNwcDogQWRkZWQuCisgICAgICAgICogaHRtbC9jYW52YXMvRGF0YVZpZXcuaDogQWRkZWQuCisg
ICAgICAgICogaHRtbC9jYW52YXMvRGF0YVZpZXcuaWRsOiBBZGRlZC4KKyAgICAgICAgKiBwYWdl
L0RPTVdpbmRvdy5pZGw6CisKIDIwMTAtMTEtMjQgIE5pY29sYXMgRHVmcmVzbmUgIDxuaWNvbGFz
LmR1ZnJlc25lQGNvbGxhYm9yYS5jby51az4KIAogICAgICAgICBSZXZpZXdlZCBieSBNYXJ0aW4g
Um9iaW5zb24uCmRpZmYgLS1naXQgYS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UgYi9XZWJD
b3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UKaW5kZXggYzJhMTVmNy4uN2JmY2YxNCAxMDA2NDQKLS0t
IGEvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtlCisrKyBiL1dlYkNvcmUvRGVyaXZlZFNvdXJj
ZXMubWFrZQpAQCAtNzYsNiArNzYsNyBAQCBET01fQ0xBU1NFUyA9IFwKICAgICBXZWJHTEFjdGl2
ZUluZm8gXAogICAgIEFycmF5QnVmZmVyVmlldyBcCiAgICAgQXJyYXlCdWZmZXIgXAorICAgIERh
dGFWaWV3IFwKICAgICBXZWJHTEJ1ZmZlciBcCiAgICAgSW50OEFycmF5IFwKICAgICBXZWJHTENv
bnRleHRBdHRyaWJ1dGVzIFwKZGlmZiAtLWdpdCBhL1dlYkNvcmUvR05VbWFrZWZpbGUuYW0gYi9X
ZWJDb3JlL0dOVW1ha2VmaWxlLmFtCmluZGV4IGZlYWYzNjMuLjM3YzI1NjcgMTAwNjQ0Ci0tLSBh
L1dlYkNvcmUvR05VbWFrZWZpbGUuYW0KKysrIGIvV2ViQ29yZS9HTlVtYWtlZmlsZS5hbQpAQCAt
MTg2LDYgKzE4Niw4IEBAIHdlYmNvcmVfYnVpbHRfc291cmNlcyArPSBcCiAJRGVyaXZlZFNvdXJj
ZXMvV2ViQ29yZS9KU0RhdGFHcmlkQ29sdW1uLmggXAogCURlcml2ZWRTb3VyY2VzL1dlYkNvcmUv
SlNEYXRhR3JpZENvbHVtbkxpc3QuY3BwIFwKIAlEZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTRGF0
YUdyaWRDb2x1bW5MaXN0LmggXAorCURlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNEYXRhVmlldy5j
cHAgXAorCURlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNEYXRhVmlldy5oIFwKIAlEZXJpdmVkU291
cmNlcy9XZWJDb3JlL0pTRGVkaWNhdGVkV29ya2VyQ29udGV4dC5jcHAgXAogCURlcml2ZWRTb3Vy
Y2VzL1dlYkNvcmUvSlNEZWRpY2F0ZWRXb3JrZXJDb250ZXh0LmggXAogCURlcml2ZWRTb3VyY2Vz
L1dlYkNvcmUvSlNEZXZpY2VNb3Rpb25FdmVudC5jcHAgXApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9X
ZWJDb3JlLmd5cGkgYi9XZWJDb3JlL1dlYkNvcmUuZ3lwaQppbmRleCAyYzgxN2NiLi40NjdmZWM0
IDEwMDY0NAotLS0gYS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQorKysgYi9XZWJDb3JlL1dlYkNvcmUu
Z3lwaQpAQCAtMjA3LDYgKzIwNyw3IEBACiAgICAgICAgICAgICAnaHRtbC9jYW52YXMvQ2FudmFz
UGl4ZWxBcnJheS5pZGwnLAogICAgICAgICAgICAgJ2h0bWwvY2FudmFzL0NhbnZhc1JlbmRlcmlu
Z0NvbnRleHQuaWRsJywKICAgICAgICAgICAgICdodG1sL2NhbnZhcy9DYW52YXNSZW5kZXJpbmdD
b250ZXh0MkQuaWRsJywKKyAgICAgICAgICAgICdodG1sL2NhbnZhcy9EYXRhVmlldy5pZGwnLAog
ICAgICAgICAgICAgJ2h0bWwvY2FudmFzL0Zsb2F0MzJBcnJheS5pZGwnLAogICAgICAgICAgICAg
J2h0bWwvY2FudmFzL0ludDE2QXJyYXkuaWRsJywKICAgICAgICAgICAgICdodG1sL2NhbnZhcy9J
bnQzMkFycmF5LmlkbCcsCkBAIC03NDcsNiArNzQ4LDggQEAKICAgICAgICAgICAgICdiaW5kaW5n
cy92OC9jdXN0b20vVjhDYW52YXNQaXhlbEFycmF5Q3VzdG9tLmNwcCcsCiAgICAgICAgICAgICAn
YmluZGluZ3MvdjgvY3VzdG9tL1Y4QXJyYXlCdWZmZXJWaWV3Q3VzdG9tLmgnLAogICAgICAgICAg
ICAgJ2JpbmRpbmdzL3Y4L2N1c3RvbS9WOEFycmF5QnVmZmVyQ3VzdG9tLmNwcCcsCisgICAgICAg
ICAgICAnYmluZGluZ3MvdjgvY3VzdG9tL1Y4RGF0YVZpZXdDdXN0b20uY3BwJywKKyAgICAgICAg
ICAgICdiaW5kaW5ncy92OC9jdXN0b20vVjhEYXRhVmlld0N1c3RvbS5oJywKICAgICAgICAgICAg
ICdiaW5kaW5ncy92OC9jdXN0b20vVjhJbnQ4QXJyYXlDdXN0b20uY3BwJywKICAgICAgICAgICAg
ICdiaW5kaW5ncy92OC9jdXN0b20vVjhJbnQzMkFycmF5Q3VzdG9tLmNwcCcsCiAgICAgICAgICAg
ICAnYmluZGluZ3MvdjgvY3VzdG9tL1Y4RmlsZVJlYWRlckN1c3RvbS5jcHAnLApAQCAtMTg2Miw2
ICsxODY1LDggQEAKICAgICAgICAgICAgICdodG1sL2NhbnZhcy9DYW52YXNTdHlsZS5jcHAnLAog
ICAgICAgICAgICAgJ2h0bWwvY2FudmFzL0NhbnZhc1N0eWxlLmgnLAogICAgICAgICAgICAgJ2h0
bWwvY2FudmFzL0NoZWNrZWRJbnQuaCcsCisgICAgICAgICAgICAnaHRtbC9jYW52YXMvRGF0YVZp
ZXcuY3BwJywKKyAgICAgICAgICAgICdodG1sL2NhbnZhcy9EYXRhVmlldy5oJywKICAgICAgICAg
ICAgICdodG1sL2NhbnZhcy9GbG9hdDMyQXJyYXkuY3BwJywKICAgICAgICAgICAgICdodG1sL2Nh
bnZhcy9GbG9hdDMyQXJyYXkuaCcsCiAgICAgICAgICAgICAnaHRtbC9jYW52YXMvSW50MTZBcnJh
eS5jcHAnLApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9XZWJDb3JlLnByaSBiL1dlYkNvcmUvV2ViQ29y
ZS5wcmkKaW5kZXggZjhjZWE0MS4uNTA0MzE4OCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9XZWJDb3Jl
LnByaQorKysgYi9XZWJDb3JlL1dlYkNvcmUucHJpCkBAIC0xODIsNiArMTgyLDcgQEAgSURMX0JJ
TkRJTkdTICs9IFwKICAgICBmaWxlYXBpL01ldGFkYXRhQ2FsbGJhY2suaWRsIFwKICAgICBodG1s
L2NhbnZhcy9BcnJheUJ1ZmZlclZpZXcuaWRsIFwKICAgICBodG1sL2NhbnZhcy9BcnJheUJ1ZmZl
ci5pZGwgXAorICAgIGh0bWwvY2FudmFzL0RhdGFWaWV3LmlkbCBcCiAgICAgaHRtbC9jYW52YXMv
SW50OEFycmF5LmlkbCBcCiAgICAgaHRtbC9jYW52YXMvRmxvYXQzMkFycmF5LmlkbCBcCiAgICAg
aHRtbC9jYW52YXMvQ2FudmFzR3JhZGllbnQuaWRsIFwKZGlmZiAtLWdpdCBhL1dlYkNvcmUvV2Vi
Q29yZS5wcm8gYi9XZWJDb3JlL1dlYkNvcmUucHJvCmluZGV4IDEwNjdjZTIuLjMyODlmNzEgMTAw
NjQ0Ci0tLSBhL1dlYkNvcmUvV2ViQ29yZS5wcm8KKysrIGIvV2ViQ29yZS9XZWJDb3JlLnBybwpA
QCAtMzY5Nyw2ICszNjk3LDcgQEAgSEVBREVSUyArPSBcCiAgICAgICAgIGh0bWwvY2FudmFzL1dl
YkdMQWN0aXZlSW5mby5oIFwKICAgICAgICAgaHRtbC9jYW52YXMvQXJyYXlCdWZmZXIuaCBcCiAg
ICAgICAgIGh0bWwvY2FudmFzL0FycmF5QnVmZmVyVmlldy5oIFwKKyAgICAgICAgaHRtbC9jYW52
YXMvRGF0YVZpZXcuaCBcCiAgICAgICAgIGh0bWwvY2FudmFzL1dlYkdMQnVmZmVyLmggXAogICAg
ICAgICBodG1sL2NhbnZhcy9JbnQ4QXJyYXkuaCBcCiAgICAgICAgIGh0bWwvY2FudmFzL1dlYkdM
Q29udGV4dEF0dHJpYnV0ZXMuaCBcCkBAIC0zNzIxLDYgKzM3MjIsNyBAQCBIRUFERVJTICs9IFwK
ICAgICAhdjggewogICAgICAgICBTT1VSQ0VTICs9IFwKICAgICAgICAgICAgICAgICBiaW5kaW5n
cy9qcy9KU0FycmF5QnVmZmVyQ3VzdG9tLmNwcCBcCisgICAgICAgICAgICAgICAgYmluZGluZ3Mv
anMvSlNEYXRhVmlld0N1c3RvbS5jcHAgXAogICAgICAgICAgICAgICAgIGJpbmRpbmdzL2pzL0pT
SW50OEFycmF5Q3VzdG9tLmNwcCBcCiAgICAgICAgICAgICAgICAgYmluZGluZ3MvanMvSlNGbG9h
dDMyQXJyYXlDdXN0b20uY3BwIFwKICAgICAgICAgICAgICAgICBiaW5kaW5ncy9qcy9KU0ludDMy
QXJyYXlDdXN0b20uY3BwIFwKQEAgLTM3MzUsNiArMzczNyw3IEBAIFNPVVJDRVMgKz0gXAogICAg
ICAgICBodG1sL2NhbnZhcy9XZWJHTE9iamVjdC5jcHAgXAogICAgICAgICBodG1sL2NhbnZhcy9B
cnJheUJ1ZmZlci5jcHAgXAogICAgICAgICBodG1sL2NhbnZhcy9BcnJheUJ1ZmZlclZpZXcuY3Bw
IFwKKyAgICAgICAgaHRtbC9jYW52YXMvRGF0YVZpZXcuY3BwIFwKICAgICAgICAgaHRtbC9jYW52
YXMvV2ViR0xCdWZmZXIuY3BwIFwKICAgICAgICAgaHRtbC9jYW52YXMvSW50OEFycmF5LmNwcCBc
CiAgICAgICAgIGh0bWwvY2FudmFzL1dlYkdMQ29udGV4dEF0dHJpYnV0ZXMuY3BwIFwKZGlmZiAt
LWdpdCBhL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvV2ViQ29y
ZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggMjMxNmNlZi4uNmFkNzc4
OCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oK
KysrIGIvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTc2Nyw2
ICs3NjcsMTEgQEAKIAkJMkU3NTg0MUYxMjc3OUFEQTAwNjI2MjhCIC8qIEZpbGVSZWFkZXJMb2Fk
ZXJDbGllbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDJFNzU4NDFDMTI3NzlBREEwMDYyNjI4QiAvKiBGaWxlUmVhZGVyTG9hZGVyQ2xpZW50LmggKi87
IH07CiAJCTJFOTRGNDNCMTE5MjA3REEwMEI3Rjc1RCAvKiBKU0ZpbGVSZWFkZXIuY3BwIGluIFNv
dXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMkU5NEY0MzkxMTkyMDdE
QTAwQjdGNzVEIC8qIEpTRmlsZVJlYWRlci5jcHAgKi87IH07CiAJCTJFOTRGNDNDMTE5MjA3REEw
MEI3Rjc1RCAvKiBKU0ZpbGVSZWFkZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDJFOTRGNDNBMTE5MjA3REEwMEI3Rjc1RCAvKiBKU0ZpbGVSZWFkZXIu
aCAqLzsgfTsKKwkJMkU5N0NDRUExMjkzOUNCODAwQzVDOEZGIC8qIERhdGFWaWV3LmNwcCBpbiBT
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDJFOTdDQ0U3MTI5MzlD
QjgwMEM1QzhGRiAvKiBEYXRhVmlldy5jcHAgKi87IH07CisJCTJFOTdDQ0VCMTI5MzlDQjgwMEM1
QzhGRiAvKiBEYXRhVmlldy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gMkU5N0NDRTgxMjkzOUNCODAwQzVDOEZGIC8qIERhdGFWaWV3LmggKi87IH07CisJ
CTJFOTdDQ0Y3MTI5M0E0M0EwMEM1QzhGRiAvKiBKU0RhdGFWaWV3Q3VzdG9tLmNwcCBpbiBTb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDJFOTdDQ0Y2MTI5M0E0M0Ew
MEM1QzhGRiAvKiBKU0RhdGFWaWV3Q3VzdG9tLmNwcCAqLzsgfTsKKwkJMkU5N0NFNkYxMjkzQUQ2
QjAwQzVDOEZGIC8qIEpTRGF0YVZpZXcuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gMkU5N0NFNkQxMjkzQUQ2QjAwQzVDOEZGIC8qIEpTRGF0YVZpZXcu
Y3BwICovOyB9OworCQkyRTk3Q0U3MDEyOTNBRDZCMDBDNUM4RkYgLyogSlNEYXRhVmlldy5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMkU5N0NFNkUxMjkz
QUQ2QjAwQzVDOEZGIC8qIEpTRGF0YVZpZXcuaCAqLzsgfTsKIAkJMkVBNzY4MDQwRkU3MTI2NDAw
QUI5QzhBIC8qIFdvcmtlclNjcmlwdExvYWRlckNsaWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMkVBNzY4MDMwRkU3MTI2NDAwQUI5QzhBIC8qIFdv
cmtlclNjcmlwdExvYWRlckNsaWVudC5oICovOyB9OwogCQkyRUI0QkNEMjEyMUYwM0UzMDBFQzQ4
ODUgLyogQmxvYlJlc291cmNlSGFuZGxlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDJFQjRCQ0QwMTIxRjAzRTMwMEVDNDg4NSAvKiBCbG9iUmVzb3Vy
Y2VIYW5kbGUuY3BwICovOyB9OwogCQkyRUI0QkNEMzEyMUYwM0UzMDBFQzQ4ODUgLyogQmxvYlJl
c291cmNlSGFuZGxlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSAyRUI0QkNEMTEyMUYwM0UzMDBFQzQ4ODUgLyogQmxvYlJlc291cmNlSGFuZGxlLmggKi87
IH07CkBAIC02ODU0LDYgKzY4NTksMTIgQEAKIAkJMkU3NTg0MUMxMjc3OUFEQTAwNjI2MjhCIC8q
IEZpbGVSZWFkZXJMb2FkZXJDbGllbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1l
ID0gRmlsZVJlYWRlckxvYWRlckNsaWVudC5oOyBwYXRoID0gZmlsZWFwaS9GaWxlUmVhZGVyTG9h
ZGVyQ2xpZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTJFOTRGNDM5MTE5MjA3
REEwMEI3Rjc1RCAvKiBKU0ZpbGVSZWFkZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
Y3BwOyBwYXRoID0gSlNGaWxlUmVhZGVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJMkU5NEY0M0ExMTkyMDdEQTAwQjdGNzVEIC8qIEpTRmlsZVJlYWRlci5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBKU0ZpbGVSZWFkZXIuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKKwkJMkU5N0NDRTcxMjkzOUNCODAwQzVDOEZGIC8qIERhdGFWaWV3LmNwcCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IERhdGFWaWV3LmNwcDsgcGF0aCA9IGNh
bnZhcy9EYXRhVmlldy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTJFOTdDQ0U4
MTI5MzlDQjgwMEM1QzhGRiAvKiBEYXRhVmlldy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IG5hbWUgPSBEYXRhVmlldy5oOyBwYXRoID0gY2FudmFzL0RhdGFWaWV3Lmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CisJCTJFOTdDQ0U5MTI5MzlDQjgwMEM1QzhGRiAvKiBEYXRhVmlldy5p
ZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSB0ZXh0OyBuYW1lID0gRGF0YVZpZXcuaWRsOyBwYXRoID0gY2FudmFzL0Rh
dGFWaWV3LmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMkU5N0NDRjYxMjkzQTQz
QTAwQzVDOEZGIC8qIEpTRGF0YVZpZXdDdXN0b20uY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBwYXRoID0gSlNEYXRhVmlld0N1c3RvbS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CisJCTJFOTdDRTZEMTI5M0FENkIwMEM1QzhGRiAvKiBKU0RhdGFWaWV3LmNwcCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTRGF0YVZpZXcuY3BwOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OworCQkyRTk3Q0U2RTEyOTNBRDZCMDBDNUM4RkYgLyogSlNEYXRh
Vmlldy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU0RhdGFWaWV3Lmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTJFQTc2ODAzMEZFNzEyNjQwMEFCOUM4QSAvKiBX
b3JrZXJTY3JpcHRMb2FkZXJDbGllbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1l
ID0gV29ya2VyU2NyaXB0TG9hZGVyQ2xpZW50Lmg7IHBhdGggPSB3b3JrZXJzL1dvcmtlclNjcmlw
dExvYWRlckNsaWVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkyRUI0QkNEMDEy
MUYwM0UzMDBFQzQ4ODUgLyogQmxvYlJlc291cmNlSGFuZGxlLmNwcCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEJsb2JSZXNvdXJjZUhhbmRsZS5jcHA7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTJFQjRCQ0QxMTIxRjAzRTMwMEVDNDg4NSAvKiBCbG9iUmVzb3Vy
Y2VIYW5kbGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQmxvYlJlc291cmNl
SGFuZGxlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xMjYyNSw2ICsxMjYzNiw5
IEBACiAJCQkJNDk0ODRGQkYxMDJDRjIzQzAwMTg3REQzIC8qIENhbnZhc1N0eWxlLmNwcCAqLywK
IAkJCQk0OTQ4NEZDMDEwMkNGMjNDMDAxODdERDMgLyogQ2FudmFzU3R5bGUuaCAqLywKIAkJCQlB
MDBCNzIxOTExREU2NDI3MDA4QUI5RkYgLyogQ2hlY2tlZEludC5oICovLAorCQkJCTJFOTdDQ0U3
MTI5MzlDQjgwMEM1QzhGRiAvKiBEYXRhVmlldy5jcHAgKi8sCisJCQkJMkU5N0NDRTgxMjkzOUNC
ODAwQzVDOEZGIC8qIERhdGFWaWV3LmggKi8sCisJCQkJMkU5N0NDRTkxMjkzOUNCODAwQzVDOEZG
IC8qIERhdGFWaWV3LmlkbCAqLywKIAkJCQk0OUVFQ0RDRDEwNTAzQzIzMDAwOTlGQUIgLyogRmxv
YXQzMkFycmF5LmNwcCAqLywKIAkJCQk0OUVFQ0RDRTEwNTAzQzIzMDAwOTlGQUIgLyogRmxvYXQz
MkFycmF5LmggKi8sCiAJCQkJNDlFRUNEQ0YxMDUwM0MyMzAwMDk5RkFCIC8qIEZsb2F0MzJBcnJh
eS5pZGwgKi8sCkBAIC0xNTMxMiw2ICsxNTMyNiw4IEBACiAJCQkJQkM3N0QxNjYwRkYxOUY1NTAw
NzA4ODdCIC8qIEpTRGF0YUdyaWRDb2x1bW4uaCAqLywKIAkJCQlCQzc3RDE2NzBGRjE5RjU1MDA3
MDg4N0IgLyogSlNEYXRhR3JpZENvbHVtbkxpc3QuY3BwICovLAogCQkJCUJDNzdEMTY4MEZGMTlG
NTUwMDcwODg3QiAvKiBKU0RhdGFHcmlkQ29sdW1uTGlzdC5oICovLAorCQkJCTJFOTdDRTZEMTI5
M0FENkIwMEM1QzhGRiAvKiBKU0RhdGFWaWV3LmNwcCAqLywKKwkJCQkyRTk3Q0U2RTEyOTNBRDZC
MDBDNUM4RkYgLyogSlNEYXRhVmlldy5oICovLAogCQkJCTJFMDg4OEQyMTE0ODg0OEEwMEFGNDI2
NSAvKiBKU0RPTUZvcm1EYXRhLmNwcCAqLywKIAkJCQkyRTA4ODhEMzExNDg4NDhBMDBBRjQyNjUg
LyogSlNET01Gb3JtRGF0YS5oICovLAogCQkJCTRBQ0JDMEM4MTI3MTNEMEEwMDk0RjlCMiAvKiBK
U0RPTVNldHRhYmxlVG9rZW5MaXN0LmNwcCAqLywKQEAgLTE3MDkxLDYgKzE3MTA3LDcgQEAKIAkJ
CQlFMUFEMTRFNzEyOTczNzc0MDBBQ0E5ODkgLyogSlNDU1NTdHlsZVJ1bGVDdXN0b20uY3BwICov
LAogCQkJCUJDMjBGQjdFMEMwRThFNkMwMEQxNDQ3RiAvKiBKU0NTU1ZhbHVlQ3VzdG9tLmNwcCAq
LywKIAkJCQlCQzc3RDE1MTBGRjE5QzczMDA3MDg4N0IgLyogSlNEYXRhR3JpZENvbHVtbkxpc3RD
dXN0b20uY3BwICovLAorCQkJCTJFOTdDQ0Y2MTI5M0E0M0EwMEM1QzhGRiAvKiBKU0RhdGFWaWV3
Q3VzdG9tLmNwcCAqLywKIAkJCQk0MTYyQTQ1MzEwMTE0NUUzMDBERkYzRUQgLyogSlNEZWRpY2F0
ZWRXb3JrZXJDb250ZXh0Q3VzdG9tLmNwcCAqLywKIAkJCQkzMzUwM0NCRjEwMTc5QzFBMDAzQjQ3
RTEgLyogSlNEZXNrdG9wTm90aWZpY2F0aW9uc0N1c3RvbS5jcHAgKi8sCiAJCQkJMzFGQjFBNkIx
MjBBNUQ2OTAwREMwMkEwIC8qIEpTRGV2aWNlTW90aW9uRXZlbnRDdXN0b20uY3BwICovLApAQCAt
MjEzOTIsNiArMjE0MDksOCBAQAogCQkJCTc1NDE1RDU2MTI5QUIyRDIwMDNBRDY2OSAvKiBKU1Nw
ZWVjaElucHV0RXZlbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCTc1NDE1RDU4MTI5QUIyRDIwMDNB
RDY2OSAvKiBKU1NwZWVjaElucHV0UmVzdWx0LmggaW4gSGVhZGVycyAqLywKIAkJCQk3NTQxNUQ1
QTEyOUFCMkQyMDAzQUQ2NjkgLyogSlNTcGVlY2hJbnB1dFJlc3VsdExpc3QuaCBpbiBIZWFkZXJz
ICovLAorCQkJCTJFOTdDQ0VCMTI5MzlDQjgwMEM1QzhGRiAvKiBEYXRhVmlldy5oIGluIEhlYWRl
cnMgKi8sCisJCQkJMkU5N0NFNzAxMjkzQUQ2QjAwQzVDOEZGIC8qIEpTRGF0YVZpZXcuaCBpbiBI
ZWFkZXJzICovLAogCQkJKTsKIAkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9zdHByb2Nlc3Npbmcg
PSAwOwogCQl9OwpAQCAtMjM5NjYsNiArMjM5ODUsOSBAQAogCQkJCTc1NDE1RDU1MTI5QUIyRDIw
MDNBRDY2OSAvKiBKU1NwZWVjaElucHV0RXZlbnQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNzU0
MTVENTcxMjlBQjJEMjAwM0FENjY5IC8qIEpTU3BlZWNoSW5wdXRSZXN1bHQuY3BwIGluIFNvdXJj
ZXMgKi8sCiAJCQkJNzU0MTVENTkxMjlBQjJEMjAwM0FENjY5IC8qIEpTU3BlZWNoSW5wdXRSZXN1
bHRMaXN0LmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTJFOTdDQ0VBMTI5MzlDQjgwMEM1QzhGRiAv
KiBEYXRhVmlldy5jcHAgaW4gU291cmNlcyAqLywKKwkJCQkyRTk3Q0NGNzEyOTNBNDNBMDBDNUM4
RkYgLyogSlNEYXRhVmlld0N1c3RvbS5jcHAgaW4gU291cmNlcyAqLywKKwkJCQkyRTk3Q0U2RjEy
OTNBRDZCMDBDNUM4RkYgLyogSlNEYXRhVmlldy5jcHAgaW4gU291cmNlcyAqLywKIAkJCSk7CiAJ
CQlydW5Pbmx5Rm9yRGVwbG95bWVudFBvc3Rwcm9jZXNzaW5nID0gMDsKIAkJfTsKZGlmZiAtLWdp
dCBhL1dlYkNvcmUvYmluZGluZ3MvZ2VuZXJpYy9SdW50aW1lRW5hYmxlZEZlYXR1cmVzLmggYi9X
ZWJDb3JlL2JpbmRpbmdzL2dlbmVyaWMvUnVudGltZUVuYWJsZWRGZWF0dXJlcy5oCmluZGV4IDBh
YjUxMjAuLjMzNDMyY2UgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvYmluZGluZ3MvZ2VuZXJpYy9SdW50
aW1lRW5hYmxlZEZlYXR1cmVzLmgKKysrIGIvV2ViQ29yZS9iaW5kaW5ncy9nZW5lcmljL1J1bnRp
bWVFbmFibGVkRmVhdHVyZXMuaApAQCAtMTAyLDYgKzEwMiw3IEBAIHB1YmxpYzoKICAgICBzdGF0
aWMgYm9vbCBpbnQzMkFycmF5RW5hYmxlZCgpIHsgcmV0dXJuIGlzV2ViR0xFbmFibGVkOyB9CiAg
ICAgc3RhdGljIGJvb2wgdWludDMyQXJyYXlFbmFibGVkKCkgeyByZXR1cm4gaXNXZWJHTEVuYWJs
ZWQ7IH0KICAgICBzdGF0aWMgYm9vbCBmbG9hdDMyQXJyYXlFbmFibGVkKCkgeyByZXR1cm4gaXNX
ZWJHTEVuYWJsZWQ7IH0KKyAgICBzdGF0aWMgYm9vbCBkYXRhVmlld0VuYWJsZWQoKSB7IHJldHVy
biBpc1dlYkdMRW5hYmxlZDsgfQogICAgIHN0YXRpYyBib29sIHdlYkdMUmVuZGVyaW5nQ29udGV4
dEVuYWJsZWQoKSB7IHJldHVybiBpc1dlYkdMRW5hYmxlZDsgfQogICAgIHN0YXRpYyBib29sIHdl
YkdMQXJyYXlCdWZmZXJFbmFibGVkKCkgeyByZXR1cm4gaXNXZWJHTEVuYWJsZWQ7IH0KICAgICBz
dGF0aWMgYm9vbCB3ZWJHTEJ5dGVBcnJheUVuYWJsZWQoKSB7IHJldHVybiBpc1dlYkdMRW5hYmxl
ZDsgfQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0FycmF5QnVmZmVyVmlld0hl
bHBlci5oIGIvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0FycmF5QnVmZmVyVmlld0hlbHBlci5oCmlu
ZGV4IGJhNzEyYzYuLmYzNGY0YjkgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvYmluZGluZ3MvanMvSlNB
cnJheUJ1ZmZlclZpZXdIZWxwZXIuaAorKysgYi9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTQXJyYXlC
dWZmZXJWaWV3SGVscGVyLmgKQEAgLTg2LDE2ICs4NiwzMyBAQCBKU0M6OkpTVmFsdWUgc2V0V2Vi
R0xBcnJheUhlbHBlcihKU0M6OkV4ZWNTdGF0ZSogZXhlYywgVCogaW1wbCwgVCogKCpjb252ZXJz
aW9uRgogLy8gVGVtcGxhdGUgZnVuY3Rpb24gdXNlZCBieSBYWFhBcnJheUNvbnN0cnVjdG9ycy4K
IC8vIElmIHRoaXMgcmV0dXJucyAwLCBpdCB3aWxsIGFscmVhZHkgaGF2ZSB0aHJvd24gYSBKYXZh
U2NyaXB0IGV4Y2VwdGlvbi4KIHRlbXBsYXRlPGNsYXNzIEMsIHR5cGVuYW1lIFQ+Ci1QYXNzUmVm
UHRyPEFycmF5QnVmZmVyVmlldz4gY29uc3RydWN0QXJyYXlCdWZmZXJWaWV3KEpTQzo6RXhlY1N0
YXRlKiBleGVjKQorUGFzc1JlZlB0cjxDPiBjb25zdHJ1Y3RBcnJheUJ1ZmZlclZpZXdXaXRoQXJy
YXlCdWZmZXJBcmd1bWVudChKU0M6OkV4ZWNTdGF0ZSogZXhlYykKK3sKKyAgICBSZWZQdHI8QXJy
YXlCdWZmZXI+IGJ1ZmZlciA9IHRvQXJyYXlCdWZmZXIoZXhlYy0+YXJndW1lbnQoMCkpOworICAg
IGlmICghYnVmZmVyKQorICAgICAgICByZXR1cm4gMDsKKworICAgIHVuc2lnbmVkIG9mZnNldCA9
IChleGVjLT5hcmd1bWVudENvdW50KCkgPiAxKSA/IGV4ZWMtPmFyZ3VtZW50KDEpLnRvVUludDMy
KGV4ZWMpIDogMDsKKyAgICBpZiAoKGJ1ZmZlci0+Ynl0ZUxlbmd0aCgpIC0gb2Zmc2V0KSAlIHNp
emVvZihUKSkKKyAgICAgICAgdGhyb3dFcnJvcihleGVjLCBjcmVhdGVSYW5nZUVycm9yKGV4ZWMs
ICJBcnJheUJ1ZmZlciBsZW5ndGggbWludXMgdGhlIGJ5dGVPZmZzZXQgaXMgbm90IGEgbXVsdGlw
bGUgb2YgdGhlIGVsZW1lbnQgc2l6ZS4iKSk7CisgICAgdW5zaWduZWQgaW50IGxlbmd0aCA9IChi
dWZmZXItPmJ5dGVMZW5ndGgoKSAtIG9mZnNldCkgLyBzaXplb2YoVCk7CisgICAgaWYgKGV4ZWMt
PmFyZ3VtZW50Q291bnQoKSA+IDIpCisgICAgICAgIGxlbmd0aCA9IGV4ZWMtPmFyZ3VtZW50KDIp
LnRvVUludDMyKGV4ZWMpOworICAgIFJlZlB0cjxDPiBhcnJheSA9IEM6OmNyZWF0ZShidWZmZXIs
IG9mZnNldCwgbGVuZ3RoKTsKKyAgICBpZiAoIWFycmF5KQorICAgICAgICBzZXRET01FeGNlcHRp
b24oZXhlYywgSU5ERVhfU0laRV9FUlIpOworICAgIHJldHVybiBhcnJheTsKK30KKwordGVtcGxh
dGU8Y2xhc3MgQywgdHlwZW5hbWUgVD4KK1Bhc3NSZWZQdHI8Qz4gY29uc3RydWN0QXJyYXlCdWZm
ZXJWaWV3KEpTQzo6RXhlY1N0YXRlKiBleGVjKQogewogICAgIC8vIFRoZXJlIGFyZSAzIGNvbnN0
cnVjdG9yczoKICAgICAvLwogICAgIC8vICAxKSAoaW4gaW50IHNpemUpCiAgICAgLy8gIDIpIChp
biBBcnJheUJ1ZmZlciBidWZmZXIsIFtPcHRpb25hbF0gaW4gaW50IG9mZnNldCwgW09wdGlvbmFs
XSBpbiB1bnNpZ25lZCBpbnQgbGVuZ3RoKQogICAgIC8vICAzKSAoaW4gc2VxdWVuY2U8VD4pIC0g
VGhpcyBlbmRzIHVwIGJlaW5nIGEgSlMgImFycmF5LWxpa2UiIG9iamVjdAotICAgIC8vCi0gICAg
UmVmUHRyPEM+IGFycmF5T2JqZWN0OwotICAgIAorICAgIC8vICAgIAogICAgIC8vIEZvciB0aGUg
MCBhcmdzIGNhc2UsIGp1c3QgY3JlYXRlIGEgemVyby1sZW5ndGggdmlldy4gV2UgY291bGQKICAg
ICAvLyBjb25zaWRlciByYWlzaW5nIGEgU3ludGF4RXJyb3IgZm9yIHRoaXMgY2FzZSwgYnV0IG5v
dCBhbGwKICAgICAvLyBKYXZhU2NyaXB0IERPTSBiaW5kaW5ncyBjYW4gZGlzdGluZ3Vpc2ggYmV0
d2VlbiAibmV3CkBAIC0xMTIsMjAgKzEyOSwxMCBAQCBQYXNzUmVmUHRyPEFycmF5QnVmZmVyVmll
dz4gY29uc3RydWN0QXJyYXlCdWZmZXJWaWV3KEpTQzo6RXhlY1N0YXRlKiBleGVjKQogICAgIH0K
IAogICAgIGlmIChleGVjLT5hcmd1bWVudCgwKS5pc09iamVjdCgpKSB7Ci0gICAgICAgIFJlZlB0
cjxBcnJheUJ1ZmZlcj4gYnVmZmVyID0gdG9BcnJheUJ1ZmZlcihleGVjLT5hcmd1bWVudCgwKSk7
Ci0gICAgICAgIGlmIChidWZmZXIpIHsKLSAgICAgICAgICAgIHVuc2lnbmVkIG9mZnNldCA9IChl
eGVjLT5hcmd1bWVudENvdW50KCkgPiAxKSA/IGV4ZWMtPmFyZ3VtZW50KDEpLnRvVUludDMyKGV4
ZWMpIDogMDsKLSAgICAgICAgICAgIGlmICgoYnVmZmVyLT5ieXRlTGVuZ3RoKCkgLSBvZmZzZXQp
ICUgc2l6ZW9mKFQpKQotICAgICAgICAgICAgICAgIHRocm93RXJyb3IoZXhlYywgY3JlYXRlUmFu
Z2VFcnJvcihleGVjLCAiQXJyYXlCdWZmZXIgbGVuZ3RoIG1pbnVzIHRoZSBieXRlT2Zmc2V0IGlz
IG5vdCBhIG11bHRpcGxlIG9mIHRoZSBlbGVtZW50IHNpemUuIikpOwotICAgICAgICAgICAgdW5z
aWduZWQgaW50IGxlbmd0aCA9IChidWZmZXItPmJ5dGVMZW5ndGgoKSAtIG9mZnNldCkgLyBzaXpl
b2YoVCk7Ci0gICAgICAgICAgICBpZiAoZXhlYy0+YXJndW1lbnRDb3VudCgpID4gMikKLSAgICAg
ICAgICAgICAgICBsZW5ndGggPSBleGVjLT5hcmd1bWVudCgyKS50b1VJbnQzMihleGVjKTsKLSAg
ICAgICAgICAgIFBhc3NSZWZQdHI8QXJyYXlCdWZmZXJWaWV3PiBhcnJheSA9IEM6OmNyZWF0ZShi
dWZmZXIsIG9mZnNldCwgbGVuZ3RoKTsKLSAgICAgICAgICAgIGlmICghYXJyYXkpCi0gICAgICAg
ICAgICAgICAgc2V0RE9NRXhjZXB0aW9uKGV4ZWMsIElOREVYX1NJWkVfRVJSKTsKLSAgICAgICAg
ICAgIHJldHVybiBhcnJheTsKLSAgICAgICAgfQotICAgICAgICAKKyAgICAgICAgUmVmUHRyPEM+
IHZpZXcgPSBjb25zdHJ1Y3RBcnJheUJ1ZmZlclZpZXdXaXRoQXJyYXlCdWZmZXJBcmd1bWVudDxD
LCBUPihleGVjKTsKKyAgICAgICAgaWYgKHZpZXcpCisgICAgICAgICAgICByZXR1cm4gdmlldzsK
KyAgICAKICAgICAgICAgSlNDOjpKU09iamVjdCogYXJyYXkgPSBhc09iamVjdChleGVjLT5hcmd1
bWVudCgwKSk7CiAgICAgICAgIHVuc2lnbmVkIGxlbmd0aCA9IGFycmF5LT5nZXQoZXhlYywgSlND
OjpJZGVudGlmaWVyKGV4ZWMsICJsZW5ndGgiKSkudG9VSW50MzIoZXhlYyk7CiAgICAgICAgIHZv
aWQqIHRlbXBWYWx1ZXM7CkBAIC0xNDIsMTQgKzE0OSwxNCBAQCBQYXNzUmVmUHRyPEFycmF5QnVm
ZmVyVmlldz4gY29uc3RydWN0QXJyYXlCdWZmZXJWaWV3KEpTQzo6RXhlY1N0YXRlKiBleGVjKQog
ICAgICAgICAgICAgdmFsdWVzLmdldCgpW2ldID0gc3RhdGljX2Nhc3Q8VD4odi50b051bWJlcihl
eGVjKSk7CiAgICAgICAgIH0KICAgICAgICAgCi0gICAgICAgIFBhc3NSZWZQdHI8QXJyYXlCdWZm
ZXJWaWV3PiByZXN1bHQgPSBDOjpjcmVhdGUodmFsdWVzLmdldCgpLCBsZW5ndGgpOworICAgICAg
ICBSZWZQdHI8Qz4gcmVzdWx0ID0gQzo6Y3JlYXRlKHZhbHVlcy5nZXQoKSwgbGVuZ3RoKTsKICAg
ICAgICAgaWYgKCFyZXN1bHQpCiAgICAgICAgICAgICBzZXRET01FeGNlcHRpb24oZXhlYywgSU5E
RVhfU0laRV9FUlIpOwogICAgICAgICByZXR1cm4gcmVzdWx0OwogICAgIH0KLSAgICAKKwogICAg
IGludCBsZW5ndGggPSBleGVjLT5hcmd1bWVudCgwKS50b0ludDMyKGV4ZWMpOwotICAgIFBhc3NS
ZWZQdHI8QXJyYXlCdWZmZXJWaWV3PiByZXN1bHQ7CisgICAgUmVmUHRyPEM+IHJlc3VsdDsKICAg
ICBpZiAobGVuZ3RoID49IDApCiAgICAgICAgIHJlc3VsdCA9IEM6OmNyZWF0ZShzdGF0aWNfY2Fz
dDx1bnNpZ25lZD4obGVuZ3RoKSk7CiAgICAgaWYgKCFyZXN1bHQpCmRpZmYgLS1naXQgYS9XZWJD
b3JlL2JpbmRpbmdzL2pzL0pTRE9NV2luZG93Q3VzdG9tLmNwcCBiL1dlYkNvcmUvYmluZGluZ3Mv
anMvSlNET01XaW5kb3dDdXN0b20uY3BwCmluZGV4IDcxMTllYTYuLjk1ZmNkYzEgMTAwNjQ0Ci0t
LSBhL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01XaW5kb3dDdXN0b20uY3BwCisrKyBiL1dlYkNv
cmUvYmluZGluZ3MvanMvSlNET01XaW5kb3dDdXN0b20uY3BwCkBAIC01Myw2ICs1Myw3IEBACiAK
ICNpZiBFTkFCTEUoM0RfQ0FOVkFTKSB8fCBFTkFCTEUoQkxPQikKICNpbmNsdWRlICJKU0FycmF5
QnVmZmVyLmgiCisjaW5jbHVkZSAiSlNEYXRhVmlldy5oIgogI2luY2x1ZGUgIkpTSW50OEFycmF5
LmgiCiAjaW5jbHVkZSAiSlNVaW50OEFycmF5LmgiCiAjaW5jbHVkZSAiSlNJbnQzMkFycmF5Lmgi
CkBAIC02MDYsNiArNjA3LDEwIEBAIEpTVmFsdWUgSlNET01XaW5kb3c6OmZsb2F0MzJBcnJheShF
eGVjU3RhdGUqIGV4ZWMpIGNvbnN0CiAgICAgcmV0dXJuIGdldERPTUNvbnN0cnVjdG9yPEpTRmxv
YXQzMkFycmF5Q29uc3RydWN0b3I+KGV4ZWMsIHRoaXMpOwogfQogCitKU1ZhbHVlIEpTRE9NV2lu
ZG93OjpkYXRhVmlldyhFeGVjU3RhdGUqIGV4ZWMpIGNvbnN0Cit7CisgICAgcmV0dXJuIGdldERP
TUNvbnN0cnVjdG9yPEpTRGF0YVZpZXdDb25zdHJ1Y3Rvcj4oZXhlYywgdGhpcyk7Cit9CiAjZW5k
aWYKICAKIEpTVmFsdWUgSlNET01XaW5kb3c6OnhtbEh0dHBSZXF1ZXN0KEV4ZWNTdGF0ZSogZXhl
YykgY29uc3QKZGlmZiAtLWdpdCBhL1dlYkNvcmUvYmluZGluZ3MvanMvSlNEYXRhVmlld0N1c3Rv
bS5jcHAgYi9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRGF0YVZpZXdDdXN0b20uY3BwCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjVjZjQyOWIKLS0tIC9kZXYvbnVsbAorKysgYi9X
ZWJDb3JlL2JpbmRpbmdzL2pzL0pTRGF0YVZpZXdDdXN0b20uY3BwCkBAIC0wLDAgKzEsMTc4IEBA
CisvKgorICogQ29weXJpZ2h0IChDKSAyMDEwIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKgorICog
MS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkg
Zm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRo
ZQorICogICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3
aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBC
WSBBUFBMRSBBTkQgSVRTIENPTlRSSUJVVE9SUyAiQVMgSVMiIEFORCBBTlkKKyAqIEVYUFJFU1Mg
T1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhF
IElNUExJRUQKKyAqIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZP
UiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKKyAqIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNI
QUxMIEFQUExFIE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkKKyAqIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVO
VElBTCBEQU1BR0VTCisgKiAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVN
RU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7CisgKiBMT1NTIE9GIFVTRSwgREFU
QSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQKKyAqIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YKKyAqIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
CisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorCisjaWYgRU5BQkxFKDNEX0NBTlZBUykgfHwg
RU5BQkxFKEJMT0IpCisKKyNpbmNsdWRlICJKU0RhdGFWaWV3LmgiCisKKyNpbmNsdWRlICJEYXRh
Vmlldy5oIgorI2luY2x1ZGUgIkV4Y2VwdGlvbkNvZGUuaCIKKyNpbmNsdWRlICJKU0FycmF5QnVm
ZmVyVmlld0hlbHBlci5oIgorI2luY2x1ZGUgPHd0Zi9NYXRoRXh0cmFzLmg+CisKK3VzaW5nIG5h
bWVzcGFjZSBKU0M7CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworZW51bSBEYXRhVmlld0FjY2Vz
c1R5cGUgeworICAgIEFjY2Vzc0RhdGFWaWV3TWVtYmVyQXNJbnQ4LAorICAgIEFjY2Vzc0RhdGFW
aWV3TWVtYmVyQXNVaW50OCwKKyAgICBBY2Nlc3NEYXRhVmlld01lbWJlckFzRmxvYXQzMiwKKyAg
ICBBY2Nlc3NEYXRhVmlld01lbWJlckFzRmxvYXQ2NAorfTsKKworSlNWYWx1ZSB0b0pTKEV4ZWNT
dGF0ZSogZXhlYywgSlNET01HbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgRGF0YVZpZXcqIG9i
amVjdCkKK3sKKyAgICByZXR1cm4gZ2V0RE9NT2JqZWN0V3JhcHBlcjxKU0RhdGFWaWV3PihleGVj
LCBnbG9iYWxPYmplY3QsIG9iamVjdCk7Cit9CisKK0VuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NB
TEwgSlNEYXRhVmlld0NvbnN0cnVjdG9yOjpjb25zdHJ1Y3RKU0RhdGFWaWV3KEV4ZWNTdGF0ZSog
ZXhlYykKK3sKKyAgICBpZiAoZXhlYy0+YXJndW1lbnQoMCkuaXNOdWxsKCkgfHwgIWV4ZWMtPmFy
Z3VtZW50KDApLmlzT2JqZWN0KCkpCisgICAgICAgIHJldHVybiB0aHJvd1ZNVHlwZUVycm9yKGV4
ZWMpOworCisgICAgUmVmUHRyPERhdGFWaWV3PiB2aWV3ID0gY29uc3RydWN0QXJyYXlCdWZmZXJW
aWV3V2l0aEFycmF5QnVmZmVyQXJndW1lbnQ8RGF0YVZpZXcsIGNoYXI+KGV4ZWMpOworICAgIGlm
ICghdmlldy5nZXQoKSkgeworICAgICAgICBzZXRET01FeGNlcHRpb24oZXhlYywgSU5ERVhfU0la
RV9FUlIpOworICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwor
ICAgIH0KKworICAgIEpTRGF0YVZpZXdDb25zdHJ1Y3RvcioganNDb25zdHJ1Y3RvciA9IHN0YXRp
Y19jYXN0PEpTRGF0YVZpZXdDb25zdHJ1Y3Rvcio+KGV4ZWMtPmNhbGxlZSgpKTsKKyAgICByZXR1
cm4gSlNWYWx1ZTo6ZW5jb2RlKGFzT2JqZWN0KHRvSlMoZXhlYywganNDb25zdHJ1Y3Rvci0+Z2xv
YmFsT2JqZWN0KCksIHZpZXcuZ2V0KCkpKSk7Cit9CisKK3N0YXRpYyBKU1ZhbHVlIGdldERhdGFW
aWV3TWVtYmVyKEV4ZWNTdGF0ZSogZXhlYywgRGF0YVZpZXdBY2Nlc3NUeXBlIHR5cGUpCit7Cisg
ICAgSlNWYWx1ZSB0aGlzVmFsdWUgPSBleGVjLT5ob3N0VGhpc1ZhbHVlKCk7CisgICAgaWYgKCF0
aGlzVmFsdWUuaW5oZXJpdHMoJkpTRGF0YVZpZXc6OnNfaW5mbykpCisgICAgICAgIHJldHVybiB0
aHJvd1R5cGVFcnJvcihleGVjKTsKKyAgICBKU0RhdGFWaWV3KiBjYXN0ZWRUaGlzID0gc3RhdGlj
X2Nhc3Q8SlNEYXRhVmlldyo+KGFzT2JqZWN0KHRoaXNWYWx1ZSkpOworICAgIERhdGFWaWV3KiBp
bXAgPSBzdGF0aWNfY2FzdDxEYXRhVmlldyo+KGNhc3RlZFRoaXMtPmltcGwoKSk7CisgICAgaWYg
KGV4ZWMtPmFyZ3VtZW50Q291bnQoKSA8IDEpCisgICAgICAgIHJldHVybiB0aHJvd0Vycm9yKGV4
ZWMsIGNyZWF0ZVN5bnRheEVycm9yKGV4ZWMsICJOb3QgZW5vdWdoIGFyZ3VtZW50cyIpKTsKKyAg
ICBFeGNlcHRpb25Db2RlIGVjID0gMDsKKyAgICB1bnNpZ25lZCBieXRlT2Zmc2V0ID0gZXhlYy0+
YXJndW1lbnQoMCkudG9VSW50MzIoZXhlYyk7CisgICAgaWYgKGV4ZWMtPmhhZEV4Y2VwdGlvbigp
KQorICAgICAgICByZXR1cm4ganNVbmRlZmluZWQoKTsKKworICAgIGJvb2wgbGl0dGxlRW5kaWFu
ID0gZmFsc2U7CisgICAgaWYgKGV4ZWMtPmFyZ3VtZW50Q291bnQoKSA+IDEgJiYgKHR5cGUgPT0g
QWNjZXNzRGF0YVZpZXdNZW1iZXJBc0Zsb2F0MzIgfHwgdHlwZSA9PSBBY2Nlc3NEYXRhVmlld01l
bWJlckFzRmxvYXQ2NCkpIHsKKyAgICAgICAgbGl0dGxlRW5kaWFuID0gZXhlYy0+YXJndW1lbnQo
MSkudG9Cb29sZWFuKGV4ZWMpOworICAgICAgICBpZiAoZXhlYy0+aGFkRXhjZXB0aW9uKCkpCisg
ICAgICAgICAgICByZXR1cm4ganNVbmRlZmluZWQoKTsKKyAgICB9CisKKyAgICBKU0M6OkpTVmFs
dWUgcmVzdWx0OworICAgIHN3aXRjaCAodHlwZSkgeworICAgIGNhc2UgQWNjZXNzRGF0YVZpZXdN
ZW1iZXJBc0ludDg6CisgICAgICAgIHJlc3VsdCA9IGpzTnVtYmVyKGltcC0+Z2V0SW50OChieXRl
T2Zmc2V0LCBlYykpOworICAgICAgICBicmVhazsKKyAgICBjYXNlIEFjY2Vzc0RhdGFWaWV3TWVt
YmVyQXNVaW50ODoKKyAgICAgICAgcmVzdWx0ID0ganNOdW1iZXIoaW1wLT5nZXRVaW50OChieXRl
T2Zmc2V0LCBlYykpOworICAgICAgICBicmVhazsKKyAgICBjYXNlIEFjY2Vzc0RhdGFWaWV3TWVt
YmVyQXNGbG9hdDMyOgorICAgIGNhc2UgQWNjZXNzRGF0YVZpZXdNZW1iZXJBc0Zsb2F0NjQ6IHsK
KyAgICAgICAgZG91YmxlIHZhbHVlID0gKHR5cGUgPT0gQWNjZXNzRGF0YVZpZXdNZW1iZXJBc0Zs
b2F0MzIpID8gaW1wLT5nZXRGbG9hdDMyKGJ5dGVPZmZzZXQsIGxpdHRsZUVuZGlhbiwgZWMpIDog
aW1wLT5nZXRGbG9hdDY0KGJ5dGVPZmZzZXQsIGxpdHRsZUVuZGlhbiwgZWMpOworICAgICAgICBy
ZXN1bHQgPSBpc25hbih2YWx1ZSkgPyBKU1ZhbHVlKG5vbklubGluZU5hTigpKSA6IGpzTnVtYmVy
KHZhbHVlKTsKKyAgICAgICAgYnJlYWs7CisgICAgfSBkZWZhdWx0OgorICAgICAgICBBU1NFUlRf
Tk9UX1JFQUNIRUQoKTsKKyAgICAgICAgYnJlYWs7CisgICAgfQorICAgIHNldERPTUV4Y2VwdGlv
bihleGVjLCBlYyk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KKworSlNWYWx1ZSBKU0NfSE9TVF9D
QUxMIEpTRGF0YVZpZXc6OmdldEludDgoRXhlY1N0YXRlKiBleGVjKQoreworICAgIHJldHVybiBn
ZXREYXRhVmlld01lbWJlcihleGVjLCBBY2Nlc3NEYXRhVmlld01lbWJlckFzSW50OCk7Cit9CisK
K0pTVmFsdWUgSlNDX0hPU1RfQ0FMTCBKU0RhdGFWaWV3OjpnZXRVaW50OChFeGVjU3RhdGUqIGV4
ZWMpCit7CisgICAgcmV0dXJuIGdldERhdGFWaWV3TWVtYmVyKGV4ZWMsIEFjY2Vzc0RhdGFWaWV3
TWVtYmVyQXNVaW50OCk7Cit9CisKK0pTVmFsdWUgSlNDX0hPU1RfQ0FMTCBKU0RhdGFWaWV3Ojpn
ZXRGbG9hdDMyKEV4ZWNTdGF0ZSogZXhlYykKK3sKKyAgICByZXR1cm4gZ2V0RGF0YVZpZXdNZW1i
ZXIoZXhlYywgQWNjZXNzRGF0YVZpZXdNZW1iZXJBc0Zsb2F0MzIpOworfQorCitKU1ZhbHVlIEpT
Q19IT1NUX0NBTEwgSlNEYXRhVmlldzo6Z2V0RmxvYXQ2NChFeGVjU3RhdGUqIGV4ZWMpCit7Cisg
ICAgcmV0dXJuIGdldERhdGFWaWV3TWVtYmVyKGV4ZWMsIEFjY2Vzc0RhdGFWaWV3TWVtYmVyQXNG
bG9hdDY0KTsKK30KKworc3RhdGljIEpTVmFsdWUgc2V0RGF0YVZpZXdNZW1iZXIoRXhlY1N0YXRl
KiBleGVjLCBEYXRhVmlld0FjY2Vzc1R5cGUgdHlwZSkKK3sKKyAgICBKU1ZhbHVlIHRoaXNWYWx1
ZSA9IGV4ZWMtPmhvc3RUaGlzVmFsdWUoKTsKKyAgICBpZiAoIXRoaXNWYWx1ZS5pbmhlcml0cygm
SlNEYXRhVmlldzo6c19pbmZvKSkKKyAgICAgICAgcmV0dXJuIHRocm93VHlwZUVycm9yKGV4ZWMp
OworICAgIEpTRGF0YVZpZXcqIGNhc3RlZFRoaXMgPSBzdGF0aWNfY2FzdDxKU0RhdGFWaWV3Kj4o
YXNPYmplY3QodGhpc1ZhbHVlKSk7CisgICAgRGF0YVZpZXcqIGltcCA9IHN0YXRpY19jYXN0PERh
dGFWaWV3Kj4oY2FzdGVkVGhpcy0+aW1wbCgpKTsKKyAgICBpZiAoZXhlYy0+YXJndW1lbnRDb3Vu
dCgpIDwgMikKKyAgICAgICAgcmV0dXJuIHRocm93RXJyb3IoZXhlYywgY3JlYXRlU3ludGF4RXJy
b3IoZXhlYywgIk5vdCBlbm91Z2ggYXJndW1lbnRzIikpOworICAgIEV4Y2VwdGlvbkNvZGUgZWMg
PSAwOworICAgIHVuc2lnbmVkIGJ5dGVPZmZzZXQgPSBleGVjLT5hcmd1bWVudCgwKS50b1VJbnQz
MihleGVjKTsKKyAgICBpZiAoZXhlYy0+aGFkRXhjZXB0aW9uKCkpCisgICAgICAgIHJldHVybiBq
c1VuZGVmaW5lZCgpOworICAgIGludCB2YWx1ZSA9IGV4ZWMtPmFyZ3VtZW50KDEpLnRvSW50MzIo
ZXhlYyk7CisgICAgaWYgKGV4ZWMtPmhhZEV4Y2VwdGlvbigpKQorICAgICAgICByZXR1cm4ganNV
bmRlZmluZWQoKTsKKyAgICAgICAgCisgICAgc3dpdGNoICh0eXBlKSB7CisgICAgY2FzZSBBY2Nl
c3NEYXRhVmlld01lbWJlckFzSW50ODoKKyAgICAgICAgaWYgKHZhbHVlIDwgLTEyOCB8fCB2YWx1
ZSA+IDEyNykKKyAgICAgICAgICAgIHJldHVybiB0aHJvd0Vycm9yKGV4ZWMsIGNyZWF0ZVN5bnRh
eEVycm9yKGV4ZWMsICJUaGUgdmFsdWUgdG8gc2V0IHRvIGlzIG91dCBvZiByYW5nZSIpKTsKKyAg
ICAgICAgaW1wLT5zZXRJbnQ4KGJ5dGVPZmZzZXQsIHN0YXRpY19jYXN0PHVuc2lnbmVkIGNoYXI+
KHZhbHVlKSwgZWMpOworICAgICAgICBicmVhazsKKyAgICBjYXNlIEFjY2Vzc0RhdGFWaWV3TWVt
YmVyQXNVaW50ODoKKyAgICAgICAgaWYgKHZhbHVlIDwgMCB8fCB2YWx1ZSA+IDI1NSkKKyAgICAg
ICAgICAgIHJldHVybiB0aHJvd0Vycm9yKGV4ZWMsIGNyZWF0ZVN5bnRheEVycm9yKGV4ZWMsICJU
aGUgdmFsdWUgdG8gc2V0IHRvIGlzIG91dCBvZiByYW5nZSIpKTsKKyAgICAgICAgaW1wLT5zZXRV
aW50OChieXRlT2Zmc2V0LCBzdGF0aWNfY2FzdDx1bnNpZ25lZCBjaGFyPih2YWx1ZSksIGVjKTsK
KyAgICAgICAgYnJlYWs7CisgICAgZGVmYXVsdDoKKyAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVE
KCk7CisgICAgICAgIGJyZWFrOworICAgIH0KKyAgICBzZXRET01FeGNlcHRpb24oZXhlYywgZWMp
OworICAgIHJldHVybiBqc1VuZGVmaW5lZCgpOworfQorCitKU1ZhbHVlIEpTQ19IT1NUX0NBTEwg
SlNEYXRhVmlldzo6c2V0SW50OChFeGVjU3RhdGUqIGV4ZWMpCit7CisgICAgcmV0dXJuIHNldERh
dGFWaWV3TWVtYmVyKGV4ZWMsIEFjY2Vzc0RhdGFWaWV3TWVtYmVyQXNJbnQ4KTsKK30KKworSlNW
YWx1ZSBKU0NfSE9TVF9DQUxMIEpTRGF0YVZpZXc6OnNldFVpbnQ4KEV4ZWNTdGF0ZSogZXhlYykK
K3sKKyAgICByZXR1cm4gc2V0RGF0YVZpZXdNZW1iZXIoZXhlYywgQWNjZXNzRGF0YVZpZXdNZW1i
ZXJBc1VpbnQ4KTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gRU5B
QkxFKDNEX0NBTlZBUykgfHwgRU5BQkxFKEJMT0IpCmRpZmYgLS1naXQgYS9XZWJDb3JlL2JpbmRp
bmdzL2pzL0pTRmxvYXQzMkFycmF5Q3VzdG9tLmNwcCBiL1dlYkNvcmUvYmluZGluZ3MvanMvSlNG
bG9hdDMyQXJyYXlDdXN0b20uY3BwCmluZGV4IDY3MWVlNjguLjg4MGQ2OGMgMTAwNjQ0Ci0tLSBh
L1dlYkNvcmUvYmluZGluZ3MvanMvSlNGbG9hdDMyQXJyYXlDdXN0b20uY3BwCisrKyBiL1dlYkNv
cmUvYmluZGluZ3MvanMvSlNGbG9hdDMyQXJyYXlDdXN0b20uY3BwCkBAIC0yNywxMCArMjcsMTAg
QEAKIAogI2lmIEVOQUJMRSgzRF9DQU5WQVMpIHx8IEVOQUJMRShCTE9CKQogCi0jaW5jbHVkZSAi
SlNBcnJheUJ1ZmZlclZpZXdIZWxwZXIuaCIKICNpbmNsdWRlICJKU0Zsb2F0MzJBcnJheS5oIgog
CiAjaW5jbHVkZSAiRmxvYXQzMkFycmF5LmgiCisjaW5jbHVkZSAiSlNBcnJheUJ1ZmZlclZpZXdI
ZWxwZXIuaCIKIAogdXNpbmcgbmFtZXNwYWNlIEpTQzsKIApAQCAtNTQsNyArNTQsNyBAQCBKU0M6
OkpTVmFsdWUgSlNGbG9hdDMyQXJyYXk6OnNldChKU0M6OkV4ZWNTdGF0ZSogZXhlYykKIEVuY29k
ZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgSlNGbG9hdDMyQXJyYXlDb25zdHJ1Y3Rvcjo6Y29uc3Ry
dWN0SlNGbG9hdDMyQXJyYXkoRXhlY1N0YXRlKiBleGVjKQogewogICAgIEpTRmxvYXQzMkFycmF5
Q29uc3RydWN0b3IqIGpzQ29uc3RydWN0b3IgPSBzdGF0aWNfY2FzdDxKU0Zsb2F0MzJBcnJheUNv
bnN0cnVjdG9yKj4oZXhlYy0+Y2FsbGVlKCkpOwotICAgIFJlZlB0cjxGbG9hdDMyQXJyYXk+IGFy
cmF5ID0gc3RhdGljX2Nhc3Q8RmxvYXQzMkFycmF5Kj4oY29uc3RydWN0QXJyYXlCdWZmZXJWaWV3
PEZsb2F0MzJBcnJheSwgZmxvYXQ+KGV4ZWMpLmdldCgpKTsKKyAgICBSZWZQdHI8RmxvYXQzMkFy
cmF5PiBhcnJheSA9IGNvbnN0cnVjdEFycmF5QnVmZmVyVmlldzxGbG9hdDMyQXJyYXksIGZsb2F0
PihleGVjKTsKICAgICBpZiAoIWFycmF5LmdldCgpKQogICAgICAgICAvLyBFeGNlcHRpb24gaGFz
IGFscmVhZHkgYmVlbiB0aHJvd24uCiAgICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoSlNW
YWx1ZSgpKTsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvYmluZGluZ3MvanMvSlNJbnQxNkFycmF5Q3Vz
dG9tLmNwcCBiL1dlYkNvcmUvYmluZGluZ3MvanMvSlNJbnQxNkFycmF5Q3VzdG9tLmNwcAppbmRl
eCA3OTc1NjhjLi5lMDhkYThhIDEwMDY0NAotLS0gYS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTSW50
MTZBcnJheUN1c3RvbS5jcHAKKysrIGIvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0ludDE2QXJyYXlD
dXN0b20uY3BwCkBAIC0yNywxMCArMjcsMTAgQEAKIAogI2lmIEVOQUJMRSgzRF9DQU5WQVMpIHx8
IEVOQUJMRShCTE9CKQogCi0jaW5jbHVkZSAiSlNBcnJheUJ1ZmZlclZpZXdIZWxwZXIuaCIKICNp
bmNsdWRlICJKU0ludDE2QXJyYXkuaCIKIAogI2luY2x1ZGUgIkludDE2QXJyYXkuaCIKKyNpbmNs
dWRlICJKU0FycmF5QnVmZmVyVmlld0hlbHBlci5oIgogCiB1c2luZyBuYW1lc3BhY2UgSlNDOwog
CkBAIC01NCw3ICs1NCw3IEBAIEpTQzo6SlNWYWx1ZSBKU0ludDE2QXJyYXk6OnNldChKU0M6OkV4
ZWNTdGF0ZSogZXhlYykKIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgSlNJbnQxNkFycmF5
Q29uc3RydWN0b3I6OmNvbnN0cnVjdEpTSW50MTZBcnJheShFeGVjU3RhdGUqIGV4ZWMpCiB7CiAg
ICAgSlNJbnQxNkFycmF5Q29uc3RydWN0b3IqIGpzQ29uc3RydWN0b3IgPSBzdGF0aWNfY2FzdDxK
U0ludDE2QXJyYXlDb25zdHJ1Y3Rvcio+KGV4ZWMtPmNhbGxlZSgpKTsKLSAgICBSZWZQdHI8SW50
MTZBcnJheT4gYXJyYXkgPSBzdGF0aWNfY2FzdDxJbnQxNkFycmF5Kj4oY29uc3RydWN0QXJyYXlC
dWZmZXJWaWV3PEludDE2QXJyYXksIHNob3J0PihleGVjKS5nZXQoKSk7CisgICAgUmVmUHRyPElu
dDE2QXJyYXk+IGFycmF5ID0gY29uc3RydWN0QXJyYXlCdWZmZXJWaWV3PEludDE2QXJyYXksIHNo
b3J0PihleGVjKTsKICAgICBpZiAoIWFycmF5LmdldCgpKQogICAgICAgICAvLyBFeGNlcHRpb24g
aGFzIGFscmVhZHkgYmVlbiB0aHJvd24uCiAgICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUo
SlNWYWx1ZSgpKTsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvYmluZGluZ3MvanMvSlNJbnQzMkFycmF5
Q3VzdG9tLmNwcCBiL1dlYkNvcmUvYmluZGluZ3MvanMvSlNJbnQzMkFycmF5Q3VzdG9tLmNwcApp
bmRleCA1M2U2ZWM2Li41YWE2NGJiIDEwMDY0NAotLS0gYS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pT
SW50MzJBcnJheUN1c3RvbS5jcHAKKysrIGIvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0ludDMyQXJy
YXlDdXN0b20uY3BwCkBAIC0yNywxMCArMjcsMTAgQEAKIAogI2lmIEVOQUJMRSgzRF9DQU5WQVMp
IHx8IEVOQUJMRShCTE9CKQogCi0jaW5jbHVkZSAiSlNBcnJheUJ1ZmZlclZpZXdIZWxwZXIuaCIK
ICNpbmNsdWRlICJKU0ludDMyQXJyYXkuaCIKIAogI2luY2x1ZGUgIkludDMyQXJyYXkuaCIKKyNp
bmNsdWRlICJKU0FycmF5QnVmZmVyVmlld0hlbHBlci5oIgogCiB1c2luZyBuYW1lc3BhY2UgSlND
OwogCkBAIC01NCw3ICs1NCw3IEBAIEpTQzo6SlNWYWx1ZSBKU0ludDMyQXJyYXk6OnNldChKU0M6
OkV4ZWNTdGF0ZSogZXhlYykKIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgSlNJbnQzMkFy
cmF5Q29uc3RydWN0b3I6OmNvbnN0cnVjdEpTSW50MzJBcnJheShFeGVjU3RhdGUqIGV4ZWMpCiB7
CiAgICAgSlNJbnQzMkFycmF5Q29uc3RydWN0b3IqIGpzQ29uc3RydWN0b3IgPSBzdGF0aWNfY2Fz
dDxKU0ludDMyQXJyYXlDb25zdHJ1Y3Rvcio+KGV4ZWMtPmNhbGxlZSgpKTsKLSAgICBSZWZQdHI8
SW50MzJBcnJheT4gYXJyYXkgPSBzdGF0aWNfY2FzdDxJbnQzMkFycmF5Kj4oY29uc3RydWN0QXJy
YXlCdWZmZXJWaWV3PEludDMyQXJyYXksIGludD4oZXhlYykuZ2V0KCkpOworICAgIFJlZlB0cjxJ
bnQzMkFycmF5PiBhcnJheSA9IGNvbnN0cnVjdEFycmF5QnVmZmVyVmlldzxJbnQzMkFycmF5LCBp
bnQ+KGV4ZWMpOwogICAgIGlmICghYXJyYXkuZ2V0KCkpCiAgICAgICAgIC8vIEV4Y2VwdGlvbiBo
YXMgYWxyZWFkeSBiZWVuIHRocm93bi4KICAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShK
U1ZhbHVlKCkpOwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0ludDhBcnJheUN1
c3RvbS5jcHAgYi9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTSW50OEFycmF5Q3VzdG9tLmNwcAppbmRl
eCA3NTU2ZDZhLi5iNjNkZTU0IDEwMDY0NAotLS0gYS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTSW50
OEFycmF5Q3VzdG9tLmNwcAorKysgYi9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTSW50OEFycmF5Q3Vz
dG9tLmNwcApAQCAtMjcsMTAgKzI3LDEwIEBACiAKICNpZiBFTkFCTEUoM0RfQ0FOVkFTKSB8fCBF
TkFCTEUoQkxPQikKIAotI2luY2x1ZGUgIkpTQXJyYXlCdWZmZXJWaWV3SGVscGVyLmgiCiAjaW5j
bHVkZSAiSlNJbnQ4QXJyYXkuaCIKIAogI2luY2x1ZGUgIkludDhBcnJheS5oIgorI2luY2x1ZGUg
IkpTQXJyYXlCdWZmZXJWaWV3SGVscGVyLmgiCiAjaW5jbHVkZSA8cnVudGltZS9FcnJvci5oPgog
CiB1c2luZyBuYW1lc3BhY2UgSlNDOwpAQCAtNTUsNyArNTUsNyBAQCBKU0M6OkpTVmFsdWUgSlNJ
bnQ4QXJyYXk6OnNldChKU0M6OkV4ZWNTdGF0ZSogZXhlYykKIEVuY29kZWRKU1ZhbHVlIEpTQ19I
T1NUX0NBTEwgSlNJbnQ4QXJyYXlDb25zdHJ1Y3Rvcjo6Y29uc3RydWN0SlNJbnQ4QXJyYXkoRXhl
Y1N0YXRlKiBleGVjKQogewogICAgIEpTSW50OEFycmF5Q29uc3RydWN0b3IqIGpzQ29uc3RydWN0
b3IgPSBzdGF0aWNfY2FzdDxKU0ludDhBcnJheUNvbnN0cnVjdG9yKj4oZXhlYy0+Y2FsbGVlKCkp
OwotICAgIFJlZlB0cjxJbnQ4QXJyYXk+IGFycmF5ID0gc3RhdGljX2Nhc3Q8SW50OEFycmF5Kj4o
Y29uc3RydWN0QXJyYXlCdWZmZXJWaWV3PEludDhBcnJheSwgc2lnbmVkIGNoYXI+KGV4ZWMpLmdl
dCgpKTsKKyAgICBSZWZQdHI8SW50OEFycmF5PiBhcnJheSA9IGNvbnN0cnVjdEFycmF5QnVmZmVy
VmlldzxJbnQ4QXJyYXksIHNpZ25lZCBjaGFyPihleGVjKTsKICAgICBpZiAoIWFycmF5LmdldCgp
KQogICAgICAgICAvLyBFeGNlcHRpb24gaGFzIGFscmVhZHkgYmVlbiB0aHJvd24uCiAgICAgICAg
IHJldHVybiBKU1ZhbHVlOjplbmNvZGUoSlNWYWx1ZSgpKTsKZGlmZiAtLWdpdCBhL1dlYkNvcmUv
YmluZGluZ3MvanMvSlNVaW50MTZBcnJheUN1c3RvbS5jcHAgYi9XZWJDb3JlL2JpbmRpbmdzL2pz
L0pTVWludDE2QXJyYXlDdXN0b20uY3BwCmluZGV4IDlmMTJmYTcuLjZhMDI0ZWUgMTAwNjQ0Ci0t
LSBhL1dlYkNvcmUvYmluZGluZ3MvanMvSlNVaW50MTZBcnJheUN1c3RvbS5jcHAKKysrIGIvV2Vi
Q29yZS9iaW5kaW5ncy9qcy9KU1VpbnQxNkFycmF5Q3VzdG9tLmNwcApAQCAtMjcsOSArMjcsOSBA
QAogCiAjaWYgRU5BQkxFKDNEX0NBTlZBUykgfHwgRU5BQkxFKEJMT0IpCiAKLSNpbmNsdWRlICJK
U0FycmF5QnVmZmVyVmlld0hlbHBlci5oIgogI2luY2x1ZGUgIkpTVWludDE2QXJyYXkuaCIKIAor
I2luY2x1ZGUgIkpTQXJyYXlCdWZmZXJWaWV3SGVscGVyLmgiCiAjaW5jbHVkZSAiVWludDE2QXJy
YXkuaCIKIAogdXNpbmcgbmFtZXNwYWNlIEpTQzsKQEAgLTU0LDcgKzU0LDcgQEAgSlNDOjpKU1Zh
bHVlIEpTVWludDE2QXJyYXk6OnNldChKU0M6OkV4ZWNTdGF0ZSogZXhlYykKIEVuY29kZWRKU1Zh
bHVlIEpTQ19IT1NUX0NBTEwgSlNVaW50MTZBcnJheUNvbnN0cnVjdG9yOjpjb25zdHJ1Y3RKU1Vp
bnQxNkFycmF5KEV4ZWNTdGF0ZSogZXhlYykKIHsKICAgICBKU1VpbnQxNkFycmF5Q29uc3RydWN0
b3IqIGpzQ29uc3RydWN0b3IgPSBzdGF0aWNfY2FzdDxKU1VpbnQxNkFycmF5Q29uc3RydWN0b3Iq
PihleGVjLT5jYWxsZWUoKSk7Ci0gICAgUmVmUHRyPFVpbnQxNkFycmF5PiBhcnJheSA9IHN0YXRp
Y19jYXN0PFVpbnQxNkFycmF5Kj4oY29uc3RydWN0QXJyYXlCdWZmZXJWaWV3PFVpbnQxNkFycmF5
LCB1bnNpZ25lZCBzaG9ydD4oZXhlYykuZ2V0KCkpOworICAgIFJlZlB0cjxVaW50MTZBcnJheT4g
YXJyYXkgPSBjb25zdHJ1Y3RBcnJheUJ1ZmZlclZpZXc8VWludDE2QXJyYXksIHVuc2lnbmVkIHNo
b3J0PihleGVjKTsKICAgICBpZiAoIWFycmF5LmdldCgpKQogICAgICAgICAvLyBFeGNlcHRpb24g
aGFzIGFscmVhZHkgYmVlbiB0aHJvd24uCiAgICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUo
SlNWYWx1ZSgpKTsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvYmluZGluZ3MvanMvSlNVaW50MzJBcnJh
eUN1c3RvbS5jcHAgYi9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTVWludDMyQXJyYXlDdXN0b20uY3Bw
CmluZGV4IGM3NTc3ODYuLjM0ZWI4ZGUgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvYmluZGluZ3MvanMv
SlNVaW50MzJBcnJheUN1c3RvbS5jcHAKKysrIGIvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1VpbnQz
MkFycmF5Q3VzdG9tLmNwcApAQCAtMjcsOSArMjcsOSBAQAogCiAjaWYgRU5BQkxFKDNEX0NBTlZB
UykgfHwgRU5BQkxFKEJMT0IpCiAKLSNpbmNsdWRlICJKU0FycmF5QnVmZmVyVmlld0hlbHBlci5o
IgogI2luY2x1ZGUgIkpTVWludDMyQXJyYXkuaCIKIAorI2luY2x1ZGUgIkpTQXJyYXlCdWZmZXJW
aWV3SGVscGVyLmgiCiAjaW5jbHVkZSAiVWludDMyQXJyYXkuaCIKIAogdXNpbmcgbmFtZXNwYWNl
IEpTQzsKQEAgLTU0LDcgKzU0LDcgQEAgSlNDOjpKU1ZhbHVlIEpTVWludDMyQXJyYXk6OnNldChK
U0M6OkV4ZWNTdGF0ZSogZXhlYykKIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgSlNVaW50
MzJBcnJheUNvbnN0cnVjdG9yOjpjb25zdHJ1Y3RKU1VpbnQzMkFycmF5KEV4ZWNTdGF0ZSogZXhl
YykKIHsKICAgICBKU1VpbnQzMkFycmF5Q29uc3RydWN0b3IqIGpzQ29uc3RydWN0b3IgPSBzdGF0
aWNfY2FzdDxKU1VpbnQzMkFycmF5Q29uc3RydWN0b3IqPihleGVjLT5jYWxsZWUoKSk7Ci0gICAg
UmVmUHRyPFVpbnQzMkFycmF5PiBhcnJheSA9IHN0YXRpY19jYXN0PFVpbnQzMkFycmF5Kj4oY29u
c3RydWN0QXJyYXlCdWZmZXJWaWV3PFVpbnQzMkFycmF5LCB1bnNpZ25lZCBpbnQ+KGV4ZWMpLmdl
dCgpKTsKKyAgICBSZWZQdHI8VWludDMyQXJyYXk+IGFycmF5ID0gY29uc3RydWN0QXJyYXlCdWZm
ZXJWaWV3PFVpbnQzMkFycmF5LCB1bnNpZ25lZCBpbnQ+KGV4ZWMpOwogICAgIGlmICghYXJyYXku
Z2V0KCkpCiAgICAgICAgIC8vIEV4Y2VwdGlvbiBoYXMgYWxyZWFkeSBiZWVuIHRocm93bi4KICAg
ICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShKU1ZhbHVlKCkpOwpkaWZmIC0tZ2l0IGEvV2Vi
Q29yZS9iaW5kaW5ncy9qcy9KU1VpbnQ4QXJyYXlDdXN0b20uY3BwIGIvV2ViQ29yZS9iaW5kaW5n
cy9qcy9KU1VpbnQ4QXJyYXlDdXN0b20uY3BwCmluZGV4IGFkZjYwYTkuLmE5ZWQ3M2YgMTAwNjQ0
Ci0tLSBhL1dlYkNvcmUvYmluZGluZ3MvanMvSlNVaW50OEFycmF5Q3VzdG9tLmNwcAorKysgYi9X
ZWJDb3JlL2JpbmRpbmdzL2pzL0pTVWludDhBcnJheUN1c3RvbS5jcHAKQEAgLTI3LDkgKzI3LDkg
QEAKIAogI2lmIEVOQUJMRSgzRF9DQU5WQVMpIHx8IEVOQUJMRShCTE9CKQogCi0jaW5jbHVkZSAi
SlNBcnJheUJ1ZmZlclZpZXdIZWxwZXIuaCIKICNpbmNsdWRlICJKU1VpbnQ4QXJyYXkuaCIKIAor
I2luY2x1ZGUgIkpTQXJyYXlCdWZmZXJWaWV3SGVscGVyLmgiCiAjaW5jbHVkZSAiVWludDhBcnJh
eS5oIgogCiB1c2luZyBuYW1lc3BhY2UgSlNDOwpAQCAtNTQsNyArNTQsNyBAQCBKU0M6OkpTVmFs
dWUgSlNVaW50OEFycmF5OjpzZXQoSlNDOjpFeGVjU3RhdGUqIGV4ZWMpCiBFbmNvZGVkSlNWYWx1
ZSBKU0NfSE9TVF9DQUxMIEpTVWludDhBcnJheUNvbnN0cnVjdG9yOjpjb25zdHJ1Y3RKU1VpbnQ4
QXJyYXkoRXhlY1N0YXRlKiBleGVjKQogewogICAgIEpTVWludDhBcnJheUNvbnN0cnVjdG9yKiBq
c0NvbnN0cnVjdG9yID0gc3RhdGljX2Nhc3Q8SlNVaW50OEFycmF5Q29uc3RydWN0b3IqPihleGVj
LT5jYWxsZWUoKSk7Ci0gICAgUmVmUHRyPFVpbnQ4QXJyYXk+IGFycmF5ID0gc3RhdGljX2Nhc3Q8
VWludDhBcnJheSo+KGNvbnN0cnVjdEFycmF5QnVmZmVyVmlldzxVaW50OEFycmF5LCB1bnNpZ25l
ZCBjaGFyPihleGVjKS5nZXQoKSk7CisgICAgUmVmUHRyPFVpbnQ4QXJyYXk+IGFycmF5ID0gY29u
c3RydWN0QXJyYXlCdWZmZXJWaWV3PFVpbnQ4QXJyYXksIHVuc2lnbmVkIGNoYXI+KGV4ZWMpOwog
ICAgIGlmICghYXJyYXkuZ2V0KCkpCiAgICAgICAgIC8vIEV4Y2VwdGlvbiBoYXMgYWxyZWFkeSBi
ZWVuIHRocm93bi4KICAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShKU1ZhbHVlKCkpOwpk
aWZmIC0tZ2l0IGEvV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhBcnJheUJ1ZmZlclZpZXdD
dXN0b20uaCBiL1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4QXJyYXlCdWZmZXJWaWV3Q3Vz
dG9tLmgKaW5kZXggMjU2NmI2Ny4uNjg4MWEwMSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9iaW5kaW5n
cy92OC9jdXN0b20vVjhBcnJheUJ1ZmZlclZpZXdDdXN0b20uaAorKysgYi9XZWJDb3JlL2JpbmRp
bmdzL3Y4L2N1c3RvbS9WOEFycmF5QnVmZmVyVmlld0N1c3RvbS5oCkBAIC0yOCwyNyArMjgsNjQg
QEAKICAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuCiAgKi8KIAotI2luY2x1ZGUgImNvbmZpZy5oIgorI2lmbmRlZiBW
OEFycmF5QnVmZmVyVmlld0N1c3RvbV9oCisjZGVmaW5lIFY4QXJyYXlCdWZmZXJWaWV3Q3VzdG9t
X2gKIAogI2lmIEVOQUJMRSgzRF9DQU5WQVMpIHx8IEVOQUJMRShCTE9CKQogCiAjaW5jbHVkZSAi
QXJyYXlCdWZmZXIuaCIKIAotI2luY2x1ZGUgIlY4QmluZGluZy5oIgogI2luY2x1ZGUgIlY4QXJy
YXlCdWZmZXIuaCIKKyNpbmNsdWRlICJWOEJpbmRpbmcuaCIKICNpbmNsdWRlICJWOFByb3h5Lmgi
CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogLy8gVGVtcGxhdGUgZnVuY3Rpb24gdXNlZCBieSB0
aGUgQXJyYXlCdWZmZXJWaWV3KkNvbnN0cnVjdG9yIGNhbGxiYWNrcy4KIHRlbXBsYXRlPGNsYXNz
IEFycmF5Q2xhc3MsIGNsYXNzIEVsZW1lbnRUeXBlPgordjg6OkhhbmRsZTx2ODo6VmFsdWU+IGNv
bnN0cnVjdFdlYkdMQXJyYXlXaXRoQXJyYXlCdWZmZXJBcmd1bWVudChjb25zdCB2ODo6QXJndW1l
bnRzJiBhcmdzLCBXcmFwcGVyVHlwZUluZm8qIHR5cGUsIHY4OjpFeHRlcm5hbEFycmF5VHlwZSBh
cnJheVR5cGUsIGJvb2wgaGFzSW5kZXhlcikKK3sKKyAgICBBcnJheUJ1ZmZlciogYnVmID0gVjhB
cnJheUJ1ZmZlcjo6dG9OYXRpdmUoYXJnc1swXS0+VG9PYmplY3QoKSk7CisgICAgaWYgKCFidWYp
CisgICAgICAgIHJldHVybiB0aHJvd0Vycm9yKCJDb3VsZCBub3QgY29udmVydCBhcmd1bWVudCAw
IHRvIGEgQXJyYXlCdWZmZXIiKTsKKyAgICBib29sIG9rOworICAgIHVpbnQzMl90IG9mZnNldCA9
IDA7CisgICAgaW50IGFyZ0xlbiA9IGFyZ3MuTGVuZ3RoKCk7CisgICAgaWYgKGFyZ0xlbiA+IDEp
IHsKKyAgICAgICAgb2Zmc2V0ID0gdG9VSW50MzIoYXJnc1sxXSwgb2spOworICAgICAgICBpZiAo
IW9rKQorICAgICAgICAgICAgcmV0dXJuIHRocm93RXJyb3IoIkNvdWxkIG5vdCBjb252ZXJ0IGFy
Z3VtZW50IDEgdG8gYSBudW1iZXIiKTsKKyAgICB9CisgICAgaWYgKChidWYtPmJ5dGVMZW5ndGgo
KSAtIG9mZnNldCkgJSBzaXplb2YoRWxlbWVudFR5cGUpKQorICAgICAgICByZXR1cm4gdGhyb3dF
cnJvcigiQXJyYXlCdWZmZXIgbGVuZ3RoIG1pbnVzIHRoZSBieXRlT2Zmc2V0IGlzIG5vdCBhIG11
bHRpcGxlIG9mIHRoZSBlbGVtZW50IHNpemUuIiwgVjhQcm94eTo6UmFuZ2VFcnJvcik7CisgICAg
dWludDMyX3QgbGVuZ3RoID0gKGJ1Zi0+Ynl0ZUxlbmd0aCgpIC0gb2Zmc2V0KSAvIHNpemVvZihF
bGVtZW50VHlwZSk7CisgICAgaWYgKGFyZ0xlbiA+IDIpIHsKKyAgICAgICAgbGVuZ3RoID0gdG9V
SW50MzIoYXJnc1syXSwgb2spOworICAgICAgICBpZiAoIW9rKQorICAgICAgICAgICAgcmV0dXJu
IHRocm93RXJyb3IoIkNvdWxkIG5vdCBjb252ZXJ0IGFyZ3VtZW50IDIgdG8gYSBudW1iZXIiKTsK
KyAgICB9CisKKyAgICBSZWZQdHI8QXJyYXlDbGFzcz4gYXJyYXkgPSBBcnJheUNsYXNzOjpjcmVh
dGUoYnVmLCBvZmZzZXQsIGxlbmd0aCk7CisgICAgaWYgKCFhcnJheSkgeworICAgICAgICBWOFBy
b3h5OjpzZXRET01FeGNlcHRpb24oSU5ERVhfU0laRV9FUlIpOworICAgICAgICByZXR1cm4gbm90
SGFuZGxlZEJ5SW50ZXJjZXB0b3IoKTsKKyAgICB9CisgICAgLy8gVHJhbnNmb3JtIHRoZSBob2xk
ZXIgaW50byBhIHdyYXBwZXIgb2JqZWN0IGZvciB0aGUgYXJyYXkuCisgICAgVjhET01XcmFwcGVy
OjpzZXRET01XcmFwcGVyKGFyZ3MuSG9sZGVyKCksIHR5cGUsIGFycmF5LmdldCgpKTsKKyAgICBp
ZiAoaGFzSW5kZXhlcikKKyAgICAgICAgYXJncy5Ib2xkZXIoKS0+U2V0SW5kZXhlZFByb3BlcnRp
ZXNUb0V4dGVybmFsQXJyYXlEYXRhKGFycmF5LmdldCgpLT5iYXNlQWRkcmVzcygpLCBhcnJheVR5
cGUsIGFycmF5LmdldCgpLT5sZW5ndGgoKSk7CisgICAgcmV0dXJuIHRvVjgoYXJyYXkucmVsZWFz
ZSgpLCBhcmdzLkhvbGRlcigpKTsKK30KKworLy8gVGVtcGxhdGUgZnVuY3Rpb24gdXNlZCBieSB0
aGUgQXJyYXlCdWZmZXJWaWV3KkNvbnN0cnVjdG9yIGNhbGxiYWNrcy4KK3RlbXBsYXRlPGNsYXNz
IEFycmF5Q2xhc3MsIGNsYXNzIEVsZW1lbnRUeXBlPgogdjg6OkhhbmRsZTx2ODo6VmFsdWU+IGNv
bnN0cnVjdFdlYkdMQXJyYXkoY29uc3Qgdjg6OkFyZ3VtZW50cyYgYXJncywgV3JhcHBlclR5cGVJ
bmZvKiB0eXBlLCB2ODo6RXh0ZXJuYWxBcnJheVR5cGUgYXJyYXlUeXBlKQogewogICAgIGlmICgh
YXJncy5Jc0NvbnN0cnVjdENhbGwoKSkKICAgICAgICAgcmV0dXJuIHRocm93RXJyb3IoIkRPTSBv
YmplY3QgY29uc3RydWN0b3IgY2Fubm90IGJlIGNhbGxlZCBhcyBhIGZ1bmN0aW9uLiIpOwogCiAg
ICAgaW50IGFyZ0xlbiA9IGFyZ3MuTGVuZ3RoKCk7Ci0gICAgaWYgKGFyZ0xlbiA9PSAwKSB7Cisg
ICAgaWYgKCFhcmdMZW4pIHsKICAgICAgICAgLy8gVGhpcyBoYXBwZW5zIHdoZW4gd2UgcmV0dXJu
IGEgcHJldmlvdXNseSBjb25zdHJ1Y3RlZAogICAgICAgICAvLyBBcnJheUJ1ZmZlclZpZXcsIGUu
Zy4gZnJvbSB0aGUgY2FsbCB0byA8VHlwZT5BcnJheS5zbGljZSgpLgogICAgICAgICAvLyBUaGUg
VjhET01XcmFwcGVyIHdpbGwgc2V0IHRoZSBpbnRlcm5hbCBwb2ludGVyIGluIHRoZQpAQCAtODMs
MzYgKzEyMCw4IEBAIHY4OjpIYW5kbGU8djg6OlZhbHVlPiBjb25zdHJ1Y3RXZWJHTEFycmF5KGNv
bnN0IHY4OjpBcmd1bWVudHMmIGFyZ3MsIFdyYXBwZXJUeXBlCiAgICAgfQogCiAgICAgLy8gU2Vl
IHdoZXRoZXIgdGhlIGZpcnN0IGFyZ3VtZW50IGlzIGEgQXJyYXlCdWZmZXIuCi0gICAgaWYgKFY4
QXJyYXlCdWZmZXI6Okhhc0luc3RhbmNlKGFyZ3NbMF0pKSB7Ci0gICAgICAgIEFycmF5QnVmZmVy
KiBidWYgPSBWOEFycmF5QnVmZmVyOjp0b05hdGl2ZShhcmdzWzBdLT5Ub09iamVjdCgpKTsKLSAg
ICAgICAgaWYgKCFidWYpCi0gICAgICAgICAgICByZXR1cm4gdGhyb3dFcnJvcigiQ291bGQgbm90
IGNvbnZlcnQgYXJndW1lbnQgMCB0byBhIEFycmF5QnVmZmVyIik7Ci0gICAgICAgIGJvb2wgb2s7
Ci0gICAgICAgIHVpbnQzMl90IG9mZnNldCA9IDA7Ci0gICAgICAgIGlmIChhcmdMZW4gPiAxKSB7
Ci0gICAgICAgICAgICBvZmZzZXQgPSB0b1VJbnQzMihhcmdzWzFdLCBvayk7Ci0gICAgICAgICAg
ICBpZiAoIW9rKQotICAgICAgICAgICAgICAgIHJldHVybiB0aHJvd0Vycm9yKCJDb3VsZCBub3Qg
Y29udmVydCBhcmd1bWVudCAxIHRvIGEgbnVtYmVyIik7Ci0gICAgICAgIH0KLSAgICAgICAgaWYg
KChidWYtPmJ5dGVMZW5ndGgoKSAtIG9mZnNldCkgJSBzaXplb2YoRWxlbWVudFR5cGUpKQotICAg
ICAgICAgICAgcmV0dXJuIHRocm93RXJyb3IoIkFycmF5QnVmZmVyIGxlbmd0aCBtaW51cyB0aGUg
Ynl0ZU9mZnNldCBpcyBub3QgYSBtdWx0aXBsZSBvZiB0aGUgZWxlbWVudCBzaXplLiIsIFY4UHJv
eHk6OlJhbmdlRXJyb3IpOwotICAgICAgICB1aW50MzJfdCBsZW5ndGggPSAoYnVmLT5ieXRlTGVu
Z3RoKCkgLSBvZmZzZXQpIC8gc2l6ZW9mKEVsZW1lbnRUeXBlKTsKLSAgICAgICAgaWYgKGFyZ0xl
biA+IDIpIHsKLSAgICAgICAgICAgIGxlbmd0aCA9IHRvVUludDMyKGFyZ3NbMl0sIG9rKTsKLSAg
ICAgICAgICAgIGlmICghb2spCi0gICAgICAgICAgICAgICAgcmV0dXJuIHRocm93RXJyb3IoIkNv
dWxkIG5vdCBjb252ZXJ0IGFyZ3VtZW50IDIgdG8gYSBudW1iZXIiKTsKLSAgICAgICAgfQotCi0g
ICAgICAgIFJlZlB0cjxBcnJheUNsYXNzPiBhcnJheSA9IEFycmF5Q2xhc3M6OmNyZWF0ZShidWYs
IG9mZnNldCwgbGVuZ3RoKTsKLSAgICAgICAgaWYgKCFhcnJheSkgewotICAgICAgICAgICAgVjhQ
cm94eTo6c2V0RE9NRXhjZXB0aW9uKElOREVYX1NJWkVfRVJSKTsKLSAgICAgICAgICAgIHJldHVy
biBub3RIYW5kbGVkQnlJbnRlcmNlcHRvcigpOwotICAgICAgICB9Ci0gICAgICAgIC8vIFRyYW5z
Zm9ybSB0aGUgaG9sZGVyIGludG8gYSB3cmFwcGVyIG9iamVjdCBmb3IgdGhlIGFycmF5LgotICAg
ICAgICBWOERPTVdyYXBwZXI6OnNldERPTVdyYXBwZXIoYXJncy5Ib2xkZXIoKSwgdHlwZSwgYXJy
YXkuZ2V0KCkpOwotICAgICAgICBhcmdzLkhvbGRlcigpLT5TZXRJbmRleGVkUHJvcGVydGllc1Rv
RXh0ZXJuYWxBcnJheURhdGEoYXJyYXkuZ2V0KCktPmJhc2VBZGRyZXNzKCksIGFycmF5VHlwZSwg
YXJyYXkuZ2V0KCktPmxlbmd0aCgpKTsKLSAgICAgICAgcmV0dXJuIHRvVjgoYXJyYXkucmVsZWFz
ZSgpLCBhcmdzLkhvbGRlcigpKTsKLSAgICB9CisgICAgaWYgKFY4QXJyYXlCdWZmZXI6Okhhc0lu
c3RhbmNlKGFyZ3NbMF0pKQorICAgICAgcmV0dXJuIGNvbnN0cnVjdFdlYkdMQXJyYXlXaXRoQXJy
YXlCdWZmZXJBcmd1bWVudDxBcnJheUNsYXNzLCBFbGVtZW50VHlwZT4oYXJncywgdHlwZSwgYXJy
YXlUeXBlLCB0cnVlKTsKIAogICAgIHVpbnQzMl90IGxlbiA9IDA7CiAgICAgdjg6OkhhbmRsZTx2
ODo6T2JqZWN0PiBzcmNBcnJheTsKQEAgLTIwMSwzICsyMTAsNSBAQCB2ODo6SGFuZGxlPHY4OjpW
YWx1ZT4gc2V0V2ViR0xBcnJheUhlbHBlcihjb25zdCB2ODo6QXJndW1lbnRzJiBhcmdzKQogfQog
CiAjZW5kaWYgLy8gRU5BQkxFKDNEX0NBTlZBUykKKworI2VuZGlmIC8vIFY4QXJyYXlCdWZmZXJW
aWV3Q3VzdG9tX2gKZGlmZiAtLWdpdCBhL1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4RGF0
YVZpZXdDdXN0b20uY3BwIGIvV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhEYXRhVmlld0N1
c3RvbS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uNDRlOWM0YQotLS0g
L2Rldi9udWxsCisrKyBiL1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4RGF0YVZpZXdDdXN0
b20uY3BwCkBAIC0wLDAgKzEsMTUyIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEwIEdvb2ds
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKKyAqIGFyZSBtZXQ6CisgKgorICogMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBBTkQgSVRTIENPTlRSSUJVVE9SUyAiQVMg
SVMiIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKKyAqIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKKyAqIERJ
U0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIE9SIElUUyBDT05UUklCVVRPUlMgQkUg
TElBQkxFIEZPUiBBTlkKKyAqIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUws
IEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTCisgKiAoSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7CisgKiBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQKKyAqIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UgT0YKKyAqIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorCisj
aWYgRU5BQkxFKDNEX0NBTlZBUykgfHwgRU5BQkxFKEJMT0IpCisKKyNpbmNsdWRlICJEYXRhVmll
dy5oIgorCisjaW5jbHVkZSAiVjhBcnJheUJ1ZmZlclZpZXdDdXN0b20uaCIKKyNpbmNsdWRlICJW
OEJpbmRpbmcuaCIKKyNpbmNsdWRlICJWOEJpbmRpbmdNYWNyb3MuaCIKKyNpbmNsdWRlICJWOERh
dGFWaWV3LmgiCisjaW5jbHVkZSAiVjhQcm94eS5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisK
K3Y4OjpIYW5kbGU8djg6OlZhbHVlPiBWOERhdGFWaWV3Ojpjb25zdHJ1Y3RvckNhbGxiYWNrKGNv
bnN0IHY4OjpBcmd1bWVudHMmIGFyZ3MpCit7CisgICAgSU5DX1NUQVRTKCJET00uQXJyYXlCdWZm
ZXIuQ29uc3RydWN0b3IiKTsKKworICAgIGlmIChhcmdzWzBdLT5Jc051bGwoKSB8fCAhVjhBcnJh
eUJ1ZmZlcjo6SGFzSW5zdGFuY2UoYXJnc1swXSkpCisgICAgICAgIHJldHVybiBWOFByb3h5Ojp0
aHJvd1R5cGVFcnJvcigpOworICAgIHJldHVybiBjb25zdHJ1Y3RXZWJHTEFycmF5V2l0aEFycmF5
QnVmZmVyQXJndW1lbnQ8RGF0YVZpZXcsIGNoYXI+KGFyZ3MsICZpbmZvLCB2ODo6a0V4dGVybmFs
Qnl0ZUFycmF5LCBmYWxzZSk7Cit9CisKK3Y4OjpIYW5kbGU8djg6OlZhbHVlPiB0b1Y4KERhdGFW
aWV3KiBpbXBsKQoreworICAgIGlmICghaW1wbCkKKyAgICAgICAgcmV0dXJuIHY4OjpOdWxsKCk7
CisgICAgcmV0dXJuIFY4RGF0YVZpZXc6OndyYXAoaW1wbCk7Cit9CisKK3Y4OjpIYW5kbGU8djg6
OlZhbHVlPiBWOERhdGFWaWV3OjpnZXRJbnQ4Q2FsbGJhY2soY29uc3Qgdjg6OkFyZ3VtZW50cyYg
YXJncykKK3sKKyAgICBJTkNfU1RBVFMoIkRPTS5EYXRhVmlldy5nZXRJbnQ4Iik7CisgICAgaWYg
KGFyZ3MuTGVuZ3RoKCkgPCAxKQorICAgICAgICByZXR1cm4gdGhyb3dFcnJvcigiTm90IGVub3Vn
aCBhcmd1bWVudHMiLCBWOFByb3h5OjpTeW50YXhFcnJvcik7CisgICAgaWYgKCFpc1VuZGVmaW5l
ZE9yTnVsbChhcmdzWzBdKSAmJiAhYXJnc1swXS0+SXNOdW1iZXIoKSAmJiAhYXJnc1swXS0+SXNC
b29sZWFuKCkpIHsKKyAgICAgICAgVjhQcm94eTo6dGhyb3dUeXBlRXJyb3IoKTsKKyAgICAgICAg
cmV0dXJuIG5vdEhhbmRsZWRCeUludGVyY2VwdG9yKCk7CisgICAgfQorCisgICAgRGF0YVZpZXcq
IGltcCA9IFY4RGF0YVZpZXc6OnRvTmF0aXZlKGFyZ3MuSG9sZGVyKCkpOworICAgIEV4Y2VwdGlv
bkNvZGUgZWMgPSAwOworICAgIEVYQ0VQVElPTl9CTE9DSyh1bnNpZ25lZCwgYnl0ZU9mZnNldCwg
dG9VSW50MzIoYXJnc1swXSkpOworICAgIGNoYXIgcmVzdWx0ID0gaW1wLT5nZXRJbnQ4KGJ5dGVP
ZmZzZXQsIGVjKTsKKyAgICBpZiAoVU5MSUtFTFkoZWMpKSB7CisgICAgICAgIFY4UHJveHk6OnNl
dERPTUV4Y2VwdGlvbihlYyk7CisgICAgICAgIHJldHVybiB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4o
KTsKKyAgICB9CisgICAgcmV0dXJuIHY4OjpJbnRlZ2VyOjpOZXcocmVzdWx0KTsKK30KKwordjg6
OkhhbmRsZTx2ODo6VmFsdWU+IFY4RGF0YVZpZXc6OmdldFVpbnQ4Q2FsbGJhY2soY29uc3Qgdjg6
OkFyZ3VtZW50cyYgYXJncykKK3sKKyAgICBJTkNfU1RBVFMoIkRPTS5EYXRhVmlldy5nZXRVaW50
OCIpOworICAgIGlmIChhcmdzLkxlbmd0aCgpIDwgMSkKKyAgICAgICAgcmV0dXJuIHRocm93RXJy
b3IoIk5vdCBlbm91Z2ggYXJndW1lbnRzIiwgVjhQcm94eTo6U3ludGF4RXJyb3IpOworICAgIGlm
ICghaXNVbmRlZmluZWRPck51bGwoYXJnc1swXSkgJiYgIWFyZ3NbMF0tPklzTnVtYmVyKCkgJiYg
IWFyZ3NbMF0tPklzQm9vbGVhbigpKSB7CisgICAgICAgIFY4UHJveHk6OnRocm93VHlwZUVycm9y
KCk7CisgICAgICAgIHJldHVybiBub3RIYW5kbGVkQnlJbnRlcmNlcHRvcigpOworICAgIH0KKwor
ICAgIERhdGFWaWV3KiBpbXAgPSBWOERhdGFWaWV3Ojp0b05hdGl2ZShhcmdzLkhvbGRlcigpKTsK
KyAgICBFeGNlcHRpb25Db2RlIGVjID0gMDsKKyAgICBFWENFUFRJT05fQkxPQ0sodW5zaWduZWQs
IGJ5dGVPZmZzZXQsIHRvVUludDMyKGFyZ3NbMF0pKTsKKyAgICB1bnNpZ25lZCBjaGFyIHJlc3Vs
dCA9IGltcC0+Z2V0VWludDgoYnl0ZU9mZnNldCwgZWMpOworICAgIGlmIChVTkxJS0VMWShlYykp
IHsKKyAgICAgICAgVjhQcm94eTo6c2V0RE9NRXhjZXB0aW9uKGVjKTsKKyAgICAgICAgcmV0dXJu
IHY4OjpIYW5kbGU8djg6OlZhbHVlPigpOworICAgIH0KKyAgICByZXR1cm4gdjg6OkludGVnZXI6
Ok5ldyhyZXN1bHQpOworfQorCit2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gVjhEYXRhVmlldzo6c2V0
SW50OENhbGxiYWNrKGNvbnN0IHY4OjpBcmd1bWVudHMmIGFyZ3MpCit7CisgICAgSU5DX1NUQVRT
KCJET00uRGF0YVZpZXcuc2V0SW50OCIpOworICAgIGlmIChhcmdzLkxlbmd0aCgpIDwgMikKKyAg
ICAgICAgcmV0dXJuIHRocm93RXJyb3IoIk5vdCBlbm91Z2ggYXJndW1lbnRzIiwgVjhQcm94eTo6
U3ludGF4RXJyb3IpOworICAgIGlmICghaXNVbmRlZmluZWRPck51bGwoYXJnc1swXSkgJiYgIWFy
Z3NbMF0tPklzTnVtYmVyKCkgJiYgIWFyZ3NbMF0tPklzQm9vbGVhbigpKSB7CisgICAgICAgIFY4
UHJveHk6OnRocm93VHlwZUVycm9yKCk7CisgICAgICAgIHJldHVybiBub3RIYW5kbGVkQnlJbnRl
cmNlcHRvcigpOworICAgIH0KKyAgICBpZiAoIWlzVW5kZWZpbmVkT3JOdWxsKGFyZ3NbMV0pICYm
ICFhcmdzWzFdLT5Jc051bWJlcigpICYmICFhcmdzWzFdLT5Jc0Jvb2xlYW4oKSkgeworICAgICAg
ICBWOFByb3h5Ojp0aHJvd1R5cGVFcnJvcigpOworICAgICAgICByZXR1cm4gbm90SGFuZGxlZEJ5
SW50ZXJjZXB0b3IoKTsKKyAgICB9CisKKyAgICBEYXRhVmlldyogaW1wID0gVjhEYXRhVmlldzo6
dG9OYXRpdmUoYXJncy5Ib2xkZXIoKSk7CisgICAgRXhjZXB0aW9uQ29kZSBlYyA9IDA7CisgICAg
RVhDRVBUSU9OX0JMT0NLKHVuc2lnbmVkLCBieXRlT2Zmc2V0LCB0b1VJbnQzMihhcmdzWzBdKSk7
CisgICAgRVhDRVBUSU9OX0JMT0NLKGludCwgdmFsdWUsIHRvSW50MzIoYXJnc1sxXSkpOworICAg
IGlmICh2YWx1ZSA8IC0xMjggfHwgdmFsdWUgPiAxMjcpCisgICAgICAgIHJldHVybiB0aHJvd0Vy
cm9yKCJUaGUgdmFsdWUgdG8gc2V0IHRvIGlzIG91dCBvZiByYW5nZSIsIFY4UHJveHk6OlN5bnRh
eEVycm9yKTsKKyAgICBpbXAtPnNldEludDgoYnl0ZU9mZnNldCwgc3RhdGljX2Nhc3Q8Y2hhcj4o
dmFsdWUpLCBlYyk7CisgICAgaWYgKFVOTElLRUxZKGVjKSkKKyAgICAgICAgVjhQcm94eTo6c2V0
RE9NRXhjZXB0aW9uKGVjKTsKKyAgICByZXR1cm4gdjg6OkhhbmRsZTx2ODo6VmFsdWU+KCk7Cit9
CisKK3Y4OjpIYW5kbGU8djg6OlZhbHVlPiBWOERhdGFWaWV3OjpzZXRVaW50OENhbGxiYWNrKGNv
bnN0IHY4OjpBcmd1bWVudHMmIGFyZ3MpCit7CisgICAgSU5DX1NUQVRTKCJET00uRGF0YVZpZXcu
c2V0VWludDgiKTsKKyAgICBpZiAoYXJncy5MZW5ndGgoKSA8IDIpCisgICAgICAgIHJldHVybiB0
aHJvd0Vycm9yKCJOb3QgZW5vdWdoIGFyZ3VtZW50cyIsIFY4UHJveHk6OlN5bnRheEVycm9yKTsK
KyAgICBpZiAoIWlzVW5kZWZpbmVkT3JOdWxsKGFyZ3NbMF0pICYmICFhcmdzWzBdLT5Jc051bWJl
cigpICYmICFhcmdzWzBdLT5Jc0Jvb2xlYW4oKSkgeworICAgICAgICBWOFByb3h5Ojp0aHJvd1R5
cGVFcnJvcigpOworICAgICAgICByZXR1cm4gbm90SGFuZGxlZEJ5SW50ZXJjZXB0b3IoKTsKKyAg
ICB9CisgICAgaWYgKCFpc1VuZGVmaW5lZE9yTnVsbChhcmdzWzFdKSAmJiAhYXJnc1sxXS0+SXNO
dW1iZXIoKSAmJiAhYXJnc1sxXS0+SXNCb29sZWFuKCkpIHsKKyAgICAgICAgVjhQcm94eTo6dGhy
b3dUeXBlRXJyb3IoKTsKKyAgICAgICAgcmV0dXJuIG5vdEhhbmRsZWRCeUludGVyY2VwdG9yKCk7
CisgICAgfQorCisgICAgRGF0YVZpZXcqIGltcCA9IFY4RGF0YVZpZXc6OnRvTmF0aXZlKGFyZ3Mu
SG9sZGVyKCkpOworICAgIEV4Y2VwdGlvbkNvZGUgZWMgPSAwOworICAgIEVYQ0VQVElPTl9CTE9D
Syh1bnNpZ25lZCwgYnl0ZU9mZnNldCwgdG9VSW50MzIoYXJnc1swXSkpOworICAgIEVYQ0VQVElP
Tl9CTE9DSyhpbnQsIHZhbHVlLCB0b0ludDMyKGFyZ3NbMV0pKTsKKyAgICBpZiAodmFsdWUgPCAw
IHx8IHZhbHVlID4gMjU1KQorICAgICAgICByZXR1cm4gdGhyb3dFcnJvcigiVGhlIHZhbHVlIHRv
IHNldCB0byBpcyBvdXQgb2YgcmFuZ2UiLCBWOFByb3h5OjpTeW50YXhFcnJvcik7CisgICAgaW1w
LT5zZXRVaW50OChieXRlT2Zmc2V0LCBzdGF0aWNfY2FzdDx1bnNpZ25lZCBjaGFyPih2YWx1ZSks
IGVjKTsKKyAgICBpZiAoVU5MSUtFTFkoZWMpKQorICAgICAgICBWOFByb3h5OjpzZXRET01FeGNl
cHRpb24oZWMpOworICAgIHJldHVybiB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4oKTsKK30KKworfSAv
LyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gRU5BQkxFKDNEX0NBTlZBUykgfHwgRU5B
QkxFKEJMT0IpCmRpZmYgLS1naXQgYS9XZWJDb3JlL2h0bWwvY2FudmFzL0FycmF5QnVmZmVyVmll
dy5oIGIvV2ViQ29yZS9odG1sL2NhbnZhcy9BcnJheUJ1ZmZlclZpZXcuaAppbmRleCBkMzdiYWRh
Li43MDFhYmJjIDEwMDY0NAotLS0gYS9XZWJDb3JlL2h0bWwvY2FudmFzL0FycmF5QnVmZmVyVmll
dy5oCisrKyBiL1dlYkNvcmUvaHRtbC9jYW52YXMvQXJyYXlCdWZmZXJWaWV3LmgKQEAgLTQ2LDYg
KzQ2LDcgQEAgY2xhc3MgQXJyYXlCdWZmZXJWaWV3IDogcHVibGljIFJlZkNvdW50ZWQ8QXJyYXlC
dWZmZXJWaWV3PiB7CiAgICAgdmlydHVhbCBib29sIGlzSW50QXJyYXkoKSBjb25zdCB7IHJldHVy
biBmYWxzZTsgfQogICAgIHZpcnR1YWwgYm9vbCBpc1Vuc2lnbmVkSW50QXJyYXkoKSBjb25zdCB7
IHJldHVybiBmYWxzZTsgfQogICAgIHZpcnR1YWwgYm9vbCBpc0Zsb2F0QXJyYXkoKSBjb25zdCB7
IHJldHVybiBmYWxzZTsgfQorICAgIHZpcnR1YWwgYm9vbCBpc0RhdGFWaWV3KCkgY29uc3QgeyBy
ZXR1cm4gZmFsc2U7IH0KIAogICAgIFBhc3NSZWZQdHI8QXJyYXlCdWZmZXI+IGJ1ZmZlcigpIGNv
bnN0CiAgICAgewpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9odG1sL2NhbnZhcy9EYXRhVmlldy5jcHAg
Yi9XZWJDb3JlL2h0bWwvY2FudmFzL0RhdGFWaWV3LmNwcApuZXcgZmlsZSBtb2RlIDEwMDc1NQpp
bmRleCAwMDAwMDAwLi5kMDMwMjExCi0tLSAvZGV2L251bGwKKysrIGIvV2ViQ29yZS9odG1sL2Nh
bnZhcy9EYXRhVmlldy5jcHAKQEAgLTAsMCArMSwyMjggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMp
IDIwMTAgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
KyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqCisgKiAxLiAgUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
CisgKiAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICAgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4K
KyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIEFORCBJVFMgQ09OVFJJ
QlVUT1JTICJBUyBJUyIgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAorICogV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NF
IEFSRQorICogRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgT1IgSVRTIENPTlRS
SUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWQorICogRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMKKyAqIChJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsKKyAqIExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORAorICogT04gQU5ZIFRIRU9SWSBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRSBPRgorICogVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29u
ZmlnLmgiCisKKyNpZiBFTkFCTEUoM0RfQ0FOVkFTKSB8fCBFTkFCTEUoQkxPQikKKworI2luY2x1
ZGUgIkRhdGFWaWV3LmgiCisKK25hbWVzcGFjZSB7CisKK3RlbXBsYXRlPHR5cGVuYW1lIFQ+Cit1
bmlvbiBWYWx1ZSB7CisgICAgVCBkYXRhOworICAgIGNoYXIgYnl0ZXNbc2l6ZW9mKFQpXTsKK307
CisKK30KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitQYXNzUmVmUHRyPERhdGFWaWV3PiBEYXRh
Vmlldzo6Y3JlYXRlKFBhc3NSZWZQdHI8QXJyYXlCdWZmZXI+IGJ1ZmZlciwgdW5zaWduZWQgYnl0
ZU9mZnNldCwgdW5zaWduZWQgYnl0ZUxlbmd0aCkKK3sKKyAgICBpZiAoYnl0ZU9mZnNldCArIGJ5
dGVMZW5ndGggPiBidWZmZXItPmJ5dGVMZW5ndGgoKSkKKyAgICAgICAgcmV0dXJuIDA7CisgICAg
cmV0dXJuIGFkb3B0UmVmKG5ldyBEYXRhVmlldyhidWZmZXIsIGJ5dGVPZmZzZXQsIGJ5dGVMZW5n
dGgpKTsKK30KKworRGF0YVZpZXc6OkRhdGFWaWV3KFBhc3NSZWZQdHI8QXJyYXlCdWZmZXI+IGJ1
ZmZlciwgdW5zaWduZWQgYnl0ZU9mZnNldCwgdW5zaWduZWQgYnl0ZUxlbmd0aCkKKyAgICA6IEFy
cmF5QnVmZmVyVmlldyhidWZmZXIsIGJ5dGVPZmZzZXQpCisgICAgLCBtX2J5dGVMZW5ndGgoYnl0
ZUxlbmd0aCkKK3sKK30KKworc3RhdGljIGJvb2wgbmVlZFRvRmxpcEJ5dGVzKGJvb2wgbGl0dGxl
RW5kaWFuKQoreworI2lmIENQVShCSUdfRU5ESUFOKQorICAgIHJldHVybiBsaXR0bGVFbmRpYW47
CisjZWxzZQorICAgIHJldHVybiAhbGl0dGxlRW5kaWFuOworI2VuZGlmCit9CisKK2lubGluZSB2
b2lkIHN3YXBCeXRlcyhjaGFyKiBwLCBjaGFyKiBxKQoreworICAgIGNoYXIgdGVtcCA9ICpwOwor
ICAgICpwID0gKnE7CisgICAgKnEgPSB0ZW1wOworfQorCitzdGF0aWMgdm9pZCBmbGlwQnl0ZXNG
b3IxNkJpdHMoY2hhciogcCkKK3sKKyAgICBzd2FwQnl0ZXMocCwgcCArIDEpOworfQorCitzdGF0
aWMgdm9pZCBmbGlwQnl0ZXNGb3IzMkJpdHMoY2hhciogcCkKK3sKKyAgICBzd2FwQnl0ZXMocCwg
cCArIDMpOworICAgIHN3YXBCeXRlcyhwICsgMSwgcCArIDIpOworfQorCitzdGF0aWMgdm9pZCBm
bGlwQnl0ZXNGb3I2NEJpdHMoY2hhciogcCkKK3sKKyAgICBzd2FwQnl0ZXMocCwgcCArIDcpOwor
ICAgIHN3YXBCeXRlcyhwICsgMSwgcCArIDYpOworICAgIHN3YXBCeXRlcyhwICsgMiwgcCArIDUp
OworICAgIHN3YXBCeXRlcyhwICsgMywgcCArIDQpOworfQorCitzdGF0aWMgdm9pZCBmbGlwQnl0
ZXNJZk5lZWRlZChjaGFyKiB2YWx1ZSwgc2l6ZV90IHNpemUsIGJvb2wgbGl0dGxlRW5kaWFuKQor
eworICAgIGlmICghbmVlZFRvRmxpcEJ5dGVzKGxpdHRsZUVuZGlhbikpCisgICAgICAgIHJldHVy
bjsKKworICAgIHN3aXRjaCAoc2l6ZSkgeworICAgIGNhc2UgMToKKyAgICAgICAgLy8gTm90aGlu
ZyB0byBkby4KKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSAyOgorICAgICAgICBmbGlwQnl0ZXNG
b3IxNkJpdHModmFsdWUpOworICAgICAgICBicmVhazsKKyAgICBjYXNlIDQ6CisgICAgICAgIGZs
aXBCeXRlc0ZvcjMyQml0cyh2YWx1ZSk7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgODoKKyAg
ICAgICAgZmxpcEJ5dGVzRm9yNjRCaXRzKHZhbHVlKTsKKyAgICAgICAgYnJlYWs7CisgICAgZGVm
YXVsdDoKKyAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgICAgIGJyZWFrOworICAg
IH0KK30KKwordGVtcGxhdGU8dHlwZW5hbWUgVD4KK1QgRGF0YVZpZXc6OmdldERhdGEodW5zaWdu
ZWQgYnl0ZU9mZnNldCwgYm9vbCBsaXR0bGVFbmRpYW4sIEV4Y2VwdGlvbkNvZGUmIGVjKSBjb25z
dAoreworICAgIGlmIChiZXlvbmRSYW5nZTxUPihieXRlT2Zmc2V0KSkgeworICAgICAgICBlYyA9
IElOREVYX1NJWkVfRVJSOworICAgICAgICByZXR1cm4gMDsKKyAgICB9CisKKyAgICAvLyBXZSBk
byBub3Qgd2FudCB0byBsb2FkIHRoZSBkYXRhIGRpcmVjdGx5IHNpbmNlIGl0IHdvdWxkIGNhdXNl
IGEgYnVzIGVycm9yIG9uIGFyY2hpdGVjdHVyZXMgdGhhdCBkb24ndCBzdXBwb3J0IHVuYWxpZ25l
ZCBsb2Fkcy4KKyAgICBWYWx1ZTxUPiB2YWx1ZTsKKyAgICBtZW1jcHkodmFsdWUuYnl0ZXMsIHN0
YXRpY19jYXN0PGNvbnN0IGNoYXIqPihtX2Jhc2VBZGRyZXNzKSArIGJ5dGVPZmZzZXQsIHNpemVv
ZihUKSk7CisgICAgZmxpcEJ5dGVzSWZOZWVkZWQodmFsdWUuYnl0ZXMsIHNpemVvZihUKSwgbGl0
dGxlRW5kaWFuKTsKKyAgICByZXR1cm4gdmFsdWUuZGF0YTsKK30KKwordGVtcGxhdGU8dHlwZW5h
bWUgVD4KK3ZvaWQgRGF0YVZpZXc6OnNldERhdGEodW5zaWduZWQgYnl0ZU9mZnNldCwgVCB2YWx1
ZSwgYm9vbCBsaXR0bGVFbmRpYW4sIEV4Y2VwdGlvbkNvZGUmIGVjKQoreworICAgIGlmIChiZXlv
bmRSYW5nZTxUPihieXRlT2Zmc2V0KSkgeworICAgICAgICBlYyA9IElOREVYX1NJWkVfRVJSOwor
ICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgLy8gV2UgZG8gbm90IHdhbnQgdG8gc3RvcmUg
dGhlIGRhdGEgZGlyZWN0bHkgc2luY2UgaXQgd291bGQgY2F1c2UgYSBidXMgZXJyb3Igb24gYXJj
aGl0ZWN0dXJlcyB0aGF0IGRvbid0IHN1cHBvcnQgdW5hbGlnbmVkIHN0b3Jlcy4KKyAgICBWYWx1
ZTxUPiB0ZW1wVmFsdWU7CisgICAgdGVtcFZhbHVlLmRhdGEgPSB2YWx1ZTsKKyAgICBmbGlwQnl0
ZXNJZk5lZWRlZCh0ZW1wVmFsdWUuYnl0ZXMsIHNpemVvZihUKSwgbGl0dGxlRW5kaWFuKTsKKyAg
ICBtZW1jcHkoc3RhdGljX2Nhc3Q8Y2hhcio+KG1fYmFzZUFkZHJlc3MpICsgYnl0ZU9mZnNldCwg
dGVtcFZhbHVlLmJ5dGVzLCBzaXplb2YoVCkpOworfQorCitjaGFyIERhdGFWaWV3OjpnZXRJbnQ4
KHVuc2lnbmVkIGJ5dGVPZmZzZXQsIEV4Y2VwdGlvbkNvZGUmIGVjKQoreworICAgIHJldHVybiBn
ZXREYXRhPGNoYXI+KGJ5dGVPZmZzZXQsIGZhbHNlLCBlYyk7Cit9CisKK3Vuc2lnbmVkIGNoYXIg
RGF0YVZpZXc6OmdldFVpbnQ4KHVuc2lnbmVkIGJ5dGVPZmZzZXQsIEV4Y2VwdGlvbkNvZGUmIGVj
KQoreworICAgIHJldHVybiBnZXREYXRhPHVuc2lnbmVkIGNoYXI+KGJ5dGVPZmZzZXQsIGZhbHNl
LCBlYyk7Cit9CisKK3Nob3J0IERhdGFWaWV3OjpnZXRJbnQxNih1bnNpZ25lZCBieXRlT2Zmc2V0
LCBib29sIGxpdHRsZUVuZGlhbiwgRXhjZXB0aW9uQ29kZSYgZWMpCit7CisgICAgcmV0dXJuIGdl
dERhdGE8c2hvcnQ+KGJ5dGVPZmZzZXQsIGxpdHRsZUVuZGlhbiwgZWMpOworfQorCit1bnNpZ25l
ZCBzaG9ydCBEYXRhVmlldzo6Z2V0VWludDE2KHVuc2lnbmVkIGJ5dGVPZmZzZXQsIGJvb2wgbGl0
dGxlRW5kaWFuLCBFeGNlcHRpb25Db2RlJiBlYykKK3sKKyAgICByZXR1cm4gZ2V0RGF0YTx1bnNp
Z25lZCBzaG9ydD4oYnl0ZU9mZnNldCwgbGl0dGxlRW5kaWFuLCBlYyk7Cit9CisKK2ludCBEYXRh
Vmlldzo6Z2V0SW50MzIodW5zaWduZWQgYnl0ZU9mZnNldCwgYm9vbCBsaXR0bGVFbmRpYW4sIEV4
Y2VwdGlvbkNvZGUmIGVjKQoreworICAgIHJldHVybiBnZXREYXRhPGludD4oYnl0ZU9mZnNldCwg
bGl0dGxlRW5kaWFuLCBlYyk7Cit9CisKK3Vuc2lnbmVkIERhdGFWaWV3OjpnZXRVaW50MzIodW5z
aWduZWQgYnl0ZU9mZnNldCwgYm9vbCBsaXR0bGVFbmRpYW4sIEV4Y2VwdGlvbkNvZGUmIGVjKQor
eworICAgIHJldHVybiBnZXREYXRhPHVuc2lnbmVkPihieXRlT2Zmc2V0LCBsaXR0bGVFbmRpYW4s
IGVjKTsKK30KKworZmxvYXQgRGF0YVZpZXc6OmdldEZsb2F0MzIodW5zaWduZWQgYnl0ZU9mZnNl
dCwgYm9vbCBsaXR0bGVFbmRpYW4sIEV4Y2VwdGlvbkNvZGUmIGVjKQoreworICAgIHJldHVybiBn
ZXREYXRhPGZsb2F0PihieXRlT2Zmc2V0LCBsaXR0bGVFbmRpYW4sIGVjKTsKK30KKworZG91Ymxl
IERhdGFWaWV3OjpnZXRGbG9hdDY0KHVuc2lnbmVkIGJ5dGVPZmZzZXQsIGJvb2wgbGl0dGxlRW5k
aWFuLCBFeGNlcHRpb25Db2RlJiBlYykKK3sKKyAgICByZXR1cm4gZ2V0RGF0YTxkb3VibGU+KGJ5
dGVPZmZzZXQsIGxpdHRsZUVuZGlhbiwgZWMpOworfQorCit2b2lkIERhdGFWaWV3OjpzZXRJbnQ4
KHVuc2lnbmVkIGJ5dGVPZmZzZXQsIGNoYXIgdmFsdWUsIEV4Y2VwdGlvbkNvZGUmIGVjKQorewor
ICAgIHNldERhdGE8Y2hhcj4oYnl0ZU9mZnNldCwgdmFsdWUsIGZhbHNlLCBlYyk7Cit9CisKK3Zv
aWQgRGF0YVZpZXc6OnNldFVpbnQ4KHVuc2lnbmVkIGJ5dGVPZmZzZXQsIHVuc2lnbmVkIGNoYXIg
dmFsdWUsIEV4Y2VwdGlvbkNvZGUmIGVjKQoreworICAgIHNldERhdGE8dW5zaWduZWQgY2hhcj4o
Ynl0ZU9mZnNldCwgdmFsdWUsIGZhbHNlLCBlYyk7Cit9CisKK3ZvaWQgRGF0YVZpZXc6OnNldElu
dDE2KHVuc2lnbmVkIGJ5dGVPZmZzZXQsIHNob3J0IHZhbHVlLCBib29sIGxpdHRsZUVuZGlhbiwg
RXhjZXB0aW9uQ29kZSYgZWMpCit7CisgICAgc2V0RGF0YTxzaG9ydD4oYnl0ZU9mZnNldCwgdmFs
dWUsIGxpdHRsZUVuZGlhbiwgZWMpOworfQorCit2b2lkIERhdGFWaWV3OjpzZXRVaW50MTYodW5z
aWduZWQgYnl0ZU9mZnNldCwgdW5zaWduZWQgc2hvcnQgdmFsdWUsIGJvb2wgbGl0dGxlRW5kaWFu
LCBFeGNlcHRpb25Db2RlJiBlYykKK3sKKyAgICBzZXREYXRhPHVuc2lnbmVkIHNob3J0PihieXRl
T2Zmc2V0LCB2YWx1ZSwgbGl0dGxlRW5kaWFuLCBlYyk7Cit9CisKK3ZvaWQgRGF0YVZpZXc6OnNl
dEludDMyKHVuc2lnbmVkIGJ5dGVPZmZzZXQsIGludCB2YWx1ZSwgYm9vbCBsaXR0bGVFbmRpYW4s
IEV4Y2VwdGlvbkNvZGUmIGVjKQoreworICAgIHNldERhdGE8aW50PihieXRlT2Zmc2V0LCB2YWx1
ZSwgbGl0dGxlRW5kaWFuLCBlYyk7Cit9CisKK3ZvaWQgRGF0YVZpZXc6OnNldFVpbnQzMih1bnNp
Z25lZCBieXRlT2Zmc2V0LCB1bnNpZ25lZCB2YWx1ZSwgYm9vbCBsaXR0bGVFbmRpYW4sIEV4Y2Vw
dGlvbkNvZGUmIGVjKQoreworICAgIHNldERhdGE8dW5zaWduZWQ+KGJ5dGVPZmZzZXQsIHZhbHVl
LCBsaXR0bGVFbmRpYW4sIGVjKTsKK30KKwordm9pZCBEYXRhVmlldzo6c2V0RmxvYXQzMih1bnNp
Z25lZCBieXRlT2Zmc2V0LCBmbG9hdCB2YWx1ZSwgYm9vbCBsaXR0bGVFbmRpYW4sIEV4Y2VwdGlv
bkNvZGUmIGVjKQoreworICAgIHNldERhdGE8ZmxvYXQ+KGJ5dGVPZmZzZXQsIHZhbHVlLCBsaXR0
bGVFbmRpYW4sIGVjKTsKK30KKwordm9pZCBEYXRhVmlldzo6c2V0RmxvYXQ2NCh1bnNpZ25lZCBi
eXRlT2Zmc2V0LCBkb3VibGUgdmFsdWUsIGJvb2wgbGl0dGxlRW5kaWFuLCBFeGNlcHRpb25Db2Rl
JiBlYykKK3sKKyAgICBzZXREYXRhPGRvdWJsZT4oYnl0ZU9mZnNldCwgdmFsdWUsIGxpdHRsZUVu
ZGlhbiwgZWMpOworfQorCit9CisKKyNlbmRpZiAvLyBFTkFCTEUoM0RfQ0FOVkFTKSB8fCBFTkFC
TEUoQkxPQikKZGlmZiAtLWdpdCBhL1dlYkNvcmUvaHRtbC9jYW52YXMvRGF0YVZpZXcuaCBiL1dl
YkNvcmUvaHRtbC9jYW52YXMvRGF0YVZpZXcuaApuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAw
MDAwMDAwLi4wNjgxMzQxCi0tLSAvZGV2L251bGwKKysrIGIvV2ViQ29yZS9odG1sL2NhbnZhcy9E
YXRhVmlldy5oCkBAIC0wLDAgKzEsOTIgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgR29v
Z2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucworICogYXJlIG1ldDoKKyAqCisgKiAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiAg
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIEFORCBJVFMgQ09OVFJJQlVUT1JTICJB
UyBJUyIgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAorICogV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQorICog
RElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgT1IgSVRTIENPTlRSSUJVVE9SUyBC
RSBMSUFCTEUgRk9SIEFOWQorICogRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lB
TCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMKKyAqIChJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsKKyAqIExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORAorICogT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRSBPRgorICogVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIERhdGFWaWV3X2gKKyNk
ZWZpbmUgRGF0YVZpZXdfaAorCisjaW5jbHVkZSAiQXJyYXlCdWZmZXJWaWV3LmgiCisjaW5jbHVk
ZSAiRXhjZXB0aW9uQ29kZS5oIgorI2luY2x1ZGUgPHd0Zi9QYXNzUmVmUHRyLmg+CisKK25hbWVz
cGFjZSBXZWJDb3JlIHsKKworY2xhc3MgRGF0YVZpZXcgOiBwdWJsaWMgQXJyYXlCdWZmZXJWaWV3
IHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxEYXRhVmlldz4gY3JlYXRlKFBhc3NS
ZWZQdHI8QXJyYXlCdWZmZXI+LCB1bnNpZ25lZCBieXRlT2Zmc2V0LCB1bnNpZ25lZCBieXRlTGVu
Z3RoKTsKKworICAgIHZpcnR1YWwgYm9vbCBpc0RhdGFWaWV3KCkgY29uc3QgeyByZXR1cm4gdHJ1
ZTsgfQorICAgIHZpcnR1YWwgdW5zaWduZWQgbGVuZ3RoKCkgY29uc3QgeyByZXR1cm4gbV9ieXRl
TGVuZ3RoOyB9CisgICAgdmlydHVhbCB1bnNpZ25lZCBieXRlTGVuZ3RoKCkgY29uc3QgeyByZXR1
cm4gbV9ieXRlTGVuZ3RoOyB9CisgICAgdmlydHVhbCBQYXNzUmVmUHRyPEFycmF5QnVmZmVyVmll
dz4gc2xpY2UoaW50LCBpbnQpIGNvbnN0IHsgcmV0dXJuIDA7IH0KKworICAgIGNoYXIgZ2V0SW50
OCh1bnNpZ25lZCBieXRlT2Zmc2V0LCBFeGNlcHRpb25Db2RlJik7CisgICAgdW5zaWduZWQgY2hh
ciBnZXRVaW50OCh1bnNpZ25lZCBieXRlT2Zmc2V0LCBFeGNlcHRpb25Db2RlJik7CisgICAgc2hv
cnQgZ2V0SW50MTYodW5zaWduZWQgYnl0ZU9mZnNldCwgRXhjZXB0aW9uQ29kZSYgZWMpIHsgcmV0
dXJuIGdldEludDE2KGJ5dGVPZmZzZXQsIGZhbHNlLCBlYyk7IH0KKyAgICBzaG9ydCBnZXRJbnQx
Nih1bnNpZ25lZCBieXRlT2Zmc2V0LCBib29sIGxpdHRsZUVuZGlhbiwgRXhjZXB0aW9uQ29kZSYp
OworICAgIHVuc2lnbmVkIHNob3J0IGdldFVpbnQxNih1bnNpZ25lZCBieXRlT2Zmc2V0LCBFeGNl
cHRpb25Db2RlJiBlYykgeyByZXR1cm4gZ2V0VWludDE2KGJ5dGVPZmZzZXQsIGZhbHNlLCBlYyk7
IH0KKyAgICB1bnNpZ25lZCBzaG9ydCBnZXRVaW50MTYodW5zaWduZWQgYnl0ZU9mZnNldCwgYm9v
bCBsaXR0bGVFbmRpYW4sIEV4Y2VwdGlvbkNvZGUmKTsKKyAgICBpbnQgZ2V0SW50MzIodW5zaWdu
ZWQgYnl0ZU9mZnNldCwgRXhjZXB0aW9uQ29kZSYgZWMpIHsgcmV0dXJuIGdldEludDMyKGJ5dGVP
ZmZzZXQsIGZhbHNlLCBlYyk7IH0KKyAgICBpbnQgZ2V0SW50MzIodW5zaWduZWQgYnl0ZU9mZnNl
dCwgYm9vbCBsaXR0bGVFbmRpYW4sIEV4Y2VwdGlvbkNvZGUmKTsKKyAgICB1bnNpZ25lZCBnZXRV
aW50MzIodW5zaWduZWQgYnl0ZU9mZnNldCwgRXhjZXB0aW9uQ29kZSYgZWMpIHsgcmV0dXJuIGdl
dFVpbnQzMihieXRlT2Zmc2V0LCBmYWxzZSwgZWMpOyB9CisgICAgdW5zaWduZWQgZ2V0VWludDMy
KHVuc2lnbmVkIGJ5dGVPZmZzZXQsIGJvb2wgbGl0dGxlRW5kaWFuLCBFeGNlcHRpb25Db2RlJik7
CisgICAgZmxvYXQgZ2V0RmxvYXQzMih1bnNpZ25lZCBieXRlT2Zmc2V0LCBFeGNlcHRpb25Db2Rl
JiBlYykgeyByZXR1cm4gZ2V0RmxvYXQzMihieXRlT2Zmc2V0LCBmYWxzZSwgZWMpOyB9CisgICAg
ZmxvYXQgZ2V0RmxvYXQzMih1bnNpZ25lZCBieXRlT2Zmc2V0LCBib29sIGxpdHRsZUVuZGlhbiwg
RXhjZXB0aW9uQ29kZSYpOworICAgIGRvdWJsZSBnZXRGbG9hdDY0KHVuc2lnbmVkIGJ5dGVPZmZz
ZXQsIEV4Y2VwdGlvbkNvZGUmIGVjKSB7IHJldHVybiBnZXRGbG9hdDY0KGJ5dGVPZmZzZXQsIGZh
bHNlLCBlYyk7IH0KKyAgICBkb3VibGUgZ2V0RmxvYXQ2NCh1bnNpZ25lZCBieXRlT2Zmc2V0LCBi
b29sIGxpdHRsZUVuZGlhbiwgRXhjZXB0aW9uQ29kZSYpOworCisgICAgdm9pZCBzZXRJbnQ4KHVu
c2lnbmVkIGJ5dGVPZmZzZXQsIGNoYXIgdmFsdWUsIEV4Y2VwdGlvbkNvZGUmKTsKKyAgICB2b2lk
IHNldFVpbnQ4KHVuc2lnbmVkIGJ5dGVPZmZzZXQsIHVuc2lnbmVkIGNoYXIgdmFsdWUsIEV4Y2Vw
dGlvbkNvZGUmKTsKKyAgICB2b2lkIHNldEludDE2KHVuc2lnbmVkIGJ5dGVPZmZzZXQsIHNob3J0
IHZhbHVlLCBFeGNlcHRpb25Db2RlJiBlYykgeyBzZXRJbnQxNihieXRlT2Zmc2V0LCB2YWx1ZSwg
ZmFsc2UsIGVjKTsgfQorICAgIHZvaWQgc2V0SW50MTYodW5zaWduZWQgYnl0ZU9mZnNldCwgc2hv
cnQgdmFsdWUsIGJvb2wgbGl0dGxlRW5kaWFuLCBFeGNlcHRpb25Db2RlJik7CisgICAgdm9pZCBz
ZXRVaW50MTYodW5zaWduZWQgYnl0ZU9mZnNldCwgdW5zaWduZWQgc2hvcnQgdmFsdWUsIEV4Y2Vw
dGlvbkNvZGUmIGVjKSB7IHNldFVpbnQxNihieXRlT2Zmc2V0LCB2YWx1ZSwgZmFsc2UsIGVjKTsg
fQorICAgIHZvaWQgc2V0VWludDE2KHVuc2lnbmVkIGJ5dGVPZmZzZXQsIHVuc2lnbmVkIHNob3J0
IHZhbHVlLCBib29sIGxpdHRsZUVuZGlhbiwgRXhjZXB0aW9uQ29kZSYpOworICAgIHZvaWQgc2V0
SW50MzIodW5zaWduZWQgYnl0ZU9mZnNldCwgaW50IHZhbHVlLCBFeGNlcHRpb25Db2RlJiBlYykg
eyBzZXRJbnQzMihieXRlT2Zmc2V0LCB2YWx1ZSwgZmFsc2UsIGVjKTsgfSAKKyAgICB2b2lkIHNl
dEludDMyKHVuc2lnbmVkIGJ5dGVPZmZzZXQsIGludCB2YWx1ZSwgYm9vbCBsaXR0bGVFbmRpYW4s
IEV4Y2VwdGlvbkNvZGUmKTsKKyAgICB2b2lkIHNldFVpbnQzMih1bnNpZ25lZCBieXRlT2Zmc2V0
LCB1bnNpZ25lZCB2YWx1ZSwgRXhjZXB0aW9uQ29kZSYgZWMpIHsgc2V0VWludDMyKGJ5dGVPZmZz
ZXQsIHZhbHVlLCBmYWxzZSwgZWMpOyB9CisgICAgdm9pZCBzZXRVaW50MzIodW5zaWduZWQgYnl0
ZU9mZnNldCwgdW5zaWduZWQgdmFsdWUsIGJvb2wgbGl0dGxlRW5kaWFuLCBFeGNlcHRpb25Db2Rl
Jik7CisgICAgdm9pZCBzZXRGbG9hdDMyKHVuc2lnbmVkIGJ5dGVPZmZzZXQsIGZsb2F0IHZhbHVl
LCBFeGNlcHRpb25Db2RlJiBlYykgeyBzZXRGbG9hdDMyKGJ5dGVPZmZzZXQsIHZhbHVlLCBmYWxz
ZSwgZWMpOyB9CisgICAgdm9pZCBzZXRGbG9hdDMyKHVuc2lnbmVkIGJ5dGVPZmZzZXQsIGZsb2F0
IHZhbHVlLCBib29sIGxpdHRsZUVuZGlhbiwgRXhjZXB0aW9uQ29kZSYpOworICAgIHZvaWQgc2V0
RmxvYXQ2NCh1bnNpZ25lZCBieXRlT2Zmc2V0LCBkb3VibGUgdmFsdWUsIEV4Y2VwdGlvbkNvZGUm
IGVjKSB7IHNldEZsb2F0NjQoYnl0ZU9mZnNldCwgdmFsdWUsIGZhbHNlLCBlYyk7IH0KKyAgICB2
b2lkIHNldEZsb2F0NjQodW5zaWduZWQgYnl0ZU9mZnNldCwgZG91YmxlIHZhbHVlLCBib29sIGxp
dHRsZUVuZGlhbiwgRXhjZXB0aW9uQ29kZSYpOworCitwcml2YXRlOgorICAgIERhdGFWaWV3KFBh
c3NSZWZQdHI8QXJyYXlCdWZmZXI+LCB1bnNpZ25lZCBieXRlT2Zmc2V0LCB1bnNpZ25lZCBieXRl
TGVuZ3RoKTsKKworICAgIHRlbXBsYXRlPHR5cGVuYW1lIFQ+CisgICAgaW5saW5lIGJvb2wgYmV5
b25kUmFuZ2UodW5zaWduZWQgYnl0ZU9mZnNldCkgY29uc3QgeyByZXR1cm4gYnl0ZU9mZnNldCAr
IHNpemVvZihUKSA+IG1fYnl0ZUxlbmd0aDsgfQorCisgICAgdGVtcGxhdGU8dHlwZW5hbWUgVD4K
KyAgICBUIGdldERhdGEodW5zaWduZWQgYnl0ZU9mZnNldCwgYm9vbCBsaXR0bGVFbmRpYW4sIEV4
Y2VwdGlvbkNvZGUmKSBjb25zdDsKKworICAgIHRlbXBsYXRlPHR5cGVuYW1lIFQ+CisgICAgdm9p
ZCBzZXREYXRhKHVuc2lnbmVkIGJ5dGVPZmZzZXQsIFQgdmFsdWUsIGJvb2wgbGl0dGxlRW5kaWFu
LCBFeGNlcHRpb25Db2RlJik7CisKKyAgICB1bnNpZ25lZCBtX2J5dGVMZW5ndGg7Cit9OworCisK
K30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIERhdGFWaWV3X2gKZGlmZiAtLWdp
dCBhL1dlYkNvcmUvaHRtbC9jYW52YXMvRGF0YVZpZXcuaWRsIGIvV2ViQ29yZS9odG1sL2NhbnZh
cy9EYXRhVmlldy5pZGwKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uYmVmODgw
NQotLS0gL2Rldi9udWxsCisrKyBiL1dlYkNvcmUvaHRtbC9jYW52YXMvRGF0YVZpZXcuaWRsCkBA
IC0wLDAgKzEsODMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgR29vZ2xlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJl
IG1ldDoKKyAqCisgKiAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiAgUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIgaW4gdGhlCisgKiAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIEFQUExFIEFORCBJVFMgQ09OVFJJQlVUT1JTICJBUyBJUyIgQU5EIEFO
WQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBUSEUgSU1QTElFRAorICogV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQorICogRElTQ0xBSU1FRC4g
SU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9S
IEFOWQorICogRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZ
LCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMKKyAqIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsKKyAqIExP
U1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhP
V0VWRVIgQ0FVU0VEIEFORAorICogT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIg
SU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBP
RgorICogVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4KKyAqLworCittb2R1bGUgaHRtbCB7CisKKyAgICBpbnRlcmZhY2UgWwor
ICAgICAgICBDb25kaXRpb25hbD0zRF9DQU5WQVN8QkxPQiwKKyAgICAgICAgQ2FuQmVDb25zdHJ1
Y3RlZCwKKyAgICAgICAgQ3VzdG9tQ29uc3RydWN0RnVuY3Rpb24sCisgICAgICAgIEN1c3RvbVRv
SlMsCisgICAgICAgIE5vU3RhdGljVGFibGVzLAorICAgICAgICBWOEN1c3RvbUNvbnN0cnVjdG9y
CisgICAgXSBEYXRhVmlldyA6IEFycmF5QnVmZmVyVmlldyB7CisgICAgICAgIC8vIEFsbCB0aGVz
ZSBtZXRob2RzIHJhaXNlIGFuIGV4Y2VwdGlvbiBpZiB0aGV5IHdvdWxkIHJlYWQgb3Igd3JpdGUg
YmV5b25kIHRoZSBlbmQgb2YgdGhlIHZpZXcuCisKKyAgICAgICAgLy8gV2UgaGF2ZSB0byB1c2Ug
Y3VzdG9tIGNvZGUgYmVjYXVzZSBvdXIgY29kZSBnZW5lcmF0b3IgZG9lcyBub3Qgc3VwcG9ydCBj
aGFyIHR5cGUuCisgICAgICAgIC8vIGNoYXIgZ2V0SW50OChpbiB1bnNpZ25lZCBsb25nIGJ5dGVP
ZmZzZXQpOworICAgICAgICAvLyB1bnNpZ25lZCBjaGFyIGdldFVpbnQ4KGluIHVuc2lnbmVkIGxv
bmcgYnl0ZU9mZnNldCk7CisgICAgICAgIFtDdXN0b21dIERPTU9iamVjdCBnZXRJbnQ4KCkKKyAg
ICAgICAgICAgIHJhaXNlcyAoRE9NRXhjZXB0aW9uKTsKKyAgICAgICAgW0N1c3RvbV0gRE9NT2Jq
ZWN0IGdldFVpbnQ4KCkKKyAgICAgICAgICAgIHJhaXNlcyAoRE9NRXhjZXB0aW9uKTsKKworICAg
ICAgICBbU3RyaWN0VHlwZUNoZWNraW5nLCBSZXF1aXJlc0FsbEFyZ3VtZW50cz1SYWlzZV0gc2hv
cnQgZ2V0SW50MTYoaW4gdW5zaWduZWQgbG9uZyBieXRlT2Zmc2V0LCBpbiBbT3B0aW9uYWxdIGJv
b2xlYW4gbGl0dGxlRW5kaWFuKQorICAgICAgICAgICAgcmFpc2VzIChET01FeGNlcHRpb24pOwor
ICAgICAgICBbU3RyaWN0VHlwZUNoZWNraW5nLCBSZXF1aXJlc0FsbEFyZ3VtZW50cz1SYWlzZV0g
dW5zaWduZWQgc2hvcnQgZ2V0VWludDE2KGluIHVuc2lnbmVkIGxvbmcgYnl0ZU9mZnNldCwgaW4g
W09wdGlvbmFsXSBib29sZWFuIGxpdHRsZUVuZGlhbikKKyAgICAgICAgICAgIHJhaXNlcyAoRE9N
RXhjZXB0aW9uKTsKKyAgICAgICAgW1N0cmljdFR5cGVDaGVja2luZywgUmVxdWlyZXNBbGxBcmd1
bWVudHM9UmFpc2VdIGxvbmcgZ2V0SW50MzIoaW4gdW5zaWduZWQgbG9uZyBieXRlT2Zmc2V0LCBp
biBbT3B0aW9uYWxdIGJvb2xlYW4gbGl0dGxlRW5kaWFuKQorICAgICAgICAgICAgcmFpc2VzIChE
T01FeGNlcHRpb24pOworICAgICAgICBbU3RyaWN0VHlwZUNoZWNraW5nLCBSZXF1aXJlc0FsbEFy
Z3VtZW50cz1SYWlzZV0gdW5zaWduZWQgbG9uZyBnZXRVaW50MzIoaW4gdW5zaWduZWQgbG9uZyBi
eXRlT2Zmc2V0LCBpbiBbT3B0aW9uYWxdIGJvb2xlYW4gbGl0dGxlRW5kaWFuKQorICAgICAgICAg
ICAgcmFpc2VzIChET01FeGNlcHRpb24pOworCisgICAgICAgIC8vIFVzZSBjdXN0b20gY29kZSB0
byBoYW5kbGUgTmFOIGNhc2UgZm9yIEpTQy4KKyAgICAgICAgW0pTQ0N1c3RvbSwgU3RyaWN0VHlw
ZUNoZWNraW5nLCBSZXF1aXJlc0FsbEFyZ3VtZW50cz1SYWlzZV0gZmxvYXQgZ2V0RmxvYXQzMihp
biB1bnNpZ25lZCBsb25nIGJ5dGVPZmZzZXQsIGluIFtPcHRpb25hbF0gYm9vbGVhbiBsaXR0bGVF
bmRpYW4pCisgICAgICAgICAgICByYWlzZXMgKERPTUV4Y2VwdGlvbik7CisgICAgICAgIFtKU0ND
dXN0b20sIFN0cmljdFR5cGVDaGVja2luZywgUmVxdWlyZXNBbGxBcmd1bWVudHM9UmFpc2VdIGRv
dWJsZSBnZXRGbG9hdDY0KGluIHVuc2lnbmVkIGxvbmcgYnl0ZU9mZnNldCwgaW4gW09wdGlvbmFs
XSBib29sZWFuIGxpdHRsZUVuZGlhbikKKyAgICAgICAgICAgIHJhaXNlcyAoRE9NRXhjZXB0aW9u
KTsKKworICAgICAgICAvLyBXZSBoYXZlIHRvIHVzZSBjdXN0b20gY29kZSBiZWNhdXNlIG91ciBj
b2RlIGdlbmVyYXRvciBkb2VzIG5vdCBzdXBwb3J0IGNoYXIgdHlwZS4KKyAgICAgICAgLy8gdm9p
ZCBzZXRJbnQ4KGluIHVuc2lnbmVkIGxvbmcgYnl0ZU9mZnNldCwgaW4gYnl0ZSB2YWx1ZSk7Cisg
ICAgICAgIC8vIHZvaWQgc2V0VWludDgoaW4gdW5zaWduZWQgbG9uZyBieXRlT2Zmc2V0LCBpbiB1
bnNpZ25lZCBieXRlIHZhbHVlKTsKKyAgICAgICAgW0N1c3RvbV0gdm9pZCBzZXRJbnQ4KCkKKyAg
ICAgICAgICAgIHJhaXNlcyAoRE9NRXhjZXB0aW9uKTsKKyAgICAgICAgW0N1c3RvbV0gdm9pZCBz
ZXRVaW50OCgpCisgICAgICAgICAgICByYWlzZXMgKERPTUV4Y2VwdGlvbik7CisKKyAgICAgICAg
W1N0cmljdFR5cGVDaGVja2luZywgUmVxdWlyZXNBbGxBcmd1bWVudHM9UmFpc2VdIHZvaWQgc2V0
SW50MTYoaW4gdW5zaWduZWQgbG9uZyBieXRlT2Zmc2V0LCBpbiBzaG9ydCB2YWx1ZSwgaW4gW09w
dGlvbmFsXSBib29sZWFuIGxpdHRsZUVuZGlhbikKKyAgICAgICAgICAgIHJhaXNlcyAoRE9NRXhj
ZXB0aW9uKTsKKyAgICAgICAgW1N0cmljdFR5cGVDaGVja2luZywgUmVxdWlyZXNBbGxBcmd1bWVu
dHM9UmFpc2VdIHZvaWQgc2V0VWludDE2KGluIHVuc2lnbmVkIGxvbmcgYnl0ZU9mZnNldCwgaW4g
dW5zaWduZWQgc2hvcnQgdmFsdWUsIGluIFtPcHRpb25hbF0gYm9vbGVhbiBsaXR0bGVFbmRpYW4p
CisgICAgICAgICAgICByYWlzZXMgKERPTUV4Y2VwdGlvbik7CisgICAgICAgIFtTdHJpY3RUeXBl
Q2hlY2tpbmcsIFJlcXVpcmVzQWxsQXJndW1lbnRzPVJhaXNlXSB2b2lkIHNldEludDMyKGluIHVu
c2lnbmVkIGxvbmcgYnl0ZU9mZnNldCwgaW4gbG9uZyB2YWx1ZSwgaW4gW09wdGlvbmFsXSBib29s
ZWFuIGxpdHRsZUVuZGlhbikKKyAgICAgICAgICAgIHJhaXNlcyAoRE9NRXhjZXB0aW9uKTsKKyAg
ICAgICAgW1N0cmljdFR5cGVDaGVja2luZywgUmVxdWlyZXNBbGxBcmd1bWVudHM9UmFpc2VdIHZv
aWQgc2V0VWludDMyKGluIHVuc2lnbmVkIGxvbmcgYnl0ZU9mZnNldCwgaW4gdW5zaWduZWQgbG9u
ZyB2YWx1ZSwgaW4gW09wdGlvbmFsXSBib29sZWFuIGxpdHRsZUVuZGlhbikKKyAgICAgICAgICAg
IHJhaXNlcyAoRE9NRXhjZXB0aW9uKTsKKyAgICAgICAgW1N0cmljdFR5cGVDaGVja2luZywgUmVx
dWlyZXNBbGxBcmd1bWVudHM9UmFpc2VdIHZvaWQgc2V0RmxvYXQzMihpbiB1bnNpZ25lZCBsb25n
IGJ5dGVPZmZzZXQsIGluIGZsb2F0IHZhbHVlLCBpbiBbT3B0aW9uYWxdIGJvb2xlYW4gbGl0dGxl
RW5kaWFuKQorICAgICAgICAgICAgcmFpc2VzIChET01FeGNlcHRpb24pOworICAgICAgICBbU3Ry
aWN0VHlwZUNoZWNraW5nLCBSZXF1aXJlc0FsbEFyZ3VtZW50cz1SYWlzZV0gdm9pZCBzZXRGbG9h
dDY0KGluIHVuc2lnbmVkIGxvbmcgYnl0ZU9mZnNldCwgaW4gZG91YmxlIHZhbHVlLCBpbiBbT3B0
aW9uYWxdIGJvb2xlYW4gbGl0dGxlRW5kaWFuKQorICAgICAgICAgICAgcmFpc2VzIChET01FeGNl
cHRpb24pOworICAgIH07CisKK30KZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cu
aWRsIGIvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5pZGwKaW5kZXggMGI5ZjVlZC4uZTMyY2I3OSAx
MDA2NDQKLS0tIGEvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5pZGwKKysrIGIvV2ViQ29yZS9wYWdl
L0RPTVdpbmRvdy5pZGwKQEAgLTQ5OCw2ICs0OTgsNyBAQCBtb2R1bGUgd2luZG93IHsKICAgICAg
ICAgYXR0cmlidXRlIFtKU0NDdXN0b21HZXR0ZXIsQ29uZGl0aW9uYWw9M0RfQ0FOVkFTfEJMT0Is
RW5hYmxlZEF0UnVudGltZV0gSW50MzJBcnJheUNvbnN0cnVjdG9yIEludDMyQXJyYXk7IC8vIFVz
YWJsZSB3aXRoIG5ldyBvcGVyYXRvcgogICAgICAgICBhdHRyaWJ1dGUgW0pTQ0N1c3RvbUdldHRl
cixDb25kaXRpb25hbD0zRF9DQU5WQVN8QkxPQixFbmFibGVkQXRSdW50aW1lXSBVaW50MzJBcnJh
eUNvbnN0cnVjdG9yIFVpbnQzMkFycmF5OyAvLyBVc2FibGUgd2l0aCBuZXcgb3BlcmF0b3IKICAg
ICAgICAgYXR0cmlidXRlIFtKU0NDdXN0b21HZXR0ZXIsQ29uZGl0aW9uYWw9M0RfQ0FOVkFTfEJM
T0IsRW5hYmxlZEF0UnVudGltZV0gRmxvYXQzMkFycmF5Q29uc3RydWN0b3IgRmxvYXQzMkFycmF5
OyAvLyBVc2FibGUgd2l0aCBuZXcgb3BlcmF0b3IKKyAgICAgICAgYXR0cmlidXRlIFtKU0NDdXN0
b21HZXR0ZXIsQ29uZGl0aW9uYWw9M0RfQ0FOVkFTfEJMT0IsRW5hYmxlZEF0UnVudGltZV0gRGF0
YVZpZXdDb25zdHJ1Y3RvciBEYXRhVmlldzsgLy8gVXNhYmxlIHdpdGggbmV3IG9wZXJhdG9yCiAK
ICAgICAgICAgYXR0cmlidXRlIEV2ZW50Q29uc3RydWN0b3IgRXZlbnQ7CiAgICAgICAgIGF0dHJp
YnV0ZSBCZWZvcmVMb2FkRXZlbnRDb25zdHJ1Y3RvciBCZWZvcmVMb2FkRXZlbnQ7Cg==
</data>
<flag name="review"
          id="65488"
          type_id="1"
          status="-"
          setter="kbr"
    />
    <flag name="commit-queue"
          id="65489"
          type_id="3"
          status="-"
          setter="jianli"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>74805</attachid>
            <date>2010-11-24 16:09:01 -0800</date>
            <delta_ts>2010-11-24 16:37:05 -0800</delta_ts>
            <desc>Proposed Patch</desc>
            <filename>46541_7</filename>
            <type>text/plain</type>
            <size>115987</size>
            <attacher name="Jian Li">jianli</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCAwZTZhZWU4Li5mNWJmMjA3IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjMgQEAKKzIwMTAtMTEt
MjQgIEppYW4gTGkgIDxqaWFubGlAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEltcGxlbWVudCBEYXRhVmlldyBpbnRlcmZhY2Ug
ZnJvbSBUeXBlZCBBcnJheSBzcGVjaWZpY2F0aW9uCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD00NjU0MQorCisgICAgICAgIEFkZCBhIG5ldyB0ZXN0IGZv
ciB0ZXN0aW5nIERhdGFWaWV3IGludGVyZmFjZS4gQWxzbyB1cGRhdGUgc29tZSB0ZXN0cworICAg
ICAgICB0byBleGNsdWRlIERhdGFWaWV3IHByb3BlcnR5IGZyb20gYmVpbmcgdGVzdGVkIGJlY2F1
c2UgaXQgaXMgbm90CisgICAgICAgIGV4cG9zZWQgdG8gYWxsIHBsYXRmb3Jtcy4KKworICAgICAg
ICAqIGZhc3QvY2FudmFzL3dlYmdsL2RhdGEtdmlldy10ZXN0LWV4cGVjdGVkLnR4dDogQWRkZWQu
CisgICAgICAgICogZmFzdC9jYW52YXMvd2ViZ2wvZGF0YS12aWV3LXRlc3QuaHRtbDogQWRkZWQu
CisgICAgICAgICogZmFzdC9kb20vV2luZG93L3NjcmlwdC10ZXN0cy93aW5kb3ctcHJvcGVydHkt
ZGVzY3JpcHRvcnMuanM6CisgICAgICAgICogZmFzdC9kb20vV2luZG93L3dpbmRvdy1wcm9wZXJ0
aWVzLmh0bWw6CisgICAgICAgICogZmFzdC9kb20vc2NyaXB0LXRlc3RzL3Byb3RvdHlwZS1pbmhl
cml0YW5jZS0yLmpzOgorICAgICAgICAoY29uc3RydWN0b3JOYW1lc0ZvcldpbmRvdyk6CisgICAg
ICAgICogZmFzdC9kb20vc2NyaXB0LXRlc3RzL3Byb3RvdHlwZS1pbmhlcml0YW5jZS5qczoKKyAg
ICAgICAgKiBmYXN0L2pzL3NjcmlwdC10ZXN0cy9nbG9iYWwtY29uc3RydWN0b3JzLmpzOgorCiAy
MDEwLTExLTI0ICBUb255IENoYW5nICA8dG9ueUBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgVW5y
ZXZpZXdlZCwgdXBkYXRpbmcgcGx1Z2luIHRlc3QgZXhwZWN0YXRpb25zIG5vdyB0aGF0IHdlJ3Zl
IHN3aXRjaGVkCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2NhbnZhcy93ZWJnbC9kYXRh
LXZpZXctdGVzdC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2NhbnZhcy93ZWJnbC9k
YXRhLXZpZXctdGVzdC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMC4uNmFkNGU0NAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvY2FudmFz
L3dlYmdsL2RhdGEtdmlldy10ZXN0LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDc2NSBAQAorVGVz
dCBEYXRhVmlldy4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNT
IiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1Rlc3QgZm9yIGNv
bnN0cnVjdG9yIHRha2luZyAxIGFyZ3VtZW50CitQQVNTIHZpZXcgPSBuZXcgRGF0YVZpZXcoYXJh
eUJ1ZmZlcikgaXMgZGVmaW5lZC4KK1BBU1Mgdmlldy5ieXRlT2Zmc2V0IGlzIDAKK1BBU1Mgdmll
dy5ieXRlTGVuZ3RoIGlzIDIKKworVGVzdCBmb3IgY29uc3RydWN0b3IgdGFraW5nIDIgYXJndW1l
bnRzCitQQVNTIHZpZXcgPSBuZXcgRGF0YVZpZXcoYXJheUJ1ZmZlciwgMSkgaXMgZGVmaW5lZC4K
K1BBU1Mgdmlldy5ieXRlT2Zmc2V0IGlzIDEKK1BBU1Mgdmlldy5ieXRlTGVuZ3RoIGlzIDEKKwor
VGVzdCBmb3IgY29uc3RydWN0b3IgdGFraW5nIDMgYXJndW1lbnRzCitQQVNTIHZpZXcgPSBuZXcg
RGF0YVZpZXcoYXJheUJ1ZmZlciwgMCwgMSkgaXMgZGVmaW5lZC4KK1BBU1Mgdmlldy5ieXRlT2Zm
c2V0IGlzIDAKK1BBU1Mgdmlldy5ieXRlTGVuZ3RoIGlzIDEKKworVGVzdCBmb3IgY29uc3RydWN0
b3IgdGhyb3dpbmcgZXhjZXB0aW9uCitQQVNTIHZpZXcgPSBuZXcgRGF0YVZpZXcoYXJheUJ1ZmZl
ciwgMCwgMykgdGhyZXcgZXhjZXB0aW9uIEVycm9yOiBJTkRFWF9TSVpFX0VSUjogRE9NIEV4Y2Vw
dGlvbiAxLgorUEFTUyB2aWV3ID0gbmV3IERhdGFWaWV3KGFyYXlCdWZmZXIsIDEsIDIpIHRocmV3
IGV4Y2VwdGlvbiBFcnJvcjogSU5ERVhfU0laRV9FUlI6IERPTSBFeGNlcHRpb24gMS4KK1BBU1Mg
dmlldyA9IG5ldyBEYXRhVmlldyhhcmF5QnVmZmVyLCAyLCAxKSB0aHJldyBleGNlcHRpb24gRXJy
b3I6IElOREVYX1NJWkVfRVJSOiBET00gRXhjZXB0aW9uIDEuCisKK1Rlc3QgZm9yIGdldCBtZXRo
b2RzIHRoYXQgd29yaworUEFTUyB2aWV3LmdldEludDgoMCkgaXMgMAorUEFTUyB2aWV3LmdldElu
dDgoOCkgaXMgLTEyOAorUEFTUyB2aWV3LmdldEludDgoMTUpIGlzIC0xCitQQVNTIHZpZXcuZ2V0
VWludDgoMCkgaXMgMAorUEFTUyB2aWV3LmdldFVpbnQ4KDgpIGlzIDEyOAorUEFTUyB2aWV3Lmdl
dFVpbnQ4KDE1KSBpcyAyNTUKK1BBU1Mgdmlldy5nZXRJbnQxNigwLCB0cnVlKSBpcyAyNTYKK1BB
U1Mgdmlldy5nZXRJbnQxNig1LCB0cnVlKSBpcyAyNjIxMworUEFTUyB2aWV3LmdldEludDE2KDks
IHRydWUpIGlzIC0zMjEyNworUEFTUyB2aWV3LmdldEludDE2KDE0LCB0cnVlKSBpcyAtMgorUEFT
UyB2aWV3LmdldEludDE2KDApIGlzIDEKK1BBU1Mgdmlldy5nZXRJbnQxNig1KSBpcyAyNTk1OAor
UEFTUyB2aWV3LmdldEludDE2KDkpIGlzIC0zMjM4MgorUEFTUyB2aWV3LmdldEludDE2KDE0KSBp
cyAtMjU3CitQQVNTIHZpZXcuZ2V0VWludDE2KDAsIHRydWUpIGlzIDI1NgorUEFTUyB2aWV3Lmdl
dFVpbnQxNig1LCB0cnVlKSBpcyAyNjIxMworUEFTUyB2aWV3LmdldFVpbnQxNig5LCB0cnVlKSBp
cyAzMzQwOQorUEFTUyB2aWV3LmdldFVpbnQxNigxNCwgdHJ1ZSkgaXMgNjU1MzQKK1BBU1Mgdmll
dy5nZXRVaW50MTYoMCkgaXMgMQorUEFTUyB2aWV3LmdldFVpbnQxNig1KSBpcyAyNTk1OAorUEFT
UyB2aWV3LmdldFVpbnQxNig5KSBpcyAzMzE1NAorUEFTUyB2aWV3LmdldFVpbnQxNigxNCkgaXMg
NjUyNzkKK1BBU1Mgdmlldy5nZXRJbnQzMigwLCB0cnVlKSBpcyA1MDQ2Mjk3NgorUEFTUyB2aWV3
LmdldEludDMyKDMsIHRydWUpIGlzIDE3MTc5MjA3NzEKK1BBU1Mgdmlldy5nZXRJbnQzMig2LCB0
cnVlKSBpcyAtMjEyMjI5MTM1NAorUEFTUyB2aWV3LmdldEludDMyKDksIHRydWUpIGlzIC01ODQ5
MDIzOQorUEFTUyB2aWV3LmdldEludDMyKDEyLCB0cnVlKSBpcyAtNjYwNTIKK1BBU1Mgdmlldy5n
ZXRJbnQzMigwKSBpcyA2NjA1MQorUEFTUyB2aWV3LmdldEludDMyKDMpIGlzIDU2OTExMjA2CitQ
QVNTIHZpZXcuZ2V0SW50MzIoNikgaXMgMTcxODA1OTEzNworUEFTUyB2aWV3LmdldEludDMyKDkp
IGlzIC0yMTIyMTUyOTY0CitQQVNTIHZpZXcuZ2V0SW50MzIoMTIpIGlzIC01MDQ2Mjk3NworUEFT
UyB2aWV3LmdldFVpbnQzMigwLCB0cnVlKSBpcyA1MDQ2Mjk3NgorUEFTUyB2aWV3LmdldFVpbnQz
MigzLCB0cnVlKSBpcyAxNzE3OTIwNzcxCitQQVNTIHZpZXcuZ2V0VWludDMyKDYsIHRydWUpIGlz
IDIxNzI2NzU5NDIKK1BBU1Mgdmlldy5nZXRVaW50MzIoOSwgdHJ1ZSkgaXMgNDIzNjQ3NzA1Nwor
UEFTUyB2aWV3LmdldFVpbnQzMigxMiwgdHJ1ZSkgaXMgNDI5NDkwMTI0NAorUEFTUyB2aWV3Lmdl
dFVpbnQzMigwKSBpcyA2NjA1MQorUEFTUyB2aWV3LmdldFVpbnQzMigzKSBpcyA1NjkxMTIwNgor
UEFTUyB2aWV3LmdldFVpbnQzMig2KSBpcyAxNzE4MDU5MTM3CitQQVNTIHZpZXcuZ2V0VWludDMy
KDkpIGlzIDIxNzI4MTQzMzIKK1BBU1Mgdmlldy5nZXRVaW50MzIoMTIpIGlzIDQyNDQ1MDQzMTkK
K1BBU1Mgdmlldy5nZXRGbG9hdDMyKDAsIHRydWUpIGlzIDEwCitQQVNTIHZpZXcuZ2V0RmxvYXQz
MigzLCB0cnVlKSBpcyAxMAorUEFTUyB2aWV3LmdldEZsb2F0MzIoNywgdHJ1ZSkgaXMgMTAKK1BB
U1Mgdmlldy5nZXRGbG9hdDMyKDEwLCB0cnVlKSBpcyAxMAorUEFTUyB2aWV3LmdldEZsb2F0MzIo
MCwgZmFsc2UpIGlzIDEwCitQQVNTIHZpZXcuZ2V0RmxvYXQzMigzLCBmYWxzZSkgaXMgMTAKK1BB
U1Mgdmlldy5nZXRGbG9hdDMyKDcsIGZhbHNlKSBpcyAxMAorUEFTUyB2aWV3LmdldEZsb2F0MzIo
MTAsIGZhbHNlKSBpcyAxMAorUEFTUyB2aWV3LmdldEZsb2F0MzIoMCwgdHJ1ZSkgaXMgMS4yMzAw
MDAwMTkwNzM0ODYzCitQQVNTIHZpZXcuZ2V0RmxvYXQzMigzLCB0cnVlKSBpcyAxLjIzMDAwMDAx
OTA3MzQ4NjMKK1BBU1Mgdmlldy5nZXRGbG9hdDMyKDcsIHRydWUpIGlzIDEuMjMwMDAwMDE5MDcz
NDg2MworUEFTUyB2aWV3LmdldEZsb2F0MzIoMTAsIHRydWUpIGlzIDEuMjMwMDAwMDE5MDczNDg2
MworUEFTUyB2aWV3LmdldEZsb2F0MzIoMCwgZmFsc2UpIGlzIDEuMjMwMDAwMDE5MDczNDg2Mwor
UEFTUyB2aWV3LmdldEZsb2F0MzIoMywgZmFsc2UpIGlzIDEuMjMwMDAwMDE5MDczNDg2MworUEFT
UyB2aWV3LmdldEZsb2F0MzIoNywgZmFsc2UpIGlzIDEuMjMwMDAwMDE5MDczNDg2MworUEFTUyB2
aWV3LmdldEZsb2F0MzIoMTAsIGZhbHNlKSBpcyAxLjIzMDAwMDAxOTA3MzQ4NjMKK1BBU1Mgdmll
dy5nZXRGbG9hdDMyKDAsIHRydWUpIGlzIC00NTYyMS4zNzEwOTM3NQorUEFTUyB2aWV3LmdldEZs
b2F0MzIoMywgdHJ1ZSkgaXMgLTQ1NjIxLjM3MTA5Mzc1CitQQVNTIHZpZXcuZ2V0RmxvYXQzMig3
LCB0cnVlKSBpcyAtNDU2MjEuMzcxMDkzNzUKK1BBU1Mgdmlldy5nZXRGbG9hdDMyKDEwLCB0cnVl
KSBpcyAtNDU2MjEuMzcxMDkzNzUKK1BBU1Mgdmlldy5nZXRGbG9hdDMyKDAsIGZhbHNlKSBpcyAt
NDU2MjEuMzcxMDkzNzUKK1BBU1Mgdmlldy5nZXRGbG9hdDMyKDMsIGZhbHNlKSBpcyAtNDU2MjEu
MzcxMDkzNzUKK1BBU1Mgdmlldy5nZXRGbG9hdDMyKDcsIGZhbHNlKSBpcyAtNDU2MjEuMzcxMDkz
NzUKK1BBU1Mgdmlldy5nZXRGbG9hdDMyKDEwLCBmYWxzZSkgaXMgLTQ1NjIxLjM3MTA5Mzc1CitQ
QVNTIHZpZXcuZ2V0RmxvYXQzMigwLCB0cnVlKSBpcyBOYU4KK1BBU1Mgdmlldy5nZXRGbG9hdDMy
KDMsIHRydWUpIGlzIE5hTgorUEFTUyB2aWV3LmdldEZsb2F0MzIoNywgdHJ1ZSkgaXMgTmFOCitQ
QVNTIHZpZXcuZ2V0RmxvYXQzMigxMCwgdHJ1ZSkgaXMgTmFOCitQQVNTIHZpZXcuZ2V0RmxvYXQz
MigwLCBmYWxzZSkgaXMgTmFOCitQQVNTIHZpZXcuZ2V0RmxvYXQzMigzLCBmYWxzZSkgaXMgTmFO
CitQQVNTIHZpZXcuZ2V0RmxvYXQzMig3LCBmYWxzZSkgaXMgTmFOCitQQVNTIHZpZXcuZ2V0Rmxv
YXQzMigxMCwgZmFsc2UpIGlzIE5hTgorUEFTUyB2aWV3LmdldEZsb2F0MzIoMCwgdHJ1ZSkgaXMg
LU5hTgorUEFTUyB2aWV3LmdldEZsb2F0MzIoMywgdHJ1ZSkgaXMgLU5hTgorUEFTUyB2aWV3Lmdl
dEZsb2F0MzIoNywgdHJ1ZSkgaXMgLU5hTgorUEFTUyB2aWV3LmdldEZsb2F0MzIoMTAsIHRydWUp
IGlzIC1OYU4KK1BBU1Mgdmlldy5nZXRGbG9hdDMyKDAsIGZhbHNlKSBpcyAtTmFOCitQQVNTIHZp
ZXcuZ2V0RmxvYXQzMigzLCBmYWxzZSkgaXMgLU5hTgorUEFTUyB2aWV3LmdldEZsb2F0MzIoNywg
ZmFsc2UpIGlzIC1OYU4KK1BBU1Mgdmlldy5nZXRGbG9hdDMyKDEwLCBmYWxzZSkgaXMgLU5hTgor
UEFTUyB2aWV3LmdldEZsb2F0NjQoMCwgdHJ1ZSkgaXMgMTAKK1BBU1Mgdmlldy5nZXRGbG9hdDY0
KDMsIHRydWUpIGlzIDEwCitQQVNTIHZpZXcuZ2V0RmxvYXQ2NCg3LCB0cnVlKSBpcyAxMAorUEFT
UyB2aWV3LmdldEZsb2F0NjQoMTAsIHRydWUpIGlzIDEwCitQQVNTIHZpZXcuZ2V0RmxvYXQ2NCgw
LCBmYWxzZSkgaXMgMTAKK1BBU1Mgdmlldy5nZXRGbG9hdDY0KDMsIGZhbHNlKSBpcyAxMAorUEFT
UyB2aWV3LmdldEZsb2F0NjQoNywgZmFsc2UpIGlzIDEwCitQQVNTIHZpZXcuZ2V0RmxvYXQ2NCgx
MCwgZmFsc2UpIGlzIDEwCitQQVNTIHZpZXcuZ2V0RmxvYXQ2NCgwLCB0cnVlKSBpcyAxLjIzCitQ
QVNTIHZpZXcuZ2V0RmxvYXQ2NCgzLCB0cnVlKSBpcyAxLjIzCitQQVNTIHZpZXcuZ2V0RmxvYXQ2
NCg3LCB0cnVlKSBpcyAxLjIzCitQQVNTIHZpZXcuZ2V0RmxvYXQ2NCgxMCwgdHJ1ZSkgaXMgMS4y
MworUEFTUyB2aWV3LmdldEZsb2F0NjQoMCwgZmFsc2UpIGlzIDEuMjMKK1BBU1Mgdmlldy5nZXRG
bG9hdDY0KDMsIGZhbHNlKSBpcyAxLjIzCitQQVNTIHZpZXcuZ2V0RmxvYXQ2NCg3LCBmYWxzZSkg
aXMgMS4yMworUEFTUyB2aWV3LmdldEZsb2F0NjQoMTAsIGZhbHNlKSBpcyAxLjIzCitQQVNTIHZp
ZXcuZ2V0RmxvYXQ2NCgwLCB0cnVlKSBpcyAtNjIxMzU3Ni40ODM5CitQQVNTIHZpZXcuZ2V0Rmxv
YXQ2NCgzLCB0cnVlKSBpcyAtNjIxMzU3Ni40ODM5CitQQVNTIHZpZXcuZ2V0RmxvYXQ2NCg3LCB0
cnVlKSBpcyAtNjIxMzU3Ni40ODM5CitQQVNTIHZpZXcuZ2V0RmxvYXQ2NCgxMCwgdHJ1ZSkgaXMg
LTYyMTM1NzYuNDgzOQorUEFTUyB2aWV3LmdldEZsb2F0NjQoMCwgZmFsc2UpIGlzIC02MjEzNTc2
LjQ4MzkKK1BBU1Mgdmlldy5nZXRGbG9hdDY0KDMsIGZhbHNlKSBpcyAtNjIxMzU3Ni40ODM5CitQ
QVNTIHZpZXcuZ2V0RmxvYXQ2NCg3LCBmYWxzZSkgaXMgLTYyMTM1NzYuNDgzOQorUEFTUyB2aWV3
LmdldEZsb2F0NjQoMTAsIGZhbHNlKSBpcyAtNjIxMzU3Ni40ODM5CitQQVNTIHZpZXcuZ2V0Rmxv
YXQ2NCgwLCB0cnVlKSBpcyBOYU4KK1BBU1Mgdmlldy5nZXRGbG9hdDY0KDMsIHRydWUpIGlzIE5h
TgorUEFTUyB2aWV3LmdldEZsb2F0NjQoNywgdHJ1ZSkgaXMgTmFOCitQQVNTIHZpZXcuZ2V0Rmxv
YXQ2NCgxMCwgdHJ1ZSkgaXMgTmFOCitQQVNTIHZpZXcuZ2V0RmxvYXQ2NCgwLCBmYWxzZSkgaXMg
TmFOCitQQVNTIHZpZXcuZ2V0RmxvYXQ2NCgzLCBmYWxzZSkgaXMgTmFOCitQQVNTIHZpZXcuZ2V0
RmxvYXQ2NCg3LCBmYWxzZSkgaXMgTmFOCitQQVNTIHZpZXcuZ2V0RmxvYXQ2NCgxMCwgZmFsc2Up
IGlzIE5hTgorUEFTUyB2aWV3LmdldEZsb2F0NjQoMCwgdHJ1ZSkgaXMgLU5hTgorUEFTUyB2aWV3
LmdldEZsb2F0NjQoMywgdHJ1ZSkgaXMgLU5hTgorUEFTUyB2aWV3LmdldEZsb2F0NjQoNywgdHJ1
ZSkgaXMgLU5hTgorUEFTUyB2aWV3LmdldEZsb2F0NjQoMTAsIHRydWUpIGlzIC1OYU4KK1BBU1Mg
dmlldy5nZXRGbG9hdDY0KDAsIGZhbHNlKSBpcyAtTmFOCitQQVNTIHZpZXcuZ2V0RmxvYXQ2NCgz
LCBmYWxzZSkgaXMgLU5hTgorUEFTUyB2aWV3LmdldEZsb2F0NjQoNywgZmFsc2UpIGlzIC1OYU4K
K1BBU1Mgdmlldy5nZXRGbG9hdDY0KDEwLCBmYWxzZSkgaXMgLU5hTgorCitUZXN0IGZvciBnZXQg
bWV0aG9kcyB0aGF0IG1pZ2h0IHJlYWQgYmV5b3VuZCByYW5nZQorUEFTUyB2aWV3LmdldEludDgo
MCkgaXMgMAorUEFTUyB2aWV3LmdldEludDgoOCkgdGhyZXcgZXhjZXB0aW9uIEVycm9yOiBJTkRF
WF9TSVpFX0VSUjogRE9NIEV4Y2VwdGlvbiAxLgorUEFTUyB2aWV3LmdldEludDgoMTUpIHRocmV3
IGV4Y2VwdGlvbiBFcnJvcjogSU5ERVhfU0laRV9FUlI6IERPTSBFeGNlcHRpb24gMS4KK1BBU1Mg
dmlldy5nZXRVaW50OCgwKSBpcyAwCitQQVNTIHZpZXcuZ2V0VWludDgoOCkgdGhyZXcgZXhjZXB0
aW9uIEVycm9yOiBJTkRFWF9TSVpFX0VSUjogRE9NIEV4Y2VwdGlvbiAxLgorUEFTUyB2aWV3Lmdl
dFVpbnQ4KDE1KSB0aHJldyBleGNlcHRpb24gRXJyb3I6IElOREVYX1NJWkVfRVJSOiBET00gRXhj
ZXB0aW9uIDEuCitQQVNTIHZpZXcuZ2V0SW50MTYoMCwgdHJ1ZSkgaXMgMjU2CitQQVNTIHZpZXcu
Z2V0SW50MTYoNSwgdHJ1ZSkgdGhyZXcgZXhjZXB0aW9uIEVycm9yOiBJTkRFWF9TSVpFX0VSUjog
RE9NIEV4Y2VwdGlvbiAxLgorUEFTUyB2aWV3LmdldEludDE2KDksIHRydWUpIHRocmV3IGV4Y2Vw
dGlvbiBFcnJvcjogSU5ERVhfU0laRV9FUlI6IERPTSBFeGNlcHRpb24gMS4KK1BBU1Mgdmlldy5n
ZXRJbnQxNigxNCwgdHJ1ZSkgdGhyZXcgZXhjZXB0aW9uIEVycm9yOiBJTkRFWF9TSVpFX0VSUjog
RE9NIEV4Y2VwdGlvbiAxLgorUEFTUyB2aWV3LmdldEludDE2KDApIGlzIDEKK1BBU1Mgdmlldy5n
ZXRJbnQxNig1KSB0aHJldyBleGNlcHRpb24gRXJyb3I6IElOREVYX1NJWkVfRVJSOiBET00gRXhj
ZXB0aW9uIDEuCitQQVNTIHZpZXcuZ2V0SW50MTYoOSkgdGhyZXcgZXhjZXB0aW9uIEVycm9yOiBJ
TkRFWF9TSVpFX0VSUjogRE9NIEV4Y2VwdGlvbiAxLgorUEFTUyB2aWV3LmdldEludDE2KDE0KSB0
aHJldyBleGNlcHRpb24gRXJyb3I6IElOREVYX1NJWkVfRVJSOiBET00gRXhjZXB0aW9uIDEuCitQ
QVNTIHZpZXcuZ2V0VWludDE2KDAsIHRydWUpIGlzIDI1NgorUEFTUyB2aWV3LmdldFVpbnQxNig1
LCB0cnVlKSB0aHJldyBleGNlcHRpb24gRXJyb3I6IElOREVYX1NJWkVfRVJSOiBET00gRXhjZXB0
aW9uIDEuCitQQVNTIHZpZXcuZ2V0VWludDE2KDksIHRydWUpIHRocmV3IGV4Y2VwdGlvbiBFcnJv
cjogSU5ERVhfU0laRV9FUlI6IERPTSBFeGNlcHRpb24gMS4KK1BBU1Mgdmlldy5nZXRVaW50MTYo
MTQsIHRydWUpIHRocmV3IGV4Y2VwdGlvbiBFcnJvcjogSU5ERVhfU0laRV9FUlI6IERPTSBFeGNl
cHRpb24gMS4KK1BBU1Mgdmlldy5nZXRVaW50MTYoMCkgaXMgMQorUEFTUyB2aWV3LmdldFVpbnQx
Nig1KSB0aHJldyBleGNlcHRpb24gRXJyb3I6IElOREVYX1NJWkVfRVJSOiBET00gRXhjZXB0aW9u
IDEuCitQQVNTIHZpZXcuZ2V0VWludDE2KDkpIHRocmV3IGV4Y2VwdGlvbiBFcnJvcjogSU5ERVhf
U0laRV9FUlI6IERPTSBFeGNlcHRpb24gMS4KK1BBU1Mgdmlldy5nZXRVaW50MTYoMTQpIHRocmV3
IGV4Y2VwdGlvbiBFcnJvcjogSU5ERVhfU0laRV9FUlI6IERPTSBFeGNlcHRpb24gMS4KK1BBU1Mg
dmlldy5nZXRJbnQzMigwLCB0cnVlKSB0aHJldyBleGNlcHRpb24gRXJyb3I6IElOREVYX1NJWkVf
RVJSOiBET00gRXhjZXB0aW9uIDEuCitQQVNTIHZpZXcuZ2V0SW50MzIoMywgdHJ1ZSkgdGhyZXcg
ZXhjZXB0aW9uIEVycm9yOiBJTkRFWF9TSVpFX0VSUjogRE9NIEV4Y2VwdGlvbiAxLgorUEFTUyB2
aWV3LmdldEludDMyKDYsIHRydWUpIHRocmV3IGV4Y2VwdGlvbiBFcnJvcjogSU5ERVhfU0laRV9F
UlI6IERPTSBFeGNlcHRpb24gMS4KK1BBU1Mgdmlldy5nZXRJbnQzMig5LCB0cnVlKSB0aHJldyBl
eGNlcHRpb24gRXJyb3I6IElOREVYX1NJWkVfRVJSOiBET00gRXhjZXB0aW9uIDEuCitQQVNTIHZp
ZXcuZ2V0SW50MzIoMTIsIHRydWUpIHRocmV3IGV4Y2VwdGlvbiBFcnJvcjogSU5ERVhfU0laRV9F
UlI6IERPTSBFeGNlcHRpb24gMS4KK1BBU1Mgdmlldy5nZXRJbnQzMigwKSB0aHJldyBleGNlcHRp
b24gRXJyb3I6IElOREVYX1NJWkVfRVJSOiBET00gRXhjZXB0aW9uIDEuCitQQVNTIHZpZXcuZ2V0
SW50MzIoMykgdGhyZXcgZXhjZXB0aW9uIEVycm9yOiBJTkRFWF9TSVpFX0VSUjogRE9NIEV4Y2Vw
dGlvbiAxLgorUEFTUyB2aWV3LmdldEludDMyKDYpIHRocmV3IGV4Y2VwdGlvbiBFcnJvcjogSU5E
RVhfU0laRV9FUlI6IERPTSBFeGNlcHRpb24gMS4KK1BBU1Mgdmlldy5nZXRJbnQzMig5KSB0aHJl
dyBleGNlcHRpb24gRXJyb3I6IElOREVYX1NJWkVfRVJSOiBET00gRXhjZXB0aW9uIDEuCitQQVNT
IHZpZXcuZ2V0SW50MzIoMTIpIHRocmV3IGV4Y2VwdGlvbiBFcnJvcjogSU5ERVhfU0laRV9FUlI6
IERPTSBFeGNlcHRpb24gMS4KK1BBU1Mgdmlldy5nZXRVaW50MzIoMCwgdHJ1ZSkgdGhyZXcgZXhj
ZXB0aW9uIEVycm9yOiBJTkRFWF9TSVpFX0VSUjogRE9NIEV4Y2VwdGlvbiAxLgorUEFTUyB2aWV3
LmdldFVpbnQzMigzLCB0cnVlKSB0aHJldyBleGNlcHRpb24gRXJyb3I6IElOREVYX1NJWkVfRVJS
OiBET00gRXhjZXB0aW9uIDEuCitQQVNTIHZpZXcuZ2V0VWludDMyKDYsIHRydWUpIHRocmV3IGV4
Y2VwdGlvbiBFcnJvcjogSU5ERVhfU0laRV9FUlI6IERPTSBFeGNlcHRpb24gMS4KK1BBU1Mgdmll
dy5nZXRVaW50MzIoOSwgdHJ1ZSkgdGhyZXcgZXhjZXB0aW9uIEVycm9yOiBJTkRFWF9TSVpFX0VS
UjogRE9NIEV4Y2VwdGlvbiAxLgorUEFTUyB2aWV3LmdldFVpbnQzMigxMiwgdHJ1ZSkgdGhyZXcg
ZXhjZXB0aW9uIEVycm9yOiBJTkRFWF9TSVpFX0VSUjogRE9NIEV4Y2VwdGlvbiAxLgorUEFTUyB2
aWV3LmdldFVpbnQzMigwKSB0aHJldyBleGNlcHRpb24gRXJyb3I6IElOREVYX1NJWkVfRVJSOiBE
T00gRXhjZXB0aW9uIDEuCitQQVNTIHZpZXcuZ2V0VWludDMyKDMpIHRocmV3IGV4Y2VwdGlvbiBF
cnJvcjogSU5ERVhfU0laRV9FUlI6IERPTSBFeGNlcHRpb24gMS4KK1BBU1Mgdmlldy5nZXRVaW50
MzIoNikgdGhyZXcgZXhjZXB0aW9uIEVycm9yOiBJTkRFWF9TSVpFX0VSUjogRE9NIEV4Y2VwdGlv
biAxLgorUEFTUyB2aWV3LmdldFVpbnQzMig5KSB0aHJldyBleGNlcHRpb24gRXJyb3I6IElOREVY
X1NJWkVfRVJSOiBET00gRXhjZXB0aW9uIDEuCitQQVNTIHZpZXcuZ2V0VWludDMyKDEyKSB0aHJl
dyBleGNlcHRpb24gRXJyb3I6IElOREVYX1NJWkVfRVJSOiBET00gRXhjZXB0aW9uIDEuCitQQVNT
IHZpZXcuZ2V0RmxvYXQzMigwLCB0cnVlKSB0aHJldyBleGNlcHRpb24gRXJyb3I6IElOREVYX1NJ
WkVfRVJSOiBET00gRXhjZXB0aW9uIDEuCitQQVNTIHZpZXcuZ2V0RmxvYXQzMigzLCB0cnVlKSB0
aHJldyBleGNlcHRpb24gRXJyb3I6IElOREVYX1NJWkVfRVJSOiBET00gRXhjZXB0aW9uIDEuCitQ
QVNTIHZpZXcuZ2V0RmxvYXQzMig3LCB0cnVlKSB0aHJldyBleGNlcHRpb24gRXJyb3I6IElOREVY
X1NJWkVfRVJSOiBET00gRXhjZXB0aW9uIDEuCitQQVNTIHZpZXcuZ2V0RmxvYXQzMigxMCwgdHJ1
ZSkgdGhyZXcgZXhjZXB0aW9uIEVycm9yOiBJTkRFWF9TSVpFX0VSUjogRE9NIEV4Y2VwdGlvbiAx
LgorUEFTUyB2aWV3LmdldEZsb2F0MzIoMCwgZmFsc2UpIGlzIDEwCitQQVNTIHZpZXcuZ2V0Rmxv
YXQzMigzLCBmYWxzZSkgaXMgMTAKK1BBU1Mgdmlldy5nZXRGbG9hdDMyKDcsIGZhbHNlKSBpcyAx
MAorUEFTUyB2aWV3LmdldEZsb2F0MzIoMTAsIGZhbHNlKSBpcyAxMAorUEFTUyB2aWV3LmdldEZs
b2F0MzIoMCwgdHJ1ZSkgdGhyZXcgZXhjZXB0aW9uIEVycm9yOiBJTkRFWF9TSVpFX0VSUjogRE9N
IEV4Y2VwdGlvbiAxLgorUEFTUyB2aWV3LmdldEZsb2F0MzIoMywgdHJ1ZSkgdGhyZXcgZXhjZXB0
aW9uIEVycm9yOiBJTkRFWF9TSVpFX0VSUjogRE9NIEV4Y2VwdGlvbiAxLgorUEFTUyB2aWV3Lmdl
dEZsb2F0MzIoNywgdHJ1ZSkgdGhyZXcgZXhjZXB0aW9uIEVycm9yOiBJTkRFWF9TSVpFX0VSUjog
RE9NIEV4Y2VwdGlvbiAxLgorUEFTUyB2aWV3LmdldEZsb2F0MzIoMTAsIHRydWUpIHRocmV3IGV4
Y2VwdGlvbiBFcnJvcjogSU5ERVhfU0laRV9FUlI6IERPTSBFeGNlcHRpb24gMS4KK1BBU1Mgdmll
dy5nZXRGbG9hdDMyKDAsIGZhbHNlKSBpcyAxLjIzMDAwMDAxOTA3MzQ4NjMKK1BBU1Mgdmlldy5n
ZXRGbG9hdDMyKDMsIGZhbHNlKSBpcyAxLjIzMDAwMDAxOTA3MzQ4NjMKK1BBU1Mgdmlldy5nZXRG
bG9hdDMyKDcsIGZhbHNlKSBpcyAxLjIzMDAwMDAxOTA3MzQ4NjMKK1BBU1Mgdmlldy5nZXRGbG9h
dDMyKDEwLCBmYWxzZSkgaXMgMS4yMzAwMDAwMTkwNzM0ODYzCitQQVNTIHZpZXcuZ2V0RmxvYXQz
MigwLCB0cnVlKSB0aHJldyBleGNlcHRpb24gRXJyb3I6IElOREVYX1NJWkVfRVJSOiBET00gRXhj
ZXB0aW9uIDEuCitQQVNTIHZpZXcuZ2V0RmxvYXQzMigzLCB0cnVlKSB0aHJldyBleGNlcHRpb24g
RXJyb3I6IElOREVYX1NJWkVfRVJSOiBET00gRXhjZXB0aW9uIDEuCitQQVNTIHZpZXcuZ2V0Rmxv
YXQzMig3LCB0cnVlKSB0aHJldyBleGNlcHRpb24gRXJyb3I6IElOREVYX1NJWkVfRVJSOiBET00g
RXhjZXB0aW9uIDEuCitQQVNTIHZpZXcuZ2V0RmxvYXQzMigxMCwgdHJ1ZSkgdGhyZXcgZXhjZXB0
aW9uIEVycm9yOiBJTkRFWF9TSVpFX0VSUjogRE9NIEV4Y2VwdGlvbiAxLgorUEFTUyB2aWV3Lmdl
dEZsb2F0MzIoMCwgZmFsc2UpIGlzIC00NTYyMS4zNzEwOTM3NQorUEFTUyB2aWV3LmdldEZsb2F0
MzIoMywgZmFsc2UpIGlzIC00NTYyMS4zNzEwOTM3NQorUEFTUyB2aWV3LmdldEZsb2F0MzIoNywg
ZmFsc2UpIGlzIC00NTYyMS4zNzEwOTM3NQorUEFTUyB2aWV3LmdldEZsb2F0MzIoMTAsIGZhbHNl
KSBpcyAtNDU2MjEuMzcxMDkzNzUKK1BBU1Mgdmlldy5nZXRGbG9hdDMyKDAsIHRydWUpIHRocmV3
IGV4Y2VwdGlvbiBFcnJvcjogSU5ERVhfU0laRV9FUlI6IERPTSBFeGNlcHRpb24gMS4KK1BBU1Mg
dmlldy5nZXRGbG9hdDMyKDMsIHRydWUpIHRocmV3IGV4Y2VwdGlvbiBFcnJvcjogSU5ERVhfU0la
RV9FUlI6IERPTSBFeGNlcHRpb24gMS4KK1BBU1Mgdmlldy5nZXRGbG9hdDMyKDcsIHRydWUpIHRo
cmV3IGV4Y2VwdGlvbiBFcnJvcjogSU5ERVhfU0laRV9FUlI6IERPTSBFeGNlcHRpb24gMS4KK1BB
U1Mgdmlldy5nZXRGbG9hdDMyKDEwLCB0cnVlKSB0aHJldyBleGNlcHRpb24gRXJyb3I6IElOREVY
X1NJWkVfRVJSOiBET00gRXhjZXB0aW9uIDEuCitQQVNTIHZpZXcuZ2V0RmxvYXQzMigwLCBmYWxz
ZSkgaXMgTmFOCitQQVNTIHZpZXcuZ2V0RmxvYXQzMigzLCBmYWxzZSkgaXMgTmFOCitQQVNTIHZp
ZXcuZ2V0RmxvYXQzMig3LCBmYWxzZSkgaXMgTmFOCitQQVNTIHZpZXcuZ2V0RmxvYXQzMigxMCwg
ZmFsc2UpIGlzIE5hTgorUEFTUyB2aWV3LmdldEZsb2F0MzIoMCwgdHJ1ZSkgdGhyZXcgZXhjZXB0
aW9uIEVycm9yOiBJTkRFWF9TSVpFX0VSUjogRE9NIEV4Y2VwdGlvbiAxLgorUEFTUyB2aWV3Lmdl
dEZsb2F0MzIoMywgdHJ1ZSkgdGhyZXcgZXhjZXB0aW9uIEVycm9yOiBJTkRFWF9TSVpFX0VSUjog
RE9NIEV4Y2VwdGlvbiAxLgorUEFTUyB2aWV3LmdldEZsb2F0MzIoNywgdHJ1ZSkgdGhyZXcgZXhj
ZXB0aW9uIEVycm9yOiBJTkRFWF9TSVpFX0VSUjogRE9NIEV4Y2VwdGlvbiAxLgorUEFTUyB2aWV3
LmdldEZsb2F0MzIoMTAsIHRydWUpIHRocmV3IGV4Y2VwdGlvbiBFcnJvcjogSU5ERVhfU0laRV9F
UlI6IERPTSBFeGNlcHRpb24gMS4KK1BBU1Mgdmlldy5nZXRGbG9hdDMyKDAsIGZhbHNlKSBpcyAt
TmFOCitQQVNTIHZpZXcuZ2V0RmxvYXQzMigzLCBmYWxzZSkgaXMgLU5hTgorUEFTUyB2aWV3Lmdl
dEZsb2F0MzIoNywgZmFsc2UpIGlzIC1OYU4KK1BBU1Mgdmlldy5nZXRGbG9hdDMyKDEwLCBmYWxz
ZSkgaXMgLU5hTgorUEFTUyB2aWV3LmdldEZsb2F0NjQoMCwgdHJ1ZSkgdGhyZXcgZXhjZXB0aW9u
IEVycm9yOiBJTkRFWF9TSVpFX0VSUjogRE9NIEV4Y2VwdGlvbiAxLgorUEFTUyB2aWV3LmdldEZs
b2F0NjQoMywgdHJ1ZSkgdGhyZXcgZXhjZXB0aW9uIEVycm9yOiBJTkRFWF9TSVpFX0VSUjogRE9N
IEV4Y2VwdGlvbiAxLgorUEFTUyB2aWV3LmdldEZsb2F0NjQoNywgdHJ1ZSkgdGhyZXcgZXhjZXB0
aW9uIEVycm9yOiBJTkRFWF9TSVpFX0VSUjogRE9NIEV4Y2VwdGlvbiAxLgorUEFTUyB2aWV3Lmdl
dEZsb2F0NjQoMTAsIHRydWUpIHRocmV3IGV4Y2VwdGlvbiBFcnJvcjogSU5ERVhfU0laRV9FUlI6
IERPTSBFeGNlcHRpb24gMS4KK1BBU1Mgdmlldy5nZXRGbG9hdDY0KDAsIGZhbHNlKSBpcyAxMAor
UEFTUyB2aWV3LmdldEZsb2F0NjQoMywgZmFsc2UpIGlzIDEwCitQQVNTIHZpZXcuZ2V0RmxvYXQ2
NCg3LCBmYWxzZSkgaXMgMTAKK1BBU1Mgdmlldy5nZXRGbG9hdDY0KDEwLCBmYWxzZSkgaXMgMTAK
K1BBU1Mgdmlldy5nZXRGbG9hdDY0KDAsIHRydWUpIHRocmV3IGV4Y2VwdGlvbiBFcnJvcjogSU5E
RVhfU0laRV9FUlI6IERPTSBFeGNlcHRpb24gMS4KK1BBU1Mgdmlldy5nZXRGbG9hdDY0KDMsIHRy
dWUpIHRocmV3IGV4Y2VwdGlvbiBFcnJvcjogSU5ERVhfU0laRV9FUlI6IERPTSBFeGNlcHRpb24g
MS4KK1BBU1Mgdmlldy5nZXRGbG9hdDY0KDcsIHRydWUpIHRocmV3IGV4Y2VwdGlvbiBFcnJvcjog
SU5ERVhfU0laRV9FUlI6IERPTSBFeGNlcHRpb24gMS4KK1BBU1Mgdmlldy5nZXRGbG9hdDY0KDEw
LCB0cnVlKSB0aHJldyBleGNlcHRpb24gRXJyb3I6IElOREVYX1NJWkVfRVJSOiBET00gRXhjZXB0
aW9uIDEuCitQQVNTIHZpZXcuZ2V0RmxvYXQ2NCgwLCBmYWxzZSkgaXMgMS4yMworUEFTUyB2aWV3
LmdldEZsb2F0NjQoMywgZmFsc2UpIGlzIDEuMjMKK1BBU1Mgdmlldy5nZXRGbG9hdDY0KDcsIGZh
bHNlKSBpcyAxLjIzCitQQVNTIHZpZXcuZ2V0RmxvYXQ2NCgxMCwgZmFsc2UpIGlzIDEuMjMKK1BB
U1Mgdmlldy5nZXRGbG9hdDY0KDAsIHRydWUpIHRocmV3IGV4Y2VwdGlvbiBFcnJvcjogSU5ERVhf
U0laRV9FUlI6IERPTSBFeGNlcHRpb24gMS4KK1BBU1Mgdmlldy5nZXRGbG9hdDY0KDMsIHRydWUp
IHRocmV3IGV4Y2VwdGlvbiBFcnJvcjogSU5ERVhfU0laRV9FUlI6IERPTSBFeGNlcHRpb24gMS4K
K1BBU1Mgdmlldy5nZXRGbG9hdDY0KDcsIHRydWUpIHRocmV3IGV4Y2VwdGlvbiBFcnJvcjogSU5E
RVhfU0laRV9FUlI6IERPTSBFeGNlcHRpb24gMS4KK1BBU1Mgdmlldy5nZXRGbG9hdDY0KDEwLCB0
cnVlKSB0aHJldyBleGNlcHRpb24gRXJyb3I6IElOREVYX1NJWkVfRVJSOiBET00gRXhjZXB0aW9u
IDEuCitQQVNTIHZpZXcuZ2V0RmxvYXQ2NCgwLCBmYWxzZSkgaXMgLTYyMTM1NzYuNDgzOQorUEFT
UyB2aWV3LmdldEZsb2F0NjQoMywgZmFsc2UpIGlzIC02MjEzNTc2LjQ4MzkKK1BBU1Mgdmlldy5n
ZXRGbG9hdDY0KDcsIGZhbHNlKSBpcyAtNjIxMzU3Ni40ODM5CitQQVNTIHZpZXcuZ2V0RmxvYXQ2
NCgxMCwgZmFsc2UpIGlzIC02MjEzNTc2LjQ4MzkKK1BBU1Mgdmlldy5nZXRGbG9hdDY0KDAsIHRy
dWUpIHRocmV3IGV4Y2VwdGlvbiBFcnJvcjogSU5ERVhfU0laRV9FUlI6IERPTSBFeGNlcHRpb24g
MS4KK1BBU1Mgdmlldy5nZXRGbG9hdDY0KDMsIHRydWUpIHRocmV3IGV4Y2VwdGlvbiBFcnJvcjog
SU5ERVhfU0laRV9FUlI6IERPTSBFeGNlcHRpb24gMS4KK1BBU1Mgdmlldy5nZXRGbG9hdDY0KDcs
IHRydWUpIHRocmV3IGV4Y2VwdGlvbiBFcnJvcjogSU5ERVhfU0laRV9FUlI6IERPTSBFeGNlcHRp
b24gMS4KK1BBU1Mgdmlldy5nZXRGbG9hdDY0KDEwLCB0cnVlKSB0aHJldyBleGNlcHRpb24gRXJy
b3I6IElOREVYX1NJWkVfRVJSOiBET00gRXhjZXB0aW9uIDEuCitQQVNTIHZpZXcuZ2V0RmxvYXQ2
NCgwLCBmYWxzZSkgaXMgTmFOCitQQVNTIHZpZXcuZ2V0RmxvYXQ2NCgzLCBmYWxzZSkgaXMgTmFO
CitQQVNTIHZpZXcuZ2V0RmxvYXQ2NCg3LCBmYWxzZSkgaXMgTmFOCitQQVNTIHZpZXcuZ2V0Rmxv
YXQ2NCgxMCwgZmFsc2UpIGlzIE5hTgorUEFTUyB2aWV3LmdldEZsb2F0NjQoMCwgdHJ1ZSkgdGhy
ZXcgZXhjZXB0aW9uIEVycm9yOiBJTkRFWF9TSVpFX0VSUjogRE9NIEV4Y2VwdGlvbiAxLgorUEFT
UyB2aWV3LmdldEZsb2F0NjQoMywgdHJ1ZSkgdGhyZXcgZXhjZXB0aW9uIEVycm9yOiBJTkRFWF9T
SVpFX0VSUjogRE9NIEV4Y2VwdGlvbiAxLgorUEFTUyB2aWV3LmdldEZsb2F0NjQoNywgdHJ1ZSkg
dGhyZXcgZXhjZXB0aW9uIEVycm9yOiBJTkRFWF9TSVpFX0VSUjogRE9NIEV4Y2VwdGlvbiAxLgor
UEFTUyB2aWV3LmdldEZsb2F0NjQoMTAsIHRydWUpIHRocmV3IGV4Y2VwdGlvbiBFcnJvcjogSU5E
RVhfU0laRV9FUlI6IERPTSBFeGNlcHRpb24gMS4KK1BBU1Mgdmlldy5nZXRGbG9hdDY0KDAsIGZh
bHNlKSBpcyAtTmFOCitQQVNTIHZpZXcuZ2V0RmxvYXQ2NCgzLCBmYWxzZSkgaXMgLU5hTgorUEFT
UyB2aWV3LmdldEZsb2F0NjQoNywgZmFsc2UpIGlzIC1OYU4KK1BBU1Mgdmlldy5nZXRGbG9hdDY0
KDEwLCBmYWxzZSkgaXMgLU5hTgorCitUZXN0IGZvciB3cm9uZyBhcmd1bWVudHMgcGFzc2VkIHRv
IGdldCBtZXRob2RzCitQQVNTIHZpZXcuZ2V0SW50OCgpIHRocmV3IGV4Y2VwdGlvbiBTeW50YXhF
cnJvcjogTm90IGVub3VnaCBhcmd1bWVudHMuCitQQVNTIHZpZXcuZ2V0VWludDgoKSB0aHJldyBl
eGNlcHRpb24gU3ludGF4RXJyb3I6IE5vdCBlbm91Z2ggYXJndW1lbnRzLgorUEFTUyB2aWV3Lmdl
dEludDE2KCkgdGhyZXcgZXhjZXB0aW9uIFN5bnRheEVycm9yOiBOb3QgZW5vdWdoIGFyZ3VtZW50
cy4KK1BBU1Mgdmlldy5nZXRVaW50MTYoKSB0aHJldyBleGNlcHRpb24gU3ludGF4RXJyb3I6IE5v
dCBlbm91Z2ggYXJndW1lbnRzLgorUEFTUyB2aWV3LmdldEludDMyKCkgdGhyZXcgZXhjZXB0aW9u
IFN5bnRheEVycm9yOiBOb3QgZW5vdWdoIGFyZ3VtZW50cy4KK1BBU1Mgdmlldy5nZXRVaW50MzIo
KSB0aHJldyBleGNlcHRpb24gU3ludGF4RXJyb3I6IE5vdCBlbm91Z2ggYXJndW1lbnRzLgorUEFT
UyB2aWV3LmdldEZsb2F0MzIoKSB0aHJldyBleGNlcHRpb24gU3ludGF4RXJyb3I6IE5vdCBlbm91
Z2ggYXJndW1lbnRzLgorUEFTUyB2aWV3LmdldEZsb2F0NjQoKSB0aHJldyBleGNlcHRpb24gU3lu
dGF4RXJyb3I6IE5vdCBlbm91Z2ggYXJndW1lbnRzLgorCitUZXN0IGZvciBzZXQgbWV0aG9kcyB0
aGF0IHdvcmsKK1BBU1Mgdmlldy5zZXRJbnQ4KDAsIDApIGlzIHVuZGVmaW5lZC4KK1BBU1Mgdmll
dy5nZXRJbnQ4KDApIGlzIDAKK1BBU1Mgdmlldy5zZXRJbnQ4KDgsIC0xMjgpIGlzIHVuZGVmaW5l
ZC4KK1BBU1Mgdmlldy5nZXRJbnQ4KDgpIGlzIC0xMjgKK1BBU1Mgdmlldy5zZXRJbnQ4KDE1LCAt
MSkgaXMgdW5kZWZpbmVkLgorUEFTUyB2aWV3LmdldEludDgoMTUpIGlzIC0xCitQQVNTIHZpZXcu
c2V0VWludDgoMCwgMCkgaXMgdW5kZWZpbmVkLgorUEFTUyB2aWV3LmdldFVpbnQ4KDApIGlzIDAK
K1BBU1Mgdmlldy5zZXRVaW50OCg4LCAxMjgpIGlzIHVuZGVmaW5lZC4KK1BBU1Mgdmlldy5nZXRV
aW50OCg4KSBpcyAxMjgKK1BBU1Mgdmlldy5zZXRVaW50OCgxNSwgMjU1KSBpcyB1bmRlZmluZWQu
CitQQVNTIHZpZXcuZ2V0VWludDgoMTUpIGlzIDI1NQorUEFTUyB2aWV3LnNldEludDE2KDAsIDI1
NiwgdHJ1ZSkgaXMgdW5kZWZpbmVkLgorUEFTUyB2aWV3LmdldEludDE2KDAsIHRydWUpIGlzIDI1
NgorUEFTUyB2aWV3LnNldEludDE2KDUsIDI2MjEzLCB0cnVlKSBpcyB1bmRlZmluZWQuCitQQVNT
IHZpZXcuZ2V0SW50MTYoNSwgdHJ1ZSkgaXMgMjYyMTMKK1BBU1Mgdmlldy5zZXRJbnQxNig5LCAt
MzIxMjcsIHRydWUpIGlzIHVuZGVmaW5lZC4KK1BBU1Mgdmlldy5nZXRJbnQxNig5LCB0cnVlKSBp
cyAtMzIxMjcKK1BBU1Mgdmlldy5zZXRJbnQxNigxNCwgLTIsIHRydWUpIGlzIHVuZGVmaW5lZC4K
K1BBU1Mgdmlldy5nZXRJbnQxNigxNCwgdHJ1ZSkgaXMgLTIKK1BBU1Mgdmlldy5zZXRJbnQxNigw
LCAxKSBpcyB1bmRlZmluZWQuCitQQVNTIHZpZXcuZ2V0SW50MTYoMCkgaXMgMQorUEFTUyB2aWV3
LnNldEludDE2KDUsIDI1OTU4KSBpcyB1bmRlZmluZWQuCitQQVNTIHZpZXcuZ2V0SW50MTYoNSkg
aXMgMjU5NTgKK1BBU1Mgdmlldy5zZXRJbnQxNig5LCAtMzIzODIpIGlzIHVuZGVmaW5lZC4KK1BB
U1Mgdmlldy5nZXRJbnQxNig5KSBpcyAtMzIzODIKK1BBU1Mgdmlldy5zZXRJbnQxNigxNCwgLTI1
NykgaXMgdW5kZWZpbmVkLgorUEFTUyB2aWV3LmdldEludDE2KDE0KSBpcyAtMjU3CitQQVNTIHZp
ZXcuc2V0VWludDE2KDAsIDI1NiwgdHJ1ZSkgaXMgdW5kZWZpbmVkLgorUEFTUyB2aWV3LmdldFVp
bnQxNigwLCB0cnVlKSBpcyAyNTYKK1BBU1Mgdmlldy5zZXRVaW50MTYoNSwgMjYyMTMsIHRydWUp
IGlzIHVuZGVmaW5lZC4KK1BBU1Mgdmlldy5nZXRVaW50MTYoNSwgdHJ1ZSkgaXMgMjYyMTMKK1BB
U1Mgdmlldy5zZXRVaW50MTYoOSwgMzM0MDksIHRydWUpIGlzIHVuZGVmaW5lZC4KK1BBU1Mgdmll
dy5nZXRVaW50MTYoOSwgdHJ1ZSkgaXMgMzM0MDkKK1BBU1Mgdmlldy5zZXRVaW50MTYoMTQsIDY1
NTM0LCB0cnVlKSBpcyB1bmRlZmluZWQuCitQQVNTIHZpZXcuZ2V0VWludDE2KDE0LCB0cnVlKSBp
cyA2NTUzNAorUEFTUyB2aWV3LnNldFVpbnQxNigwLCAxKSBpcyB1bmRlZmluZWQuCitQQVNTIHZp
ZXcuZ2V0VWludDE2KDApIGlzIDEKK1BBU1Mgdmlldy5zZXRVaW50MTYoNSwgMjU5NTgpIGlzIHVu
ZGVmaW5lZC4KK1BBU1Mgdmlldy5nZXRVaW50MTYoNSkgaXMgMjU5NTgKK1BBU1Mgdmlldy5zZXRV
aW50MTYoOSwgMzMxNTQpIGlzIHVuZGVmaW5lZC4KK1BBU1Mgdmlldy5nZXRVaW50MTYoOSkgaXMg
MzMxNTQKK1BBU1Mgdmlldy5zZXRVaW50MTYoMTQsIDY1Mjc5KSBpcyB1bmRlZmluZWQuCitQQVNT
IHZpZXcuZ2V0VWludDE2KDE0KSBpcyA2NTI3OQorUEFTUyB2aWV3LnNldEludDMyKDAsIDUwNDYy
OTc2LCB0cnVlKSBpcyB1bmRlZmluZWQuCitQQVNTIHZpZXcuZ2V0SW50MzIoMCwgdHJ1ZSkgaXMg
NTA0NjI5NzYKK1BBU1Mgdmlldy5zZXRJbnQzMigzLCAxNzE3OTIwNzcxLCB0cnVlKSBpcyB1bmRl
ZmluZWQuCitQQVNTIHZpZXcuZ2V0SW50MzIoMywgdHJ1ZSkgaXMgMTcxNzkyMDc3MQorUEFTUyB2
aWV3LnNldEludDMyKDYsIC0yMTIyMjkxMzU0LCB0cnVlKSBpcyB1bmRlZmluZWQuCitQQVNTIHZp
ZXcuZ2V0SW50MzIoNiwgdHJ1ZSkgaXMgLTIxMjIyOTEzNTQKK1BBU1Mgdmlldy5zZXRJbnQzMig5
LCAtNTg0OTAyMzksIHRydWUpIGlzIHVuZGVmaW5lZC4KK1BBU1Mgdmlldy5nZXRJbnQzMig5LCB0
cnVlKSBpcyAtNTg0OTAyMzkKK1BBU1Mgdmlldy5zZXRJbnQzMigxMiwgLTY2MDUyLCB0cnVlKSBp
cyB1bmRlZmluZWQuCitQQVNTIHZpZXcuZ2V0SW50MzIoMTIsIHRydWUpIGlzIC02NjA1MgorUEFT
UyB2aWV3LnNldEludDMyKDAsIDY2MDUxKSBpcyB1bmRlZmluZWQuCitQQVNTIHZpZXcuZ2V0SW50
MzIoMCkgaXMgNjYwNTEKK1BBU1Mgdmlldy5zZXRJbnQzMigzLCA1NjkxMTIwNikgaXMgdW5kZWZp
bmVkLgorUEFTUyB2aWV3LmdldEludDMyKDMpIGlzIDU2OTExMjA2CitQQVNTIHZpZXcuc2V0SW50
MzIoNiwgMTcxODA1OTEzNykgaXMgdW5kZWZpbmVkLgorUEFTUyB2aWV3LmdldEludDMyKDYpIGlz
IDE3MTgwNTkxMzcKK1BBU1Mgdmlldy5zZXRJbnQzMig5LCAtMjEyMjE1Mjk2NCkgaXMgdW5kZWZp
bmVkLgorUEFTUyB2aWV3LmdldEludDMyKDkpIGlzIC0yMTIyMTUyOTY0CitQQVNTIHZpZXcuc2V0
SW50MzIoMTIsIC01MDQ2Mjk3NykgaXMgdW5kZWZpbmVkLgorUEFTUyB2aWV3LmdldEludDMyKDEy
KSBpcyAtNTA0NjI5NzcKK1BBU1Mgdmlldy5zZXRVaW50MzIoMCwgNTA0NjI5NzYsIHRydWUpIGlz
IHVuZGVmaW5lZC4KK1BBU1Mgdmlldy5nZXRVaW50MzIoMCwgdHJ1ZSkgaXMgNTA0NjI5NzYKK1BB
U1Mgdmlldy5zZXRVaW50MzIoMywgMTcxNzkyMDc3MSwgdHJ1ZSkgaXMgdW5kZWZpbmVkLgorUEFT
UyB2aWV3LmdldFVpbnQzMigzLCB0cnVlKSBpcyAxNzE3OTIwNzcxCitQQVNTIHZpZXcuc2V0VWlu
dDMyKDYsIDIxNzI2NzU5NDIsIHRydWUpIGlzIHVuZGVmaW5lZC4KK1BBU1Mgdmlldy5nZXRVaW50
MzIoNiwgdHJ1ZSkgaXMgMjE3MjY3NTk0MgorUEFTUyB2aWV3LnNldFVpbnQzMig5LCA0MjM2NDc3
MDU3LCB0cnVlKSBpcyB1bmRlZmluZWQuCitQQVNTIHZpZXcuZ2V0VWludDMyKDksIHRydWUpIGlz
IDQyMzY0NzcwNTcKK1BBU1Mgdmlldy5zZXRVaW50MzIoMTIsIDQyOTQ5MDEyNDQsIHRydWUpIGlz
IHVuZGVmaW5lZC4KK1BBU1Mgdmlldy5nZXRVaW50MzIoMTIsIHRydWUpIGlzIDQyOTQ5MDEyNDQK
K1BBU1Mgdmlldy5zZXRVaW50MzIoMCwgNjYwNTEpIGlzIHVuZGVmaW5lZC4KK1BBU1Mgdmlldy5n
ZXRVaW50MzIoMCkgaXMgNjYwNTEKK1BBU1Mgdmlldy5zZXRVaW50MzIoMywgNTY5MTEyMDYpIGlz
IHVuZGVmaW5lZC4KK1BBU1Mgdmlldy5nZXRVaW50MzIoMykgaXMgNTY5MTEyMDYKK1BBU1Mgdmll
dy5zZXRVaW50MzIoNiwgMTcxODA1OTEzNykgaXMgdW5kZWZpbmVkLgorUEFTUyB2aWV3LmdldFVp
bnQzMig2KSBpcyAxNzE4MDU5MTM3CitQQVNTIHZpZXcuc2V0VWludDMyKDksIDIxNzI4MTQzMzIp
IGlzIHVuZGVmaW5lZC4KK1BBU1Mgdmlldy5nZXRVaW50MzIoOSkgaXMgMjE3MjgxNDMzMgorUEFT
UyB2aWV3LnNldFVpbnQzMigxMiwgNDI0NDUwNDMxOSkgaXMgdW5kZWZpbmVkLgorUEFTUyB2aWV3
LmdldFVpbnQzMigxMikgaXMgNDI0NDUwNDMxOQorUEFTUyB2aWV3LnNldEZsb2F0MzIoMCwgMTAs
IHRydWUpIGlzIHVuZGVmaW5lZC4KK1BBU1Mgdmlldy5nZXRGbG9hdDMyKDAsIHRydWUpIGlzIDEw
CitQQVNTIHZpZXcuc2V0RmxvYXQzMigzLCAxMCwgdHJ1ZSkgaXMgdW5kZWZpbmVkLgorUEFTUyB2
aWV3LmdldEZsb2F0MzIoMywgdHJ1ZSkgaXMgMTAKK1BBU1Mgdmlldy5zZXRGbG9hdDMyKDcsIDEw
LCB0cnVlKSBpcyB1bmRlZmluZWQuCitQQVNTIHZpZXcuZ2V0RmxvYXQzMig3LCB0cnVlKSBpcyAx
MAorUEFTUyB2aWV3LnNldEZsb2F0MzIoMTAsIDEwLCB0cnVlKSBpcyB1bmRlZmluZWQuCitQQVNT
IHZpZXcuZ2V0RmxvYXQzMigxMCwgdHJ1ZSkgaXMgMTAKK1BBU1Mgdmlldy5zZXRGbG9hdDMyKDAs
IDEwLCBmYWxzZSkgaXMgdW5kZWZpbmVkLgorUEFTUyB2aWV3LmdldEZsb2F0MzIoMCwgZmFsc2Up
IGlzIDEwCitQQVNTIHZpZXcuc2V0RmxvYXQzMigzLCAxMCwgZmFsc2UpIGlzIHVuZGVmaW5lZC4K
K1BBU1Mgdmlldy5nZXRGbG9hdDMyKDMsIGZhbHNlKSBpcyAxMAorUEFTUyB2aWV3LnNldEZsb2F0
MzIoNywgMTAsIGZhbHNlKSBpcyB1bmRlZmluZWQuCitQQVNTIHZpZXcuZ2V0RmxvYXQzMig3LCBm
YWxzZSkgaXMgMTAKK1BBU1Mgdmlldy5zZXRGbG9hdDMyKDEwLCAxMCwgZmFsc2UpIGlzIHVuZGVm
aW5lZC4KK1BBU1Mgdmlldy5nZXRGbG9hdDMyKDEwLCBmYWxzZSkgaXMgMTAKK1BBU1Mgdmlldy5z
ZXRGbG9hdDMyKDAsIDEuMjMwMDAwMDE5MDczNDg2MywgdHJ1ZSkgaXMgdW5kZWZpbmVkLgorUEFT
UyB2aWV3LmdldEZsb2F0MzIoMCwgdHJ1ZSkgaXMgMS4yMzAwMDAwMTkwNzM0ODYzCitQQVNTIHZp
ZXcuc2V0RmxvYXQzMigzLCAxLjIzMDAwMDAxOTA3MzQ4NjMsIHRydWUpIGlzIHVuZGVmaW5lZC4K
K1BBU1Mgdmlldy5nZXRGbG9hdDMyKDMsIHRydWUpIGlzIDEuMjMwMDAwMDE5MDczNDg2MworUEFT
UyB2aWV3LnNldEZsb2F0MzIoNywgMS4yMzAwMDAwMTkwNzM0ODYzLCB0cnVlKSBpcyB1bmRlZmlu
ZWQuCitQQVNTIHZpZXcuZ2V0RmxvYXQzMig3LCB0cnVlKSBpcyAxLjIzMDAwMDAxOTA3MzQ4NjMK
K1BBU1Mgdmlldy5zZXRGbG9hdDMyKDEwLCAxLjIzMDAwMDAxOTA3MzQ4NjMsIHRydWUpIGlzIHVu
ZGVmaW5lZC4KK1BBU1Mgdmlldy5nZXRGbG9hdDMyKDEwLCB0cnVlKSBpcyAxLjIzMDAwMDAxOTA3
MzQ4NjMKK1BBU1Mgdmlldy5zZXRGbG9hdDMyKDAsIDEuMjMwMDAwMDE5MDczNDg2MywgZmFsc2Up
IGlzIHVuZGVmaW5lZC4KK1BBU1Mgdmlldy5nZXRGbG9hdDMyKDAsIGZhbHNlKSBpcyAxLjIzMDAw
MDAxOTA3MzQ4NjMKK1BBU1Mgdmlldy5zZXRGbG9hdDMyKDMsIDEuMjMwMDAwMDE5MDczNDg2Mywg
ZmFsc2UpIGlzIHVuZGVmaW5lZC4KK1BBU1Mgdmlldy5nZXRGbG9hdDMyKDMsIGZhbHNlKSBpcyAx
LjIzMDAwMDAxOTA3MzQ4NjMKK1BBU1Mgdmlldy5zZXRGbG9hdDMyKDcsIDEuMjMwMDAwMDE5MDcz
NDg2MywgZmFsc2UpIGlzIHVuZGVmaW5lZC4KK1BBU1Mgdmlldy5nZXRGbG9hdDMyKDcsIGZhbHNl
KSBpcyAxLjIzMDAwMDAxOTA3MzQ4NjMKK1BBU1Mgdmlldy5zZXRGbG9hdDMyKDEwLCAxLjIzMDAw
MDAxOTA3MzQ4NjMsIGZhbHNlKSBpcyB1bmRlZmluZWQuCitQQVNTIHZpZXcuZ2V0RmxvYXQzMigx
MCwgZmFsc2UpIGlzIDEuMjMwMDAwMDE5MDczNDg2MworUEFTUyB2aWV3LnNldEZsb2F0MzIoMCwg
LTQ1NjIxLjM3MTA5Mzc1LCB0cnVlKSBpcyB1bmRlZmluZWQuCitQQVNTIHZpZXcuZ2V0RmxvYXQz
MigwLCB0cnVlKSBpcyAtNDU2MjEuMzcxMDkzNzUKK1BBU1Mgdmlldy5zZXRGbG9hdDMyKDMsIC00
NTYyMS4zNzEwOTM3NSwgdHJ1ZSkgaXMgdW5kZWZpbmVkLgorUEFTUyB2aWV3LmdldEZsb2F0MzIo
MywgdHJ1ZSkgaXMgLTQ1NjIxLjM3MTA5Mzc1CitQQVNTIHZpZXcuc2V0RmxvYXQzMig3LCAtNDU2
MjEuMzcxMDkzNzUsIHRydWUpIGlzIHVuZGVmaW5lZC4KK1BBU1Mgdmlldy5nZXRGbG9hdDMyKDcs
IHRydWUpIGlzIC00NTYyMS4zNzEwOTM3NQorUEFTUyB2aWV3LnNldEZsb2F0MzIoMTAsIC00NTYy
MS4zNzEwOTM3NSwgdHJ1ZSkgaXMgdW5kZWZpbmVkLgorUEFTUyB2aWV3LmdldEZsb2F0MzIoMTAs
IHRydWUpIGlzIC00NTYyMS4zNzEwOTM3NQorUEFTUyB2aWV3LnNldEZsb2F0MzIoMCwgLTQ1NjIx
LjM3MTA5Mzc1LCBmYWxzZSkgaXMgdW5kZWZpbmVkLgorUEFTUyB2aWV3LmdldEZsb2F0MzIoMCwg
ZmFsc2UpIGlzIC00NTYyMS4zNzEwOTM3NQorUEFTUyB2aWV3LnNldEZsb2F0MzIoMywgLTQ1NjIx
LjM3MTA5Mzc1LCBmYWxzZSkgaXMgdW5kZWZpbmVkLgorUEFTUyB2aWV3LmdldEZsb2F0MzIoMywg
ZmFsc2UpIGlzIC00NTYyMS4zNzEwOTM3NQorUEFTUyB2aWV3LnNldEZsb2F0MzIoNywgLTQ1NjIx
LjM3MTA5Mzc1LCBmYWxzZSkgaXMgdW5kZWZpbmVkLgorUEFTUyB2aWV3LmdldEZsb2F0MzIoNywg
ZmFsc2UpIGlzIC00NTYyMS4zNzEwOTM3NQorUEFTUyB2aWV3LnNldEZsb2F0MzIoMTAsIC00NTYy
MS4zNzEwOTM3NSwgZmFsc2UpIGlzIHVuZGVmaW5lZC4KK1BBU1Mgdmlldy5nZXRGbG9hdDMyKDEw
LCBmYWxzZSkgaXMgLTQ1NjIxLjM3MTA5Mzc1CitQQVNTIHZpZXcuc2V0RmxvYXQzMigwLCBOYU4s
IHRydWUpIGlzIHVuZGVmaW5lZC4KK1BBU1Mgdmlldy5nZXRGbG9hdDMyKDAsIHRydWUpIGlzIE5h
TgorUEFTUyB2aWV3LnNldEZsb2F0MzIoMywgTmFOLCB0cnVlKSBpcyB1bmRlZmluZWQuCitQQVNT
IHZpZXcuZ2V0RmxvYXQzMigzLCB0cnVlKSBpcyBOYU4KK1BBU1Mgdmlldy5zZXRGbG9hdDMyKDcs
IE5hTiwgdHJ1ZSkgaXMgdW5kZWZpbmVkLgorUEFTUyB2aWV3LmdldEZsb2F0MzIoNywgdHJ1ZSkg
aXMgTmFOCitQQVNTIHZpZXcuc2V0RmxvYXQzMigxMCwgTmFOLCB0cnVlKSBpcyB1bmRlZmluZWQu
CitQQVNTIHZpZXcuZ2V0RmxvYXQzMigxMCwgdHJ1ZSkgaXMgTmFOCitQQVNTIHZpZXcuc2V0Rmxv
YXQzMigwLCBOYU4sIGZhbHNlKSBpcyB1bmRlZmluZWQuCitQQVNTIHZpZXcuZ2V0RmxvYXQzMigw
LCBmYWxzZSkgaXMgTmFOCitQQVNTIHZpZXcuc2V0RmxvYXQzMigzLCBOYU4sIGZhbHNlKSBpcyB1
bmRlZmluZWQuCitQQVNTIHZpZXcuZ2V0RmxvYXQzMigzLCBmYWxzZSkgaXMgTmFOCitQQVNTIHZp
ZXcuc2V0RmxvYXQzMig3LCBOYU4sIGZhbHNlKSBpcyB1bmRlZmluZWQuCitQQVNTIHZpZXcuZ2V0
RmxvYXQzMig3LCBmYWxzZSkgaXMgTmFOCitQQVNTIHZpZXcuc2V0RmxvYXQzMigxMCwgTmFOLCBm
YWxzZSkgaXMgdW5kZWZpbmVkLgorUEFTUyB2aWV3LmdldEZsb2F0MzIoMTAsIGZhbHNlKSBpcyBO
YU4KK1BBU1Mgdmlldy5zZXRGbG9hdDMyKDAsIC1OYU4sIHRydWUpIGlzIHVuZGVmaW5lZC4KK1BB
U1Mgdmlldy5nZXRGbG9hdDMyKDAsIHRydWUpIGlzIC1OYU4KK1BBU1Mgdmlldy5zZXRGbG9hdDMy
KDMsIC1OYU4sIHRydWUpIGlzIHVuZGVmaW5lZC4KK1BBU1Mgdmlldy5nZXRGbG9hdDMyKDMsIHRy
dWUpIGlzIC1OYU4KK1BBU1Mgdmlldy5zZXRGbG9hdDMyKDcsIC1OYU4sIHRydWUpIGlzIHVuZGVm
aW5lZC4KK1BBU1Mgdmlldy5nZXRGbG9hdDMyKDcsIHRydWUpIGlzIC1OYU4KK1BBU1Mgdmlldy5z
ZXRGbG9hdDMyKDEwLCAtTmFOLCB0cnVlKSBpcyB1bmRlZmluZWQuCitQQVNTIHZpZXcuZ2V0Rmxv
YXQzMigxMCwgdHJ1ZSkgaXMgLU5hTgorUEFTUyB2aWV3LnNldEZsb2F0MzIoMCwgLU5hTiwgZmFs
c2UpIGlzIHVuZGVmaW5lZC4KK1BBU1Mgdmlldy5nZXRGbG9hdDMyKDAsIGZhbHNlKSBpcyAtTmFO
CitQQVNTIHZpZXcuc2V0RmxvYXQzMigzLCAtTmFOLCBmYWxzZSkgaXMgdW5kZWZpbmVkLgorUEFT
UyB2aWV3LmdldEZsb2F0MzIoMywgZmFsc2UpIGlzIC1OYU4KK1BBU1Mgdmlldy5zZXRGbG9hdDMy
KDcsIC1OYU4sIGZhbHNlKSBpcyB1bmRlZmluZWQuCitQQVNTIHZpZXcuZ2V0RmxvYXQzMig3LCBm
YWxzZSkgaXMgLU5hTgorUEFTUyB2aWV3LnNldEZsb2F0MzIoMTAsIC1OYU4sIGZhbHNlKSBpcyB1
bmRlZmluZWQuCitQQVNTIHZpZXcuZ2V0RmxvYXQzMigxMCwgZmFsc2UpIGlzIC1OYU4KK1BBU1Mg
dmlldy5zZXRGbG9hdDY0KDAsIDEwLCB0cnVlKSBpcyB1bmRlZmluZWQuCitQQVNTIHZpZXcuZ2V0
RmxvYXQ2NCgwLCB0cnVlKSBpcyAxMAorUEFTUyB2aWV3LnNldEZsb2F0NjQoMywgMTAsIHRydWUp
IGlzIHVuZGVmaW5lZC4KK1BBU1Mgdmlldy5nZXRGbG9hdDY0KDMsIHRydWUpIGlzIDEwCitQQVNT
IHZpZXcuc2V0RmxvYXQ2NCg3LCAxMCwgdHJ1ZSkgaXMgdW5kZWZpbmVkLgorUEFTUyB2aWV3Lmdl
dEZsb2F0NjQoNywgdHJ1ZSkgaXMgMTAKK1BBU1Mgdmlldy5zZXRGbG9hdDY0KDEwLCAxMCwgdHJ1
ZSkgaXMgdW5kZWZpbmVkLgorUEFTUyB2aWV3LmdldEZsb2F0NjQoMTAsIHRydWUpIGlzIDEwCitQ
QVNTIHZpZXcuc2V0RmxvYXQ2NCgwLCAxMCwgZmFsc2UpIGlzIHVuZGVmaW5lZC4KK1BBU1Mgdmll
dy5nZXRGbG9hdDY0KDAsIGZhbHNlKSBpcyAxMAorUEFTUyB2aWV3LnNldEZsb2F0NjQoMywgMTAs
IGZhbHNlKSBpcyB1bmRlZmluZWQuCitQQVNTIHZpZXcuZ2V0RmxvYXQ2NCgzLCBmYWxzZSkgaXMg
MTAKK1BBU1Mgdmlldy5zZXRGbG9hdDY0KDcsIDEwLCBmYWxzZSkgaXMgdW5kZWZpbmVkLgorUEFT
UyB2aWV3LmdldEZsb2F0NjQoNywgZmFsc2UpIGlzIDEwCitQQVNTIHZpZXcuc2V0RmxvYXQ2NCgx
MCwgMTAsIGZhbHNlKSBpcyB1bmRlZmluZWQuCitQQVNTIHZpZXcuZ2V0RmxvYXQ2NCgxMCwgZmFs
c2UpIGlzIDEwCitQQVNTIHZpZXcuc2V0RmxvYXQ2NCgwLCAxLjIzLCB0cnVlKSBpcyB1bmRlZmlu
ZWQuCitQQVNTIHZpZXcuZ2V0RmxvYXQ2NCgwLCB0cnVlKSBpcyAxLjIzCitQQVNTIHZpZXcuc2V0
RmxvYXQ2NCgzLCAxLjIzLCB0cnVlKSBpcyB1bmRlZmluZWQuCitQQVNTIHZpZXcuZ2V0RmxvYXQ2
NCgzLCB0cnVlKSBpcyAxLjIzCitQQVNTIHZpZXcuc2V0RmxvYXQ2NCg3LCAxLjIzLCB0cnVlKSBp
cyB1bmRlZmluZWQuCitQQVNTIHZpZXcuZ2V0RmxvYXQ2NCg3LCB0cnVlKSBpcyAxLjIzCitQQVNT
IHZpZXcuc2V0RmxvYXQ2NCgxMCwgMS4yMywgdHJ1ZSkgaXMgdW5kZWZpbmVkLgorUEFTUyB2aWV3
LmdldEZsb2F0NjQoMTAsIHRydWUpIGlzIDEuMjMKK1BBU1Mgdmlldy5zZXRGbG9hdDY0KDAsIDEu
MjMsIGZhbHNlKSBpcyB1bmRlZmluZWQuCitQQVNTIHZpZXcuZ2V0RmxvYXQ2NCgwLCBmYWxzZSkg
aXMgMS4yMworUEFTUyB2aWV3LnNldEZsb2F0NjQoMywgMS4yMywgZmFsc2UpIGlzIHVuZGVmaW5l
ZC4KK1BBU1Mgdmlldy5nZXRGbG9hdDY0KDMsIGZhbHNlKSBpcyAxLjIzCitQQVNTIHZpZXcuc2V0
RmxvYXQ2NCg3LCAxLjIzLCBmYWxzZSkgaXMgdW5kZWZpbmVkLgorUEFTUyB2aWV3LmdldEZsb2F0
NjQoNywgZmFsc2UpIGlzIDEuMjMKK1BBU1Mgdmlldy5zZXRGbG9hdDY0KDEwLCAxLjIzLCBmYWxz
ZSkgaXMgdW5kZWZpbmVkLgorUEFTUyB2aWV3LmdldEZsb2F0NjQoMTAsIGZhbHNlKSBpcyAxLjIz
CitQQVNTIHZpZXcuc2V0RmxvYXQ2NCgwLCAtNjIxMzU3Ni40ODM5LCB0cnVlKSBpcyB1bmRlZmlu
ZWQuCitQQVNTIHZpZXcuZ2V0RmxvYXQ2NCgwLCB0cnVlKSBpcyAtNjIxMzU3Ni40ODM5CitQQVNT
IHZpZXcuc2V0RmxvYXQ2NCgzLCAtNjIxMzU3Ni40ODM5LCB0cnVlKSBpcyB1bmRlZmluZWQuCitQ
QVNTIHZpZXcuZ2V0RmxvYXQ2NCgzLCB0cnVlKSBpcyAtNjIxMzU3Ni40ODM5CitQQVNTIHZpZXcu
c2V0RmxvYXQ2NCg3LCAtNjIxMzU3Ni40ODM5LCB0cnVlKSBpcyB1bmRlZmluZWQuCitQQVNTIHZp
ZXcuZ2V0RmxvYXQ2NCg3LCB0cnVlKSBpcyAtNjIxMzU3Ni40ODM5CitQQVNTIHZpZXcuc2V0Rmxv
YXQ2NCgxMCwgLTYyMTM1NzYuNDgzOSwgdHJ1ZSkgaXMgdW5kZWZpbmVkLgorUEFTUyB2aWV3Lmdl
dEZsb2F0NjQoMTAsIHRydWUpIGlzIC02MjEzNTc2LjQ4MzkKK1BBU1Mgdmlldy5zZXRGbG9hdDY0
KDAsIC02MjEzNTc2LjQ4MzksIGZhbHNlKSBpcyB1bmRlZmluZWQuCitQQVNTIHZpZXcuZ2V0Rmxv
YXQ2NCgwLCBmYWxzZSkgaXMgLTYyMTM1NzYuNDgzOQorUEFTUyB2aWV3LnNldEZsb2F0NjQoMywg
LTYyMTM1NzYuNDgzOSwgZmFsc2UpIGlzIHVuZGVmaW5lZC4KK1BBU1Mgdmlldy5nZXRGbG9hdDY0
KDMsIGZhbHNlKSBpcyAtNjIxMzU3Ni40ODM5CitQQVNTIHZpZXcuc2V0RmxvYXQ2NCg3LCAtNjIx
MzU3Ni40ODM5LCBmYWxzZSkgaXMgdW5kZWZpbmVkLgorUEFTUyB2aWV3LmdldEZsb2F0NjQoNywg
ZmFsc2UpIGlzIC02MjEzNTc2LjQ4MzkKK1BBU1Mgdmlldy5zZXRGbG9hdDY0KDEwLCAtNjIxMzU3
Ni40ODM5LCBmYWxzZSkgaXMgdW5kZWZpbmVkLgorUEFTUyB2aWV3LmdldEZsb2F0NjQoMTAsIGZh
bHNlKSBpcyAtNjIxMzU3Ni40ODM5CitQQVNTIHZpZXcuc2V0RmxvYXQ2NCgwLCBOYU4sIHRydWUp
IGlzIHVuZGVmaW5lZC4KK1BBU1Mgdmlldy5nZXRGbG9hdDY0KDAsIHRydWUpIGlzIE5hTgorUEFT
UyB2aWV3LnNldEZsb2F0NjQoMywgTmFOLCB0cnVlKSBpcyB1bmRlZmluZWQuCitQQVNTIHZpZXcu
Z2V0RmxvYXQ2NCgzLCB0cnVlKSBpcyBOYU4KK1BBU1Mgdmlldy5zZXRGbG9hdDY0KDcsIE5hTiwg
dHJ1ZSkgaXMgdW5kZWZpbmVkLgorUEFTUyB2aWV3LmdldEZsb2F0NjQoNywgdHJ1ZSkgaXMgTmFO
CitQQVNTIHZpZXcuc2V0RmxvYXQ2NCgxMCwgTmFOLCB0cnVlKSBpcyB1bmRlZmluZWQuCitQQVNT
IHZpZXcuZ2V0RmxvYXQ2NCgxMCwgdHJ1ZSkgaXMgTmFOCitQQVNTIHZpZXcuc2V0RmxvYXQ2NCgw
LCBOYU4sIGZhbHNlKSBpcyB1bmRlZmluZWQuCitQQVNTIHZpZXcuZ2V0RmxvYXQ2NCgwLCBmYWxz
ZSkgaXMgTmFOCitQQVNTIHZpZXcuc2V0RmxvYXQ2NCgzLCBOYU4sIGZhbHNlKSBpcyB1bmRlZmlu
ZWQuCitQQVNTIHZpZXcuZ2V0RmxvYXQ2NCgzLCBmYWxzZSkgaXMgTmFOCitQQVNTIHZpZXcuc2V0
RmxvYXQ2NCg3LCBOYU4sIGZhbHNlKSBpcyB1bmRlZmluZWQuCitQQVNTIHZpZXcuZ2V0RmxvYXQ2
NCg3LCBmYWxzZSkgaXMgTmFOCitQQVNTIHZpZXcuc2V0RmxvYXQ2NCgxMCwgTmFOLCBmYWxzZSkg
aXMgdW5kZWZpbmVkLgorUEFTUyB2aWV3LmdldEZsb2F0NjQoMTAsIGZhbHNlKSBpcyBOYU4KK1BB
U1Mgdmlldy5zZXRGbG9hdDY0KDAsIC1OYU4sIHRydWUpIGlzIHVuZGVmaW5lZC4KK1BBU1Mgdmll
dy5nZXRGbG9hdDY0KDAsIHRydWUpIGlzIC1OYU4KK1BBU1Mgdmlldy5zZXRGbG9hdDY0KDMsIC1O
YU4sIHRydWUpIGlzIHVuZGVmaW5lZC4KK1BBU1Mgdmlldy5nZXRGbG9hdDY0KDMsIHRydWUpIGlz
IC1OYU4KK1BBU1Mgdmlldy5zZXRGbG9hdDY0KDcsIC1OYU4sIHRydWUpIGlzIHVuZGVmaW5lZC4K
K1BBU1Mgdmlldy5nZXRGbG9hdDY0KDcsIHRydWUpIGlzIC1OYU4KK1BBU1Mgdmlldy5zZXRGbG9h
dDY0KDEwLCAtTmFOLCB0cnVlKSBpcyB1bmRlZmluZWQuCitQQVNTIHZpZXcuZ2V0RmxvYXQ2NCgx
MCwgdHJ1ZSkgaXMgLU5hTgorUEFTUyB2aWV3LnNldEZsb2F0NjQoMCwgLU5hTiwgZmFsc2UpIGlz
IHVuZGVmaW5lZC4KK1BBU1Mgdmlldy5nZXRGbG9hdDY0KDAsIGZhbHNlKSBpcyAtTmFOCitQQVNT
IHZpZXcuc2V0RmxvYXQ2NCgzLCAtTmFOLCBmYWxzZSkgaXMgdW5kZWZpbmVkLgorUEFTUyB2aWV3
LmdldEZsb2F0NjQoMywgZmFsc2UpIGlzIC1OYU4KK1BBU1Mgdmlldy5zZXRGbG9hdDY0KDcsIC1O
YU4sIGZhbHNlKSBpcyB1bmRlZmluZWQuCitQQVNTIHZpZXcuZ2V0RmxvYXQ2NCg3LCBmYWxzZSkg
aXMgLU5hTgorUEFTUyB2aWV3LnNldEZsb2F0NjQoMTAsIC1OYU4sIGZhbHNlKSBpcyB1bmRlZmlu
ZWQuCitQQVNTIHZpZXcuZ2V0RmxvYXQ2NCgxMCwgZmFsc2UpIGlzIC1OYU4KKworVGVzdCBmb3Ig
c2V0IG1ldGhvZHMgdGhhdCBtaWdodCB3cml0ZSBiZXlvbmQgdGhlIHJhbmdlCitQQVNTIHZpZXcu
c2V0SW50OCgwLCAwKSBpcyB1bmRlZmluZWQuCitQQVNTIHZpZXcuZ2V0SW50OCgwKSBpcyAwCitQ
QVNTIHZpZXcuc2V0SW50OCg4LCAtMTI4KSB0aHJldyBleGNlcHRpb24gRXJyb3I6IElOREVYX1NJ
WkVfRVJSOiBET00gRXhjZXB0aW9uIDEuCitQQVNTIHZpZXcuc2V0SW50OCgxNSwgLTEpIHRocmV3
IGV4Y2VwdGlvbiBFcnJvcjogSU5ERVhfU0laRV9FUlI6IERPTSBFeGNlcHRpb24gMS4KK1BBU1Mg
dmlldy5zZXRVaW50OCgwLCAwKSBpcyB1bmRlZmluZWQuCitQQVNTIHZpZXcuZ2V0VWludDgoMCkg
aXMgMAorUEFTUyB2aWV3LnNldFVpbnQ4KDgsIDEyOCkgdGhyZXcgZXhjZXB0aW9uIEVycm9yOiBJ
TkRFWF9TSVpFX0VSUjogRE9NIEV4Y2VwdGlvbiAxLgorUEFTUyB2aWV3LnNldFVpbnQ4KDE1LCAy
NTUpIHRocmV3IGV4Y2VwdGlvbiBFcnJvcjogSU5ERVhfU0laRV9FUlI6IERPTSBFeGNlcHRpb24g
MS4KK1BBU1Mgdmlldy5zZXRJbnQxNigwLCAyNTYsIHRydWUpIGlzIHVuZGVmaW5lZC4KK1BBU1Mg
dmlldy5nZXRJbnQxNigwLCB0cnVlKSBpcyAyNTYKK1BBU1Mgdmlldy5zZXRJbnQxNig1LCAyNjIx
MywgdHJ1ZSkgdGhyZXcgZXhjZXB0aW9uIEVycm9yOiBJTkRFWF9TSVpFX0VSUjogRE9NIEV4Y2Vw
dGlvbiAxLgorUEFTUyB2aWV3LnNldEludDE2KDksIC0zMjEyNywgdHJ1ZSkgdGhyZXcgZXhjZXB0
aW9uIEVycm9yOiBJTkRFWF9TSVpFX0VSUjogRE9NIEV4Y2VwdGlvbiAxLgorUEFTUyB2aWV3LnNl
dEludDE2KDE0LCAtMiwgdHJ1ZSkgdGhyZXcgZXhjZXB0aW9uIEVycm9yOiBJTkRFWF9TSVpFX0VS
UjogRE9NIEV4Y2VwdGlvbiAxLgorUEFTUyB2aWV3LnNldEludDE2KDAsIDEpIGlzIHVuZGVmaW5l
ZC4KK1BBU1Mgdmlldy5nZXRJbnQxNigwKSBpcyAxCitQQVNTIHZpZXcuc2V0SW50MTYoNSwgMjU5
NTgpIHRocmV3IGV4Y2VwdGlvbiBFcnJvcjogSU5ERVhfU0laRV9FUlI6IERPTSBFeGNlcHRpb24g
MS4KK1BBU1Mgdmlldy5zZXRJbnQxNig5LCAtMzIzODIpIHRocmV3IGV4Y2VwdGlvbiBFcnJvcjog
SU5ERVhfU0laRV9FUlI6IERPTSBFeGNlcHRpb24gMS4KK1BBU1Mgdmlldy5zZXRJbnQxNigxNCwg
LTI1NykgdGhyZXcgZXhjZXB0aW9uIEVycm9yOiBJTkRFWF9TSVpFX0VSUjogRE9NIEV4Y2VwdGlv
biAxLgorUEFTUyB2aWV3LnNldFVpbnQxNigwLCAyNTYsIHRydWUpIGlzIHVuZGVmaW5lZC4KK1BB
U1Mgdmlldy5nZXRVaW50MTYoMCwgdHJ1ZSkgaXMgMjU2CitQQVNTIHZpZXcuc2V0VWludDE2KDUs
IDI2MjEzLCB0cnVlKSB0aHJldyBleGNlcHRpb24gRXJyb3I6IElOREVYX1NJWkVfRVJSOiBET00g
RXhjZXB0aW9uIDEuCitQQVNTIHZpZXcuc2V0VWludDE2KDksIDMzNDA5LCB0cnVlKSB0aHJldyBl
eGNlcHRpb24gRXJyb3I6IElOREVYX1NJWkVfRVJSOiBET00gRXhjZXB0aW9uIDEuCitQQVNTIHZp
ZXcuc2V0VWludDE2KDE0LCA2NTUzNCwgdHJ1ZSkgdGhyZXcgZXhjZXB0aW9uIEVycm9yOiBJTkRF
WF9TSVpFX0VSUjogRE9NIEV4Y2VwdGlvbiAxLgorUEFTUyB2aWV3LnNldFVpbnQxNigwLCAxKSBp
cyB1bmRlZmluZWQuCitQQVNTIHZpZXcuZ2V0VWludDE2KDApIGlzIDEKK1BBU1Mgdmlldy5zZXRV
aW50MTYoNSwgMjU5NTgpIHRocmV3IGV4Y2VwdGlvbiBFcnJvcjogSU5ERVhfU0laRV9FUlI6IERP
TSBFeGNlcHRpb24gMS4KK1BBU1Mgdmlldy5zZXRVaW50MTYoOSwgMzMxNTQpIHRocmV3IGV4Y2Vw
dGlvbiBFcnJvcjogSU5ERVhfU0laRV9FUlI6IERPTSBFeGNlcHRpb24gMS4KK1BBU1Mgdmlldy5z
ZXRVaW50MTYoMTQsIDY1Mjc5KSB0aHJldyBleGNlcHRpb24gRXJyb3I6IElOREVYX1NJWkVfRVJS
OiBET00gRXhjZXB0aW9uIDEuCitQQVNTIHZpZXcuc2V0SW50MzIoMCwgNTA0NjI5NzYsIHRydWUp
IHRocmV3IGV4Y2VwdGlvbiBFcnJvcjogSU5ERVhfU0laRV9FUlI6IERPTSBFeGNlcHRpb24gMS4K
K1BBU1Mgdmlldy5zZXRJbnQzMigzLCAxNzE3OTIwNzcxLCB0cnVlKSB0aHJldyBleGNlcHRpb24g
RXJyb3I6IElOREVYX1NJWkVfRVJSOiBET00gRXhjZXB0aW9uIDEuCitQQVNTIHZpZXcuc2V0SW50
MzIoNiwgLTIxMjIyOTEzNTQsIHRydWUpIHRocmV3IGV4Y2VwdGlvbiBFcnJvcjogSU5ERVhfU0la
RV9FUlI6IERPTSBFeGNlcHRpb24gMS4KK1BBU1Mgdmlldy5zZXRJbnQzMig5LCAtNTg0OTAyMzks
IHRydWUpIHRocmV3IGV4Y2VwdGlvbiBFcnJvcjogSU5ERVhfU0laRV9FUlI6IERPTSBFeGNlcHRp
b24gMS4KK1BBU1Mgdmlldy5zZXRJbnQzMigxMiwgLTY2MDUyLCB0cnVlKSB0aHJldyBleGNlcHRp
b24gRXJyb3I6IElOREVYX1NJWkVfRVJSOiBET00gRXhjZXB0aW9uIDEuCitQQVNTIHZpZXcuc2V0
SW50MzIoMCwgNjYwNTEpIHRocmV3IGV4Y2VwdGlvbiBFcnJvcjogSU5ERVhfU0laRV9FUlI6IERP
TSBFeGNlcHRpb24gMS4KK1BBU1Mgdmlldy5zZXRJbnQzMigzLCA1NjkxMTIwNikgdGhyZXcgZXhj
ZXB0aW9uIEVycm9yOiBJTkRFWF9TSVpFX0VSUjogRE9NIEV4Y2VwdGlvbiAxLgorUEFTUyB2aWV3
LnNldEludDMyKDYsIDE3MTgwNTkxMzcpIHRocmV3IGV4Y2VwdGlvbiBFcnJvcjogSU5ERVhfU0la
RV9FUlI6IERPTSBFeGNlcHRpb24gMS4KK1BBU1Mgdmlldy5zZXRJbnQzMig5LCAtMjEyMjE1Mjk2
NCkgdGhyZXcgZXhjZXB0aW9uIEVycm9yOiBJTkRFWF9TSVpFX0VSUjogRE9NIEV4Y2VwdGlvbiAx
LgorUEFTUyB2aWV3LnNldEludDMyKDEyLCAtNTA0NjI5NzcpIHRocmV3IGV4Y2VwdGlvbiBFcnJv
cjogSU5ERVhfU0laRV9FUlI6IERPTSBFeGNlcHRpb24gMS4KK1BBU1Mgdmlldy5zZXRVaW50MzIo
MCwgNTA0NjI5NzYsIHRydWUpIHRocmV3IGV4Y2VwdGlvbiBFcnJvcjogSU5ERVhfU0laRV9FUlI6
IERPTSBFeGNlcHRpb24gMS4KK1BBU1Mgdmlldy5zZXRVaW50MzIoMywgMTcxNzkyMDc3MSwgdHJ1
ZSkgdGhyZXcgZXhjZXB0aW9uIEVycm9yOiBJTkRFWF9TSVpFX0VSUjogRE9NIEV4Y2VwdGlvbiAx
LgorUEFTUyB2aWV3LnNldFVpbnQzMig2LCAyMTcyNjc1OTQyLCB0cnVlKSB0aHJldyBleGNlcHRp
b24gRXJyb3I6IElOREVYX1NJWkVfRVJSOiBET00gRXhjZXB0aW9uIDEuCitQQVNTIHZpZXcuc2V0
VWludDMyKDksIDQyMzY0NzcwNTcsIHRydWUpIHRocmV3IGV4Y2VwdGlvbiBFcnJvcjogSU5ERVhf
U0laRV9FUlI6IERPTSBFeGNlcHRpb24gMS4KK1BBU1Mgdmlldy5zZXRVaW50MzIoMTIsIDQyOTQ5
MDEyNDQsIHRydWUpIHRocmV3IGV4Y2VwdGlvbiBFcnJvcjogSU5ERVhfU0laRV9FUlI6IERPTSBF
eGNlcHRpb24gMS4KK1BBU1Mgdmlldy5zZXRVaW50MzIoMCwgNjYwNTEpIHRocmV3IGV4Y2VwdGlv
biBFcnJvcjogSU5ERVhfU0laRV9FUlI6IERPTSBFeGNlcHRpb24gMS4KK1BBU1Mgdmlldy5zZXRV
aW50MzIoMywgNTY5MTEyMDYpIHRocmV3IGV4Y2VwdGlvbiBFcnJvcjogSU5ERVhfU0laRV9FUlI6
IERPTSBFeGNlcHRpb24gMS4KK1BBU1Mgdmlldy5zZXRVaW50MzIoNiwgMTcxODA1OTEzNykgdGhy
ZXcgZXhjZXB0aW9uIEVycm9yOiBJTkRFWF9TSVpFX0VSUjogRE9NIEV4Y2VwdGlvbiAxLgorUEFT
UyB2aWV3LnNldFVpbnQzMig5LCAyMTcyODE0MzMyKSB0aHJldyBleGNlcHRpb24gRXJyb3I6IElO
REVYX1NJWkVfRVJSOiBET00gRXhjZXB0aW9uIDEuCitQQVNTIHZpZXcuc2V0VWludDMyKDEyLCA0
MjQ0NTA0MzE5KSB0aHJldyBleGNlcHRpb24gRXJyb3I6IElOREVYX1NJWkVfRVJSOiBET00gRXhj
ZXB0aW9uIDEuCitQQVNTIHZpZXcuc2V0RmxvYXQzMigwLCAxMCwgdHJ1ZSkgaXMgdW5kZWZpbmVk
LgorUEFTUyB2aWV3LmdldEZsb2F0MzIoMCwgdHJ1ZSkgaXMgMTAKK1BBU1Mgdmlldy5zZXRGbG9h
dDMyKDMsIDEwLCB0cnVlKSBpcyB1bmRlZmluZWQuCitQQVNTIHZpZXcuZ2V0RmxvYXQzMigzLCB0
cnVlKSBpcyAxMAorUEFTUyB2aWV3LnNldEZsb2F0MzIoNywgMTAsIHRydWUpIGlzIHVuZGVmaW5l
ZC4KK1BBU1Mgdmlldy5nZXRGbG9hdDMyKDcsIHRydWUpIGlzIDEwCitQQVNTIHZpZXcuc2V0Rmxv
YXQzMigxMCwgMTAsIHRydWUpIGlzIHVuZGVmaW5lZC4KK1BBU1Mgdmlldy5nZXRGbG9hdDMyKDEw
LCB0cnVlKSBpcyAxMAorUEFTUyB2aWV3LnNldEZsb2F0MzIoMCwgMTAsIGZhbHNlKSBpcyB1bmRl
ZmluZWQuCitQQVNTIHZpZXcuZ2V0RmxvYXQzMigwLCBmYWxzZSkgaXMgMTAKK1BBU1Mgdmlldy5z
ZXRGbG9hdDMyKDMsIDEwLCBmYWxzZSkgaXMgdW5kZWZpbmVkLgorUEFTUyB2aWV3LmdldEZsb2F0
MzIoMywgZmFsc2UpIGlzIDEwCitQQVNTIHZpZXcuc2V0RmxvYXQzMig3LCAxMCwgZmFsc2UpIGlz
IHVuZGVmaW5lZC4KK1BBU1Mgdmlldy5nZXRGbG9hdDMyKDcsIGZhbHNlKSBpcyAxMAorUEFTUyB2
aWV3LnNldEZsb2F0MzIoMTAsIDEwLCBmYWxzZSkgaXMgdW5kZWZpbmVkLgorUEFTUyB2aWV3Lmdl
dEZsb2F0MzIoMTAsIGZhbHNlKSBpcyAxMAorUEFTUyB2aWV3LnNldEZsb2F0MzIoMCwgMS4yMzAw
MDAwMTkwNzM0ODYzLCB0cnVlKSBpcyB1bmRlZmluZWQuCitQQVNTIHZpZXcuZ2V0RmxvYXQzMigw
LCB0cnVlKSBpcyAxLjIzMDAwMDAxOTA3MzQ4NjMKK1BBU1Mgdmlldy5zZXRGbG9hdDMyKDMsIDEu
MjMwMDAwMDE5MDczNDg2MywgdHJ1ZSkgaXMgdW5kZWZpbmVkLgorUEFTUyB2aWV3LmdldEZsb2F0
MzIoMywgdHJ1ZSkgaXMgMS4yMzAwMDAwMTkwNzM0ODYzCitQQVNTIHZpZXcuc2V0RmxvYXQzMig3
LCAxLjIzMDAwMDAxOTA3MzQ4NjMsIHRydWUpIGlzIHVuZGVmaW5lZC4KK1BBU1Mgdmlldy5nZXRG
bG9hdDMyKDcsIHRydWUpIGlzIDEuMjMwMDAwMDE5MDczNDg2MworUEFTUyB2aWV3LnNldEZsb2F0
MzIoMTAsIDEuMjMwMDAwMDE5MDczNDg2MywgdHJ1ZSkgaXMgdW5kZWZpbmVkLgorUEFTUyB2aWV3
LmdldEZsb2F0MzIoMTAsIHRydWUpIGlzIDEuMjMwMDAwMDE5MDczNDg2MworUEFTUyB2aWV3LnNl
dEZsb2F0MzIoMCwgMS4yMzAwMDAwMTkwNzM0ODYzLCBmYWxzZSkgaXMgdW5kZWZpbmVkLgorUEFT
UyB2aWV3LmdldEZsb2F0MzIoMCwgZmFsc2UpIGlzIDEuMjMwMDAwMDE5MDczNDg2MworUEFTUyB2
aWV3LnNldEZsb2F0MzIoMywgMS4yMzAwMDAwMTkwNzM0ODYzLCBmYWxzZSkgaXMgdW5kZWZpbmVk
LgorUEFTUyB2aWV3LmdldEZsb2F0MzIoMywgZmFsc2UpIGlzIDEuMjMwMDAwMDE5MDczNDg2Mwor
UEFTUyB2aWV3LnNldEZsb2F0MzIoNywgMS4yMzAwMDAwMTkwNzM0ODYzLCBmYWxzZSkgaXMgdW5k
ZWZpbmVkLgorUEFTUyB2aWV3LmdldEZsb2F0MzIoNywgZmFsc2UpIGlzIDEuMjMwMDAwMDE5MDcz
NDg2MworUEFTUyB2aWV3LnNldEZsb2F0MzIoMTAsIDEuMjMwMDAwMDE5MDczNDg2MywgZmFsc2Up
IGlzIHVuZGVmaW5lZC4KK1BBU1Mgdmlldy5nZXRGbG9hdDMyKDEwLCBmYWxzZSkgaXMgMS4yMzAw
MDAwMTkwNzM0ODYzCitQQVNTIHZpZXcuc2V0RmxvYXQzMigwLCAtNDU2MjEuMzcxMDkzNzUsIHRy
dWUpIGlzIHVuZGVmaW5lZC4KK1BBU1Mgdmlldy5nZXRGbG9hdDMyKDAsIHRydWUpIGlzIC00NTYy
MS4zNzEwOTM3NQorUEFTUyB2aWV3LnNldEZsb2F0MzIoMywgLTQ1NjIxLjM3MTA5Mzc1LCB0cnVl
KSBpcyB1bmRlZmluZWQuCitQQVNTIHZpZXcuZ2V0RmxvYXQzMigzLCB0cnVlKSBpcyAtNDU2MjEu
MzcxMDkzNzUKK1BBU1Mgdmlldy5zZXRGbG9hdDMyKDcsIC00NTYyMS4zNzEwOTM3NSwgdHJ1ZSkg
aXMgdW5kZWZpbmVkLgorUEFTUyB2aWV3LmdldEZsb2F0MzIoNywgdHJ1ZSkgaXMgLTQ1NjIxLjM3
MTA5Mzc1CitQQVNTIHZpZXcuc2V0RmxvYXQzMigxMCwgLTQ1NjIxLjM3MTA5Mzc1LCB0cnVlKSBp
cyB1bmRlZmluZWQuCitQQVNTIHZpZXcuZ2V0RmxvYXQzMigxMCwgdHJ1ZSkgaXMgLTQ1NjIxLjM3
MTA5Mzc1CitQQVNTIHZpZXcuc2V0RmxvYXQzMigwLCAtNDU2MjEuMzcxMDkzNzUsIGZhbHNlKSBp
cyB1bmRlZmluZWQuCitQQVNTIHZpZXcuZ2V0RmxvYXQzMigwLCBmYWxzZSkgaXMgLTQ1NjIxLjM3
MTA5Mzc1CitQQVNTIHZpZXcuc2V0RmxvYXQzMigzLCAtNDU2MjEuMzcxMDkzNzUsIGZhbHNlKSBp
cyB1bmRlZmluZWQuCitQQVNTIHZpZXcuZ2V0RmxvYXQzMigzLCBmYWxzZSkgaXMgLTQ1NjIxLjM3
MTA5Mzc1CitQQVNTIHZpZXcuc2V0RmxvYXQzMig3LCAtNDU2MjEuMzcxMDkzNzUsIGZhbHNlKSBp
cyB1bmRlZmluZWQuCitQQVNTIHZpZXcuZ2V0RmxvYXQzMig3LCBmYWxzZSkgaXMgLTQ1NjIxLjM3
MTA5Mzc1CitQQVNTIHZpZXcuc2V0RmxvYXQzMigxMCwgLTQ1NjIxLjM3MTA5Mzc1LCBmYWxzZSkg
aXMgdW5kZWZpbmVkLgorUEFTUyB2aWV3LmdldEZsb2F0MzIoMTAsIGZhbHNlKSBpcyAtNDU2MjEu
MzcxMDkzNzUKK1BBU1Mgdmlldy5zZXRGbG9hdDMyKDAsIE5hTiwgdHJ1ZSkgaXMgdW5kZWZpbmVk
LgorUEFTUyB2aWV3LmdldEZsb2F0MzIoMCwgdHJ1ZSkgaXMgTmFOCitQQVNTIHZpZXcuc2V0Rmxv
YXQzMigzLCBOYU4sIHRydWUpIGlzIHVuZGVmaW5lZC4KK1BBU1Mgdmlldy5nZXRGbG9hdDMyKDMs
IHRydWUpIGlzIE5hTgorUEFTUyB2aWV3LnNldEZsb2F0MzIoNywgTmFOLCB0cnVlKSBpcyB1bmRl
ZmluZWQuCitQQVNTIHZpZXcuZ2V0RmxvYXQzMig3LCB0cnVlKSBpcyBOYU4KK1BBU1Mgdmlldy5z
ZXRGbG9hdDMyKDEwLCBOYU4sIHRydWUpIGlzIHVuZGVmaW5lZC4KK1BBU1Mgdmlldy5nZXRGbG9h
dDMyKDEwLCB0cnVlKSBpcyBOYU4KK1BBU1Mgdmlldy5zZXRGbG9hdDMyKDAsIE5hTiwgZmFsc2Up
IGlzIHVuZGVmaW5lZC4KK1BBU1Mgdmlldy5nZXRGbG9hdDMyKDAsIGZhbHNlKSBpcyBOYU4KK1BB
U1Mgdmlldy5zZXRGbG9hdDMyKDMsIE5hTiwgZmFsc2UpIGlzIHVuZGVmaW5lZC4KK1BBU1Mgdmll
dy5nZXRGbG9hdDMyKDMsIGZhbHNlKSBpcyBOYU4KK1BBU1Mgdmlldy5zZXRGbG9hdDMyKDcsIE5h
TiwgZmFsc2UpIGlzIHVuZGVmaW5lZC4KK1BBU1Mgdmlldy5nZXRGbG9hdDMyKDcsIGZhbHNlKSBp
cyBOYU4KK1BBU1Mgdmlldy5zZXRGbG9hdDMyKDEwLCBOYU4sIGZhbHNlKSBpcyB1bmRlZmluZWQu
CitQQVNTIHZpZXcuZ2V0RmxvYXQzMigxMCwgZmFsc2UpIGlzIE5hTgorUEFTUyB2aWV3LnNldEZs
b2F0MzIoMCwgLU5hTiwgdHJ1ZSkgaXMgdW5kZWZpbmVkLgorUEFTUyB2aWV3LmdldEZsb2F0MzIo
MCwgdHJ1ZSkgaXMgLU5hTgorUEFTUyB2aWV3LnNldEZsb2F0MzIoMywgLU5hTiwgdHJ1ZSkgaXMg
dW5kZWZpbmVkLgorUEFTUyB2aWV3LmdldEZsb2F0MzIoMywgdHJ1ZSkgaXMgLU5hTgorUEFTUyB2
aWV3LnNldEZsb2F0MzIoNywgLU5hTiwgdHJ1ZSkgaXMgdW5kZWZpbmVkLgorUEFTUyB2aWV3Lmdl
dEZsb2F0MzIoNywgdHJ1ZSkgaXMgLU5hTgorUEFTUyB2aWV3LnNldEZsb2F0MzIoMTAsIC1OYU4s
IHRydWUpIGlzIHVuZGVmaW5lZC4KK1BBU1Mgdmlldy5nZXRGbG9hdDMyKDEwLCB0cnVlKSBpcyAt
TmFOCitQQVNTIHZpZXcuc2V0RmxvYXQzMigwLCAtTmFOLCBmYWxzZSkgaXMgdW5kZWZpbmVkLgor
UEFTUyB2aWV3LmdldEZsb2F0MzIoMCwgZmFsc2UpIGlzIC1OYU4KK1BBU1Mgdmlldy5zZXRGbG9h
dDMyKDMsIC1OYU4sIGZhbHNlKSBpcyB1bmRlZmluZWQuCitQQVNTIHZpZXcuZ2V0RmxvYXQzMigz
LCBmYWxzZSkgaXMgLU5hTgorUEFTUyB2aWV3LnNldEZsb2F0MzIoNywgLU5hTiwgZmFsc2UpIGlz
IHVuZGVmaW5lZC4KK1BBU1Mgdmlldy5nZXRGbG9hdDMyKDcsIGZhbHNlKSBpcyAtTmFOCitQQVNT
IHZpZXcuc2V0RmxvYXQzMigxMCwgLU5hTiwgZmFsc2UpIGlzIHVuZGVmaW5lZC4KK1BBU1Mgdmll
dy5nZXRGbG9hdDMyKDEwLCBmYWxzZSkgaXMgLU5hTgorUEFTUyB2aWV3LnNldEZsb2F0NjQoMCwg
MTAsIHRydWUpIGlzIHVuZGVmaW5lZC4KK1BBU1Mgdmlldy5nZXRGbG9hdDY0KDAsIHRydWUpIGlz
IDEwCitQQVNTIHZpZXcuc2V0RmxvYXQ2NCgzLCAxMCwgdHJ1ZSkgaXMgdW5kZWZpbmVkLgorUEFT
UyB2aWV3LmdldEZsb2F0NjQoMywgdHJ1ZSkgaXMgMTAKK1BBU1Mgdmlldy5zZXRGbG9hdDY0KDcs
IDEwLCB0cnVlKSBpcyB1bmRlZmluZWQuCitQQVNTIHZpZXcuZ2V0RmxvYXQ2NCg3LCB0cnVlKSBp
cyAxMAorUEFTUyB2aWV3LnNldEZsb2F0NjQoMTAsIDEwLCB0cnVlKSBpcyB1bmRlZmluZWQuCitQ
QVNTIHZpZXcuZ2V0RmxvYXQ2NCgxMCwgdHJ1ZSkgaXMgMTAKK1BBU1Mgdmlldy5zZXRGbG9hdDY0
KDAsIDEwLCBmYWxzZSkgaXMgdW5kZWZpbmVkLgorUEFTUyB2aWV3LmdldEZsb2F0NjQoMCwgZmFs
c2UpIGlzIDEwCitQQVNTIHZpZXcuc2V0RmxvYXQ2NCgzLCAxMCwgZmFsc2UpIGlzIHVuZGVmaW5l
ZC4KK1BBU1Mgdmlldy5nZXRGbG9hdDY0KDMsIGZhbHNlKSBpcyAxMAorUEFTUyB2aWV3LnNldEZs
b2F0NjQoNywgMTAsIGZhbHNlKSBpcyB1bmRlZmluZWQuCitQQVNTIHZpZXcuZ2V0RmxvYXQ2NCg3
LCBmYWxzZSkgaXMgMTAKK1BBU1Mgdmlldy5zZXRGbG9hdDY0KDEwLCAxMCwgZmFsc2UpIGlzIHVu
ZGVmaW5lZC4KK1BBU1Mgdmlldy5nZXRGbG9hdDY0KDEwLCBmYWxzZSkgaXMgMTAKK1BBU1Mgdmll
dy5zZXRGbG9hdDY0KDAsIDEuMjMsIHRydWUpIGlzIHVuZGVmaW5lZC4KK1BBU1Mgdmlldy5nZXRG
bG9hdDY0KDAsIHRydWUpIGlzIDEuMjMKK1BBU1Mgdmlldy5zZXRGbG9hdDY0KDMsIDEuMjMsIHRy
dWUpIGlzIHVuZGVmaW5lZC4KK1BBU1Mgdmlldy5nZXRGbG9hdDY0KDMsIHRydWUpIGlzIDEuMjMK
K1BBU1Mgdmlldy5zZXRGbG9hdDY0KDcsIDEuMjMsIHRydWUpIGlzIHVuZGVmaW5lZC4KK1BBU1Mg
dmlldy5nZXRGbG9hdDY0KDcsIHRydWUpIGlzIDEuMjMKK1BBU1Mgdmlldy5zZXRGbG9hdDY0KDEw
LCAxLjIzLCB0cnVlKSBpcyB1bmRlZmluZWQuCitQQVNTIHZpZXcuZ2V0RmxvYXQ2NCgxMCwgdHJ1
ZSkgaXMgMS4yMworUEFTUyB2aWV3LnNldEZsb2F0NjQoMCwgMS4yMywgZmFsc2UpIGlzIHVuZGVm
aW5lZC4KK1BBU1Mgdmlldy5nZXRGbG9hdDY0KDAsIGZhbHNlKSBpcyAxLjIzCitQQVNTIHZpZXcu
c2V0RmxvYXQ2NCgzLCAxLjIzLCBmYWxzZSkgaXMgdW5kZWZpbmVkLgorUEFTUyB2aWV3LmdldEZs
b2F0NjQoMywgZmFsc2UpIGlzIDEuMjMKK1BBU1Mgdmlldy5zZXRGbG9hdDY0KDcsIDEuMjMsIGZh
bHNlKSBpcyB1bmRlZmluZWQuCitQQVNTIHZpZXcuZ2V0RmxvYXQ2NCg3LCBmYWxzZSkgaXMgMS4y
MworUEFTUyB2aWV3LnNldEZsb2F0NjQoMTAsIDEuMjMsIGZhbHNlKSBpcyB1bmRlZmluZWQuCitQ
QVNTIHZpZXcuZ2V0RmxvYXQ2NCgxMCwgZmFsc2UpIGlzIDEuMjMKK1BBU1Mgdmlldy5zZXRGbG9h
dDY0KDAsIC02MjEzNTc2LjQ4MzksIHRydWUpIGlzIHVuZGVmaW5lZC4KK1BBU1Mgdmlldy5nZXRG
bG9hdDY0KDAsIHRydWUpIGlzIC02MjEzNTc2LjQ4MzkKK1BBU1Mgdmlldy5zZXRGbG9hdDY0KDMs
IC02MjEzNTc2LjQ4MzksIHRydWUpIGlzIHVuZGVmaW5lZC4KK1BBU1Mgdmlldy5nZXRGbG9hdDY0
KDMsIHRydWUpIGlzIC02MjEzNTc2LjQ4MzkKK1BBU1Mgdmlldy5zZXRGbG9hdDY0KDcsIC02MjEz
NTc2LjQ4MzksIHRydWUpIGlzIHVuZGVmaW5lZC4KK1BBU1Mgdmlldy5nZXRGbG9hdDY0KDcsIHRy
dWUpIGlzIC02MjEzNTc2LjQ4MzkKK1BBU1Mgdmlldy5zZXRGbG9hdDY0KDEwLCAtNjIxMzU3Ni40
ODM5LCB0cnVlKSBpcyB1bmRlZmluZWQuCitQQVNTIHZpZXcuZ2V0RmxvYXQ2NCgxMCwgdHJ1ZSkg
aXMgLTYyMTM1NzYuNDgzOQorUEFTUyB2aWV3LnNldEZsb2F0NjQoMCwgLTYyMTM1NzYuNDgzOSwg
ZmFsc2UpIGlzIHVuZGVmaW5lZC4KK1BBU1Mgdmlldy5nZXRGbG9hdDY0KDAsIGZhbHNlKSBpcyAt
NjIxMzU3Ni40ODM5CitQQVNTIHZpZXcuc2V0RmxvYXQ2NCgzLCAtNjIxMzU3Ni40ODM5LCBmYWxz
ZSkgaXMgdW5kZWZpbmVkLgorUEFTUyB2aWV3LmdldEZsb2F0NjQoMywgZmFsc2UpIGlzIC02MjEz
NTc2LjQ4MzkKK1BBU1Mgdmlldy5zZXRGbG9hdDY0KDcsIC02MjEzNTc2LjQ4MzksIGZhbHNlKSBp
cyB1bmRlZmluZWQuCitQQVNTIHZpZXcuZ2V0RmxvYXQ2NCg3LCBmYWxzZSkgaXMgLTYyMTM1NzYu
NDgzOQorUEFTUyB2aWV3LnNldEZsb2F0NjQoMTAsIC02MjEzNTc2LjQ4MzksIGZhbHNlKSBpcyB1
bmRlZmluZWQuCitQQVNTIHZpZXcuZ2V0RmxvYXQ2NCgxMCwgZmFsc2UpIGlzIC02MjEzNTc2LjQ4
MzkKK1BBU1Mgdmlldy5zZXRGbG9hdDY0KDAsIE5hTiwgdHJ1ZSkgaXMgdW5kZWZpbmVkLgorUEFT
UyB2aWV3LmdldEZsb2F0NjQoMCwgdHJ1ZSkgaXMgTmFOCitQQVNTIHZpZXcuc2V0RmxvYXQ2NCgz
LCBOYU4sIHRydWUpIGlzIHVuZGVmaW5lZC4KK1BBU1Mgdmlldy5nZXRGbG9hdDY0KDMsIHRydWUp
IGlzIE5hTgorUEFTUyB2aWV3LnNldEZsb2F0NjQoNywgTmFOLCB0cnVlKSBpcyB1bmRlZmluZWQu
CitQQVNTIHZpZXcuZ2V0RmxvYXQ2NCg3LCB0cnVlKSBpcyBOYU4KK1BBU1Mgdmlldy5zZXRGbG9h
dDY0KDEwLCBOYU4sIHRydWUpIGlzIHVuZGVmaW5lZC4KK1BBU1Mgdmlldy5nZXRGbG9hdDY0KDEw
LCB0cnVlKSBpcyBOYU4KK1BBU1Mgdmlldy5zZXRGbG9hdDY0KDAsIE5hTiwgZmFsc2UpIGlzIHVu
ZGVmaW5lZC4KK1BBU1Mgdmlldy5nZXRGbG9hdDY0KDAsIGZhbHNlKSBpcyBOYU4KK1BBU1Mgdmll
dy5zZXRGbG9hdDY0KDMsIE5hTiwgZmFsc2UpIGlzIHVuZGVmaW5lZC4KK1BBU1Mgdmlldy5nZXRG
bG9hdDY0KDMsIGZhbHNlKSBpcyBOYU4KK1BBU1Mgdmlldy5zZXRGbG9hdDY0KDcsIE5hTiwgZmFs
c2UpIGlzIHVuZGVmaW5lZC4KK1BBU1Mgdmlldy5nZXRGbG9hdDY0KDcsIGZhbHNlKSBpcyBOYU4K
K1BBU1Mgdmlldy5zZXRGbG9hdDY0KDEwLCBOYU4sIGZhbHNlKSBpcyB1bmRlZmluZWQuCitQQVNT
IHZpZXcuZ2V0RmxvYXQ2NCgxMCwgZmFsc2UpIGlzIE5hTgorUEFTUyB2aWV3LnNldEZsb2F0NjQo
MCwgLU5hTiwgdHJ1ZSkgaXMgdW5kZWZpbmVkLgorUEFTUyB2aWV3LmdldEZsb2F0NjQoMCwgdHJ1
ZSkgaXMgLU5hTgorUEFTUyB2aWV3LnNldEZsb2F0NjQoMywgLU5hTiwgdHJ1ZSkgaXMgdW5kZWZp
bmVkLgorUEFTUyB2aWV3LmdldEZsb2F0NjQoMywgdHJ1ZSkgaXMgLU5hTgorUEFTUyB2aWV3LnNl
dEZsb2F0NjQoNywgLU5hTiwgdHJ1ZSkgaXMgdW5kZWZpbmVkLgorUEFTUyB2aWV3LmdldEZsb2F0
NjQoNywgdHJ1ZSkgaXMgLU5hTgorUEFTUyB2aWV3LnNldEZsb2F0NjQoMTAsIC1OYU4sIHRydWUp
IGlzIHVuZGVmaW5lZC4KK1BBU1Mgdmlldy5nZXRGbG9hdDY0KDEwLCB0cnVlKSBpcyAtTmFOCitQ
QVNTIHZpZXcuc2V0RmxvYXQ2NCgwLCAtTmFOLCBmYWxzZSkgaXMgdW5kZWZpbmVkLgorUEFTUyB2
aWV3LmdldEZsb2F0NjQoMCwgZmFsc2UpIGlzIC1OYU4KK1BBU1Mgdmlldy5zZXRGbG9hdDY0KDMs
IC1OYU4sIGZhbHNlKSBpcyB1bmRlZmluZWQuCitQQVNTIHZpZXcuZ2V0RmxvYXQ2NCgzLCBmYWxz
ZSkgaXMgLU5hTgorUEFTUyB2aWV3LnNldEZsb2F0NjQoNywgLU5hTiwgZmFsc2UpIGlzIHVuZGVm
aW5lZC4KK1BBU1Mgdmlldy5nZXRGbG9hdDY0KDcsIGZhbHNlKSBpcyAtTmFOCitQQVNTIHZpZXcu
c2V0RmxvYXQ2NCgxMCwgLU5hTiwgZmFsc2UpIGlzIHVuZGVmaW5lZC4KK1BBU1Mgdmlldy5nZXRG
bG9hdDY0KDEwLCBmYWxzZSkgaXMgLU5hTgorCitUZXN0IGZvciB3cm9uZyBhcmd1bWVudHMgcGFz
c2VkIHRvIGdldCBtZXRob2RzCitQQVNTIHZpZXcuc2V0SW50OCgpIHRocmV3IGV4Y2VwdGlvbiBT
eW50YXhFcnJvcjogTm90IGVub3VnaCBhcmd1bWVudHMuCitQQVNTIHZpZXcuc2V0VWludDgoKSB0
aHJldyBleGNlcHRpb24gU3ludGF4RXJyb3I6IE5vdCBlbm91Z2ggYXJndW1lbnRzLgorUEFTUyB2
aWV3LnNldEludDE2KCkgdGhyZXcgZXhjZXB0aW9uIFN5bnRheEVycm9yOiBOb3QgZW5vdWdoIGFy
Z3VtZW50cy4KK1BBU1Mgdmlldy5zZXRVaW50MTYoKSB0aHJldyBleGNlcHRpb24gU3ludGF4RXJy
b3I6IE5vdCBlbm91Z2ggYXJndW1lbnRzLgorUEFTUyB2aWV3LnNldEludDMyKCkgdGhyZXcgZXhj
ZXB0aW9uIFN5bnRheEVycm9yOiBOb3QgZW5vdWdoIGFyZ3VtZW50cy4KK1BBU1Mgdmlldy5zZXRV
aW50MzIoKSB0aHJldyBleGNlcHRpb24gU3ludGF4RXJyb3I6IE5vdCBlbm91Z2ggYXJndW1lbnRz
LgorUEFTUyB2aWV3LnNldEZsb2F0MzIoKSB0aHJldyBleGNlcHRpb24gU3ludGF4RXJyb3I6IE5v
dCBlbm91Z2ggYXJndW1lbnRzLgorUEFTUyB2aWV3LnNldEZsb2F0NjQoKSB0aHJldyBleGNlcHRp
b24gU3ludGF4RXJyb3I6IE5vdCBlbm91Z2ggYXJndW1lbnRzLgorUEFTUyB2aWV3LnNldEludDgo
MSkgdGhyZXcgZXhjZXB0aW9uIFN5bnRheEVycm9yOiBOb3QgZW5vdWdoIGFyZ3VtZW50cy4KK1BB
U1Mgdmlldy5zZXRVaW50OCgxKSB0aHJldyBleGNlcHRpb24gU3ludGF4RXJyb3I6IE5vdCBlbm91
Z2ggYXJndW1lbnRzLgorUEFTUyB2aWV3LnNldEludDE2KDEpIHRocmV3IGV4Y2VwdGlvbiBTeW50
YXhFcnJvcjogTm90IGVub3VnaCBhcmd1bWVudHMuCitQQVNTIHZpZXcuc2V0VWludDE2KDEpIHRo
cmV3IGV4Y2VwdGlvbiBTeW50YXhFcnJvcjogTm90IGVub3VnaCBhcmd1bWVudHMuCitQQVNTIHZp
ZXcuc2V0SW50MzIoMSkgdGhyZXcgZXhjZXB0aW9uIFN5bnRheEVycm9yOiBOb3QgZW5vdWdoIGFy
Z3VtZW50cy4KK1BBU1Mgdmlldy5zZXRVaW50MzIoMSkgdGhyZXcgZXhjZXB0aW9uIFN5bnRheEVy
cm9yOiBOb3QgZW5vdWdoIGFyZ3VtZW50cy4KK1BBU1Mgdmlldy5zZXRGbG9hdDMyKDEpIHRocmV3
IGV4Y2VwdGlvbiBTeW50YXhFcnJvcjogTm90IGVub3VnaCBhcmd1bWVudHMuCitQQVNTIHZpZXcu
c2V0RmxvYXQ2NCgxKSB0aHJldyBleGNlcHRpb24gU3ludGF4RXJyb3I6IE5vdCBlbm91Z2ggYXJn
dW1lbnRzLgorCitUZXN0IGZvciBpbmRleGluZyB0aGF0IHNob3VsZCBub3Qgd29yaworUEFTUyB2
aWV3WzBdIGlzIHVuZGVmaW5lZC4KK1BBU1Mgdmlld1swXSA9IDMgaXMgZGVmaW5lZC4KK1BBU1Mg
dmlldy5nZXRVaW50OCgwKSBpcyAxCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisK
K1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvd2Vi
Z2wvZGF0YS12aWV3LXRlc3QuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvY2FudmFzL3dlYmdsL2Rh
dGEtdmlldy10ZXN0Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uZDdj
YmNjMDgKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2NhbnZhcy93ZWJnbC9k
YXRhLXZpZXctdGVzdC5odG1sCkBAIC0wLDAgKzEsMzAxIEBACis8aHRtbD4KKzxoZWFkPgorPGxp
bmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSIuLi8uLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1zdHls
ZS5jc3MiLz4KKzxzY3JpcHQgc3JjPSIuLi8uLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMi
Pjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8ZGl2IGlkPSJkZXNjcmlwdGlvbiI+PC9kaXY+
Cis8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKworPHNjcmlwdD4KK2Rlc2NyaXB0aW9uKCJUZXN0
IERhdGFWaWV3LiIpOworCit2YXIgaW50QXJyYXkxID0gWzAsIDEsIDIsIDMsIDEwMCwgMTAxLCAx
MDIsIDEwMywgMTI4LCAxMjksIDEzMCwgMTMxLCAyNTIsIDI1MywgMjU0LCAyNTVdOwordmFyIGlu
dEFycmF5MiA9IFszMSwgMzIsIDMzLCAwLCAxLCAyLCAzLCAxMDAsIDEwMSwgMTAyLCAxMDMsIDEy
OCwgMTI5LCAxMzAsIDEzMSwgMjUyLCAyNTMsIDI1NCwgMjU1XTsKK3ZhciBlbXB0eUFycmF5ID0g
WzIwNCwgMjA0LCAyMDQsIDIwNCwgMjA0LCAyMDQsIDIwNCwgMjA0LCAyMDQsIDIwNCwgMjA0LCAy
MDQsIDIwNCwgMjA0LCAyMDQsIDIwNF07CisKK3ZhciBhcmF5QnVmZmVyID0gbnVsbDsKK3ZhciB2
aWV3ID0gbnVsbDsKK3ZhciB2aWV3U3RhcnQgPSAwOwordmFyIHZpZXdMZW5ndGggPSAwOworCitm
dW5jdGlvbiBnZXRFbGVtZW50U2l6ZShmdW5jKQoreworICAgIHN3aXRjaCAoZnVuYykgeworICAg
IGNhc2UgIkludDgiOgorICAgIGNhc2UgIlVpbnQ4IjoKKyAgICAgICAgcmV0dXJuIDE7CisgICAg
Y2FzZSAiSW50MTYiOgorICAgIGNhc2UgIlVpbnQxNiI6CisgICAgICAgIHJldHVybiAyOworICAg
IGNhc2UgIkludDMyIjoKKyAgICBjYXNlICJVaW50MzIiOgorICAgIGNhc2UgIkZsb2F0MzIiOgor
ICAgICAgICByZXR1cm4gNDsKKyAgICBjYXNlICJGbG9hdDY0IjoKKyAgICAgICAgcmV0dXJuIDg7
CisgICAgZGVmYXVsdDoKKyAgICAgICAgZGVidWcoIlNob3VsZCBub3QgcmVhY2hlZCIpOworICAg
IH0KK30KKworZnVuY3Rpb24gY2hlY2tHZXQoZnVuYywgaW5kZXgsIGV4cGVjdGVkLCBsaXR0bGVF
bmRpYW4pCit7CisgICAgdmFyIGV4cHIgPSAidmlldy5nZXQiICsgZnVuYyArICIoIiArIGluZGV4
OworICAgIGlmIChsaXR0bGVFbmRpYW4gIT0gdW5kZWZpbmVkKSB7CisgICAgICAgIGV4cHIgKz0g
IiwgIjsKKyAgICAgICAgZXhwciArPSBsaXR0bGVFbmRpYW4gPyAidHJ1ZSIgOiAiZmFsc2UiOwor
ICAgIH0KKyAgICBleHByICs9ICIpIjsKKyAgICBpZiAoaW5kZXggKyBnZXRFbGVtZW50U2l6ZShm
dW5jKSAtIDEgPCB2aWV3LmJ5dGVMZW5ndGgpCisgICAgICAgIHNob3VsZEJlKGV4cHIsIGV4cGVj
dGVkKTsKKyAgICBlbHNlCisgICAgICAgIHNob3VsZFRocm93KGV4cHIpOworfQorCitmdW5jdGlv
biBjaGVja1NldChmdW5jLCBpbmRleCwgdmFsdWUsIGxpdHRsZUVuZGlhbikKK3sKKyAgICB2YXIg
ZXhwciA9ICJ2aWV3LnNldCIgKyBmdW5jICsgIigiICsgaW5kZXggKyAiLCAiICsgdmFsdWU7Cisg
ICAgaWYgKGxpdHRsZUVuZGlhbiAhPSB1bmRlZmluZWQpIHsKKyAgICAgICAgZXhwciArPSAiLCAi
OworICAgICAgICBleHByICs9IGxpdHRsZUVuZGlhbiA/ICJ0cnVlIiA6ICJmYWxzZSI7CisgICAg
fQorICAgIGV4cHIgKz0gIikiOworICAgIGlmIChpbmRleCArIGdldEVsZW1lbnRTaXplKGZ1bmMp
IC0gMSA8IHZpZXcuYnl0ZUxlbmd0aCkgeworICAgICAgICBzaG91bGRCZVVuZGVmaW5lZChleHBy
KTsKKyAgICAgICAgY2hlY2tHZXQoZnVuYywgaW5kZXgsIHZhbHVlLCBsaXR0bGVFbmRpYW4pOwor
ICAgIH0gZWxzZQorICAgICAgICBzaG91bGRUaHJvdyhleHByKTsKK30KKworZnVuY3Rpb24gdGVz
dChpc1Rlc3RpbmdHZXQsIGZ1bmMsIGluZGV4LCB2YWx1ZSwgbGl0dGxlRW5kaWFuKQoreworICAg
IGlmIChpc1Rlc3RpbmdHZXQpCisgICAgICAgIGNoZWNrR2V0KGZ1bmMsIGluZGV4LCB2YWx1ZSwg
bGl0dGxlRW5kaWFuKTsKKyAgICAgZWxzZQorICAgICAgICBjaGVja1NldChmdW5jLCBpbmRleCwg
dmFsdWUsIGxpdHRsZUVuZGlhbik7Cit9CisKK2Z1bmN0aW9uIGNyZWF0ZURhdGFWaWV3KGFycmF5
LCBmcm9udFBhZGRpbmdOdW0sIGxpdHRsZUVuZGlhbiwgc3RhcnQsIGxlbmd0aCkKK3sKKyAgICBp
ZiAoIWxpdHRsZUVuZGlhbikKKyAgICAgICAgYXJyYXkucmV2ZXJzZSgpOworICAgIHZhciBwYWRk
aW5nQXJyYXkgPSBuZXcgQXJyYXkoZnJvbnRQYWRkaW5nTnVtKTsKKyAgICBhcnJheUJ1ZmZlciA9
IChuZXcgVWludDhBcnJheShwYWRkaW5nQXJyYXkuY29uY2F0KGFycmF5KSkpLmJ1ZmZlcjsKKyAg
ICB2aWV3U3RhcnQgPSAoc3RhcnQgIT0gdW5kZWZpbmVkKSA/IHN0YXJ0IDogMDsKKyAgICB2aWV3
TGVuZ3RoID0gKGxlbmd0aCAhPSB1bmRlZmluZWQpID8gbGVuZ3RoIDogYXJyYXlCdWZmZXIuYnl0
ZUxlbmd0aCAtIHZpZXdTdGFydDsKKyAgICB2aWV3ID0gbmV3IERhdGFWaWV3KGFycmF5QnVmZmVy
LCB2aWV3U3RhcnQsIHZpZXdMZW5ndGgpOworICAgIGlmICghbGl0dGxlRW5kaWFuKQorICAgICAg
ICBhcnJheS5yZXZlcnNlKCk7IC8vIHJlc3RvcmUgdGhlIGFycmF5LgorfQorCitmdW5jdGlvbiBy
dW5JbnRlZ2VyVGVzdENhc2VzKGlzVGVzdGluZ0dldCwgYXJyYXksIHN0YXJ0LCBsZW5ndGgpCit7
CisgICAgY3JlYXRlRGF0YVZpZXcoYXJyYXksIDAsIHRydWUsIHN0YXJ0LCBsZW5ndGgpOworCisg
ICAgdGVzdChpc1Rlc3RpbmdHZXQsICJJbnQ4IiwgMCwgIjAiKTsKKyAgICB0ZXN0KGlzVGVzdGlu
Z0dldCwgIkludDgiLCA4LCAiLTEyOCIpOworICAgIHRlc3QoaXNUZXN0aW5nR2V0LCAiSW50OCIs
IDE1LCAiLTEiKTsKKworICAgIHRlc3QoaXNUZXN0aW5nR2V0LCAiVWludDgiLCAwLCAiMCIpOwor
ICAgIHRlc3QoaXNUZXN0aW5nR2V0LCAiVWludDgiLCA4LCAiMTI4Iik7CisgICAgdGVzdChpc1Rl
c3RpbmdHZXQsICJVaW50OCIsIDE1LCAiMjU1Iik7CisKKyAgICAvLyBMaXR0bGUgZW5kaWFuLgor
ICAgIHRlc3QoaXNUZXN0aW5nR2V0LCAiSW50MTYiLCAwLCAiMjU2IiwgdHJ1ZSk7CisgICAgdGVz
dChpc1Rlc3RpbmdHZXQsICJJbnQxNiIsIDUsICIyNjIxMyIsIHRydWUpOworICAgIHRlc3QoaXNU
ZXN0aW5nR2V0LCAiSW50MTYiLCA5LCAiLTMyMTI3IiwgdHJ1ZSk7CisgICAgdGVzdChpc1Rlc3Rp
bmdHZXQsICJJbnQxNiIsIDE0LCAiLTIiLCB0cnVlKTsKKworICAgIC8vIEJpZyBlbmRpYW4uCisg
ICAgdGVzdChpc1Rlc3RpbmdHZXQsICJJbnQxNiIsIDAsICIxIik7CisgICAgdGVzdChpc1Rlc3Rp
bmdHZXQsICJJbnQxNiIsIDUsICIyNTk1OCIpOworICAgIHRlc3QoaXNUZXN0aW5nR2V0LCAiSW50
MTYiLCA5LCAiLTMyMzgyIik7CisgICAgdGVzdChpc1Rlc3RpbmdHZXQsICJJbnQxNiIsIDE0LCAi
LTI1NyIpOworCisgICAgLy8gTGl0dGxlIGVuZGlhbi4KKyAgICB0ZXN0KGlzVGVzdGluZ0dldCwg
IlVpbnQxNiIsIDAsICIyNTYiLCB0cnVlKTsKKyAgICB0ZXN0KGlzVGVzdGluZ0dldCwgIlVpbnQx
NiIsIDUsICIyNjIxMyIsIHRydWUpOworICAgIHRlc3QoaXNUZXN0aW5nR2V0LCAiVWludDE2Iiwg
OSwgIjMzNDA5IiwgdHJ1ZSk7CisgICAgdGVzdChpc1Rlc3RpbmdHZXQsICJVaW50MTYiLCAxNCwg
IjY1NTM0IiwgdHJ1ZSk7CisKKyAgICAvLyBCaWcgZW5kaWFuLgorICAgIHRlc3QoaXNUZXN0aW5n
R2V0LCAiVWludDE2IiwgMCwgIjEiKTsKKyAgICB0ZXN0KGlzVGVzdGluZ0dldCwgIlVpbnQxNiIs
IDUsICIyNTk1OCIpOworICAgIHRlc3QoaXNUZXN0aW5nR2V0LCAiVWludDE2IiwgOSwgIjMzMTU0
Iik7CisgICAgdGVzdChpc1Rlc3RpbmdHZXQsICJVaW50MTYiLCAxNCwgIjY1Mjc5Iik7CisKKyAg
ICAvLyBMaXR0bGUgZW5kaWFuLgorICAgIHRlc3QoaXNUZXN0aW5nR2V0LCAiSW50MzIiLCAwLCAi
NTA0NjI5NzYiLCB0cnVlKTsKKyAgICB0ZXN0KGlzVGVzdGluZ0dldCwgIkludDMyIiwgMywgIjE3
MTc5MjA3NzEiLCB0cnVlKTsKKyAgICB0ZXN0KGlzVGVzdGluZ0dldCwgIkludDMyIiwgNiwgIi0y
MTIyMjkxMzU0IiwgdHJ1ZSk7CisgICAgdGVzdChpc1Rlc3RpbmdHZXQsICJJbnQzMiIsIDksICIt
NTg0OTAyMzkiLCB0cnVlKTsKKyAgICB0ZXN0KGlzVGVzdGluZ0dldCwgIkludDMyIiwgMTIsICIt
NjYwNTIiLCB0cnVlKTsKKworICAgIC8vIEJpZyBlbmRpYW4uCisgICAgdGVzdChpc1Rlc3RpbmdH
ZXQsICJJbnQzMiIsIDAsICI2NjA1MSIpOworICAgIHRlc3QoaXNUZXN0aW5nR2V0LCAiSW50MzIi
LCAzLCAiNTY5MTEyMDYiKTsKKyAgICB0ZXN0KGlzVGVzdGluZ0dldCwgIkludDMyIiwgNiwgIjE3
MTgwNTkxMzciKTsKKyAgICB0ZXN0KGlzVGVzdGluZ0dldCwgIkludDMyIiwgOSwgIi0yMTIyMTUy
OTY0Iik7CisgICAgdGVzdChpc1Rlc3RpbmdHZXQsICJJbnQzMiIsIDEyLCAiLTUwNDYyOTc3Iik7
CisKKyAgICAvLyBMaXR0bGUgZW5kaWFuLgorICAgIHRlc3QoaXNUZXN0aW5nR2V0LCAiVWludDMy
IiwgMCwgIjUwNDYyOTc2IiwgdHJ1ZSk7CisgICAgdGVzdChpc1Rlc3RpbmdHZXQsICJVaW50MzIi
LCAzLCAiMTcxNzkyMDc3MSIsIHRydWUpOworICAgIHRlc3QoaXNUZXN0aW5nR2V0LCAiVWludDMy
IiwgNiwgIjIxNzI2NzU5NDIiLCB0cnVlKTsKKyAgICB0ZXN0KGlzVGVzdGluZ0dldCwgIlVpbnQz
MiIsIDksICI0MjM2NDc3MDU3IiwgdHJ1ZSk7CisgICAgdGVzdChpc1Rlc3RpbmdHZXQsICJVaW50
MzIiLCAxMiwgIjQyOTQ5MDEyNDQiLCB0cnVlKTsKKworICAgIC8vIEJpZyBlbmRpYW4uCisgICAg
dGVzdChpc1Rlc3RpbmdHZXQsICJVaW50MzIiLCAwLCAiNjYwNTEiKTsKKyAgICB0ZXN0KGlzVGVz
dGluZ0dldCwgIlVpbnQzMiIsIDMsICI1NjkxMTIwNiIpOworICAgIHRlc3QoaXNUZXN0aW5nR2V0
LCAiVWludDMyIiwgNiwgIjE3MTgwNTkxMzciKTsKKyAgICB0ZXN0KGlzVGVzdGluZ0dldCwgIlVp
bnQzMiIsIDksICIyMTcyODE0MzMyIik7CisgICAgdGVzdChpc1Rlc3RpbmdHZXQsICJVaW50MzIi
LCAxMiwgIjQyNDQ1MDQzMTkiKTsKK30KKworZnVuY3Rpb24gdGVzdEZsb2F0KGlzVGVzdGluZ0dl
dCwgZnVuYywgYXJyYXksIHN0YXJ0LCBleHBlY3RlZCkKK3sKKyAgICAvLyBMaXR0bGUgZW5kaWFu
LgorICAgIGNyZWF0ZURhdGFWaWV3KGFycmF5LCAwLCB0cnVlLCBzdGFydCk7CisgICAgdGVzdChp
c1Rlc3RpbmdHZXQsIGZ1bmMsIDAsIGV4cGVjdGVkLCB0cnVlKTsKKyAgICBjcmVhdGVEYXRhVmll
dyhhcnJheSwgMywgdHJ1ZSwgc3RhcnQpOworICAgIHRlc3QoaXNUZXN0aW5nR2V0LCBmdW5jLCAz
LCBleHBlY3RlZCwgdHJ1ZSk7CisgICAgY3JlYXRlRGF0YVZpZXcoYXJyYXksIDcsIHRydWUsIHN0
YXJ0KTsKKyAgICB0ZXN0KGlzVGVzdGluZ0dldCwgZnVuYywgNywgZXhwZWN0ZWQsIHRydWUpOwor
ICAgIGNyZWF0ZURhdGFWaWV3KGFycmF5LCAxMCwgdHJ1ZSwgc3RhcnQpOworICAgIHRlc3QoaXNU
ZXN0aW5nR2V0LCBmdW5jLCAxMCwgZXhwZWN0ZWQsIHRydWUpOworICAgIAorICAgIC8vIEJpZyBl
bmRpYW4uCisgICAgY3JlYXRlRGF0YVZpZXcoYXJyYXksIDAsIGZhbHNlKTsKKyAgICB0ZXN0KGlz
VGVzdGluZ0dldCwgZnVuYywgMCwgZXhwZWN0ZWQsIGZhbHNlKTsKKyAgICBjcmVhdGVEYXRhVmll
dyhhcnJheSwgMywgZmFsc2UpOworICAgIHRlc3QoaXNUZXN0aW5nR2V0LCBmdW5jLCAzLCBleHBl
Y3RlZCwgZmFsc2UpOworICAgIGNyZWF0ZURhdGFWaWV3KGFycmF5LCA3LCBmYWxzZSk7CisgICAg
dGVzdChpc1Rlc3RpbmdHZXQsIGZ1bmMsIDcsIGV4cGVjdGVkLCBmYWxzZSk7CisgICAgY3JlYXRl
RGF0YVZpZXcoYXJyYXksIDEwLCBmYWxzZSk7CisgICAgdGVzdChpc1Rlc3RpbmdHZXQsIGZ1bmMs
IDEwLCBleHBlY3RlZCwgZmFsc2UpOworfQorCitmdW5jdGlvbiBydW5GbG9hdFRlc3RDYXNlcyhp
c1Rlc3RpbmdHZXQsIHN0YXJ0KQoreworICAgIHRlc3RGbG9hdChpc1Rlc3RpbmdHZXQsICJGbG9h
dDMyIiwgaXNUZXN0aW5nR2V0ID8gWzAsIDAsIDMyLCA2NV0gOiBlbXB0eUFycmF5LCBzdGFydCwg
IjEwIik7CisgICAgdGVzdEZsb2F0KGlzVGVzdGluZ0dldCwgIkZsb2F0MzIiLCBpc1Rlc3RpbmdH
ZXQgPyBbMTY0LCAxMTIsIDE1NywgNjNdIDogZW1wdHlBcnJheSwgc3RhcnQsICIxLjIzMDAwMDAx
OTA3MzQ4NjMiKTsKKyAgICB0ZXN0RmxvYXQoaXNUZXN0aW5nR2V0LCAiRmxvYXQzMiIsIGlzVGVz
dGluZ0dldCA/IFs5NSwgNTMsIDUwLCAxOTldIDogZW1wdHlBcnJheSwgc3RhcnQsICItNDU2MjEu
MzcxMDkzNzUiKTsKKyAgICB0ZXN0RmxvYXQoaXNUZXN0aW5nR2V0LCAiRmxvYXQzMiIsIGlzVGVz
dGluZ0dldCA/IFsyNTUsIDI1NSwgMjU1LCAxMjddIDogZW1wdHlBcnJheSwgc3RhcnQsICJOYU4i
KTsKKyAgICB0ZXN0RmxvYXQoaXNUZXN0aW5nR2V0LCAiRmxvYXQzMiIsIGlzVGVzdGluZ0dldCA/
IFsyNTUsIDI1NSwgMjU1LCAyNTVdIDogZW1wdHlBcnJheSwgc3RhcnQsICItTmFOIik7CisKKyAg
ICB0ZXN0RmxvYXQoaXNUZXN0aW5nR2V0LCAiRmxvYXQ2NCIsIGlzVGVzdGluZ0dldCA/IFswLCAw
LCAwLCAwLCAwLCAwLCAzNiwgNjRdIDogZW1wdHlBcnJheSwgc3RhcnQsICIxMCIpOworICAgIHRl
c3RGbG9hdChpc1Rlc3RpbmdHZXQsICJGbG9hdDY0IiwgaXNUZXN0aW5nR2V0ID8gWzE3NCwgNzEs
IDIyNSwgMTIyLCAyMCwgMTc0LCAyNDMsIDYzXSA6IGVtcHR5QXJyYXksIHN0YXJ0LCAiMS4yMyIp
OworICAgIHRlc3RGbG9hdChpc1Rlc3RpbmdHZXQsICJGbG9hdDY0IiwgaXNUZXN0aW5nR2V0ID8g
WzE4MSwgNTUsIDI0OCwgMzAsIDI0MiwgMTc5LCA4NywgMTkzXSA6IGVtcHR5QXJyYXksIHN0YXJ0
LCAiLTYyMTM1NzYuNDgzOSIpOworICAgIHRlc3RGbG9hdChpc1Rlc3RpbmdHZXQsICJGbG9hdDY0
IiwgaXNUZXN0aW5nR2V0ID8gWzI1NSwgMjU1LCAyNTUsIDI1NSwgMjU1LCAyNTUsIDI1NSwgMTI3
XSA6IGVtcHR5QXJyYXksIHN0YXJ0LCAiTmFOIik7CisgICAgdGVzdEZsb2F0KGlzVGVzdGluZ0dl
dCwgIkZsb2F0NjQiLCBpc1Rlc3RpbmdHZXQgPyBbMjU1LCAyNTUsIDI1NSwgMjU1LCAyNTUsIDI1
NSwgMjU1LCAyNTVdIDogZW1wdHlBcnJheSwgc3RhcnQsICItTmFOIik7Cit9CisKK2Z1bmN0aW9u
IHJ1bkNvbnN0cnVjdG9yVGVzdHMoKQoreworICAgIGFyYXlCdWZmZXIgPSAobmV3IFVpbnQ4QXJy
YXkoWzEsIDJdKSkuYnVmZmVyOworCisgICAgZGVidWcoIiIpOworICAgIGRlYnVnKCJUZXN0IGZv
ciBjb25zdHJ1Y3RvciB0YWtpbmcgMSBhcmd1bWVudCIpOworICAgIHNob3VsZEJlRGVmaW5lZCgi
dmlldyA9IG5ldyBEYXRhVmlldyhhcmF5QnVmZmVyKSIpOworICAgIHNob3VsZEJlKCJ2aWV3LmJ5
dGVPZmZzZXQiLCAiMCIpOworICAgIHNob3VsZEJlKCJ2aWV3LmJ5dGVMZW5ndGgiLCAiMiIpOwor
CisgICAgZGVidWcoIiIpOworICAgIGRlYnVnKCJUZXN0IGZvciBjb25zdHJ1Y3RvciB0YWtpbmcg
MiBhcmd1bWVudHMiKTsKKyAgICBzaG91bGRCZURlZmluZWQoInZpZXcgPSBuZXcgRGF0YVZpZXco
YXJheUJ1ZmZlciwgMSkiKTsKKyAgICBzaG91bGRCZSgidmlldy5ieXRlT2Zmc2V0IiwgIjEiKTsK
KyAgICBzaG91bGRCZSgidmlldy5ieXRlTGVuZ3RoIiwgIjEiKTsKKworICAgIGRlYnVnKCIiKTsK
KyAgICBkZWJ1ZygiVGVzdCBmb3IgY29uc3RydWN0b3IgdGFraW5nIDMgYXJndW1lbnRzIik7Cisg
ICAgc2hvdWxkQmVEZWZpbmVkKCJ2aWV3ID0gbmV3IERhdGFWaWV3KGFyYXlCdWZmZXIsIDAsIDEp
Iik7CisgICAgc2hvdWxkQmUoInZpZXcuYnl0ZU9mZnNldCIsICIwIik7CisgICAgc2hvdWxkQmUo
InZpZXcuYnl0ZUxlbmd0aCIsICIxIik7CisKKyAgICBkZWJ1ZygiIik7CisgICAgZGVidWcoIlRl
c3QgZm9yIGNvbnN0cnVjdG9yIHRocm93aW5nIGV4Y2VwdGlvbiIpOworICAgIHNob3VsZFRocm93
KCJ2aWV3ID0gbmV3IERhdGFWaWV3KGFyYXlCdWZmZXIsIDAsIDMpIik7CisgICAgc2hvdWxkVGhy
b3coInZpZXcgPSBuZXcgRGF0YVZpZXcoYXJheUJ1ZmZlciwgMSwgMikiKTsKKyAgICBzaG91bGRU
aHJvdygidmlldyA9IG5ldyBEYXRhVmlldyhhcmF5QnVmZmVyLCAyLCAxKSIpOworfQorCitmdW5j
dGlvbiBydW5HZXRUZXN0cygpCit7CisgICAgZGVidWcoIiIpOworICAgIGRlYnVnKCJUZXN0IGZv
ciBnZXQgbWV0aG9kcyB0aGF0IHdvcmsiKTsKKyAgICBydW5JbnRlZ2VyVGVzdENhc2VzKHRydWUs
IGludEFycmF5MSwgMCwgMTYpOworICAgIHJ1bkZsb2F0VGVzdENhc2VzKHRydWUsIDApOworCisg
ICAgZGVidWcoIiIpOworICAgIGRlYnVnKCJUZXN0IGZvciBnZXQgbWV0aG9kcyB0aGF0IG1pZ2h0
IHJlYWQgYmV5b3VuZCByYW5nZSIpOworICAgIHJ1bkludGVnZXJUZXN0Q2FzZXModHJ1ZSwgaW50
QXJyYXkyLCAzLCAyKTsKKyAgICBydW5GbG9hdFRlc3RDYXNlcyh0cnVlLCAzKTsKKworICAgIGRl
YnVnKCIiKTsKKyAgICBkZWJ1ZygiVGVzdCBmb3Igd3JvbmcgYXJndW1lbnRzIHBhc3NlZCB0byBn
ZXQgbWV0aG9kcyIpOworICAgIHZpZXcgPSBuZXcgRGF0YVZpZXcoKG5ldyBVaW50OEFycmF5KFsx
LCAyXSkpLmJ1ZmZlcik7CisgICAgc2hvdWxkVGhyb3coInZpZXcuZ2V0SW50OCgpIik7CisgICAg
c2hvdWxkVGhyb3coInZpZXcuZ2V0VWludDgoKSIpOworICAgIHNob3VsZFRocm93KCJ2aWV3Lmdl
dEludDE2KCkiKTsKKyAgICBzaG91bGRUaHJvdygidmlldy5nZXRVaW50MTYoKSIpOworICAgIHNo
b3VsZFRocm93KCJ2aWV3LmdldEludDMyKCkiKTsKKyAgICBzaG91bGRUaHJvdygidmlldy5nZXRV
aW50MzIoKSIpOworICAgIHNob3VsZFRocm93KCJ2aWV3LmdldEZsb2F0MzIoKSIpOworICAgIHNo
b3VsZFRocm93KCJ2aWV3LmdldEZsb2F0NjQoKSIpOworfQorCitmdW5jdGlvbiBydW5TZXRUZXN0
cygpCit7CisgICAgZGVidWcoIiIpOworICAgIGRlYnVnKCJUZXN0IGZvciBzZXQgbWV0aG9kcyB0
aGF0IHdvcmsiKTsKKyAgICBydW5JbnRlZ2VyVGVzdENhc2VzKGZhbHNlLCBlbXB0eUFycmF5LCAw
LCAxNik7CisgICAgcnVuRmxvYXRUZXN0Q2FzZXMoZmFsc2UpOworCisgICAgZGVidWcoIiIpOwor
ICAgIGRlYnVnKCJUZXN0IGZvciBzZXQgbWV0aG9kcyB0aGF0IG1pZ2h0IHdyaXRlIGJleW9uZCB0
aGUgcmFuZ2UiKTsKKyAgICBydW5JbnRlZ2VyVGVzdENhc2VzKGZhbHNlLCBlbXB0eUFycmF5LCAz
LCAyKTsKKyAgICBydW5GbG9hdFRlc3RDYXNlcyhmYWxzZSwgNyk7CisKKyAgICBkZWJ1ZygiIik7
CisgICAgZGVidWcoIlRlc3QgZm9yIHdyb25nIGFyZ3VtZW50cyBwYXNzZWQgdG8gZ2V0IG1ldGhv
ZHMiKTsKKyAgICB2aWV3ID0gbmV3IERhdGFWaWV3KChuZXcgVWludDhBcnJheShbMSwgMl0pKS5i
dWZmZXIpOworICAgIHNob3VsZFRocm93KCJ2aWV3LnNldEludDgoKSIpOworICAgIHNob3VsZFRo
cm93KCJ2aWV3LnNldFVpbnQ4KCkiKTsKKyAgICBzaG91bGRUaHJvdygidmlldy5zZXRJbnQxNigp
Iik7CisgICAgc2hvdWxkVGhyb3coInZpZXcuc2V0VWludDE2KCkiKTsKKyAgICBzaG91bGRUaHJv
dygidmlldy5zZXRJbnQzMigpIik7CisgICAgc2hvdWxkVGhyb3coInZpZXcuc2V0VWludDMyKCki
KTsKKyAgICBzaG91bGRUaHJvdygidmlldy5zZXRGbG9hdDMyKCkiKTsKKyAgICBzaG91bGRUaHJv
dygidmlldy5zZXRGbG9hdDY0KCkiKTsKKyAgICBzaG91bGRUaHJvdygidmlldy5zZXRJbnQ4KDEp
Iik7CisgICAgc2hvdWxkVGhyb3coInZpZXcuc2V0VWludDgoMSkiKTsKKyAgICBzaG91bGRUaHJv
dygidmlldy5zZXRJbnQxNigxKSIpOworICAgIHNob3VsZFRocm93KCJ2aWV3LnNldFVpbnQxNigx
KSIpOworICAgIHNob3VsZFRocm93KCJ2aWV3LnNldEludDMyKDEpIik7CisgICAgc2hvdWxkVGhy
b3coInZpZXcuc2V0VWludDMyKDEpIik7CisgICAgc2hvdWxkVGhyb3coInZpZXcuc2V0RmxvYXQz
MigxKSIpOworICAgIHNob3VsZFRocm93KCJ2aWV3LnNldEZsb2F0NjQoMSkiKTsKK30KKworZnVu
Y3Rpb24gcnVuSW5kZXhpbmdUZXN0cygpCit7CisgICAgZGVidWcoIiIpOworICAgIGRlYnVnKCJU
ZXN0IGZvciBpbmRleGluZyB0aGF0IHNob3VsZCBub3Qgd29yayIpOworICAgIHZpZXcgPSBuZXcg
RGF0YVZpZXcoKG5ldyBVaW50OEFycmF5KFsxLCAyXSkpLmJ1ZmZlcik7CisgICAgc2hvdWxkQmVV
bmRlZmluZWQoInZpZXdbMF0iKTsKKyAgICBzaG91bGRCZURlZmluZWQoInZpZXdbMF0gPSAzIik7
CisgICAgc2hvdWxkQmUoInZpZXcuZ2V0VWludDgoMCkiLCAiMSIpOworfQorCitydW5Db25zdHJ1
Y3RvclRlc3RzKCk7CitydW5HZXRUZXN0cygpOworcnVuU2V0VGVzdHMoKTsKK3J1bkluZGV4aW5n
VGVzdHMoKTsKK3N1Y2Nlc3NmdWxseVBhcnNlZCA9IHRydWU7Cis8L3NjcmlwdD4KKworPHNjcmlw
dCBzcmM9Ii4uLy4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9i
b2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vV2luZG93L3Nj
cmlwdC10ZXN0cy93aW5kb3ctcHJvcGVydHktZGVzY3JpcHRvcnMuanMgYi9MYXlvdXRUZXN0cy9m
YXN0L2RvbS9XaW5kb3cvc2NyaXB0LXRlc3RzL3dpbmRvdy1wcm9wZXJ0eS1kZXNjcmlwdG9ycy5q
cwppbmRleCAxNDFiNjA4Li4xYTc5NjkyIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2Rv
bS9XaW5kb3cvc2NyaXB0LXRlc3RzL3dpbmRvdy1wcm9wZXJ0eS1kZXNjcmlwdG9ycy5qcworKysg
Yi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9XaW5kb3cvc2NyaXB0LXRlc3RzL3dpbmRvdy1wcm9wZXJ0
eS1kZXNjcmlwdG9ycy5qcwpAQCAtMjEsNiArMjEsNyBAQCB2YXIgX19za2lwX18gPSB7CiAgICAg
Ly8gSWdub3JlIHRoZXNlIHByb3BlcnRpZXMgYmVjYXVzZSB0aGV5IGRvIG5vdCBleGlzdCBpbiBh
bGwgaW1wbGVtZW50YXRpb25zLiBUaGV5IHdpbGwgYmUgdGVzdGVkIHNlcGFyYXRlbHkKICAgICAi
V2ViR0xSZW5kZXJpbmdDb250ZXh0IiA6IDEsCiAgICAgIkFycmF5QnVmZmVyIiA6IDEsCisgICAg
IkRhdGFWaWV3IiA6IDEsCiAgICAgIkludDhBcnJheSIgOiAxLAogICAgICJVaW50OEFycmF5IiA6
IDEsCiAgICAgIkludDE2QXJyYXkiIDogMSwKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3Qv
ZG9tL1dpbmRvdy93aW5kb3ctcHJvcGVydGllcy5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20v
V2luZG93L3dpbmRvdy1wcm9wZXJ0aWVzLmh0bWwKaW5kZXggZDU5NzQ4Mi4uZmExZWI1NCAxMDA2
NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vV2luZG93L3dpbmRvdy1wcm9wZXJ0aWVzLmh0
bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vV2luZG93L3dpbmRvdy1wcm9wZXJ0aWVzLmh0
bWwKQEAgLTYzLDYgKzYzLDcgQEAgdmFyIF9fc2tpcF9fID0gewogICAgIC8vIElnbm9yZSB0aGVz
ZSBwcm9wZXJ0aWVzIGJlY2F1c2UgdGhleSBkbyBub3QgZXhpc3QgaW4gYWxsIGltcGxlbWVudGF0
aW9ucy4gVGhleSB3aWxsIGJlIHRlc3RlZCBzZXBhcmF0ZWx5CiAgICAgIndpbmRvdy5XZWJHTFJl
bmRlcmluZ0NvbnRleHQiIDogMSwgCiAgICAgIndpbmRvdy5BcnJheUJ1ZmZlciIgOiAxLAorICAg
ICJ3aW5kb3cuRGF0YVZpZXciIDogMSwKICAgICAid2luZG93LkludDhBcnJheSIgOiAxLAogICAg
ICJ3aW5kb3cuVWludDhBcnJheSIgOiAxLAogICAgICJ3aW5kb3cuSW50MTZBcnJheSIgOiAxLApk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vc2NyaXB0LXRlc3RzL3Byb3RvdHlwZS1p
bmhlcml0YW5jZS0yLmpzIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vc2NyaXB0LXRlc3RzL3Byb3Rv
dHlwZS1pbmhlcml0YW5jZS0yLmpzCmluZGV4IDNjNmQxMjIuLjIzMDkxMDYgMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL2Zhc3QvZG9tL3NjcmlwdC10ZXN0cy9wcm90b3R5cGUtaW5oZXJpdGFuY2Ut
Mi5qcworKysgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9zY3JpcHQtdGVzdHMvcHJvdG90eXBlLWlu
aGVyaXRhbmNlLTIuanMKQEAgLTYxLDYgKzYxLDcgQEAgZnVuY3Rpb24gY29uc3RydWN0b3JOYW1l
c0ZvcldpbmRvdyhnbG9iYWxPYmplY3QpCiAgICAgICAgIC8vIElnbm9yZSB0aGVzZSBwcm9wZXJ0
aWVzIGJlY2F1c2UgdGhleSBkbyBub3QgZXhpc3QgaW4gYWxsIGltcGxlbWVudGF0aW9ucy4gVGhl
eSB3aWxsIGJlIHRlc3RlZCBzZXBhcmF0ZWx5CiAgICAgICAgIGlmICh0eXBlID09ICJXZWJHTFJl
bmRlcmluZ0NvbnRleHRDb25zdHJ1Y3RvciIgfHwgCiAgICAgICAgICAgICB0eXBlID09ICJBcnJh
eUJ1ZmZlckNvbnN0cnVjdG9yIiB8fAorICAgICAgICAgICAgdHlwZSA9PSAiRGF0YVZpZXdDb25z
dHJ1Y3RvciIgfHwKICAgICAgICAgICAgIHR5cGUgPT0iRmxvYXQzMkFycmF5Q29uc3RydWN0b3Ii
IHx8CiAgICAgICAgICAgICB0eXBlID09IkludDhBcnJheUNvbnN0cnVjdG9yIiB8fAogICAgICAg
ICAgICAgdHlwZSA9PSJJbnQxNkFycmF5Q29uc3RydWN0b3IiIHx8CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9mYXN0L2RvbS9zY3JpcHQtdGVzdHMvcHJvdG90eXBlLWluaGVyaXRhbmNlLmpzIGIv
TGF5b3V0VGVzdHMvZmFzdC9kb20vc2NyaXB0LXRlc3RzL3Byb3RvdHlwZS1pbmhlcml0YW5jZS5q
cwppbmRleCA4OGYyNzkzLi44MjJjY2IzIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2Rv
bS9zY3JpcHQtdGVzdHMvcHJvdG90eXBlLWluaGVyaXRhbmNlLmpzCisrKyBiL0xheW91dFRlc3Rz
L2Zhc3QvZG9tL3NjcmlwdC10ZXN0cy9wcm90b3R5cGUtaW5oZXJpdGFuY2UuanMKQEAgLTE3LDcg
KzE3LDcgQEAgdmFyIHNraXBwZWRQcm9wZXJ0aWVzID0gWwogICAgICJ3ZWJraXRQZXJmb3JtYW5j
ZSIsCiAgICAgIldlYkdMUmVuZGVyaW5nQ29udGV4dCIsCiAgICAgIkFycmF5QnVmZmVyIiwKLSAg
ICAiSW50OEFycmF5IiwgIlVpbnQ4QXJyYXkiLCAiSW50MTZBcnJheSIsICJVaW50MTZBcnJheSIs
ICJJbnQzMkFycmF5IiwgIlVpbnQzMkFycmF5IiwgIkZsb2F0MzJBcnJheSIsCisgICAgIkRhdGFW
aWV3IiwgIkludDhBcnJheSIsICJVaW50OEFycmF5IiwgIkludDE2QXJyYXkiLCAiVWludDE2QXJy
YXkiLCAiSW50MzJBcnJheSIsICJVaW50MzJBcnJheSIsICJGbG9hdDMyQXJyYXkiLAogICAgICJG
aWxlRXJyb3IiLCAiRmlsZVJlYWRlciIsICJyZXF1ZXN0RmlsZVN5c3RlbSIsCiAgICAgImluZGV4
ZWREQiIsICJJREJLZXlSYW5nZSIsICJJREJDdXJzb3IiLCAiSURCRGF0YWJhc2UiLCAiSURCRGF0
YWJhc2VFcnJvciIsICJJREJEYXRhYmFzZUV4Y2VwdGlvbiIsICJJREJFcnJvckV2ZW50IiwgIklE
QkV2ZW50IiwgIklEQkZhY3RvcnkiLCAiSURCSW5kZXgiLCAiSURCT2JqZWN0U3RvcmUiLCAiSURC
UmVxdWVzdCIsICJJREJTdWNjZXNzRXZlbnQiLCAiSURCVHJhbnNhY3Rpb24iLAogICAgICJzaG93
TW9kYWxEaWFsb2ciLApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9qcy9zY3JpcHQtdGVz
dHMvZ2xvYmFsLWNvbnN0cnVjdG9ycy5qcyBiL0xheW91dFRlc3RzL2Zhc3QvanMvc2NyaXB0LXRl
c3RzL2dsb2JhbC1jb25zdHJ1Y3RvcnMuanMKaW5kZXggMDNlZjBkZi4uZDZjMTVlNSAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9qcy9zY3JpcHQtdGVzdHMvZ2xvYmFsLWNvbnN0cnVjdG9y
cy5qcworKysgYi9MYXlvdXRUZXN0cy9mYXN0L2pzL3NjcmlwdC10ZXN0cy9nbG9iYWwtY29uc3Ry
dWN0b3JzLmpzCkBAIC0xOSw2ICsxOSw3IEBAIGZvciAodmFyIHggaW4gY29uc3RydWN0b3JOYW1l
cykgewogICAgIC8vIElnbm9yZSB0aGVzZSBwcm9wZXJ0aWVzIGJlY2F1c2UgdGhleSBkbyBub3Qg
ZXhpc3QgaW4gYWxsIGltcGxlbWVudGF0aW9ucy4gVGhleSB3aWxsIGJlIHRlc3RlZCBzZXBhcmF0
ZWx5CiAgICAgaWYgKG5hbWUgPT0gIldlYkdMUmVuZGVyaW5nQ29udGV4dCIgfHwKICAgICAgICAg
bmFtZSA9PSAiQXJyYXlCdWZmZXIiIHx8CisgICAgICAgIG5hbWUgPT0gIkRhdGFWaWV3IiB8fAog
ICAgICAgICBuYW1lID09ICJJbnQ4QXJyYXkiIHx8CiAgICAgICAgIG5hbWUgPT0gIlVpbnQ4QXJy
YXkiIHx8CiAgICAgICAgIG5hbWUgPT0gIkludDE2QXJyYXkiIHx8CmRpZmYgLS1naXQgYS9XZWJD
b3JlL0NNYWtlTGlzdHMudHh0IGIvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAppbmRleCA1OGQ4MDY2
Li41NGRkNmRmIDEwMDY0NAotLS0gYS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CisrKyBiL1dlYkNv
cmUvQ01ha2VMaXN0cy50eHQKQEAgLTI5Myw2ICsyOTMsNyBAQCBTRVQoV2ViQ29yZV9JRExfRklM
RVMKICAgICBodG1sL2NhbnZhcy9DYW52YXNQYXR0ZXJuLmlkbAogICAgIGh0bWwvY2FudmFzL0Nh
bnZhc1JlbmRlcmluZ0NvbnRleHQyRC5pZGwKICAgICBodG1sL2NhbnZhcy9DYW52YXNSZW5kZXJp
bmdDb250ZXh0LmlkbAorICAgIGh0bWwvY2FudmFzL0RhdGFWaWV3LmlkbAogICAgIGh0bWwvY2Fu
dmFzL0Zsb2F0MzJBcnJheS5pZGwKICAgICBodG1sL2NhbnZhcy9JbnQxNkFycmF5LmlkbAogICAg
IGh0bWwvY2FudmFzL0ludDMyQXJyYXkuaWRsCmRpZmYgLS1naXQgYS9XZWJDb3JlL0NoYW5nZUxv
ZyBiL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IGQ5NWNhYTAuLjZjNjgzZmQgMTAwNjQ0Ci0tLSBh
L1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNTIg
QEAKKzIwMTAtMTEtMjQgIEppYW4gTGkgIDxqaWFubGlAY2hyb21pdW0ub3JnPgorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEltcGxlbWVudCBEYXRhVmll
dyBpbnRlcmZhY2UgZnJvbSBUeXBlZCBBcnJheSBzcGVjaWZpY2F0aW9uCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00NjU0MQorCisgICAgICAgIFRlc3Q6
IGZhc3QvY2FudmFzL3dlYmdsL2RhdGEtdmlldy10ZXN0Lmh0bWwKKworICAgICAgICAqIENNYWtl
TGlzdHMudHh0OgorICAgICAgICAqIERlcml2ZWRTb3VyY2VzLm1ha2U6CisgICAgICAgICogR05V
bWFrZWZpbGUuYW06CisgICAgICAgICogV2ViQ29yZS5neXBpOgorICAgICAgICAqIFdlYkNvcmUu
cHJpOgorICAgICAgICAqIFdlYkNvcmUucHJvOgorICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBiaW5kaW5ncy9nZW5lcmljL1J1bnRpbWVFbmFi
bGVkRmVhdHVyZXMuaDoKKyAgICAgICAgKFdlYkNvcmU6OlJ1bnRpbWVFbmFibGVkRmVhdHVyZXM6
OmRhdGFWaWV3RW5hYmxlZCk6CisgICAgICAgICogYmluZGluZ3MvanMvSlNBcnJheUJ1ZmZlclZp
ZXdIZWxwZXIuaDoKKyAgICAgICAgKFdlYkNvcmU6OmNvbnN0cnVjdEFycmF5QnVmZmVyVmlld1dp
dGhBcnJheUJ1ZmZlckFyZ3VtZW50KToKKyAgICAgICAgKFdlYkNvcmU6OmNvbnN0cnVjdEFycmF5
QnVmZmVyVmlldyk6CisgICAgICAgICogYmluZGluZ3MvanMvSlNET01XaW5kb3dDdXN0b20uY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6SlNET01XaW5kb3c6OmRhdGFWaWV3KToKKyAgICAgICAgKiBi
aW5kaW5ncy9qcy9KU0RhdGFWaWV3Q3VzdG9tLmNwcDogQWRkZWQuCisgICAgICAgICogYmluZGlu
Z3MvanMvSlNGbG9hdDMyQXJyYXlDdXN0b20uY3BwOgorICAgICAgICAoV2ViQ29yZTo6SlNGbG9h
dDMyQXJyYXlDb25zdHJ1Y3Rvcjo6Y29uc3RydWN0SlNGbG9hdDMyQXJyYXkpOgorICAgICAgICAq
IGJpbmRpbmdzL2pzL0pTSW50MTZBcnJheUN1c3RvbS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpK
U0ludDE2QXJyYXlDb25zdHJ1Y3Rvcjo6Y29uc3RydWN0SlNJbnQxNkFycmF5KToKKyAgICAgICAg
KiBiaW5kaW5ncy9qcy9KU0ludDMyQXJyYXlDdXN0b20uY3BwOgorICAgICAgICAoV2ViQ29yZTo6
SlNJbnQzMkFycmF5Q29uc3RydWN0b3I6OmNvbnN0cnVjdEpTSW50MzJBcnJheSk6CisgICAgICAg
ICogYmluZGluZ3MvanMvSlNJbnQ4QXJyYXlDdXN0b20uY3BwOgorICAgICAgICAoV2ViQ29yZTo6
SlNJbnQ4QXJyYXlDb25zdHJ1Y3Rvcjo6Y29uc3RydWN0SlNJbnQ4QXJyYXkpOgorICAgICAgICAq
IGJpbmRpbmdzL2pzL0pTVWludDE2QXJyYXlDdXN0b20uY3BwOgorICAgICAgICAoV2ViQ29yZTo6
SlNVaW50MTZBcnJheUNvbnN0cnVjdG9yOjpjb25zdHJ1Y3RKU1VpbnQxNkFycmF5KToKKyAgICAg
ICAgKiBiaW5kaW5ncy9qcy9KU1VpbnQzMkFycmF5Q3VzdG9tLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkpTVWludDMyQXJyYXlDb25zdHJ1Y3Rvcjo6Y29uc3RydWN0SlNVaW50MzJBcnJheSk6Cisg
ICAgICAgICogYmluZGluZ3MvanMvSlNVaW50OEFycmF5Q3VzdG9tLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OkpTVWludDhBcnJheUNvbnN0cnVjdG9yOjpjb25zdHJ1Y3RKU1VpbnQ4QXJyYXkpOgor
ICAgICAgICAqIGJpbmRpbmdzL3Y4L2N1c3RvbS9WOEFycmF5QnVmZmVyVmlld0N1c3RvbS5oOgor
ICAgICAgICAoV2ViQ29yZTo6Y29uc3RydWN0V2ViR0xBcnJheVdpdGhBcnJheUJ1ZmZlckFyZ3Vt
ZW50KToKKyAgICAgICAgKFdlYkNvcmU6OmNvbnN0cnVjdFdlYkdMQXJyYXkpOgorICAgICAgICAq
IGJpbmRpbmdzL3Y4L2N1c3RvbS9WOERhdGFWaWV3Q3VzdG9tLmNwcDogQWRkZWQuCisgICAgICAg
ICogaHRtbC9jYW52YXMvQXJyYXlCdWZmZXJWaWV3Lmg6CisgICAgICAgIChXZWJDb3JlOjpBcnJh
eUJ1ZmZlclZpZXc6OmlzRGF0YVZpZXcpOgorICAgICAgICAqIGh0bWwvY2FudmFzL0RhdGFWaWV3
LmNwcDogQWRkZWQuCisgICAgICAgICogaHRtbC9jYW52YXMvRGF0YVZpZXcuaDogQWRkZWQuCisg
ICAgICAgICogaHRtbC9jYW52YXMvRGF0YVZpZXcuaWRsOiBBZGRlZC4KKyAgICAgICAgKiBwYWdl
L0RPTVdpbmRvdy5pZGw6CisKIDIwMTAtMTEtMjQgIE5pY29sYXMgRHVmcmVzbmUgIDxuaWNvbGFz
LmR1ZnJlc25lQGNvbGxhYm9yYS5jby51az4KIAogICAgICAgICBSZXZpZXdlZCBieSBNYXJ0aW4g
Um9iaW5zb24uCmRpZmYgLS1naXQgYS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UgYi9XZWJD
b3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UKaW5kZXggYzJhMTVmNy4uN2JmY2YxNCAxMDA2NDQKLS0t
IGEvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtlCisrKyBiL1dlYkNvcmUvRGVyaXZlZFNvdXJj
ZXMubWFrZQpAQCAtNzYsNiArNzYsNyBAQCBET01fQ0xBU1NFUyA9IFwKICAgICBXZWJHTEFjdGl2
ZUluZm8gXAogICAgIEFycmF5QnVmZmVyVmlldyBcCiAgICAgQXJyYXlCdWZmZXIgXAorICAgIERh
dGFWaWV3IFwKICAgICBXZWJHTEJ1ZmZlciBcCiAgICAgSW50OEFycmF5IFwKICAgICBXZWJHTENv
bnRleHRBdHRyaWJ1dGVzIFwKZGlmZiAtLWdpdCBhL1dlYkNvcmUvR05VbWFrZWZpbGUuYW0gYi9X
ZWJDb3JlL0dOVW1ha2VmaWxlLmFtCmluZGV4IGZlYWYzNjMuLjM3YzI1NjcgMTAwNjQ0Ci0tLSBh
L1dlYkNvcmUvR05VbWFrZWZpbGUuYW0KKysrIGIvV2ViQ29yZS9HTlVtYWtlZmlsZS5hbQpAQCAt
MTg2LDYgKzE4Niw4IEBAIHdlYmNvcmVfYnVpbHRfc291cmNlcyArPSBcCiAJRGVyaXZlZFNvdXJj
ZXMvV2ViQ29yZS9KU0RhdGFHcmlkQ29sdW1uLmggXAogCURlcml2ZWRTb3VyY2VzL1dlYkNvcmUv
SlNEYXRhR3JpZENvbHVtbkxpc3QuY3BwIFwKIAlEZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTRGF0
YUdyaWRDb2x1bW5MaXN0LmggXAorCURlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNEYXRhVmlldy5j
cHAgXAorCURlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNEYXRhVmlldy5oIFwKIAlEZXJpdmVkU291
cmNlcy9XZWJDb3JlL0pTRGVkaWNhdGVkV29ya2VyQ29udGV4dC5jcHAgXAogCURlcml2ZWRTb3Vy
Y2VzL1dlYkNvcmUvSlNEZWRpY2F0ZWRXb3JrZXJDb250ZXh0LmggXAogCURlcml2ZWRTb3VyY2Vz
L1dlYkNvcmUvSlNEZXZpY2VNb3Rpb25FdmVudC5jcHAgXApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9X
ZWJDb3JlLmd5cGkgYi9XZWJDb3JlL1dlYkNvcmUuZ3lwaQppbmRleCAyYzgxN2NiLi40NjdmZWM0
IDEwMDY0NAotLS0gYS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQorKysgYi9XZWJDb3JlL1dlYkNvcmUu
Z3lwaQpAQCAtMjA3LDYgKzIwNyw3IEBACiAgICAgICAgICAgICAnaHRtbC9jYW52YXMvQ2FudmFz
UGl4ZWxBcnJheS5pZGwnLAogICAgICAgICAgICAgJ2h0bWwvY2FudmFzL0NhbnZhc1JlbmRlcmlu
Z0NvbnRleHQuaWRsJywKICAgICAgICAgICAgICdodG1sL2NhbnZhcy9DYW52YXNSZW5kZXJpbmdD
b250ZXh0MkQuaWRsJywKKyAgICAgICAgICAgICdodG1sL2NhbnZhcy9EYXRhVmlldy5pZGwnLAog
ICAgICAgICAgICAgJ2h0bWwvY2FudmFzL0Zsb2F0MzJBcnJheS5pZGwnLAogICAgICAgICAgICAg
J2h0bWwvY2FudmFzL0ludDE2QXJyYXkuaWRsJywKICAgICAgICAgICAgICdodG1sL2NhbnZhcy9J
bnQzMkFycmF5LmlkbCcsCkBAIC03NDcsNiArNzQ4LDggQEAKICAgICAgICAgICAgICdiaW5kaW5n
cy92OC9jdXN0b20vVjhDYW52YXNQaXhlbEFycmF5Q3VzdG9tLmNwcCcsCiAgICAgICAgICAgICAn
YmluZGluZ3MvdjgvY3VzdG9tL1Y4QXJyYXlCdWZmZXJWaWV3Q3VzdG9tLmgnLAogICAgICAgICAg
ICAgJ2JpbmRpbmdzL3Y4L2N1c3RvbS9WOEFycmF5QnVmZmVyQ3VzdG9tLmNwcCcsCisgICAgICAg
ICAgICAnYmluZGluZ3MvdjgvY3VzdG9tL1Y4RGF0YVZpZXdDdXN0b20uY3BwJywKKyAgICAgICAg
ICAgICdiaW5kaW5ncy92OC9jdXN0b20vVjhEYXRhVmlld0N1c3RvbS5oJywKICAgICAgICAgICAg
ICdiaW5kaW5ncy92OC9jdXN0b20vVjhJbnQ4QXJyYXlDdXN0b20uY3BwJywKICAgICAgICAgICAg
ICdiaW5kaW5ncy92OC9jdXN0b20vVjhJbnQzMkFycmF5Q3VzdG9tLmNwcCcsCiAgICAgICAgICAg
ICAnYmluZGluZ3MvdjgvY3VzdG9tL1Y4RmlsZVJlYWRlckN1c3RvbS5jcHAnLApAQCAtMTg2Miw2
ICsxODY1LDggQEAKICAgICAgICAgICAgICdodG1sL2NhbnZhcy9DYW52YXNTdHlsZS5jcHAnLAog
ICAgICAgICAgICAgJ2h0bWwvY2FudmFzL0NhbnZhc1N0eWxlLmgnLAogICAgICAgICAgICAgJ2h0
bWwvY2FudmFzL0NoZWNrZWRJbnQuaCcsCisgICAgICAgICAgICAnaHRtbC9jYW52YXMvRGF0YVZp
ZXcuY3BwJywKKyAgICAgICAgICAgICdodG1sL2NhbnZhcy9EYXRhVmlldy5oJywKICAgICAgICAg
ICAgICdodG1sL2NhbnZhcy9GbG9hdDMyQXJyYXkuY3BwJywKICAgICAgICAgICAgICdodG1sL2Nh
bnZhcy9GbG9hdDMyQXJyYXkuaCcsCiAgICAgICAgICAgICAnaHRtbC9jYW52YXMvSW50MTZBcnJh
eS5jcHAnLApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9XZWJDb3JlLnByaSBiL1dlYkNvcmUvV2ViQ29y
ZS5wcmkKaW5kZXggZjhjZWE0MS4uNTA0MzE4OCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9XZWJDb3Jl
LnByaQorKysgYi9XZWJDb3JlL1dlYkNvcmUucHJpCkBAIC0xODIsNiArMTgyLDcgQEAgSURMX0JJ
TkRJTkdTICs9IFwKICAgICBmaWxlYXBpL01ldGFkYXRhQ2FsbGJhY2suaWRsIFwKICAgICBodG1s
L2NhbnZhcy9BcnJheUJ1ZmZlclZpZXcuaWRsIFwKICAgICBodG1sL2NhbnZhcy9BcnJheUJ1ZmZl
ci5pZGwgXAorICAgIGh0bWwvY2FudmFzL0RhdGFWaWV3LmlkbCBcCiAgICAgaHRtbC9jYW52YXMv
SW50OEFycmF5LmlkbCBcCiAgICAgaHRtbC9jYW52YXMvRmxvYXQzMkFycmF5LmlkbCBcCiAgICAg
aHRtbC9jYW52YXMvQ2FudmFzR3JhZGllbnQuaWRsIFwKZGlmZiAtLWdpdCBhL1dlYkNvcmUvV2Vi
Q29yZS5wcm8gYi9XZWJDb3JlL1dlYkNvcmUucHJvCmluZGV4IDEwNjdjZTIuLjMyODlmNzEgMTAw
NjQ0Ci0tLSBhL1dlYkNvcmUvV2ViQ29yZS5wcm8KKysrIGIvV2ViQ29yZS9XZWJDb3JlLnBybwpA
QCAtMzY5Nyw2ICszNjk3LDcgQEAgSEVBREVSUyArPSBcCiAgICAgICAgIGh0bWwvY2FudmFzL1dl
YkdMQWN0aXZlSW5mby5oIFwKICAgICAgICAgaHRtbC9jYW52YXMvQXJyYXlCdWZmZXIuaCBcCiAg
ICAgICAgIGh0bWwvY2FudmFzL0FycmF5QnVmZmVyVmlldy5oIFwKKyAgICAgICAgaHRtbC9jYW52
YXMvRGF0YVZpZXcuaCBcCiAgICAgICAgIGh0bWwvY2FudmFzL1dlYkdMQnVmZmVyLmggXAogICAg
ICAgICBodG1sL2NhbnZhcy9JbnQ4QXJyYXkuaCBcCiAgICAgICAgIGh0bWwvY2FudmFzL1dlYkdM
Q29udGV4dEF0dHJpYnV0ZXMuaCBcCkBAIC0zNzIxLDYgKzM3MjIsNyBAQCBIRUFERVJTICs9IFwK
ICAgICAhdjggewogICAgICAgICBTT1VSQ0VTICs9IFwKICAgICAgICAgICAgICAgICBiaW5kaW5n
cy9qcy9KU0FycmF5QnVmZmVyQ3VzdG9tLmNwcCBcCisgICAgICAgICAgICAgICAgYmluZGluZ3Mv
anMvSlNEYXRhVmlld0N1c3RvbS5jcHAgXAogICAgICAgICAgICAgICAgIGJpbmRpbmdzL2pzL0pT
SW50OEFycmF5Q3VzdG9tLmNwcCBcCiAgICAgICAgICAgICAgICAgYmluZGluZ3MvanMvSlNGbG9h
dDMyQXJyYXlDdXN0b20uY3BwIFwKICAgICAgICAgICAgICAgICBiaW5kaW5ncy9qcy9KU0ludDMy
QXJyYXlDdXN0b20uY3BwIFwKQEAgLTM3MzUsNiArMzczNyw3IEBAIFNPVVJDRVMgKz0gXAogICAg
ICAgICBodG1sL2NhbnZhcy9XZWJHTE9iamVjdC5jcHAgXAogICAgICAgICBodG1sL2NhbnZhcy9B
cnJheUJ1ZmZlci5jcHAgXAogICAgICAgICBodG1sL2NhbnZhcy9BcnJheUJ1ZmZlclZpZXcuY3Bw
IFwKKyAgICAgICAgaHRtbC9jYW52YXMvRGF0YVZpZXcuY3BwIFwKICAgICAgICAgaHRtbC9jYW52
YXMvV2ViR0xCdWZmZXIuY3BwIFwKICAgICAgICAgaHRtbC9jYW52YXMvSW50OEFycmF5LmNwcCBc
CiAgICAgICAgIGh0bWwvY2FudmFzL1dlYkdMQ29udGV4dEF0dHJpYnV0ZXMuY3BwIFwKZGlmZiAt
LWdpdCBhL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvV2ViQ29y
ZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggMjMxNmNlZi4uNmFkNzc4
OCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oK
KysrIGIvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTc2Nyw2
ICs3NjcsMTEgQEAKIAkJMkU3NTg0MUYxMjc3OUFEQTAwNjI2MjhCIC8qIEZpbGVSZWFkZXJMb2Fk
ZXJDbGllbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDJFNzU4NDFDMTI3NzlBREEwMDYyNjI4QiAvKiBGaWxlUmVhZGVyTG9hZGVyQ2xpZW50LmggKi87
IH07CiAJCTJFOTRGNDNCMTE5MjA3REEwMEI3Rjc1RCAvKiBKU0ZpbGVSZWFkZXIuY3BwIGluIFNv
dXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMkU5NEY0MzkxMTkyMDdE
QTAwQjdGNzVEIC8qIEpTRmlsZVJlYWRlci5jcHAgKi87IH07CiAJCTJFOTRGNDNDMTE5MjA3REEw
MEI3Rjc1RCAvKiBKU0ZpbGVSZWFkZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDJFOTRGNDNBMTE5MjA3REEwMEI3Rjc1RCAvKiBKU0ZpbGVSZWFkZXIu
aCAqLzsgfTsKKwkJMkU5N0NDRUExMjkzOUNCODAwQzVDOEZGIC8qIERhdGFWaWV3LmNwcCBpbiBT
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDJFOTdDQ0U3MTI5MzlD
QjgwMEM1QzhGRiAvKiBEYXRhVmlldy5jcHAgKi87IH07CisJCTJFOTdDQ0VCMTI5MzlDQjgwMEM1
QzhGRiAvKiBEYXRhVmlldy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gMkU5N0NDRTgxMjkzOUNCODAwQzVDOEZGIC8qIERhdGFWaWV3LmggKi87IH07CisJ
CTJFOTdDQ0Y3MTI5M0E0M0EwMEM1QzhGRiAvKiBKU0RhdGFWaWV3Q3VzdG9tLmNwcCBpbiBTb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDJFOTdDQ0Y2MTI5M0E0M0Ew
MEM1QzhGRiAvKiBKU0RhdGFWaWV3Q3VzdG9tLmNwcCAqLzsgfTsKKwkJMkU5N0NFNkYxMjkzQUQ2
QjAwQzVDOEZGIC8qIEpTRGF0YVZpZXcuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gMkU5N0NFNkQxMjkzQUQ2QjAwQzVDOEZGIC8qIEpTRGF0YVZpZXcu
Y3BwICovOyB9OworCQkyRTk3Q0U3MDEyOTNBRDZCMDBDNUM4RkYgLyogSlNEYXRhVmlldy5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMkU5N0NFNkUxMjkz
QUQ2QjAwQzVDOEZGIC8qIEpTRGF0YVZpZXcuaCAqLzsgfTsKIAkJMkVBNzY4MDQwRkU3MTI2NDAw
QUI5QzhBIC8qIFdvcmtlclNjcmlwdExvYWRlckNsaWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMkVBNzY4MDMwRkU3MTI2NDAwQUI5QzhBIC8qIFdv
cmtlclNjcmlwdExvYWRlckNsaWVudC5oICovOyB9OwogCQkyRUI0QkNEMjEyMUYwM0UzMDBFQzQ4
ODUgLyogQmxvYlJlc291cmNlSGFuZGxlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDJFQjRCQ0QwMTIxRjAzRTMwMEVDNDg4NSAvKiBCbG9iUmVzb3Vy
Y2VIYW5kbGUuY3BwICovOyB9OwogCQkyRUI0QkNEMzEyMUYwM0UzMDBFQzQ4ODUgLyogQmxvYlJl
c291cmNlSGFuZGxlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSAyRUI0QkNEMTEyMUYwM0UzMDBFQzQ4ODUgLyogQmxvYlJlc291cmNlSGFuZGxlLmggKi87
IH07CkBAIC02ODU0LDYgKzY4NTksMTIgQEAKIAkJMkU3NTg0MUMxMjc3OUFEQTAwNjI2MjhCIC8q
IEZpbGVSZWFkZXJMb2FkZXJDbGllbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1l
ID0gRmlsZVJlYWRlckxvYWRlckNsaWVudC5oOyBwYXRoID0gZmlsZWFwaS9GaWxlUmVhZGVyTG9h
ZGVyQ2xpZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTJFOTRGNDM5MTE5MjA3
REEwMEI3Rjc1RCAvKiBKU0ZpbGVSZWFkZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
Y3BwOyBwYXRoID0gSlNGaWxlUmVhZGVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJMkU5NEY0M0ExMTkyMDdEQTAwQjdGNzVEIC8qIEpTRmlsZVJlYWRlci5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBKU0ZpbGVSZWFkZXIuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKKwkJMkU5N0NDRTcxMjkzOUNCODAwQzVDOEZGIC8qIERhdGFWaWV3LmNwcCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IERhdGFWaWV3LmNwcDsgcGF0aCA9IGNh
bnZhcy9EYXRhVmlldy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTJFOTdDQ0U4
MTI5MzlDQjgwMEM1QzhGRiAvKiBEYXRhVmlldy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IG5hbWUgPSBEYXRhVmlldy5oOyBwYXRoID0gY2FudmFzL0RhdGFWaWV3Lmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CisJCTJFOTdDQ0U5MTI5MzlDQjgwMEM1QzhGRiAvKiBEYXRhVmlldy5p
ZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSB0ZXh0OyBuYW1lID0gRGF0YVZpZXcuaWRsOyBwYXRoID0gY2FudmFzL0Rh
dGFWaWV3LmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMkU5N0NDRjYxMjkzQTQz
QTAwQzVDOEZGIC8qIEpTRGF0YVZpZXdDdXN0b20uY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBwYXRoID0gSlNEYXRhVmlld0N1c3RvbS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CisJCTJFOTdDRTZEMTI5M0FENkIwMEM1QzhGRiAvKiBKU0RhdGFWaWV3LmNwcCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTRGF0YVZpZXcuY3BwOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OworCQkyRTk3Q0U2RTEyOTNBRDZCMDBDNUM4RkYgLyogSlNEYXRh
Vmlldy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU0RhdGFWaWV3Lmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTJFQTc2ODAzMEZFNzEyNjQwMEFCOUM4QSAvKiBX
b3JrZXJTY3JpcHRMb2FkZXJDbGllbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1l
ID0gV29ya2VyU2NyaXB0TG9hZGVyQ2xpZW50Lmg7IHBhdGggPSB3b3JrZXJzL1dvcmtlclNjcmlw
dExvYWRlckNsaWVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkyRUI0QkNEMDEy
MUYwM0UzMDBFQzQ4ODUgLyogQmxvYlJlc291cmNlSGFuZGxlLmNwcCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEJsb2JSZXNvdXJjZUhhbmRsZS5jcHA7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTJFQjRCQ0QxMTIxRjAzRTMwMEVDNDg4NSAvKiBCbG9iUmVzb3Vy
Y2VIYW5kbGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQmxvYlJlc291cmNl
SGFuZGxlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xMjYyNSw2ICsxMjYzNiw5
IEBACiAJCQkJNDk0ODRGQkYxMDJDRjIzQzAwMTg3REQzIC8qIENhbnZhc1N0eWxlLmNwcCAqLywK
IAkJCQk0OTQ4NEZDMDEwMkNGMjNDMDAxODdERDMgLyogQ2FudmFzU3R5bGUuaCAqLywKIAkJCQlB
MDBCNzIxOTExREU2NDI3MDA4QUI5RkYgLyogQ2hlY2tlZEludC5oICovLAorCQkJCTJFOTdDQ0U3
MTI5MzlDQjgwMEM1QzhGRiAvKiBEYXRhVmlldy5jcHAgKi8sCisJCQkJMkU5N0NDRTgxMjkzOUNC
ODAwQzVDOEZGIC8qIERhdGFWaWV3LmggKi8sCisJCQkJMkU5N0NDRTkxMjkzOUNCODAwQzVDOEZG
IC8qIERhdGFWaWV3LmlkbCAqLywKIAkJCQk0OUVFQ0RDRDEwNTAzQzIzMDAwOTlGQUIgLyogRmxv
YXQzMkFycmF5LmNwcCAqLywKIAkJCQk0OUVFQ0RDRTEwNTAzQzIzMDAwOTlGQUIgLyogRmxvYXQz
MkFycmF5LmggKi8sCiAJCQkJNDlFRUNEQ0YxMDUwM0MyMzAwMDk5RkFCIC8qIEZsb2F0MzJBcnJh
eS5pZGwgKi8sCkBAIC0xNTMxMiw2ICsxNTMyNiw4IEBACiAJCQkJQkM3N0QxNjYwRkYxOUY1NTAw
NzA4ODdCIC8qIEpTRGF0YUdyaWRDb2x1bW4uaCAqLywKIAkJCQlCQzc3RDE2NzBGRjE5RjU1MDA3
MDg4N0IgLyogSlNEYXRhR3JpZENvbHVtbkxpc3QuY3BwICovLAogCQkJCUJDNzdEMTY4MEZGMTlG
NTUwMDcwODg3QiAvKiBKU0RhdGFHcmlkQ29sdW1uTGlzdC5oICovLAorCQkJCTJFOTdDRTZEMTI5
M0FENkIwMEM1QzhGRiAvKiBKU0RhdGFWaWV3LmNwcCAqLywKKwkJCQkyRTk3Q0U2RTEyOTNBRDZC
MDBDNUM4RkYgLyogSlNEYXRhVmlldy5oICovLAogCQkJCTJFMDg4OEQyMTE0ODg0OEEwMEFGNDI2
NSAvKiBKU0RPTUZvcm1EYXRhLmNwcCAqLywKIAkJCQkyRTA4ODhEMzExNDg4NDhBMDBBRjQyNjUg
LyogSlNET01Gb3JtRGF0YS5oICovLAogCQkJCTRBQ0JDMEM4MTI3MTNEMEEwMDk0RjlCMiAvKiBK
U0RPTVNldHRhYmxlVG9rZW5MaXN0LmNwcCAqLywKQEAgLTE3MDkxLDYgKzE3MTA3LDcgQEAKIAkJ
CQlFMUFEMTRFNzEyOTczNzc0MDBBQ0E5ODkgLyogSlNDU1NTdHlsZVJ1bGVDdXN0b20uY3BwICov
LAogCQkJCUJDMjBGQjdFMEMwRThFNkMwMEQxNDQ3RiAvKiBKU0NTU1ZhbHVlQ3VzdG9tLmNwcCAq
LywKIAkJCQlCQzc3RDE1MTBGRjE5QzczMDA3MDg4N0IgLyogSlNEYXRhR3JpZENvbHVtbkxpc3RD
dXN0b20uY3BwICovLAorCQkJCTJFOTdDQ0Y2MTI5M0E0M0EwMEM1QzhGRiAvKiBKU0RhdGFWaWV3
Q3VzdG9tLmNwcCAqLywKIAkJCQk0MTYyQTQ1MzEwMTE0NUUzMDBERkYzRUQgLyogSlNEZWRpY2F0
ZWRXb3JrZXJDb250ZXh0Q3VzdG9tLmNwcCAqLywKIAkJCQkzMzUwM0NCRjEwMTc5QzFBMDAzQjQ3
RTEgLyogSlNEZXNrdG9wTm90aWZpY2F0aW9uc0N1c3RvbS5jcHAgKi8sCiAJCQkJMzFGQjFBNkIx
MjBBNUQ2OTAwREMwMkEwIC8qIEpTRGV2aWNlTW90aW9uRXZlbnRDdXN0b20uY3BwICovLApAQCAt
MjEzOTIsNiArMjE0MDksOCBAQAogCQkJCTc1NDE1RDU2MTI5QUIyRDIwMDNBRDY2OSAvKiBKU1Nw
ZWVjaElucHV0RXZlbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCTc1NDE1RDU4MTI5QUIyRDIwMDNB
RDY2OSAvKiBKU1NwZWVjaElucHV0UmVzdWx0LmggaW4gSGVhZGVycyAqLywKIAkJCQk3NTQxNUQ1
QTEyOUFCMkQyMDAzQUQ2NjkgLyogSlNTcGVlY2hJbnB1dFJlc3VsdExpc3QuaCBpbiBIZWFkZXJz
ICovLAorCQkJCTJFOTdDQ0VCMTI5MzlDQjgwMEM1QzhGRiAvKiBEYXRhVmlldy5oIGluIEhlYWRl
cnMgKi8sCisJCQkJMkU5N0NFNzAxMjkzQUQ2QjAwQzVDOEZGIC8qIEpTRGF0YVZpZXcuaCBpbiBI
ZWFkZXJzICovLAogCQkJKTsKIAkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9zdHByb2Nlc3Npbmcg
PSAwOwogCQl9OwpAQCAtMjM5NjYsNiArMjM5ODUsOSBAQAogCQkJCTc1NDE1RDU1MTI5QUIyRDIw
MDNBRDY2OSAvKiBKU1NwZWVjaElucHV0RXZlbnQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNzU0
MTVENTcxMjlBQjJEMjAwM0FENjY5IC8qIEpTU3BlZWNoSW5wdXRSZXN1bHQuY3BwIGluIFNvdXJj
ZXMgKi8sCiAJCQkJNzU0MTVENTkxMjlBQjJEMjAwM0FENjY5IC8qIEpTU3BlZWNoSW5wdXRSZXN1
bHRMaXN0LmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTJFOTdDQ0VBMTI5MzlDQjgwMEM1QzhGRiAv
KiBEYXRhVmlldy5jcHAgaW4gU291cmNlcyAqLywKKwkJCQkyRTk3Q0NGNzEyOTNBNDNBMDBDNUM4
RkYgLyogSlNEYXRhVmlld0N1c3RvbS5jcHAgaW4gU291cmNlcyAqLywKKwkJCQkyRTk3Q0U2RjEy
OTNBRDZCMDBDNUM4RkYgLyogSlNEYXRhVmlldy5jcHAgaW4gU291cmNlcyAqLywKIAkJCSk7CiAJ
CQlydW5Pbmx5Rm9yRGVwbG95bWVudFBvc3Rwcm9jZXNzaW5nID0gMDsKIAkJfTsKZGlmZiAtLWdp
dCBhL1dlYkNvcmUvYmluZGluZ3MvZ2VuZXJpYy9SdW50aW1lRW5hYmxlZEZlYXR1cmVzLmggYi9X
ZWJDb3JlL2JpbmRpbmdzL2dlbmVyaWMvUnVudGltZUVuYWJsZWRGZWF0dXJlcy5oCmluZGV4IDBh
YjUxMjAuLjMzNDMyY2UgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvYmluZGluZ3MvZ2VuZXJpYy9SdW50
aW1lRW5hYmxlZEZlYXR1cmVzLmgKKysrIGIvV2ViQ29yZS9iaW5kaW5ncy9nZW5lcmljL1J1bnRp
bWVFbmFibGVkRmVhdHVyZXMuaApAQCAtMTAyLDYgKzEwMiw3IEBAIHB1YmxpYzoKICAgICBzdGF0
aWMgYm9vbCBpbnQzMkFycmF5RW5hYmxlZCgpIHsgcmV0dXJuIGlzV2ViR0xFbmFibGVkOyB9CiAg
ICAgc3RhdGljIGJvb2wgdWludDMyQXJyYXlFbmFibGVkKCkgeyByZXR1cm4gaXNXZWJHTEVuYWJs
ZWQ7IH0KICAgICBzdGF0aWMgYm9vbCBmbG9hdDMyQXJyYXlFbmFibGVkKCkgeyByZXR1cm4gaXNX
ZWJHTEVuYWJsZWQ7IH0KKyAgICBzdGF0aWMgYm9vbCBkYXRhVmlld0VuYWJsZWQoKSB7IHJldHVy
biBpc1dlYkdMRW5hYmxlZDsgfQogICAgIHN0YXRpYyBib29sIHdlYkdMUmVuZGVyaW5nQ29udGV4
dEVuYWJsZWQoKSB7IHJldHVybiBpc1dlYkdMRW5hYmxlZDsgfQogICAgIHN0YXRpYyBib29sIHdl
YkdMQXJyYXlCdWZmZXJFbmFibGVkKCkgeyByZXR1cm4gaXNXZWJHTEVuYWJsZWQ7IH0KICAgICBz
dGF0aWMgYm9vbCB3ZWJHTEJ5dGVBcnJheUVuYWJsZWQoKSB7IHJldHVybiBpc1dlYkdMRW5hYmxl
ZDsgfQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0FycmF5QnVmZmVyVmlld0hl
bHBlci5oIGIvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0FycmF5QnVmZmVyVmlld0hlbHBlci5oCmlu
ZGV4IGJhNzEyYzYuLmYzNGY0YjkgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvYmluZGluZ3MvanMvSlNB
cnJheUJ1ZmZlclZpZXdIZWxwZXIuaAorKysgYi9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTQXJyYXlC
dWZmZXJWaWV3SGVscGVyLmgKQEAgLTg2LDE2ICs4NiwzMyBAQCBKU0M6OkpTVmFsdWUgc2V0V2Vi
R0xBcnJheUhlbHBlcihKU0M6OkV4ZWNTdGF0ZSogZXhlYywgVCogaW1wbCwgVCogKCpjb252ZXJz
aW9uRgogLy8gVGVtcGxhdGUgZnVuY3Rpb24gdXNlZCBieSBYWFhBcnJheUNvbnN0cnVjdG9ycy4K
IC8vIElmIHRoaXMgcmV0dXJucyAwLCBpdCB3aWxsIGFscmVhZHkgaGF2ZSB0aHJvd24gYSBKYXZh
U2NyaXB0IGV4Y2VwdGlvbi4KIHRlbXBsYXRlPGNsYXNzIEMsIHR5cGVuYW1lIFQ+Ci1QYXNzUmVm
UHRyPEFycmF5QnVmZmVyVmlldz4gY29uc3RydWN0QXJyYXlCdWZmZXJWaWV3KEpTQzo6RXhlY1N0
YXRlKiBleGVjKQorUGFzc1JlZlB0cjxDPiBjb25zdHJ1Y3RBcnJheUJ1ZmZlclZpZXdXaXRoQXJy
YXlCdWZmZXJBcmd1bWVudChKU0M6OkV4ZWNTdGF0ZSogZXhlYykKK3sKKyAgICBSZWZQdHI8QXJy
YXlCdWZmZXI+IGJ1ZmZlciA9IHRvQXJyYXlCdWZmZXIoZXhlYy0+YXJndW1lbnQoMCkpOworICAg
IGlmICghYnVmZmVyKQorICAgICAgICByZXR1cm4gMDsKKworICAgIHVuc2lnbmVkIG9mZnNldCA9
IChleGVjLT5hcmd1bWVudENvdW50KCkgPiAxKSA/IGV4ZWMtPmFyZ3VtZW50KDEpLnRvVUludDMy
KGV4ZWMpIDogMDsKKyAgICBpZiAoKGJ1ZmZlci0+Ynl0ZUxlbmd0aCgpIC0gb2Zmc2V0KSAlIHNp
emVvZihUKSkKKyAgICAgICAgdGhyb3dFcnJvcihleGVjLCBjcmVhdGVSYW5nZUVycm9yKGV4ZWMs
ICJBcnJheUJ1ZmZlciBsZW5ndGggbWludXMgdGhlIGJ5dGVPZmZzZXQgaXMgbm90IGEgbXVsdGlw
bGUgb2YgdGhlIGVsZW1lbnQgc2l6ZS4iKSk7CisgICAgdW5zaWduZWQgaW50IGxlbmd0aCA9IChi
dWZmZXItPmJ5dGVMZW5ndGgoKSAtIG9mZnNldCkgLyBzaXplb2YoVCk7CisgICAgaWYgKGV4ZWMt
PmFyZ3VtZW50Q291bnQoKSA+IDIpCisgICAgICAgIGxlbmd0aCA9IGV4ZWMtPmFyZ3VtZW50KDIp
LnRvVUludDMyKGV4ZWMpOworICAgIFJlZlB0cjxDPiBhcnJheSA9IEM6OmNyZWF0ZShidWZmZXIs
IG9mZnNldCwgbGVuZ3RoKTsKKyAgICBpZiAoIWFycmF5KQorICAgICAgICBzZXRET01FeGNlcHRp
b24oZXhlYywgSU5ERVhfU0laRV9FUlIpOworICAgIHJldHVybiBhcnJheTsKK30KKwordGVtcGxh
dGU8Y2xhc3MgQywgdHlwZW5hbWUgVD4KK1Bhc3NSZWZQdHI8Qz4gY29uc3RydWN0QXJyYXlCdWZm
ZXJWaWV3KEpTQzo6RXhlY1N0YXRlKiBleGVjKQogewogICAgIC8vIFRoZXJlIGFyZSAzIGNvbnN0
cnVjdG9yczoKICAgICAvLwogICAgIC8vICAxKSAoaW4gaW50IHNpemUpCiAgICAgLy8gIDIpIChp
biBBcnJheUJ1ZmZlciBidWZmZXIsIFtPcHRpb25hbF0gaW4gaW50IG9mZnNldCwgW09wdGlvbmFs
XSBpbiB1bnNpZ25lZCBpbnQgbGVuZ3RoKQogICAgIC8vICAzKSAoaW4gc2VxdWVuY2U8VD4pIC0g
VGhpcyBlbmRzIHVwIGJlaW5nIGEgSlMgImFycmF5LWxpa2UiIG9iamVjdAotICAgIC8vCi0gICAg
UmVmUHRyPEM+IGFycmF5T2JqZWN0OwotICAgIAorICAgIC8vICAgIAogICAgIC8vIEZvciB0aGUg
MCBhcmdzIGNhc2UsIGp1c3QgY3JlYXRlIGEgemVyby1sZW5ndGggdmlldy4gV2UgY291bGQKICAg
ICAvLyBjb25zaWRlciByYWlzaW5nIGEgU3ludGF4RXJyb3IgZm9yIHRoaXMgY2FzZSwgYnV0IG5v
dCBhbGwKICAgICAvLyBKYXZhU2NyaXB0IERPTSBiaW5kaW5ncyBjYW4gZGlzdGluZ3Vpc2ggYmV0
d2VlbiAibmV3CkBAIC0xMTIsMjAgKzEyOSwxMCBAQCBQYXNzUmVmUHRyPEFycmF5QnVmZmVyVmll
dz4gY29uc3RydWN0QXJyYXlCdWZmZXJWaWV3KEpTQzo6RXhlY1N0YXRlKiBleGVjKQogICAgIH0K
IAogICAgIGlmIChleGVjLT5hcmd1bWVudCgwKS5pc09iamVjdCgpKSB7Ci0gICAgICAgIFJlZlB0
cjxBcnJheUJ1ZmZlcj4gYnVmZmVyID0gdG9BcnJheUJ1ZmZlcihleGVjLT5hcmd1bWVudCgwKSk7
Ci0gICAgICAgIGlmIChidWZmZXIpIHsKLSAgICAgICAgICAgIHVuc2lnbmVkIG9mZnNldCA9IChl
eGVjLT5hcmd1bWVudENvdW50KCkgPiAxKSA/IGV4ZWMtPmFyZ3VtZW50KDEpLnRvVUludDMyKGV4
ZWMpIDogMDsKLSAgICAgICAgICAgIGlmICgoYnVmZmVyLT5ieXRlTGVuZ3RoKCkgLSBvZmZzZXQp
ICUgc2l6ZW9mKFQpKQotICAgICAgICAgICAgICAgIHRocm93RXJyb3IoZXhlYywgY3JlYXRlUmFu
Z2VFcnJvcihleGVjLCAiQXJyYXlCdWZmZXIgbGVuZ3RoIG1pbnVzIHRoZSBieXRlT2Zmc2V0IGlz
IG5vdCBhIG11bHRpcGxlIG9mIHRoZSBlbGVtZW50IHNpemUuIikpOwotICAgICAgICAgICAgdW5z
aWduZWQgaW50IGxlbmd0aCA9IChidWZmZXItPmJ5dGVMZW5ndGgoKSAtIG9mZnNldCkgLyBzaXpl
b2YoVCk7Ci0gICAgICAgICAgICBpZiAoZXhlYy0+YXJndW1lbnRDb3VudCgpID4gMikKLSAgICAg
ICAgICAgICAgICBsZW5ndGggPSBleGVjLT5hcmd1bWVudCgyKS50b1VJbnQzMihleGVjKTsKLSAg
ICAgICAgICAgIFBhc3NSZWZQdHI8QXJyYXlCdWZmZXJWaWV3PiBhcnJheSA9IEM6OmNyZWF0ZShi
dWZmZXIsIG9mZnNldCwgbGVuZ3RoKTsKLSAgICAgICAgICAgIGlmICghYXJyYXkpCi0gICAgICAg
ICAgICAgICAgc2V0RE9NRXhjZXB0aW9uKGV4ZWMsIElOREVYX1NJWkVfRVJSKTsKLSAgICAgICAg
ICAgIHJldHVybiBhcnJheTsKLSAgICAgICAgfQotICAgICAgICAKKyAgICAgICAgUmVmUHRyPEM+
IHZpZXcgPSBjb25zdHJ1Y3RBcnJheUJ1ZmZlclZpZXdXaXRoQXJyYXlCdWZmZXJBcmd1bWVudDxD
LCBUPihleGVjKTsKKyAgICAgICAgaWYgKHZpZXcpCisgICAgICAgICAgICByZXR1cm4gdmlldzsK
KyAgICAKICAgICAgICAgSlNDOjpKU09iamVjdCogYXJyYXkgPSBhc09iamVjdChleGVjLT5hcmd1
bWVudCgwKSk7CiAgICAgICAgIHVuc2lnbmVkIGxlbmd0aCA9IGFycmF5LT5nZXQoZXhlYywgSlND
OjpJZGVudGlmaWVyKGV4ZWMsICJsZW5ndGgiKSkudG9VSW50MzIoZXhlYyk7CiAgICAgICAgIHZv
aWQqIHRlbXBWYWx1ZXM7CkBAIC0xNDIsMTQgKzE0OSwxNCBAQCBQYXNzUmVmUHRyPEFycmF5QnVm
ZmVyVmlldz4gY29uc3RydWN0QXJyYXlCdWZmZXJWaWV3KEpTQzo6RXhlY1N0YXRlKiBleGVjKQog
ICAgICAgICAgICAgdmFsdWVzLmdldCgpW2ldID0gc3RhdGljX2Nhc3Q8VD4odi50b051bWJlcihl
eGVjKSk7CiAgICAgICAgIH0KICAgICAgICAgCi0gICAgICAgIFBhc3NSZWZQdHI8QXJyYXlCdWZm
ZXJWaWV3PiByZXN1bHQgPSBDOjpjcmVhdGUodmFsdWVzLmdldCgpLCBsZW5ndGgpOworICAgICAg
ICBSZWZQdHI8Qz4gcmVzdWx0ID0gQzo6Y3JlYXRlKHZhbHVlcy5nZXQoKSwgbGVuZ3RoKTsKICAg
ICAgICAgaWYgKCFyZXN1bHQpCiAgICAgICAgICAgICBzZXRET01FeGNlcHRpb24oZXhlYywgSU5E
RVhfU0laRV9FUlIpOwogICAgICAgICByZXR1cm4gcmVzdWx0OwogICAgIH0KLSAgICAKKwogICAg
IGludCBsZW5ndGggPSBleGVjLT5hcmd1bWVudCgwKS50b0ludDMyKGV4ZWMpOwotICAgIFBhc3NS
ZWZQdHI8QXJyYXlCdWZmZXJWaWV3PiByZXN1bHQ7CisgICAgUmVmUHRyPEM+IHJlc3VsdDsKICAg
ICBpZiAobGVuZ3RoID49IDApCiAgICAgICAgIHJlc3VsdCA9IEM6OmNyZWF0ZShzdGF0aWNfY2Fz
dDx1bnNpZ25lZD4obGVuZ3RoKSk7CiAgICAgaWYgKCFyZXN1bHQpCmRpZmYgLS1naXQgYS9XZWJD
b3JlL2JpbmRpbmdzL2pzL0pTRE9NV2luZG93Q3VzdG9tLmNwcCBiL1dlYkNvcmUvYmluZGluZ3Mv
anMvSlNET01XaW5kb3dDdXN0b20uY3BwCmluZGV4IDcxMTllYTYuLjk1ZmNkYzEgMTAwNjQ0Ci0t
LSBhL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01XaW5kb3dDdXN0b20uY3BwCisrKyBiL1dlYkNv
cmUvYmluZGluZ3MvanMvSlNET01XaW5kb3dDdXN0b20uY3BwCkBAIC01Myw2ICs1Myw3IEBACiAK
ICNpZiBFTkFCTEUoM0RfQ0FOVkFTKSB8fCBFTkFCTEUoQkxPQikKICNpbmNsdWRlICJKU0FycmF5
QnVmZmVyLmgiCisjaW5jbHVkZSAiSlNEYXRhVmlldy5oIgogI2luY2x1ZGUgIkpTSW50OEFycmF5
LmgiCiAjaW5jbHVkZSAiSlNVaW50OEFycmF5LmgiCiAjaW5jbHVkZSAiSlNJbnQzMkFycmF5Lmgi
CkBAIC02MDYsNiArNjA3LDEwIEBAIEpTVmFsdWUgSlNET01XaW5kb3c6OmZsb2F0MzJBcnJheShF
eGVjU3RhdGUqIGV4ZWMpIGNvbnN0CiAgICAgcmV0dXJuIGdldERPTUNvbnN0cnVjdG9yPEpTRmxv
YXQzMkFycmF5Q29uc3RydWN0b3I+KGV4ZWMsIHRoaXMpOwogfQogCitKU1ZhbHVlIEpTRE9NV2lu
ZG93OjpkYXRhVmlldyhFeGVjU3RhdGUqIGV4ZWMpIGNvbnN0Cit7CisgICAgcmV0dXJuIGdldERP
TUNvbnN0cnVjdG9yPEpTRGF0YVZpZXdDb25zdHJ1Y3Rvcj4oZXhlYywgdGhpcyk7Cit9CiAjZW5k
aWYKICAKIEpTVmFsdWUgSlNET01XaW5kb3c6OnhtbEh0dHBSZXF1ZXN0KEV4ZWNTdGF0ZSogZXhl
YykgY29uc3QKZGlmZiAtLWdpdCBhL1dlYkNvcmUvYmluZGluZ3MvanMvSlNEYXRhVmlld0N1c3Rv
bS5jcHAgYi9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRGF0YVZpZXdDdXN0b20uY3BwCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjEyMmExODUKLS0tIC9kZXYvbnVsbAorKysgYi9X
ZWJDb3JlL2JpbmRpbmdzL2pzL0pTRGF0YVZpZXdDdXN0b20uY3BwCkBAIC0wLDAgKzEsMTc0IEBA
CisvKgorICogQ29weXJpZ2h0IChDKSAyMDEwIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKgorICog
MS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkg
Zm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRo
ZQorICogICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3
aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBC
WSBBUFBMRSBBTkQgSVRTIENPTlRSSUJVVE9SUyAiQVMgSVMiIEFORCBBTlkKKyAqIEVYUFJFU1Mg
T1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhF
IElNUExJRUQKKyAqIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZP
UiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKKyAqIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNI
QUxMIEFQUExFIE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkKKyAqIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVO
VElBTCBEQU1BR0VTCisgKiAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVN
RU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7CisgKiBMT1NTIE9GIFVTRSwgREFU
QSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQKKyAqIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YKKyAqIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
CisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorCisjaWYgRU5BQkxFKDNEX0NBTlZBUykgfHwg
RU5BQkxFKEJMT0IpCisKKyNpbmNsdWRlICJKU0RhdGFWaWV3LmgiCisKKyNpbmNsdWRlICJEYXRh
Vmlldy5oIgorI2luY2x1ZGUgIkV4Y2VwdGlvbkNvZGUuaCIKKyNpbmNsdWRlICJKU0FycmF5QnVm
ZmVyVmlld0hlbHBlci5oIgorI2luY2x1ZGUgPHd0Zi9NYXRoRXh0cmFzLmg+CisKK3VzaW5nIG5h
bWVzcGFjZSBKU0M7CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworZW51bSBEYXRhVmlld0FjY2Vz
c1R5cGUgeworICAgIEFjY2Vzc0RhdGFWaWV3TWVtYmVyQXNJbnQ4LAorICAgIEFjY2Vzc0RhdGFW
aWV3TWVtYmVyQXNVaW50OCwKKyAgICBBY2Nlc3NEYXRhVmlld01lbWJlckFzRmxvYXQzMiwKKyAg
ICBBY2Nlc3NEYXRhVmlld01lbWJlckFzRmxvYXQ2NAorfTsKKworSlNWYWx1ZSB0b0pTKEV4ZWNT
dGF0ZSogZXhlYywgSlNET01HbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgRGF0YVZpZXcqIG9i
amVjdCkKK3sKKyAgICByZXR1cm4gZ2V0RE9NT2JqZWN0V3JhcHBlcjxKU0RhdGFWaWV3PihleGVj
LCBnbG9iYWxPYmplY3QsIG9iamVjdCk7Cit9CisKK0VuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NB
TEwgSlNEYXRhVmlld0NvbnN0cnVjdG9yOjpjb25zdHJ1Y3RKU0RhdGFWaWV3KEV4ZWNTdGF0ZSog
ZXhlYykKK3sKKyAgICBpZiAoZXhlYy0+YXJndW1lbnQoMCkuaXNOdWxsKCkgfHwgIWV4ZWMtPmFy
Z3VtZW50KDApLmlzT2JqZWN0KCkpCisgICAgICAgIHJldHVybiB0aHJvd1ZNVHlwZUVycm9yKGV4
ZWMpOworCisgICAgUmVmUHRyPERhdGFWaWV3PiB2aWV3ID0gY29uc3RydWN0QXJyYXlCdWZmZXJW
aWV3V2l0aEFycmF5QnVmZmVyQXJndW1lbnQ8RGF0YVZpZXcsIGNoYXI+KGV4ZWMpOworICAgIGlm
ICghdmlldy5nZXQoKSkgeworICAgICAgICBzZXRET01FeGNlcHRpb24oZXhlYywgSU5ERVhfU0la
RV9FUlIpOworICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwor
ICAgIH0KKworICAgIEpTRGF0YVZpZXdDb25zdHJ1Y3RvcioganNDb25zdHJ1Y3RvciA9IHN0YXRp
Y19jYXN0PEpTRGF0YVZpZXdDb25zdHJ1Y3Rvcio+KGV4ZWMtPmNhbGxlZSgpKTsKKyAgICByZXR1
cm4gSlNWYWx1ZTo6ZW5jb2RlKGFzT2JqZWN0KHRvSlMoZXhlYywganNDb25zdHJ1Y3Rvci0+Z2xv
YmFsT2JqZWN0KCksIHZpZXcuZ2V0KCkpKSk7Cit9CisKK3N0YXRpYyBKU1ZhbHVlIGdldERhdGFW
aWV3TWVtYmVyKEV4ZWNTdGF0ZSogZXhlYywgRGF0YVZpZXdBY2Nlc3NUeXBlIHR5cGUpCit7Cisg
ICAgSlNWYWx1ZSB0aGlzVmFsdWUgPSBleGVjLT5ob3N0VGhpc1ZhbHVlKCk7CisgICAgaWYgKCF0
aGlzVmFsdWUuaW5oZXJpdHMoJkpTRGF0YVZpZXc6OnNfaW5mbykpCisgICAgICAgIHJldHVybiB0
aHJvd1R5cGVFcnJvcihleGVjKTsKKyAgICBKU0RhdGFWaWV3KiBjYXN0ZWRUaGlzID0gc3RhdGlj
X2Nhc3Q8SlNEYXRhVmlldyo+KGFzT2JqZWN0KHRoaXNWYWx1ZSkpOworICAgIERhdGFWaWV3KiBp
bXAgPSBzdGF0aWNfY2FzdDxEYXRhVmlldyo+KGNhc3RlZFRoaXMtPmltcGwoKSk7CisgICAgaWYg
KGV4ZWMtPmFyZ3VtZW50Q291bnQoKSA8IDEpCisgICAgICAgIHJldHVybiB0aHJvd0Vycm9yKGV4
ZWMsIGNyZWF0ZVN5bnRheEVycm9yKGV4ZWMsICJOb3QgZW5vdWdoIGFyZ3VtZW50cyIpKTsKKyAg
ICBFeGNlcHRpb25Db2RlIGVjID0gMDsKKyAgICB1bnNpZ25lZCBieXRlT2Zmc2V0ID0gZXhlYy0+
YXJndW1lbnQoMCkudG9VSW50MzIoZXhlYyk7CisgICAgaWYgKGV4ZWMtPmhhZEV4Y2VwdGlvbigp
KQorICAgICAgICByZXR1cm4ganNVbmRlZmluZWQoKTsKKworICAgIGJvb2wgbGl0dGxlRW5kaWFu
ID0gZmFsc2U7CisgICAgaWYgKGV4ZWMtPmFyZ3VtZW50Q291bnQoKSA+IDEgJiYgKHR5cGUgPT0g
QWNjZXNzRGF0YVZpZXdNZW1iZXJBc0Zsb2F0MzIgfHwgdHlwZSA9PSBBY2Nlc3NEYXRhVmlld01l
bWJlckFzRmxvYXQ2NCkpIHsKKyAgICAgICAgbGl0dGxlRW5kaWFuID0gZXhlYy0+YXJndW1lbnQo
MSkudG9Cb29sZWFuKGV4ZWMpOworICAgICAgICBpZiAoZXhlYy0+aGFkRXhjZXB0aW9uKCkpCisg
ICAgICAgICAgICByZXR1cm4ganNVbmRlZmluZWQoKTsKKyAgICB9CisKKyAgICBKU0M6OkpTVmFs
dWUgcmVzdWx0OworICAgIHN3aXRjaCAodHlwZSkgeworICAgIGNhc2UgQWNjZXNzRGF0YVZpZXdN
ZW1iZXJBc0ludDg6CisgICAgICAgIHJlc3VsdCA9IGpzTnVtYmVyKGltcC0+Z2V0SW50OChieXRl
T2Zmc2V0LCBlYykpOworICAgICAgICBicmVhazsKKyAgICBjYXNlIEFjY2Vzc0RhdGFWaWV3TWVt
YmVyQXNVaW50ODoKKyAgICAgICAgcmVzdWx0ID0ganNOdW1iZXIoaW1wLT5nZXRVaW50OChieXRl
T2Zmc2V0LCBlYykpOworICAgICAgICBicmVhazsKKyAgICBjYXNlIEFjY2Vzc0RhdGFWaWV3TWVt
YmVyQXNGbG9hdDMyOgorICAgIGNhc2UgQWNjZXNzRGF0YVZpZXdNZW1iZXJBc0Zsb2F0NjQ6IHsK
KyAgICAgICAgZG91YmxlIHZhbHVlID0gKHR5cGUgPT0gQWNjZXNzRGF0YVZpZXdNZW1iZXJBc0Zs
b2F0MzIpID8gaW1wLT5nZXRGbG9hdDMyKGJ5dGVPZmZzZXQsIGxpdHRsZUVuZGlhbiwgZWMpIDog
aW1wLT5nZXRGbG9hdDY0KGJ5dGVPZmZzZXQsIGxpdHRsZUVuZGlhbiwgZWMpOworICAgICAgICBy
ZXN1bHQgPSBpc25hbih2YWx1ZSkgPyBKU1ZhbHVlKG5vbklubGluZU5hTigpKSA6IGpzTnVtYmVy
KHZhbHVlKTsKKyAgICAgICAgYnJlYWs7CisgICAgfSBkZWZhdWx0OgorICAgICAgICBBU1NFUlRf
Tk9UX1JFQUNIRUQoKTsKKyAgICAgICAgYnJlYWs7CisgICAgfQorICAgIHNldERPTUV4Y2VwdGlv
bihleGVjLCBlYyk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KKworSlNWYWx1ZSBKU0NfSE9TVF9D
QUxMIEpTRGF0YVZpZXc6OmdldEludDgoRXhlY1N0YXRlKiBleGVjKQoreworICAgIHJldHVybiBn
ZXREYXRhVmlld01lbWJlcihleGVjLCBBY2Nlc3NEYXRhVmlld01lbWJlckFzSW50OCk7Cit9CisK
K0pTVmFsdWUgSlNDX0hPU1RfQ0FMTCBKU0RhdGFWaWV3OjpnZXRVaW50OChFeGVjU3RhdGUqIGV4
ZWMpCit7CisgICAgcmV0dXJuIGdldERhdGFWaWV3TWVtYmVyKGV4ZWMsIEFjY2Vzc0RhdGFWaWV3
TWVtYmVyQXNVaW50OCk7Cit9CisKK0pTVmFsdWUgSlNDX0hPU1RfQ0FMTCBKU0RhdGFWaWV3Ojpn
ZXRGbG9hdDMyKEV4ZWNTdGF0ZSogZXhlYykKK3sKKyAgICByZXR1cm4gZ2V0RGF0YVZpZXdNZW1i
ZXIoZXhlYywgQWNjZXNzRGF0YVZpZXdNZW1iZXJBc0Zsb2F0MzIpOworfQorCitKU1ZhbHVlIEpT
Q19IT1NUX0NBTEwgSlNEYXRhVmlldzo6Z2V0RmxvYXQ2NChFeGVjU3RhdGUqIGV4ZWMpCit7Cisg
ICAgcmV0dXJuIGdldERhdGFWaWV3TWVtYmVyKGV4ZWMsIEFjY2Vzc0RhdGFWaWV3TWVtYmVyQXNG
bG9hdDY0KTsKK30KKworc3RhdGljIEpTVmFsdWUgc2V0RGF0YVZpZXdNZW1iZXIoRXhlY1N0YXRl
KiBleGVjLCBEYXRhVmlld0FjY2Vzc1R5cGUgdHlwZSkKK3sKKyAgICBKU1ZhbHVlIHRoaXNWYWx1
ZSA9IGV4ZWMtPmhvc3RUaGlzVmFsdWUoKTsKKyAgICBpZiAoIXRoaXNWYWx1ZS5pbmhlcml0cygm
SlNEYXRhVmlldzo6c19pbmZvKSkKKyAgICAgICAgcmV0dXJuIHRocm93VHlwZUVycm9yKGV4ZWMp
OworICAgIEpTRGF0YVZpZXcqIGNhc3RlZFRoaXMgPSBzdGF0aWNfY2FzdDxKU0RhdGFWaWV3Kj4o
YXNPYmplY3QodGhpc1ZhbHVlKSk7CisgICAgRGF0YVZpZXcqIGltcCA9IHN0YXRpY19jYXN0PERh
dGFWaWV3Kj4oY2FzdGVkVGhpcy0+aW1wbCgpKTsKKyAgICBpZiAoZXhlYy0+YXJndW1lbnRDb3Vu
dCgpIDwgMikKKyAgICAgICAgcmV0dXJuIHRocm93RXJyb3IoZXhlYywgY3JlYXRlU3ludGF4RXJy
b3IoZXhlYywgIk5vdCBlbm91Z2ggYXJndW1lbnRzIikpOworICAgIEV4Y2VwdGlvbkNvZGUgZWMg
PSAwOworICAgIHVuc2lnbmVkIGJ5dGVPZmZzZXQgPSBleGVjLT5hcmd1bWVudCgwKS50b1VJbnQz
MihleGVjKTsKKyAgICBpZiAoZXhlYy0+aGFkRXhjZXB0aW9uKCkpCisgICAgICAgIHJldHVybiBq
c1VuZGVmaW5lZCgpOworICAgIGludCB2YWx1ZSA9IGV4ZWMtPmFyZ3VtZW50KDEpLnRvSW50MzIo
ZXhlYyk7CisgICAgaWYgKGV4ZWMtPmhhZEV4Y2VwdGlvbigpKQorICAgICAgICByZXR1cm4ganNV
bmRlZmluZWQoKTsKKyAgICAgICAgCisgICAgc3dpdGNoICh0eXBlKSB7CisgICAgY2FzZSBBY2Nl
c3NEYXRhVmlld01lbWJlckFzSW50ODoKKyAgICAgICAgaW1wLT5zZXRJbnQ4KGJ5dGVPZmZzZXQs
IHN0YXRpY19jYXN0PGhhcj4odmFsdWUpLCBlYyk7CisgICAgICAgIGJyZWFrOworICAgIGNhc2Ug
QWNjZXNzRGF0YVZpZXdNZW1iZXJBc1VpbnQ4OgorICAgICAgICBpbXAtPnNldFVpbnQ4KGJ5dGVP
ZmZzZXQsIHN0YXRpY19jYXN0PHVuc2lnbmVkIGNoYXI+KHZhbHVlKSwgZWMpOworICAgICAgICBi
cmVhazsKKyAgICBkZWZhdWx0OgorICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICAg
ICAgYnJlYWs7CisgICAgfQorICAgIHNldERPTUV4Y2VwdGlvbihleGVjLCBlYyk7CisgICAgcmV0
dXJuIGpzVW5kZWZpbmVkKCk7Cit9CisKK0pTVmFsdWUgSlNDX0hPU1RfQ0FMTCBKU0RhdGFWaWV3
OjpzZXRJbnQ4KEV4ZWNTdGF0ZSogZXhlYykKK3sKKyAgICByZXR1cm4gc2V0RGF0YVZpZXdNZW1i
ZXIoZXhlYywgQWNjZXNzRGF0YVZpZXdNZW1iZXJBc0ludDgpOworfQorCitKU1ZhbHVlIEpTQ19I
T1NUX0NBTEwgSlNEYXRhVmlldzo6c2V0VWludDgoRXhlY1N0YXRlKiBleGVjKQoreworICAgIHJl
dHVybiBzZXREYXRhVmlld01lbWJlcihleGVjLCBBY2Nlc3NEYXRhVmlld01lbWJlckFzVWludDgp
OworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBFTkFCTEUoM0RfQ0FO
VkFTKSB8fCBFTkFCTEUoQkxPQikKZGlmZiAtLWdpdCBhL1dlYkNvcmUvYmluZGluZ3MvanMvSlNG
bG9hdDMyQXJyYXlDdXN0b20uY3BwIGIvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0Zsb2F0MzJBcnJh
eUN1c3RvbS5jcHAKaW5kZXggNjcxZWU2OC4uODgwZDY4YyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9i
aW5kaW5ncy9qcy9KU0Zsb2F0MzJBcnJheUN1c3RvbS5jcHAKKysrIGIvV2ViQ29yZS9iaW5kaW5n
cy9qcy9KU0Zsb2F0MzJBcnJheUN1c3RvbS5jcHAKQEAgLTI3LDEwICsyNywxMCBAQAogCiAjaWYg
RU5BQkxFKDNEX0NBTlZBUykgfHwgRU5BQkxFKEJMT0IpCiAKLSNpbmNsdWRlICJKU0FycmF5QnVm
ZmVyVmlld0hlbHBlci5oIgogI2luY2x1ZGUgIkpTRmxvYXQzMkFycmF5LmgiCiAKICNpbmNsdWRl
ICJGbG9hdDMyQXJyYXkuaCIKKyNpbmNsdWRlICJKU0FycmF5QnVmZmVyVmlld0hlbHBlci5oIgog
CiB1c2luZyBuYW1lc3BhY2UgSlNDOwogCkBAIC01NCw3ICs1NCw3IEBAIEpTQzo6SlNWYWx1ZSBK
U0Zsb2F0MzJBcnJheTo6c2V0KEpTQzo6RXhlY1N0YXRlKiBleGVjKQogRW5jb2RlZEpTVmFsdWUg
SlNDX0hPU1RfQ0FMTCBKU0Zsb2F0MzJBcnJheUNvbnN0cnVjdG9yOjpjb25zdHJ1Y3RKU0Zsb2F0
MzJBcnJheShFeGVjU3RhdGUqIGV4ZWMpCiB7CiAgICAgSlNGbG9hdDMyQXJyYXlDb25zdHJ1Y3Rv
cioganNDb25zdHJ1Y3RvciA9IHN0YXRpY19jYXN0PEpTRmxvYXQzMkFycmF5Q29uc3RydWN0b3Iq
PihleGVjLT5jYWxsZWUoKSk7Ci0gICAgUmVmUHRyPEZsb2F0MzJBcnJheT4gYXJyYXkgPSBzdGF0
aWNfY2FzdDxGbG9hdDMyQXJyYXkqPihjb25zdHJ1Y3RBcnJheUJ1ZmZlclZpZXc8RmxvYXQzMkFy
cmF5LCBmbG9hdD4oZXhlYykuZ2V0KCkpOworICAgIFJlZlB0cjxGbG9hdDMyQXJyYXk+IGFycmF5
ID0gY29uc3RydWN0QXJyYXlCdWZmZXJWaWV3PEZsb2F0MzJBcnJheSwgZmxvYXQ+KGV4ZWMpOwog
ICAgIGlmICghYXJyYXkuZ2V0KCkpCiAgICAgICAgIC8vIEV4Y2VwdGlvbiBoYXMgYWxyZWFkeSBi
ZWVuIHRocm93bi4KICAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShKU1ZhbHVlKCkpOwpk
aWZmIC0tZ2l0IGEvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0ludDE2QXJyYXlDdXN0b20uY3BwIGIv
V2ViQ29yZS9iaW5kaW5ncy9qcy9KU0ludDE2QXJyYXlDdXN0b20uY3BwCmluZGV4IDc5NzU2OGMu
LmUwOGRhOGEgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvYmluZGluZ3MvanMvSlNJbnQxNkFycmF5Q3Vz
dG9tLmNwcAorKysgYi9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTSW50MTZBcnJheUN1c3RvbS5jcHAK
QEAgLTI3LDEwICsyNywxMCBAQAogCiAjaWYgRU5BQkxFKDNEX0NBTlZBUykgfHwgRU5BQkxFKEJM
T0IpCiAKLSNpbmNsdWRlICJKU0FycmF5QnVmZmVyVmlld0hlbHBlci5oIgogI2luY2x1ZGUgIkpT
SW50MTZBcnJheS5oIgogCiAjaW5jbHVkZSAiSW50MTZBcnJheS5oIgorI2luY2x1ZGUgIkpTQXJy
YXlCdWZmZXJWaWV3SGVscGVyLmgiCiAKIHVzaW5nIG5hbWVzcGFjZSBKU0M7CiAKQEAgLTU0LDcg
KzU0LDcgQEAgSlNDOjpKU1ZhbHVlIEpTSW50MTZBcnJheTo6c2V0KEpTQzo6RXhlY1N0YXRlKiBl
eGVjKQogRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBKU0ludDE2QXJyYXlDb25zdHJ1Y3Rv
cjo6Y29uc3RydWN0SlNJbnQxNkFycmF5KEV4ZWNTdGF0ZSogZXhlYykKIHsKICAgICBKU0ludDE2
QXJyYXlDb25zdHJ1Y3RvcioganNDb25zdHJ1Y3RvciA9IHN0YXRpY19jYXN0PEpTSW50MTZBcnJh
eUNvbnN0cnVjdG9yKj4oZXhlYy0+Y2FsbGVlKCkpOwotICAgIFJlZlB0cjxJbnQxNkFycmF5PiBh
cnJheSA9IHN0YXRpY19jYXN0PEludDE2QXJyYXkqPihjb25zdHJ1Y3RBcnJheUJ1ZmZlclZpZXc8
SW50MTZBcnJheSwgc2hvcnQ+KGV4ZWMpLmdldCgpKTsKKyAgICBSZWZQdHI8SW50MTZBcnJheT4g
YXJyYXkgPSBjb25zdHJ1Y3RBcnJheUJ1ZmZlclZpZXc8SW50MTZBcnJheSwgc2hvcnQ+KGV4ZWMp
OwogICAgIGlmICghYXJyYXkuZ2V0KCkpCiAgICAgICAgIC8vIEV4Y2VwdGlvbiBoYXMgYWxyZWFk
eSBiZWVuIHRocm93bi4KICAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShKU1ZhbHVlKCkp
OwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0ludDMyQXJyYXlDdXN0b20uY3Bw
IGIvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0ludDMyQXJyYXlDdXN0b20uY3BwCmluZGV4IDUzZTZl
YzYuLjVhYTY0YmIgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvYmluZGluZ3MvanMvSlNJbnQzMkFycmF5
Q3VzdG9tLmNwcAorKysgYi9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTSW50MzJBcnJheUN1c3RvbS5j
cHAKQEAgLTI3LDEwICsyNywxMCBAQAogCiAjaWYgRU5BQkxFKDNEX0NBTlZBUykgfHwgRU5BQkxF
KEJMT0IpCiAKLSNpbmNsdWRlICJKU0FycmF5QnVmZmVyVmlld0hlbHBlci5oIgogI2luY2x1ZGUg
IkpTSW50MzJBcnJheS5oIgogCiAjaW5jbHVkZSAiSW50MzJBcnJheS5oIgorI2luY2x1ZGUgIkpT
QXJyYXlCdWZmZXJWaWV3SGVscGVyLmgiCiAKIHVzaW5nIG5hbWVzcGFjZSBKU0M7CiAKQEAgLTU0
LDcgKzU0LDcgQEAgSlNDOjpKU1ZhbHVlIEpTSW50MzJBcnJheTo6c2V0KEpTQzo6RXhlY1N0YXRl
KiBleGVjKQogRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBKU0ludDMyQXJyYXlDb25zdHJ1
Y3Rvcjo6Y29uc3RydWN0SlNJbnQzMkFycmF5KEV4ZWNTdGF0ZSogZXhlYykKIHsKICAgICBKU0lu
dDMyQXJyYXlDb25zdHJ1Y3RvcioganNDb25zdHJ1Y3RvciA9IHN0YXRpY19jYXN0PEpTSW50MzJB
cnJheUNvbnN0cnVjdG9yKj4oZXhlYy0+Y2FsbGVlKCkpOwotICAgIFJlZlB0cjxJbnQzMkFycmF5
PiBhcnJheSA9IHN0YXRpY19jYXN0PEludDMyQXJyYXkqPihjb25zdHJ1Y3RBcnJheUJ1ZmZlclZp
ZXc8SW50MzJBcnJheSwgaW50PihleGVjKS5nZXQoKSk7CisgICAgUmVmUHRyPEludDMyQXJyYXk+
IGFycmF5ID0gY29uc3RydWN0QXJyYXlCdWZmZXJWaWV3PEludDMyQXJyYXksIGludD4oZXhlYyk7
CiAgICAgaWYgKCFhcnJheS5nZXQoKSkKICAgICAgICAgLy8gRXhjZXB0aW9uIGhhcyBhbHJlYWR5
IGJlZW4gdGhyb3duLgogICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKEpTVmFsdWUoKSk7
CmRpZmYgLS1naXQgYS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTSW50OEFycmF5Q3VzdG9tLmNwcCBi
L1dlYkNvcmUvYmluZGluZ3MvanMvSlNJbnQ4QXJyYXlDdXN0b20uY3BwCmluZGV4IDc1NTZkNmEu
LmI2M2RlNTQgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvYmluZGluZ3MvanMvSlNJbnQ4QXJyYXlDdXN0
b20uY3BwCisrKyBiL1dlYkNvcmUvYmluZGluZ3MvanMvSlNJbnQ4QXJyYXlDdXN0b20uY3BwCkBA
IC0yNywxMCArMjcsMTAgQEAKIAogI2lmIEVOQUJMRSgzRF9DQU5WQVMpIHx8IEVOQUJMRShCTE9C
KQogCi0jaW5jbHVkZSAiSlNBcnJheUJ1ZmZlclZpZXdIZWxwZXIuaCIKICNpbmNsdWRlICJKU0lu
dDhBcnJheS5oIgogCiAjaW5jbHVkZSAiSW50OEFycmF5LmgiCisjaW5jbHVkZSAiSlNBcnJheUJ1
ZmZlclZpZXdIZWxwZXIuaCIKICNpbmNsdWRlIDxydW50aW1lL0Vycm9yLmg+CiAKIHVzaW5nIG5h
bWVzcGFjZSBKU0M7CkBAIC01NSw3ICs1NSw3IEBAIEpTQzo6SlNWYWx1ZSBKU0ludDhBcnJheTo6
c2V0KEpTQzo6RXhlY1N0YXRlKiBleGVjKQogRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBK
U0ludDhBcnJheUNvbnN0cnVjdG9yOjpjb25zdHJ1Y3RKU0ludDhBcnJheShFeGVjU3RhdGUqIGV4
ZWMpCiB7CiAgICAgSlNJbnQ4QXJyYXlDb25zdHJ1Y3RvcioganNDb25zdHJ1Y3RvciA9IHN0YXRp
Y19jYXN0PEpTSW50OEFycmF5Q29uc3RydWN0b3IqPihleGVjLT5jYWxsZWUoKSk7Ci0gICAgUmVm
UHRyPEludDhBcnJheT4gYXJyYXkgPSBzdGF0aWNfY2FzdDxJbnQ4QXJyYXkqPihjb25zdHJ1Y3RB
cnJheUJ1ZmZlclZpZXc8SW50OEFycmF5LCBzaWduZWQgY2hhcj4oZXhlYykuZ2V0KCkpOworICAg
IFJlZlB0cjxJbnQ4QXJyYXk+IGFycmF5ID0gY29uc3RydWN0QXJyYXlCdWZmZXJWaWV3PEludDhB
cnJheSwgc2lnbmVkIGNoYXI+KGV4ZWMpOwogICAgIGlmICghYXJyYXkuZ2V0KCkpCiAgICAgICAg
IC8vIEV4Y2VwdGlvbiBoYXMgYWxyZWFkeSBiZWVuIHRocm93bi4KICAgICAgICAgcmV0dXJuIEpT
VmFsdWU6OmVuY29kZShKU1ZhbHVlKCkpOwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9iaW5kaW5ncy9q
cy9KU1VpbnQxNkFycmF5Q3VzdG9tLmNwcCBiL1dlYkNvcmUvYmluZGluZ3MvanMvSlNVaW50MTZB
cnJheUN1c3RvbS5jcHAKaW5kZXggOWYxMmZhNy4uNmEwMjRlZSAxMDA2NDQKLS0tIGEvV2ViQ29y
ZS9iaW5kaW5ncy9qcy9KU1VpbnQxNkFycmF5Q3VzdG9tLmNwcAorKysgYi9XZWJDb3JlL2JpbmRp
bmdzL2pzL0pTVWludDE2QXJyYXlDdXN0b20uY3BwCkBAIC0yNyw5ICsyNyw5IEBACiAKICNpZiBF
TkFCTEUoM0RfQ0FOVkFTKSB8fCBFTkFCTEUoQkxPQikKIAotI2luY2x1ZGUgIkpTQXJyYXlCdWZm
ZXJWaWV3SGVscGVyLmgiCiAjaW5jbHVkZSAiSlNVaW50MTZBcnJheS5oIgogCisjaW5jbHVkZSAi
SlNBcnJheUJ1ZmZlclZpZXdIZWxwZXIuaCIKICNpbmNsdWRlICJVaW50MTZBcnJheS5oIgogCiB1
c2luZyBuYW1lc3BhY2UgSlNDOwpAQCAtNTQsNyArNTQsNyBAQCBKU0M6OkpTVmFsdWUgSlNVaW50
MTZBcnJheTo6c2V0KEpTQzo6RXhlY1N0YXRlKiBleGVjKQogRW5jb2RlZEpTVmFsdWUgSlNDX0hP
U1RfQ0FMTCBKU1VpbnQxNkFycmF5Q29uc3RydWN0b3I6OmNvbnN0cnVjdEpTVWludDE2QXJyYXko
RXhlY1N0YXRlKiBleGVjKQogewogICAgIEpTVWludDE2QXJyYXlDb25zdHJ1Y3RvcioganNDb25z
dHJ1Y3RvciA9IHN0YXRpY19jYXN0PEpTVWludDE2QXJyYXlDb25zdHJ1Y3Rvcio+KGV4ZWMtPmNh
bGxlZSgpKTsKLSAgICBSZWZQdHI8VWludDE2QXJyYXk+IGFycmF5ID0gc3RhdGljX2Nhc3Q8VWlu
dDE2QXJyYXkqPihjb25zdHJ1Y3RBcnJheUJ1ZmZlclZpZXc8VWludDE2QXJyYXksIHVuc2lnbmVk
IHNob3J0PihleGVjKS5nZXQoKSk7CisgICAgUmVmUHRyPFVpbnQxNkFycmF5PiBhcnJheSA9IGNv
bnN0cnVjdEFycmF5QnVmZmVyVmlldzxVaW50MTZBcnJheSwgdW5zaWduZWQgc2hvcnQ+KGV4ZWMp
OwogICAgIGlmICghYXJyYXkuZ2V0KCkpCiAgICAgICAgIC8vIEV4Y2VwdGlvbiBoYXMgYWxyZWFk
eSBiZWVuIHRocm93bi4KICAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShKU1ZhbHVlKCkp
OwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1VpbnQzMkFycmF5Q3VzdG9tLmNw
cCBiL1dlYkNvcmUvYmluZGluZ3MvanMvSlNVaW50MzJBcnJheUN1c3RvbS5jcHAKaW5kZXggYzc1
Nzc4Ni4uMzRlYjhkZSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1VpbnQzMkFy
cmF5Q3VzdG9tLmNwcAorKysgYi9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTVWludDMyQXJyYXlDdXN0
b20uY3BwCkBAIC0yNyw5ICsyNyw5IEBACiAKICNpZiBFTkFCTEUoM0RfQ0FOVkFTKSB8fCBFTkFC
TEUoQkxPQikKIAotI2luY2x1ZGUgIkpTQXJyYXlCdWZmZXJWaWV3SGVscGVyLmgiCiAjaW5jbHVk
ZSAiSlNVaW50MzJBcnJheS5oIgogCisjaW5jbHVkZSAiSlNBcnJheUJ1ZmZlclZpZXdIZWxwZXIu
aCIKICNpbmNsdWRlICJVaW50MzJBcnJheS5oIgogCiB1c2luZyBuYW1lc3BhY2UgSlNDOwpAQCAt
NTQsNyArNTQsNyBAQCBKU0M6OkpTVmFsdWUgSlNVaW50MzJBcnJheTo6c2V0KEpTQzo6RXhlY1N0
YXRlKiBleGVjKQogRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBKU1VpbnQzMkFycmF5Q29u
c3RydWN0b3I6OmNvbnN0cnVjdEpTVWludDMyQXJyYXkoRXhlY1N0YXRlKiBleGVjKQogewogICAg
IEpTVWludDMyQXJyYXlDb25zdHJ1Y3RvcioganNDb25zdHJ1Y3RvciA9IHN0YXRpY19jYXN0PEpT
VWludDMyQXJyYXlDb25zdHJ1Y3Rvcio+KGV4ZWMtPmNhbGxlZSgpKTsKLSAgICBSZWZQdHI8VWlu
dDMyQXJyYXk+IGFycmF5ID0gc3RhdGljX2Nhc3Q8VWludDMyQXJyYXkqPihjb25zdHJ1Y3RBcnJh
eUJ1ZmZlclZpZXc8VWludDMyQXJyYXksIHVuc2lnbmVkIGludD4oZXhlYykuZ2V0KCkpOworICAg
IFJlZlB0cjxVaW50MzJBcnJheT4gYXJyYXkgPSBjb25zdHJ1Y3RBcnJheUJ1ZmZlclZpZXc8VWlu
dDMyQXJyYXksIHVuc2lnbmVkIGludD4oZXhlYyk7CiAgICAgaWYgKCFhcnJheS5nZXQoKSkKICAg
ICAgICAgLy8gRXhjZXB0aW9uIGhhcyBhbHJlYWR5IGJlZW4gdGhyb3duLgogICAgICAgICByZXR1
cm4gSlNWYWx1ZTo6ZW5jb2RlKEpTVmFsdWUoKSk7CmRpZmYgLS1naXQgYS9XZWJDb3JlL2JpbmRp
bmdzL2pzL0pTVWludDhBcnJheUN1c3RvbS5jcHAgYi9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTVWlu
dDhBcnJheUN1c3RvbS5jcHAKaW5kZXggYWRmNjBhOS4uYTllZDczZiAxMDA2NDQKLS0tIGEvV2Vi
Q29yZS9iaW5kaW5ncy9qcy9KU1VpbnQ4QXJyYXlDdXN0b20uY3BwCisrKyBiL1dlYkNvcmUvYmlu
ZGluZ3MvanMvSlNVaW50OEFycmF5Q3VzdG9tLmNwcApAQCAtMjcsOSArMjcsOSBAQAogCiAjaWYg
RU5BQkxFKDNEX0NBTlZBUykgfHwgRU5BQkxFKEJMT0IpCiAKLSNpbmNsdWRlICJKU0FycmF5QnVm
ZmVyVmlld0hlbHBlci5oIgogI2luY2x1ZGUgIkpTVWludDhBcnJheS5oIgogCisjaW5jbHVkZSAi
SlNBcnJheUJ1ZmZlclZpZXdIZWxwZXIuaCIKICNpbmNsdWRlICJVaW50OEFycmF5LmgiCiAKIHVz
aW5nIG5hbWVzcGFjZSBKU0M7CkBAIC01NCw3ICs1NCw3IEBAIEpTQzo6SlNWYWx1ZSBKU1VpbnQ4
QXJyYXk6OnNldChKU0M6OkV4ZWNTdGF0ZSogZXhlYykKIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NU
X0NBTEwgSlNVaW50OEFycmF5Q29uc3RydWN0b3I6OmNvbnN0cnVjdEpTVWludDhBcnJheShFeGVj
U3RhdGUqIGV4ZWMpCiB7CiAgICAgSlNVaW50OEFycmF5Q29uc3RydWN0b3IqIGpzQ29uc3RydWN0
b3IgPSBzdGF0aWNfY2FzdDxKU1VpbnQ4QXJyYXlDb25zdHJ1Y3Rvcio+KGV4ZWMtPmNhbGxlZSgp
KTsKLSAgICBSZWZQdHI8VWludDhBcnJheT4gYXJyYXkgPSBzdGF0aWNfY2FzdDxVaW50OEFycmF5
Kj4oY29uc3RydWN0QXJyYXlCdWZmZXJWaWV3PFVpbnQ4QXJyYXksIHVuc2lnbmVkIGNoYXI+KGV4
ZWMpLmdldCgpKTsKKyAgICBSZWZQdHI8VWludDhBcnJheT4gYXJyYXkgPSBjb25zdHJ1Y3RBcnJh
eUJ1ZmZlclZpZXc8VWludDhBcnJheSwgdW5zaWduZWQgY2hhcj4oZXhlYyk7CiAgICAgaWYgKCFh
cnJheS5nZXQoKSkKICAgICAgICAgLy8gRXhjZXB0aW9uIGhhcyBhbHJlYWR5IGJlZW4gdGhyb3du
LgogICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKEpTVmFsdWUoKSk7CmRpZmYgLS1naXQg
YS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOEFycmF5QnVmZmVyVmlld0N1c3RvbS5oIGIv
V2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhBcnJheUJ1ZmZlclZpZXdDdXN0b20uaAppbmRl
eCAyNTY2YjY3Li42ODgxYTAxIDEwMDY0NAotLS0gYS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3Rv
bS9WOEFycmF5QnVmZmVyVmlld0N1c3RvbS5oCisrKyBiL1dlYkNvcmUvYmluZGluZ3MvdjgvY3Vz
dG9tL1Y4QXJyYXlCdWZmZXJWaWV3Q3VzdG9tLmgKQEAgLTI4LDI3ICsyOCw2NCBAQAogICogT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4KICAqLwogCi0jaW5jbHVkZSAiY29uZmlnLmgiCisjaWZuZGVmIFY4QXJyYXlCdWZm
ZXJWaWV3Q3VzdG9tX2gKKyNkZWZpbmUgVjhBcnJheUJ1ZmZlclZpZXdDdXN0b21faAogCiAjaWYg
RU5BQkxFKDNEX0NBTlZBUykgfHwgRU5BQkxFKEJMT0IpCiAKICNpbmNsdWRlICJBcnJheUJ1ZmZl
ci5oIgogCi0jaW5jbHVkZSAiVjhCaW5kaW5nLmgiCiAjaW5jbHVkZSAiVjhBcnJheUJ1ZmZlci5o
IgorI2luY2x1ZGUgIlY4QmluZGluZy5oIgogI2luY2x1ZGUgIlY4UHJveHkuaCIKIAogbmFtZXNw
YWNlIFdlYkNvcmUgewogCiAvLyBUZW1wbGF0ZSBmdW5jdGlvbiB1c2VkIGJ5IHRoZSBBcnJheUJ1
ZmZlclZpZXcqQ29uc3RydWN0b3IgY2FsbGJhY2tzLgogdGVtcGxhdGU8Y2xhc3MgQXJyYXlDbGFz
cywgY2xhc3MgRWxlbWVudFR5cGU+Cit2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gY29uc3RydWN0V2Vi
R0xBcnJheVdpdGhBcnJheUJ1ZmZlckFyZ3VtZW50KGNvbnN0IHY4OjpBcmd1bWVudHMmIGFyZ3Ms
IFdyYXBwZXJUeXBlSW5mbyogdHlwZSwgdjg6OkV4dGVybmFsQXJyYXlUeXBlIGFycmF5VHlwZSwg
Ym9vbCBoYXNJbmRleGVyKQoreworICAgIEFycmF5QnVmZmVyKiBidWYgPSBWOEFycmF5QnVmZmVy
Ojp0b05hdGl2ZShhcmdzWzBdLT5Ub09iamVjdCgpKTsKKyAgICBpZiAoIWJ1ZikKKyAgICAgICAg
cmV0dXJuIHRocm93RXJyb3IoIkNvdWxkIG5vdCBjb252ZXJ0IGFyZ3VtZW50IDAgdG8gYSBBcnJh
eUJ1ZmZlciIpOworICAgIGJvb2wgb2s7CisgICAgdWludDMyX3Qgb2Zmc2V0ID0gMDsKKyAgICBp
bnQgYXJnTGVuID0gYXJncy5MZW5ndGgoKTsKKyAgICBpZiAoYXJnTGVuID4gMSkgeworICAgICAg
ICBvZmZzZXQgPSB0b1VJbnQzMihhcmdzWzFdLCBvayk7CisgICAgICAgIGlmICghb2spCisgICAg
ICAgICAgICByZXR1cm4gdGhyb3dFcnJvcigiQ291bGQgbm90IGNvbnZlcnQgYXJndW1lbnQgMSB0
byBhIG51bWJlciIpOworICAgIH0KKyAgICBpZiAoKGJ1Zi0+Ynl0ZUxlbmd0aCgpIC0gb2Zmc2V0
KSAlIHNpemVvZihFbGVtZW50VHlwZSkpCisgICAgICAgIHJldHVybiB0aHJvd0Vycm9yKCJBcnJh
eUJ1ZmZlciBsZW5ndGggbWludXMgdGhlIGJ5dGVPZmZzZXQgaXMgbm90IGEgbXVsdGlwbGUgb2Yg
dGhlIGVsZW1lbnQgc2l6ZS4iLCBWOFByb3h5OjpSYW5nZUVycm9yKTsKKyAgICB1aW50MzJfdCBs
ZW5ndGggPSAoYnVmLT5ieXRlTGVuZ3RoKCkgLSBvZmZzZXQpIC8gc2l6ZW9mKEVsZW1lbnRUeXBl
KTsKKyAgICBpZiAoYXJnTGVuID4gMikgeworICAgICAgICBsZW5ndGggPSB0b1VJbnQzMihhcmdz
WzJdLCBvayk7CisgICAgICAgIGlmICghb2spCisgICAgICAgICAgICByZXR1cm4gdGhyb3dFcnJv
cigiQ291bGQgbm90IGNvbnZlcnQgYXJndW1lbnQgMiB0byBhIG51bWJlciIpOworICAgIH0KKwor
ICAgIFJlZlB0cjxBcnJheUNsYXNzPiBhcnJheSA9IEFycmF5Q2xhc3M6OmNyZWF0ZShidWYsIG9m
ZnNldCwgbGVuZ3RoKTsKKyAgICBpZiAoIWFycmF5KSB7CisgICAgICAgIFY4UHJveHk6OnNldERP
TUV4Y2VwdGlvbihJTkRFWF9TSVpFX0VSUik7CisgICAgICAgIHJldHVybiBub3RIYW5kbGVkQnlJ
bnRlcmNlcHRvcigpOworICAgIH0KKyAgICAvLyBUcmFuc2Zvcm0gdGhlIGhvbGRlciBpbnRvIGEg
d3JhcHBlciBvYmplY3QgZm9yIHRoZSBhcnJheS4KKyAgICBWOERPTVdyYXBwZXI6OnNldERPTVdy
YXBwZXIoYXJncy5Ib2xkZXIoKSwgdHlwZSwgYXJyYXkuZ2V0KCkpOworICAgIGlmIChoYXNJbmRl
eGVyKQorICAgICAgICBhcmdzLkhvbGRlcigpLT5TZXRJbmRleGVkUHJvcGVydGllc1RvRXh0ZXJu
YWxBcnJheURhdGEoYXJyYXkuZ2V0KCktPmJhc2VBZGRyZXNzKCksIGFycmF5VHlwZSwgYXJyYXku
Z2V0KCktPmxlbmd0aCgpKTsKKyAgICByZXR1cm4gdG9WOChhcnJheS5yZWxlYXNlKCksIGFyZ3Mu
SG9sZGVyKCkpOworfQorCisvLyBUZW1wbGF0ZSBmdW5jdGlvbiB1c2VkIGJ5IHRoZSBBcnJheUJ1
ZmZlclZpZXcqQ29uc3RydWN0b3IgY2FsbGJhY2tzLgordGVtcGxhdGU8Y2xhc3MgQXJyYXlDbGFz
cywgY2xhc3MgRWxlbWVudFR5cGU+CiB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gY29uc3RydWN0V2Vi
R0xBcnJheShjb25zdCB2ODo6QXJndW1lbnRzJiBhcmdzLCBXcmFwcGVyVHlwZUluZm8qIHR5cGUs
IHY4OjpFeHRlcm5hbEFycmF5VHlwZSBhcnJheVR5cGUpCiB7CiAgICAgaWYgKCFhcmdzLklzQ29u
c3RydWN0Q2FsbCgpKQogICAgICAgICByZXR1cm4gdGhyb3dFcnJvcigiRE9NIG9iamVjdCBjb25z
dHJ1Y3RvciBjYW5ub3QgYmUgY2FsbGVkIGFzIGEgZnVuY3Rpb24uIik7CiAKICAgICBpbnQgYXJn
TGVuID0gYXJncy5MZW5ndGgoKTsKLSAgICBpZiAoYXJnTGVuID09IDApIHsKKyAgICBpZiAoIWFy
Z0xlbikgewogICAgICAgICAvLyBUaGlzIGhhcHBlbnMgd2hlbiB3ZSByZXR1cm4gYSBwcmV2aW91
c2x5IGNvbnN0cnVjdGVkCiAgICAgICAgIC8vIEFycmF5QnVmZmVyVmlldywgZS5nLiBmcm9tIHRo
ZSBjYWxsIHRvIDxUeXBlPkFycmF5LnNsaWNlKCkuCiAgICAgICAgIC8vIFRoZSBWOERPTVdyYXBw
ZXIgd2lsbCBzZXQgdGhlIGludGVybmFsIHBvaW50ZXIgaW4gdGhlCkBAIC04MywzNiArMTIwLDgg
QEAgdjg6OkhhbmRsZTx2ODo6VmFsdWU+IGNvbnN0cnVjdFdlYkdMQXJyYXkoY29uc3Qgdjg6OkFy
Z3VtZW50cyYgYXJncywgV3JhcHBlclR5cGUKICAgICB9CiAKICAgICAvLyBTZWUgd2hldGhlciB0
aGUgZmlyc3QgYXJndW1lbnQgaXMgYSBBcnJheUJ1ZmZlci4KLSAgICBpZiAoVjhBcnJheUJ1ZmZl
cjo6SGFzSW5zdGFuY2UoYXJnc1swXSkpIHsKLSAgICAgICAgQXJyYXlCdWZmZXIqIGJ1ZiA9IFY4
QXJyYXlCdWZmZXI6OnRvTmF0aXZlKGFyZ3NbMF0tPlRvT2JqZWN0KCkpOwotICAgICAgICBpZiAo
IWJ1ZikKLSAgICAgICAgICAgIHJldHVybiB0aHJvd0Vycm9yKCJDb3VsZCBub3QgY29udmVydCBh
cmd1bWVudCAwIHRvIGEgQXJyYXlCdWZmZXIiKTsKLSAgICAgICAgYm9vbCBvazsKLSAgICAgICAg
dWludDMyX3Qgb2Zmc2V0ID0gMDsKLSAgICAgICAgaWYgKGFyZ0xlbiA+IDEpIHsKLSAgICAgICAg
ICAgIG9mZnNldCA9IHRvVUludDMyKGFyZ3NbMV0sIG9rKTsKLSAgICAgICAgICAgIGlmICghb2sp
Ci0gICAgICAgICAgICAgICAgcmV0dXJuIHRocm93RXJyb3IoIkNvdWxkIG5vdCBjb252ZXJ0IGFy
Z3VtZW50IDEgdG8gYSBudW1iZXIiKTsKLSAgICAgICAgfQotICAgICAgICBpZiAoKGJ1Zi0+Ynl0
ZUxlbmd0aCgpIC0gb2Zmc2V0KSAlIHNpemVvZihFbGVtZW50VHlwZSkpCi0gICAgICAgICAgICBy
ZXR1cm4gdGhyb3dFcnJvcigiQXJyYXlCdWZmZXIgbGVuZ3RoIG1pbnVzIHRoZSBieXRlT2Zmc2V0
IGlzIG5vdCBhIG11bHRpcGxlIG9mIHRoZSBlbGVtZW50IHNpemUuIiwgVjhQcm94eTo6UmFuZ2VF
cnJvcik7Ci0gICAgICAgIHVpbnQzMl90IGxlbmd0aCA9IChidWYtPmJ5dGVMZW5ndGgoKSAtIG9m
ZnNldCkgLyBzaXplb2YoRWxlbWVudFR5cGUpOwotICAgICAgICBpZiAoYXJnTGVuID4gMikgewot
ICAgICAgICAgICAgbGVuZ3RoID0gdG9VSW50MzIoYXJnc1syXSwgb2spOwotICAgICAgICAgICAg
aWYgKCFvaykKLSAgICAgICAgICAgICAgICByZXR1cm4gdGhyb3dFcnJvcigiQ291bGQgbm90IGNv
bnZlcnQgYXJndW1lbnQgMiB0byBhIG51bWJlciIpOwotICAgICAgICB9Ci0KLSAgICAgICAgUmVm
UHRyPEFycmF5Q2xhc3M+IGFycmF5ID0gQXJyYXlDbGFzczo6Y3JlYXRlKGJ1Ziwgb2Zmc2V0LCBs
ZW5ndGgpOwotICAgICAgICBpZiAoIWFycmF5KSB7Ci0gICAgICAgICAgICBWOFByb3h5OjpzZXRE
T01FeGNlcHRpb24oSU5ERVhfU0laRV9FUlIpOwotICAgICAgICAgICAgcmV0dXJuIG5vdEhhbmRs
ZWRCeUludGVyY2VwdG9yKCk7Ci0gICAgICAgIH0KLSAgICAgICAgLy8gVHJhbnNmb3JtIHRoZSBo
b2xkZXIgaW50byBhIHdyYXBwZXIgb2JqZWN0IGZvciB0aGUgYXJyYXkuCi0gICAgICAgIFY4RE9N
V3JhcHBlcjo6c2V0RE9NV3JhcHBlcihhcmdzLkhvbGRlcigpLCB0eXBlLCBhcnJheS5nZXQoKSk7
Ci0gICAgICAgIGFyZ3MuSG9sZGVyKCktPlNldEluZGV4ZWRQcm9wZXJ0aWVzVG9FeHRlcm5hbEFy
cmF5RGF0YShhcnJheS5nZXQoKS0+YmFzZUFkZHJlc3MoKSwgYXJyYXlUeXBlLCBhcnJheS5nZXQo
KS0+bGVuZ3RoKCkpOwotICAgICAgICByZXR1cm4gdG9WOChhcnJheS5yZWxlYXNlKCksIGFyZ3Mu
SG9sZGVyKCkpOwotICAgIH0KKyAgICBpZiAoVjhBcnJheUJ1ZmZlcjo6SGFzSW5zdGFuY2UoYXJn
c1swXSkpCisgICAgICByZXR1cm4gY29uc3RydWN0V2ViR0xBcnJheVdpdGhBcnJheUJ1ZmZlckFy
Z3VtZW50PEFycmF5Q2xhc3MsIEVsZW1lbnRUeXBlPihhcmdzLCB0eXBlLCBhcnJheVR5cGUsIHRy
dWUpOwogCiAgICAgdWludDMyX3QgbGVuID0gMDsKICAgICB2ODo6SGFuZGxlPHY4OjpPYmplY3Q+
IHNyY0FycmF5OwpAQCAtMjAxLDMgKzIxMCw1IEBAIHY4OjpIYW5kbGU8djg6OlZhbHVlPiBzZXRX
ZWJHTEFycmF5SGVscGVyKGNvbnN0IHY4OjpBcmd1bWVudHMmIGFyZ3MpCiB9CiAKICNlbmRpZiAv
LyBFTkFCTEUoM0RfQ0FOVkFTKQorCisjZW5kaWYgLy8gVjhBcnJheUJ1ZmZlclZpZXdDdXN0b21f
aApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhEYXRhVmlld0N1c3Rv
bS5jcHAgYi9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOERhdGFWaWV3Q3VzdG9tLmNwcApu
ZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi4xNmJkNGE1Ci0tLSAvZGV2L251bGwK
KysrIGIvV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhEYXRhVmlld0N1c3RvbS5jcHAKQEAg
LTAsMCArMSwxMjQgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgR29vZ2xlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJl
IG1ldDoKKyAqCisgKiAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiAgUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIgaW4gdGhlCisgKiAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIEFQUExFIEFORCBJVFMgQ09OVFJJQlVUT1JTICJBUyBJUyIgQU5EIEFO
WQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBUSEUgSU1QTElFRAorICogV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQorICogRElTQ0xBSU1FRC4g
SU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9S
IEFOWQorICogRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZ
LCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMKKyAqIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsKKyAqIExP
U1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhP
V0VWRVIgQ0FVU0VEIEFORAorICogT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIg
SU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBP
RgorICogVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisKKyNpZiBFTkFCTEUo
M0RfQ0FOVkFTKSB8fCBFTkFCTEUoQkxPQikKKworI2luY2x1ZGUgIkRhdGFWaWV3LmgiCisKKyNp
bmNsdWRlICJWOEFycmF5QnVmZmVyVmlld0N1c3RvbS5oIgorI2luY2x1ZGUgIlY4QmluZGluZy5o
IgorI2luY2x1ZGUgIlY4QmluZGluZ01hY3Jvcy5oIgorI2luY2x1ZGUgIlY4RGF0YVZpZXcuaCIK
KyNpbmNsdWRlICJWOFByb3h5LmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKwordjg6OkhhbmRs
ZTx2ODo6VmFsdWU+IFY4RGF0YVZpZXc6OmNvbnN0cnVjdG9yQ2FsbGJhY2soY29uc3Qgdjg6OkFy
Z3VtZW50cyYgYXJncykKK3sKKyAgICBJTkNfU1RBVFMoIkRPTS5BcnJheUJ1ZmZlci5Db25zdHJ1
Y3RvciIpOworCisgICAgaWYgKGFyZ3NbMF0tPklzTnVsbCgpIHx8ICFWOEFycmF5QnVmZmVyOjpI
YXNJbnN0YW5jZShhcmdzWzBdKSkKKyAgICAgICAgcmV0dXJuIFY4UHJveHk6OnRocm93VHlwZUVy
cm9yKCk7CisgICAgcmV0dXJuIGNvbnN0cnVjdFdlYkdMQXJyYXlXaXRoQXJyYXlCdWZmZXJBcmd1
bWVudDxEYXRhVmlldywgY2hhcj4oYXJncywgJmluZm8sIHY4OjprRXh0ZXJuYWxCeXRlQXJyYXks
IGZhbHNlKTsKK30KKwordjg6OkhhbmRsZTx2ODo6VmFsdWU+IHRvVjgoRGF0YVZpZXcqIGltcGwp
Cit7CisgICAgaWYgKCFpbXBsKQorICAgICAgICByZXR1cm4gdjg6Ok51bGwoKTsKKyAgICByZXR1
cm4gVjhEYXRhVmlldzo6d3JhcChpbXBsKTsKK30KKwordjg6OkhhbmRsZTx2ODo6VmFsdWU+IFY4
RGF0YVZpZXc6OmdldEludDhDYWxsYmFjayhjb25zdCB2ODo6QXJndW1lbnRzJiBhcmdzKQorewor
ICAgIElOQ19TVEFUUygiRE9NLkRhdGFWaWV3LmdldEludDgiKTsKKyAgICBpZiAoYXJncy5MZW5n
dGgoKSA8IDEpCisgICAgICAgIHJldHVybiB0aHJvd0Vycm9yKCJOb3QgZW5vdWdoIGFyZ3VtZW50
cyIsIFY4UHJveHk6OlN5bnRheEVycm9yKTsKKworICAgIERhdGFWaWV3KiBpbXAgPSBWOERhdGFW
aWV3Ojp0b05hdGl2ZShhcmdzLkhvbGRlcigpKTsKKyAgICBFeGNlcHRpb25Db2RlIGVjID0gMDsK
KyAgICBFWENFUFRJT05fQkxPQ0sodW5zaWduZWQsIGJ5dGVPZmZzZXQsIHRvVUludDMyKGFyZ3Nb
MF0pKTsKKyAgICBjaGFyIHJlc3VsdCA9IGltcC0+Z2V0SW50OChieXRlT2Zmc2V0LCBlYyk7Cisg
ICAgaWYgKFVOTElLRUxZKGVjKSkgeworICAgICAgICBWOFByb3h5OjpzZXRET01FeGNlcHRpb24o
ZWMpOworICAgICAgICByZXR1cm4gdjg6OkhhbmRsZTx2ODo6VmFsdWU+KCk7CisgICAgfQorICAg
IHJldHVybiB2ODo6SW50ZWdlcjo6TmV3KHJlc3VsdCk7Cit9CisKK3Y4OjpIYW5kbGU8djg6OlZh
bHVlPiBWOERhdGFWaWV3OjpnZXRVaW50OENhbGxiYWNrKGNvbnN0IHY4OjpBcmd1bWVudHMmIGFy
Z3MpCit7CisgICAgSU5DX1NUQVRTKCJET00uRGF0YVZpZXcuZ2V0VWludDgiKTsKKyAgICBpZiAo
YXJncy5MZW5ndGgoKSA8IDEpCisgICAgICAgIHJldHVybiB0aHJvd0Vycm9yKCJOb3QgZW5vdWdo
IGFyZ3VtZW50cyIsIFY4UHJveHk6OlN5bnRheEVycm9yKTsKKworICAgIERhdGFWaWV3KiBpbXAg
PSBWOERhdGFWaWV3Ojp0b05hdGl2ZShhcmdzLkhvbGRlcigpKTsKKyAgICBFeGNlcHRpb25Db2Rl
IGVjID0gMDsKKyAgICBFWENFUFRJT05fQkxPQ0sodW5zaWduZWQsIGJ5dGVPZmZzZXQsIHRvVUlu
dDMyKGFyZ3NbMF0pKTsKKyAgICB1bnNpZ25lZCBjaGFyIHJlc3VsdCA9IGltcC0+Z2V0VWludDgo
Ynl0ZU9mZnNldCwgZWMpOworICAgIGlmIChVTkxJS0VMWShlYykpIHsKKyAgICAgICAgVjhQcm94
eTo6c2V0RE9NRXhjZXB0aW9uKGVjKTsKKyAgICAgICAgcmV0dXJuIHY4OjpIYW5kbGU8djg6OlZh
bHVlPigpOworICAgIH0KKyAgICByZXR1cm4gdjg6OkludGVnZXI6Ok5ldyhyZXN1bHQpOworfQor
Cit2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gVjhEYXRhVmlldzo6c2V0SW50OENhbGxiYWNrKGNvbnN0
IHY4OjpBcmd1bWVudHMmIGFyZ3MpCit7CisgICAgSU5DX1NUQVRTKCJET00uRGF0YVZpZXcuc2V0
SW50OCIpOworICAgIGlmIChhcmdzLkxlbmd0aCgpIDwgMikKKyAgICAgICAgcmV0dXJuIHRocm93
RXJyb3IoIk5vdCBlbm91Z2ggYXJndW1lbnRzIiwgVjhQcm94eTo6U3ludGF4RXJyb3IpOworCisg
ICAgRGF0YVZpZXcqIGltcCA9IFY4RGF0YVZpZXc6OnRvTmF0aXZlKGFyZ3MuSG9sZGVyKCkpOwor
ICAgIEV4Y2VwdGlvbkNvZGUgZWMgPSAwOworICAgIEVYQ0VQVElPTl9CTE9DSyh1bnNpZ25lZCwg
Ynl0ZU9mZnNldCwgdG9VSW50MzIoYXJnc1swXSkpOworICAgIEVYQ0VQVElPTl9CTE9DSyhpbnQs
IHZhbHVlLCB0b0ludDMyKGFyZ3NbMV0pKTsKKyAgICBpbXAtPnNldEludDgoYnl0ZU9mZnNldCwg
c3RhdGljX2Nhc3Q8Y2hhcj4odmFsdWUpLCBlYyk7CisgICAgaWYgKFVOTElLRUxZKGVjKSkKKyAg
ICAgICAgVjhQcm94eTo6c2V0RE9NRXhjZXB0aW9uKGVjKTsKKyAgICByZXR1cm4gdjg6OkhhbmRs
ZTx2ODo6VmFsdWU+KCk7Cit9CisKK3Y4OjpIYW5kbGU8djg6OlZhbHVlPiBWOERhdGFWaWV3Ojpz
ZXRVaW50OENhbGxiYWNrKGNvbnN0IHY4OjpBcmd1bWVudHMmIGFyZ3MpCit7CisgICAgSU5DX1NU
QVRTKCJET00uRGF0YVZpZXcuc2V0VWludDgiKTsKKyAgICBpZiAoYXJncy5MZW5ndGgoKSA8IDIp
CisgICAgICAgIHJldHVybiB0aHJvd0Vycm9yKCJOb3QgZW5vdWdoIGFyZ3VtZW50cyIsIFY4UHJv
eHk6OlN5bnRheEVycm9yKTsKKworICAgIERhdGFWaWV3KiBpbXAgPSBWOERhdGFWaWV3Ojp0b05h
dGl2ZShhcmdzLkhvbGRlcigpKTsKKyAgICBFeGNlcHRpb25Db2RlIGVjID0gMDsKKyAgICBFWENF
UFRJT05fQkxPQ0sodW5zaWduZWQsIGJ5dGVPZmZzZXQsIHRvVUludDMyKGFyZ3NbMF0pKTsKKyAg
ICBFWENFUFRJT05fQkxPQ0soaW50LCB2YWx1ZSwgdG9JbnQzMihhcmdzWzFdKSk7CisgICAgaW1w
LT5zZXRVaW50OChieXRlT2Zmc2V0LCBzdGF0aWNfY2FzdDx1bnNpZ25lZCBjaGFyPih2YWx1ZSks
IGVjKTsKKyAgICBpZiAoVU5MSUtFTFkoZWMpKQorICAgICAgICBWOFByb3h5OjpzZXRET01FeGNl
cHRpb24oZWMpOworICAgIHJldHVybiB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4oKTsKK30KKworfSAv
LyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gRU5BQkxFKDNEX0NBTlZBUykgfHwgRU5B
QkxFKEJMT0IpCmRpZmYgLS1naXQgYS9XZWJDb3JlL2h0bWwvY2FudmFzL0FycmF5QnVmZmVyVmll
dy5oIGIvV2ViQ29yZS9odG1sL2NhbnZhcy9BcnJheUJ1ZmZlclZpZXcuaAppbmRleCBkMzdiYWRh
Li43MDFhYmJjIDEwMDY0NAotLS0gYS9XZWJDb3JlL2h0bWwvY2FudmFzL0FycmF5QnVmZmVyVmll
dy5oCisrKyBiL1dlYkNvcmUvaHRtbC9jYW52YXMvQXJyYXlCdWZmZXJWaWV3LmgKQEAgLTQ2LDYg
KzQ2LDcgQEAgY2xhc3MgQXJyYXlCdWZmZXJWaWV3IDogcHVibGljIFJlZkNvdW50ZWQ8QXJyYXlC
dWZmZXJWaWV3PiB7CiAgICAgdmlydHVhbCBib29sIGlzSW50QXJyYXkoKSBjb25zdCB7IHJldHVy
biBmYWxzZTsgfQogICAgIHZpcnR1YWwgYm9vbCBpc1Vuc2lnbmVkSW50QXJyYXkoKSBjb25zdCB7
IHJldHVybiBmYWxzZTsgfQogICAgIHZpcnR1YWwgYm9vbCBpc0Zsb2F0QXJyYXkoKSBjb25zdCB7
IHJldHVybiBmYWxzZTsgfQorICAgIHZpcnR1YWwgYm9vbCBpc0RhdGFWaWV3KCkgY29uc3QgeyBy
ZXR1cm4gZmFsc2U7IH0KIAogICAgIFBhc3NSZWZQdHI8QXJyYXlCdWZmZXI+IGJ1ZmZlcigpIGNv
bnN0CiAgICAgewpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9odG1sL2NhbnZhcy9EYXRhVmlldy5jcHAg
Yi9XZWJDb3JlL2h0bWwvY2FudmFzL0RhdGFWaWV3LmNwcApuZXcgZmlsZSBtb2RlIDEwMDc1NQpp
bmRleCAwMDAwMDAwLi5kMDMwMjExCi0tLSAvZGV2L251bGwKKysrIGIvV2ViQ29yZS9odG1sL2Nh
bnZhcy9EYXRhVmlldy5jcHAKQEAgLTAsMCArMSwyMjggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMp
IDIwMTAgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
KyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqCisgKiAxLiAgUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
CisgKiAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICAgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4K
KyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIEFORCBJVFMgQ09OVFJJ
QlVUT1JTICJBUyBJUyIgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAorICogV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NF
IEFSRQorICogRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgT1IgSVRTIENPTlRS
SUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWQorICogRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMKKyAqIChJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsKKyAqIExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORAorICogT04gQU5ZIFRIRU9SWSBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRSBPRgorICogVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29u
ZmlnLmgiCisKKyNpZiBFTkFCTEUoM0RfQ0FOVkFTKSB8fCBFTkFCTEUoQkxPQikKKworI2luY2x1
ZGUgIkRhdGFWaWV3LmgiCisKK25hbWVzcGFjZSB7CisKK3RlbXBsYXRlPHR5cGVuYW1lIFQ+Cit1
bmlvbiBWYWx1ZSB7CisgICAgVCBkYXRhOworICAgIGNoYXIgYnl0ZXNbc2l6ZW9mKFQpXTsKK307
CisKK30KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitQYXNzUmVmUHRyPERhdGFWaWV3PiBEYXRh
Vmlldzo6Y3JlYXRlKFBhc3NSZWZQdHI8QXJyYXlCdWZmZXI+IGJ1ZmZlciwgdW5zaWduZWQgYnl0
ZU9mZnNldCwgdW5zaWduZWQgYnl0ZUxlbmd0aCkKK3sKKyAgICBpZiAoYnl0ZU9mZnNldCArIGJ5
dGVMZW5ndGggPiBidWZmZXItPmJ5dGVMZW5ndGgoKSkKKyAgICAgICAgcmV0dXJuIDA7CisgICAg
cmV0dXJuIGFkb3B0UmVmKG5ldyBEYXRhVmlldyhidWZmZXIsIGJ5dGVPZmZzZXQsIGJ5dGVMZW5n
dGgpKTsKK30KKworRGF0YVZpZXc6OkRhdGFWaWV3KFBhc3NSZWZQdHI8QXJyYXlCdWZmZXI+IGJ1
ZmZlciwgdW5zaWduZWQgYnl0ZU9mZnNldCwgdW5zaWduZWQgYnl0ZUxlbmd0aCkKKyAgICA6IEFy
cmF5QnVmZmVyVmlldyhidWZmZXIsIGJ5dGVPZmZzZXQpCisgICAgLCBtX2J5dGVMZW5ndGgoYnl0
ZUxlbmd0aCkKK3sKK30KKworc3RhdGljIGJvb2wgbmVlZFRvRmxpcEJ5dGVzKGJvb2wgbGl0dGxl
RW5kaWFuKQoreworI2lmIENQVShCSUdfRU5ESUFOKQorICAgIHJldHVybiBsaXR0bGVFbmRpYW47
CisjZWxzZQorICAgIHJldHVybiAhbGl0dGxlRW5kaWFuOworI2VuZGlmCit9CisKK2lubGluZSB2
b2lkIHN3YXBCeXRlcyhjaGFyKiBwLCBjaGFyKiBxKQoreworICAgIGNoYXIgdGVtcCA9ICpwOwor
ICAgICpwID0gKnE7CisgICAgKnEgPSB0ZW1wOworfQorCitzdGF0aWMgdm9pZCBmbGlwQnl0ZXNG
b3IxNkJpdHMoY2hhciogcCkKK3sKKyAgICBzd2FwQnl0ZXMocCwgcCArIDEpOworfQorCitzdGF0
aWMgdm9pZCBmbGlwQnl0ZXNGb3IzMkJpdHMoY2hhciogcCkKK3sKKyAgICBzd2FwQnl0ZXMocCwg
cCArIDMpOworICAgIHN3YXBCeXRlcyhwICsgMSwgcCArIDIpOworfQorCitzdGF0aWMgdm9pZCBm
bGlwQnl0ZXNGb3I2NEJpdHMoY2hhciogcCkKK3sKKyAgICBzd2FwQnl0ZXMocCwgcCArIDcpOwor
ICAgIHN3YXBCeXRlcyhwICsgMSwgcCArIDYpOworICAgIHN3YXBCeXRlcyhwICsgMiwgcCArIDUp
OworICAgIHN3YXBCeXRlcyhwICsgMywgcCArIDQpOworfQorCitzdGF0aWMgdm9pZCBmbGlwQnl0
ZXNJZk5lZWRlZChjaGFyKiB2YWx1ZSwgc2l6ZV90IHNpemUsIGJvb2wgbGl0dGxlRW5kaWFuKQor
eworICAgIGlmICghbmVlZFRvRmxpcEJ5dGVzKGxpdHRsZUVuZGlhbikpCisgICAgICAgIHJldHVy
bjsKKworICAgIHN3aXRjaCAoc2l6ZSkgeworICAgIGNhc2UgMToKKyAgICAgICAgLy8gTm90aGlu
ZyB0byBkby4KKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSAyOgorICAgICAgICBmbGlwQnl0ZXNG
b3IxNkJpdHModmFsdWUpOworICAgICAgICBicmVhazsKKyAgICBjYXNlIDQ6CisgICAgICAgIGZs
aXBCeXRlc0ZvcjMyQml0cyh2YWx1ZSk7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgODoKKyAg
ICAgICAgZmxpcEJ5dGVzRm9yNjRCaXRzKHZhbHVlKTsKKyAgICAgICAgYnJlYWs7CisgICAgZGVm
YXVsdDoKKyAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgICAgIGJyZWFrOworICAg
IH0KK30KKwordGVtcGxhdGU8dHlwZW5hbWUgVD4KK1QgRGF0YVZpZXc6OmdldERhdGEodW5zaWdu
ZWQgYnl0ZU9mZnNldCwgYm9vbCBsaXR0bGVFbmRpYW4sIEV4Y2VwdGlvbkNvZGUmIGVjKSBjb25z
dAoreworICAgIGlmIChiZXlvbmRSYW5nZTxUPihieXRlT2Zmc2V0KSkgeworICAgICAgICBlYyA9
IElOREVYX1NJWkVfRVJSOworICAgICAgICByZXR1cm4gMDsKKyAgICB9CisKKyAgICAvLyBXZSBk
byBub3Qgd2FudCB0byBsb2FkIHRoZSBkYXRhIGRpcmVjdGx5IHNpbmNlIGl0IHdvdWxkIGNhdXNl
IGEgYnVzIGVycm9yIG9uIGFyY2hpdGVjdHVyZXMgdGhhdCBkb24ndCBzdXBwb3J0IHVuYWxpZ25l
ZCBsb2Fkcy4KKyAgICBWYWx1ZTxUPiB2YWx1ZTsKKyAgICBtZW1jcHkodmFsdWUuYnl0ZXMsIHN0
YXRpY19jYXN0PGNvbnN0IGNoYXIqPihtX2Jhc2VBZGRyZXNzKSArIGJ5dGVPZmZzZXQsIHNpemVv
ZihUKSk7CisgICAgZmxpcEJ5dGVzSWZOZWVkZWQodmFsdWUuYnl0ZXMsIHNpemVvZihUKSwgbGl0
dGxlRW5kaWFuKTsKKyAgICByZXR1cm4gdmFsdWUuZGF0YTsKK30KKwordGVtcGxhdGU8dHlwZW5h
bWUgVD4KK3ZvaWQgRGF0YVZpZXc6OnNldERhdGEodW5zaWduZWQgYnl0ZU9mZnNldCwgVCB2YWx1
ZSwgYm9vbCBsaXR0bGVFbmRpYW4sIEV4Y2VwdGlvbkNvZGUmIGVjKQoreworICAgIGlmIChiZXlv
bmRSYW5nZTxUPihieXRlT2Zmc2V0KSkgeworICAgICAgICBlYyA9IElOREVYX1NJWkVfRVJSOwor
ICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgLy8gV2UgZG8gbm90IHdhbnQgdG8gc3RvcmUg
dGhlIGRhdGEgZGlyZWN0bHkgc2luY2UgaXQgd291bGQgY2F1c2UgYSBidXMgZXJyb3Igb24gYXJj
aGl0ZWN0dXJlcyB0aGF0IGRvbid0IHN1cHBvcnQgdW5hbGlnbmVkIHN0b3Jlcy4KKyAgICBWYWx1
ZTxUPiB0ZW1wVmFsdWU7CisgICAgdGVtcFZhbHVlLmRhdGEgPSB2YWx1ZTsKKyAgICBmbGlwQnl0
ZXNJZk5lZWRlZCh0ZW1wVmFsdWUuYnl0ZXMsIHNpemVvZihUKSwgbGl0dGxlRW5kaWFuKTsKKyAg
ICBtZW1jcHkoc3RhdGljX2Nhc3Q8Y2hhcio+KG1fYmFzZUFkZHJlc3MpICsgYnl0ZU9mZnNldCwg
dGVtcFZhbHVlLmJ5dGVzLCBzaXplb2YoVCkpOworfQorCitjaGFyIERhdGFWaWV3OjpnZXRJbnQ4
KHVuc2lnbmVkIGJ5dGVPZmZzZXQsIEV4Y2VwdGlvbkNvZGUmIGVjKQoreworICAgIHJldHVybiBn
ZXREYXRhPGNoYXI+KGJ5dGVPZmZzZXQsIGZhbHNlLCBlYyk7Cit9CisKK3Vuc2lnbmVkIGNoYXIg
RGF0YVZpZXc6OmdldFVpbnQ4KHVuc2lnbmVkIGJ5dGVPZmZzZXQsIEV4Y2VwdGlvbkNvZGUmIGVj
KQoreworICAgIHJldHVybiBnZXREYXRhPHVuc2lnbmVkIGNoYXI+KGJ5dGVPZmZzZXQsIGZhbHNl
LCBlYyk7Cit9CisKK3Nob3J0IERhdGFWaWV3OjpnZXRJbnQxNih1bnNpZ25lZCBieXRlT2Zmc2V0
LCBib29sIGxpdHRsZUVuZGlhbiwgRXhjZXB0aW9uQ29kZSYgZWMpCit7CisgICAgcmV0dXJuIGdl
dERhdGE8c2hvcnQ+KGJ5dGVPZmZzZXQsIGxpdHRsZUVuZGlhbiwgZWMpOworfQorCit1bnNpZ25l
ZCBzaG9ydCBEYXRhVmlldzo6Z2V0VWludDE2KHVuc2lnbmVkIGJ5dGVPZmZzZXQsIGJvb2wgbGl0
dGxlRW5kaWFuLCBFeGNlcHRpb25Db2RlJiBlYykKK3sKKyAgICByZXR1cm4gZ2V0RGF0YTx1bnNp
Z25lZCBzaG9ydD4oYnl0ZU9mZnNldCwgbGl0dGxlRW5kaWFuLCBlYyk7Cit9CisKK2ludCBEYXRh
Vmlldzo6Z2V0SW50MzIodW5zaWduZWQgYnl0ZU9mZnNldCwgYm9vbCBsaXR0bGVFbmRpYW4sIEV4
Y2VwdGlvbkNvZGUmIGVjKQoreworICAgIHJldHVybiBnZXREYXRhPGludD4oYnl0ZU9mZnNldCwg
bGl0dGxlRW5kaWFuLCBlYyk7Cit9CisKK3Vuc2lnbmVkIERhdGFWaWV3OjpnZXRVaW50MzIodW5z
aWduZWQgYnl0ZU9mZnNldCwgYm9vbCBsaXR0bGVFbmRpYW4sIEV4Y2VwdGlvbkNvZGUmIGVjKQor
eworICAgIHJldHVybiBnZXREYXRhPHVuc2lnbmVkPihieXRlT2Zmc2V0LCBsaXR0bGVFbmRpYW4s
IGVjKTsKK30KKworZmxvYXQgRGF0YVZpZXc6OmdldEZsb2F0MzIodW5zaWduZWQgYnl0ZU9mZnNl
dCwgYm9vbCBsaXR0bGVFbmRpYW4sIEV4Y2VwdGlvbkNvZGUmIGVjKQoreworICAgIHJldHVybiBn
ZXREYXRhPGZsb2F0PihieXRlT2Zmc2V0LCBsaXR0bGVFbmRpYW4sIGVjKTsKK30KKworZG91Ymxl
IERhdGFWaWV3OjpnZXRGbG9hdDY0KHVuc2lnbmVkIGJ5dGVPZmZzZXQsIGJvb2wgbGl0dGxlRW5k
aWFuLCBFeGNlcHRpb25Db2RlJiBlYykKK3sKKyAgICByZXR1cm4gZ2V0RGF0YTxkb3VibGU+KGJ5
dGVPZmZzZXQsIGxpdHRsZUVuZGlhbiwgZWMpOworfQorCit2b2lkIERhdGFWaWV3OjpzZXRJbnQ4
KHVuc2lnbmVkIGJ5dGVPZmZzZXQsIGNoYXIgdmFsdWUsIEV4Y2VwdGlvbkNvZGUmIGVjKQorewor
ICAgIHNldERhdGE8Y2hhcj4oYnl0ZU9mZnNldCwgdmFsdWUsIGZhbHNlLCBlYyk7Cit9CisKK3Zv
aWQgRGF0YVZpZXc6OnNldFVpbnQ4KHVuc2lnbmVkIGJ5dGVPZmZzZXQsIHVuc2lnbmVkIGNoYXIg
dmFsdWUsIEV4Y2VwdGlvbkNvZGUmIGVjKQoreworICAgIHNldERhdGE8dW5zaWduZWQgY2hhcj4o
Ynl0ZU9mZnNldCwgdmFsdWUsIGZhbHNlLCBlYyk7Cit9CisKK3ZvaWQgRGF0YVZpZXc6OnNldElu
dDE2KHVuc2lnbmVkIGJ5dGVPZmZzZXQsIHNob3J0IHZhbHVlLCBib29sIGxpdHRsZUVuZGlhbiwg
RXhjZXB0aW9uQ29kZSYgZWMpCit7CisgICAgc2V0RGF0YTxzaG9ydD4oYnl0ZU9mZnNldCwgdmFs
dWUsIGxpdHRsZUVuZGlhbiwgZWMpOworfQorCit2b2lkIERhdGFWaWV3OjpzZXRVaW50MTYodW5z
aWduZWQgYnl0ZU9mZnNldCwgdW5zaWduZWQgc2hvcnQgdmFsdWUsIGJvb2wgbGl0dGxlRW5kaWFu
LCBFeGNlcHRpb25Db2RlJiBlYykKK3sKKyAgICBzZXREYXRhPHVuc2lnbmVkIHNob3J0PihieXRl
T2Zmc2V0LCB2YWx1ZSwgbGl0dGxlRW5kaWFuLCBlYyk7Cit9CisKK3ZvaWQgRGF0YVZpZXc6OnNl
dEludDMyKHVuc2lnbmVkIGJ5dGVPZmZzZXQsIGludCB2YWx1ZSwgYm9vbCBsaXR0bGVFbmRpYW4s
IEV4Y2VwdGlvbkNvZGUmIGVjKQoreworICAgIHNldERhdGE8aW50PihieXRlT2Zmc2V0LCB2YWx1
ZSwgbGl0dGxlRW5kaWFuLCBlYyk7Cit9CisKK3ZvaWQgRGF0YVZpZXc6OnNldFVpbnQzMih1bnNp
Z25lZCBieXRlT2Zmc2V0LCB1bnNpZ25lZCB2YWx1ZSwgYm9vbCBsaXR0bGVFbmRpYW4sIEV4Y2Vw
dGlvbkNvZGUmIGVjKQoreworICAgIHNldERhdGE8dW5zaWduZWQ+KGJ5dGVPZmZzZXQsIHZhbHVl
LCBsaXR0bGVFbmRpYW4sIGVjKTsKK30KKwordm9pZCBEYXRhVmlldzo6c2V0RmxvYXQzMih1bnNp
Z25lZCBieXRlT2Zmc2V0LCBmbG9hdCB2YWx1ZSwgYm9vbCBsaXR0bGVFbmRpYW4sIEV4Y2VwdGlv
bkNvZGUmIGVjKQoreworICAgIHNldERhdGE8ZmxvYXQ+KGJ5dGVPZmZzZXQsIHZhbHVlLCBsaXR0
bGVFbmRpYW4sIGVjKTsKK30KKwordm9pZCBEYXRhVmlldzo6c2V0RmxvYXQ2NCh1bnNpZ25lZCBi
eXRlT2Zmc2V0LCBkb3VibGUgdmFsdWUsIGJvb2wgbGl0dGxlRW5kaWFuLCBFeGNlcHRpb25Db2Rl
JiBlYykKK3sKKyAgICBzZXREYXRhPGRvdWJsZT4oYnl0ZU9mZnNldCwgdmFsdWUsIGxpdHRsZUVu
ZGlhbiwgZWMpOworfQorCit9CisKKyNlbmRpZiAvLyBFTkFCTEUoM0RfQ0FOVkFTKSB8fCBFTkFC
TEUoQkxPQikKZGlmZiAtLWdpdCBhL1dlYkNvcmUvaHRtbC9jYW52YXMvRGF0YVZpZXcuaCBiL1dl
YkNvcmUvaHRtbC9jYW52YXMvRGF0YVZpZXcuaApuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAw
MDAwMDAwLi4wNjgxMzQxCi0tLSAvZGV2L251bGwKKysrIGIvV2ViQ29yZS9odG1sL2NhbnZhcy9E
YXRhVmlldy5oCkBAIC0wLDAgKzEsOTIgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgR29v
Z2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucworICogYXJlIG1ldDoKKyAqCisgKiAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiAg
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIEFORCBJVFMgQ09OVFJJQlVUT1JTICJB
UyBJUyIgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAorICogV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQorICog
RElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgT1IgSVRTIENPTlRSSUJVVE9SUyBC
RSBMSUFCTEUgRk9SIEFOWQorICogRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lB
TCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMKKyAqIChJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsKKyAqIExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORAorICogT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRSBPRgorICogVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIERhdGFWaWV3X2gKKyNk
ZWZpbmUgRGF0YVZpZXdfaAorCisjaW5jbHVkZSAiQXJyYXlCdWZmZXJWaWV3LmgiCisjaW5jbHVk
ZSAiRXhjZXB0aW9uQ29kZS5oIgorI2luY2x1ZGUgPHd0Zi9QYXNzUmVmUHRyLmg+CisKK25hbWVz
cGFjZSBXZWJDb3JlIHsKKworY2xhc3MgRGF0YVZpZXcgOiBwdWJsaWMgQXJyYXlCdWZmZXJWaWV3
IHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxEYXRhVmlldz4gY3JlYXRlKFBhc3NS
ZWZQdHI8QXJyYXlCdWZmZXI+LCB1bnNpZ25lZCBieXRlT2Zmc2V0LCB1bnNpZ25lZCBieXRlTGVu
Z3RoKTsKKworICAgIHZpcnR1YWwgYm9vbCBpc0RhdGFWaWV3KCkgY29uc3QgeyByZXR1cm4gdHJ1
ZTsgfQorICAgIHZpcnR1YWwgdW5zaWduZWQgbGVuZ3RoKCkgY29uc3QgeyByZXR1cm4gbV9ieXRl
TGVuZ3RoOyB9CisgICAgdmlydHVhbCB1bnNpZ25lZCBieXRlTGVuZ3RoKCkgY29uc3QgeyByZXR1
cm4gbV9ieXRlTGVuZ3RoOyB9CisgICAgdmlydHVhbCBQYXNzUmVmUHRyPEFycmF5QnVmZmVyVmll
dz4gc2xpY2UoaW50LCBpbnQpIGNvbnN0IHsgcmV0dXJuIDA7IH0KKworICAgIGNoYXIgZ2V0SW50
OCh1bnNpZ25lZCBieXRlT2Zmc2V0LCBFeGNlcHRpb25Db2RlJik7CisgICAgdW5zaWduZWQgY2hh
ciBnZXRVaW50OCh1bnNpZ25lZCBieXRlT2Zmc2V0LCBFeGNlcHRpb25Db2RlJik7CisgICAgc2hv
cnQgZ2V0SW50MTYodW5zaWduZWQgYnl0ZU9mZnNldCwgRXhjZXB0aW9uQ29kZSYgZWMpIHsgcmV0
dXJuIGdldEludDE2KGJ5dGVPZmZzZXQsIGZhbHNlLCBlYyk7IH0KKyAgICBzaG9ydCBnZXRJbnQx
Nih1bnNpZ25lZCBieXRlT2Zmc2V0LCBib29sIGxpdHRsZUVuZGlhbiwgRXhjZXB0aW9uQ29kZSYp
OworICAgIHVuc2lnbmVkIHNob3J0IGdldFVpbnQxNih1bnNpZ25lZCBieXRlT2Zmc2V0LCBFeGNl
cHRpb25Db2RlJiBlYykgeyByZXR1cm4gZ2V0VWludDE2KGJ5dGVPZmZzZXQsIGZhbHNlLCBlYyk7
IH0KKyAgICB1bnNpZ25lZCBzaG9ydCBnZXRVaW50MTYodW5zaWduZWQgYnl0ZU9mZnNldCwgYm9v
bCBsaXR0bGVFbmRpYW4sIEV4Y2VwdGlvbkNvZGUmKTsKKyAgICBpbnQgZ2V0SW50MzIodW5zaWdu
ZWQgYnl0ZU9mZnNldCwgRXhjZXB0aW9uQ29kZSYgZWMpIHsgcmV0dXJuIGdldEludDMyKGJ5dGVP
ZmZzZXQsIGZhbHNlLCBlYyk7IH0KKyAgICBpbnQgZ2V0SW50MzIodW5zaWduZWQgYnl0ZU9mZnNl
dCwgYm9vbCBsaXR0bGVFbmRpYW4sIEV4Y2VwdGlvbkNvZGUmKTsKKyAgICB1bnNpZ25lZCBnZXRV
aW50MzIodW5zaWduZWQgYnl0ZU9mZnNldCwgRXhjZXB0aW9uQ29kZSYgZWMpIHsgcmV0dXJuIGdl
dFVpbnQzMihieXRlT2Zmc2V0LCBmYWxzZSwgZWMpOyB9CisgICAgdW5zaWduZWQgZ2V0VWludDMy
KHVuc2lnbmVkIGJ5dGVPZmZzZXQsIGJvb2wgbGl0dGxlRW5kaWFuLCBFeGNlcHRpb25Db2RlJik7
CisgICAgZmxvYXQgZ2V0RmxvYXQzMih1bnNpZ25lZCBieXRlT2Zmc2V0LCBFeGNlcHRpb25Db2Rl
JiBlYykgeyByZXR1cm4gZ2V0RmxvYXQzMihieXRlT2Zmc2V0LCBmYWxzZSwgZWMpOyB9CisgICAg
ZmxvYXQgZ2V0RmxvYXQzMih1bnNpZ25lZCBieXRlT2Zmc2V0LCBib29sIGxpdHRsZUVuZGlhbiwg
RXhjZXB0aW9uQ29kZSYpOworICAgIGRvdWJsZSBnZXRGbG9hdDY0KHVuc2lnbmVkIGJ5dGVPZmZz
ZXQsIEV4Y2VwdGlvbkNvZGUmIGVjKSB7IHJldHVybiBnZXRGbG9hdDY0KGJ5dGVPZmZzZXQsIGZh
bHNlLCBlYyk7IH0KKyAgICBkb3VibGUgZ2V0RmxvYXQ2NCh1bnNpZ25lZCBieXRlT2Zmc2V0LCBi
b29sIGxpdHRsZUVuZGlhbiwgRXhjZXB0aW9uQ29kZSYpOworCisgICAgdm9pZCBzZXRJbnQ4KHVu
c2lnbmVkIGJ5dGVPZmZzZXQsIGNoYXIgdmFsdWUsIEV4Y2VwdGlvbkNvZGUmKTsKKyAgICB2b2lk
IHNldFVpbnQ4KHVuc2lnbmVkIGJ5dGVPZmZzZXQsIHVuc2lnbmVkIGNoYXIgdmFsdWUsIEV4Y2Vw
dGlvbkNvZGUmKTsKKyAgICB2b2lkIHNldEludDE2KHVuc2lnbmVkIGJ5dGVPZmZzZXQsIHNob3J0
IHZhbHVlLCBFeGNlcHRpb25Db2RlJiBlYykgeyBzZXRJbnQxNihieXRlT2Zmc2V0LCB2YWx1ZSwg
ZmFsc2UsIGVjKTsgfQorICAgIHZvaWQgc2V0SW50MTYodW5zaWduZWQgYnl0ZU9mZnNldCwgc2hv
cnQgdmFsdWUsIGJvb2wgbGl0dGxlRW5kaWFuLCBFeGNlcHRpb25Db2RlJik7CisgICAgdm9pZCBz
ZXRVaW50MTYodW5zaWduZWQgYnl0ZU9mZnNldCwgdW5zaWduZWQgc2hvcnQgdmFsdWUsIEV4Y2Vw
dGlvbkNvZGUmIGVjKSB7IHNldFVpbnQxNihieXRlT2Zmc2V0LCB2YWx1ZSwgZmFsc2UsIGVjKTsg
fQorICAgIHZvaWQgc2V0VWludDE2KHVuc2lnbmVkIGJ5dGVPZmZzZXQsIHVuc2lnbmVkIHNob3J0
IHZhbHVlLCBib29sIGxpdHRsZUVuZGlhbiwgRXhjZXB0aW9uQ29kZSYpOworICAgIHZvaWQgc2V0
SW50MzIodW5zaWduZWQgYnl0ZU9mZnNldCwgaW50IHZhbHVlLCBFeGNlcHRpb25Db2RlJiBlYykg
eyBzZXRJbnQzMihieXRlT2Zmc2V0LCB2YWx1ZSwgZmFsc2UsIGVjKTsgfSAKKyAgICB2b2lkIHNl
dEludDMyKHVuc2lnbmVkIGJ5dGVPZmZzZXQsIGludCB2YWx1ZSwgYm9vbCBsaXR0bGVFbmRpYW4s
IEV4Y2VwdGlvbkNvZGUmKTsKKyAgICB2b2lkIHNldFVpbnQzMih1bnNpZ25lZCBieXRlT2Zmc2V0
LCB1bnNpZ25lZCB2YWx1ZSwgRXhjZXB0aW9uQ29kZSYgZWMpIHsgc2V0VWludDMyKGJ5dGVPZmZz
ZXQsIHZhbHVlLCBmYWxzZSwgZWMpOyB9CisgICAgdm9pZCBzZXRVaW50MzIodW5zaWduZWQgYnl0
ZU9mZnNldCwgdW5zaWduZWQgdmFsdWUsIGJvb2wgbGl0dGxlRW5kaWFuLCBFeGNlcHRpb25Db2Rl
Jik7CisgICAgdm9pZCBzZXRGbG9hdDMyKHVuc2lnbmVkIGJ5dGVPZmZzZXQsIGZsb2F0IHZhbHVl
LCBFeGNlcHRpb25Db2RlJiBlYykgeyBzZXRGbG9hdDMyKGJ5dGVPZmZzZXQsIHZhbHVlLCBmYWxz
ZSwgZWMpOyB9CisgICAgdm9pZCBzZXRGbG9hdDMyKHVuc2lnbmVkIGJ5dGVPZmZzZXQsIGZsb2F0
IHZhbHVlLCBib29sIGxpdHRsZUVuZGlhbiwgRXhjZXB0aW9uQ29kZSYpOworICAgIHZvaWQgc2V0
RmxvYXQ2NCh1bnNpZ25lZCBieXRlT2Zmc2V0LCBkb3VibGUgdmFsdWUsIEV4Y2VwdGlvbkNvZGUm
IGVjKSB7IHNldEZsb2F0NjQoYnl0ZU9mZnNldCwgdmFsdWUsIGZhbHNlLCBlYyk7IH0KKyAgICB2
b2lkIHNldEZsb2F0NjQodW5zaWduZWQgYnl0ZU9mZnNldCwgZG91YmxlIHZhbHVlLCBib29sIGxp
dHRsZUVuZGlhbiwgRXhjZXB0aW9uQ29kZSYpOworCitwcml2YXRlOgorICAgIERhdGFWaWV3KFBh
c3NSZWZQdHI8QXJyYXlCdWZmZXI+LCB1bnNpZ25lZCBieXRlT2Zmc2V0LCB1bnNpZ25lZCBieXRl
TGVuZ3RoKTsKKworICAgIHRlbXBsYXRlPHR5cGVuYW1lIFQ+CisgICAgaW5saW5lIGJvb2wgYmV5
b25kUmFuZ2UodW5zaWduZWQgYnl0ZU9mZnNldCkgY29uc3QgeyByZXR1cm4gYnl0ZU9mZnNldCAr
IHNpemVvZihUKSA+IG1fYnl0ZUxlbmd0aDsgfQorCisgICAgdGVtcGxhdGU8dHlwZW5hbWUgVD4K
KyAgICBUIGdldERhdGEodW5zaWduZWQgYnl0ZU9mZnNldCwgYm9vbCBsaXR0bGVFbmRpYW4sIEV4
Y2VwdGlvbkNvZGUmKSBjb25zdDsKKworICAgIHRlbXBsYXRlPHR5cGVuYW1lIFQ+CisgICAgdm9p
ZCBzZXREYXRhKHVuc2lnbmVkIGJ5dGVPZmZzZXQsIFQgdmFsdWUsIGJvb2wgbGl0dGxlRW5kaWFu
LCBFeGNlcHRpb25Db2RlJik7CisKKyAgICB1bnNpZ25lZCBtX2J5dGVMZW5ndGg7Cit9OworCisK
K30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIERhdGFWaWV3X2gKZGlmZiAtLWdp
dCBhL1dlYkNvcmUvaHRtbC9jYW52YXMvRGF0YVZpZXcuaWRsIGIvV2ViQ29yZS9odG1sL2NhbnZh
cy9EYXRhVmlldy5pZGwKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uYmVmODgw
NQotLS0gL2Rldi9udWxsCisrKyBiL1dlYkNvcmUvaHRtbC9jYW52YXMvRGF0YVZpZXcuaWRsCkBA
IC0wLDAgKzEsODMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgR29vZ2xlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJl
IG1ldDoKKyAqCisgKiAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiAgUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIgaW4gdGhlCisgKiAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIEFQUExFIEFORCBJVFMgQ09OVFJJQlVUT1JTICJBUyBJUyIgQU5EIEFO
WQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBUSEUgSU1QTElFRAorICogV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQorICogRElTQ0xBSU1FRC4g
SU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9S
IEFOWQorICogRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZ
LCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMKKyAqIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsKKyAqIExP
U1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhP
V0VWRVIgQ0FVU0VEIEFORAorICogT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIg
SU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBP
RgorICogVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4KKyAqLworCittb2R1bGUgaHRtbCB7CisKKyAgICBpbnRlcmZhY2UgWwor
ICAgICAgICBDb25kaXRpb25hbD0zRF9DQU5WQVN8QkxPQiwKKyAgICAgICAgQ2FuQmVDb25zdHJ1
Y3RlZCwKKyAgICAgICAgQ3VzdG9tQ29uc3RydWN0RnVuY3Rpb24sCisgICAgICAgIEN1c3RvbVRv
SlMsCisgICAgICAgIE5vU3RhdGljVGFibGVzLAorICAgICAgICBWOEN1c3RvbUNvbnN0cnVjdG9y
CisgICAgXSBEYXRhVmlldyA6IEFycmF5QnVmZmVyVmlldyB7CisgICAgICAgIC8vIEFsbCB0aGVz
ZSBtZXRob2RzIHJhaXNlIGFuIGV4Y2VwdGlvbiBpZiB0aGV5IHdvdWxkIHJlYWQgb3Igd3JpdGUg
YmV5b25kIHRoZSBlbmQgb2YgdGhlIHZpZXcuCisKKyAgICAgICAgLy8gV2UgaGF2ZSB0byB1c2Ug
Y3VzdG9tIGNvZGUgYmVjYXVzZSBvdXIgY29kZSBnZW5lcmF0b3IgZG9lcyBub3Qgc3VwcG9ydCBj
aGFyIHR5cGUuCisgICAgICAgIC8vIGNoYXIgZ2V0SW50OChpbiB1bnNpZ25lZCBsb25nIGJ5dGVP
ZmZzZXQpOworICAgICAgICAvLyB1bnNpZ25lZCBjaGFyIGdldFVpbnQ4KGluIHVuc2lnbmVkIGxv
bmcgYnl0ZU9mZnNldCk7CisgICAgICAgIFtDdXN0b21dIERPTU9iamVjdCBnZXRJbnQ4KCkKKyAg
ICAgICAgICAgIHJhaXNlcyAoRE9NRXhjZXB0aW9uKTsKKyAgICAgICAgW0N1c3RvbV0gRE9NT2Jq
ZWN0IGdldFVpbnQ4KCkKKyAgICAgICAgICAgIHJhaXNlcyAoRE9NRXhjZXB0aW9uKTsKKworICAg
ICAgICBbU3RyaWN0VHlwZUNoZWNraW5nLCBSZXF1aXJlc0FsbEFyZ3VtZW50cz1SYWlzZV0gc2hv
cnQgZ2V0SW50MTYoaW4gdW5zaWduZWQgbG9uZyBieXRlT2Zmc2V0LCBpbiBbT3B0aW9uYWxdIGJv
b2xlYW4gbGl0dGxlRW5kaWFuKQorICAgICAgICAgICAgcmFpc2VzIChET01FeGNlcHRpb24pOwor
ICAgICAgICBbU3RyaWN0VHlwZUNoZWNraW5nLCBSZXF1aXJlc0FsbEFyZ3VtZW50cz1SYWlzZV0g
dW5zaWduZWQgc2hvcnQgZ2V0VWludDE2KGluIHVuc2lnbmVkIGxvbmcgYnl0ZU9mZnNldCwgaW4g
W09wdGlvbmFsXSBib29sZWFuIGxpdHRsZUVuZGlhbikKKyAgICAgICAgICAgIHJhaXNlcyAoRE9N
RXhjZXB0aW9uKTsKKyAgICAgICAgW1N0cmljdFR5cGVDaGVja2luZywgUmVxdWlyZXNBbGxBcmd1
bWVudHM9UmFpc2VdIGxvbmcgZ2V0SW50MzIoaW4gdW5zaWduZWQgbG9uZyBieXRlT2Zmc2V0LCBp
biBbT3B0aW9uYWxdIGJvb2xlYW4gbGl0dGxlRW5kaWFuKQorICAgICAgICAgICAgcmFpc2VzIChE
T01FeGNlcHRpb24pOworICAgICAgICBbU3RyaWN0VHlwZUNoZWNraW5nLCBSZXF1aXJlc0FsbEFy
Z3VtZW50cz1SYWlzZV0gdW5zaWduZWQgbG9uZyBnZXRVaW50MzIoaW4gdW5zaWduZWQgbG9uZyBi
eXRlT2Zmc2V0LCBpbiBbT3B0aW9uYWxdIGJvb2xlYW4gbGl0dGxlRW5kaWFuKQorICAgICAgICAg
ICAgcmFpc2VzIChET01FeGNlcHRpb24pOworCisgICAgICAgIC8vIFVzZSBjdXN0b20gY29kZSB0
byBoYW5kbGUgTmFOIGNhc2UgZm9yIEpTQy4KKyAgICAgICAgW0pTQ0N1c3RvbSwgU3RyaWN0VHlw
ZUNoZWNraW5nLCBSZXF1aXJlc0FsbEFyZ3VtZW50cz1SYWlzZV0gZmxvYXQgZ2V0RmxvYXQzMihp
biB1bnNpZ25lZCBsb25nIGJ5dGVPZmZzZXQsIGluIFtPcHRpb25hbF0gYm9vbGVhbiBsaXR0bGVF
bmRpYW4pCisgICAgICAgICAgICByYWlzZXMgKERPTUV4Y2VwdGlvbik7CisgICAgICAgIFtKU0ND
dXN0b20sIFN0cmljdFR5cGVDaGVja2luZywgUmVxdWlyZXNBbGxBcmd1bWVudHM9UmFpc2VdIGRv
dWJsZSBnZXRGbG9hdDY0KGluIHVuc2lnbmVkIGxvbmcgYnl0ZU9mZnNldCwgaW4gW09wdGlvbmFs
XSBib29sZWFuIGxpdHRsZUVuZGlhbikKKyAgICAgICAgICAgIHJhaXNlcyAoRE9NRXhjZXB0aW9u
KTsKKworICAgICAgICAvLyBXZSBoYXZlIHRvIHVzZSBjdXN0b20gY29kZSBiZWNhdXNlIG91ciBj
b2RlIGdlbmVyYXRvciBkb2VzIG5vdCBzdXBwb3J0IGNoYXIgdHlwZS4KKyAgICAgICAgLy8gdm9p
ZCBzZXRJbnQ4KGluIHVuc2lnbmVkIGxvbmcgYnl0ZU9mZnNldCwgaW4gYnl0ZSB2YWx1ZSk7Cisg
ICAgICAgIC8vIHZvaWQgc2V0VWludDgoaW4gdW5zaWduZWQgbG9uZyBieXRlT2Zmc2V0LCBpbiB1
bnNpZ25lZCBieXRlIHZhbHVlKTsKKyAgICAgICAgW0N1c3RvbV0gdm9pZCBzZXRJbnQ4KCkKKyAg
ICAgICAgICAgIHJhaXNlcyAoRE9NRXhjZXB0aW9uKTsKKyAgICAgICAgW0N1c3RvbV0gdm9pZCBz
ZXRVaW50OCgpCisgICAgICAgICAgICByYWlzZXMgKERPTUV4Y2VwdGlvbik7CisKKyAgICAgICAg
W1N0cmljdFR5cGVDaGVja2luZywgUmVxdWlyZXNBbGxBcmd1bWVudHM9UmFpc2VdIHZvaWQgc2V0
SW50MTYoaW4gdW5zaWduZWQgbG9uZyBieXRlT2Zmc2V0LCBpbiBzaG9ydCB2YWx1ZSwgaW4gW09w
dGlvbmFsXSBib29sZWFuIGxpdHRsZUVuZGlhbikKKyAgICAgICAgICAgIHJhaXNlcyAoRE9NRXhj
ZXB0aW9uKTsKKyAgICAgICAgW1N0cmljdFR5cGVDaGVja2luZywgUmVxdWlyZXNBbGxBcmd1bWVu
dHM9UmFpc2VdIHZvaWQgc2V0VWludDE2KGluIHVuc2lnbmVkIGxvbmcgYnl0ZU9mZnNldCwgaW4g
dW5zaWduZWQgc2hvcnQgdmFsdWUsIGluIFtPcHRpb25hbF0gYm9vbGVhbiBsaXR0bGVFbmRpYW4p
CisgICAgICAgICAgICByYWlzZXMgKERPTUV4Y2VwdGlvbik7CisgICAgICAgIFtTdHJpY3RUeXBl
Q2hlY2tpbmcsIFJlcXVpcmVzQWxsQXJndW1lbnRzPVJhaXNlXSB2b2lkIHNldEludDMyKGluIHVu
c2lnbmVkIGxvbmcgYnl0ZU9mZnNldCwgaW4gbG9uZyB2YWx1ZSwgaW4gW09wdGlvbmFsXSBib29s
ZWFuIGxpdHRsZUVuZGlhbikKKyAgICAgICAgICAgIHJhaXNlcyAoRE9NRXhjZXB0aW9uKTsKKyAg
ICAgICAgW1N0cmljdFR5cGVDaGVja2luZywgUmVxdWlyZXNBbGxBcmd1bWVudHM9UmFpc2VdIHZv
aWQgc2V0VWludDMyKGluIHVuc2lnbmVkIGxvbmcgYnl0ZU9mZnNldCwgaW4gdW5zaWduZWQgbG9u
ZyB2YWx1ZSwgaW4gW09wdGlvbmFsXSBib29sZWFuIGxpdHRsZUVuZGlhbikKKyAgICAgICAgICAg
IHJhaXNlcyAoRE9NRXhjZXB0aW9uKTsKKyAgICAgICAgW1N0cmljdFR5cGVDaGVja2luZywgUmVx
dWlyZXNBbGxBcmd1bWVudHM9UmFpc2VdIHZvaWQgc2V0RmxvYXQzMihpbiB1bnNpZ25lZCBsb25n
IGJ5dGVPZmZzZXQsIGluIGZsb2F0IHZhbHVlLCBpbiBbT3B0aW9uYWxdIGJvb2xlYW4gbGl0dGxl
RW5kaWFuKQorICAgICAgICAgICAgcmFpc2VzIChET01FeGNlcHRpb24pOworICAgICAgICBbU3Ry
aWN0VHlwZUNoZWNraW5nLCBSZXF1aXJlc0FsbEFyZ3VtZW50cz1SYWlzZV0gdm9pZCBzZXRGbG9h
dDY0KGluIHVuc2lnbmVkIGxvbmcgYnl0ZU9mZnNldCwgaW4gZG91YmxlIHZhbHVlLCBpbiBbT3B0
aW9uYWxdIGJvb2xlYW4gbGl0dGxlRW5kaWFuKQorICAgICAgICAgICAgcmFpc2VzIChET01FeGNl
cHRpb24pOworICAgIH07CisKK30KZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cu
aWRsIGIvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5pZGwKaW5kZXggMGI5ZjVlZC4uZTMyY2I3OSAx
MDA2NDQKLS0tIGEvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5pZGwKKysrIGIvV2ViQ29yZS9wYWdl
L0RPTVdpbmRvdy5pZGwKQEAgLTQ5OCw2ICs0OTgsNyBAQCBtb2R1bGUgd2luZG93IHsKICAgICAg
ICAgYXR0cmlidXRlIFtKU0NDdXN0b21HZXR0ZXIsQ29uZGl0aW9uYWw9M0RfQ0FOVkFTfEJMT0Is
RW5hYmxlZEF0UnVudGltZV0gSW50MzJBcnJheUNvbnN0cnVjdG9yIEludDMyQXJyYXk7IC8vIFVz
YWJsZSB3aXRoIG5ldyBvcGVyYXRvcgogICAgICAgICBhdHRyaWJ1dGUgW0pTQ0N1c3RvbUdldHRl
cixDb25kaXRpb25hbD0zRF9DQU5WQVN8QkxPQixFbmFibGVkQXRSdW50aW1lXSBVaW50MzJBcnJh
eUNvbnN0cnVjdG9yIFVpbnQzMkFycmF5OyAvLyBVc2FibGUgd2l0aCBuZXcgb3BlcmF0b3IKICAg
ICAgICAgYXR0cmlidXRlIFtKU0NDdXN0b21HZXR0ZXIsQ29uZGl0aW9uYWw9M0RfQ0FOVkFTfEJM
T0IsRW5hYmxlZEF0UnVudGltZV0gRmxvYXQzMkFycmF5Q29uc3RydWN0b3IgRmxvYXQzMkFycmF5
OyAvLyBVc2FibGUgd2l0aCBuZXcgb3BlcmF0b3IKKyAgICAgICAgYXR0cmlidXRlIFtKU0NDdXN0
b21HZXR0ZXIsQ29uZGl0aW9uYWw9M0RfQ0FOVkFTfEJMT0IsRW5hYmxlZEF0UnVudGltZV0gRGF0
YVZpZXdDb25zdHJ1Y3RvciBEYXRhVmlldzsgLy8gVXNhYmxlIHdpdGggbmV3IG9wZXJhdG9yCiAK
ICAgICAgICAgYXR0cmlidXRlIEV2ZW50Q29uc3RydWN0b3IgRXZlbnQ7CiAgICAgICAgIGF0dHJp
YnV0ZSBCZWZvcmVMb2FkRXZlbnRDb25zdHJ1Y3RvciBCZWZvcmVMb2FkRXZlbnQ7Cg==
</data>
<flag name="commit-queue"
          id="65502"
          type_id="3"
          status="-"
          setter="jianli"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>74809</attachid>
            <date>2010-11-24 16:37:05 -0800</date>
            <delta_ts>2010-11-24 16:55:44 -0800</delta_ts>
            <desc>Proposed Patch</desc>
            <filename>46541_8</filename>
            <type>text/plain</type>
            <size>115988</size>
            <attacher name="Jian Li">jianli</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCAwZTZhZWU4Li5mNWJmMjA3IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjMgQEAKKzIwMTAtMTEt
MjQgIEppYW4gTGkgIDxqaWFubGlAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEltcGxlbWVudCBEYXRhVmlldyBpbnRlcmZhY2Ug
ZnJvbSBUeXBlZCBBcnJheSBzcGVjaWZpY2F0aW9uCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD00NjU0MQorCisgICAgICAgIEFkZCBhIG5ldyB0ZXN0IGZv
ciB0ZXN0aW5nIERhdGFWaWV3IGludGVyZmFjZS4gQWxzbyB1cGRhdGUgc29tZSB0ZXN0cworICAg
ICAgICB0byBleGNsdWRlIERhdGFWaWV3IHByb3BlcnR5IGZyb20gYmVpbmcgdGVzdGVkIGJlY2F1
c2UgaXQgaXMgbm90CisgICAgICAgIGV4cG9zZWQgdG8gYWxsIHBsYXRmb3Jtcy4KKworICAgICAg
ICAqIGZhc3QvY2FudmFzL3dlYmdsL2RhdGEtdmlldy10ZXN0LWV4cGVjdGVkLnR4dDogQWRkZWQu
CisgICAgICAgICogZmFzdC9jYW52YXMvd2ViZ2wvZGF0YS12aWV3LXRlc3QuaHRtbDogQWRkZWQu
CisgICAgICAgICogZmFzdC9kb20vV2luZG93L3NjcmlwdC10ZXN0cy93aW5kb3ctcHJvcGVydHkt
ZGVzY3JpcHRvcnMuanM6CisgICAgICAgICogZmFzdC9kb20vV2luZG93L3dpbmRvdy1wcm9wZXJ0
aWVzLmh0bWw6CisgICAgICAgICogZmFzdC9kb20vc2NyaXB0LXRlc3RzL3Byb3RvdHlwZS1pbmhl
cml0YW5jZS0yLmpzOgorICAgICAgICAoY29uc3RydWN0b3JOYW1lc0ZvcldpbmRvdyk6CisgICAg
ICAgICogZmFzdC9kb20vc2NyaXB0LXRlc3RzL3Byb3RvdHlwZS1pbmhlcml0YW5jZS5qczoKKyAg
ICAgICAgKiBmYXN0L2pzL3NjcmlwdC10ZXN0cy9nbG9iYWwtY29uc3RydWN0b3JzLmpzOgorCiAy
MDEwLTExLTI0ICBUb255IENoYW5nICA8dG9ueUBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgVW5y
ZXZpZXdlZCwgdXBkYXRpbmcgcGx1Z2luIHRlc3QgZXhwZWN0YXRpb25zIG5vdyB0aGF0IHdlJ3Zl
IHN3aXRjaGVkCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2NhbnZhcy93ZWJnbC9kYXRh
LXZpZXctdGVzdC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2NhbnZhcy93ZWJnbC9k
YXRhLXZpZXctdGVzdC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMC4uNmFkNGU0NAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvY2FudmFz
L3dlYmdsL2RhdGEtdmlldy10ZXN0LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDc2NSBAQAorVGVz
dCBEYXRhVmlldy4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNT
IiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1Rlc3QgZm9yIGNv
bnN0cnVjdG9yIHRha2luZyAxIGFyZ3VtZW50CitQQVNTIHZpZXcgPSBuZXcgRGF0YVZpZXcoYXJh
eUJ1ZmZlcikgaXMgZGVmaW5lZC4KK1BBU1Mgdmlldy5ieXRlT2Zmc2V0IGlzIDAKK1BBU1Mgdmll
dy5ieXRlTGVuZ3RoIGlzIDIKKworVGVzdCBmb3IgY29uc3RydWN0b3IgdGFraW5nIDIgYXJndW1l
bnRzCitQQVNTIHZpZXcgPSBuZXcgRGF0YVZpZXcoYXJheUJ1ZmZlciwgMSkgaXMgZGVmaW5lZC4K
K1BBU1Mgdmlldy5ieXRlT2Zmc2V0IGlzIDEKK1BBU1Mgdmlldy5ieXRlTGVuZ3RoIGlzIDEKKwor
VGVzdCBmb3IgY29uc3RydWN0b3IgdGFraW5nIDMgYXJndW1lbnRzCitQQVNTIHZpZXcgPSBuZXcg
RGF0YVZpZXcoYXJheUJ1ZmZlciwgMCwgMSkgaXMgZGVmaW5lZC4KK1BBU1Mgdmlldy5ieXRlT2Zm
c2V0IGlzIDAKK1BBU1Mgdmlldy5ieXRlTGVuZ3RoIGlzIDEKKworVGVzdCBmb3IgY29uc3RydWN0
b3IgdGhyb3dpbmcgZXhjZXB0aW9uCitQQVNTIHZpZXcgPSBuZXcgRGF0YVZpZXcoYXJheUJ1ZmZl
ciwgMCwgMykgdGhyZXcgZXhjZXB0aW9uIEVycm9yOiBJTkRFWF9TSVpFX0VSUjogRE9NIEV4Y2Vw
dGlvbiAxLgorUEFTUyB2aWV3ID0gbmV3IERhdGFWaWV3KGFyYXlCdWZmZXIsIDEsIDIpIHRocmV3
IGV4Y2VwdGlvbiBFcnJvcjogSU5ERVhfU0laRV9FUlI6IERPTSBFeGNlcHRpb24gMS4KK1BBU1Mg
dmlldyA9IG5ldyBEYXRhVmlldyhhcmF5QnVmZmVyLCAyLCAxKSB0aHJldyBleGNlcHRpb24gRXJy
b3I6IElOREVYX1NJWkVfRVJSOiBET00gRXhjZXB0aW9uIDEuCisKK1Rlc3QgZm9yIGdldCBtZXRo
b2RzIHRoYXQgd29yaworUEFTUyB2aWV3LmdldEludDgoMCkgaXMgMAorUEFTUyB2aWV3LmdldElu
dDgoOCkgaXMgLTEyOAorUEFTUyB2aWV3LmdldEludDgoMTUpIGlzIC0xCitQQVNTIHZpZXcuZ2V0
VWludDgoMCkgaXMgMAorUEFTUyB2aWV3LmdldFVpbnQ4KDgpIGlzIDEyOAorUEFTUyB2aWV3Lmdl
dFVpbnQ4KDE1KSBpcyAyNTUKK1BBU1Mgdmlldy5nZXRJbnQxNigwLCB0cnVlKSBpcyAyNTYKK1BB
U1Mgdmlldy5nZXRJbnQxNig1LCB0cnVlKSBpcyAyNjIxMworUEFTUyB2aWV3LmdldEludDE2KDks
IHRydWUpIGlzIC0zMjEyNworUEFTUyB2aWV3LmdldEludDE2KDE0LCB0cnVlKSBpcyAtMgorUEFT
UyB2aWV3LmdldEludDE2KDApIGlzIDEKK1BBU1Mgdmlldy5nZXRJbnQxNig1KSBpcyAyNTk1OAor
UEFTUyB2aWV3LmdldEludDE2KDkpIGlzIC0zMjM4MgorUEFTUyB2aWV3LmdldEludDE2KDE0KSBp
cyAtMjU3CitQQVNTIHZpZXcuZ2V0VWludDE2KDAsIHRydWUpIGlzIDI1NgorUEFTUyB2aWV3Lmdl
dFVpbnQxNig1LCB0cnVlKSBpcyAyNjIxMworUEFTUyB2aWV3LmdldFVpbnQxNig5LCB0cnVlKSBp
cyAzMzQwOQorUEFTUyB2aWV3LmdldFVpbnQxNigxNCwgdHJ1ZSkgaXMgNjU1MzQKK1BBU1Mgdmll
dy5nZXRVaW50MTYoMCkgaXMgMQorUEFTUyB2aWV3LmdldFVpbnQxNig1KSBpcyAyNTk1OAorUEFT
UyB2aWV3LmdldFVpbnQxNig5KSBpcyAzMzE1NAorUEFTUyB2aWV3LmdldFVpbnQxNigxNCkgaXMg
NjUyNzkKK1BBU1Mgdmlldy5nZXRJbnQzMigwLCB0cnVlKSBpcyA1MDQ2Mjk3NgorUEFTUyB2aWV3
LmdldEludDMyKDMsIHRydWUpIGlzIDE3MTc5MjA3NzEKK1BBU1Mgdmlldy5nZXRJbnQzMig2LCB0
cnVlKSBpcyAtMjEyMjI5MTM1NAorUEFTUyB2aWV3LmdldEludDMyKDksIHRydWUpIGlzIC01ODQ5
MDIzOQorUEFTUyB2aWV3LmdldEludDMyKDEyLCB0cnVlKSBpcyAtNjYwNTIKK1BBU1Mgdmlldy5n
ZXRJbnQzMigwKSBpcyA2NjA1MQorUEFTUyB2aWV3LmdldEludDMyKDMpIGlzIDU2OTExMjA2CitQ
QVNTIHZpZXcuZ2V0SW50MzIoNikgaXMgMTcxODA1OTEzNworUEFTUyB2aWV3LmdldEludDMyKDkp
IGlzIC0yMTIyMTUyOTY0CitQQVNTIHZpZXcuZ2V0SW50MzIoMTIpIGlzIC01MDQ2Mjk3NworUEFT
UyB2aWV3LmdldFVpbnQzMigwLCB0cnVlKSBpcyA1MDQ2Mjk3NgorUEFTUyB2aWV3LmdldFVpbnQz
MigzLCB0cnVlKSBpcyAxNzE3OTIwNzcxCitQQVNTIHZpZXcuZ2V0VWludDMyKDYsIHRydWUpIGlz
IDIxNzI2NzU5NDIKK1BBU1Mgdmlldy5nZXRVaW50MzIoOSwgdHJ1ZSkgaXMgNDIzNjQ3NzA1Nwor
UEFTUyB2aWV3LmdldFVpbnQzMigxMiwgdHJ1ZSkgaXMgNDI5NDkwMTI0NAorUEFTUyB2aWV3Lmdl
dFVpbnQzMigwKSBpcyA2NjA1MQorUEFTUyB2aWV3LmdldFVpbnQzMigzKSBpcyA1NjkxMTIwNgor
UEFTUyB2aWV3LmdldFVpbnQzMig2KSBpcyAxNzE4MDU5MTM3CitQQVNTIHZpZXcuZ2V0VWludDMy
KDkpIGlzIDIxNzI4MTQzMzIKK1BBU1Mgdmlldy5nZXRVaW50MzIoMTIpIGlzIDQyNDQ1MDQzMTkK
K1BBU1Mgdmlldy5nZXRGbG9hdDMyKDAsIHRydWUpIGlzIDEwCitQQVNTIHZpZXcuZ2V0RmxvYXQz
MigzLCB0cnVlKSBpcyAxMAorUEFTUyB2aWV3LmdldEZsb2F0MzIoNywgdHJ1ZSkgaXMgMTAKK1BB
U1Mgdmlldy5nZXRGbG9hdDMyKDEwLCB0cnVlKSBpcyAxMAorUEFTUyB2aWV3LmdldEZsb2F0MzIo
MCwgZmFsc2UpIGlzIDEwCitQQVNTIHZpZXcuZ2V0RmxvYXQzMigzLCBmYWxzZSkgaXMgMTAKK1BB
U1Mgdmlldy5nZXRGbG9hdDMyKDcsIGZhbHNlKSBpcyAxMAorUEFTUyB2aWV3LmdldEZsb2F0MzIo
MTAsIGZhbHNlKSBpcyAxMAorUEFTUyB2aWV3LmdldEZsb2F0MzIoMCwgdHJ1ZSkgaXMgMS4yMzAw
MDAwMTkwNzM0ODYzCitQQVNTIHZpZXcuZ2V0RmxvYXQzMigzLCB0cnVlKSBpcyAxLjIzMDAwMDAx
OTA3MzQ4NjMKK1BBU1Mgdmlldy5nZXRGbG9hdDMyKDcsIHRydWUpIGlzIDEuMjMwMDAwMDE5MDcz
NDg2MworUEFTUyB2aWV3LmdldEZsb2F0MzIoMTAsIHRydWUpIGlzIDEuMjMwMDAwMDE5MDczNDg2
MworUEFTUyB2aWV3LmdldEZsb2F0MzIoMCwgZmFsc2UpIGlzIDEuMjMwMDAwMDE5MDczNDg2Mwor
UEFTUyB2aWV3LmdldEZsb2F0MzIoMywgZmFsc2UpIGlzIDEuMjMwMDAwMDE5MDczNDg2MworUEFT
UyB2aWV3LmdldEZsb2F0MzIoNywgZmFsc2UpIGlzIDEuMjMwMDAwMDE5MDczNDg2MworUEFTUyB2
aWV3LmdldEZsb2F0MzIoMTAsIGZhbHNlKSBpcyAxLjIzMDAwMDAxOTA3MzQ4NjMKK1BBU1Mgdmll
dy5nZXRGbG9hdDMyKDAsIHRydWUpIGlzIC00NTYyMS4zNzEwOTM3NQorUEFTUyB2aWV3LmdldEZs
b2F0MzIoMywgdHJ1ZSkgaXMgLTQ1NjIxLjM3MTA5Mzc1CitQQVNTIHZpZXcuZ2V0RmxvYXQzMig3
LCB0cnVlKSBpcyAtNDU2MjEuMzcxMDkzNzUKK1BBU1Mgdmlldy5nZXRGbG9hdDMyKDEwLCB0cnVl
KSBpcyAtNDU2MjEuMzcxMDkzNzUKK1BBU1Mgdmlldy5nZXRGbG9hdDMyKDAsIGZhbHNlKSBpcyAt
NDU2MjEuMzcxMDkzNzUKK1BBU1Mgdmlldy5nZXRGbG9hdDMyKDMsIGZhbHNlKSBpcyAtNDU2MjEu
MzcxMDkzNzUKK1BBU1Mgdmlldy5nZXRGbG9hdDMyKDcsIGZhbHNlKSBpcyAtNDU2MjEuMzcxMDkz
NzUKK1BBU1Mgdmlldy5nZXRGbG9hdDMyKDEwLCBmYWxzZSkgaXMgLTQ1NjIxLjM3MTA5Mzc1CitQ
QVNTIHZpZXcuZ2V0RmxvYXQzMigwLCB0cnVlKSBpcyBOYU4KK1BBU1Mgdmlldy5nZXRGbG9hdDMy
KDMsIHRydWUpIGlzIE5hTgorUEFTUyB2aWV3LmdldEZsb2F0MzIoNywgdHJ1ZSkgaXMgTmFOCitQ
QVNTIHZpZXcuZ2V0RmxvYXQzMigxMCwgdHJ1ZSkgaXMgTmFOCitQQVNTIHZpZXcuZ2V0RmxvYXQz
MigwLCBmYWxzZSkgaXMgTmFOCitQQVNTIHZpZXcuZ2V0RmxvYXQzMigzLCBmYWxzZSkgaXMgTmFO
CitQQVNTIHZpZXcuZ2V0RmxvYXQzMig3LCBmYWxzZSkgaXMgTmFOCitQQVNTIHZpZXcuZ2V0Rmxv
YXQzMigxMCwgZmFsc2UpIGlzIE5hTgorUEFTUyB2aWV3LmdldEZsb2F0MzIoMCwgdHJ1ZSkgaXMg
LU5hTgorUEFTUyB2aWV3LmdldEZsb2F0MzIoMywgdHJ1ZSkgaXMgLU5hTgorUEFTUyB2aWV3Lmdl
dEZsb2F0MzIoNywgdHJ1ZSkgaXMgLU5hTgorUEFTUyB2aWV3LmdldEZsb2F0MzIoMTAsIHRydWUp
IGlzIC1OYU4KK1BBU1Mgdmlldy5nZXRGbG9hdDMyKDAsIGZhbHNlKSBpcyAtTmFOCitQQVNTIHZp
ZXcuZ2V0RmxvYXQzMigzLCBmYWxzZSkgaXMgLU5hTgorUEFTUyB2aWV3LmdldEZsb2F0MzIoNywg
ZmFsc2UpIGlzIC1OYU4KK1BBU1Mgdmlldy5nZXRGbG9hdDMyKDEwLCBmYWxzZSkgaXMgLU5hTgor
UEFTUyB2aWV3LmdldEZsb2F0NjQoMCwgdHJ1ZSkgaXMgMTAKK1BBU1Mgdmlldy5nZXRGbG9hdDY0
KDMsIHRydWUpIGlzIDEwCitQQVNTIHZpZXcuZ2V0RmxvYXQ2NCg3LCB0cnVlKSBpcyAxMAorUEFT
UyB2aWV3LmdldEZsb2F0NjQoMTAsIHRydWUpIGlzIDEwCitQQVNTIHZpZXcuZ2V0RmxvYXQ2NCgw
LCBmYWxzZSkgaXMgMTAKK1BBU1Mgdmlldy5nZXRGbG9hdDY0KDMsIGZhbHNlKSBpcyAxMAorUEFT
UyB2aWV3LmdldEZsb2F0NjQoNywgZmFsc2UpIGlzIDEwCitQQVNTIHZpZXcuZ2V0RmxvYXQ2NCgx
MCwgZmFsc2UpIGlzIDEwCitQQVNTIHZpZXcuZ2V0RmxvYXQ2NCgwLCB0cnVlKSBpcyAxLjIzCitQ
QVNTIHZpZXcuZ2V0RmxvYXQ2NCgzLCB0cnVlKSBpcyAxLjIzCitQQVNTIHZpZXcuZ2V0RmxvYXQ2
NCg3LCB0cnVlKSBpcyAxLjIzCitQQVNTIHZpZXcuZ2V0RmxvYXQ2NCgxMCwgdHJ1ZSkgaXMgMS4y
MworUEFTUyB2aWV3LmdldEZsb2F0NjQoMCwgZmFsc2UpIGlzIDEuMjMKK1BBU1Mgdmlldy5nZXRG
bG9hdDY0KDMsIGZhbHNlKSBpcyAxLjIzCitQQVNTIHZpZXcuZ2V0RmxvYXQ2NCg3LCBmYWxzZSkg
aXMgMS4yMworUEFTUyB2aWV3LmdldEZsb2F0NjQoMTAsIGZhbHNlKSBpcyAxLjIzCitQQVNTIHZp
ZXcuZ2V0RmxvYXQ2NCgwLCB0cnVlKSBpcyAtNjIxMzU3Ni40ODM5CitQQVNTIHZpZXcuZ2V0Rmxv
YXQ2NCgzLCB0cnVlKSBpcyAtNjIxMzU3Ni40ODM5CitQQVNTIHZpZXcuZ2V0RmxvYXQ2NCg3LCB0
cnVlKSBpcyAtNjIxMzU3Ni40ODM5CitQQVNTIHZpZXcuZ2V0RmxvYXQ2NCgxMCwgdHJ1ZSkgaXMg
LTYyMTM1NzYuNDgzOQorUEFTUyB2aWV3LmdldEZsb2F0NjQoMCwgZmFsc2UpIGlzIC02MjEzNTc2
LjQ4MzkKK1BBU1Mgdmlldy5nZXRGbG9hdDY0KDMsIGZhbHNlKSBpcyAtNjIxMzU3Ni40ODM5CitQ
QVNTIHZpZXcuZ2V0RmxvYXQ2NCg3LCBmYWxzZSkgaXMgLTYyMTM1NzYuNDgzOQorUEFTUyB2aWV3
LmdldEZsb2F0NjQoMTAsIGZhbHNlKSBpcyAtNjIxMzU3Ni40ODM5CitQQVNTIHZpZXcuZ2V0Rmxv
YXQ2NCgwLCB0cnVlKSBpcyBOYU4KK1BBU1Mgdmlldy5nZXRGbG9hdDY0KDMsIHRydWUpIGlzIE5h
TgorUEFTUyB2aWV3LmdldEZsb2F0NjQoNywgdHJ1ZSkgaXMgTmFOCitQQVNTIHZpZXcuZ2V0Rmxv
YXQ2NCgxMCwgdHJ1ZSkgaXMgTmFOCitQQVNTIHZpZXcuZ2V0RmxvYXQ2NCgwLCBmYWxzZSkgaXMg
TmFOCitQQVNTIHZpZXcuZ2V0RmxvYXQ2NCgzLCBmYWxzZSkgaXMgTmFOCitQQVNTIHZpZXcuZ2V0
RmxvYXQ2NCg3LCBmYWxzZSkgaXMgTmFOCitQQVNTIHZpZXcuZ2V0RmxvYXQ2NCgxMCwgZmFsc2Up
IGlzIE5hTgorUEFTUyB2aWV3LmdldEZsb2F0NjQoMCwgdHJ1ZSkgaXMgLU5hTgorUEFTUyB2aWV3
LmdldEZsb2F0NjQoMywgdHJ1ZSkgaXMgLU5hTgorUEFTUyB2aWV3LmdldEZsb2F0NjQoNywgdHJ1
ZSkgaXMgLU5hTgorUEFTUyB2aWV3LmdldEZsb2F0NjQoMTAsIHRydWUpIGlzIC1OYU4KK1BBU1Mg
dmlldy5nZXRGbG9hdDY0KDAsIGZhbHNlKSBpcyAtTmFOCitQQVNTIHZpZXcuZ2V0RmxvYXQ2NCgz
LCBmYWxzZSkgaXMgLU5hTgorUEFTUyB2aWV3LmdldEZsb2F0NjQoNywgZmFsc2UpIGlzIC1OYU4K
K1BBU1Mgdmlldy5nZXRGbG9hdDY0KDEwLCBmYWxzZSkgaXMgLU5hTgorCitUZXN0IGZvciBnZXQg
bWV0aG9kcyB0aGF0IG1pZ2h0IHJlYWQgYmV5b3VuZCByYW5nZQorUEFTUyB2aWV3LmdldEludDgo
MCkgaXMgMAorUEFTUyB2aWV3LmdldEludDgoOCkgdGhyZXcgZXhjZXB0aW9uIEVycm9yOiBJTkRF
WF9TSVpFX0VSUjogRE9NIEV4Y2VwdGlvbiAxLgorUEFTUyB2aWV3LmdldEludDgoMTUpIHRocmV3
IGV4Y2VwdGlvbiBFcnJvcjogSU5ERVhfU0laRV9FUlI6IERPTSBFeGNlcHRpb24gMS4KK1BBU1Mg
dmlldy5nZXRVaW50OCgwKSBpcyAwCitQQVNTIHZpZXcuZ2V0VWludDgoOCkgdGhyZXcgZXhjZXB0
aW9uIEVycm9yOiBJTkRFWF9TSVpFX0VSUjogRE9NIEV4Y2VwdGlvbiAxLgorUEFTUyB2aWV3Lmdl
dFVpbnQ4KDE1KSB0aHJldyBleGNlcHRpb24gRXJyb3I6IElOREVYX1NJWkVfRVJSOiBET00gRXhj
ZXB0aW9uIDEuCitQQVNTIHZpZXcuZ2V0SW50MTYoMCwgdHJ1ZSkgaXMgMjU2CitQQVNTIHZpZXcu
Z2V0SW50MTYoNSwgdHJ1ZSkgdGhyZXcgZXhjZXB0aW9uIEVycm9yOiBJTkRFWF9TSVpFX0VSUjog
RE9NIEV4Y2VwdGlvbiAxLgorUEFTUyB2aWV3LmdldEludDE2KDksIHRydWUpIHRocmV3IGV4Y2Vw
dGlvbiBFcnJvcjogSU5ERVhfU0laRV9FUlI6IERPTSBFeGNlcHRpb24gMS4KK1BBU1Mgdmlldy5n
ZXRJbnQxNigxNCwgdHJ1ZSkgdGhyZXcgZXhjZXB0aW9uIEVycm9yOiBJTkRFWF9TSVpFX0VSUjog
RE9NIEV4Y2VwdGlvbiAxLgorUEFTUyB2aWV3LmdldEludDE2KDApIGlzIDEKK1BBU1Mgdmlldy5n
ZXRJbnQxNig1KSB0aHJldyBleGNlcHRpb24gRXJyb3I6IElOREVYX1NJWkVfRVJSOiBET00gRXhj
ZXB0aW9uIDEuCitQQVNTIHZpZXcuZ2V0SW50MTYoOSkgdGhyZXcgZXhjZXB0aW9uIEVycm9yOiBJ
TkRFWF9TSVpFX0VSUjogRE9NIEV4Y2VwdGlvbiAxLgorUEFTUyB2aWV3LmdldEludDE2KDE0KSB0
aHJldyBleGNlcHRpb24gRXJyb3I6IElOREVYX1NJWkVfRVJSOiBET00gRXhjZXB0aW9uIDEuCitQ
QVNTIHZpZXcuZ2V0VWludDE2KDAsIHRydWUpIGlzIDI1NgorUEFTUyB2aWV3LmdldFVpbnQxNig1
LCB0cnVlKSB0aHJldyBleGNlcHRpb24gRXJyb3I6IElOREVYX1NJWkVfRVJSOiBET00gRXhjZXB0
aW9uIDEuCitQQVNTIHZpZXcuZ2V0VWludDE2KDksIHRydWUpIHRocmV3IGV4Y2VwdGlvbiBFcnJv
cjogSU5ERVhfU0laRV9FUlI6IERPTSBFeGNlcHRpb24gMS4KK1BBU1Mgdmlldy5nZXRVaW50MTYo
MTQsIHRydWUpIHRocmV3IGV4Y2VwdGlvbiBFcnJvcjogSU5ERVhfU0laRV9FUlI6IERPTSBFeGNl
cHRpb24gMS4KK1BBU1Mgdmlldy5nZXRVaW50MTYoMCkgaXMgMQorUEFTUyB2aWV3LmdldFVpbnQx
Nig1KSB0aHJldyBleGNlcHRpb24gRXJyb3I6IElOREVYX1NJWkVfRVJSOiBET00gRXhjZXB0aW9u
IDEuCitQQVNTIHZpZXcuZ2V0VWludDE2KDkpIHRocmV3IGV4Y2VwdGlvbiBFcnJvcjogSU5ERVhf
U0laRV9FUlI6IERPTSBFeGNlcHRpb24gMS4KK1BBU1Mgdmlldy5nZXRVaW50MTYoMTQpIHRocmV3
IGV4Y2VwdGlvbiBFcnJvcjogSU5ERVhfU0laRV9FUlI6IERPTSBFeGNlcHRpb24gMS4KK1BBU1Mg
dmlldy5nZXRJbnQzMigwLCB0cnVlKSB0aHJldyBleGNlcHRpb24gRXJyb3I6IElOREVYX1NJWkVf
RVJSOiBET00gRXhjZXB0aW9uIDEuCitQQVNTIHZpZXcuZ2V0SW50MzIoMywgdHJ1ZSkgdGhyZXcg
ZXhjZXB0aW9uIEVycm9yOiBJTkRFWF9TSVpFX0VSUjogRE9NIEV4Y2VwdGlvbiAxLgorUEFTUyB2
aWV3LmdldEludDMyKDYsIHRydWUpIHRocmV3IGV4Y2VwdGlvbiBFcnJvcjogSU5ERVhfU0laRV9F
UlI6IERPTSBFeGNlcHRpb24gMS4KK1BBU1Mgdmlldy5nZXRJbnQzMig5LCB0cnVlKSB0aHJldyBl
eGNlcHRpb24gRXJyb3I6IElOREVYX1NJWkVfRVJSOiBET00gRXhjZXB0aW9uIDEuCitQQVNTIHZp
ZXcuZ2V0SW50MzIoMTIsIHRydWUpIHRocmV3IGV4Y2VwdGlvbiBFcnJvcjogSU5ERVhfU0laRV9F
UlI6IERPTSBFeGNlcHRpb24gMS4KK1BBU1Mgdmlldy5nZXRJbnQzMigwKSB0aHJldyBleGNlcHRp
b24gRXJyb3I6IElOREVYX1NJWkVfRVJSOiBET00gRXhjZXB0aW9uIDEuCitQQVNTIHZpZXcuZ2V0
SW50MzIoMykgdGhyZXcgZXhjZXB0aW9uIEVycm9yOiBJTkRFWF9TSVpFX0VSUjogRE9NIEV4Y2Vw
dGlvbiAxLgorUEFTUyB2aWV3LmdldEludDMyKDYpIHRocmV3IGV4Y2VwdGlvbiBFcnJvcjogSU5E
RVhfU0laRV9FUlI6IERPTSBFeGNlcHRpb24gMS4KK1BBU1Mgdmlldy5nZXRJbnQzMig5KSB0aHJl
dyBleGNlcHRpb24gRXJyb3I6IElOREVYX1NJWkVfRVJSOiBET00gRXhjZXB0aW9uIDEuCitQQVNT
IHZpZXcuZ2V0SW50MzIoMTIpIHRocmV3IGV4Y2VwdGlvbiBFcnJvcjogSU5ERVhfU0laRV9FUlI6
IERPTSBFeGNlcHRpb24gMS4KK1BBU1Mgdmlldy5nZXRVaW50MzIoMCwgdHJ1ZSkgdGhyZXcgZXhj
ZXB0aW9uIEVycm9yOiBJTkRFWF9TSVpFX0VSUjogRE9NIEV4Y2VwdGlvbiAxLgorUEFTUyB2aWV3
LmdldFVpbnQzMigzLCB0cnVlKSB0aHJldyBleGNlcHRpb24gRXJyb3I6IElOREVYX1NJWkVfRVJS
OiBET00gRXhjZXB0aW9uIDEuCitQQVNTIHZpZXcuZ2V0VWludDMyKDYsIHRydWUpIHRocmV3IGV4
Y2VwdGlvbiBFcnJvcjogSU5ERVhfU0laRV9FUlI6IERPTSBFeGNlcHRpb24gMS4KK1BBU1Mgdmll
dy5nZXRVaW50MzIoOSwgdHJ1ZSkgdGhyZXcgZXhjZXB0aW9uIEVycm9yOiBJTkRFWF9TSVpFX0VS
UjogRE9NIEV4Y2VwdGlvbiAxLgorUEFTUyB2aWV3LmdldFVpbnQzMigxMiwgdHJ1ZSkgdGhyZXcg
ZXhjZXB0aW9uIEVycm9yOiBJTkRFWF9TSVpFX0VSUjogRE9NIEV4Y2VwdGlvbiAxLgorUEFTUyB2
aWV3LmdldFVpbnQzMigwKSB0aHJldyBleGNlcHRpb24gRXJyb3I6IElOREVYX1NJWkVfRVJSOiBE
T00gRXhjZXB0aW9uIDEuCitQQVNTIHZpZXcuZ2V0VWludDMyKDMpIHRocmV3IGV4Y2VwdGlvbiBF
cnJvcjogSU5ERVhfU0laRV9FUlI6IERPTSBFeGNlcHRpb24gMS4KK1BBU1Mgdmlldy5nZXRVaW50
MzIoNikgdGhyZXcgZXhjZXB0aW9uIEVycm9yOiBJTkRFWF9TSVpFX0VSUjogRE9NIEV4Y2VwdGlv
biAxLgorUEFTUyB2aWV3LmdldFVpbnQzMig5KSB0aHJldyBleGNlcHRpb24gRXJyb3I6IElOREVY
X1NJWkVfRVJSOiBET00gRXhjZXB0aW9uIDEuCitQQVNTIHZpZXcuZ2V0VWludDMyKDEyKSB0aHJl
dyBleGNlcHRpb24gRXJyb3I6IElOREVYX1NJWkVfRVJSOiBET00gRXhjZXB0aW9uIDEuCitQQVNT
IHZpZXcuZ2V0RmxvYXQzMigwLCB0cnVlKSB0aHJldyBleGNlcHRpb24gRXJyb3I6IElOREVYX1NJ
WkVfRVJSOiBET00gRXhjZXB0aW9uIDEuCitQQVNTIHZpZXcuZ2V0RmxvYXQzMigzLCB0cnVlKSB0
aHJldyBleGNlcHRpb24gRXJyb3I6IElOREVYX1NJWkVfRVJSOiBET00gRXhjZXB0aW9uIDEuCitQ
QVNTIHZpZXcuZ2V0RmxvYXQzMig3LCB0cnVlKSB0aHJldyBleGNlcHRpb24gRXJyb3I6IElOREVY
X1NJWkVfRVJSOiBET00gRXhjZXB0aW9uIDEuCitQQVNTIHZpZXcuZ2V0RmxvYXQzMigxMCwgdHJ1
ZSkgdGhyZXcgZXhjZXB0aW9uIEVycm9yOiBJTkRFWF9TSVpFX0VSUjogRE9NIEV4Y2VwdGlvbiAx
LgorUEFTUyB2aWV3LmdldEZsb2F0MzIoMCwgZmFsc2UpIGlzIDEwCitQQVNTIHZpZXcuZ2V0Rmxv
YXQzMigzLCBmYWxzZSkgaXMgMTAKK1BBU1Mgdmlldy5nZXRGbG9hdDMyKDcsIGZhbHNlKSBpcyAx
MAorUEFTUyB2aWV3LmdldEZsb2F0MzIoMTAsIGZhbHNlKSBpcyAxMAorUEFTUyB2aWV3LmdldEZs
b2F0MzIoMCwgdHJ1ZSkgdGhyZXcgZXhjZXB0aW9uIEVycm9yOiBJTkRFWF9TSVpFX0VSUjogRE9N
IEV4Y2VwdGlvbiAxLgorUEFTUyB2aWV3LmdldEZsb2F0MzIoMywgdHJ1ZSkgdGhyZXcgZXhjZXB0
aW9uIEVycm9yOiBJTkRFWF9TSVpFX0VSUjogRE9NIEV4Y2VwdGlvbiAxLgorUEFTUyB2aWV3Lmdl
dEZsb2F0MzIoNywgdHJ1ZSkgdGhyZXcgZXhjZXB0aW9uIEVycm9yOiBJTkRFWF9TSVpFX0VSUjog
RE9NIEV4Y2VwdGlvbiAxLgorUEFTUyB2aWV3LmdldEZsb2F0MzIoMTAsIHRydWUpIHRocmV3IGV4
Y2VwdGlvbiBFcnJvcjogSU5ERVhfU0laRV9FUlI6IERPTSBFeGNlcHRpb24gMS4KK1BBU1Mgdmll
dy5nZXRGbG9hdDMyKDAsIGZhbHNlKSBpcyAxLjIzMDAwMDAxOTA3MzQ4NjMKK1BBU1Mgdmlldy5n
ZXRGbG9hdDMyKDMsIGZhbHNlKSBpcyAxLjIzMDAwMDAxOTA3MzQ4NjMKK1BBU1Mgdmlldy5nZXRG
bG9hdDMyKDcsIGZhbHNlKSBpcyAxLjIzMDAwMDAxOTA3MzQ4NjMKK1BBU1Mgdmlldy5nZXRGbG9h
dDMyKDEwLCBmYWxzZSkgaXMgMS4yMzAwMDAwMTkwNzM0ODYzCitQQVNTIHZpZXcuZ2V0RmxvYXQz
MigwLCB0cnVlKSB0aHJldyBleGNlcHRpb24gRXJyb3I6IElOREVYX1NJWkVfRVJSOiBET00gRXhj
ZXB0aW9uIDEuCitQQVNTIHZpZXcuZ2V0RmxvYXQzMigzLCB0cnVlKSB0aHJldyBleGNlcHRpb24g
RXJyb3I6IElOREVYX1NJWkVfRVJSOiBET00gRXhjZXB0aW9uIDEuCitQQVNTIHZpZXcuZ2V0Rmxv
YXQzMig3LCB0cnVlKSB0aHJldyBleGNlcHRpb24gRXJyb3I6IElOREVYX1NJWkVfRVJSOiBET00g
RXhjZXB0aW9uIDEuCitQQVNTIHZpZXcuZ2V0RmxvYXQzMigxMCwgdHJ1ZSkgdGhyZXcgZXhjZXB0
aW9uIEVycm9yOiBJTkRFWF9TSVpFX0VSUjogRE9NIEV4Y2VwdGlvbiAxLgorUEFTUyB2aWV3Lmdl
dEZsb2F0MzIoMCwgZmFsc2UpIGlzIC00NTYyMS4zNzEwOTM3NQorUEFTUyB2aWV3LmdldEZsb2F0
MzIoMywgZmFsc2UpIGlzIC00NTYyMS4zNzEwOTM3NQorUEFTUyB2aWV3LmdldEZsb2F0MzIoNywg
ZmFsc2UpIGlzIC00NTYyMS4zNzEwOTM3NQorUEFTUyB2aWV3LmdldEZsb2F0MzIoMTAsIGZhbHNl
KSBpcyAtNDU2MjEuMzcxMDkzNzUKK1BBU1Mgdmlldy5nZXRGbG9hdDMyKDAsIHRydWUpIHRocmV3
IGV4Y2VwdGlvbiBFcnJvcjogSU5ERVhfU0laRV9FUlI6IERPTSBFeGNlcHRpb24gMS4KK1BBU1Mg
dmlldy5nZXRGbG9hdDMyKDMsIHRydWUpIHRocmV3IGV4Y2VwdGlvbiBFcnJvcjogSU5ERVhfU0la
RV9FUlI6IERPTSBFeGNlcHRpb24gMS4KK1BBU1Mgdmlldy5nZXRGbG9hdDMyKDcsIHRydWUpIHRo
cmV3IGV4Y2VwdGlvbiBFcnJvcjogSU5ERVhfU0laRV9FUlI6IERPTSBFeGNlcHRpb24gMS4KK1BB
U1Mgdmlldy5nZXRGbG9hdDMyKDEwLCB0cnVlKSB0aHJldyBleGNlcHRpb24gRXJyb3I6IElOREVY
X1NJWkVfRVJSOiBET00gRXhjZXB0aW9uIDEuCitQQVNTIHZpZXcuZ2V0RmxvYXQzMigwLCBmYWxz
ZSkgaXMgTmFOCitQQVNTIHZpZXcuZ2V0RmxvYXQzMigzLCBmYWxzZSkgaXMgTmFOCitQQVNTIHZp
ZXcuZ2V0RmxvYXQzMig3LCBmYWxzZSkgaXMgTmFOCitQQVNTIHZpZXcuZ2V0RmxvYXQzMigxMCwg
ZmFsc2UpIGlzIE5hTgorUEFTUyB2aWV3LmdldEZsb2F0MzIoMCwgdHJ1ZSkgdGhyZXcgZXhjZXB0
aW9uIEVycm9yOiBJTkRFWF9TSVpFX0VSUjogRE9NIEV4Y2VwdGlvbiAxLgorUEFTUyB2aWV3Lmdl
dEZsb2F0MzIoMywgdHJ1ZSkgdGhyZXcgZXhjZXB0aW9uIEVycm9yOiBJTkRFWF9TSVpFX0VSUjog
RE9NIEV4Y2VwdGlvbiAxLgorUEFTUyB2aWV3LmdldEZsb2F0MzIoNywgdHJ1ZSkgdGhyZXcgZXhj
ZXB0aW9uIEVycm9yOiBJTkRFWF9TSVpFX0VSUjogRE9NIEV4Y2VwdGlvbiAxLgorUEFTUyB2aWV3
LmdldEZsb2F0MzIoMTAsIHRydWUpIHRocmV3IGV4Y2VwdGlvbiBFcnJvcjogSU5ERVhfU0laRV9F
UlI6IERPTSBFeGNlcHRpb24gMS4KK1BBU1Mgdmlldy5nZXRGbG9hdDMyKDAsIGZhbHNlKSBpcyAt
TmFOCitQQVNTIHZpZXcuZ2V0RmxvYXQzMigzLCBmYWxzZSkgaXMgLU5hTgorUEFTUyB2aWV3Lmdl
dEZsb2F0MzIoNywgZmFsc2UpIGlzIC1OYU4KK1BBU1Mgdmlldy5nZXRGbG9hdDMyKDEwLCBmYWxz
ZSkgaXMgLU5hTgorUEFTUyB2aWV3LmdldEZsb2F0NjQoMCwgdHJ1ZSkgdGhyZXcgZXhjZXB0aW9u
IEVycm9yOiBJTkRFWF9TSVpFX0VSUjogRE9NIEV4Y2VwdGlvbiAxLgorUEFTUyB2aWV3LmdldEZs
b2F0NjQoMywgdHJ1ZSkgdGhyZXcgZXhjZXB0aW9uIEVycm9yOiBJTkRFWF9TSVpFX0VSUjogRE9N
IEV4Y2VwdGlvbiAxLgorUEFTUyB2aWV3LmdldEZsb2F0NjQoNywgdHJ1ZSkgdGhyZXcgZXhjZXB0
aW9uIEVycm9yOiBJTkRFWF9TSVpFX0VSUjogRE9NIEV4Y2VwdGlvbiAxLgorUEFTUyB2aWV3Lmdl
dEZsb2F0NjQoMTAsIHRydWUpIHRocmV3IGV4Y2VwdGlvbiBFcnJvcjogSU5ERVhfU0laRV9FUlI6
IERPTSBFeGNlcHRpb24gMS4KK1BBU1Mgdmlldy5nZXRGbG9hdDY0KDAsIGZhbHNlKSBpcyAxMAor
UEFTUyB2aWV3LmdldEZsb2F0NjQoMywgZmFsc2UpIGlzIDEwCitQQVNTIHZpZXcuZ2V0RmxvYXQ2
NCg3LCBmYWxzZSkgaXMgMTAKK1BBU1Mgdmlldy5nZXRGbG9hdDY0KDEwLCBmYWxzZSkgaXMgMTAK
K1BBU1Mgdmlldy5nZXRGbG9hdDY0KDAsIHRydWUpIHRocmV3IGV4Y2VwdGlvbiBFcnJvcjogSU5E
RVhfU0laRV9FUlI6IERPTSBFeGNlcHRpb24gMS4KK1BBU1Mgdmlldy5nZXRGbG9hdDY0KDMsIHRy
dWUpIHRocmV3IGV4Y2VwdGlvbiBFcnJvcjogSU5ERVhfU0laRV9FUlI6IERPTSBFeGNlcHRpb24g
MS4KK1BBU1Mgdmlldy5nZXRGbG9hdDY0KDcsIHRydWUpIHRocmV3IGV4Y2VwdGlvbiBFcnJvcjog
SU5ERVhfU0laRV9FUlI6IERPTSBFeGNlcHRpb24gMS4KK1BBU1Mgdmlldy5nZXRGbG9hdDY0KDEw
LCB0cnVlKSB0aHJldyBleGNlcHRpb24gRXJyb3I6IElOREVYX1NJWkVfRVJSOiBET00gRXhjZXB0
aW9uIDEuCitQQVNTIHZpZXcuZ2V0RmxvYXQ2NCgwLCBmYWxzZSkgaXMgMS4yMworUEFTUyB2aWV3
LmdldEZsb2F0NjQoMywgZmFsc2UpIGlzIDEuMjMKK1BBU1Mgdmlldy5nZXRGbG9hdDY0KDcsIGZh
bHNlKSBpcyAxLjIzCitQQVNTIHZpZXcuZ2V0RmxvYXQ2NCgxMCwgZmFsc2UpIGlzIDEuMjMKK1BB
U1Mgdmlldy5nZXRGbG9hdDY0KDAsIHRydWUpIHRocmV3IGV4Y2VwdGlvbiBFcnJvcjogSU5ERVhf
U0laRV9FUlI6IERPTSBFeGNlcHRpb24gMS4KK1BBU1Mgdmlldy5nZXRGbG9hdDY0KDMsIHRydWUp
IHRocmV3IGV4Y2VwdGlvbiBFcnJvcjogSU5ERVhfU0laRV9FUlI6IERPTSBFeGNlcHRpb24gMS4K
K1BBU1Mgdmlldy5nZXRGbG9hdDY0KDcsIHRydWUpIHRocmV3IGV4Y2VwdGlvbiBFcnJvcjogSU5E
RVhfU0laRV9FUlI6IERPTSBFeGNlcHRpb24gMS4KK1BBU1Mgdmlldy5nZXRGbG9hdDY0KDEwLCB0
cnVlKSB0aHJldyBleGNlcHRpb24gRXJyb3I6IElOREVYX1NJWkVfRVJSOiBET00gRXhjZXB0aW9u
IDEuCitQQVNTIHZpZXcuZ2V0RmxvYXQ2NCgwLCBmYWxzZSkgaXMgLTYyMTM1NzYuNDgzOQorUEFT
UyB2aWV3LmdldEZsb2F0NjQoMywgZmFsc2UpIGlzIC02MjEzNTc2LjQ4MzkKK1BBU1Mgdmlldy5n
ZXRGbG9hdDY0KDcsIGZhbHNlKSBpcyAtNjIxMzU3Ni40ODM5CitQQVNTIHZpZXcuZ2V0RmxvYXQ2
NCgxMCwgZmFsc2UpIGlzIC02MjEzNTc2LjQ4MzkKK1BBU1Mgdmlldy5nZXRGbG9hdDY0KDAsIHRy
dWUpIHRocmV3IGV4Y2VwdGlvbiBFcnJvcjogSU5ERVhfU0laRV9FUlI6IERPTSBFeGNlcHRpb24g
MS4KK1BBU1Mgdmlldy5nZXRGbG9hdDY0KDMsIHRydWUpIHRocmV3IGV4Y2VwdGlvbiBFcnJvcjog
SU5ERVhfU0laRV9FUlI6IERPTSBFeGNlcHRpb24gMS4KK1BBU1Mgdmlldy5nZXRGbG9hdDY0KDcs
IHRydWUpIHRocmV3IGV4Y2VwdGlvbiBFcnJvcjogSU5ERVhfU0laRV9FUlI6IERPTSBFeGNlcHRp
b24gMS4KK1BBU1Mgdmlldy5nZXRGbG9hdDY0KDEwLCB0cnVlKSB0aHJldyBleGNlcHRpb24gRXJy
b3I6IElOREVYX1NJWkVfRVJSOiBET00gRXhjZXB0aW9uIDEuCitQQVNTIHZpZXcuZ2V0RmxvYXQ2
NCgwLCBmYWxzZSkgaXMgTmFOCitQQVNTIHZpZXcuZ2V0RmxvYXQ2NCgzLCBmYWxzZSkgaXMgTmFO
CitQQVNTIHZpZXcuZ2V0RmxvYXQ2NCg3LCBmYWxzZSkgaXMgTmFOCitQQVNTIHZpZXcuZ2V0Rmxv
YXQ2NCgxMCwgZmFsc2UpIGlzIE5hTgorUEFTUyB2aWV3LmdldEZsb2F0NjQoMCwgdHJ1ZSkgdGhy
ZXcgZXhjZXB0aW9uIEVycm9yOiBJTkRFWF9TSVpFX0VSUjogRE9NIEV4Y2VwdGlvbiAxLgorUEFT
UyB2aWV3LmdldEZsb2F0NjQoMywgdHJ1ZSkgdGhyZXcgZXhjZXB0aW9uIEVycm9yOiBJTkRFWF9T
SVpFX0VSUjogRE9NIEV4Y2VwdGlvbiAxLgorUEFTUyB2aWV3LmdldEZsb2F0NjQoNywgdHJ1ZSkg
dGhyZXcgZXhjZXB0aW9uIEVycm9yOiBJTkRFWF9TSVpFX0VSUjogRE9NIEV4Y2VwdGlvbiAxLgor
UEFTUyB2aWV3LmdldEZsb2F0NjQoMTAsIHRydWUpIHRocmV3IGV4Y2VwdGlvbiBFcnJvcjogSU5E
RVhfU0laRV9FUlI6IERPTSBFeGNlcHRpb24gMS4KK1BBU1Mgdmlldy5nZXRGbG9hdDY0KDAsIGZh
bHNlKSBpcyAtTmFOCitQQVNTIHZpZXcuZ2V0RmxvYXQ2NCgzLCBmYWxzZSkgaXMgLU5hTgorUEFT
UyB2aWV3LmdldEZsb2F0NjQoNywgZmFsc2UpIGlzIC1OYU4KK1BBU1Mgdmlldy5nZXRGbG9hdDY0
KDEwLCBmYWxzZSkgaXMgLU5hTgorCitUZXN0IGZvciB3cm9uZyBhcmd1bWVudHMgcGFzc2VkIHRv
IGdldCBtZXRob2RzCitQQVNTIHZpZXcuZ2V0SW50OCgpIHRocmV3IGV4Y2VwdGlvbiBTeW50YXhF
cnJvcjogTm90IGVub3VnaCBhcmd1bWVudHMuCitQQVNTIHZpZXcuZ2V0VWludDgoKSB0aHJldyBl
eGNlcHRpb24gU3ludGF4RXJyb3I6IE5vdCBlbm91Z2ggYXJndW1lbnRzLgorUEFTUyB2aWV3Lmdl
dEludDE2KCkgdGhyZXcgZXhjZXB0aW9uIFN5bnRheEVycm9yOiBOb3QgZW5vdWdoIGFyZ3VtZW50
cy4KK1BBU1Mgdmlldy5nZXRVaW50MTYoKSB0aHJldyBleGNlcHRpb24gU3ludGF4RXJyb3I6IE5v
dCBlbm91Z2ggYXJndW1lbnRzLgorUEFTUyB2aWV3LmdldEludDMyKCkgdGhyZXcgZXhjZXB0aW9u
IFN5bnRheEVycm9yOiBOb3QgZW5vdWdoIGFyZ3VtZW50cy4KK1BBU1Mgdmlldy5nZXRVaW50MzIo
KSB0aHJldyBleGNlcHRpb24gU3ludGF4RXJyb3I6IE5vdCBlbm91Z2ggYXJndW1lbnRzLgorUEFT
UyB2aWV3LmdldEZsb2F0MzIoKSB0aHJldyBleGNlcHRpb24gU3ludGF4RXJyb3I6IE5vdCBlbm91
Z2ggYXJndW1lbnRzLgorUEFTUyB2aWV3LmdldEZsb2F0NjQoKSB0aHJldyBleGNlcHRpb24gU3lu
dGF4RXJyb3I6IE5vdCBlbm91Z2ggYXJndW1lbnRzLgorCitUZXN0IGZvciBzZXQgbWV0aG9kcyB0
aGF0IHdvcmsKK1BBU1Mgdmlldy5zZXRJbnQ4KDAsIDApIGlzIHVuZGVmaW5lZC4KK1BBU1Mgdmll
dy5nZXRJbnQ4KDApIGlzIDAKK1BBU1Mgdmlldy5zZXRJbnQ4KDgsIC0xMjgpIGlzIHVuZGVmaW5l
ZC4KK1BBU1Mgdmlldy5nZXRJbnQ4KDgpIGlzIC0xMjgKK1BBU1Mgdmlldy5zZXRJbnQ4KDE1LCAt
MSkgaXMgdW5kZWZpbmVkLgorUEFTUyB2aWV3LmdldEludDgoMTUpIGlzIC0xCitQQVNTIHZpZXcu
c2V0VWludDgoMCwgMCkgaXMgdW5kZWZpbmVkLgorUEFTUyB2aWV3LmdldFVpbnQ4KDApIGlzIDAK
K1BBU1Mgdmlldy5zZXRVaW50OCg4LCAxMjgpIGlzIHVuZGVmaW5lZC4KK1BBU1Mgdmlldy5nZXRV
aW50OCg4KSBpcyAxMjgKK1BBU1Mgdmlldy5zZXRVaW50OCgxNSwgMjU1KSBpcyB1bmRlZmluZWQu
CitQQVNTIHZpZXcuZ2V0VWludDgoMTUpIGlzIDI1NQorUEFTUyB2aWV3LnNldEludDE2KDAsIDI1
NiwgdHJ1ZSkgaXMgdW5kZWZpbmVkLgorUEFTUyB2aWV3LmdldEludDE2KDAsIHRydWUpIGlzIDI1
NgorUEFTUyB2aWV3LnNldEludDE2KDUsIDI2MjEzLCB0cnVlKSBpcyB1bmRlZmluZWQuCitQQVNT
IHZpZXcuZ2V0SW50MTYoNSwgdHJ1ZSkgaXMgMjYyMTMKK1BBU1Mgdmlldy5zZXRJbnQxNig5LCAt
MzIxMjcsIHRydWUpIGlzIHVuZGVmaW5lZC4KK1BBU1Mgdmlldy5nZXRJbnQxNig5LCB0cnVlKSBp
cyAtMzIxMjcKK1BBU1Mgdmlldy5zZXRJbnQxNigxNCwgLTIsIHRydWUpIGlzIHVuZGVmaW5lZC4K
K1BBU1Mgdmlldy5nZXRJbnQxNigxNCwgdHJ1ZSkgaXMgLTIKK1BBU1Mgdmlldy5zZXRJbnQxNigw
LCAxKSBpcyB1bmRlZmluZWQuCitQQVNTIHZpZXcuZ2V0SW50MTYoMCkgaXMgMQorUEFTUyB2aWV3
LnNldEludDE2KDUsIDI1OTU4KSBpcyB1bmRlZmluZWQuCitQQVNTIHZpZXcuZ2V0SW50MTYoNSkg
aXMgMjU5NTgKK1BBU1Mgdmlldy5zZXRJbnQxNig5LCAtMzIzODIpIGlzIHVuZGVmaW5lZC4KK1BB
U1Mgdmlldy5nZXRJbnQxNig5KSBpcyAtMzIzODIKK1BBU1Mgdmlldy5zZXRJbnQxNigxNCwgLTI1
NykgaXMgdW5kZWZpbmVkLgorUEFTUyB2aWV3LmdldEludDE2KDE0KSBpcyAtMjU3CitQQVNTIHZp
ZXcuc2V0VWludDE2KDAsIDI1NiwgdHJ1ZSkgaXMgdW5kZWZpbmVkLgorUEFTUyB2aWV3LmdldFVp
bnQxNigwLCB0cnVlKSBpcyAyNTYKK1BBU1Mgdmlldy5zZXRVaW50MTYoNSwgMjYyMTMsIHRydWUp
IGlzIHVuZGVmaW5lZC4KK1BBU1Mgdmlldy5nZXRVaW50MTYoNSwgdHJ1ZSkgaXMgMjYyMTMKK1BB
U1Mgdmlldy5zZXRVaW50MTYoOSwgMzM0MDksIHRydWUpIGlzIHVuZGVmaW5lZC4KK1BBU1Mgdmll
dy5nZXRVaW50MTYoOSwgdHJ1ZSkgaXMgMzM0MDkKK1BBU1Mgdmlldy5zZXRVaW50MTYoMTQsIDY1
NTM0LCB0cnVlKSBpcyB1bmRlZmluZWQuCitQQVNTIHZpZXcuZ2V0VWludDE2KDE0LCB0cnVlKSBp
cyA2NTUzNAorUEFTUyB2aWV3LnNldFVpbnQxNigwLCAxKSBpcyB1bmRlZmluZWQuCitQQVNTIHZp
ZXcuZ2V0VWludDE2KDApIGlzIDEKK1BBU1Mgdmlldy5zZXRVaW50MTYoNSwgMjU5NTgpIGlzIHVu
ZGVmaW5lZC4KK1BBU1Mgdmlldy5nZXRVaW50MTYoNSkgaXMgMjU5NTgKK1BBU1Mgdmlldy5zZXRV
aW50MTYoOSwgMzMxNTQpIGlzIHVuZGVmaW5lZC4KK1BBU1Mgdmlldy5nZXRVaW50MTYoOSkgaXMg
MzMxNTQKK1BBU1Mgdmlldy5zZXRVaW50MTYoMTQsIDY1Mjc5KSBpcyB1bmRlZmluZWQuCitQQVNT
IHZpZXcuZ2V0VWludDE2KDE0KSBpcyA2NTI3OQorUEFTUyB2aWV3LnNldEludDMyKDAsIDUwNDYy
OTc2LCB0cnVlKSBpcyB1bmRlZmluZWQuCitQQVNTIHZpZXcuZ2V0SW50MzIoMCwgdHJ1ZSkgaXMg
NTA0NjI5NzYKK1BBU1Mgdmlldy5zZXRJbnQzMigzLCAxNzE3OTIwNzcxLCB0cnVlKSBpcyB1bmRl
ZmluZWQuCitQQVNTIHZpZXcuZ2V0SW50MzIoMywgdHJ1ZSkgaXMgMTcxNzkyMDc3MQorUEFTUyB2
aWV3LnNldEludDMyKDYsIC0yMTIyMjkxMzU0LCB0cnVlKSBpcyB1bmRlZmluZWQuCitQQVNTIHZp
ZXcuZ2V0SW50MzIoNiwgdHJ1ZSkgaXMgLTIxMjIyOTEzNTQKK1BBU1Mgdmlldy5zZXRJbnQzMig5
LCAtNTg0OTAyMzksIHRydWUpIGlzIHVuZGVmaW5lZC4KK1BBU1Mgdmlldy5nZXRJbnQzMig5LCB0
cnVlKSBpcyAtNTg0OTAyMzkKK1BBU1Mgdmlldy5zZXRJbnQzMigxMiwgLTY2MDUyLCB0cnVlKSBp
cyB1bmRlZmluZWQuCitQQVNTIHZpZXcuZ2V0SW50MzIoMTIsIHRydWUpIGlzIC02NjA1MgorUEFT
UyB2aWV3LnNldEludDMyKDAsIDY2MDUxKSBpcyB1bmRlZmluZWQuCitQQVNTIHZpZXcuZ2V0SW50
MzIoMCkgaXMgNjYwNTEKK1BBU1Mgdmlldy5zZXRJbnQzMigzLCA1NjkxMTIwNikgaXMgdW5kZWZp
bmVkLgorUEFTUyB2aWV3LmdldEludDMyKDMpIGlzIDU2OTExMjA2CitQQVNTIHZpZXcuc2V0SW50
MzIoNiwgMTcxODA1OTEzNykgaXMgdW5kZWZpbmVkLgorUEFTUyB2aWV3LmdldEludDMyKDYpIGlz
IDE3MTgwNTkxMzcKK1BBU1Mgdmlldy5zZXRJbnQzMig5LCAtMjEyMjE1Mjk2NCkgaXMgdW5kZWZp
bmVkLgorUEFTUyB2aWV3LmdldEludDMyKDkpIGlzIC0yMTIyMTUyOTY0CitQQVNTIHZpZXcuc2V0
SW50MzIoMTIsIC01MDQ2Mjk3NykgaXMgdW5kZWZpbmVkLgorUEFTUyB2aWV3LmdldEludDMyKDEy
KSBpcyAtNTA0NjI5NzcKK1BBU1Mgdmlldy5zZXRVaW50MzIoMCwgNTA0NjI5NzYsIHRydWUpIGlz
IHVuZGVmaW5lZC4KK1BBU1Mgdmlldy5nZXRVaW50MzIoMCwgdHJ1ZSkgaXMgNTA0NjI5NzYKK1BB
U1Mgdmlldy5zZXRVaW50MzIoMywgMTcxNzkyMDc3MSwgdHJ1ZSkgaXMgdW5kZWZpbmVkLgorUEFT
UyB2aWV3LmdldFVpbnQzMigzLCB0cnVlKSBpcyAxNzE3OTIwNzcxCitQQVNTIHZpZXcuc2V0VWlu
dDMyKDYsIDIxNzI2NzU5NDIsIHRydWUpIGlzIHVuZGVmaW5lZC4KK1BBU1Mgdmlldy5nZXRVaW50
MzIoNiwgdHJ1ZSkgaXMgMjE3MjY3NTk0MgorUEFTUyB2aWV3LnNldFVpbnQzMig5LCA0MjM2NDc3
MDU3LCB0cnVlKSBpcyB1bmRlZmluZWQuCitQQVNTIHZpZXcuZ2V0VWludDMyKDksIHRydWUpIGlz
IDQyMzY0NzcwNTcKK1BBU1Mgdmlldy5zZXRVaW50MzIoMTIsIDQyOTQ5MDEyNDQsIHRydWUpIGlz
IHVuZGVmaW5lZC4KK1BBU1Mgdmlldy5nZXRVaW50MzIoMTIsIHRydWUpIGlzIDQyOTQ5MDEyNDQK
K1BBU1Mgdmlldy5zZXRVaW50MzIoMCwgNjYwNTEpIGlzIHVuZGVmaW5lZC4KK1BBU1Mgdmlldy5n
ZXRVaW50MzIoMCkgaXMgNjYwNTEKK1BBU1Mgdmlldy5zZXRVaW50MzIoMywgNTY5MTEyMDYpIGlz
IHVuZGVmaW5lZC4KK1BBU1Mgdmlldy5nZXRVaW50MzIoMykgaXMgNTY5MTEyMDYKK1BBU1Mgdmll
dy5zZXRVaW50MzIoNiwgMTcxODA1OTEzNykgaXMgdW5kZWZpbmVkLgorUEFTUyB2aWV3LmdldFVp
bnQzMig2KSBpcyAxNzE4MDU5MTM3CitQQVNTIHZpZXcuc2V0VWludDMyKDksIDIxNzI4MTQzMzIp
IGlzIHVuZGVmaW5lZC4KK1BBU1Mgdmlldy5nZXRVaW50MzIoOSkgaXMgMjE3MjgxNDMzMgorUEFT
UyB2aWV3LnNldFVpbnQzMigxMiwgNDI0NDUwNDMxOSkgaXMgdW5kZWZpbmVkLgorUEFTUyB2aWV3
LmdldFVpbnQzMigxMikgaXMgNDI0NDUwNDMxOQorUEFTUyB2aWV3LnNldEZsb2F0MzIoMCwgMTAs
IHRydWUpIGlzIHVuZGVmaW5lZC4KK1BBU1Mgdmlldy5nZXRGbG9hdDMyKDAsIHRydWUpIGlzIDEw
CitQQVNTIHZpZXcuc2V0RmxvYXQzMigzLCAxMCwgdHJ1ZSkgaXMgdW5kZWZpbmVkLgorUEFTUyB2
aWV3LmdldEZsb2F0MzIoMywgdHJ1ZSkgaXMgMTAKK1BBU1Mgdmlldy5zZXRGbG9hdDMyKDcsIDEw
LCB0cnVlKSBpcyB1bmRlZmluZWQuCitQQVNTIHZpZXcuZ2V0RmxvYXQzMig3LCB0cnVlKSBpcyAx
MAorUEFTUyB2aWV3LnNldEZsb2F0MzIoMTAsIDEwLCB0cnVlKSBpcyB1bmRlZmluZWQuCitQQVNT
IHZpZXcuZ2V0RmxvYXQzMigxMCwgdHJ1ZSkgaXMgMTAKK1BBU1Mgdmlldy5zZXRGbG9hdDMyKDAs
IDEwLCBmYWxzZSkgaXMgdW5kZWZpbmVkLgorUEFTUyB2aWV3LmdldEZsb2F0MzIoMCwgZmFsc2Up
IGlzIDEwCitQQVNTIHZpZXcuc2V0RmxvYXQzMigzLCAxMCwgZmFsc2UpIGlzIHVuZGVmaW5lZC4K
K1BBU1Mgdmlldy5nZXRGbG9hdDMyKDMsIGZhbHNlKSBpcyAxMAorUEFTUyB2aWV3LnNldEZsb2F0
MzIoNywgMTAsIGZhbHNlKSBpcyB1bmRlZmluZWQuCitQQVNTIHZpZXcuZ2V0RmxvYXQzMig3LCBm
YWxzZSkgaXMgMTAKK1BBU1Mgdmlldy5zZXRGbG9hdDMyKDEwLCAxMCwgZmFsc2UpIGlzIHVuZGVm
aW5lZC4KK1BBU1Mgdmlldy5nZXRGbG9hdDMyKDEwLCBmYWxzZSkgaXMgMTAKK1BBU1Mgdmlldy5z
ZXRGbG9hdDMyKDAsIDEuMjMwMDAwMDE5MDczNDg2MywgdHJ1ZSkgaXMgdW5kZWZpbmVkLgorUEFT
UyB2aWV3LmdldEZsb2F0MzIoMCwgdHJ1ZSkgaXMgMS4yMzAwMDAwMTkwNzM0ODYzCitQQVNTIHZp
ZXcuc2V0RmxvYXQzMigzLCAxLjIzMDAwMDAxOTA3MzQ4NjMsIHRydWUpIGlzIHVuZGVmaW5lZC4K
K1BBU1Mgdmlldy5nZXRGbG9hdDMyKDMsIHRydWUpIGlzIDEuMjMwMDAwMDE5MDczNDg2MworUEFT
UyB2aWV3LnNldEZsb2F0MzIoNywgMS4yMzAwMDAwMTkwNzM0ODYzLCB0cnVlKSBpcyB1bmRlZmlu
ZWQuCitQQVNTIHZpZXcuZ2V0RmxvYXQzMig3LCB0cnVlKSBpcyAxLjIzMDAwMDAxOTA3MzQ4NjMK
K1BBU1Mgdmlldy5zZXRGbG9hdDMyKDEwLCAxLjIzMDAwMDAxOTA3MzQ4NjMsIHRydWUpIGlzIHVu
ZGVmaW5lZC4KK1BBU1Mgdmlldy5nZXRGbG9hdDMyKDEwLCB0cnVlKSBpcyAxLjIzMDAwMDAxOTA3
MzQ4NjMKK1BBU1Mgdmlldy5zZXRGbG9hdDMyKDAsIDEuMjMwMDAwMDE5MDczNDg2MywgZmFsc2Up
IGlzIHVuZGVmaW5lZC4KK1BBU1Mgdmlldy5nZXRGbG9hdDMyKDAsIGZhbHNlKSBpcyAxLjIzMDAw
MDAxOTA3MzQ4NjMKK1BBU1Mgdmlldy5zZXRGbG9hdDMyKDMsIDEuMjMwMDAwMDE5MDczNDg2Mywg
ZmFsc2UpIGlzIHVuZGVmaW5lZC4KK1BBU1Mgdmlldy5nZXRGbG9hdDMyKDMsIGZhbHNlKSBpcyAx
LjIzMDAwMDAxOTA3MzQ4NjMKK1BBU1Mgdmlldy5zZXRGbG9hdDMyKDcsIDEuMjMwMDAwMDE5MDcz
NDg2MywgZmFsc2UpIGlzIHVuZGVmaW5lZC4KK1BBU1Mgdmlldy5nZXRGbG9hdDMyKDcsIGZhbHNl
KSBpcyAxLjIzMDAwMDAxOTA3MzQ4NjMKK1BBU1Mgdmlldy5zZXRGbG9hdDMyKDEwLCAxLjIzMDAw
MDAxOTA3MzQ4NjMsIGZhbHNlKSBpcyB1bmRlZmluZWQuCitQQVNTIHZpZXcuZ2V0RmxvYXQzMigx
MCwgZmFsc2UpIGlzIDEuMjMwMDAwMDE5MDczNDg2MworUEFTUyB2aWV3LnNldEZsb2F0MzIoMCwg
LTQ1NjIxLjM3MTA5Mzc1LCB0cnVlKSBpcyB1bmRlZmluZWQuCitQQVNTIHZpZXcuZ2V0RmxvYXQz
MigwLCB0cnVlKSBpcyAtNDU2MjEuMzcxMDkzNzUKK1BBU1Mgdmlldy5zZXRGbG9hdDMyKDMsIC00
NTYyMS4zNzEwOTM3NSwgdHJ1ZSkgaXMgdW5kZWZpbmVkLgorUEFTUyB2aWV3LmdldEZsb2F0MzIo
MywgdHJ1ZSkgaXMgLTQ1NjIxLjM3MTA5Mzc1CitQQVNTIHZpZXcuc2V0RmxvYXQzMig3LCAtNDU2
MjEuMzcxMDkzNzUsIHRydWUpIGlzIHVuZGVmaW5lZC4KK1BBU1Mgdmlldy5nZXRGbG9hdDMyKDcs
IHRydWUpIGlzIC00NTYyMS4zNzEwOTM3NQorUEFTUyB2aWV3LnNldEZsb2F0MzIoMTAsIC00NTYy
MS4zNzEwOTM3NSwgdHJ1ZSkgaXMgdW5kZWZpbmVkLgorUEFTUyB2aWV3LmdldEZsb2F0MzIoMTAs
IHRydWUpIGlzIC00NTYyMS4zNzEwOTM3NQorUEFTUyB2aWV3LnNldEZsb2F0MzIoMCwgLTQ1NjIx
LjM3MTA5Mzc1LCBmYWxzZSkgaXMgdW5kZWZpbmVkLgorUEFTUyB2aWV3LmdldEZsb2F0MzIoMCwg
ZmFsc2UpIGlzIC00NTYyMS4zNzEwOTM3NQorUEFTUyB2aWV3LnNldEZsb2F0MzIoMywgLTQ1NjIx
LjM3MTA5Mzc1LCBmYWxzZSkgaXMgdW5kZWZpbmVkLgorUEFTUyB2aWV3LmdldEZsb2F0MzIoMywg
ZmFsc2UpIGlzIC00NTYyMS4zNzEwOTM3NQorUEFTUyB2aWV3LnNldEZsb2F0MzIoNywgLTQ1NjIx
LjM3MTA5Mzc1LCBmYWxzZSkgaXMgdW5kZWZpbmVkLgorUEFTUyB2aWV3LmdldEZsb2F0MzIoNywg
ZmFsc2UpIGlzIC00NTYyMS4zNzEwOTM3NQorUEFTUyB2aWV3LnNldEZsb2F0MzIoMTAsIC00NTYy
MS4zNzEwOTM3NSwgZmFsc2UpIGlzIHVuZGVmaW5lZC4KK1BBU1Mgdmlldy5nZXRGbG9hdDMyKDEw
LCBmYWxzZSkgaXMgLTQ1NjIxLjM3MTA5Mzc1CitQQVNTIHZpZXcuc2V0RmxvYXQzMigwLCBOYU4s
IHRydWUpIGlzIHVuZGVmaW5lZC4KK1BBU1Mgdmlldy5nZXRGbG9hdDMyKDAsIHRydWUpIGlzIE5h
TgorUEFTUyB2aWV3LnNldEZsb2F0MzIoMywgTmFOLCB0cnVlKSBpcyB1bmRlZmluZWQuCitQQVNT
IHZpZXcuZ2V0RmxvYXQzMigzLCB0cnVlKSBpcyBOYU4KK1BBU1Mgdmlldy5zZXRGbG9hdDMyKDcs
IE5hTiwgdHJ1ZSkgaXMgdW5kZWZpbmVkLgorUEFTUyB2aWV3LmdldEZsb2F0MzIoNywgdHJ1ZSkg
aXMgTmFOCitQQVNTIHZpZXcuc2V0RmxvYXQzMigxMCwgTmFOLCB0cnVlKSBpcyB1bmRlZmluZWQu
CitQQVNTIHZpZXcuZ2V0RmxvYXQzMigxMCwgdHJ1ZSkgaXMgTmFOCitQQVNTIHZpZXcuc2V0Rmxv
YXQzMigwLCBOYU4sIGZhbHNlKSBpcyB1bmRlZmluZWQuCitQQVNTIHZpZXcuZ2V0RmxvYXQzMigw
LCBmYWxzZSkgaXMgTmFOCitQQVNTIHZpZXcuc2V0RmxvYXQzMigzLCBOYU4sIGZhbHNlKSBpcyB1
bmRlZmluZWQuCitQQVNTIHZpZXcuZ2V0RmxvYXQzMigzLCBmYWxzZSkgaXMgTmFOCitQQVNTIHZp
ZXcuc2V0RmxvYXQzMig3LCBOYU4sIGZhbHNlKSBpcyB1bmRlZmluZWQuCitQQVNTIHZpZXcuZ2V0
RmxvYXQzMig3LCBmYWxzZSkgaXMgTmFOCitQQVNTIHZpZXcuc2V0RmxvYXQzMigxMCwgTmFOLCBm
YWxzZSkgaXMgdW5kZWZpbmVkLgorUEFTUyB2aWV3LmdldEZsb2F0MzIoMTAsIGZhbHNlKSBpcyBO
YU4KK1BBU1Mgdmlldy5zZXRGbG9hdDMyKDAsIC1OYU4sIHRydWUpIGlzIHVuZGVmaW5lZC4KK1BB
U1Mgdmlldy5nZXRGbG9hdDMyKDAsIHRydWUpIGlzIC1OYU4KK1BBU1Mgdmlldy5zZXRGbG9hdDMy
KDMsIC1OYU4sIHRydWUpIGlzIHVuZGVmaW5lZC4KK1BBU1Mgdmlldy5nZXRGbG9hdDMyKDMsIHRy
dWUpIGlzIC1OYU4KK1BBU1Mgdmlldy5zZXRGbG9hdDMyKDcsIC1OYU4sIHRydWUpIGlzIHVuZGVm
aW5lZC4KK1BBU1Mgdmlldy5nZXRGbG9hdDMyKDcsIHRydWUpIGlzIC1OYU4KK1BBU1Mgdmlldy5z
ZXRGbG9hdDMyKDEwLCAtTmFOLCB0cnVlKSBpcyB1bmRlZmluZWQuCitQQVNTIHZpZXcuZ2V0Rmxv
YXQzMigxMCwgdHJ1ZSkgaXMgLU5hTgorUEFTUyB2aWV3LnNldEZsb2F0MzIoMCwgLU5hTiwgZmFs
c2UpIGlzIHVuZGVmaW5lZC4KK1BBU1Mgdmlldy5nZXRGbG9hdDMyKDAsIGZhbHNlKSBpcyAtTmFO
CitQQVNTIHZpZXcuc2V0RmxvYXQzMigzLCAtTmFOLCBmYWxzZSkgaXMgdW5kZWZpbmVkLgorUEFT
UyB2aWV3LmdldEZsb2F0MzIoMywgZmFsc2UpIGlzIC1OYU4KK1BBU1Mgdmlldy5zZXRGbG9hdDMy
KDcsIC1OYU4sIGZhbHNlKSBpcyB1bmRlZmluZWQuCitQQVNTIHZpZXcuZ2V0RmxvYXQzMig3LCBm
YWxzZSkgaXMgLU5hTgorUEFTUyB2aWV3LnNldEZsb2F0MzIoMTAsIC1OYU4sIGZhbHNlKSBpcyB1
bmRlZmluZWQuCitQQVNTIHZpZXcuZ2V0RmxvYXQzMigxMCwgZmFsc2UpIGlzIC1OYU4KK1BBU1Mg
dmlldy5zZXRGbG9hdDY0KDAsIDEwLCB0cnVlKSBpcyB1bmRlZmluZWQuCitQQVNTIHZpZXcuZ2V0
RmxvYXQ2NCgwLCB0cnVlKSBpcyAxMAorUEFTUyB2aWV3LnNldEZsb2F0NjQoMywgMTAsIHRydWUp
IGlzIHVuZGVmaW5lZC4KK1BBU1Mgdmlldy5nZXRGbG9hdDY0KDMsIHRydWUpIGlzIDEwCitQQVNT
IHZpZXcuc2V0RmxvYXQ2NCg3LCAxMCwgdHJ1ZSkgaXMgdW5kZWZpbmVkLgorUEFTUyB2aWV3Lmdl
dEZsb2F0NjQoNywgdHJ1ZSkgaXMgMTAKK1BBU1Mgdmlldy5zZXRGbG9hdDY0KDEwLCAxMCwgdHJ1
ZSkgaXMgdW5kZWZpbmVkLgorUEFTUyB2aWV3LmdldEZsb2F0NjQoMTAsIHRydWUpIGlzIDEwCitQ
QVNTIHZpZXcuc2V0RmxvYXQ2NCgwLCAxMCwgZmFsc2UpIGlzIHVuZGVmaW5lZC4KK1BBU1Mgdmll
dy5nZXRGbG9hdDY0KDAsIGZhbHNlKSBpcyAxMAorUEFTUyB2aWV3LnNldEZsb2F0NjQoMywgMTAs
IGZhbHNlKSBpcyB1bmRlZmluZWQuCitQQVNTIHZpZXcuZ2V0RmxvYXQ2NCgzLCBmYWxzZSkgaXMg
MTAKK1BBU1Mgdmlldy5zZXRGbG9hdDY0KDcsIDEwLCBmYWxzZSkgaXMgdW5kZWZpbmVkLgorUEFT
UyB2aWV3LmdldEZsb2F0NjQoNywgZmFsc2UpIGlzIDEwCitQQVNTIHZpZXcuc2V0RmxvYXQ2NCgx
MCwgMTAsIGZhbHNlKSBpcyB1bmRlZmluZWQuCitQQVNTIHZpZXcuZ2V0RmxvYXQ2NCgxMCwgZmFs
c2UpIGlzIDEwCitQQVNTIHZpZXcuc2V0RmxvYXQ2NCgwLCAxLjIzLCB0cnVlKSBpcyB1bmRlZmlu
ZWQuCitQQVNTIHZpZXcuZ2V0RmxvYXQ2NCgwLCB0cnVlKSBpcyAxLjIzCitQQVNTIHZpZXcuc2V0
RmxvYXQ2NCgzLCAxLjIzLCB0cnVlKSBpcyB1bmRlZmluZWQuCitQQVNTIHZpZXcuZ2V0RmxvYXQ2
NCgzLCB0cnVlKSBpcyAxLjIzCitQQVNTIHZpZXcuc2V0RmxvYXQ2NCg3LCAxLjIzLCB0cnVlKSBp
cyB1bmRlZmluZWQuCitQQVNTIHZpZXcuZ2V0RmxvYXQ2NCg3LCB0cnVlKSBpcyAxLjIzCitQQVNT
IHZpZXcuc2V0RmxvYXQ2NCgxMCwgMS4yMywgdHJ1ZSkgaXMgdW5kZWZpbmVkLgorUEFTUyB2aWV3
LmdldEZsb2F0NjQoMTAsIHRydWUpIGlzIDEuMjMKK1BBU1Mgdmlldy5zZXRGbG9hdDY0KDAsIDEu
MjMsIGZhbHNlKSBpcyB1bmRlZmluZWQuCitQQVNTIHZpZXcuZ2V0RmxvYXQ2NCgwLCBmYWxzZSkg
aXMgMS4yMworUEFTUyB2aWV3LnNldEZsb2F0NjQoMywgMS4yMywgZmFsc2UpIGlzIHVuZGVmaW5l
ZC4KK1BBU1Mgdmlldy5nZXRGbG9hdDY0KDMsIGZhbHNlKSBpcyAxLjIzCitQQVNTIHZpZXcuc2V0
RmxvYXQ2NCg3LCAxLjIzLCBmYWxzZSkgaXMgdW5kZWZpbmVkLgorUEFTUyB2aWV3LmdldEZsb2F0
NjQoNywgZmFsc2UpIGlzIDEuMjMKK1BBU1Mgdmlldy5zZXRGbG9hdDY0KDEwLCAxLjIzLCBmYWxz
ZSkgaXMgdW5kZWZpbmVkLgorUEFTUyB2aWV3LmdldEZsb2F0NjQoMTAsIGZhbHNlKSBpcyAxLjIz
CitQQVNTIHZpZXcuc2V0RmxvYXQ2NCgwLCAtNjIxMzU3Ni40ODM5LCB0cnVlKSBpcyB1bmRlZmlu
ZWQuCitQQVNTIHZpZXcuZ2V0RmxvYXQ2NCgwLCB0cnVlKSBpcyAtNjIxMzU3Ni40ODM5CitQQVNT
IHZpZXcuc2V0RmxvYXQ2NCgzLCAtNjIxMzU3Ni40ODM5LCB0cnVlKSBpcyB1bmRlZmluZWQuCitQ
QVNTIHZpZXcuZ2V0RmxvYXQ2NCgzLCB0cnVlKSBpcyAtNjIxMzU3Ni40ODM5CitQQVNTIHZpZXcu
c2V0RmxvYXQ2NCg3LCAtNjIxMzU3Ni40ODM5LCB0cnVlKSBpcyB1bmRlZmluZWQuCitQQVNTIHZp
ZXcuZ2V0RmxvYXQ2NCg3LCB0cnVlKSBpcyAtNjIxMzU3Ni40ODM5CitQQVNTIHZpZXcuc2V0Rmxv
YXQ2NCgxMCwgLTYyMTM1NzYuNDgzOSwgdHJ1ZSkgaXMgdW5kZWZpbmVkLgorUEFTUyB2aWV3Lmdl
dEZsb2F0NjQoMTAsIHRydWUpIGlzIC02MjEzNTc2LjQ4MzkKK1BBU1Mgdmlldy5zZXRGbG9hdDY0
KDAsIC02MjEzNTc2LjQ4MzksIGZhbHNlKSBpcyB1bmRlZmluZWQuCitQQVNTIHZpZXcuZ2V0Rmxv
YXQ2NCgwLCBmYWxzZSkgaXMgLTYyMTM1NzYuNDgzOQorUEFTUyB2aWV3LnNldEZsb2F0NjQoMywg
LTYyMTM1NzYuNDgzOSwgZmFsc2UpIGlzIHVuZGVmaW5lZC4KK1BBU1Mgdmlldy5nZXRGbG9hdDY0
KDMsIGZhbHNlKSBpcyAtNjIxMzU3Ni40ODM5CitQQVNTIHZpZXcuc2V0RmxvYXQ2NCg3LCAtNjIx
MzU3Ni40ODM5LCBmYWxzZSkgaXMgdW5kZWZpbmVkLgorUEFTUyB2aWV3LmdldEZsb2F0NjQoNywg
ZmFsc2UpIGlzIC02MjEzNTc2LjQ4MzkKK1BBU1Mgdmlldy5zZXRGbG9hdDY0KDEwLCAtNjIxMzU3
Ni40ODM5LCBmYWxzZSkgaXMgdW5kZWZpbmVkLgorUEFTUyB2aWV3LmdldEZsb2F0NjQoMTAsIGZh
bHNlKSBpcyAtNjIxMzU3Ni40ODM5CitQQVNTIHZpZXcuc2V0RmxvYXQ2NCgwLCBOYU4sIHRydWUp
IGlzIHVuZGVmaW5lZC4KK1BBU1Mgdmlldy5nZXRGbG9hdDY0KDAsIHRydWUpIGlzIE5hTgorUEFT
UyB2aWV3LnNldEZsb2F0NjQoMywgTmFOLCB0cnVlKSBpcyB1bmRlZmluZWQuCitQQVNTIHZpZXcu
Z2V0RmxvYXQ2NCgzLCB0cnVlKSBpcyBOYU4KK1BBU1Mgdmlldy5zZXRGbG9hdDY0KDcsIE5hTiwg
dHJ1ZSkgaXMgdW5kZWZpbmVkLgorUEFTUyB2aWV3LmdldEZsb2F0NjQoNywgdHJ1ZSkgaXMgTmFO
CitQQVNTIHZpZXcuc2V0RmxvYXQ2NCgxMCwgTmFOLCB0cnVlKSBpcyB1bmRlZmluZWQuCitQQVNT
IHZpZXcuZ2V0RmxvYXQ2NCgxMCwgdHJ1ZSkgaXMgTmFOCitQQVNTIHZpZXcuc2V0RmxvYXQ2NCgw
LCBOYU4sIGZhbHNlKSBpcyB1bmRlZmluZWQuCitQQVNTIHZpZXcuZ2V0RmxvYXQ2NCgwLCBmYWxz
ZSkgaXMgTmFOCitQQVNTIHZpZXcuc2V0RmxvYXQ2NCgzLCBOYU4sIGZhbHNlKSBpcyB1bmRlZmlu
ZWQuCitQQVNTIHZpZXcuZ2V0RmxvYXQ2NCgzLCBmYWxzZSkgaXMgTmFOCitQQVNTIHZpZXcuc2V0
RmxvYXQ2NCg3LCBOYU4sIGZhbHNlKSBpcyB1bmRlZmluZWQuCitQQVNTIHZpZXcuZ2V0RmxvYXQ2
NCg3LCBmYWxzZSkgaXMgTmFOCitQQVNTIHZpZXcuc2V0RmxvYXQ2NCgxMCwgTmFOLCBmYWxzZSkg
aXMgdW5kZWZpbmVkLgorUEFTUyB2aWV3LmdldEZsb2F0NjQoMTAsIGZhbHNlKSBpcyBOYU4KK1BB
U1Mgdmlldy5zZXRGbG9hdDY0KDAsIC1OYU4sIHRydWUpIGlzIHVuZGVmaW5lZC4KK1BBU1Mgdmll
dy5nZXRGbG9hdDY0KDAsIHRydWUpIGlzIC1OYU4KK1BBU1Mgdmlldy5zZXRGbG9hdDY0KDMsIC1O
YU4sIHRydWUpIGlzIHVuZGVmaW5lZC4KK1BBU1Mgdmlldy5nZXRGbG9hdDY0KDMsIHRydWUpIGlz
IC1OYU4KK1BBU1Mgdmlldy5zZXRGbG9hdDY0KDcsIC1OYU4sIHRydWUpIGlzIHVuZGVmaW5lZC4K
K1BBU1Mgdmlldy5nZXRGbG9hdDY0KDcsIHRydWUpIGlzIC1OYU4KK1BBU1Mgdmlldy5zZXRGbG9h
dDY0KDEwLCAtTmFOLCB0cnVlKSBpcyB1bmRlZmluZWQuCitQQVNTIHZpZXcuZ2V0RmxvYXQ2NCgx
MCwgdHJ1ZSkgaXMgLU5hTgorUEFTUyB2aWV3LnNldEZsb2F0NjQoMCwgLU5hTiwgZmFsc2UpIGlz
IHVuZGVmaW5lZC4KK1BBU1Mgdmlldy5nZXRGbG9hdDY0KDAsIGZhbHNlKSBpcyAtTmFOCitQQVNT
IHZpZXcuc2V0RmxvYXQ2NCgzLCAtTmFOLCBmYWxzZSkgaXMgdW5kZWZpbmVkLgorUEFTUyB2aWV3
LmdldEZsb2F0NjQoMywgZmFsc2UpIGlzIC1OYU4KK1BBU1Mgdmlldy5zZXRGbG9hdDY0KDcsIC1O
YU4sIGZhbHNlKSBpcyB1bmRlZmluZWQuCitQQVNTIHZpZXcuZ2V0RmxvYXQ2NCg3LCBmYWxzZSkg
aXMgLU5hTgorUEFTUyB2aWV3LnNldEZsb2F0NjQoMTAsIC1OYU4sIGZhbHNlKSBpcyB1bmRlZmlu
ZWQuCitQQVNTIHZpZXcuZ2V0RmxvYXQ2NCgxMCwgZmFsc2UpIGlzIC1OYU4KKworVGVzdCBmb3Ig
c2V0IG1ldGhvZHMgdGhhdCBtaWdodCB3cml0ZSBiZXlvbmQgdGhlIHJhbmdlCitQQVNTIHZpZXcu
c2V0SW50OCgwLCAwKSBpcyB1bmRlZmluZWQuCitQQVNTIHZpZXcuZ2V0SW50OCgwKSBpcyAwCitQ
QVNTIHZpZXcuc2V0SW50OCg4LCAtMTI4KSB0aHJldyBleGNlcHRpb24gRXJyb3I6IElOREVYX1NJ
WkVfRVJSOiBET00gRXhjZXB0aW9uIDEuCitQQVNTIHZpZXcuc2V0SW50OCgxNSwgLTEpIHRocmV3
IGV4Y2VwdGlvbiBFcnJvcjogSU5ERVhfU0laRV9FUlI6IERPTSBFeGNlcHRpb24gMS4KK1BBU1Mg
dmlldy5zZXRVaW50OCgwLCAwKSBpcyB1bmRlZmluZWQuCitQQVNTIHZpZXcuZ2V0VWludDgoMCkg
aXMgMAorUEFTUyB2aWV3LnNldFVpbnQ4KDgsIDEyOCkgdGhyZXcgZXhjZXB0aW9uIEVycm9yOiBJ
TkRFWF9TSVpFX0VSUjogRE9NIEV4Y2VwdGlvbiAxLgorUEFTUyB2aWV3LnNldFVpbnQ4KDE1LCAy
NTUpIHRocmV3IGV4Y2VwdGlvbiBFcnJvcjogSU5ERVhfU0laRV9FUlI6IERPTSBFeGNlcHRpb24g
MS4KK1BBU1Mgdmlldy5zZXRJbnQxNigwLCAyNTYsIHRydWUpIGlzIHVuZGVmaW5lZC4KK1BBU1Mg
dmlldy5nZXRJbnQxNigwLCB0cnVlKSBpcyAyNTYKK1BBU1Mgdmlldy5zZXRJbnQxNig1LCAyNjIx
MywgdHJ1ZSkgdGhyZXcgZXhjZXB0aW9uIEVycm9yOiBJTkRFWF9TSVpFX0VSUjogRE9NIEV4Y2Vw
dGlvbiAxLgorUEFTUyB2aWV3LnNldEludDE2KDksIC0zMjEyNywgdHJ1ZSkgdGhyZXcgZXhjZXB0
aW9uIEVycm9yOiBJTkRFWF9TSVpFX0VSUjogRE9NIEV4Y2VwdGlvbiAxLgorUEFTUyB2aWV3LnNl
dEludDE2KDE0LCAtMiwgdHJ1ZSkgdGhyZXcgZXhjZXB0aW9uIEVycm9yOiBJTkRFWF9TSVpFX0VS
UjogRE9NIEV4Y2VwdGlvbiAxLgorUEFTUyB2aWV3LnNldEludDE2KDAsIDEpIGlzIHVuZGVmaW5l
ZC4KK1BBU1Mgdmlldy5nZXRJbnQxNigwKSBpcyAxCitQQVNTIHZpZXcuc2V0SW50MTYoNSwgMjU5
NTgpIHRocmV3IGV4Y2VwdGlvbiBFcnJvcjogSU5ERVhfU0laRV9FUlI6IERPTSBFeGNlcHRpb24g
MS4KK1BBU1Mgdmlldy5zZXRJbnQxNig5LCAtMzIzODIpIHRocmV3IGV4Y2VwdGlvbiBFcnJvcjog
SU5ERVhfU0laRV9FUlI6IERPTSBFeGNlcHRpb24gMS4KK1BBU1Mgdmlldy5zZXRJbnQxNigxNCwg
LTI1NykgdGhyZXcgZXhjZXB0aW9uIEVycm9yOiBJTkRFWF9TSVpFX0VSUjogRE9NIEV4Y2VwdGlv
biAxLgorUEFTUyB2aWV3LnNldFVpbnQxNigwLCAyNTYsIHRydWUpIGlzIHVuZGVmaW5lZC4KK1BB
U1Mgdmlldy5nZXRVaW50MTYoMCwgdHJ1ZSkgaXMgMjU2CitQQVNTIHZpZXcuc2V0VWludDE2KDUs
IDI2MjEzLCB0cnVlKSB0aHJldyBleGNlcHRpb24gRXJyb3I6IElOREVYX1NJWkVfRVJSOiBET00g
RXhjZXB0aW9uIDEuCitQQVNTIHZpZXcuc2V0VWludDE2KDksIDMzNDA5LCB0cnVlKSB0aHJldyBl
eGNlcHRpb24gRXJyb3I6IElOREVYX1NJWkVfRVJSOiBET00gRXhjZXB0aW9uIDEuCitQQVNTIHZp
ZXcuc2V0VWludDE2KDE0LCA2NTUzNCwgdHJ1ZSkgdGhyZXcgZXhjZXB0aW9uIEVycm9yOiBJTkRF
WF9TSVpFX0VSUjogRE9NIEV4Y2VwdGlvbiAxLgorUEFTUyB2aWV3LnNldFVpbnQxNigwLCAxKSBp
cyB1bmRlZmluZWQuCitQQVNTIHZpZXcuZ2V0VWludDE2KDApIGlzIDEKK1BBU1Mgdmlldy5zZXRV
aW50MTYoNSwgMjU5NTgpIHRocmV3IGV4Y2VwdGlvbiBFcnJvcjogSU5ERVhfU0laRV9FUlI6IERP
TSBFeGNlcHRpb24gMS4KK1BBU1Mgdmlldy5zZXRVaW50MTYoOSwgMzMxNTQpIHRocmV3IGV4Y2Vw
dGlvbiBFcnJvcjogSU5ERVhfU0laRV9FUlI6IERPTSBFeGNlcHRpb24gMS4KK1BBU1Mgdmlldy5z
ZXRVaW50MTYoMTQsIDY1Mjc5KSB0aHJldyBleGNlcHRpb24gRXJyb3I6IElOREVYX1NJWkVfRVJS
OiBET00gRXhjZXB0aW9uIDEuCitQQVNTIHZpZXcuc2V0SW50MzIoMCwgNTA0NjI5NzYsIHRydWUp
IHRocmV3IGV4Y2VwdGlvbiBFcnJvcjogSU5ERVhfU0laRV9FUlI6IERPTSBFeGNlcHRpb24gMS4K
K1BBU1Mgdmlldy5zZXRJbnQzMigzLCAxNzE3OTIwNzcxLCB0cnVlKSB0aHJldyBleGNlcHRpb24g
RXJyb3I6IElOREVYX1NJWkVfRVJSOiBET00gRXhjZXB0aW9uIDEuCitQQVNTIHZpZXcuc2V0SW50
MzIoNiwgLTIxMjIyOTEzNTQsIHRydWUpIHRocmV3IGV4Y2VwdGlvbiBFcnJvcjogSU5ERVhfU0la
RV9FUlI6IERPTSBFeGNlcHRpb24gMS4KK1BBU1Mgdmlldy5zZXRJbnQzMig5LCAtNTg0OTAyMzks
IHRydWUpIHRocmV3IGV4Y2VwdGlvbiBFcnJvcjogSU5ERVhfU0laRV9FUlI6IERPTSBFeGNlcHRp
b24gMS4KK1BBU1Mgdmlldy5zZXRJbnQzMigxMiwgLTY2MDUyLCB0cnVlKSB0aHJldyBleGNlcHRp
b24gRXJyb3I6IElOREVYX1NJWkVfRVJSOiBET00gRXhjZXB0aW9uIDEuCitQQVNTIHZpZXcuc2V0
SW50MzIoMCwgNjYwNTEpIHRocmV3IGV4Y2VwdGlvbiBFcnJvcjogSU5ERVhfU0laRV9FUlI6IERP
TSBFeGNlcHRpb24gMS4KK1BBU1Mgdmlldy5zZXRJbnQzMigzLCA1NjkxMTIwNikgdGhyZXcgZXhj
ZXB0aW9uIEVycm9yOiBJTkRFWF9TSVpFX0VSUjogRE9NIEV4Y2VwdGlvbiAxLgorUEFTUyB2aWV3
LnNldEludDMyKDYsIDE3MTgwNTkxMzcpIHRocmV3IGV4Y2VwdGlvbiBFcnJvcjogSU5ERVhfU0la
RV9FUlI6IERPTSBFeGNlcHRpb24gMS4KK1BBU1Mgdmlldy5zZXRJbnQzMig5LCAtMjEyMjE1Mjk2
NCkgdGhyZXcgZXhjZXB0aW9uIEVycm9yOiBJTkRFWF9TSVpFX0VSUjogRE9NIEV4Y2VwdGlvbiAx
LgorUEFTUyB2aWV3LnNldEludDMyKDEyLCAtNTA0NjI5NzcpIHRocmV3IGV4Y2VwdGlvbiBFcnJv
cjogSU5ERVhfU0laRV9FUlI6IERPTSBFeGNlcHRpb24gMS4KK1BBU1Mgdmlldy5zZXRVaW50MzIo
MCwgNTA0NjI5NzYsIHRydWUpIHRocmV3IGV4Y2VwdGlvbiBFcnJvcjogSU5ERVhfU0laRV9FUlI6
IERPTSBFeGNlcHRpb24gMS4KK1BBU1Mgdmlldy5zZXRVaW50MzIoMywgMTcxNzkyMDc3MSwgdHJ1
ZSkgdGhyZXcgZXhjZXB0aW9uIEVycm9yOiBJTkRFWF9TSVpFX0VSUjogRE9NIEV4Y2VwdGlvbiAx
LgorUEFTUyB2aWV3LnNldFVpbnQzMig2LCAyMTcyNjc1OTQyLCB0cnVlKSB0aHJldyBleGNlcHRp
b24gRXJyb3I6IElOREVYX1NJWkVfRVJSOiBET00gRXhjZXB0aW9uIDEuCitQQVNTIHZpZXcuc2V0
VWludDMyKDksIDQyMzY0NzcwNTcsIHRydWUpIHRocmV3IGV4Y2VwdGlvbiBFcnJvcjogSU5ERVhf
U0laRV9FUlI6IERPTSBFeGNlcHRpb24gMS4KK1BBU1Mgdmlldy5zZXRVaW50MzIoMTIsIDQyOTQ5
MDEyNDQsIHRydWUpIHRocmV3IGV4Y2VwdGlvbiBFcnJvcjogSU5ERVhfU0laRV9FUlI6IERPTSBF
eGNlcHRpb24gMS4KK1BBU1Mgdmlldy5zZXRVaW50MzIoMCwgNjYwNTEpIHRocmV3IGV4Y2VwdGlv
biBFcnJvcjogSU5ERVhfU0laRV9FUlI6IERPTSBFeGNlcHRpb24gMS4KK1BBU1Mgdmlldy5zZXRV
aW50MzIoMywgNTY5MTEyMDYpIHRocmV3IGV4Y2VwdGlvbiBFcnJvcjogSU5ERVhfU0laRV9FUlI6
IERPTSBFeGNlcHRpb24gMS4KK1BBU1Mgdmlldy5zZXRVaW50MzIoNiwgMTcxODA1OTEzNykgdGhy
ZXcgZXhjZXB0aW9uIEVycm9yOiBJTkRFWF9TSVpFX0VSUjogRE9NIEV4Y2VwdGlvbiAxLgorUEFT
UyB2aWV3LnNldFVpbnQzMig5LCAyMTcyODE0MzMyKSB0aHJldyBleGNlcHRpb24gRXJyb3I6IElO
REVYX1NJWkVfRVJSOiBET00gRXhjZXB0aW9uIDEuCitQQVNTIHZpZXcuc2V0VWludDMyKDEyLCA0
MjQ0NTA0MzE5KSB0aHJldyBleGNlcHRpb24gRXJyb3I6IElOREVYX1NJWkVfRVJSOiBET00gRXhj
ZXB0aW9uIDEuCitQQVNTIHZpZXcuc2V0RmxvYXQzMigwLCAxMCwgdHJ1ZSkgaXMgdW5kZWZpbmVk
LgorUEFTUyB2aWV3LmdldEZsb2F0MzIoMCwgdHJ1ZSkgaXMgMTAKK1BBU1Mgdmlldy5zZXRGbG9h
dDMyKDMsIDEwLCB0cnVlKSBpcyB1bmRlZmluZWQuCitQQVNTIHZpZXcuZ2V0RmxvYXQzMigzLCB0
cnVlKSBpcyAxMAorUEFTUyB2aWV3LnNldEZsb2F0MzIoNywgMTAsIHRydWUpIGlzIHVuZGVmaW5l
ZC4KK1BBU1Mgdmlldy5nZXRGbG9hdDMyKDcsIHRydWUpIGlzIDEwCitQQVNTIHZpZXcuc2V0Rmxv
YXQzMigxMCwgMTAsIHRydWUpIGlzIHVuZGVmaW5lZC4KK1BBU1Mgdmlldy5nZXRGbG9hdDMyKDEw
LCB0cnVlKSBpcyAxMAorUEFTUyB2aWV3LnNldEZsb2F0MzIoMCwgMTAsIGZhbHNlKSBpcyB1bmRl
ZmluZWQuCitQQVNTIHZpZXcuZ2V0RmxvYXQzMigwLCBmYWxzZSkgaXMgMTAKK1BBU1Mgdmlldy5z
ZXRGbG9hdDMyKDMsIDEwLCBmYWxzZSkgaXMgdW5kZWZpbmVkLgorUEFTUyB2aWV3LmdldEZsb2F0
MzIoMywgZmFsc2UpIGlzIDEwCitQQVNTIHZpZXcuc2V0RmxvYXQzMig3LCAxMCwgZmFsc2UpIGlz
IHVuZGVmaW5lZC4KK1BBU1Mgdmlldy5nZXRGbG9hdDMyKDcsIGZhbHNlKSBpcyAxMAorUEFTUyB2
aWV3LnNldEZsb2F0MzIoMTAsIDEwLCBmYWxzZSkgaXMgdW5kZWZpbmVkLgorUEFTUyB2aWV3Lmdl
dEZsb2F0MzIoMTAsIGZhbHNlKSBpcyAxMAorUEFTUyB2aWV3LnNldEZsb2F0MzIoMCwgMS4yMzAw
MDAwMTkwNzM0ODYzLCB0cnVlKSBpcyB1bmRlZmluZWQuCitQQVNTIHZpZXcuZ2V0RmxvYXQzMigw
LCB0cnVlKSBpcyAxLjIzMDAwMDAxOTA3MzQ4NjMKK1BBU1Mgdmlldy5zZXRGbG9hdDMyKDMsIDEu
MjMwMDAwMDE5MDczNDg2MywgdHJ1ZSkgaXMgdW5kZWZpbmVkLgorUEFTUyB2aWV3LmdldEZsb2F0
MzIoMywgdHJ1ZSkgaXMgMS4yMzAwMDAwMTkwNzM0ODYzCitQQVNTIHZpZXcuc2V0RmxvYXQzMig3
LCAxLjIzMDAwMDAxOTA3MzQ4NjMsIHRydWUpIGlzIHVuZGVmaW5lZC4KK1BBU1Mgdmlldy5nZXRG
bG9hdDMyKDcsIHRydWUpIGlzIDEuMjMwMDAwMDE5MDczNDg2MworUEFTUyB2aWV3LnNldEZsb2F0
MzIoMTAsIDEuMjMwMDAwMDE5MDczNDg2MywgdHJ1ZSkgaXMgdW5kZWZpbmVkLgorUEFTUyB2aWV3
LmdldEZsb2F0MzIoMTAsIHRydWUpIGlzIDEuMjMwMDAwMDE5MDczNDg2MworUEFTUyB2aWV3LnNl
dEZsb2F0MzIoMCwgMS4yMzAwMDAwMTkwNzM0ODYzLCBmYWxzZSkgaXMgdW5kZWZpbmVkLgorUEFT
UyB2aWV3LmdldEZsb2F0MzIoMCwgZmFsc2UpIGlzIDEuMjMwMDAwMDE5MDczNDg2MworUEFTUyB2
aWV3LnNldEZsb2F0MzIoMywgMS4yMzAwMDAwMTkwNzM0ODYzLCBmYWxzZSkgaXMgdW5kZWZpbmVk
LgorUEFTUyB2aWV3LmdldEZsb2F0MzIoMywgZmFsc2UpIGlzIDEuMjMwMDAwMDE5MDczNDg2Mwor
UEFTUyB2aWV3LnNldEZsb2F0MzIoNywgMS4yMzAwMDAwMTkwNzM0ODYzLCBmYWxzZSkgaXMgdW5k
ZWZpbmVkLgorUEFTUyB2aWV3LmdldEZsb2F0MzIoNywgZmFsc2UpIGlzIDEuMjMwMDAwMDE5MDcz
NDg2MworUEFTUyB2aWV3LnNldEZsb2F0MzIoMTAsIDEuMjMwMDAwMDE5MDczNDg2MywgZmFsc2Up
IGlzIHVuZGVmaW5lZC4KK1BBU1Mgdmlldy5nZXRGbG9hdDMyKDEwLCBmYWxzZSkgaXMgMS4yMzAw
MDAwMTkwNzM0ODYzCitQQVNTIHZpZXcuc2V0RmxvYXQzMigwLCAtNDU2MjEuMzcxMDkzNzUsIHRy
dWUpIGlzIHVuZGVmaW5lZC4KK1BBU1Mgdmlldy5nZXRGbG9hdDMyKDAsIHRydWUpIGlzIC00NTYy
MS4zNzEwOTM3NQorUEFTUyB2aWV3LnNldEZsb2F0MzIoMywgLTQ1NjIxLjM3MTA5Mzc1LCB0cnVl
KSBpcyB1bmRlZmluZWQuCitQQVNTIHZpZXcuZ2V0RmxvYXQzMigzLCB0cnVlKSBpcyAtNDU2MjEu
MzcxMDkzNzUKK1BBU1Mgdmlldy5zZXRGbG9hdDMyKDcsIC00NTYyMS4zNzEwOTM3NSwgdHJ1ZSkg
aXMgdW5kZWZpbmVkLgorUEFTUyB2aWV3LmdldEZsb2F0MzIoNywgdHJ1ZSkgaXMgLTQ1NjIxLjM3
MTA5Mzc1CitQQVNTIHZpZXcuc2V0RmxvYXQzMigxMCwgLTQ1NjIxLjM3MTA5Mzc1LCB0cnVlKSBp
cyB1bmRlZmluZWQuCitQQVNTIHZpZXcuZ2V0RmxvYXQzMigxMCwgdHJ1ZSkgaXMgLTQ1NjIxLjM3
MTA5Mzc1CitQQVNTIHZpZXcuc2V0RmxvYXQzMigwLCAtNDU2MjEuMzcxMDkzNzUsIGZhbHNlKSBp
cyB1bmRlZmluZWQuCitQQVNTIHZpZXcuZ2V0RmxvYXQzMigwLCBmYWxzZSkgaXMgLTQ1NjIxLjM3
MTA5Mzc1CitQQVNTIHZpZXcuc2V0RmxvYXQzMigzLCAtNDU2MjEuMzcxMDkzNzUsIGZhbHNlKSBp
cyB1bmRlZmluZWQuCitQQVNTIHZpZXcuZ2V0RmxvYXQzMigzLCBmYWxzZSkgaXMgLTQ1NjIxLjM3
MTA5Mzc1CitQQVNTIHZpZXcuc2V0RmxvYXQzMig3LCAtNDU2MjEuMzcxMDkzNzUsIGZhbHNlKSBp
cyB1bmRlZmluZWQuCitQQVNTIHZpZXcuZ2V0RmxvYXQzMig3LCBmYWxzZSkgaXMgLTQ1NjIxLjM3
MTA5Mzc1CitQQVNTIHZpZXcuc2V0RmxvYXQzMigxMCwgLTQ1NjIxLjM3MTA5Mzc1LCBmYWxzZSkg
aXMgdW5kZWZpbmVkLgorUEFTUyB2aWV3LmdldEZsb2F0MzIoMTAsIGZhbHNlKSBpcyAtNDU2MjEu
MzcxMDkzNzUKK1BBU1Mgdmlldy5zZXRGbG9hdDMyKDAsIE5hTiwgdHJ1ZSkgaXMgdW5kZWZpbmVk
LgorUEFTUyB2aWV3LmdldEZsb2F0MzIoMCwgdHJ1ZSkgaXMgTmFOCitQQVNTIHZpZXcuc2V0Rmxv
YXQzMigzLCBOYU4sIHRydWUpIGlzIHVuZGVmaW5lZC4KK1BBU1Mgdmlldy5nZXRGbG9hdDMyKDMs
IHRydWUpIGlzIE5hTgorUEFTUyB2aWV3LnNldEZsb2F0MzIoNywgTmFOLCB0cnVlKSBpcyB1bmRl
ZmluZWQuCitQQVNTIHZpZXcuZ2V0RmxvYXQzMig3LCB0cnVlKSBpcyBOYU4KK1BBU1Mgdmlldy5z
ZXRGbG9hdDMyKDEwLCBOYU4sIHRydWUpIGlzIHVuZGVmaW5lZC4KK1BBU1Mgdmlldy5nZXRGbG9h
dDMyKDEwLCB0cnVlKSBpcyBOYU4KK1BBU1Mgdmlldy5zZXRGbG9hdDMyKDAsIE5hTiwgZmFsc2Up
IGlzIHVuZGVmaW5lZC4KK1BBU1Mgdmlldy5nZXRGbG9hdDMyKDAsIGZhbHNlKSBpcyBOYU4KK1BB
U1Mgdmlldy5zZXRGbG9hdDMyKDMsIE5hTiwgZmFsc2UpIGlzIHVuZGVmaW5lZC4KK1BBU1Mgdmll
dy5nZXRGbG9hdDMyKDMsIGZhbHNlKSBpcyBOYU4KK1BBU1Mgdmlldy5zZXRGbG9hdDMyKDcsIE5h
TiwgZmFsc2UpIGlzIHVuZGVmaW5lZC4KK1BBU1Mgdmlldy5nZXRGbG9hdDMyKDcsIGZhbHNlKSBp
cyBOYU4KK1BBU1Mgdmlldy5zZXRGbG9hdDMyKDEwLCBOYU4sIGZhbHNlKSBpcyB1bmRlZmluZWQu
CitQQVNTIHZpZXcuZ2V0RmxvYXQzMigxMCwgZmFsc2UpIGlzIE5hTgorUEFTUyB2aWV3LnNldEZs
b2F0MzIoMCwgLU5hTiwgdHJ1ZSkgaXMgdW5kZWZpbmVkLgorUEFTUyB2aWV3LmdldEZsb2F0MzIo
MCwgdHJ1ZSkgaXMgLU5hTgorUEFTUyB2aWV3LnNldEZsb2F0MzIoMywgLU5hTiwgdHJ1ZSkgaXMg
dW5kZWZpbmVkLgorUEFTUyB2aWV3LmdldEZsb2F0MzIoMywgdHJ1ZSkgaXMgLU5hTgorUEFTUyB2
aWV3LnNldEZsb2F0MzIoNywgLU5hTiwgdHJ1ZSkgaXMgdW5kZWZpbmVkLgorUEFTUyB2aWV3Lmdl
dEZsb2F0MzIoNywgdHJ1ZSkgaXMgLU5hTgorUEFTUyB2aWV3LnNldEZsb2F0MzIoMTAsIC1OYU4s
IHRydWUpIGlzIHVuZGVmaW5lZC4KK1BBU1Mgdmlldy5nZXRGbG9hdDMyKDEwLCB0cnVlKSBpcyAt
TmFOCitQQVNTIHZpZXcuc2V0RmxvYXQzMigwLCAtTmFOLCBmYWxzZSkgaXMgdW5kZWZpbmVkLgor
UEFTUyB2aWV3LmdldEZsb2F0MzIoMCwgZmFsc2UpIGlzIC1OYU4KK1BBU1Mgdmlldy5zZXRGbG9h
dDMyKDMsIC1OYU4sIGZhbHNlKSBpcyB1bmRlZmluZWQuCitQQVNTIHZpZXcuZ2V0RmxvYXQzMigz
LCBmYWxzZSkgaXMgLU5hTgorUEFTUyB2aWV3LnNldEZsb2F0MzIoNywgLU5hTiwgZmFsc2UpIGlz
IHVuZGVmaW5lZC4KK1BBU1Mgdmlldy5nZXRGbG9hdDMyKDcsIGZhbHNlKSBpcyAtTmFOCitQQVNT
IHZpZXcuc2V0RmxvYXQzMigxMCwgLU5hTiwgZmFsc2UpIGlzIHVuZGVmaW5lZC4KK1BBU1Mgdmll
dy5nZXRGbG9hdDMyKDEwLCBmYWxzZSkgaXMgLU5hTgorUEFTUyB2aWV3LnNldEZsb2F0NjQoMCwg
MTAsIHRydWUpIGlzIHVuZGVmaW5lZC4KK1BBU1Mgdmlldy5nZXRGbG9hdDY0KDAsIHRydWUpIGlz
IDEwCitQQVNTIHZpZXcuc2V0RmxvYXQ2NCgzLCAxMCwgdHJ1ZSkgaXMgdW5kZWZpbmVkLgorUEFT
UyB2aWV3LmdldEZsb2F0NjQoMywgdHJ1ZSkgaXMgMTAKK1BBU1Mgdmlldy5zZXRGbG9hdDY0KDcs
IDEwLCB0cnVlKSBpcyB1bmRlZmluZWQuCitQQVNTIHZpZXcuZ2V0RmxvYXQ2NCg3LCB0cnVlKSBp
cyAxMAorUEFTUyB2aWV3LnNldEZsb2F0NjQoMTAsIDEwLCB0cnVlKSBpcyB1bmRlZmluZWQuCitQ
QVNTIHZpZXcuZ2V0RmxvYXQ2NCgxMCwgdHJ1ZSkgaXMgMTAKK1BBU1Mgdmlldy5zZXRGbG9hdDY0
KDAsIDEwLCBmYWxzZSkgaXMgdW5kZWZpbmVkLgorUEFTUyB2aWV3LmdldEZsb2F0NjQoMCwgZmFs
c2UpIGlzIDEwCitQQVNTIHZpZXcuc2V0RmxvYXQ2NCgzLCAxMCwgZmFsc2UpIGlzIHVuZGVmaW5l
ZC4KK1BBU1Mgdmlldy5nZXRGbG9hdDY0KDMsIGZhbHNlKSBpcyAxMAorUEFTUyB2aWV3LnNldEZs
b2F0NjQoNywgMTAsIGZhbHNlKSBpcyB1bmRlZmluZWQuCitQQVNTIHZpZXcuZ2V0RmxvYXQ2NCg3
LCBmYWxzZSkgaXMgMTAKK1BBU1Mgdmlldy5zZXRGbG9hdDY0KDEwLCAxMCwgZmFsc2UpIGlzIHVu
ZGVmaW5lZC4KK1BBU1Mgdmlldy5nZXRGbG9hdDY0KDEwLCBmYWxzZSkgaXMgMTAKK1BBU1Mgdmll
dy5zZXRGbG9hdDY0KDAsIDEuMjMsIHRydWUpIGlzIHVuZGVmaW5lZC4KK1BBU1Mgdmlldy5nZXRG
bG9hdDY0KDAsIHRydWUpIGlzIDEuMjMKK1BBU1Mgdmlldy5zZXRGbG9hdDY0KDMsIDEuMjMsIHRy
dWUpIGlzIHVuZGVmaW5lZC4KK1BBU1Mgdmlldy5nZXRGbG9hdDY0KDMsIHRydWUpIGlzIDEuMjMK
K1BBU1Mgdmlldy5zZXRGbG9hdDY0KDcsIDEuMjMsIHRydWUpIGlzIHVuZGVmaW5lZC4KK1BBU1Mg
dmlldy5nZXRGbG9hdDY0KDcsIHRydWUpIGlzIDEuMjMKK1BBU1Mgdmlldy5zZXRGbG9hdDY0KDEw
LCAxLjIzLCB0cnVlKSBpcyB1bmRlZmluZWQuCitQQVNTIHZpZXcuZ2V0RmxvYXQ2NCgxMCwgdHJ1
ZSkgaXMgMS4yMworUEFTUyB2aWV3LnNldEZsb2F0NjQoMCwgMS4yMywgZmFsc2UpIGlzIHVuZGVm
aW5lZC4KK1BBU1Mgdmlldy5nZXRGbG9hdDY0KDAsIGZhbHNlKSBpcyAxLjIzCitQQVNTIHZpZXcu
c2V0RmxvYXQ2NCgzLCAxLjIzLCBmYWxzZSkgaXMgdW5kZWZpbmVkLgorUEFTUyB2aWV3LmdldEZs
b2F0NjQoMywgZmFsc2UpIGlzIDEuMjMKK1BBU1Mgdmlldy5zZXRGbG9hdDY0KDcsIDEuMjMsIGZh
bHNlKSBpcyB1bmRlZmluZWQuCitQQVNTIHZpZXcuZ2V0RmxvYXQ2NCg3LCBmYWxzZSkgaXMgMS4y
MworUEFTUyB2aWV3LnNldEZsb2F0NjQoMTAsIDEuMjMsIGZhbHNlKSBpcyB1bmRlZmluZWQuCitQ
QVNTIHZpZXcuZ2V0RmxvYXQ2NCgxMCwgZmFsc2UpIGlzIDEuMjMKK1BBU1Mgdmlldy5zZXRGbG9h
dDY0KDAsIC02MjEzNTc2LjQ4MzksIHRydWUpIGlzIHVuZGVmaW5lZC4KK1BBU1Mgdmlldy5nZXRG
bG9hdDY0KDAsIHRydWUpIGlzIC02MjEzNTc2LjQ4MzkKK1BBU1Mgdmlldy5zZXRGbG9hdDY0KDMs
IC02MjEzNTc2LjQ4MzksIHRydWUpIGlzIHVuZGVmaW5lZC4KK1BBU1Mgdmlldy5nZXRGbG9hdDY0
KDMsIHRydWUpIGlzIC02MjEzNTc2LjQ4MzkKK1BBU1Mgdmlldy5zZXRGbG9hdDY0KDcsIC02MjEz
NTc2LjQ4MzksIHRydWUpIGlzIHVuZGVmaW5lZC4KK1BBU1Mgdmlldy5nZXRGbG9hdDY0KDcsIHRy
dWUpIGlzIC02MjEzNTc2LjQ4MzkKK1BBU1Mgdmlldy5zZXRGbG9hdDY0KDEwLCAtNjIxMzU3Ni40
ODM5LCB0cnVlKSBpcyB1bmRlZmluZWQuCitQQVNTIHZpZXcuZ2V0RmxvYXQ2NCgxMCwgdHJ1ZSkg
aXMgLTYyMTM1NzYuNDgzOQorUEFTUyB2aWV3LnNldEZsb2F0NjQoMCwgLTYyMTM1NzYuNDgzOSwg
ZmFsc2UpIGlzIHVuZGVmaW5lZC4KK1BBU1Mgdmlldy5nZXRGbG9hdDY0KDAsIGZhbHNlKSBpcyAt
NjIxMzU3Ni40ODM5CitQQVNTIHZpZXcuc2V0RmxvYXQ2NCgzLCAtNjIxMzU3Ni40ODM5LCBmYWxz
ZSkgaXMgdW5kZWZpbmVkLgorUEFTUyB2aWV3LmdldEZsb2F0NjQoMywgZmFsc2UpIGlzIC02MjEz
NTc2LjQ4MzkKK1BBU1Mgdmlldy5zZXRGbG9hdDY0KDcsIC02MjEzNTc2LjQ4MzksIGZhbHNlKSBp
cyB1bmRlZmluZWQuCitQQVNTIHZpZXcuZ2V0RmxvYXQ2NCg3LCBmYWxzZSkgaXMgLTYyMTM1NzYu
NDgzOQorUEFTUyB2aWV3LnNldEZsb2F0NjQoMTAsIC02MjEzNTc2LjQ4MzksIGZhbHNlKSBpcyB1
bmRlZmluZWQuCitQQVNTIHZpZXcuZ2V0RmxvYXQ2NCgxMCwgZmFsc2UpIGlzIC02MjEzNTc2LjQ4
MzkKK1BBU1Mgdmlldy5zZXRGbG9hdDY0KDAsIE5hTiwgdHJ1ZSkgaXMgdW5kZWZpbmVkLgorUEFT
UyB2aWV3LmdldEZsb2F0NjQoMCwgdHJ1ZSkgaXMgTmFOCitQQVNTIHZpZXcuc2V0RmxvYXQ2NCgz
LCBOYU4sIHRydWUpIGlzIHVuZGVmaW5lZC4KK1BBU1Mgdmlldy5nZXRGbG9hdDY0KDMsIHRydWUp
IGlzIE5hTgorUEFTUyB2aWV3LnNldEZsb2F0NjQoNywgTmFOLCB0cnVlKSBpcyB1bmRlZmluZWQu
CitQQVNTIHZpZXcuZ2V0RmxvYXQ2NCg3LCB0cnVlKSBpcyBOYU4KK1BBU1Mgdmlldy5zZXRGbG9h
dDY0KDEwLCBOYU4sIHRydWUpIGlzIHVuZGVmaW5lZC4KK1BBU1Mgdmlldy5nZXRGbG9hdDY0KDEw
LCB0cnVlKSBpcyBOYU4KK1BBU1Mgdmlldy5zZXRGbG9hdDY0KDAsIE5hTiwgZmFsc2UpIGlzIHVu
ZGVmaW5lZC4KK1BBU1Mgdmlldy5nZXRGbG9hdDY0KDAsIGZhbHNlKSBpcyBOYU4KK1BBU1Mgdmll
dy5zZXRGbG9hdDY0KDMsIE5hTiwgZmFsc2UpIGlzIHVuZGVmaW5lZC4KK1BBU1Mgdmlldy5nZXRG
bG9hdDY0KDMsIGZhbHNlKSBpcyBOYU4KK1BBU1Mgdmlldy5zZXRGbG9hdDY0KDcsIE5hTiwgZmFs
c2UpIGlzIHVuZGVmaW5lZC4KK1BBU1Mgdmlldy5nZXRGbG9hdDY0KDcsIGZhbHNlKSBpcyBOYU4K
K1BBU1Mgdmlldy5zZXRGbG9hdDY0KDEwLCBOYU4sIGZhbHNlKSBpcyB1bmRlZmluZWQuCitQQVNT
IHZpZXcuZ2V0RmxvYXQ2NCgxMCwgZmFsc2UpIGlzIE5hTgorUEFTUyB2aWV3LnNldEZsb2F0NjQo
MCwgLU5hTiwgdHJ1ZSkgaXMgdW5kZWZpbmVkLgorUEFTUyB2aWV3LmdldEZsb2F0NjQoMCwgdHJ1
ZSkgaXMgLU5hTgorUEFTUyB2aWV3LnNldEZsb2F0NjQoMywgLU5hTiwgdHJ1ZSkgaXMgdW5kZWZp
bmVkLgorUEFTUyB2aWV3LmdldEZsb2F0NjQoMywgdHJ1ZSkgaXMgLU5hTgorUEFTUyB2aWV3LnNl
dEZsb2F0NjQoNywgLU5hTiwgdHJ1ZSkgaXMgdW5kZWZpbmVkLgorUEFTUyB2aWV3LmdldEZsb2F0
NjQoNywgdHJ1ZSkgaXMgLU5hTgorUEFTUyB2aWV3LnNldEZsb2F0NjQoMTAsIC1OYU4sIHRydWUp
IGlzIHVuZGVmaW5lZC4KK1BBU1Mgdmlldy5nZXRGbG9hdDY0KDEwLCB0cnVlKSBpcyAtTmFOCitQ
QVNTIHZpZXcuc2V0RmxvYXQ2NCgwLCAtTmFOLCBmYWxzZSkgaXMgdW5kZWZpbmVkLgorUEFTUyB2
aWV3LmdldEZsb2F0NjQoMCwgZmFsc2UpIGlzIC1OYU4KK1BBU1Mgdmlldy5zZXRGbG9hdDY0KDMs
IC1OYU4sIGZhbHNlKSBpcyB1bmRlZmluZWQuCitQQVNTIHZpZXcuZ2V0RmxvYXQ2NCgzLCBmYWxz
ZSkgaXMgLU5hTgorUEFTUyB2aWV3LnNldEZsb2F0NjQoNywgLU5hTiwgZmFsc2UpIGlzIHVuZGVm
aW5lZC4KK1BBU1Mgdmlldy5nZXRGbG9hdDY0KDcsIGZhbHNlKSBpcyAtTmFOCitQQVNTIHZpZXcu
c2V0RmxvYXQ2NCgxMCwgLU5hTiwgZmFsc2UpIGlzIHVuZGVmaW5lZC4KK1BBU1Mgdmlldy5nZXRG
bG9hdDY0KDEwLCBmYWxzZSkgaXMgLU5hTgorCitUZXN0IGZvciB3cm9uZyBhcmd1bWVudHMgcGFz
c2VkIHRvIGdldCBtZXRob2RzCitQQVNTIHZpZXcuc2V0SW50OCgpIHRocmV3IGV4Y2VwdGlvbiBT
eW50YXhFcnJvcjogTm90IGVub3VnaCBhcmd1bWVudHMuCitQQVNTIHZpZXcuc2V0VWludDgoKSB0
aHJldyBleGNlcHRpb24gU3ludGF4RXJyb3I6IE5vdCBlbm91Z2ggYXJndW1lbnRzLgorUEFTUyB2
aWV3LnNldEludDE2KCkgdGhyZXcgZXhjZXB0aW9uIFN5bnRheEVycm9yOiBOb3QgZW5vdWdoIGFy
Z3VtZW50cy4KK1BBU1Mgdmlldy5zZXRVaW50MTYoKSB0aHJldyBleGNlcHRpb24gU3ludGF4RXJy
b3I6IE5vdCBlbm91Z2ggYXJndW1lbnRzLgorUEFTUyB2aWV3LnNldEludDMyKCkgdGhyZXcgZXhj
ZXB0aW9uIFN5bnRheEVycm9yOiBOb3QgZW5vdWdoIGFyZ3VtZW50cy4KK1BBU1Mgdmlldy5zZXRV
aW50MzIoKSB0aHJldyBleGNlcHRpb24gU3ludGF4RXJyb3I6IE5vdCBlbm91Z2ggYXJndW1lbnRz
LgorUEFTUyB2aWV3LnNldEZsb2F0MzIoKSB0aHJldyBleGNlcHRpb24gU3ludGF4RXJyb3I6IE5v
dCBlbm91Z2ggYXJndW1lbnRzLgorUEFTUyB2aWV3LnNldEZsb2F0NjQoKSB0aHJldyBleGNlcHRp
b24gU3ludGF4RXJyb3I6IE5vdCBlbm91Z2ggYXJndW1lbnRzLgorUEFTUyB2aWV3LnNldEludDgo
MSkgdGhyZXcgZXhjZXB0aW9uIFN5bnRheEVycm9yOiBOb3QgZW5vdWdoIGFyZ3VtZW50cy4KK1BB
U1Mgdmlldy5zZXRVaW50OCgxKSB0aHJldyBleGNlcHRpb24gU3ludGF4RXJyb3I6IE5vdCBlbm91
Z2ggYXJndW1lbnRzLgorUEFTUyB2aWV3LnNldEludDE2KDEpIHRocmV3IGV4Y2VwdGlvbiBTeW50
YXhFcnJvcjogTm90IGVub3VnaCBhcmd1bWVudHMuCitQQVNTIHZpZXcuc2V0VWludDE2KDEpIHRo
cmV3IGV4Y2VwdGlvbiBTeW50YXhFcnJvcjogTm90IGVub3VnaCBhcmd1bWVudHMuCitQQVNTIHZp
ZXcuc2V0SW50MzIoMSkgdGhyZXcgZXhjZXB0aW9uIFN5bnRheEVycm9yOiBOb3QgZW5vdWdoIGFy
Z3VtZW50cy4KK1BBU1Mgdmlldy5zZXRVaW50MzIoMSkgdGhyZXcgZXhjZXB0aW9uIFN5bnRheEVy
cm9yOiBOb3QgZW5vdWdoIGFyZ3VtZW50cy4KK1BBU1Mgdmlldy5zZXRGbG9hdDMyKDEpIHRocmV3
IGV4Y2VwdGlvbiBTeW50YXhFcnJvcjogTm90IGVub3VnaCBhcmd1bWVudHMuCitQQVNTIHZpZXcu
c2V0RmxvYXQ2NCgxKSB0aHJldyBleGNlcHRpb24gU3ludGF4RXJyb3I6IE5vdCBlbm91Z2ggYXJn
dW1lbnRzLgorCitUZXN0IGZvciBpbmRleGluZyB0aGF0IHNob3VsZCBub3Qgd29yaworUEFTUyB2
aWV3WzBdIGlzIHVuZGVmaW5lZC4KK1BBU1Mgdmlld1swXSA9IDMgaXMgZGVmaW5lZC4KK1BBU1Mg
dmlldy5nZXRVaW50OCgwKSBpcyAxCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisK
K1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvd2Vi
Z2wvZGF0YS12aWV3LXRlc3QuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvY2FudmFzL3dlYmdsL2Rh
dGEtdmlldy10ZXN0Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uZDdj
YmNjMDgKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2NhbnZhcy93ZWJnbC9k
YXRhLXZpZXctdGVzdC5odG1sCkBAIC0wLDAgKzEsMzAxIEBACis8aHRtbD4KKzxoZWFkPgorPGxp
bmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSIuLi8uLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1zdHls
ZS5jc3MiLz4KKzxzY3JpcHQgc3JjPSIuLi8uLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMi
Pjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8ZGl2IGlkPSJkZXNjcmlwdGlvbiI+PC9kaXY+
Cis8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKworPHNjcmlwdD4KK2Rlc2NyaXB0aW9uKCJUZXN0
IERhdGFWaWV3LiIpOworCit2YXIgaW50QXJyYXkxID0gWzAsIDEsIDIsIDMsIDEwMCwgMTAxLCAx
MDIsIDEwMywgMTI4LCAxMjksIDEzMCwgMTMxLCAyNTIsIDI1MywgMjU0LCAyNTVdOwordmFyIGlu
dEFycmF5MiA9IFszMSwgMzIsIDMzLCAwLCAxLCAyLCAzLCAxMDAsIDEwMSwgMTAyLCAxMDMsIDEy
OCwgMTI5LCAxMzAsIDEzMSwgMjUyLCAyNTMsIDI1NCwgMjU1XTsKK3ZhciBlbXB0eUFycmF5ID0g
WzIwNCwgMjA0LCAyMDQsIDIwNCwgMjA0LCAyMDQsIDIwNCwgMjA0LCAyMDQsIDIwNCwgMjA0LCAy
MDQsIDIwNCwgMjA0LCAyMDQsIDIwNF07CisKK3ZhciBhcmF5QnVmZmVyID0gbnVsbDsKK3ZhciB2
aWV3ID0gbnVsbDsKK3ZhciB2aWV3U3RhcnQgPSAwOwordmFyIHZpZXdMZW5ndGggPSAwOworCitm
dW5jdGlvbiBnZXRFbGVtZW50U2l6ZShmdW5jKQoreworICAgIHN3aXRjaCAoZnVuYykgeworICAg
IGNhc2UgIkludDgiOgorICAgIGNhc2UgIlVpbnQ4IjoKKyAgICAgICAgcmV0dXJuIDE7CisgICAg
Y2FzZSAiSW50MTYiOgorICAgIGNhc2UgIlVpbnQxNiI6CisgICAgICAgIHJldHVybiAyOworICAg
IGNhc2UgIkludDMyIjoKKyAgICBjYXNlICJVaW50MzIiOgorICAgIGNhc2UgIkZsb2F0MzIiOgor
ICAgICAgICByZXR1cm4gNDsKKyAgICBjYXNlICJGbG9hdDY0IjoKKyAgICAgICAgcmV0dXJuIDg7
CisgICAgZGVmYXVsdDoKKyAgICAgICAgZGVidWcoIlNob3VsZCBub3QgcmVhY2hlZCIpOworICAg
IH0KK30KKworZnVuY3Rpb24gY2hlY2tHZXQoZnVuYywgaW5kZXgsIGV4cGVjdGVkLCBsaXR0bGVF
bmRpYW4pCit7CisgICAgdmFyIGV4cHIgPSAidmlldy5nZXQiICsgZnVuYyArICIoIiArIGluZGV4
OworICAgIGlmIChsaXR0bGVFbmRpYW4gIT0gdW5kZWZpbmVkKSB7CisgICAgICAgIGV4cHIgKz0g
IiwgIjsKKyAgICAgICAgZXhwciArPSBsaXR0bGVFbmRpYW4gPyAidHJ1ZSIgOiAiZmFsc2UiOwor
ICAgIH0KKyAgICBleHByICs9ICIpIjsKKyAgICBpZiAoaW5kZXggKyBnZXRFbGVtZW50U2l6ZShm
dW5jKSAtIDEgPCB2aWV3LmJ5dGVMZW5ndGgpCisgICAgICAgIHNob3VsZEJlKGV4cHIsIGV4cGVj
dGVkKTsKKyAgICBlbHNlCisgICAgICAgIHNob3VsZFRocm93KGV4cHIpOworfQorCitmdW5jdGlv
biBjaGVja1NldChmdW5jLCBpbmRleCwgdmFsdWUsIGxpdHRsZUVuZGlhbikKK3sKKyAgICB2YXIg
ZXhwciA9ICJ2aWV3LnNldCIgKyBmdW5jICsgIigiICsgaW5kZXggKyAiLCAiICsgdmFsdWU7Cisg
ICAgaWYgKGxpdHRsZUVuZGlhbiAhPSB1bmRlZmluZWQpIHsKKyAgICAgICAgZXhwciArPSAiLCAi
OworICAgICAgICBleHByICs9IGxpdHRsZUVuZGlhbiA/ICJ0cnVlIiA6ICJmYWxzZSI7CisgICAg
fQorICAgIGV4cHIgKz0gIikiOworICAgIGlmIChpbmRleCArIGdldEVsZW1lbnRTaXplKGZ1bmMp
IC0gMSA8IHZpZXcuYnl0ZUxlbmd0aCkgeworICAgICAgICBzaG91bGRCZVVuZGVmaW5lZChleHBy
KTsKKyAgICAgICAgY2hlY2tHZXQoZnVuYywgaW5kZXgsIHZhbHVlLCBsaXR0bGVFbmRpYW4pOwor
ICAgIH0gZWxzZQorICAgICAgICBzaG91bGRUaHJvdyhleHByKTsKK30KKworZnVuY3Rpb24gdGVz
dChpc1Rlc3RpbmdHZXQsIGZ1bmMsIGluZGV4LCB2YWx1ZSwgbGl0dGxlRW5kaWFuKQoreworICAg
IGlmIChpc1Rlc3RpbmdHZXQpCisgICAgICAgIGNoZWNrR2V0KGZ1bmMsIGluZGV4LCB2YWx1ZSwg
bGl0dGxlRW5kaWFuKTsKKyAgICAgZWxzZQorICAgICAgICBjaGVja1NldChmdW5jLCBpbmRleCwg
dmFsdWUsIGxpdHRsZUVuZGlhbik7Cit9CisKK2Z1bmN0aW9uIGNyZWF0ZURhdGFWaWV3KGFycmF5
LCBmcm9udFBhZGRpbmdOdW0sIGxpdHRsZUVuZGlhbiwgc3RhcnQsIGxlbmd0aCkKK3sKKyAgICBp
ZiAoIWxpdHRsZUVuZGlhbikKKyAgICAgICAgYXJyYXkucmV2ZXJzZSgpOworICAgIHZhciBwYWRk
aW5nQXJyYXkgPSBuZXcgQXJyYXkoZnJvbnRQYWRkaW5nTnVtKTsKKyAgICBhcnJheUJ1ZmZlciA9
IChuZXcgVWludDhBcnJheShwYWRkaW5nQXJyYXkuY29uY2F0KGFycmF5KSkpLmJ1ZmZlcjsKKyAg
ICB2aWV3U3RhcnQgPSAoc3RhcnQgIT0gdW5kZWZpbmVkKSA/IHN0YXJ0IDogMDsKKyAgICB2aWV3
TGVuZ3RoID0gKGxlbmd0aCAhPSB1bmRlZmluZWQpID8gbGVuZ3RoIDogYXJyYXlCdWZmZXIuYnl0
ZUxlbmd0aCAtIHZpZXdTdGFydDsKKyAgICB2aWV3ID0gbmV3IERhdGFWaWV3KGFycmF5QnVmZmVy
LCB2aWV3U3RhcnQsIHZpZXdMZW5ndGgpOworICAgIGlmICghbGl0dGxlRW5kaWFuKQorICAgICAg
ICBhcnJheS5yZXZlcnNlKCk7IC8vIHJlc3RvcmUgdGhlIGFycmF5LgorfQorCitmdW5jdGlvbiBy
dW5JbnRlZ2VyVGVzdENhc2VzKGlzVGVzdGluZ0dldCwgYXJyYXksIHN0YXJ0LCBsZW5ndGgpCit7
CisgICAgY3JlYXRlRGF0YVZpZXcoYXJyYXksIDAsIHRydWUsIHN0YXJ0LCBsZW5ndGgpOworCisg
ICAgdGVzdChpc1Rlc3RpbmdHZXQsICJJbnQ4IiwgMCwgIjAiKTsKKyAgICB0ZXN0KGlzVGVzdGlu
Z0dldCwgIkludDgiLCA4LCAiLTEyOCIpOworICAgIHRlc3QoaXNUZXN0aW5nR2V0LCAiSW50OCIs
IDE1LCAiLTEiKTsKKworICAgIHRlc3QoaXNUZXN0aW5nR2V0LCAiVWludDgiLCAwLCAiMCIpOwor
ICAgIHRlc3QoaXNUZXN0aW5nR2V0LCAiVWludDgiLCA4LCAiMTI4Iik7CisgICAgdGVzdChpc1Rl
c3RpbmdHZXQsICJVaW50OCIsIDE1LCAiMjU1Iik7CisKKyAgICAvLyBMaXR0bGUgZW5kaWFuLgor
ICAgIHRlc3QoaXNUZXN0aW5nR2V0LCAiSW50MTYiLCAwLCAiMjU2IiwgdHJ1ZSk7CisgICAgdGVz
dChpc1Rlc3RpbmdHZXQsICJJbnQxNiIsIDUsICIyNjIxMyIsIHRydWUpOworICAgIHRlc3QoaXNU
ZXN0aW5nR2V0LCAiSW50MTYiLCA5LCAiLTMyMTI3IiwgdHJ1ZSk7CisgICAgdGVzdChpc1Rlc3Rp
bmdHZXQsICJJbnQxNiIsIDE0LCAiLTIiLCB0cnVlKTsKKworICAgIC8vIEJpZyBlbmRpYW4uCisg
ICAgdGVzdChpc1Rlc3RpbmdHZXQsICJJbnQxNiIsIDAsICIxIik7CisgICAgdGVzdChpc1Rlc3Rp
bmdHZXQsICJJbnQxNiIsIDUsICIyNTk1OCIpOworICAgIHRlc3QoaXNUZXN0aW5nR2V0LCAiSW50
MTYiLCA5LCAiLTMyMzgyIik7CisgICAgdGVzdChpc1Rlc3RpbmdHZXQsICJJbnQxNiIsIDE0LCAi
LTI1NyIpOworCisgICAgLy8gTGl0dGxlIGVuZGlhbi4KKyAgICB0ZXN0KGlzVGVzdGluZ0dldCwg
IlVpbnQxNiIsIDAsICIyNTYiLCB0cnVlKTsKKyAgICB0ZXN0KGlzVGVzdGluZ0dldCwgIlVpbnQx
NiIsIDUsICIyNjIxMyIsIHRydWUpOworICAgIHRlc3QoaXNUZXN0aW5nR2V0LCAiVWludDE2Iiwg
OSwgIjMzNDA5IiwgdHJ1ZSk7CisgICAgdGVzdChpc1Rlc3RpbmdHZXQsICJVaW50MTYiLCAxNCwg
IjY1NTM0IiwgdHJ1ZSk7CisKKyAgICAvLyBCaWcgZW5kaWFuLgorICAgIHRlc3QoaXNUZXN0aW5n
R2V0LCAiVWludDE2IiwgMCwgIjEiKTsKKyAgICB0ZXN0KGlzVGVzdGluZ0dldCwgIlVpbnQxNiIs
IDUsICIyNTk1OCIpOworICAgIHRlc3QoaXNUZXN0aW5nR2V0LCAiVWludDE2IiwgOSwgIjMzMTU0
Iik7CisgICAgdGVzdChpc1Rlc3RpbmdHZXQsICJVaW50MTYiLCAxNCwgIjY1Mjc5Iik7CisKKyAg
ICAvLyBMaXR0bGUgZW5kaWFuLgorICAgIHRlc3QoaXNUZXN0aW5nR2V0LCAiSW50MzIiLCAwLCAi
NTA0NjI5NzYiLCB0cnVlKTsKKyAgICB0ZXN0KGlzVGVzdGluZ0dldCwgIkludDMyIiwgMywgIjE3
MTc5MjA3NzEiLCB0cnVlKTsKKyAgICB0ZXN0KGlzVGVzdGluZ0dldCwgIkludDMyIiwgNiwgIi0y
MTIyMjkxMzU0IiwgdHJ1ZSk7CisgICAgdGVzdChpc1Rlc3RpbmdHZXQsICJJbnQzMiIsIDksICIt
NTg0OTAyMzkiLCB0cnVlKTsKKyAgICB0ZXN0KGlzVGVzdGluZ0dldCwgIkludDMyIiwgMTIsICIt
NjYwNTIiLCB0cnVlKTsKKworICAgIC8vIEJpZyBlbmRpYW4uCisgICAgdGVzdChpc1Rlc3RpbmdH
ZXQsICJJbnQzMiIsIDAsICI2NjA1MSIpOworICAgIHRlc3QoaXNUZXN0aW5nR2V0LCAiSW50MzIi
LCAzLCAiNTY5MTEyMDYiKTsKKyAgICB0ZXN0KGlzVGVzdGluZ0dldCwgIkludDMyIiwgNiwgIjE3
MTgwNTkxMzciKTsKKyAgICB0ZXN0KGlzVGVzdGluZ0dldCwgIkludDMyIiwgOSwgIi0yMTIyMTUy
OTY0Iik7CisgICAgdGVzdChpc1Rlc3RpbmdHZXQsICJJbnQzMiIsIDEyLCAiLTUwNDYyOTc3Iik7
CisKKyAgICAvLyBMaXR0bGUgZW5kaWFuLgorICAgIHRlc3QoaXNUZXN0aW5nR2V0LCAiVWludDMy
IiwgMCwgIjUwNDYyOTc2IiwgdHJ1ZSk7CisgICAgdGVzdChpc1Rlc3RpbmdHZXQsICJVaW50MzIi
LCAzLCAiMTcxNzkyMDc3MSIsIHRydWUpOworICAgIHRlc3QoaXNUZXN0aW5nR2V0LCAiVWludDMy
IiwgNiwgIjIxNzI2NzU5NDIiLCB0cnVlKTsKKyAgICB0ZXN0KGlzVGVzdGluZ0dldCwgIlVpbnQz
MiIsIDksICI0MjM2NDc3MDU3IiwgdHJ1ZSk7CisgICAgdGVzdChpc1Rlc3RpbmdHZXQsICJVaW50
MzIiLCAxMiwgIjQyOTQ5MDEyNDQiLCB0cnVlKTsKKworICAgIC8vIEJpZyBlbmRpYW4uCisgICAg
dGVzdChpc1Rlc3RpbmdHZXQsICJVaW50MzIiLCAwLCAiNjYwNTEiKTsKKyAgICB0ZXN0KGlzVGVz
dGluZ0dldCwgIlVpbnQzMiIsIDMsICI1NjkxMTIwNiIpOworICAgIHRlc3QoaXNUZXN0aW5nR2V0
LCAiVWludDMyIiwgNiwgIjE3MTgwNTkxMzciKTsKKyAgICB0ZXN0KGlzVGVzdGluZ0dldCwgIlVp
bnQzMiIsIDksICIyMTcyODE0MzMyIik7CisgICAgdGVzdChpc1Rlc3RpbmdHZXQsICJVaW50MzIi
LCAxMiwgIjQyNDQ1MDQzMTkiKTsKK30KKworZnVuY3Rpb24gdGVzdEZsb2F0KGlzVGVzdGluZ0dl
dCwgZnVuYywgYXJyYXksIHN0YXJ0LCBleHBlY3RlZCkKK3sKKyAgICAvLyBMaXR0bGUgZW5kaWFu
LgorICAgIGNyZWF0ZURhdGFWaWV3KGFycmF5LCAwLCB0cnVlLCBzdGFydCk7CisgICAgdGVzdChp
c1Rlc3RpbmdHZXQsIGZ1bmMsIDAsIGV4cGVjdGVkLCB0cnVlKTsKKyAgICBjcmVhdGVEYXRhVmll
dyhhcnJheSwgMywgdHJ1ZSwgc3RhcnQpOworICAgIHRlc3QoaXNUZXN0aW5nR2V0LCBmdW5jLCAz
LCBleHBlY3RlZCwgdHJ1ZSk7CisgICAgY3JlYXRlRGF0YVZpZXcoYXJyYXksIDcsIHRydWUsIHN0
YXJ0KTsKKyAgICB0ZXN0KGlzVGVzdGluZ0dldCwgZnVuYywgNywgZXhwZWN0ZWQsIHRydWUpOwor
ICAgIGNyZWF0ZURhdGFWaWV3KGFycmF5LCAxMCwgdHJ1ZSwgc3RhcnQpOworICAgIHRlc3QoaXNU
ZXN0aW5nR2V0LCBmdW5jLCAxMCwgZXhwZWN0ZWQsIHRydWUpOworICAgIAorICAgIC8vIEJpZyBl
bmRpYW4uCisgICAgY3JlYXRlRGF0YVZpZXcoYXJyYXksIDAsIGZhbHNlKTsKKyAgICB0ZXN0KGlz
VGVzdGluZ0dldCwgZnVuYywgMCwgZXhwZWN0ZWQsIGZhbHNlKTsKKyAgICBjcmVhdGVEYXRhVmll
dyhhcnJheSwgMywgZmFsc2UpOworICAgIHRlc3QoaXNUZXN0aW5nR2V0LCBmdW5jLCAzLCBleHBl
Y3RlZCwgZmFsc2UpOworICAgIGNyZWF0ZURhdGFWaWV3KGFycmF5LCA3LCBmYWxzZSk7CisgICAg
dGVzdChpc1Rlc3RpbmdHZXQsIGZ1bmMsIDcsIGV4cGVjdGVkLCBmYWxzZSk7CisgICAgY3JlYXRl
RGF0YVZpZXcoYXJyYXksIDEwLCBmYWxzZSk7CisgICAgdGVzdChpc1Rlc3RpbmdHZXQsIGZ1bmMs
IDEwLCBleHBlY3RlZCwgZmFsc2UpOworfQorCitmdW5jdGlvbiBydW5GbG9hdFRlc3RDYXNlcyhp
c1Rlc3RpbmdHZXQsIHN0YXJ0KQoreworICAgIHRlc3RGbG9hdChpc1Rlc3RpbmdHZXQsICJGbG9h
dDMyIiwgaXNUZXN0aW5nR2V0ID8gWzAsIDAsIDMyLCA2NV0gOiBlbXB0eUFycmF5LCBzdGFydCwg
IjEwIik7CisgICAgdGVzdEZsb2F0KGlzVGVzdGluZ0dldCwgIkZsb2F0MzIiLCBpc1Rlc3RpbmdH
ZXQgPyBbMTY0LCAxMTIsIDE1NywgNjNdIDogZW1wdHlBcnJheSwgc3RhcnQsICIxLjIzMDAwMDAx
OTA3MzQ4NjMiKTsKKyAgICB0ZXN0RmxvYXQoaXNUZXN0aW5nR2V0LCAiRmxvYXQzMiIsIGlzVGVz
dGluZ0dldCA/IFs5NSwgNTMsIDUwLCAxOTldIDogZW1wdHlBcnJheSwgc3RhcnQsICItNDU2MjEu
MzcxMDkzNzUiKTsKKyAgICB0ZXN0RmxvYXQoaXNUZXN0aW5nR2V0LCAiRmxvYXQzMiIsIGlzVGVz
dGluZ0dldCA/IFsyNTUsIDI1NSwgMjU1LCAxMjddIDogZW1wdHlBcnJheSwgc3RhcnQsICJOYU4i
KTsKKyAgICB0ZXN0RmxvYXQoaXNUZXN0aW5nR2V0LCAiRmxvYXQzMiIsIGlzVGVzdGluZ0dldCA/
IFsyNTUsIDI1NSwgMjU1LCAyNTVdIDogZW1wdHlBcnJheSwgc3RhcnQsICItTmFOIik7CisKKyAg
ICB0ZXN0RmxvYXQoaXNUZXN0aW5nR2V0LCAiRmxvYXQ2NCIsIGlzVGVzdGluZ0dldCA/IFswLCAw
LCAwLCAwLCAwLCAwLCAzNiwgNjRdIDogZW1wdHlBcnJheSwgc3RhcnQsICIxMCIpOworICAgIHRl
c3RGbG9hdChpc1Rlc3RpbmdHZXQsICJGbG9hdDY0IiwgaXNUZXN0aW5nR2V0ID8gWzE3NCwgNzEs
IDIyNSwgMTIyLCAyMCwgMTc0LCAyNDMsIDYzXSA6IGVtcHR5QXJyYXksIHN0YXJ0LCAiMS4yMyIp
OworICAgIHRlc3RGbG9hdChpc1Rlc3RpbmdHZXQsICJGbG9hdDY0IiwgaXNUZXN0aW5nR2V0ID8g
WzE4MSwgNTUsIDI0OCwgMzAsIDI0MiwgMTc5LCA4NywgMTkzXSA6IGVtcHR5QXJyYXksIHN0YXJ0
LCAiLTYyMTM1NzYuNDgzOSIpOworICAgIHRlc3RGbG9hdChpc1Rlc3RpbmdHZXQsICJGbG9hdDY0
IiwgaXNUZXN0aW5nR2V0ID8gWzI1NSwgMjU1LCAyNTUsIDI1NSwgMjU1LCAyNTUsIDI1NSwgMTI3
XSA6IGVtcHR5QXJyYXksIHN0YXJ0LCAiTmFOIik7CisgICAgdGVzdEZsb2F0KGlzVGVzdGluZ0dl
dCwgIkZsb2F0NjQiLCBpc1Rlc3RpbmdHZXQgPyBbMjU1LCAyNTUsIDI1NSwgMjU1LCAyNTUsIDI1
NSwgMjU1LCAyNTVdIDogZW1wdHlBcnJheSwgc3RhcnQsICItTmFOIik7Cit9CisKK2Z1bmN0aW9u
IHJ1bkNvbnN0cnVjdG9yVGVzdHMoKQoreworICAgIGFyYXlCdWZmZXIgPSAobmV3IFVpbnQ4QXJy
YXkoWzEsIDJdKSkuYnVmZmVyOworCisgICAgZGVidWcoIiIpOworICAgIGRlYnVnKCJUZXN0IGZv
ciBjb25zdHJ1Y3RvciB0YWtpbmcgMSBhcmd1bWVudCIpOworICAgIHNob3VsZEJlRGVmaW5lZCgi
dmlldyA9IG5ldyBEYXRhVmlldyhhcmF5QnVmZmVyKSIpOworICAgIHNob3VsZEJlKCJ2aWV3LmJ5
dGVPZmZzZXQiLCAiMCIpOworICAgIHNob3VsZEJlKCJ2aWV3LmJ5dGVMZW5ndGgiLCAiMiIpOwor
CisgICAgZGVidWcoIiIpOworICAgIGRlYnVnKCJUZXN0IGZvciBjb25zdHJ1Y3RvciB0YWtpbmcg
MiBhcmd1bWVudHMiKTsKKyAgICBzaG91bGRCZURlZmluZWQoInZpZXcgPSBuZXcgRGF0YVZpZXco
YXJheUJ1ZmZlciwgMSkiKTsKKyAgICBzaG91bGRCZSgidmlldy5ieXRlT2Zmc2V0IiwgIjEiKTsK
KyAgICBzaG91bGRCZSgidmlldy5ieXRlTGVuZ3RoIiwgIjEiKTsKKworICAgIGRlYnVnKCIiKTsK
KyAgICBkZWJ1ZygiVGVzdCBmb3IgY29uc3RydWN0b3IgdGFraW5nIDMgYXJndW1lbnRzIik7Cisg
ICAgc2hvdWxkQmVEZWZpbmVkKCJ2aWV3ID0gbmV3IERhdGFWaWV3KGFyYXlCdWZmZXIsIDAsIDEp
Iik7CisgICAgc2hvdWxkQmUoInZpZXcuYnl0ZU9mZnNldCIsICIwIik7CisgICAgc2hvdWxkQmUo
InZpZXcuYnl0ZUxlbmd0aCIsICIxIik7CisKKyAgICBkZWJ1ZygiIik7CisgICAgZGVidWcoIlRl
c3QgZm9yIGNvbnN0cnVjdG9yIHRocm93aW5nIGV4Y2VwdGlvbiIpOworICAgIHNob3VsZFRocm93
KCJ2aWV3ID0gbmV3IERhdGFWaWV3KGFyYXlCdWZmZXIsIDAsIDMpIik7CisgICAgc2hvdWxkVGhy
b3coInZpZXcgPSBuZXcgRGF0YVZpZXcoYXJheUJ1ZmZlciwgMSwgMikiKTsKKyAgICBzaG91bGRU
aHJvdygidmlldyA9IG5ldyBEYXRhVmlldyhhcmF5QnVmZmVyLCAyLCAxKSIpOworfQorCitmdW5j
dGlvbiBydW5HZXRUZXN0cygpCit7CisgICAgZGVidWcoIiIpOworICAgIGRlYnVnKCJUZXN0IGZv
ciBnZXQgbWV0aG9kcyB0aGF0IHdvcmsiKTsKKyAgICBydW5JbnRlZ2VyVGVzdENhc2VzKHRydWUs
IGludEFycmF5MSwgMCwgMTYpOworICAgIHJ1bkZsb2F0VGVzdENhc2VzKHRydWUsIDApOworCisg
ICAgZGVidWcoIiIpOworICAgIGRlYnVnKCJUZXN0IGZvciBnZXQgbWV0aG9kcyB0aGF0IG1pZ2h0
IHJlYWQgYmV5b3VuZCByYW5nZSIpOworICAgIHJ1bkludGVnZXJUZXN0Q2FzZXModHJ1ZSwgaW50
QXJyYXkyLCAzLCAyKTsKKyAgICBydW5GbG9hdFRlc3RDYXNlcyh0cnVlLCAzKTsKKworICAgIGRl
YnVnKCIiKTsKKyAgICBkZWJ1ZygiVGVzdCBmb3Igd3JvbmcgYXJndW1lbnRzIHBhc3NlZCB0byBn
ZXQgbWV0aG9kcyIpOworICAgIHZpZXcgPSBuZXcgRGF0YVZpZXcoKG5ldyBVaW50OEFycmF5KFsx
LCAyXSkpLmJ1ZmZlcik7CisgICAgc2hvdWxkVGhyb3coInZpZXcuZ2V0SW50OCgpIik7CisgICAg
c2hvdWxkVGhyb3coInZpZXcuZ2V0VWludDgoKSIpOworICAgIHNob3VsZFRocm93KCJ2aWV3Lmdl
dEludDE2KCkiKTsKKyAgICBzaG91bGRUaHJvdygidmlldy5nZXRVaW50MTYoKSIpOworICAgIHNo
b3VsZFRocm93KCJ2aWV3LmdldEludDMyKCkiKTsKKyAgICBzaG91bGRUaHJvdygidmlldy5nZXRV
aW50MzIoKSIpOworICAgIHNob3VsZFRocm93KCJ2aWV3LmdldEZsb2F0MzIoKSIpOworICAgIHNo
b3VsZFRocm93KCJ2aWV3LmdldEZsb2F0NjQoKSIpOworfQorCitmdW5jdGlvbiBydW5TZXRUZXN0
cygpCit7CisgICAgZGVidWcoIiIpOworICAgIGRlYnVnKCJUZXN0IGZvciBzZXQgbWV0aG9kcyB0
aGF0IHdvcmsiKTsKKyAgICBydW5JbnRlZ2VyVGVzdENhc2VzKGZhbHNlLCBlbXB0eUFycmF5LCAw
LCAxNik7CisgICAgcnVuRmxvYXRUZXN0Q2FzZXMoZmFsc2UpOworCisgICAgZGVidWcoIiIpOwor
ICAgIGRlYnVnKCJUZXN0IGZvciBzZXQgbWV0aG9kcyB0aGF0IG1pZ2h0IHdyaXRlIGJleW9uZCB0
aGUgcmFuZ2UiKTsKKyAgICBydW5JbnRlZ2VyVGVzdENhc2VzKGZhbHNlLCBlbXB0eUFycmF5LCAz
LCAyKTsKKyAgICBydW5GbG9hdFRlc3RDYXNlcyhmYWxzZSwgNyk7CisKKyAgICBkZWJ1ZygiIik7
CisgICAgZGVidWcoIlRlc3QgZm9yIHdyb25nIGFyZ3VtZW50cyBwYXNzZWQgdG8gZ2V0IG1ldGhv
ZHMiKTsKKyAgICB2aWV3ID0gbmV3IERhdGFWaWV3KChuZXcgVWludDhBcnJheShbMSwgMl0pKS5i
dWZmZXIpOworICAgIHNob3VsZFRocm93KCJ2aWV3LnNldEludDgoKSIpOworICAgIHNob3VsZFRo
cm93KCJ2aWV3LnNldFVpbnQ4KCkiKTsKKyAgICBzaG91bGRUaHJvdygidmlldy5zZXRJbnQxNigp
Iik7CisgICAgc2hvdWxkVGhyb3coInZpZXcuc2V0VWludDE2KCkiKTsKKyAgICBzaG91bGRUaHJv
dygidmlldy5zZXRJbnQzMigpIik7CisgICAgc2hvdWxkVGhyb3coInZpZXcuc2V0VWludDMyKCki
KTsKKyAgICBzaG91bGRUaHJvdygidmlldy5zZXRGbG9hdDMyKCkiKTsKKyAgICBzaG91bGRUaHJv
dygidmlldy5zZXRGbG9hdDY0KCkiKTsKKyAgICBzaG91bGRUaHJvdygidmlldy5zZXRJbnQ4KDEp
Iik7CisgICAgc2hvdWxkVGhyb3coInZpZXcuc2V0VWludDgoMSkiKTsKKyAgICBzaG91bGRUaHJv
dygidmlldy5zZXRJbnQxNigxKSIpOworICAgIHNob3VsZFRocm93KCJ2aWV3LnNldFVpbnQxNigx
KSIpOworICAgIHNob3VsZFRocm93KCJ2aWV3LnNldEludDMyKDEpIik7CisgICAgc2hvdWxkVGhy
b3coInZpZXcuc2V0VWludDMyKDEpIik7CisgICAgc2hvdWxkVGhyb3coInZpZXcuc2V0RmxvYXQz
MigxKSIpOworICAgIHNob3VsZFRocm93KCJ2aWV3LnNldEZsb2F0NjQoMSkiKTsKK30KKworZnVu
Y3Rpb24gcnVuSW5kZXhpbmdUZXN0cygpCit7CisgICAgZGVidWcoIiIpOworICAgIGRlYnVnKCJU
ZXN0IGZvciBpbmRleGluZyB0aGF0IHNob3VsZCBub3Qgd29yayIpOworICAgIHZpZXcgPSBuZXcg
RGF0YVZpZXcoKG5ldyBVaW50OEFycmF5KFsxLCAyXSkpLmJ1ZmZlcik7CisgICAgc2hvdWxkQmVV
bmRlZmluZWQoInZpZXdbMF0iKTsKKyAgICBzaG91bGRCZURlZmluZWQoInZpZXdbMF0gPSAzIik7
CisgICAgc2hvdWxkQmUoInZpZXcuZ2V0VWludDgoMCkiLCAiMSIpOworfQorCitydW5Db25zdHJ1
Y3RvclRlc3RzKCk7CitydW5HZXRUZXN0cygpOworcnVuU2V0VGVzdHMoKTsKK3J1bkluZGV4aW5n
VGVzdHMoKTsKK3N1Y2Nlc3NmdWxseVBhcnNlZCA9IHRydWU7Cis8L3NjcmlwdD4KKworPHNjcmlw
dCBzcmM9Ii4uLy4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9i
b2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vV2luZG93L3Nj
cmlwdC10ZXN0cy93aW5kb3ctcHJvcGVydHktZGVzY3JpcHRvcnMuanMgYi9MYXlvdXRUZXN0cy9m
YXN0L2RvbS9XaW5kb3cvc2NyaXB0LXRlc3RzL3dpbmRvdy1wcm9wZXJ0eS1kZXNjcmlwdG9ycy5q
cwppbmRleCAxNDFiNjA4Li4xYTc5NjkyIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2Rv
bS9XaW5kb3cvc2NyaXB0LXRlc3RzL3dpbmRvdy1wcm9wZXJ0eS1kZXNjcmlwdG9ycy5qcworKysg
Yi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9XaW5kb3cvc2NyaXB0LXRlc3RzL3dpbmRvdy1wcm9wZXJ0
eS1kZXNjcmlwdG9ycy5qcwpAQCAtMjEsNiArMjEsNyBAQCB2YXIgX19za2lwX18gPSB7CiAgICAg
Ly8gSWdub3JlIHRoZXNlIHByb3BlcnRpZXMgYmVjYXVzZSB0aGV5IGRvIG5vdCBleGlzdCBpbiBh
bGwgaW1wbGVtZW50YXRpb25zLiBUaGV5IHdpbGwgYmUgdGVzdGVkIHNlcGFyYXRlbHkKICAgICAi
V2ViR0xSZW5kZXJpbmdDb250ZXh0IiA6IDEsCiAgICAgIkFycmF5QnVmZmVyIiA6IDEsCisgICAg
IkRhdGFWaWV3IiA6IDEsCiAgICAgIkludDhBcnJheSIgOiAxLAogICAgICJVaW50OEFycmF5IiA6
IDEsCiAgICAgIkludDE2QXJyYXkiIDogMSwKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3Qv
ZG9tL1dpbmRvdy93aW5kb3ctcHJvcGVydGllcy5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20v
V2luZG93L3dpbmRvdy1wcm9wZXJ0aWVzLmh0bWwKaW5kZXggZDU5NzQ4Mi4uZmExZWI1NCAxMDA2
NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vV2luZG93L3dpbmRvdy1wcm9wZXJ0aWVzLmh0
bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vV2luZG93L3dpbmRvdy1wcm9wZXJ0aWVzLmh0
bWwKQEAgLTYzLDYgKzYzLDcgQEAgdmFyIF9fc2tpcF9fID0gewogICAgIC8vIElnbm9yZSB0aGVz
ZSBwcm9wZXJ0aWVzIGJlY2F1c2UgdGhleSBkbyBub3QgZXhpc3QgaW4gYWxsIGltcGxlbWVudGF0
aW9ucy4gVGhleSB3aWxsIGJlIHRlc3RlZCBzZXBhcmF0ZWx5CiAgICAgIndpbmRvdy5XZWJHTFJl
bmRlcmluZ0NvbnRleHQiIDogMSwgCiAgICAgIndpbmRvdy5BcnJheUJ1ZmZlciIgOiAxLAorICAg
ICJ3aW5kb3cuRGF0YVZpZXciIDogMSwKICAgICAid2luZG93LkludDhBcnJheSIgOiAxLAogICAg
ICJ3aW5kb3cuVWludDhBcnJheSIgOiAxLAogICAgICJ3aW5kb3cuSW50MTZBcnJheSIgOiAxLApk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vc2NyaXB0LXRlc3RzL3Byb3RvdHlwZS1p
bmhlcml0YW5jZS0yLmpzIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vc2NyaXB0LXRlc3RzL3Byb3Rv
dHlwZS1pbmhlcml0YW5jZS0yLmpzCmluZGV4IDNjNmQxMjIuLjIzMDkxMDYgMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL2Zhc3QvZG9tL3NjcmlwdC10ZXN0cy9wcm90b3R5cGUtaW5oZXJpdGFuY2Ut
Mi5qcworKysgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9zY3JpcHQtdGVzdHMvcHJvdG90eXBlLWlu
aGVyaXRhbmNlLTIuanMKQEAgLTYxLDYgKzYxLDcgQEAgZnVuY3Rpb24gY29uc3RydWN0b3JOYW1l
c0ZvcldpbmRvdyhnbG9iYWxPYmplY3QpCiAgICAgICAgIC8vIElnbm9yZSB0aGVzZSBwcm9wZXJ0
aWVzIGJlY2F1c2UgdGhleSBkbyBub3QgZXhpc3QgaW4gYWxsIGltcGxlbWVudGF0aW9ucy4gVGhl
eSB3aWxsIGJlIHRlc3RlZCBzZXBhcmF0ZWx5CiAgICAgICAgIGlmICh0eXBlID09ICJXZWJHTFJl
bmRlcmluZ0NvbnRleHRDb25zdHJ1Y3RvciIgfHwgCiAgICAgICAgICAgICB0eXBlID09ICJBcnJh
eUJ1ZmZlckNvbnN0cnVjdG9yIiB8fAorICAgICAgICAgICAgdHlwZSA9PSAiRGF0YVZpZXdDb25z
dHJ1Y3RvciIgfHwKICAgICAgICAgICAgIHR5cGUgPT0iRmxvYXQzMkFycmF5Q29uc3RydWN0b3Ii
IHx8CiAgICAgICAgICAgICB0eXBlID09IkludDhBcnJheUNvbnN0cnVjdG9yIiB8fAogICAgICAg
ICAgICAgdHlwZSA9PSJJbnQxNkFycmF5Q29uc3RydWN0b3IiIHx8CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9mYXN0L2RvbS9zY3JpcHQtdGVzdHMvcHJvdG90eXBlLWluaGVyaXRhbmNlLmpzIGIv
TGF5b3V0VGVzdHMvZmFzdC9kb20vc2NyaXB0LXRlc3RzL3Byb3RvdHlwZS1pbmhlcml0YW5jZS5q
cwppbmRleCA4OGYyNzkzLi44MjJjY2IzIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2Rv
bS9zY3JpcHQtdGVzdHMvcHJvdG90eXBlLWluaGVyaXRhbmNlLmpzCisrKyBiL0xheW91dFRlc3Rz
L2Zhc3QvZG9tL3NjcmlwdC10ZXN0cy9wcm90b3R5cGUtaW5oZXJpdGFuY2UuanMKQEAgLTE3LDcg
KzE3LDcgQEAgdmFyIHNraXBwZWRQcm9wZXJ0aWVzID0gWwogICAgICJ3ZWJraXRQZXJmb3JtYW5j
ZSIsCiAgICAgIldlYkdMUmVuZGVyaW5nQ29udGV4dCIsCiAgICAgIkFycmF5QnVmZmVyIiwKLSAg
ICAiSW50OEFycmF5IiwgIlVpbnQ4QXJyYXkiLCAiSW50MTZBcnJheSIsICJVaW50MTZBcnJheSIs
ICJJbnQzMkFycmF5IiwgIlVpbnQzMkFycmF5IiwgIkZsb2F0MzJBcnJheSIsCisgICAgIkRhdGFW
aWV3IiwgIkludDhBcnJheSIsICJVaW50OEFycmF5IiwgIkludDE2QXJyYXkiLCAiVWludDE2QXJy
YXkiLCAiSW50MzJBcnJheSIsICJVaW50MzJBcnJheSIsICJGbG9hdDMyQXJyYXkiLAogICAgICJG
aWxlRXJyb3IiLCAiRmlsZVJlYWRlciIsICJyZXF1ZXN0RmlsZVN5c3RlbSIsCiAgICAgImluZGV4
ZWREQiIsICJJREJLZXlSYW5nZSIsICJJREJDdXJzb3IiLCAiSURCRGF0YWJhc2UiLCAiSURCRGF0
YWJhc2VFcnJvciIsICJJREJEYXRhYmFzZUV4Y2VwdGlvbiIsICJJREJFcnJvckV2ZW50IiwgIklE
QkV2ZW50IiwgIklEQkZhY3RvcnkiLCAiSURCSW5kZXgiLCAiSURCT2JqZWN0U3RvcmUiLCAiSURC
UmVxdWVzdCIsICJJREJTdWNjZXNzRXZlbnQiLCAiSURCVHJhbnNhY3Rpb24iLAogICAgICJzaG93
TW9kYWxEaWFsb2ciLApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9qcy9zY3JpcHQtdGVz
dHMvZ2xvYmFsLWNvbnN0cnVjdG9ycy5qcyBiL0xheW91dFRlc3RzL2Zhc3QvanMvc2NyaXB0LXRl
c3RzL2dsb2JhbC1jb25zdHJ1Y3RvcnMuanMKaW5kZXggMDNlZjBkZi4uZDZjMTVlNSAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9qcy9zY3JpcHQtdGVzdHMvZ2xvYmFsLWNvbnN0cnVjdG9y
cy5qcworKysgYi9MYXlvdXRUZXN0cy9mYXN0L2pzL3NjcmlwdC10ZXN0cy9nbG9iYWwtY29uc3Ry
dWN0b3JzLmpzCkBAIC0xOSw2ICsxOSw3IEBAIGZvciAodmFyIHggaW4gY29uc3RydWN0b3JOYW1l
cykgewogICAgIC8vIElnbm9yZSB0aGVzZSBwcm9wZXJ0aWVzIGJlY2F1c2UgdGhleSBkbyBub3Qg
ZXhpc3QgaW4gYWxsIGltcGxlbWVudGF0aW9ucy4gVGhleSB3aWxsIGJlIHRlc3RlZCBzZXBhcmF0
ZWx5CiAgICAgaWYgKG5hbWUgPT0gIldlYkdMUmVuZGVyaW5nQ29udGV4dCIgfHwKICAgICAgICAg
bmFtZSA9PSAiQXJyYXlCdWZmZXIiIHx8CisgICAgICAgIG5hbWUgPT0gIkRhdGFWaWV3IiB8fAog
ICAgICAgICBuYW1lID09ICJJbnQ4QXJyYXkiIHx8CiAgICAgICAgIG5hbWUgPT0gIlVpbnQ4QXJy
YXkiIHx8CiAgICAgICAgIG5hbWUgPT0gIkludDE2QXJyYXkiIHx8CmRpZmYgLS1naXQgYS9XZWJD
b3JlL0NNYWtlTGlzdHMudHh0IGIvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAppbmRleCA1OGQ4MDY2
Li41NGRkNmRmIDEwMDY0NAotLS0gYS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CisrKyBiL1dlYkNv
cmUvQ01ha2VMaXN0cy50eHQKQEAgLTI5Myw2ICsyOTMsNyBAQCBTRVQoV2ViQ29yZV9JRExfRklM
RVMKICAgICBodG1sL2NhbnZhcy9DYW52YXNQYXR0ZXJuLmlkbAogICAgIGh0bWwvY2FudmFzL0Nh
bnZhc1JlbmRlcmluZ0NvbnRleHQyRC5pZGwKICAgICBodG1sL2NhbnZhcy9DYW52YXNSZW5kZXJp
bmdDb250ZXh0LmlkbAorICAgIGh0bWwvY2FudmFzL0RhdGFWaWV3LmlkbAogICAgIGh0bWwvY2Fu
dmFzL0Zsb2F0MzJBcnJheS5pZGwKICAgICBodG1sL2NhbnZhcy9JbnQxNkFycmF5LmlkbAogICAg
IGh0bWwvY2FudmFzL0ludDMyQXJyYXkuaWRsCmRpZmYgLS1naXQgYS9XZWJDb3JlL0NoYW5nZUxv
ZyBiL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IGQ5NWNhYTAuLjZjNjgzZmQgMTAwNjQ0Ci0tLSBh
L1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNTIg
QEAKKzIwMTAtMTEtMjQgIEppYW4gTGkgIDxqaWFubGlAY2hyb21pdW0ub3JnPgorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEltcGxlbWVudCBEYXRhVmll
dyBpbnRlcmZhY2UgZnJvbSBUeXBlZCBBcnJheSBzcGVjaWZpY2F0aW9uCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00NjU0MQorCisgICAgICAgIFRlc3Q6
IGZhc3QvY2FudmFzL3dlYmdsL2RhdGEtdmlldy10ZXN0Lmh0bWwKKworICAgICAgICAqIENNYWtl
TGlzdHMudHh0OgorICAgICAgICAqIERlcml2ZWRTb3VyY2VzLm1ha2U6CisgICAgICAgICogR05V
bWFrZWZpbGUuYW06CisgICAgICAgICogV2ViQ29yZS5neXBpOgorICAgICAgICAqIFdlYkNvcmUu
cHJpOgorICAgICAgICAqIFdlYkNvcmUucHJvOgorICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBiaW5kaW5ncy9nZW5lcmljL1J1bnRpbWVFbmFi
bGVkRmVhdHVyZXMuaDoKKyAgICAgICAgKFdlYkNvcmU6OlJ1bnRpbWVFbmFibGVkRmVhdHVyZXM6
OmRhdGFWaWV3RW5hYmxlZCk6CisgICAgICAgICogYmluZGluZ3MvanMvSlNBcnJheUJ1ZmZlclZp
ZXdIZWxwZXIuaDoKKyAgICAgICAgKFdlYkNvcmU6OmNvbnN0cnVjdEFycmF5QnVmZmVyVmlld1dp
dGhBcnJheUJ1ZmZlckFyZ3VtZW50KToKKyAgICAgICAgKFdlYkNvcmU6OmNvbnN0cnVjdEFycmF5
QnVmZmVyVmlldyk6CisgICAgICAgICogYmluZGluZ3MvanMvSlNET01XaW5kb3dDdXN0b20uY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6SlNET01XaW5kb3c6OmRhdGFWaWV3KToKKyAgICAgICAgKiBi
aW5kaW5ncy9qcy9KU0RhdGFWaWV3Q3VzdG9tLmNwcDogQWRkZWQuCisgICAgICAgICogYmluZGlu
Z3MvanMvSlNGbG9hdDMyQXJyYXlDdXN0b20uY3BwOgorICAgICAgICAoV2ViQ29yZTo6SlNGbG9h
dDMyQXJyYXlDb25zdHJ1Y3Rvcjo6Y29uc3RydWN0SlNGbG9hdDMyQXJyYXkpOgorICAgICAgICAq
IGJpbmRpbmdzL2pzL0pTSW50MTZBcnJheUN1c3RvbS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpK
U0ludDE2QXJyYXlDb25zdHJ1Y3Rvcjo6Y29uc3RydWN0SlNJbnQxNkFycmF5KToKKyAgICAgICAg
KiBiaW5kaW5ncy9qcy9KU0ludDMyQXJyYXlDdXN0b20uY3BwOgorICAgICAgICAoV2ViQ29yZTo6
SlNJbnQzMkFycmF5Q29uc3RydWN0b3I6OmNvbnN0cnVjdEpTSW50MzJBcnJheSk6CisgICAgICAg
ICogYmluZGluZ3MvanMvSlNJbnQ4QXJyYXlDdXN0b20uY3BwOgorICAgICAgICAoV2ViQ29yZTo6
SlNJbnQ4QXJyYXlDb25zdHJ1Y3Rvcjo6Y29uc3RydWN0SlNJbnQ4QXJyYXkpOgorICAgICAgICAq
IGJpbmRpbmdzL2pzL0pTVWludDE2QXJyYXlDdXN0b20uY3BwOgorICAgICAgICAoV2ViQ29yZTo6
SlNVaW50MTZBcnJheUNvbnN0cnVjdG9yOjpjb25zdHJ1Y3RKU1VpbnQxNkFycmF5KToKKyAgICAg
ICAgKiBiaW5kaW5ncy9qcy9KU1VpbnQzMkFycmF5Q3VzdG9tLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkpTVWludDMyQXJyYXlDb25zdHJ1Y3Rvcjo6Y29uc3RydWN0SlNVaW50MzJBcnJheSk6Cisg
ICAgICAgICogYmluZGluZ3MvanMvSlNVaW50OEFycmF5Q3VzdG9tLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OkpTVWludDhBcnJheUNvbnN0cnVjdG9yOjpjb25zdHJ1Y3RKU1VpbnQ4QXJyYXkpOgor
ICAgICAgICAqIGJpbmRpbmdzL3Y4L2N1c3RvbS9WOEFycmF5QnVmZmVyVmlld0N1c3RvbS5oOgor
ICAgICAgICAoV2ViQ29yZTo6Y29uc3RydWN0V2ViR0xBcnJheVdpdGhBcnJheUJ1ZmZlckFyZ3Vt
ZW50KToKKyAgICAgICAgKFdlYkNvcmU6OmNvbnN0cnVjdFdlYkdMQXJyYXkpOgorICAgICAgICAq
IGJpbmRpbmdzL3Y4L2N1c3RvbS9WOERhdGFWaWV3Q3VzdG9tLmNwcDogQWRkZWQuCisgICAgICAg
ICogaHRtbC9jYW52YXMvQXJyYXlCdWZmZXJWaWV3Lmg6CisgICAgICAgIChXZWJDb3JlOjpBcnJh
eUJ1ZmZlclZpZXc6OmlzRGF0YVZpZXcpOgorICAgICAgICAqIGh0bWwvY2FudmFzL0RhdGFWaWV3
LmNwcDogQWRkZWQuCisgICAgICAgICogaHRtbC9jYW52YXMvRGF0YVZpZXcuaDogQWRkZWQuCisg
ICAgICAgICogaHRtbC9jYW52YXMvRGF0YVZpZXcuaWRsOiBBZGRlZC4KKyAgICAgICAgKiBwYWdl
L0RPTVdpbmRvdy5pZGw6CisKIDIwMTAtMTEtMjQgIE5pY29sYXMgRHVmcmVzbmUgIDxuaWNvbGFz
LmR1ZnJlc25lQGNvbGxhYm9yYS5jby51az4KIAogICAgICAgICBSZXZpZXdlZCBieSBNYXJ0aW4g
Um9iaW5zb24uCmRpZmYgLS1naXQgYS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UgYi9XZWJD
b3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UKaW5kZXggYzJhMTVmNy4uN2JmY2YxNCAxMDA2NDQKLS0t
IGEvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtlCisrKyBiL1dlYkNvcmUvRGVyaXZlZFNvdXJj
ZXMubWFrZQpAQCAtNzYsNiArNzYsNyBAQCBET01fQ0xBU1NFUyA9IFwKICAgICBXZWJHTEFjdGl2
ZUluZm8gXAogICAgIEFycmF5QnVmZmVyVmlldyBcCiAgICAgQXJyYXlCdWZmZXIgXAorICAgIERh
dGFWaWV3IFwKICAgICBXZWJHTEJ1ZmZlciBcCiAgICAgSW50OEFycmF5IFwKICAgICBXZWJHTENv
bnRleHRBdHRyaWJ1dGVzIFwKZGlmZiAtLWdpdCBhL1dlYkNvcmUvR05VbWFrZWZpbGUuYW0gYi9X
ZWJDb3JlL0dOVW1ha2VmaWxlLmFtCmluZGV4IGZlYWYzNjMuLjM3YzI1NjcgMTAwNjQ0Ci0tLSBh
L1dlYkNvcmUvR05VbWFrZWZpbGUuYW0KKysrIGIvV2ViQ29yZS9HTlVtYWtlZmlsZS5hbQpAQCAt
MTg2LDYgKzE4Niw4IEBAIHdlYmNvcmVfYnVpbHRfc291cmNlcyArPSBcCiAJRGVyaXZlZFNvdXJj
ZXMvV2ViQ29yZS9KU0RhdGFHcmlkQ29sdW1uLmggXAogCURlcml2ZWRTb3VyY2VzL1dlYkNvcmUv
SlNEYXRhR3JpZENvbHVtbkxpc3QuY3BwIFwKIAlEZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTRGF0
YUdyaWRDb2x1bW5MaXN0LmggXAorCURlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNEYXRhVmlldy5j
cHAgXAorCURlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNEYXRhVmlldy5oIFwKIAlEZXJpdmVkU291
cmNlcy9XZWJDb3JlL0pTRGVkaWNhdGVkV29ya2VyQ29udGV4dC5jcHAgXAogCURlcml2ZWRTb3Vy
Y2VzL1dlYkNvcmUvSlNEZWRpY2F0ZWRXb3JrZXJDb250ZXh0LmggXAogCURlcml2ZWRTb3VyY2Vz
L1dlYkNvcmUvSlNEZXZpY2VNb3Rpb25FdmVudC5jcHAgXApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9X
ZWJDb3JlLmd5cGkgYi9XZWJDb3JlL1dlYkNvcmUuZ3lwaQppbmRleCAyYzgxN2NiLi40NjdmZWM0
IDEwMDY0NAotLS0gYS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQorKysgYi9XZWJDb3JlL1dlYkNvcmUu
Z3lwaQpAQCAtMjA3LDYgKzIwNyw3IEBACiAgICAgICAgICAgICAnaHRtbC9jYW52YXMvQ2FudmFz
UGl4ZWxBcnJheS5pZGwnLAogICAgICAgICAgICAgJ2h0bWwvY2FudmFzL0NhbnZhc1JlbmRlcmlu
Z0NvbnRleHQuaWRsJywKICAgICAgICAgICAgICdodG1sL2NhbnZhcy9DYW52YXNSZW5kZXJpbmdD
b250ZXh0MkQuaWRsJywKKyAgICAgICAgICAgICdodG1sL2NhbnZhcy9EYXRhVmlldy5pZGwnLAog
ICAgICAgICAgICAgJ2h0bWwvY2FudmFzL0Zsb2F0MzJBcnJheS5pZGwnLAogICAgICAgICAgICAg
J2h0bWwvY2FudmFzL0ludDE2QXJyYXkuaWRsJywKICAgICAgICAgICAgICdodG1sL2NhbnZhcy9J
bnQzMkFycmF5LmlkbCcsCkBAIC03NDcsNiArNzQ4LDggQEAKICAgICAgICAgICAgICdiaW5kaW5n
cy92OC9jdXN0b20vVjhDYW52YXNQaXhlbEFycmF5Q3VzdG9tLmNwcCcsCiAgICAgICAgICAgICAn
YmluZGluZ3MvdjgvY3VzdG9tL1Y4QXJyYXlCdWZmZXJWaWV3Q3VzdG9tLmgnLAogICAgICAgICAg
ICAgJ2JpbmRpbmdzL3Y4L2N1c3RvbS9WOEFycmF5QnVmZmVyQ3VzdG9tLmNwcCcsCisgICAgICAg
ICAgICAnYmluZGluZ3MvdjgvY3VzdG9tL1Y4RGF0YVZpZXdDdXN0b20uY3BwJywKKyAgICAgICAg
ICAgICdiaW5kaW5ncy92OC9jdXN0b20vVjhEYXRhVmlld0N1c3RvbS5oJywKICAgICAgICAgICAg
ICdiaW5kaW5ncy92OC9jdXN0b20vVjhJbnQ4QXJyYXlDdXN0b20uY3BwJywKICAgICAgICAgICAg
ICdiaW5kaW5ncy92OC9jdXN0b20vVjhJbnQzMkFycmF5Q3VzdG9tLmNwcCcsCiAgICAgICAgICAg
ICAnYmluZGluZ3MvdjgvY3VzdG9tL1Y4RmlsZVJlYWRlckN1c3RvbS5jcHAnLApAQCAtMTg2Miw2
ICsxODY1LDggQEAKICAgICAgICAgICAgICdodG1sL2NhbnZhcy9DYW52YXNTdHlsZS5jcHAnLAog
ICAgICAgICAgICAgJ2h0bWwvY2FudmFzL0NhbnZhc1N0eWxlLmgnLAogICAgICAgICAgICAgJ2h0
bWwvY2FudmFzL0NoZWNrZWRJbnQuaCcsCisgICAgICAgICAgICAnaHRtbC9jYW52YXMvRGF0YVZp
ZXcuY3BwJywKKyAgICAgICAgICAgICdodG1sL2NhbnZhcy9EYXRhVmlldy5oJywKICAgICAgICAg
ICAgICdodG1sL2NhbnZhcy9GbG9hdDMyQXJyYXkuY3BwJywKICAgICAgICAgICAgICdodG1sL2Nh
bnZhcy9GbG9hdDMyQXJyYXkuaCcsCiAgICAgICAgICAgICAnaHRtbC9jYW52YXMvSW50MTZBcnJh
eS5jcHAnLApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9XZWJDb3JlLnByaSBiL1dlYkNvcmUvV2ViQ29y
ZS5wcmkKaW5kZXggZjhjZWE0MS4uNTA0MzE4OCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9XZWJDb3Jl
LnByaQorKysgYi9XZWJDb3JlL1dlYkNvcmUucHJpCkBAIC0xODIsNiArMTgyLDcgQEAgSURMX0JJ
TkRJTkdTICs9IFwKICAgICBmaWxlYXBpL01ldGFkYXRhQ2FsbGJhY2suaWRsIFwKICAgICBodG1s
L2NhbnZhcy9BcnJheUJ1ZmZlclZpZXcuaWRsIFwKICAgICBodG1sL2NhbnZhcy9BcnJheUJ1ZmZl
ci5pZGwgXAorICAgIGh0bWwvY2FudmFzL0RhdGFWaWV3LmlkbCBcCiAgICAgaHRtbC9jYW52YXMv
SW50OEFycmF5LmlkbCBcCiAgICAgaHRtbC9jYW52YXMvRmxvYXQzMkFycmF5LmlkbCBcCiAgICAg
aHRtbC9jYW52YXMvQ2FudmFzR3JhZGllbnQuaWRsIFwKZGlmZiAtLWdpdCBhL1dlYkNvcmUvV2Vi
Q29yZS5wcm8gYi9XZWJDb3JlL1dlYkNvcmUucHJvCmluZGV4IDEwNjdjZTIuLjMyODlmNzEgMTAw
NjQ0Ci0tLSBhL1dlYkNvcmUvV2ViQ29yZS5wcm8KKysrIGIvV2ViQ29yZS9XZWJDb3JlLnBybwpA
QCAtMzY5Nyw2ICszNjk3LDcgQEAgSEVBREVSUyArPSBcCiAgICAgICAgIGh0bWwvY2FudmFzL1dl
YkdMQWN0aXZlSW5mby5oIFwKICAgICAgICAgaHRtbC9jYW52YXMvQXJyYXlCdWZmZXIuaCBcCiAg
ICAgICAgIGh0bWwvY2FudmFzL0FycmF5QnVmZmVyVmlldy5oIFwKKyAgICAgICAgaHRtbC9jYW52
YXMvRGF0YVZpZXcuaCBcCiAgICAgICAgIGh0bWwvY2FudmFzL1dlYkdMQnVmZmVyLmggXAogICAg
ICAgICBodG1sL2NhbnZhcy9JbnQ4QXJyYXkuaCBcCiAgICAgICAgIGh0bWwvY2FudmFzL1dlYkdM
Q29udGV4dEF0dHJpYnV0ZXMuaCBcCkBAIC0zNzIxLDYgKzM3MjIsNyBAQCBIRUFERVJTICs9IFwK
ICAgICAhdjggewogICAgICAgICBTT1VSQ0VTICs9IFwKICAgICAgICAgICAgICAgICBiaW5kaW5n
cy9qcy9KU0FycmF5QnVmZmVyQ3VzdG9tLmNwcCBcCisgICAgICAgICAgICAgICAgYmluZGluZ3Mv
anMvSlNEYXRhVmlld0N1c3RvbS5jcHAgXAogICAgICAgICAgICAgICAgIGJpbmRpbmdzL2pzL0pT
SW50OEFycmF5Q3VzdG9tLmNwcCBcCiAgICAgICAgICAgICAgICAgYmluZGluZ3MvanMvSlNGbG9h
dDMyQXJyYXlDdXN0b20uY3BwIFwKICAgICAgICAgICAgICAgICBiaW5kaW5ncy9qcy9KU0ludDMy
QXJyYXlDdXN0b20uY3BwIFwKQEAgLTM3MzUsNiArMzczNyw3IEBAIFNPVVJDRVMgKz0gXAogICAg
ICAgICBodG1sL2NhbnZhcy9XZWJHTE9iamVjdC5jcHAgXAogICAgICAgICBodG1sL2NhbnZhcy9B
cnJheUJ1ZmZlci5jcHAgXAogICAgICAgICBodG1sL2NhbnZhcy9BcnJheUJ1ZmZlclZpZXcuY3Bw
IFwKKyAgICAgICAgaHRtbC9jYW52YXMvRGF0YVZpZXcuY3BwIFwKICAgICAgICAgaHRtbC9jYW52
YXMvV2ViR0xCdWZmZXIuY3BwIFwKICAgICAgICAgaHRtbC9jYW52YXMvSW50OEFycmF5LmNwcCBc
CiAgICAgICAgIGh0bWwvY2FudmFzL1dlYkdMQ29udGV4dEF0dHJpYnV0ZXMuY3BwIFwKZGlmZiAt
LWdpdCBhL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvV2ViQ29y
ZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggMjMxNmNlZi4uNmFkNzc4
OCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oK
KysrIGIvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTc2Nyw2
ICs3NjcsMTEgQEAKIAkJMkU3NTg0MUYxMjc3OUFEQTAwNjI2MjhCIC8qIEZpbGVSZWFkZXJMb2Fk
ZXJDbGllbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDJFNzU4NDFDMTI3NzlBREEwMDYyNjI4QiAvKiBGaWxlUmVhZGVyTG9hZGVyQ2xpZW50LmggKi87
IH07CiAJCTJFOTRGNDNCMTE5MjA3REEwMEI3Rjc1RCAvKiBKU0ZpbGVSZWFkZXIuY3BwIGluIFNv
dXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMkU5NEY0MzkxMTkyMDdE
QTAwQjdGNzVEIC8qIEpTRmlsZVJlYWRlci5jcHAgKi87IH07CiAJCTJFOTRGNDNDMTE5MjA3REEw
MEI3Rjc1RCAvKiBKU0ZpbGVSZWFkZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDJFOTRGNDNBMTE5MjA3REEwMEI3Rjc1RCAvKiBKU0ZpbGVSZWFkZXIu
aCAqLzsgfTsKKwkJMkU5N0NDRUExMjkzOUNCODAwQzVDOEZGIC8qIERhdGFWaWV3LmNwcCBpbiBT
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDJFOTdDQ0U3MTI5MzlD
QjgwMEM1QzhGRiAvKiBEYXRhVmlldy5jcHAgKi87IH07CisJCTJFOTdDQ0VCMTI5MzlDQjgwMEM1
QzhGRiAvKiBEYXRhVmlldy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gMkU5N0NDRTgxMjkzOUNCODAwQzVDOEZGIC8qIERhdGFWaWV3LmggKi87IH07CisJ
CTJFOTdDQ0Y3MTI5M0E0M0EwMEM1QzhGRiAvKiBKU0RhdGFWaWV3Q3VzdG9tLmNwcCBpbiBTb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDJFOTdDQ0Y2MTI5M0E0M0Ew
MEM1QzhGRiAvKiBKU0RhdGFWaWV3Q3VzdG9tLmNwcCAqLzsgfTsKKwkJMkU5N0NFNkYxMjkzQUQ2
QjAwQzVDOEZGIC8qIEpTRGF0YVZpZXcuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gMkU5N0NFNkQxMjkzQUQ2QjAwQzVDOEZGIC8qIEpTRGF0YVZpZXcu
Y3BwICovOyB9OworCQkyRTk3Q0U3MDEyOTNBRDZCMDBDNUM4RkYgLyogSlNEYXRhVmlldy5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMkU5N0NFNkUxMjkz
QUQ2QjAwQzVDOEZGIC8qIEpTRGF0YVZpZXcuaCAqLzsgfTsKIAkJMkVBNzY4MDQwRkU3MTI2NDAw
QUI5QzhBIC8qIFdvcmtlclNjcmlwdExvYWRlckNsaWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMkVBNzY4MDMwRkU3MTI2NDAwQUI5QzhBIC8qIFdv
cmtlclNjcmlwdExvYWRlckNsaWVudC5oICovOyB9OwogCQkyRUI0QkNEMjEyMUYwM0UzMDBFQzQ4
ODUgLyogQmxvYlJlc291cmNlSGFuZGxlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDJFQjRCQ0QwMTIxRjAzRTMwMEVDNDg4NSAvKiBCbG9iUmVzb3Vy
Y2VIYW5kbGUuY3BwICovOyB9OwogCQkyRUI0QkNEMzEyMUYwM0UzMDBFQzQ4ODUgLyogQmxvYlJl
c291cmNlSGFuZGxlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSAyRUI0QkNEMTEyMUYwM0UzMDBFQzQ4ODUgLyogQmxvYlJlc291cmNlSGFuZGxlLmggKi87
IH07CkBAIC02ODU0LDYgKzY4NTksMTIgQEAKIAkJMkU3NTg0MUMxMjc3OUFEQTAwNjI2MjhCIC8q
IEZpbGVSZWFkZXJMb2FkZXJDbGllbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1l
ID0gRmlsZVJlYWRlckxvYWRlckNsaWVudC5oOyBwYXRoID0gZmlsZWFwaS9GaWxlUmVhZGVyTG9h
ZGVyQ2xpZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTJFOTRGNDM5MTE5MjA3
REEwMEI3Rjc1RCAvKiBKU0ZpbGVSZWFkZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
Y3BwOyBwYXRoID0gSlNGaWxlUmVhZGVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJMkU5NEY0M0ExMTkyMDdEQTAwQjdGNzVEIC8qIEpTRmlsZVJlYWRlci5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBKU0ZpbGVSZWFkZXIuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKKwkJMkU5N0NDRTcxMjkzOUNCODAwQzVDOEZGIC8qIERhdGFWaWV3LmNwcCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IERhdGFWaWV3LmNwcDsgcGF0aCA9IGNh
bnZhcy9EYXRhVmlldy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTJFOTdDQ0U4
MTI5MzlDQjgwMEM1QzhGRiAvKiBEYXRhVmlldy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IG5hbWUgPSBEYXRhVmlldy5oOyBwYXRoID0gY2FudmFzL0RhdGFWaWV3Lmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CisJCTJFOTdDQ0U5MTI5MzlDQjgwMEM1QzhGRiAvKiBEYXRhVmlldy5p
ZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSB0ZXh0OyBuYW1lID0gRGF0YVZpZXcuaWRsOyBwYXRoID0gY2FudmFzL0Rh
dGFWaWV3LmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMkU5N0NDRjYxMjkzQTQz
QTAwQzVDOEZGIC8qIEpTRGF0YVZpZXdDdXN0b20uY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBwYXRoID0gSlNEYXRhVmlld0N1c3RvbS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CisJCTJFOTdDRTZEMTI5M0FENkIwMEM1QzhGRiAvKiBKU0RhdGFWaWV3LmNwcCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTRGF0YVZpZXcuY3BwOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OworCQkyRTk3Q0U2RTEyOTNBRDZCMDBDNUM4RkYgLyogSlNEYXRh
Vmlldy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU0RhdGFWaWV3Lmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTJFQTc2ODAzMEZFNzEyNjQwMEFCOUM4QSAvKiBX
b3JrZXJTY3JpcHRMb2FkZXJDbGllbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1l
ID0gV29ya2VyU2NyaXB0TG9hZGVyQ2xpZW50Lmg7IHBhdGggPSB3b3JrZXJzL1dvcmtlclNjcmlw
dExvYWRlckNsaWVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkyRUI0QkNEMDEy
MUYwM0UzMDBFQzQ4ODUgLyogQmxvYlJlc291cmNlSGFuZGxlLmNwcCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEJsb2JSZXNvdXJjZUhhbmRsZS5jcHA7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTJFQjRCQ0QxMTIxRjAzRTMwMEVDNDg4NSAvKiBCbG9iUmVzb3Vy
Y2VIYW5kbGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQmxvYlJlc291cmNl
SGFuZGxlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xMjYyNSw2ICsxMjYzNiw5
IEBACiAJCQkJNDk0ODRGQkYxMDJDRjIzQzAwMTg3REQzIC8qIENhbnZhc1N0eWxlLmNwcCAqLywK
IAkJCQk0OTQ4NEZDMDEwMkNGMjNDMDAxODdERDMgLyogQ2FudmFzU3R5bGUuaCAqLywKIAkJCQlB
MDBCNzIxOTExREU2NDI3MDA4QUI5RkYgLyogQ2hlY2tlZEludC5oICovLAorCQkJCTJFOTdDQ0U3
MTI5MzlDQjgwMEM1QzhGRiAvKiBEYXRhVmlldy5jcHAgKi8sCisJCQkJMkU5N0NDRTgxMjkzOUNC
ODAwQzVDOEZGIC8qIERhdGFWaWV3LmggKi8sCisJCQkJMkU5N0NDRTkxMjkzOUNCODAwQzVDOEZG
IC8qIERhdGFWaWV3LmlkbCAqLywKIAkJCQk0OUVFQ0RDRDEwNTAzQzIzMDAwOTlGQUIgLyogRmxv
YXQzMkFycmF5LmNwcCAqLywKIAkJCQk0OUVFQ0RDRTEwNTAzQzIzMDAwOTlGQUIgLyogRmxvYXQz
MkFycmF5LmggKi8sCiAJCQkJNDlFRUNEQ0YxMDUwM0MyMzAwMDk5RkFCIC8qIEZsb2F0MzJBcnJh
eS5pZGwgKi8sCkBAIC0xNTMxMiw2ICsxNTMyNiw4IEBACiAJCQkJQkM3N0QxNjYwRkYxOUY1NTAw
NzA4ODdCIC8qIEpTRGF0YUdyaWRDb2x1bW4uaCAqLywKIAkJCQlCQzc3RDE2NzBGRjE5RjU1MDA3
MDg4N0IgLyogSlNEYXRhR3JpZENvbHVtbkxpc3QuY3BwICovLAogCQkJCUJDNzdEMTY4MEZGMTlG
NTUwMDcwODg3QiAvKiBKU0RhdGFHcmlkQ29sdW1uTGlzdC5oICovLAorCQkJCTJFOTdDRTZEMTI5
M0FENkIwMEM1QzhGRiAvKiBKU0RhdGFWaWV3LmNwcCAqLywKKwkJCQkyRTk3Q0U2RTEyOTNBRDZC
MDBDNUM4RkYgLyogSlNEYXRhVmlldy5oICovLAogCQkJCTJFMDg4OEQyMTE0ODg0OEEwMEFGNDI2
NSAvKiBKU0RPTUZvcm1EYXRhLmNwcCAqLywKIAkJCQkyRTA4ODhEMzExNDg4NDhBMDBBRjQyNjUg
LyogSlNET01Gb3JtRGF0YS5oICovLAogCQkJCTRBQ0JDMEM4MTI3MTNEMEEwMDk0RjlCMiAvKiBK
U0RPTVNldHRhYmxlVG9rZW5MaXN0LmNwcCAqLywKQEAgLTE3MDkxLDYgKzE3MTA3LDcgQEAKIAkJ
CQlFMUFEMTRFNzEyOTczNzc0MDBBQ0E5ODkgLyogSlNDU1NTdHlsZVJ1bGVDdXN0b20uY3BwICov
LAogCQkJCUJDMjBGQjdFMEMwRThFNkMwMEQxNDQ3RiAvKiBKU0NTU1ZhbHVlQ3VzdG9tLmNwcCAq
LywKIAkJCQlCQzc3RDE1MTBGRjE5QzczMDA3MDg4N0IgLyogSlNEYXRhR3JpZENvbHVtbkxpc3RD
dXN0b20uY3BwICovLAorCQkJCTJFOTdDQ0Y2MTI5M0E0M0EwMEM1QzhGRiAvKiBKU0RhdGFWaWV3
Q3VzdG9tLmNwcCAqLywKIAkJCQk0MTYyQTQ1MzEwMTE0NUUzMDBERkYzRUQgLyogSlNEZWRpY2F0
ZWRXb3JrZXJDb250ZXh0Q3VzdG9tLmNwcCAqLywKIAkJCQkzMzUwM0NCRjEwMTc5QzFBMDAzQjQ3
RTEgLyogSlNEZXNrdG9wTm90aWZpY2F0aW9uc0N1c3RvbS5jcHAgKi8sCiAJCQkJMzFGQjFBNkIx
MjBBNUQ2OTAwREMwMkEwIC8qIEpTRGV2aWNlTW90aW9uRXZlbnRDdXN0b20uY3BwICovLApAQCAt
MjEzOTIsNiArMjE0MDksOCBAQAogCQkJCTc1NDE1RDU2MTI5QUIyRDIwMDNBRDY2OSAvKiBKU1Nw
ZWVjaElucHV0RXZlbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCTc1NDE1RDU4MTI5QUIyRDIwMDNB
RDY2OSAvKiBKU1NwZWVjaElucHV0UmVzdWx0LmggaW4gSGVhZGVycyAqLywKIAkJCQk3NTQxNUQ1
QTEyOUFCMkQyMDAzQUQ2NjkgLyogSlNTcGVlY2hJbnB1dFJlc3VsdExpc3QuaCBpbiBIZWFkZXJz
ICovLAorCQkJCTJFOTdDQ0VCMTI5MzlDQjgwMEM1QzhGRiAvKiBEYXRhVmlldy5oIGluIEhlYWRl
cnMgKi8sCisJCQkJMkU5N0NFNzAxMjkzQUQ2QjAwQzVDOEZGIC8qIEpTRGF0YVZpZXcuaCBpbiBI
ZWFkZXJzICovLAogCQkJKTsKIAkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9zdHByb2Nlc3Npbmcg
PSAwOwogCQl9OwpAQCAtMjM5NjYsNiArMjM5ODUsOSBAQAogCQkJCTc1NDE1RDU1MTI5QUIyRDIw
MDNBRDY2OSAvKiBKU1NwZWVjaElucHV0RXZlbnQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNzU0
MTVENTcxMjlBQjJEMjAwM0FENjY5IC8qIEpTU3BlZWNoSW5wdXRSZXN1bHQuY3BwIGluIFNvdXJj
ZXMgKi8sCiAJCQkJNzU0MTVENTkxMjlBQjJEMjAwM0FENjY5IC8qIEpTU3BlZWNoSW5wdXRSZXN1
bHRMaXN0LmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTJFOTdDQ0VBMTI5MzlDQjgwMEM1QzhGRiAv
KiBEYXRhVmlldy5jcHAgaW4gU291cmNlcyAqLywKKwkJCQkyRTk3Q0NGNzEyOTNBNDNBMDBDNUM4
RkYgLyogSlNEYXRhVmlld0N1c3RvbS5jcHAgaW4gU291cmNlcyAqLywKKwkJCQkyRTk3Q0U2RjEy
OTNBRDZCMDBDNUM4RkYgLyogSlNEYXRhVmlldy5jcHAgaW4gU291cmNlcyAqLywKIAkJCSk7CiAJ
CQlydW5Pbmx5Rm9yRGVwbG95bWVudFBvc3Rwcm9jZXNzaW5nID0gMDsKIAkJfTsKZGlmZiAtLWdp
dCBhL1dlYkNvcmUvYmluZGluZ3MvZ2VuZXJpYy9SdW50aW1lRW5hYmxlZEZlYXR1cmVzLmggYi9X
ZWJDb3JlL2JpbmRpbmdzL2dlbmVyaWMvUnVudGltZUVuYWJsZWRGZWF0dXJlcy5oCmluZGV4IDBh
YjUxMjAuLjMzNDMyY2UgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvYmluZGluZ3MvZ2VuZXJpYy9SdW50
aW1lRW5hYmxlZEZlYXR1cmVzLmgKKysrIGIvV2ViQ29yZS9iaW5kaW5ncy9nZW5lcmljL1J1bnRp
bWVFbmFibGVkRmVhdHVyZXMuaApAQCAtMTAyLDYgKzEwMiw3IEBAIHB1YmxpYzoKICAgICBzdGF0
aWMgYm9vbCBpbnQzMkFycmF5RW5hYmxlZCgpIHsgcmV0dXJuIGlzV2ViR0xFbmFibGVkOyB9CiAg
ICAgc3RhdGljIGJvb2wgdWludDMyQXJyYXlFbmFibGVkKCkgeyByZXR1cm4gaXNXZWJHTEVuYWJs
ZWQ7IH0KICAgICBzdGF0aWMgYm9vbCBmbG9hdDMyQXJyYXlFbmFibGVkKCkgeyByZXR1cm4gaXNX
ZWJHTEVuYWJsZWQ7IH0KKyAgICBzdGF0aWMgYm9vbCBkYXRhVmlld0VuYWJsZWQoKSB7IHJldHVy
biBpc1dlYkdMRW5hYmxlZDsgfQogICAgIHN0YXRpYyBib29sIHdlYkdMUmVuZGVyaW5nQ29udGV4
dEVuYWJsZWQoKSB7IHJldHVybiBpc1dlYkdMRW5hYmxlZDsgfQogICAgIHN0YXRpYyBib29sIHdl
YkdMQXJyYXlCdWZmZXJFbmFibGVkKCkgeyByZXR1cm4gaXNXZWJHTEVuYWJsZWQ7IH0KICAgICBz
dGF0aWMgYm9vbCB3ZWJHTEJ5dGVBcnJheUVuYWJsZWQoKSB7IHJldHVybiBpc1dlYkdMRW5hYmxl
ZDsgfQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0FycmF5QnVmZmVyVmlld0hl
bHBlci5oIGIvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0FycmF5QnVmZmVyVmlld0hlbHBlci5oCmlu
ZGV4IGJhNzEyYzYuLmYzNGY0YjkgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvYmluZGluZ3MvanMvSlNB
cnJheUJ1ZmZlclZpZXdIZWxwZXIuaAorKysgYi9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTQXJyYXlC
dWZmZXJWaWV3SGVscGVyLmgKQEAgLTg2LDE2ICs4NiwzMyBAQCBKU0M6OkpTVmFsdWUgc2V0V2Vi
R0xBcnJheUhlbHBlcihKU0M6OkV4ZWNTdGF0ZSogZXhlYywgVCogaW1wbCwgVCogKCpjb252ZXJz
aW9uRgogLy8gVGVtcGxhdGUgZnVuY3Rpb24gdXNlZCBieSBYWFhBcnJheUNvbnN0cnVjdG9ycy4K
IC8vIElmIHRoaXMgcmV0dXJucyAwLCBpdCB3aWxsIGFscmVhZHkgaGF2ZSB0aHJvd24gYSBKYXZh
U2NyaXB0IGV4Y2VwdGlvbi4KIHRlbXBsYXRlPGNsYXNzIEMsIHR5cGVuYW1lIFQ+Ci1QYXNzUmVm
UHRyPEFycmF5QnVmZmVyVmlldz4gY29uc3RydWN0QXJyYXlCdWZmZXJWaWV3KEpTQzo6RXhlY1N0
YXRlKiBleGVjKQorUGFzc1JlZlB0cjxDPiBjb25zdHJ1Y3RBcnJheUJ1ZmZlclZpZXdXaXRoQXJy
YXlCdWZmZXJBcmd1bWVudChKU0M6OkV4ZWNTdGF0ZSogZXhlYykKK3sKKyAgICBSZWZQdHI8QXJy
YXlCdWZmZXI+IGJ1ZmZlciA9IHRvQXJyYXlCdWZmZXIoZXhlYy0+YXJndW1lbnQoMCkpOworICAg
IGlmICghYnVmZmVyKQorICAgICAgICByZXR1cm4gMDsKKworICAgIHVuc2lnbmVkIG9mZnNldCA9
IChleGVjLT5hcmd1bWVudENvdW50KCkgPiAxKSA/IGV4ZWMtPmFyZ3VtZW50KDEpLnRvVUludDMy
KGV4ZWMpIDogMDsKKyAgICBpZiAoKGJ1ZmZlci0+Ynl0ZUxlbmd0aCgpIC0gb2Zmc2V0KSAlIHNp
emVvZihUKSkKKyAgICAgICAgdGhyb3dFcnJvcihleGVjLCBjcmVhdGVSYW5nZUVycm9yKGV4ZWMs
ICJBcnJheUJ1ZmZlciBsZW5ndGggbWludXMgdGhlIGJ5dGVPZmZzZXQgaXMgbm90IGEgbXVsdGlw
bGUgb2YgdGhlIGVsZW1lbnQgc2l6ZS4iKSk7CisgICAgdW5zaWduZWQgaW50IGxlbmd0aCA9IChi
dWZmZXItPmJ5dGVMZW5ndGgoKSAtIG9mZnNldCkgLyBzaXplb2YoVCk7CisgICAgaWYgKGV4ZWMt
PmFyZ3VtZW50Q291bnQoKSA+IDIpCisgICAgICAgIGxlbmd0aCA9IGV4ZWMtPmFyZ3VtZW50KDIp
LnRvVUludDMyKGV4ZWMpOworICAgIFJlZlB0cjxDPiBhcnJheSA9IEM6OmNyZWF0ZShidWZmZXIs
IG9mZnNldCwgbGVuZ3RoKTsKKyAgICBpZiAoIWFycmF5KQorICAgICAgICBzZXRET01FeGNlcHRp
b24oZXhlYywgSU5ERVhfU0laRV9FUlIpOworICAgIHJldHVybiBhcnJheTsKK30KKwordGVtcGxh
dGU8Y2xhc3MgQywgdHlwZW5hbWUgVD4KK1Bhc3NSZWZQdHI8Qz4gY29uc3RydWN0QXJyYXlCdWZm
ZXJWaWV3KEpTQzo6RXhlY1N0YXRlKiBleGVjKQogewogICAgIC8vIFRoZXJlIGFyZSAzIGNvbnN0
cnVjdG9yczoKICAgICAvLwogICAgIC8vICAxKSAoaW4gaW50IHNpemUpCiAgICAgLy8gIDIpIChp
biBBcnJheUJ1ZmZlciBidWZmZXIsIFtPcHRpb25hbF0gaW4gaW50IG9mZnNldCwgW09wdGlvbmFs
XSBpbiB1bnNpZ25lZCBpbnQgbGVuZ3RoKQogICAgIC8vICAzKSAoaW4gc2VxdWVuY2U8VD4pIC0g
VGhpcyBlbmRzIHVwIGJlaW5nIGEgSlMgImFycmF5LWxpa2UiIG9iamVjdAotICAgIC8vCi0gICAg
UmVmUHRyPEM+IGFycmF5T2JqZWN0OwotICAgIAorICAgIC8vICAgIAogICAgIC8vIEZvciB0aGUg
MCBhcmdzIGNhc2UsIGp1c3QgY3JlYXRlIGEgemVyby1sZW5ndGggdmlldy4gV2UgY291bGQKICAg
ICAvLyBjb25zaWRlciByYWlzaW5nIGEgU3ludGF4RXJyb3IgZm9yIHRoaXMgY2FzZSwgYnV0IG5v
dCBhbGwKICAgICAvLyBKYXZhU2NyaXB0IERPTSBiaW5kaW5ncyBjYW4gZGlzdGluZ3Vpc2ggYmV0
d2VlbiAibmV3CkBAIC0xMTIsMjAgKzEyOSwxMCBAQCBQYXNzUmVmUHRyPEFycmF5QnVmZmVyVmll
dz4gY29uc3RydWN0QXJyYXlCdWZmZXJWaWV3KEpTQzo6RXhlY1N0YXRlKiBleGVjKQogICAgIH0K
IAogICAgIGlmIChleGVjLT5hcmd1bWVudCgwKS5pc09iamVjdCgpKSB7Ci0gICAgICAgIFJlZlB0
cjxBcnJheUJ1ZmZlcj4gYnVmZmVyID0gdG9BcnJheUJ1ZmZlcihleGVjLT5hcmd1bWVudCgwKSk7
Ci0gICAgICAgIGlmIChidWZmZXIpIHsKLSAgICAgICAgICAgIHVuc2lnbmVkIG9mZnNldCA9IChl
eGVjLT5hcmd1bWVudENvdW50KCkgPiAxKSA/IGV4ZWMtPmFyZ3VtZW50KDEpLnRvVUludDMyKGV4
ZWMpIDogMDsKLSAgICAgICAgICAgIGlmICgoYnVmZmVyLT5ieXRlTGVuZ3RoKCkgLSBvZmZzZXQp
ICUgc2l6ZW9mKFQpKQotICAgICAgICAgICAgICAgIHRocm93RXJyb3IoZXhlYywgY3JlYXRlUmFu
Z2VFcnJvcihleGVjLCAiQXJyYXlCdWZmZXIgbGVuZ3RoIG1pbnVzIHRoZSBieXRlT2Zmc2V0IGlz
IG5vdCBhIG11bHRpcGxlIG9mIHRoZSBlbGVtZW50IHNpemUuIikpOwotICAgICAgICAgICAgdW5z
aWduZWQgaW50IGxlbmd0aCA9IChidWZmZXItPmJ5dGVMZW5ndGgoKSAtIG9mZnNldCkgLyBzaXpl
b2YoVCk7Ci0gICAgICAgICAgICBpZiAoZXhlYy0+YXJndW1lbnRDb3VudCgpID4gMikKLSAgICAg
ICAgICAgICAgICBsZW5ndGggPSBleGVjLT5hcmd1bWVudCgyKS50b1VJbnQzMihleGVjKTsKLSAg
ICAgICAgICAgIFBhc3NSZWZQdHI8QXJyYXlCdWZmZXJWaWV3PiBhcnJheSA9IEM6OmNyZWF0ZShi
dWZmZXIsIG9mZnNldCwgbGVuZ3RoKTsKLSAgICAgICAgICAgIGlmICghYXJyYXkpCi0gICAgICAg
ICAgICAgICAgc2V0RE9NRXhjZXB0aW9uKGV4ZWMsIElOREVYX1NJWkVfRVJSKTsKLSAgICAgICAg
ICAgIHJldHVybiBhcnJheTsKLSAgICAgICAgfQotICAgICAgICAKKyAgICAgICAgUmVmUHRyPEM+
IHZpZXcgPSBjb25zdHJ1Y3RBcnJheUJ1ZmZlclZpZXdXaXRoQXJyYXlCdWZmZXJBcmd1bWVudDxD
LCBUPihleGVjKTsKKyAgICAgICAgaWYgKHZpZXcpCisgICAgICAgICAgICByZXR1cm4gdmlldzsK
KyAgICAKICAgICAgICAgSlNDOjpKU09iamVjdCogYXJyYXkgPSBhc09iamVjdChleGVjLT5hcmd1
bWVudCgwKSk7CiAgICAgICAgIHVuc2lnbmVkIGxlbmd0aCA9IGFycmF5LT5nZXQoZXhlYywgSlND
OjpJZGVudGlmaWVyKGV4ZWMsICJsZW5ndGgiKSkudG9VSW50MzIoZXhlYyk7CiAgICAgICAgIHZv
aWQqIHRlbXBWYWx1ZXM7CkBAIC0xNDIsMTQgKzE0OSwxNCBAQCBQYXNzUmVmUHRyPEFycmF5QnVm
ZmVyVmlldz4gY29uc3RydWN0QXJyYXlCdWZmZXJWaWV3KEpTQzo6RXhlY1N0YXRlKiBleGVjKQog
ICAgICAgICAgICAgdmFsdWVzLmdldCgpW2ldID0gc3RhdGljX2Nhc3Q8VD4odi50b051bWJlcihl
eGVjKSk7CiAgICAgICAgIH0KICAgICAgICAgCi0gICAgICAgIFBhc3NSZWZQdHI8QXJyYXlCdWZm
ZXJWaWV3PiByZXN1bHQgPSBDOjpjcmVhdGUodmFsdWVzLmdldCgpLCBsZW5ndGgpOworICAgICAg
ICBSZWZQdHI8Qz4gcmVzdWx0ID0gQzo6Y3JlYXRlKHZhbHVlcy5nZXQoKSwgbGVuZ3RoKTsKICAg
ICAgICAgaWYgKCFyZXN1bHQpCiAgICAgICAgICAgICBzZXRET01FeGNlcHRpb24oZXhlYywgSU5E
RVhfU0laRV9FUlIpOwogICAgICAgICByZXR1cm4gcmVzdWx0OwogICAgIH0KLSAgICAKKwogICAg
IGludCBsZW5ndGggPSBleGVjLT5hcmd1bWVudCgwKS50b0ludDMyKGV4ZWMpOwotICAgIFBhc3NS
ZWZQdHI8QXJyYXlCdWZmZXJWaWV3PiByZXN1bHQ7CisgICAgUmVmUHRyPEM+IHJlc3VsdDsKICAg
ICBpZiAobGVuZ3RoID49IDApCiAgICAgICAgIHJlc3VsdCA9IEM6OmNyZWF0ZShzdGF0aWNfY2Fz
dDx1bnNpZ25lZD4obGVuZ3RoKSk7CiAgICAgaWYgKCFyZXN1bHQpCmRpZmYgLS1naXQgYS9XZWJD
b3JlL2JpbmRpbmdzL2pzL0pTRE9NV2luZG93Q3VzdG9tLmNwcCBiL1dlYkNvcmUvYmluZGluZ3Mv
anMvSlNET01XaW5kb3dDdXN0b20uY3BwCmluZGV4IDcxMTllYTYuLjk1ZmNkYzEgMTAwNjQ0Ci0t
LSBhL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01XaW5kb3dDdXN0b20uY3BwCisrKyBiL1dlYkNv
cmUvYmluZGluZ3MvanMvSlNET01XaW5kb3dDdXN0b20uY3BwCkBAIC01Myw2ICs1Myw3IEBACiAK
ICNpZiBFTkFCTEUoM0RfQ0FOVkFTKSB8fCBFTkFCTEUoQkxPQikKICNpbmNsdWRlICJKU0FycmF5
QnVmZmVyLmgiCisjaW5jbHVkZSAiSlNEYXRhVmlldy5oIgogI2luY2x1ZGUgIkpTSW50OEFycmF5
LmgiCiAjaW5jbHVkZSAiSlNVaW50OEFycmF5LmgiCiAjaW5jbHVkZSAiSlNJbnQzMkFycmF5Lmgi
CkBAIC02MDYsNiArNjA3LDEwIEBAIEpTVmFsdWUgSlNET01XaW5kb3c6OmZsb2F0MzJBcnJheShF
eGVjU3RhdGUqIGV4ZWMpIGNvbnN0CiAgICAgcmV0dXJuIGdldERPTUNvbnN0cnVjdG9yPEpTRmxv
YXQzMkFycmF5Q29uc3RydWN0b3I+KGV4ZWMsIHRoaXMpOwogfQogCitKU1ZhbHVlIEpTRE9NV2lu
ZG93OjpkYXRhVmlldyhFeGVjU3RhdGUqIGV4ZWMpIGNvbnN0Cit7CisgICAgcmV0dXJuIGdldERP
TUNvbnN0cnVjdG9yPEpTRGF0YVZpZXdDb25zdHJ1Y3Rvcj4oZXhlYywgdGhpcyk7Cit9CiAjZW5k
aWYKICAKIEpTVmFsdWUgSlNET01XaW5kb3c6OnhtbEh0dHBSZXF1ZXN0KEV4ZWNTdGF0ZSogZXhl
YykgY29uc3QKZGlmZiAtLWdpdCBhL1dlYkNvcmUvYmluZGluZ3MvanMvSlNEYXRhVmlld0N1c3Rv
bS5jcHAgYi9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRGF0YVZpZXdDdXN0b20uY3BwCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmYxN2UwZTEKLS0tIC9kZXYvbnVsbAorKysgYi9X
ZWJDb3JlL2JpbmRpbmdzL2pzL0pTRGF0YVZpZXdDdXN0b20uY3BwCkBAIC0wLDAgKzEsMTc0IEBA
CisvKgorICogQ29weXJpZ2h0IChDKSAyMDEwIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKgorICog
MS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkg
Zm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRo
ZQorICogICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3
aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBC
WSBBUFBMRSBBTkQgSVRTIENPTlRSSUJVVE9SUyAiQVMgSVMiIEFORCBBTlkKKyAqIEVYUFJFU1Mg
T1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhF
IElNUExJRUQKKyAqIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZP
UiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKKyAqIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNI
QUxMIEFQUExFIE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkKKyAqIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVO
VElBTCBEQU1BR0VTCisgKiAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVN
RU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7CisgKiBMT1NTIE9GIFVTRSwgREFU
QSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQKKyAqIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YKKyAqIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
CisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorCisjaWYgRU5BQkxFKDNEX0NBTlZBUykgfHwg
RU5BQkxFKEJMT0IpCisKKyNpbmNsdWRlICJKU0RhdGFWaWV3LmgiCisKKyNpbmNsdWRlICJEYXRh
Vmlldy5oIgorI2luY2x1ZGUgIkV4Y2VwdGlvbkNvZGUuaCIKKyNpbmNsdWRlICJKU0FycmF5QnVm
ZmVyVmlld0hlbHBlci5oIgorI2luY2x1ZGUgPHd0Zi9NYXRoRXh0cmFzLmg+CisKK3VzaW5nIG5h
bWVzcGFjZSBKU0M7CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworZW51bSBEYXRhVmlld0FjY2Vz
c1R5cGUgeworICAgIEFjY2Vzc0RhdGFWaWV3TWVtYmVyQXNJbnQ4LAorICAgIEFjY2Vzc0RhdGFW
aWV3TWVtYmVyQXNVaW50OCwKKyAgICBBY2Nlc3NEYXRhVmlld01lbWJlckFzRmxvYXQzMiwKKyAg
ICBBY2Nlc3NEYXRhVmlld01lbWJlckFzRmxvYXQ2NAorfTsKKworSlNWYWx1ZSB0b0pTKEV4ZWNT
dGF0ZSogZXhlYywgSlNET01HbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgRGF0YVZpZXcqIG9i
amVjdCkKK3sKKyAgICByZXR1cm4gZ2V0RE9NT2JqZWN0V3JhcHBlcjxKU0RhdGFWaWV3PihleGVj
LCBnbG9iYWxPYmplY3QsIG9iamVjdCk7Cit9CisKK0VuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NB
TEwgSlNEYXRhVmlld0NvbnN0cnVjdG9yOjpjb25zdHJ1Y3RKU0RhdGFWaWV3KEV4ZWNTdGF0ZSog
ZXhlYykKK3sKKyAgICBpZiAoZXhlYy0+YXJndW1lbnQoMCkuaXNOdWxsKCkgfHwgIWV4ZWMtPmFy
Z3VtZW50KDApLmlzT2JqZWN0KCkpCisgICAgICAgIHJldHVybiB0aHJvd1ZNVHlwZUVycm9yKGV4
ZWMpOworCisgICAgUmVmUHRyPERhdGFWaWV3PiB2aWV3ID0gY29uc3RydWN0QXJyYXlCdWZmZXJW
aWV3V2l0aEFycmF5QnVmZmVyQXJndW1lbnQ8RGF0YVZpZXcsIGNoYXI+KGV4ZWMpOworICAgIGlm
ICghdmlldy5nZXQoKSkgeworICAgICAgICBzZXRET01FeGNlcHRpb24oZXhlYywgSU5ERVhfU0la
RV9FUlIpOworICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwor
ICAgIH0KKworICAgIEpTRGF0YVZpZXdDb25zdHJ1Y3RvcioganNDb25zdHJ1Y3RvciA9IHN0YXRp
Y19jYXN0PEpTRGF0YVZpZXdDb25zdHJ1Y3Rvcio+KGV4ZWMtPmNhbGxlZSgpKTsKKyAgICByZXR1
cm4gSlNWYWx1ZTo6ZW5jb2RlKGFzT2JqZWN0KHRvSlMoZXhlYywganNDb25zdHJ1Y3Rvci0+Z2xv
YmFsT2JqZWN0KCksIHZpZXcuZ2V0KCkpKSk7Cit9CisKK3N0YXRpYyBKU1ZhbHVlIGdldERhdGFW
aWV3TWVtYmVyKEV4ZWNTdGF0ZSogZXhlYywgRGF0YVZpZXdBY2Nlc3NUeXBlIHR5cGUpCit7Cisg
ICAgSlNWYWx1ZSB0aGlzVmFsdWUgPSBleGVjLT5ob3N0VGhpc1ZhbHVlKCk7CisgICAgaWYgKCF0
aGlzVmFsdWUuaW5oZXJpdHMoJkpTRGF0YVZpZXc6OnNfaW5mbykpCisgICAgICAgIHJldHVybiB0
aHJvd1R5cGVFcnJvcihleGVjKTsKKyAgICBKU0RhdGFWaWV3KiBjYXN0ZWRUaGlzID0gc3RhdGlj
X2Nhc3Q8SlNEYXRhVmlldyo+KGFzT2JqZWN0KHRoaXNWYWx1ZSkpOworICAgIERhdGFWaWV3KiBp
bXAgPSBzdGF0aWNfY2FzdDxEYXRhVmlldyo+KGNhc3RlZFRoaXMtPmltcGwoKSk7CisgICAgaWYg
KGV4ZWMtPmFyZ3VtZW50Q291bnQoKSA8IDEpCisgICAgICAgIHJldHVybiB0aHJvd0Vycm9yKGV4
ZWMsIGNyZWF0ZVN5bnRheEVycm9yKGV4ZWMsICJOb3QgZW5vdWdoIGFyZ3VtZW50cyIpKTsKKyAg
ICBFeGNlcHRpb25Db2RlIGVjID0gMDsKKyAgICB1bnNpZ25lZCBieXRlT2Zmc2V0ID0gZXhlYy0+
YXJndW1lbnQoMCkudG9VSW50MzIoZXhlYyk7CisgICAgaWYgKGV4ZWMtPmhhZEV4Y2VwdGlvbigp
KQorICAgICAgICByZXR1cm4ganNVbmRlZmluZWQoKTsKKworICAgIGJvb2wgbGl0dGxlRW5kaWFu
ID0gZmFsc2U7CisgICAgaWYgKGV4ZWMtPmFyZ3VtZW50Q291bnQoKSA+IDEgJiYgKHR5cGUgPT0g
QWNjZXNzRGF0YVZpZXdNZW1iZXJBc0Zsb2F0MzIgfHwgdHlwZSA9PSBBY2Nlc3NEYXRhVmlld01l
bWJlckFzRmxvYXQ2NCkpIHsKKyAgICAgICAgbGl0dGxlRW5kaWFuID0gZXhlYy0+YXJndW1lbnQo
MSkudG9Cb29sZWFuKGV4ZWMpOworICAgICAgICBpZiAoZXhlYy0+aGFkRXhjZXB0aW9uKCkpCisg
ICAgICAgICAgICByZXR1cm4ganNVbmRlZmluZWQoKTsKKyAgICB9CisKKyAgICBKU0M6OkpTVmFs
dWUgcmVzdWx0OworICAgIHN3aXRjaCAodHlwZSkgeworICAgIGNhc2UgQWNjZXNzRGF0YVZpZXdN
ZW1iZXJBc0ludDg6CisgICAgICAgIHJlc3VsdCA9IGpzTnVtYmVyKGltcC0+Z2V0SW50OChieXRl
T2Zmc2V0LCBlYykpOworICAgICAgICBicmVhazsKKyAgICBjYXNlIEFjY2Vzc0RhdGFWaWV3TWVt
YmVyQXNVaW50ODoKKyAgICAgICAgcmVzdWx0ID0ganNOdW1iZXIoaW1wLT5nZXRVaW50OChieXRl
T2Zmc2V0LCBlYykpOworICAgICAgICBicmVhazsKKyAgICBjYXNlIEFjY2Vzc0RhdGFWaWV3TWVt
YmVyQXNGbG9hdDMyOgorICAgIGNhc2UgQWNjZXNzRGF0YVZpZXdNZW1iZXJBc0Zsb2F0NjQ6IHsK
KyAgICAgICAgZG91YmxlIHZhbHVlID0gKHR5cGUgPT0gQWNjZXNzRGF0YVZpZXdNZW1iZXJBc0Zs
b2F0MzIpID8gaW1wLT5nZXRGbG9hdDMyKGJ5dGVPZmZzZXQsIGxpdHRsZUVuZGlhbiwgZWMpIDog
aW1wLT5nZXRGbG9hdDY0KGJ5dGVPZmZzZXQsIGxpdHRsZUVuZGlhbiwgZWMpOworICAgICAgICBy
ZXN1bHQgPSBpc25hbih2YWx1ZSkgPyBKU1ZhbHVlKG5vbklubGluZU5hTigpKSA6IGpzTnVtYmVy
KHZhbHVlKTsKKyAgICAgICAgYnJlYWs7CisgICAgfSBkZWZhdWx0OgorICAgICAgICBBU1NFUlRf
Tk9UX1JFQUNIRUQoKTsKKyAgICAgICAgYnJlYWs7CisgICAgfQorICAgIHNldERPTUV4Y2VwdGlv
bihleGVjLCBlYyk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KKworSlNWYWx1ZSBKU0NfSE9TVF9D
QUxMIEpTRGF0YVZpZXc6OmdldEludDgoRXhlY1N0YXRlKiBleGVjKQoreworICAgIHJldHVybiBn
ZXREYXRhVmlld01lbWJlcihleGVjLCBBY2Nlc3NEYXRhVmlld01lbWJlckFzSW50OCk7Cit9CisK
K0pTVmFsdWUgSlNDX0hPU1RfQ0FMTCBKU0RhdGFWaWV3OjpnZXRVaW50OChFeGVjU3RhdGUqIGV4
ZWMpCit7CisgICAgcmV0dXJuIGdldERhdGFWaWV3TWVtYmVyKGV4ZWMsIEFjY2Vzc0RhdGFWaWV3
TWVtYmVyQXNVaW50OCk7Cit9CisKK0pTVmFsdWUgSlNDX0hPU1RfQ0FMTCBKU0RhdGFWaWV3Ojpn
ZXRGbG9hdDMyKEV4ZWNTdGF0ZSogZXhlYykKK3sKKyAgICByZXR1cm4gZ2V0RGF0YVZpZXdNZW1i
ZXIoZXhlYywgQWNjZXNzRGF0YVZpZXdNZW1iZXJBc0Zsb2F0MzIpOworfQorCitKU1ZhbHVlIEpT
Q19IT1NUX0NBTEwgSlNEYXRhVmlldzo6Z2V0RmxvYXQ2NChFeGVjU3RhdGUqIGV4ZWMpCit7Cisg
ICAgcmV0dXJuIGdldERhdGFWaWV3TWVtYmVyKGV4ZWMsIEFjY2Vzc0RhdGFWaWV3TWVtYmVyQXNG
bG9hdDY0KTsKK30KKworc3RhdGljIEpTVmFsdWUgc2V0RGF0YVZpZXdNZW1iZXIoRXhlY1N0YXRl
KiBleGVjLCBEYXRhVmlld0FjY2Vzc1R5cGUgdHlwZSkKK3sKKyAgICBKU1ZhbHVlIHRoaXNWYWx1
ZSA9IGV4ZWMtPmhvc3RUaGlzVmFsdWUoKTsKKyAgICBpZiAoIXRoaXNWYWx1ZS5pbmhlcml0cygm
SlNEYXRhVmlldzo6c19pbmZvKSkKKyAgICAgICAgcmV0dXJuIHRocm93VHlwZUVycm9yKGV4ZWMp
OworICAgIEpTRGF0YVZpZXcqIGNhc3RlZFRoaXMgPSBzdGF0aWNfY2FzdDxKU0RhdGFWaWV3Kj4o
YXNPYmplY3QodGhpc1ZhbHVlKSk7CisgICAgRGF0YVZpZXcqIGltcCA9IHN0YXRpY19jYXN0PERh
dGFWaWV3Kj4oY2FzdGVkVGhpcy0+aW1wbCgpKTsKKyAgICBpZiAoZXhlYy0+YXJndW1lbnRDb3Vu
dCgpIDwgMikKKyAgICAgICAgcmV0dXJuIHRocm93RXJyb3IoZXhlYywgY3JlYXRlU3ludGF4RXJy
b3IoZXhlYywgIk5vdCBlbm91Z2ggYXJndW1lbnRzIikpOworICAgIEV4Y2VwdGlvbkNvZGUgZWMg
PSAwOworICAgIHVuc2lnbmVkIGJ5dGVPZmZzZXQgPSBleGVjLT5hcmd1bWVudCgwKS50b1VJbnQz
MihleGVjKTsKKyAgICBpZiAoZXhlYy0+aGFkRXhjZXB0aW9uKCkpCisgICAgICAgIHJldHVybiBq
c1VuZGVmaW5lZCgpOworICAgIGludCB2YWx1ZSA9IGV4ZWMtPmFyZ3VtZW50KDEpLnRvSW50MzIo
ZXhlYyk7CisgICAgaWYgKGV4ZWMtPmhhZEV4Y2VwdGlvbigpKQorICAgICAgICByZXR1cm4ganNV
bmRlZmluZWQoKTsKKyAgICAgICAgCisgICAgc3dpdGNoICh0eXBlKSB7CisgICAgY2FzZSBBY2Nl
c3NEYXRhVmlld01lbWJlckFzSW50ODoKKyAgICAgICAgaW1wLT5zZXRJbnQ4KGJ5dGVPZmZzZXQs
IHN0YXRpY19jYXN0PGNoYXI+KHZhbHVlKSwgZWMpOworICAgICAgICBicmVhazsKKyAgICBjYXNl
IEFjY2Vzc0RhdGFWaWV3TWVtYmVyQXNVaW50ODoKKyAgICAgICAgaW1wLT5zZXRVaW50OChieXRl
T2Zmc2V0LCBzdGF0aWNfY2FzdDx1bnNpZ25lZCBjaGFyPih2YWx1ZSksIGVjKTsKKyAgICAgICAg
YnJlYWs7CisgICAgZGVmYXVsdDoKKyAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAg
ICAgIGJyZWFrOworICAgIH0KKyAgICBzZXRET01FeGNlcHRpb24oZXhlYywgZWMpOworICAgIHJl
dHVybiBqc1VuZGVmaW5lZCgpOworfQorCitKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgSlNEYXRhVmll
dzo6c2V0SW50OChFeGVjU3RhdGUqIGV4ZWMpCit7CisgICAgcmV0dXJuIHNldERhdGFWaWV3TWVt
YmVyKGV4ZWMsIEFjY2Vzc0RhdGFWaWV3TWVtYmVyQXNJbnQ4KTsKK30KKworSlNWYWx1ZSBKU0Nf
SE9TVF9DQUxMIEpTRGF0YVZpZXc6OnNldFVpbnQ4KEV4ZWNTdGF0ZSogZXhlYykKK3sKKyAgICBy
ZXR1cm4gc2V0RGF0YVZpZXdNZW1iZXIoZXhlYywgQWNjZXNzRGF0YVZpZXdNZW1iZXJBc1VpbnQ4
KTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gRU5BQkxFKDNEX0NB
TlZBUykgfHwgRU5BQkxFKEJMT0IpCmRpZmYgLS1naXQgYS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pT
RmxvYXQzMkFycmF5Q3VzdG9tLmNwcCBiL1dlYkNvcmUvYmluZGluZ3MvanMvSlNGbG9hdDMyQXJy
YXlDdXN0b20uY3BwCmluZGV4IDY3MWVlNjguLjg4MGQ2OGMgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUv
YmluZGluZ3MvanMvSlNGbG9hdDMyQXJyYXlDdXN0b20uY3BwCisrKyBiL1dlYkNvcmUvYmluZGlu
Z3MvanMvSlNGbG9hdDMyQXJyYXlDdXN0b20uY3BwCkBAIC0yNywxMCArMjcsMTAgQEAKIAogI2lm
IEVOQUJMRSgzRF9DQU5WQVMpIHx8IEVOQUJMRShCTE9CKQogCi0jaW5jbHVkZSAiSlNBcnJheUJ1
ZmZlclZpZXdIZWxwZXIuaCIKICNpbmNsdWRlICJKU0Zsb2F0MzJBcnJheS5oIgogCiAjaW5jbHVk
ZSAiRmxvYXQzMkFycmF5LmgiCisjaW5jbHVkZSAiSlNBcnJheUJ1ZmZlclZpZXdIZWxwZXIuaCIK
IAogdXNpbmcgbmFtZXNwYWNlIEpTQzsKIApAQCAtNTQsNyArNTQsNyBAQCBKU0M6OkpTVmFsdWUg
SlNGbG9hdDMyQXJyYXk6OnNldChKU0M6OkV4ZWNTdGF0ZSogZXhlYykKIEVuY29kZWRKU1ZhbHVl
IEpTQ19IT1NUX0NBTEwgSlNGbG9hdDMyQXJyYXlDb25zdHJ1Y3Rvcjo6Y29uc3RydWN0SlNGbG9h
dDMyQXJyYXkoRXhlY1N0YXRlKiBleGVjKQogewogICAgIEpTRmxvYXQzMkFycmF5Q29uc3RydWN0
b3IqIGpzQ29uc3RydWN0b3IgPSBzdGF0aWNfY2FzdDxKU0Zsb2F0MzJBcnJheUNvbnN0cnVjdG9y
Kj4oZXhlYy0+Y2FsbGVlKCkpOwotICAgIFJlZlB0cjxGbG9hdDMyQXJyYXk+IGFycmF5ID0gc3Rh
dGljX2Nhc3Q8RmxvYXQzMkFycmF5Kj4oY29uc3RydWN0QXJyYXlCdWZmZXJWaWV3PEZsb2F0MzJB
cnJheSwgZmxvYXQ+KGV4ZWMpLmdldCgpKTsKKyAgICBSZWZQdHI8RmxvYXQzMkFycmF5PiBhcnJh
eSA9IGNvbnN0cnVjdEFycmF5QnVmZmVyVmlldzxGbG9hdDMyQXJyYXksIGZsb2F0PihleGVjKTsK
ICAgICBpZiAoIWFycmF5LmdldCgpKQogICAgICAgICAvLyBFeGNlcHRpb24gaGFzIGFscmVhZHkg
YmVlbiB0aHJvd24uCiAgICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoSlNWYWx1ZSgpKTsK
ZGlmZiAtLWdpdCBhL1dlYkNvcmUvYmluZGluZ3MvanMvSlNJbnQxNkFycmF5Q3VzdG9tLmNwcCBi
L1dlYkNvcmUvYmluZGluZ3MvanMvSlNJbnQxNkFycmF5Q3VzdG9tLmNwcAppbmRleCA3OTc1Njhj
Li5lMDhkYThhIDEwMDY0NAotLS0gYS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTSW50MTZBcnJheUN1
c3RvbS5jcHAKKysrIGIvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0ludDE2QXJyYXlDdXN0b20uY3Bw
CkBAIC0yNywxMCArMjcsMTAgQEAKIAogI2lmIEVOQUJMRSgzRF9DQU5WQVMpIHx8IEVOQUJMRShC
TE9CKQogCi0jaW5jbHVkZSAiSlNBcnJheUJ1ZmZlclZpZXdIZWxwZXIuaCIKICNpbmNsdWRlICJK
U0ludDE2QXJyYXkuaCIKIAogI2luY2x1ZGUgIkludDE2QXJyYXkuaCIKKyNpbmNsdWRlICJKU0Fy
cmF5QnVmZmVyVmlld0hlbHBlci5oIgogCiB1c2luZyBuYW1lc3BhY2UgSlNDOwogCkBAIC01NCw3
ICs1NCw3IEBAIEpTQzo6SlNWYWx1ZSBKU0ludDE2QXJyYXk6OnNldChKU0M6OkV4ZWNTdGF0ZSog
ZXhlYykKIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgSlNJbnQxNkFycmF5Q29uc3RydWN0
b3I6OmNvbnN0cnVjdEpTSW50MTZBcnJheShFeGVjU3RhdGUqIGV4ZWMpCiB7CiAgICAgSlNJbnQx
NkFycmF5Q29uc3RydWN0b3IqIGpzQ29uc3RydWN0b3IgPSBzdGF0aWNfY2FzdDxKU0ludDE2QXJy
YXlDb25zdHJ1Y3Rvcio+KGV4ZWMtPmNhbGxlZSgpKTsKLSAgICBSZWZQdHI8SW50MTZBcnJheT4g
YXJyYXkgPSBzdGF0aWNfY2FzdDxJbnQxNkFycmF5Kj4oY29uc3RydWN0QXJyYXlCdWZmZXJWaWV3
PEludDE2QXJyYXksIHNob3J0PihleGVjKS5nZXQoKSk7CisgICAgUmVmUHRyPEludDE2QXJyYXk+
IGFycmF5ID0gY29uc3RydWN0QXJyYXlCdWZmZXJWaWV3PEludDE2QXJyYXksIHNob3J0PihleGVj
KTsKICAgICBpZiAoIWFycmF5LmdldCgpKQogICAgICAgICAvLyBFeGNlcHRpb24gaGFzIGFscmVh
ZHkgYmVlbiB0aHJvd24uCiAgICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoSlNWYWx1ZSgp
KTsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvYmluZGluZ3MvanMvSlNJbnQzMkFycmF5Q3VzdG9tLmNw
cCBiL1dlYkNvcmUvYmluZGluZ3MvanMvSlNJbnQzMkFycmF5Q3VzdG9tLmNwcAppbmRleCA1M2U2
ZWM2Li41YWE2NGJiIDEwMDY0NAotLS0gYS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTSW50MzJBcnJh
eUN1c3RvbS5jcHAKKysrIGIvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0ludDMyQXJyYXlDdXN0b20u
Y3BwCkBAIC0yNywxMCArMjcsMTAgQEAKIAogI2lmIEVOQUJMRSgzRF9DQU5WQVMpIHx8IEVOQUJM
RShCTE9CKQogCi0jaW5jbHVkZSAiSlNBcnJheUJ1ZmZlclZpZXdIZWxwZXIuaCIKICNpbmNsdWRl
ICJKU0ludDMyQXJyYXkuaCIKIAogI2luY2x1ZGUgIkludDMyQXJyYXkuaCIKKyNpbmNsdWRlICJK
U0FycmF5QnVmZmVyVmlld0hlbHBlci5oIgogCiB1c2luZyBuYW1lc3BhY2UgSlNDOwogCkBAIC01
NCw3ICs1NCw3IEBAIEpTQzo6SlNWYWx1ZSBKU0ludDMyQXJyYXk6OnNldChKU0M6OkV4ZWNTdGF0
ZSogZXhlYykKIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgSlNJbnQzMkFycmF5Q29uc3Ry
dWN0b3I6OmNvbnN0cnVjdEpTSW50MzJBcnJheShFeGVjU3RhdGUqIGV4ZWMpCiB7CiAgICAgSlNJ
bnQzMkFycmF5Q29uc3RydWN0b3IqIGpzQ29uc3RydWN0b3IgPSBzdGF0aWNfY2FzdDxKU0ludDMy
QXJyYXlDb25zdHJ1Y3Rvcio+KGV4ZWMtPmNhbGxlZSgpKTsKLSAgICBSZWZQdHI8SW50MzJBcnJh
eT4gYXJyYXkgPSBzdGF0aWNfY2FzdDxJbnQzMkFycmF5Kj4oY29uc3RydWN0QXJyYXlCdWZmZXJW
aWV3PEludDMyQXJyYXksIGludD4oZXhlYykuZ2V0KCkpOworICAgIFJlZlB0cjxJbnQzMkFycmF5
PiBhcnJheSA9IGNvbnN0cnVjdEFycmF5QnVmZmVyVmlldzxJbnQzMkFycmF5LCBpbnQ+KGV4ZWMp
OwogICAgIGlmICghYXJyYXkuZ2V0KCkpCiAgICAgICAgIC8vIEV4Y2VwdGlvbiBoYXMgYWxyZWFk
eSBiZWVuIHRocm93bi4KICAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShKU1ZhbHVlKCkp
OwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0ludDhBcnJheUN1c3RvbS5jcHAg
Yi9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTSW50OEFycmF5Q3VzdG9tLmNwcAppbmRleCA3NTU2ZDZh
Li5iNjNkZTU0IDEwMDY0NAotLS0gYS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTSW50OEFycmF5Q3Vz
dG9tLmNwcAorKysgYi9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTSW50OEFycmF5Q3VzdG9tLmNwcApA
QCAtMjcsMTAgKzI3LDEwIEBACiAKICNpZiBFTkFCTEUoM0RfQ0FOVkFTKSB8fCBFTkFCTEUoQkxP
QikKIAotI2luY2x1ZGUgIkpTQXJyYXlCdWZmZXJWaWV3SGVscGVyLmgiCiAjaW5jbHVkZSAiSlNJ
bnQ4QXJyYXkuaCIKIAogI2luY2x1ZGUgIkludDhBcnJheS5oIgorI2luY2x1ZGUgIkpTQXJyYXlC
dWZmZXJWaWV3SGVscGVyLmgiCiAjaW5jbHVkZSA8cnVudGltZS9FcnJvci5oPgogCiB1c2luZyBu
YW1lc3BhY2UgSlNDOwpAQCAtNTUsNyArNTUsNyBAQCBKU0M6OkpTVmFsdWUgSlNJbnQ4QXJyYXk6
OnNldChKU0M6OkV4ZWNTdGF0ZSogZXhlYykKIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwg
SlNJbnQ4QXJyYXlDb25zdHJ1Y3Rvcjo6Y29uc3RydWN0SlNJbnQ4QXJyYXkoRXhlY1N0YXRlKiBl
eGVjKQogewogICAgIEpTSW50OEFycmF5Q29uc3RydWN0b3IqIGpzQ29uc3RydWN0b3IgPSBzdGF0
aWNfY2FzdDxKU0ludDhBcnJheUNvbnN0cnVjdG9yKj4oZXhlYy0+Y2FsbGVlKCkpOwotICAgIFJl
ZlB0cjxJbnQ4QXJyYXk+IGFycmF5ID0gc3RhdGljX2Nhc3Q8SW50OEFycmF5Kj4oY29uc3RydWN0
QXJyYXlCdWZmZXJWaWV3PEludDhBcnJheSwgc2lnbmVkIGNoYXI+KGV4ZWMpLmdldCgpKTsKKyAg
ICBSZWZQdHI8SW50OEFycmF5PiBhcnJheSA9IGNvbnN0cnVjdEFycmF5QnVmZmVyVmlldzxJbnQ4
QXJyYXksIHNpZ25lZCBjaGFyPihleGVjKTsKICAgICBpZiAoIWFycmF5LmdldCgpKQogICAgICAg
ICAvLyBFeGNlcHRpb24gaGFzIGFscmVhZHkgYmVlbiB0aHJvd24uCiAgICAgICAgIHJldHVybiBK
U1ZhbHVlOjplbmNvZGUoSlNWYWx1ZSgpKTsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvYmluZGluZ3Mv
anMvSlNVaW50MTZBcnJheUN1c3RvbS5jcHAgYi9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTVWludDE2
QXJyYXlDdXN0b20uY3BwCmluZGV4IDlmMTJmYTcuLjZhMDI0ZWUgMTAwNjQ0Ci0tLSBhL1dlYkNv
cmUvYmluZGluZ3MvanMvSlNVaW50MTZBcnJheUN1c3RvbS5jcHAKKysrIGIvV2ViQ29yZS9iaW5k
aW5ncy9qcy9KU1VpbnQxNkFycmF5Q3VzdG9tLmNwcApAQCAtMjcsOSArMjcsOSBAQAogCiAjaWYg
RU5BQkxFKDNEX0NBTlZBUykgfHwgRU5BQkxFKEJMT0IpCiAKLSNpbmNsdWRlICJKU0FycmF5QnVm
ZmVyVmlld0hlbHBlci5oIgogI2luY2x1ZGUgIkpTVWludDE2QXJyYXkuaCIKIAorI2luY2x1ZGUg
IkpTQXJyYXlCdWZmZXJWaWV3SGVscGVyLmgiCiAjaW5jbHVkZSAiVWludDE2QXJyYXkuaCIKIAog
dXNpbmcgbmFtZXNwYWNlIEpTQzsKQEAgLTU0LDcgKzU0LDcgQEAgSlNDOjpKU1ZhbHVlIEpTVWlu
dDE2QXJyYXk6OnNldChKU0M6OkV4ZWNTdGF0ZSogZXhlYykKIEVuY29kZWRKU1ZhbHVlIEpTQ19I
T1NUX0NBTEwgSlNVaW50MTZBcnJheUNvbnN0cnVjdG9yOjpjb25zdHJ1Y3RKU1VpbnQxNkFycmF5
KEV4ZWNTdGF0ZSogZXhlYykKIHsKICAgICBKU1VpbnQxNkFycmF5Q29uc3RydWN0b3IqIGpzQ29u
c3RydWN0b3IgPSBzdGF0aWNfY2FzdDxKU1VpbnQxNkFycmF5Q29uc3RydWN0b3IqPihleGVjLT5j
YWxsZWUoKSk7Ci0gICAgUmVmUHRyPFVpbnQxNkFycmF5PiBhcnJheSA9IHN0YXRpY19jYXN0PFVp
bnQxNkFycmF5Kj4oY29uc3RydWN0QXJyYXlCdWZmZXJWaWV3PFVpbnQxNkFycmF5LCB1bnNpZ25l
ZCBzaG9ydD4oZXhlYykuZ2V0KCkpOworICAgIFJlZlB0cjxVaW50MTZBcnJheT4gYXJyYXkgPSBj
b25zdHJ1Y3RBcnJheUJ1ZmZlclZpZXc8VWludDE2QXJyYXksIHVuc2lnbmVkIHNob3J0PihleGVj
KTsKICAgICBpZiAoIWFycmF5LmdldCgpKQogICAgICAgICAvLyBFeGNlcHRpb24gaGFzIGFscmVh
ZHkgYmVlbiB0aHJvd24uCiAgICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoSlNWYWx1ZSgp
KTsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvYmluZGluZ3MvanMvSlNVaW50MzJBcnJheUN1c3RvbS5j
cHAgYi9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTVWludDMyQXJyYXlDdXN0b20uY3BwCmluZGV4IGM3
NTc3ODYuLjM0ZWI4ZGUgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvYmluZGluZ3MvanMvSlNVaW50MzJB
cnJheUN1c3RvbS5jcHAKKysrIGIvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1VpbnQzMkFycmF5Q3Vz
dG9tLmNwcApAQCAtMjcsOSArMjcsOSBAQAogCiAjaWYgRU5BQkxFKDNEX0NBTlZBUykgfHwgRU5B
QkxFKEJMT0IpCiAKLSNpbmNsdWRlICJKU0FycmF5QnVmZmVyVmlld0hlbHBlci5oIgogI2luY2x1
ZGUgIkpTVWludDMyQXJyYXkuaCIKIAorI2luY2x1ZGUgIkpTQXJyYXlCdWZmZXJWaWV3SGVscGVy
LmgiCiAjaW5jbHVkZSAiVWludDMyQXJyYXkuaCIKIAogdXNpbmcgbmFtZXNwYWNlIEpTQzsKQEAg
LTU0LDcgKzU0LDcgQEAgSlNDOjpKU1ZhbHVlIEpTVWludDMyQXJyYXk6OnNldChKU0M6OkV4ZWNT
dGF0ZSogZXhlYykKIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgSlNVaW50MzJBcnJheUNv
bnN0cnVjdG9yOjpjb25zdHJ1Y3RKU1VpbnQzMkFycmF5KEV4ZWNTdGF0ZSogZXhlYykKIHsKICAg
ICBKU1VpbnQzMkFycmF5Q29uc3RydWN0b3IqIGpzQ29uc3RydWN0b3IgPSBzdGF0aWNfY2FzdDxK
U1VpbnQzMkFycmF5Q29uc3RydWN0b3IqPihleGVjLT5jYWxsZWUoKSk7Ci0gICAgUmVmUHRyPFVp
bnQzMkFycmF5PiBhcnJheSA9IHN0YXRpY19jYXN0PFVpbnQzMkFycmF5Kj4oY29uc3RydWN0QXJy
YXlCdWZmZXJWaWV3PFVpbnQzMkFycmF5LCB1bnNpZ25lZCBpbnQ+KGV4ZWMpLmdldCgpKTsKKyAg
ICBSZWZQdHI8VWludDMyQXJyYXk+IGFycmF5ID0gY29uc3RydWN0QXJyYXlCdWZmZXJWaWV3PFVp
bnQzMkFycmF5LCB1bnNpZ25lZCBpbnQ+KGV4ZWMpOwogICAgIGlmICghYXJyYXkuZ2V0KCkpCiAg
ICAgICAgIC8vIEV4Y2VwdGlvbiBoYXMgYWxyZWFkeSBiZWVuIHRocm93bi4KICAgICAgICAgcmV0
dXJuIEpTVmFsdWU6OmVuY29kZShKU1ZhbHVlKCkpOwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9iaW5k
aW5ncy9qcy9KU1VpbnQ4QXJyYXlDdXN0b20uY3BwIGIvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1Vp
bnQ4QXJyYXlDdXN0b20uY3BwCmluZGV4IGFkZjYwYTkuLmE5ZWQ3M2YgMTAwNjQ0Ci0tLSBhL1dl
YkNvcmUvYmluZGluZ3MvanMvSlNVaW50OEFycmF5Q3VzdG9tLmNwcAorKysgYi9XZWJDb3JlL2Jp
bmRpbmdzL2pzL0pTVWludDhBcnJheUN1c3RvbS5jcHAKQEAgLTI3LDkgKzI3LDkgQEAKIAogI2lm
IEVOQUJMRSgzRF9DQU5WQVMpIHx8IEVOQUJMRShCTE9CKQogCi0jaW5jbHVkZSAiSlNBcnJheUJ1
ZmZlclZpZXdIZWxwZXIuaCIKICNpbmNsdWRlICJKU1VpbnQ4QXJyYXkuaCIKIAorI2luY2x1ZGUg
IkpTQXJyYXlCdWZmZXJWaWV3SGVscGVyLmgiCiAjaW5jbHVkZSAiVWludDhBcnJheS5oIgogCiB1
c2luZyBuYW1lc3BhY2UgSlNDOwpAQCAtNTQsNyArNTQsNyBAQCBKU0M6OkpTVmFsdWUgSlNVaW50
OEFycmF5OjpzZXQoSlNDOjpFeGVjU3RhdGUqIGV4ZWMpCiBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9T
VF9DQUxMIEpTVWludDhBcnJheUNvbnN0cnVjdG9yOjpjb25zdHJ1Y3RKU1VpbnQ4QXJyYXkoRXhl
Y1N0YXRlKiBleGVjKQogewogICAgIEpTVWludDhBcnJheUNvbnN0cnVjdG9yKiBqc0NvbnN0cnVj
dG9yID0gc3RhdGljX2Nhc3Q8SlNVaW50OEFycmF5Q29uc3RydWN0b3IqPihleGVjLT5jYWxsZWUo
KSk7Ci0gICAgUmVmUHRyPFVpbnQ4QXJyYXk+IGFycmF5ID0gc3RhdGljX2Nhc3Q8VWludDhBcnJh
eSo+KGNvbnN0cnVjdEFycmF5QnVmZmVyVmlldzxVaW50OEFycmF5LCB1bnNpZ25lZCBjaGFyPihl
eGVjKS5nZXQoKSk7CisgICAgUmVmUHRyPFVpbnQ4QXJyYXk+IGFycmF5ID0gY29uc3RydWN0QXJy
YXlCdWZmZXJWaWV3PFVpbnQ4QXJyYXksIHVuc2lnbmVkIGNoYXI+KGV4ZWMpOwogICAgIGlmICgh
YXJyYXkuZ2V0KCkpCiAgICAgICAgIC8vIEV4Y2VwdGlvbiBoYXMgYWxyZWFkeSBiZWVuIHRocm93
bi4KICAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShKU1ZhbHVlKCkpOwpkaWZmIC0tZ2l0
IGEvV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhBcnJheUJ1ZmZlclZpZXdDdXN0b20uaCBi
L1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4QXJyYXlCdWZmZXJWaWV3Q3VzdG9tLmgKaW5k
ZXggMjU2NmI2Ny4uNjg4MWEwMSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0
b20vVjhBcnJheUJ1ZmZlclZpZXdDdXN0b20uaAorKysgYi9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1
c3RvbS9WOEFycmF5QnVmZmVyVmlld0N1c3RvbS5oCkBAIC0yOCwyNyArMjgsNjQgQEAKICAqIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuCiAgKi8KIAotI2luY2x1ZGUgImNvbmZpZy5oIgorI2lmbmRlZiBWOEFycmF5QnVm
ZmVyVmlld0N1c3RvbV9oCisjZGVmaW5lIFY4QXJyYXlCdWZmZXJWaWV3Q3VzdG9tX2gKIAogI2lm
IEVOQUJMRSgzRF9DQU5WQVMpIHx8IEVOQUJMRShCTE9CKQogCiAjaW5jbHVkZSAiQXJyYXlCdWZm
ZXIuaCIKIAotI2luY2x1ZGUgIlY4QmluZGluZy5oIgogI2luY2x1ZGUgIlY4QXJyYXlCdWZmZXIu
aCIKKyNpbmNsdWRlICJWOEJpbmRpbmcuaCIKICNpbmNsdWRlICJWOFByb3h5LmgiCiAKIG5hbWVz
cGFjZSBXZWJDb3JlIHsKIAogLy8gVGVtcGxhdGUgZnVuY3Rpb24gdXNlZCBieSB0aGUgQXJyYXlC
dWZmZXJWaWV3KkNvbnN0cnVjdG9yIGNhbGxiYWNrcy4KIHRlbXBsYXRlPGNsYXNzIEFycmF5Q2xh
c3MsIGNsYXNzIEVsZW1lbnRUeXBlPgordjg6OkhhbmRsZTx2ODo6VmFsdWU+IGNvbnN0cnVjdFdl
YkdMQXJyYXlXaXRoQXJyYXlCdWZmZXJBcmd1bWVudChjb25zdCB2ODo6QXJndW1lbnRzJiBhcmdz
LCBXcmFwcGVyVHlwZUluZm8qIHR5cGUsIHY4OjpFeHRlcm5hbEFycmF5VHlwZSBhcnJheVR5cGUs
IGJvb2wgaGFzSW5kZXhlcikKK3sKKyAgICBBcnJheUJ1ZmZlciogYnVmID0gVjhBcnJheUJ1ZmZl
cjo6dG9OYXRpdmUoYXJnc1swXS0+VG9PYmplY3QoKSk7CisgICAgaWYgKCFidWYpCisgICAgICAg
IHJldHVybiB0aHJvd0Vycm9yKCJDb3VsZCBub3QgY29udmVydCBhcmd1bWVudCAwIHRvIGEgQXJy
YXlCdWZmZXIiKTsKKyAgICBib29sIG9rOworICAgIHVpbnQzMl90IG9mZnNldCA9IDA7CisgICAg
aW50IGFyZ0xlbiA9IGFyZ3MuTGVuZ3RoKCk7CisgICAgaWYgKGFyZ0xlbiA+IDEpIHsKKyAgICAg
ICAgb2Zmc2V0ID0gdG9VSW50MzIoYXJnc1sxXSwgb2spOworICAgICAgICBpZiAoIW9rKQorICAg
ICAgICAgICAgcmV0dXJuIHRocm93RXJyb3IoIkNvdWxkIG5vdCBjb252ZXJ0IGFyZ3VtZW50IDEg
dG8gYSBudW1iZXIiKTsKKyAgICB9CisgICAgaWYgKChidWYtPmJ5dGVMZW5ndGgoKSAtIG9mZnNl
dCkgJSBzaXplb2YoRWxlbWVudFR5cGUpKQorICAgICAgICByZXR1cm4gdGhyb3dFcnJvcigiQXJy
YXlCdWZmZXIgbGVuZ3RoIG1pbnVzIHRoZSBieXRlT2Zmc2V0IGlzIG5vdCBhIG11bHRpcGxlIG9m
IHRoZSBlbGVtZW50IHNpemUuIiwgVjhQcm94eTo6UmFuZ2VFcnJvcik7CisgICAgdWludDMyX3Qg
bGVuZ3RoID0gKGJ1Zi0+Ynl0ZUxlbmd0aCgpIC0gb2Zmc2V0KSAvIHNpemVvZihFbGVtZW50VHlw
ZSk7CisgICAgaWYgKGFyZ0xlbiA+IDIpIHsKKyAgICAgICAgbGVuZ3RoID0gdG9VSW50MzIoYXJn
c1syXSwgb2spOworICAgICAgICBpZiAoIW9rKQorICAgICAgICAgICAgcmV0dXJuIHRocm93RXJy
b3IoIkNvdWxkIG5vdCBjb252ZXJ0IGFyZ3VtZW50IDIgdG8gYSBudW1iZXIiKTsKKyAgICB9CisK
KyAgICBSZWZQdHI8QXJyYXlDbGFzcz4gYXJyYXkgPSBBcnJheUNsYXNzOjpjcmVhdGUoYnVmLCBv
ZmZzZXQsIGxlbmd0aCk7CisgICAgaWYgKCFhcnJheSkgeworICAgICAgICBWOFByb3h5OjpzZXRE
T01FeGNlcHRpb24oSU5ERVhfU0laRV9FUlIpOworICAgICAgICByZXR1cm4gbm90SGFuZGxlZEJ5
SW50ZXJjZXB0b3IoKTsKKyAgICB9CisgICAgLy8gVHJhbnNmb3JtIHRoZSBob2xkZXIgaW50byBh
IHdyYXBwZXIgb2JqZWN0IGZvciB0aGUgYXJyYXkuCisgICAgVjhET01XcmFwcGVyOjpzZXRET01X
cmFwcGVyKGFyZ3MuSG9sZGVyKCksIHR5cGUsIGFycmF5LmdldCgpKTsKKyAgICBpZiAoaGFzSW5k
ZXhlcikKKyAgICAgICAgYXJncy5Ib2xkZXIoKS0+U2V0SW5kZXhlZFByb3BlcnRpZXNUb0V4dGVy
bmFsQXJyYXlEYXRhKGFycmF5LmdldCgpLT5iYXNlQWRkcmVzcygpLCBhcnJheVR5cGUsIGFycmF5
LmdldCgpLT5sZW5ndGgoKSk7CisgICAgcmV0dXJuIHRvVjgoYXJyYXkucmVsZWFzZSgpLCBhcmdz
LkhvbGRlcigpKTsKK30KKworLy8gVGVtcGxhdGUgZnVuY3Rpb24gdXNlZCBieSB0aGUgQXJyYXlC
dWZmZXJWaWV3KkNvbnN0cnVjdG9yIGNhbGxiYWNrcy4KK3RlbXBsYXRlPGNsYXNzIEFycmF5Q2xh
c3MsIGNsYXNzIEVsZW1lbnRUeXBlPgogdjg6OkhhbmRsZTx2ODo6VmFsdWU+IGNvbnN0cnVjdFdl
YkdMQXJyYXkoY29uc3Qgdjg6OkFyZ3VtZW50cyYgYXJncywgV3JhcHBlclR5cGVJbmZvKiB0eXBl
LCB2ODo6RXh0ZXJuYWxBcnJheVR5cGUgYXJyYXlUeXBlKQogewogICAgIGlmICghYXJncy5Jc0Nv
bnN0cnVjdENhbGwoKSkKICAgICAgICAgcmV0dXJuIHRocm93RXJyb3IoIkRPTSBvYmplY3QgY29u
c3RydWN0b3IgY2Fubm90IGJlIGNhbGxlZCBhcyBhIGZ1bmN0aW9uLiIpOwogCiAgICAgaW50IGFy
Z0xlbiA9IGFyZ3MuTGVuZ3RoKCk7Ci0gICAgaWYgKGFyZ0xlbiA9PSAwKSB7CisgICAgaWYgKCFh
cmdMZW4pIHsKICAgICAgICAgLy8gVGhpcyBoYXBwZW5zIHdoZW4gd2UgcmV0dXJuIGEgcHJldmlv
dXNseSBjb25zdHJ1Y3RlZAogICAgICAgICAvLyBBcnJheUJ1ZmZlclZpZXcsIGUuZy4gZnJvbSB0
aGUgY2FsbCB0byA8VHlwZT5BcnJheS5zbGljZSgpLgogICAgICAgICAvLyBUaGUgVjhET01XcmFw
cGVyIHdpbGwgc2V0IHRoZSBpbnRlcm5hbCBwb2ludGVyIGluIHRoZQpAQCAtODMsMzYgKzEyMCw4
IEBAIHY4OjpIYW5kbGU8djg6OlZhbHVlPiBjb25zdHJ1Y3RXZWJHTEFycmF5KGNvbnN0IHY4OjpB
cmd1bWVudHMmIGFyZ3MsIFdyYXBwZXJUeXBlCiAgICAgfQogCiAgICAgLy8gU2VlIHdoZXRoZXIg
dGhlIGZpcnN0IGFyZ3VtZW50IGlzIGEgQXJyYXlCdWZmZXIuCi0gICAgaWYgKFY4QXJyYXlCdWZm
ZXI6Okhhc0luc3RhbmNlKGFyZ3NbMF0pKSB7Ci0gICAgICAgIEFycmF5QnVmZmVyKiBidWYgPSBW
OEFycmF5QnVmZmVyOjp0b05hdGl2ZShhcmdzWzBdLT5Ub09iamVjdCgpKTsKLSAgICAgICAgaWYg
KCFidWYpCi0gICAgICAgICAgICByZXR1cm4gdGhyb3dFcnJvcigiQ291bGQgbm90IGNvbnZlcnQg
YXJndW1lbnQgMCB0byBhIEFycmF5QnVmZmVyIik7Ci0gICAgICAgIGJvb2wgb2s7Ci0gICAgICAg
IHVpbnQzMl90IG9mZnNldCA9IDA7Ci0gICAgICAgIGlmIChhcmdMZW4gPiAxKSB7Ci0gICAgICAg
ICAgICBvZmZzZXQgPSB0b1VJbnQzMihhcmdzWzFdLCBvayk7Ci0gICAgICAgICAgICBpZiAoIW9r
KQotICAgICAgICAgICAgICAgIHJldHVybiB0aHJvd0Vycm9yKCJDb3VsZCBub3QgY29udmVydCBh
cmd1bWVudCAxIHRvIGEgbnVtYmVyIik7Ci0gICAgICAgIH0KLSAgICAgICAgaWYgKChidWYtPmJ5
dGVMZW5ndGgoKSAtIG9mZnNldCkgJSBzaXplb2YoRWxlbWVudFR5cGUpKQotICAgICAgICAgICAg
cmV0dXJuIHRocm93RXJyb3IoIkFycmF5QnVmZmVyIGxlbmd0aCBtaW51cyB0aGUgYnl0ZU9mZnNl
dCBpcyBub3QgYSBtdWx0aXBsZSBvZiB0aGUgZWxlbWVudCBzaXplLiIsIFY4UHJveHk6OlJhbmdl
RXJyb3IpOwotICAgICAgICB1aW50MzJfdCBsZW5ndGggPSAoYnVmLT5ieXRlTGVuZ3RoKCkgLSBv
ZmZzZXQpIC8gc2l6ZW9mKEVsZW1lbnRUeXBlKTsKLSAgICAgICAgaWYgKGFyZ0xlbiA+IDIpIHsK
LSAgICAgICAgICAgIGxlbmd0aCA9IHRvVUludDMyKGFyZ3NbMl0sIG9rKTsKLSAgICAgICAgICAg
IGlmICghb2spCi0gICAgICAgICAgICAgICAgcmV0dXJuIHRocm93RXJyb3IoIkNvdWxkIG5vdCBj
b252ZXJ0IGFyZ3VtZW50IDIgdG8gYSBudW1iZXIiKTsKLSAgICAgICAgfQotCi0gICAgICAgIFJl
ZlB0cjxBcnJheUNsYXNzPiBhcnJheSA9IEFycmF5Q2xhc3M6OmNyZWF0ZShidWYsIG9mZnNldCwg
bGVuZ3RoKTsKLSAgICAgICAgaWYgKCFhcnJheSkgewotICAgICAgICAgICAgVjhQcm94eTo6c2V0
RE9NRXhjZXB0aW9uKElOREVYX1NJWkVfRVJSKTsKLSAgICAgICAgICAgIHJldHVybiBub3RIYW5k
bGVkQnlJbnRlcmNlcHRvcigpOwotICAgICAgICB9Ci0gICAgICAgIC8vIFRyYW5zZm9ybSB0aGUg
aG9sZGVyIGludG8gYSB3cmFwcGVyIG9iamVjdCBmb3IgdGhlIGFycmF5LgotICAgICAgICBWOERP
TVdyYXBwZXI6OnNldERPTVdyYXBwZXIoYXJncy5Ib2xkZXIoKSwgdHlwZSwgYXJyYXkuZ2V0KCkp
OwotICAgICAgICBhcmdzLkhvbGRlcigpLT5TZXRJbmRleGVkUHJvcGVydGllc1RvRXh0ZXJuYWxB
cnJheURhdGEoYXJyYXkuZ2V0KCktPmJhc2VBZGRyZXNzKCksIGFycmF5VHlwZSwgYXJyYXkuZ2V0
KCktPmxlbmd0aCgpKTsKLSAgICAgICAgcmV0dXJuIHRvVjgoYXJyYXkucmVsZWFzZSgpLCBhcmdz
LkhvbGRlcigpKTsKLSAgICB9CisgICAgaWYgKFY4QXJyYXlCdWZmZXI6Okhhc0luc3RhbmNlKGFy
Z3NbMF0pKQorICAgICAgcmV0dXJuIGNvbnN0cnVjdFdlYkdMQXJyYXlXaXRoQXJyYXlCdWZmZXJB
cmd1bWVudDxBcnJheUNsYXNzLCBFbGVtZW50VHlwZT4oYXJncywgdHlwZSwgYXJyYXlUeXBlLCB0
cnVlKTsKIAogICAgIHVpbnQzMl90IGxlbiA9IDA7CiAgICAgdjg6OkhhbmRsZTx2ODo6T2JqZWN0
PiBzcmNBcnJheTsKQEAgLTIwMSwzICsyMTAsNSBAQCB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gc2V0
V2ViR0xBcnJheUhlbHBlcihjb25zdCB2ODo6QXJndW1lbnRzJiBhcmdzKQogfQogCiAjZW5kaWYg
Ly8gRU5BQkxFKDNEX0NBTlZBUykKKworI2VuZGlmIC8vIFY4QXJyYXlCdWZmZXJWaWV3Q3VzdG9t
X2gKZGlmZiAtLWdpdCBhL1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4RGF0YVZpZXdDdXN0
b20uY3BwIGIvV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhEYXRhVmlld0N1c3RvbS5jcHAK
bmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uMTZiZDRhNQotLS0gL2Rldi9udWxs
CisrKyBiL1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4RGF0YVZpZXdDdXN0b20uY3BwCkBA
IC0wLDAgKzEsMTI0IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEwIEdvb2dsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFy
ZSBtZXQ6CisgKgorICogMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyIGluIHRoZQorICogICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBBUFBMRSBBTkQgSVRTIENPTlRSSUJVVE9SUyAiQVMgSVMiIEFORCBB
TlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywgVEhFIElNUExJRUQKKyAqIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZ
IEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKKyAqIERJU0NMQUlNRUQu
IElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZP
UiBBTlkKKyAqIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFS
WSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTCisgKiAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7CisgKiBM
T1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQKKyAqIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0Ug
T0YKKyAqIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorCisjaWYgRU5BQkxF
KDNEX0NBTlZBUykgfHwgRU5BQkxFKEJMT0IpCisKKyNpbmNsdWRlICJEYXRhVmlldy5oIgorCisj
aW5jbHVkZSAiVjhBcnJheUJ1ZmZlclZpZXdDdXN0b20uaCIKKyNpbmNsdWRlICJWOEJpbmRpbmcu
aCIKKyNpbmNsdWRlICJWOEJpbmRpbmdNYWNyb3MuaCIKKyNpbmNsdWRlICJWOERhdGFWaWV3Lmgi
CisjaW5jbHVkZSAiVjhQcm94eS5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK3Y4OjpIYW5k
bGU8djg6OlZhbHVlPiBWOERhdGFWaWV3Ojpjb25zdHJ1Y3RvckNhbGxiYWNrKGNvbnN0IHY4OjpB
cmd1bWVudHMmIGFyZ3MpCit7CisgICAgSU5DX1NUQVRTKCJET00uQXJyYXlCdWZmZXIuQ29uc3Ry
dWN0b3IiKTsKKworICAgIGlmIChhcmdzWzBdLT5Jc051bGwoKSB8fCAhVjhBcnJheUJ1ZmZlcjo6
SGFzSW5zdGFuY2UoYXJnc1swXSkpCisgICAgICAgIHJldHVybiBWOFByb3h5Ojp0aHJvd1R5cGVF
cnJvcigpOworICAgIHJldHVybiBjb25zdHJ1Y3RXZWJHTEFycmF5V2l0aEFycmF5QnVmZmVyQXJn
dW1lbnQ8RGF0YVZpZXcsIGNoYXI+KGFyZ3MsICZpbmZvLCB2ODo6a0V4dGVybmFsQnl0ZUFycmF5
LCBmYWxzZSk7Cit9CisKK3Y4OjpIYW5kbGU8djg6OlZhbHVlPiB0b1Y4KERhdGFWaWV3KiBpbXBs
KQoreworICAgIGlmICghaW1wbCkKKyAgICAgICAgcmV0dXJuIHY4OjpOdWxsKCk7CisgICAgcmV0
dXJuIFY4RGF0YVZpZXc6OndyYXAoaW1wbCk7Cit9CisKK3Y4OjpIYW5kbGU8djg6OlZhbHVlPiBW
OERhdGFWaWV3OjpnZXRJbnQ4Q2FsbGJhY2soY29uc3Qgdjg6OkFyZ3VtZW50cyYgYXJncykKK3sK
KyAgICBJTkNfU1RBVFMoIkRPTS5EYXRhVmlldy5nZXRJbnQ4Iik7CisgICAgaWYgKGFyZ3MuTGVu
Z3RoKCkgPCAxKQorICAgICAgICByZXR1cm4gdGhyb3dFcnJvcigiTm90IGVub3VnaCBhcmd1bWVu
dHMiLCBWOFByb3h5OjpTeW50YXhFcnJvcik7CisKKyAgICBEYXRhVmlldyogaW1wID0gVjhEYXRh
Vmlldzo6dG9OYXRpdmUoYXJncy5Ib2xkZXIoKSk7CisgICAgRXhjZXB0aW9uQ29kZSBlYyA9IDA7
CisgICAgRVhDRVBUSU9OX0JMT0NLKHVuc2lnbmVkLCBieXRlT2Zmc2V0LCB0b1VJbnQzMihhcmdz
WzBdKSk7CisgICAgY2hhciByZXN1bHQgPSBpbXAtPmdldEludDgoYnl0ZU9mZnNldCwgZWMpOwor
ICAgIGlmIChVTkxJS0VMWShlYykpIHsKKyAgICAgICAgVjhQcm94eTo6c2V0RE9NRXhjZXB0aW9u
KGVjKTsKKyAgICAgICAgcmV0dXJuIHY4OjpIYW5kbGU8djg6OlZhbHVlPigpOworICAgIH0KKyAg
ICByZXR1cm4gdjg6OkludGVnZXI6Ok5ldyhyZXN1bHQpOworfQorCit2ODo6SGFuZGxlPHY4OjpW
YWx1ZT4gVjhEYXRhVmlldzo6Z2V0VWludDhDYWxsYmFjayhjb25zdCB2ODo6QXJndW1lbnRzJiBh
cmdzKQoreworICAgIElOQ19TVEFUUygiRE9NLkRhdGFWaWV3LmdldFVpbnQ4Iik7CisgICAgaWYg
KGFyZ3MuTGVuZ3RoKCkgPCAxKQorICAgICAgICByZXR1cm4gdGhyb3dFcnJvcigiTm90IGVub3Vn
aCBhcmd1bWVudHMiLCBWOFByb3h5OjpTeW50YXhFcnJvcik7CisKKyAgICBEYXRhVmlldyogaW1w
ID0gVjhEYXRhVmlldzo6dG9OYXRpdmUoYXJncy5Ib2xkZXIoKSk7CisgICAgRXhjZXB0aW9uQ29k
ZSBlYyA9IDA7CisgICAgRVhDRVBUSU9OX0JMT0NLKHVuc2lnbmVkLCBieXRlT2Zmc2V0LCB0b1VJ
bnQzMihhcmdzWzBdKSk7CisgICAgdW5zaWduZWQgY2hhciByZXN1bHQgPSBpbXAtPmdldFVpbnQ4
KGJ5dGVPZmZzZXQsIGVjKTsKKyAgICBpZiAoVU5MSUtFTFkoZWMpKSB7CisgICAgICAgIFY4UHJv
eHk6OnNldERPTUV4Y2VwdGlvbihlYyk7CisgICAgICAgIHJldHVybiB2ODo6SGFuZGxlPHY4OjpW
YWx1ZT4oKTsKKyAgICB9CisgICAgcmV0dXJuIHY4OjpJbnRlZ2VyOjpOZXcocmVzdWx0KTsKK30K
Kwordjg6OkhhbmRsZTx2ODo6VmFsdWU+IFY4RGF0YVZpZXc6OnNldEludDhDYWxsYmFjayhjb25z
dCB2ODo6QXJndW1lbnRzJiBhcmdzKQoreworICAgIElOQ19TVEFUUygiRE9NLkRhdGFWaWV3LnNl
dEludDgiKTsKKyAgICBpZiAoYXJncy5MZW5ndGgoKSA8IDIpCisgICAgICAgIHJldHVybiB0aHJv
d0Vycm9yKCJOb3QgZW5vdWdoIGFyZ3VtZW50cyIsIFY4UHJveHk6OlN5bnRheEVycm9yKTsKKwor
ICAgIERhdGFWaWV3KiBpbXAgPSBWOERhdGFWaWV3Ojp0b05hdGl2ZShhcmdzLkhvbGRlcigpKTsK
KyAgICBFeGNlcHRpb25Db2RlIGVjID0gMDsKKyAgICBFWENFUFRJT05fQkxPQ0sodW5zaWduZWQs
IGJ5dGVPZmZzZXQsIHRvVUludDMyKGFyZ3NbMF0pKTsKKyAgICBFWENFUFRJT05fQkxPQ0soaW50
LCB2YWx1ZSwgdG9JbnQzMihhcmdzWzFdKSk7CisgICAgaW1wLT5zZXRJbnQ4KGJ5dGVPZmZzZXQs
IHN0YXRpY19jYXN0PGNoYXI+KHZhbHVlKSwgZWMpOworICAgIGlmIChVTkxJS0VMWShlYykpCisg
ICAgICAgIFY4UHJveHk6OnNldERPTUV4Y2VwdGlvbihlYyk7CisgICAgcmV0dXJuIHY4OjpIYW5k
bGU8djg6OlZhbHVlPigpOworfQorCit2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gVjhEYXRhVmlldzo6
c2V0VWludDhDYWxsYmFjayhjb25zdCB2ODo6QXJndW1lbnRzJiBhcmdzKQoreworICAgIElOQ19T
VEFUUygiRE9NLkRhdGFWaWV3LnNldFVpbnQ4Iik7CisgICAgaWYgKGFyZ3MuTGVuZ3RoKCkgPCAy
KQorICAgICAgICByZXR1cm4gdGhyb3dFcnJvcigiTm90IGVub3VnaCBhcmd1bWVudHMiLCBWOFBy
b3h5OjpTeW50YXhFcnJvcik7CisKKyAgICBEYXRhVmlldyogaW1wID0gVjhEYXRhVmlldzo6dG9O
YXRpdmUoYXJncy5Ib2xkZXIoKSk7CisgICAgRXhjZXB0aW9uQ29kZSBlYyA9IDA7CisgICAgRVhD
RVBUSU9OX0JMT0NLKHVuc2lnbmVkLCBieXRlT2Zmc2V0LCB0b1VJbnQzMihhcmdzWzBdKSk7Cisg
ICAgRVhDRVBUSU9OX0JMT0NLKGludCwgdmFsdWUsIHRvSW50MzIoYXJnc1sxXSkpOworICAgIGlt
cC0+c2V0VWludDgoYnl0ZU9mZnNldCwgc3RhdGljX2Nhc3Q8dW5zaWduZWQgY2hhcj4odmFsdWUp
LCBlYyk7CisgICAgaWYgKFVOTElLRUxZKGVjKSkKKyAgICAgICAgVjhQcm94eTo6c2V0RE9NRXhj
ZXB0aW9uKGVjKTsKKyAgICByZXR1cm4gdjg6OkhhbmRsZTx2ODo6VmFsdWU+KCk7Cit9CisKK30g
Ly8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEVOQUJMRSgzRF9DQU5WQVMpIHx8IEVO
QUJMRShCTE9CKQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9odG1sL2NhbnZhcy9BcnJheUJ1ZmZlclZp
ZXcuaCBiL1dlYkNvcmUvaHRtbC9jYW52YXMvQXJyYXlCdWZmZXJWaWV3LmgKaW5kZXggZDM3YmFk
YS4uNzAxYWJiYyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9odG1sL2NhbnZhcy9BcnJheUJ1ZmZlclZp
ZXcuaAorKysgYi9XZWJDb3JlL2h0bWwvY2FudmFzL0FycmF5QnVmZmVyVmlldy5oCkBAIC00Niw2
ICs0Niw3IEBAIGNsYXNzIEFycmF5QnVmZmVyVmlldyA6IHB1YmxpYyBSZWZDb3VudGVkPEFycmF5
QnVmZmVyVmlldz4gewogICAgIHZpcnR1YWwgYm9vbCBpc0ludEFycmF5KCkgY29uc3QgeyByZXR1
cm4gZmFsc2U7IH0KICAgICB2aXJ0dWFsIGJvb2wgaXNVbnNpZ25lZEludEFycmF5KCkgY29uc3Qg
eyByZXR1cm4gZmFsc2U7IH0KICAgICB2aXJ0dWFsIGJvb2wgaXNGbG9hdEFycmF5KCkgY29uc3Qg
eyByZXR1cm4gZmFsc2U7IH0KKyAgICB2aXJ0dWFsIGJvb2wgaXNEYXRhVmlldygpIGNvbnN0IHsg
cmV0dXJuIGZhbHNlOyB9CiAKICAgICBQYXNzUmVmUHRyPEFycmF5QnVmZmVyPiBidWZmZXIoKSBj
b25zdAogICAgIHsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvaHRtbC9jYW52YXMvRGF0YVZpZXcuY3Bw
IGIvV2ViQ29yZS9odG1sL2NhbnZhcy9EYXRhVmlldy5jcHAKbmV3IGZpbGUgbW9kZSAxMDA3NTUK
aW5kZXggMDAwMDAwMC4uZDAzMDIxMQotLS0gL2Rldi9udWxsCisrKyBiL1dlYkNvcmUvaHRtbC9j
YW52YXMvRGF0YVZpZXcuY3BwCkBAIC0wLDAgKzEsMjI4IEBACisvKgorICogQ29weXJpZ2h0IChD
KSAyMDEwIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKgorICogMS4gIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgorICogMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24u
CisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBBTkQgSVRTIENPTlRS
SUJVVE9SUyAiQVMgSVMiIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKKyAqIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9T
RSBBUkUKKyAqIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIE9SIElUUyBDT05U
UklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkKKyAqIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTCisgKiAoSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7CisgKiBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVT
SU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQKKyAqIE9OIEFOWSBUSEVPUlkg
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YKKyAqIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNv
bmZpZy5oIgorCisjaWYgRU5BQkxFKDNEX0NBTlZBUykgfHwgRU5BQkxFKEJMT0IpCisKKyNpbmNs
dWRlICJEYXRhVmlldy5oIgorCituYW1lc3BhY2UgeworCit0ZW1wbGF0ZTx0eXBlbmFtZSBUPgor
dW5pb24gVmFsdWUgeworICAgIFQgZGF0YTsKKyAgICBjaGFyIGJ5dGVzW3NpemVvZihUKV07Cit9
OworCit9CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworUGFzc1JlZlB0cjxEYXRhVmlldz4gRGF0
YVZpZXc6OmNyZWF0ZShQYXNzUmVmUHRyPEFycmF5QnVmZmVyPiBidWZmZXIsIHVuc2lnbmVkIGJ5
dGVPZmZzZXQsIHVuc2lnbmVkIGJ5dGVMZW5ndGgpCit7CisgICAgaWYgKGJ5dGVPZmZzZXQgKyBi
eXRlTGVuZ3RoID4gYnVmZmVyLT5ieXRlTGVuZ3RoKCkpCisgICAgICAgIHJldHVybiAwOworICAg
IHJldHVybiBhZG9wdFJlZihuZXcgRGF0YVZpZXcoYnVmZmVyLCBieXRlT2Zmc2V0LCBieXRlTGVu
Z3RoKSk7Cit9CisKK0RhdGFWaWV3OjpEYXRhVmlldyhQYXNzUmVmUHRyPEFycmF5QnVmZmVyPiBi
dWZmZXIsIHVuc2lnbmVkIGJ5dGVPZmZzZXQsIHVuc2lnbmVkIGJ5dGVMZW5ndGgpCisgICAgOiBB
cnJheUJ1ZmZlclZpZXcoYnVmZmVyLCBieXRlT2Zmc2V0KQorICAgICwgbV9ieXRlTGVuZ3RoKGJ5
dGVMZW5ndGgpCit7Cit9CisKK3N0YXRpYyBib29sIG5lZWRUb0ZsaXBCeXRlcyhib29sIGxpdHRs
ZUVuZGlhbikKK3sKKyNpZiBDUFUoQklHX0VORElBTikKKyAgICByZXR1cm4gbGl0dGxlRW5kaWFu
OworI2Vsc2UKKyAgICByZXR1cm4gIWxpdHRsZUVuZGlhbjsKKyNlbmRpZgorfQorCitpbmxpbmUg
dm9pZCBzd2FwQnl0ZXMoY2hhciogcCwgY2hhciogcSkKK3sKKyAgICBjaGFyIHRlbXAgPSAqcDsK
KyAgICAqcCA9ICpxOworICAgICpxID0gdGVtcDsKK30KKworc3RhdGljIHZvaWQgZmxpcEJ5dGVz
Rm9yMTZCaXRzKGNoYXIqIHApCit7CisgICAgc3dhcEJ5dGVzKHAsIHAgKyAxKTsKK30KKworc3Rh
dGljIHZvaWQgZmxpcEJ5dGVzRm9yMzJCaXRzKGNoYXIqIHApCit7CisgICAgc3dhcEJ5dGVzKHAs
IHAgKyAzKTsKKyAgICBzd2FwQnl0ZXMocCArIDEsIHAgKyAyKTsKK30KKworc3RhdGljIHZvaWQg
ZmxpcEJ5dGVzRm9yNjRCaXRzKGNoYXIqIHApCit7CisgICAgc3dhcEJ5dGVzKHAsIHAgKyA3KTsK
KyAgICBzd2FwQnl0ZXMocCArIDEsIHAgKyA2KTsKKyAgICBzd2FwQnl0ZXMocCArIDIsIHAgKyA1
KTsKKyAgICBzd2FwQnl0ZXMocCArIDMsIHAgKyA0KTsKK30KKworc3RhdGljIHZvaWQgZmxpcEJ5
dGVzSWZOZWVkZWQoY2hhciogdmFsdWUsIHNpemVfdCBzaXplLCBib29sIGxpdHRsZUVuZGlhbikK
K3sKKyAgICBpZiAoIW5lZWRUb0ZsaXBCeXRlcyhsaXR0bGVFbmRpYW4pKQorICAgICAgICByZXR1
cm47CisKKyAgICBzd2l0Y2ggKHNpemUpIHsKKyAgICBjYXNlIDE6CisgICAgICAgIC8vIE5vdGhp
bmcgdG8gZG8uCisgICAgICAgIGJyZWFrOworICAgIGNhc2UgMjoKKyAgICAgICAgZmxpcEJ5dGVz
Rm9yMTZCaXRzKHZhbHVlKTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSA0OgorICAgICAgICBm
bGlwQnl0ZXNGb3IzMkJpdHModmFsdWUpOworICAgICAgICBicmVhazsKKyAgICBjYXNlIDg6Cisg
ICAgICAgIGZsaXBCeXRlc0ZvcjY0Qml0cyh2YWx1ZSk7CisgICAgICAgIGJyZWFrOworICAgIGRl
ZmF1bHQ6CisgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgICAgICBicmVhazsKKyAg
ICB9Cit9CisKK3RlbXBsYXRlPHR5cGVuYW1lIFQ+CitUIERhdGFWaWV3OjpnZXREYXRhKHVuc2ln
bmVkIGJ5dGVPZmZzZXQsIGJvb2wgbGl0dGxlRW5kaWFuLCBFeGNlcHRpb25Db2RlJiBlYykgY29u
c3QKK3sKKyAgICBpZiAoYmV5b25kUmFuZ2U8VD4oYnl0ZU9mZnNldCkpIHsKKyAgICAgICAgZWMg
PSBJTkRFWF9TSVpFX0VSUjsKKyAgICAgICAgcmV0dXJuIDA7CisgICAgfQorCisgICAgLy8gV2Ug
ZG8gbm90IHdhbnQgdG8gbG9hZCB0aGUgZGF0YSBkaXJlY3RseSBzaW5jZSBpdCB3b3VsZCBjYXVz
ZSBhIGJ1cyBlcnJvciBvbiBhcmNoaXRlY3R1cmVzIHRoYXQgZG9uJ3Qgc3VwcG9ydCB1bmFsaWdu
ZWQgbG9hZHMuCisgICAgVmFsdWU8VD4gdmFsdWU7CisgICAgbWVtY3B5KHZhbHVlLmJ5dGVzLCBz
dGF0aWNfY2FzdDxjb25zdCBjaGFyKj4obV9iYXNlQWRkcmVzcykgKyBieXRlT2Zmc2V0LCBzaXpl
b2YoVCkpOworICAgIGZsaXBCeXRlc0lmTmVlZGVkKHZhbHVlLmJ5dGVzLCBzaXplb2YoVCksIGxp
dHRsZUVuZGlhbik7CisgICAgcmV0dXJuIHZhbHVlLmRhdGE7Cit9CisKK3RlbXBsYXRlPHR5cGVu
YW1lIFQ+Cit2b2lkIERhdGFWaWV3OjpzZXREYXRhKHVuc2lnbmVkIGJ5dGVPZmZzZXQsIFQgdmFs
dWUsIGJvb2wgbGl0dGxlRW5kaWFuLCBFeGNlcHRpb25Db2RlJiBlYykKK3sKKyAgICBpZiAoYmV5
b25kUmFuZ2U8VD4oYnl0ZU9mZnNldCkpIHsKKyAgICAgICAgZWMgPSBJTkRFWF9TSVpFX0VSUjsK
KyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIC8vIFdlIGRvIG5vdCB3YW50IHRvIHN0b3Jl
IHRoZSBkYXRhIGRpcmVjdGx5IHNpbmNlIGl0IHdvdWxkIGNhdXNlIGEgYnVzIGVycm9yIG9uIGFy
Y2hpdGVjdHVyZXMgdGhhdCBkb24ndCBzdXBwb3J0IHVuYWxpZ25lZCBzdG9yZXMuCisgICAgVmFs
dWU8VD4gdGVtcFZhbHVlOworICAgIHRlbXBWYWx1ZS5kYXRhID0gdmFsdWU7CisgICAgZmxpcEJ5
dGVzSWZOZWVkZWQodGVtcFZhbHVlLmJ5dGVzLCBzaXplb2YoVCksIGxpdHRsZUVuZGlhbik7Cisg
ICAgbWVtY3B5KHN0YXRpY19jYXN0PGNoYXIqPihtX2Jhc2VBZGRyZXNzKSArIGJ5dGVPZmZzZXQs
IHRlbXBWYWx1ZS5ieXRlcywgc2l6ZW9mKFQpKTsKK30KKworY2hhciBEYXRhVmlldzo6Z2V0SW50
OCh1bnNpZ25lZCBieXRlT2Zmc2V0LCBFeGNlcHRpb25Db2RlJiBlYykKK3sKKyAgICByZXR1cm4g
Z2V0RGF0YTxjaGFyPihieXRlT2Zmc2V0LCBmYWxzZSwgZWMpOworfQorCit1bnNpZ25lZCBjaGFy
IERhdGFWaWV3OjpnZXRVaW50OCh1bnNpZ25lZCBieXRlT2Zmc2V0LCBFeGNlcHRpb25Db2RlJiBl
YykKK3sKKyAgICByZXR1cm4gZ2V0RGF0YTx1bnNpZ25lZCBjaGFyPihieXRlT2Zmc2V0LCBmYWxz
ZSwgZWMpOworfQorCitzaG9ydCBEYXRhVmlldzo6Z2V0SW50MTYodW5zaWduZWQgYnl0ZU9mZnNl
dCwgYm9vbCBsaXR0bGVFbmRpYW4sIEV4Y2VwdGlvbkNvZGUmIGVjKQoreworICAgIHJldHVybiBn
ZXREYXRhPHNob3J0PihieXRlT2Zmc2V0LCBsaXR0bGVFbmRpYW4sIGVjKTsKK30KKwordW5zaWdu
ZWQgc2hvcnQgRGF0YVZpZXc6OmdldFVpbnQxNih1bnNpZ25lZCBieXRlT2Zmc2V0LCBib29sIGxp
dHRsZUVuZGlhbiwgRXhjZXB0aW9uQ29kZSYgZWMpCit7CisgICAgcmV0dXJuIGdldERhdGE8dW5z
aWduZWQgc2hvcnQ+KGJ5dGVPZmZzZXQsIGxpdHRsZUVuZGlhbiwgZWMpOworfQorCitpbnQgRGF0
YVZpZXc6OmdldEludDMyKHVuc2lnbmVkIGJ5dGVPZmZzZXQsIGJvb2wgbGl0dGxlRW5kaWFuLCBF
eGNlcHRpb25Db2RlJiBlYykKK3sKKyAgICByZXR1cm4gZ2V0RGF0YTxpbnQ+KGJ5dGVPZmZzZXQs
IGxpdHRsZUVuZGlhbiwgZWMpOworfQorCit1bnNpZ25lZCBEYXRhVmlldzo6Z2V0VWludDMyKHVu
c2lnbmVkIGJ5dGVPZmZzZXQsIGJvb2wgbGl0dGxlRW5kaWFuLCBFeGNlcHRpb25Db2RlJiBlYykK
K3sKKyAgICByZXR1cm4gZ2V0RGF0YTx1bnNpZ25lZD4oYnl0ZU9mZnNldCwgbGl0dGxlRW5kaWFu
LCBlYyk7Cit9CisKK2Zsb2F0IERhdGFWaWV3OjpnZXRGbG9hdDMyKHVuc2lnbmVkIGJ5dGVPZmZz
ZXQsIGJvb2wgbGl0dGxlRW5kaWFuLCBFeGNlcHRpb25Db2RlJiBlYykKK3sKKyAgICByZXR1cm4g
Z2V0RGF0YTxmbG9hdD4oYnl0ZU9mZnNldCwgbGl0dGxlRW5kaWFuLCBlYyk7Cit9CisKK2RvdWJs
ZSBEYXRhVmlldzo6Z2V0RmxvYXQ2NCh1bnNpZ25lZCBieXRlT2Zmc2V0LCBib29sIGxpdHRsZUVu
ZGlhbiwgRXhjZXB0aW9uQ29kZSYgZWMpCit7CisgICAgcmV0dXJuIGdldERhdGE8ZG91YmxlPihi
eXRlT2Zmc2V0LCBsaXR0bGVFbmRpYW4sIGVjKTsKK30KKwordm9pZCBEYXRhVmlldzo6c2V0SW50
OCh1bnNpZ25lZCBieXRlT2Zmc2V0LCBjaGFyIHZhbHVlLCBFeGNlcHRpb25Db2RlJiBlYykKK3sK
KyAgICBzZXREYXRhPGNoYXI+KGJ5dGVPZmZzZXQsIHZhbHVlLCBmYWxzZSwgZWMpOworfQorCit2
b2lkIERhdGFWaWV3OjpzZXRVaW50OCh1bnNpZ25lZCBieXRlT2Zmc2V0LCB1bnNpZ25lZCBjaGFy
IHZhbHVlLCBFeGNlcHRpb25Db2RlJiBlYykKK3sKKyAgICBzZXREYXRhPHVuc2lnbmVkIGNoYXI+
KGJ5dGVPZmZzZXQsIHZhbHVlLCBmYWxzZSwgZWMpOworfQorCit2b2lkIERhdGFWaWV3OjpzZXRJ
bnQxNih1bnNpZ25lZCBieXRlT2Zmc2V0LCBzaG9ydCB2YWx1ZSwgYm9vbCBsaXR0bGVFbmRpYW4s
IEV4Y2VwdGlvbkNvZGUmIGVjKQoreworICAgIHNldERhdGE8c2hvcnQ+KGJ5dGVPZmZzZXQsIHZh
bHVlLCBsaXR0bGVFbmRpYW4sIGVjKTsKK30KKwordm9pZCBEYXRhVmlldzo6c2V0VWludDE2KHVu
c2lnbmVkIGJ5dGVPZmZzZXQsIHVuc2lnbmVkIHNob3J0IHZhbHVlLCBib29sIGxpdHRsZUVuZGlh
biwgRXhjZXB0aW9uQ29kZSYgZWMpCit7CisgICAgc2V0RGF0YTx1bnNpZ25lZCBzaG9ydD4oYnl0
ZU9mZnNldCwgdmFsdWUsIGxpdHRsZUVuZGlhbiwgZWMpOworfQorCit2b2lkIERhdGFWaWV3Ojpz
ZXRJbnQzMih1bnNpZ25lZCBieXRlT2Zmc2V0LCBpbnQgdmFsdWUsIGJvb2wgbGl0dGxlRW5kaWFu
LCBFeGNlcHRpb25Db2RlJiBlYykKK3sKKyAgICBzZXREYXRhPGludD4oYnl0ZU9mZnNldCwgdmFs
dWUsIGxpdHRsZUVuZGlhbiwgZWMpOworfQorCit2b2lkIERhdGFWaWV3OjpzZXRVaW50MzIodW5z
aWduZWQgYnl0ZU9mZnNldCwgdW5zaWduZWQgdmFsdWUsIGJvb2wgbGl0dGxlRW5kaWFuLCBFeGNl
cHRpb25Db2RlJiBlYykKK3sKKyAgICBzZXREYXRhPHVuc2lnbmVkPihieXRlT2Zmc2V0LCB2YWx1
ZSwgbGl0dGxlRW5kaWFuLCBlYyk7Cit9CisKK3ZvaWQgRGF0YVZpZXc6OnNldEZsb2F0MzIodW5z
aWduZWQgYnl0ZU9mZnNldCwgZmxvYXQgdmFsdWUsIGJvb2wgbGl0dGxlRW5kaWFuLCBFeGNlcHRp
b25Db2RlJiBlYykKK3sKKyAgICBzZXREYXRhPGZsb2F0PihieXRlT2Zmc2V0LCB2YWx1ZSwgbGl0
dGxlRW5kaWFuLCBlYyk7Cit9CisKK3ZvaWQgRGF0YVZpZXc6OnNldEZsb2F0NjQodW5zaWduZWQg
Ynl0ZU9mZnNldCwgZG91YmxlIHZhbHVlLCBib29sIGxpdHRsZUVuZGlhbiwgRXhjZXB0aW9uQ29k
ZSYgZWMpCit7CisgICAgc2V0RGF0YTxkb3VibGU+KGJ5dGVPZmZzZXQsIHZhbHVlLCBsaXR0bGVF
bmRpYW4sIGVjKTsKK30KKworfQorCisjZW5kaWYgLy8gRU5BQkxFKDNEX0NBTlZBUykgfHwgRU5B
QkxFKEJMT0IpCmRpZmYgLS1naXQgYS9XZWJDb3JlL2h0bWwvY2FudmFzL0RhdGFWaWV3LmggYi9X
ZWJDb3JlL2h0bWwvY2FudmFzL0RhdGFWaWV3LmgKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXgg
MDAwMDAwMC4uMDY4MTM0MQotLS0gL2Rldi9udWxsCisrKyBiL1dlYkNvcmUvaHRtbC9jYW52YXMv
RGF0YVZpZXcuaApAQCAtMCwwICsxLDkyIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEwIEdv
b2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKKyAqIGFyZSBtZXQ6CisgKgorICogMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4g
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICog
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBBTkQgSVRTIENPTlRSSUJVVE9SUyAi
QVMgSVMiIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKKyAqIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKKyAq
IERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIE9SIElUUyBDT05UUklCVVRPUlMg
QkUgTElBQkxFIEZPUiBBTlkKKyAqIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJ
QUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTCisgKiAoSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VS
VklDRVM7CisgKiBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5U
RVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQKKyAqIE9OIEFOWSBUSEVPUlkgT0YgTElBQklM
SVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAo
SU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VU
IE9GIFRIRSBVU0UgT0YKKyAqIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBEYXRhVmlld19oCisj
ZGVmaW5lIERhdGFWaWV3X2gKKworI2luY2x1ZGUgIkFycmF5QnVmZmVyVmlldy5oIgorI2luY2x1
ZGUgIkV4Y2VwdGlvbkNvZGUuaCIKKyNpbmNsdWRlIDx3dGYvUGFzc1JlZlB0ci5oPgorCituYW1l
c3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIERhdGFWaWV3IDogcHVibGljIEFycmF5QnVmZmVyVmll
dyB7CitwdWJsaWM6CisgICAgc3RhdGljIFBhc3NSZWZQdHI8RGF0YVZpZXc+IGNyZWF0ZShQYXNz
UmVmUHRyPEFycmF5QnVmZmVyPiwgdW5zaWduZWQgYnl0ZU9mZnNldCwgdW5zaWduZWQgYnl0ZUxl
bmd0aCk7CisKKyAgICB2aXJ0dWFsIGJvb2wgaXNEYXRhVmlldygpIGNvbnN0IHsgcmV0dXJuIHRy
dWU7IH0KKyAgICB2aXJ0dWFsIHVuc2lnbmVkIGxlbmd0aCgpIGNvbnN0IHsgcmV0dXJuIG1fYnl0
ZUxlbmd0aDsgfQorICAgIHZpcnR1YWwgdW5zaWduZWQgYnl0ZUxlbmd0aCgpIGNvbnN0IHsgcmV0
dXJuIG1fYnl0ZUxlbmd0aDsgfQorICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxBcnJheUJ1ZmZlclZp
ZXc+IHNsaWNlKGludCwgaW50KSBjb25zdCB7IHJldHVybiAwOyB9CisKKyAgICBjaGFyIGdldElu
dDgodW5zaWduZWQgYnl0ZU9mZnNldCwgRXhjZXB0aW9uQ29kZSYpOworICAgIHVuc2lnbmVkIGNo
YXIgZ2V0VWludDgodW5zaWduZWQgYnl0ZU9mZnNldCwgRXhjZXB0aW9uQ29kZSYpOworICAgIHNo
b3J0IGdldEludDE2KHVuc2lnbmVkIGJ5dGVPZmZzZXQsIEV4Y2VwdGlvbkNvZGUmIGVjKSB7IHJl
dHVybiBnZXRJbnQxNihieXRlT2Zmc2V0LCBmYWxzZSwgZWMpOyB9CisgICAgc2hvcnQgZ2V0SW50
MTYodW5zaWduZWQgYnl0ZU9mZnNldCwgYm9vbCBsaXR0bGVFbmRpYW4sIEV4Y2VwdGlvbkNvZGUm
KTsKKyAgICB1bnNpZ25lZCBzaG9ydCBnZXRVaW50MTYodW5zaWduZWQgYnl0ZU9mZnNldCwgRXhj
ZXB0aW9uQ29kZSYgZWMpIHsgcmV0dXJuIGdldFVpbnQxNihieXRlT2Zmc2V0LCBmYWxzZSwgZWMp
OyB9CisgICAgdW5zaWduZWQgc2hvcnQgZ2V0VWludDE2KHVuc2lnbmVkIGJ5dGVPZmZzZXQsIGJv
b2wgbGl0dGxlRW5kaWFuLCBFeGNlcHRpb25Db2RlJik7CisgICAgaW50IGdldEludDMyKHVuc2ln
bmVkIGJ5dGVPZmZzZXQsIEV4Y2VwdGlvbkNvZGUmIGVjKSB7IHJldHVybiBnZXRJbnQzMihieXRl
T2Zmc2V0LCBmYWxzZSwgZWMpOyB9CisgICAgaW50IGdldEludDMyKHVuc2lnbmVkIGJ5dGVPZmZz
ZXQsIGJvb2wgbGl0dGxlRW5kaWFuLCBFeGNlcHRpb25Db2RlJik7CisgICAgdW5zaWduZWQgZ2V0
VWludDMyKHVuc2lnbmVkIGJ5dGVPZmZzZXQsIEV4Y2VwdGlvbkNvZGUmIGVjKSB7IHJldHVybiBn
ZXRVaW50MzIoYnl0ZU9mZnNldCwgZmFsc2UsIGVjKTsgfQorICAgIHVuc2lnbmVkIGdldFVpbnQz
Mih1bnNpZ25lZCBieXRlT2Zmc2V0LCBib29sIGxpdHRsZUVuZGlhbiwgRXhjZXB0aW9uQ29kZSYp
OworICAgIGZsb2F0IGdldEZsb2F0MzIodW5zaWduZWQgYnl0ZU9mZnNldCwgRXhjZXB0aW9uQ29k
ZSYgZWMpIHsgcmV0dXJuIGdldEZsb2F0MzIoYnl0ZU9mZnNldCwgZmFsc2UsIGVjKTsgfQorICAg
IGZsb2F0IGdldEZsb2F0MzIodW5zaWduZWQgYnl0ZU9mZnNldCwgYm9vbCBsaXR0bGVFbmRpYW4s
IEV4Y2VwdGlvbkNvZGUmKTsKKyAgICBkb3VibGUgZ2V0RmxvYXQ2NCh1bnNpZ25lZCBieXRlT2Zm
c2V0LCBFeGNlcHRpb25Db2RlJiBlYykgeyByZXR1cm4gZ2V0RmxvYXQ2NChieXRlT2Zmc2V0LCBm
YWxzZSwgZWMpOyB9CisgICAgZG91YmxlIGdldEZsb2F0NjQodW5zaWduZWQgYnl0ZU9mZnNldCwg
Ym9vbCBsaXR0bGVFbmRpYW4sIEV4Y2VwdGlvbkNvZGUmKTsKKworICAgIHZvaWQgc2V0SW50OCh1
bnNpZ25lZCBieXRlT2Zmc2V0LCBjaGFyIHZhbHVlLCBFeGNlcHRpb25Db2RlJik7CisgICAgdm9p
ZCBzZXRVaW50OCh1bnNpZ25lZCBieXRlT2Zmc2V0LCB1bnNpZ25lZCBjaGFyIHZhbHVlLCBFeGNl
cHRpb25Db2RlJik7CisgICAgdm9pZCBzZXRJbnQxNih1bnNpZ25lZCBieXRlT2Zmc2V0LCBzaG9y
dCB2YWx1ZSwgRXhjZXB0aW9uQ29kZSYgZWMpIHsgc2V0SW50MTYoYnl0ZU9mZnNldCwgdmFsdWUs
IGZhbHNlLCBlYyk7IH0KKyAgICB2b2lkIHNldEludDE2KHVuc2lnbmVkIGJ5dGVPZmZzZXQsIHNo
b3J0IHZhbHVlLCBib29sIGxpdHRsZUVuZGlhbiwgRXhjZXB0aW9uQ29kZSYpOworICAgIHZvaWQg
c2V0VWludDE2KHVuc2lnbmVkIGJ5dGVPZmZzZXQsIHVuc2lnbmVkIHNob3J0IHZhbHVlLCBFeGNl
cHRpb25Db2RlJiBlYykgeyBzZXRVaW50MTYoYnl0ZU9mZnNldCwgdmFsdWUsIGZhbHNlLCBlYyk7
IH0KKyAgICB2b2lkIHNldFVpbnQxNih1bnNpZ25lZCBieXRlT2Zmc2V0LCB1bnNpZ25lZCBzaG9y
dCB2YWx1ZSwgYm9vbCBsaXR0bGVFbmRpYW4sIEV4Y2VwdGlvbkNvZGUmKTsKKyAgICB2b2lkIHNl
dEludDMyKHVuc2lnbmVkIGJ5dGVPZmZzZXQsIGludCB2YWx1ZSwgRXhjZXB0aW9uQ29kZSYgZWMp
IHsgc2V0SW50MzIoYnl0ZU9mZnNldCwgdmFsdWUsIGZhbHNlLCBlYyk7IH0gCisgICAgdm9pZCBz
ZXRJbnQzMih1bnNpZ25lZCBieXRlT2Zmc2V0LCBpbnQgdmFsdWUsIGJvb2wgbGl0dGxlRW5kaWFu
LCBFeGNlcHRpb25Db2RlJik7CisgICAgdm9pZCBzZXRVaW50MzIodW5zaWduZWQgYnl0ZU9mZnNl
dCwgdW5zaWduZWQgdmFsdWUsIEV4Y2VwdGlvbkNvZGUmIGVjKSB7IHNldFVpbnQzMihieXRlT2Zm
c2V0LCB2YWx1ZSwgZmFsc2UsIGVjKTsgfQorICAgIHZvaWQgc2V0VWludDMyKHVuc2lnbmVkIGJ5
dGVPZmZzZXQsIHVuc2lnbmVkIHZhbHVlLCBib29sIGxpdHRsZUVuZGlhbiwgRXhjZXB0aW9uQ29k
ZSYpOworICAgIHZvaWQgc2V0RmxvYXQzMih1bnNpZ25lZCBieXRlT2Zmc2V0LCBmbG9hdCB2YWx1
ZSwgRXhjZXB0aW9uQ29kZSYgZWMpIHsgc2V0RmxvYXQzMihieXRlT2Zmc2V0LCB2YWx1ZSwgZmFs
c2UsIGVjKTsgfQorICAgIHZvaWQgc2V0RmxvYXQzMih1bnNpZ25lZCBieXRlT2Zmc2V0LCBmbG9h
dCB2YWx1ZSwgYm9vbCBsaXR0bGVFbmRpYW4sIEV4Y2VwdGlvbkNvZGUmKTsKKyAgICB2b2lkIHNl
dEZsb2F0NjQodW5zaWduZWQgYnl0ZU9mZnNldCwgZG91YmxlIHZhbHVlLCBFeGNlcHRpb25Db2Rl
JiBlYykgeyBzZXRGbG9hdDY0KGJ5dGVPZmZzZXQsIHZhbHVlLCBmYWxzZSwgZWMpOyB9CisgICAg
dm9pZCBzZXRGbG9hdDY0KHVuc2lnbmVkIGJ5dGVPZmZzZXQsIGRvdWJsZSB2YWx1ZSwgYm9vbCBs
aXR0bGVFbmRpYW4sIEV4Y2VwdGlvbkNvZGUmKTsKKworcHJpdmF0ZToKKyAgICBEYXRhVmlldyhQ
YXNzUmVmUHRyPEFycmF5QnVmZmVyPiwgdW5zaWduZWQgYnl0ZU9mZnNldCwgdW5zaWduZWQgYnl0
ZUxlbmd0aCk7CisKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBUPgorICAgIGlubGluZSBib29sIGJl
eW9uZFJhbmdlKHVuc2lnbmVkIGJ5dGVPZmZzZXQpIGNvbnN0IHsgcmV0dXJuIGJ5dGVPZmZzZXQg
KyBzaXplb2YoVCkgPiBtX2J5dGVMZW5ndGg7IH0KKworICAgIHRlbXBsYXRlPHR5cGVuYW1lIFQ+
CisgICAgVCBnZXREYXRhKHVuc2lnbmVkIGJ5dGVPZmZzZXQsIGJvb2wgbGl0dGxlRW5kaWFuLCBF
eGNlcHRpb25Db2RlJikgY29uc3Q7CisKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBUPgorICAgIHZv
aWQgc2V0RGF0YSh1bnNpZ25lZCBieXRlT2Zmc2V0LCBUIHZhbHVlLCBib29sIGxpdHRsZUVuZGlh
biwgRXhjZXB0aW9uQ29kZSYpOworCisgICAgdW5zaWduZWQgbV9ieXRlTGVuZ3RoOworfTsKKwor
Cit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBEYXRhVmlld19oCmRpZmYgLS1n
aXQgYS9XZWJDb3JlL2h0bWwvY2FudmFzL0RhdGFWaWV3LmlkbCBiL1dlYkNvcmUvaHRtbC9jYW52
YXMvRGF0YVZpZXcuaWRsCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmJlZjg4
MDUKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJDb3JlL2h0bWwvY2FudmFzL0RhdGFWaWV3LmlkbApA
QCAtMCwwICsxLDgzIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEwIEdvb2dsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFy
ZSBtZXQ6CisgKgorICogMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyIGluIHRoZQorICogICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBBUFBMRSBBTkQgSVRTIENPTlRSSUJVVE9SUyAiQVMgSVMiIEFORCBB
TlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywgVEhFIElNUExJRUQKKyAqIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZ
IEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKKyAqIERJU0NMQUlNRUQu
IElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZP
UiBBTlkKKyAqIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFS
WSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTCisgKiAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7CisgKiBM
T1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQKKyAqIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0Ug
T0YKKyAqIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCisgKi8KKworbW9kdWxlIGh0bWwgeworCisgICAgaW50ZXJmYWNlIFsK
KyAgICAgICAgQ29uZGl0aW9uYWw9M0RfQ0FOVkFTfEJMT0IsCisgICAgICAgIENhbkJlQ29uc3Ry
dWN0ZWQsCisgICAgICAgIEN1c3RvbUNvbnN0cnVjdEZ1bmN0aW9uLAorICAgICAgICBDdXN0b21U
b0pTLAorICAgICAgICBOb1N0YXRpY1RhYmxlcywKKyAgICAgICAgVjhDdXN0b21Db25zdHJ1Y3Rv
cgorICAgIF0gRGF0YVZpZXcgOiBBcnJheUJ1ZmZlclZpZXcgeworICAgICAgICAvLyBBbGwgdGhl
c2UgbWV0aG9kcyByYWlzZSBhbiBleGNlcHRpb24gaWYgdGhleSB3b3VsZCByZWFkIG9yIHdyaXRl
IGJleW9uZCB0aGUgZW5kIG9mIHRoZSB2aWV3LgorCisgICAgICAgIC8vIFdlIGhhdmUgdG8gdXNl
IGN1c3RvbSBjb2RlIGJlY2F1c2Ugb3VyIGNvZGUgZ2VuZXJhdG9yIGRvZXMgbm90IHN1cHBvcnQg
Y2hhciB0eXBlLgorICAgICAgICAvLyBjaGFyIGdldEludDgoaW4gdW5zaWduZWQgbG9uZyBieXRl
T2Zmc2V0KTsKKyAgICAgICAgLy8gdW5zaWduZWQgY2hhciBnZXRVaW50OChpbiB1bnNpZ25lZCBs
b25nIGJ5dGVPZmZzZXQpOworICAgICAgICBbQ3VzdG9tXSBET01PYmplY3QgZ2V0SW50OCgpCisg
ICAgICAgICAgICByYWlzZXMgKERPTUV4Y2VwdGlvbik7CisgICAgICAgIFtDdXN0b21dIERPTU9i
amVjdCBnZXRVaW50OCgpCisgICAgICAgICAgICByYWlzZXMgKERPTUV4Y2VwdGlvbik7CisKKyAg
ICAgICAgW1N0cmljdFR5cGVDaGVja2luZywgUmVxdWlyZXNBbGxBcmd1bWVudHM9UmFpc2VdIHNo
b3J0IGdldEludDE2KGluIHVuc2lnbmVkIGxvbmcgYnl0ZU9mZnNldCwgaW4gW09wdGlvbmFsXSBi
b29sZWFuIGxpdHRsZUVuZGlhbikKKyAgICAgICAgICAgIHJhaXNlcyAoRE9NRXhjZXB0aW9uKTsK
KyAgICAgICAgW1N0cmljdFR5cGVDaGVja2luZywgUmVxdWlyZXNBbGxBcmd1bWVudHM9UmFpc2Vd
IHVuc2lnbmVkIHNob3J0IGdldFVpbnQxNihpbiB1bnNpZ25lZCBsb25nIGJ5dGVPZmZzZXQsIGlu
IFtPcHRpb25hbF0gYm9vbGVhbiBsaXR0bGVFbmRpYW4pCisgICAgICAgICAgICByYWlzZXMgKERP
TUV4Y2VwdGlvbik7CisgICAgICAgIFtTdHJpY3RUeXBlQ2hlY2tpbmcsIFJlcXVpcmVzQWxsQXJn
dW1lbnRzPVJhaXNlXSBsb25nIGdldEludDMyKGluIHVuc2lnbmVkIGxvbmcgYnl0ZU9mZnNldCwg
aW4gW09wdGlvbmFsXSBib29sZWFuIGxpdHRsZUVuZGlhbikKKyAgICAgICAgICAgIHJhaXNlcyAo
RE9NRXhjZXB0aW9uKTsKKyAgICAgICAgW1N0cmljdFR5cGVDaGVja2luZywgUmVxdWlyZXNBbGxB
cmd1bWVudHM9UmFpc2VdIHVuc2lnbmVkIGxvbmcgZ2V0VWludDMyKGluIHVuc2lnbmVkIGxvbmcg
Ynl0ZU9mZnNldCwgaW4gW09wdGlvbmFsXSBib29sZWFuIGxpdHRsZUVuZGlhbikKKyAgICAgICAg
ICAgIHJhaXNlcyAoRE9NRXhjZXB0aW9uKTsKKworICAgICAgICAvLyBVc2UgY3VzdG9tIGNvZGUg
dG8gaGFuZGxlIE5hTiBjYXNlIGZvciBKU0MuCisgICAgICAgIFtKU0NDdXN0b20sIFN0cmljdFR5
cGVDaGVja2luZywgUmVxdWlyZXNBbGxBcmd1bWVudHM9UmFpc2VdIGZsb2F0IGdldEZsb2F0MzIo
aW4gdW5zaWduZWQgbG9uZyBieXRlT2Zmc2V0LCBpbiBbT3B0aW9uYWxdIGJvb2xlYW4gbGl0dGxl
RW5kaWFuKQorICAgICAgICAgICAgcmFpc2VzIChET01FeGNlcHRpb24pOworICAgICAgICBbSlND
Q3VzdG9tLCBTdHJpY3RUeXBlQ2hlY2tpbmcsIFJlcXVpcmVzQWxsQXJndW1lbnRzPVJhaXNlXSBk
b3VibGUgZ2V0RmxvYXQ2NChpbiB1bnNpZ25lZCBsb25nIGJ5dGVPZmZzZXQsIGluIFtPcHRpb25h
bF0gYm9vbGVhbiBsaXR0bGVFbmRpYW4pCisgICAgICAgICAgICByYWlzZXMgKERPTUV4Y2VwdGlv
bik7CisKKyAgICAgICAgLy8gV2UgaGF2ZSB0byB1c2UgY3VzdG9tIGNvZGUgYmVjYXVzZSBvdXIg
Y29kZSBnZW5lcmF0b3IgZG9lcyBub3Qgc3VwcG9ydCBjaGFyIHR5cGUuCisgICAgICAgIC8vIHZv
aWQgc2V0SW50OChpbiB1bnNpZ25lZCBsb25nIGJ5dGVPZmZzZXQsIGluIGJ5dGUgdmFsdWUpOwor
ICAgICAgICAvLyB2b2lkIHNldFVpbnQ4KGluIHVuc2lnbmVkIGxvbmcgYnl0ZU9mZnNldCwgaW4g
dW5zaWduZWQgYnl0ZSB2YWx1ZSk7CisgICAgICAgIFtDdXN0b21dIHZvaWQgc2V0SW50OCgpCisg
ICAgICAgICAgICByYWlzZXMgKERPTUV4Y2VwdGlvbik7CisgICAgICAgIFtDdXN0b21dIHZvaWQg
c2V0VWludDgoKQorICAgICAgICAgICAgcmFpc2VzIChET01FeGNlcHRpb24pOworCisgICAgICAg
IFtTdHJpY3RUeXBlQ2hlY2tpbmcsIFJlcXVpcmVzQWxsQXJndW1lbnRzPVJhaXNlXSB2b2lkIHNl
dEludDE2KGluIHVuc2lnbmVkIGxvbmcgYnl0ZU9mZnNldCwgaW4gc2hvcnQgdmFsdWUsIGluIFtP
cHRpb25hbF0gYm9vbGVhbiBsaXR0bGVFbmRpYW4pCisgICAgICAgICAgICByYWlzZXMgKERPTUV4
Y2VwdGlvbik7CisgICAgICAgIFtTdHJpY3RUeXBlQ2hlY2tpbmcsIFJlcXVpcmVzQWxsQXJndW1l
bnRzPVJhaXNlXSB2b2lkIHNldFVpbnQxNihpbiB1bnNpZ25lZCBsb25nIGJ5dGVPZmZzZXQsIGlu
IHVuc2lnbmVkIHNob3J0IHZhbHVlLCBpbiBbT3B0aW9uYWxdIGJvb2xlYW4gbGl0dGxlRW5kaWFu
KQorICAgICAgICAgICAgcmFpc2VzIChET01FeGNlcHRpb24pOworICAgICAgICBbU3RyaWN0VHlw
ZUNoZWNraW5nLCBSZXF1aXJlc0FsbEFyZ3VtZW50cz1SYWlzZV0gdm9pZCBzZXRJbnQzMihpbiB1
bnNpZ25lZCBsb25nIGJ5dGVPZmZzZXQsIGluIGxvbmcgdmFsdWUsIGluIFtPcHRpb25hbF0gYm9v
bGVhbiBsaXR0bGVFbmRpYW4pCisgICAgICAgICAgICByYWlzZXMgKERPTUV4Y2VwdGlvbik7Cisg
ICAgICAgIFtTdHJpY3RUeXBlQ2hlY2tpbmcsIFJlcXVpcmVzQWxsQXJndW1lbnRzPVJhaXNlXSB2
b2lkIHNldFVpbnQzMihpbiB1bnNpZ25lZCBsb25nIGJ5dGVPZmZzZXQsIGluIHVuc2lnbmVkIGxv
bmcgdmFsdWUsIGluIFtPcHRpb25hbF0gYm9vbGVhbiBsaXR0bGVFbmRpYW4pCisgICAgICAgICAg
ICByYWlzZXMgKERPTUV4Y2VwdGlvbik7CisgICAgICAgIFtTdHJpY3RUeXBlQ2hlY2tpbmcsIFJl
cXVpcmVzQWxsQXJndW1lbnRzPVJhaXNlXSB2b2lkIHNldEZsb2F0MzIoaW4gdW5zaWduZWQgbG9u
ZyBieXRlT2Zmc2V0LCBpbiBmbG9hdCB2YWx1ZSwgaW4gW09wdGlvbmFsXSBib29sZWFuIGxpdHRs
ZUVuZGlhbikKKyAgICAgICAgICAgIHJhaXNlcyAoRE9NRXhjZXB0aW9uKTsKKyAgICAgICAgW1N0
cmljdFR5cGVDaGVja2luZywgUmVxdWlyZXNBbGxBcmd1bWVudHM9UmFpc2VdIHZvaWQgc2V0Rmxv
YXQ2NChpbiB1bnNpZ25lZCBsb25nIGJ5dGVPZmZzZXQsIGluIGRvdWJsZSB2YWx1ZSwgaW4gW09w
dGlvbmFsXSBib29sZWFuIGxpdHRsZUVuZGlhbikKKyAgICAgICAgICAgIHJhaXNlcyAoRE9NRXhj
ZXB0aW9uKTsKKyAgICB9OworCit9CmRpZmYgLS1naXQgYS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93
LmlkbCBiL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuaWRsCmluZGV4IDBiOWY1ZWQuLmUzMmNiNzkg
MTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuaWRsCisrKyBiL1dlYkNvcmUvcGFn
ZS9ET01XaW5kb3cuaWRsCkBAIC00OTgsNiArNDk4LDcgQEAgbW9kdWxlIHdpbmRvdyB7CiAgICAg
ICAgIGF0dHJpYnV0ZSBbSlNDQ3VzdG9tR2V0dGVyLENvbmRpdGlvbmFsPTNEX0NBTlZBU3xCTE9C
LEVuYWJsZWRBdFJ1bnRpbWVdIEludDMyQXJyYXlDb25zdHJ1Y3RvciBJbnQzMkFycmF5OyAvLyBV
c2FibGUgd2l0aCBuZXcgb3BlcmF0b3IKICAgICAgICAgYXR0cmlidXRlIFtKU0NDdXN0b21HZXR0
ZXIsQ29uZGl0aW9uYWw9M0RfQ0FOVkFTfEJMT0IsRW5hYmxlZEF0UnVudGltZV0gVWludDMyQXJy
YXlDb25zdHJ1Y3RvciBVaW50MzJBcnJheTsgLy8gVXNhYmxlIHdpdGggbmV3IG9wZXJhdG9yCiAg
ICAgICAgIGF0dHJpYnV0ZSBbSlNDQ3VzdG9tR2V0dGVyLENvbmRpdGlvbmFsPTNEX0NBTlZBU3xC
TE9CLEVuYWJsZWRBdFJ1bnRpbWVdIEZsb2F0MzJBcnJheUNvbnN0cnVjdG9yIEZsb2F0MzJBcnJh
eTsgLy8gVXNhYmxlIHdpdGggbmV3IG9wZXJhdG9yCisgICAgICAgIGF0dHJpYnV0ZSBbSlNDQ3Vz
dG9tR2V0dGVyLENvbmRpdGlvbmFsPTNEX0NBTlZBU3xCTE9CLEVuYWJsZWRBdFJ1bnRpbWVdIERh
dGFWaWV3Q29uc3RydWN0b3IgRGF0YVZpZXc7IC8vIFVzYWJsZSB3aXRoIG5ldyBvcGVyYXRvcgog
CiAgICAgICAgIGF0dHJpYnV0ZSBFdmVudENvbnN0cnVjdG9yIEV2ZW50OwogICAgICAgICBhdHRy
aWJ1dGUgQmVmb3JlTG9hZEV2ZW50Q29uc3RydWN0b3IgQmVmb3JlTG9hZEV2ZW50Owo=
</data>
<flag name="review"
          id="65507"
          type_id="1"
          status="+"
          setter="kbr"
    />
    <flag name="commit-queue"
          id="65508"
          type_id="3"
          status="-"
          setter="jianli"
    />
          </attachment>
      

    </bug>

</bugzilla>