<?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>95964</bug_id>
          
          <creation_ts>2012-09-06 03:08:25 -0700</creation_ts>
          <short_desc>Apply the resolved viewport rules</short_desc>
          <delta_ts>2012-11-19 08:37:48 -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>CSS</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>WebExposed</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>95959</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Thiago Marcos P. Santos">tmpsantos</reporter>
          <assigned_to name="Thiago Marcos P. Santos">tmpsantos</assigned_to>
          <cc>abarth</cc>
    
    <cc>allan.jensen</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>donggwan.kim</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>haraken</cc>
    
    <cc>japhet</cc>
    
    <cc>kenneth</cc>
    
    <cc>macpherson</cc>
    
    <cc>menard</cc>
    
    <cc>ojan</cc>
    
    <cc>rakuco</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>713108</commentid>
    <comment_count>0</comment_count>
    <who name="Thiago Marcos P. Santos">tmpsantos</who>
    <bug_when>2012-09-06 03:08:25 -0700</bug_when>
    <thetext>At this point, we should resolve all the constraints, cascading, etc. The initial scaled, max and min zoom levels, etc are signaled and reflected on the UI.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>763419</commentid>
    <comment_count>1</comment_count>
      <attachid>173389</attachid>
    <who name="Thiago Marcos P. Santos">tmpsantos</who>
    <bug_when>2012-11-09 16:06:25 -0800</bug_when>
    <thetext>Created attachment 173389
WIP

This patch passes most of the tests submitted by Opera (31 out of 34) on Qt and EFL. Needs a lot of cleanup though.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>763423</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-11-09 16:09:08 -0800</bug_when>
    <thetext>Attachment 173389 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;Source/WebCore/CMakeLists.txt&apos;, u&apos;Source/W...&quot; exit_code: 1
Source/WebCore/css/ViewportStyleResolver.cpp:75:  Omit int when using unsigned  [runtime/unsigned] [1]
Source/WebCore/css/ViewportStyleResolver.cpp:156:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
Total errors found: 2 in 24 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>763824</commentid>
    <comment_count>3</comment_count>
      <attachid>173389</attachid>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2012-11-11 05:22:41 -0800</bug_when>
    <thetext>Comment on attachment 173389
WIP

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

&gt; Source/WebCore/css/RuleSet.cpp:353
&gt; +        else if (rule-&gt;isViewportRule() &amp;&amp; resolver) {
&gt; +            if (scope)
&gt; +                continue;

other if (scope) have comments. Maybe one would be good here

&gt; Source/WebCore/css/ViewportStyleResolver.cpp:77
&gt; +    // FIXME: This is wrong.
&gt; +    for (unsigned int i = 0; i &lt; propertySet-&gt;propertyCount(); i++)
&gt; +        m_propertySet-&gt;addParsedProperty(propertySet-&gt;propertyAt(i).toCSSProperty());
&gt; +}

Bad comment, why is it wrong? :) btw it is &quot;unsigned&quot; and not &quot;unsigned int&quot;

&gt; Source/WebCore/css/ViewportStyleResolver.h:67
&gt; +    float m_initialViewportWidth;
&gt; +    float m_initialViewportHeight;

FloatSize ?

&gt; Source/WebCore/dom/ViewportArguments.cpp:47
&gt; +static float maxIgnoreAuto(const float value1, const float value2)

Ignoring?

&gt; Source/WebCore/dom/ViewportArguments.cpp:112
&gt;      }
&gt;  
&gt; +    if (args.type == ViewportArguments::CSSDeviceAdaptation) {
&gt; +        switch (int(args.minWidth)) {
&gt; +        case ViewportArguments::ValueDeviceWidth:
&gt; +            args.minWidth = desktopWidth;
&gt; +            break;

We need to refactor ViewportArguments into a proper class. I suggest renaming it to ViewportDescription

&gt; Source/WebCore/dom/ViewportArguments.h:90
&gt;          , userScalable(ValueAuto)

userZoom? Can be another patch

&gt; Source/WebCore/dom/ViewportArguments.h:114
&gt;              &amp;&amp; maximumScale == other.maximumScale
&gt;              &amp;&amp; width == other.width

We should really rename maximumScale to maxZoom. Could be another patch

&gt; Source/WebKit2/WebProcess/WebPage/WebPage.cpp:1039
&gt;  
&gt; -     m_viewportSize = size;
&gt; -
&gt; +    m_viewportSize = size;
&gt;      sendViewportAttributesChanged();
&gt;  }

separate patch?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>763831</commentid>
    <comment_count>4</comment_count>
      <attachid>173389</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2012-11-11 05:43:42 -0800</bug_when>
    <thetext>Comment on attachment 173389
WIP

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

&gt; Source/WebCore/css/StyleResolver.h:251
&gt; +    ViewportStyleResolver* viewportStyleResolver() const { return m_viewportStyleResolver.get(); }

Should probably not be const as per recent coding style update.

&gt; Source/WebCore/css/ViewportStyleResolver.cpp:66
&gt; +    if (!propertySet)

This null check seems useless. StyleRuleViewport::mutableProperties() already makes the assumption that m_properties is non null by calling in its implementation:
if (!m_properties-&gt;isMutable())

&gt;&gt; Source/WebCore/css/ViewportStyleResolver.cpp:75
&gt;&gt; +    for (unsigned int i = 0; i &lt; propertySet-&gt;propertyCount(); i++)
&gt; 
&gt; Omit int when using unsigned  [runtime/unsigned] [1]

We should use:
* &quot;unsigned int&quot; -&gt; &quot;unsigned&quot;
* preincrement instead of postincrement
* cache propertySet-&gt;propertyCount() before the for loop

&gt; Source/WebCore/css/ViewportStyleResolver.h:59
&gt; +    ViewportStyleResolver(Document*);

constructor could use explicit here.

&gt; Source/WebCore/dom/Document.h:326
&gt; +    void setViewportArguments(const ViewportArguments &amp;viewportArguments) { m_viewportArguments = viewportArguments; }

&quot;const ViewportArguments&amp; viewportArguments&quot; is the right coding style I believe (space after the &amp;)

&gt; Source/WebCore/page/DOMWindow.idl:348
&gt; +    attribute WebKitCSSViewportRuleConstructor WebKitCSSViwportRule;

WebKitCSSViwportRule -&gt; WebKitCSSViewportRule ?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>764674</commentid>
    <comment_count>5</comment_count>
      <attachid>173689</attachid>
    <who name="Thiago Marcos P. Santos">tmpsantos</who>
    <bug_when>2012-11-12 12:36:52 -0800</bug_when>
    <thetext>Created attachment 173689
WIP v2</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>764692</commentid>
    <comment_count>6</comment_count>
      <attachid>173689</attachid>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2012-11-12 12:46:41 -0800</bug_when>
    <thetext>Comment on attachment 173689
WIP v2

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

&gt; Source/WebCore/css/ViewportStyleResolver.cpp:53
&gt; +    float deviceScaleFactor = 0;

why not just = 1?

&gt; Source/WebCore/css/ViewportStyleResolver.cpp:57
&gt; +    if (deviceScaleFactor &amp;&amp; deviceScaleFactor != 1)

avoid the first check</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>764831</commentid>
    <comment_count>7</comment_count>
      <attachid>173689</attachid>
    <who name="Thiago Marcos P. Santos">tmpsantos</who>
    <bug_when>2012-11-12 14:25:10 -0800</bug_when>
    <thetext>Comment on attachment 173689
WIP v2

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

&gt;&gt; Source/WebCore/css/ViewportStyleResolver.cpp:57
&gt;&gt; +    if (deviceScaleFactor &amp;&amp; deviceScaleFactor != 1)
&gt; 
&gt; avoid the first check

Indeed. :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>769329</commentid>
    <comment_count>8</comment_count>
      <attachid>174701</attachid>
    <who name="Thiago Marcos P. Santos">tmpsantos</who>
    <bug_when>2012-11-16 08:53:37 -0800</bug_when>
    <thetext>Created attachment 174701
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>769337</commentid>
    <comment_count>9</comment_count>
      <attachid>174703</attachid>
    <who name="Thiago Marcos P. Santos">tmpsantos</who>
    <bug_when>2012-11-16 09:02:18 -0800</bug_when>
    <thetext>Created attachment 174703
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>770152</commentid>
    <comment_count>10</comment_count>
      <attachid>174703</attachid>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2012-11-18 10:35:21 -0800</bug_when>
    <thetext>Comment on attachment 174703
Patch

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

&gt; Source/WebCore/css/ViewportStyleResolver.cpp:58
&gt; +    if (deviceScaleFactor != 1)
&gt; +        m_initialViewportSize.scale(1.f / deviceScaleFactor);

Why does these have to be divided? The viewport should already be in css units. Since you are not testing this anyway, I would remove it from this patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>770750</commentid>
    <comment_count>11</comment_count>
      <attachid>174981</attachid>
    <who name="Thiago Marcos P. Santos">tmpsantos</who>
    <bug_when>2012-11-19 07:47:39 -0800</bug_when>
    <thetext>Created attachment 174981
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>770781</commentid>
    <comment_count>12</comment_count>
      <attachid>174981</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-11-19 08:37:42 -0800</bug_when>
    <thetext>Comment on attachment 174981
Patch

Clearing flags on attachment: 174981

Committed r135163: &lt;http://trac.webkit.org/changeset/135163&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>770782</commentid>
    <comment_count>13</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-11-19 08:37:48 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>173389</attachid>
            <date>2012-11-09 16:06:25 -0800</date>
            <delta_ts>2012-11-12 12:36:52 -0800</delta_ts>
            <desc>WIP</desc>
            <filename>wip.patch</filename>
            <type>text/plain</type>
            <size>41410</size>
            <attacher name="Thiago Marcos P. Santos">tmpsantos</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0IGIvU291cmNlL1dlYkNv
cmUvQ01ha2VMaXN0cy50eHQKaW5kZXggZDBkNTY4OC4uNjg3NDJmMiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKKysrIGIvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0
cy50eHQKQEAgLTMzNiw2ICszMzYsNyBAQCBTRVQoV2ViQ29yZV9JRExfRklMRVMKICAgICBjc3Mv
V2ViS2l0Q1NTTWF0cml4LmlkbAogICAgIGNzcy9XZWJLaXRDU1NSZWdpb25SdWxlLmlkbAogICAg
IGNzcy9XZWJLaXRDU1NUcmFuc2Zvcm1WYWx1ZS5pZGwKKyAgICBjc3MvV2ViS2l0Q1NTVmlld3Bv
cnRSdWxlLmlkbAogCiAgICAgZG9tL0F0dHIuaWRsCiAgICAgZG9tL0JlZm9yZUxvYWRFdmVudC5p
ZGwKQEAgLTEwOTIsNiArMTA5Myw3IEBAIFNFVChXZWJDb3JlX1NPVVJDRVMKICAgICBjc3MvU1ZH
Q1NTQ29tcHV0ZWRTdHlsZURlY2xhcmF0aW9uLmNwcAogICAgIGNzcy9TVkdDU1NQYXJzZXIuY3Bw
CiAgICAgY3NzL1NWR0NTU1N0eWxlU2VsZWN0b3IuY3BwCisgICAgY3NzL1ZpZXdwb3J0U3R5bGVS
ZXNvbHZlci5jcHAKICAgICBjc3MvV2ViS2l0Q1NTRmlsdGVyVmFsdWUuY3BwCiAgICAgY3NzL1dl
YktpdENTU0tleWZyYW1lUnVsZS5jcHAKICAgICBjc3MvV2ViS2l0Q1NTS2V5ZnJhbWVzUnVsZS5j
cHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UgYi9Tb3Vy
Y2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtlCmluZGV4IDRjNjRjODkuLjFlMDc2MWYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UKKysrIGIvU291cmNl
L1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZQpAQCAtMTk2LDYgKzE5Niw3IEBAIEJJTkRJTkdf
SURMUyA9IFwKICAgICAkKFdlYkNvcmUpL2Nzcy9XZWJLaXRDU1NNYXRyaXguaWRsIFwKICAgICAk
KFdlYkNvcmUpL2Nzcy9XZWJLaXRDU1NSZWdpb25SdWxlLmlkbCBcCiAgICAgJChXZWJDb3JlKS9j
c3MvV2ViS2l0Q1NTVHJhbnNmb3JtVmFsdWUuaWRsIFwKKyAgICAkKFdlYkNvcmUpL2Nzcy9XZWJL
aXRDU1NWaWV3cG9ydFJ1bGUuaWRsIFwKICAgICAkKFdlYkNvcmUpL2RvbS9BdHRyLmlkbCBcCiAg
ICAgJChXZWJDb3JlKS9kb20vQmVmb3JlTG9hZEV2ZW50LmlkbCBcCiAgICAgJChXZWJDb3JlKS9k
b20vQ0RBVEFTZWN0aW9uLmlkbCBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVk
U291cmNlcy5wcmkgYi9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5wcmkKaW5kZXggOTky
NGU4NS4uNDJiY2RkOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMu
cHJpCisrKyBiL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLnByaQpAQCAtMjExLDYgKzIx
MSw3IEBAIElETF9CSU5ESU5HUyArPSBcCiAgICAgJCRQV0QvY3NzL1dlYktpdENTU01hdHJpeC5p
ZGwgXAogICAgICQkUFdEL2Nzcy9XZWJLaXRDU1NSZWdpb25SdWxlLmlkbCBcCiAgICAgJCRQV0Qv
Y3NzL1dlYktpdENTU1RyYW5zZm9ybVZhbHVlLmlkbCBcCisgICAgJCRQV0QvY3NzL1dlYktpdENT
U1ZpZXdwb3J0UnVsZS5pZGwgXAogICAgICQkUFdEL2RvbS9BdHRyLmlkbCBcCiAgICAgJCRQV0Qv
ZG9tL0JlZm9yZUxvYWRFdmVudC5pZGwgXAogICAgICQkUFdEL2RvbS9DaGFyYWN0ZXJEYXRhLmlk
bCBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtIGIvU291
cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbQppbmRleCAzZGY5ZGQ5Li40Yjg5ZjM5IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0KQEAgLTExMTEsNiArMTExMSw4IEBAIHdlYmNv
cmVfYnVpbHRfc291cmNlcyArPSBcCiAJRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU1dlYktpdENT
U1JlZ2lvblJ1bGUuaCBcCiAJRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU1dlYktpdENTU1RyYW5z
Zm9ybVZhbHVlLmNwcCBcCiAJRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU1dlYktpdENTU1RyYW5z
Zm9ybVZhbHVlLmggXAorCURlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNXZWJLaXRDU1NWaWV3cG9y
dFJ1bGUuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTV2ViS2l0Q1NTVmlld3BvcnRS
dWxlLmggXAogCURlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNXZWJLaXROYW1lZEZsb3cuY3BwIFwK
IAlEZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTV2ViS2l0TmFtZWRGbG93LmggXAogCURlcml2ZWRT
b3VyY2VzL1dlYkNvcmUvSlNXZWJLaXRQb2ludC5jcHAgXApAQCAtMTMzOSw2ICsxMzQxLDcgQEAg
ZG9tX2JpbmRpbmdfaWRscyArPSBcCiAJJChXZWJDb3JlKS9jc3MvV2ViS2l0Q1NTTWF0cml4Lmlk
bCBcCiAJJChXZWJDb3JlKS9jc3MvV2ViS2l0Q1NTUmVnaW9uUnVsZS5pZGwgXAogCSQoV2ViQ29y
ZSkvY3NzL1dlYktpdENTU1RyYW5zZm9ybVZhbHVlLmlkbCBcCisJJChXZWJDb3JlKS9jc3MvV2Vi
S2l0Q1NTVmlld3BvcnRSdWxlLmlkbCBcCiAJJChXZWJDb3JlKS9kb20vQXR0ci5pZGwgXAogCSQo
V2ViQ29yZSkvZG9tL0JlZm9yZUxvYWRFdmVudC5pZGwgXAogCSQoV2ViQ29yZSkvZG9tL0NEQVRB
U2VjdGlvbi5pZGwgXApAQCAtMjY2MCw2ICsyNjYzLDggQEAgd2ViY29yZV9zb3VyY2VzICs9IFwK
IAlTb3VyY2UvV2ViQ29yZS9jc3MvU1ZHQ1NTQ29tcHV0ZWRTdHlsZURlY2xhcmF0aW9uLmNwcCBc
CiAJU291cmNlL1dlYkNvcmUvY3NzL1NWR0NTU1BhcnNlci5jcHAgXAogCVNvdXJjZS9XZWJDb3Jl
L2Nzcy9TVkdDU1NTdHlsZVNlbGVjdG9yLmNwcCBcCisJU291cmNlL1dlYkNvcmUvY3NzL1ZpZXdw
b3J0U3R5bGVSZXNvbHZlci5jcHAgXAorCVNvdXJjZS9XZWJDb3JlL2Nzcy9WaWV3cG9ydFN0eWxl
UmVzb2x2ZXIuaCBcCiAgICAgU291cmNlL1dlYkNvcmUvY3NzL1dlYktpdENTU0FycmF5RnVuY3Rp
b25WYWx1ZS5jcHAgXAogICAgIFNvdXJjZS9XZWJDb3JlL2Nzcy9XZWJLaXRDU1NBcnJheUZ1bmN0
aW9uVmFsdWUuaCBcCiAJU291cmNlL1dlYkNvcmUvY3NzL1dlYktpdENTU0ZpbHRlclZhbHVlLmNw
cCBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9UYXJnZXQucHJpIGIvU291cmNlL1dlYkNv
cmUvVGFyZ2V0LnByaQppbmRleCA3NDY2NWUxLi4zODI5ZTYyIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9UYXJnZXQucHJpCisrKyBiL1NvdXJjZS9XZWJDb3JlL1RhcmdldC5wcmkKQEAgLTMy
Nyw2ICszMjcsNyBAQCBTT1VSQ0VTICs9IFwKICAgICBjc3MvU3R5bGVTaGVldC5jcHAgXAogICAg
IGNzcy9TdHlsZVNoZWV0Q29udGVudHMuY3BwIFwKICAgICBjc3MvU3R5bGVTaGVldExpc3QuY3Bw
IFwKKyAgICBjc3MvVmlld3BvcnRTdHlsZVJlc29sdmVyLmNwcCBcCiAgICAgY3NzL1dlYktpdENT
U0FycmF5RnVuY3Rpb25WYWx1ZS5jcHAgXAogICAgIGNzcy9XZWJLaXRDU1NGaWx0ZXJWYWx1ZS5j
cHAgXAogICAgIGNzcy9XZWJLaXRDU1NLZXlmcmFtZVJ1bGUuY3BwIFwKQEAgLTE1MDQsNiArMTUw
NSw3IEBAIEhFQURFUlMgKz0gXAogICAgIGNzcy9TdHlsZVNoZWV0LmggXAogICAgIGNzcy9TdHls
ZVNoZWV0Q29udGVudHMuaCBcCiAgICAgY3NzL1N0eWxlU2hlZXRMaXN0LmggXAorICAgIGNzcy9W
aWV3cG9ydFN0eWxlUmVzb2x2ZXIuaCBcCiAgICAgY3NzL1dlYktpdENTU0FycmF5RnVuY3Rpb25W
YWx1ZS5oIFwKICAgICBjc3MvV2ViS2l0Q1NTRmlsdGVyVmFsdWUuaCBcCiAgICAgY3NzL1dlYktp
dENTU0tleWZyYW1lUnVsZS5oIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUu
Z3lwaSBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQppbmRleCBjNDY1NjA2Li5jMmM5NmZm
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKKysrIGIvU291cmNlL1dl
YkNvcmUvV2ViQ29yZS5neXBpCkBAIC05NzksNiArOTc5LDcgQEAKICAgICAgICAgICAgICdjc3Mv
V2ViS2l0Q1NTTWF0cml4LmlkbCcsCiAgICAgICAgICAgICAnY3NzL1dlYktpdENTU1JlZ2lvblJ1
bGUuaWRsJywKICAgICAgICAgICAgICdjc3MvV2ViS2l0Q1NTVHJhbnNmb3JtVmFsdWUuaWRsJywK
KyAgICAgICAgICAgICdjc3MvV2ViS2l0Q1NTVmlld3BvcnRSdWxlLmlkbCcsCiAgICAgICAgICAg
ICAnZG9tL0F0dHIuaWRsJywKICAgICAgICAgICAgICdkb20vQmVmb3JlTG9hZEV2ZW50LmlkbCcs
CiAgICAgICAgICAgICAnZG9tL0NEQVRBU2VjdGlvbi5pZGwnLApAQCAtMjY0Myw2ICsyNjQ0LDgg
QEAKICAgICAgICAgICAgICdjc3MvU3R5bGVTaGVldENvbnRlbnRzLmgnLAogICAgICAgICAgICAg
J2Nzcy9TdHlsZVNoZWV0TGlzdC5jcHAnLAogICAgICAgICAgICAgJ2Nzcy9TdHlsZVNoZWV0TGlz
dC5oJywKKyAgICAgICAgICAgICdjc3MvVmlld3BvcnRTdHlsZVJlc29sdmVyLmNwcCcsCisgICAg
ICAgICAgICAnY3NzL1ZpZXdwb3J0U3R5bGVSZXNvbHZlci5oJywKICAgICAgICAgICAgICdjc3Mv
V2ViS2l0Q1NTQXJyYXlGdW5jdGlvblZhbHVlLmNwcCcsCiAgICAgICAgICAgICAnY3NzL1dlYktp
dENTU0FycmF5RnVuY3Rpb25WYWx1ZS5oJywKICAgICAgICAgICAgICdjc3MvV2ViS2l0Q1NTRmls
dGVyVmFsdWUuY3BwJywKQEAgLTcyOTEsNiArNzI5NCw5IEBACiAgICAgICAgICAgICAnPChQUk9E
VUNUX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9ET01XZWJLaXRDU1NUcmFuc2Zvcm1WYWx1
ZS5oJywKICAgICAgICAgICAgICc8KFBST0RVQ1RfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3Jl
L0RPTVdlYktpdENTU1RyYW5zZm9ybVZhbHVlLm1tJywKICAgICAgICAgICAgICc8KFBST0RVQ1Rf
RElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0RPTVdlYktpdENTU1RyYW5zZm9ybVZhbHVlSW50
ZXJuYWwuaCcsCisgICAgICAgICAgICAnPChQUk9EVUNUX0RJUikvRGVyaXZlZFNvdXJjZXMvV2Vi
Q29yZS9ET01XZWJLaXRDU1NWaWV3cG9ydFJ1bGUuaCcsCisgICAgICAgICAgICAnPChQUk9EVUNU
X0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9ET01XZWJLaXRDU1NWaWV3cG9ydFJ1bGUubW0n
LAorICAgICAgICAgICAgJzwoUFJPRFVDVF9ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvRE9N
V2ViS2l0Q1NTVmlld3BvcnRSdWxlSW50ZXJuYWwuaCcsCiAgICAgICAgICAgICAnPChQUk9EVUNU
X0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9ET01XaGVlbEV2ZW50Lm1tJywKICAgICAgICAg
ICAgICc8KFBST0RVQ1RfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0RPTVdoZWVsRXZlbnRJ
bnRlcm5hbC5oJywKICAgICAgICAgICAgICc8KFBST0RVQ1RfRElSKS9EZXJpdmVkU291cmNlcy9X
ZWJDb3JlL0RPTVhQYXRoRXhwcmVzc2lvbi5tbScsCkBAIC04MzM5LDYgKzgzNDUsOCBAQAogICAg
ICAgICAgICAgJzwoUFJPRFVDVF9ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNXZWJLaXRD
U1NSZWdpb25SdWxlLmgnLAogICAgICAgICAgICAgJzwoUFJPRFVDVF9ESVIpL0Rlcml2ZWRTb3Vy
Y2VzL1dlYkNvcmUvSlNXZWJLaXRDU1NUcmFuc2Zvcm1WYWx1ZS5jcHAnLAogICAgICAgICAgICAg
JzwoUFJPRFVDVF9ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNXZWJLaXRDU1NUcmFuc2Zv
cm1WYWx1ZS5oJywKKyAgICAgICAgICAgICc8KFBST0RVQ1RfRElSKS9EZXJpdmVkU291cmNlcy9X
ZWJDb3JlL0pTV2ViS2l0Q1NTVmlld3BvcnRSdWxlLmNwcCcsCisgICAgICAgICAgICAnPChQUk9E
VUNUX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU1dlYktpdENTU1ZpZXdwb3J0UnVsZS5o
JywKICAgICAgICAgICAgICc8KFBST0RVQ1RfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pT
V2ViS2l0UG9pbnQuY3BwJywKICAgICAgICAgICAgICc8KFBST0RVQ1RfRElSKS9EZXJpdmVkU291
cmNlcy9XZWJDb3JlL0pTV2ViS2l0UG9pbnQuaCcsCiAgICAgICAgICAgICAnPChQUk9EVUNUX0RJ
UikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU1dlYktpdE5hbWVkRmxvdy5jcHAnLApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2ogYi9Tb3Vy
Y2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagppbmRleCBiNTNlNzE1Li4w
ODk3NGIzIDEwMDc1NQotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3Jl
LnZjcHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJv
agpAQCAtMzgwMjMsNiArMzgwMjMsMTQgQEAKIAkJCQk+CiAJCQk8L0ZpbGU+CiAJCQk8RmlsZQor
CQkJCVJlbGF0aXZlUGF0aD0iLi5cY3NzXFZpZXdwb3J0U3R5bGVSZXNvbHZlci5jcHAiCisJCQkJ
PgorCQkJPC9GaWxlPgorCQkJPEZpbGUKKwkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGNzc1xWaWV3cG9y
dFN0eWxlUmVzb2x2ZXIuaCIKKwkJCQk+CisJCQk8L0ZpbGU+CisJCQk8RmlsZQogCQkJCVJlbGF0
aXZlUGF0aD0iLi5cY3NzXFdlYktpdENTU0FycmF5RnVuY3Rpb25WYWx1ZS5jcHAiCiAJCQkJPgog
CQkJPC9GaWxlPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qCmluZGV4IDE4OTMzMjYuLjhiZjE0OTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTEwMzQsNiArMTAzNCw4IEBA
CiAJCTNDMjQ0RkVCQTM3NUFDNjMzRjg4QkU2RiAvKiBSZW5kZXJMYXllck1vZGVsT2JqZWN0LmNw
cCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDNDMjQ0RkU1
QTM3NUFDNjMzRjg4QkU2RiAvKiBSZW5kZXJMYXllck1vZGVsT2JqZWN0LmNwcCAqLzsgfTsKIAkJ
M0ZGRkY5QTgxNTlEOUE1NTAwMjBCQkQ1IC8qIFdlYktpdENTU1ZpZXdwb3J0UnVsZS5jcHAgaW4g
U291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAzRkZGRjlBNjE1OUQ5
QTU1MDAyMEJCRDUgLyogV2ViS2l0Q1NTVmlld3BvcnRSdWxlLmNwcCAqLzsgfTsKIAkJM0ZGRkY5
QTkxNTlEOUE1NTAwMjBCQkQ1IC8qIFdlYktpdENTU1ZpZXdwb3J0UnVsZS5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gM0ZGRkY5QTcxNTlEOUE1NTAwMjBC
QkQ1IC8qIFdlYktpdENTU1ZpZXdwb3J0UnVsZS5oICovOyB9OworCQkzRkZGRjlBRDE1OUQ5QjA2
MDAyMEJCRDUgLyogVmlld3BvcnRTdHlsZVJlc29sdmVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDNGRkZGOUFCMTU5RDlCMDYwMDIwQkJENSAvKiBW
aWV3cG9ydFN0eWxlUmVzb2x2ZXIuY3BwICovOyB9OworCQkzRkZGRjlBRTE1OUQ5QjA2MDAyMEJC
RDUgLyogVmlld3BvcnRTdHlsZVJlc29sdmVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSAzRkZGRjlBQzE1OUQ5QjA2MDAyMEJCRDUgLyogVmlld3BvcnRT
dHlsZVJlc29sdmVyLmggKi87IH07CiAJCTQxMDAyQ0NEMEY2NkVERUYwMDlFNjYwRCAvKiBTY3Jp
cHRGdW5jdGlvbkNhbGwuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDQxMDAyQ0NCMEY2NkVERUYwMDlFNjYwRCAvKiBTY3JpcHRGdW5jdGlvbkNhbGwuaCAq
LzsgfTsKIAkJNDEwMDJDQ0UwRjY2RURFRjAwOUU2NjBEIC8qIFNjcmlwdEZ1bmN0aW9uQ2FsbC5j
cHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0MTAwMkND
QzBGNjZFREVGMDA5RTY2MEQgLyogU2NyaXB0RnVuY3Rpb25DYWxsLmNwcCAqLzsgfTsKIAkJNDEw
QjdFNzIxMDQ1RkFCMDAwRDgyMjRGIC8qIEpTTWVzc2FnZUV2ZW50Q3VzdG9tLmNwcCBpbiBTb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQxMEI3RTcxMTA0NUZBQjAw
MEQ4MjI0RiAvKiBKU01lc3NhZ2VFdmVudEN1c3RvbS5jcHAgKi87IH07CkBAIC04MTg5LDYgKzgx
OTEsOCBAQAogCQkzQzI0NEZFNUEzNzVBQzYzM0Y4OEJFNkYgLyogUmVuZGVyTGF5ZXJNb2RlbE9i
amVjdC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBSZW5kZXJMYXll
ck1vZGVsT2JqZWN0LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJM0ZGRkY5QTYx
NTlEOUE1NTAwMjBCQkQ1IC8qIFdlYktpdENTU1ZpZXdwb3J0UnVsZS5jcHAgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXZWJLaXRDU1NWaWV3cG9ydFJ1bGUuY3BwOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkzRkZGRjlBNzE1OUQ5QTU1MDAyMEJCRDUgLyogV2Vi
S2l0Q1NTVmlld3BvcnRSdWxlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdl
YktpdENTU1ZpZXdwb3J0UnVsZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkzRkZG
RjlBQjE1OUQ5QjA2MDAyMEJCRDUgLyogVmlld3BvcnRTdHlsZVJlc29sdmVyLmNwcCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFZpZXdwb3J0U3R5bGVSZXNvbHZlci5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTNGRkZGOUFDMTU5RDlCMDYwMDIwQkJENSAv
KiBWaWV3cG9ydFN0eWxlUmVzb2x2ZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gVmlld3BvcnRTdHlsZVJlc29sdmVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CTQxMDAyQ0NCMEY2NkVERUYwMDlFNjYwRCAvKiBTY3JpcHRGdW5jdGlvbkNhbGwuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU2NyaXB0RnVuY3Rpb25DYWxsLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQxMDAyQ0NDMEY2NkVERUYwMDlFNjYwRCAvKiBTY3JpcHRG
dW5jdGlvbkNhbGwuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gU2Ny
aXB0RnVuY3Rpb25DYWxsLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDEwQjdF
NzExMDQ1RkFCMDAwRDgyMjRGIC8qIEpTTWVzc2FnZUV2ZW50Q3VzdG9tLmNwcCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTTWVzc2FnZUV2ZW50Q3VzdG9tLmNwcDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTIxMzg1LDYgKzIxMzg5LDggQEAKIAkJCQlCMjIy
N0IwMzBEMDBCRkYxMDA3MUI3ODIgLyogU1ZHQ1NTU3R5bGVTZWxlY3Rvci5jcHAgKi8sCiAJCQkJ
QjIyMjdCMDQwRDAwQkZGMTAwNzFCNzgyIC8qIFNWR0NTU1ZhbHVlS2V5d29yZHMuaW4gKi8sCiAJ
CQkJQkM1RUMxNzYwQTUwN0UzRTAwNjAwN0Y1IC8qIHZpZXctc291cmNlLmNzcyAqLywKKwkJCQkz
RkZGRjlBQjE1OUQ5QjA2MDAyMEJCRDUgLyogVmlld3BvcnRTdHlsZVJlc29sdmVyLmNwcCAqLywK
KwkJCQkzRkZGRjlBQzE1OUQ5QjA2MDAyMEJCRDUgLyogVmlld3BvcnRTdHlsZVJlc29sdmVyLmgg
Ki8sCiAJCQkJMTUwQjkyMzcxNUYwOERDNDAwRTEwOTg2IC8qIFdlYktpdENTU0FycmF5RnVuY3Rp
b25WYWx1ZS5jcHAgKi8sCiAJCQkJMTUwQjkyMzgxNUYwOERDNDAwRTEwOTg2IC8qIFdlYktpdENT
U0FycmF5RnVuY3Rpb25WYWx1ZS5oICovLAogCQkJCTMxMDYwMzZDMTQzMjdEMkUwMEFCRjRCQSAv
KiBXZWJLaXRDU1NGaWx0ZXJWYWx1ZS5jcHAgKi8sCkBAIC0yNTY4NCw2ICsyNTY5MCw3IEBACiAJ
CQkJQUFDMDhDRjMxNUY5NDFGRDAwRjFFMTg4IC8qIEFjY2Vzc2liaWxpdHlTVkdSb290LmggaW4g
SGVhZGVycyAqLywKIAkJCQk1MDkzMzM1MDE2M0IwRTQzMDAwOTlBNjAgLyogQ3VzdG9tRmlsdGVy
UGFyYW1ldGVyTGlzdC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTBEMzI4NTgxNjNCMzEzRjAwMTYx
MTFFIC8qIFZhbGlkYXRlZEN1c3RvbUZpbHRlck9wZXJhdGlvbi5oIGluIEhlYWRlcnMgKi8sCisJ
CQkJM0ZGRkY5QUUxNTlEOUIwNjAwMjBCQkQ1IC8qIFZpZXdwb3J0U3R5bGVSZXNvbHZlci5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJM0ZGRkY5QTkxNTlEOUE1NTAwMjBCQkQ1IC8qIFdlYktpdENTU1Zp
ZXdwb3J0UnVsZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTNDMzhCRkYxNjQ0NzNDNzAwMDkxRUIy
IC8qIFNjcm9sbGluZ1N0YXRlRml4ZWROb2RlLmggaW4gSGVhZGVycyAqLywKIAkJCQk5M0MzOEMw
MzE2NDQ3M0REMDAwOTFFQjIgLyogU2Nyb2xsaW5nVHJlZUZpeGVkTm9kZS5oIGluIEhlYWRlcnMg
Ki8sCkBAIC0yODc2Myw2ICsyODc3MCw3IEBACiAJCQkJOTNGMTlCMDUwODI0NUU1OTAwMUU5QUJD
IC8qIFhTTFRQcm9jZXNzb3JMaWJ4c2x0LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUUxQkU1MTJE
MENGNkM1MTIwMDJFQTk1OSAvKiBYU0xUVW5pY29kZVNvcnQuY3BwIGluIFNvdXJjZXMgKi8sCiAJ
CQkJOTc3RTJFMEUxMkYwRkM5QzAwQzEzMzc5IC8qIFhTU0F1ZGl0b3IuY3BwIGluIFNvdXJjZXMg
Ki8sCisJCQkJM0ZGRkY5QUQxNTlEOUIwNjAwMjBCQkQ1IC8qIFZpZXdwb3J0U3R5bGVSZXNvbHZl
ci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlGRDUzNzM1MjEzN0I2NTE4MDAwMDhEQ0UgLyogWmVy
b1BvbGUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNTFBQkY2NEQxNjM5MkUyODAwMTMyQTdBIC8q
IExvYWRlclN0cmF0ZWd5LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTUwOTMzMzRGMTYzQjBFNDMw
MDA5OUE2MCAvKiBDdXN0b21GaWx0ZXJQYXJhbWV0ZXJMaXN0LmNwcCBpbiBTb3VyY2VzICovLApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNDU1NSdWxlQ3VzdG9tLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTQ1NTUnVsZUN1c3RvbS5jcHAKaW5kZXgg
YTI1Y2M1NC4uMmE0NjVkYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMv
SlNDU1NSdWxlQ3VzdG9tLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0NT
U1J1bGVDdXN0b20uY3BwCkBAIC00Miw5ICs0MiwxMSBAQAogI2luY2x1ZGUgIkpTV2ViS2l0Q1NT
S2V5ZnJhbWVSdWxlLmgiCiAjaW5jbHVkZSAiSlNXZWJLaXRDU1NLZXlmcmFtZXNSdWxlLmgiCiAj
aW5jbHVkZSAiSlNXZWJLaXRDU1NSZWdpb25SdWxlLmgiCisjaW5jbHVkZSAiSlNXZWJLaXRDU1NW
aWV3cG9ydFJ1bGUuaCIKICNpbmNsdWRlICJXZWJLaXRDU1NLZXlmcmFtZVJ1bGUuaCIKICNpbmNs
dWRlICJXZWJLaXRDU1NLZXlmcmFtZXNSdWxlLmgiCiAjaW5jbHVkZSAiV2ViS2l0Q1NTUmVnaW9u
UnVsZS5oIgorI2luY2x1ZGUgIldlYktpdENTU1ZpZXdwb3J0UnVsZS5oIgogCiB1c2luZyBuYW1l
c3BhY2UgSlNDOwogCkBAIC05NCw2ICs5NiwxMSBAQCBKU1ZhbHVlIHRvSlMoRXhlY1N0YXRlKiBl
eGVjLCBKU0RPTUdsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDU1NSdWxlKiBydWxlKQogICAg
ICAgICBjYXNlIENTU1J1bGU6OldFQktJVF9LRVlGUkFNRVNfUlVMRToKICAgICAgICAgICAgIHdy
YXBwZXIgPSBDUkVBVEVfRE9NX1dSQVBQRVIoZXhlYywgZ2xvYmFsT2JqZWN0LCBXZWJLaXRDU1NL
ZXlmcmFtZXNSdWxlLCBydWxlKTsKICAgICAgICAgICAgIGJyZWFrOworI2lmIEVOQUJMRShDU1Nf
REVWSUNFX0FEQVBUQVRJT04pCisgICAgICAgIGNhc2UgQ1NTUnVsZTo6V0VCS0lUX1ZJRVdQT1JU
X1JVTEU6CisgICAgICAgICAgICB3cmFwcGVyID0gQ1JFQVRFX0RPTV9XUkFQUEVSKGV4ZWMsIGds
b2JhbE9iamVjdCwgV2ViS2l0Q1NTVmlld3BvcnRSdWxlLCBydWxlKTsKKyAgICAgICAgICAgIGJy
ZWFrOworI2VuZGlmCiAjaWYgRU5BQkxFKENTU19SRUdJT05TKQogICAgICAgICBjYXNlIENTU1J1
bGU6OldFQktJVF9SRUdJT05fUlVMRToKICAgICAgICAgICAgIHdyYXBwZXIgPSBDUkVBVEVfRE9N
X1dSQVBQRVIoZXhlYywgZ2xvYmFsT2JqZWN0LCBXZWJLaXRDU1NSZWdpb25SdWxlLCBydWxlKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL29iamMvRE9NQ1NTLm1tIGIvU291
cmNlL1dlYkNvcmUvYmluZGluZ3Mvb2JqYy9ET01DU1MubW0KaW5kZXggMWFkYWJmZi4uM2MxZGE4
MjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL29iamMvRE9NQ1NTLm1tCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL29iamMvRE9NQ1NTLm1tCkBAIC01Nyw2ICs1Nywx
MCBAQAogI2ltcG9ydCAiRE9NV2ViS2l0Q1NTUmVnaW9uUnVsZS5oIgogI2VuZGlmCiAKKyNpZiBF
TkFCTEUoQ1NTX0RFVklDRV9BREFQVEFUSU9OKQorI2ltcG9ydCAiRE9NV2ViS2l0Q1NTVmlld3Bv
cnRSdWxlLmgiCisjZW5kaWYKKwogI2lmIEVOQUJMRShTVkdfRE9NX09CSkNfQklORElOR1MpCiAj
aW1wb3J0ICJET01TVkdQYWludC5oIgogI2VuZGlmCkBAIC05NSw2ICs5OSwxMCBAQCBDbGFzcyBr
aXRDbGFzcyhXZWJDb3JlOjpDU1NSdWxlKiBpbXBsKQogICAgICAgICAgICAgcmV0dXJuIFtET01X
ZWJLaXRDU1NLZXlmcmFtZXNSdWxlIGNsYXNzXTsKICAgICAgICAgY2FzZSBET01fV0VCS0lUX0tF
WUZSQU1FX1JVTEU6CiAgICAgICAgICAgICByZXR1cm4gW0RPTVdlYktpdENTU0tleWZyYW1lUnVs
ZSBjbGFzc107CisjaWYgRU5BQkxFKENTU19ERVZJQ0VfQURBUFRBVElPTikKKyAgICAgICAgY2Fz
ZSBET01fV0VCS0lUX1ZJRVdQT1JUX1JVTEU6CisgICAgICAgICAgICByZXR1cm4gW0RPTVdlYktp
dENTU1ZpZXdwb3J0UnVsZSBjbGFzc107CisjZW5kaWYKICNpZiBFTkFCTEUoQ1NTX1JFR0lPTlMp
CiAgICAgICAgIGNhc2UgRE9NX1dFQktJVF9SRUdJT05fUlVMRToKICAgICAgICAgICAgIHJldHVy
biBbRE9NV2ViS2l0Q1NTUmVnaW9uUnVsZSBjbGFzc107CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhDU1NSdWxlQ3VzdG9tLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOENTU1J1bGVDdXN0b20uY3BwCmluZGV4IDhiMTBhZDUu
LmRmOGQxNTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9W
OENTU1J1bGVDdXN0b20uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3Rv
bS9WOENTU1J1bGVDdXN0b20uY3BwCkBAIC00MSw2ICs0MSwxMCBAQAogI2luY2x1ZGUgIlY4V2Vi
S2l0Q1NTS2V5ZnJhbWVzUnVsZS5oIgogI2luY2x1ZGUgIlY4V2ViS2l0Q1NTUmVnaW9uUnVsZS5o
IgogCisjaWYgRU5BQkxFKENTU19ERVZJQ0VfQURBUFRBVElPTikKKyNpbmNsdWRlICJWOFdlYktp
dENTU1ZpZXdwb3J0UnVsZS5oIgorI2VuZGlmCisKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogdjg6
OkhhbmRsZTx2ODo6VmFsdWU+IHRvVjgoQ1NTUnVsZSogaW1wbCwgdjg6OkhhbmRsZTx2ODo6T2Jq
ZWN0PiBjcmVhdGlvbkNvbnRleHQsIHY4OjpJc29sYXRlKiBpc29sYXRlKQpAQCAtNjksNiArNzMs
MTAgQEAgdjg6OkhhbmRsZTx2ODo6VmFsdWU+IHRvVjgoQ1NTUnVsZSogaW1wbCwgdjg6OkhhbmRs
ZTx2ODo6T2JqZWN0PiBjcmVhdGlvbkNvbnRleHQKICAgICAgICAgcmV0dXJuIHRvVjgoc3RhdGlj
X2Nhc3Q8V2ViS2l0Q1NTS2V5ZnJhbWVSdWxlKj4oaW1wbCksIGNyZWF0aW9uQ29udGV4dCwgaXNv
bGF0ZSk7CiAgICAgY2FzZSBDU1NSdWxlOjpXRUJLSVRfS0VZRlJBTUVTX1JVTEU6CiAgICAgICAg
IHJldHVybiB0b1Y4KHN0YXRpY19jYXN0PFdlYktpdENTU0tleWZyYW1lc1J1bGUqPihpbXBsKSwg
Y3JlYXRpb25Db250ZXh0LCBpc29sYXRlKTsKKyNpZiBFTkFCTEUoQ1NTX0RFVklDRV9BREFQVEFU
SU9OKQorICAgIGNhc2UgQ1NTUnVsZTo6V0VCS0lUX1ZJRVdQT1JUX1JVTEU6CisgICAgICAgIHJl
dHVybiB0b1Y4KHN0YXRpY19jYXN0PFdlYktpdENTU1ZpZXdwb3J0UnVsZSo+KGltcGwpLCBjcmVh
dGlvbkNvbnRleHQsIGlzb2xhdGUpOworI2VuZGlmCiAgICAgY2FzZSBDU1NSdWxlOjpXRUJLSVRf
UkVHSU9OX1JVTEU6CiAgICAgICAgIHJldHVybiB0b1Y4KHN0YXRpY19jYXN0PFdlYktpdENTU1Jl
Z2lvblJ1bGUqPihpbXBsKSwgY3JlYXRpb25Db250ZXh0LCBpc29sYXRlKTsKICAgICB9CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTQWxsSW5PbmUuY3BwIGIvU291cmNlL1dlYkNv
cmUvY3NzL0NTU0FsbEluT25lLmNwcAppbmRleCA4NGY5ZmU3Li40NzlkOGRlIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTQWxsSW5PbmUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2Nzcy9DU1NBbGxJbk9uZS5jcHAKQEAgLTczLDMgKzczLDQgQEAKICNpbmNsdWRlICJTdHlsZVBy
b3BlcnR5U2hvcnRoYW5kLmNwcCIKICNpbmNsdWRlICJTdHlsZVJlc29sdmVyLmNwcCIKICNpbmNs
dWRlICJTdHlsZVNjb3BlUmVzb2x2ZXIuY3BwIgorI2luY2x1ZGUgIlZpZXdwb3J0U3R5bGVSZXNv
bHZlci5jcHAiCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUnVsZS5pZGwgYi9T
b3VyY2UvV2ViQ29yZS9jc3MvQ1NTUnVsZS5pZGwKaW5kZXggNTg1YWRhYi4uYWYxMThmZSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1J1bGUuaWRsCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2Nzcy9DU1NSdWxlLmlkbApAQCAtMzcsNiArMzcsOSBAQAogICAgIGNvbnN0IHVuc2lnbmVk
IHNob3J0IFBBR0VfUlVMRSA9IDY7CiAgICAgY29uc3QgdW5zaWduZWQgc2hvcnQgV0VCS0lUX0tF
WUZSQU1FU19SVUxFID0gNzsKICAgICBjb25zdCB1bnNpZ25lZCBzaG9ydCBXRUJLSVRfS0VZRlJB
TUVfUlVMRSA9IDg7CisjaWYgZGVmaW5lZChFTkFCTEVfQ1NTX0RFVklDRV9BREFQVEFUSU9OKSAm
JiBFTkFCTEVfQ1NTX0RFVklDRV9BREFQVEFUSU9OCisgICAgY29uc3QgdW5zaWduZWQgc2hvcnQg
V0VCS0lUX1ZJRVdQT1JUX1JVTEUgPSAxNTsKKyNlbmRpZgogI2lmIGRlZmluZWQoRU5BQkxFX0NT
U19SRUdJT05TKSAmJiBFTkFCTEVfQ1NTX1JFR0lPTlMKICAgICBjb25zdCB1bnNpZ25lZCBzaG9y
dCBXRUJLSVRfUkVHSU9OX1JVTEUgPSAxNjsKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvY3NzL1J1bGVTZXQuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL1J1bGVTZXQuY3BwCmlu
ZGV4IGE1MzY3ZWUuLjA1OTMyNDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9SdWxl
U2V0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvUnVsZVNldC5jcHAKQEAgLTMxMiw2ICsz
MTIsMTMgQEAgdm9pZCBSdWxlU2V0OjphZGRSdWxlc0Zyb21TaGVldChTdHlsZVNoZWV0Q29udGVu
dHMqIHNoZWV0LCBjb25zdCBNZWRpYVF1ZXJ5RXZhbHUKICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBjb250aW51ZTsKICAgICAgICAgICAgICAgICAgICAgICAgIHJlc29sdmVyLT5hZGRLZXlm
cmFtZVN0eWxlKHN0YXRpY19jYXN0PFN0eWxlUnVsZUtleWZyYW1lcyo+KGNoaWxkUnVsZSkpOwog
ICAgICAgICAgICAgICAgICAgICB9CisjaWYgRU5BQkxFKENTU19ERVZJQ0VfQURBUFRBVElPTikK
KyAgICAgICAgICAgICAgICAgICAgZWxzZSBpZiAoY2hpbGRSdWxlLT5pc1ZpZXdwb3J0UnVsZSgp
ICYmIHJlc29sdmVyICYmICFyZXNvbHZlci0+YWZmZWN0ZWRCeVZpZXdwb3J0Q2hhbmdlKCkpIHsK
KyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChzY29wZSkKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHJlc29sdmVyLT52aWV3
cG9ydFN0eWxlUmVzb2x2ZXIoKS0+YWRkVmlld3BvcnRSdWxlKHN0YXRpY19jYXN0PFN0eWxlUnVs
ZVZpZXdwb3J0Kj4oY2hpbGRSdWxlKSk7CisgICAgICAgICAgICAgICAgICAgIH0KKyNlbmRpZgog
ICAgICAgICAgICAgICAgIH0gLy8gZm9yIHJ1bGVzCiAgICAgICAgICAgICB9IC8vIGlmIHJ1bGVz
CiAgICAgICAgIH0gZWxzZSBpZiAocnVsZS0+aXNGb250RmFjZVJ1bGUoKSAmJiByZXNvbHZlcikg
ewpAQCAtMzQwLDYgKzM0NywxMyBAQCB2b2lkIFJ1bGVTZXQ6OmFkZFJ1bGVzRnJvbVNoZWV0KFN0
eWxlU2hlZXRDb250ZW50cyogc2hlZXQsIGNvbnN0IE1lZGlhUXVlcnlFdmFsdQogICAgICAgICBl
bHNlIGlmIChydWxlLT5pc0hvc3RSdWxlKCkpCiAgICAgICAgICAgICByZXNvbHZlci0+YWRkSG9z
dFJ1bGUoc3RhdGljX2Nhc3Q8U3R5bGVSdWxlSG9zdCo+KHJ1bGUpLCBoYXNEb2N1bWVudFNlY3Vy
aXR5T3JpZ2luLCBzY29wZSk7CiAjZW5kaWYKKyNpZiBFTkFCTEUoQ1NTX0RFVklDRV9BREFQVEFU
SU9OKQorICAgICAgICBlbHNlIGlmIChydWxlLT5pc1ZpZXdwb3J0UnVsZSgpICYmIHJlc29sdmVy
KSB7CisgICAgICAgICAgICBpZiAoc2NvcGUpCisgICAgICAgICAgICAgICAgY29udGludWU7Cisg
ICAgICAgICAgICByZXNvbHZlci0+dmlld3BvcnRTdHlsZVJlc29sdmVyKCktPmFkZFZpZXdwb3J0
UnVsZShzdGF0aWNfY2FzdDxTdHlsZVJ1bGVWaWV3cG9ydCo+KHJ1bGUpKTsKKyAgICAgICAgfQor
I2VuZGlmCiAgICAgfQogICAgIGlmIChtX2F1dG9TaHJpbmtUb0ZpdEVuYWJsZWQpCiAgICAgICAg
IHNocmlua1RvRml0KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVSZXNv
bHZlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVSZXNvbHZlci5jcHAKaW5kZXggNGQ3
ODIyZi4uYzY5NTg1ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlUmVzb2x2
ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVJlc29sdmVyLmNwcApAQCAtMTIz
LDYgKzEyMyw3IEBACiAjaW5jbHVkZSAiVHJhbnNmb3JtYXRpb25NYXRyaXguaCIKICNpbmNsdWRl
ICJUcmFuc2xhdGVUcmFuc2Zvcm1PcGVyYXRpb24uaCIKICNpbmNsdWRlICJVc2VyQWdlbnRTdHls
ZVNoZWV0cy5oIgorI2luY2x1ZGUgIlZpZXdwb3J0U3R5bGVSZXNvbHZlci5oIgogI2luY2x1ZGUg
IldlYkNvcmVNZW1vcnlJbnN0cnVtZW50YXRpb24uaCIKICNpbmNsdWRlICJXZWJLaXRDU1NLZXlm
cmFtZVJ1bGUuaCIKICNpbmNsdWRlICJXZWJLaXRDU1NLZXlmcmFtZXNSdWxlLmgiCkBAIC0yODMs
NiArMjg0LDkgQEAgU3R5bGVSZXNvbHZlcjo6U3R5bGVSZXNvbHZlcihEb2N1bWVudCogZG9jdW1l
bnQsIGJvb2wgbWF0Y2hBdXRob3JBbmRVc2VyU3R5bGVzKQogICAgICwgbV9zYW1lT3JpZ2luT25s
eShmYWxzZSkKICAgICAsIG1fZGlzdHJpYnV0ZWRUb0luc2VydGlvblBvaW50KGZhbHNlKQogICAg
ICwgbV9mb250U2VsZWN0b3IoQ1NTRm9udFNlbGVjdG9yOjpjcmVhdGUoZG9jdW1lbnQpKQorI2lm
IEVOQUJMRShDU1NfREVWSUNFX0FEQVBUQVRJT04pCisgICAgLCBtX3ZpZXdwb3J0U3R5bGVSZXNv
bHZlcihWaWV3cG9ydFN0eWxlUmVzb2x2ZXI6OmNyZWF0ZShkb2N1bWVudCkpCisjZW5kaWYKICAg
ICAsIG1fYXBwbHlQcm9wZXJ0eVRvUmVndWxhclN0eWxlKHRydWUpCiAgICAgLCBtX2FwcGx5UHJv
cGVydHlUb1Zpc2l0ZWRMaW5rU3R5bGUoZmFsc2UpCiAgICAgLCBtX3N0eWxlQnVpbGRlcihTdHls
ZUJ1aWxkZXI6OnNoYXJlZFN0eWxlQnVpbGRlcigpKQpAQCAtNDE5LDYgKzQyMywxMCBAQCB2b2lk
IFN0eWxlUmVzb2x2ZXI6OmFwcGVuZEF1dGhvclN0eWxlU2hlZXRzKHVuc2lnbmVkIGZpcnN0TmV3
LCBjb25zdCBWZWN0b3I8UmVmUAogICAgIAogICAgIGlmIChkb2N1bWVudCgpLT5yZW5kZXJlcigp
ICYmIGRvY3VtZW50KCktPnJlbmRlcmVyKCktPnN0eWxlKCkpCiAgICAgICAgIGRvY3VtZW50KCkt
PnJlbmRlcmVyKCktPnN0eWxlKCktPmZvbnQoKS51cGRhdGUoZm9udFNlbGVjdG9yKCkpOworCisj
aWYgRU5BQkxFKENTU19ERVZJQ0VfQURBUFRBVElPTikKKyAgICB2aWV3cG9ydFN0eWxlUmVzb2x2
ZXIoKS0+cmVzb2x2ZSgpOworI2VuZGlmCiB9CiAKIHZvaWQgU3R5bGVSZXNvbHZlcjo6cHVzaFBh
cmVudEVsZW1lbnQoRWxlbWVudCogcGFyZW50KQpAQCAtNDczLDYgKzQ4MSwxMCBAQCB2b2lkIFN0
eWxlUmVzb2x2ZXI6OmFkZEtleWZyYW1lU3R5bGUoUGFzc1JlZlB0cjxTdHlsZVJ1bGVLZXlmcmFt
ZXM+IHJ1bGUpCiBTdHlsZVJlc29sdmVyOjp+U3R5bGVSZXNvbHZlcigpCiB7CiAgICAgbV9mb250
U2VsZWN0b3ItPmNsZWFyRG9jdW1lbnQoKTsKKworI2lmIEVOQUJMRShDU1NfREVWSUNFX0FEQVBU
QVRJT04pCisgICAgbV92aWV3cG9ydFN0eWxlUmVzb2x2ZXItPmNsZWFyRG9jdW1lbnQoKTsKKyNl
bmRpZgogfQogCiB2b2lkIFN0eWxlUmVzb2x2ZXI6OnN3ZWVwTWF0Y2hlZFByb3BlcnRpZXNDYWNo
ZShUaW1lcjxTdHlsZVJlc29sdmVyPiopCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3Mv
U3R5bGVSZXNvbHZlci5oIGIvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlUmVzb2x2ZXIuaAppbmRl
eCBmNzY5OTM0Li41MTgyZDhlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVS
ZXNvbHZlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVJlc29sdmVyLmgKQEAgLTMz
LDYgKzMzLDcgQEAKICNpbmNsdWRlICJTZWxlY3RvckNoZWNrZXIuaCIKICNpbmNsdWRlICJTdHls
ZUluaGVyaXRlZERhdGEuaCIKICNpbmNsdWRlICJTdHlsZVNjb3BlUmVzb2x2ZXIuaCIKKyNpbmNs
dWRlICJWaWV3cG9ydFN0eWxlUmVzb2x2ZXIuaCIKICNpbmNsdWRlIDx3dGYvSGFzaE1hcC5oPgog
I2luY2x1ZGUgPHd0Zi9IYXNoU2V0Lmg+CiAjaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgpAQCAtOTIs
NiArOTMsNyBAQCBjbGFzcyBTdHlsZVNoZWV0OwogY2xhc3MgU3R5bGVTaGVldENvbnRlbnRzOwog
Y2xhc3MgU3R5bGVTaGVldExpc3Q7CiBjbGFzcyBTdHlsZWRFbGVtZW50OworY2xhc3MgVmlld3Bv
cnRTdHlsZVJlc29sdmVyOwogY2xhc3MgV2ViS2l0Q1NTRmlsdGVyVmFsdWU7CiBjbGFzcyBXZWJL
aXRDU1NTaGFkZXJWYWx1ZTsKIGNsYXNzIFdlYktpdENTU1NWR0RvY3VtZW50VmFsdWU7CkBAIC0y
NDUsNiArMjQ3LDkgQEAgcHVibGljOgogICAgIGJvb2wgaGFzU2VsZWN0b3JGb3JBdHRyaWJ1dGUo
Y29uc3QgQXRvbWljU3RyaW5nJikgY29uc3Q7CiAKICAgICBDU1NGb250U2VsZWN0b3IqIGZvbnRT
ZWxlY3RvcigpIGNvbnN0IHsgcmV0dXJuIG1fZm9udFNlbGVjdG9yLmdldCgpOyB9CisjaWYgRU5B
QkxFKENTU19ERVZJQ0VfQURBUFRBVElPTikKKyAgICBWaWV3cG9ydFN0eWxlUmVzb2x2ZXIqIHZp
ZXdwb3J0U3R5bGVSZXNvbHZlcigpIGNvbnN0IHsgcmV0dXJuIG1fdmlld3BvcnRTdHlsZVJlc29s
dmVyLmdldCgpOyB9CisjZW5kaWYKIAogICAgIHZvaWQgYWRkVmlld3BvcnREZXBlbmRlbnRNZWRp
YVF1ZXJ5UmVzdWx0KGNvbnN0IE1lZGlhUXVlcnlFeHAqLCBib29sIHJlc3VsdCk7CiAgICAgYm9v
bCBoYXNWaWV3cG9ydERlcGVuZGVudE1lZGlhUXVlcmllcygpIGNvbnN0IHsgcmV0dXJuICFtX3Zp
ZXdwb3J0RGVwZW5kZW50TWVkaWFRdWVyeVJlc3VsdHMuaXNFbXB0eSgpOyB9CkBAIC00OTMsNiAr
NDk4LDEwIEBAIHByaXZhdGU6CiAgICAgUmVmUHRyPENTU0ZvbnRTZWxlY3Rvcj4gbV9mb250U2Vs
ZWN0b3I7CiAgICAgVmVjdG9yPE93blB0cjxNZWRpYVF1ZXJ5UmVzdWx0PiA+IG1fdmlld3BvcnRE
ZXBlbmRlbnRNZWRpYVF1ZXJ5UmVzdWx0czsKIAorI2lmIEVOQUJMRShDU1NfREVWSUNFX0FEQVBU
QVRJT04pCisgICAgUmVmUHRyPFZpZXdwb3J0U3R5bGVSZXNvbHZlcj4gbV92aWV3cG9ydFN0eWxl
UmVzb2x2ZXI7CisjZW5kaWYKKwogICAgIGJvb2wgbV9hcHBseVByb3BlcnR5VG9SZWd1bGFyU3R5
bGU7CiAgICAgYm9vbCBtX2FwcGx5UHJvcGVydHlUb1Zpc2l0ZWRMaW5rU3R5bGU7CiAgICAgY29u
c3QgU3R5bGVCdWlsZGVyJiBtX3N0eWxlQnVpbGRlcjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2Nzcy9WaWV3cG9ydFN0eWxlUmVzb2x2ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL1Zp
ZXdwb3J0U3R5bGVSZXNvbHZlci5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MC4uYTYzMzVhMAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9WaWV3cG9y
dFN0eWxlUmVzb2x2ZXIuY3BwCkBAIC0wLDAgKzEsMTcwIEBACisvKgorICogQ29weXJpZ2h0IChD
KSAyMDEyIEludGVsIENvcnBvcmF0aW9uLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICoKKyAqIDEuIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUKKyAqICAgIGNvcHlyaWdo
dCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nCisgKiAg
ICBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZQorICogICAgY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcKKyAqICAgIGRpc2NsYWltZXIgaW4gdGhlIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscworICogICAgcHJvdmlkZWQgd2l0aCB0
aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhF
IENPUFlSSUdIVCBIT0xERVIg4oCcQVMgSVPigJ0gQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElN
UExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhF
IENPUFlSSUdIVCBIT0xERVIgQkUKKyAqIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwKKyAqIE9SIENPTlNFUVVFTlRJQUwgREFN
QUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBS
T0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFO
WQorICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwgT1IKKyAqIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkg
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRgorICogVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GCisgKiBTVUNIIERBTUFHRS4KKyAq
LworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiVmlld3BvcnRTdHlsZVJlc29sdmVy
LmgiCisKKyNpZiBFTkFCTEUoQ1NTX0RFVklDRV9BREFQVEFUSU9OKQorCisjaW5jbHVkZSAiQ1NT
VmFsdWVLZXl3b3Jkcy5oIgorI2luY2x1ZGUgIkRvY3VtZW50LmgiCisjaW5jbHVkZSAiUGFnZS5o
IgorI2luY2x1ZGUgIlJlbmRlclZpZXcuaCIKKyNpbmNsdWRlICJTdHlsZVByb3BlcnR5U2V0Lmgi
CisjaW5jbHVkZSAiU3R5bGVSdWxlLmgiCisjaW5jbHVkZSAiVmlld3BvcnRBcmd1bWVudHMuaCIK
KworbmFtZXNwYWNlIFdlYkNvcmUgeworCitWaWV3cG9ydFN0eWxlUmVzb2x2ZXI6OlZpZXdwb3J0
U3R5bGVSZXNvbHZlcihEb2N1bWVudCogZG9jdW1lbnQpCisgICAgOiBtX2RvY3VtZW50KGRvY3Vt
ZW50KQoreworICAgIEFTU0VSVChtX2RvY3VtZW50KTsKKworICAgIG1faW5pdGlhbFZpZXdwb3J0
V2lkdGggPSBtX2RvY3VtZW50LT52aWV3cG9ydFNpemUoKS53aWR0aCgpOworICAgIG1faW5pdGlh
bFZpZXdwb3J0SGVpZ2h0ID0gbV9kb2N1bWVudC0+dmlld3BvcnRTaXplKCkuaGVpZ2h0KCk7CisK
KyAgICBmbG9hdCBkZXZpY2VTY2FsZUZhY3RvciA9IDA7CisgICAgaWYgKG1fZG9jdW1lbnQtPnBh
Z2UoKSkKKyAgICAgICAgZGV2aWNlU2NhbGVGYWN0b3IgPSBtX2RvY3VtZW50LT5wYWdlKCktPmRl
dmljZVNjYWxlRmFjdG9yKCk7CisKKyAgICBpZiAoZGV2aWNlU2NhbGVGYWN0b3IgJiYgZGV2aWNl
U2NhbGVGYWN0b3IgIT0gMSkgeworICAgICAgICBtX2luaXRpYWxWaWV3cG9ydFdpZHRoIC89IGRl
dmljZVNjYWxlRmFjdG9yOworICAgICAgICBtX2luaXRpYWxWaWV3cG9ydEhlaWdodCAvPSBkZXZp
Y2VTY2FsZUZhY3RvcjsKKyAgICB9Cit9CisKK3ZvaWQgVmlld3BvcnRTdHlsZVJlc29sdmVyOjph
ZGRWaWV3cG9ydFJ1bGUoU3R5bGVSdWxlVmlld3BvcnQqIHZpZXdwb3J0UnVsZSkKK3sKKyAgICBT
dHlsZVByb3BlcnR5U2V0KiBwcm9wZXJ0eVNldCA9IHZpZXdwb3J0UnVsZS0+bXV0YWJsZVByb3Bl
cnRpZXMoKTsKKyAgICBpZiAoIXByb3BlcnR5U2V0KQorICAgICAgICByZXR1cm47CisKKyAgICBp
ZiAoIW1fcHJvcGVydHlTZXQpIHsKKyAgICAgICAgbV9wcm9wZXJ0eVNldCA9IHByb3BlcnR5U2V0
LT5jb3B5KCk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICAvLyBGSVhNRTogVGhpcyBp
cyB3cm9uZy4KKyAgICBmb3IgKHVuc2lnbmVkIGludCBpID0gMDsgaSA8IHByb3BlcnR5U2V0LT5w
cm9wZXJ0eUNvdW50KCk7IGkrKykKKyAgICAgICAgbV9wcm9wZXJ0eVNldC0+YWRkUGFyc2VkUHJv
cGVydHkocHJvcGVydHlTZXQtPnByb3BlcnR5QXQoaSkudG9DU1NQcm9wZXJ0eSgpKTsKK30KKwor
dm9pZCBWaWV3cG9ydFN0eWxlUmVzb2x2ZXI6OmNsZWFyRG9jdW1lbnQoKQoreworICAgIG1fZG9j
dW1lbnQgPSAwOworfQorCit2b2lkIFZpZXdwb3J0U3R5bGVSZXNvbHZlcjo6cmVzb2x2ZSgpCit7
CisgICAgaWYgKCFtX2RvY3VtZW50IHx8ICFtX3Byb3BlcnR5U2V0KQorICAgICAgICByZXR1cm47
CisKKyAgICBWaWV3cG9ydEFyZ3VtZW50cyBhcmd1bWVudHMoVmlld3BvcnRBcmd1bWVudHM6OkNT
U0RldmljZUFkYXB0YXRpb24pOworCisgICAgYXJndW1lbnRzLnVzZXJTY2FsYWJsZSA9IGdldFZp
ZXdwb3J0QXJndW1lbnRWYWx1ZShDU1NQcm9wZXJ0eVVzZXJab29tKTsKKyAgICBhcmd1bWVudHMu
aW5pdGlhbFNjYWxlID0gZ2V0Vmlld3BvcnRBcmd1bWVudFZhbHVlKENTU1Byb3BlcnR5Wm9vbSk7
CisgICAgYXJndW1lbnRzLm1pbmltdW1TY2FsZSA9IGdldFZpZXdwb3J0QXJndW1lbnRWYWx1ZShD
U1NQcm9wZXJ0eU1pblpvb20pOworICAgIGFyZ3VtZW50cy5tYXhpbXVtU2NhbGUgPSBnZXRWaWV3
cG9ydEFyZ3VtZW50VmFsdWUoQ1NTUHJvcGVydHlNYXhab29tKTsKKyAgICBhcmd1bWVudHMubWlu
V2lkdGggPSBnZXRWaWV3cG9ydEFyZ3VtZW50VmFsdWUoQ1NTUHJvcGVydHlNaW5XaWR0aCk7Cisg
ICAgYXJndW1lbnRzLm1heFdpZHRoID0gZ2V0Vmlld3BvcnRBcmd1bWVudFZhbHVlKENTU1Byb3Bl
cnR5TWF4V2lkdGgpOworICAgIGFyZ3VtZW50cy5taW5IZWlnaHQgPSBnZXRWaWV3cG9ydEFyZ3Vt
ZW50VmFsdWUoQ1NTUHJvcGVydHlNaW5IZWlnaHQpOworICAgIGFyZ3VtZW50cy5tYXhIZWlnaHQg
PSBnZXRWaWV3cG9ydEFyZ3VtZW50VmFsdWUoQ1NTUHJvcGVydHlNYXhIZWlnaHQpOworICAgIGFy
Z3VtZW50cy5vcmllbnRhdGlvbiA9IGdldFZpZXdwb3J0QXJndW1lbnRWYWx1ZShDU1NQcm9wZXJ0
eU9yaWVudGF0aW9uKTsKKworICAgIG1fZG9jdW1lbnQtPnNldFZpZXdwb3J0QXJndW1lbnRzKGFy
Z3VtZW50cyk7CisgICAgbV9kb2N1bWVudC0+dXBkYXRlVmlld3BvcnRBcmd1bWVudHMoKTsKKwor
ICAgIG1fcHJvcGVydHlTZXQgPSAwOworfQorCitmbG9hdCBWaWV3cG9ydFN0eWxlUmVzb2x2ZXI6
OmdldFZpZXdwb3J0QXJndW1lbnRWYWx1ZShDU1NQcm9wZXJ0eUlEIGlkKSBjb25zdAoreworICAg
IGZsb2F0IGRlZmF1bHRWYWx1ZSA9IFZpZXdwb3J0QXJndW1lbnRzOjpWYWx1ZUF1dG87CisKKyAg
ICAvLyBVc2VyWm9vbSBkZWZhdWx0IHZhbHVlIGlzIENTU1ZhbHVlWm9vbSwgd2hpY2ggbWFwcyB0
byB0cnVlLCBtZWFuaW5nIHRoYXQKKyAgICAvLyB5ZXMsIGl0IGlzIHVzZXIgc2NhbGFibGUuIFdo
ZW4gdGhlIHZhbHVlIGlzIHNldCB0byBDU1NWYWx1ZUZpeGVkLCB3ZQorICAgIC8vIHJldHVybiBm
YWxzZS4KKyAgICBpZiAoaWQgPT0gQ1NTUHJvcGVydHlVc2VyWm9vbSkKKyAgICAgICAgZGVmYXVs
dFZhbHVlID0gMTsKKworICAgIFJlZlB0cjxDU1NWYWx1ZT4gdmFsdWUgPSAgbV9wcm9wZXJ0eVNl
dC0+Z2V0UHJvcGVydHlDU1NWYWx1ZShpZCk7CisgICAgaWYgKCF2YWx1ZSB8fCAhdmFsdWUtPmlz
UHJpbWl0aXZlVmFsdWUoKSkKKyAgICAgICAgcmV0dXJuIGRlZmF1bHRWYWx1ZTsKKworICAgIENT
U1ByaW1pdGl2ZVZhbHVlKiBwcmltaXRpdmVWYWx1ZSA9IHN0YXRpY19jYXN0PENTU1ByaW1pdGl2
ZVZhbHVlKj4odmFsdWUuZ2V0KCkpOworCisgICAgaWYgKHByaW1pdGl2ZVZhbHVlLT5pc051bWJl
cigpIHx8IHByaW1pdGl2ZVZhbHVlLT5pc1B4KCkpCisgICAgICAgIHJldHVybiBwcmltaXRpdmVW
YWx1ZS0+Z2V0RmxvYXRWYWx1ZSgpOworCisgICAgaWYgKHByaW1pdGl2ZVZhbHVlLT5pc0ZvbnRS
ZWxhdGl2ZUxlbmd0aCgpKQorICAgICAgICByZXR1cm4gcHJpbWl0aXZlVmFsdWUtPmdldEZsb2F0
VmFsdWUoKSAqIG1fZG9jdW1lbnQtPmRvY3VtZW50RWxlbWVudCgpLT5yZW5kZXJTdHlsZSgpLT5m
b250RGVzY3JpcHRpb24oKS5jb21wdXRlZFNpemUoKTsKKworICAgIGlmIChwcmltaXRpdmVWYWx1
ZS0+aXNQZXJjZW50YWdlKCkpIHsKKyAgICAgICAgZmxvYXQgcGVyY2VudFZhbHVlID0gcHJpbWl0
aXZlVmFsdWUtPmdldEZsb2F0VmFsdWUoKSAvIDEwMC4wZjsKKyAgICAgICAgc3dpdGNoIChpZCkg
eworICAgICAgICBjYXNlIENTU1Byb3BlcnR5TWF4SGVpZ2h0OgorICAgICAgICBjYXNlIENTU1By
b3BlcnR5TWluSGVpZ2h0OgorICAgICAgICAgICAgcmV0dXJuIHBlcmNlbnRWYWx1ZSAqIG1faW5p
dGlhbFZpZXdwb3J0SGVpZ2h0OworICAgICAgICBjYXNlIENTU1Byb3BlcnR5TWF4V2lkdGg6Cisg
ICAgICAgIGNhc2UgQ1NTUHJvcGVydHlNaW5XaWR0aDoKKyAgICAgICAgICAgIHJldHVybiBwZXJj
ZW50VmFsdWUgKiBtX2luaXRpYWxWaWV3cG9ydFdpZHRoOworICAgICAgICBjYXNlIENTU1Byb3Bl
cnR5TWF4Wm9vbToKKyAgICAgICAgY2FzZSBDU1NQcm9wZXJ0eU1pblpvb206CisgICAgICAgIGNh
c2UgQ1NTUHJvcGVydHlab29tOgorICAgICAgICAgICAgcmV0dXJuIHBlcmNlbnRWYWx1ZTsKKyAg
ICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgICAg
ICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBzd2l0Y2ggKHByaW1pdGl2ZVZh
bHVlLT5nZXRJZGVudCgpKSB7CisgICAgY2FzZSBDU1NWYWx1ZUF1dG86CisgICAgICAgIHJldHVy
biBkZWZhdWx0VmFsdWU7CisgICAgY2FzZSBDU1NWYWx1ZURldmljZUhlaWdodDoKKyAgICAgICAg
cmV0dXJuIFZpZXdwb3J0QXJndW1lbnRzOjpWYWx1ZURldmljZUhlaWdodDsKKyAgICBjYXNlIENT
U1ZhbHVlRGV2aWNlV2lkdGg6CisgICAgICAgIHJldHVybiBWaWV3cG9ydEFyZ3VtZW50czo6VmFs
dWVEZXZpY2VXaWR0aDsKKyAgICBjYXNlIENTU1ZhbHVlTGFuZHNjYXBlOgorICAgICAgICAgcmV0
dXJuIFZpZXdwb3J0QXJndW1lbnRzOjpWYWx1ZUxhbmRzY2FwZTsKKyAgICBjYXNlIENTU1ZhbHVl
UG9ydHJhaXQ6CisgICAgICAgIHJldHVybiBWaWV3cG9ydEFyZ3VtZW50czo6VmFsdWVQb3J0cmFp
dDsKKyAgICBjYXNlIENTU1ZhbHVlWm9vbToKKyAgICAgICAgcmV0dXJuIGRlZmF1bHRWYWx1ZTsK
KyAgICBjYXNlIENTU1ZhbHVlRml4ZWQ6CisgICAgICAgIHJldHVybiAwOworICAgIGRlZmF1bHQ6
CisgICAgICAgIHJldHVybiBkZWZhdWx0VmFsdWU7CisgICAgfQorfQorCit9IC8vIG5hbWVzcGFj
ZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBFTkFCTEUoQ1NTX0RFVklDRV9BREFQVEFUSU9OKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL1ZpZXdwb3J0U3R5bGVSZXNvbHZlci5oIGIvU291
cmNlL1dlYkNvcmUvY3NzL1ZpZXdwb3J0U3R5bGVSZXNvbHZlci5oCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAuLmIxMWNjNzAKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9jc3MvVmlld3BvcnRTdHlsZVJlc29sdmVyLmgKQEAgLTAsMCArMSw3NCBAQAorLyoKKyAq
IENvcHlyaWdodCAoQykgMjAxMiBJbnRlbCBDb3Jwb3JhdGlvbi4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqCisgKiAx
LiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlCisg
KiAgICBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZworICogICAgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKKyAqICAgIGNvcHlyaWdodCBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nCisgKiAgICBkaXNjbGFp
bWVyIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMKKyAqICAgIHBy
b3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSIOKAnEFTIElT4oCdIEFORCBBTlkKKyAqIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVW
RU5UIFNIQUxMIFRIRSBDT1BZUklHSFQgSE9MREVSIEJFCisgKiBMSUFCTEUgRk9SIEFOWSBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksCisgKiBPUiBDT05T
RVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJP
Q1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERB
VEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORCBPTiBBTlkKKyAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SCisgKiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YKKyAqIFRIRSBVU0UgT0YgVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRgorICogU1VD
SCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBWaWV3cG9ydFN0eWxlUmVzb2x2ZXJfaAorI2RlZmlu
ZSBWaWV3cG9ydFN0eWxlUmVzb2x2ZXJfaAorCisjaWYgRU5BQkxFKENTU19ERVZJQ0VfQURBUFRB
VElPTikKKworI2luY2x1ZGUgIkNTU1Byb3BlcnR5TmFtZXMuaCIKKyNpbmNsdWRlIDx3dGYvUmVm
Q291bnRlZC5oPgorI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUg
eworCitjbGFzcyBDU1NQcmltaXRpdmVWYWx1ZTsKK2NsYXNzIERvY3VtZW50OworY2xhc3MgU3R5
bGVSdWxlVmlld3BvcnQ7CitjbGFzcyBTdHlsZVByb3BlcnR5U2V0OworCitjbGFzcyBWaWV3cG9y
dFN0eWxlUmVzb2x2ZXIgOiBwdWJsaWMgUmVmQ291bnRlZDxWaWV3cG9ydFN0eWxlUmVzb2x2ZXI+
IHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxWaWV3cG9ydFN0eWxlUmVzb2x2ZXI+
IGNyZWF0ZShEb2N1bWVudCogZG9jdW1lbnQpCisgICAgeworICAgICAgICByZXR1cm4gYWRvcHRS
ZWYobmV3IFZpZXdwb3J0U3R5bGVSZXNvbHZlcihkb2N1bWVudCkpOworICAgIH0KKworICAgIHZv
aWQgYWRkVmlld3BvcnRSdWxlKFN0eWxlUnVsZVZpZXdwb3J0Kik7CisKKyAgICB2b2lkIGNsZWFy
RG9jdW1lbnQoKTsKKyAgICB2b2lkIHJlc29sdmUoKTsKKworcHJpdmF0ZToKKyAgICBWaWV3cG9y
dFN0eWxlUmVzb2x2ZXIoRG9jdW1lbnQqKTsKKworICAgIGZsb2F0IGdldFZpZXdwb3J0QXJndW1l
bnRWYWx1ZShDU1NQcm9wZXJ0eUlEKSBjb25zdDsKKworICAgIERvY3VtZW50KiBtX2RvY3VtZW50
OworICAgIFJlZlB0cjxTdHlsZVByb3BlcnR5U2V0PiBtX3Byb3BlcnR5U2V0OworCisgICAgZmxv
YXQgbV9pbml0aWFsVmlld3BvcnRXaWR0aDsKKyAgICBmbG9hdCBtX2luaXRpYWxWaWV3cG9ydEhl
aWdodDsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEVOQUJMRShD
U1NfREVWSUNFX0FEQVBUQVRJT04pCisKKyNlbmRpZiAvLyBWaWV3cG9ydFN0eWxlUmVzb2x2ZXJf
aApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL1dlYktpdENTU1ZpZXdwb3J0UnVsZS5p
ZGwgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvV2ViS2l0Q1NTVmlld3BvcnRSdWxlLmlkbApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hMTk0OTIyCi0tLSAvZGV2L251bGwKKysrIGIv
U291cmNlL1dlYkNvcmUvY3NzL1dlYktpdENTU1ZpZXdwb3J0UnVsZS5pZGwKQEAgLTAsMCArMSwz
NCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMiBJbnRlbCBDb3Jwb3JhdGlvbi4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1l
dDoKKyAqCisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlCisgKiAgICBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZworICogICAgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKKyAqICAgIGNvcHly
aWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nCisg
KiAgICBkaXNjbGFpbWVyIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMKKyAqICAgIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSIOKAnEFTIElT4oCdIEFO
RCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlN
RUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQgSE9MREVSIEJFCisgKiBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlks
CisgKiBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKyAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SCisgKiBUT1JUIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YKKyAqIFRI
RSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElU
WSBPRgorICogU1VDSCBEQU1BR0UuCisgKi8KKworWworICAgIENvbmRpdGlvbmFsPUNTU19ERVZJ
Q0VfQURBUFRBVElPTiwKK10gaW50ZXJmYWNlIFdlYktpdENTU1ZpZXdwb3J0UnVsZSA6IENTU1J1
bGUgeworICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBDU1NTdHlsZURlY2xhcmF0aW9uIHN0eWxlOwor
fTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oIGIvU291cmNlL1dl
YkNvcmUvZG9tL0RvY3VtZW50LmgKaW5kZXggMmU0ZTA3My4uNTc0YjhiZSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0Rv
Y3VtZW50LmgKQEAgLTMyMyw2ICszMjMsNyBAQCBwdWJsaWM6CiAgICAgREVGSU5FX0FUVFJJQlVU
RV9FVkVOVF9MSVNURU5FUih3ZWJraXR2aXNpYmlsaXR5Y2hhbmdlKTsKICNlbmRpZgogCisgICAg
dm9pZCBzZXRWaWV3cG9ydEFyZ3VtZW50cyhjb25zdCBWaWV3cG9ydEFyZ3VtZW50cyAmdmlld3Bv
cnRBcmd1bWVudHMpIHsgbV92aWV3cG9ydEFyZ3VtZW50cyA9IHZpZXdwb3J0QXJndW1lbnRzOyB9
CiAgICAgVmlld3BvcnRBcmd1bWVudHMgdmlld3BvcnRBcmd1bWVudHMoKSBjb25zdCB7IHJldHVy
biBtX3ZpZXdwb3J0QXJndW1lbnRzOyB9CiAjaWZuZGVmIE5ERUJVRwogICAgIGJvb2wgZGlkRGlz
cGF0Y2hWaWV3cG9ydFByb3BlcnRpZXNDaGFuZ2VkKCkgY29uc3QgeyByZXR1cm4gbV9kaWREaXNw
YXRjaFZpZXdwb3J0UHJvcGVydGllc0NoYW5nZWQ7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2RvbS9WaWV3cG9ydEFyZ3VtZW50cy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vVmlld3Bv
cnRBcmd1bWVudHMuY3BwCmluZGV4IGFlMTg3ODkuLmI2M2MxOTYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2RvbS9WaWV3cG9ydEFyZ3VtZW50cy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
ZG9tL1ZpZXdwb3J0QXJndW1lbnRzLmNwcApAQCAtNiw2ICs2LDcgQEAKICAqIENvcHlyaWdodCAo
QykgMjAwNCwgMjAwNSwgMjAwNiwgMjAwNywgMjAwOCwgMjAxMSBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCiAgKiBDb3B5cmlnaHQgKEMpIDIwMDggVG9yY2ggTW9iaWxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4gKGh0dHA6Ly93d3cudG9yY2htb2JpbGUuY29tLykKICAqIENvcHly
aWdodCAoQykgMjAxMCBOb2tpYSBDb3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlhcnkoLWll
cykKKyAqIENvcHlyaWdodCAoQykgMjAxMiBJbnRlbCBDb3Jwb3JhdGlvbi4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KICAqCiAgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiBy
ZWRpc3RyaWJ1dGUgaXQgYW5kL29yCiAgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRo
ZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYwpAQCAtNDMsNiArNDQsMzIgQEAgbmFtZXNwYWNl
IFdlYkNvcmUgewogCiBjb25zdCBmbG9hdCBWaWV3cG9ydEFyZ3VtZW50czo6ZGVwcmVjYXRlZFRh
cmdldERQSSA9IDE2MDsKIAorc3RhdGljIGZsb2F0IG1heElnbm9yZUF1dG8oY29uc3QgZmxvYXQg
dmFsdWUxLCBjb25zdCBmbG9hdCB2YWx1ZTIpCit7CisgICAgQVNTRVJUKHZhbHVlMSAhPSBWaWV3
cG9ydEFyZ3VtZW50czo6VmFsdWVBdXRvIHx8IHZhbHVlMiAhPSBWaWV3cG9ydEFyZ3VtZW50czo6
VmFsdWVBdXRvKTsKKworICAgIGlmICh2YWx1ZTEgPT0gVmlld3BvcnRBcmd1bWVudHM6OlZhbHVl
QXV0bykKKyAgICAgICAgcmV0dXJuIHZhbHVlMjsKKworICAgIGlmICh2YWx1ZTIgPT0gVmlld3Bv
cnRBcmd1bWVudHM6OlZhbHVlQXV0bykKKyAgICAgICAgcmV0dXJuIHZhbHVlMTsKKworICAgIHJl
dHVybiBtYXg8ZmxvYXQ+KHZhbHVlMSwgdmFsdWUyKTsKK30KKworc3RhdGljIGZsb2F0IG1pbkln
bm9yZUF1dG8oY29uc3QgZmxvYXQgdmFsdWUxLCBjb25zdCBmbG9hdCB2YWx1ZTIpCit7CisgICAg
QVNTRVJUKHZhbHVlMSAhPSBWaWV3cG9ydEFyZ3VtZW50czo6VmFsdWVBdXRvIHx8IHZhbHVlMiAh
PSBWaWV3cG9ydEFyZ3VtZW50czo6VmFsdWVBdXRvKTsKKworICAgIGlmICh2YWx1ZTEgPT0gVmll
d3BvcnRBcmd1bWVudHM6OlZhbHVlQXV0bykKKyAgICAgICAgcmV0dXJuIHZhbHVlMjsKKworICAg
IGlmICh2YWx1ZTIgPT0gVmlld3BvcnRBcmd1bWVudHM6OlZhbHVlQXV0bykKKyAgICAgICAgcmV0
dXJuIHZhbHVlMTsKKworICAgIHJldHVybiBtaW48ZmxvYXQ+KHZhbHVlMSwgdmFsdWUyKTsKK30K
KwogVmlld3BvcnRBdHRyaWJ1dGVzIGNvbXB1dGVWaWV3cG9ydEF0dHJpYnV0ZXMoVmlld3BvcnRB
cmd1bWVudHMgYXJncywgaW50IGRlc2t0b3BXaWR0aCwgaW50IGRldmljZVdpZHRoLCBpbnQgZGV2
aWNlSGVpZ2h0LCBmbG9hdCBkZXZpY2VQaXhlbFJhdGlvLCBJbnRTaXplIHZpc2libGVWaWV3cG9y
dCkKIHsKICAgICBWaWV3cG9ydEF0dHJpYnV0ZXMgcmVzdWx0OwpAQCAtNzgsMTAgKzEwNSw3NyBA
QCBWaWV3cG9ydEF0dHJpYnV0ZXMgY29tcHV0ZVZpZXdwb3J0QXR0cmlidXRlcyhWaWV3cG9ydEFy
Z3VtZW50cyBhcmdzLCBpbnQgZGVza3RvcAogICAgICAgICBicmVhazsKICAgICB9CiAKKyAgICBp
ZiAoYXJncy50eXBlID09IFZpZXdwb3J0QXJndW1lbnRzOjpDU1NEZXZpY2VBZGFwdGF0aW9uKSB7
CisgICAgICAgIHN3aXRjaCAoaW50KGFyZ3MubWluV2lkdGgpKSB7CisgICAgICAgIGNhc2UgVmll
d3BvcnRBcmd1bWVudHM6OlZhbHVlRGV2aWNlV2lkdGg6CisgICAgICAgICAgICBhcmdzLm1pbldp
ZHRoID0gZGVza3RvcFdpZHRoOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgVmll
d3BvcnRBcmd1bWVudHM6OlZhbHVlRGV2aWNlSGVpZ2h0OgorICAgICAgICAgICAgYXJncy5taW5X
aWR0aCA9IGRldmljZUhlaWdodDsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisKKyAg
ICAgICAgc3dpdGNoIChpbnQoYXJncy5tYXhXaWR0aCkpIHsKKyAgICAgICAgY2FzZSBWaWV3cG9y
dEFyZ3VtZW50czo6VmFsdWVEZXZpY2VXaWR0aDoKKyAgICAgICAgICAgIGFyZ3MubWF4V2lkdGgg
PSBkZXNrdG9wV2lkdGg7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBWaWV3cG9y
dEFyZ3VtZW50czo6VmFsdWVEZXZpY2VIZWlnaHQ6CisgICAgICAgICAgICBhcmdzLm1heFdpZHRo
ID0gZGV2aWNlSGVpZ2h0OworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKworICAgICAg
ICBzd2l0Y2ggKGludChhcmdzLm1pbkhlaWdodCkpIHsKKyAgICAgICAgY2FzZSBWaWV3cG9ydEFy
Z3VtZW50czo6VmFsdWVEZXZpY2VXaWR0aDoKKyAgICAgICAgICAgIGFyZ3MubWluSGVpZ2h0ID0g
ZGV2aWNlV2lkdGg7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBWaWV3cG9ydEFy
Z3VtZW50czo6VmFsdWVEZXZpY2VIZWlnaHQ6CisgICAgICAgICAgICBhcmdzLm1pbkhlaWdodCA9
IGRldmljZUhlaWdodDsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisKKyAgICAgICAg
c3dpdGNoIChpbnQoYXJncy5tYXhIZWlnaHQpKSB7CisgICAgICAgIGNhc2UgVmlld3BvcnRBcmd1
bWVudHM6OlZhbHVlRGV2aWNlV2lkdGg6CisgICAgICAgICAgICBhcmdzLm1heEhlaWdodCA9IGRl
dmljZVdpZHRoOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgVmlld3BvcnRBcmd1
bWVudHM6OlZhbHVlRGV2aWNlSGVpZ2h0OgorICAgICAgICAgICAgYXJncy5tYXhIZWlnaHQgPSBk
ZXZpY2VIZWlnaHQ7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorCisgICAgICAgIGlm
IChhcmdzLm1pbldpZHRoICE9IFZpZXdwb3J0QXJndW1lbnRzOjpWYWx1ZUF1dG8gfHwgYXJncy5t
YXhXaWR0aCAhPSBWaWV3cG9ydEFyZ3VtZW50czo6VmFsdWVBdXRvKQorICAgICAgICAgICAgYXJn
cy53aWR0aCA9IG1heElnbm9yZUF1dG8oYXJncy5taW5XaWR0aCwgbWluSWdub3JlQXV0byhhcmdz
Lm1heFdpZHRoLCBkZXZpY2VXaWR0aCkpOworCisgICAgICAgIGlmIChhcmdzLm1pbkhlaWdodCAh
PSBWaWV3cG9ydEFyZ3VtZW50czo6VmFsdWVBdXRvIHx8IGFyZ3MubWF4SGVpZ2h0ICE9IFZpZXdw
b3J0QXJndW1lbnRzOjpWYWx1ZUF1dG8pCisgICAgICAgICAgICBhcmdzLmhlaWdodCA9IG1heEln
bm9yZUF1dG8oYXJncy5taW5IZWlnaHQsIG1pbklnbm9yZUF1dG8oYXJncy5tYXhIZWlnaHQsIGRl
dmljZUhlaWdodCkpOworCisgICAgICAgIGlmIChhcmdzLm1pbmltdW1TY2FsZSAhPSBWaWV3cG9y
dEFyZ3VtZW50czo6VmFsdWVBdXRvICYmIGFyZ3MubWF4aW11bVNjYWxlICE9IFZpZXdwb3J0QXJn
dW1lbnRzOjpWYWx1ZUF1dG8pCisgICAgICAgICAgICBhcmdzLm1heGltdW1TY2FsZSA9IG1heChh
cmdzLm1pbmltdW1TY2FsZSwgYXJncy5tYXhpbXVtU2NhbGUpOworCisgICAgICAgIGlmIChhcmdz
LmluaXRpYWxTY2FsZSAhPSBWaWV3cG9ydEFyZ3VtZW50czo6VmFsdWVBdXRvKQorICAgICAgICAg
ICAgYXJncy5pbml0aWFsU2NhbGUgPSBtYXhJZ25vcmVBdXRvKGFyZ3MubWluaW11bVNjYWxlLCBt
aW5JZ25vcmVBdXRvKGFyZ3MubWF4aW11bVNjYWxlLCBhcmdzLmluaXRpYWxTY2FsZSkpOworCisg
ICAgICAgIGlmIChhcmdzLndpZHRoID09IFZpZXdwb3J0QXJndW1lbnRzOjpWYWx1ZUF1dG8gJiYg
YXJncy5pbml0aWFsU2NhbGUgPT0gVmlld3BvcnRBcmd1bWVudHM6OlZhbHVlQXV0bykKKyAgICAg
ICAgICAgIGFyZ3Mud2lkdGggPSBkZXZpY2VXaWR0aDsKKworICAgICAgICBpZiAoYXJncy53aWR0
aCA9PSBWaWV3cG9ydEFyZ3VtZW50czo6VmFsdWVBdXRvICYmIGFyZ3MuaGVpZ2h0ID09IFZpZXdw
b3J0QXJndW1lbnRzOjpWYWx1ZUF1dG8pCisgICAgICAgICAgICBhcmdzLndpZHRoID0gZGV2aWNl
V2lkdGggLyBhcmdzLmluaXRpYWxTY2FsZTsKKworICAgICAgICBpZiAoYXJncy53aWR0aCA9PSBW
aWV3cG9ydEFyZ3VtZW50czo6VmFsdWVBdXRvKQorICAgICAgICAgICAgYXJncy53aWR0aCA9IGFy
Z3MuaGVpZ2h0ICogZGV2aWNlV2lkdGggLyBkZXZpY2VIZWlnaHQ7CisKKyAgICAgICAgaWYgKGFy
Z3MuaGVpZ2h0ID09IFZpZXdwb3J0QXJndW1lbnRzOjpWYWx1ZUF1dG8pCisgICAgICAgICAgICBh
cmdzLmhlaWdodCA9IGFyZ3Mud2lkdGggKiBkZXZpY2VIZWlnaHQgLyBkZXZpY2VXaWR0aDsKKwor
ICAgICAgICBpZiAoYXJncy5pbml0aWFsU2NhbGUgIT0gVmlld3BvcnRBcmd1bWVudHM6OlZhbHVl
QXV0byB8fCBhcmdzLm1heGltdW1TY2FsZSAhPSBWaWV3cG9ydEFyZ3VtZW50czo6VmFsdWVBdXRv
KSB7CisgICAgICAgICAgICBhcmdzLndpZHRoID0gbWF4SWdub3JlQXV0byhhcmdzLndpZHRoLCBk
ZXZpY2VXaWR0aCAvIG1pbklnbm9yZUF1dG8oYXJncy5pbml0aWFsU2NhbGUsIGFyZ3MubWF4aW11
bVNjYWxlKSk7CisgICAgICAgICAgICBhcmdzLmhlaWdodCA9IG1heElnbm9yZUF1dG8oYXJncy5o
ZWlnaHQsIGRldmljZUhlaWdodCAvIG1pbklnbm9yZUF1dG8oYXJncy5pbml0aWFsU2NhbGUsIGFy
Z3MubWF4aW11bVNjYWxlKSk7CisgICAgICAgIH0KKyAgICB9CisKICAgICAvLyBDbGFtcCB2YWx1
ZXMgdG8gcmFuZ2UgZGVmaW5lZCBieSBzcGVjIGFuZCByZXNvbHZlIG1pbmltdW0tc2NhbGUgYW5k
IG1heGltdW0tc2NhbGUgdmFsdWVzCi0gICAgaWYgKGFyZ3Mud2lkdGggIT0gVmlld3BvcnRBcmd1
bWVudHM6OlZhbHVlQXV0bykKKyAgICBpZiAoYXJncy53aWR0aCAhPSBWaWV3cG9ydEFyZ3VtZW50
czo6VmFsdWVBdXRvICYmIGFyZ3MudHlwZSAhPSBWaWV3cG9ydEFyZ3VtZW50czo6Q1NTRGV2aWNl
QWRhcHRhdGlvbikKICAgICAgICAgYXJncy53aWR0aCA9IG1pbihmbG9hdCgxMDAwMCksIG1heChh
cmdzLndpZHRoLCBmbG9hdCgxKSkpOwotICAgIGlmIChhcmdzLmhlaWdodCAhPSBWaWV3cG9ydEFy
Z3VtZW50czo6VmFsdWVBdXRvKQorICAgIGlmIChhcmdzLmhlaWdodCAhPSBWaWV3cG9ydEFyZ3Vt
ZW50czo6VmFsdWVBdXRvICYmIGFyZ3MudHlwZSAhPSBWaWV3cG9ydEFyZ3VtZW50czo6Q1NTRGV2
aWNlQWRhcHRhdGlvbikKICAgICAgICAgYXJncy5oZWlnaHQgPSBtaW4oZmxvYXQoMTAwMDApLCBt
YXgoYXJncy5oZWlnaHQsIGZsb2F0KDEpKSk7CiAKICAgICByZXN1bHQuaW5pdGlhbGx5Rml0VG9W
aWV3cG9ydCA9IGFyZ3MuaW5pdGlhbFNjYWxlID09IFZpZXdwb3J0QXJndW1lbnRzOjpWYWx1ZUF1
dG87CkBAIC0xNDEsOSArMjM1LDE1IEBAIFZpZXdwb3J0QXR0cmlidXRlcyBjb21wdXRlVmlld3Bv
cnRBdHRyaWJ1dGVzKFZpZXdwb3J0QXJndW1lbnRzIGFyZ3MsIGludCBkZXNrdG9wCiAgICAgZWxz
ZQogICAgICAgICBoZWlnaHQgPSB3aWR0aCAqIGF2YWlsYWJsZUhlaWdodCAvIGF2YWlsYWJsZVdp
ZHRoOwogCi0gICAgLy8gRXh0ZW5kIHdpZHRoIGFuZCBoZWlnaHQgdG8gZmlsbCB0aGUgdmlzdWFs
IHZpZXdwb3J0IGZvciB0aGUgcmVzb2x2ZWQgaW5pdGlhbC1zY2FsZS4KLSAgICB3aWR0aCA9IG1h
eDxmbG9hdD4od2lkdGgsIGF2YWlsYWJsZVdpZHRoIC8gcmVzdWx0LmluaXRpYWxTY2FsZSk7Ci0g
ICAgaGVpZ2h0ID0gbWF4PGZsb2F0PihoZWlnaHQsIGF2YWlsYWJsZUhlaWdodCAvIHJlc3VsdC5p
bml0aWFsU2NhbGUpOworICAgIGlmIChhcmdzLnR5cGUgPT0gVmlld3BvcnRBcmd1bWVudHM6OkNT
U0RldmljZUFkYXB0YXRpb24pIHsKKyAgICAgICAgd2lkdGggPSBtYXg8ZmxvYXQ+KHdpZHRoLCAx
KTsKKyAgICAgICAgaGVpZ2h0ID0gbWF4PGZsb2F0PihoZWlnaHQsIDEpOworICAgIH0gZWxzZSB7
CisgICAgICAgIC8vIEV4dGVuZCB3aWR0aCBhbmQgaGVpZ2h0IHRvIGZpbGwgdGhlIHZpc3VhbCB2
aWV3cG9ydCBmb3IgdGhlIHJlc29sdmVkIGluaXRpYWwtc2NhbGUuCisgICAgICAgIHdpZHRoID0g
bWF4PGZsb2F0Pih3aWR0aCwgYXZhaWxhYmxlV2lkdGggLyByZXN1bHQuaW5pdGlhbFNjYWxlKTsK
KyAgICAgICAgaGVpZ2h0ID0gbWF4PGZsb2F0PihoZWlnaHQsIGF2YWlsYWJsZUhlaWdodCAvIHJl
c3VsdC5pbml0aWFsU2NhbGUpOworICAgIH0KKwogICAgIHJlc3VsdC5sYXlvdXRTaXplLnNldFdp
ZHRoKHdpZHRoKTsKICAgICByZXN1bHQubGF5b3V0U2l6ZS5zZXRIZWlnaHQoaGVpZ2h0KTsKIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL1ZpZXdwb3J0QXJndW1lbnRzLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9kb20vVmlld3BvcnRBcmd1bWVudHMuaAppbmRleCAzMjEzOWVlLi5kY2YwMmI4
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vVmlld3BvcnRBcmd1bWVudHMuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9kb20vVmlld3BvcnRBcmd1bWVudHMuaApAQCAtNiw2ICs2LDcgQEAK
ICAqIENvcHlyaWdodCAoQykgMjAwNCwgMjAwNSwgMjAwNiwgMjAwNywgMjAwOCBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKiBDb3B5cmlnaHQgKEMpIDIwMDggVG9yY2ggTW9iaWxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4gKGh0dHA6Ly93d3cudG9yY2htb2JpbGUuY29tLykK
ICAqIENvcHlyaWdodCAoQykgMjAxMCBOb2tpYSBDb3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNp
ZGlhcnkoLWllcykKKyAqIENvcHlyaWdodCAoQykgMjAxMiBJbnRlbCBDb3Jwb3JhdGlvbi4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsg
eW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCiAgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRl
cm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYwpAQCAtNjMsMTMgKzY0LDE2IEBA
IHN0cnVjdCBWaWV3cG9ydEFyZ3VtZW50cyB7CiAgICAgICAgIEhhbmRoZWxkRnJpZW5kbHlNZXRh
LAogICAgICAgICBNb2JpbGVPcHRpbWl6ZWRNZXRhLAogI2VuZGlmCi0gICAgICAgIFZpZXdwb3J0
TWV0YQorICAgICAgICBWaWV3cG9ydE1ldGEsCisgICAgICAgIENTU0RldmljZUFkYXB0YXRpb24K
ICAgICB9IHR5cGU7CiAKICAgICBlbnVtIHsKICAgICAgICAgVmFsdWVBdXRvID0gLTEsCiAgICAg
ICAgIFZhbHVlRGV2aWNlV2lkdGggPSAtMiwKICAgICAgICAgVmFsdWVEZXZpY2VIZWlnaHQgPSAt
MywKKyAgICAgICAgVmFsdWVQb3J0cmFpdCA9IC00LAorICAgICAgICBWYWx1ZUxhbmRzY2FwZSA9
IC01CiAgICAgfTsKIAogICAgIFZpZXdwb3J0QXJndW1lbnRzKFR5cGUgdHlwZSA9IEltcGxpY2l0
KQpAQCAtNzksNyArODMsMTIgQEAgc3RydWN0IFZpZXdwb3J0QXJndW1lbnRzIHsKICAgICAgICAg
LCBtYXhpbXVtU2NhbGUoVmFsdWVBdXRvKQogICAgICAgICAsIHdpZHRoKFZhbHVlQXV0bykKICAg
ICAgICAgLCBoZWlnaHQoVmFsdWVBdXRvKQorICAgICAgICAsIG1pbldpZHRoKFZhbHVlQXV0bykK
KyAgICAgICAgLCBtYXhXaWR0aChWYWx1ZUF1dG8pCisgICAgICAgICwgbWluSGVpZ2h0KFZhbHVl
QXV0bykKKyAgICAgICAgLCBtYXhIZWlnaHQoVmFsdWVBdXRvKQogICAgICAgICAsIHVzZXJTY2Fs
YWJsZShWYWx1ZUF1dG8pCisgICAgICAgICwgb3JpZW50YXRpb24oVmFsdWVBdXRvKQogICAgIHsK
ICAgICB9CiAKQEAgLTg4LDcgKzk3LDEyIEBAIHN0cnVjdCBWaWV3cG9ydEFyZ3VtZW50cyB7CiAg
ICAgZmxvYXQgbWF4aW11bVNjYWxlOwogICAgIGZsb2F0IHdpZHRoOwogICAgIGZsb2F0IGhlaWdo
dDsKKyAgICBmbG9hdCBtaW5XaWR0aDsKKyAgICBmbG9hdCBtYXhXaWR0aDsKKyAgICBmbG9hdCBt
aW5IZWlnaHQ7CisgICAgZmxvYXQgbWF4SGVpZ2h0OwogICAgIGZsb2F0IHVzZXJTY2FsYWJsZTsK
KyAgICBmbG9hdCBvcmllbnRhdGlvbjsKIAogICAgIGJvb2wgb3BlcmF0b3I9PShjb25zdCBWaWV3
cG9ydEFyZ3VtZW50cyYgb3RoZXIpIGNvbnN0CiAgICAgewpAQCAtOTksNyArMTEzLDEyIEBAIHN0
cnVjdCBWaWV3cG9ydEFyZ3VtZW50cyB7CiAgICAgICAgICAgICAmJiBtYXhpbXVtU2NhbGUgPT0g
b3RoZXIubWF4aW11bVNjYWxlCiAgICAgICAgICAgICAmJiB3aWR0aCA9PSBvdGhlci53aWR0aAog
ICAgICAgICAgICAgJiYgaGVpZ2h0ID09IG90aGVyLmhlaWdodAotICAgICAgICAgICAgJiYgdXNl
clNjYWxhYmxlID09IG90aGVyLnVzZXJTY2FsYWJsZTsKKyAgICAgICAgICAgICYmIG1pbldpZHRo
ID09IG90aGVyLm1pbldpZHRoCisgICAgICAgICAgICAmJiBtYXhXaWR0aCA9PSBvdGhlci5tYXhX
aWR0aAorICAgICAgICAgICAgJiYgbWluSGVpZ2h0ID09IG90aGVyLm1pbkhlaWdodAorICAgICAg
ICAgICAgJiYgbWF4SGVpZ2h0ID09IG90aGVyLm1heEhlaWdodAorICAgICAgICAgICAgJiYgdXNl
clNjYWxhYmxlID09IG90aGVyLnVzZXJTY2FsYWJsZQorICAgICAgICAgICAgJiYgb3JpZW50YXRp
b24gPT0gb3RoZXIub3JpZW50YXRpb247CiAgICAgfQogCiAgICAgYm9vbCBvcGVyYXRvciE9KGNv
bnN0IFZpZXdwb3J0QXJndW1lbnRzJiBvdGhlcikgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvRE9NV2luZG93LmlkbCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93
LmlkbAppbmRleCBkZTVlYjdlLi5mMGRmZjRlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
YWdlL0RPTVdpbmRvdy5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuaWRs
CkBAIC0zNDQsNiArMzQ0LDEwIEBACiAgICAgYXR0cmlidXRlIFdlYktpdENTU0ZpbHRlclZhbHVl
Q29uc3RydWN0b3IgV2ViS2l0Q1NTRmlsdGVyVmFsdWU7CiAjZW5kaWYKIAorI2lmIGRlZmluZWQo
RU5BQkxFX0NTU19ERVZJQ0VfQURBUFRBVElPTikgJiYgRU5BQkxFX0NTU19ERVZJQ0VfQURBUFRB
VElPTgorICAgIGF0dHJpYnV0ZSBXZWJLaXRDU1NWaWV3cG9ydFJ1bGVDb25zdHJ1Y3RvciBXZWJL
aXRDU1NWaXdwb3J0UnVsZTsKKyNlbmRpZgorCiAgICAgYXR0cmlidXRlIENTU1J1bGVDb25zdHJ1
Y3RvciBDU1NSdWxlOwogICAgIGF0dHJpYnV0ZSBDU1NDaGFyc2V0UnVsZUNvbnN0cnVjdG9yIENT
U0NoYXJzZXRSdWxlOwogICAgIGF0dHJpYnV0ZSBDU1NGb250RmFjZVJ1bGVDb25zdHJ1Y3RvciBD
U1NGb250RmFjZVJ1bGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dl
YlBhZ2UvV2ViUGFnZS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2Vi
UGFnZS5jcHAKaW5kZXggNjBjYTY3OC4uZDhiYjMxYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcApAQCAtMTAzNCw4ICsxMDM0LDcgQEAgdm9pZCBX
ZWJQYWdlOjpzZXRWaWV3cG9ydFNpemUoY29uc3QgSW50U2l6ZSYgc2l6ZSkKICAgICBpZiAobV92
aWV3cG9ydFNpemUgPT0gc2l6ZSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgIG1fdmlld3BvcnRT
aXplID0gc2l6ZTsKLQorICAgIG1fdmlld3BvcnRTaXplID0gc2l6ZTsKICAgICBzZW5kVmlld3Bv
cnRBdHRyaWJ1dGVzQ2hhbmdlZCgpOwogfQogCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>173689</attachid>
            <date>2012-11-12 12:36:52 -0800</date>
            <delta_ts>2012-11-16 08:53:25 -0800</delta_ts>
            <desc>WIP v2</desc>
            <filename>wip.patch</filename>
            <type>text/plain</type>
            <size>31212</size>
            <attacher name="Thiago Marcos P. Santos">tmpsantos</attacher>
            
              <data encoding="base64">Y29tbWl0IDA3OWEzNzMyNzA3Y2I2OWVhMjRkYWQ0ZTI5MTIzMzU4MmFiMDIwMzAKQXV0aG9yOiBU
aGlhZ28gTWFyY29zIFAuIFNhbnRvcyA8dGhpYWdvLnNhbnRvc0BpbnRlbC5jb20+CkRhdGU6ICAg
RnJpIE9jdCAyNiAxODoyMzoyNyAyMDEyICswMzAwCgogICAgQXBwbHkgdGhlIHJlc29sdmVkIHZp
ZXdwb3J0IHJ1bGVzCiAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
OTU5NjQKCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dCBiL1NvdXJj
ZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CmluZGV4IDA3Y2FhZTQuLmEwNDY3MjIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CisrKyBiL1NvdXJjZS9XZWJDb3JlL0NN
YWtlTGlzdHMudHh0CkBAIC0xMDg1LDYgKzEwODUsNyBAQCBTRVQoV2ViQ29yZV9TT1VSQ0VTCiAg
ICAgY3NzL1NWR0NTU0NvbXB1dGVkU3R5bGVEZWNsYXJhdGlvbi5jcHAKICAgICBjc3MvU1ZHQ1NT
UGFyc2VyLmNwcAogICAgIGNzcy9TVkdDU1NTdHlsZVNlbGVjdG9yLmNwcAorICAgIGNzcy9WaWV3
cG9ydFN0eWxlUmVzb2x2ZXIuY3BwCiAgICAgY3NzL1dlYktpdENTU0ZpbHRlclZhbHVlLmNwcAog
ICAgIGNzcy9XZWJLaXRDU1NLZXlmcmFtZVJ1bGUuY3BwCiAgICAgY3NzL1dlYktpdENTU0tleWZy
YW1lc1J1bGUuY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0
LmFtIGIvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbQppbmRleCBmZDgwYWFiLi4z
ZjM1M2U2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCisr
KyBiL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0KQEAgLTI2NDEsNiArMjY0MSw4
IEBAIHdlYmNvcmVfc291cmNlcyArPSBcCiAJU291cmNlL1dlYkNvcmUvY3NzL1NWR0NTU0NvbXB1
dGVkU3R5bGVEZWNsYXJhdGlvbi5jcHAgXAogCVNvdXJjZS9XZWJDb3JlL2Nzcy9TVkdDU1NQYXJz
ZXIuY3BwIFwKIAlTb3VyY2UvV2ViQ29yZS9jc3MvU1ZHQ1NTU3R5bGVTZWxlY3Rvci5jcHAgXAor
CVNvdXJjZS9XZWJDb3JlL2Nzcy9WaWV3cG9ydFN0eWxlUmVzb2x2ZXIuY3BwIFwKKwlTb3VyY2Uv
V2ViQ29yZS9jc3MvVmlld3BvcnRTdHlsZVJlc29sdmVyLmggXAogICAgIFNvdXJjZS9XZWJDb3Jl
L2Nzcy9XZWJLaXRDU1NBcnJheUZ1bmN0aW9uVmFsdWUuY3BwIFwKICAgICBTb3VyY2UvV2ViQ29y
ZS9jc3MvV2ViS2l0Q1NTQXJyYXlGdW5jdGlvblZhbHVlLmggXAogCVNvdXJjZS9XZWJDb3JlL2Nz
cy9XZWJLaXRDU1NGaWx0ZXJWYWx1ZS5jcHAgXApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
VGFyZ2V0LnByaSBiL1NvdXJjZS9XZWJDb3JlL1RhcmdldC5wcmkKaW5kZXggNjAxMjRhZC4uODgw
ZGQ3NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvVGFyZ2V0LnByaQorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9UYXJnZXQucHJpCkBAIC0zMjcsNiArMzI3LDcgQEAgU09VUkNFUyArPSBcCiAgICAg
Y3NzL1N0eWxlU2hlZXQuY3BwIFwKICAgICBjc3MvU3R5bGVTaGVldENvbnRlbnRzLmNwcCBcCiAg
ICAgY3NzL1N0eWxlU2hlZXRMaXN0LmNwcCBcCisgICAgY3NzL1ZpZXdwb3J0U3R5bGVSZXNvbHZl
ci5jcHAgXAogICAgIGNzcy9XZWJLaXRDU1NBcnJheUZ1bmN0aW9uVmFsdWUuY3BwIFwKICAgICBj
c3MvV2ViS2l0Q1NTRmlsdGVyVmFsdWUuY3BwIFwKICAgICBjc3MvV2ViS2l0Q1NTS2V5ZnJhbWVS
dWxlLmNwcCBcCkBAIC0xNTA2LDYgKzE1MDcsNyBAQCBIRUFERVJTICs9IFwKICAgICBjc3MvU3R5
bGVTaGVldC5oIFwKICAgICBjc3MvU3R5bGVTaGVldENvbnRlbnRzLmggXAogICAgIGNzcy9TdHls
ZVNoZWV0TGlzdC5oIFwKKyAgICBjc3MvVmlld3BvcnRTdHlsZVJlc29sdmVyLmggXAogICAgIGNz
cy9XZWJLaXRDU1NBcnJheUZ1bmN0aW9uVmFsdWUuaCBcCiAgICAgY3NzL1dlYktpdENTU0ZpbHRl
clZhbHVlLmggXAogICAgIGNzcy9XZWJLaXRDU1NLZXlmcmFtZVJ1bGUuaCBcCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5
cGkKaW5kZXggNmZjNWM2MC4uYWFkYzI0MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2Vi
Q29yZS5neXBpCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQpAQCAtMjYyMSw2ICsy
NjIxLDggQEAKICAgICAgICAgICAgICdjc3MvU3R5bGVTaGVldENvbnRlbnRzLmgnLAogICAgICAg
ICAgICAgJ2Nzcy9TdHlsZVNoZWV0TGlzdC5jcHAnLAogICAgICAgICAgICAgJ2Nzcy9TdHlsZVNo
ZWV0TGlzdC5oJywKKyAgICAgICAgICAgICdjc3MvVmlld3BvcnRTdHlsZVJlc29sdmVyLmNwcCcs
CisgICAgICAgICAgICAnY3NzL1ZpZXdwb3J0U3R5bGVSZXNvbHZlci5oJywKICAgICAgICAgICAg
ICdjc3MvV2ViS2l0Q1NTQXJyYXlGdW5jdGlvblZhbHVlLmNwcCcsCiAgICAgICAgICAgICAnY3Nz
L1dlYktpdENTU0FycmF5RnVuY3Rpb25WYWx1ZS5oJywKICAgICAgICAgICAgICdjc3MvV2ViS2l0
Q1NTRmlsdGVyVmFsdWUuY3BwJywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUu
dmNwcm9qL1dlYkNvcmUudmNwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2Vi
Q29yZS52Y3Byb2oKaW5kZXggYjZiZmFkMS4uMWE2YWMyMCAxMDA3NTUKLS0tIGEvU291cmNlL1dl
YkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oKKysrIGIvU291cmNlL1dlYkNvcmUv
V2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oKQEAgLTM4MDMxLDYgKzM4MDMxLDE0IEBACiAJ
CQkJPgogCQkJPC9GaWxlPgogCQkJPEZpbGUKKwkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGNzc1xWaWV3
cG9ydFN0eWxlUmVzb2x2ZXIuY3BwIgorCQkJCT4KKwkJCTwvRmlsZT4KKwkJCTxGaWxlCisJCQkJ
UmVsYXRpdmVQYXRoPSIuLlxjc3NcVmlld3BvcnRTdHlsZVJlc29sdmVyLmgiCisJCQkJPgorCQkJ
PC9GaWxlPgorCQkJPEZpbGUKIAkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGNzc1xXZWJLaXRDU1NBcnJh
eUZ1bmN0aW9uVmFsdWUuY3BwIgogCQkJCT4KIAkJCTwvRmlsZT4KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJD
b3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCA5NDRkNjIxLi5lNWE3
ODMzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qCkBAIC0xMDM0LDYgKzEwMzQsOCBAQAogCQkzQzI0NEZFQkEzNzVBQzYzM0Y4OEJFNkYg
LyogUmVuZGVyTGF5ZXJNb2RlbE9iamVjdC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSAzQzI0NEZFNUEzNzVBQzYzM0Y4OEJFNkYgLyogUmVuZGVyTGF5
ZXJNb2RlbE9iamVjdC5jcHAgKi87IH07CiAJCTNGRkZGOUE4MTU5RDlBNTUwMDIwQkJENSAvKiBX
ZWJLaXRDU1NWaWV3cG9ydFJ1bGUuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gM0ZGRkY5QTYxNTlEOUE1NTAwMjBCQkQ1IC8qIFdlYktpdENTU1ZpZXdw
b3J0UnVsZS5jcHAgKi87IH07CiAJCTNGRkZGOUE5MTU5RDlBNTUwMDIwQkJENSAvKiBXZWJLaXRD
U1NWaWV3cG9ydFJ1bGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDNGRkZGOUE3MTU5RDlBNTUwMDIwQkJENSAvKiBXZWJLaXRDU1NWaWV3cG9ydFJ1bGUu
aCAqLzsgfTsKKwkJM0ZGRkY5QUQxNTlEOUIwNjAwMjBCQkQ1IC8qIFZpZXdwb3J0U3R5bGVSZXNv
bHZlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAz
RkZGRjlBQjE1OUQ5QjA2MDAyMEJCRDUgLyogVmlld3BvcnRTdHlsZVJlc29sdmVyLmNwcCAqLzsg
fTsKKwkJM0ZGRkY5QUUxNTlEOUIwNjAwMjBCQkQ1IC8qIFZpZXdwb3J0U3R5bGVSZXNvbHZlci5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gM0ZGRkY5QUMx
NTlEOUIwNjAwMjBCQkQ1IC8qIFZpZXdwb3J0U3R5bGVSZXNvbHZlci5oICovOyB9OwogCQk0MTAw
MkNDRDBGNjZFREVGMDA5RTY2MEQgLyogU2NyaXB0RnVuY3Rpb25DYWxsLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0MTAwMkNDQjBGNjZFREVGMDA5RTY2
MEQgLyogU2NyaXB0RnVuY3Rpb25DYWxsLmggKi87IH07CiAJCTQxMDAyQ0NFMEY2NkVERUYwMDlF
NjYwRCAvKiBTY3JpcHRGdW5jdGlvbkNhbGwuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gNDEwMDJDQ0MwRjY2RURFRjAwOUU2NjBEIC8qIFNjcmlwdEZ1
bmN0aW9uQ2FsbC5jcHAgKi87IH07CiAJCTQxMEI3RTcyMTA0NUZBQjAwMEQ4MjI0RiAvKiBKU01l
c3NhZ2VFdmVudEN1c3RvbS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA0MTBCN0U3MTEwNDVGQUIwMDBEODIyNEYgLyogSlNNZXNzYWdlRXZlbnRDdXN0
b20uY3BwICovOyB9OwpAQCAtODE5Miw2ICs4MTk0LDggQEAKIAkJM0MyNDRGRTVBMzc1QUM2MzNG
ODhCRTZGIC8qIFJlbmRlckxheWVyTW9kZWxPYmplY3QuY3BwICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAuY3BwOyBwYXRoID0gUmVuZGVyTGF5ZXJNb2RlbE9iamVjdC5jcHA7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTNGRkZGOUE2MTU5RDlBNTUwMDIwQkJENSAvKiBXZWJLaXRDU1NW
aWV3cG9ydFJ1bGUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV2Vi
S2l0Q1NTVmlld3BvcnRSdWxlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJM0ZG
RkY5QTcxNTlEOUE1NTAwMjBCQkQ1IC8qIFdlYktpdENTU1ZpZXdwb3J0UnVsZS5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJLaXRDU1NWaWV3cG9ydFJ1bGUuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJM0ZGRkY5QUIxNTlEOUIwNjAwMjBCQkQ1IC8qIFZpZXdw
b3J0U3R5bGVSZXNvbHZlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGgg
PSBWaWV3cG9ydFN0eWxlUmVzb2x2ZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owor
CQkzRkZGRjlBQzE1OUQ5QjA2MDAyMEJCRDUgLyogVmlld3BvcnRTdHlsZVJlc29sdmVyLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFZpZXdwb3J0U3R5bGVSZXNvbHZlci5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0MTAwMkNDQjBGNjZFREVGMDA5RTY2MEQgLyog
U2NyaXB0RnVuY3Rpb25DYWxsLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNj
cmlwdEZ1bmN0aW9uQ2FsbC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0MTAwMkND
QzBGNjZFREVGMDA5RTY2MEQgLyogU2NyaXB0RnVuY3Rpb25DYWxsLmNwcCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFNjcmlwdEZ1bmN0aW9uQ2FsbC5jcHA7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQxMEI3RTcxMTA0NUZBQjAwMEQ4MjI0RiAvKiBKU01lc3Nh
Z2VFdmVudEN1c3RvbS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBK
U01lc3NhZ2VFdmVudEN1c3RvbS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0y
MTM5NSw2ICsyMTM5OSw4IEBACiAJCQkJQjIyMjdCMDMwRDAwQkZGMTAwNzFCNzgyIC8qIFNWR0NT
U1N0eWxlU2VsZWN0b3IuY3BwICovLAogCQkJCUIyMjI3QjA0MEQwMEJGRjEwMDcxQjc4MiAvKiBT
VkdDU1NWYWx1ZUtleXdvcmRzLmluICovLAogCQkJCUJDNUVDMTc2MEE1MDdFM0UwMDYwMDdGNSAv
KiB2aWV3LXNvdXJjZS5jc3MgKi8sCisJCQkJM0ZGRkY5QUIxNTlEOUIwNjAwMjBCQkQ1IC8qIFZp
ZXdwb3J0U3R5bGVSZXNvbHZlci5jcHAgKi8sCisJCQkJM0ZGRkY5QUMxNTlEOUIwNjAwMjBCQkQ1
IC8qIFZpZXdwb3J0U3R5bGVSZXNvbHZlci5oICovLAogCQkJCTE1MEI5MjM3MTVGMDhEQzQwMEUx
MDk4NiAvKiBXZWJLaXRDU1NBcnJheUZ1bmN0aW9uVmFsdWUuY3BwICovLAogCQkJCTE1MEI5MjM4
MTVGMDhEQzQwMEUxMDk4NiAvKiBXZWJLaXRDU1NBcnJheUZ1bmN0aW9uVmFsdWUuaCAqLywKIAkJ
CQkzMTA2MDM2QzE0MzI3RDJFMDBBQkY0QkEgLyogV2ViS2l0Q1NTRmlsdGVyVmFsdWUuY3BwICov
LApAQCAtMjU2OTIsNiArMjU2OTgsNyBAQAogCQkJCUFBQzA4Q0YzMTVGOTQxRkQwMEYxRTE4OCAv
KiBBY2Nlc3NpYmlsaXR5U1ZHUm9vdC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTA5MzMzNTAxNjNC
MEU0MzAwMDk5QTYwIC8qIEN1c3RvbUZpbHRlclBhcmFtZXRlckxpc3QuaCBpbiBIZWFkZXJzICov
LAogCQkJCTUwRDMyODU4MTYzQjMxM0YwMDE2MTExRSAvKiBWYWxpZGF0ZWRDdXN0b21GaWx0ZXJP
cGVyYXRpb24uaCBpbiBIZWFkZXJzICovLAorCQkJCTNGRkZGOUFFMTU5RDlCMDYwMDIwQkJENSAv
KiBWaWV3cG9ydFN0eWxlUmVzb2x2ZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTNGRkZGOUE5MTU5
RDlBNTUwMDIwQkJENSAvKiBXZWJLaXRDU1NWaWV3cG9ydFJ1bGUuaCBpbiBIZWFkZXJzICovLAog
CQkJCTkzQzM4QkZGMTY0NDczQzcwMDA5MUVCMiAvKiBTY3JvbGxpbmdTdGF0ZUZpeGVkTm9kZS5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJOTNDMzhDMDMxNjQ0NzNERDAwMDkxRUIyIC8qIFNjcm9sbGlu
Z1RyZWVGaXhlZE5vZGUuaCBpbiBIZWFkZXJzICovLApAQCAtMjg3NzMsNiArMjg3ODAsNyBAQAog
CQkJCTkzRjE5QjA1MDgyNDVFNTkwMDFFOUFCQyAvKiBYU0xUUHJvY2Vzc29yTGlieHNsdC5jcHAg
aW4gU291cmNlcyAqLywKIAkJCQlFMUJFNTEyRDBDRjZDNTEyMDAyRUE5NTkgLyogWFNMVFVuaWNv
ZGVTb3J0LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTk3N0UyRTBFMTJGMEZDOUMwMEMxMzM3OSAv
KiBYU1NBdWRpdG9yLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTNGRkZGOUFEMTU5RDlCMDYwMDIw
QkJENSAvKiBWaWV3cG9ydFN0eWxlUmVzb2x2ZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJRkQ1
MzczNTIxMzdCNjUxODAwMDA4RENFIC8qIFplcm9Qb2xlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJ
CTUxQUJGNjREMTYzOTJFMjgwMDEzMkE3QSAvKiBMb2FkZXJTdHJhdGVneS5jcHAgaW4gU291cmNl
cyAqLywKIAkJCQk1MDkzMzM0RjE2M0IwRTQzMDAwOTlBNjAgLyogQ3VzdG9tRmlsdGVyUGFyYW1l
dGVyTGlzdC5jcHAgaW4gU291cmNlcyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nz
cy9DU1NBbGxJbk9uZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTQWxsSW5PbmUuY3BwCmlu
ZGV4IDg0ZjlmZTcuLjQ3OWQ4ZGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NB
bGxJbk9uZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU0FsbEluT25lLmNwcApAQCAt
NzMsMyArNzMsNCBAQAogI2luY2x1ZGUgIlN0eWxlUHJvcGVydHlTaG9ydGhhbmQuY3BwIgogI2lu
Y2x1ZGUgIlN0eWxlUmVzb2x2ZXIuY3BwIgogI2luY2x1ZGUgIlN0eWxlU2NvcGVSZXNvbHZlci5j
cHAiCisjaW5jbHVkZSAiVmlld3BvcnRTdHlsZVJlc29sdmVyLmNwcCIKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2Nzcy9SdWxlU2V0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9SdWxlU2V0
LmNwcAppbmRleCAzNzJlZmRiLi45YTc4YzBmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9j
c3MvUnVsZVNldC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL1J1bGVTZXQuY3BwCkBAIC0z
MTIsNiArMzEyLDE0IEBAIHZvaWQgUnVsZVNldDo6YWRkUnVsZXNGcm9tU2hlZXQoU3R5bGVTaGVl
dENvbnRlbnRzKiBzaGVldCwgY29uc3QgTWVkaWFRdWVyeUV2YWx1CiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgICAgICAgICAgICAgICAgICByZXNvbHZlci0+
YWRkS2V5ZnJhbWVTdHlsZShzdGF0aWNfY2FzdDxTdHlsZVJ1bGVLZXlmcmFtZXMqPihjaGlsZFJ1
bGUpKTsKICAgICAgICAgICAgICAgICAgICAgfQorI2lmIEVOQUJMRShDU1NfREVWSUNFX0FEQVBU
QVRJT04pCisgICAgICAgICAgICAgICAgICAgIGVsc2UgaWYgKGNoaWxkUnVsZS0+aXNWaWV3cG9y
dFJ1bGUoKSAmJiByZXNvbHZlciAmJiAhcmVzb2x2ZXItPmFmZmVjdGVkQnlWaWV3cG9ydENoYW5n
ZSgpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAvLyBAdmlld3BvcnQgc2hvdWxkIG5vdCBi
ZSBzY29wZWQuCisgICAgICAgICAgICAgICAgICAgICAgICBpZiAoc2NvcGUpCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICAgICAgICAgICAgICByZXNv
bHZlci0+dmlld3BvcnRTdHlsZVJlc29sdmVyKCktPmFkZFZpZXdwb3J0UnVsZShzdGF0aWNfY2Fz
dDxTdHlsZVJ1bGVWaWV3cG9ydCo+KGNoaWxkUnVsZSkpOworICAgICAgICAgICAgICAgICAgICB9
CisjZW5kaWYKICAgICAgICAgICAgICAgICB9IC8vIGZvciBydWxlcwogICAgICAgICAgICAgfSAv
LyBpZiBydWxlcwogICAgICAgICB9IGVsc2UgaWYgKHJ1bGUtPmlzRm9udEZhY2VSdWxlKCkgJiYg
cmVzb2x2ZXIpIHsKQEAgLTM0MCw2ICszNDgsMTQgQEAgdm9pZCBSdWxlU2V0OjphZGRSdWxlc0Zy
b21TaGVldChTdHlsZVNoZWV0Q29udGVudHMqIHNoZWV0LCBjb25zdCBNZWRpYVF1ZXJ5RXZhbHUK
ICAgICAgICAgZWxzZSBpZiAocnVsZS0+aXNIb3N0UnVsZSgpKQogICAgICAgICAgICAgcmVzb2x2
ZXItPmFkZEhvc3RSdWxlKHN0YXRpY19jYXN0PFN0eWxlUnVsZUhvc3QqPihydWxlKSwgaGFzRG9j
dW1lbnRTZWN1cml0eU9yaWdpbiwgc2NvcGUpOwogI2VuZGlmCisjaWYgRU5BQkxFKENTU19ERVZJ
Q0VfQURBUFRBVElPTikKKyAgICAgICAgZWxzZSBpZiAocnVsZS0+aXNWaWV3cG9ydFJ1bGUoKSAm
JiByZXNvbHZlcikgeworICAgICAgICAgICAgLy8gQHZpZXdwb3J0IHNob3VsZCBub3QgYmUgc2Nv
cGVkLgorICAgICAgICAgICAgaWYgKHNjb3BlKQorICAgICAgICAgICAgICAgIGNvbnRpbnVlOwor
ICAgICAgICAgICAgcmVzb2x2ZXItPnZpZXdwb3J0U3R5bGVSZXNvbHZlcigpLT5hZGRWaWV3cG9y
dFJ1bGUoc3RhdGljX2Nhc3Q8U3R5bGVSdWxlVmlld3BvcnQqPihydWxlKSk7CisgICAgICAgIH0K
KyNlbmRpZgogICAgIH0KICAgICBpZiAobV9hdXRvU2hyaW5rVG9GaXRFbmFibGVkKQogICAgICAg
ICBzaHJpbmtUb0ZpdCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlUmVz
b2x2ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlUmVzb2x2ZXIuY3BwCmluZGV4IGVj
YTY5YWEuLjk3Y2E3NTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVJlc29s
dmVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVSZXNvbHZlci5jcHAKQEAgLTEy
Myw2ICsxMjMsNyBAQAogI2luY2x1ZGUgIlRyYW5zZm9ybWF0aW9uTWF0cml4LmgiCiAjaW5jbHVk
ZSAiVHJhbnNsYXRlVHJhbnNmb3JtT3BlcmF0aW9uLmgiCiAjaW5jbHVkZSAiVXNlckFnZW50U3R5
bGVTaGVldHMuaCIKKyNpbmNsdWRlICJWaWV3cG9ydFN0eWxlUmVzb2x2ZXIuaCIKICNpbmNsdWRl
ICJXZWJDb3JlTWVtb3J5SW5zdHJ1bWVudGF0aW9uLmgiCiAjaW5jbHVkZSAiV2ViS2l0Q1NTS2V5
ZnJhbWVSdWxlLmgiCiAjaW5jbHVkZSAiV2ViS2l0Q1NTS2V5ZnJhbWVzUnVsZS5oIgpAQCAtMjgz
LDYgKzI4NCw5IEBAIFN0eWxlUmVzb2x2ZXI6OlN0eWxlUmVzb2x2ZXIoRG9jdW1lbnQqIGRvY3Vt
ZW50LCBib29sIG1hdGNoQXV0aG9yQW5kVXNlclN0eWxlcykKICAgICAsIG1fc2FtZU9yaWdpbk9u
bHkoZmFsc2UpCiAgICAgLCBtX2Rpc3RyaWJ1dGVkVG9JbnNlcnRpb25Qb2ludChmYWxzZSkKICAg
ICAsIG1fZm9udFNlbGVjdG9yKENTU0ZvbnRTZWxlY3Rvcjo6Y3JlYXRlKGRvY3VtZW50KSkKKyNp
ZiBFTkFCTEUoQ1NTX0RFVklDRV9BREFQVEFUSU9OKQorICAgICwgbV92aWV3cG9ydFN0eWxlUmVz
b2x2ZXIoVmlld3BvcnRTdHlsZVJlc29sdmVyOjpjcmVhdGUoZG9jdW1lbnQpKQorI2VuZGlmCiAg
ICAgLCBtX2FwcGx5UHJvcGVydHlUb1JlZ3VsYXJTdHlsZSh0cnVlKQogICAgICwgbV9hcHBseVBy
b3BlcnR5VG9WaXNpdGVkTGlua1N0eWxlKGZhbHNlKQogICAgICwgbV9zdHlsZUJ1aWxkZXIoU3R5
bGVCdWlsZGVyOjpzaGFyZWRTdHlsZUJ1aWxkZXIoKSkKQEAgLTQxOSw2ICs0MjMsMTAgQEAgdm9p
ZCBTdHlsZVJlc29sdmVyOjphcHBlbmRBdXRob3JTdHlsZVNoZWV0cyh1bnNpZ25lZCBmaXJzdE5l
dywgY29uc3QgVmVjdG9yPFJlZlAKICAgICAKICAgICBpZiAoZG9jdW1lbnQoKS0+cmVuZGVyZXIo
KSAmJiBkb2N1bWVudCgpLT5yZW5kZXJlcigpLT5zdHlsZSgpKQogICAgICAgICBkb2N1bWVudCgp
LT5yZW5kZXJlcigpLT5zdHlsZSgpLT5mb250KCkudXBkYXRlKGZvbnRTZWxlY3RvcigpKTsKKwor
I2lmIEVOQUJMRShDU1NfREVWSUNFX0FEQVBUQVRJT04pCisgICAgdmlld3BvcnRTdHlsZVJlc29s
dmVyKCktPnJlc29sdmUoKTsKKyNlbmRpZgogfQogCiB2b2lkIFN0eWxlUmVzb2x2ZXI6OnB1c2hQ
YXJlbnRFbGVtZW50KEVsZW1lbnQqIHBhcmVudCkKQEAgLTQ3Myw2ICs0ODEsMTAgQEAgdm9pZCBT
dHlsZVJlc29sdmVyOjphZGRLZXlmcmFtZVN0eWxlKFBhc3NSZWZQdHI8U3R5bGVSdWxlS2V5ZnJh
bWVzPiBydWxlKQogU3R5bGVSZXNvbHZlcjo6flN0eWxlUmVzb2x2ZXIoKQogewogICAgIG1fZm9u
dFNlbGVjdG9yLT5jbGVhckRvY3VtZW50KCk7CisKKyNpZiBFTkFCTEUoQ1NTX0RFVklDRV9BREFQ
VEFUSU9OKQorICAgIG1fdmlld3BvcnRTdHlsZVJlc29sdmVyLT5jbGVhckRvY3VtZW50KCk7Cisj
ZW5kaWYKIH0KIAogdm9pZCBTdHlsZVJlc29sdmVyOjpzd2VlcE1hdGNoZWRQcm9wZXJ0aWVzQ2Fj
aGUoVGltZXI8U3R5bGVSZXNvbHZlcj4qKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3Nz
L1N0eWxlUmVzb2x2ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVJlc29sdmVyLmgKaW5k
ZXggZjc2OTkzNC4uN2YxMjUyMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxl
UmVzb2x2ZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVSZXNvbHZlci5oCkBAIC0z
Myw2ICszMyw3IEBACiAjaW5jbHVkZSAiU2VsZWN0b3JDaGVja2VyLmgiCiAjaW5jbHVkZSAiU3R5
bGVJbmhlcml0ZWREYXRhLmgiCiAjaW5jbHVkZSAiU3R5bGVTY29wZVJlc29sdmVyLmgiCisjaW5j
bHVkZSAiVmlld3BvcnRTdHlsZVJlc29sdmVyLmgiCiAjaW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4K
ICNpbmNsdWRlIDx3dGYvSGFzaFNldC5oPgogI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KQEAgLTky
LDYgKzkzLDcgQEAgY2xhc3MgU3R5bGVTaGVldDsKIGNsYXNzIFN0eWxlU2hlZXRDb250ZW50czsK
IGNsYXNzIFN0eWxlU2hlZXRMaXN0OwogY2xhc3MgU3R5bGVkRWxlbWVudDsKK2NsYXNzIFZpZXdw
b3J0U3R5bGVSZXNvbHZlcjsKIGNsYXNzIFdlYktpdENTU0ZpbHRlclZhbHVlOwogY2xhc3MgV2Vi
S2l0Q1NTU2hhZGVyVmFsdWU7CiBjbGFzcyBXZWJLaXRDU1NTVkdEb2N1bWVudFZhbHVlOwpAQCAt
MjQ1LDYgKzI0Nyw5IEBAIHB1YmxpYzoKICAgICBib29sIGhhc1NlbGVjdG9yRm9yQXR0cmlidXRl
KGNvbnN0IEF0b21pY1N0cmluZyYpIGNvbnN0OwogCiAgICAgQ1NTRm9udFNlbGVjdG9yKiBmb250
U2VsZWN0b3IoKSBjb25zdCB7IHJldHVybiBtX2ZvbnRTZWxlY3Rvci5nZXQoKTsgfQorI2lmIEVO
QUJMRShDU1NfREVWSUNFX0FEQVBUQVRJT04pCisgICAgVmlld3BvcnRTdHlsZVJlc29sdmVyKiB2
aWV3cG9ydFN0eWxlUmVzb2x2ZXIoKSB7IHJldHVybiBtX3ZpZXdwb3J0U3R5bGVSZXNvbHZlci5n
ZXQoKTsgfQorI2VuZGlmCiAKICAgICB2b2lkIGFkZFZpZXdwb3J0RGVwZW5kZW50TWVkaWFRdWVy
eVJlc3VsdChjb25zdCBNZWRpYVF1ZXJ5RXhwKiwgYm9vbCByZXN1bHQpOwogICAgIGJvb2wgaGFz
Vmlld3BvcnREZXBlbmRlbnRNZWRpYVF1ZXJpZXMoKSBjb25zdCB7IHJldHVybiAhbV92aWV3cG9y
dERlcGVuZGVudE1lZGlhUXVlcnlSZXN1bHRzLmlzRW1wdHkoKTsgfQpAQCAtNDkzLDYgKzQ5OCwx
MCBAQCBwcml2YXRlOgogICAgIFJlZlB0cjxDU1NGb250U2VsZWN0b3I+IG1fZm9udFNlbGVjdG9y
OwogICAgIFZlY3RvcjxPd25QdHI8TWVkaWFRdWVyeVJlc3VsdD4gPiBtX3ZpZXdwb3J0RGVwZW5k
ZW50TWVkaWFRdWVyeVJlc3VsdHM7CiAKKyNpZiBFTkFCTEUoQ1NTX0RFVklDRV9BREFQVEFUSU9O
KQorICAgIFJlZlB0cjxWaWV3cG9ydFN0eWxlUmVzb2x2ZXI+IG1fdmlld3BvcnRTdHlsZVJlc29s
dmVyOworI2VuZGlmCisKICAgICBib29sIG1fYXBwbHlQcm9wZXJ0eVRvUmVndWxhclN0eWxlOwog
ICAgIGJvb2wgbV9hcHBseVByb3BlcnR5VG9WaXNpdGVkTGlua1N0eWxlOwogICAgIGNvbnN0IFN0
eWxlQnVpbGRlciYgbV9zdHlsZUJ1aWxkZXI7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9j
c3MvVmlld3BvcnRTdHlsZVJlc29sdmVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9WaWV3cG9y
dFN0eWxlUmVzb2x2ZXIuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmFi
MjM0NGYKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvVmlld3BvcnRTdHls
ZVJlc29sdmVyLmNwcApAQCAtMCwwICsxLDE3MSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAx
MiBJbnRlbCBDb3Jwb3JhdGlvbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqCisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlCisgKiAgICBjb3B5cmlnaHQgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZworICogICAgZGlz
Y2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUKKyAqICAgIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nCisgKiAgICBkaXNjbGFpbWVyIGluIHRoZSBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMKKyAqICAgIHByb3ZpZGVkIHdpdGggdGhlIGRp
c3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZ
UklHSFQgSE9MREVSIOKAnEFTIElT4oCdIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVE
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZ
UklHSFQgSE9MREVSIEJFCisgKiBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksCisgKiBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRT
OyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKyAq
IFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SCisgKiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YKKyAqIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRgorICogU1VDSCBEQU1BR0UuCisgKi8KKwor
I2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlZpZXdwb3J0U3R5bGVSZXNvbHZlci5oIgor
CisjaWYgRU5BQkxFKENTU19ERVZJQ0VfQURBUFRBVElPTikKKworI2luY2x1ZGUgIkNTU1ZhbHVl
S2V5d29yZHMuaCIKKyNpbmNsdWRlICJEb2N1bWVudC5oIgorI2luY2x1ZGUgIlBhZ2UuaCIKKyNp
bmNsdWRlICJSZW5kZXJWaWV3LmgiCisjaW5jbHVkZSAiU3R5bGVQcm9wZXJ0eVNldC5oIgorI2lu
Y2x1ZGUgIlN0eWxlUnVsZS5oIgorI2luY2x1ZGUgIlZpZXdwb3J0QXJndW1lbnRzLmgiCisKK25h
bWVzcGFjZSBXZWJDb3JlIHsKKworVmlld3BvcnRTdHlsZVJlc29sdmVyOjpWaWV3cG9ydFN0eWxl
UmVzb2x2ZXIoRG9jdW1lbnQqIGRvY3VtZW50KQorICAgIDogbV9kb2N1bWVudChkb2N1bWVudCkK
K3sKKyAgICBBU1NFUlQobV9kb2N1bWVudCk7CisKKyAgICBtX2luaXRpYWxWaWV3cG9ydFNpemUu
c2V0V2lkdGgobV9kb2N1bWVudC0+dmlld3BvcnRTaXplKCkud2lkdGgoKSk7CisgICAgbV9pbml0
aWFsVmlld3BvcnRTaXplLnNldEhlaWdodChtX2RvY3VtZW50LT52aWV3cG9ydFNpemUoKS5oZWln
aHQoKSk7CisKKyAgICBmbG9hdCBkZXZpY2VTY2FsZUZhY3RvciA9IDA7CisgICAgaWYgKG1fZG9j
dW1lbnQtPnBhZ2UoKSkKKyAgICAgICAgZGV2aWNlU2NhbGVGYWN0b3IgPSBtX2RvY3VtZW50LT5w
YWdlKCktPmRldmljZVNjYWxlRmFjdG9yKCk7CisKKyAgICBpZiAoZGV2aWNlU2NhbGVGYWN0b3Ig
JiYgZGV2aWNlU2NhbGVGYWN0b3IgIT0gMSkKKyAgICAgICAgbV9pbml0aWFsVmlld3BvcnRTaXpl
LnNjYWxlKDEuZiAvIGRldmljZVNjYWxlRmFjdG9yKTsKK30KKwordm9pZCBWaWV3cG9ydFN0eWxl
UmVzb2x2ZXI6OmFkZFZpZXdwb3J0UnVsZShTdHlsZVJ1bGVWaWV3cG9ydCogdmlld3BvcnRSdWxl
KQoreworICAgIFN0eWxlUHJvcGVydHlTZXQqIHByb3BlcnR5U2V0ID0gdmlld3BvcnRSdWxlLT5t
dXRhYmxlUHJvcGVydGllcygpOworCisgICAgdW5zaWduZWQgcHJvcGVydHlDb3VudCA9IHByb3Bl
cnR5U2V0LT5wcm9wZXJ0eUNvdW50KCk7CisgICAgaWYgKCFwcm9wZXJ0eUNvdW50KQorICAgICAg
ICByZXR1cm47CisKKyAgICBpZiAoIW1fcHJvcGVydHlTZXQpIHsKKyAgICAgICAgbV9wcm9wZXJ0
eVNldCA9IHByb3BlcnR5U2V0LT5jb3B5KCk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAg
ICAvLyBXZSBjYW5ub3QgdXNlIG1lcmdlQW5kT3ZlcnJpZGVPbkNvbmZsaWN0KCkgaGVyZSBiZWNh
dXNlIGl0IGRvZXNuJ3QKKyAgICAvLyByZXNwZWN0IHRoZSAhaW1wb3J0YW50IGRlY2xhcmF0aW9u
IChidXQgYWRkUGFyc2VkUHJvcGVydHkoKSBkb2VzKS4KKyAgICBmb3IgKHVuc2lnbmVkIGkgPSAw
OyBpIDwgcHJvcGVydHlDb3VudDsgKytpKQorICAgICAgICBtX3Byb3BlcnR5U2V0LT5hZGRQYXJz
ZWRQcm9wZXJ0eShwcm9wZXJ0eVNldC0+cHJvcGVydHlBdChpKS50b0NTU1Byb3BlcnR5KCkpOwor
fQorCit2b2lkIFZpZXdwb3J0U3R5bGVSZXNvbHZlcjo6Y2xlYXJEb2N1bWVudCgpCit7CisgICAg
bV9kb2N1bWVudCA9IDA7Cit9CisKK3ZvaWQgVmlld3BvcnRTdHlsZVJlc29sdmVyOjpyZXNvbHZl
KCkKK3sKKyAgICBpZiAoIW1fZG9jdW1lbnQgfHwgIW1fcHJvcGVydHlTZXQpCisgICAgICAgIHJl
dHVybjsKKworICAgIFZpZXdwb3J0QXJndW1lbnRzIGFyZ3VtZW50cyhWaWV3cG9ydEFyZ3VtZW50
czo6Q1NTRGV2aWNlQWRhcHRhdGlvbik7CisKKyAgICBhcmd1bWVudHMudXNlclNjYWxhYmxlID0g
Z2V0Vmlld3BvcnRBcmd1bWVudFZhbHVlKENTU1Byb3BlcnR5VXNlclpvb20pOworICAgIGFyZ3Vt
ZW50cy5pbml0aWFsU2NhbGUgPSBnZXRWaWV3cG9ydEFyZ3VtZW50VmFsdWUoQ1NTUHJvcGVydHla
b29tKTsKKyAgICBhcmd1bWVudHMubWluaW11bVNjYWxlID0gZ2V0Vmlld3BvcnRBcmd1bWVudFZh
bHVlKENTU1Byb3BlcnR5TWluWm9vbSk7CisgICAgYXJndW1lbnRzLm1heGltdW1TY2FsZSA9IGdl
dFZpZXdwb3J0QXJndW1lbnRWYWx1ZShDU1NQcm9wZXJ0eU1heFpvb20pOworICAgIGFyZ3VtZW50
cy5taW5XaWR0aCA9IGdldFZpZXdwb3J0QXJndW1lbnRWYWx1ZShDU1NQcm9wZXJ0eU1pbldpZHRo
KTsKKyAgICBhcmd1bWVudHMubWF4V2lkdGggPSBnZXRWaWV3cG9ydEFyZ3VtZW50VmFsdWUoQ1NT
UHJvcGVydHlNYXhXaWR0aCk7CisgICAgYXJndW1lbnRzLm1pbkhlaWdodCA9IGdldFZpZXdwb3J0
QXJndW1lbnRWYWx1ZShDU1NQcm9wZXJ0eU1pbkhlaWdodCk7CisgICAgYXJndW1lbnRzLm1heEhl
aWdodCA9IGdldFZpZXdwb3J0QXJndW1lbnRWYWx1ZShDU1NQcm9wZXJ0eU1heEhlaWdodCk7Cisg
ICAgYXJndW1lbnRzLm9yaWVudGF0aW9uID0gZ2V0Vmlld3BvcnRBcmd1bWVudFZhbHVlKENTU1By
b3BlcnR5T3JpZW50YXRpb24pOworCisgICAgbV9kb2N1bWVudC0+c2V0Vmlld3BvcnRBcmd1bWVu
dHMoYXJndW1lbnRzKTsKKyAgICBtX2RvY3VtZW50LT51cGRhdGVWaWV3cG9ydEFyZ3VtZW50cygp
OworCisgICAgbV9wcm9wZXJ0eVNldCA9IDA7Cit9CisKK2Zsb2F0IFZpZXdwb3J0U3R5bGVSZXNv
bHZlcjo6Z2V0Vmlld3BvcnRBcmd1bWVudFZhbHVlKENTU1Byb3BlcnR5SUQgaWQpIGNvbnN0Cit7
CisgICAgZmxvYXQgZGVmYXVsdFZhbHVlID0gVmlld3BvcnRBcmd1bWVudHM6OlZhbHVlQXV0bzsK
KworICAgIC8vIFVzZXJab29tIGRlZmF1bHQgdmFsdWUgaXMgQ1NTVmFsdWVab29tLCB3aGljaCBt
YXBzIHRvIHRydWUsIG1lYW5pbmcgdGhhdAorICAgIC8vIHllcywgaXQgaXMgdXNlciBzY2FsYWJs
ZS4gV2hlbiB0aGUgdmFsdWUgaXMgc2V0IHRvIENTU1ZhbHVlRml4ZWQsIHdlCisgICAgLy8gcmV0
dXJuIGZhbHNlLgorICAgIGlmIChpZCA9PSBDU1NQcm9wZXJ0eVVzZXJab29tKQorICAgICAgICBk
ZWZhdWx0VmFsdWUgPSAxOworCisgICAgUmVmUHRyPENTU1ZhbHVlPiB2YWx1ZSA9IG1fcHJvcGVy
dHlTZXQtPmdldFByb3BlcnR5Q1NTVmFsdWUoaWQpOworICAgIGlmICghdmFsdWUgfHwgIXZhbHVl
LT5pc1ByaW1pdGl2ZVZhbHVlKCkpCisgICAgICAgIHJldHVybiBkZWZhdWx0VmFsdWU7CisKKyAg
ICBDU1NQcmltaXRpdmVWYWx1ZSogcHJpbWl0aXZlVmFsdWUgPSBzdGF0aWNfY2FzdDxDU1NQcmlt
aXRpdmVWYWx1ZSo+KHZhbHVlLmdldCgpKTsKKworICAgIGlmIChwcmltaXRpdmVWYWx1ZS0+aXNO
dW1iZXIoKSB8fCBwcmltaXRpdmVWYWx1ZS0+aXNQeCgpKQorICAgICAgICByZXR1cm4gcHJpbWl0
aXZlVmFsdWUtPmdldEZsb2F0VmFsdWUoKTsKKworICAgIGlmIChwcmltaXRpdmVWYWx1ZS0+aXNG
b250UmVsYXRpdmVMZW5ndGgoKSkKKyAgICAgICAgcmV0dXJuIHByaW1pdGl2ZVZhbHVlLT5nZXRG
bG9hdFZhbHVlKCkgKiBtX2RvY3VtZW50LT5kb2N1bWVudEVsZW1lbnQoKS0+cmVuZGVyU3R5bGUo
KS0+Zm9udERlc2NyaXB0aW9uKCkuY29tcHV0ZWRTaXplKCk7CisKKyAgICBpZiAocHJpbWl0aXZl
VmFsdWUtPmlzUGVyY2VudGFnZSgpKSB7CisgICAgICAgIGZsb2F0IHBlcmNlbnRWYWx1ZSA9IHBy
aW1pdGl2ZVZhbHVlLT5nZXRGbG9hdFZhbHVlKCkgLyAxMDAuMGY7CisgICAgICAgIHN3aXRjaCAo
aWQpIHsKKyAgICAgICAgY2FzZSBDU1NQcm9wZXJ0eU1heEhlaWdodDoKKyAgICAgICAgY2FzZSBD
U1NQcm9wZXJ0eU1pbkhlaWdodDoKKyAgICAgICAgICAgIHJldHVybiBwZXJjZW50VmFsdWUgKiBt
X2luaXRpYWxWaWV3cG9ydFNpemUuaGVpZ2h0KCk7CisgICAgICAgIGNhc2UgQ1NTUHJvcGVydHlN
YXhXaWR0aDoKKyAgICAgICAgY2FzZSBDU1NQcm9wZXJ0eU1pbldpZHRoOgorICAgICAgICAgICAg
cmV0dXJuIHBlcmNlbnRWYWx1ZSAqIG1faW5pdGlhbFZpZXdwb3J0U2l6ZS53aWR0aCgpOworICAg
ICAgICBjYXNlIENTU1Byb3BlcnR5TWF4Wm9vbToKKyAgICAgICAgY2FzZSBDU1NQcm9wZXJ0eU1p
blpvb206CisgICAgICAgIGNhc2UgQ1NTUHJvcGVydHlab29tOgorICAgICAgICAgICAgcmV0dXJu
IHBlcmNlbnRWYWx1ZTsKKyAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgIEFTU0VSVF9OT1Rf
UkVBQ0hFRCgpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBz
d2l0Y2ggKHByaW1pdGl2ZVZhbHVlLT5nZXRJZGVudCgpKSB7CisgICAgY2FzZSBDU1NWYWx1ZUF1
dG86CisgICAgICAgIHJldHVybiBkZWZhdWx0VmFsdWU7CisgICAgY2FzZSBDU1NWYWx1ZURldmlj
ZUhlaWdodDoKKyAgICAgICAgcmV0dXJuIFZpZXdwb3J0QXJndW1lbnRzOjpWYWx1ZURldmljZUhl
aWdodDsKKyAgICBjYXNlIENTU1ZhbHVlRGV2aWNlV2lkdGg6CisgICAgICAgIHJldHVybiBWaWV3
cG9ydEFyZ3VtZW50czo6VmFsdWVEZXZpY2VXaWR0aDsKKyAgICBjYXNlIENTU1ZhbHVlTGFuZHNj
YXBlOgorICAgICAgICByZXR1cm4gVmlld3BvcnRBcmd1bWVudHM6OlZhbHVlTGFuZHNjYXBlOwor
ICAgIGNhc2UgQ1NTVmFsdWVQb3J0cmFpdDoKKyAgICAgICAgcmV0dXJuIFZpZXdwb3J0QXJndW1l
bnRzOjpWYWx1ZVBvcnRyYWl0OworICAgIGNhc2UgQ1NTVmFsdWVab29tOgorICAgICAgICByZXR1
cm4gZGVmYXVsdFZhbHVlOworICAgIGNhc2UgQ1NTVmFsdWVGaXhlZDoKKyAgICAgICAgcmV0dXJu
IDA7CisgICAgZGVmYXVsdDoKKyAgICAgICAgcmV0dXJuIGRlZmF1bHRWYWx1ZTsKKyAgICB9Cit9
CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEVOQUJMRShDU1NfREVWSUNF
X0FEQVBUQVRJT04pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvVmlld3BvcnRTdHls
ZVJlc29sdmVyLmggYi9Tb3VyY2UvV2ViQ29yZS9jc3MvVmlld3BvcnRTdHlsZVJlc29sdmVyLmgK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMGI4ZmY1NwotLS0gL2Rldi9udWxs
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9WaWV3cG9ydFN0eWxlUmVzb2x2ZXIuaApAQCAtMCww
ICsxLDc0IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEyIEludGVsIENvcnBvcmF0aW9uLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBh
cmUgbWV0OgorICoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUKKyAqICAgIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nCisgKiAgICBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQorICogICAg
Y29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcKKyAqICAgIGRpc2NsYWltZXIgaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscworICogICAgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVIg4oCcQVMgSVPi
gJ0gQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElT
Q0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVCBIT0xERVIgQkUKKyAqIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1Q
TEFSWSwKKyAqIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorICogVEhFT1JZIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IKKyAqIFRPUlQgKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRgor
ICogVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJ
QklMSVRZIE9GCisgKiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIFZpZXdwb3J0U3R5bGVS
ZXNvbHZlcl9oCisjZGVmaW5lIFZpZXdwb3J0U3R5bGVSZXNvbHZlcl9oCisKKyNpZiBFTkFCTEUo
Q1NTX0RFVklDRV9BREFQVEFUSU9OKQorCisjaW5jbHVkZSAiQ1NTUHJvcGVydHlOYW1lcy5oIgor
I2luY2x1ZGUgIkZsb2F0U2l6ZS5oIgorI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CisjaW5j
bHVkZSA8d3RmL1JlZlB0ci5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIENTU1By
aW1pdGl2ZVZhbHVlOworY2xhc3MgRG9jdW1lbnQ7CitjbGFzcyBTdHlsZVJ1bGVWaWV3cG9ydDsK
K2NsYXNzIFN0eWxlUHJvcGVydHlTZXQ7CisKK2NsYXNzIFZpZXdwb3J0U3R5bGVSZXNvbHZlciA6
IHB1YmxpYyBSZWZDb3VudGVkPFZpZXdwb3J0U3R5bGVSZXNvbHZlcj4geworcHVibGljOgorICAg
IHN0YXRpYyBQYXNzUmVmUHRyPFZpZXdwb3J0U3R5bGVSZXNvbHZlcj4gY3JlYXRlKERvY3VtZW50
KiBkb2N1bWVudCkKKyAgICB7CisgICAgICAgIHJldHVybiBhZG9wdFJlZihuZXcgVmlld3BvcnRT
dHlsZVJlc29sdmVyKGRvY3VtZW50KSk7CisgICAgfQorCisgICAgdm9pZCBhZGRWaWV3cG9ydFJ1
bGUoU3R5bGVSdWxlVmlld3BvcnQqKTsKKworICAgIHZvaWQgY2xlYXJEb2N1bWVudCgpOworICAg
IHZvaWQgcmVzb2x2ZSgpOworCitwcml2YXRlOgorICAgIGV4cGxpY2l0IFZpZXdwb3J0U3R5bGVS
ZXNvbHZlcihEb2N1bWVudCopOworCisgICAgZmxvYXQgZ2V0Vmlld3BvcnRBcmd1bWVudFZhbHVl
KENTU1Byb3BlcnR5SUQpIGNvbnN0OworCisgICAgRG9jdW1lbnQqIG1fZG9jdW1lbnQ7CisgICAg
UmVmUHRyPFN0eWxlUHJvcGVydHlTZXQ+IG1fcHJvcGVydHlTZXQ7CisKKyAgICBGbG9hdFNpemUg
bV9pbml0aWFsVmlld3BvcnRTaXplOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisj
ZW5kaWYgLy8gRU5BQkxFKENTU19ERVZJQ0VfQURBUFRBVElPTikKKworI2VuZGlmIC8vIFZpZXdw
b3J0U3R5bGVSZXNvbHZlcl9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1l
bnQuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oCmluZGV4IDkyYTMyY2IuLmZjNDNm
MWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oCkBAIC0zMjMsNiArMzIzLDcgQEAgcHVibGljOgogICAg
IERFRklORV9BVFRSSUJVVEVfRVZFTlRfTElTVEVORVIod2Via2l0dmlzaWJpbGl0eWNoYW5nZSk7
CiAjZW5kaWYKIAorICAgIHZvaWQgc2V0Vmlld3BvcnRBcmd1bWVudHMoY29uc3QgVmlld3BvcnRB
cmd1bWVudHMmIHZpZXdwb3J0QXJndW1lbnRzKSB7IG1fdmlld3BvcnRBcmd1bWVudHMgPSB2aWV3
cG9ydEFyZ3VtZW50czsgfQogICAgIFZpZXdwb3J0QXJndW1lbnRzIHZpZXdwb3J0QXJndW1lbnRz
KCkgY29uc3QgeyByZXR1cm4gbV92aWV3cG9ydEFyZ3VtZW50czsgfQogI2lmbmRlZiBOREVCVUcK
ICAgICBib29sIGRpZERpc3BhdGNoVmlld3BvcnRQcm9wZXJ0aWVzQ2hhbmdlZCgpIGNvbnN0IHsg
cmV0dXJuIG1fZGlkRGlzcGF0Y2hWaWV3cG9ydFByb3BlcnRpZXNDaGFuZ2VkOyB9CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vVmlld3BvcnRBcmd1bWVudHMuY3BwIGIvU291cmNlL1dl
YkNvcmUvZG9tL1ZpZXdwb3J0QXJndW1lbnRzLmNwcAppbmRleCBhZTE4Nzg5Li45OWQ2YTZiIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vVmlld3BvcnRBcmd1bWVudHMuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2RvbS9WaWV3cG9ydEFyZ3VtZW50cy5jcHAKQEAgLTYsNiArNiw3IEBA
CiAgKiBDb3B5cmlnaHQgKEMpIDIwMDQsIDIwMDUsIDIwMDYsIDIwMDcsIDIwMDgsIDIwMTEgQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICogQ29weXJpZ2h0IChDKSAyMDA4IFRvcmNo
IE1vYmlsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuIChodHRwOi8vd3d3LnRvcmNobW9iaWxl
LmNvbS8pCiAgKiBDb3B5cmlnaHQgKEMpIDIwMTAgTm9raWEgQ29ycG9yYXRpb24gYW5kL29yIGl0
cyBzdWJzaWRpYXJ5KC1pZXMpCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIgSW50ZWwgQ29ycG9yYXRp
b24uIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29m
dHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgogICogbW9kaWZ5IGl0IHVuZGVy
IHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKQEAgLTQzLDYgKzQ0
LDE5IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY29uc3QgZmxvYXQgVmlld3BvcnRBcmd1bWVu
dHM6OmRlcHJlY2F0ZWRUYXJnZXREUEkgPSAxNjA7CiAKK3N0YXRpYyBjb25zdCBmbG9hdCYgY29t
cGFyZUlnbm9yaW5nQXV0byhjb25zdCBmbG9hdCYgdmFsdWUxLCBjb25zdCBmbG9hdCYgdmFsdWUy
LCBjb25zdCBmbG9hdCYgKCpjb21wYXJlKSAoY29uc3QgZmxvYXQmLCBjb25zdCBmbG9hdCYpKQor
eworICAgIEFTU0VSVCh2YWx1ZTEgIT0gVmlld3BvcnRBcmd1bWVudHM6OlZhbHVlQXV0byB8fCB2
YWx1ZTIgIT0gVmlld3BvcnRBcmd1bWVudHM6OlZhbHVlQXV0byk7CisKKyAgICBpZiAodmFsdWUx
ID09IFZpZXdwb3J0QXJndW1lbnRzOjpWYWx1ZUF1dG8pCisgICAgICAgIHJldHVybiB2YWx1ZTI7
CisKKyAgICBpZiAodmFsdWUyID09IFZpZXdwb3J0QXJndW1lbnRzOjpWYWx1ZUF1dG8pCisgICAg
ICAgIHJldHVybiB2YWx1ZTE7CisKKyAgICByZXR1cm4gY29tcGFyZSh2YWx1ZTEsIHZhbHVlMik7
Cit9CisKIFZpZXdwb3J0QXR0cmlidXRlcyBjb21wdXRlVmlld3BvcnRBdHRyaWJ1dGVzKFZpZXdw
b3J0QXJndW1lbnRzIGFyZ3MsIGludCBkZXNrdG9wV2lkdGgsIGludCBkZXZpY2VXaWR0aCwgaW50
IGRldmljZUhlaWdodCwgZmxvYXQgZGV2aWNlUGl4ZWxSYXRpbywgSW50U2l6ZSB2aXNpYmxlVmll
d3BvcnQpCiB7CiAgICAgVmlld3BvcnRBdHRyaWJ1dGVzIHJlc3VsdDsKQEAgLTc4LDEwICs5Miw3
NyBAQCBWaWV3cG9ydEF0dHJpYnV0ZXMgY29tcHV0ZVZpZXdwb3J0QXR0cmlidXRlcyhWaWV3cG9y
dEFyZ3VtZW50cyBhcmdzLCBpbnQgZGVza3RvcAogICAgICAgICBicmVhazsKICAgICB9CiAKKyAg
ICBpZiAoYXJncy50eXBlID09IFZpZXdwb3J0QXJndW1lbnRzOjpDU1NEZXZpY2VBZGFwdGF0aW9u
KSB7CisgICAgICAgIHN3aXRjaCAoaW50KGFyZ3MubWluV2lkdGgpKSB7CisgICAgICAgIGNhc2Ug
Vmlld3BvcnRBcmd1bWVudHM6OlZhbHVlRGV2aWNlV2lkdGg6CisgICAgICAgICAgICBhcmdzLm1p
bldpZHRoID0gZGV2aWNlV2lkdGg7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBW
aWV3cG9ydEFyZ3VtZW50czo6VmFsdWVEZXZpY2VIZWlnaHQ6CisgICAgICAgICAgICBhcmdzLm1p
bldpZHRoID0gZGV2aWNlSGVpZ2h0OworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKwor
ICAgICAgICBzd2l0Y2ggKGludChhcmdzLm1heFdpZHRoKSkgeworICAgICAgICBjYXNlIFZpZXdw
b3J0QXJndW1lbnRzOjpWYWx1ZURldmljZVdpZHRoOgorICAgICAgICAgICAgYXJncy5tYXhXaWR0
aCA9IGRldmljZVdpZHRoOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgVmlld3Bv
cnRBcmd1bWVudHM6OlZhbHVlRGV2aWNlSGVpZ2h0OgorICAgICAgICAgICAgYXJncy5tYXhXaWR0
aCA9IGRldmljZUhlaWdodDsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisKKyAgICAg
ICAgc3dpdGNoIChpbnQoYXJncy5taW5IZWlnaHQpKSB7CisgICAgICAgIGNhc2UgVmlld3BvcnRB
cmd1bWVudHM6OlZhbHVlRGV2aWNlV2lkdGg6CisgICAgICAgICAgICBhcmdzLm1pbkhlaWdodCA9
IGRldmljZVdpZHRoOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgVmlld3BvcnRB
cmd1bWVudHM6OlZhbHVlRGV2aWNlSGVpZ2h0OgorICAgICAgICAgICAgYXJncy5taW5IZWlnaHQg
PSBkZXZpY2VIZWlnaHQ7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorCisgICAgICAg
IHN3aXRjaCAoaW50KGFyZ3MubWF4SGVpZ2h0KSkgeworICAgICAgICBjYXNlIFZpZXdwb3J0QXJn
dW1lbnRzOjpWYWx1ZURldmljZVdpZHRoOgorICAgICAgICAgICAgYXJncy5tYXhIZWlnaHQgPSBk
ZXZpY2VXaWR0aDsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIFZpZXdwb3J0QXJn
dW1lbnRzOjpWYWx1ZURldmljZUhlaWdodDoKKyAgICAgICAgICAgIGFyZ3MubWF4SGVpZ2h0ID0g
ZGV2aWNlSGVpZ2h0OworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKworICAgICAgICBp
ZiAoYXJncy5taW5XaWR0aCAhPSBWaWV3cG9ydEFyZ3VtZW50czo6VmFsdWVBdXRvIHx8IGFyZ3Mu
bWF4V2lkdGggIT0gVmlld3BvcnRBcmd1bWVudHM6OlZhbHVlQXV0bykKKyAgICAgICAgICAgIGFy
Z3Mud2lkdGggPSBjb21wYXJlSWdub3JpbmdBdXRvKGFyZ3MubWluV2lkdGgsIGNvbXBhcmVJZ25v
cmluZ0F1dG8oYXJncy5tYXhXaWR0aCwgZGV2aWNlV2lkdGgsIG1pbiksIG1heCk7CisKKyAgICAg
ICAgaWYgKGFyZ3MubWluSGVpZ2h0ICE9IFZpZXdwb3J0QXJndW1lbnRzOjpWYWx1ZUF1dG8gfHwg
YXJncy5tYXhIZWlnaHQgIT0gVmlld3BvcnRBcmd1bWVudHM6OlZhbHVlQXV0bykKKyAgICAgICAg
ICAgIGFyZ3MuaGVpZ2h0ID0gY29tcGFyZUlnbm9yaW5nQXV0byhhcmdzLm1pbkhlaWdodCwgY29t
cGFyZUlnbm9yaW5nQXV0byhhcmdzLm1heEhlaWdodCwgZGV2aWNlSGVpZ2h0LCBtaW4pLCBtYXgp
OworCisgICAgICAgIGlmIChhcmdzLm1pbmltdW1TY2FsZSAhPSBWaWV3cG9ydEFyZ3VtZW50czo6
VmFsdWVBdXRvICYmIGFyZ3MubWF4aW11bVNjYWxlICE9IFZpZXdwb3J0QXJndW1lbnRzOjpWYWx1
ZUF1dG8pCisgICAgICAgICAgICBhcmdzLm1heGltdW1TY2FsZSA9IG1heChhcmdzLm1pbmltdW1T
Y2FsZSwgYXJncy5tYXhpbXVtU2NhbGUpOworCisgICAgICAgIGlmIChhcmdzLmluaXRpYWxTY2Fs
ZSAhPSBWaWV3cG9ydEFyZ3VtZW50czo6VmFsdWVBdXRvKQorICAgICAgICAgICAgYXJncy5pbml0
aWFsU2NhbGUgPSBjb21wYXJlSWdub3JpbmdBdXRvKGFyZ3MubWluaW11bVNjYWxlLCBjb21wYXJl
SWdub3JpbmdBdXRvKGFyZ3MubWF4aW11bVNjYWxlLCBhcmdzLmluaXRpYWxTY2FsZSwgbWluKSwg
bWF4KTsKKworICAgICAgICBpZiAoYXJncy53aWR0aCA9PSBWaWV3cG9ydEFyZ3VtZW50czo6VmFs
dWVBdXRvICYmIGFyZ3MuaW5pdGlhbFNjYWxlID09IFZpZXdwb3J0QXJndW1lbnRzOjpWYWx1ZUF1
dG8pCisgICAgICAgICAgICBhcmdzLndpZHRoID0gZGV2aWNlV2lkdGg7CisKKyAgICAgICAgaWYg
KGFyZ3Mud2lkdGggPT0gVmlld3BvcnRBcmd1bWVudHM6OlZhbHVlQXV0byAmJiBhcmdzLmhlaWdo
dCA9PSBWaWV3cG9ydEFyZ3VtZW50czo6VmFsdWVBdXRvKQorICAgICAgICAgICAgYXJncy53aWR0
aCA9IGRldmljZVdpZHRoIC8gYXJncy5pbml0aWFsU2NhbGU7CisKKyAgICAgICAgaWYgKGFyZ3Mu
d2lkdGggPT0gVmlld3BvcnRBcmd1bWVudHM6OlZhbHVlQXV0bykKKyAgICAgICAgICAgIGFyZ3Mu
d2lkdGggPSBhcmdzLmhlaWdodCAqIGRldmljZVdpZHRoIC8gZGV2aWNlSGVpZ2h0OworCisgICAg
ICAgIGlmIChhcmdzLmhlaWdodCA9PSBWaWV3cG9ydEFyZ3VtZW50czo6VmFsdWVBdXRvKQorICAg
ICAgICAgICAgYXJncy5oZWlnaHQgPSBhcmdzLndpZHRoICogZGV2aWNlSGVpZ2h0IC8gZGV2aWNl
V2lkdGg7CisKKyAgICAgICAgaWYgKGFyZ3MuaW5pdGlhbFNjYWxlICE9IFZpZXdwb3J0QXJndW1l
bnRzOjpWYWx1ZUF1dG8gfHwgYXJncy5tYXhpbXVtU2NhbGUgIT0gVmlld3BvcnRBcmd1bWVudHM6
OlZhbHVlQXV0bykgeworICAgICAgICAgICAgYXJncy53aWR0aCA9IGNvbXBhcmVJZ25vcmluZ0F1
dG8oYXJncy53aWR0aCwgZGV2aWNlV2lkdGggLyBjb21wYXJlSWdub3JpbmdBdXRvKGFyZ3MuaW5p
dGlhbFNjYWxlLCBhcmdzLm1heGltdW1TY2FsZSwgbWluKSwgbWF4KTsKKyAgICAgICAgICAgIGFy
Z3MuaGVpZ2h0ID0gY29tcGFyZUlnbm9yaW5nQXV0byhhcmdzLmhlaWdodCwgZGV2aWNlSGVpZ2h0
IC8gY29tcGFyZUlnbm9yaW5nQXV0byhhcmdzLmluaXRpYWxTY2FsZSwgYXJncy5tYXhpbXVtU2Nh
bGUsIG1pbiksIG1heCk7CisgICAgICAgIH0KKyAgICB9CisKICAgICAvLyBDbGFtcCB2YWx1ZXMg
dG8gcmFuZ2UgZGVmaW5lZCBieSBzcGVjIGFuZCByZXNvbHZlIG1pbmltdW0tc2NhbGUgYW5kIG1h
eGltdW0tc2NhbGUgdmFsdWVzCi0gICAgaWYgKGFyZ3Mud2lkdGggIT0gVmlld3BvcnRBcmd1bWVu
dHM6OlZhbHVlQXV0bykKKyAgICBpZiAoYXJncy53aWR0aCAhPSBWaWV3cG9ydEFyZ3VtZW50czo6
VmFsdWVBdXRvICYmIGFyZ3MudHlwZSAhPSBWaWV3cG9ydEFyZ3VtZW50czo6Q1NTRGV2aWNlQWRh
cHRhdGlvbikKICAgICAgICAgYXJncy53aWR0aCA9IG1pbihmbG9hdCgxMDAwMCksIG1heChhcmdz
LndpZHRoLCBmbG9hdCgxKSkpOwotICAgIGlmIChhcmdzLmhlaWdodCAhPSBWaWV3cG9ydEFyZ3Vt
ZW50czo6VmFsdWVBdXRvKQorICAgIGlmIChhcmdzLmhlaWdodCAhPSBWaWV3cG9ydEFyZ3VtZW50
czo6VmFsdWVBdXRvICYmIGFyZ3MudHlwZSAhPSBWaWV3cG9ydEFyZ3VtZW50czo6Q1NTRGV2aWNl
QWRhcHRhdGlvbikKICAgICAgICAgYXJncy5oZWlnaHQgPSBtaW4oZmxvYXQoMTAwMDApLCBtYXgo
YXJncy5oZWlnaHQsIGZsb2F0KDEpKSk7CiAKICAgICByZXN1bHQuaW5pdGlhbGx5Rml0VG9WaWV3
cG9ydCA9IGFyZ3MuaW5pdGlhbFNjYWxlID09IFZpZXdwb3J0QXJndW1lbnRzOjpWYWx1ZUF1dG87
CkBAIC0xNDEsOSArMjIyLDE1IEBAIFZpZXdwb3J0QXR0cmlidXRlcyBjb21wdXRlVmlld3BvcnRB
dHRyaWJ1dGVzKFZpZXdwb3J0QXJndW1lbnRzIGFyZ3MsIGludCBkZXNrdG9wCiAgICAgZWxzZQog
ICAgICAgICBoZWlnaHQgPSB3aWR0aCAqIGF2YWlsYWJsZUhlaWdodCAvIGF2YWlsYWJsZVdpZHRo
OwogCi0gICAgLy8gRXh0ZW5kIHdpZHRoIGFuZCBoZWlnaHQgdG8gZmlsbCB0aGUgdmlzdWFsIHZp
ZXdwb3J0IGZvciB0aGUgcmVzb2x2ZWQgaW5pdGlhbC1zY2FsZS4KLSAgICB3aWR0aCA9IG1heDxm
bG9hdD4od2lkdGgsIGF2YWlsYWJsZVdpZHRoIC8gcmVzdWx0LmluaXRpYWxTY2FsZSk7Ci0gICAg
aGVpZ2h0ID0gbWF4PGZsb2F0PihoZWlnaHQsIGF2YWlsYWJsZUhlaWdodCAvIHJlc3VsdC5pbml0
aWFsU2NhbGUpOworICAgIGlmIChhcmdzLnR5cGUgPT0gVmlld3BvcnRBcmd1bWVudHM6OkNTU0Rl
dmljZUFkYXB0YXRpb24pIHsKKyAgICAgICAgd2lkdGggPSBtYXg8ZmxvYXQ+KHdpZHRoLCAxKTsK
KyAgICAgICAgaGVpZ2h0ID0gbWF4PGZsb2F0PihoZWlnaHQsIDEpOworICAgIH0gZWxzZSB7Cisg
ICAgICAgIC8vIEV4dGVuZCB3aWR0aCBhbmQgaGVpZ2h0IHRvIGZpbGwgdGhlIHZpc3VhbCB2aWV3
cG9ydCBmb3IgdGhlIHJlc29sdmVkIGluaXRpYWwtc2NhbGUuCisgICAgICAgIHdpZHRoID0gbWF4
PGZsb2F0Pih3aWR0aCwgYXZhaWxhYmxlV2lkdGggLyByZXN1bHQuaW5pdGlhbFNjYWxlKTsKKyAg
ICAgICAgaGVpZ2h0ID0gbWF4PGZsb2F0PihoZWlnaHQsIGF2YWlsYWJsZUhlaWdodCAvIHJlc3Vs
dC5pbml0aWFsU2NhbGUpOworICAgIH0KKwogICAgIHJlc3VsdC5sYXlvdXRTaXplLnNldFdpZHRo
KHdpZHRoKTsKICAgICByZXN1bHQubGF5b3V0U2l6ZS5zZXRIZWlnaHQoaGVpZ2h0KTsKIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL1ZpZXdwb3J0QXJndW1lbnRzLmggYi9Tb3VyY2Uv
V2ViQ29yZS9kb20vVmlld3BvcnRBcmd1bWVudHMuaAppbmRleCAzMjEzOWVlLi5kY2YwMmI4IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vVmlld3BvcnRBcmd1bWVudHMuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9kb20vVmlld3BvcnRBcmd1bWVudHMuaApAQCAtNiw2ICs2LDcgQEAKICAq
IENvcHlyaWdodCAoQykgMjAwNCwgMjAwNSwgMjAwNiwgMjAwNywgMjAwOCBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCiAgKiBDb3B5cmlnaHQgKEMpIDIwMDggVG9yY2ggTW9iaWxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4gKGh0dHA6Ly93d3cudG9yY2htb2JpbGUuY29tLykKICAq
IENvcHlyaWdodCAoQykgMjAxMCBOb2tpYSBDb3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlh
cnkoLWllcykKKyAqIENvcHlyaWdodCAoQykgMjAxMiBJbnRlbCBDb3Jwb3JhdGlvbi4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KICAqCiAgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91
IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCiAgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1z
IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYwpAQCAtNjMsMTMgKzY0LDE2IEBAIHN0
cnVjdCBWaWV3cG9ydEFyZ3VtZW50cyB7CiAgICAgICAgIEhhbmRoZWxkRnJpZW5kbHlNZXRhLAog
ICAgICAgICBNb2JpbGVPcHRpbWl6ZWRNZXRhLAogI2VuZGlmCi0gICAgICAgIFZpZXdwb3J0TWV0
YQorICAgICAgICBWaWV3cG9ydE1ldGEsCisgICAgICAgIENTU0RldmljZUFkYXB0YXRpb24KICAg
ICB9IHR5cGU7CiAKICAgICBlbnVtIHsKICAgICAgICAgVmFsdWVBdXRvID0gLTEsCiAgICAgICAg
IFZhbHVlRGV2aWNlV2lkdGggPSAtMiwKICAgICAgICAgVmFsdWVEZXZpY2VIZWlnaHQgPSAtMywK
KyAgICAgICAgVmFsdWVQb3J0cmFpdCA9IC00LAorICAgICAgICBWYWx1ZUxhbmRzY2FwZSA9IC01
CiAgICAgfTsKIAogICAgIFZpZXdwb3J0QXJndW1lbnRzKFR5cGUgdHlwZSA9IEltcGxpY2l0KQpA
QCAtNzksNyArODMsMTIgQEAgc3RydWN0IFZpZXdwb3J0QXJndW1lbnRzIHsKICAgICAgICAgLCBt
YXhpbXVtU2NhbGUoVmFsdWVBdXRvKQogICAgICAgICAsIHdpZHRoKFZhbHVlQXV0bykKICAgICAg
ICAgLCBoZWlnaHQoVmFsdWVBdXRvKQorICAgICAgICAsIG1pbldpZHRoKFZhbHVlQXV0bykKKyAg
ICAgICAgLCBtYXhXaWR0aChWYWx1ZUF1dG8pCisgICAgICAgICwgbWluSGVpZ2h0KFZhbHVlQXV0
bykKKyAgICAgICAgLCBtYXhIZWlnaHQoVmFsdWVBdXRvKQogICAgICAgICAsIHVzZXJTY2FsYWJs
ZShWYWx1ZUF1dG8pCisgICAgICAgICwgb3JpZW50YXRpb24oVmFsdWVBdXRvKQogICAgIHsKICAg
ICB9CiAKQEAgLTg4LDcgKzk3LDEyIEBAIHN0cnVjdCBWaWV3cG9ydEFyZ3VtZW50cyB7CiAgICAg
ZmxvYXQgbWF4aW11bVNjYWxlOwogICAgIGZsb2F0IHdpZHRoOwogICAgIGZsb2F0IGhlaWdodDsK
KyAgICBmbG9hdCBtaW5XaWR0aDsKKyAgICBmbG9hdCBtYXhXaWR0aDsKKyAgICBmbG9hdCBtaW5I
ZWlnaHQ7CisgICAgZmxvYXQgbWF4SGVpZ2h0OwogICAgIGZsb2F0IHVzZXJTY2FsYWJsZTsKKyAg
ICBmbG9hdCBvcmllbnRhdGlvbjsKIAogICAgIGJvb2wgb3BlcmF0b3I9PShjb25zdCBWaWV3cG9y
dEFyZ3VtZW50cyYgb3RoZXIpIGNvbnN0CiAgICAgewpAQCAtOTksNyArMTEzLDEyIEBAIHN0cnVj
dCBWaWV3cG9ydEFyZ3VtZW50cyB7CiAgICAgICAgICAgICAmJiBtYXhpbXVtU2NhbGUgPT0gb3Ro
ZXIubWF4aW11bVNjYWxlCiAgICAgICAgICAgICAmJiB3aWR0aCA9PSBvdGhlci53aWR0aAogICAg
ICAgICAgICAgJiYgaGVpZ2h0ID09IG90aGVyLmhlaWdodAotICAgICAgICAgICAgJiYgdXNlclNj
YWxhYmxlID09IG90aGVyLnVzZXJTY2FsYWJsZTsKKyAgICAgICAgICAgICYmIG1pbldpZHRoID09
IG90aGVyLm1pbldpZHRoCisgICAgICAgICAgICAmJiBtYXhXaWR0aCA9PSBvdGhlci5tYXhXaWR0
aAorICAgICAgICAgICAgJiYgbWluSGVpZ2h0ID09IG90aGVyLm1pbkhlaWdodAorICAgICAgICAg
ICAgJiYgbWF4SGVpZ2h0ID09IG90aGVyLm1heEhlaWdodAorICAgICAgICAgICAgJiYgdXNlclNj
YWxhYmxlID09IG90aGVyLnVzZXJTY2FsYWJsZQorICAgICAgICAgICAgJiYgb3JpZW50YXRpb24g
PT0gb3RoZXIub3JpZW50YXRpb247CiAgICAgfQogCiAgICAgYm9vbCBvcGVyYXRvciE9KGNvbnN0
IFZpZXdwb3J0QXJndW1lbnRzJiBvdGhlcikgY29uc3QK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>174701</attachid>
            <date>2012-11-16 08:53:37 -0800</date>
            <delta_ts>2012-11-16 09:02:06 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-95964-20121116185536.patch</filename>
            <type>text/plain</type>
            <size>143770</size>
            <attacher name="Thiago Marcos P. Santos">tmpsantos</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM0OTQxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMjZlMjIxODAwMmRmMjQ1
ZTBlNmY3YzcwZmI1NzRjZDMzMjI0Y2RkYy4uNDQ1MGQ4OTUxYWQ0Y2M3OGFhYjkyMjkyNjZmMzBm
ZDYyNTM0OTM3MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDg4IEBACisyMDEyLTExLTE2ICBUaGlh
Z28gTWFyY29zIFAuIFNhbnRvcyAgPHRoaWFnby5zYW50b3NAaW50ZWwuY29tPgorCisgICAgICAg
IEFwcGx5IHRoZSByZXNvbHZlZCB2aWV3cG9ydCBydWxlcworICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTU5NjQKKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGlzIHBhdGNoIGltcGxlbWVudHMgdGhlIENTUyBE
ZXZpY2UgQWRhcHRhdGlvbiBzcGVjaWZpY2F0aW9uLiBUaGUKKyAgICAgICAgV2ViS2l0IGltcGxl
bWVudGF0aW9uIHJlbGllcyBvbiB0aGUgYWxyZWFkeSBpbXBsZW1lbnRlZCBWaWV3cG9ydCBNZXRh
CisgICAgICAgIGluZnJhc3RydWN0dXJlIHRvIG5vdGlmeSB0aGUgYnJvd3NlciBvZiB2aWV3cG9y
dCBjaGFuZ2VzLgorCisgICAgICAgIFRoZSBpbXBsZW1lbnRhdGlvbiB3YXMgdGVzdHMgd2l0aCBz
dWNjZXNzIG9uIHRoZSBRdCBhbmQgRUZMIHBvcnRzLCBidXQKKyAgICAgICAgYmFzaWNhbGx5IGV2
ZXJ5IHBvcnQgc3VwcG9ydGluZyBWaWV3cG9ydCBNZXRhIHNob3VsZCBiZSBmaW5lLgorCisgICAg
ICAgIFRoZSB1c2FnZSBvZiBALXdlYmtpdC12aWV3cG9ydCBpbnNpZGUgbWVkaWEgcXVlcmllcyAo
bW9yZSB0ZXN0cyBjb21pbmcKKyAgICAgICAgdG8gbWFwIGFsbCB0aGUgY29ybmVyIGNhc2VzKSBp
cyBjdXJyZW50bHkgbGltaXRlZCB3aGVuIHRoZSBtZWRpYSBxdWVyeQorICAgICAgICBkZXBlbmRz
IG9uIHRoZSB2aWV3cG9ydCBkaW1lbnNpb25zIGl0c2VsZi4gRGVmaW5pbmcgdGhlIHdpZHRoIGFu
ZCBoZWlnaHQKKyAgICAgICAgYmFzZWQgb24gc2NyZWVuIHNpemUgd2lsbCBmYWlsIG9uIHBvcnRz
IHJlcG9ydGluZyB0aGUgc2NyZWVuCisgICAgICAgIHNpemUgYXMgdGhlIHNpemUgb2YgdGhlIGJy
b3dzZXIgd2luZG93IGluc3RlYWQgb2YgdGhlIGRldmljZSBzY3JlZW4uCisKKyAgICAgICAgVGVz
dHM6IGNzczMvZGV2aWNlLWFkYXB0L29wZXJhL2Nhc2NhZGluZy0wMDEueGh0bWwKKyAgICAgICAg
ICAgICAgIGNzczMvZGV2aWNlLWFkYXB0L29wZXJhL2Nhc2NhZGluZy0wMDIueGh0bWwKKyAgICAg
ICAgICAgICAgIGNzczMvZGV2aWNlLWFkYXB0L29wZXJhL2Nhc2NhZGluZy0wMDMueGh0bWwKKyAg
ICAgICAgICAgICAgIGNzczMvZGV2aWNlLWFkYXB0L29wZXJhL2Nhc2NhZGluZy0wMDQueGh0bWwK
KyAgICAgICAgICAgICAgIGNzczMvZGV2aWNlLWFkYXB0L29wZXJhL2NvbnN0cmFpbi0wMDEueGh0
bWwKKyAgICAgICAgICAgICAgIGNzczMvZGV2aWNlLWFkYXB0L29wZXJhL2NvbnN0cmFpbi0wMDIu
eGh0bWwKKyAgICAgICAgICAgICAgIGNzczMvZGV2aWNlLWFkYXB0L29wZXJhL2NvbnN0cmFpbi0w
MDMueGh0bWwKKyAgICAgICAgICAgICAgIGNzczMvZGV2aWNlLWFkYXB0L29wZXJhL2NvbnN0cmFp
bi0wMDQueGh0bWwKKyAgICAgICAgICAgICAgIGNzczMvZGV2aWNlLWFkYXB0L29wZXJhL2NvbnN0
cmFpbi0wMDUueGh0bWwKKyAgICAgICAgICAgICAgIGNzczMvZGV2aWNlLWFkYXB0L29wZXJhL2Nv
bnN0cmFpbi0wMDYueGh0bWwKKyAgICAgICAgICAgICAgIGNzczMvZGV2aWNlLWFkYXB0L29wZXJh
L2NvbnN0cmFpbi0wMDcueGh0bWwKKyAgICAgICAgICAgICAgIGNzczMvZGV2aWNlLWFkYXB0L29w
ZXJhL2NvbnN0cmFpbi0wMDgueGh0bWwKKyAgICAgICAgICAgICAgIGNzczMvZGV2aWNlLWFkYXB0
L29wZXJhL2NvbnN0cmFpbi0wMDkueGh0bWwKKyAgICAgICAgICAgICAgIGNzczMvZGV2aWNlLWFk
YXB0L29wZXJhL2NvbnN0cmFpbi0wMTAueGh0bWwKKyAgICAgICAgICAgICAgIGNzczMvZGV2aWNl
LWFkYXB0L29wZXJhL2NvbnN0cmFpbi0wMTEueGh0bWwKKyAgICAgICAgICAgICAgIGNzczMvZGV2
aWNlLWFkYXB0L29wZXJhL2NvbnN0cmFpbi0wMTIueGh0bWwKKyAgICAgICAgICAgICAgIGNzczMv
ZGV2aWNlLWFkYXB0L29wZXJhL2NvbnN0cmFpbi0wMTMueGh0bWwKKyAgICAgICAgICAgICAgIGNz
czMvZGV2aWNlLWFkYXB0L29wZXJhL2NvbnN0cmFpbi0wMTQueGh0bWwKKyAgICAgICAgICAgICAg
IGNzczMvZGV2aWNlLWFkYXB0L29wZXJhL2NvbnN0cmFpbi0wMTUueGh0bWwKKyAgICAgICAgICAg
ICAgIGNzczMvZGV2aWNlLWFkYXB0L29wZXJhL2NvbnN0cmFpbi0wMTYueGh0bWwKKyAgICAgICAg
ICAgICAgIGNzczMvZGV2aWNlLWFkYXB0L29wZXJhL2NvbnN0cmFpbi0wMTcueGh0bWwKKyAgICAg
ICAgICAgICAgIGNzczMvZGV2aWNlLWFkYXB0L29wZXJhL2NvbnN0cmFpbi0wMjAueGh0bWwKKyAg
ICAgICAgICAgICAgIGNzczMvZGV2aWNlLWFkYXB0L29wZXJhL3N5bnRheC0wMDEueGh0bWwKKyAg
ICAgICAgICAgICAgIGNzczMvZGV2aWNlLWFkYXB0L29wZXJhL3N5bnRheC0wMDIueGh0bWwKKyAg
ICAgICAgICAgICAgIGNzczMvZGV2aWNlLWFkYXB0L29wZXJhL3N5bnRheC0wMDMueGh0bWwKKwor
ICAgICAgICAqIENNYWtlTGlzdHMudHh0OgorICAgICAgICAqIEdOVW1ha2VmaWxlLmxpc3QuYW06
CisgICAgICAgICogVGFyZ2V0LnByaToKKyAgICAgICAgKiBXZWJDb3JlLmd5cGk6CisgICAgICAg
ICogV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2o6CisgICAgICAgICogV2ViQ29yZS54Y29k
ZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIGNzcy9DU1NBbGxJbk9uZS5jcHA6Cisg
ICAgICAgICogY3NzL1J1bGVTZXQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UnVsZVNldDo6YWRk
UnVsZXNGcm9tU2hlZXQpOgorICAgICAgICAqIGNzcy9TdHlsZVJlc29sdmVyLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OlN0eWxlUmVzb2x2ZXI6OlN0eWxlUmVzb2x2ZXIpOgorICAgICAgICAoV2Vi
Q29yZTo6U3R5bGVSZXNvbHZlcjo6YXBwZW5kQXV0aG9yU3R5bGVTaGVldHMpOgorICAgICAgICAo
V2ViQ29yZTo6U3R5bGVSZXNvbHZlcjo6flN0eWxlUmVzb2x2ZXIpOgorICAgICAgICAqIGNzcy9T
dHlsZVJlc29sdmVyLmg6CisgICAgICAgIChTdHlsZVJlc29sdmVyKToKKyAgICAgICAgKFdlYkNv
cmU6OlN0eWxlUmVzb2x2ZXI6OnZpZXdwb3J0U3R5bGVSZXNvbHZlcik6CisgICAgICAgICogY3Nz
L1ZpZXdwb3J0U3R5bGVSZXNvbHZlci5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpWaWV3cG9ydFN0eWxlUmVzb2x2ZXI6OlZpZXdwb3J0U3R5bGVSZXNv
bHZlcik6CisgICAgICAgIChXZWJDb3JlOjpWaWV3cG9ydFN0eWxlUmVzb2x2ZXI6OmFkZFZpZXdw
b3J0UnVsZSk6CisgICAgICAgIChXZWJDb3JlOjpWaWV3cG9ydFN0eWxlUmVzb2x2ZXI6OmNsZWFy
RG9jdW1lbnQpOgorICAgICAgICAoV2ViQ29yZTo6Vmlld3BvcnRTdHlsZVJlc29sdmVyOjpyZXNv
bHZlKToKKyAgICAgICAgKFdlYkNvcmU6OlZpZXdwb3J0U3R5bGVSZXNvbHZlcjo6Z2V0Vmlld3Bv
cnRBcmd1bWVudFZhbHVlKToKKyAgICAgICAgKiBjc3MvVmlld3BvcnRTdHlsZVJlc29sdmVyLmg6
IEFkZGVkLgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChWaWV3cG9ydFN0eWxlUmVzb2x2
ZXIpOgorICAgICAgICAoV2ViQ29yZTo6Vmlld3BvcnRTdHlsZVJlc29sdmVyOjpjcmVhdGUpOgor
ICAgICAgICAqIGRvbS9Eb2N1bWVudC5oOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6OnNl
dFZpZXdwb3J0QXJndW1lbnRzKToKKyAgICAgICAgKiBkb20vVmlld3BvcnRBcmd1bWVudHMuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6Y29tcGFyZUlnbm9yaW5nQXV0byk6CisgICAgICAgIChXZWJD
b3JlKToKKyAgICAgICAgKFdlYkNvcmU6OlZpZXdwb3J0QXJndW1lbnRzOjpyZXNvbHZlKToKKyAg
ICAgICAgKiBkb20vVmlld3BvcnRBcmd1bWVudHMuaDoKKyAgICAgICAgKFZpZXdwb3J0QXR0cmli
dXRlcyk6CisgICAgICAgIChXZWJDb3JlOjpWaWV3cG9ydEFyZ3VtZW50czo6Vmlld3BvcnRBcmd1
bWVudHMpOgorICAgICAgICAoVmlld3BvcnRBcmd1bWVudHMpOgorICAgICAgICAoV2ViQ29yZTo6
Vmlld3BvcnRBcmd1bWVudHM6Om9wZXJhdG9yPT0pOgorCiAyMDEyLTExLTE2ICBLZW50YXJvIEhh
cmEgIDxoYXJha2VuQGNocm9taXVtLm9yZz4KIAogICAgICAgICBbVjhdIFJlbW92ZSBJc1N1YlR5
cGUoKSBmcm9tIENvZGVHZW5lcmF0b3JWOC5wbQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
Q01ha2VMaXN0cy50eHQgYi9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAppbmRleCAxY2Mw
M2E2ODQ0OGFhZjY2ZjM1NmU1OTE4OTg2M2QxOWM0M2IyMDI2Li5jMDdiYzJjOTVhN2I5MTU1YmYy
YzNkMmRiZDg3NmNjZmYzOWE0MDk1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxp
c3RzLnR4dAorKysgYi9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dApAQCAtMTA4Niw2ICsx
MDg2LDcgQEAgU0VUKFdlYkNvcmVfU09VUkNFUwogICAgIGNzcy9TVkdDU1NDb21wdXRlZFN0eWxl
RGVjbGFyYXRpb24uY3BwCiAgICAgY3NzL1NWR0NTU1BhcnNlci5jcHAKICAgICBjc3MvU1ZHQ1NT
U3R5bGVTZWxlY3Rvci5jcHAKKyAgICBjc3MvVmlld3BvcnRTdHlsZVJlc29sdmVyLmNwcAogICAg
IGNzcy9XZWJLaXRDU1NGaWx0ZXJWYWx1ZS5jcHAKICAgICBjc3MvV2ViS2l0Q1NTS2V5ZnJhbWVS
dWxlLmNwcAogICAgIGNzcy9XZWJLaXRDU1NLZXlmcmFtZXNSdWxlLmNwcApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbSBiL1NvdXJjZS9XZWJDb3JlL0dOVW1h
a2VmaWxlLmxpc3QuYW0KaW5kZXggZmY2NjIwOGY1Mjc0MDFiYjgwNGZhZjc2OTNmMGQ2NDg2NjNm
N2Q0Yi4uOTFmZjc2ZmQzNDVjZjFkMzgwNjY5YjY5ZTJkMmJlZWYyZDQ1OTNhYiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbQorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9HTlVtYWtlZmlsZS5saXN0LmFtCkBAIC0yNjQxLDYgKzI2NDEsOCBAQCB3ZWJjb3JlX3NvdXJj
ZXMgKz0gXAogCVNvdXJjZS9XZWJDb3JlL2Nzcy9TVkdDU1NDb21wdXRlZFN0eWxlRGVjbGFyYXRp
b24uY3BwIFwKIAlTb3VyY2UvV2ViQ29yZS9jc3MvU1ZHQ1NTUGFyc2VyLmNwcCBcCiAJU291cmNl
L1dlYkNvcmUvY3NzL1NWR0NTU1N0eWxlU2VsZWN0b3IuY3BwIFwKKwlTb3VyY2UvV2ViQ29yZS9j
c3MvVmlld3BvcnRTdHlsZVJlc29sdmVyLmNwcCBcCisJU291cmNlL1dlYkNvcmUvY3NzL1ZpZXdw
b3J0U3R5bGVSZXNvbHZlci5oIFwKICAgICBTb3VyY2UvV2ViQ29yZS9jc3MvV2ViS2l0Q1NTQXJy
YXlGdW5jdGlvblZhbHVlLmNwcCBcCiAgICAgU291cmNlL1dlYkNvcmUvY3NzL1dlYktpdENTU0Fy
cmF5RnVuY3Rpb25WYWx1ZS5oIFwKIAlTb3VyY2UvV2ViQ29yZS9jc3MvV2ViS2l0Q1NTRmlsdGVy
VmFsdWUuY3BwIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1RhcmdldC5wcmkgYi9Tb3Vy
Y2UvV2ViQ29yZS9UYXJnZXQucHJpCmluZGV4IGFjNDQ3M2E0ZGE0MGIyMGJhNzc2MDEwMzNlNDk1
ODNkNjFiMWQ3YWMuLjU5YTUwNGRiYTgwNTJmZmIyNjc0MDAyNmZmOTA3ZmQ0ZWU3MzE2OTcgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1RhcmdldC5wcmkKKysrIGIvU291cmNlL1dlYkNvcmUv
VGFyZ2V0LnByaQpAQCAtMzI2LDYgKzMyNiw3IEBAIFNPVVJDRVMgKz0gXAogICAgIGNzcy9TdHls
ZVNoZWV0LmNwcCBcCiAgICAgY3NzL1N0eWxlU2hlZXRDb250ZW50cy5jcHAgXAogICAgIGNzcy9T
dHlsZVNoZWV0TGlzdC5jcHAgXAorICAgIGNzcy9WaWV3cG9ydFN0eWxlUmVzb2x2ZXIuY3BwIFwK
ICAgICBjc3MvV2ViS2l0Q1NTQXJyYXlGdW5jdGlvblZhbHVlLmNwcCBcCiAgICAgY3NzL1dlYktp
dENTU0ZpbHRlclZhbHVlLmNwcCBcCiAgICAgY3NzL1dlYktpdENTU0tleWZyYW1lUnVsZS5jcHAg
XApAQCAtMTUwNyw2ICsxNTA4LDcgQEAgSEVBREVSUyArPSBcCiAgICAgY3NzL1N0eWxlU2hlZXQu
aCBcCiAgICAgY3NzL1N0eWxlU2hlZXRDb250ZW50cy5oIFwKICAgICBjc3MvU3R5bGVTaGVldExp
c3QuaCBcCisgICAgY3NzL1ZpZXdwb3J0U3R5bGVSZXNvbHZlci5oIFwKICAgICBjc3MvV2ViS2l0
Q1NTQXJyYXlGdW5jdGlvblZhbHVlLmggXAogICAgIGNzcy9XZWJLaXRDU1NGaWx0ZXJWYWx1ZS5o
IFwKICAgICBjc3MvV2ViS2l0Q1NTS2V5ZnJhbWVSdWxlLmggXApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvV2ViQ29yZS5neXBpIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCmluZGV4
IDY3YjFkMGQzOTg5NmE2OGViN2MwNzM3ZTlmNTNhZWYyNzczYjM5ODAuLmVlODUxOWE2NTM5MDFl
ZTk3ZjQ5M2U5YTQ4MTc2MmExZDJjZTRhNmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dl
YkNvcmUuZ3lwaQorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKQEAgLTI2MjgsNiAr
MjYyOCw4IEBACiAgICAgICAgICAgICAnY3NzL1N0eWxlU2hlZXRDb250ZW50cy5oJywKICAgICAg
ICAgICAgICdjc3MvU3R5bGVTaGVldExpc3QuY3BwJywKICAgICAgICAgICAgICdjc3MvU3R5bGVT
aGVldExpc3QuaCcsCisgICAgICAgICAgICAnY3NzL1ZpZXdwb3J0U3R5bGVSZXNvbHZlci5jcHAn
LAorICAgICAgICAgICAgJ2Nzcy9WaWV3cG9ydFN0eWxlUmVzb2x2ZXIuaCcsCiAgICAgICAgICAg
ICAnY3NzL1dlYktpdENTU0FycmF5RnVuY3Rpb25WYWx1ZS5jcHAnLAogICAgICAgICAgICAgJ2Nz
cy9XZWJLaXRDU1NBcnJheUZ1bmN0aW9uVmFsdWUuaCcsCiAgICAgICAgICAgICAnY3NzL1dlYktp
dENTU0ZpbHRlclZhbHVlLmNwcCcsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3Jl
LnZjcHJvai9XZWJDb3JlLnZjcHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dl
YkNvcmUudmNwcm9qCmluZGV4IDA0MDYwMDcyNWEyZDRhMjM5NDI1ZTJmYTgyMDViZDkxYzQ3MzU2
OTEuLjM5NjFjZDVhYzZiODZkMzFmYTMyZTUxMzJhZjZjMDZmMTcyZDcyNzkgMTAwNzU1Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCkBAIC0zODA2Miw2ICszODA2
MiwxNCBAQAogCQkJCT4KIAkJCTwvRmlsZT4KIAkJCTxGaWxlCisJCQkJUmVsYXRpdmVQYXRoPSIu
Llxjc3NcVmlld3BvcnRTdHlsZVJlc29sdmVyLmNwcCIKKwkJCQk+CisJCQk8L0ZpbGU+CisJCQk8
RmlsZQorCQkJCVJlbGF0aXZlUGF0aD0iLi5cY3NzXFZpZXdwb3J0U3R5bGVSZXNvbHZlci5oIgor
CQkJCT4KKwkJCTwvRmlsZT4KKwkJCTxGaWxlCiAJCQkJUmVsYXRpdmVQYXRoPSIuLlxjc3NcV2Vi
S2l0Q1NTQXJyYXlGdW5jdGlvblZhbHVlLmNwcCIKIAkJCQk+CiAJCQk8L0ZpbGU+CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9T
b3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggZGI2
MWViZTMzZTJhYjM0MmExYWMyMmI5YzgwODgxOTViNDhlZDgxZi4uMDBiYzc4ZDJhNGVmY2EyMmIz
NzJmNjdlMjk1ZDhmNWIyNjJkMTRmZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29y
ZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMTAzNyw2ICsxMDM3LDggQEAKIAkJM0MyNDRG
RUJBMzc1QUM2MzNGODhCRTZGIC8qIFJlbmRlckxheWVyTW9kZWxPYmplY3QuY3BwIGluIFNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gM0MyNDRGRTVBMzc1QUM2MzNG
ODhCRTZGIC8qIFJlbmRlckxheWVyTW9kZWxPYmplY3QuY3BwICovOyB9OwogCQkzRkZGRjlBODE1
OUQ5QTU1MDAyMEJCRDUgLyogV2ViS2l0Q1NTVmlld3BvcnRSdWxlLmNwcCBpbiBTb3VyY2VzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDNGRkZGOUE2MTU5RDlBNTUwMDIwQkJE
NSAvKiBXZWJLaXRDU1NWaWV3cG9ydFJ1bGUuY3BwICovOyB9OwogCQkzRkZGRjlBOTE1OUQ5QTU1
MDAyMEJCRDUgLyogV2ViS2l0Q1NTVmlld3BvcnRSdWxlLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAzRkZGRjlBNzE1OUQ5QTU1MDAyMEJCRDUgLyogV2Vi
S2l0Q1NTVmlld3BvcnRSdWxlLmggKi87IH07CisJCTNGRkZGOUFEMTU5RDlCMDYwMDIwQkJENSAv
KiBWaWV3cG9ydFN0eWxlUmVzb2x2ZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gM0ZGRkY5QUIxNTlEOUIwNjAwMjBCQkQ1IC8qIFZpZXdwb3J0U3R5
bGVSZXNvbHZlci5jcHAgKi87IH07CisJCTNGRkZGOUFFMTU5RDlCMDYwMDIwQkJENSAvKiBWaWV3
cG9ydFN0eWxlUmVzb2x2ZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDNGRkZGOUFDMTU5RDlCMDYwMDIwQkJENSAvKiBWaWV3cG9ydFN0eWxlUmVzb2x2
ZXIuaCAqLzsgfTsKIAkJNDEwMDJDQ0QwRjY2RURFRjAwOUU2NjBEIC8qIFNjcmlwdEZ1bmN0aW9u
Q2FsbC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDEw
MDJDQ0IwRjY2RURFRjAwOUU2NjBEIC8qIFNjcmlwdEZ1bmN0aW9uQ2FsbC5oICovOyB9OwogCQk0
MTAwMkNDRTBGNjZFREVGMDA5RTY2MEQgLyogU2NyaXB0RnVuY3Rpb25DYWxsLmNwcCBpbiBTb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQxMDAyQ0NDMEY2NkVERUYw
MDlFNjYwRCAvKiBTY3JpcHRGdW5jdGlvbkNhbGwuY3BwICovOyB9OwogCQk0MTBCN0U3MjEwNDVG
QUIwMDBEODIyNEYgLyogSlNNZXNzYWdlRXZlbnRDdXN0b20uY3BwIGluIFNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDEwQjdFNzExMDQ1RkFCMDAwRDgyMjRGIC8q
IEpTTWVzc2FnZUV2ZW50Q3VzdG9tLmNwcCAqLzsgfTsKQEAgLTgyMDIsNiArODIwNCw4IEBACiAJ
CTNDMjQ0RkU1QTM3NUFDNjMzRjg4QkU2RiAvKiBSZW5kZXJMYXllck1vZGVsT2JqZWN0LmNwcCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFJlbmRlckxheWVyTW9kZWxPYmpl
Y3QuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkzRkZGRjlBNjE1OUQ5QTU1MDAy
MEJCRDUgLyogV2ViS2l0Q1NTVmlld3BvcnRSdWxlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLmNwcDsgcGF0aCA9IFdlYktpdENTU1ZpZXdwb3J0UnVsZS5jcHA7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTNGRkZGOUE3MTU5RDlBNTUwMDIwQkJENSAvKiBXZWJLaXRDU1NWaWV3
cG9ydFJ1bGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViS2l0Q1NTVmll
d3BvcnRSdWxlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTNGRkZGOUFCMTU5RDlC
MDYwMDIwQkJENSAvKiBWaWV3cG9ydFN0eWxlUmVzb2x2ZXIuY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBwYXRoID0gVmlld3BvcnRTdHlsZVJlc29sdmVyLmNwcDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKKwkJM0ZGRkY5QUMxNTlEOUIwNjAwMjBCQkQ1IC8qIFZpZXdwb3J0
U3R5bGVSZXNvbHZlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBWaWV3cG9y
dFN0eWxlUmVzb2x2ZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDEwMDJDQ0Iw
RjY2RURFRjAwOUU2NjBEIC8qIFNjcmlwdEZ1bmN0aW9uQ2FsbC5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBTY3JpcHRGdW5jdGlvbkNhbGwuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJNDEwMDJDQ0MwRjY2RURFRjAwOUU2NjBEIC8qIFNjcmlwdEZ1bmN0aW9uQ2Fs
bC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBTY3JpcHRGdW5jdGlv
bkNhbGwuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0MTBCN0U3MTEwNDVGQUIw
MDBEODIyNEYgLyogSlNNZXNzYWdlRXZlbnRDdXN0b20uY3BwICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAuY3BwOyBwYXRoID0gSlNNZXNzYWdlRXZlbnRDdXN0b20uY3BwOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwpAQCAtMjE0MzcsNiArMjE0NDEsOCBAQAogCQkJCUIyMjI3QjAzMEQwMEJG
RjEwMDcxQjc4MiAvKiBTVkdDU1NTdHlsZVNlbGVjdG9yLmNwcCAqLywKIAkJCQlCMjIyN0IwNDBE
MDBCRkYxMDA3MUI3ODIgLyogU1ZHQ1NTVmFsdWVLZXl3b3Jkcy5pbiAqLywKIAkJCQlCQzVFQzE3
NjBBNTA3RTNFMDA2MDA3RjUgLyogdmlldy1zb3VyY2UuY3NzICovLAorCQkJCTNGRkZGOUFCMTU5
RDlCMDYwMDIwQkJENSAvKiBWaWV3cG9ydFN0eWxlUmVzb2x2ZXIuY3BwICovLAorCQkJCTNGRkZG
OUFDMTU5RDlCMDYwMDIwQkJENSAvKiBWaWV3cG9ydFN0eWxlUmVzb2x2ZXIuaCAqLywKIAkJCQkx
NTBCOTIzNzE1RjA4REM0MDBFMTA5ODYgLyogV2ViS2l0Q1NTQXJyYXlGdW5jdGlvblZhbHVlLmNw
cCAqLywKIAkJCQkxNTBCOTIzODE1RjA4REM0MDBFMTA5ODYgLyogV2ViS2l0Q1NTQXJyYXlGdW5j
dGlvblZhbHVlLmggKi8sCiAJCQkJMzEwNjAzNkMxNDMyN0QyRTAwQUJGNEJBIC8qIFdlYktpdENT
U0ZpbHRlclZhbHVlLmNwcCAqLywKQEAgLTI1NzM3LDYgKzI1NzQzLDcgQEAKIAkJCQlBQUMwOENG
MzE1Rjk0MUZEMDBGMUUxODggLyogQWNjZXNzaWJpbGl0eVNWR1Jvb3QuaCBpbiBIZWFkZXJzICov
LAogCQkJCTUwOTMzMzUwMTYzQjBFNDMwMDA5OUE2MCAvKiBDdXN0b21GaWx0ZXJQYXJhbWV0ZXJM
aXN0LmggaW4gSGVhZGVycyAqLywKIAkJCQk1MEQzMjg1ODE2M0IzMTNGMDAxNjExMUUgLyogVmFs
aWRhdGVkQ3VzdG9tRmlsdGVyT3BlcmF0aW9uLmggaW4gSGVhZGVycyAqLywKKwkJCQkzRkZGRjlB
RTE1OUQ5QjA2MDAyMEJCRDUgLyogVmlld3BvcnRTdHlsZVJlc29sdmVyLmggaW4gSGVhZGVycyAq
LywKIAkJCQkzRkZGRjlBOTE1OUQ5QTU1MDAyMEJCRDUgLyogV2ViS2l0Q1NTVmlld3BvcnRSdWxl
LmggaW4gSGVhZGVycyAqLywKIAkJCQk5M0MzOEJGRjE2NDQ3M0M3MDAwOTFFQjIgLyogU2Nyb2xs
aW5nU3RhdGVGaXhlZE5vZGUuaCBpbiBIZWFkZXJzICovLAogCQkJCTkzQzM4QzAzMTY0NDczREQw
MDA5MUVCMiAvKiBTY3JvbGxpbmdUcmVlRml4ZWROb2RlLmggaW4gSGVhZGVycyAqLywKQEAgLTI4
ODIwLDYgKzI4ODI3LDcgQEAKIAkJCQk5M0YxOUIwNTA4MjQ1RTU5MDAxRTlBQkMgLyogWFNMVFBy
b2Nlc3NvckxpYnhzbHQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJRTFCRTUxMkQwQ0Y2QzUxMjAw
MkVBOTU5IC8qIFhTTFRVbmljb2RlU29ydC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk5NzdFMkUw
RTEyRjBGQzlDMDBDMTMzNzkgLyogWFNTQXVkaXRvci5jcHAgaW4gU291cmNlcyAqLywKKwkJCQkz
RkZGRjlBRDE1OUQ5QjA2MDAyMEJCRDUgLyogVmlld3BvcnRTdHlsZVJlc29sdmVyLmNwcCBpbiBT
b3VyY2VzICovLAogCQkJCUZENTM3MzUyMTM3QjY1MTgwMDAwOERDRSAvKiBaZXJvUG9sZS5jcHAg
aW4gU291cmNlcyAqLywKIAkJCQk1MUFCRjY0RDE2MzkyRTI4MDAxMzJBN0EgLyogTG9hZGVyU3Ry
YXRlZ3kuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNTA5MzMzNEYxNjNCMEU0MzAwMDk5QTYwIC8q
IEN1c3RvbUZpbHRlclBhcmFtZXRlckxpc3QuY3BwIGluIFNvdXJjZXMgKi8sCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTQWxsSW5PbmUuY3BwIGIvU291cmNlL1dlYkNvcmUvY3Nz
L0NTU0FsbEluT25lLmNwcAppbmRleCA4NGY5ZmU3ZjQzYzg5ZTViZGQxZTBhMWJlYjgwZTQ2OGM4
Y2E3YzMyLi40NzlkOGRlZjc4YzlkMzc0MDk3YzBjNGU5OTkxMzcxM2UyYTIzMTA1IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTQWxsSW5PbmUuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2Nzcy9DU1NBbGxJbk9uZS5jcHAKQEAgLTczLDMgKzczLDQgQEAKICNpbmNsdWRlICJTdHls
ZVByb3BlcnR5U2hvcnRoYW5kLmNwcCIKICNpbmNsdWRlICJTdHlsZVJlc29sdmVyLmNwcCIKICNp
bmNsdWRlICJTdHlsZVNjb3BlUmVzb2x2ZXIuY3BwIgorI2luY2x1ZGUgIlZpZXdwb3J0U3R5bGVS
ZXNvbHZlci5jcHAiCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvUnVsZVNldC5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9jc3MvUnVsZVNldC5jcHAKaW5kZXggMzcyZWZkYjNjYTNhZGQzMGM1
ZDYxMDAwZGExZjg5ZDYzNzQ4YWM1YS4uOWE3OGMwZmY5MDM4OWM5MGM0NGRhNWE2YjlmNWZmN2Fl
MjBjNmUzMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL1J1bGVTZXQuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2Nzcy9SdWxlU2V0LmNwcApAQCAtMzEyLDYgKzMxMiwxNCBAQCB2b2lk
IFJ1bGVTZXQ6OmFkZFJ1bGVzRnJvbVNoZWV0KFN0eWxlU2hlZXRDb250ZW50cyogc2hlZXQsIGNv
bnN0IE1lZGlhUXVlcnlFdmFsdQogICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVl
OwogICAgICAgICAgICAgICAgICAgICAgICAgcmVzb2x2ZXItPmFkZEtleWZyYW1lU3R5bGUoc3Rh
dGljX2Nhc3Q8U3R5bGVSdWxlS2V5ZnJhbWVzKj4oY2hpbGRSdWxlKSk7CiAgICAgICAgICAgICAg
ICAgICAgIH0KKyNpZiBFTkFCTEUoQ1NTX0RFVklDRV9BREFQVEFUSU9OKQorICAgICAgICAgICAg
ICAgICAgICBlbHNlIGlmIChjaGlsZFJ1bGUtPmlzVmlld3BvcnRSdWxlKCkgJiYgcmVzb2x2ZXIg
JiYgIXJlc29sdmVyLT5hZmZlY3RlZEJ5Vmlld3BvcnRDaGFuZ2UoKSkgeworICAgICAgICAgICAg
ICAgICAgICAgICAgLy8gQHZpZXdwb3J0IHNob3VsZCBub3QgYmUgc2NvcGVkLgorICAgICAgICAg
ICAgICAgICAgICAgICAgaWYgKHNjb3BlKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNv
bnRpbnVlOworICAgICAgICAgICAgICAgICAgICAgICAgcmVzb2x2ZXItPnZpZXdwb3J0U3R5bGVS
ZXNvbHZlcigpLT5hZGRWaWV3cG9ydFJ1bGUoc3RhdGljX2Nhc3Q8U3R5bGVSdWxlVmlld3BvcnQq
PihjaGlsZFJ1bGUpKTsKKyAgICAgICAgICAgICAgICAgICAgfQorI2VuZGlmCiAgICAgICAgICAg
ICAgICAgfSAvLyBmb3IgcnVsZXMKICAgICAgICAgICAgIH0gLy8gaWYgcnVsZXMKICAgICAgICAg
fSBlbHNlIGlmIChydWxlLT5pc0ZvbnRGYWNlUnVsZSgpICYmIHJlc29sdmVyKSB7CkBAIC0zNDAs
NiArMzQ4LDE0IEBAIHZvaWQgUnVsZVNldDo6YWRkUnVsZXNGcm9tU2hlZXQoU3R5bGVTaGVldENv
bnRlbnRzKiBzaGVldCwgY29uc3QgTWVkaWFRdWVyeUV2YWx1CiAgICAgICAgIGVsc2UgaWYgKHJ1
bGUtPmlzSG9zdFJ1bGUoKSkKICAgICAgICAgICAgIHJlc29sdmVyLT5hZGRIb3N0UnVsZShzdGF0
aWNfY2FzdDxTdHlsZVJ1bGVIb3N0Kj4ocnVsZSksIGhhc0RvY3VtZW50U2VjdXJpdHlPcmlnaW4s
IHNjb3BlKTsKICNlbmRpZgorI2lmIEVOQUJMRShDU1NfREVWSUNFX0FEQVBUQVRJT04pCisgICAg
ICAgIGVsc2UgaWYgKHJ1bGUtPmlzVmlld3BvcnRSdWxlKCkgJiYgcmVzb2x2ZXIpIHsKKyAgICAg
ICAgICAgIC8vIEB2aWV3cG9ydCBzaG91bGQgbm90IGJlIHNjb3BlZC4KKyAgICAgICAgICAgIGlm
IChzY29wZSkKKyAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgIHJlc29sdmVy
LT52aWV3cG9ydFN0eWxlUmVzb2x2ZXIoKS0+YWRkVmlld3BvcnRSdWxlKHN0YXRpY19jYXN0PFN0
eWxlUnVsZVZpZXdwb3J0Kj4ocnVsZSkpOworICAgICAgICB9CisjZW5kaWYKICAgICB9CiAgICAg
aWYgKG1fYXV0b1Nocmlua1RvRml0RW5hYmxlZCkKICAgICAgICAgc2hyaW5rVG9GaXQoKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVJlc29sdmVyLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2Nzcy9TdHlsZVJlc29sdmVyLmNwcAppbmRleCBmYjVlYWVmYjdhYTE2ZTZkN2U3ZTc5
YzgzZjJkMGQxYzA4YTc5YWE4Li5mOWFlYTUyYmQyZjhmOTZiNzllZTU0MzBkMWVmN2FiYTA1MTEy
YTI1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVSZXNvbHZlci5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlUmVzb2x2ZXIuY3BwCkBAIC0xMjMsNiArMTIzLDcg
QEAKICNpbmNsdWRlICJUcmFuc2Zvcm1hdGlvbk1hdHJpeC5oIgogI2luY2x1ZGUgIlRyYW5zbGF0
ZVRyYW5zZm9ybU9wZXJhdGlvbi5oIgogI2luY2x1ZGUgIlVzZXJBZ2VudFN0eWxlU2hlZXRzLmgi
CisjaW5jbHVkZSAiVmlld3BvcnRTdHlsZVJlc29sdmVyLmgiCiAjaW5jbHVkZSAiV2ViQ29yZU1l
bW9yeUluc3RydW1lbnRhdGlvbi5oIgogI2luY2x1ZGUgIldlYktpdENTU0tleWZyYW1lUnVsZS5o
IgogI2luY2x1ZGUgIldlYktpdENTU0tleWZyYW1lc1J1bGUuaCIKQEAgLTI3Niw2ICsyNzcsOSBA
QCBTdHlsZVJlc29sdmVyOjpTdHlsZVJlc29sdmVyKERvY3VtZW50KiBkb2N1bWVudCwgYm9vbCBt
YXRjaEF1dGhvckFuZFVzZXJTdHlsZXMpCiAgICAgLCBtX3NhbWVPcmlnaW5Pbmx5KGZhbHNlKQog
ICAgICwgbV9kaXN0cmlidXRlZFRvSW5zZXJ0aW9uUG9pbnQoZmFsc2UpCiAgICAgLCBtX2ZvbnRT
ZWxlY3RvcihDU1NGb250U2VsZWN0b3I6OmNyZWF0ZShkb2N1bWVudCkpCisjaWYgRU5BQkxFKENT
U19ERVZJQ0VfQURBUFRBVElPTikKKyAgICAsIG1fdmlld3BvcnRTdHlsZVJlc29sdmVyKFZpZXdw
b3J0U3R5bGVSZXNvbHZlcjo6Y3JlYXRlKGRvY3VtZW50KSkKKyNlbmRpZgogICAgICwgbV9hcHBs
eVByb3BlcnR5VG9SZWd1bGFyU3R5bGUodHJ1ZSkKICAgICAsIG1fYXBwbHlQcm9wZXJ0eVRvVmlz
aXRlZExpbmtTdHlsZShmYWxzZSkKICAgICAsIG1fc3R5bGVCdWlsZGVyKFN0eWxlQnVpbGRlcjo6
c2hhcmVkU3R5bGVCdWlsZGVyKCkpCkBAIC00MTIsNiArNDE2LDEwIEBAIHZvaWQgU3R5bGVSZXNv
bHZlcjo6YXBwZW5kQXV0aG9yU3R5bGVTaGVldHModW5zaWduZWQgZmlyc3ROZXcsIGNvbnN0IFZl
Y3RvcjxSZWZQCiAgICAgCiAgICAgaWYgKGRvY3VtZW50KCktPnJlbmRlcmVyKCkgJiYgZG9jdW1l
bnQoKS0+cmVuZGVyZXIoKS0+c3R5bGUoKSkKICAgICAgICAgZG9jdW1lbnQoKS0+cmVuZGVyZXIo
KS0+c3R5bGUoKS0+Zm9udCgpLnVwZGF0ZShmb250U2VsZWN0b3IoKSk7CisKKyNpZiBFTkFCTEUo
Q1NTX0RFVklDRV9BREFQVEFUSU9OKQorICAgIHZpZXdwb3J0U3R5bGVSZXNvbHZlcigpLT5yZXNv
bHZlKCk7CisjZW5kaWYKIH0KIAogdm9pZCBTdHlsZVJlc29sdmVyOjpwdXNoUGFyZW50RWxlbWVu
dChFbGVtZW50KiBwYXJlbnQpCkBAIC00NjYsNiArNDc0LDEwIEBAIHZvaWQgU3R5bGVSZXNvbHZl
cjo6YWRkS2V5ZnJhbWVTdHlsZShQYXNzUmVmUHRyPFN0eWxlUnVsZUtleWZyYW1lcz4gcnVsZSkK
IFN0eWxlUmVzb2x2ZXI6On5TdHlsZVJlc29sdmVyKCkKIHsKICAgICBtX2ZvbnRTZWxlY3Rvci0+
Y2xlYXJEb2N1bWVudCgpOworCisjaWYgRU5BQkxFKENTU19ERVZJQ0VfQURBUFRBVElPTikKKyAg
ICBtX3ZpZXdwb3J0U3R5bGVSZXNvbHZlci0+Y2xlYXJEb2N1bWVudCgpOworI2VuZGlmCiB9CiAK
IHZvaWQgU3R5bGVSZXNvbHZlcjo6c3dlZXBNYXRjaGVkUHJvcGVydGllc0NhY2hlKFRpbWVyPFN0
eWxlUmVzb2x2ZXI+KikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVJlc29s
dmVyLmggYi9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVSZXNvbHZlci5oCmluZGV4IGY3Njk5MzQ0
MjUxMTM5OWY3OWJhZWU3N2M0ZDdlZDMzNzUwNjM3NTIuLjdmMTI1MjAyMzBmMGFjYmQ5ODc1YjQy
ZDBhYzA3ZjAyZWQyYTkzMzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVJl
c29sdmVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlUmVzb2x2ZXIuaApAQCAtMzMs
NiArMzMsNyBAQAogI2luY2x1ZGUgIlNlbGVjdG9yQ2hlY2tlci5oIgogI2luY2x1ZGUgIlN0eWxl
SW5oZXJpdGVkRGF0YS5oIgogI2luY2x1ZGUgIlN0eWxlU2NvcGVSZXNvbHZlci5oIgorI2luY2x1
ZGUgIlZpZXdwb3J0U3R5bGVSZXNvbHZlci5oIgogI2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+CiAj
aW5jbHVkZSA8d3RmL0hhc2hTZXQuaD4KICNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+CkBAIC05Miw2
ICs5Myw3IEBAIGNsYXNzIFN0eWxlU2hlZXQ7CiBjbGFzcyBTdHlsZVNoZWV0Q29udGVudHM7CiBj
bGFzcyBTdHlsZVNoZWV0TGlzdDsKIGNsYXNzIFN0eWxlZEVsZW1lbnQ7CitjbGFzcyBWaWV3cG9y
dFN0eWxlUmVzb2x2ZXI7CiBjbGFzcyBXZWJLaXRDU1NGaWx0ZXJWYWx1ZTsKIGNsYXNzIFdlYktp
dENTU1NoYWRlclZhbHVlOwogY2xhc3MgV2ViS2l0Q1NTU1ZHRG9jdW1lbnRWYWx1ZTsKQEAgLTI0
NSw2ICsyNDcsOSBAQCBwdWJsaWM6CiAgICAgYm9vbCBoYXNTZWxlY3RvckZvckF0dHJpYnV0ZShj
b25zdCBBdG9taWNTdHJpbmcmKSBjb25zdDsKIAogICAgIENTU0ZvbnRTZWxlY3RvciogZm9udFNl
bGVjdG9yKCkgY29uc3QgeyByZXR1cm4gbV9mb250U2VsZWN0b3IuZ2V0KCk7IH0KKyNpZiBFTkFC
TEUoQ1NTX0RFVklDRV9BREFQVEFUSU9OKQorICAgIFZpZXdwb3J0U3R5bGVSZXNvbHZlciogdmll
d3BvcnRTdHlsZVJlc29sdmVyKCkgeyByZXR1cm4gbV92aWV3cG9ydFN0eWxlUmVzb2x2ZXIuZ2V0
KCk7IH0KKyNlbmRpZgogCiAgICAgdm9pZCBhZGRWaWV3cG9ydERlcGVuZGVudE1lZGlhUXVlcnlS
ZXN1bHQoY29uc3QgTWVkaWFRdWVyeUV4cCosIGJvb2wgcmVzdWx0KTsKICAgICBib29sIGhhc1Zp
ZXdwb3J0RGVwZW5kZW50TWVkaWFRdWVyaWVzKCkgY29uc3QgeyByZXR1cm4gIW1fdmlld3BvcnRE
ZXBlbmRlbnRNZWRpYVF1ZXJ5UmVzdWx0cy5pc0VtcHR5KCk7IH0KQEAgLTQ5Myw2ICs0OTgsMTAg
QEAgcHJpdmF0ZToKICAgICBSZWZQdHI8Q1NTRm9udFNlbGVjdG9yPiBtX2ZvbnRTZWxlY3RvcjsK
ICAgICBWZWN0b3I8T3duUHRyPE1lZGlhUXVlcnlSZXN1bHQ+ID4gbV92aWV3cG9ydERlcGVuZGVu
dE1lZGlhUXVlcnlSZXN1bHRzOwogCisjaWYgRU5BQkxFKENTU19ERVZJQ0VfQURBUFRBVElPTikK
KyAgICBSZWZQdHI8Vmlld3BvcnRTdHlsZVJlc29sdmVyPiBtX3ZpZXdwb3J0U3R5bGVSZXNvbHZl
cjsKKyNlbmRpZgorCiAgICAgYm9vbCBtX2FwcGx5UHJvcGVydHlUb1JlZ3VsYXJTdHlsZTsKICAg
ICBib29sIG1fYXBwbHlQcm9wZXJ0eVRvVmlzaXRlZExpbmtTdHlsZTsKICAgICBjb25zdCBTdHls
ZUJ1aWxkZXImIG1fc3R5bGVCdWlsZGVyOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3Nz
L1ZpZXdwb3J0U3R5bGVSZXNvbHZlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvVmlld3BvcnRT
dHlsZVJlc29sdmVyLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lN2U2OTNiYzUzZjg5OTE1YzM2NWEyMjY2NDk5
YWExZDdhZGQ5NTZjCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL1ZpZXdw
b3J0U3R5bGVSZXNvbHZlci5jcHAKQEAgLTAsMCArMSwxNzEgQEAKKy8qCisgKiBDb3B5cmlnaHQg
KEMpIDIwMTIgSW50ZWwgQ29ycG9yYXRpb24uIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKgorICogMS4gUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZQorICogICAgY29weXJp
Z2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcKKyAq
ICAgIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz
dCByZXByb2R1Y2UgdGhlIGFib3ZlCisgKiAgICBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZworICogICAgZGlzY2xhaW1lciBpbiB0aGUg
ZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzCisgKiAgICBwcm92aWRlZCB3aXRo
IHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBU
SEUgQ09QWVJJR0hUIEhPTERFUiDigJxBUyBJU+KAnSBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICog
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBU
SEUgQ09QWVJJR0hUIEhPTERFUiBCRQorICogTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLAorICogT1IgQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9G
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICog
UFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZCisgKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUgorICogVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GCisgKiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YKKyAqIFNVQ0ggREFNQUdFLgor
ICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJWaWV3cG9ydFN0eWxlUmVzb2x2
ZXIuaCIKKworI2lmIEVOQUJMRShDU1NfREVWSUNFX0FEQVBUQVRJT04pCisKKyNpbmNsdWRlICJD
U1NWYWx1ZUtleXdvcmRzLmgiCisjaW5jbHVkZSAiRG9jdW1lbnQuaCIKKyNpbmNsdWRlICJQYWdl
LmgiCisjaW5jbHVkZSAiUmVuZGVyVmlldy5oIgorI2luY2x1ZGUgIlN0eWxlUHJvcGVydHlTZXQu
aCIKKyNpbmNsdWRlICJTdHlsZVJ1bGUuaCIKKyNpbmNsdWRlICJWaWV3cG9ydEFyZ3VtZW50cy5o
IgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK1ZpZXdwb3J0U3R5bGVSZXNvbHZlcjo6Vmlld3Bv
cnRTdHlsZVJlc29sdmVyKERvY3VtZW50KiBkb2N1bWVudCkKKyAgICA6IG1fZG9jdW1lbnQoZG9j
dW1lbnQpCit7CisgICAgQVNTRVJUKG1fZG9jdW1lbnQpOworCisgICAgbV9pbml0aWFsVmlld3Bv
cnRTaXplLnNldFdpZHRoKG1fZG9jdW1lbnQtPnZpZXdwb3J0U2l6ZSgpLndpZHRoKCkpOworICAg
IG1faW5pdGlhbFZpZXdwb3J0U2l6ZS5zZXRIZWlnaHQobV9kb2N1bWVudC0+dmlld3BvcnRTaXpl
KCkuaGVpZ2h0KCkpOworCisgICAgZmxvYXQgZGV2aWNlU2NhbGVGYWN0b3IgPSAxOworICAgIGlm
IChtX2RvY3VtZW50LT5wYWdlKCkpCisgICAgICAgIGRldmljZVNjYWxlRmFjdG9yID0gbV9kb2N1
bWVudC0+cGFnZSgpLT5kZXZpY2VTY2FsZUZhY3RvcigpOworCisgICAgaWYgKGRldmljZVNjYWxl
RmFjdG9yICE9IDEpCisgICAgICAgIG1faW5pdGlhbFZpZXdwb3J0U2l6ZS5zY2FsZSgxLmYgLyBk
ZXZpY2VTY2FsZUZhY3Rvcik7Cit9CisKK3ZvaWQgVmlld3BvcnRTdHlsZVJlc29sdmVyOjphZGRW
aWV3cG9ydFJ1bGUoU3R5bGVSdWxlVmlld3BvcnQqIHZpZXdwb3J0UnVsZSkKK3sKKyAgICBTdHls
ZVByb3BlcnR5U2V0KiBwcm9wZXJ0eVNldCA9IHZpZXdwb3J0UnVsZS0+bXV0YWJsZVByb3BlcnRp
ZXMoKTsKKworICAgIHVuc2lnbmVkIHByb3BlcnR5Q291bnQgPSBwcm9wZXJ0eVNldC0+cHJvcGVy
dHlDb3VudCgpOworICAgIGlmICghcHJvcGVydHlDb3VudCkKKyAgICAgICAgcmV0dXJuOworCisg
ICAgaWYgKCFtX3Byb3BlcnR5U2V0KSB7CisgICAgICAgIG1fcHJvcGVydHlTZXQgPSBwcm9wZXJ0
eVNldC0+Y29weSgpOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgLy8gV2UgY2Fubm90
IHVzZSBtZXJnZUFuZE92ZXJyaWRlT25Db25mbGljdCgpIGhlcmUgYmVjYXVzZSBpdCBkb2Vzbid0
CisgICAgLy8gcmVzcGVjdCB0aGUgIWltcG9ydGFudCBkZWNsYXJhdGlvbiAoYnV0IGFkZFBhcnNl
ZFByb3BlcnR5KCkgZG9lcykuCisgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IHByb3BlcnR5
Q291bnQ7ICsraSkKKyAgICAgICAgbV9wcm9wZXJ0eVNldC0+YWRkUGFyc2VkUHJvcGVydHkocHJv
cGVydHlTZXQtPnByb3BlcnR5QXQoaSkudG9DU1NQcm9wZXJ0eSgpKTsKK30KKwordm9pZCBWaWV3
cG9ydFN0eWxlUmVzb2x2ZXI6OmNsZWFyRG9jdW1lbnQoKQoreworICAgIG1fZG9jdW1lbnQgPSAw
OworfQorCit2b2lkIFZpZXdwb3J0U3R5bGVSZXNvbHZlcjo6cmVzb2x2ZSgpCit7CisgICAgaWYg
KCFtX2RvY3VtZW50IHx8ICFtX3Byb3BlcnR5U2V0KQorICAgICAgICByZXR1cm47CisKKyAgICBW
aWV3cG9ydEFyZ3VtZW50cyBhcmd1bWVudHMoVmlld3BvcnRBcmd1bWVudHM6OkNTU0RldmljZUFk
YXB0YXRpb24pOworCisgICAgYXJndW1lbnRzLnVzZXJab29tID0gZ2V0Vmlld3BvcnRBcmd1bWVu
dFZhbHVlKENTU1Byb3BlcnR5VXNlclpvb20pOworICAgIGFyZ3VtZW50cy56b29tID0gZ2V0Vmll
d3BvcnRBcmd1bWVudFZhbHVlKENTU1Byb3BlcnR5Wm9vbSk7CisgICAgYXJndW1lbnRzLm1pblpv
b20gPSBnZXRWaWV3cG9ydEFyZ3VtZW50VmFsdWUoQ1NTUHJvcGVydHlNaW5ab29tKTsKKyAgICBh
cmd1bWVudHMubWF4Wm9vbSA9IGdldFZpZXdwb3J0QXJndW1lbnRWYWx1ZShDU1NQcm9wZXJ0eU1h
eFpvb20pOworICAgIGFyZ3VtZW50cy5taW5XaWR0aCA9IGdldFZpZXdwb3J0QXJndW1lbnRWYWx1
ZShDU1NQcm9wZXJ0eU1pbldpZHRoKTsKKyAgICBhcmd1bWVudHMubWF4V2lkdGggPSBnZXRWaWV3
cG9ydEFyZ3VtZW50VmFsdWUoQ1NTUHJvcGVydHlNYXhXaWR0aCk7CisgICAgYXJndW1lbnRzLm1p
bkhlaWdodCA9IGdldFZpZXdwb3J0QXJndW1lbnRWYWx1ZShDU1NQcm9wZXJ0eU1pbkhlaWdodCk7
CisgICAgYXJndW1lbnRzLm1heEhlaWdodCA9IGdldFZpZXdwb3J0QXJndW1lbnRWYWx1ZShDU1NQ
cm9wZXJ0eU1heEhlaWdodCk7CisgICAgYXJndW1lbnRzLm9yaWVudGF0aW9uID0gZ2V0Vmlld3Bv
cnRBcmd1bWVudFZhbHVlKENTU1Byb3BlcnR5T3JpZW50YXRpb24pOworCisgICAgbV9kb2N1bWVu
dC0+c2V0Vmlld3BvcnRBcmd1bWVudHMoYXJndW1lbnRzKTsKKyAgICBtX2RvY3VtZW50LT51cGRh
dGVWaWV3cG9ydEFyZ3VtZW50cygpOworCisgICAgbV9wcm9wZXJ0eVNldCA9IDA7Cit9CisKK2Zs
b2F0IFZpZXdwb3J0U3R5bGVSZXNvbHZlcjo6Z2V0Vmlld3BvcnRBcmd1bWVudFZhbHVlKENTU1By
b3BlcnR5SUQgaWQpIGNvbnN0Cit7CisgICAgZmxvYXQgZGVmYXVsdFZhbHVlID0gVmlld3BvcnRB
cmd1bWVudHM6OlZhbHVlQXV0bzsKKworICAgIC8vIFVzZXJab29tIGRlZmF1bHQgdmFsdWUgaXMg
Q1NTVmFsdWVab29tLCB3aGljaCBtYXBzIHRvIHRydWUsIG1lYW5pbmcgdGhhdAorICAgIC8vIHll
cywgaXQgaXMgdXNlciBzY2FsYWJsZS4gV2hlbiB0aGUgdmFsdWUgaXMgc2V0IHRvIENTU1ZhbHVl
Rml4ZWQsIHdlCisgICAgLy8gcmV0dXJuIGZhbHNlLgorICAgIGlmIChpZCA9PSBDU1NQcm9wZXJ0
eVVzZXJab29tKQorICAgICAgICBkZWZhdWx0VmFsdWUgPSAxOworCisgICAgUmVmUHRyPENTU1Zh
bHVlPiB2YWx1ZSA9IG1fcHJvcGVydHlTZXQtPmdldFByb3BlcnR5Q1NTVmFsdWUoaWQpOworICAg
IGlmICghdmFsdWUgfHwgIXZhbHVlLT5pc1ByaW1pdGl2ZVZhbHVlKCkpCisgICAgICAgIHJldHVy
biBkZWZhdWx0VmFsdWU7CisKKyAgICBDU1NQcmltaXRpdmVWYWx1ZSogcHJpbWl0aXZlVmFsdWUg
PSBzdGF0aWNfY2FzdDxDU1NQcmltaXRpdmVWYWx1ZSo+KHZhbHVlLmdldCgpKTsKKworICAgIGlm
IChwcmltaXRpdmVWYWx1ZS0+aXNOdW1iZXIoKSB8fCBwcmltaXRpdmVWYWx1ZS0+aXNQeCgpKQor
ICAgICAgICByZXR1cm4gcHJpbWl0aXZlVmFsdWUtPmdldEZsb2F0VmFsdWUoKTsKKworICAgIGlm
IChwcmltaXRpdmVWYWx1ZS0+aXNGb250UmVsYXRpdmVMZW5ndGgoKSkKKyAgICAgICAgcmV0dXJu
IHByaW1pdGl2ZVZhbHVlLT5nZXRGbG9hdFZhbHVlKCkgKiBtX2RvY3VtZW50LT5kb2N1bWVudEVs
ZW1lbnQoKS0+cmVuZGVyU3R5bGUoKS0+Zm9udERlc2NyaXB0aW9uKCkuY29tcHV0ZWRTaXplKCk7
CisKKyAgICBpZiAocHJpbWl0aXZlVmFsdWUtPmlzUGVyY2VudGFnZSgpKSB7CisgICAgICAgIGZs
b2F0IHBlcmNlbnRWYWx1ZSA9IHByaW1pdGl2ZVZhbHVlLT5nZXRGbG9hdFZhbHVlKCkgLyAxMDAu
MGY7CisgICAgICAgIHN3aXRjaCAoaWQpIHsKKyAgICAgICAgY2FzZSBDU1NQcm9wZXJ0eU1heEhl
aWdodDoKKyAgICAgICAgY2FzZSBDU1NQcm9wZXJ0eU1pbkhlaWdodDoKKyAgICAgICAgICAgIHJl
dHVybiBwZXJjZW50VmFsdWUgKiBtX2luaXRpYWxWaWV3cG9ydFNpemUuaGVpZ2h0KCk7CisgICAg
ICAgIGNhc2UgQ1NTUHJvcGVydHlNYXhXaWR0aDoKKyAgICAgICAgY2FzZSBDU1NQcm9wZXJ0eU1p
bldpZHRoOgorICAgICAgICAgICAgcmV0dXJuIHBlcmNlbnRWYWx1ZSAqIG1faW5pdGlhbFZpZXdw
b3J0U2l6ZS53aWR0aCgpOworICAgICAgICBjYXNlIENTU1Byb3BlcnR5TWF4Wm9vbToKKyAgICAg
ICAgY2FzZSBDU1NQcm9wZXJ0eU1pblpvb206CisgICAgICAgIGNhc2UgQ1NTUHJvcGVydHlab29t
OgorICAgICAgICAgICAgcmV0dXJuIHBlcmNlbnRWYWx1ZTsKKyAgICAgICAgZGVmYXVsdDoKKyAg
ICAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgICAgICAgICAgYnJlYWs7CisgICAg
ICAgIH0KKyAgICB9CisKKyAgICBzd2l0Y2ggKHByaW1pdGl2ZVZhbHVlLT5nZXRJZGVudCgpKSB7
CisgICAgY2FzZSBDU1NWYWx1ZUF1dG86CisgICAgICAgIHJldHVybiBkZWZhdWx0VmFsdWU7Cisg
ICAgY2FzZSBDU1NWYWx1ZURldmljZUhlaWdodDoKKyAgICAgICAgcmV0dXJuIFZpZXdwb3J0QXJn
dW1lbnRzOjpWYWx1ZURldmljZUhlaWdodDsKKyAgICBjYXNlIENTU1ZhbHVlRGV2aWNlV2lkdGg6
CisgICAgICAgIHJldHVybiBWaWV3cG9ydEFyZ3VtZW50czo6VmFsdWVEZXZpY2VXaWR0aDsKKyAg
ICBjYXNlIENTU1ZhbHVlTGFuZHNjYXBlOgorICAgICAgICByZXR1cm4gVmlld3BvcnRBcmd1bWVu
dHM6OlZhbHVlTGFuZHNjYXBlOworICAgIGNhc2UgQ1NTVmFsdWVQb3J0cmFpdDoKKyAgICAgICAg
cmV0dXJuIFZpZXdwb3J0QXJndW1lbnRzOjpWYWx1ZVBvcnRyYWl0OworICAgIGNhc2UgQ1NTVmFs
dWVab29tOgorICAgICAgICByZXR1cm4gZGVmYXVsdFZhbHVlOworICAgIGNhc2UgQ1NTVmFsdWVG
aXhlZDoKKyAgICAgICAgcmV0dXJuIDA7CisgICAgZGVmYXVsdDoKKyAgICAgICAgcmV0dXJuIGRl
ZmF1bHRWYWx1ZTsKKyAgICB9Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlm
IC8vIEVOQUJMRShDU1NfREVWSUNFX0FEQVBUQVRJT04pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9jc3MvVmlld3BvcnRTdHlsZVJlc29sdmVyLmggYi9Tb3VyY2UvV2ViQ29yZS9jc3MvVmll
d3BvcnRTdHlsZVJlc29sdmVyLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMGI4ZmY1NzkyMjRkMjViYzhiOTIzOGFh
YmU4ZTI0MTEwMGFjZDlmMAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9W
aWV3cG9ydFN0eWxlUmVzb2x2ZXIuaApAQCAtMCwwICsxLDc0IEBACisvKgorICogQ29weXJpZ2h0
IChDKSAyMDEyIEludGVsIENvcnBvcmF0aW9uLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICoKKyAqIDEuIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUKKyAqICAgIGNvcHly
aWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nCisg
KiAgICBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQorICogICAgY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcKKyAqICAgIGRpc2NsYWltZXIgaW4gdGhl
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscworICogICAgcHJvdmlkZWQgd2l0
aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
VEhFIENPUFlSSUdIVCBIT0xERVIg4oCcQVMgSVPigJ0gQU5EIEFOWQorICogRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAq
IElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwg
VEhFIENPUFlSSUdIVCBIT0xERVIgQkUKKyAqIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwKKyAqIE9SIENPTlNFUVVFTlRJQUwg
REFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBP
RiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAq
IFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
IEFOWQorICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IKKyAqIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRgorICogVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GCisgKiBTVUNIIERBTUFHRS4K
KyAqLworCisjaWZuZGVmIFZpZXdwb3J0U3R5bGVSZXNvbHZlcl9oCisjZGVmaW5lIFZpZXdwb3J0
U3R5bGVSZXNvbHZlcl9oCisKKyNpZiBFTkFCTEUoQ1NTX0RFVklDRV9BREFQVEFUSU9OKQorCisj
aW5jbHVkZSAiQ1NTUHJvcGVydHlOYW1lcy5oIgorI2luY2x1ZGUgIkZsb2F0U2l6ZS5oIgorI2lu
Y2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CisjaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgorCituYW1l
c3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIENTU1ByaW1pdGl2ZVZhbHVlOworY2xhc3MgRG9jdW1l
bnQ7CitjbGFzcyBTdHlsZVJ1bGVWaWV3cG9ydDsKK2NsYXNzIFN0eWxlUHJvcGVydHlTZXQ7CisK
K2NsYXNzIFZpZXdwb3J0U3R5bGVSZXNvbHZlciA6IHB1YmxpYyBSZWZDb3VudGVkPFZpZXdwb3J0
U3R5bGVSZXNvbHZlcj4geworcHVibGljOgorICAgIHN0YXRpYyBQYXNzUmVmUHRyPFZpZXdwb3J0
U3R5bGVSZXNvbHZlcj4gY3JlYXRlKERvY3VtZW50KiBkb2N1bWVudCkKKyAgICB7CisgICAgICAg
IHJldHVybiBhZG9wdFJlZihuZXcgVmlld3BvcnRTdHlsZVJlc29sdmVyKGRvY3VtZW50KSk7Cisg
ICAgfQorCisgICAgdm9pZCBhZGRWaWV3cG9ydFJ1bGUoU3R5bGVSdWxlVmlld3BvcnQqKTsKKwor
ICAgIHZvaWQgY2xlYXJEb2N1bWVudCgpOworICAgIHZvaWQgcmVzb2x2ZSgpOworCitwcml2YXRl
OgorICAgIGV4cGxpY2l0IFZpZXdwb3J0U3R5bGVSZXNvbHZlcihEb2N1bWVudCopOworCisgICAg
ZmxvYXQgZ2V0Vmlld3BvcnRBcmd1bWVudFZhbHVlKENTU1Byb3BlcnR5SUQpIGNvbnN0OworCisg
ICAgRG9jdW1lbnQqIG1fZG9jdW1lbnQ7CisgICAgUmVmUHRyPFN0eWxlUHJvcGVydHlTZXQ+IG1f
cHJvcGVydHlTZXQ7CisKKyAgICBGbG9hdFNpemUgbV9pbml0aWFsVmlld3BvcnRTaXplOworfTsK
KworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gRU5BQkxFKENTU19ERVZJQ0Vf
QURBUFRBVElPTikKKworI2VuZGlmIC8vIFZpZXdwb3J0U3R5bGVSZXNvbHZlcl9oCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9E
b2N1bWVudC5oCmluZGV4IDkyYTMyY2JiMzNjMDYwNGNhMjAyNGYxNjNlOTNkZWMxZTEzNjNkOTku
LmZjNDNmMWUyNzIxM2IwMTIwMWEyOGFjYWI4MTAyZmM0N2E0MGE2ZDggMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1
bWVudC5oCkBAIC0zMjMsNiArMzIzLDcgQEAgcHVibGljOgogICAgIERFRklORV9BVFRSSUJVVEVf
RVZFTlRfTElTVEVORVIod2Via2l0dmlzaWJpbGl0eWNoYW5nZSk7CiAjZW5kaWYKIAorICAgIHZv
aWQgc2V0Vmlld3BvcnRBcmd1bWVudHMoY29uc3QgVmlld3BvcnRBcmd1bWVudHMmIHZpZXdwb3J0
QXJndW1lbnRzKSB7IG1fdmlld3BvcnRBcmd1bWVudHMgPSB2aWV3cG9ydEFyZ3VtZW50czsgfQog
ICAgIFZpZXdwb3J0QXJndW1lbnRzIHZpZXdwb3J0QXJndW1lbnRzKCkgY29uc3QgeyByZXR1cm4g
bV92aWV3cG9ydEFyZ3VtZW50czsgfQogI2lmbmRlZiBOREVCVUcKICAgICBib29sIGRpZERpc3Bh
dGNoVmlld3BvcnRQcm9wZXJ0aWVzQ2hhbmdlZCgpIGNvbnN0IHsgcmV0dXJuIG1fZGlkRGlzcGF0
Y2hWaWV3cG9ydFByb3BlcnRpZXNDaGFuZ2VkOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9kb20vVmlld3BvcnRBcmd1bWVudHMuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL1ZpZXdwb3J0
QXJndW1lbnRzLmNwcAppbmRleCBkODg0MDRlMzYyMzA0Zjc4NzI0MmIyMjNjZDdmZmQ5Y2M3MGYw
MjkxLi5lMWFkZTYzZDExZGI1YzZkZWMyN2RkYTU3NDA5NzYwZGIwNDcyNmYyIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9kb20vVmlld3BvcnRBcmd1bWVudHMuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2RvbS9WaWV3cG9ydEFyZ3VtZW50cy5jcHAKQEAgLTYsNiArNiw3IEBACiAgKiBDb3B5
cmlnaHQgKEMpIDIwMDQsIDIwMDUsIDIwMDYsIDIwMDcsIDIwMDgsIDIwMTEgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgogICogQ29weXJpZ2h0IChDKSAyMDA4IFRvcmNoIE1vYmlsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuIChodHRwOi8vd3d3LnRvcmNobW9iaWxlLmNvbS8pCiAg
KiBDb3B5cmlnaHQgKEMpIDIwMTAgTm9raWEgQ29ycG9yYXRpb24gYW5kL29yIGl0cyBzdWJzaWRp
YXJ5KC1pZXMpCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIgSW50ZWwgQ29ycG9yYXRpb24uIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCiAgKgogICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlv
dSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgogICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJt
cyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKQEAgLTQzLDYgKzQ0LDE5IEBAIG5h
bWVzcGFjZSBXZWJDb3JlIHsKIAogY29uc3QgZmxvYXQgVmlld3BvcnRBcmd1bWVudHM6OmRlcHJl
Y2F0ZWRUYXJnZXREUEkgPSAxNjA7CiAKK3N0YXRpYyBjb25zdCBmbG9hdCYgY29tcGFyZUlnbm9y
aW5nQXV0byhjb25zdCBmbG9hdCYgdmFsdWUxLCBjb25zdCBmbG9hdCYgdmFsdWUyLCBjb25zdCBm
bG9hdCYgKCpjb21wYXJlKSAoY29uc3QgZmxvYXQmLCBjb25zdCBmbG9hdCYpKQoreworICAgIEFT
U0VSVCh2YWx1ZTEgIT0gVmlld3BvcnRBcmd1bWVudHM6OlZhbHVlQXV0byB8fCB2YWx1ZTIgIT0g
Vmlld3BvcnRBcmd1bWVudHM6OlZhbHVlQXV0byk7CisKKyAgICBpZiAodmFsdWUxID09IFZpZXdw
b3J0QXJndW1lbnRzOjpWYWx1ZUF1dG8pCisgICAgICAgIHJldHVybiB2YWx1ZTI7CisKKyAgICBp
ZiAodmFsdWUyID09IFZpZXdwb3J0QXJndW1lbnRzOjpWYWx1ZUF1dG8pCisgICAgICAgIHJldHVy
biB2YWx1ZTE7CisKKyAgICByZXR1cm4gY29tcGFyZSh2YWx1ZTEsIHZhbHVlMik7Cit9CisKIHN0
YXRpYyBpbmxpbmUgZmxvYXQgY2xhbXBMZW5ndGhWYWx1ZShmbG9hdCB2YWx1ZSkKIHsKICAgICBB
U1NFUlQodmFsdWUgIT0gVmlld3BvcnRBcmd1bWVudHM6OlZhbHVlRGV2aWNlV2lkdGgpOwpAQCAt
NjgsNyArODIsMTEgQEAgc3RhdGljIGlubGluZSBmbG9hdCBjbGFtcFNjYWxlVmFsdWUoZmxvYXQg
dmFsdWUpCiBWaWV3cG9ydEF0dHJpYnV0ZXMgVmlld3BvcnRBcmd1bWVudHM6OnJlc29sdmUoY29u
c3QgRmxvYXRTaXplJiBpbml0aWFsVmlld3BvcnRTaXplLCBjb25zdCBGbG9hdFNpemUmIGRldmlj
ZVNpemUsIGludCBkZWZhdWx0V2lkdGgpIGNvbnN0CiB7CiAgICAgZmxvYXQgcmVzdWx0V2lkdGgg
PSB3aWR0aDsKKyAgICBmbG9hdCByZXN1bHRNYXhXaWR0aCA9IG1heFdpZHRoOworICAgIGZsb2F0
IHJlc3VsdE1pbldpZHRoID0gbWluV2lkdGg7CiAgICAgZmxvYXQgcmVzdWx0SGVpZ2h0ID0gaGVp
Z2h0OworICAgIGZsb2F0IHJlc3VsdE1pbkhlaWdodCA9IG1pbkhlaWdodDsKKyAgICBmbG9hdCBy
ZXN1bHRNYXhIZWlnaHQgPSBtYXhIZWlnaHQ7CiAgICAgZmxvYXQgcmVzdWx0Wm9vbSA9IHpvb207
CiAgICAgZmxvYXQgcmVzdWx0TWluWm9vbSA9IG1pblpvb207CiAgICAgZmxvYXQgcmVzdWx0TWF4
Wm9vbSA9IG1heFpvb207CkBAIC05Miw2ICsxMTAsNzMgQEAgVmlld3BvcnRBdHRyaWJ1dGVzIFZp
ZXdwb3J0QXJndW1lbnRzOjpyZXNvbHZlKGNvbnN0IEZsb2F0U2l6ZSYgaW5pdGlhbFZpZXdwb3J0
U2kKICAgICAgICAgYnJlYWs7CiAgICAgfQogCisgICAgaWYgKHR5cGUgPT0gVmlld3BvcnRBcmd1
bWVudHM6OkNTU0RldmljZUFkYXB0YXRpb24pIHsKKyAgICAgICAgc3dpdGNoIChpbnQocmVzdWx0
TWluV2lkdGgpKSB7CisgICAgICAgIGNhc2UgVmlld3BvcnRBcmd1bWVudHM6OlZhbHVlRGV2aWNl
V2lkdGg6CisgICAgICAgICAgICByZXN1bHRNaW5XaWR0aCA9IGRldmljZVNpemUud2lkdGgoKTsK
KyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIFZpZXdwb3J0QXJndW1lbnRzOjpWYWx1
ZURldmljZUhlaWdodDoKKyAgICAgICAgICAgIHJlc3VsdE1pbldpZHRoID0gZGV2aWNlU2l6ZS5o
ZWlnaHQoKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisKKyAgICAgICAgc3dpdGNo
IChpbnQocmVzdWx0TWF4V2lkdGgpKSB7CisgICAgICAgIGNhc2UgVmlld3BvcnRBcmd1bWVudHM6
OlZhbHVlRGV2aWNlV2lkdGg6CisgICAgICAgICAgICByZXN1bHRNYXhXaWR0aCA9IGRldmljZVNp
emUud2lkdGgoKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIFZpZXdwb3J0QXJn
dW1lbnRzOjpWYWx1ZURldmljZUhlaWdodDoKKyAgICAgICAgICAgIHJlc3VsdE1heFdpZHRoID0g
ZGV2aWNlU2l6ZS5oZWlnaHQoKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisKKyAg
ICAgICAgc3dpdGNoIChpbnQocmVzdWx0TWluSGVpZ2h0KSkgeworICAgICAgICBjYXNlIFZpZXdw
b3J0QXJndW1lbnRzOjpWYWx1ZURldmljZVdpZHRoOgorICAgICAgICAgICAgcmVzdWx0TWluSGVp
Z2h0ID0gZGV2aWNlU2l6ZS53aWR0aCgpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNh
c2UgVmlld3BvcnRBcmd1bWVudHM6OlZhbHVlRGV2aWNlSGVpZ2h0OgorICAgICAgICAgICAgcmVz
dWx0TWluSGVpZ2h0ID0gZGV2aWNlU2l6ZS5oZWlnaHQoKTsKKyAgICAgICAgICAgIGJyZWFrOwor
ICAgICAgICB9CisKKyAgICAgICAgc3dpdGNoIChpbnQocmVzdWx0TWF4SGVpZ2h0KSkgeworICAg
ICAgICBjYXNlIFZpZXdwb3J0QXJndW1lbnRzOjpWYWx1ZURldmljZVdpZHRoOgorICAgICAgICAg
ICAgcmVzdWx0TWF4SGVpZ2h0ID0gZGV2aWNlU2l6ZS53aWR0aCgpOworICAgICAgICAgICAgYnJl
YWs7CisgICAgICAgIGNhc2UgVmlld3BvcnRBcmd1bWVudHM6OlZhbHVlRGV2aWNlSGVpZ2h0Ogor
ICAgICAgICAgICAgcmVzdWx0TWF4SGVpZ2h0ID0gZGV2aWNlU2l6ZS5oZWlnaHQoKTsKKyAgICAg
ICAgICAgIGJyZWFrOworICAgICAgICB9CisKKyAgICAgICAgaWYgKHJlc3VsdE1pbldpZHRoICE9
IFZpZXdwb3J0QXJndW1lbnRzOjpWYWx1ZUF1dG8gfHwgcmVzdWx0TWF4V2lkdGggIT0gVmlld3Bv
cnRBcmd1bWVudHM6OlZhbHVlQXV0bykKKyAgICAgICAgICAgIHJlc3VsdFdpZHRoID0gY29tcGFy
ZUlnbm9yaW5nQXV0byhyZXN1bHRNaW5XaWR0aCwgY29tcGFyZUlnbm9yaW5nQXV0byhyZXN1bHRN
YXhXaWR0aCwgZGV2aWNlU2l6ZS53aWR0aCgpLCBtaW4pLCBtYXgpOworCisgICAgICAgIGlmIChy
ZXN1bHRNaW5IZWlnaHQgIT0gVmlld3BvcnRBcmd1bWVudHM6OlZhbHVlQXV0byB8fCByZXN1bHRN
YXhIZWlnaHQgIT0gVmlld3BvcnRBcmd1bWVudHM6OlZhbHVlQXV0bykKKyAgICAgICAgICAgIHJl
c3VsdEhlaWdodCA9IGNvbXBhcmVJZ25vcmluZ0F1dG8ocmVzdWx0TWluSGVpZ2h0LCBjb21wYXJl
SWdub3JpbmdBdXRvKHJlc3VsdE1heEhlaWdodCwgZGV2aWNlU2l6ZS5oZWlnaHQoKSwgbWluKSwg
bWF4KTsKKworICAgICAgICBpZiAocmVzdWx0TWluWm9vbSAhPSBWaWV3cG9ydEFyZ3VtZW50czo6
VmFsdWVBdXRvICYmIHJlc3VsdE1heFpvb20gIT0gVmlld3BvcnRBcmd1bWVudHM6OlZhbHVlQXV0
bykKKyAgICAgICAgICAgIHJlc3VsdE1heFpvb20gPSBtYXgocmVzdWx0TWluWm9vbSwgcmVzdWx0
TWF4Wm9vbSk7CisKKyAgICAgICAgaWYgKHJlc3VsdFpvb20gIT0gVmlld3BvcnRBcmd1bWVudHM6
OlZhbHVlQXV0bykKKyAgICAgICAgICAgIHJlc3VsdFpvb20gPSBjb21wYXJlSWdub3JpbmdBdXRv
KHJlc3VsdE1pblpvb20sIGNvbXBhcmVJZ25vcmluZ0F1dG8ocmVzdWx0TWF4Wm9vbSwgcmVzdWx0
Wm9vbSwgbWluKSwgbWF4KTsKKworICAgICAgICBpZiAocmVzdWx0V2lkdGggPT0gVmlld3BvcnRB
cmd1bWVudHM6OlZhbHVlQXV0byAmJiByZXN1bHRab29tID09IFZpZXdwb3J0QXJndW1lbnRzOjpW
YWx1ZUF1dG8pCisgICAgICAgICAgICByZXN1bHRXaWR0aCA9IGRldmljZVNpemUud2lkdGgoKTsK
KworICAgICAgICBpZiAocmVzdWx0V2lkdGggPT0gVmlld3BvcnRBcmd1bWVudHM6OlZhbHVlQXV0
byAmJiByZXN1bHRIZWlnaHQgPT0gVmlld3BvcnRBcmd1bWVudHM6OlZhbHVlQXV0bykKKyAgICAg
ICAgICAgIHJlc3VsdFdpZHRoID0gZGV2aWNlU2l6ZS53aWR0aCgpIC8gcmVzdWx0Wm9vbTsKKwor
ICAgICAgICBpZiAocmVzdWx0V2lkdGggPT0gVmlld3BvcnRBcmd1bWVudHM6OlZhbHVlQXV0bykK
KyAgICAgICAgICAgIHJlc3VsdFdpZHRoID0gcmVzdWx0SGVpZ2h0ICogZGV2aWNlU2l6ZS53aWR0
aCgpIC8gZGV2aWNlU2l6ZS5oZWlnaHQoKTsKKworICAgICAgICBpZiAocmVzdWx0SGVpZ2h0ID09
IFZpZXdwb3J0QXJndW1lbnRzOjpWYWx1ZUF1dG8pCisgICAgICAgICAgICByZXN1bHRIZWlnaHQg
PSByZXN1bHRXaWR0aCAqIGRldmljZVNpemUuaGVpZ2h0KCkgLyBkZXZpY2VTaXplLndpZHRoKCk7
CisKKyAgICAgICAgaWYgKHJlc3VsdFpvb20gIT0gVmlld3BvcnRBcmd1bWVudHM6OlZhbHVlQXV0
byB8fCByZXN1bHRNYXhab29tICE9IFZpZXdwb3J0QXJndW1lbnRzOjpWYWx1ZUF1dG8pIHsKKyAg
ICAgICAgICAgIHJlc3VsdFdpZHRoID0gY29tcGFyZUlnbm9yaW5nQXV0byhyZXN1bHRXaWR0aCwg
ZGV2aWNlU2l6ZS53aWR0aCgpIC8gY29tcGFyZUlnbm9yaW5nQXV0byhyZXN1bHRab29tLCByZXN1
bHRNYXhab29tLCBtaW4pLCBtYXgpOworICAgICAgICAgICAgcmVzdWx0SGVpZ2h0ID0gY29tcGFy
ZUlnbm9yaW5nQXV0byhyZXN1bHRIZWlnaHQsIGRldmljZVNpemUuaGVpZ2h0KCkgLyBjb21wYXJl
SWdub3JpbmdBdXRvKHJlc3VsdFpvb20sIHJlc3VsdE1heFpvb20sIG1pbiksIG1heCk7CisgICAg
ICAgIH0KKyAgICB9CisKICAgICAvLyBDbGFtcCB2YWx1ZXMgdG8gdmFsaWQgcmFuZ2UuCiAgICAg
cmVzdWx0V2lkdGggPSBjbGFtcExlbmd0aFZhbHVlKHJlc3VsdFdpZHRoKTsKICAgICByZXN1bHRI
ZWlnaHQgPSBjbGFtcExlbmd0aFZhbHVlKHJlc3VsdEhlaWdodCk7CkBAIC0xMDAsNiArMTg1LDcg
QEAgVmlld3BvcnRBdHRyaWJ1dGVzIFZpZXdwb3J0QXJndW1lbnRzOjpyZXNvbHZlKGNvbnN0IEZs
b2F0U2l6ZSYgaW5pdGlhbFZpZXdwb3J0U2kKICAgICByZXN1bHRNYXhab29tID0gY2xhbXBTY2Fs
ZVZhbHVlKHJlc3VsdE1heFpvb20pOwogCiAgICAgVmlld3BvcnRBdHRyaWJ1dGVzIHJlc3VsdDsK
KyAgICByZXN1bHQub3JpZW50YXRpb24gPSBvcmllbnRhdGlvbjsKIAogICAgIC8vIFJlc29sdmUg
bWluaW11bS1zY2FsZSBhbmQgbWF4aW11bS1zY2FsZSB2YWx1ZXMgYWNjb3JkaW5nIHRvIHNwZWMu
CiAgICAgaWYgKHJlc3VsdE1pblpvb20gPT0gVmlld3BvcnRBcmd1bWVudHM6OlZhbHVlQXV0bykK
QEAgLTE1NSw2ICsyNDEsNyBAQCBWaWV3cG9ydEF0dHJpYnV0ZXMgVmlld3BvcnRBcmd1bWVudHM6
OnJlc29sdmUoY29uc3QgRmxvYXRTaXplJiBpbml0aWFsVmlld3BvcnRTaQogICAgIC8vICAgIHJl
c3VsdC5pbml0aWFsU2NhbGUgPSBWaWV3cG9ydEFyZ3VtZW50czo6VmFsdWVBdXRvOwogCiAgICAg
cmVzdWx0LnVzZXJTY2FsYWJsZSA9IHJlc3VsdFVzZXJab29tOworICAgIHJlc3VsdC5vcmllbnRh
dGlvbiA9IG9yaWVudGF0aW9uOwogCiAgICAgcmV0dXJuIHJlc3VsdDsKIH0KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2RvbS9WaWV3cG9ydEFyZ3VtZW50cy5oIGIvU291cmNlL1dlYkNvcmUv
ZG9tL1ZpZXdwb3J0QXJndW1lbnRzLmgKaW5kZXggMTdjOGFkZmQ1ZmQxYTZkMTU5NjdhMzdhMTk3
ZGE5MzRjZDQ5NmRhYy4uZTJmNmYyZWVmZjFlOGMxNDA2MWY4MTgwOWM2MWFiYTlkOWNjYTZiMyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL1ZpZXdwb3J0QXJndW1lbnRzLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvZG9tL1ZpZXdwb3J0QXJndW1lbnRzLmgKQEAgLTYsNiArNiw3IEBACiAg
KiBDb3B5cmlnaHQgKEMpIDIwMDQsIDIwMDUsIDIwMDYsIDIwMDcsIDIwMDggQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgogICogQ29weXJpZ2h0IChDKSAyMDA4IFRvcmNoIE1vYmlsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuIChodHRwOi8vd3d3LnRvcmNobW9iaWxlLmNvbS8pCiAg
KiBDb3B5cmlnaHQgKEMpIDIwMTAgTm9raWEgQ29ycG9yYXRpb24gYW5kL29yIGl0cyBzdWJzaWRp
YXJ5KC1pZXMpCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIgSW50ZWwgQ29ycG9yYXRpb24uIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCiAgKgogICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlv
dSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgogICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJt
cyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKQEAgLTUwLDYgKzUxLDcgQEAgc3Ry
dWN0IFZpZXdwb3J0QXR0cmlidXRlcyB7CiAgICAgZmxvYXQgbWF4aW11bVNjYWxlOwogCiAgICAg
ZmxvYXQgdXNlclNjYWxhYmxlOworICAgIGZsb2F0IG9yaWVudGF0aW9uOwogfTsKIAogc3RydWN0
IFZpZXdwb3J0QXJndW1lbnRzIHsKQEAgLTYyLDIzICs2NCwzMSBAQCBzdHJ1Y3QgVmlld3BvcnRB
cmd1bWVudHMgewogICAgICAgICBIYW5kaGVsZEZyaWVuZGx5TWV0YSwKICAgICAgICAgTW9iaWxl
T3B0aW1pemVkTWV0YSwKICNlbmRpZgotICAgICAgICBWaWV3cG9ydE1ldGEKKyAgICAgICAgVmll
d3BvcnRNZXRhLAorICAgICAgICBDU1NEZXZpY2VBZGFwdGF0aW9uCiAgICAgfSB0eXBlOwogCiAg
ICAgZW51bSB7CiAgICAgICAgIFZhbHVlQXV0byA9IC0xLAogICAgICAgICBWYWx1ZURldmljZVdp
ZHRoID0gLTIsCiAgICAgICAgIFZhbHVlRGV2aWNlSGVpZ2h0ID0gLTMsCisgICAgICAgIFZhbHVl
UG9ydHJhaXQgPSAtNCwKKyAgICAgICAgVmFsdWVMYW5kc2NhcGUgPSAtNQogICAgIH07CiAKICAg
ICBWaWV3cG9ydEFyZ3VtZW50cyhUeXBlIHR5cGUgPSBJbXBsaWNpdCkKICAgICAgICAgOiB0eXBl
KHR5cGUpCiAgICAgICAgICwgd2lkdGgoVmFsdWVBdXRvKQorICAgICAgICAsIG1pbldpZHRoKFZh
bHVlQXV0bykKKyAgICAgICAgLCBtYXhXaWR0aChWYWx1ZUF1dG8pCiAgICAgICAgICwgaGVpZ2h0
KFZhbHVlQXV0bykKKyAgICAgICAgLCBtaW5IZWlnaHQoVmFsdWVBdXRvKQorICAgICAgICAsIG1h
eEhlaWdodChWYWx1ZUF1dG8pCiAgICAgICAgICwgem9vbShWYWx1ZUF1dG8pCiAgICAgICAgICwg
bWluWm9vbShWYWx1ZUF1dG8pCiAgICAgICAgICwgbWF4Wm9vbShWYWx1ZUF1dG8pCiAgICAgICAg
ICwgdXNlclpvb20oVmFsdWVBdXRvKQorICAgICAgICAsIG9yaWVudGF0aW9uKFZhbHVlQXV0bykK
ICAgICB7CiAgICAgfQogCkBAIC04NiwyMiArOTYsMzIgQEAgc3RydWN0IFZpZXdwb3J0QXJndW1l
bnRzIHsKICAgICBWaWV3cG9ydEF0dHJpYnV0ZXMgcmVzb2x2ZShjb25zdCBGbG9hdFNpemUmIGlu
aXRpYWxWaWV3cG9ydFNpemUsIGNvbnN0IEZsb2F0U2l6ZSYgZGV2aWNlU2l6ZSwgaW50IGRlZmF1
bHRXaWR0aCkgY29uc3Q7CiAKICAgICBmbG9hdCB3aWR0aDsKKyAgICBmbG9hdCBtaW5XaWR0aDsK
KyAgICBmbG9hdCBtYXhXaWR0aDsKICAgICBmbG9hdCBoZWlnaHQ7CisgICAgZmxvYXQgbWluSGVp
Z2h0OworICAgIGZsb2F0IG1heEhlaWdodDsKICAgICBmbG9hdCB6b29tOwogICAgIGZsb2F0IG1p
blpvb207CiAgICAgZmxvYXQgbWF4Wm9vbTsKICAgICBmbG9hdCB1c2VyWm9vbTsKKyAgICBmbG9h
dCBvcmllbnRhdGlvbjsKIAogICAgIGJvb2wgb3BlcmF0b3I9PShjb25zdCBWaWV3cG9ydEFyZ3Vt
ZW50cyYgb3RoZXIpIGNvbnN0CiAgICAgewogICAgICAgICAvLyBVc2VkIGZvciBmaWd1cmluZyBv
dXQgd2hldGhlciB0byByZXNldCB0aGUgdmlld3BvcnQgb3Igbm90LAogICAgICAgICAvLyB0aHVz
IHdlIGFyZSBub3QgdGFraW5nIHR5cGUgaW50byBhY2NvdW50LgogICAgICAgICByZXR1cm4gd2lk
dGggPT0gb3RoZXIud2lkdGgKKyAgICAgICAgICAgICYmIG1pbldpZHRoID09IG90aGVyLm1pbldp
ZHRoCisgICAgICAgICAgICAmJiBtYXhXaWR0aCA9PSBvdGhlci5tYXhXaWR0aAogICAgICAgICAg
ICAgJiYgaGVpZ2h0ID09IG90aGVyLmhlaWdodAorICAgICAgICAgICAgJiYgbWluSGVpZ2h0ID09
IG90aGVyLm1pbkhlaWdodAorICAgICAgICAgICAgJiYgbWF4SGVpZ2h0ID09IG90aGVyLm1heEhl
aWdodAogICAgICAgICAgICAgJiYgem9vbSA9PSBvdGhlci56b29tCiAgICAgICAgICAgICAmJiBt
aW5ab29tID09IG90aGVyLm1pblpvb20KICAgICAgICAgICAgICYmIG1heFpvb20gPT0gb3RoZXIu
bWF4Wm9vbQotICAgICAgICAgICAgJiYgdXNlclpvb20gPT0gb3RoZXIudXNlclpvb207CisgICAg
ICAgICAgICAmJiB1c2VyWm9vbSA9PSBvdGhlci51c2VyWm9vbQorICAgICAgICAgICAgJiYgb3Jp
ZW50YXRpb24gPT0gb3RoZXIub3JpZW50YXRpb247CiAgICAgfQogCiAgICAgYm9vbCBvcGVyYXRv
ciE9KGNvbnN0IFZpZXdwb3J0QXJndW1lbnRzJiBvdGhlcikgY29uc3QKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCA3MDZhZGNh
YTIwYjdhMWRkMGQ0MDYzZjQ1Y2RmZGJlNWM1ZDFhNDJmLi45ZGZiYWMwYTM4MTJkZTUwODQzNmQ5
YzI5MmQ4N2RjNGQ1MjQ1MzY3IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysr
IGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNzQgQEAKKzIwMTItMTEtMTYgIFRo
aWFnbyBNYXJjb3MgUC4gU2FudG9zICA8dGhpYWdvLnNhbnRvc0BpbnRlbC5jb20+CisKKyAgICAg
ICAgQXBwbHkgdGhlIHJlc29sdmVkIHZpZXdwb3J0IHJ1bGVzCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05NTk2NAorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEltcG9ydGVkIHNvbWUgb2YgdGhlIENTUyBEZXZp
Y2UgQWRhcHRhdGlvbiB0ZXN0cyBzdWJtaXR0ZWQgYnkKKyAgICAgICAgT3BlcmEgdG8gVzNDIENT
UyBUZXN0IFN1aXRlLiBUaGVzZSB0ZXN0cyBhcmUgbm90IHlldCBhcHByb3ZlZCBidXQKKyAgICAg
ICAgdGhleSBoYXZlIGEgcHJldHR5IGdvb2QgY292ZXJhZ2Ugb2YgdGhlIHNwZWNpZmljYXRpb24u
CisKKyAgICAgICAgVGVzdHMgdXNpbmcgTWF0aC5yb3VuZCgpIHdoZXJlIG1vZGlmaWVkIGZyb20g
dGhlIG9yaWdpbmFsIHZlcnNpb24KKyAgICAgICAgdXNpbmcgTWF0aC5mbG9vcigpLCB0aGUgcmVh
c29uIGJlaW5nIHRoZSByb3VuZCgpIHZlcnNpb24gZmFpbHMgYnkKKyAgICAgICAgMXB4IHdoZW4g
dGhlIHBpeGVsIHJhdGlvIGlzIGRpZmZlcmVudCBmcm9tIDEuCisKKyAgICAgICAgRGVzcGl0ZSB0
aGUgZmFjdCB0aGV5IGFyZSBhbGwgcGFzc2luZyBvbiB0aGUgRUZMIE1pbmlCcm93c2VyLCBJIGNv
dWxkCisgICAgICAgIG5vdCBlbmFibGUgdGhlbSB5ZXQuIFdlYktpdFRlc3RSdW5uZXIgZG9lcyBu
b3Qgc3VwcG9ydCBmaXhlZCBsYXlvdXQsCisgICAgICAgIGJ1dCB0aGF0IGlzIHRoZSBuZXh0IGdv
YWwuCisKKyAgICAgICAgKiBjc3MzL2RldmljZS1hZGFwdC9vcGVyYS9jYXNjYWRpbmctMDAxLWV4
cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogY3NzMy9kZXZpY2UtYWRhcHQvb3BlcmEvY2Fz
Y2FkaW5nLTAwMS54aHRtbDogQWRkZWQuCisgICAgICAgICogY3NzMy9kZXZpY2UtYWRhcHQvb3Bl
cmEvY2FzY2FkaW5nLTAwMi1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGNzczMvZGV2
aWNlLWFkYXB0L29wZXJhL2Nhc2NhZGluZy0wMDIueGh0bWw6IEFkZGVkLgorICAgICAgICAqIGNz
czMvZGV2aWNlLWFkYXB0L29wZXJhL2Nhc2NhZGluZy0wMDMtZXhwZWN0ZWQudHh0OiBBZGRlZC4K
KyAgICAgICAgKiBjc3MzL2RldmljZS1hZGFwdC9vcGVyYS9jYXNjYWRpbmctMDAzLnhodG1sOiBB
ZGRlZC4KKyAgICAgICAgKiBjc3MzL2RldmljZS1hZGFwdC9vcGVyYS9jYXNjYWRpbmctMDA0LWV4
cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogY3NzMy9kZXZpY2UtYWRhcHQvb3BlcmEvY2Fz
Y2FkaW5nLTAwNC54aHRtbDogQWRkZWQuCisgICAgICAgICogY3NzMy9kZXZpY2UtYWRhcHQvb3Bl
cmEvY29uc3RyYWluLTAwMS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGNzczMvZGV2
aWNlLWFkYXB0L29wZXJhL2NvbnN0cmFpbi0wMDEueGh0bWw6IEFkZGVkLgorICAgICAgICAqIGNz
czMvZGV2aWNlLWFkYXB0L29wZXJhL2NvbnN0cmFpbi0wMDItZXhwZWN0ZWQudHh0OiBBZGRlZC4K
KyAgICAgICAgKiBjc3MzL2RldmljZS1hZGFwdC9vcGVyYS9jb25zdHJhaW4tMDAyLnhodG1sOiBB
ZGRlZC4KKyAgICAgICAgKiBjc3MzL2RldmljZS1hZGFwdC9vcGVyYS9jb25zdHJhaW4tMDAzLWV4
cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogY3NzMy9kZXZpY2UtYWRhcHQvb3BlcmEvY29u
c3RyYWluLTAwMy54aHRtbDogQWRkZWQuCisgICAgICAgICogY3NzMy9kZXZpY2UtYWRhcHQvb3Bl
cmEvY29uc3RyYWluLTAwNC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGNzczMvZGV2
aWNlLWFkYXB0L29wZXJhL2NvbnN0cmFpbi0wMDQueGh0bWw6IEFkZGVkLgorICAgICAgICAqIGNz
czMvZGV2aWNlLWFkYXB0L29wZXJhL2NvbnN0cmFpbi0wMDUtZXhwZWN0ZWQudHh0OiBBZGRlZC4K
KyAgICAgICAgKiBjc3MzL2RldmljZS1hZGFwdC9vcGVyYS9jb25zdHJhaW4tMDA1LnhodG1sOiBB
ZGRlZC4KKyAgICAgICAgKiBjc3MzL2RldmljZS1hZGFwdC9vcGVyYS9jb25zdHJhaW4tMDA2LWV4
cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogY3NzMy9kZXZpY2UtYWRhcHQvb3BlcmEvY29u
c3RyYWluLTAwNi54aHRtbDogQWRkZWQuCisgICAgICAgICogY3NzMy9kZXZpY2UtYWRhcHQvb3Bl
cmEvY29uc3RyYWluLTAwNy1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGNzczMvZGV2
aWNlLWFkYXB0L29wZXJhL2NvbnN0cmFpbi0wMDcueGh0bWw6IEFkZGVkLgorICAgICAgICAqIGNz
czMvZGV2aWNlLWFkYXB0L29wZXJhL2NvbnN0cmFpbi0wMDgtZXhwZWN0ZWQudHh0OiBBZGRlZC4K
KyAgICAgICAgKiBjc3MzL2RldmljZS1hZGFwdC9vcGVyYS9jb25zdHJhaW4tMDA4LnhodG1sOiBB
ZGRlZC4KKyAgICAgICAgKiBjc3MzL2RldmljZS1hZGFwdC9vcGVyYS9jb25zdHJhaW4tMDA5LWV4
cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogY3NzMy9kZXZpY2UtYWRhcHQvb3BlcmEvY29u
c3RyYWluLTAwOS54aHRtbDogQWRkZWQuCisgICAgICAgICogY3NzMy9kZXZpY2UtYWRhcHQvb3Bl
cmEvY29uc3RyYWluLTAxMC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGNzczMvZGV2
aWNlLWFkYXB0L29wZXJhL2NvbnN0cmFpbi0wMTAueGh0bWw6IEFkZGVkLgorICAgICAgICAqIGNz
czMvZGV2aWNlLWFkYXB0L29wZXJhL2NvbnN0cmFpbi0wMTEtZXhwZWN0ZWQudHh0OiBBZGRlZC4K
KyAgICAgICAgKiBjc3MzL2RldmljZS1hZGFwdC9vcGVyYS9jb25zdHJhaW4tMDExLnhodG1sOiBB
ZGRlZC4KKyAgICAgICAgKiBjc3MzL2RldmljZS1hZGFwdC9vcGVyYS9jb25zdHJhaW4tMDEyLWV4
cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogY3NzMy9kZXZpY2UtYWRhcHQvb3BlcmEvY29u
c3RyYWluLTAxMi54aHRtbDogQWRkZWQuCisgICAgICAgICogY3NzMy9kZXZpY2UtYWRhcHQvb3Bl
cmEvY29uc3RyYWluLTAxMy1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGNzczMvZGV2
aWNlLWFkYXB0L29wZXJhL2NvbnN0cmFpbi0wMTMueGh0bWw6IEFkZGVkLgorICAgICAgICAqIGNz
czMvZGV2aWNlLWFkYXB0L29wZXJhL2NvbnN0cmFpbi0wMTQtZXhwZWN0ZWQudHh0OiBBZGRlZC4K
KyAgICAgICAgKiBjc3MzL2RldmljZS1hZGFwdC9vcGVyYS9jb25zdHJhaW4tMDE0LnhodG1sOiBB
ZGRlZC4KKyAgICAgICAgKiBjc3MzL2RldmljZS1hZGFwdC9vcGVyYS9jb25zdHJhaW4tMDE1LWV4
cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogY3NzMy9kZXZpY2UtYWRhcHQvb3BlcmEvY29u
c3RyYWluLTAxNS54aHRtbDogQWRkZWQuCisgICAgICAgICogY3NzMy9kZXZpY2UtYWRhcHQvb3Bl
cmEvY29uc3RyYWluLTAxNi1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGNzczMvZGV2
aWNlLWFkYXB0L29wZXJhL2NvbnN0cmFpbi0wMTYueGh0bWw6IEFkZGVkLgorICAgICAgICAqIGNz
czMvZGV2aWNlLWFkYXB0L29wZXJhL2NvbnN0cmFpbi0wMTctZXhwZWN0ZWQudHh0OiBBZGRlZC4K
KyAgICAgICAgKiBjc3MzL2RldmljZS1hZGFwdC9vcGVyYS9jb25zdHJhaW4tMDE3LnhodG1sOiBB
ZGRlZC4KKyAgICAgICAgKiBjc3MzL2RldmljZS1hZGFwdC9vcGVyYS9jb25zdHJhaW4tMDIwLWV4
cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogY3NzMy9kZXZpY2UtYWRhcHQvb3BlcmEvY29u
c3RyYWluLTAyMC54aHRtbDogQWRkZWQuCisgICAgICAgICogY3NzMy9kZXZpY2UtYWRhcHQvb3Bl
cmEvc3ludGF4LTAwMS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGNzczMvZGV2aWNl
LWFkYXB0L29wZXJhL3N5bnRheC0wMDEueGh0bWw6IEFkZGVkLgorICAgICAgICAqIGNzczMvZGV2
aWNlLWFkYXB0L29wZXJhL3N5bnRheC0wMDItZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAg
KiBjc3MzL2RldmljZS1hZGFwdC9vcGVyYS9zeW50YXgtMDAyLnhodG1sOiBBZGRlZC4KKyAgICAg
ICAgKiBjc3MzL2RldmljZS1hZGFwdC9vcGVyYS9zeW50YXgtMDAzLWV4cGVjdGVkLnR4dDogQWRk
ZWQuCisgICAgICAgICogY3NzMy9kZXZpY2UtYWRhcHQvb3BlcmEvc3ludGF4LTAwMy54aHRtbDog
QWRkZWQuCisgICAgICAgICogcGxhdGZvcm0vZWZsL1Rlc3RFeHBlY3RhdGlvbnM6CisKIDIwMTIt
MTEtMTYgIFNoaW55YSBLYXdhbmFrYSAgPHNoaW55YWtAY2hyb21pdW0ub3JnPgogCiAgICAgICAg
IENoYW5naW5nIHBzZXVkb0NsYXNzICg6aW5kZXRlcm1pbmF0ZSkgc2hvdWxkIGNhdXNlIGRpc3Ry
aWJ1dGlvbgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvY3NzMy9kZXZpY2UtYWRhcHQvb3BlcmEv
Y2FzY2FkaW5nLTAwMS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9jc3MzL2RldmljZS1hZGFw
dC9vcGVyYS9jYXNjYWRpbmctMDAxLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lNGU1ZDkwNmE3
YjA2ZTc4NWQ4YzU1MGNjOWE2YWEzZDNkY2Q5MDk5Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvY3NzMy9kZXZpY2UtYWRhcHQvb3BlcmEvY2FzY2FkaW5nLTAwMS1leHBlY3RlZC50eHQK
QEAgLTAsMCArMSwzIEBACisKK1BBU1MgQ1NTIFRlc3Q6IEB2aWV3cG9ydCBjYXNjYWRpbmcgLSBs
YXN0IGRlY2xhcmF0aW9uIHdpbnMgCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2NzczMvZGV2
aWNlLWFkYXB0L29wZXJhL2Nhc2NhZGluZy0wMDEueGh0bWwgYi9MYXlvdXRUZXN0cy9jc3MzL2Rl
dmljZS1hZGFwdC9vcGVyYS9jYXNjYWRpbmctMDAxLnhodG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjJkYmVlMjRh
NDRmOGMyMzA3NzVmYjcwMWQyYjNkYTk1NTE3N2MyM2UKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy9jc3MzL2RldmljZS1hZGFwdC9vcGVyYS9jYXNjYWRpbmctMDAxLnhodG1sCkBAIC0w
LDAgKzEsODQgQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04Ij8+Cis8IURP
Q1RZUEUgaHRtbCBQVUJMSUMgIi0vL1czQy8vRFREIFhIVE1MIDEuMCBTdHJpY3QvL0VOIiAiaHR0
cDovL3d3dy53My5vcmcvVFIveGh0bWwxL0RURC94aHRtbDEtc3RyaWN0LmR0ZCI+Cis8aHRtbCB4
bWxucz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCI+CisgPGhlYWQ+CisgIDx0aXRsZT5D
U1MgVGVzdDogQHZpZXdwb3J0IGNhc2NhZGluZyAtIGxhc3QgZGVjbGFyYXRpb24gd2luczwvdGl0
bGU+CisgIDxsaW5rIHJlbD0iYXV0aG9yIiB0aXRsZT0iUnVuZSBMaWxsZXN2ZWVuIiBocmVmPSJt
YWlsdG86cnVuZUBvcGVyYS5jb20iLz4KKyAgPGxpbmsgcmVsPSJoZWxwIiBocmVmPSJodHRwOi8v
d3d3LnczLm9yZy9UUi9jc3MtZGV2aWNlLWFkYXB0LyN0aGUtdmlld3BvcnQtcnVsZSIvPgorICA8
bWV0YSBuYW1lPSJmbGFncyIgY29udGVudD0idmlzdWFsIHNjcm9sbCBkb20iIC8+CisgIDxtZXRh
IG5hbWU9ImFzc2VydCIgY29udGVudD0iVGhlIGxhc3Qgb2YgdHdvIG5vbi1pbXBvcnRhbnQgZGVj
bGFyYXRpb25zIGZvciB0aGUgc2FtZSBkZXNjcmlwdG9yIHdpbnMuIi8+CisgIDxzY3JpcHQgc3Jj
PSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiIHR5cGU9InRleHQvamF2YXNjcmlw
dCIgLz4KKyAgPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9y
dC5qcyIgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiAvPgorICA8c3R5bGUgdHlwZT0idGV4dC9jc3Mi
PjwhW0NEQVRBWworICAgYm9keSB7IG1hcmdpbjogMDsgfQorICAgaHRtbCwgYm9keSwgI3Rlc3Qg
eyB3aWR0aDogMTAwJTsgaGVpZ2h0OiAxMDAlOyB9CisgICAjbG9nIHsgcGFkZGluZzogMWVtOyBk
aXNwbGF5OiBub25lOyB9CisgICAvKiBSZXNldCB2aWV3cG9ydCB2YWx1ZXMgdG8gaW5pdGlhbCB2
YWx1ZXMgdG8gaWdub3JlIFVBIHN0eWxlc2hlZXQuICovCisgICBALXdlYmtpdC12aWV3cG9ydCB7
CisgICAgd2lkdGg6IGF1dG87CisgICAgaGVpZ2h0OiBhdXRvOworICAgIHpvb206IGF1dG87Cisg
ICAgbWluLXpvb206IGF1dG87CisgICAgbWF4LXpvb206IGF1dG87CisgICAgdXNlci16b29tOiB6
b29tOworICAgIG9yaWVudGF0aW9uOiBhdXRvOworICAgIHJlc29sdXRpb246IGF1dG87CisgICB9
CisgIF1dPjwvc3R5bGU+CisgIDxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyI+PCFbQ0RBVEFbCisgICAv
KiBDU1MgZm9yIHRoZSB0ZXN0IGJlbG93LiAqLworICAgQC13ZWJraXQtdmlld3BvcnQgeyB3aWR0
aDogMzAwcHg7IHdpZHRoOiA1MDBweCB9CisgICAvKiBTZXQgcm9vdCBlbGVtZW50IGZvbnQtc2l6
ZSB0byBzb21ldGhpbmcgZGlmZmVyZW50IGZyb20gdGhlIGluaXRpYWwKKyAgICAgIGZvbnQtc2l6
ZSB0byBtYWtlIHN1cmUgJ3JlbScgYW5kICdlbScgZm9yIEB2aWV3cG9ydCBpcyBiYXNlZCBvbiB0
aGUKKyAgICAgIGluaXRpYWwgZm9udC1zaXplLCBub3QgdGhlIHJvb3QgZWxlbWVudCBmb250LXNp
emUuICovCisgICBodG1sIHsgZm9udC1zaXplOiAycmVtOyB9CisgICBib2R5IHsgZm9udC1zaXpl
OiAwLjVyZW07IH0KKyAgXV0+PC9zdHlsZT4KKyAgPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3Jp
cHQiPjwhW0NEQVRBWworICAgdmFyIHRlc3QgPSBhc3luY190ZXN0KCJDU1MgVGVzdDogQHZpZXdw
b3J0IGNhc2NhZGluZyAtIGxhc3QgZGVjbGFyYXRpb24gd2lucyIpOworICAgd2luZG93Lm9ubG9h
ZCA9IGZ1bmN0aW9uKCl7CisKKyAgICB2YXIgdGVzdFN0eWxlU2hlZXQgPSBkb2N1bWVudC5zdHls
ZVNoZWV0cy5pdGVtKDEpOworCisgICAgLyogRGlzYWJsZSB0aGUgc3R5bGVzaGVldCB0aGF0IGNv
bnRhaW5zIHRoZSBAdmlld3BvcnQgdG8gdGVzdC4gKi8KKyAgICB0ZXN0U3R5bGVTaGVldC5kaXNh
YmxlZCA9IHRydWU7CisKKyAgICAvKiBJbml0aWFsaXplIGFuIG9iamVjdCB0byBzdG9yZSB2aWV3
cG9ydCB2YWx1ZXMgdG8gYmUgdXNlZCBieSB0aGUgdGVzdAorICAgICAgIGFzc2VydHMuICovCisg
ICAgdmFyIHZpZXdwb3J0ID0gbmV3IE9iamVjdCgpOworCisgICAgLyogQW4gZWxlbWVudCB3aXRo
IHRoZSBzYW1lIHNpemUgYXMgdGhlIGluaXRpYWwgY29udGFpbmluZyBibG9jay4gKi8KKyAgICB2
YXIgdGVzdEVsbSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0ZXN0Iik7CisKKyAgICAvKiBS
ZXRyaWV2ZSB0aGUgaW5pdGlhbCB2aWV3cG9ydCB2YWx1ZXMgYmVmb3JlIGFwcGx5aW5nIHRoZSBA
dmlld3BvcnQgdG8KKyAgICAgICB0ZXN0LiAqLworICAgIHZpZXdwb3J0LmluaXRpYWxXaWR0aCA9
IHRlc3RFbG0ub2Zmc2V0V2lkdGg7CisgICAgdmlld3BvcnQuaW5pdGlhbEhlaWdodCA9IHRlc3RF
bG0ub2Zmc2V0SGVpZ2h0OworICAgIHZpZXdwb3J0LmZvbnRTaXplID0gcGFyc2VJbnQoZ2V0Q29t
cHV0ZWRTdHlsZSh0ZXN0RWxtLCAiIikuZm9udFNpemUpOworCisgICAgLyogRW5hYmxlIHRoZSBz
dHlsZXNoZWV0IHRoYXQgY29udGFpbnMgdGhlIEB2aWV3cG9ydCB0byB0ZXN0LiAqLworICAgIHRl
c3RTdHlsZVNoZWV0LmRpc2FibGVkID0gZmFsc2U7CisKKyAgICAvKiBSZXRyaWV2ZSB0aGUgYWN0
dWFsIHZpZXdwb3J0IHZhbHVlcyBmb3IgdGhlIHRlc3QuICovCisgICAgdmlld3BvcnQuYWN0dWFs
V2lkdGggPSB0ZXN0RWxtLm9mZnNldFdpZHRoOworICAgIHZpZXdwb3J0LmFjdHVhbEhlaWdodCA9
IHRlc3RFbG0ub2Zmc2V0SGVpZ2h0OworICAgIHZpZXdwb3J0Lnpvb20gPSB2aWV3cG9ydC5pbml0
aWFsV2lkdGggLyB3aW5kb3cuaW5uZXJXaWR0aDsKKworICAgIC8qIENoZWNrIHZpZXdwb3J0IHZh
bHVlcy4gKi8KKyAgICB0ZXN0LnN0ZXAoZnVuY3Rpb24oKXsKKyAgICAgICAgYXNzZXJ0X2VxdWFs
cyh2aWV3cG9ydC5hY3R1YWxXaWR0aCwgNTAwKTsKKyAgICB9KTsKKworICAgIC8qIEZpbmlzaGVk
LiBTaG93IHRoZSByZXN1bHRzLiAqLworICAgIHRlc3QuZG9uZSgpOworICAgIHRlc3RTdHlsZVNo
ZWV0LmRpc2FibGVkID0gdHJ1ZTsKKyAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgibG9nIiku
c3R5bGUuZGlzcGxheSA9ICJibG9jayI7CisgICB9CisgIF1dPjwvc2NyaXB0PgorIDwvaGVhZD4K
KyA8Ym9keT4KKyAgPGRpdiBpZD0idGVzdCI+CisgICA8ZGl2IGlkPSJsb2ciPjwvZGl2PgorICA8
L2Rpdj4KKyA8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9jc3MzL2Rl
dmljZS1hZGFwdC9vcGVyYS9jYXNjYWRpbmctMDAyLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3Rz
L2NzczMvZGV2aWNlLWFkYXB0L29wZXJhL2Nhc2NhZGluZy0wMDItZXhwZWN0ZWQudHh0Cm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLjgyYzgxMzU0ZmJmYTViZmJhZTM5YmQ0OTQ3MTZjY2U5MmZkOWQ4YWQKLS0tIC9kZXYv
bnVsbAorKysgYi9MYXlvdXRUZXN0cy9jc3MzL2RldmljZS1hZGFwdC9vcGVyYS9jYXNjYWRpbmct
MDAyLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDMgQEAKKworUEFTUyBDU1MgVGVzdDogQHZpZXdw
b3J0IGNhc2NhZGluZyAtICFpbXBvcnRhbnQgZGVjbGFyYXRpb24gd2lucyAKKwpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvY3NzMy9kZXZpY2UtYWRhcHQvb3BlcmEvY2FzY2FkaW5nLTAwMi54aHRt
bCBiL0xheW91dFRlc3RzL2NzczMvZGV2aWNlLWFkYXB0L29wZXJhL2Nhc2NhZGluZy0wMDIueGh0
bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uNTVjYWJkYTI3MDkxMjI4ZmE5ZThkZTZlOWRlZDg0ZmYxNzE1MjYwMAot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2NzczMvZGV2aWNlLWFkYXB0L29wZXJhL2Nh
c2NhZGluZy0wMDIueGh0bWwKQEAgLTAsMCArMSw4NCBAQAorPD94bWwgdmVyc2lvbj0iMS4wIiBl
bmNvZGluZz0iVVRGLTgiPz4KKzwhRE9DVFlQRSBodG1sIFBVQkxJQyAiLS8vVzNDLy9EVEQgWEhU
TUwgMS4wIFN0cmljdC8vRU4iICJodHRwOi8vd3d3LnczLm9yZy9UUi94aHRtbDEvRFREL3hodG1s
MS1zdHJpY3QuZHRkIj4KKzxodG1sIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1s
Ij4KKyA8aGVhZD4KKyAgPHRpdGxlPkNTUyBUZXN0OiBAdmlld3BvcnQgY2FzY2FkaW5nIC0gIWlt
cG9ydGFudCBkZWNsYXJhdGlvbiB3aW5zPC90aXRsZT4KKyAgPGxpbmsgcmVsPSJhdXRob3IiIHRp
dGxlPSJSdW5lIExpbGxlc3ZlZW4iIGhyZWY9Im1haWx0bzpydW5lQG9wZXJhLmNvbSIvPgorICA8
bGluayByZWw9ImhlbHAiIGhyZWY9Imh0dHA6Ly93d3cudzMub3JnL1RSL2Nzcy1kZXZpY2UtYWRh
cHQvI3RoZS12aWV3cG9ydC1ydWxlIi8+CisgIDxtZXRhIG5hbWU9ImZsYWdzIiBjb250ZW50PSJ2
aXN1YWwgc2Nyb2xsIGRvbSIgLz4KKyAgPG1ldGEgbmFtZT0iYXNzZXJ0IiBjb250ZW50PSJBIHBy
ZWNlZWRpbmcgIWltcG9ydGFudCBkZWNsYXJhdGlvbiB3aW5zIG92ZXIgYSBub24taW1wb3J0YW50
IGRlc2NyaXB0b3IuIi8+CisgIDxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhh
cm5lc3MuanMiIHR5cGU9InRleHQvamF2YXNjcmlwdCIgLz4KKyAgPHNjcmlwdCBzcmM9Ii4uLy4u
Ly4uL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyIgdHlwZT0idGV4dC9qYXZhc2NyaXB0
IiAvPgorICA8c3R5bGUgdHlwZT0idGV4dC9jc3MiPjwhW0NEQVRBWworICAgYm9keSB7IG1hcmdp
bjogMDsgfQorICAgaHRtbCwgYm9keSwgI3Rlc3QgeyB3aWR0aDogMTAwJTsgaGVpZ2h0OiAxMDAl
OyB9CisgICAjbG9nIHsgcGFkZGluZzogMWVtOyBkaXNwbGF5OiBub25lOyB9CisgICAvKiBSZXNl
dCB2aWV3cG9ydCB2YWx1ZXMgdG8gaW5pdGlhbCB2YWx1ZXMgdG8gaWdub3JlIFVBIHN0eWxlc2hl
ZXQuICovCisgICBALXdlYmtpdC12aWV3cG9ydCB7CisgICAgd2lkdGg6IGF1dG87CisgICAgaGVp
Z2h0OiBhdXRvOworICAgIHpvb206IGF1dG87CisgICAgbWluLXpvb206IGF1dG87CisgICAgbWF4
LXpvb206IGF1dG87CisgICAgdXNlci16b29tOiB6b29tOworICAgIG9yaWVudGF0aW9uOiBhdXRv
OworICAgIHJlc29sdXRpb246IGF1dG87CisgICB9CisgIF1dPjwvc3R5bGU+CisgIDxzdHlsZSB0
eXBlPSJ0ZXh0L2NzcyI+PCFbQ0RBVEFbCisgICAvKiBDU1MgZm9yIHRoZSB0ZXN0IGJlbG93LiAq
LworICAgQC13ZWJraXQtdmlld3BvcnQgeyB3aWR0aDogMzAwcHggIWltcG9ydGFudDsgd2lkdGg6
IDUwMHB4IH0KKyAgIC8qIFNldCByb290IGVsZW1lbnQgZm9udC1zaXplIHRvIHNvbWV0aGluZyBk
aWZmZXJlbnQgZnJvbSB0aGUgaW5pdGlhbAorICAgICAgZm9udC1zaXplIHRvIG1ha2Ugc3VyZSAn
cmVtJyBhbmQgJ2VtJyBmb3IgQHZpZXdwb3J0IGlzIGJhc2VkIG9uIHRoZQorICAgICAgaW5pdGlh
bCBmb250LXNpemUsIG5vdCB0aGUgcm9vdCBlbGVtZW50IGZvbnQtc2l6ZS4gKi8KKyAgIGh0bWwg
eyBmb250LXNpemU6IDJyZW07IH0KKyAgIGJvZHkgeyBmb250LXNpemU6IDAuNXJlbTsgfQorICBd
XT48L3N0eWxlPgorICA8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+PCFbQ0RBVEFbCisg
ICB2YXIgdGVzdCA9IGFzeW5jX3Rlc3QoIkNTUyBUZXN0OiBAdmlld3BvcnQgY2FzY2FkaW5nIC0g
IWltcG9ydGFudCBkZWNsYXJhdGlvbiB3aW5zIik7CisgICB3aW5kb3cub25sb2FkID0gZnVuY3Rp
b24oKXsKKworICAgIHZhciB0ZXN0U3R5bGVTaGVldCA9IGRvY3VtZW50LnN0eWxlU2hlZXRzLml0
ZW0oMSk7CisKKyAgICAvKiBEaXNhYmxlIHRoZSBzdHlsZXNoZWV0IHRoYXQgY29udGFpbnMgdGhl
IEB2aWV3cG9ydCB0byB0ZXN0LiAqLworICAgIHRlc3RTdHlsZVNoZWV0LmRpc2FibGVkID0gdHJ1
ZTsKKworICAgIC8qIEluaXRpYWxpemUgYW4gb2JqZWN0IHRvIHN0b3JlIHZpZXdwb3J0IHZhbHVl
cyB0byBiZSB1c2VkIGJ5IHRoZSB0ZXN0CisgICAgICAgYXNzZXJ0cy4gKi8KKyAgICB2YXIgdmll
d3BvcnQgPSBuZXcgT2JqZWN0KCk7CisKKyAgICAvKiBBbiBlbGVtZW50IHdpdGggdGhlIHNhbWUg
c2l6ZSBhcyB0aGUgaW5pdGlhbCBjb250YWluaW5nIGJsb2NrLiAqLworICAgIHZhciB0ZXN0RWxt
ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRlc3QiKTsKKworICAgIC8qIFJldHJpZXZlIHRo
ZSBpbml0aWFsIHZpZXdwb3J0IHZhbHVlcyBiZWZvcmUgYXBwbHlpbmcgdGhlIEB2aWV3cG9ydCB0
bworICAgICAgIHRlc3QuICovCisgICAgdmlld3BvcnQuaW5pdGlhbFdpZHRoID0gdGVzdEVsbS5v
ZmZzZXRXaWR0aDsKKyAgICB2aWV3cG9ydC5pbml0aWFsSGVpZ2h0ID0gdGVzdEVsbS5vZmZzZXRI
ZWlnaHQ7CisgICAgdmlld3BvcnQuZm9udFNpemUgPSBwYXJzZUludChnZXRDb21wdXRlZFN0eWxl
KHRlc3RFbG0sICIiKS5mb250U2l6ZSk7CisKKyAgICAvKiBFbmFibGUgdGhlIHN0eWxlc2hlZXQg
dGhhdCBjb250YWlucyB0aGUgQHZpZXdwb3J0IHRvIHRlc3QuICovCisgICAgdGVzdFN0eWxlU2hl
ZXQuZGlzYWJsZWQgPSBmYWxzZTsKKworICAgIC8qIFJldHJpZXZlIHRoZSBhY3R1YWwgdmlld3Bv
cnQgdmFsdWVzIGZvciB0aGUgdGVzdC4gKi8KKyAgICB2aWV3cG9ydC5hY3R1YWxXaWR0aCA9IHRl
c3RFbG0ub2Zmc2V0V2lkdGg7CisgICAgdmlld3BvcnQuYWN0dWFsSGVpZ2h0ID0gdGVzdEVsbS5v
ZmZzZXRIZWlnaHQ7CisgICAgdmlld3BvcnQuem9vbSA9IHZpZXdwb3J0LmluaXRpYWxXaWR0aCAv
IHdpbmRvdy5pbm5lcldpZHRoOworCisgICAgLyogQ2hlY2sgdmlld3BvcnQgdmFsdWVzLiAqLwor
ICAgIHRlc3Quc3RlcChmdW5jdGlvbigpeworICAgICAgICBhc3NlcnRfZXF1YWxzKHZpZXdwb3J0
LmFjdHVhbFdpZHRoLCAzMDApOworICAgIH0pOworCisgICAgLyogRmluaXNoZWQuIFNob3cgdGhl
IHJlc3VsdHMuICovCisgICAgdGVzdC5kb25lKCk7CisgICAgdGVzdFN0eWxlU2hlZXQuZGlzYWJs
ZWQgPSB0cnVlOworICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJsb2ciKS5zdHlsZS5kaXNw
bGF5ID0gImJsb2NrIjsKKyAgIH0KKyAgXV0+PC9zY3JpcHQ+CisgPC9oZWFkPgorIDxib2R5Pgor
ICA8ZGl2IGlkPSJ0ZXN0Ij4KKyAgIDxkaXYgaWQ9ImxvZyI+PC9kaXY+CisgIDwvZGl2PgorIDwv
Ym9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2NzczMvZGV2aWNlLWFkYXB0
L29wZXJhL2Nhc2NhZGluZy0wMDMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvY3NzMy9kZXZp
Y2UtYWRhcHQvb3BlcmEvY2FzY2FkaW5nLTAwMy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uY2Qw
NDA2YmU4YTM5MzA2N2RiODhjYTNiZjIyYTliODI3YjA4ZGE4ZgotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL2NzczMvZGV2aWNlLWFkYXB0L29wZXJhL2Nhc2NhZGluZy0wMDMtZXhwZWN0
ZWQudHh0CkBAIC0wLDAgKzEsMyBAQAorCitQQVNTIENTUyBUZXN0OiBAdmlld3BvcnQgY2FzY2Fk
aW5nIC0gZGVzY3JpcHRvcnMgY2FzY2FkZWQgc2VwYXJhdGVseSAKKwpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvY3NzMy9kZXZpY2UtYWRhcHQvb3BlcmEvY2FzY2FkaW5nLTAwMy54aHRtbCBiL0xh
eW91dFRlc3RzL2NzczMvZGV2aWNlLWFkYXB0L29wZXJhL2Nhc2NhZGluZy0wMDMueGh0bWwKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uYzA2ZDcyMDIyNmJkZDg2N2Q2NWM3OTUzODgyNDU0NDZkZTI4YTgxMQotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL2NzczMvZGV2aWNlLWFkYXB0L29wZXJhL2Nhc2NhZGlu
Zy0wMDMueGh0bWwKQEAgLTAsMCArMSw4NCBAQAorPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGlu
Zz0iVVRGLTgiPz4KKzwhRE9DVFlQRSBodG1sIFBVQkxJQyAiLS8vVzNDLy9EVEQgWEhUTUwgMS4w
IFN0cmljdC8vRU4iICJodHRwOi8vd3d3LnczLm9yZy9UUi94aHRtbDEvRFREL3hodG1sMS1zdHJp
Y3QuZHRkIj4KKzxodG1sIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sIj4KKyA8
aGVhZD4KKyAgPHRpdGxlPkNTUyBUZXN0OiBAdmlld3BvcnQgY2FzY2FkaW5nIC0gZGVzY3JpcHRv
cnMgY2FzY2FkZWQgc2VwYXJhdGVseTwvdGl0bGU+CisgIDxsaW5rIHJlbD0iYXV0aG9yIiB0aXRs
ZT0iUnVuZSBMaWxsZXN2ZWVuIiBocmVmPSJtYWlsdG86cnVuZUBvcGVyYS5jb20iLz4KKyAgPGxp
bmsgcmVsPSJoZWxwIiBocmVmPSJodHRwOi8vd3d3LnczLm9yZy9UUi9jc3MtZGV2aWNlLWFkYXB0
LyN0aGUtdmlld3BvcnQtcnVsZSIvPgorICA8bWV0YSBuYW1lPSJmbGFncyIgY29udGVudD0idmlz
dWFsIHNjcm9sbCBkb20iIC8+CisgIDxtZXRhIG5hbWU9ImFzc2VydCIgY29udGVudD0iRGVzY3Jp
cHRvcnMgYXJlIGNhc2NhZGVkIHNlcGFyYXRlbHkgYW5kIG1heSBzdGVtIGZyb20gZGlmZmVyZW50
IEB2aWV3cG9ydCBydWxlcy4iLz4KKyAgPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90
ZXN0aGFybmVzcy5qcyIgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiAvPgorICA8c2NyaXB0IHNyYz0i
Li4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIiB0eXBlPSJ0ZXh0L2phdmFz
Y3JpcHQiIC8+CisgIDxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyI+PCFbQ0RBVEFbCisgICBib2R5IHsg
bWFyZ2luOiAwOyB9CisgICBodG1sLCBib2R5LCAjdGVzdCB7IHdpZHRoOiAxMDAlOyBoZWlnaHQ6
IDEwMCU7IH0KKyAgICNsb2cgeyBwYWRkaW5nOiAxZW07IGRpc3BsYXk6IG5vbmU7IH0KKyAgIC8q
IFJlc2V0IHZpZXdwb3J0IHZhbHVlcyB0byBpbml0aWFsIHZhbHVlcyB0byBpZ25vcmUgVUEgc3R5
bGVzaGVldC4gKi8KKyAgIEAtd2Via2l0LXZpZXdwb3J0IHsKKyAgICB3aWR0aDogYXV0bzsKKyAg
ICBoZWlnaHQ6IGF1dG87CisgICAgem9vbTogYXV0bzsKKyAgICBtaW4tem9vbTogYXV0bzsKKyAg
ICBtYXgtem9vbTogYXV0bzsKKyAgICB1c2VyLXpvb206IHpvb207CisgICAgb3JpZW50YXRpb246
IGF1dG87CisgICAgcmVzb2x1dGlvbjogYXV0bzsKKyAgIH0KKyAgXV0+PC9zdHlsZT4KKyAgPHN0
eWxlIHR5cGU9InRleHQvY3NzIj48IVtDREFUQVsKKyAgIC8qIENTUyBmb3IgdGhlIHRlc3QgYmVs
b3cuICovCisgICBALXdlYmtpdC12aWV3cG9ydCB7IHdpZHRoOiAzMDBweDsgaGVpZ2h0OiAzMDBw
eDsgfSBALXdlYmtpdC12aWV3cG9ydCB7IGhlaWdodDogNTAwcHg7IH0KKyAgIC8qIFNldCByb290
IGVsZW1lbnQgZm9udC1zaXplIHRvIHNvbWV0aGluZyBkaWZmZXJlbnQgZnJvbSB0aGUgaW5pdGlh
bAorICAgICAgZm9udC1zaXplIHRvIG1ha2Ugc3VyZSAncmVtJyBhbmQgJ2VtJyBmb3IgQHZpZXdw
b3J0IGlzIGJhc2VkIG9uIHRoZQorICAgICAgaW5pdGlhbCBmb250LXNpemUsIG5vdCB0aGUgcm9v
dCBlbGVtZW50IGZvbnQtc2l6ZS4gKi8KKyAgIGh0bWwgeyBmb250LXNpemU6IDJyZW07IH0KKyAg
IGJvZHkgeyBmb250LXNpemU6IDAuNXJlbTsgfQorICBdXT48L3N0eWxlPgorICA8c2NyaXB0IHR5
cGU9InRleHQvamF2YXNjcmlwdCI+PCFbQ0RBVEFbCisgICB2YXIgdGVzdCA9IGFzeW5jX3Rlc3Qo
IkNTUyBUZXN0OiBAdmlld3BvcnQgY2FzY2FkaW5nIC0gZGVzY3JpcHRvcnMgY2FzY2FkZWQgc2Vw
YXJhdGVseSIpOworICAgd2luZG93Lm9ubG9hZCA9IGZ1bmN0aW9uKCl7CisKKyAgICB2YXIgdGVz
dFN0eWxlU2hlZXQgPSBkb2N1bWVudC5zdHlsZVNoZWV0cy5pdGVtKDEpOworCisgICAgLyogRGlz
YWJsZSB0aGUgc3R5bGVzaGVldCB0aGF0IGNvbnRhaW5zIHRoZSBAdmlld3BvcnQgdG8gdGVzdC4g
Ki8KKyAgICB0ZXN0U3R5bGVTaGVldC5kaXNhYmxlZCA9IHRydWU7CisKKyAgICAvKiBJbml0aWFs
aXplIGFuIG9iamVjdCB0byBzdG9yZSB2aWV3cG9ydCB2YWx1ZXMgdG8gYmUgdXNlZCBieSB0aGUg
dGVzdAorICAgICAgIGFzc2VydHMuICovCisgICAgdmFyIHZpZXdwb3J0ID0gbmV3IE9iamVjdCgp
OworCisgICAgLyogQW4gZWxlbWVudCB3aXRoIHRoZSBzYW1lIHNpemUgYXMgdGhlIGluaXRpYWwg
Y29udGFpbmluZyBibG9jay4gKi8KKyAgICB2YXIgdGVzdEVsbSA9IGRvY3VtZW50LmdldEVsZW1l
bnRCeUlkKCJ0ZXN0Iik7CisKKyAgICAvKiBSZXRyaWV2ZSB0aGUgaW5pdGlhbCB2aWV3cG9ydCB2
YWx1ZXMgYmVmb3JlIGFwcGx5aW5nIHRoZSBAdmlld3BvcnQgdG8KKyAgICAgICB0ZXN0LiAqLwor
ICAgIHZpZXdwb3J0LmluaXRpYWxXaWR0aCA9IHRlc3RFbG0ub2Zmc2V0V2lkdGg7CisgICAgdmll
d3BvcnQuaW5pdGlhbEhlaWdodCA9IHRlc3RFbG0ub2Zmc2V0SGVpZ2h0OworICAgIHZpZXdwb3J0
LmZvbnRTaXplID0gcGFyc2VJbnQoZ2V0Q29tcHV0ZWRTdHlsZSh0ZXN0RWxtLCAiIikuZm9udFNp
emUpOworCisgICAgLyogRW5hYmxlIHRoZSBzdHlsZXNoZWV0IHRoYXQgY29udGFpbnMgdGhlIEB2
aWV3cG9ydCB0byB0ZXN0LiAqLworICAgIHRlc3RTdHlsZVNoZWV0LmRpc2FibGVkID0gZmFsc2U7
CisKKyAgICAvKiBSZXRyaWV2ZSB0aGUgYWN0dWFsIHZpZXdwb3J0IHZhbHVlcyBmb3IgdGhlIHRl
c3QuICovCisgICAgdmlld3BvcnQuYWN0dWFsV2lkdGggPSB0ZXN0RWxtLm9mZnNldFdpZHRoOwor
ICAgIHZpZXdwb3J0LmFjdHVhbEhlaWdodCA9IHRlc3RFbG0ub2Zmc2V0SGVpZ2h0OworICAgIHZp
ZXdwb3J0Lnpvb20gPSB2aWV3cG9ydC5pbml0aWFsV2lkdGggLyB3aW5kb3cuaW5uZXJXaWR0aDsK
KworICAgIC8qIENoZWNrIHZpZXdwb3J0IHZhbHVlcy4gKi8KKyAgICB0ZXN0LnN0ZXAoZnVuY3Rp
b24oKXsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyh2aWV3cG9ydC5hY3R1YWxXaWR0aCwgMzAwKTsg
YXNzZXJ0X2VxdWFscyh2aWV3cG9ydC5hY3R1YWxIZWlnaHQsIDUwMCk7CisgICAgfSk7CisKKyAg
ICAvKiBGaW5pc2hlZC4gU2hvdyB0aGUgcmVzdWx0cy4gKi8KKyAgICB0ZXN0LmRvbmUoKTsKKyAg
ICB0ZXN0U3R5bGVTaGVldC5kaXNhYmxlZCA9IHRydWU7CisgICAgZG9jdW1lbnQuZ2V0RWxlbWVu
dEJ5SWQoImxvZyIpLnN0eWxlLmRpc3BsYXkgPSAiYmxvY2siOworICAgfQorICBdXT48L3Njcmlw
dD4KKyA8L2hlYWQ+CisgPGJvZHk+CisgIDxkaXYgaWQ9InRlc3QiPgorICAgPGRpdiBpZD0ibG9n
Ij48L2Rpdj4KKyAgPC9kaXY+CisgPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvY3NzMy9kZXZpY2UtYWRhcHQvb3BlcmEvY2FzY2FkaW5nLTAwNC1leHBlY3RlZC50eHQg
Yi9MYXlvdXRUZXN0cy9jc3MzL2RldmljZS1hZGFwdC9vcGVyYS9jYXNjYWRpbmctMDA0LWV4cGVj
dGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi5kYTI5YjVhMGI0ZTRlNDM5ODM1ZWUxNjBhNDAxY2QxMDg4NTE2
ODdjCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvY3NzMy9kZXZpY2UtYWRhcHQvb3Bl
cmEvY2FzY2FkaW5nLTAwNC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwzIEBACisKK1BBU1MgQ1NT
IFRlc3Q6IEB2aWV3cG9ydCBjYXNjYWRpbmcgLSAhaW1wb3J0YW50IGRlY2xhcmF0aW9uIGZyb20g
cHJlY2VkaW5nIHJ1bGUgd2lucyAKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvY3NzMy9kZXZp
Y2UtYWRhcHQvb3BlcmEvY2FzY2FkaW5nLTAwNC54aHRtbCBiL0xheW91dFRlc3RzL2NzczMvZGV2
aWNlLWFkYXB0L29wZXJhL2Nhc2NhZGluZy0wMDQueGh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNjFkNjViODhm
MjllOGE5MDY5NTNjN2E3NGFlYmU5YTA1ODhhOTQ0MQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL2NzczMvZGV2aWNlLWFkYXB0L29wZXJhL2Nhc2NhZGluZy0wMDQueGh0bWwKQEAgLTAs
MCArMSw4NCBAQAorPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KKzwhRE9D
VFlQRSBodG1sIFBVQkxJQyAiLS8vVzNDLy9EVEQgWEhUTUwgMS4wIFN0cmljdC8vRU4iICJodHRw
Oi8vd3d3LnczLm9yZy9UUi94aHRtbDEvRFREL3hodG1sMS1zdHJpY3QuZHRkIj4KKzxodG1sIHht
bG5zPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sIj4KKyA8aGVhZD4KKyAgPHRpdGxlPkNT
UyBUZXN0OiBAdmlld3BvcnQgY2FzY2FkaW5nIC0gIWltcG9ydGFudCBkZWNsYXJhdGlvbiBmcm9t
IHByZWNlZGluZyBydWxlIHdpbnM8L3RpdGxlPgorICA8bGluayByZWw9ImF1dGhvciIgdGl0bGU9
IlJ1bmUgTGlsbGVzdmVlbiIgaHJlZj0ibWFpbHRvOnJ1bmVAb3BlcmEuY29tIi8+CisgIDxsaW5r
IHJlbD0iaGVscCIgaHJlZj0iaHR0cDovL3d3dy53My5vcmcvVFIvY3NzLWRldmljZS1hZGFwdC8j
dGhlLXZpZXdwb3J0LXJ1bGUiLz4KKyAgPG1ldGEgbmFtZT0iZmxhZ3MiIGNvbnRlbnQ9InZpc3Vh
bCBzY3JvbGwgZG9tIiAvPgorICA8bWV0YSBuYW1lPSJhc3NlcnQiIGNvbnRlbnQ9IkEgcHJlY2Vl
ZGluZyAhaW1wb3J0YW50IGRlY2xhcmF0aW9uIGZyb20gYSBwcmVjZWRpbmcgcnVsZSB3aW5zIG92
ZXIgYSBub24taW1wb3J0YW50IGRlc2NyaXB0b3IuIi8+CisgIDxzY3JpcHQgc3JjPSIuLi8uLi8u
Li9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiIHR5cGU9InRleHQvamF2YXNjcmlwdCIgLz4KKyAg
PHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyIgdHlw
ZT0idGV4dC9qYXZhc2NyaXB0IiAvPgorICA8c3R5bGUgdHlwZT0idGV4dC9jc3MiPjwhW0NEQVRB
WworICAgYm9keSB7IG1hcmdpbjogMDsgfQorICAgaHRtbCwgYm9keSwgI3Rlc3QgeyB3aWR0aDog
MTAwJTsgaGVpZ2h0OiAxMDAlOyB9CisgICAjbG9nIHsgcGFkZGluZzogMWVtOyBkaXNwbGF5OiBu
b25lOyB9CisgICAvKiBSZXNldCB2aWV3cG9ydCB2YWx1ZXMgdG8gaW5pdGlhbCB2YWx1ZXMgdG8g
aWdub3JlIFVBIHN0eWxlc2hlZXQuICovCisgICBALXdlYmtpdC12aWV3cG9ydCB7CisgICAgd2lk
dGg6IGF1dG87CisgICAgaGVpZ2h0OiBhdXRvOworICAgIHpvb206IGF1dG87CisgICAgbWluLXpv
b206IGF1dG87CisgICAgbWF4LXpvb206IGF1dG87CisgICAgdXNlci16b29tOiB6b29tOworICAg
IG9yaWVudGF0aW9uOiBhdXRvOworICAgIHJlc29sdXRpb246IGF1dG87CisgICB9CisgIF1dPjwv
c3R5bGU+CisgIDxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyI+PCFbQ0RBVEFbCisgICAvKiBDU1MgZm9y
IHRoZSB0ZXN0IGJlbG93LiAqLworICAgQC13ZWJraXQtdmlld3BvcnQgeyB3aWR0aDogMzAwcHgg
IWltcG9ydGFudDsgfSBALXdlYmtpdC12aWV3cG9ydCB7IHdpZHRoOiA1MDBweDsgfQorICAgLyog
U2V0IHJvb3QgZWxlbWVudCBmb250LXNpemUgdG8gc29tZXRoaW5nIGRpZmZlcmVudCBmcm9tIHRo
ZSBpbml0aWFsCisgICAgICBmb250LXNpemUgdG8gbWFrZSBzdXJlICdyZW0nIGFuZCAnZW0nIGZv
ciBAdmlld3BvcnQgaXMgYmFzZWQgb24gdGhlCisgICAgICBpbml0aWFsIGZvbnQtc2l6ZSwgbm90
IHRoZSByb290IGVsZW1lbnQgZm9udC1zaXplLiAqLworICAgaHRtbCB7IGZvbnQtc2l6ZTogMnJl
bTsgfQorICAgYm9keSB7IGZvbnQtc2l6ZTogMC41cmVtOyB9CisgIF1dPjwvc3R5bGU+CisgIDxz
Y3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij48IVtDREFUQVsKKyAgIHZhciB0ZXN0ID0gYXN5
bmNfdGVzdCgiQ1NTIFRlc3Q6IEB2aWV3cG9ydCBjYXNjYWRpbmcgLSAhaW1wb3J0YW50IGRlY2xh
cmF0aW9uIGZyb20gcHJlY2VkaW5nIHJ1bGUgd2lucyIpOworICAgd2luZG93Lm9ubG9hZCA9IGZ1
bmN0aW9uKCl7CisKKyAgICB2YXIgdGVzdFN0eWxlU2hlZXQgPSBkb2N1bWVudC5zdHlsZVNoZWV0
cy5pdGVtKDEpOworCisgICAgLyogRGlzYWJsZSB0aGUgc3R5bGVzaGVldCB0aGF0IGNvbnRhaW5z
IHRoZSBAdmlld3BvcnQgdG8gdGVzdC4gKi8KKyAgICB0ZXN0U3R5bGVTaGVldC5kaXNhYmxlZCA9
IHRydWU7CisKKyAgICAvKiBJbml0aWFsaXplIGFuIG9iamVjdCB0byBzdG9yZSB2aWV3cG9ydCB2
YWx1ZXMgdG8gYmUgdXNlZCBieSB0aGUgdGVzdAorICAgICAgIGFzc2VydHMuICovCisgICAgdmFy
IHZpZXdwb3J0ID0gbmV3IE9iamVjdCgpOworCisgICAgLyogQW4gZWxlbWVudCB3aXRoIHRoZSBz
YW1lIHNpemUgYXMgdGhlIGluaXRpYWwgY29udGFpbmluZyBibG9jay4gKi8KKyAgICB2YXIgdGVz
dEVsbSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0ZXN0Iik7CisKKyAgICAvKiBSZXRyaWV2
ZSB0aGUgaW5pdGlhbCB2aWV3cG9ydCB2YWx1ZXMgYmVmb3JlIGFwcGx5aW5nIHRoZSBAdmlld3Bv
cnQgdG8KKyAgICAgICB0ZXN0LiAqLworICAgIHZpZXdwb3J0LmluaXRpYWxXaWR0aCA9IHRlc3RF
bG0ub2Zmc2V0V2lkdGg7CisgICAgdmlld3BvcnQuaW5pdGlhbEhlaWdodCA9IHRlc3RFbG0ub2Zm
c2V0SGVpZ2h0OworICAgIHZpZXdwb3J0LmZvbnRTaXplID0gcGFyc2VJbnQoZ2V0Q29tcHV0ZWRT
dHlsZSh0ZXN0RWxtLCAiIikuZm9udFNpemUpOworCisgICAgLyogRW5hYmxlIHRoZSBzdHlsZXNo
ZWV0IHRoYXQgY29udGFpbnMgdGhlIEB2aWV3cG9ydCB0byB0ZXN0LiAqLworICAgIHRlc3RTdHls
ZVNoZWV0LmRpc2FibGVkID0gZmFsc2U7CisKKyAgICAvKiBSZXRyaWV2ZSB0aGUgYWN0dWFsIHZp
ZXdwb3J0IHZhbHVlcyBmb3IgdGhlIHRlc3QuICovCisgICAgdmlld3BvcnQuYWN0dWFsV2lkdGgg
PSB0ZXN0RWxtLm9mZnNldFdpZHRoOworICAgIHZpZXdwb3J0LmFjdHVhbEhlaWdodCA9IHRlc3RF
bG0ub2Zmc2V0SGVpZ2h0OworICAgIHZpZXdwb3J0Lnpvb20gPSB2aWV3cG9ydC5pbml0aWFsV2lk
dGggLyB3aW5kb3cuaW5uZXJXaWR0aDsKKworICAgIC8qIENoZWNrIHZpZXdwb3J0IHZhbHVlcy4g
Ki8KKyAgICB0ZXN0LnN0ZXAoZnVuY3Rpb24oKXsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyh2aWV3
cG9ydC5hY3R1YWxXaWR0aCwgMzAwKTsKKyAgICB9KTsKKworICAgIC8qIEZpbmlzaGVkLiBTaG93
IHRoZSByZXN1bHRzLiAqLworICAgIHRlc3QuZG9uZSgpOworICAgIHRlc3RTdHlsZVNoZWV0LmRp
c2FibGVkID0gdHJ1ZTsKKyAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgibG9nIikuc3R5bGUu
ZGlzcGxheSA9ICJibG9jayI7CisgICB9CisgIF1dPjwvc2NyaXB0PgorIDwvaGVhZD4KKyA8Ym9k
eT4KKyAgPGRpdiBpZD0idGVzdCI+CisgICA8ZGl2IGlkPSJsb2ciPjwvZGl2PgorICA8L2Rpdj4K
KyA8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9jc3MzL2RldmljZS1h
ZGFwdC9vcGVyYS9jb25zdHJhaW4tMDAxLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2NzczMv
ZGV2aWNlLWFkYXB0L29wZXJhL2NvbnN0cmFpbi0wMDEtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LjE4YTlkYTk1YWVhZWUxMTAyYmU1YzRlYWViZDFiZDViZGZiYmViYTUKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy9jc3MzL2RldmljZS1hZGFwdC9vcGVyYS9jb25zdHJhaW4tMDAxLWV4
cGVjdGVkLnR4dApAQCAtMCwwICsxLDMgQEAKKworUEFTUyBDU1MgVGVzdDogQHZpZXdwb3J0IGNv
bnN0cmFpbmVkIC0gbWF4LXdpZHRoIDIwMHB4IAorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9j
c3MzL2RldmljZS1hZGFwdC9vcGVyYS9jb25zdHJhaW4tMDAxLnhodG1sIGIvTGF5b3V0VGVzdHMv
Y3NzMy9kZXZpY2UtYWRhcHQvb3BlcmEvY29uc3RyYWluLTAwMS54aHRtbApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4x
ZmMzNDM0YmE0NDA2MDZjNzhmMzU0Y2UwNGRmOTkzMmU4ZTQzODQ0Ci0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvY3NzMy9kZXZpY2UtYWRhcHQvb3BlcmEvY29uc3RyYWluLTAwMS54aHRt
bApAQCAtMCwwICsxLDg0IEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCI/
PgorPCFET0NUWVBFIGh0bWwgUFVCTElDICItLy9XM0MvL0RURCBYSFRNTCAxLjAgU3RyaWN0Ly9F
TiIgImh0dHA6Ly93d3cudzMub3JnL1RSL3hodG1sMS9EVEQveGh0bWwxLXN0cmljdC5kdGQiPgor
PGh0bWwgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwiPgorIDxoZWFkPgorICA8
dGl0bGU+Q1NTIFRlc3Q6IEB2aWV3cG9ydCBjb25zdHJhaW5lZCAtIG1heC13aWR0aCAyMDBweDwv
dGl0bGU+CisgIDxsaW5rIHJlbD0iYXV0aG9yIiB0aXRsZT0iUnVuZSBMaWxsZXN2ZWVuIiBocmVm
PSJtYWlsdG86cnVuZUBvcGVyYS5jb20iLz4KKyAgPGxpbmsgcmVsPSJoZWxwIiBocmVmPSJodHRw
Oi8vd3d3LnczLm9yZy9UUi9jc3MtZGV2aWNlLWFkYXB0LyNjb25zdHJhaW5pbmctcHJvY2VkdXJl
Ii8+CisgIDxtZXRhIG5hbWU9ImZsYWdzIiBjb250ZW50PSJ2aXN1YWwgc2Nyb2xsIGRvbSIgLz4K
KyAgPG1ldGEgbmFtZT0iYXNzZXJ0IiBjb250ZW50PSJTZXR0aW5nIG1heC13aWR0aCBpbiBAdmll
d3BvcnQgdG8gYSBsZW5ndGggc21hbGxlciB0aGFuIHRoZSBpbml0aWFsIHZpZXdwb3J0IHdpZHRo
IHdpbGwgc2V0IHRoZSBhY3R1YWwgdmlld3BvcnQgd2lkdGggdG8gdGhhdCBsZW5ndGgiLz4KKyAg
PHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyIgdHlwZT0idGV4
dC9qYXZhc2NyaXB0IiAvPgorICA8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3Ro
YXJuZXNzcmVwb3J0LmpzIiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIC8+CisgIDxzdHlsZSB0eXBl
PSJ0ZXh0L2NzcyI+PCFbQ0RBVEFbCisgICBib2R5IHsgbWFyZ2luOiAwOyB9CisgICBodG1sLCBi
b2R5LCAjdGVzdCB7IHdpZHRoOiAxMDAlOyBoZWlnaHQ6IDEwMCU7IH0KKyAgICNsb2cgeyBwYWRk
aW5nOiAxZW07IGRpc3BsYXk6IG5vbmU7IH0KKyAgIC8qIFJlc2V0IHZpZXdwb3J0IHZhbHVlcyB0
byBpbml0aWFsIHZhbHVlcyB0byBpZ25vcmUgVUEgc3R5bGVzaGVldC4gKi8KKyAgIEAtd2Via2l0
LXZpZXdwb3J0IHsKKyAgICB3aWR0aDogYXV0bzsKKyAgICBoZWlnaHQ6IGF1dG87CisgICAgem9v
bTogYXV0bzsKKyAgICBtaW4tem9vbTogYXV0bzsKKyAgICBtYXgtem9vbTogYXV0bzsKKyAgICB1
c2VyLXpvb206IHpvb207CisgICAgb3JpZW50YXRpb246IGF1dG87CisgICAgcmVzb2x1dGlvbjog
YXV0bzsKKyAgIH0KKyAgXV0+PC9zdHlsZT4KKyAgPHN0eWxlIHR5cGU9InRleHQvY3NzIj48IVtD
REFUQVsKKyAgIC8qIENTUyBmb3IgdGhlIHRlc3QgYmVsb3cuICovCisgICBALXdlYmtpdC12aWV3
cG9ydCB7IG1heC13aWR0aDogMjAwcHggfQorICAgLyogU2V0IHJvb3QgZWxlbWVudCBmb250LXNp
emUgdG8gc29tZXRoaW5nIGRpZmZlcmVudCBmcm9tIHRoZSBpbml0aWFsCisgICAgICBmb250LXNp
emUgdG8gbWFrZSBzdXJlICdyZW0nIGFuZCAnZW0nIGZvciBAdmlld3BvcnQgaXMgYmFzZWQgb24g
dGhlCisgICAgICBpbml0aWFsIGZvbnQtc2l6ZSwgbm90IHRoZSByb290IGVsZW1lbnQgZm9udC1z
aXplLiAqLworICAgaHRtbCB7IGZvbnQtc2l6ZTogMnJlbTsgfQorICAgYm9keSB7IGZvbnQtc2l6
ZTogMC41cmVtOyB9CisgIF1dPjwvc3R5bGU+CisgIDxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2Ny
aXB0Ij48IVtDREFUQVsKKyAgIHZhciB0ZXN0ID0gYXN5bmNfdGVzdCgiQ1NTIFRlc3Q6IEB2aWV3
cG9ydCBjb25zdHJhaW5lZCAtIG1heC13aWR0aCAyMDBweCIpOworICAgd2luZG93Lm9ubG9hZCA9
IGZ1bmN0aW9uKCl7CisKKyAgICB2YXIgdGVzdFN0eWxlU2hlZXQgPSBkb2N1bWVudC5zdHlsZVNo
ZWV0cy5pdGVtKDEpOworCisgICAgLyogRGlzYWJsZSB0aGUgc3R5bGVzaGVldCB0aGF0IGNvbnRh
aW5zIHRoZSBAdmlld3BvcnQgdG8gdGVzdC4gKi8KKyAgICB0ZXN0U3R5bGVTaGVldC5kaXNhYmxl
ZCA9IHRydWU7CisKKyAgICAvKiBJbml0aWFsaXplIGFuIG9iamVjdCB0byBzdG9yZSB2aWV3cG9y
dCB2YWx1ZXMgdG8gYmUgdXNlZCBieSB0aGUgdGVzdAorICAgICAgIGFzc2VydHMuICovCisgICAg
dmFyIHZpZXdwb3J0ID0gbmV3IE9iamVjdCgpOworCisgICAgLyogQW4gZWxlbWVudCB3aXRoIHRo
ZSBzYW1lIHNpemUgYXMgdGhlIGluaXRpYWwgY29udGFpbmluZyBibG9jay4gKi8KKyAgICB2YXIg
dGVzdEVsbSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0ZXN0Iik7CisKKyAgICAvKiBSZXRy
aWV2ZSB0aGUgaW5pdGlhbCB2aWV3cG9ydCB2YWx1ZXMgYmVmb3JlIGFwcGx5aW5nIHRoZSBAdmll
d3BvcnQgdG8KKyAgICAgICB0ZXN0LiAqLworICAgIHZpZXdwb3J0LmluaXRpYWxXaWR0aCA9IHRl
c3RFbG0ub2Zmc2V0V2lkdGg7CisgICAgdmlld3BvcnQuaW5pdGlhbEhlaWdodCA9IHRlc3RFbG0u
b2Zmc2V0SGVpZ2h0OworICAgIHZpZXdwb3J0LmZvbnRTaXplID0gcGFyc2VJbnQoZ2V0Q29tcHV0
ZWRTdHlsZSh0ZXN0RWxtLCAiIikuZm9udFNpemUpOworCisgICAgLyogRW5hYmxlIHRoZSBzdHls
ZXNoZWV0IHRoYXQgY29udGFpbnMgdGhlIEB2aWV3cG9ydCB0byB0ZXN0LiAqLworICAgIHRlc3RT
dHlsZVNoZWV0LmRpc2FibGVkID0gZmFsc2U7CisKKyAgICAvKiBSZXRyaWV2ZSB0aGUgYWN0dWFs
IHZpZXdwb3J0IHZhbHVlcyBmb3IgdGhlIHRlc3QuICovCisgICAgdmlld3BvcnQuYWN0dWFsV2lk
dGggPSB0ZXN0RWxtLm9mZnNldFdpZHRoOworICAgIHZpZXdwb3J0LmFjdHVhbEhlaWdodCA9IHRl
c3RFbG0ub2Zmc2V0SGVpZ2h0OworICAgIHZpZXdwb3J0Lnpvb20gPSB2aWV3cG9ydC5pbml0aWFs
V2lkdGggLyB3aW5kb3cuaW5uZXJXaWR0aDsKKworICAgIC8qIENoZWNrIHZpZXdwb3J0IHZhbHVl
cy4gKi8KKyAgICB0ZXN0LnN0ZXAoZnVuY3Rpb24oKXsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyh2
aWV3cG9ydC5hY3R1YWxXaWR0aCwgMjAwKTsKKyAgICB9KTsKKworICAgIC8qIEZpbmlzaGVkLiBT
aG93IHRoZSByZXN1bHRzLiAqLworICAgIHRlc3QuZG9uZSgpOworICAgIHRlc3RTdHlsZVNoZWV0
LmRpc2FibGVkID0gdHJ1ZTsKKyAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgibG9nIikuc3R5
bGUuZGlzcGxheSA9ICJibG9jayI7CisgICB9CisgIF1dPjwvc2NyaXB0PgorIDwvaGVhZD4KKyA8
Ym9keT4KKyAgPGRpdiBpZD0idGVzdCI+CisgICA8ZGl2IGlkPSJsb2ciPjwvZGl2PgorICA8L2Rp
dj4KKyA8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9jc3MzL2Rldmlj
ZS1hZGFwdC9vcGVyYS9jb25zdHJhaW4tMDAyLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Nz
czMvZGV2aWNlLWFkYXB0L29wZXJhL2NvbnN0cmFpbi0wMDItZXhwZWN0ZWQudHh0Cm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjJhNzgzNTk5NTA3OTg0NTg4NTlkZDBiZjc3MjJjODc3OTUzNDIwZWYKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy9jc3MzL2RldmljZS1hZGFwdC9vcGVyYS9jb25zdHJhaW4tMDAy
LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDMgQEAKKworUEFTUyBDU1MgVGVzdDogQHZpZXdwb3J0
IGNvbnN0cmFpbmVkIC0gbWF4LXdpZHRoIDEwMDAwcHggCisKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2NzczMvZGV2aWNlLWFkYXB0L29wZXJhL2NvbnN0cmFpbi0wMDIueGh0bWwgYi9MYXlvdXRU
ZXN0cy9jc3MzL2RldmljZS1hZGFwdC9vcGVyYS9jb25zdHJhaW4tMDAyLnhodG1sCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLmRjYjlkZGMxOTIxYmIyODA5NmNjMGE1YTM0NTYyMWM1MWM4YzExMTEKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy9jc3MzL2RldmljZS1hZGFwdC9vcGVyYS9jb25zdHJhaW4tMDAy
LnhodG1sCkBAIC0wLDAgKzEsODQgQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVU
Ri04Ij8+Cis8IURPQ1RZUEUgaHRtbCBQVUJMSUMgIi0vL1czQy8vRFREIFhIVE1MIDEuMCBTdHJp
Y3QvL0VOIiAiaHR0cDovL3d3dy53My5vcmcvVFIveGh0bWwxL0RURC94aHRtbDEtc3RyaWN0LmR0
ZCI+Cis8aHRtbCB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCI+CisgPGhlYWQ+
CisgIDx0aXRsZT5DU1MgVGVzdDogQHZpZXdwb3J0IGNvbnN0cmFpbmVkIC0gbWF4LXdpZHRoIDEw
MDAwcHg8L3RpdGxlPgorICA8bGluayByZWw9ImF1dGhvciIgdGl0bGU9IlJ1bmUgTGlsbGVzdmVl
biIgaHJlZj0ibWFpbHRvOnJ1bmVAb3BlcmEuY29tIi8+CisgIDxsaW5rIHJlbD0iaGVscCIgaHJl
Zj0iaHR0cDovL3d3dy53My5vcmcvVFIvY3NzLWRldmljZS1hZGFwdC8jY29uc3RyYWluaW5nLXBy
b2NlZHVyZSIvPgorICA8bWV0YSBuYW1lPSJmbGFncyIgY29udGVudD0idmlzdWFsIHNjcm9sbCBk
b20iIC8+CisgIDxtZXRhIG5hbWU9ImFzc2VydCIgY29udGVudD0iU2V0dGluZyBtYXgtd2lkdGgg
aW4gQHZpZXdwb3J0IHRvIGEgbGVuZ3RoIGxhcmdlciB0aGFuIHRoZSBpbml0aWFsIHZpZXdwb3J0
IHdpZHRoIHdpbGwgbm90IGNoYW5nZSB0aGUgYWN0dWFsIHZpZXdwb3J0IHdpZHRoLiIvPgorICA8
c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIiB0eXBlPSJ0ZXh0
L2phdmFzY3JpcHQiIC8+CisgIDxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhh
cm5lc3NyZXBvcnQuanMiIHR5cGU9InRleHQvamF2YXNjcmlwdCIgLz4KKyAgPHN0eWxlIHR5cGU9
InRleHQvY3NzIj48IVtDREFUQVsKKyAgIGJvZHkgeyBtYXJnaW46IDA7IH0KKyAgIGh0bWwsIGJv
ZHksICN0ZXN0IHsgd2lkdGg6IDEwMCU7IGhlaWdodDogMTAwJTsgfQorICAgI2xvZyB7IHBhZGRp
bmc6IDFlbTsgZGlzcGxheTogbm9uZTsgfQorICAgLyogUmVzZXQgdmlld3BvcnQgdmFsdWVzIHRv
IGluaXRpYWwgdmFsdWVzIHRvIGlnbm9yZSBVQSBzdHlsZXNoZWV0LiAqLworICAgQC13ZWJraXQt
dmlld3BvcnQgeworICAgIHdpZHRoOiBhdXRvOworICAgIGhlaWdodDogYXV0bzsKKyAgICB6b29t
OiBhdXRvOworICAgIG1pbi16b29tOiBhdXRvOworICAgIG1heC16b29tOiBhdXRvOworICAgIHVz
ZXItem9vbTogem9vbTsKKyAgICBvcmllbnRhdGlvbjogYXV0bzsKKyAgICByZXNvbHV0aW9uOiBh
dXRvOworICAgfQorICBdXT48L3N0eWxlPgorICA8c3R5bGUgdHlwZT0idGV4dC9jc3MiPjwhW0NE
QVRBWworICAgLyogQ1NTIGZvciB0aGUgdGVzdCBiZWxvdy4gKi8KKyAgIEAtd2Via2l0LXZpZXdw
b3J0IHsgbWF4LXdpZHRoOiAxMDAwMHB4IH0KKyAgIC8qIFNldCByb290IGVsZW1lbnQgZm9udC1z
aXplIHRvIHNvbWV0aGluZyBkaWZmZXJlbnQgZnJvbSB0aGUgaW5pdGlhbAorICAgICAgZm9udC1z
aXplIHRvIG1ha2Ugc3VyZSAncmVtJyBhbmQgJ2VtJyBmb3IgQHZpZXdwb3J0IGlzIGJhc2VkIG9u
IHRoZQorICAgICAgaW5pdGlhbCBmb250LXNpemUsIG5vdCB0aGUgcm9vdCBlbGVtZW50IGZvbnQt
c2l6ZS4gKi8KKyAgIGh0bWwgeyBmb250LXNpemU6IDJyZW07IH0KKyAgIGJvZHkgeyBmb250LXNp
emU6IDAuNXJlbTsgfQorICBdXT48L3N0eWxlPgorICA8c2NyaXB0IHR5cGU9InRleHQvamF2YXNj
cmlwdCI+PCFbQ0RBVEFbCisgICB2YXIgdGVzdCA9IGFzeW5jX3Rlc3QoIkNTUyBUZXN0OiBAdmll
d3BvcnQgY29uc3RyYWluZWQgLSBtYXgtd2lkdGggMTAwMDBweCIpOworICAgd2luZG93Lm9ubG9h
ZCA9IGZ1bmN0aW9uKCl7CisKKyAgICB2YXIgdGVzdFN0eWxlU2hlZXQgPSBkb2N1bWVudC5zdHls
ZVNoZWV0cy5pdGVtKDEpOworCisgICAgLyogRGlzYWJsZSB0aGUgc3R5bGVzaGVldCB0aGF0IGNv
bnRhaW5zIHRoZSBAdmlld3BvcnQgdG8gdGVzdC4gKi8KKyAgICB0ZXN0U3R5bGVTaGVldC5kaXNh
YmxlZCA9IHRydWU7CisKKyAgICAvKiBJbml0aWFsaXplIGFuIG9iamVjdCB0byBzdG9yZSB2aWV3
cG9ydCB2YWx1ZXMgdG8gYmUgdXNlZCBieSB0aGUgdGVzdAorICAgICAgIGFzc2VydHMuICovCisg
ICAgdmFyIHZpZXdwb3J0ID0gbmV3IE9iamVjdCgpOworCisgICAgLyogQW4gZWxlbWVudCB3aXRo
IHRoZSBzYW1lIHNpemUgYXMgdGhlIGluaXRpYWwgY29udGFpbmluZyBibG9jay4gKi8KKyAgICB2
YXIgdGVzdEVsbSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0ZXN0Iik7CisKKyAgICAvKiBS
ZXRyaWV2ZSB0aGUgaW5pdGlhbCB2aWV3cG9ydCB2YWx1ZXMgYmVmb3JlIGFwcGx5aW5nIHRoZSBA
dmlld3BvcnQgdG8KKyAgICAgICB0ZXN0LiAqLworICAgIHZpZXdwb3J0LmluaXRpYWxXaWR0aCA9
IHRlc3RFbG0ub2Zmc2V0V2lkdGg7CisgICAgdmlld3BvcnQuaW5pdGlhbEhlaWdodCA9IHRlc3RF
bG0ub2Zmc2V0SGVpZ2h0OworICAgIHZpZXdwb3J0LmZvbnRTaXplID0gcGFyc2VJbnQoZ2V0Q29t
cHV0ZWRTdHlsZSh0ZXN0RWxtLCAiIikuZm9udFNpemUpOworCisgICAgLyogRW5hYmxlIHRoZSBz
dHlsZXNoZWV0IHRoYXQgY29udGFpbnMgdGhlIEB2aWV3cG9ydCB0byB0ZXN0LiAqLworICAgIHRl
c3RTdHlsZVNoZWV0LmRpc2FibGVkID0gZmFsc2U7CisKKyAgICAvKiBSZXRyaWV2ZSB0aGUgYWN0
dWFsIHZpZXdwb3J0IHZhbHVlcyBmb3IgdGhlIHRlc3QuICovCisgICAgdmlld3BvcnQuYWN0dWFs
V2lkdGggPSB0ZXN0RWxtLm9mZnNldFdpZHRoOworICAgIHZpZXdwb3J0LmFjdHVhbEhlaWdodCA9
IHRlc3RFbG0ub2Zmc2V0SGVpZ2h0OworICAgIHZpZXdwb3J0Lnpvb20gPSB2aWV3cG9ydC5pbml0
aWFsV2lkdGggLyB3aW5kb3cuaW5uZXJXaWR0aDsKKworICAgIC8qIENoZWNrIHZpZXdwb3J0IHZh
bHVlcy4gKi8KKyAgICB0ZXN0LnN0ZXAoZnVuY3Rpb24oKXsKKyAgICAgICAgYXNzZXJ0X2VxdWFs
cyh2aWV3cG9ydC5hY3R1YWxXaWR0aCwgdmlld3BvcnQuaW5pdGlhbFdpZHRoKTsKKyAgICB9KTsK
KworICAgIC8qIEZpbmlzaGVkLiBTaG93IHRoZSByZXN1bHRzLiAqLworICAgIHRlc3QuZG9uZSgp
OworICAgIHRlc3RTdHlsZVNoZWV0LmRpc2FibGVkID0gdHJ1ZTsKKyAgICBkb2N1bWVudC5nZXRF
bGVtZW50QnlJZCgibG9nIikuc3R5bGUuZGlzcGxheSA9ICJibG9jayI7CisgICB9CisgIF1dPjwv
c2NyaXB0PgorIDwvaGVhZD4KKyA8Ym9keT4KKyAgPGRpdiBpZD0idGVzdCI+CisgICA8ZGl2IGlk
PSJsb2ciPjwvZGl2PgorICA8L2Rpdj4KKyA8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9jc3MzL2RldmljZS1hZGFwdC9vcGVyYS9jb25zdHJhaW4tMDAzLWV4cGVjdGVk
LnR4dCBiL0xheW91dFRlc3RzL2NzczMvZGV2aWNlLWFkYXB0L29wZXJhL2NvbnN0cmFpbi0wMDMt
ZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjExYzk4OTllMTc0YjFkNjBlZGUyNGZmNzYwZGQ3ZWMx
ODVhMTczOGEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9jc3MzL2RldmljZS1hZGFw
dC9vcGVyYS9jb25zdHJhaW4tMDAzLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDMgQEAKKworUEFT
UyBDU1MgVGVzdDogQHZpZXdwb3J0IGNvbnN0cmFpbmVkIC0gbWluLXdpZHRoIDEwcHggCisKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2NzczMvZGV2aWNlLWFkYXB0L29wZXJhL2NvbnN0cmFpbi0w
MDMueGh0bWwgYi9MYXlvdXRUZXN0cy9jc3MzL2RldmljZS1hZGFwdC9vcGVyYS9jb25zdHJhaW4t
MDAzLnhodG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLjNkNzgyMGY2NDEzZTI2NDY2Yjc3MjgyMGZjZWNiMzY1ZWZi
YjRhNWMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9jc3MzL2RldmljZS1hZGFwdC9v
cGVyYS9jb25zdHJhaW4tMDAzLnhodG1sCkBAIC0wLDAgKzEsODQgQEAKKzw/eG1sIHZlcnNpb249
IjEuMCIgZW5jb2Rpbmc9IlVURi04Ij8+Cis8IURPQ1RZUEUgaHRtbCBQVUJMSUMgIi0vL1czQy8v
RFREIFhIVE1MIDEuMCBTdHJpY3QvL0VOIiAiaHR0cDovL3d3dy53My5vcmcvVFIveGh0bWwxL0RU
RC94aHRtbDEtc3RyaWN0LmR0ZCI+Cis8aHRtbCB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMTk5
OS94aHRtbCI+CisgPGhlYWQ+CisgIDx0aXRsZT5DU1MgVGVzdDogQHZpZXdwb3J0IGNvbnN0cmFp
bmVkIC0gbWluLXdpZHRoIDEwcHg8L3RpdGxlPgorICA8bGluayByZWw9ImF1dGhvciIgdGl0bGU9
IlJ1bmUgTGlsbGVzdmVlbiIgaHJlZj0ibWFpbHRvOnJ1bmVAb3BlcmEuY29tIi8+CisgIDxsaW5r
IHJlbD0iaGVscCIgaHJlZj0iaHR0cDovL3d3dy53My5vcmcvVFIvY3NzLWRldmljZS1hZGFwdC8j
Y29uc3RyYWluaW5nLXByb2NlZHVyZSIvPgorICA8bWV0YSBuYW1lPSJmbGFncyIgY29udGVudD0i
dmlzdWFsIHNjcm9sbCBkb20iIC8+CisgIDxtZXRhIG5hbWU9ImFzc2VydCIgY29udGVudD0iU2V0
dGluZyBtaW4td2lkdGggaW4gQHZpZXdwb3J0IHRvIGEgbGVuZ3RoIHNtYWxsZXIgdGhhbiB0aGUg
aW5pdGlhbCB2aWV3cG9ydCB3aWR0aCB3aWxsIG5vdCBjaGFuZ2UgdGhlIGFjdHVhbCB2aWV3cG9y
dCB3aWR0aC4iLz4KKyAgPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVz
cy5qcyIgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiAvPgorICA8c2NyaXB0IHNyYz0iLi4vLi4vLi4v
cmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIC8+
CisgIDxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyI+PCFbQ0RBVEFbCisgICBib2R5IHsgbWFyZ2luOiAw
OyB9CisgICBodG1sLCBib2R5LCAjdGVzdCB7IHdpZHRoOiAxMDAlOyBoZWlnaHQ6IDEwMCU7IH0K
KyAgICNsb2cgeyBwYWRkaW5nOiAxZW07IGRpc3BsYXk6IG5vbmU7IH0KKyAgIC8qIFJlc2V0IHZp
ZXdwb3J0IHZhbHVlcyB0byBpbml0aWFsIHZhbHVlcyB0byBpZ25vcmUgVUEgc3R5bGVzaGVldC4g
Ki8KKyAgIEAtd2Via2l0LXZpZXdwb3J0IHsKKyAgICB3aWR0aDogYXV0bzsKKyAgICBoZWlnaHQ6
IGF1dG87CisgICAgem9vbTogYXV0bzsKKyAgICBtaW4tem9vbTogYXV0bzsKKyAgICBtYXgtem9v
bTogYXV0bzsKKyAgICB1c2VyLXpvb206IHpvb207CisgICAgb3JpZW50YXRpb246IGF1dG87Cisg
ICAgcmVzb2x1dGlvbjogYXV0bzsKKyAgIH0KKyAgXV0+PC9zdHlsZT4KKyAgPHN0eWxlIHR5cGU9
InRleHQvY3NzIj48IVtDREFUQVsKKyAgIC8qIENTUyBmb3IgdGhlIHRlc3QgYmVsb3cuICovCisg
ICBALXdlYmtpdC12aWV3cG9ydCB7IG1pbi13aWR0aDogMTBweCB9CisgICAvKiBTZXQgcm9vdCBl
bGVtZW50IGZvbnQtc2l6ZSB0byBzb21ldGhpbmcgZGlmZmVyZW50IGZyb20gdGhlIGluaXRpYWwK
KyAgICAgIGZvbnQtc2l6ZSB0byBtYWtlIHN1cmUgJ3JlbScgYW5kICdlbScgZm9yIEB2aWV3cG9y
dCBpcyBiYXNlZCBvbiB0aGUKKyAgICAgIGluaXRpYWwgZm9udC1zaXplLCBub3QgdGhlIHJvb3Qg
ZWxlbWVudCBmb250LXNpemUuICovCisgICBodG1sIHsgZm9udC1zaXplOiAycmVtOyB9CisgICBi
b2R5IHsgZm9udC1zaXplOiAwLjVyZW07IH0KKyAgXV0+PC9zdHlsZT4KKyAgPHNjcmlwdCB0eXBl
PSJ0ZXh0L2phdmFzY3JpcHQiPjwhW0NEQVRBWworICAgdmFyIHRlc3QgPSBhc3luY190ZXN0KCJD
U1MgVGVzdDogQHZpZXdwb3J0IGNvbnN0cmFpbmVkIC0gbWluLXdpZHRoIDEwcHgiKTsKKyAgIHdp
bmRvdy5vbmxvYWQgPSBmdW5jdGlvbigpeworCisgICAgdmFyIHRlc3RTdHlsZVNoZWV0ID0gZG9j
dW1lbnQuc3R5bGVTaGVldHMuaXRlbSgxKTsKKworICAgIC8qIERpc2FibGUgdGhlIHN0eWxlc2hl
ZXQgdGhhdCBjb250YWlucyB0aGUgQHZpZXdwb3J0IHRvIHRlc3QuICovCisgICAgdGVzdFN0eWxl
U2hlZXQuZGlzYWJsZWQgPSB0cnVlOworCisgICAgLyogSW5pdGlhbGl6ZSBhbiBvYmplY3QgdG8g
c3RvcmUgdmlld3BvcnQgdmFsdWVzIHRvIGJlIHVzZWQgYnkgdGhlIHRlc3QKKyAgICAgICBhc3Nl
cnRzLiAqLworICAgIHZhciB2aWV3cG9ydCA9IG5ldyBPYmplY3QoKTsKKworICAgIC8qIEFuIGVs
ZW1lbnQgd2l0aCB0aGUgc2FtZSBzaXplIGFzIHRoZSBpbml0aWFsIGNvbnRhaW5pbmcgYmxvY2su
ICovCisgICAgdmFyIHRlc3RFbG0gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidGVzdCIpOwor
CisgICAgLyogUmV0cmlldmUgdGhlIGluaXRpYWwgdmlld3BvcnQgdmFsdWVzIGJlZm9yZSBhcHBs
eWluZyB0aGUgQHZpZXdwb3J0IHRvCisgICAgICAgdGVzdC4gKi8KKyAgICB2aWV3cG9ydC5pbml0
aWFsV2lkdGggPSB0ZXN0RWxtLm9mZnNldFdpZHRoOworICAgIHZpZXdwb3J0LmluaXRpYWxIZWln
aHQgPSB0ZXN0RWxtLm9mZnNldEhlaWdodDsKKyAgICB2aWV3cG9ydC5mb250U2l6ZSA9IHBhcnNl
SW50KGdldENvbXB1dGVkU3R5bGUodGVzdEVsbSwgIiIpLmZvbnRTaXplKTsKKworICAgIC8qIEVu
YWJsZSB0aGUgc3R5bGVzaGVldCB0aGF0IGNvbnRhaW5zIHRoZSBAdmlld3BvcnQgdG8gdGVzdC4g
Ki8KKyAgICB0ZXN0U3R5bGVTaGVldC5kaXNhYmxlZCA9IGZhbHNlOworCisgICAgLyogUmV0cmll
dmUgdGhlIGFjdHVhbCB2aWV3cG9ydCB2YWx1ZXMgZm9yIHRoZSB0ZXN0LiAqLworICAgIHZpZXdw
b3J0LmFjdHVhbFdpZHRoID0gdGVzdEVsbS5vZmZzZXRXaWR0aDsKKyAgICB2aWV3cG9ydC5hY3R1
YWxIZWlnaHQgPSB0ZXN0RWxtLm9mZnNldEhlaWdodDsKKyAgICB2aWV3cG9ydC56b29tID0gdmll
d3BvcnQuaW5pdGlhbFdpZHRoIC8gd2luZG93LmlubmVyV2lkdGg7CisKKyAgICAvKiBDaGVjayB2
aWV3cG9ydCB2YWx1ZXMuICovCisgICAgdGVzdC5zdGVwKGZ1bmN0aW9uKCl7CisgICAgICAgIGFz
c2VydF9lcXVhbHModmlld3BvcnQuYWN0dWFsV2lkdGgsIHZpZXdwb3J0LmluaXRpYWxXaWR0aCk7
CisgICAgfSk7CisKKyAgICAvKiBGaW5pc2hlZC4gU2hvdyB0aGUgcmVzdWx0cy4gKi8KKyAgICB0
ZXN0LmRvbmUoKTsKKyAgICB0ZXN0U3R5bGVTaGVldC5kaXNhYmxlZCA9IHRydWU7CisgICAgZG9j
dW1lbnQuZ2V0RWxlbWVudEJ5SWQoImxvZyIpLnN0eWxlLmRpc3BsYXkgPSAiYmxvY2siOworICAg
fQorICBdXT48L3NjcmlwdD4KKyA8L2hlYWQ+CisgPGJvZHk+CisgIDxkaXYgaWQ9InRlc3QiPgor
ICAgPGRpdiBpZD0ibG9nIj48L2Rpdj4KKyAgPC9kaXY+CisgPC9ib2R5PgorPC9odG1sPgpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvY3NzMy9kZXZpY2UtYWRhcHQvb3BlcmEvY29uc3RyYWluLTAw
NC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9jc3MzL2RldmljZS1hZGFwdC9vcGVyYS9jb25z
dHJhaW4tMDA0LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zNTg1ZDM3MzBkMmU3Y2MyMWE5MTkx
NjJkZGZlZmU0NDA4ZDY4OTJkCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvY3NzMy9k
ZXZpY2UtYWRhcHQvb3BlcmEvY29uc3RyYWluLTAwNC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwz
IEBACisKK1BBU1MgQ1NTIFRlc3Q6IEB2aWV3cG9ydCBjb25zdHJhaW5lZCAtIG1pbi13aWR0aCAx
MDAwMHB4IAorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9jc3MzL2RldmljZS1hZGFwdC9vcGVy
YS9jb25zdHJhaW4tMDA0LnhodG1sIGIvTGF5b3V0VGVzdHMvY3NzMy9kZXZpY2UtYWRhcHQvb3Bl
cmEvY29uc3RyYWluLTAwNC54aHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yYmFmNjM4ZmE3MmZhMzNjNTA1Njkz
NWJlNGQ3MGQwMzA5YmM3M2I5Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvY3NzMy9k
ZXZpY2UtYWRhcHQvb3BlcmEvY29uc3RyYWluLTAwNC54aHRtbApAQCAtMCwwICsxLDg0IEBACis8
P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCI/PgorPCFET0NUWVBFIGh0bWwgUFVC
TElDICItLy9XM0MvL0RURCBYSFRNTCAxLjAgU3RyaWN0Ly9FTiIgImh0dHA6Ly93d3cudzMub3Jn
L1RSL3hodG1sMS9EVEQveGh0bWwxLXN0cmljdC5kdGQiPgorPGh0bWwgeG1sbnM9Imh0dHA6Ly93
d3cudzMub3JnLzE5OTkveGh0bWwiPgorIDxoZWFkPgorICA8dGl0bGU+Q1NTIFRlc3Q6IEB2aWV3
cG9ydCBjb25zdHJhaW5lZCAtIG1pbi13aWR0aCAxMDAwMHB4PC90aXRsZT4KKyAgPGxpbmsgcmVs
PSJhdXRob3IiIHRpdGxlPSJSdW5lIExpbGxlc3ZlZW4iIGhyZWY9Im1haWx0bzpydW5lQG9wZXJh
LmNvbSIvPgorICA8bGluayByZWw9ImhlbHAiIGhyZWY9Imh0dHA6Ly93d3cudzMub3JnL1RSL2Nz
cy1kZXZpY2UtYWRhcHQvI2NvbnN0cmFpbmluZy1wcm9jZWR1cmUiLz4KKyAgPG1ldGEgbmFtZT0i
ZmxhZ3MiIGNvbnRlbnQ9InZpc3VhbCBzY3JvbGwgZG9tIiAvPgorICA8bWV0YSBuYW1lPSJhc3Nl
cnQiIGNvbnRlbnQ9IlNldHRpbmcgbWluLXdpZHRoIGluIEB2aWV3cG9ydCB0byBhIGxlbmd0aCBs
YXJnZXIgdGhhbiB0aGUgaW5pdGlhbCB2aWV3cG9ydCB3aWR0aCB3aWxsIHNldCB0aGUgYWN0dWFs
IHZpZXdwb3J0IHdpZHRoIHRvIHRoYXQgbGVuZ3RoLiIvPgorICA8c2NyaXB0IHNyYz0iLi4vLi4v
Li4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIC8+Cisg
IDxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiIHR5
cGU9InRleHQvamF2YXNjcmlwdCIgLz4KKyAgPHN0eWxlIHR5cGU9InRleHQvY3NzIj48IVtDREFU
QVsKKyAgIGJvZHkgeyBtYXJnaW46IDA7IH0KKyAgIGh0bWwsIGJvZHksICN0ZXN0IHsgd2lkdGg6
IDEwMCU7IGhlaWdodDogMTAwJTsgfQorICAgI2xvZyB7IHBhZGRpbmc6IDFlbTsgZGlzcGxheTog
bm9uZTsgfQorICAgLyogUmVzZXQgdmlld3BvcnQgdmFsdWVzIHRvIGluaXRpYWwgdmFsdWVzIHRv
IGlnbm9yZSBVQSBzdHlsZXNoZWV0LiAqLworICAgQC13ZWJraXQtdmlld3BvcnQgeworICAgIHdp
ZHRoOiBhdXRvOworICAgIGhlaWdodDogYXV0bzsKKyAgICB6b29tOiBhdXRvOworICAgIG1pbi16
b29tOiBhdXRvOworICAgIG1heC16b29tOiBhdXRvOworICAgIHVzZXItem9vbTogem9vbTsKKyAg
ICBvcmllbnRhdGlvbjogYXV0bzsKKyAgICByZXNvbHV0aW9uOiBhdXRvOworICAgfQorICBdXT48
L3N0eWxlPgorICA8c3R5bGUgdHlwZT0idGV4dC9jc3MiPjwhW0NEQVRBWworICAgLyogQ1NTIGZv
ciB0aGUgdGVzdCBiZWxvdy4gKi8KKyAgIEAtd2Via2l0LXZpZXdwb3J0IHsgbWluLXdpZHRoOiAx
MDAwMHB4IH0KKyAgIC8qIFNldCByb290IGVsZW1lbnQgZm9udC1zaXplIHRvIHNvbWV0aGluZyBk
aWZmZXJlbnQgZnJvbSB0aGUgaW5pdGlhbAorICAgICAgZm9udC1zaXplIHRvIG1ha2Ugc3VyZSAn
cmVtJyBhbmQgJ2VtJyBmb3IgQHZpZXdwb3J0IGlzIGJhc2VkIG9uIHRoZQorICAgICAgaW5pdGlh
bCBmb250LXNpemUsIG5vdCB0aGUgcm9vdCBlbGVtZW50IGZvbnQtc2l6ZS4gKi8KKyAgIGh0bWwg
eyBmb250LXNpemU6IDJyZW07IH0KKyAgIGJvZHkgeyBmb250LXNpemU6IDAuNXJlbTsgfQorICBd
XT48L3N0eWxlPgorICA8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+PCFbQ0RBVEFbCisg
ICB2YXIgdGVzdCA9IGFzeW5jX3Rlc3QoIkNTUyBUZXN0OiBAdmlld3BvcnQgY29uc3RyYWluZWQg
LSBtaW4td2lkdGggMTAwMDBweCIpOworICAgd2luZG93Lm9ubG9hZCA9IGZ1bmN0aW9uKCl7CisK
KyAgICB2YXIgdGVzdFN0eWxlU2hlZXQgPSBkb2N1bWVudC5zdHlsZVNoZWV0cy5pdGVtKDEpOwor
CisgICAgLyogRGlzYWJsZSB0aGUgc3R5bGVzaGVldCB0aGF0IGNvbnRhaW5zIHRoZSBAdmlld3Bv
cnQgdG8gdGVzdC4gKi8KKyAgICB0ZXN0U3R5bGVTaGVldC5kaXNhYmxlZCA9IHRydWU7CisKKyAg
ICAvKiBJbml0aWFsaXplIGFuIG9iamVjdCB0byBzdG9yZSB2aWV3cG9ydCB2YWx1ZXMgdG8gYmUg
dXNlZCBieSB0aGUgdGVzdAorICAgICAgIGFzc2VydHMuICovCisgICAgdmFyIHZpZXdwb3J0ID0g
bmV3IE9iamVjdCgpOworCisgICAgLyogQW4gZWxlbWVudCB3aXRoIHRoZSBzYW1lIHNpemUgYXMg
dGhlIGluaXRpYWwgY29udGFpbmluZyBibG9jay4gKi8KKyAgICB2YXIgdGVzdEVsbSA9IGRvY3Vt
ZW50LmdldEVsZW1lbnRCeUlkKCJ0ZXN0Iik7CisKKyAgICAvKiBSZXRyaWV2ZSB0aGUgaW5pdGlh
bCB2aWV3cG9ydCB2YWx1ZXMgYmVmb3JlIGFwcGx5aW5nIHRoZSBAdmlld3BvcnQgdG8KKyAgICAg
ICB0ZXN0LiAqLworICAgIHZpZXdwb3J0LmluaXRpYWxXaWR0aCA9IHRlc3RFbG0ub2Zmc2V0V2lk
dGg7CisgICAgdmlld3BvcnQuaW5pdGlhbEhlaWdodCA9IHRlc3RFbG0ub2Zmc2V0SGVpZ2h0Owor
ICAgIHZpZXdwb3J0LmZvbnRTaXplID0gcGFyc2VJbnQoZ2V0Q29tcHV0ZWRTdHlsZSh0ZXN0RWxt
LCAiIikuZm9udFNpemUpOworCisgICAgLyogRW5hYmxlIHRoZSBzdHlsZXNoZWV0IHRoYXQgY29u
dGFpbnMgdGhlIEB2aWV3cG9ydCB0byB0ZXN0LiAqLworICAgIHRlc3RTdHlsZVNoZWV0LmRpc2Fi
bGVkID0gZmFsc2U7CisKKyAgICAvKiBSZXRyaWV2ZSB0aGUgYWN0dWFsIHZpZXdwb3J0IHZhbHVl
cyBmb3IgdGhlIHRlc3QuICovCisgICAgdmlld3BvcnQuYWN0dWFsV2lkdGggPSB0ZXN0RWxtLm9m
ZnNldFdpZHRoOworICAgIHZpZXdwb3J0LmFjdHVhbEhlaWdodCA9IHRlc3RFbG0ub2Zmc2V0SGVp
Z2h0OworICAgIHZpZXdwb3J0Lnpvb20gPSB2aWV3cG9ydC5pbml0aWFsV2lkdGggLyB3aW5kb3cu
aW5uZXJXaWR0aDsKKworICAgIC8qIENoZWNrIHZpZXdwb3J0IHZhbHVlcy4gKi8KKyAgICB0ZXN0
LnN0ZXAoZnVuY3Rpb24oKXsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyh2aWV3cG9ydC5hY3R1YWxX
aWR0aCwgMTAwMDApOworICAgIH0pOworCisgICAgLyogRmluaXNoZWQuIFNob3cgdGhlIHJlc3Vs
dHMuICovCisgICAgdGVzdC5kb25lKCk7CisgICAgdGVzdFN0eWxlU2hlZXQuZGlzYWJsZWQgPSB0
cnVlOworICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJsb2ciKS5zdHlsZS5kaXNwbGF5ID0g
ImJsb2NrIjsKKyAgIH0KKyAgXV0+PC9zY3JpcHQ+CisgPC9oZWFkPgorIDxib2R5PgorICA8ZGl2
IGlkPSJ0ZXN0Ij4KKyAgIDxkaXYgaWQ9ImxvZyI+PC9kaXY+CisgIDwvZGl2PgorIDwvYm9keT4K
KzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2NzczMvZGV2aWNlLWFkYXB0L29wZXJh
L2NvbnN0cmFpbi0wMDUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvY3NzMy9kZXZpY2UtYWRh
cHQvb3BlcmEvY29uc3RyYWluLTAwNS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uODA4ZGRmMjkw
YjE3MjRiZWVjNDdkODFkMjBlYmE0YWFjNDhiMjQwMQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL2NzczMvZGV2aWNlLWFkYXB0L29wZXJhL2NvbnN0cmFpbi0wMDUtZXhwZWN0ZWQudHh0
CkBAIC0wLDAgKzEsMyBAQAorCitQQVNTIENTUyBUZXN0OiBAdmlld3BvcnQgY29uc3RyYWluZWQg
LSBtaW4td2lkdGggZ3JlYXRlciB0aGFuIG1heC13aWR0aC4gCisKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2NzczMvZGV2aWNlLWFkYXB0L29wZXJhL2NvbnN0cmFpbi0wMDUueGh0bWwgYi9MYXlv
dXRUZXN0cy9jc3MzL2RldmljZS1hZGFwdC9vcGVyYS9jb25zdHJhaW4tMDA1LnhodG1sCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLjFkNmJmNDZiZmUxOWEwZmNjMzBiM2M1YWVhZDlmOTA0N2RhMWFlNTAKLS0tIC9kZXYv
bnVsbAorKysgYi9MYXlvdXRUZXN0cy9jc3MzL2RldmljZS1hZGFwdC9vcGVyYS9jb25zdHJhaW4t
MDA1LnhodG1sCkBAIC0wLDAgKzEsODQgQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9
IlVURi04Ij8+Cis8IURPQ1RZUEUgaHRtbCBQVUJMSUMgIi0vL1czQy8vRFREIFhIVE1MIDEuMCBT
dHJpY3QvL0VOIiAiaHR0cDovL3d3dy53My5vcmcvVFIveGh0bWwxL0RURC94aHRtbDEtc3RyaWN0
LmR0ZCI+Cis8aHRtbCB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCI+CisgPGhl
YWQ+CisgIDx0aXRsZT5DU1MgVGVzdDogQHZpZXdwb3J0IGNvbnN0cmFpbmVkIC0gbWluLXdpZHRo
IGdyZWF0ZXIgdGhhbiBtYXgtd2lkdGguPC90aXRsZT4KKyAgPGxpbmsgcmVsPSJhdXRob3IiIHRp
dGxlPSJSdW5lIExpbGxlc3ZlZW4iIGhyZWY9Im1haWx0bzpydW5lQG9wZXJhLmNvbSIvPgorICA8
bGluayByZWw9ImhlbHAiIGhyZWY9Imh0dHA6Ly93d3cudzMub3JnL1RSL2Nzcy1kZXZpY2UtYWRh
cHQvI2NvbnN0cmFpbmluZy1wcm9jZWR1cmUiLz4KKyAgPG1ldGEgbmFtZT0iZmxhZ3MiIGNvbnRl
bnQ9InZpc3VhbCBzY3JvbGwgZG9tIiAvPgorICA8bWV0YSBuYW1lPSJhc3NlcnQiIGNvbnRlbnQ9
IklmIG1pbi13aWR0aCBpcyBncmVhdGVyIHRoYW4gbWF4LXdpZHRoLCBtaW4td2lkdGggd2lsbCBv
dmVycnVsZSBtYXgtd2lkdGguIi8+CisgIDxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMv
dGVzdGhhcm5lc3MuanMiIHR5cGU9InRleHQvamF2YXNjcmlwdCIgLz4KKyAgPHNjcmlwdCBzcmM9
Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyIgdHlwZT0idGV4dC9qYXZh
c2NyaXB0IiAvPgorICA8c3R5bGUgdHlwZT0idGV4dC9jc3MiPjwhW0NEQVRBWworICAgYm9keSB7
IG1hcmdpbjogMDsgfQorICAgaHRtbCwgYm9keSwgI3Rlc3QgeyB3aWR0aDogMTAwJTsgaGVpZ2h0
OiAxMDAlOyB9CisgICAjbG9nIHsgcGFkZGluZzogMWVtOyBkaXNwbGF5OiBub25lOyB9CisgICAv
KiBSZXNldCB2aWV3cG9ydCB2YWx1ZXMgdG8gaW5pdGlhbCB2YWx1ZXMgdG8gaWdub3JlIFVBIHN0
eWxlc2hlZXQuICovCisgICBALXdlYmtpdC12aWV3cG9ydCB7CisgICAgd2lkdGg6IGF1dG87Cisg
ICAgaGVpZ2h0OiBhdXRvOworICAgIHpvb206IGF1dG87CisgICAgbWluLXpvb206IGF1dG87Cisg
ICAgbWF4LXpvb206IGF1dG87CisgICAgdXNlci16b29tOiB6b29tOworICAgIG9yaWVudGF0aW9u
OiBhdXRvOworICAgIHJlc29sdXRpb246IGF1dG87CisgICB9CisgIF1dPjwvc3R5bGU+CisgIDxz
dHlsZSB0eXBlPSJ0ZXh0L2NzcyI+PCFbQ0RBVEFbCisgICAvKiBDU1MgZm9yIHRoZSB0ZXN0IGJl
bG93LiAqLworICAgQC13ZWJraXQtdmlld3BvcnQgeyBtaW4td2lkdGg6IDEwMDAwcHg7IG1heC13
aWR0aDogMjAwcHggfQorICAgLyogU2V0IHJvb3QgZWxlbWVudCBmb250LXNpemUgdG8gc29tZXRo
aW5nIGRpZmZlcmVudCBmcm9tIHRoZSBpbml0aWFsCisgICAgICBmb250LXNpemUgdG8gbWFrZSBz
dXJlICdyZW0nIGFuZCAnZW0nIGZvciBAdmlld3BvcnQgaXMgYmFzZWQgb24gdGhlCisgICAgICBp
bml0aWFsIGZvbnQtc2l6ZSwgbm90IHRoZSByb290IGVsZW1lbnQgZm9udC1zaXplLiAqLworICAg
aHRtbCB7IGZvbnQtc2l6ZTogMnJlbTsgfQorICAgYm9keSB7IGZvbnQtc2l6ZTogMC41cmVtOyB9
CisgIF1dPjwvc3R5bGU+CisgIDxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij48IVtDREFU
QVsKKyAgIHZhciB0ZXN0ID0gYXN5bmNfdGVzdCgiQ1NTIFRlc3Q6IEB2aWV3cG9ydCBjb25zdHJh
aW5lZCAtIG1pbi13aWR0aCBncmVhdGVyIHRoYW4gbWF4LXdpZHRoLiIpOworICAgd2luZG93Lm9u
bG9hZCA9IGZ1bmN0aW9uKCl7CisKKyAgICB2YXIgdGVzdFN0eWxlU2hlZXQgPSBkb2N1bWVudC5z
dHlsZVNoZWV0cy5pdGVtKDEpOworCisgICAgLyogRGlzYWJsZSB0aGUgc3R5bGVzaGVldCB0aGF0
IGNvbnRhaW5zIHRoZSBAdmlld3BvcnQgdG8gdGVzdC4gKi8KKyAgICB0ZXN0U3R5bGVTaGVldC5k
aXNhYmxlZCA9IHRydWU7CisKKyAgICAvKiBJbml0aWFsaXplIGFuIG9iamVjdCB0byBzdG9yZSB2
aWV3cG9ydCB2YWx1ZXMgdG8gYmUgdXNlZCBieSB0aGUgdGVzdAorICAgICAgIGFzc2VydHMuICov
CisgICAgdmFyIHZpZXdwb3J0ID0gbmV3IE9iamVjdCgpOworCisgICAgLyogQW4gZWxlbWVudCB3
aXRoIHRoZSBzYW1lIHNpemUgYXMgdGhlIGluaXRpYWwgY29udGFpbmluZyBibG9jay4gKi8KKyAg
ICB2YXIgdGVzdEVsbSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0ZXN0Iik7CisKKyAgICAv
KiBSZXRyaWV2ZSB0aGUgaW5pdGlhbCB2aWV3cG9ydCB2YWx1ZXMgYmVmb3JlIGFwcGx5aW5nIHRo
ZSBAdmlld3BvcnQgdG8KKyAgICAgICB0ZXN0LiAqLworICAgIHZpZXdwb3J0LmluaXRpYWxXaWR0
aCA9IHRlc3RFbG0ub2Zmc2V0V2lkdGg7CisgICAgdmlld3BvcnQuaW5pdGlhbEhlaWdodCA9IHRl
c3RFbG0ub2Zmc2V0SGVpZ2h0OworICAgIHZpZXdwb3J0LmZvbnRTaXplID0gcGFyc2VJbnQoZ2V0
Q29tcHV0ZWRTdHlsZSh0ZXN0RWxtLCAiIikuZm9udFNpemUpOworCisgICAgLyogRW5hYmxlIHRo
ZSBzdHlsZXNoZWV0IHRoYXQgY29udGFpbnMgdGhlIEB2aWV3cG9ydCB0byB0ZXN0LiAqLworICAg
IHRlc3RTdHlsZVNoZWV0LmRpc2FibGVkID0gZmFsc2U7CisKKyAgICAvKiBSZXRyaWV2ZSB0aGUg
YWN0dWFsIHZpZXdwb3J0IHZhbHVlcyBmb3IgdGhlIHRlc3QuICovCisgICAgdmlld3BvcnQuYWN0
dWFsV2lkdGggPSB0ZXN0RWxtLm9mZnNldFdpZHRoOworICAgIHZpZXdwb3J0LmFjdHVhbEhlaWdo
dCA9IHRlc3RFbG0ub2Zmc2V0SGVpZ2h0OworICAgIHZpZXdwb3J0Lnpvb20gPSB2aWV3cG9ydC5p
bml0aWFsV2lkdGggLyB3aW5kb3cuaW5uZXJXaWR0aDsKKworICAgIC8qIENoZWNrIHZpZXdwb3J0
IHZhbHVlcy4gKi8KKyAgICB0ZXN0LnN0ZXAoZnVuY3Rpb24oKXsKKyAgICAgICAgYXNzZXJ0X2Vx
dWFscyh2aWV3cG9ydC5hY3R1YWxXaWR0aCwgMTAwMDApOworICAgIH0pOworCisgICAgLyogRmlu
aXNoZWQuIFNob3cgdGhlIHJlc3VsdHMuICovCisgICAgdGVzdC5kb25lKCk7CisgICAgdGVzdFN0
eWxlU2hlZXQuZGlzYWJsZWQgPSB0cnVlOworICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJs
b2ciKS5zdHlsZS5kaXNwbGF5ID0gImJsb2NrIjsKKyAgIH0KKyAgXV0+PC9zY3JpcHQ+CisgPC9o
ZWFkPgorIDxib2R5PgorICA8ZGl2IGlkPSJ0ZXN0Ij4KKyAgIDxkaXYgaWQ9ImxvZyI+PC9kaXY+
CisgIDwvZGl2PgorIDwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Nz
czMvZGV2aWNlLWFkYXB0L29wZXJhL2NvbnN0cmFpbi0wMDYtZXhwZWN0ZWQudHh0IGIvTGF5b3V0
VGVzdHMvY3NzMy9kZXZpY2UtYWRhcHQvb3BlcmEvY29uc3RyYWluLTAwNi1leHBlY3RlZC50eHQK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uYjAzZDNkZTA4NTU3MmZmMjgzOTVmNTI0NWZmODUyNjhiOTEyYzMzMQotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2NzczMvZGV2aWNlLWFkYXB0L29wZXJhL2NvbnN0
cmFpbi0wMDYtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMyBAQAorCitQQVNTIENTUyBUZXN0OiBA
dmlld3BvcnQgY29uc3RyYWluZWQgLSB3aWR0aCAyMDAlIAorCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9jc3MzL2RldmljZS1hZGFwdC9vcGVyYS9jb25zdHJhaW4tMDA2LnhodG1sIGIvTGF5b3V0
VGVzdHMvY3NzMy9kZXZpY2UtYWRhcHQvb3BlcmEvY29uc3RyYWluLTAwNi54aHRtbApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi40OWU3MTRkYmMwM2YyMjU3ZGQzOThlNzYwOWFhNzczNDk2OGI0N2JmCi0tLSAvZGV2L251
bGwKKysrIGIvTGF5b3V0VGVzdHMvY3NzMy9kZXZpY2UtYWRhcHQvb3BlcmEvY29uc3RyYWluLTAw
Ni54aHRtbApAQCAtMCwwICsxLDg0IEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJV
VEYtOCI/PgorPCFET0NUWVBFIGh0bWwgUFVCTElDICItLy9XM0MvL0RURCBYSFRNTCAxLjAgU3Ry
aWN0Ly9FTiIgImh0dHA6Ly93d3cudzMub3JnL1RSL3hodG1sMS9EVEQveGh0bWwxLXN0cmljdC5k
dGQiPgorPGh0bWwgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwiPgorIDxoZWFk
PgorICA8dGl0bGU+Q1NTIFRlc3Q6IEB2aWV3cG9ydCBjb25zdHJhaW5lZCAtIHdpZHRoIDIwMCU8
L3RpdGxlPgorICA8bGluayByZWw9ImF1dGhvciIgdGl0bGU9IlJ1bmUgTGlsbGVzdmVlbiIgaHJl
Zj0ibWFpbHRvOnJ1bmVAb3BlcmEuY29tIi8+CisgIDxsaW5rIHJlbD0iaGVscCIgaHJlZj0iaHR0
cDovL3d3dy53My5vcmcvVFIvY3NzLWRldmljZS1hZGFwdC8jY29uc3RyYWluaW5nLXByb2NlZHVy
ZSIvPgorICA8bWV0YSBuYW1lPSJmbGFncyIgY29udGVudD0idmlzdWFsIHNjcm9sbCBkb20iIC8+
CisgIDxtZXRhIG5hbWU9ImFzc2VydCIgY29udGVudD0iU2V0dGluZyB3aWR0aCBpbiBAdmlld3Bv
cnQgdG8gMjAwJSB3aWxsIHNldCB0aGUgYWN0dWFsIHZpZXdwb3J0IHdpZHRoIHRvIHR3aWNlIHRo
ZSBpbml0aWFsLXdpZHRoLiIvPgorICA8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rl
c3RoYXJuZXNzLmpzIiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIC8+CisgIDxzY3JpcHQgc3JjPSIu
Li8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiIHR5cGU9InRleHQvamF2YXNj
cmlwdCIgLz4KKyAgPHN0eWxlIHR5cGU9InRleHQvY3NzIj48IVtDREFUQVsKKyAgIGJvZHkgeyBt
YXJnaW46IDA7IH0KKyAgIGh0bWwsIGJvZHksICN0ZXN0IHsgd2lkdGg6IDEwMCU7IGhlaWdodDog
MTAwJTsgfQorICAgI2xvZyB7IHBhZGRpbmc6IDFlbTsgZGlzcGxheTogbm9uZTsgfQorICAgLyog
UmVzZXQgdmlld3BvcnQgdmFsdWVzIHRvIGluaXRpYWwgdmFsdWVzIHRvIGlnbm9yZSBVQSBzdHls
ZXNoZWV0LiAqLworICAgQC13ZWJraXQtdmlld3BvcnQgeworICAgIHdpZHRoOiBhdXRvOworICAg
IGhlaWdodDogYXV0bzsKKyAgICB6b29tOiBhdXRvOworICAgIG1pbi16b29tOiBhdXRvOworICAg
IG1heC16b29tOiBhdXRvOworICAgIHVzZXItem9vbTogem9vbTsKKyAgICBvcmllbnRhdGlvbjog
YXV0bzsKKyAgICByZXNvbHV0aW9uOiBhdXRvOworICAgfQorICBdXT48L3N0eWxlPgorICA8c3R5
bGUgdHlwZT0idGV4dC9jc3MiPjwhW0NEQVRBWworICAgLyogQ1NTIGZvciB0aGUgdGVzdCBiZWxv
dy4gKi8KKyAgIEAtd2Via2l0LXZpZXdwb3J0IHsgd2lkdGg6IDIwMCUgfQorICAgLyogU2V0IHJv
b3QgZWxlbWVudCBmb250LXNpemUgdG8gc29tZXRoaW5nIGRpZmZlcmVudCBmcm9tIHRoZSBpbml0
aWFsCisgICAgICBmb250LXNpemUgdG8gbWFrZSBzdXJlICdyZW0nIGFuZCAnZW0nIGZvciBAdmll
d3BvcnQgaXMgYmFzZWQgb24gdGhlCisgICAgICBpbml0aWFsIGZvbnQtc2l6ZSwgbm90IHRoZSBy
b290IGVsZW1lbnQgZm9udC1zaXplLiAqLworICAgaHRtbCB7IGZvbnQtc2l6ZTogMnJlbTsgfQor
ICAgYm9keSB7IGZvbnQtc2l6ZTogMC41cmVtOyB9CisgIF1dPjwvc3R5bGU+CisgIDxzY3JpcHQg
dHlwZT0idGV4dC9qYXZhc2NyaXB0Ij48IVtDREFUQVsKKyAgIHZhciB0ZXN0ID0gYXN5bmNfdGVz
dCgiQ1NTIFRlc3Q6IEB2aWV3cG9ydCBjb25zdHJhaW5lZCAtIHdpZHRoIDIwMCUiKTsKKyAgIHdp
bmRvdy5vbmxvYWQgPSBmdW5jdGlvbigpeworCisgICAgdmFyIHRlc3RTdHlsZVNoZWV0ID0gZG9j
dW1lbnQuc3R5bGVTaGVldHMuaXRlbSgxKTsKKworICAgIC8qIERpc2FibGUgdGhlIHN0eWxlc2hl
ZXQgdGhhdCBjb250YWlucyB0aGUgQHZpZXdwb3J0IHRvIHRlc3QuICovCisgICAgdGVzdFN0eWxl
U2hlZXQuZGlzYWJsZWQgPSB0cnVlOworCisgICAgLyogSW5pdGlhbGl6ZSBhbiBvYmplY3QgdG8g
c3RvcmUgdmlld3BvcnQgdmFsdWVzIHRvIGJlIHVzZWQgYnkgdGhlIHRlc3QKKyAgICAgICBhc3Nl
cnRzLiAqLworICAgIHZhciB2aWV3cG9ydCA9IG5ldyBPYmplY3QoKTsKKworICAgIC8qIEFuIGVs
ZW1lbnQgd2l0aCB0aGUgc2FtZSBzaXplIGFzIHRoZSBpbml0aWFsIGNvbnRhaW5pbmcgYmxvY2su
ICovCisgICAgdmFyIHRlc3RFbG0gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidGVzdCIpOwor
CisgICAgLyogUmV0cmlldmUgdGhlIGluaXRpYWwgdmlld3BvcnQgdmFsdWVzIGJlZm9yZSBhcHBs
eWluZyB0aGUgQHZpZXdwb3J0IHRvCisgICAgICAgdGVzdC4gKi8KKyAgICB2aWV3cG9ydC5pbml0
aWFsV2lkdGggPSB0ZXN0RWxtLm9mZnNldFdpZHRoOworICAgIHZpZXdwb3J0LmluaXRpYWxIZWln
aHQgPSB0ZXN0RWxtLm9mZnNldEhlaWdodDsKKyAgICB2aWV3cG9ydC5mb250U2l6ZSA9IHBhcnNl
SW50KGdldENvbXB1dGVkU3R5bGUodGVzdEVsbSwgIiIpLmZvbnRTaXplKTsKKworICAgIC8qIEVu
YWJsZSB0aGUgc3R5bGVzaGVldCB0aGF0IGNvbnRhaW5zIHRoZSBAdmlld3BvcnQgdG8gdGVzdC4g
Ki8KKyAgICB0ZXN0U3R5bGVTaGVldC5kaXNhYmxlZCA9IGZhbHNlOworCisgICAgLyogUmV0cmll
dmUgdGhlIGFjdHVhbCB2aWV3cG9ydCB2YWx1ZXMgZm9yIHRoZSB0ZXN0LiAqLworICAgIHZpZXdw
b3J0LmFjdHVhbFdpZHRoID0gdGVzdEVsbS5vZmZzZXRXaWR0aDsKKyAgICB2aWV3cG9ydC5hY3R1
YWxIZWlnaHQgPSB0ZXN0RWxtLm9mZnNldEhlaWdodDsKKyAgICB2aWV3cG9ydC56b29tID0gdmll
d3BvcnQuaW5pdGlhbFdpZHRoIC8gd2luZG93LmlubmVyV2lkdGg7CisKKyAgICAvKiBDaGVjayB2
aWV3cG9ydCB2YWx1ZXMuICovCisgICAgdGVzdC5zdGVwKGZ1bmN0aW9uKCl7CisgICAgICAgIGFz
c2VydF9lcXVhbHModmlld3BvcnQuYWN0dWFsV2lkdGgsIDIqdmlld3BvcnQuaW5pdGlhbFdpZHRo
KTsKKyAgICB9KTsKKworICAgIC8qIEZpbmlzaGVkLiBTaG93IHRoZSByZXN1bHRzLiAqLworICAg
IHRlc3QuZG9uZSgpOworICAgIHRlc3RTdHlsZVNoZWV0LmRpc2FibGVkID0gdHJ1ZTsKKyAgICBk
b2N1bWVudC5nZXRFbGVtZW50QnlJZCgibG9nIikuc3R5bGUuZGlzcGxheSA9ICJibG9jayI7Cisg
ICB9CisgIF1dPjwvc2NyaXB0PgorIDwvaGVhZD4KKyA8Ym9keT4KKyAgPGRpdiBpZD0idGVzdCI+
CisgICA8ZGl2IGlkPSJsb2ciPjwvZGl2PgorICA8L2Rpdj4KKyA8L2JvZHk+Cis8L2h0bWw+CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9jc3MzL2RldmljZS1hZGFwdC9vcGVyYS9jb25zdHJhaW4t
MDA3LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2NzczMvZGV2aWNlLWFkYXB0L29wZXJhL2Nv
bnN0cmFpbi0wMDctZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmYzNDUwNTE4ZDlmM2QxOGQ4OTM1
YjZiNWEyYjhiZjA4NGI0OWQ1OTcKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9jc3Mz
L2RldmljZS1hZGFwdC9vcGVyYS9jb25zdHJhaW4tMDA3LWV4cGVjdGVkLnR4dApAQCAtMCwwICsx
LDMgQEAKKworUEFTUyBDU1MgVGVzdDogQHZpZXdwb3J0IGNvbnN0cmFpbmVkIC0gd2lkdGggNTAl
IAorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9jc3MzL2RldmljZS1hZGFwdC9vcGVyYS9jb25z
dHJhaW4tMDA3LnhodG1sIGIvTGF5b3V0VGVzdHMvY3NzMy9kZXZpY2UtYWRhcHQvb3BlcmEvY29u
c3RyYWluLTAwNy54aHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hNmUwNjk3YTBiZjFlNzk2NWFiNTYwNjI4NTZh
MjhmYzFhYTI4N2VlCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvY3NzMy9kZXZpY2Ut
YWRhcHQvb3BlcmEvY29uc3RyYWluLTAwNy54aHRtbApAQCAtMCwwICsxLDg0IEBACis8P3htbCB2
ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCI/PgorPCFET0NUWVBFIGh0bWwgUFVCTElDICIt
Ly9XM0MvL0RURCBYSFRNTCAxLjAgU3RyaWN0Ly9FTiIgImh0dHA6Ly93d3cudzMub3JnL1RSL3ho
dG1sMS9EVEQveGh0bWwxLXN0cmljdC5kdGQiPgorPGh0bWwgeG1sbnM9Imh0dHA6Ly93d3cudzMu
b3JnLzE5OTkveGh0bWwiPgorIDxoZWFkPgorICA8dGl0bGU+Q1NTIFRlc3Q6IEB2aWV3cG9ydCBj
b25zdHJhaW5lZCAtIHdpZHRoIDUwJTwvdGl0bGU+CisgIDxsaW5rIHJlbD0iYXV0aG9yIiB0aXRs
ZT0iUnVuZSBMaWxsZXN2ZWVuIiBocmVmPSJtYWlsdG86cnVuZUBvcGVyYS5jb20iLz4KKyAgPGxp
bmsgcmVsPSJoZWxwIiBocmVmPSJodHRwOi8vd3d3LnczLm9yZy9UUi9jc3MtZGV2aWNlLWFkYXB0
LyNjb25zdHJhaW5pbmctcHJvY2VkdXJlIi8+CisgIDxtZXRhIG5hbWU9ImZsYWdzIiBjb250ZW50
PSJ2aXN1YWwgc2Nyb2xsIGRvbSIgLz4KKyAgPG1ldGEgbmFtZT0iYXNzZXJ0IiBjb250ZW50PSJT
ZXR0aW5nIHdpZHRoIGluIEB2aWV3cG9ydCB0byA1MCUgd2lsbCBzZXQgdGhlIGFjdHVhbCB2aWV3
cG9ydCB3aWR0aCB0byBoYWxmIHRoZSBpbml0aWFsLXdpZHRoLiIvPgorICA8c2NyaXB0IHNyYz0i
Li4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQi
IC8+CisgIDxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQu
anMiIHR5cGU9InRleHQvamF2YXNjcmlwdCIgLz4KKyAgPHN0eWxlIHR5cGU9InRleHQvY3NzIj48
IVtDREFUQVsKKyAgIGJvZHkgeyBtYXJnaW46IDA7IH0KKyAgIGh0bWwsIGJvZHksICN0ZXN0IHsg
d2lkdGg6IDEwMCU7IGhlaWdodDogMTAwJTsgfQorICAgI2xvZyB7IHBhZGRpbmc6IDFlbTsgZGlz
cGxheTogbm9uZTsgfQorICAgLyogUmVzZXQgdmlld3BvcnQgdmFsdWVzIHRvIGluaXRpYWwgdmFs
dWVzIHRvIGlnbm9yZSBVQSBzdHlsZXNoZWV0LiAqLworICAgQC13ZWJraXQtdmlld3BvcnQgewor
ICAgIHdpZHRoOiBhdXRvOworICAgIGhlaWdodDogYXV0bzsKKyAgICB6b29tOiBhdXRvOworICAg
IG1pbi16b29tOiBhdXRvOworICAgIG1heC16b29tOiBhdXRvOworICAgIHVzZXItem9vbTogem9v
bTsKKyAgICBvcmllbnRhdGlvbjogYXV0bzsKKyAgICByZXNvbHV0aW9uOiBhdXRvOworICAgfQor
ICBdXT48L3N0eWxlPgorICA8c3R5bGUgdHlwZT0idGV4dC9jc3MiPjwhW0NEQVRBWworICAgLyog
Q1NTIGZvciB0aGUgdGVzdCBiZWxvdy4gKi8KKyAgIEAtd2Via2l0LXZpZXdwb3J0IHsgd2lkdGg6
IDUwJSB9CisgICAvKiBTZXQgcm9vdCBlbGVtZW50IGZvbnQtc2l6ZSB0byBzb21ldGhpbmcgZGlm
ZmVyZW50IGZyb20gdGhlIGluaXRpYWwKKyAgICAgIGZvbnQtc2l6ZSB0byBtYWtlIHN1cmUgJ3Jl
bScgYW5kICdlbScgZm9yIEB2aWV3cG9ydCBpcyBiYXNlZCBvbiB0aGUKKyAgICAgIGluaXRpYWwg
Zm9udC1zaXplLCBub3QgdGhlIHJvb3QgZWxlbWVudCBmb250LXNpemUuICovCisgICBodG1sIHsg
Zm9udC1zaXplOiAycmVtOyB9CisgICBib2R5IHsgZm9udC1zaXplOiAwLjVyZW07IH0KKyAgXV0+
PC9zdHlsZT4KKyAgPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPjwhW0NEQVRBWworICAg
dmFyIHRlc3QgPSBhc3luY190ZXN0KCJDU1MgVGVzdDogQHZpZXdwb3J0IGNvbnN0cmFpbmVkIC0g
d2lkdGggNTAlIik7CisgICB3aW5kb3cub25sb2FkID0gZnVuY3Rpb24oKXsKKworICAgIHZhciB0
ZXN0U3R5bGVTaGVldCA9IGRvY3VtZW50LnN0eWxlU2hlZXRzLml0ZW0oMSk7CisKKyAgICAvKiBE
aXNhYmxlIHRoZSBzdHlsZXNoZWV0IHRoYXQgY29udGFpbnMgdGhlIEB2aWV3cG9ydCB0byB0ZXN0
LiAqLworICAgIHRlc3RTdHlsZVNoZWV0LmRpc2FibGVkID0gdHJ1ZTsKKworICAgIC8qIEluaXRp
YWxpemUgYW4gb2JqZWN0IHRvIHN0b3JlIHZpZXdwb3J0IHZhbHVlcyB0byBiZSB1c2VkIGJ5IHRo
ZSB0ZXN0CisgICAgICAgYXNzZXJ0cy4gKi8KKyAgICB2YXIgdmlld3BvcnQgPSBuZXcgT2JqZWN0
KCk7CisKKyAgICAvKiBBbiBlbGVtZW50IHdpdGggdGhlIHNhbWUgc2l6ZSBhcyB0aGUgaW5pdGlh
bCBjb250YWluaW5nIGJsb2NrLiAqLworICAgIHZhciB0ZXN0RWxtID0gZG9jdW1lbnQuZ2V0RWxl
bWVudEJ5SWQoInRlc3QiKTsKKworICAgIC8qIFJldHJpZXZlIHRoZSBpbml0aWFsIHZpZXdwb3J0
IHZhbHVlcyBiZWZvcmUgYXBwbHlpbmcgdGhlIEB2aWV3cG9ydCB0bworICAgICAgIHRlc3QuICov
CisgICAgdmlld3BvcnQuaW5pdGlhbFdpZHRoID0gdGVzdEVsbS5vZmZzZXRXaWR0aDsKKyAgICB2
aWV3cG9ydC5pbml0aWFsSGVpZ2h0ID0gdGVzdEVsbS5vZmZzZXRIZWlnaHQ7CisgICAgdmlld3Bv
cnQuZm9udFNpemUgPSBwYXJzZUludChnZXRDb21wdXRlZFN0eWxlKHRlc3RFbG0sICIiKS5mb250
U2l6ZSk7CisKKyAgICAvKiBFbmFibGUgdGhlIHN0eWxlc2hlZXQgdGhhdCBjb250YWlucyB0aGUg
QHZpZXdwb3J0IHRvIHRlc3QuICovCisgICAgdGVzdFN0eWxlU2hlZXQuZGlzYWJsZWQgPSBmYWxz
ZTsKKworICAgIC8qIFJldHJpZXZlIHRoZSBhY3R1YWwgdmlld3BvcnQgdmFsdWVzIGZvciB0aGUg
dGVzdC4gKi8KKyAgICB2aWV3cG9ydC5hY3R1YWxXaWR0aCA9IHRlc3RFbG0ub2Zmc2V0V2lkdGg7
CisgICAgdmlld3BvcnQuYWN0dWFsSGVpZ2h0ID0gdGVzdEVsbS5vZmZzZXRIZWlnaHQ7CisgICAg
dmlld3BvcnQuem9vbSA9IHZpZXdwb3J0LmluaXRpYWxXaWR0aCAvIHdpbmRvdy5pbm5lcldpZHRo
OworCisgICAgLyogQ2hlY2sgdmlld3BvcnQgdmFsdWVzLiAqLworICAgIHRlc3Quc3RlcChmdW5j
dGlvbigpeworICAgICAgICBhc3NlcnRfZXF1YWxzKHZpZXdwb3J0LmFjdHVhbFdpZHRoLCBNYXRo
LmZsb29yKHZpZXdwb3J0LmluaXRpYWxXaWR0aC8yKSk7CisgICAgfSk7CisKKyAgICAvKiBGaW5p
c2hlZC4gU2hvdyB0aGUgcmVzdWx0cy4gKi8KKyAgICB0ZXN0LmRvbmUoKTsKKyAgICB0ZXN0U3R5
bGVTaGVldC5kaXNhYmxlZCA9IHRydWU7CisgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImxv
ZyIpLnN0eWxlLmRpc3BsYXkgPSAiYmxvY2siOworICAgfQorICBdXT48L3NjcmlwdD4KKyA8L2hl
YWQ+CisgPGJvZHk+CisgIDxkaXYgaWQ9InRlc3QiPgorICAgPGRpdiBpZD0ibG9nIj48L2Rpdj4K
KyAgPC9kaXY+CisgPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvY3Nz
My9kZXZpY2UtYWRhcHQvb3BlcmEvY29uc3RyYWluLTAwOC1leHBlY3RlZC50eHQgYi9MYXlvdXRU
ZXN0cy9jc3MzL2RldmljZS1hZGFwdC9vcGVyYS9jb25zdHJhaW4tMDA4LWV4cGVjdGVkLnR4dApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi44ZjJlYzc0ODQ2Njc4ZGY2NmQ3ZmQ4NGM1NTE2NjVlZTkwZmE2MjY5Ci0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvY3NzMy9kZXZpY2UtYWRhcHQvb3BlcmEvY29uc3Ry
YWluLTAwOC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwzIEBACisKK1BBU1MgQ1NTIFRlc3Q6IEB2
aWV3cG9ydCBjb25zdHJhaW5lZCAtIG1pbi16b29tIGdyZWF0ZXIgdGhhbiBtYXgtem9vbSAKKwpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvY3NzMy9kZXZpY2UtYWRhcHQvb3BlcmEvY29uc3RyYWlu
LTAwOC54aHRtbCBiL0xheW91dFRlc3RzL2NzczMvZGV2aWNlLWFkYXB0L29wZXJhL2NvbnN0cmFp
bi0wMDgueGh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZWE5ZTM2YTQzYWI0ZGY5NjIxYWY4MzE5YzVkMWZkYWI2
ZDBlNDQ4MwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2NzczMvZGV2aWNlLWFkYXB0
L29wZXJhL2NvbnN0cmFpbi0wMDgueGh0bWwKQEAgLTAsMCArMSw4NCBAQAorPD94bWwgdmVyc2lv
bj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KKzwhRE9DVFlQRSBodG1sIFBVQkxJQyAiLS8vVzND
Ly9EVEQgWEhUTUwgMS4wIFN0cmljdC8vRU4iICJodHRwOi8vd3d3LnczLm9yZy9UUi94aHRtbDEv
RFREL3hodG1sMS1zdHJpY3QuZHRkIj4KKzxodG1sIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8x
OTk5L3hodG1sIj4KKyA8aGVhZD4KKyAgPHRpdGxlPkNTUyBUZXN0OiBAdmlld3BvcnQgY29uc3Ry
YWluZWQgLSBtaW4tem9vbSBncmVhdGVyIHRoYW4gbWF4LXpvb208L3RpdGxlPgorICA8bGluayBy
ZWw9ImF1dGhvciIgdGl0bGU9IlJ1bmUgTGlsbGVzdmVlbiIgaHJlZj0ibWFpbHRvOnJ1bmVAb3Bl
cmEuY29tIi8+CisgIDxsaW5rIHJlbD0iaGVscCIgaHJlZj0iaHR0cDovL3d3dy53My5vcmcvVFIv
Y3NzLWRldmljZS1hZGFwdC8jY29uc3RyYWluaW5nLXByb2NlZHVyZSIvPgorICA8bWV0YSBuYW1l
PSJmbGFncyIgY29udGVudD0idmlzdWFsIHNjcm9sbCBkb20iIC8+CisgIDxtZXRhIG5hbWU9ImFz
c2VydCIgY29udGVudD0iSWYgbWluLXpvb20gaXMgZ3JlYXRlciB0aGFuIG1heC16b29tLCBtaW4t
em9vbSB3aWxsIG92ZXJydWxlIG1heC16b29tLiIvPgorICA8c2NyaXB0IHNyYz0iLi4vLi4vLi4v
cmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIC8+CisgIDxz
Y3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiIHR5cGU9
InRleHQvamF2YXNjcmlwdCIgLz4KKyAgPHN0eWxlIHR5cGU9InRleHQvY3NzIj48IVtDREFUQVsK
KyAgIGJvZHkgeyBtYXJnaW46IDA7IH0KKyAgIGh0bWwsIGJvZHksICN0ZXN0IHsgd2lkdGg6IDEw
MCU7IGhlaWdodDogMTAwJTsgfQorICAgI2xvZyB7IHBhZGRpbmc6IDFlbTsgZGlzcGxheTogbm9u
ZTsgfQorICAgLyogUmVzZXQgdmlld3BvcnQgdmFsdWVzIHRvIGluaXRpYWwgdmFsdWVzIHRvIGln
bm9yZSBVQSBzdHlsZXNoZWV0LiAqLworICAgQC13ZWJraXQtdmlld3BvcnQgeworICAgIHdpZHRo
OiBhdXRvOworICAgIGhlaWdodDogYXV0bzsKKyAgICB6b29tOiBhdXRvOworICAgIG1pbi16b29t
OiBhdXRvOworICAgIG1heC16b29tOiBhdXRvOworICAgIHVzZXItem9vbTogem9vbTsKKyAgICBv
cmllbnRhdGlvbjogYXV0bzsKKyAgICByZXNvbHV0aW9uOiBhdXRvOworICAgfQorICBdXT48L3N0
eWxlPgorICA8c3R5bGUgdHlwZT0idGV4dC9jc3MiPjwhW0NEQVRBWworICAgLyogQ1NTIGZvciB0
aGUgdGVzdCBiZWxvdy4gKi8KKyAgIEAtd2Via2l0LXZpZXdwb3J0IHsgem9vbTogMTAwJTsgbWlu
LXpvb206IDIwMCU7IG1heC16b29tOiA1MCUgfQorICAgLyogU2V0IHJvb3QgZWxlbWVudCBmb250
LXNpemUgdG8gc29tZXRoaW5nIGRpZmZlcmVudCBmcm9tIHRoZSBpbml0aWFsCisgICAgICBmb250
LXNpemUgdG8gbWFrZSBzdXJlICdyZW0nIGFuZCAnZW0nIGZvciBAdmlld3BvcnQgaXMgYmFzZWQg
b24gdGhlCisgICAgICBpbml0aWFsIGZvbnQtc2l6ZSwgbm90IHRoZSByb290IGVsZW1lbnQgZm9u
dC1zaXplLiAqLworICAgaHRtbCB7IGZvbnQtc2l6ZTogMnJlbTsgfQorICAgYm9keSB7IGZvbnQt
c2l6ZTogMC41cmVtOyB9CisgIF1dPjwvc3R5bGU+CisgIDxzY3JpcHQgdHlwZT0idGV4dC9qYXZh
c2NyaXB0Ij48IVtDREFUQVsKKyAgIHZhciB0ZXN0ID0gYXN5bmNfdGVzdCgiQ1NTIFRlc3Q6IEB2
aWV3cG9ydCBjb25zdHJhaW5lZCAtIG1pbi16b29tIGdyZWF0ZXIgdGhhbiBtYXgtem9vbSIpOwor
ICAgd2luZG93Lm9ubG9hZCA9IGZ1bmN0aW9uKCl7CisKKyAgICB2YXIgdGVzdFN0eWxlU2hlZXQg
PSBkb2N1bWVudC5zdHlsZVNoZWV0cy5pdGVtKDEpOworCisgICAgLyogRGlzYWJsZSB0aGUgc3R5
bGVzaGVldCB0aGF0IGNvbnRhaW5zIHRoZSBAdmlld3BvcnQgdG8gdGVzdC4gKi8KKyAgICB0ZXN0
U3R5bGVTaGVldC5kaXNhYmxlZCA9IHRydWU7CisKKyAgICAvKiBJbml0aWFsaXplIGFuIG9iamVj
dCB0byBzdG9yZSB2aWV3cG9ydCB2YWx1ZXMgdG8gYmUgdXNlZCBieSB0aGUgdGVzdAorICAgICAg
IGFzc2VydHMuICovCisgICAgdmFyIHZpZXdwb3J0ID0gbmV3IE9iamVjdCgpOworCisgICAgLyog
QW4gZWxlbWVudCB3aXRoIHRoZSBzYW1lIHNpemUgYXMgdGhlIGluaXRpYWwgY29udGFpbmluZyBi
bG9jay4gKi8KKyAgICB2YXIgdGVzdEVsbSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0ZXN0
Iik7CisKKyAgICAvKiBSZXRyaWV2ZSB0aGUgaW5pdGlhbCB2aWV3cG9ydCB2YWx1ZXMgYmVmb3Jl
IGFwcGx5aW5nIHRoZSBAdmlld3BvcnQgdG8KKyAgICAgICB0ZXN0LiAqLworICAgIHZpZXdwb3J0
LmluaXRpYWxXaWR0aCA9IHRlc3RFbG0ub2Zmc2V0V2lkdGg7CisgICAgdmlld3BvcnQuaW5pdGlh
bEhlaWdodCA9IHRlc3RFbG0ub2Zmc2V0SGVpZ2h0OworICAgIHZpZXdwb3J0LmZvbnRTaXplID0g
cGFyc2VJbnQoZ2V0Q29tcHV0ZWRTdHlsZSh0ZXN0RWxtLCAiIikuZm9udFNpemUpOworCisgICAg
LyogRW5hYmxlIHRoZSBzdHlsZXNoZWV0IHRoYXQgY29udGFpbnMgdGhlIEB2aWV3cG9ydCB0byB0
ZXN0LiAqLworICAgIHRlc3RTdHlsZVNoZWV0LmRpc2FibGVkID0gZmFsc2U7CisKKyAgICAvKiBS
ZXRyaWV2ZSB0aGUgYWN0dWFsIHZpZXdwb3J0IHZhbHVlcyBmb3IgdGhlIHRlc3QuICovCisgICAg
dmlld3BvcnQuYWN0dWFsV2lkdGggPSB0ZXN0RWxtLm9mZnNldFdpZHRoOworICAgIHZpZXdwb3J0
LmFjdHVhbEhlaWdodCA9IHRlc3RFbG0ub2Zmc2V0SGVpZ2h0OworICAgIHZpZXdwb3J0Lnpvb20g
PSB2aWV3cG9ydC5pbml0aWFsV2lkdGggLyB3aW5kb3cuaW5uZXJXaWR0aDsKKworICAgIC8qIENo
ZWNrIHZpZXdwb3J0IHZhbHVlcy4gKi8KKyAgICB0ZXN0LnN0ZXAoZnVuY3Rpb24oKXsKKyAgICAg
ICAgYXNzZXJ0X2VxdWFscyh2aWV3cG9ydC5hY3R1YWxXaWR0aCwgTWF0aC5mbG9vcih2aWV3cG9y
dC5pbml0aWFsV2lkdGgvMikpOworICAgIH0pOworCisgICAgLyogRmluaXNoZWQuIFNob3cgdGhl
IHJlc3VsdHMuICovCisgICAgdGVzdC5kb25lKCk7CisgICAgdGVzdFN0eWxlU2hlZXQuZGlzYWJs
ZWQgPSB0cnVlOworICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJsb2ciKS5zdHlsZS5kaXNw
bGF5ID0gImJsb2NrIjsKKyAgIH0KKyAgXV0+PC9zY3JpcHQ+CisgPC9oZWFkPgorIDxib2R5Pgor
ICA8ZGl2IGlkPSJ0ZXN0Ij4KKyAgIDxkaXYgaWQ9ImxvZyI+PC9kaXY+CisgIDwvZGl2PgorIDwv
Ym9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2NzczMvZGV2aWNlLWFkYXB0
L29wZXJhL2NvbnN0cmFpbi0wMDktZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvY3NzMy9kZXZp
Y2UtYWRhcHQvb3BlcmEvY29uc3RyYWluLTAwOS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uODE3
MzMwYTA3ZGI3YTgxMzQ4YTcxOTBhM2MzYzNhZDU2M2Q0YTA0NQotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL2NzczMvZGV2aWNlLWFkYXB0L29wZXJhL2NvbnN0cmFpbi0wMDktZXhwZWN0
ZWQudHh0CkBAIC0wLDAgKzEsMyBAQAorCitQQVNTIENTUyBUZXN0OiBAdmlld3BvcnQgY29uc3Ry
YWluZWQgLSB3aWR0aCAyMGVtIAorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9jc3MzL2Rldmlj
ZS1hZGFwdC9vcGVyYS9jb25zdHJhaW4tMDA5LnhodG1sIGIvTGF5b3V0VGVzdHMvY3NzMy9kZXZp
Y2UtYWRhcHQvb3BlcmEvY29uc3RyYWluLTAwOS54aHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43NGY5OWQxZGVk
OTBmZTZiMjYxNTAwYWRlMmRlODIyYzZjMjc4ODljCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvY3NzMy9kZXZpY2UtYWRhcHQvb3BlcmEvY29uc3RyYWluLTAwOS54aHRtbApAQCAtMCww
ICsxLDg0IEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCI/PgorPCFET0NU
WVBFIGh0bWwgUFVCTElDICItLy9XM0MvL0RURCBYSFRNTCAxLjAgU3RyaWN0Ly9FTiIgImh0dHA6
Ly93d3cudzMub3JnL1RSL3hodG1sMS9EVEQveGh0bWwxLXN0cmljdC5kdGQiPgorPGh0bWwgeG1s
bnM9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwiPgorIDxoZWFkPgorICA8dGl0bGU+Q1NT
IFRlc3Q6IEB2aWV3cG9ydCBjb25zdHJhaW5lZCAtIHdpZHRoIDIwZW08L3RpdGxlPgorICA8bGlu
ayByZWw9ImF1dGhvciIgdGl0bGU9IlJ1bmUgTGlsbGVzdmVlbiIgaHJlZj0ibWFpbHRvOnJ1bmVA
b3BlcmEuY29tIi8+CisgIDxsaW5rIHJlbD0iaGVscCIgaHJlZj0iaHR0cDovL3d3dy53My5vcmcv
VFIvY3NzLWRldmljZS1hZGFwdC8jY29uc3RyYWluaW5nLXByb2NlZHVyZSIvPgorICA8bWV0YSBu
YW1lPSJmbGFncyIgY29udGVudD0idmlzdWFsIHNjcm9sbCBkb20iIC8+CisgIDxtZXRhIG5hbWU9
ImFzc2VydCIgY29udGVudD0iU2V0dGluZyB3aWR0aCBpbiBAdmlld3BvcnQgdG8gMjBlbSB3aWxs
IHNldCB0aGUgYWN0dWFsIHZpZXdwb3J0IHdpZHRoIHRvIDIwIHRpbWVzIHRoZSBpbml0aWFsIGZv
bnQtc2l6ZS4iLz4KKyAgPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVz
cy5qcyIgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiAvPgorICA8c2NyaXB0IHNyYz0iLi4vLi4vLi4v
cmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIC8+
CisgIDxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyI+PCFbQ0RBVEFbCisgICBib2R5IHsgbWFyZ2luOiAw
OyB9CisgICBodG1sLCBib2R5LCAjdGVzdCB7IHdpZHRoOiAxMDAlOyBoZWlnaHQ6IDEwMCU7IH0K
KyAgICNsb2cgeyBwYWRkaW5nOiAxZW07IGRpc3BsYXk6IG5vbmU7IH0KKyAgIC8qIFJlc2V0IHZp
ZXdwb3J0IHZhbHVlcyB0byBpbml0aWFsIHZhbHVlcyB0byBpZ25vcmUgVUEgc3R5bGVzaGVldC4g
Ki8KKyAgIEAtd2Via2l0LXZpZXdwb3J0IHsKKyAgICB3aWR0aDogYXV0bzsKKyAgICBoZWlnaHQ6
IGF1dG87CisgICAgem9vbTogYXV0bzsKKyAgICBtaW4tem9vbTogYXV0bzsKKyAgICBtYXgtem9v
bTogYXV0bzsKKyAgICB1c2VyLXpvb206IHpvb207CisgICAgb3JpZW50YXRpb246IGF1dG87Cisg
ICAgcmVzb2x1dGlvbjogYXV0bzsKKyAgIH0KKyAgXV0+PC9zdHlsZT4KKyAgPHN0eWxlIHR5cGU9
InRleHQvY3NzIj48IVtDREFUQVsKKyAgIC8qIENTUyBmb3IgdGhlIHRlc3QgYmVsb3cuICovCisg
ICBALXdlYmtpdC12aWV3cG9ydCB7IHdpZHRoOiAyMGVtIH0KKyAgIC8qIFNldCByb290IGVsZW1l
bnQgZm9udC1zaXplIHRvIHNvbWV0aGluZyBkaWZmZXJlbnQgZnJvbSB0aGUgaW5pdGlhbAorICAg
ICAgZm9udC1zaXplIHRvIG1ha2Ugc3VyZSAncmVtJyBhbmQgJ2VtJyBmb3IgQHZpZXdwb3J0IGlz
IGJhc2VkIG9uIHRoZQorICAgICAgaW5pdGlhbCBmb250LXNpemUsIG5vdCB0aGUgcm9vdCBlbGVt
ZW50IGZvbnQtc2l6ZS4gKi8KKyAgIGh0bWwgeyBmb250LXNpemU6IDJyZW07IH0KKyAgIGJvZHkg
eyBmb250LXNpemU6IDAuNXJlbTsgfQorICBdXT48L3N0eWxlPgorICA8c2NyaXB0IHR5cGU9InRl
eHQvamF2YXNjcmlwdCI+PCFbQ0RBVEFbCisgICB2YXIgdGVzdCA9IGFzeW5jX3Rlc3QoIkNTUyBU
ZXN0OiBAdmlld3BvcnQgY29uc3RyYWluZWQgLSB3aWR0aCAyMGVtIik7CisgICB3aW5kb3cub25s
b2FkID0gZnVuY3Rpb24oKXsKKworICAgIHZhciB0ZXN0U3R5bGVTaGVldCA9IGRvY3VtZW50LnN0
eWxlU2hlZXRzLml0ZW0oMSk7CisKKyAgICAvKiBEaXNhYmxlIHRoZSBzdHlsZXNoZWV0IHRoYXQg
Y29udGFpbnMgdGhlIEB2aWV3cG9ydCB0byB0ZXN0LiAqLworICAgIHRlc3RTdHlsZVNoZWV0LmRp
c2FibGVkID0gdHJ1ZTsKKworICAgIC8qIEluaXRpYWxpemUgYW4gb2JqZWN0IHRvIHN0b3JlIHZp
ZXdwb3J0IHZhbHVlcyB0byBiZSB1c2VkIGJ5IHRoZSB0ZXN0CisgICAgICAgYXNzZXJ0cy4gKi8K
KyAgICB2YXIgdmlld3BvcnQgPSBuZXcgT2JqZWN0KCk7CisKKyAgICAvKiBBbiBlbGVtZW50IHdp
dGggdGhlIHNhbWUgc2l6ZSBhcyB0aGUgaW5pdGlhbCBjb250YWluaW5nIGJsb2NrLiAqLworICAg
IHZhciB0ZXN0RWxtID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRlc3QiKTsKKworICAgIC8q
IFJldHJpZXZlIHRoZSBpbml0aWFsIHZpZXdwb3J0IHZhbHVlcyBiZWZvcmUgYXBwbHlpbmcgdGhl
IEB2aWV3cG9ydCB0bworICAgICAgIHRlc3QuICovCisgICAgdmlld3BvcnQuaW5pdGlhbFdpZHRo
ID0gdGVzdEVsbS5vZmZzZXRXaWR0aDsKKyAgICB2aWV3cG9ydC5pbml0aWFsSGVpZ2h0ID0gdGVz
dEVsbS5vZmZzZXRIZWlnaHQ7CisgICAgdmlld3BvcnQuZm9udFNpemUgPSBwYXJzZUludChnZXRD
b21wdXRlZFN0eWxlKHRlc3RFbG0sICIiKS5mb250U2l6ZSk7CisKKyAgICAvKiBFbmFibGUgdGhl
IHN0eWxlc2hlZXQgdGhhdCBjb250YWlucyB0aGUgQHZpZXdwb3J0IHRvIHRlc3QuICovCisgICAg
dGVzdFN0eWxlU2hlZXQuZGlzYWJsZWQgPSBmYWxzZTsKKworICAgIC8qIFJldHJpZXZlIHRoZSBh
Y3R1YWwgdmlld3BvcnQgdmFsdWVzIGZvciB0aGUgdGVzdC4gKi8KKyAgICB2aWV3cG9ydC5hY3R1
YWxXaWR0aCA9IHRlc3RFbG0ub2Zmc2V0V2lkdGg7CisgICAgdmlld3BvcnQuYWN0dWFsSGVpZ2h0
ID0gdGVzdEVsbS5vZmZzZXRIZWlnaHQ7CisgICAgdmlld3BvcnQuem9vbSA9IHZpZXdwb3J0Lmlu
aXRpYWxXaWR0aCAvIHdpbmRvdy5pbm5lcldpZHRoOworCisgICAgLyogQ2hlY2sgdmlld3BvcnQg
dmFsdWVzLiAqLworICAgIHRlc3Quc3RlcChmdW5jdGlvbigpeworICAgICAgICBhc3NlcnRfZXF1
YWxzKHZpZXdwb3J0LmFjdHVhbFdpZHRoLCAyMCp2aWV3cG9ydC5mb250U2l6ZSk7CisgICAgfSk7
CisKKyAgICAvKiBGaW5pc2hlZC4gU2hvdyB0aGUgcmVzdWx0cy4gKi8KKyAgICB0ZXN0LmRvbmUo
KTsKKyAgICB0ZXN0U3R5bGVTaGVldC5kaXNhYmxlZCA9IHRydWU7CisgICAgZG9jdW1lbnQuZ2V0
RWxlbWVudEJ5SWQoImxvZyIpLnN0eWxlLmRpc3BsYXkgPSAiYmxvY2siOworICAgfQorICBdXT48
L3NjcmlwdD4KKyA8L2hlYWQ+CisgPGJvZHk+CisgIDxkaXYgaWQ9InRlc3QiPgorICAgPGRpdiBp
ZD0ibG9nIj48L2Rpdj4KKyAgPC9kaXY+CisgPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvY3NzMy9kZXZpY2UtYWRhcHQvb3BlcmEvY29uc3RyYWluLTAxMC1leHBlY3Rl
ZC50eHQgYi9MYXlvdXRUZXN0cy9jc3MzL2RldmljZS1hZGFwdC9vcGVyYS9jb25zdHJhaW4tMDEw
LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40MTMyNjRhOWZiZGQ2ZDNhYzRmYTliZmVlY2Y2NDU0
NGZiNGQyMmNjCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvY3NzMy9kZXZpY2UtYWRh
cHQvb3BlcmEvY29uc3RyYWluLTAxMC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwzIEBACisKK1BB
U1MgQ1NTIFRlc3Q6IEB2aWV3cG9ydCBjb25zdHJhaW5lZCAtIHdpZHRoIDIwcmVtIAorCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9jc3MzL2RldmljZS1hZGFwdC9vcGVyYS9jb25zdHJhaW4tMDEw
LnhodG1sIGIvTGF5b3V0VGVzdHMvY3NzMy9kZXZpY2UtYWRhcHQvb3BlcmEvY29uc3RyYWluLTAx
MC54aHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi4wNDgwMmRmZDBkNDNlOGZmNGZiMWQ0ODY3MDYxYWQ1NWY5ZWI4
ZjMwCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvY3NzMy9kZXZpY2UtYWRhcHQvb3Bl
cmEvY29uc3RyYWluLTAxMC54aHRtbApAQCAtMCwwICsxLDg0IEBACis8P3htbCB2ZXJzaW9uPSIx
LjAiIGVuY29kaW5nPSJVVEYtOCI/PgorPCFET0NUWVBFIGh0bWwgUFVCTElDICItLy9XM0MvL0RU
RCBYSFRNTCAxLjAgU3RyaWN0Ly9FTiIgImh0dHA6Ly93d3cudzMub3JnL1RSL3hodG1sMS9EVEQv
eGh0bWwxLXN0cmljdC5kdGQiPgorPGh0bWwgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkv
eGh0bWwiPgorIDxoZWFkPgorICA8dGl0bGU+Q1NTIFRlc3Q6IEB2aWV3cG9ydCBjb25zdHJhaW5l
ZCAtIHdpZHRoIDIwcmVtPC90aXRsZT4KKyAgPGxpbmsgcmVsPSJhdXRob3IiIHRpdGxlPSJSdW5l
IExpbGxlc3ZlZW4iIGhyZWY9Im1haWx0bzpydW5lQG9wZXJhLmNvbSIvPgorICA8bGluayByZWw9
ImhlbHAiIGhyZWY9Imh0dHA6Ly93d3cudzMub3JnL1RSL2Nzcy1kZXZpY2UtYWRhcHQvI2NvbnN0
cmFpbmluZy1wcm9jZWR1cmUiLz4KKyAgPG1ldGEgbmFtZT0iZmxhZ3MiIGNvbnRlbnQ9InZpc3Vh
bCBzY3JvbGwgZG9tIiAvPgorICA8bWV0YSBuYW1lPSJhc3NlcnQiIGNvbnRlbnQ9IlNldHRpbmcg
d2lkdGggaW4gQHZpZXdwb3J0IHRvIDIwcmVtIHdpbGwgc2V0IHRoZSBhY3R1YWwgdmlld3BvcnQg
d2lkdGggdG8gMjAgdGltZXMgdGhlIGluaXRpYWwgZm9udC1zaXplLiIvPgorICA8c2NyaXB0IHNy
Yz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIiB0eXBlPSJ0ZXh0L2phdmFzY3Jp
cHQiIC8+CisgIDxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBv
cnQuanMiIHR5cGU9InRleHQvamF2YXNjcmlwdCIgLz4KKyAgPHN0eWxlIHR5cGU9InRleHQvY3Nz
Ij48IVtDREFUQVsKKyAgIGJvZHkgeyBtYXJnaW46IDA7IH0KKyAgIGh0bWwsIGJvZHksICN0ZXN0
IHsgd2lkdGg6IDEwMCU7IGhlaWdodDogMTAwJTsgfQorICAgI2xvZyB7IHBhZGRpbmc6IDFlbTsg
ZGlzcGxheTogbm9uZTsgfQorICAgLyogUmVzZXQgdmlld3BvcnQgdmFsdWVzIHRvIGluaXRpYWwg
dmFsdWVzIHRvIGlnbm9yZSBVQSBzdHlsZXNoZWV0LiAqLworICAgQC13ZWJraXQtdmlld3BvcnQg
eworICAgIHdpZHRoOiBhdXRvOworICAgIGhlaWdodDogYXV0bzsKKyAgICB6b29tOiBhdXRvOwor
ICAgIG1pbi16b29tOiBhdXRvOworICAgIG1heC16b29tOiBhdXRvOworICAgIHVzZXItem9vbTog
em9vbTsKKyAgICBvcmllbnRhdGlvbjogYXV0bzsKKyAgICByZXNvbHV0aW9uOiBhdXRvOworICAg
fQorICBdXT48L3N0eWxlPgorICA8c3R5bGUgdHlwZT0idGV4dC9jc3MiPjwhW0NEQVRBWworICAg
LyogQ1NTIGZvciB0aGUgdGVzdCBiZWxvdy4gKi8KKyAgIEAtd2Via2l0LXZpZXdwb3J0IHsgd2lk
dGg6IDIwcmVtIH0KKyAgIC8qIFNldCByb290IGVsZW1lbnQgZm9udC1zaXplIHRvIHNvbWV0aGlu
ZyBkaWZmZXJlbnQgZnJvbSB0aGUgaW5pdGlhbAorICAgICAgZm9udC1zaXplIHRvIG1ha2Ugc3Vy
ZSAncmVtJyBhbmQgJ2VtJyBmb3IgQHZpZXdwb3J0IGlzIGJhc2VkIG9uIHRoZQorICAgICAgaW5p
dGlhbCBmb250LXNpemUsIG5vdCB0aGUgcm9vdCBlbGVtZW50IGZvbnQtc2l6ZS4gKi8KKyAgIGh0
bWwgeyBmb250LXNpemU6IDJyZW07IH0KKyAgIGJvZHkgeyBmb250LXNpemU6IDAuNXJlbTsgfQor
ICBdXT48L3N0eWxlPgorICA8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+PCFbQ0RBVEFb
CisgICB2YXIgdGVzdCA9IGFzeW5jX3Rlc3QoIkNTUyBUZXN0OiBAdmlld3BvcnQgY29uc3RyYWlu
ZWQgLSB3aWR0aCAyMHJlbSIpOworICAgd2luZG93Lm9ubG9hZCA9IGZ1bmN0aW9uKCl7CisKKyAg
ICB2YXIgdGVzdFN0eWxlU2hlZXQgPSBkb2N1bWVudC5zdHlsZVNoZWV0cy5pdGVtKDEpOworCisg
ICAgLyogRGlzYWJsZSB0aGUgc3R5bGVzaGVldCB0aGF0IGNvbnRhaW5zIHRoZSBAdmlld3BvcnQg
dG8gdGVzdC4gKi8KKyAgICB0ZXN0U3R5bGVTaGVldC5kaXNhYmxlZCA9IHRydWU7CisKKyAgICAv
KiBJbml0aWFsaXplIGFuIG9iamVjdCB0byBzdG9yZSB2aWV3cG9ydCB2YWx1ZXMgdG8gYmUgdXNl
ZCBieSB0aGUgdGVzdAorICAgICAgIGFzc2VydHMuICovCisgICAgdmFyIHZpZXdwb3J0ID0gbmV3
IE9iamVjdCgpOworCisgICAgLyogQW4gZWxlbWVudCB3aXRoIHRoZSBzYW1lIHNpemUgYXMgdGhl
IGluaXRpYWwgY29udGFpbmluZyBibG9jay4gKi8KKyAgICB2YXIgdGVzdEVsbSA9IGRvY3VtZW50
LmdldEVsZW1lbnRCeUlkKCJ0ZXN0Iik7CisKKyAgICAvKiBSZXRyaWV2ZSB0aGUgaW5pdGlhbCB2
aWV3cG9ydCB2YWx1ZXMgYmVmb3JlIGFwcGx5aW5nIHRoZSBAdmlld3BvcnQgdG8KKyAgICAgICB0
ZXN0LiAqLworICAgIHZpZXdwb3J0LmluaXRpYWxXaWR0aCA9IHRlc3RFbG0ub2Zmc2V0V2lkdGg7
CisgICAgdmlld3BvcnQuaW5pdGlhbEhlaWdodCA9IHRlc3RFbG0ub2Zmc2V0SGVpZ2h0OworICAg
IHZpZXdwb3J0LmZvbnRTaXplID0gcGFyc2VJbnQoZ2V0Q29tcHV0ZWRTdHlsZSh0ZXN0RWxtLCAi
IikuZm9udFNpemUpOworCisgICAgLyogRW5hYmxlIHRoZSBzdHlsZXNoZWV0IHRoYXQgY29udGFp
bnMgdGhlIEB2aWV3cG9ydCB0byB0ZXN0LiAqLworICAgIHRlc3RTdHlsZVNoZWV0LmRpc2FibGVk
ID0gZmFsc2U7CisKKyAgICAvKiBSZXRyaWV2ZSB0aGUgYWN0dWFsIHZpZXdwb3J0IHZhbHVlcyBm
b3IgdGhlIHRlc3QuICovCisgICAgdmlld3BvcnQuYWN0dWFsV2lkdGggPSB0ZXN0RWxtLm9mZnNl
dFdpZHRoOworICAgIHZpZXdwb3J0LmFjdHVhbEhlaWdodCA9IHRlc3RFbG0ub2Zmc2V0SGVpZ2h0
OworICAgIHZpZXdwb3J0Lnpvb20gPSB2aWV3cG9ydC5pbml0aWFsV2lkdGggLyB3aW5kb3cuaW5u
ZXJXaWR0aDsKKworICAgIC8qIENoZWNrIHZpZXdwb3J0IHZhbHVlcy4gKi8KKyAgICB0ZXN0LnN0
ZXAoZnVuY3Rpb24oKXsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyh2aWV3cG9ydC5hY3R1YWxXaWR0
aCwgMjAqdmlld3BvcnQuZm9udFNpemUpOworICAgIH0pOworCisgICAgLyogRmluaXNoZWQuIFNo
b3cgdGhlIHJlc3VsdHMuICovCisgICAgdGVzdC5kb25lKCk7CisgICAgdGVzdFN0eWxlU2hlZXQu
ZGlzYWJsZWQgPSB0cnVlOworICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJsb2ciKS5zdHls
ZS5kaXNwbGF5ID0gImJsb2NrIjsKKyAgIH0KKyAgXV0+PC9zY3JpcHQ+CisgPC9oZWFkPgorIDxi
b2R5PgorICA8ZGl2IGlkPSJ0ZXN0Ij4KKyAgIDxkaXYgaWQ9ImxvZyI+PC9kaXY+CisgIDwvZGl2
PgorIDwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2NzczMvZGV2aWNl
LWFkYXB0L29wZXJhL2NvbnN0cmFpbi0wMTEtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvY3Nz
My9kZXZpY2UtYWRhcHQvb3BlcmEvY29uc3RyYWluLTAxMS1leHBlY3RlZC50eHQKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uYjc5ZjczZGFhNGExMTA3ZDMwMjc4ODFhYzRjY2FkNzdiZDhmZDI1MAotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL2NzczMvZGV2aWNlLWFkYXB0L29wZXJhL2NvbnN0cmFpbi0wMTEt
ZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMyBAQAorCitQQVNTIENTUyBUZXN0OiBAdmlld3BvcnQg
Y29uc3RyYWluZWQgLSB3aWR0aCBmcm9tIHpvb206IDIwMCUgCisKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2NzczMvZGV2aWNlLWFkYXB0L29wZXJhL2NvbnN0cmFpbi0wMTEueGh0bWwgYi9MYXlv
dXRUZXN0cy9jc3MzL2RldmljZS1hZGFwdC9vcGVyYS9jb25zdHJhaW4tMDExLnhodG1sCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLjMyNjg1NWM0MzkwYzdhZTQ0ZDc1NDU2YzIzYTc2YjAzN2QxM2IwNDUKLS0tIC9kZXYv
bnVsbAorKysgYi9MYXlvdXRUZXN0cy9jc3MzL2RldmljZS1hZGFwdC9vcGVyYS9jb25zdHJhaW4t
MDExLnhodG1sCkBAIC0wLDAgKzEsODQgQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9
IlVURi04Ij8+Cis8IURPQ1RZUEUgaHRtbCBQVUJMSUMgIi0vL1czQy8vRFREIFhIVE1MIDEuMCBT
dHJpY3QvL0VOIiAiaHR0cDovL3d3dy53My5vcmcvVFIveGh0bWwxL0RURC94aHRtbDEtc3RyaWN0
LmR0ZCI+Cis8aHRtbCB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCI+CisgPGhl
YWQ+CisgIDx0aXRsZT5DU1MgVGVzdDogQHZpZXdwb3J0IGNvbnN0cmFpbmVkIC0gd2lkdGggZnJv
bSB6b29tOiAyMDAlPC90aXRsZT4KKyAgPGxpbmsgcmVsPSJhdXRob3IiIHRpdGxlPSJSdW5lIExp
bGxlc3ZlZW4iIGhyZWY9Im1haWx0bzpydW5lQG9wZXJhLmNvbSIvPgorICA8bGluayByZWw9Imhl
bHAiIGhyZWY9Imh0dHA6Ly93d3cudzMub3JnL1RSL2Nzcy1kZXZpY2UtYWRhcHQvI2NvbnN0cmFp
bmluZy1wcm9jZWR1cmUiLz4KKyAgPG1ldGEgbmFtZT0iZmxhZ3MiIGNvbnRlbnQ9InZpc3VhbCBz
Y3JvbGwgZG9tIiAvPgorICA8bWV0YSBuYW1lPSJhc3NlcnQiIGNvbnRlbnQ9IlNldHRpbmcgem9v
bSBpbiBAdmlld3BvcnQgdG8gMjAwJSB3aWxsIHNldCB0aGUgYWN0dWFsIHZpZXdwb3J0IHdpZHRo
IHRvIGhhbGYgdGhlIGluaXRpYWwtd2lkdGguIi8+CisgIDxzY3JpcHQgc3JjPSIuLi8uLi8uLi9y
ZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiIHR5cGU9InRleHQvamF2YXNjcmlwdCIgLz4KKyAgPHNj
cmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyIgdHlwZT0i
dGV4dC9qYXZhc2NyaXB0IiAvPgorICA8c3R5bGUgdHlwZT0idGV4dC9jc3MiPjwhW0NEQVRBWwor
ICAgYm9keSB7IG1hcmdpbjogMDsgfQorICAgaHRtbCwgYm9keSwgI3Rlc3QgeyB3aWR0aDogMTAw
JTsgaGVpZ2h0OiAxMDAlOyB9CisgICAjbG9nIHsgcGFkZGluZzogMWVtOyBkaXNwbGF5OiBub25l
OyB9CisgICAvKiBSZXNldCB2aWV3cG9ydCB2YWx1ZXMgdG8gaW5pdGlhbCB2YWx1ZXMgdG8gaWdu
b3JlIFVBIHN0eWxlc2hlZXQuICovCisgICBALXdlYmtpdC12aWV3cG9ydCB7CisgICAgd2lkdGg6
IGF1dG87CisgICAgaGVpZ2h0OiBhdXRvOworICAgIHpvb206IGF1dG87CisgICAgbWluLXpvb206
IGF1dG87CisgICAgbWF4LXpvb206IGF1dG87CisgICAgdXNlci16b29tOiB6b29tOworICAgIG9y
aWVudGF0aW9uOiBhdXRvOworICAgIHJlc29sdXRpb246IGF1dG87CisgICB9CisgIF1dPjwvc3R5
bGU+CisgIDxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyI+PCFbQ0RBVEFbCisgICAvKiBDU1MgZm9yIHRo
ZSB0ZXN0IGJlbG93LiAqLworICAgQC13ZWJraXQtdmlld3BvcnQgeyB6b29tOiAyMDAlIH0KKyAg
IC8qIFNldCByb290IGVsZW1lbnQgZm9udC1zaXplIHRvIHNvbWV0aGluZyBkaWZmZXJlbnQgZnJv
bSB0aGUgaW5pdGlhbAorICAgICAgZm9udC1zaXplIHRvIG1ha2Ugc3VyZSAncmVtJyBhbmQgJ2Vt
JyBmb3IgQHZpZXdwb3J0IGlzIGJhc2VkIG9uIHRoZQorICAgICAgaW5pdGlhbCBmb250LXNpemUs
IG5vdCB0aGUgcm9vdCBlbGVtZW50IGZvbnQtc2l6ZS4gKi8KKyAgIGh0bWwgeyBmb250LXNpemU6
IDJyZW07IH0KKyAgIGJvZHkgeyBmb250LXNpemU6IDAuNXJlbTsgfQorICBdXT48L3N0eWxlPgor
ICA8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+PCFbQ0RBVEFbCisgICB2YXIgdGVzdCA9
IGFzeW5jX3Rlc3QoIkNTUyBUZXN0OiBAdmlld3BvcnQgY29uc3RyYWluZWQgLSB3aWR0aCBmcm9t
IHpvb206IDIwMCUiKTsKKyAgIHdpbmRvdy5vbmxvYWQgPSBmdW5jdGlvbigpeworCisgICAgdmFy
IHRlc3RTdHlsZVNoZWV0ID0gZG9jdW1lbnQuc3R5bGVTaGVldHMuaXRlbSgxKTsKKworICAgIC8q
IERpc2FibGUgdGhlIHN0eWxlc2hlZXQgdGhhdCBjb250YWlucyB0aGUgQHZpZXdwb3J0IHRvIHRl
c3QuICovCisgICAgdGVzdFN0eWxlU2hlZXQuZGlzYWJsZWQgPSB0cnVlOworCisgICAgLyogSW5p
dGlhbGl6ZSBhbiBvYmplY3QgdG8gc3RvcmUgdmlld3BvcnQgdmFsdWVzIHRvIGJlIHVzZWQgYnkg
dGhlIHRlc3QKKyAgICAgICBhc3NlcnRzLiAqLworICAgIHZhciB2aWV3cG9ydCA9IG5ldyBPYmpl
Y3QoKTsKKworICAgIC8qIEFuIGVsZW1lbnQgd2l0aCB0aGUgc2FtZSBzaXplIGFzIHRoZSBpbml0
aWFsIGNvbnRhaW5pbmcgYmxvY2suICovCisgICAgdmFyIHRlc3RFbG0gPSBkb2N1bWVudC5nZXRF
bGVtZW50QnlJZCgidGVzdCIpOworCisgICAgLyogUmV0cmlldmUgdGhlIGluaXRpYWwgdmlld3Bv
cnQgdmFsdWVzIGJlZm9yZSBhcHBseWluZyB0aGUgQHZpZXdwb3J0IHRvCisgICAgICAgdGVzdC4g
Ki8KKyAgICB2aWV3cG9ydC5pbml0aWFsV2lkdGggPSB0ZXN0RWxtLm9mZnNldFdpZHRoOworICAg
IHZpZXdwb3J0LmluaXRpYWxIZWlnaHQgPSB0ZXN0RWxtLm9mZnNldEhlaWdodDsKKyAgICB2aWV3
cG9ydC5mb250U2l6ZSA9IHBhcnNlSW50KGdldENvbXB1dGVkU3R5bGUodGVzdEVsbSwgIiIpLmZv
bnRTaXplKTsKKworICAgIC8qIEVuYWJsZSB0aGUgc3R5bGVzaGVldCB0aGF0IGNvbnRhaW5zIHRo
ZSBAdmlld3BvcnQgdG8gdGVzdC4gKi8KKyAgICB0ZXN0U3R5bGVTaGVldC5kaXNhYmxlZCA9IGZh
bHNlOworCisgICAgLyogUmV0cmlldmUgdGhlIGFjdHVhbCB2aWV3cG9ydCB2YWx1ZXMgZm9yIHRo
ZSB0ZXN0LiAqLworICAgIHZpZXdwb3J0LmFjdHVhbFdpZHRoID0gdGVzdEVsbS5vZmZzZXRXaWR0
aDsKKyAgICB2aWV3cG9ydC5hY3R1YWxIZWlnaHQgPSB0ZXN0RWxtLm9mZnNldEhlaWdodDsKKyAg
ICB2aWV3cG9ydC56b29tID0gdmlld3BvcnQuaW5pdGlhbFdpZHRoIC8gd2luZG93LmlubmVyV2lk
dGg7CisKKyAgICAvKiBDaGVjayB2aWV3cG9ydCB2YWx1ZXMuICovCisgICAgdGVzdC5zdGVwKGZ1
bmN0aW9uKCl7CisgICAgICAgIGFzc2VydF9lcXVhbHModmlld3BvcnQuYWN0dWFsV2lkdGgsIE1h
dGguZmxvb3Iodmlld3BvcnQuaW5pdGlhbFdpZHRoLzIpKTsKKyAgICB9KTsKKworICAgIC8qIEZp
bmlzaGVkLiBTaG93IHRoZSByZXN1bHRzLiAqLworICAgIHRlc3QuZG9uZSgpOworICAgIHRlc3RT
dHlsZVNoZWV0LmRpc2FibGVkID0gdHJ1ZTsKKyAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgi
bG9nIikuc3R5bGUuZGlzcGxheSA9ICJibG9jayI7CisgICB9CisgIF1dPjwvc2NyaXB0PgorIDwv
aGVhZD4KKyA8Ym9keT4KKyAgPGRpdiBpZD0idGVzdCI+CisgICA8ZGl2IGlkPSJsb2ciPjwvZGl2
PgorICA8L2Rpdj4KKyA8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9j
c3MzL2RldmljZS1hZGFwdC9vcGVyYS9jb25zdHJhaW4tMDEyLWV4cGVjdGVkLnR4dCBiL0xheW91
dFRlc3RzL2NzczMvZGV2aWNlLWFkYXB0L29wZXJhL2NvbnN0cmFpbi0wMTItZXhwZWN0ZWQudHh0
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLjdlNWRhMmQ4NTdkNDM2MDg5ZTlkMTgwMGZiZTlhOTQ2Yzk4NTA3N2IKLS0t
IC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9jc3MzL2RldmljZS1hZGFwdC9vcGVyYS9jb25z
dHJhaW4tMDEyLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDMgQEAKKworUEFTUyBDU1MgVGVzdDog
QHZpZXdwb3J0IGNvbnN0cmFpbmVkIC0gbWluLXpvb20gbm90IGFmZmVjdGluZyB3aWR0aC4gCisK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2NzczMvZGV2aWNlLWFkYXB0L29wZXJhL2NvbnN0cmFp
bi0wMTIueGh0bWwgYi9MYXlvdXRUZXN0cy9jc3MzL2RldmljZS1hZGFwdC9vcGVyYS9jb25zdHJh
aW4tMDEyLnhodG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjhlMzRkM2I5NmM4MTNkNzhlMmQ2ODYzMDRlNDYyMjdi
M2UwYmVmZmYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9jc3MzL2RldmljZS1hZGFw
dC9vcGVyYS9jb25zdHJhaW4tMDEyLnhodG1sCkBAIC0wLDAgKzEsODQgQEAKKzw/eG1sIHZlcnNp
b249IjEuMCIgZW5jb2Rpbmc9IlVURi04Ij8+Cis8IURPQ1RZUEUgaHRtbCBQVUJMSUMgIi0vL1cz
Qy8vRFREIFhIVE1MIDEuMCBTdHJpY3QvL0VOIiAiaHR0cDovL3d3dy53My5vcmcvVFIveGh0bWwx
L0RURC94aHRtbDEtc3RyaWN0LmR0ZCI+Cis8aHRtbCB4bWxucz0iaHR0cDovL3d3dy53My5vcmcv
MTk5OS94aHRtbCI+CisgPGhlYWQ+CisgIDx0aXRsZT5DU1MgVGVzdDogQHZpZXdwb3J0IGNvbnN0
cmFpbmVkIC0gbWluLXpvb20gbm90IGFmZmVjdGluZyB3aWR0aC48L3RpdGxlPgorICA8bGluayBy
ZWw9ImF1dGhvciIgdGl0bGU9IlJ1bmUgTGlsbGVzdmVlbiIgaHJlZj0ibWFpbHRvOnJ1bmVAb3Bl
cmEuY29tIi8+CisgIDxsaW5rIHJlbD0iaGVscCIgaHJlZj0iaHR0cDovL3d3dy53My5vcmcvVFIv
Y3NzLWRldmljZS1hZGFwdC8jY29uc3RyYWluaW5nLXByb2NlZHVyZSIvPgorICA8bWV0YSBuYW1l
PSJmbGFncyIgY29udGVudD0idmlzdWFsIHNjcm9sbCBkb20iIC8+CisgIDxtZXRhIG5hbWU9ImFz
c2VydCIgY29udGVudD0iU2V0dGluZyBtaW4tem9vbSBpbiBAdmlld3BvcnQgdG8gMjAwJSB3aWxs
IG5vdCBhZmZlY3Qgd2lkdGggaWYgem9vbSBpcyBhdXRvLiIvPgorICA8c2NyaXB0IHNyYz0iLi4v
Li4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIC8+
CisgIDxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMi
IHR5cGU9InRleHQvamF2YXNjcmlwdCIgLz4KKyAgPHN0eWxlIHR5cGU9InRleHQvY3NzIj48IVtD
REFUQVsKKyAgIGJvZHkgeyBtYXJnaW46IDA7IH0KKyAgIGh0bWwsIGJvZHksICN0ZXN0IHsgd2lk
dGg6IDEwMCU7IGhlaWdodDogMTAwJTsgfQorICAgI2xvZyB7IHBhZGRpbmc6IDFlbTsgZGlzcGxh
eTogbm9uZTsgfQorICAgLyogUmVzZXQgdmlld3BvcnQgdmFsdWVzIHRvIGluaXRpYWwgdmFsdWVz
IHRvIGlnbm9yZSBVQSBzdHlsZXNoZWV0LiAqLworICAgQC13ZWJraXQtdmlld3BvcnQgeworICAg
IHdpZHRoOiBhdXRvOworICAgIGhlaWdodDogYXV0bzsKKyAgICB6b29tOiBhdXRvOworICAgIG1p
bi16b29tOiBhdXRvOworICAgIG1heC16b29tOiBhdXRvOworICAgIHVzZXItem9vbTogem9vbTsK
KyAgICBvcmllbnRhdGlvbjogYXV0bzsKKyAgICByZXNvbHV0aW9uOiBhdXRvOworICAgfQorICBd
XT48L3N0eWxlPgorICA8c3R5bGUgdHlwZT0idGV4dC9jc3MiPjwhW0NEQVRBWworICAgLyogQ1NT
IGZvciB0aGUgdGVzdCBiZWxvdy4gKi8KKyAgIEAtd2Via2l0LXZpZXdwb3J0IHsgbWluLXpvb206
IDIwMCUgfQorICAgLyogU2V0IHJvb3QgZWxlbWVudCBmb250LXNpemUgdG8gc29tZXRoaW5nIGRp
ZmZlcmVudCBmcm9tIHRoZSBpbml0aWFsCisgICAgICBmb250LXNpemUgdG8gbWFrZSBzdXJlICdy
ZW0nIGFuZCAnZW0nIGZvciBAdmlld3BvcnQgaXMgYmFzZWQgb24gdGhlCisgICAgICBpbml0aWFs
IGZvbnQtc2l6ZSwgbm90IHRoZSByb290IGVsZW1lbnQgZm9udC1zaXplLiAqLworICAgaHRtbCB7
IGZvbnQtc2l6ZTogMnJlbTsgfQorICAgYm9keSB7IGZvbnQtc2l6ZTogMC41cmVtOyB9CisgIF1d
Pjwvc3R5bGU+CisgIDxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij48IVtDREFUQVsKKyAg
IHZhciB0ZXN0ID0gYXN5bmNfdGVzdCgiQ1NTIFRlc3Q6IEB2aWV3cG9ydCBjb25zdHJhaW5lZCAt
IG1pbi16b29tIG5vdCBhZmZlY3Rpbmcgd2lkdGguIik7CisgICB3aW5kb3cub25sb2FkID0gZnVu
Y3Rpb24oKXsKKworICAgIHZhciB0ZXN0U3R5bGVTaGVldCA9IGRvY3VtZW50LnN0eWxlU2hlZXRz
Lml0ZW0oMSk7CisKKyAgICAvKiBEaXNhYmxlIHRoZSBzdHlsZXNoZWV0IHRoYXQgY29udGFpbnMg
dGhlIEB2aWV3cG9ydCB0byB0ZXN0LiAqLworICAgIHRlc3RTdHlsZVNoZWV0LmRpc2FibGVkID0g
dHJ1ZTsKKworICAgIC8qIEluaXRpYWxpemUgYW4gb2JqZWN0IHRvIHN0b3JlIHZpZXdwb3J0IHZh
bHVlcyB0byBiZSB1c2VkIGJ5IHRoZSB0ZXN0CisgICAgICAgYXNzZXJ0cy4gKi8KKyAgICB2YXIg
dmlld3BvcnQgPSBuZXcgT2JqZWN0KCk7CisKKyAgICAvKiBBbiBlbGVtZW50IHdpdGggdGhlIHNh
bWUgc2l6ZSBhcyB0aGUgaW5pdGlhbCBjb250YWluaW5nIGJsb2NrLiAqLworICAgIHZhciB0ZXN0
RWxtID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRlc3QiKTsKKworICAgIC8qIFJldHJpZXZl
IHRoZSBpbml0aWFsIHZpZXdwb3J0IHZhbHVlcyBiZWZvcmUgYXBwbHlpbmcgdGhlIEB2aWV3cG9y
dCB0bworICAgICAgIHRlc3QuICovCisgICAgdmlld3BvcnQuaW5pdGlhbFdpZHRoID0gdGVzdEVs
bS5vZmZzZXRXaWR0aDsKKyAgICB2aWV3cG9ydC5pbml0aWFsSGVpZ2h0ID0gdGVzdEVsbS5vZmZz
ZXRIZWlnaHQ7CisgICAgdmlld3BvcnQuZm9udFNpemUgPSBwYXJzZUludChnZXRDb21wdXRlZFN0
eWxlKHRlc3RFbG0sICIiKS5mb250U2l6ZSk7CisKKyAgICAvKiBFbmFibGUgdGhlIHN0eWxlc2hl
ZXQgdGhhdCBjb250YWlucyB0aGUgQHZpZXdwb3J0IHRvIHRlc3QuICovCisgICAgdGVzdFN0eWxl
U2hlZXQuZGlzYWJsZWQgPSBmYWxzZTsKKworICAgIC8qIFJldHJpZXZlIHRoZSBhY3R1YWwgdmll
d3BvcnQgdmFsdWVzIGZvciB0aGUgdGVzdC4gKi8KKyAgICB2aWV3cG9ydC5hY3R1YWxXaWR0aCA9
IHRlc3RFbG0ub2Zmc2V0V2lkdGg7CisgICAgdmlld3BvcnQuYWN0dWFsSGVpZ2h0ID0gdGVzdEVs
bS5vZmZzZXRIZWlnaHQ7CisgICAgdmlld3BvcnQuem9vbSA9IHZpZXdwb3J0LmluaXRpYWxXaWR0
aCAvIHdpbmRvdy5pbm5lcldpZHRoOworCisgICAgLyogQ2hlY2sgdmlld3BvcnQgdmFsdWVzLiAq
LworICAgIHRlc3Quc3RlcChmdW5jdGlvbigpeworICAgICAgICBhc3NlcnRfZXF1YWxzKHZpZXdw
b3J0LmFjdHVhbFdpZHRoLCB2aWV3cG9ydC5pbml0aWFsV2lkdGgpOworICAgIH0pOworCisgICAg
LyogRmluaXNoZWQuIFNob3cgdGhlIHJlc3VsdHMuICovCisgICAgdGVzdC5kb25lKCk7CisgICAg
dGVzdFN0eWxlU2hlZXQuZGlzYWJsZWQgPSB0cnVlOworICAgIGRvY3VtZW50LmdldEVsZW1lbnRC
eUlkKCJsb2ciKS5zdHlsZS5kaXNwbGF5ID0gImJsb2NrIjsKKyAgIH0KKyAgXV0+PC9zY3JpcHQ+
CisgPC9oZWFkPgorIDxib2R5PgorICA8ZGl2IGlkPSJ0ZXN0Ij4KKyAgIDxkaXYgaWQ9ImxvZyI+
PC9kaXY+CisgIDwvZGl2PgorIDwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2NzczMvZGV2aWNlLWFkYXB0L29wZXJhL2NvbnN0cmFpbi0wMTMtZXhwZWN0ZWQudHh0IGIv
TGF5b3V0VGVzdHMvY3NzMy9kZXZpY2UtYWRhcHQvb3BlcmEvY29uc3RyYWluLTAxMy1leHBlY3Rl
ZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uODgxY2EwNGRkNWM3OTY1MmJkNDdiNzI2NTE4ZWU2M2E4MjhlYjIw
OAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2NzczMvZGV2aWNlLWFkYXB0L29wZXJh
L2NvbnN0cmFpbi0wMTMtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMyBAQAorCitQQVNTIENTUyBU
ZXN0OiBAdmlld3BvcnQgY29uc3RyYWluZWQgLSBtYXgtem9vbSBhZmZlY3Rpbmcgd2lkdGguIAor
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9jc3MzL2RldmljZS1hZGFwdC9vcGVyYS9jb25zdHJh
aW4tMDEzLnhodG1sIGIvTGF5b3V0VGVzdHMvY3NzMy9kZXZpY2UtYWRhcHQvb3BlcmEvY29uc3Ry
YWluLTAxMy54aHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mNmJlZGI3ZDlkNDU1YWI1ZjJhNTJiOTE0YThmOWYx
N2MzMzQ4ZDkwCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvY3NzMy9kZXZpY2UtYWRh
cHQvb3BlcmEvY29uc3RyYWluLTAxMy54aHRtbApAQCAtMCwwICsxLDg0IEBACis8P3htbCB2ZXJz
aW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCI/PgorPCFET0NUWVBFIGh0bWwgUFVCTElDICItLy9X
M0MvL0RURCBYSFRNTCAxLjAgU3RyaWN0Ly9FTiIgImh0dHA6Ly93d3cudzMub3JnL1RSL3hodG1s
MS9EVEQveGh0bWwxLXN0cmljdC5kdGQiPgorPGh0bWwgeG1sbnM9Imh0dHA6Ly93d3cudzMub3Jn
LzE5OTkveGh0bWwiPgorIDxoZWFkPgorICA8dGl0bGU+Q1NTIFRlc3Q6IEB2aWV3cG9ydCBjb25z
dHJhaW5lZCAtIG1heC16b29tIGFmZmVjdGluZyB3aWR0aC48L3RpdGxlPgorICA8bGluayByZWw9
ImF1dGhvciIgdGl0bGU9IlJ1bmUgTGlsbGVzdmVlbiIgaHJlZj0ibWFpbHRvOnJ1bmVAb3BlcmEu
Y29tIi8+CisgIDxsaW5rIHJlbD0iaGVscCIgaHJlZj0iaHR0cDovL3d3dy53My5vcmcvVFIvY3Nz
LWRldmljZS1hZGFwdC8jY29uc3RyYWluaW5nLXByb2NlZHVyZSIvPgorICA8bWV0YSBuYW1lPSJm
bGFncyIgY29udGVudD0idmlzdWFsIHNjcm9sbCBkb20iIC8+CisgIDxtZXRhIG5hbWU9ImFzc2Vy
dCIgY29udGVudD0iU2V0dGluZyBtYXgtem9vbSBpbiBAdmlld3BvcnQgdG8gNTAlIGFmZmVjdCB3
aWR0aCBpZiB6b29tIGlzIGF1dG8gYmVjYXVzZSBvZiBzdGVwIDEwIGluIHRoZSBjb25zdHJhaW5p
bmcgcHJvY2VkdXJlLiIvPgorICA8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3Ro
YXJuZXNzLmpzIiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIC8+CisgIDxzY3JpcHQgc3JjPSIuLi8u
Li8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiIHR5cGU9InRleHQvamF2YXNjcmlw
dCIgLz4KKyAgPHN0eWxlIHR5cGU9InRleHQvY3NzIj48IVtDREFUQVsKKyAgIGJvZHkgeyBtYXJn
aW46IDA7IH0KKyAgIGh0bWwsIGJvZHksICN0ZXN0IHsgd2lkdGg6IDEwMCU7IGhlaWdodDogMTAw
JTsgfQorICAgI2xvZyB7IHBhZGRpbmc6IDFlbTsgZGlzcGxheTogbm9uZTsgfQorICAgLyogUmVz
ZXQgdmlld3BvcnQgdmFsdWVzIHRvIGluaXRpYWwgdmFsdWVzIHRvIGlnbm9yZSBVQSBzdHlsZXNo
ZWV0LiAqLworICAgQC13ZWJraXQtdmlld3BvcnQgeworICAgIHdpZHRoOiBhdXRvOworICAgIGhl
aWdodDogYXV0bzsKKyAgICB6b29tOiBhdXRvOworICAgIG1pbi16b29tOiBhdXRvOworICAgIG1h
eC16b29tOiBhdXRvOworICAgIHVzZXItem9vbTogem9vbTsKKyAgICBvcmllbnRhdGlvbjogYXV0
bzsKKyAgICByZXNvbHV0aW9uOiBhdXRvOworICAgfQorICBdXT48L3N0eWxlPgorICA8c3R5bGUg
dHlwZT0idGV4dC9jc3MiPjwhW0NEQVRBWworICAgLyogQ1NTIGZvciB0aGUgdGVzdCBiZWxvdy4g
Ki8KKyAgIEAtd2Via2l0LXZpZXdwb3J0IHsgbWF4LXpvb206IDUwJSB9CisgICAvKiBTZXQgcm9v
dCBlbGVtZW50IGZvbnQtc2l6ZSB0byBzb21ldGhpbmcgZGlmZmVyZW50IGZyb20gdGhlIGluaXRp
YWwKKyAgICAgIGZvbnQtc2l6ZSB0byBtYWtlIHN1cmUgJ3JlbScgYW5kICdlbScgZm9yIEB2aWV3
cG9ydCBpcyBiYXNlZCBvbiB0aGUKKyAgICAgIGluaXRpYWwgZm9udC1zaXplLCBub3QgdGhlIHJv
b3QgZWxlbWVudCBmb250LXNpemUuICovCisgICBodG1sIHsgZm9udC1zaXplOiAycmVtOyB9Cisg
ICBib2R5IHsgZm9udC1zaXplOiAwLjVyZW07IH0KKyAgXV0+PC9zdHlsZT4KKyAgPHNjcmlwdCB0
eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPjwhW0NEQVRBWworICAgdmFyIHRlc3QgPSBhc3luY190ZXN0
KCJDU1MgVGVzdDogQHZpZXdwb3J0IGNvbnN0cmFpbmVkIC0gbWF4LXpvb20gYWZmZWN0aW5nIHdp
ZHRoLiIpOworICAgd2luZG93Lm9ubG9hZCA9IGZ1bmN0aW9uKCl7CisKKyAgICB2YXIgdGVzdFN0
eWxlU2hlZXQgPSBkb2N1bWVudC5zdHlsZVNoZWV0cy5pdGVtKDEpOworCisgICAgLyogRGlzYWJs
ZSB0aGUgc3R5bGVzaGVldCB0aGF0IGNvbnRhaW5zIHRoZSBAdmlld3BvcnQgdG8gdGVzdC4gKi8K
KyAgICB0ZXN0U3R5bGVTaGVldC5kaXNhYmxlZCA9IHRydWU7CisKKyAgICAvKiBJbml0aWFsaXpl
IGFuIG9iamVjdCB0byBzdG9yZSB2aWV3cG9ydCB2YWx1ZXMgdG8gYmUgdXNlZCBieSB0aGUgdGVz
dAorICAgICAgIGFzc2VydHMuICovCisgICAgdmFyIHZpZXdwb3J0ID0gbmV3IE9iamVjdCgpOwor
CisgICAgLyogQW4gZWxlbWVudCB3aXRoIHRoZSBzYW1lIHNpemUgYXMgdGhlIGluaXRpYWwgY29u
dGFpbmluZyBibG9jay4gKi8KKyAgICB2YXIgdGVzdEVsbSA9IGRvY3VtZW50LmdldEVsZW1lbnRC
eUlkKCJ0ZXN0Iik7CisKKyAgICAvKiBSZXRyaWV2ZSB0aGUgaW5pdGlhbCB2aWV3cG9ydCB2YWx1
ZXMgYmVmb3JlIGFwcGx5aW5nIHRoZSBAdmlld3BvcnQgdG8KKyAgICAgICB0ZXN0LiAqLworICAg
IHZpZXdwb3J0LmluaXRpYWxXaWR0aCA9IHRlc3RFbG0ub2Zmc2V0V2lkdGg7CisgICAgdmlld3Bv
cnQuaW5pdGlhbEhlaWdodCA9IHRlc3RFbG0ub2Zmc2V0SGVpZ2h0OworICAgIHZpZXdwb3J0LmZv
bnRTaXplID0gcGFyc2VJbnQoZ2V0Q29tcHV0ZWRTdHlsZSh0ZXN0RWxtLCAiIikuZm9udFNpemUp
OworCisgICAgLyogRW5hYmxlIHRoZSBzdHlsZXNoZWV0IHRoYXQgY29udGFpbnMgdGhlIEB2aWV3
cG9ydCB0byB0ZXN0LiAqLworICAgIHRlc3RTdHlsZVNoZWV0LmRpc2FibGVkID0gZmFsc2U7CisK
KyAgICAvKiBSZXRyaWV2ZSB0aGUgYWN0dWFsIHZpZXdwb3J0IHZhbHVlcyBmb3IgdGhlIHRlc3Qu
ICovCisgICAgdmlld3BvcnQuYWN0dWFsV2lkdGggPSB0ZXN0RWxtLm9mZnNldFdpZHRoOworICAg
IHZpZXdwb3J0LmFjdHVhbEhlaWdodCA9IHRlc3RFbG0ub2Zmc2V0SGVpZ2h0OworICAgIHZpZXdw
b3J0Lnpvb20gPSB2aWV3cG9ydC5pbml0aWFsV2lkdGggLyB3aW5kb3cuaW5uZXJXaWR0aDsKKwor
ICAgIC8qIENoZWNrIHZpZXdwb3J0IHZhbHVlcy4gKi8KKyAgICB0ZXN0LnN0ZXAoZnVuY3Rpb24o
KXsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyh2aWV3cG9ydC5hY3R1YWxXaWR0aCwgMip2aWV3cG9y
dC5pbml0aWFsV2lkdGgpOworICAgIH0pOworCisgICAgLyogRmluaXNoZWQuIFNob3cgdGhlIHJl
c3VsdHMuICovCisgICAgdGVzdC5kb25lKCk7CisgICAgdGVzdFN0eWxlU2hlZXQuZGlzYWJsZWQg
PSB0cnVlOworICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJsb2ciKS5zdHlsZS5kaXNwbGF5
ID0gImJsb2NrIjsKKyAgIH0KKyAgXV0+PC9zY3JpcHQ+CisgPC9oZWFkPgorIDxib2R5PgorICA8
ZGl2IGlkPSJ0ZXN0Ij4KKyAgIDxkaXYgaWQ9ImxvZyI+PC9kaXY+CisgIDwvZGl2PgorIDwvYm9k
eT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2NzczMvZGV2aWNlLWFkYXB0L29w
ZXJhL2NvbnN0cmFpbi0wMTQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvY3NzMy9kZXZpY2Ut
YWRhcHQvb3BlcmEvY29uc3RyYWluLTAxNC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZjc4ODBj
MzY4YjkwMzBhOGQyNTZhMGJiNDM0Njg5ODg1NmNjZWJhNgotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL2NzczMvZGV2aWNlLWFkYXB0L29wZXJhL2NvbnN0cmFpbi0wMTQtZXhwZWN0ZWQu
dHh0CkBAIC0wLDAgKzEsMyBAQAorCitQQVNTIENTUyBUZXN0OiBAdmlld3BvcnQgY29uc3RyYWlu
ZWQgLSB6b29tIGdyZWF0ZXIgdGhhbiBtYXgtem9vbS4gCisKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2NzczMvZGV2aWNlLWFkYXB0L29wZXJhL2NvbnN0cmFpbi0wMTQueGh0bWwgYi9MYXlvdXRU
ZXN0cy9jc3MzL2RldmljZS1hZGFwdC9vcGVyYS9jb25zdHJhaW4tMDE0LnhodG1sCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjEyMzJjYzU0NTJhMmNjZTRhYTA5ZTA5NzJmYTc1MjhhNWQzMWVhODYKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy9jc3MzL2RldmljZS1hZGFwdC9vcGVyYS9jb25zdHJhaW4tMDE0
LnhodG1sCkBAIC0wLDAgKzEsODQgQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVU
Ri04Ij8+Cis8IURPQ1RZUEUgaHRtbCBQVUJMSUMgIi0vL1czQy8vRFREIFhIVE1MIDEuMCBTdHJp
Y3QvL0VOIiAiaHR0cDovL3d3dy53My5vcmcvVFIveGh0bWwxL0RURC94aHRtbDEtc3RyaWN0LmR0
ZCI+Cis8aHRtbCB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCI+CisgPGhlYWQ+
CisgIDx0aXRsZT5DU1MgVGVzdDogQHZpZXdwb3J0IGNvbnN0cmFpbmVkIC0gem9vbSBncmVhdGVy
IHRoYW4gbWF4LXpvb20uPC90aXRsZT4KKyAgPGxpbmsgcmVsPSJhdXRob3IiIHRpdGxlPSJSdW5l
IExpbGxlc3ZlZW4iIGhyZWY9Im1haWx0bzpydW5lQG9wZXJhLmNvbSIvPgorICA8bGluayByZWw9
ImhlbHAiIGhyZWY9Imh0dHA6Ly93d3cudzMub3JnL1RSL2Nzcy1kZXZpY2UtYWRhcHQvI2NvbnN0
cmFpbmluZy1wcm9jZWR1cmUiLz4KKyAgPG1ldGEgbmFtZT0iZmxhZ3MiIGNvbnRlbnQ9InZpc3Vh
bCBzY3JvbGwgZG9tIiAvPgorICA8bWV0YSBuYW1lPSJhc3NlcnQiIGNvbnRlbnQ9IlNldHRpbmcg
em9vbSBncmVhdGVyIHRoYW4gbWF4LXpvb20gd2lsbCBzZXQgem9vbSB0byBtYXgtem9vbS4iLz4K
KyAgPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyIgdHlwZT0i
dGV4dC9qYXZhc2NyaXB0IiAvPgorICA8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rl
c3RoYXJuZXNzcmVwb3J0LmpzIiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIC8+CisgIDxzdHlsZSB0
eXBlPSJ0ZXh0L2NzcyI+PCFbQ0RBVEFbCisgICBib2R5IHsgbWFyZ2luOiAwOyB9CisgICBodG1s
LCBib2R5LCAjdGVzdCB7IHdpZHRoOiAxMDAlOyBoZWlnaHQ6IDEwMCU7IH0KKyAgICNsb2cgeyBw
YWRkaW5nOiAxZW07IGRpc3BsYXk6IG5vbmU7IH0KKyAgIC8qIFJlc2V0IHZpZXdwb3J0IHZhbHVl
cyB0byBpbml0aWFsIHZhbHVlcyB0byBpZ25vcmUgVUEgc3R5bGVzaGVldC4gKi8KKyAgIEAtd2Vi
a2l0LXZpZXdwb3J0IHsKKyAgICB3aWR0aDogYXV0bzsKKyAgICBoZWlnaHQ6IGF1dG87CisgICAg
em9vbTogYXV0bzsKKyAgICBtaW4tem9vbTogYXV0bzsKKyAgICBtYXgtem9vbTogYXV0bzsKKyAg
ICB1c2VyLXpvb206IHpvb207CisgICAgb3JpZW50YXRpb246IGF1dG87CisgICAgcmVzb2x1dGlv
bjogYXV0bzsKKyAgIH0KKyAgXV0+PC9zdHlsZT4KKyAgPHN0eWxlIHR5cGU9InRleHQvY3NzIj48
IVtDREFUQVsKKyAgIC8qIENTUyBmb3IgdGhlIHRlc3QgYmVsb3cuICovCisgICBALXdlYmtpdC12
aWV3cG9ydCB7IG1heC16b29tOiA1MCU7IHpvb206IDE1MCUgfQorICAgLyogU2V0IHJvb3QgZWxl
bWVudCBmb250LXNpemUgdG8gc29tZXRoaW5nIGRpZmZlcmVudCBmcm9tIHRoZSBpbml0aWFsCisg
ICAgICBmb250LXNpemUgdG8gbWFrZSBzdXJlICdyZW0nIGFuZCAnZW0nIGZvciBAdmlld3BvcnQg
aXMgYmFzZWQgb24gdGhlCisgICAgICBpbml0aWFsIGZvbnQtc2l6ZSwgbm90IHRoZSByb290IGVs
ZW1lbnQgZm9udC1zaXplLiAqLworICAgaHRtbCB7IGZvbnQtc2l6ZTogMnJlbTsgfQorICAgYm9k
eSB7IGZvbnQtc2l6ZTogMC41cmVtOyB9CisgIF1dPjwvc3R5bGU+CisgIDxzY3JpcHQgdHlwZT0i
dGV4dC9qYXZhc2NyaXB0Ij48IVtDREFUQVsKKyAgIHZhciB0ZXN0ID0gYXN5bmNfdGVzdCgiQ1NT
IFRlc3Q6IEB2aWV3cG9ydCBjb25zdHJhaW5lZCAtIHpvb20gZ3JlYXRlciB0aGFuIG1heC16b29t
LiIpOworICAgd2luZG93Lm9ubG9hZCA9IGZ1bmN0aW9uKCl7CisKKyAgICB2YXIgdGVzdFN0eWxl
U2hlZXQgPSBkb2N1bWVudC5zdHlsZVNoZWV0cy5pdGVtKDEpOworCisgICAgLyogRGlzYWJsZSB0
aGUgc3R5bGVzaGVldCB0aGF0IGNvbnRhaW5zIHRoZSBAdmlld3BvcnQgdG8gdGVzdC4gKi8KKyAg
ICB0ZXN0U3R5bGVTaGVldC5kaXNhYmxlZCA9IHRydWU7CisKKyAgICAvKiBJbml0aWFsaXplIGFu
IG9iamVjdCB0byBzdG9yZSB2aWV3cG9ydCB2YWx1ZXMgdG8gYmUgdXNlZCBieSB0aGUgdGVzdAor
ICAgICAgIGFzc2VydHMuICovCisgICAgdmFyIHZpZXdwb3J0ID0gbmV3IE9iamVjdCgpOworCisg
ICAgLyogQW4gZWxlbWVudCB3aXRoIHRoZSBzYW1lIHNpemUgYXMgdGhlIGluaXRpYWwgY29udGFp
bmluZyBibG9jay4gKi8KKyAgICB2YXIgdGVzdEVsbSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlk
KCJ0ZXN0Iik7CisKKyAgICAvKiBSZXRyaWV2ZSB0aGUgaW5pdGlhbCB2aWV3cG9ydCB2YWx1ZXMg
YmVmb3JlIGFwcGx5aW5nIHRoZSBAdmlld3BvcnQgdG8KKyAgICAgICB0ZXN0LiAqLworICAgIHZp
ZXdwb3J0LmluaXRpYWxXaWR0aCA9IHRlc3RFbG0ub2Zmc2V0V2lkdGg7CisgICAgdmlld3BvcnQu
aW5pdGlhbEhlaWdodCA9IHRlc3RFbG0ub2Zmc2V0SGVpZ2h0OworICAgIHZpZXdwb3J0LmZvbnRT
aXplID0gcGFyc2VJbnQoZ2V0Q29tcHV0ZWRTdHlsZSh0ZXN0RWxtLCAiIikuZm9udFNpemUpOwor
CisgICAgLyogRW5hYmxlIHRoZSBzdHlsZXNoZWV0IHRoYXQgY29udGFpbnMgdGhlIEB2aWV3cG9y
dCB0byB0ZXN0LiAqLworICAgIHRlc3RTdHlsZVNoZWV0LmRpc2FibGVkID0gZmFsc2U7CisKKyAg
ICAvKiBSZXRyaWV2ZSB0aGUgYWN0dWFsIHZpZXdwb3J0IHZhbHVlcyBmb3IgdGhlIHRlc3QuICov
CisgICAgdmlld3BvcnQuYWN0dWFsV2lkdGggPSB0ZXN0RWxtLm9mZnNldFdpZHRoOworICAgIHZp
ZXdwb3J0LmFjdHVhbEhlaWdodCA9IHRlc3RFbG0ub2Zmc2V0SGVpZ2h0OworICAgIHZpZXdwb3J0
Lnpvb20gPSB2aWV3cG9ydC5pbml0aWFsV2lkdGggLyB3aW5kb3cuaW5uZXJXaWR0aDsKKworICAg
IC8qIENoZWNrIHZpZXdwb3J0IHZhbHVlcy4gKi8KKyAgICB0ZXN0LnN0ZXAoZnVuY3Rpb24oKXsK
KyAgICAgICAgYXNzZXJ0X2VxdWFscyh2aWV3cG9ydC5hY3R1YWxXaWR0aCwgMip2aWV3cG9ydC5p
bml0aWFsV2lkdGgpOworICAgIH0pOworCisgICAgLyogRmluaXNoZWQuIFNob3cgdGhlIHJlc3Vs
dHMuICovCisgICAgdGVzdC5kb25lKCk7CisgICAgdGVzdFN0eWxlU2hlZXQuZGlzYWJsZWQgPSB0
cnVlOworICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJsb2ciKS5zdHlsZS5kaXNwbGF5ID0g
ImJsb2NrIjsKKyAgIH0KKyAgXV0+PC9zY3JpcHQ+CisgPC9oZWFkPgorIDxib2R5PgorICA8ZGl2
IGlkPSJ0ZXN0Ij4KKyAgIDxkaXYgaWQ9ImxvZyI+PC9kaXY+CisgIDwvZGl2PgorIDwvYm9keT4K
KzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2NzczMvZGV2aWNlLWFkYXB0L29wZXJh
L2NvbnN0cmFpbi0wMTUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvY3NzMy9kZXZpY2UtYWRh
cHQvb3BlcmEvY29uc3RyYWluLTAxNS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMDMyNjllMjhk
NjVkZTY4NTFmZmU0MTVmZDA3NTJhMTA3YTNlZDJhMQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL2NzczMvZGV2aWNlLWFkYXB0L29wZXJhL2NvbnN0cmFpbi0wMTUtZXhwZWN0ZWQudHh0
CkBAIC0wLDAgKzEsMyBAQAorCitQQVNTIENTUyBUZXN0OiBAdmlld3BvcnQgY29uc3RyYWluZWQg
LSB6b29tIGxlc3MgdGhhbiBtaW4tem9vbS4gCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Nz
czMvZGV2aWNlLWFkYXB0L29wZXJhL2NvbnN0cmFpbi0wMTUueGh0bWwgYi9MYXlvdXRUZXN0cy9j
c3MzL2RldmljZS1hZGFwdC9vcGVyYS9jb25zdHJhaW4tMDE1LnhodG1sCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjYx
M2IxZGMzODBhZTNkNTRiYzE0ZmJhNjZjYzM5YzU0MDk1OWFhMDcKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy9jc3MzL2RldmljZS1hZGFwdC9vcGVyYS9jb25zdHJhaW4tMDE1LnhodG1s
CkBAIC0wLDAgKzEsODQgQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04Ij8+
Cis8IURPQ1RZUEUgaHRtbCBQVUJMSUMgIi0vL1czQy8vRFREIFhIVE1MIDEuMCBTdHJpY3QvL0VO
IiAiaHR0cDovL3d3dy53My5vcmcvVFIveGh0bWwxL0RURC94aHRtbDEtc3RyaWN0LmR0ZCI+Cis8
aHRtbCB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCI+CisgPGhlYWQ+CisgIDx0
aXRsZT5DU1MgVGVzdDogQHZpZXdwb3J0IGNvbnN0cmFpbmVkIC0gem9vbSBsZXNzIHRoYW4gbWlu
LXpvb20uPC90aXRsZT4KKyAgPGxpbmsgcmVsPSJhdXRob3IiIHRpdGxlPSJSdW5lIExpbGxlc3Zl
ZW4iIGhyZWY9Im1haWx0bzpydW5lQG9wZXJhLmNvbSIvPgorICA8bGluayByZWw9ImhlbHAiIGhy
ZWY9Imh0dHA6Ly93d3cudzMub3JnL1RSL2Nzcy1kZXZpY2UtYWRhcHQvI2NvbnN0cmFpbmluZy1w
cm9jZWR1cmUiLz4KKyAgPG1ldGEgbmFtZT0iZmxhZ3MiIGNvbnRlbnQ9InZpc3VhbCBzY3JvbGwg
ZG9tIiAvPgorICA8bWV0YSBuYW1lPSJhc3NlcnQiIGNvbnRlbnQ9IlNldHRpbmcgem9vbSBsZXNz
IHRoYW4gbWluLXpvb20gd2lsbCBzZXQgem9vbSB0byBtaW4tem9vbS4iLz4KKyAgPHNjcmlwdCBz
cmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyIgdHlwZT0idGV4dC9qYXZhc2Ny
aXB0IiAvPgorICA8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVw
b3J0LmpzIiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIC8+CisgIDxzdHlsZSB0eXBlPSJ0ZXh0L2Nz
cyI+PCFbQ0RBVEFbCisgICBib2R5IHsgbWFyZ2luOiAwOyB9CisgICBodG1sLCBib2R5LCAjdGVz
dCB7IHdpZHRoOiAxMDAlOyBoZWlnaHQ6IDEwMCU7IH0KKyAgICNsb2cgeyBwYWRkaW5nOiAxZW07
IGRpc3BsYXk6IG5vbmU7IH0KKyAgIC8qIFJlc2V0IHZpZXdwb3J0IHZhbHVlcyB0byBpbml0aWFs
IHZhbHVlcyB0byBpZ25vcmUgVUEgc3R5bGVzaGVldC4gKi8KKyAgIEAtd2Via2l0LXZpZXdwb3J0
IHsKKyAgICB3aWR0aDogYXV0bzsKKyAgICBoZWlnaHQ6IGF1dG87CisgICAgem9vbTogYXV0bzsK
KyAgICBtaW4tem9vbTogYXV0bzsKKyAgICBtYXgtem9vbTogYXV0bzsKKyAgICB1c2VyLXpvb206
IHpvb207CisgICAgb3JpZW50YXRpb246IGF1dG87CisgICAgcmVzb2x1dGlvbjogYXV0bzsKKyAg
IH0KKyAgXV0+PC9zdHlsZT4KKyAgPHN0eWxlIHR5cGU9InRleHQvY3NzIj48IVtDREFUQVsKKyAg
IC8qIENTUyBmb3IgdGhlIHRlc3QgYmVsb3cuICovCisgICBALXdlYmtpdC12aWV3cG9ydCB7IG1p
bi16b29tOiAyMDAlOyB6b29tOiA1MCUgfQorICAgLyogU2V0IHJvb3QgZWxlbWVudCBmb250LXNp
emUgdG8gc29tZXRoaW5nIGRpZmZlcmVudCBmcm9tIHRoZSBpbml0aWFsCisgICAgICBmb250LXNp
emUgdG8gbWFrZSBzdXJlICdyZW0nIGFuZCAnZW0nIGZvciBAdmlld3BvcnQgaXMgYmFzZWQgb24g
dGhlCisgICAgICBpbml0aWFsIGZvbnQtc2l6ZSwgbm90IHRoZSByb290IGVsZW1lbnQgZm9udC1z
aXplLiAqLworICAgaHRtbCB7IGZvbnQtc2l6ZTogMnJlbTsgfQorICAgYm9keSB7IGZvbnQtc2l6
ZTogMC41cmVtOyB9CisgIF1dPjwvc3R5bGU+CisgIDxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2Ny
aXB0Ij48IVtDREFUQVsKKyAgIHZhciB0ZXN0ID0gYXN5bmNfdGVzdCgiQ1NTIFRlc3Q6IEB2aWV3
cG9ydCBjb25zdHJhaW5lZCAtIHpvb20gbGVzcyB0aGFuIG1pbi16b29tLiIpOworICAgd2luZG93
Lm9ubG9hZCA9IGZ1bmN0aW9uKCl7CisKKyAgICB2YXIgdGVzdFN0eWxlU2hlZXQgPSBkb2N1bWVu
dC5zdHlsZVNoZWV0cy5pdGVtKDEpOworCisgICAgLyogRGlzYWJsZSB0aGUgc3R5bGVzaGVldCB0
aGF0IGNvbnRhaW5zIHRoZSBAdmlld3BvcnQgdG8gdGVzdC4gKi8KKyAgICB0ZXN0U3R5bGVTaGVl
dC5kaXNhYmxlZCA9IHRydWU7CisKKyAgICAvKiBJbml0aWFsaXplIGFuIG9iamVjdCB0byBzdG9y
ZSB2aWV3cG9ydCB2YWx1ZXMgdG8gYmUgdXNlZCBieSB0aGUgdGVzdAorICAgICAgIGFzc2VydHMu
ICovCisgICAgdmFyIHZpZXdwb3J0ID0gbmV3IE9iamVjdCgpOworCisgICAgLyogQW4gZWxlbWVu
dCB3aXRoIHRoZSBzYW1lIHNpemUgYXMgdGhlIGluaXRpYWwgY29udGFpbmluZyBibG9jay4gKi8K
KyAgICB2YXIgdGVzdEVsbSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0ZXN0Iik7CisKKyAg
ICAvKiBSZXRyaWV2ZSB0aGUgaW5pdGlhbCB2aWV3cG9ydCB2YWx1ZXMgYmVmb3JlIGFwcGx5aW5n
IHRoZSBAdmlld3BvcnQgdG8KKyAgICAgICB0ZXN0LiAqLworICAgIHZpZXdwb3J0LmluaXRpYWxX
aWR0aCA9IHRlc3RFbG0ub2Zmc2V0V2lkdGg7CisgICAgdmlld3BvcnQuaW5pdGlhbEhlaWdodCA9
IHRlc3RFbG0ub2Zmc2V0SGVpZ2h0OworICAgIHZpZXdwb3J0LmZvbnRTaXplID0gcGFyc2VJbnQo
Z2V0Q29tcHV0ZWRTdHlsZSh0ZXN0RWxtLCAiIikuZm9udFNpemUpOworCisgICAgLyogRW5hYmxl
IHRoZSBzdHlsZXNoZWV0IHRoYXQgY29udGFpbnMgdGhlIEB2aWV3cG9ydCB0byB0ZXN0LiAqLwor
ICAgIHRlc3RTdHlsZVNoZWV0LmRpc2FibGVkID0gZmFsc2U7CisKKyAgICAvKiBSZXRyaWV2ZSB0
aGUgYWN0dWFsIHZpZXdwb3J0IHZhbHVlcyBmb3IgdGhlIHRlc3QuICovCisgICAgdmlld3BvcnQu
YWN0dWFsV2lkdGggPSB0ZXN0RWxtLm9mZnNldFdpZHRoOworICAgIHZpZXdwb3J0LmFjdHVhbEhl
aWdodCA9IHRlc3RFbG0ub2Zmc2V0SGVpZ2h0OworICAgIHZpZXdwb3J0Lnpvb20gPSB2aWV3cG9y
dC5pbml0aWFsV2lkdGggLyB3aW5kb3cuaW5uZXJXaWR0aDsKKworICAgIC8qIENoZWNrIHZpZXdw
b3J0IHZhbHVlcy4gKi8KKyAgICB0ZXN0LnN0ZXAoZnVuY3Rpb24oKXsKKyAgICAgICAgYXNzZXJ0
X2VxdWFscyh2aWV3cG9ydC5hY3R1YWxXaWR0aCwgTWF0aC5mbG9vcih2aWV3cG9ydC5pbml0aWFs
V2lkdGgvMikpOworICAgIH0pOworCisgICAgLyogRmluaXNoZWQuIFNob3cgdGhlIHJlc3VsdHMu
ICovCisgICAgdGVzdC5kb25lKCk7CisgICAgdGVzdFN0eWxlU2hlZXQuZGlzYWJsZWQgPSB0cnVl
OworICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJsb2ciKS5zdHlsZS5kaXNwbGF5ID0gImJs
b2NrIjsKKyAgIH0KKyAgXV0+PC9zY3JpcHQ+CisgPC9oZWFkPgorIDxib2R5PgorICA8ZGl2IGlk
PSJ0ZXN0Ij4KKyAgIDxkaXYgaWQ9ImxvZyI+PC9kaXY+CisgIDwvZGl2PgorIDwvYm9keT4KKzwv
aHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2NzczMvZGV2aWNlLWFkYXB0L29wZXJhL2Nv
bnN0cmFpbi0wMTYtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvY3NzMy9kZXZpY2UtYWRhcHQv
b3BlcmEvY29uc3RyYWluLTAxNi1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYTQxYzRiODExOTAy
OGEyNTA5ODgwNDNiNGIxMTczYjNhM2RlYjQ4MAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL2NzczMvZGV2aWNlLWFkYXB0L29wZXJhL2NvbnN0cmFpbi0wMTYtZXhwZWN0ZWQudHh0CkBA
IC0wLDAgKzEsMyBAQAorCitQQVNTIENTUyBUZXN0OiBAdmlld3BvcnQgY29uc3RyYWluZWQgLSBo
ZWlnaHQgZGVkdWNlZCBmcm9tIHdpZHRoIGFuZCBhc3BlY3QgcmF0aW8uIAorCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9jc3MzL2RldmljZS1hZGFwdC9vcGVyYS9jb25zdHJhaW4tMDE2LnhodG1s
IGIvTGF5b3V0VGVzdHMvY3NzMy9kZXZpY2UtYWRhcHQvb3BlcmEvY29uc3RyYWluLTAxNi54aHRt
bApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi43ZjUyMzk2MGI4N2I1Nzk4YjFhYjRlMmY3ZWIzNTUyZDlhN2YxYWVmCi0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvY3NzMy9kZXZpY2UtYWRhcHQvb3BlcmEvY29u
c3RyYWluLTAxNi54aHRtbApAQCAtMCwwICsxLDg0IEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVu
Y29kaW5nPSJVVEYtOCI/PgorPCFET0NUWVBFIGh0bWwgUFVCTElDICItLy9XM0MvL0RURCBYSFRN
TCAxLjAgU3RyaWN0Ly9FTiIgImh0dHA6Ly93d3cudzMub3JnL1RSL3hodG1sMS9EVEQveGh0bWwx
LXN0cmljdC5kdGQiPgorPGh0bWwgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwi
PgorIDxoZWFkPgorICA8dGl0bGU+Q1NTIFRlc3Q6IEB2aWV3cG9ydCBjb25zdHJhaW5lZCAtIGhl
aWdodCBkZWR1Y2VkIGZyb20gd2lkdGggYW5kIGFzcGVjdCByYXRpby48L3RpdGxlPgorICA8bGlu
ayByZWw9ImF1dGhvciIgdGl0bGU9IlJ1bmUgTGlsbGVzdmVlbiIgaHJlZj0ibWFpbHRvOnJ1bmVA
b3BlcmEuY29tIi8+CisgIDxsaW5rIHJlbD0iaGVscCIgaHJlZj0iaHR0cDovL3d3dy53My5vcmcv
VFIvY3NzLWRldmljZS1hZGFwdC8jY29uc3RyYWluaW5nLXByb2NlZHVyZSIvPgorICA8bWV0YSBu
YW1lPSJmbGFncyIgY29udGVudD0idmlzdWFsIHNjcm9sbCBkb20iIC8+CisgIDxtZXRhIG5hbWU9
ImFzc2VydCIgY29udGVudD0iU2V0dGluZyB3aWR0aCBhbmQgbm90IGhlaWdodCB3aWxsIHNldCBh
IGhlaWdodCB0aGF0IG1ha2VzIHRoZSBhY3R1YWwgd2lkdGgvaGVpZ2h0IGFuZCBpbml0aWFsIHdp
ZHRoL2hlaWdodCBoYXZlIHRoZSBzYW1lIGFzcGVjdCByYXRpby4iLz4KKyAgPHNjcmlwdCBzcmM9
Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyIgdHlwZT0idGV4dC9qYXZhc2NyaXB0
IiAvPgorICA8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0
LmpzIiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIC8+CisgIDxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyI+
PCFbQ0RBVEFbCisgICBib2R5IHsgbWFyZ2luOiAwOyB9CisgICBodG1sLCBib2R5LCAjdGVzdCB7
IHdpZHRoOiAxMDAlOyBoZWlnaHQ6IDEwMCU7IH0KKyAgICNsb2cgeyBwYWRkaW5nOiAxZW07IGRp
c3BsYXk6IG5vbmU7IH0KKyAgIC8qIFJlc2V0IHZpZXdwb3J0IHZhbHVlcyB0byBpbml0aWFsIHZh
bHVlcyB0byBpZ25vcmUgVUEgc3R5bGVzaGVldC4gKi8KKyAgIEAtd2Via2l0LXZpZXdwb3J0IHsK
KyAgICB3aWR0aDogYXV0bzsKKyAgICBoZWlnaHQ6IGF1dG87CisgICAgem9vbTogYXV0bzsKKyAg
ICBtaW4tem9vbTogYXV0bzsKKyAgICBtYXgtem9vbTogYXV0bzsKKyAgICB1c2VyLXpvb206IHpv
b207CisgICAgb3JpZW50YXRpb246IGF1dG87CisgICAgcmVzb2x1dGlvbjogYXV0bzsKKyAgIH0K
KyAgXV0+PC9zdHlsZT4KKyAgPHN0eWxlIHR5cGU9InRleHQvY3NzIj48IVtDREFUQVsKKyAgIC8q
IENTUyBmb3IgdGhlIHRlc3QgYmVsb3cuICovCisgICBALXdlYmtpdC12aWV3cG9ydCB7IHdpZHRo
OiAxMDAwMHB4IH0KKyAgIC8qIFNldCByb290IGVsZW1lbnQgZm9udC1zaXplIHRvIHNvbWV0aGlu
ZyBkaWZmZXJlbnQgZnJvbSB0aGUgaW5pdGlhbAorICAgICAgZm9udC1zaXplIHRvIG1ha2Ugc3Vy
ZSAncmVtJyBhbmQgJ2VtJyBmb3IgQHZpZXdwb3J0IGlzIGJhc2VkIG9uIHRoZQorICAgICAgaW5p
dGlhbCBmb250LXNpemUsIG5vdCB0aGUgcm9vdCBlbGVtZW50IGZvbnQtc2l6ZS4gKi8KKyAgIGh0
bWwgeyBmb250LXNpemU6IDJyZW07IH0KKyAgIGJvZHkgeyBmb250LXNpemU6IDAuNXJlbTsgfQor
ICBdXT48L3N0eWxlPgorICA8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+PCFbQ0RBVEFb
CisgICB2YXIgdGVzdCA9IGFzeW5jX3Rlc3QoIkNTUyBUZXN0OiBAdmlld3BvcnQgY29uc3RyYWlu
ZWQgLSBoZWlnaHQgZGVkdWNlZCBmcm9tIHdpZHRoIGFuZCBhc3BlY3QgcmF0aW8uIik7CisgICB3
aW5kb3cub25sb2FkID0gZnVuY3Rpb24oKXsKKworICAgIHZhciB0ZXN0U3R5bGVTaGVldCA9IGRv
Y3VtZW50LnN0eWxlU2hlZXRzLml0ZW0oMSk7CisKKyAgICAvKiBEaXNhYmxlIHRoZSBzdHlsZXNo
ZWV0IHRoYXQgY29udGFpbnMgdGhlIEB2aWV3cG9ydCB0byB0ZXN0LiAqLworICAgIHRlc3RTdHls
ZVNoZWV0LmRpc2FibGVkID0gdHJ1ZTsKKworICAgIC8qIEluaXRpYWxpemUgYW4gb2JqZWN0IHRv
IHN0b3JlIHZpZXdwb3J0IHZhbHVlcyB0byBiZSB1c2VkIGJ5IHRoZSB0ZXN0CisgICAgICAgYXNz
ZXJ0cy4gKi8KKyAgICB2YXIgdmlld3BvcnQgPSBuZXcgT2JqZWN0KCk7CisKKyAgICAvKiBBbiBl
bGVtZW50IHdpdGggdGhlIHNhbWUgc2l6ZSBhcyB0aGUgaW5pdGlhbCBjb250YWluaW5nIGJsb2Nr
LiAqLworICAgIHZhciB0ZXN0RWxtID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRlc3QiKTsK
KworICAgIC8qIFJldHJpZXZlIHRoZSBpbml0aWFsIHZpZXdwb3J0IHZhbHVlcyBiZWZvcmUgYXBw
bHlpbmcgdGhlIEB2aWV3cG9ydCB0bworICAgICAgIHRlc3QuICovCisgICAgdmlld3BvcnQuaW5p
dGlhbFdpZHRoID0gdGVzdEVsbS5vZmZzZXRXaWR0aDsKKyAgICB2aWV3cG9ydC5pbml0aWFsSGVp
Z2h0ID0gdGVzdEVsbS5vZmZzZXRIZWlnaHQ7CisgICAgdmlld3BvcnQuZm9udFNpemUgPSBwYXJz
ZUludChnZXRDb21wdXRlZFN0eWxlKHRlc3RFbG0sICIiKS5mb250U2l6ZSk7CisKKyAgICAvKiBF
bmFibGUgdGhlIHN0eWxlc2hlZXQgdGhhdCBjb250YWlucyB0aGUgQHZpZXdwb3J0IHRvIHRlc3Qu
ICovCisgICAgdGVzdFN0eWxlU2hlZXQuZGlzYWJsZWQgPSBmYWxzZTsKKworICAgIC8qIFJldHJp
ZXZlIHRoZSBhY3R1YWwgdmlld3BvcnQgdmFsdWVzIGZvciB0aGUgdGVzdC4gKi8KKyAgICB2aWV3
cG9ydC5hY3R1YWxXaWR0aCA9IHRlc3RFbG0ub2Zmc2V0V2lkdGg7CisgICAgdmlld3BvcnQuYWN0
dWFsSGVpZ2h0ID0gdGVzdEVsbS5vZmZzZXRIZWlnaHQ7CisgICAgdmlld3BvcnQuem9vbSA9IHZp
ZXdwb3J0LmluaXRpYWxXaWR0aCAvIHdpbmRvdy5pbm5lcldpZHRoOworCisgICAgLyogQ2hlY2sg
dmlld3BvcnQgdmFsdWVzLiAqLworICAgIHRlc3Quc3RlcChmdW5jdGlvbigpeworICAgICAgICBh
c3NlcnRfZXF1YWxzKHZpZXdwb3J0LmFjdHVhbFdpZHRoLCAxMDAwMCk7IGFzc2VydF9lcXVhbHMo
dmlld3BvcnQuYWN0dWFsSGVpZ2h0LCBNYXRoLmZsb29yKDEwMDAwKnZpZXdwb3J0LmluaXRpYWxI
ZWlnaHQvdmlld3BvcnQuaW5pdGlhbFdpZHRoKSk7CisgICAgfSk7CisKKyAgICAvKiBGaW5pc2hl
ZC4gU2hvdyB0aGUgcmVzdWx0cy4gKi8KKyAgICB0ZXN0LmRvbmUoKTsKKyAgICB0ZXN0U3R5bGVT
aGVldC5kaXNhYmxlZCA9IHRydWU7CisgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImxvZyIp
LnN0eWxlLmRpc3BsYXkgPSAiYmxvY2siOworICAgfQorICBdXT48L3NjcmlwdD4KKyA8L2hlYWQ+
CisgPGJvZHk+CisgIDxkaXYgaWQ9InRlc3QiPgorICAgPGRpdiBpZD0ibG9nIj48L2Rpdj4KKyAg
PC9kaXY+CisgPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvY3NzMy9k
ZXZpY2UtYWRhcHQvb3BlcmEvY29uc3RyYWluLTAxNy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0
cy9jc3MzL2RldmljZS1hZGFwdC9vcGVyYS9jb25zdHJhaW4tMDE3LWV4cGVjdGVkLnR4dApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi4zZjZkMDhmNDg2NmY1Njc4YzRlZWNhNTNiYzEyNjMyMGI1MDM1NDAxCi0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvY3NzMy9kZXZpY2UtYWRhcHQvb3BlcmEvY29uc3RyYWlu
LTAxNy1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwzIEBACisKK1BBU1MgQ1NTIFRlc3Q6IEB2aWV3
cG9ydCBjb25zdHJhaW5lZCAtIExhcmdlIG5vbi1hdXRvIGhlaWdodCBub3QgYWZmZWN0aW5nIHdp
ZHRoLiAKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvY3NzMy9kZXZpY2UtYWRhcHQvb3BlcmEv
Y29uc3RyYWluLTAxNy54aHRtbCBiL0xheW91dFRlc3RzL2NzczMvZGV2aWNlLWFkYXB0L29wZXJh
L2NvbnN0cmFpbi0wMTcueGh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNzI5MDk5NTA4YzdiMzlmYzIxYmIwMzI3
MjhiNDFkNzhmMTZiZWUzMAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2NzczMvZGV2
aWNlLWFkYXB0L29wZXJhL2NvbnN0cmFpbi0wMTcueGh0bWwKQEAgLTAsMCArMSw4NCBAQAorPD94
bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KKzwhRE9DVFlQRSBodG1sIFBVQkxJ
QyAiLS8vVzNDLy9EVEQgWEhUTUwgMS4wIFN0cmljdC8vRU4iICJodHRwOi8vd3d3LnczLm9yZy9U
Ui94aHRtbDEvRFREL3hodG1sMS1zdHJpY3QuZHRkIj4KKzxodG1sIHhtbG5zPSJodHRwOi8vd3d3
LnczLm9yZy8xOTk5L3hodG1sIj4KKyA8aGVhZD4KKyAgPHRpdGxlPkNTUyBUZXN0OiBAdmlld3Bv
cnQgY29uc3RyYWluZWQgLSBMYXJnZSBub24tYXV0byBoZWlnaHQgbm90IGFmZmVjdGluZyB3aWR0
aC48L3RpdGxlPgorICA8bGluayByZWw9ImF1dGhvciIgdGl0bGU9IlJ1bmUgTGlsbGVzdmVlbiIg
aHJlZj0ibWFpbHRvOnJ1bmVAb3BlcmEuY29tIi8+CisgIDxsaW5rIHJlbD0iaGVscCIgaHJlZj0i
aHR0cDovL3d3dy53My5vcmcvVFIvY3NzLWRldmljZS1hZGFwdC8jY29uc3RyYWluaW5nLXByb2Nl
ZHVyZSIvPgorICA8bWV0YSBuYW1lPSJmbGFncyIgY29udGVudD0idmlzdWFsIHNjcm9sbCBkb20i
IC8+CisgIDxtZXRhIG5hbWU9ImFzc2VydCIgY29udGVudD0iTm9uLWF1dG8gaGVpZ2h0IGRvZXMg
bm90IGFmZmVjdCB3aWR0aCBpZiB6b29tIGlzIGF1dG8uIi8+CisgIDxzY3JpcHQgc3JjPSIuLi8u
Li8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiIHR5cGU9InRleHQvamF2YXNjcmlwdCIgLz4K
KyAgPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyIg
dHlwZT0idGV4dC9qYXZhc2NyaXB0IiAvPgorICA8c3R5bGUgdHlwZT0idGV4dC9jc3MiPjwhW0NE
QVRBWworICAgYm9keSB7IG1hcmdpbjogMDsgfQorICAgaHRtbCwgYm9keSwgI3Rlc3QgeyB3aWR0
aDogMTAwJTsgaGVpZ2h0OiAxMDAlOyB9CisgICAjbG9nIHsgcGFkZGluZzogMWVtOyBkaXNwbGF5
OiBub25lOyB9CisgICAvKiBSZXNldCB2aWV3cG9ydCB2YWx1ZXMgdG8gaW5pdGlhbCB2YWx1ZXMg
dG8gaWdub3JlIFVBIHN0eWxlc2hlZXQuICovCisgICBALXdlYmtpdC12aWV3cG9ydCB7CisgICAg
d2lkdGg6IGF1dG87CisgICAgaGVpZ2h0OiBhdXRvOworICAgIHpvb206IGF1dG87CisgICAgbWlu
LXpvb206IGF1dG87CisgICAgbWF4LXpvb206IGF1dG87CisgICAgdXNlci16b29tOiB6b29tOwor
ICAgIG9yaWVudGF0aW9uOiBhdXRvOworICAgIHJlc29sdXRpb246IGF1dG87CisgICB9CisgIF1d
Pjwvc3R5bGU+CisgIDxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyI+PCFbQ0RBVEFbCisgICAvKiBDU1Mg
Zm9yIHRoZSB0ZXN0IGJlbG93LiAqLworICAgQC13ZWJraXQtdmlld3BvcnQgeyBoZWlnaHQ6IDEw
MDAwcHggfQorICAgLyogU2V0IHJvb3QgZWxlbWVudCBmb250LXNpemUgdG8gc29tZXRoaW5nIGRp
ZmZlcmVudCBmcm9tIHRoZSBpbml0aWFsCisgICAgICBmb250LXNpemUgdG8gbWFrZSBzdXJlICdy
ZW0nIGFuZCAnZW0nIGZvciBAdmlld3BvcnQgaXMgYmFzZWQgb24gdGhlCisgICAgICBpbml0aWFs
IGZvbnQtc2l6ZSwgbm90IHRoZSByb290IGVsZW1lbnQgZm9udC1zaXplLiAqLworICAgaHRtbCB7
IGZvbnQtc2l6ZTogMnJlbTsgfQorICAgYm9keSB7IGZvbnQtc2l6ZTogMC41cmVtOyB9CisgIF1d
Pjwvc3R5bGU+CisgIDxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij48IVtDREFUQVsKKyAg
IHZhciB0ZXN0ID0gYXN5bmNfdGVzdCgiQ1NTIFRlc3Q6IEB2aWV3cG9ydCBjb25zdHJhaW5lZCAt
IExhcmdlIG5vbi1hdXRvIGhlaWdodCBub3QgYWZmZWN0aW5nIHdpZHRoLiIpOworICAgd2luZG93
Lm9ubG9hZCA9IGZ1bmN0aW9uKCl7CisKKyAgICB2YXIgdGVzdFN0eWxlU2hlZXQgPSBkb2N1bWVu
dC5zdHlsZVNoZWV0cy5pdGVtKDEpOworCisgICAgLyogRGlzYWJsZSB0aGUgc3R5bGVzaGVldCB0
aGF0IGNvbnRhaW5zIHRoZSBAdmlld3BvcnQgdG8gdGVzdC4gKi8KKyAgICB0ZXN0U3R5bGVTaGVl
dC5kaXNhYmxlZCA9IHRydWU7CisKKyAgICAvKiBJbml0aWFsaXplIGFuIG9iamVjdCB0byBzdG9y
ZSB2aWV3cG9ydCB2YWx1ZXMgdG8gYmUgdXNlZCBieSB0aGUgdGVzdAorICAgICAgIGFzc2VydHMu
ICovCisgICAgdmFyIHZpZXdwb3J0ID0gbmV3IE9iamVjdCgpOworCisgICAgLyogQW4gZWxlbWVu
dCB3aXRoIHRoZSBzYW1lIHNpemUgYXMgdGhlIGluaXRpYWwgY29udGFpbmluZyBibG9jay4gKi8K
KyAgICB2YXIgdGVzdEVsbSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0ZXN0Iik7CisKKyAg
ICAvKiBSZXRyaWV2ZSB0aGUgaW5pdGlhbCB2aWV3cG9ydCB2YWx1ZXMgYmVmb3JlIGFwcGx5aW5n
IHRoZSBAdmlld3BvcnQgdG8KKyAgICAgICB0ZXN0LiAqLworICAgIHZpZXdwb3J0LmluaXRpYWxX
aWR0aCA9IHRlc3RFbG0ub2Zmc2V0V2lkdGg7CisgICAgdmlld3BvcnQuaW5pdGlhbEhlaWdodCA9
IHRlc3RFbG0ub2Zmc2V0SGVpZ2h0OworICAgIHZpZXdwb3J0LmZvbnRTaXplID0gcGFyc2VJbnQo
Z2V0Q29tcHV0ZWRTdHlsZSh0ZXN0RWxtLCAiIikuZm9udFNpemUpOworCisgICAgLyogRW5hYmxl
IHRoZSBzdHlsZXNoZWV0IHRoYXQgY29udGFpbnMgdGhlIEB2aWV3cG9ydCB0byB0ZXN0LiAqLwor
ICAgIHRlc3RTdHlsZVNoZWV0LmRpc2FibGVkID0gZmFsc2U7CisKKyAgICAvKiBSZXRyaWV2ZSB0
aGUgYWN0dWFsIHZpZXdwb3J0IHZhbHVlcyBmb3IgdGhlIHRlc3QuICovCisgICAgdmlld3BvcnQu
YWN0dWFsV2lkdGggPSB0ZXN0RWxtLm9mZnNldFdpZHRoOworICAgIHZpZXdwb3J0LmFjdHVhbEhl
aWdodCA9IHRlc3RFbG0ub2Zmc2V0SGVpZ2h0OworICAgIHZpZXdwb3J0Lnpvb20gPSB2aWV3cG9y
dC5pbml0aWFsV2lkdGggLyB3aW5kb3cuaW5uZXJXaWR0aDsKKworICAgIC8qIENoZWNrIHZpZXdw
b3J0IHZhbHVlcy4gKi8KKyAgICB0ZXN0LnN0ZXAoZnVuY3Rpb24oKXsKKyAgICAgICAgYXNzZXJ0
X2VxdWFscyh2aWV3cG9ydC5hY3R1YWxIZWlnaHQsIDEwMDAwKTsgYXNzZXJ0X2VxdWFscyh2aWV3
cG9ydC5hY3R1YWxXaWR0aCwgdmlld3BvcnQuaW5pdGlhbFdpZHRoKTsKKyAgICB9KTsKKworICAg
IC8qIEZpbmlzaGVkLiBTaG93IHRoZSByZXN1bHRzLiAqLworICAgIHRlc3QuZG9uZSgpOworICAg
IHRlc3RTdHlsZVNoZWV0LmRpc2FibGVkID0gdHJ1ZTsKKyAgICBkb2N1bWVudC5nZXRFbGVtZW50
QnlJZCgibG9nIikuc3R5bGUuZGlzcGxheSA9ICJibG9jayI7CisgICB9CisgIF1dPjwvc2NyaXB0
PgorIDwvaGVhZD4KKyA8Ym9keT4KKyAgPGRpdiBpZD0idGVzdCI+CisgICA8ZGl2IGlkPSJsb2ci
PjwvZGl2PgorICA8L2Rpdj4KKyA8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9jc3MzL2RldmljZS1hZGFwdC9vcGVyYS9jb25zdHJhaW4tMDIwLWV4cGVjdGVkLnR4dCBi
L0xheW91dFRlc3RzL2NzczMvZGV2aWNlLWFkYXB0L29wZXJhL2NvbnN0cmFpbi0wMjAtZXhwZWN0
ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjVkMzVmMmY2MWU1YmRiZjY0YTcyZjRhNTFkMWNmNWQ2ZjgyNTYy
ZjcKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9jc3MzL2RldmljZS1hZGFwdC9vcGVy
YS9jb25zdHJhaW4tMDIwLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDMgQEAKKworUEFTUyBDU1Mg
VGVzdDogQHZpZXdwb3J0IGNvbnN0cmFpbmVkIC0gZXh0ZW5kZWQgd2lkdGggYW5kIGhlaWdodCBm
b3Igbm9uLWF1dG8gem9vbS4gCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2NzczMvZGV2aWNl
LWFkYXB0L29wZXJhL2NvbnN0cmFpbi0wMjAueGh0bWwgYi9MYXlvdXRUZXN0cy9jc3MzL2Rldmlj
ZS1hZGFwdC9vcGVyYS9jb25zdHJhaW4tMDIwLnhodG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmE0OTcxYTc2N2I0
NmIzNjBjODZlYzUxY2Q4ZDUyZWYwYmZiNWZjYjQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy9jc3MzL2RldmljZS1hZGFwdC9vcGVyYS9jb25zdHJhaW4tMDIwLnhodG1sCkBAIC0wLDAg
KzEsODQgQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04Ij8+Cis8IURPQ1RZ
UEUgaHRtbCBQVUJMSUMgIi0vL1czQy8vRFREIFhIVE1MIDEuMCBTdHJpY3QvL0VOIiAiaHR0cDov
L3d3dy53My5vcmcvVFIveGh0bWwxL0RURC94aHRtbDEtc3RyaWN0LmR0ZCI+Cis8aHRtbCB4bWxu
cz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCI+CisgPGhlYWQ+CisgIDx0aXRsZT5DU1Mg
VGVzdDogQHZpZXdwb3J0IGNvbnN0cmFpbmVkIC0gZXh0ZW5kZWQgd2lkdGggYW5kIGhlaWdodCBm
b3Igbm9uLWF1dG8gem9vbS48L3RpdGxlPgorICA8bGluayByZWw9ImF1dGhvciIgdGl0bGU9IlJ1
bmUgTGlsbGVzdmVlbiIgaHJlZj0ibWFpbHRvOnJ1bmVAb3BlcmEuY29tIi8+CisgIDxsaW5rIHJl
bD0iaGVscCIgaHJlZj0iaHR0cDovL3d3dy53My5vcmcvVFIvY3NzLWRldmljZS1hZGFwdC8jY29u
c3RyYWluaW5nLXByb2NlZHVyZSIvPgorICA8bWV0YSBuYW1lPSJmbGFncyIgY29udGVudD0idmlz
dWFsIHNjcm9sbCBkb20iIC8+CisgIDxtZXRhIG5hbWU9ImFzc2VydCIgY29udGVudD0iV2hlbiB6
b29tIGlzIG5vbi1hdXRvLCBhbmQgdGhlIGNvbnN0cmFpbmVkIHdpZHRoIGRvZXMgbm90IGZpbGwg
dGhlIHZpZXdwb3J0IGZvciB0aGUgY29uc3RyYWluZWQgem9vbSB2YWx1ZSwgdGhlIHdpZHRoIGlz
IGV4dGVuZGVkIHRvIGZpbGwgdGhlIHZpZXdwb3J0LiBMaWtld2lzZSBmb3IgaGVpZ2h0LiIvPgor
ICA8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIiB0eXBlPSJ0
ZXh0L2phdmFzY3JpcHQiIC8+CisgIDxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVz
dGhhcm5lc3NyZXBvcnQuanMiIHR5cGU9InRleHQvamF2YXNjcmlwdCIgLz4KKyAgPHN0eWxlIHR5
cGU9InRleHQvY3NzIj48IVtDREFUQVsKKyAgIGJvZHkgeyBtYXJnaW46IDA7IH0KKyAgIGh0bWws
IGJvZHksICN0ZXN0IHsgd2lkdGg6IDEwMCU7IGhlaWdodDogMTAwJTsgfQorICAgI2xvZyB7IHBh
ZGRpbmc6IDFlbTsgZGlzcGxheTogbm9uZTsgfQorICAgLyogUmVzZXQgdmlld3BvcnQgdmFsdWVz
IHRvIGluaXRpYWwgdmFsdWVzIHRvIGlnbm9yZSBVQSBzdHlsZXNoZWV0LiAqLworICAgQC13ZWJr
aXQtdmlld3BvcnQgeworICAgIHdpZHRoOiBhdXRvOworICAgIGhlaWdodDogYXV0bzsKKyAgICB6
b29tOiBhdXRvOworICAgIG1pbi16b29tOiBhdXRvOworICAgIG1heC16b29tOiBhdXRvOworICAg
IHVzZXItem9vbTogem9vbTsKKyAgICBvcmllbnRhdGlvbjogYXV0bzsKKyAgICByZXNvbHV0aW9u
OiBhdXRvOworICAgfQorICBdXT48L3N0eWxlPgorICA8c3R5bGUgdHlwZT0idGV4dC9jc3MiPjwh
W0NEQVRBWworICAgLyogQ1NTIGZvciB0aGUgdGVzdCBiZWxvdy4gKi8KKyAgIEAtd2Via2l0LXZp
ZXdwb3J0IHsgd2lkdGg6IDFweDsgaGVpZ2h0OiAxcHg7IHpvb206IDUwJSB9CisgICAvKiBTZXQg
cm9vdCBlbGVtZW50IGZvbnQtc2l6ZSB0byBzb21ldGhpbmcgZGlmZmVyZW50IGZyb20gdGhlIGlu
aXRpYWwKKyAgICAgIGZvbnQtc2l6ZSB0byBtYWtlIHN1cmUgJ3JlbScgYW5kICdlbScgZm9yIEB2
aWV3cG9ydCBpcyBiYXNlZCBvbiB0aGUKKyAgICAgIGluaXRpYWwgZm9udC1zaXplLCBub3QgdGhl
IHJvb3QgZWxlbWVudCBmb250LXNpemUuICovCisgICBodG1sIHsgZm9udC1zaXplOiAycmVtOyB9
CisgICBib2R5IHsgZm9udC1zaXplOiAwLjVyZW07IH0KKyAgXV0+PC9zdHlsZT4KKyAgPHNjcmlw
dCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPjwhW0NEQVRBWworICAgdmFyIHRlc3QgPSBhc3luY190
ZXN0KCJDU1MgVGVzdDogQHZpZXdwb3J0IGNvbnN0cmFpbmVkIC0gZXh0ZW5kZWQgd2lkdGggYW5k
IGhlaWdodCBmb3Igbm9uLWF1dG8gem9vbS4iKTsKKyAgIHdpbmRvdy5vbmxvYWQgPSBmdW5jdGlv
bigpeworCisgICAgdmFyIHRlc3RTdHlsZVNoZWV0ID0gZG9jdW1lbnQuc3R5bGVTaGVldHMuaXRl
bSgxKTsKKworICAgIC8qIERpc2FibGUgdGhlIHN0eWxlc2hlZXQgdGhhdCBjb250YWlucyB0aGUg
QHZpZXdwb3J0IHRvIHRlc3QuICovCisgICAgdGVzdFN0eWxlU2hlZXQuZGlzYWJsZWQgPSB0cnVl
OworCisgICAgLyogSW5pdGlhbGl6ZSBhbiBvYmplY3QgdG8gc3RvcmUgdmlld3BvcnQgdmFsdWVz
IHRvIGJlIHVzZWQgYnkgdGhlIHRlc3QKKyAgICAgICBhc3NlcnRzLiAqLworICAgIHZhciB2aWV3
cG9ydCA9IG5ldyBPYmplY3QoKTsKKworICAgIC8qIEFuIGVsZW1lbnQgd2l0aCB0aGUgc2FtZSBz
aXplIGFzIHRoZSBpbml0aWFsIGNvbnRhaW5pbmcgYmxvY2suICovCisgICAgdmFyIHRlc3RFbG0g
PSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidGVzdCIpOworCisgICAgLyogUmV0cmlldmUgdGhl
IGluaXRpYWwgdmlld3BvcnQgdmFsdWVzIGJlZm9yZSBhcHBseWluZyB0aGUgQHZpZXdwb3J0IHRv
CisgICAgICAgdGVzdC4gKi8KKyAgICB2aWV3cG9ydC5pbml0aWFsV2lkdGggPSB0ZXN0RWxtLm9m
ZnNldFdpZHRoOworICAgIHZpZXdwb3J0LmluaXRpYWxIZWlnaHQgPSB0ZXN0RWxtLm9mZnNldEhl
aWdodDsKKyAgICB2aWV3cG9ydC5mb250U2l6ZSA9IHBhcnNlSW50KGdldENvbXB1dGVkU3R5bGUo
dGVzdEVsbSwgIiIpLmZvbnRTaXplKTsKKworICAgIC8qIEVuYWJsZSB0aGUgc3R5bGVzaGVldCB0
aGF0IGNvbnRhaW5zIHRoZSBAdmlld3BvcnQgdG8gdGVzdC4gKi8KKyAgICB0ZXN0U3R5bGVTaGVl
dC5kaXNhYmxlZCA9IGZhbHNlOworCisgICAgLyogUmV0cmlldmUgdGhlIGFjdHVhbCB2aWV3cG9y
dCB2YWx1ZXMgZm9yIHRoZSB0ZXN0LiAqLworICAgIHZpZXdwb3J0LmFjdHVhbFdpZHRoID0gdGVz
dEVsbS5vZmZzZXRXaWR0aDsKKyAgICB2aWV3cG9ydC5hY3R1YWxIZWlnaHQgPSB0ZXN0RWxtLm9m
ZnNldEhlaWdodDsKKyAgICB2aWV3cG9ydC56b29tID0gdmlld3BvcnQuaW5pdGlhbFdpZHRoIC8g
d2luZG93LmlubmVyV2lkdGg7CisKKyAgICAvKiBDaGVjayB2aWV3cG9ydCB2YWx1ZXMuICovCisg
ICAgdGVzdC5zdGVwKGZ1bmN0aW9uKCl7CisgICAgICAgIGFzc2VydF9lcXVhbHModmlld3BvcnQu
YWN0dWFsV2lkdGgsIDIqdmlld3BvcnQuaW5pdGlhbFdpZHRoKTsgYXNzZXJ0X2FwcHJveF9lcXVh
bHModmlld3BvcnQuYWN0dWFsSGVpZ2h0LCAyKnZpZXdwb3J0LmluaXRpYWxIZWlnaHQsIDEpOwor
ICAgIH0pOworCisgICAgLyogRmluaXNoZWQuIFNob3cgdGhlIHJlc3VsdHMuICovCisgICAgdGVz
dC5kb25lKCk7CisgICAgdGVzdFN0eWxlU2hlZXQuZGlzYWJsZWQgPSB0cnVlOworICAgIGRvY3Vt
ZW50LmdldEVsZW1lbnRCeUlkKCJsb2ciKS5zdHlsZS5kaXNwbGF5ID0gImJsb2NrIjsKKyAgIH0K
KyAgXV0+PC9zY3JpcHQ+CisgPC9oZWFkPgorIDxib2R5PgorICA8ZGl2IGlkPSJ0ZXN0Ij4KKyAg
IDxkaXYgaWQ9ImxvZyI+PC9kaXY+CisgIDwvZGl2PgorIDwvYm9keT4KKzwvaHRtbD4KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2NzczMvZGV2aWNlLWFkYXB0L29wZXJhL3N5bnRheC0wMDEtZXhw
ZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvY3NzMy9kZXZpY2UtYWRhcHQvb3BlcmEvc3ludGF4LTAw
MS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZGQwNjkwOWFkZDJkMGRiMzE0ZTc3MTIzMzJkM2Jk
OTQ3OWVjMzU5OQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2NzczMvZGV2aWNlLWFk
YXB0L29wZXJhL3N5bnRheC0wMDEtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMyBAQAorCitQQVNT
IENTUyBUZXN0OiBAdmlld3BvcnQgc3ludGF4IC0gaW5zaWRlIEBtZWRpYSAKKwpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvY3NzMy9kZXZpY2UtYWRhcHQvb3BlcmEvc3ludGF4LTAwMS54aHRtbCBi
L0xheW91dFRlc3RzL2NzczMvZGV2aWNlLWFkYXB0L29wZXJhL3N5bnRheC0wMDEueGh0bWwKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uMWI2MjZjYmQwYmM0YWU5ZmJmMTVkNGZkMDNiZDRjZDZkMTU3NjQ4YQotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL2NzczMvZGV2aWNlLWFkYXB0L29wZXJhL3N5bnRheC0w
MDEueGh0bWwKQEAgLTAsMCArMSw4NCBAQAorPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0i
VVRGLTgiPz4KKzwhRE9DVFlQRSBodG1sIFBVQkxJQyAiLS8vVzNDLy9EVEQgWEhUTUwgMS4wIFN0
cmljdC8vRU4iICJodHRwOi8vd3d3LnczLm9yZy9UUi94aHRtbDEvRFREL3hodG1sMS1zdHJpY3Qu
ZHRkIj4KKzxodG1sIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sIj4KKyA8aGVh
ZD4KKyAgPHRpdGxlPkNTUyBUZXN0OiBAdmlld3BvcnQgc3ludGF4IC0gaW5zaWRlIEBtZWRpYTwv
dGl0bGU+CisgIDxsaW5rIHJlbD0iYXV0aG9yIiB0aXRsZT0iUnVuZSBMaWxsZXN2ZWVuIiBocmVm
PSJtYWlsdG86cnVuZUBvcGVyYS5jb20iLz4KKyAgPGxpbmsgcmVsPSJoZWxwIiBocmVmPSJodHRw
Oi8vd3d3LnczLm9yZy9UUi9jc3MtZGV2aWNlLWFkYXB0LyNzeW50YXgiLz4KKyAgPG1ldGEgbmFt
ZT0iZmxhZ3MiIGNvbnRlbnQ9InZpc3VhbCBzY3JvbGwgZG9tIiAvPgorICA8bWV0YSBuYW1lPSJh
c3NlcnQiIGNvbnRlbnQ9IkB2aWV3cG9ydCBpcyBhbGxvd2VkIGluc2lkZSBAbWVkaWEuIi8+Cisg
IDxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiIHR5cGU9InRl
eHQvamF2YXNjcmlwdCIgLz4KKyAgPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0
aGFybmVzc3JlcG9ydC5qcyIgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiAvPgorICA8c3R5bGUgdHlw
ZT0idGV4dC9jc3MiPjwhW0NEQVRBWworICAgYm9keSB7IG1hcmdpbjogMDsgfQorICAgaHRtbCwg
Ym9keSwgI3Rlc3QgeyB3aWR0aDogMTAwJTsgaGVpZ2h0OiAxMDAlOyB9CisgICAjbG9nIHsgcGFk
ZGluZzogMWVtOyBkaXNwbGF5OiBub25lOyB9CisgICAvKiBSZXNldCB2aWV3cG9ydCB2YWx1ZXMg
dG8gaW5pdGlhbCB2YWx1ZXMgdG8gaWdub3JlIFVBIHN0eWxlc2hlZXQuICovCisgICBALXdlYmtp
dC12aWV3cG9ydCB7CisgICAgd2lkdGg6IGF1dG87CisgICAgaGVpZ2h0OiBhdXRvOworICAgIHpv
b206IGF1dG87CisgICAgbWluLXpvb206IGF1dG87CisgICAgbWF4LXpvb206IGF1dG87CisgICAg
dXNlci16b29tOiB6b29tOworICAgIG9yaWVudGF0aW9uOiBhdXRvOworICAgIHJlc29sdXRpb246
IGF1dG87CisgICB9CisgIF1dPjwvc3R5bGU+CisgIDxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyI+PCFb
Q0RBVEFbCisgICAvKiBDU1MgZm9yIHRoZSB0ZXN0IGJlbG93LiAqLworICAgQG1lZGlhIGFsbCB7
IEAtd2Via2l0LXZpZXdwb3J0IHsgd2lkdGg6IDUwMHB4OyB9IH0KKyAgIC8qIFNldCByb290IGVs
ZW1lbnQgZm9udC1zaXplIHRvIHNvbWV0aGluZyBkaWZmZXJlbnQgZnJvbSB0aGUgaW5pdGlhbAor
ICAgICAgZm9udC1zaXplIHRvIG1ha2Ugc3VyZSAncmVtJyBhbmQgJ2VtJyBmb3IgQHZpZXdwb3J0
IGlzIGJhc2VkIG9uIHRoZQorICAgICAgaW5pdGlhbCBmb250LXNpemUsIG5vdCB0aGUgcm9vdCBl
bGVtZW50IGZvbnQtc2l6ZS4gKi8KKyAgIGh0bWwgeyBmb250LXNpemU6IDJyZW07IH0KKyAgIGJv
ZHkgeyBmb250LXNpemU6IDAuNXJlbTsgfQorICBdXT48L3N0eWxlPgorICA8c2NyaXB0IHR5cGU9
InRleHQvamF2YXNjcmlwdCI+PCFbQ0RBVEFbCisgICB2YXIgdGVzdCA9IGFzeW5jX3Rlc3QoIkNT
UyBUZXN0OiBAdmlld3BvcnQgc3ludGF4IC0gaW5zaWRlIEBtZWRpYSIpOworICAgd2luZG93Lm9u
bG9hZCA9IGZ1bmN0aW9uKCl7CisKKyAgICB2YXIgdGVzdFN0eWxlU2hlZXQgPSBkb2N1bWVudC5z
dHlsZVNoZWV0cy5pdGVtKDEpOworCisgICAgLyogRGlzYWJsZSB0aGUgc3R5bGVzaGVldCB0aGF0
IGNvbnRhaW5zIHRoZSBAdmlld3BvcnQgdG8gdGVzdC4gKi8KKyAgICB0ZXN0U3R5bGVTaGVldC5k
aXNhYmxlZCA9IHRydWU7CisKKyAgICAvKiBJbml0aWFsaXplIGFuIG9iamVjdCB0byBzdG9yZSB2
aWV3cG9ydCB2YWx1ZXMgdG8gYmUgdXNlZCBieSB0aGUgdGVzdAorICAgICAgIGFzc2VydHMuICov
CisgICAgdmFyIHZpZXdwb3J0ID0gbmV3IE9iamVjdCgpOworCisgICAgLyogQW4gZWxlbWVudCB3
aXRoIHRoZSBzYW1lIHNpemUgYXMgdGhlIGluaXRpYWwgY29udGFpbmluZyBibG9jay4gKi8KKyAg
ICB2YXIgdGVzdEVsbSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0ZXN0Iik7CisKKyAgICAv
KiBSZXRyaWV2ZSB0aGUgaW5pdGlhbCB2aWV3cG9ydCB2YWx1ZXMgYmVmb3JlIGFwcGx5aW5nIHRo
ZSBAdmlld3BvcnQgdG8KKyAgICAgICB0ZXN0LiAqLworICAgIHZpZXdwb3J0LmluaXRpYWxXaWR0
aCA9IHRlc3RFbG0ub2Zmc2V0V2lkdGg7CisgICAgdmlld3BvcnQuaW5pdGlhbEhlaWdodCA9IHRl
c3RFbG0ub2Zmc2V0SGVpZ2h0OworICAgIHZpZXdwb3J0LmZvbnRTaXplID0gcGFyc2VJbnQoZ2V0
Q29tcHV0ZWRTdHlsZSh0ZXN0RWxtLCAiIikuZm9udFNpemUpOworCisgICAgLyogRW5hYmxlIHRo
ZSBzdHlsZXNoZWV0IHRoYXQgY29udGFpbnMgdGhlIEB2aWV3cG9ydCB0byB0ZXN0LiAqLworICAg
IHRlc3RTdHlsZVNoZWV0LmRpc2FibGVkID0gZmFsc2U7CisKKyAgICAvKiBSZXRyaWV2ZSB0aGUg
YWN0dWFsIHZpZXdwb3J0IHZhbHVlcyBmb3IgdGhlIHRlc3QuICovCisgICAgdmlld3BvcnQuYWN0
dWFsV2lkdGggPSB0ZXN0RWxtLm9mZnNldFdpZHRoOworICAgIHZpZXdwb3J0LmFjdHVhbEhlaWdo
dCA9IHRlc3RFbG0ub2Zmc2V0SGVpZ2h0OworICAgIHZpZXdwb3J0Lnpvb20gPSB2aWV3cG9ydC5p
bml0aWFsV2lkdGggLyB3aW5kb3cuaW5uZXJXaWR0aDsKKworICAgIC8qIENoZWNrIHZpZXdwb3J0
IHZhbHVlcy4gKi8KKyAgICB0ZXN0LnN0ZXAoZnVuY3Rpb24oKXsKKyAgICAgICAgYXNzZXJ0X2Vx
dWFscyh2aWV3cG9ydC5hY3R1YWxXaWR0aCwgNTAwKTsKKyAgICB9KTsKKworICAgIC8qIEZpbmlz
aGVkLiBTaG93IHRoZSByZXN1bHRzLiAqLworICAgIHRlc3QuZG9uZSgpOworICAgIHRlc3RTdHls
ZVNoZWV0LmRpc2FibGVkID0gdHJ1ZTsKKyAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgibG9n
Iikuc3R5bGUuZGlzcGxheSA9ICJibG9jayI7CisgICB9CisgIF1dPjwvc2NyaXB0PgorIDwvaGVh
ZD4KKyA8Ym9keT4KKyAgPGRpdiBpZD0idGVzdCI+CisgICA8ZGl2IGlkPSJsb2ciPjwvZGl2Pgor
ICA8L2Rpdj4KKyA8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9jc3Mz
L2RldmljZS1hZGFwdC9vcGVyYS9zeW50YXgtMDAyLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3Rz
L2NzczMvZGV2aWNlLWFkYXB0L29wZXJhL3N5bnRheC0wMDItZXhwZWN0ZWQudHh0Cm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLmIzNGZjYmQ3MWIwZDQ0NGVhN2Y0MmM3ZjRmMTQzZjliZTNkMzA4MDYKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy9jc3MzL2RldmljZS1hZGFwdC9vcGVyYS9zeW50YXgtMDAyLWV4
cGVjdGVkLnR4dApAQCAtMCwwICsxLDMgQEAKKworUEFTUyBDU1MgVGVzdDogQHZpZXdwb3J0IHN5
bnRheCAtIHVua25vd24gZGVzY3JpcHRvciAKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvY3Nz
My9kZXZpY2UtYWRhcHQvb3BlcmEvc3ludGF4LTAwMi54aHRtbCBiL0xheW91dFRlc3RzL2NzczMv
ZGV2aWNlLWFkYXB0L29wZXJhL3N5bnRheC0wMDIueGh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNGUwZGMyYjZi
NmMyNTc5N2M4NWRmN2NmZWRlMDNkMDYyNDhlMzdjZgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL2NzczMvZGV2aWNlLWFkYXB0L29wZXJhL3N5bnRheC0wMDIueGh0bWwKQEAgLTAsMCAr
MSw4NCBAQAorPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KKzwhRE9DVFlQ
RSBodG1sIFBVQkxJQyAiLS8vVzNDLy9EVEQgWEhUTUwgMS4wIFN0cmljdC8vRU4iICJodHRwOi8v
d3d3LnczLm9yZy9UUi94aHRtbDEvRFREL3hodG1sMS1zdHJpY3QuZHRkIj4KKzxodG1sIHhtbG5z
PSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sIj4KKyA8aGVhZD4KKyAgPHRpdGxlPkNTUyBU
ZXN0OiBAdmlld3BvcnQgc3ludGF4IC0gdW5rbm93biBkZXNjcmlwdG9yPC90aXRsZT4KKyAgPGxp
bmsgcmVsPSJhdXRob3IiIHRpdGxlPSJSdW5lIExpbGxlc3ZlZW4iIGhyZWY9Im1haWx0bzpydW5l
QG9wZXJhLmNvbSIvPgorICA8bGluayByZWw9ImhlbHAiIGhyZWY9Imh0dHA6Ly93d3cudzMub3Jn
L1RSL2Nzcy1kZXZpY2UtYWRhcHQvI3N5bnRheCIvPgorICA8bWV0YSBuYW1lPSJmbGFncyIgY29u
dGVudD0idmlzdWFsIHNjcm9sbCBkb20gaW52YWxpZCIgLz4KKyAgPG1ldGEgbmFtZT0iYXNzZXJ0
IiBjb250ZW50PSJEZXNjcmlwdG9ycyBhZnRlciB1bmtub3duIGRlc2NyaXB0b3IgZGVjbGFyYXRp
b24gaW4gQHZpZXdwb3J0IGlzIHJlY29nbml6ZWQuIi8+CisgIDxzY3JpcHQgc3JjPSIuLi8uLi8u
Li9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiIHR5cGU9InRleHQvamF2YXNjcmlwdCIgLz4KKyAg
PHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyIgdHlw
ZT0idGV4dC9qYXZhc2NyaXB0IiAvPgorICA8c3R5bGUgdHlwZT0idGV4dC9jc3MiPjwhW0NEQVRB
WworICAgYm9keSB7IG1hcmdpbjogMDsgfQorICAgaHRtbCwgYm9keSwgI3Rlc3QgeyB3aWR0aDog
MTAwJTsgaGVpZ2h0OiAxMDAlOyB9CisgICAjbG9nIHsgcGFkZGluZzogMWVtOyBkaXNwbGF5OiBu
b25lOyB9CisgICAvKiBSZXNldCB2aWV3cG9ydCB2YWx1ZXMgdG8gaW5pdGlhbCB2YWx1ZXMgdG8g
aWdub3JlIFVBIHN0eWxlc2hlZXQuICovCisgICBALXdlYmtpdC12aWV3cG9ydCB7CisgICAgd2lk
dGg6IGF1dG87CisgICAgaGVpZ2h0OiBhdXRvOworICAgIHpvb206IGF1dG87CisgICAgbWluLXpv
b206IGF1dG87CisgICAgbWF4LXpvb206IGF1dG87CisgICAgdXNlci16b29tOiB6b29tOworICAg
IG9yaWVudGF0aW9uOiBhdXRvOworICAgIHJlc29sdXRpb246IGF1dG87CisgICB9CisgIF1dPjwv
c3R5bGU+CisgIDxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyI+PCFbQ0RBVEFbCisgICAvKiBDU1MgZm9y
IHRoZSB0ZXN0IGJlbG93LiAqLworICAgQC13ZWJraXQtdmlld3BvcnQgeyBhOiBiOyB3aWR0aDog
NTAwcHggfQorICAgLyogU2V0IHJvb3QgZWxlbWVudCBmb250LXNpemUgdG8gc29tZXRoaW5nIGRp
ZmZlcmVudCBmcm9tIHRoZSBpbml0aWFsCisgICAgICBmb250LXNpemUgdG8gbWFrZSBzdXJlICdy
ZW0nIGFuZCAnZW0nIGZvciBAdmlld3BvcnQgaXMgYmFzZWQgb24gdGhlCisgICAgICBpbml0aWFs
IGZvbnQtc2l6ZSwgbm90IHRoZSByb290IGVsZW1lbnQgZm9udC1zaXplLiAqLworICAgaHRtbCB7
IGZvbnQtc2l6ZTogMnJlbTsgfQorICAgYm9keSB7IGZvbnQtc2l6ZTogMC41cmVtOyB9CisgIF1d
Pjwvc3R5bGU+CisgIDxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij48IVtDREFUQVsKKyAg
IHZhciB0ZXN0ID0gYXN5bmNfdGVzdCgiQ1NTIFRlc3Q6IEB2aWV3cG9ydCBzeW50YXggLSB1bmtu
b3duIGRlc2NyaXB0b3IiKTsKKyAgIHdpbmRvdy5vbmxvYWQgPSBmdW5jdGlvbigpeworCisgICAg
dmFyIHRlc3RTdHlsZVNoZWV0ID0gZG9jdW1lbnQuc3R5bGVTaGVldHMuaXRlbSgxKTsKKworICAg
IC8qIERpc2FibGUgdGhlIHN0eWxlc2hlZXQgdGhhdCBjb250YWlucyB0aGUgQHZpZXdwb3J0IHRv
IHRlc3QuICovCisgICAgdGVzdFN0eWxlU2hlZXQuZGlzYWJsZWQgPSB0cnVlOworCisgICAgLyog
SW5pdGlhbGl6ZSBhbiBvYmplY3QgdG8gc3RvcmUgdmlld3BvcnQgdmFsdWVzIHRvIGJlIHVzZWQg
YnkgdGhlIHRlc3QKKyAgICAgICBhc3NlcnRzLiAqLworICAgIHZhciB2aWV3cG9ydCA9IG5ldyBP
YmplY3QoKTsKKworICAgIC8qIEFuIGVsZW1lbnQgd2l0aCB0aGUgc2FtZSBzaXplIGFzIHRoZSBp
bml0aWFsIGNvbnRhaW5pbmcgYmxvY2suICovCisgICAgdmFyIHRlc3RFbG0gPSBkb2N1bWVudC5n
ZXRFbGVtZW50QnlJZCgidGVzdCIpOworCisgICAgLyogUmV0cmlldmUgdGhlIGluaXRpYWwgdmll
d3BvcnQgdmFsdWVzIGJlZm9yZSBhcHBseWluZyB0aGUgQHZpZXdwb3J0IHRvCisgICAgICAgdGVz
dC4gKi8KKyAgICB2aWV3cG9ydC5pbml0aWFsV2lkdGggPSB0ZXN0RWxtLm9mZnNldFdpZHRoOwor
ICAgIHZpZXdwb3J0LmluaXRpYWxIZWlnaHQgPSB0ZXN0RWxtLm9mZnNldEhlaWdodDsKKyAgICB2
aWV3cG9ydC5mb250U2l6ZSA9IHBhcnNlSW50KGdldENvbXB1dGVkU3R5bGUodGVzdEVsbSwgIiIp
LmZvbnRTaXplKTsKKworICAgIC8qIEVuYWJsZSB0aGUgc3R5bGVzaGVldCB0aGF0IGNvbnRhaW5z
IHRoZSBAdmlld3BvcnQgdG8gdGVzdC4gKi8KKyAgICB0ZXN0U3R5bGVTaGVldC5kaXNhYmxlZCA9
IGZhbHNlOworCisgICAgLyogUmV0cmlldmUgdGhlIGFjdHVhbCB2aWV3cG9ydCB2YWx1ZXMgZm9y
IHRoZSB0ZXN0LiAqLworICAgIHZpZXdwb3J0LmFjdHVhbFdpZHRoID0gdGVzdEVsbS5vZmZzZXRX
aWR0aDsKKyAgICB2aWV3cG9ydC5hY3R1YWxIZWlnaHQgPSB0ZXN0RWxtLm9mZnNldEhlaWdodDsK
KyAgICB2aWV3cG9ydC56b29tID0gdmlld3BvcnQuaW5pdGlhbFdpZHRoIC8gd2luZG93LmlubmVy
V2lkdGg7CisKKyAgICAvKiBDaGVjayB2aWV3cG9ydCB2YWx1ZXMuICovCisgICAgdGVzdC5zdGVw
KGZ1bmN0aW9uKCl7CisgICAgICAgIGFzc2VydF9lcXVhbHModmlld3BvcnQuYWN0dWFsV2lkdGgs
IDUwMCk7CisgICAgfSk7CisKKyAgICAvKiBGaW5pc2hlZC4gU2hvdyB0aGUgcmVzdWx0cy4gKi8K
KyAgICB0ZXN0LmRvbmUoKTsKKyAgICB0ZXN0U3R5bGVTaGVldC5kaXNhYmxlZCA9IHRydWU7Cisg
ICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImxvZyIpLnN0eWxlLmRpc3BsYXkgPSAiYmxvY2si
OworICAgfQorICBdXT48L3NjcmlwdD4KKyA8L2hlYWQ+CisgPGJvZHk+CisgIDxkaXYgaWQ9InRl
c3QiPgorICAgPGRpdiBpZD0ibG9nIj48L2Rpdj4KKyAgPC9kaXY+CisgPC9ib2R5PgorPC9odG1s
PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvY3NzMy9kZXZpY2UtYWRhcHQvb3BlcmEvc3ludGF4
LTAwMy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9jc3MzL2RldmljZS1hZGFwdC9vcGVyYS9z
eW50YXgtMDAzLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40ZThlMzVlNzA1MzFkNmFjMTUzN2U4
N2M1ZjJmNTY5NDVhYzc5ZDA2Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvY3NzMy9k
ZXZpY2UtYWRhcHQvb3BlcmEvc3ludGF4LTAwMy1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwzIEBA
CisKK1BBU1MgQ1NTIFRlc3Q6IEB2aWV3cG9ydCBzeW50YXggLSBkZXNjcmlwdG9yIHJlY292ZXJ5
IAorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9jc3MzL2RldmljZS1hZGFwdC9vcGVyYS9zeW50
YXgtMDAzLnhodG1sIGIvTGF5b3V0VGVzdHMvY3NzMy9kZXZpY2UtYWRhcHQvb3BlcmEvc3ludGF4
LTAwMy54aHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mN2YxZDJhNzU5YjE2M2MyNWE5YjcwOGZkODE1NGZlN2Yw
ZDNjYTEzCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvY3NzMy9kZXZpY2UtYWRhcHQv
b3BlcmEvc3ludGF4LTAwMy54aHRtbApAQCAtMCwwICsxLDg0IEBACis8P3htbCB2ZXJzaW9uPSIx
LjAiIGVuY29kaW5nPSJVVEYtOCI/PgorPCFET0NUWVBFIGh0bWwgUFVCTElDICItLy9XM0MvL0RU
RCBYSFRNTCAxLjAgU3RyaWN0Ly9FTiIgImh0dHA6Ly93d3cudzMub3JnL1RSL3hodG1sMS9EVEQv
eGh0bWwxLXN0cmljdC5kdGQiPgorPGh0bWwgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkv
eGh0bWwiPgorIDxoZWFkPgorICA8dGl0bGU+Q1NTIFRlc3Q6IEB2aWV3cG9ydCBzeW50YXggLSBk
ZXNjcmlwdG9yIHJlY292ZXJ5PC90aXRsZT4KKyAgPGxpbmsgcmVsPSJhdXRob3IiIHRpdGxlPSJS
dW5lIExpbGxlc3ZlZW4iIGhyZWY9Im1haWx0bzpydW5lQG9wZXJhLmNvbSIvPgorICA8bGluayBy
ZWw9ImhlbHAiIGhyZWY9Imh0dHA6Ly93d3cudzMub3JnL1RSL2Nzcy1kZXZpY2UtYWRhcHQvI3N5
bnRheCIvPgorICA8bWV0YSBuYW1lPSJmbGFncyIgY29udGVudD0idmlzdWFsIHNjcm9sbCBkb20g
aW52YWxpZCIgLz4KKyAgPG1ldGEgbmFtZT0iYXNzZXJ0IiBjb250ZW50PSJAdmlld3BvcnQgc3Vw
cG9ydHMgZm9yd2FyZCBjb21wYXRpYmxlIHBhcnNpbmcgZm9yIGRlc2NyaXB0b3JzLiIvPgorICA8
c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIiB0eXBlPSJ0ZXh0
L2phdmFzY3JpcHQiIC8+CisgIDxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhh
cm5lc3NyZXBvcnQuanMiIHR5cGU9InRleHQvamF2YXNjcmlwdCIgLz4KKyAgPHN0eWxlIHR5cGU9
InRleHQvY3NzIj48IVtDREFUQVsKKyAgIGJvZHkgeyBtYXJnaW46IDA7IH0KKyAgIGh0bWwsIGJv
ZHksICN0ZXN0IHsgd2lkdGg6IDEwMCU7IGhlaWdodDogMTAwJTsgfQorICAgI2xvZyB7IHBhZGRp
bmc6IDFlbTsgZGlzcGxheTogbm9uZTsgfQorICAgLyogUmVzZXQgdmlld3BvcnQgdmFsdWVzIHRv
IGluaXRpYWwgdmFsdWVzIHRvIGlnbm9yZSBVQSBzdHlsZXNoZWV0LiAqLworICAgQC13ZWJraXQt
dmlld3BvcnQgeworICAgIHdpZHRoOiBhdXRvOworICAgIGhlaWdodDogYXV0bzsKKyAgICB6b29t
OiBhdXRvOworICAgIG1pbi16b29tOiBhdXRvOworICAgIG1heC16b29tOiBhdXRvOworICAgIHVz
ZXItem9vbTogem9vbTsKKyAgICBvcmllbnRhdGlvbjogYXV0bzsKKyAgICByZXNvbHV0aW9uOiBh
dXRvOworICAgfQorICBdXT48L3N0eWxlPgorICA8c3R5bGUgdHlwZT0idGV4dC9jc3MiPjwhW0NE
QVRBWworICAgLyogQ1NTIGZvciB0aGUgdGVzdCBiZWxvdy4gKi8KKyAgIEAtd2Via2l0LXZpZXdw
b3J0IHsgd2lkdGg6IDUwMHB4OyB3aWR0aDogMjAwcHggeDogeyAhaW1wb3J0YW50IFtdfTsgaGVp
Z2h0OiA3MDBweCB9CisgICAvKiBTZXQgcm9vdCBlbGVtZW50IGZvbnQtc2l6ZSB0byBzb21ldGhp
bmcgZGlmZmVyZW50IGZyb20gdGhlIGluaXRpYWwKKyAgICAgIGZvbnQtc2l6ZSB0byBtYWtlIHN1
cmUgJ3JlbScgYW5kICdlbScgZm9yIEB2aWV3cG9ydCBpcyBiYXNlZCBvbiB0aGUKKyAgICAgIGlu
aXRpYWwgZm9udC1zaXplLCBub3QgdGhlIHJvb3QgZWxlbWVudCBmb250LXNpemUuICovCisgICBo
dG1sIHsgZm9udC1zaXplOiAycmVtOyB9CisgICBib2R5IHsgZm9udC1zaXplOiAwLjVyZW07IH0K
KyAgXV0+PC9zdHlsZT4KKyAgPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPjwhW0NEQVRB
WworICAgdmFyIHRlc3QgPSBhc3luY190ZXN0KCJDU1MgVGVzdDogQHZpZXdwb3J0IHN5bnRheCAt
IGRlc2NyaXB0b3IgcmVjb3ZlcnkiKTsKKyAgIHdpbmRvdy5vbmxvYWQgPSBmdW5jdGlvbigpewor
CisgICAgdmFyIHRlc3RTdHlsZVNoZWV0ID0gZG9jdW1lbnQuc3R5bGVTaGVldHMuaXRlbSgxKTsK
KworICAgIC8qIERpc2FibGUgdGhlIHN0eWxlc2hlZXQgdGhhdCBjb250YWlucyB0aGUgQHZpZXdw
b3J0IHRvIHRlc3QuICovCisgICAgdGVzdFN0eWxlU2hlZXQuZGlzYWJsZWQgPSB0cnVlOworCisg
ICAgLyogSW5pdGlhbGl6ZSBhbiBvYmplY3QgdG8gc3RvcmUgdmlld3BvcnQgdmFsdWVzIHRvIGJl
IHVzZWQgYnkgdGhlIHRlc3QKKyAgICAgICBhc3NlcnRzLiAqLworICAgIHZhciB2aWV3cG9ydCA9
IG5ldyBPYmplY3QoKTsKKworICAgIC8qIEFuIGVsZW1lbnQgd2l0aCB0aGUgc2FtZSBzaXplIGFz
IHRoZSBpbml0aWFsIGNvbnRhaW5pbmcgYmxvY2suICovCisgICAgdmFyIHRlc3RFbG0gPSBkb2N1
bWVudC5nZXRFbGVtZW50QnlJZCgidGVzdCIpOworCisgICAgLyogUmV0cmlldmUgdGhlIGluaXRp
YWwgdmlld3BvcnQgdmFsdWVzIGJlZm9yZSBhcHBseWluZyB0aGUgQHZpZXdwb3J0IHRvCisgICAg
ICAgdGVzdC4gKi8KKyAgICB2aWV3cG9ydC5pbml0aWFsV2lkdGggPSB0ZXN0RWxtLm9mZnNldFdp
ZHRoOworICAgIHZpZXdwb3J0LmluaXRpYWxIZWlnaHQgPSB0ZXN0RWxtLm9mZnNldEhlaWdodDsK
KyAgICB2aWV3cG9ydC5mb250U2l6ZSA9IHBhcnNlSW50KGdldENvbXB1dGVkU3R5bGUodGVzdEVs
bSwgIiIpLmZvbnRTaXplKTsKKworICAgIC8qIEVuYWJsZSB0aGUgc3R5bGVzaGVldCB0aGF0IGNv
bnRhaW5zIHRoZSBAdmlld3BvcnQgdG8gdGVzdC4gKi8KKyAgICB0ZXN0U3R5bGVTaGVldC5kaXNh
YmxlZCA9IGZhbHNlOworCisgICAgLyogUmV0cmlldmUgdGhlIGFjdHVhbCB2aWV3cG9ydCB2YWx1
ZXMgZm9yIHRoZSB0ZXN0LiAqLworICAgIHZpZXdwb3J0LmFjdHVhbFdpZHRoID0gdGVzdEVsbS5v
ZmZzZXRXaWR0aDsKKyAgICB2aWV3cG9ydC5hY3R1YWxIZWlnaHQgPSB0ZXN0RWxtLm9mZnNldEhl
aWdodDsKKyAgICB2aWV3cG9ydC56b29tID0gdmlld3BvcnQuaW5pdGlhbFdpZHRoIC8gd2luZG93
LmlubmVyV2lkdGg7CisKKyAgICAvKiBDaGVjayB2aWV3cG9ydCB2YWx1ZXMuICovCisgICAgdGVz
dC5zdGVwKGZ1bmN0aW9uKCl7CisgICAgICAgIGFzc2VydF9lcXVhbHModmlld3BvcnQuYWN0dWFs
V2lkdGgsIDUwMCk7IGFzc2VydF9lcXVhbHModmlld3BvcnQuYWN0dWFsSGVpZ2h0LCA3MDApOwor
ICAgIH0pOworCisgICAgLyogRmluaXNoZWQuIFNob3cgdGhlIHJlc3VsdHMuICovCisgICAgdGVz
dC5kb25lKCk7CisgICAgdGVzdFN0eWxlU2hlZXQuZGlzYWJsZWQgPSB0cnVlOworICAgIGRvY3Vt
ZW50LmdldEVsZW1lbnRCeUlkKCJsb2ciKS5zdHlsZS5kaXNwbGF5ID0gImJsb2NrIjsKKyAgIH0K
KyAgXV0+PC9zY3JpcHQ+CisgPC9oZWFkPgorIDxib2R5PgorICA8ZGl2IGlkPSJ0ZXN0Ij4KKyAg
IDxkaXYgaWQ9ImxvZyI+PC9kaXY+CisgIDwvZGl2PgorIDwvYm9keT4KKzwvaHRtbD4KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2VmbC9UZXN0RXhwZWN0YXRpb25zIGIvTGF5b3V0
VGVzdHMvcGxhdGZvcm0vZWZsL1Rlc3RFeHBlY3RhdGlvbnMKaW5kZXggZDVhZDVlNjhlNjZmNjBm
ZDI1NzhlNjNjMDY0Y2M4MmE3ZWZlNTZhOC4uMTMxMzc3Y2ZlMTg4NThkZmM3YjNlODk4NmMxNDAw
ZDZkYjhkYjE4OSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZWZsL1Rlc3RFeHBl
Y3RhdGlvbnMKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZWZsL1Rlc3RFeHBlY3RhdGlvbnMK
QEAgLTEyMTAsNiArMTIxMCwzMSBAQCB3ZWJraXQub3JnL2IvODQ4MzUgZWRpdGluZy9leGVjQ29t
bWFuZC80MTI4MDgwLTIuaHRtbCBbIEZhaWx1cmUgXQogd2Via2l0Lm9yZy9iLzg0ODM1IGVkaXRp
bmcvZXhlY0NvbW1hbmQvY29weS13aXRob3V0LXNlbGVjdGlvbi5odG1sIFsgRmFpbHVyZSBdCiB3
ZWJraXQub3JnL2IvODQ4MzUgZWRpdGluZy9leGVjQ29tbWFuZC9maW5kU3RyaW5nLWRpYWNyaXRp
Y2Fscy5odG1sIFsgRmFpbHVyZSBdCiAKKyMgVGhlc2UgdGVzdHMgYXJlIHBhc3Npbmcgd2hlbiBy
dW5uaW5nIG9uIHRoZSBNaW5pQnJvd3NlciwgYnV0IGZhaWxpbmcgb24KKyMgV2ViS2l0VGVzdFJ1
bm5lciBiZWNhdXNlIGl0IGRvZXNuJ3Qgc3VwcG9ydCBmaXhlZCBsYXlvdXQuCit3ZWJraXQub3Jn
L2IvMTAyNTE3IGNzczMvZGV2aWNlLWFkYXB0L29wZXJhL2Nhc2NhZGluZy0wMDEueGh0bWwgWyBG
YWlsdXJlIF0KK3dlYmtpdC5vcmcvYi8xMDI1MTcgY3NzMy9kZXZpY2UtYWRhcHQvb3BlcmEvY2Fz
Y2FkaW5nLTAwMi54aHRtbCBbIEZhaWx1cmUgXQord2Via2l0Lm9yZy9iLzEwMjUxNyBjc3MzL2Rl
dmljZS1hZGFwdC9vcGVyYS9jYXNjYWRpbmctMDAzLnhodG1sIFsgRmFpbHVyZSBdCit3ZWJraXQu
b3JnL2IvMTAyNTE3IGNzczMvZGV2aWNlLWFkYXB0L29wZXJhL2Nhc2NhZGluZy0wMDQueGh0bWwg
WyBGYWlsdXJlIF0KK3dlYmtpdC5vcmcvYi8xMDI1MTcgY3NzMy9kZXZpY2UtYWRhcHQvb3BlcmEv
Y29uc3RyYWluLTAwMS54aHRtbCBbIEZhaWx1cmUgXQord2Via2l0Lm9yZy9iLzEwMjUxNyBjc3Mz
L2RldmljZS1hZGFwdC9vcGVyYS9jb25zdHJhaW4tMDA0LnhodG1sIFsgRmFpbHVyZSBdCit3ZWJr
aXQub3JnL2IvMTAyNTE3IGNzczMvZGV2aWNlLWFkYXB0L29wZXJhL2NvbnN0cmFpbi0wMDUueGh0
bWwgWyBGYWlsdXJlIF0KK3dlYmtpdC5vcmcvYi8xMDI1MTcgY3NzMy9kZXZpY2UtYWRhcHQvb3Bl
cmEvY29uc3RyYWluLTAwNi54aHRtbCBbIEZhaWx1cmUgXQord2Via2l0Lm9yZy9iLzEwMjUxNyBj
c3MzL2RldmljZS1hZGFwdC9vcGVyYS9jb25zdHJhaW4tMDA3LnhodG1sIFsgRmFpbHVyZSBdCit3
ZWJraXQub3JnL2IvMTAyNTE3IGNzczMvZGV2aWNlLWFkYXB0L29wZXJhL2NvbnN0cmFpbi0wMDgu
eGh0bWwgWyBGYWlsdXJlIF0KK3dlYmtpdC5vcmcvYi8xMDI1MTcgY3NzMy9kZXZpY2UtYWRhcHQv
b3BlcmEvY29uc3RyYWluLTAwOS54aHRtbCBbIEZhaWx1cmUgXQord2Via2l0Lm9yZy9iLzEwMjUx
NyBjc3MzL2RldmljZS1hZGFwdC9vcGVyYS9jb25zdHJhaW4tMDEwLnhodG1sIFsgRmFpbHVyZSBd
Cit3ZWJraXQub3JnL2IvMTAyNTE3IGNzczMvZGV2aWNlLWFkYXB0L29wZXJhL2NvbnN0cmFpbi0w
MTEueGh0bWwgWyBGYWlsdXJlIF0KK3dlYmtpdC5vcmcvYi8xMDI1MTcgY3NzMy9kZXZpY2UtYWRh
cHQvb3BlcmEvY29uc3RyYWluLTAxMy54aHRtbCBbIEZhaWx1cmUgXQord2Via2l0Lm9yZy9iLzEw
MjUxNyBjc3MzL2RldmljZS1hZGFwdC9vcGVyYS9jb25zdHJhaW4tMDE0LnhodG1sIFsgRmFpbHVy
ZSBdCit3ZWJraXQub3JnL2IvMTAyNTE3IGNzczMvZGV2aWNlLWFkYXB0L29wZXJhL2NvbnN0cmFp
bi0wMTUueGh0bWwgWyBGYWlsdXJlIF0KK3dlYmtpdC5vcmcvYi8xMDI1MTcgY3NzMy9kZXZpY2Ut
YWRhcHQvb3BlcmEvY29uc3RyYWluLTAxNi54aHRtbCBbIEZhaWx1cmUgXQord2Via2l0Lm9yZy9i
LzEwMjUxNyBjc3MzL2RldmljZS1hZGFwdC9vcGVyYS9jb25zdHJhaW4tMDE3LnhodG1sIFsgRmFp
bHVyZSBdCit3ZWJraXQub3JnL2IvMTAyNTE3IGNzczMvZGV2aWNlLWFkYXB0L29wZXJhL2NvbnN0
cmFpbi0wMjAueGh0bWwgWyBGYWlsdXJlIF0KK3dlYmtpdC5vcmcvYi8xMDI1MTcgY3NzMy9kZXZp
Y2UtYWRhcHQvb3BlcmEvc3ludGF4LTAwMS54aHRtbCBbIEZhaWx1cmUgXQord2Via2l0Lm9yZy9i
LzEwMjUxNyBjc3MzL2RldmljZS1hZGFwdC9vcGVyYS9zeW50YXgtMDAyLnhodG1sIFsgRmFpbHVy
ZSBdCit3ZWJraXQub3JnL2IvMTAyNTE3IGNzczMvZGV2aWNlLWFkYXB0L29wZXJhL3N5bnRheC0w
MDMueGh0bWwgWyBGYWlsdXJlIF0KKwogIyBEUlQgZG9lc24ndCBjaGVjayBmb3IgaXNQcmludGlu
ZygpLgogd2Via2l0Lm9yZy9iLzg3MjI2IHByaW50aW5nL2lmcmFtZS1wcmludC5odG1sIFsgRmFp
bHVyZSBdCiB3ZWJraXQub3JnL2IvODcyMjYgcHJpbnRpbmcvbWVkaWEtcXVlcmllcy1wcmludC5o
dG1sIFsgTWlzc2luZyBdCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>174703</attachid>
            <date>2012-11-16 09:02:18 -0800</date>
            <delta_ts>2012-11-19 07:47:29 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-95964-20121116190418.patch</filename>
            <type>text/plain</type>
            <size>143770</size>
            <attacher name="Thiago Marcos P. Santos">tmpsantos</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM0OTQxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMjZlMjIxODAwMmRmMjQ1
ZTBlNmY3YzcwZmI1NzRjZDMzMjI0Y2RkYy4uNDQ1MGQ4OTUxYWQ0Y2M3OGFhYjkyMjkyNjZmMzBm
ZDYyNTM0OTM3MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDg4IEBACisyMDEyLTExLTE2ICBUaGlh
Z28gTWFyY29zIFAuIFNhbnRvcyAgPHRoaWFnby5zYW50b3NAaW50ZWwuY29tPgorCisgICAgICAg
IEFwcGx5IHRoZSByZXNvbHZlZCB2aWV3cG9ydCBydWxlcworICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTU5NjQKKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGlzIHBhdGNoIGltcGxlbWVudHMgdGhlIENTUyBE
ZXZpY2UgQWRhcHRhdGlvbiBzcGVjaWZpY2F0aW9uLiBUaGUKKyAgICAgICAgV2ViS2l0IGltcGxl
bWVudGF0aW9uIHJlbGllcyBvbiB0aGUgYWxyZWFkeSBpbXBsZW1lbnRlZCBWaWV3cG9ydCBNZXRh
CisgICAgICAgIGluZnJhc3RydWN0dXJlIHRvIG5vdGlmeSB0aGUgYnJvd3NlciBvZiB2aWV3cG9y
dCBjaGFuZ2VzLgorCisgICAgICAgIFRoZSBpbXBsZW1lbnRhdGlvbiB3YXMgdGVzdHMgd2l0aCBz
dWNjZXNzIG9uIHRoZSBRdCBhbmQgRUZMIHBvcnRzLCBidXQKKyAgICAgICAgYmFzaWNhbGx5IGV2
ZXJ5IHBvcnQgc3VwcG9ydGluZyBWaWV3cG9ydCBNZXRhIHNob3VsZCBiZSBmaW5lLgorCisgICAg
ICAgIFRoZSB1c2FnZSBvZiBALXdlYmtpdC12aWV3cG9ydCBpbnNpZGUgbWVkaWEgcXVlcmllcyAo
bW9yZSB0ZXN0cyBjb21pbmcKKyAgICAgICAgdG8gbWFwIGFsbCB0aGUgY29ybmVyIGNhc2VzKSBp
cyBjdXJyZW50bHkgbGltaXRlZCB3aGVuIHRoZSBtZWRpYSBxdWVyeQorICAgICAgICBkZXBlbmRz
IG9uIHRoZSB2aWV3cG9ydCBkaW1lbnNpb25zIGl0c2VsZi4gRGVmaW5pbmcgdGhlIHdpZHRoIGFu
ZCBoZWlnaHQKKyAgICAgICAgYmFzZWQgb24gc2NyZWVuIHNpemUgd2lsbCBmYWlsIG9uIHBvcnRz
IHJlcG9ydGluZyB0aGUgc2NyZWVuCisgICAgICAgIHNpemUgYXMgdGhlIHNpemUgb2YgdGhlIGJy
b3dzZXIgd2luZG93IGluc3RlYWQgb2YgdGhlIGRldmljZSBzY3JlZW4uCisKKyAgICAgICAgVGVz
dHM6IGNzczMvZGV2aWNlLWFkYXB0L29wZXJhL2Nhc2NhZGluZy0wMDEueGh0bWwKKyAgICAgICAg
ICAgICAgIGNzczMvZGV2aWNlLWFkYXB0L29wZXJhL2Nhc2NhZGluZy0wMDIueGh0bWwKKyAgICAg
ICAgICAgICAgIGNzczMvZGV2aWNlLWFkYXB0L29wZXJhL2Nhc2NhZGluZy0wMDMueGh0bWwKKyAg
ICAgICAgICAgICAgIGNzczMvZGV2aWNlLWFkYXB0L29wZXJhL2Nhc2NhZGluZy0wMDQueGh0bWwK
KyAgICAgICAgICAgICAgIGNzczMvZGV2aWNlLWFkYXB0L29wZXJhL2NvbnN0cmFpbi0wMDEueGh0
bWwKKyAgICAgICAgICAgICAgIGNzczMvZGV2aWNlLWFkYXB0L29wZXJhL2NvbnN0cmFpbi0wMDIu
eGh0bWwKKyAgICAgICAgICAgICAgIGNzczMvZGV2aWNlLWFkYXB0L29wZXJhL2NvbnN0cmFpbi0w
MDMueGh0bWwKKyAgICAgICAgICAgICAgIGNzczMvZGV2aWNlLWFkYXB0L29wZXJhL2NvbnN0cmFp
bi0wMDQueGh0bWwKKyAgICAgICAgICAgICAgIGNzczMvZGV2aWNlLWFkYXB0L29wZXJhL2NvbnN0
cmFpbi0wMDUueGh0bWwKKyAgICAgICAgICAgICAgIGNzczMvZGV2aWNlLWFkYXB0L29wZXJhL2Nv
bnN0cmFpbi0wMDYueGh0bWwKKyAgICAgICAgICAgICAgIGNzczMvZGV2aWNlLWFkYXB0L29wZXJh
L2NvbnN0cmFpbi0wMDcueGh0bWwKKyAgICAgICAgICAgICAgIGNzczMvZGV2aWNlLWFkYXB0L29w
ZXJhL2NvbnN0cmFpbi0wMDgueGh0bWwKKyAgICAgICAgICAgICAgIGNzczMvZGV2aWNlLWFkYXB0
L29wZXJhL2NvbnN0cmFpbi0wMDkueGh0bWwKKyAgICAgICAgICAgICAgIGNzczMvZGV2aWNlLWFk
YXB0L29wZXJhL2NvbnN0cmFpbi0wMTAueGh0bWwKKyAgICAgICAgICAgICAgIGNzczMvZGV2aWNl
LWFkYXB0L29wZXJhL2NvbnN0cmFpbi0wMTEueGh0bWwKKyAgICAgICAgICAgICAgIGNzczMvZGV2
aWNlLWFkYXB0L29wZXJhL2NvbnN0cmFpbi0wMTIueGh0bWwKKyAgICAgICAgICAgICAgIGNzczMv
ZGV2aWNlLWFkYXB0L29wZXJhL2NvbnN0cmFpbi0wMTMueGh0bWwKKyAgICAgICAgICAgICAgIGNz
czMvZGV2aWNlLWFkYXB0L29wZXJhL2NvbnN0cmFpbi0wMTQueGh0bWwKKyAgICAgICAgICAgICAg
IGNzczMvZGV2aWNlLWFkYXB0L29wZXJhL2NvbnN0cmFpbi0wMTUueGh0bWwKKyAgICAgICAgICAg
ICAgIGNzczMvZGV2aWNlLWFkYXB0L29wZXJhL2NvbnN0cmFpbi0wMTYueGh0bWwKKyAgICAgICAg
ICAgICAgIGNzczMvZGV2aWNlLWFkYXB0L29wZXJhL2NvbnN0cmFpbi0wMTcueGh0bWwKKyAgICAg
ICAgICAgICAgIGNzczMvZGV2aWNlLWFkYXB0L29wZXJhL2NvbnN0cmFpbi0wMjAueGh0bWwKKyAg
ICAgICAgICAgICAgIGNzczMvZGV2aWNlLWFkYXB0L29wZXJhL3N5bnRheC0wMDEueGh0bWwKKyAg
ICAgICAgICAgICAgIGNzczMvZGV2aWNlLWFkYXB0L29wZXJhL3N5bnRheC0wMDIueGh0bWwKKyAg
ICAgICAgICAgICAgIGNzczMvZGV2aWNlLWFkYXB0L29wZXJhL3N5bnRheC0wMDMueGh0bWwKKwor
ICAgICAgICAqIENNYWtlTGlzdHMudHh0OgorICAgICAgICAqIEdOVW1ha2VmaWxlLmxpc3QuYW06
CisgICAgICAgICogVGFyZ2V0LnByaToKKyAgICAgICAgKiBXZWJDb3JlLmd5cGk6CisgICAgICAg
ICogV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2o6CisgICAgICAgICogV2ViQ29yZS54Y29k
ZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIGNzcy9DU1NBbGxJbk9uZS5jcHA6Cisg
ICAgICAgICogY3NzL1J1bGVTZXQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UnVsZVNldDo6YWRk
UnVsZXNGcm9tU2hlZXQpOgorICAgICAgICAqIGNzcy9TdHlsZVJlc29sdmVyLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OlN0eWxlUmVzb2x2ZXI6OlN0eWxlUmVzb2x2ZXIpOgorICAgICAgICAoV2Vi
Q29yZTo6U3R5bGVSZXNvbHZlcjo6YXBwZW5kQXV0aG9yU3R5bGVTaGVldHMpOgorICAgICAgICAo
V2ViQ29yZTo6U3R5bGVSZXNvbHZlcjo6flN0eWxlUmVzb2x2ZXIpOgorICAgICAgICAqIGNzcy9T
dHlsZVJlc29sdmVyLmg6CisgICAgICAgIChTdHlsZVJlc29sdmVyKToKKyAgICAgICAgKFdlYkNv
cmU6OlN0eWxlUmVzb2x2ZXI6OnZpZXdwb3J0U3R5bGVSZXNvbHZlcik6CisgICAgICAgICogY3Nz
L1ZpZXdwb3J0U3R5bGVSZXNvbHZlci5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpWaWV3cG9ydFN0eWxlUmVzb2x2ZXI6OlZpZXdwb3J0U3R5bGVSZXNv
bHZlcik6CisgICAgICAgIChXZWJDb3JlOjpWaWV3cG9ydFN0eWxlUmVzb2x2ZXI6OmFkZFZpZXdw
b3J0UnVsZSk6CisgICAgICAgIChXZWJDb3JlOjpWaWV3cG9ydFN0eWxlUmVzb2x2ZXI6OmNsZWFy
RG9jdW1lbnQpOgorICAgICAgICAoV2ViQ29yZTo6Vmlld3BvcnRTdHlsZVJlc29sdmVyOjpyZXNv
bHZlKToKKyAgICAgICAgKFdlYkNvcmU6OlZpZXdwb3J0U3R5bGVSZXNvbHZlcjo6Z2V0Vmlld3Bv
cnRBcmd1bWVudFZhbHVlKToKKyAgICAgICAgKiBjc3MvVmlld3BvcnRTdHlsZVJlc29sdmVyLmg6
IEFkZGVkLgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChWaWV3cG9ydFN0eWxlUmVzb2x2
ZXIpOgorICAgICAgICAoV2ViQ29yZTo6Vmlld3BvcnRTdHlsZVJlc29sdmVyOjpjcmVhdGUpOgor
ICAgICAgICAqIGRvbS9Eb2N1bWVudC5oOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6OnNl
dFZpZXdwb3J0QXJndW1lbnRzKToKKyAgICAgICAgKiBkb20vVmlld3BvcnRBcmd1bWVudHMuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6Y29tcGFyZUlnbm9yaW5nQXV0byk6CisgICAgICAgIChXZWJD
b3JlKToKKyAgICAgICAgKFdlYkNvcmU6OlZpZXdwb3J0QXJndW1lbnRzOjpyZXNvbHZlKToKKyAg
ICAgICAgKiBkb20vVmlld3BvcnRBcmd1bWVudHMuaDoKKyAgICAgICAgKFZpZXdwb3J0QXR0cmli
dXRlcyk6CisgICAgICAgIChXZWJDb3JlOjpWaWV3cG9ydEFyZ3VtZW50czo6Vmlld3BvcnRBcmd1
bWVudHMpOgorICAgICAgICAoVmlld3BvcnRBcmd1bWVudHMpOgorICAgICAgICAoV2ViQ29yZTo6
Vmlld3BvcnRBcmd1bWVudHM6Om9wZXJhdG9yPT0pOgorCiAyMDEyLTExLTE2ICBLZW50YXJvIEhh
cmEgIDxoYXJha2VuQGNocm9taXVtLm9yZz4KIAogICAgICAgICBbVjhdIFJlbW92ZSBJc1N1YlR5
cGUoKSBmcm9tIENvZGVHZW5lcmF0b3JWOC5wbQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
Q01ha2VMaXN0cy50eHQgYi9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAppbmRleCAxY2Mw
M2E2ODQ0OGFhZjY2ZjM1NmU1OTE4OTg2M2QxOWM0M2IyMDI2Li5jMDdiYzJjOTVhN2I5MTU1YmYy
YzNkMmRiZDg3NmNjZmYzOWE0MDk1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxp
c3RzLnR4dAorKysgYi9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dApAQCAtMTA4Niw2ICsx
MDg2LDcgQEAgU0VUKFdlYkNvcmVfU09VUkNFUwogICAgIGNzcy9TVkdDU1NDb21wdXRlZFN0eWxl
RGVjbGFyYXRpb24uY3BwCiAgICAgY3NzL1NWR0NTU1BhcnNlci5jcHAKICAgICBjc3MvU1ZHQ1NT
U3R5bGVTZWxlY3Rvci5jcHAKKyAgICBjc3MvVmlld3BvcnRTdHlsZVJlc29sdmVyLmNwcAogICAg
IGNzcy9XZWJLaXRDU1NGaWx0ZXJWYWx1ZS5jcHAKICAgICBjc3MvV2ViS2l0Q1NTS2V5ZnJhbWVS
dWxlLmNwcAogICAgIGNzcy9XZWJLaXRDU1NLZXlmcmFtZXNSdWxlLmNwcApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbSBiL1NvdXJjZS9XZWJDb3JlL0dOVW1h
a2VmaWxlLmxpc3QuYW0KaW5kZXggZmY2NjIwOGY1Mjc0MDFiYjgwNGZhZjc2OTNmMGQ2NDg2NjNm
N2Q0Yi4uOTFmZjc2ZmQzNDVjZjFkMzgwNjY5YjY5ZTJkMmJlZWYyZDQ1OTNhYiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbQorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9HTlVtYWtlZmlsZS5saXN0LmFtCkBAIC0yNjQxLDYgKzI2NDEsOCBAQCB3ZWJjb3JlX3NvdXJj
ZXMgKz0gXAogCVNvdXJjZS9XZWJDb3JlL2Nzcy9TVkdDU1NDb21wdXRlZFN0eWxlRGVjbGFyYXRp
b24uY3BwIFwKIAlTb3VyY2UvV2ViQ29yZS9jc3MvU1ZHQ1NTUGFyc2VyLmNwcCBcCiAJU291cmNl
L1dlYkNvcmUvY3NzL1NWR0NTU1N0eWxlU2VsZWN0b3IuY3BwIFwKKwlTb3VyY2UvV2ViQ29yZS9j
c3MvVmlld3BvcnRTdHlsZVJlc29sdmVyLmNwcCBcCisJU291cmNlL1dlYkNvcmUvY3NzL1ZpZXdw
b3J0U3R5bGVSZXNvbHZlci5oIFwKICAgICBTb3VyY2UvV2ViQ29yZS9jc3MvV2ViS2l0Q1NTQXJy
YXlGdW5jdGlvblZhbHVlLmNwcCBcCiAgICAgU291cmNlL1dlYkNvcmUvY3NzL1dlYktpdENTU0Fy
cmF5RnVuY3Rpb25WYWx1ZS5oIFwKIAlTb3VyY2UvV2ViQ29yZS9jc3MvV2ViS2l0Q1NTRmlsdGVy
VmFsdWUuY3BwIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1RhcmdldC5wcmkgYi9Tb3Vy
Y2UvV2ViQ29yZS9UYXJnZXQucHJpCmluZGV4IGFjNDQ3M2E0ZGE0MGIyMGJhNzc2MDEwMzNlNDk1
ODNkNjFiMWQ3YWMuLjU5YTUwNGRiYTgwNTJmZmIyNjc0MDAyNmZmOTA3ZmQ0ZWU3MzE2OTcgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1RhcmdldC5wcmkKKysrIGIvU291cmNlL1dlYkNvcmUv
VGFyZ2V0LnByaQpAQCAtMzI2LDYgKzMyNiw3IEBAIFNPVVJDRVMgKz0gXAogICAgIGNzcy9TdHls
ZVNoZWV0LmNwcCBcCiAgICAgY3NzL1N0eWxlU2hlZXRDb250ZW50cy5jcHAgXAogICAgIGNzcy9T
dHlsZVNoZWV0TGlzdC5jcHAgXAorICAgIGNzcy9WaWV3cG9ydFN0eWxlUmVzb2x2ZXIuY3BwIFwK
ICAgICBjc3MvV2ViS2l0Q1NTQXJyYXlGdW5jdGlvblZhbHVlLmNwcCBcCiAgICAgY3NzL1dlYktp
dENTU0ZpbHRlclZhbHVlLmNwcCBcCiAgICAgY3NzL1dlYktpdENTU0tleWZyYW1lUnVsZS5jcHAg
XApAQCAtMTUwNyw2ICsxNTA4LDcgQEAgSEVBREVSUyArPSBcCiAgICAgY3NzL1N0eWxlU2hlZXQu
aCBcCiAgICAgY3NzL1N0eWxlU2hlZXRDb250ZW50cy5oIFwKICAgICBjc3MvU3R5bGVTaGVldExp
c3QuaCBcCisgICAgY3NzL1ZpZXdwb3J0U3R5bGVSZXNvbHZlci5oIFwKICAgICBjc3MvV2ViS2l0
Q1NTQXJyYXlGdW5jdGlvblZhbHVlLmggXAogICAgIGNzcy9XZWJLaXRDU1NGaWx0ZXJWYWx1ZS5o
IFwKICAgICBjc3MvV2ViS2l0Q1NTS2V5ZnJhbWVSdWxlLmggXApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvV2ViQ29yZS5neXBpIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCmluZGV4
IDY3YjFkMGQzOTg5NmE2OGViN2MwNzM3ZTlmNTNhZWYyNzczYjM5ODAuLmVlODUxOWE2NTM5MDFl
ZTk3ZjQ5M2U5YTQ4MTc2MmExZDJjZTRhNmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dl
YkNvcmUuZ3lwaQorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKQEAgLTI2MjgsNiAr
MjYyOCw4IEBACiAgICAgICAgICAgICAnY3NzL1N0eWxlU2hlZXRDb250ZW50cy5oJywKICAgICAg
ICAgICAgICdjc3MvU3R5bGVTaGVldExpc3QuY3BwJywKICAgICAgICAgICAgICdjc3MvU3R5bGVT
aGVldExpc3QuaCcsCisgICAgICAgICAgICAnY3NzL1ZpZXdwb3J0U3R5bGVSZXNvbHZlci5jcHAn
LAorICAgICAgICAgICAgJ2Nzcy9WaWV3cG9ydFN0eWxlUmVzb2x2ZXIuaCcsCiAgICAgICAgICAg
ICAnY3NzL1dlYktpdENTU0FycmF5RnVuY3Rpb25WYWx1ZS5jcHAnLAogICAgICAgICAgICAgJ2Nz
cy9XZWJLaXRDU1NBcnJheUZ1bmN0aW9uVmFsdWUuaCcsCiAgICAgICAgICAgICAnY3NzL1dlYktp
dENTU0ZpbHRlclZhbHVlLmNwcCcsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3Jl
LnZjcHJvai9XZWJDb3JlLnZjcHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dl
YkNvcmUudmNwcm9qCmluZGV4IDA0MDYwMDcyNWEyZDRhMjM5NDI1ZTJmYTgyMDViZDkxYzQ3MzU2
OTEuLjM5NjFjZDVhYzZiODZkMzFmYTMyZTUxMzJhZjZjMDZmMTcyZDcyNzkgMTAwNzU1Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCkBAIC0zODA2Miw2ICszODA2
MiwxNCBAQAogCQkJCT4KIAkJCTwvRmlsZT4KIAkJCTxGaWxlCisJCQkJUmVsYXRpdmVQYXRoPSIu
Llxjc3NcVmlld3BvcnRTdHlsZVJlc29sdmVyLmNwcCIKKwkJCQk+CisJCQk8L0ZpbGU+CisJCQk8
RmlsZQorCQkJCVJlbGF0aXZlUGF0aD0iLi5cY3NzXFZpZXdwb3J0U3R5bGVSZXNvbHZlci5oIgor
CQkJCT4KKwkJCTwvRmlsZT4KKwkJCTxGaWxlCiAJCQkJUmVsYXRpdmVQYXRoPSIuLlxjc3NcV2Vi
S2l0Q1NTQXJyYXlGdW5jdGlvblZhbHVlLmNwcCIKIAkJCQk+CiAJCQk8L0ZpbGU+CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9T
b3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggZGI2
MWViZTMzZTJhYjM0MmExYWMyMmI5YzgwODgxOTViNDhlZDgxZi4uMDBiYzc4ZDJhNGVmY2EyMmIz
NzJmNjdlMjk1ZDhmNWIyNjJkMTRmZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29y
ZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMTAzNyw2ICsxMDM3LDggQEAKIAkJM0MyNDRG
RUJBMzc1QUM2MzNGODhCRTZGIC8qIFJlbmRlckxheWVyTW9kZWxPYmplY3QuY3BwIGluIFNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gM0MyNDRGRTVBMzc1QUM2MzNG
ODhCRTZGIC8qIFJlbmRlckxheWVyTW9kZWxPYmplY3QuY3BwICovOyB9OwogCQkzRkZGRjlBODE1
OUQ5QTU1MDAyMEJCRDUgLyogV2ViS2l0Q1NTVmlld3BvcnRSdWxlLmNwcCBpbiBTb3VyY2VzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDNGRkZGOUE2MTU5RDlBNTUwMDIwQkJE
NSAvKiBXZWJLaXRDU1NWaWV3cG9ydFJ1bGUuY3BwICovOyB9OwogCQkzRkZGRjlBOTE1OUQ5QTU1
MDAyMEJCRDUgLyogV2ViS2l0Q1NTVmlld3BvcnRSdWxlLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAzRkZGRjlBNzE1OUQ5QTU1MDAyMEJCRDUgLyogV2Vi
S2l0Q1NTVmlld3BvcnRSdWxlLmggKi87IH07CisJCTNGRkZGOUFEMTU5RDlCMDYwMDIwQkJENSAv
KiBWaWV3cG9ydFN0eWxlUmVzb2x2ZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gM0ZGRkY5QUIxNTlEOUIwNjAwMjBCQkQ1IC8qIFZpZXdwb3J0U3R5
bGVSZXNvbHZlci5jcHAgKi87IH07CisJCTNGRkZGOUFFMTU5RDlCMDYwMDIwQkJENSAvKiBWaWV3
cG9ydFN0eWxlUmVzb2x2ZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDNGRkZGOUFDMTU5RDlCMDYwMDIwQkJENSAvKiBWaWV3cG9ydFN0eWxlUmVzb2x2
ZXIuaCAqLzsgfTsKIAkJNDEwMDJDQ0QwRjY2RURFRjAwOUU2NjBEIC8qIFNjcmlwdEZ1bmN0aW9u
Q2FsbC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDEw
MDJDQ0IwRjY2RURFRjAwOUU2NjBEIC8qIFNjcmlwdEZ1bmN0aW9uQ2FsbC5oICovOyB9OwogCQk0
MTAwMkNDRTBGNjZFREVGMDA5RTY2MEQgLyogU2NyaXB0RnVuY3Rpb25DYWxsLmNwcCBpbiBTb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQxMDAyQ0NDMEY2NkVERUYw
MDlFNjYwRCAvKiBTY3JpcHRGdW5jdGlvbkNhbGwuY3BwICovOyB9OwogCQk0MTBCN0U3MjEwNDVG
QUIwMDBEODIyNEYgLyogSlNNZXNzYWdlRXZlbnRDdXN0b20uY3BwIGluIFNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDEwQjdFNzExMDQ1RkFCMDAwRDgyMjRGIC8q
IEpTTWVzc2FnZUV2ZW50Q3VzdG9tLmNwcCAqLzsgfTsKQEAgLTgyMDIsNiArODIwNCw4IEBACiAJ
CTNDMjQ0RkU1QTM3NUFDNjMzRjg4QkU2RiAvKiBSZW5kZXJMYXllck1vZGVsT2JqZWN0LmNwcCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFJlbmRlckxheWVyTW9kZWxPYmpl
Y3QuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkzRkZGRjlBNjE1OUQ5QTU1MDAy
MEJCRDUgLyogV2ViS2l0Q1NTVmlld3BvcnRSdWxlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLmNwcDsgcGF0aCA9IFdlYktpdENTU1ZpZXdwb3J0UnVsZS5jcHA7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTNGRkZGOUE3MTU5RDlBNTUwMDIwQkJENSAvKiBXZWJLaXRDU1NWaWV3
cG9ydFJ1bGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViS2l0Q1NTVmll
d3BvcnRSdWxlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTNGRkZGOUFCMTU5RDlC
MDYwMDIwQkJENSAvKiBWaWV3cG9ydFN0eWxlUmVzb2x2ZXIuY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBwYXRoID0gVmlld3BvcnRTdHlsZVJlc29sdmVyLmNwcDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKKwkJM0ZGRkY5QUMxNTlEOUIwNjAwMjBCQkQ1IC8qIFZpZXdwb3J0
U3R5bGVSZXNvbHZlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBWaWV3cG9y
dFN0eWxlUmVzb2x2ZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDEwMDJDQ0Iw
RjY2RURFRjAwOUU2NjBEIC8qIFNjcmlwdEZ1bmN0aW9uQ2FsbC5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBTY3JpcHRGdW5jdGlvbkNhbGwuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJNDEwMDJDQ0MwRjY2RURFRjAwOUU2NjBEIC8qIFNjcmlwdEZ1bmN0aW9uQ2Fs
bC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBTY3JpcHRGdW5jdGlv
bkNhbGwuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0MTBCN0U3MTEwNDVGQUIw
MDBEODIyNEYgLyogSlNNZXNzYWdlRXZlbnRDdXN0b20uY3BwICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAuY3BwOyBwYXRoID0gSlNNZXNzYWdlRXZlbnRDdXN0b20uY3BwOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwpAQCAtMjE0MzcsNiArMjE0NDEsOCBAQAogCQkJCUIyMjI3QjAzMEQwMEJG
RjEwMDcxQjc4MiAvKiBTVkdDU1NTdHlsZVNlbGVjdG9yLmNwcCAqLywKIAkJCQlCMjIyN0IwNDBE
MDBCRkYxMDA3MUI3ODIgLyogU1ZHQ1NTVmFsdWVLZXl3b3Jkcy5pbiAqLywKIAkJCQlCQzVFQzE3
NjBBNTA3RTNFMDA2MDA3RjUgLyogdmlldy1zb3VyY2UuY3NzICovLAorCQkJCTNGRkZGOUFCMTU5
RDlCMDYwMDIwQkJENSAvKiBWaWV3cG9ydFN0eWxlUmVzb2x2ZXIuY3BwICovLAorCQkJCTNGRkZG
OUFDMTU5RDlCMDYwMDIwQkJENSAvKiBWaWV3cG9ydFN0eWxlUmVzb2x2ZXIuaCAqLywKIAkJCQkx
NTBCOTIzNzE1RjA4REM0MDBFMTA5ODYgLyogV2ViS2l0Q1NTQXJyYXlGdW5jdGlvblZhbHVlLmNw
cCAqLywKIAkJCQkxNTBCOTIzODE1RjA4REM0MDBFMTA5ODYgLyogV2ViS2l0Q1NTQXJyYXlGdW5j
dGlvblZhbHVlLmggKi8sCiAJCQkJMzEwNjAzNkMxNDMyN0QyRTAwQUJGNEJBIC8qIFdlYktpdENT
U0ZpbHRlclZhbHVlLmNwcCAqLywKQEAgLTI1NzM3LDYgKzI1NzQzLDcgQEAKIAkJCQlBQUMwOENG
MzE1Rjk0MUZEMDBGMUUxODggLyogQWNjZXNzaWJpbGl0eVNWR1Jvb3QuaCBpbiBIZWFkZXJzICov
LAogCQkJCTUwOTMzMzUwMTYzQjBFNDMwMDA5OUE2MCAvKiBDdXN0b21GaWx0ZXJQYXJhbWV0ZXJM
aXN0LmggaW4gSGVhZGVycyAqLywKIAkJCQk1MEQzMjg1ODE2M0IzMTNGMDAxNjExMUUgLyogVmFs
aWRhdGVkQ3VzdG9tRmlsdGVyT3BlcmF0aW9uLmggaW4gSGVhZGVycyAqLywKKwkJCQkzRkZGRjlB
RTE1OUQ5QjA2MDAyMEJCRDUgLyogVmlld3BvcnRTdHlsZVJlc29sdmVyLmggaW4gSGVhZGVycyAq
LywKIAkJCQkzRkZGRjlBOTE1OUQ5QTU1MDAyMEJCRDUgLyogV2ViS2l0Q1NTVmlld3BvcnRSdWxl
LmggaW4gSGVhZGVycyAqLywKIAkJCQk5M0MzOEJGRjE2NDQ3M0M3MDAwOTFFQjIgLyogU2Nyb2xs
aW5nU3RhdGVGaXhlZE5vZGUuaCBpbiBIZWFkZXJzICovLAogCQkJCTkzQzM4QzAzMTY0NDczREQw
MDA5MUVCMiAvKiBTY3JvbGxpbmdUcmVlRml4ZWROb2RlLmggaW4gSGVhZGVycyAqLywKQEAgLTI4
ODIwLDYgKzI4ODI3LDcgQEAKIAkJCQk5M0YxOUIwNTA4MjQ1RTU5MDAxRTlBQkMgLyogWFNMVFBy
b2Nlc3NvckxpYnhzbHQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJRTFCRTUxMkQwQ0Y2QzUxMjAw
MkVBOTU5IC8qIFhTTFRVbmljb2RlU29ydC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk5NzdFMkUw
RTEyRjBGQzlDMDBDMTMzNzkgLyogWFNTQXVkaXRvci5jcHAgaW4gU291cmNlcyAqLywKKwkJCQkz
RkZGRjlBRDE1OUQ5QjA2MDAyMEJCRDUgLyogVmlld3BvcnRTdHlsZVJlc29sdmVyLmNwcCBpbiBT
b3VyY2VzICovLAogCQkJCUZENTM3MzUyMTM3QjY1MTgwMDAwOERDRSAvKiBaZXJvUG9sZS5jcHAg
aW4gU291cmNlcyAqLywKIAkJCQk1MUFCRjY0RDE2MzkyRTI4MDAxMzJBN0EgLyogTG9hZGVyU3Ry
YXRlZ3kuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNTA5MzMzNEYxNjNCMEU0MzAwMDk5QTYwIC8q
IEN1c3RvbUZpbHRlclBhcmFtZXRlckxpc3QuY3BwIGluIFNvdXJjZXMgKi8sCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTQWxsSW5PbmUuY3BwIGIvU291cmNlL1dlYkNvcmUvY3Nz
L0NTU0FsbEluT25lLmNwcAppbmRleCA4NGY5ZmU3ZjQzYzg5ZTViZGQxZTBhMWJlYjgwZTQ2OGM4
Y2E3YzMyLi40NzlkOGRlZjc4YzlkMzc0MDk3YzBjNGU5OTkxMzcxM2UyYTIzMTA1IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTQWxsSW5PbmUuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2Nzcy9DU1NBbGxJbk9uZS5jcHAKQEAgLTczLDMgKzczLDQgQEAKICNpbmNsdWRlICJTdHls
ZVByb3BlcnR5U2hvcnRoYW5kLmNwcCIKICNpbmNsdWRlICJTdHlsZVJlc29sdmVyLmNwcCIKICNp
bmNsdWRlICJTdHlsZVNjb3BlUmVzb2x2ZXIuY3BwIgorI2luY2x1ZGUgIlZpZXdwb3J0U3R5bGVS
ZXNvbHZlci5jcHAiCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvUnVsZVNldC5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9jc3MvUnVsZVNldC5jcHAKaW5kZXggMzcyZWZkYjNjYTNhZGQzMGM1
ZDYxMDAwZGExZjg5ZDYzNzQ4YWM1YS4uOWE3OGMwZmY5MDM4OWM5MGM0NGRhNWE2YjlmNWZmN2Fl
MjBjNmUzMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL1J1bGVTZXQuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2Nzcy9SdWxlU2V0LmNwcApAQCAtMzEyLDYgKzMxMiwxNCBAQCB2b2lk
IFJ1bGVTZXQ6OmFkZFJ1bGVzRnJvbVNoZWV0KFN0eWxlU2hlZXRDb250ZW50cyogc2hlZXQsIGNv
bnN0IE1lZGlhUXVlcnlFdmFsdQogICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVl
OwogICAgICAgICAgICAgICAgICAgICAgICAgcmVzb2x2ZXItPmFkZEtleWZyYW1lU3R5bGUoc3Rh
dGljX2Nhc3Q8U3R5bGVSdWxlS2V5ZnJhbWVzKj4oY2hpbGRSdWxlKSk7CiAgICAgICAgICAgICAg
ICAgICAgIH0KKyNpZiBFTkFCTEUoQ1NTX0RFVklDRV9BREFQVEFUSU9OKQorICAgICAgICAgICAg
ICAgICAgICBlbHNlIGlmIChjaGlsZFJ1bGUtPmlzVmlld3BvcnRSdWxlKCkgJiYgcmVzb2x2ZXIg
JiYgIXJlc29sdmVyLT5hZmZlY3RlZEJ5Vmlld3BvcnRDaGFuZ2UoKSkgeworICAgICAgICAgICAg
ICAgICAgICAgICAgLy8gQHZpZXdwb3J0IHNob3VsZCBub3QgYmUgc2NvcGVkLgorICAgICAgICAg
ICAgICAgICAgICAgICAgaWYgKHNjb3BlKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNv
bnRpbnVlOworICAgICAgICAgICAgICAgICAgICAgICAgcmVzb2x2ZXItPnZpZXdwb3J0U3R5bGVS
ZXNvbHZlcigpLT5hZGRWaWV3cG9ydFJ1bGUoc3RhdGljX2Nhc3Q8U3R5bGVSdWxlVmlld3BvcnQq
PihjaGlsZFJ1bGUpKTsKKyAgICAgICAgICAgICAgICAgICAgfQorI2VuZGlmCiAgICAgICAgICAg
ICAgICAgfSAvLyBmb3IgcnVsZXMKICAgICAgICAgICAgIH0gLy8gaWYgcnVsZXMKICAgICAgICAg
fSBlbHNlIGlmIChydWxlLT5pc0ZvbnRGYWNlUnVsZSgpICYmIHJlc29sdmVyKSB7CkBAIC0zNDAs
NiArMzQ4LDE0IEBAIHZvaWQgUnVsZVNldDo6YWRkUnVsZXNGcm9tU2hlZXQoU3R5bGVTaGVldENv
bnRlbnRzKiBzaGVldCwgY29uc3QgTWVkaWFRdWVyeUV2YWx1CiAgICAgICAgIGVsc2UgaWYgKHJ1
bGUtPmlzSG9zdFJ1bGUoKSkKICAgICAgICAgICAgIHJlc29sdmVyLT5hZGRIb3N0UnVsZShzdGF0
aWNfY2FzdDxTdHlsZVJ1bGVIb3N0Kj4ocnVsZSksIGhhc0RvY3VtZW50U2VjdXJpdHlPcmlnaW4s
IHNjb3BlKTsKICNlbmRpZgorI2lmIEVOQUJMRShDU1NfREVWSUNFX0FEQVBUQVRJT04pCisgICAg
ICAgIGVsc2UgaWYgKHJ1bGUtPmlzVmlld3BvcnRSdWxlKCkgJiYgcmVzb2x2ZXIpIHsKKyAgICAg
ICAgICAgIC8vIEB2aWV3cG9ydCBzaG91bGQgbm90IGJlIHNjb3BlZC4KKyAgICAgICAgICAgIGlm
IChzY29wZSkKKyAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgIHJlc29sdmVy
LT52aWV3cG9ydFN0eWxlUmVzb2x2ZXIoKS0+YWRkVmlld3BvcnRSdWxlKHN0YXRpY19jYXN0PFN0
eWxlUnVsZVZpZXdwb3J0Kj4ocnVsZSkpOworICAgICAgICB9CisjZW5kaWYKICAgICB9CiAgICAg
aWYgKG1fYXV0b1Nocmlua1RvRml0RW5hYmxlZCkKICAgICAgICAgc2hyaW5rVG9GaXQoKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVJlc29sdmVyLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2Nzcy9TdHlsZVJlc29sdmVyLmNwcAppbmRleCBmYjVlYWVmYjdhYTE2ZTZkN2U3ZTc5
YzgzZjJkMGQxYzA4YTc5YWE4Li5mOWFlYTUyYmQyZjhmOTZiNzllZTU0MzBkMWVmN2FiYTA1MTEy
YTI1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVSZXNvbHZlci5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlUmVzb2x2ZXIuY3BwCkBAIC0xMjMsNiArMTIzLDcg
QEAKICNpbmNsdWRlICJUcmFuc2Zvcm1hdGlvbk1hdHJpeC5oIgogI2luY2x1ZGUgIlRyYW5zbGF0
ZVRyYW5zZm9ybU9wZXJhdGlvbi5oIgogI2luY2x1ZGUgIlVzZXJBZ2VudFN0eWxlU2hlZXRzLmgi
CisjaW5jbHVkZSAiVmlld3BvcnRTdHlsZVJlc29sdmVyLmgiCiAjaW5jbHVkZSAiV2ViQ29yZU1l
bW9yeUluc3RydW1lbnRhdGlvbi5oIgogI2luY2x1ZGUgIldlYktpdENTU0tleWZyYW1lUnVsZS5o
IgogI2luY2x1ZGUgIldlYktpdENTU0tleWZyYW1lc1J1bGUuaCIKQEAgLTI3Niw2ICsyNzcsOSBA
QCBTdHlsZVJlc29sdmVyOjpTdHlsZVJlc29sdmVyKERvY3VtZW50KiBkb2N1bWVudCwgYm9vbCBt
YXRjaEF1dGhvckFuZFVzZXJTdHlsZXMpCiAgICAgLCBtX3NhbWVPcmlnaW5Pbmx5KGZhbHNlKQog
ICAgICwgbV9kaXN0cmlidXRlZFRvSW5zZXJ0aW9uUG9pbnQoZmFsc2UpCiAgICAgLCBtX2ZvbnRT
ZWxlY3RvcihDU1NGb250U2VsZWN0b3I6OmNyZWF0ZShkb2N1bWVudCkpCisjaWYgRU5BQkxFKENT
U19ERVZJQ0VfQURBUFRBVElPTikKKyAgICAsIG1fdmlld3BvcnRTdHlsZVJlc29sdmVyKFZpZXdw
b3J0U3R5bGVSZXNvbHZlcjo6Y3JlYXRlKGRvY3VtZW50KSkKKyNlbmRpZgogICAgICwgbV9hcHBs
eVByb3BlcnR5VG9SZWd1bGFyU3R5bGUodHJ1ZSkKICAgICAsIG1fYXBwbHlQcm9wZXJ0eVRvVmlz
aXRlZExpbmtTdHlsZShmYWxzZSkKICAgICAsIG1fc3R5bGVCdWlsZGVyKFN0eWxlQnVpbGRlcjo6
c2hhcmVkU3R5bGVCdWlsZGVyKCkpCkBAIC00MTIsNiArNDE2LDEwIEBAIHZvaWQgU3R5bGVSZXNv
bHZlcjo6YXBwZW5kQXV0aG9yU3R5bGVTaGVldHModW5zaWduZWQgZmlyc3ROZXcsIGNvbnN0IFZl
Y3RvcjxSZWZQCiAgICAgCiAgICAgaWYgKGRvY3VtZW50KCktPnJlbmRlcmVyKCkgJiYgZG9jdW1l
bnQoKS0+cmVuZGVyZXIoKS0+c3R5bGUoKSkKICAgICAgICAgZG9jdW1lbnQoKS0+cmVuZGVyZXIo
KS0+c3R5bGUoKS0+Zm9udCgpLnVwZGF0ZShmb250U2VsZWN0b3IoKSk7CisKKyNpZiBFTkFCTEUo
Q1NTX0RFVklDRV9BREFQVEFUSU9OKQorICAgIHZpZXdwb3J0U3R5bGVSZXNvbHZlcigpLT5yZXNv
bHZlKCk7CisjZW5kaWYKIH0KIAogdm9pZCBTdHlsZVJlc29sdmVyOjpwdXNoUGFyZW50RWxlbWVu
dChFbGVtZW50KiBwYXJlbnQpCkBAIC00NjYsNiArNDc0LDEwIEBAIHZvaWQgU3R5bGVSZXNvbHZl
cjo6YWRkS2V5ZnJhbWVTdHlsZShQYXNzUmVmUHRyPFN0eWxlUnVsZUtleWZyYW1lcz4gcnVsZSkK
IFN0eWxlUmVzb2x2ZXI6On5TdHlsZVJlc29sdmVyKCkKIHsKICAgICBtX2ZvbnRTZWxlY3Rvci0+
Y2xlYXJEb2N1bWVudCgpOworCisjaWYgRU5BQkxFKENTU19ERVZJQ0VfQURBUFRBVElPTikKKyAg
ICBtX3ZpZXdwb3J0U3R5bGVSZXNvbHZlci0+Y2xlYXJEb2N1bWVudCgpOworI2VuZGlmCiB9CiAK
IHZvaWQgU3R5bGVSZXNvbHZlcjo6c3dlZXBNYXRjaGVkUHJvcGVydGllc0NhY2hlKFRpbWVyPFN0
eWxlUmVzb2x2ZXI+KikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVJlc29s
dmVyLmggYi9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVSZXNvbHZlci5oCmluZGV4IGY3Njk5MzQ0
MjUxMTM5OWY3OWJhZWU3N2M0ZDdlZDMzNzUwNjM3NTIuLjdmMTI1MjAyMzBmMGFjYmQ5ODc1YjQy
ZDBhYzA3ZjAyZWQyYTkzMzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVJl
c29sdmVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlUmVzb2x2ZXIuaApAQCAtMzMs
NiArMzMsNyBAQAogI2luY2x1ZGUgIlNlbGVjdG9yQ2hlY2tlci5oIgogI2luY2x1ZGUgIlN0eWxl
SW5oZXJpdGVkRGF0YS5oIgogI2luY2x1ZGUgIlN0eWxlU2NvcGVSZXNvbHZlci5oIgorI2luY2x1
ZGUgIlZpZXdwb3J0U3R5bGVSZXNvbHZlci5oIgogI2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+CiAj
aW5jbHVkZSA8d3RmL0hhc2hTZXQuaD4KICNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+CkBAIC05Miw2
ICs5Myw3IEBAIGNsYXNzIFN0eWxlU2hlZXQ7CiBjbGFzcyBTdHlsZVNoZWV0Q29udGVudHM7CiBj
bGFzcyBTdHlsZVNoZWV0TGlzdDsKIGNsYXNzIFN0eWxlZEVsZW1lbnQ7CitjbGFzcyBWaWV3cG9y
dFN0eWxlUmVzb2x2ZXI7CiBjbGFzcyBXZWJLaXRDU1NGaWx0ZXJWYWx1ZTsKIGNsYXNzIFdlYktp
dENTU1NoYWRlclZhbHVlOwogY2xhc3MgV2ViS2l0Q1NTU1ZHRG9jdW1lbnRWYWx1ZTsKQEAgLTI0
NSw2ICsyNDcsOSBAQCBwdWJsaWM6CiAgICAgYm9vbCBoYXNTZWxlY3RvckZvckF0dHJpYnV0ZShj
b25zdCBBdG9taWNTdHJpbmcmKSBjb25zdDsKIAogICAgIENTU0ZvbnRTZWxlY3RvciogZm9udFNl
bGVjdG9yKCkgY29uc3QgeyByZXR1cm4gbV9mb250U2VsZWN0b3IuZ2V0KCk7IH0KKyNpZiBFTkFC
TEUoQ1NTX0RFVklDRV9BREFQVEFUSU9OKQorICAgIFZpZXdwb3J0U3R5bGVSZXNvbHZlciogdmll
d3BvcnRTdHlsZVJlc29sdmVyKCkgeyByZXR1cm4gbV92aWV3cG9ydFN0eWxlUmVzb2x2ZXIuZ2V0
KCk7IH0KKyNlbmRpZgogCiAgICAgdm9pZCBhZGRWaWV3cG9ydERlcGVuZGVudE1lZGlhUXVlcnlS
ZXN1bHQoY29uc3QgTWVkaWFRdWVyeUV4cCosIGJvb2wgcmVzdWx0KTsKICAgICBib29sIGhhc1Zp
ZXdwb3J0RGVwZW5kZW50TWVkaWFRdWVyaWVzKCkgY29uc3QgeyByZXR1cm4gIW1fdmlld3BvcnRE
ZXBlbmRlbnRNZWRpYVF1ZXJ5UmVzdWx0cy5pc0VtcHR5KCk7IH0KQEAgLTQ5Myw2ICs0OTgsMTAg
QEAgcHJpdmF0ZToKICAgICBSZWZQdHI8Q1NTRm9udFNlbGVjdG9yPiBtX2ZvbnRTZWxlY3RvcjsK
ICAgICBWZWN0b3I8T3duUHRyPE1lZGlhUXVlcnlSZXN1bHQ+ID4gbV92aWV3cG9ydERlcGVuZGVu
dE1lZGlhUXVlcnlSZXN1bHRzOwogCisjaWYgRU5BQkxFKENTU19ERVZJQ0VfQURBUFRBVElPTikK
KyAgICBSZWZQdHI8Vmlld3BvcnRTdHlsZVJlc29sdmVyPiBtX3ZpZXdwb3J0U3R5bGVSZXNvbHZl
cjsKKyNlbmRpZgorCiAgICAgYm9vbCBtX2FwcGx5UHJvcGVydHlUb1JlZ3VsYXJTdHlsZTsKICAg
ICBib29sIG1fYXBwbHlQcm9wZXJ0eVRvVmlzaXRlZExpbmtTdHlsZTsKICAgICBjb25zdCBTdHls
ZUJ1aWxkZXImIG1fc3R5bGVCdWlsZGVyOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3Nz
L1ZpZXdwb3J0U3R5bGVSZXNvbHZlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvVmlld3BvcnRT
dHlsZVJlc29sdmVyLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lN2U2OTNiYzUzZjg5OTE1YzM2NWEyMjY2NDk5
YWExZDdhZGQ5NTZjCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL1ZpZXdw
b3J0U3R5bGVSZXNvbHZlci5jcHAKQEAgLTAsMCArMSwxNzEgQEAKKy8qCisgKiBDb3B5cmlnaHQg
KEMpIDIwMTIgSW50ZWwgQ29ycG9yYXRpb24uIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKgorICogMS4gUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZQorICogICAgY29weXJp
Z2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcKKyAq
ICAgIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz
dCByZXByb2R1Y2UgdGhlIGFib3ZlCisgKiAgICBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZworICogICAgZGlzY2xhaW1lciBpbiB0aGUg
ZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzCisgKiAgICBwcm92aWRlZCB3aXRo
IHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBU
SEUgQ09QWVJJR0hUIEhPTERFUiDigJxBUyBJU+KAnSBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICog
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBU
SEUgQ09QWVJJR0hUIEhPTERFUiBCRQorICogTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLAorICogT1IgQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9G
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICog
UFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZCisgKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUgorICogVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GCisgKiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YKKyAqIFNVQ0ggREFNQUdFLgor
ICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJWaWV3cG9ydFN0eWxlUmVzb2x2
ZXIuaCIKKworI2lmIEVOQUJMRShDU1NfREVWSUNFX0FEQVBUQVRJT04pCisKKyNpbmNsdWRlICJD
U1NWYWx1ZUtleXdvcmRzLmgiCisjaW5jbHVkZSAiRG9jdW1lbnQuaCIKKyNpbmNsdWRlICJQYWdl
LmgiCisjaW5jbHVkZSAiUmVuZGVyVmlldy5oIgorI2luY2x1ZGUgIlN0eWxlUHJvcGVydHlTZXQu
aCIKKyNpbmNsdWRlICJTdHlsZVJ1bGUuaCIKKyNpbmNsdWRlICJWaWV3cG9ydEFyZ3VtZW50cy5o
IgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK1ZpZXdwb3J0U3R5bGVSZXNvbHZlcjo6Vmlld3Bv
cnRTdHlsZVJlc29sdmVyKERvY3VtZW50KiBkb2N1bWVudCkKKyAgICA6IG1fZG9jdW1lbnQoZG9j
dW1lbnQpCit7CisgICAgQVNTRVJUKG1fZG9jdW1lbnQpOworCisgICAgbV9pbml0aWFsVmlld3Bv
cnRTaXplLnNldFdpZHRoKG1fZG9jdW1lbnQtPnZpZXdwb3J0U2l6ZSgpLndpZHRoKCkpOworICAg
IG1faW5pdGlhbFZpZXdwb3J0U2l6ZS5zZXRIZWlnaHQobV9kb2N1bWVudC0+dmlld3BvcnRTaXpl
KCkuaGVpZ2h0KCkpOworCisgICAgZmxvYXQgZGV2aWNlU2NhbGVGYWN0b3IgPSAxOworICAgIGlm
IChtX2RvY3VtZW50LT5wYWdlKCkpCisgICAgICAgIGRldmljZVNjYWxlRmFjdG9yID0gbV9kb2N1
bWVudC0+cGFnZSgpLT5kZXZpY2VTY2FsZUZhY3RvcigpOworCisgICAgaWYgKGRldmljZVNjYWxl
RmFjdG9yICE9IDEpCisgICAgICAgIG1faW5pdGlhbFZpZXdwb3J0U2l6ZS5zY2FsZSgxLmYgLyBk
ZXZpY2VTY2FsZUZhY3Rvcik7Cit9CisKK3ZvaWQgVmlld3BvcnRTdHlsZVJlc29sdmVyOjphZGRW
aWV3cG9ydFJ1bGUoU3R5bGVSdWxlVmlld3BvcnQqIHZpZXdwb3J0UnVsZSkKK3sKKyAgICBTdHls
ZVByb3BlcnR5U2V0KiBwcm9wZXJ0eVNldCA9IHZpZXdwb3J0UnVsZS0+bXV0YWJsZVByb3BlcnRp
ZXMoKTsKKworICAgIHVuc2lnbmVkIHByb3BlcnR5Q291bnQgPSBwcm9wZXJ0eVNldC0+cHJvcGVy
dHlDb3VudCgpOworICAgIGlmICghcHJvcGVydHlDb3VudCkKKyAgICAgICAgcmV0dXJuOworCisg
ICAgaWYgKCFtX3Byb3BlcnR5U2V0KSB7CisgICAgICAgIG1fcHJvcGVydHlTZXQgPSBwcm9wZXJ0
eVNldC0+Y29weSgpOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgLy8gV2UgY2Fubm90
IHVzZSBtZXJnZUFuZE92ZXJyaWRlT25Db25mbGljdCgpIGhlcmUgYmVjYXVzZSBpdCBkb2Vzbid0
CisgICAgLy8gcmVzcGVjdCB0aGUgIWltcG9ydGFudCBkZWNsYXJhdGlvbiAoYnV0IGFkZFBhcnNl
ZFByb3BlcnR5KCkgZG9lcykuCisgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IHByb3BlcnR5
Q291bnQ7ICsraSkKKyAgICAgICAgbV9wcm9wZXJ0eVNldC0+YWRkUGFyc2VkUHJvcGVydHkocHJv
cGVydHlTZXQtPnByb3BlcnR5QXQoaSkudG9DU1NQcm9wZXJ0eSgpKTsKK30KKwordm9pZCBWaWV3
cG9ydFN0eWxlUmVzb2x2ZXI6OmNsZWFyRG9jdW1lbnQoKQoreworICAgIG1fZG9jdW1lbnQgPSAw
OworfQorCit2b2lkIFZpZXdwb3J0U3R5bGVSZXNvbHZlcjo6cmVzb2x2ZSgpCit7CisgICAgaWYg
KCFtX2RvY3VtZW50IHx8ICFtX3Byb3BlcnR5U2V0KQorICAgICAgICByZXR1cm47CisKKyAgICBW
aWV3cG9ydEFyZ3VtZW50cyBhcmd1bWVudHMoVmlld3BvcnRBcmd1bWVudHM6OkNTU0RldmljZUFk
YXB0YXRpb24pOworCisgICAgYXJndW1lbnRzLnVzZXJab29tID0gZ2V0Vmlld3BvcnRBcmd1bWVu
dFZhbHVlKENTU1Byb3BlcnR5VXNlclpvb20pOworICAgIGFyZ3VtZW50cy56b29tID0gZ2V0Vmll
d3BvcnRBcmd1bWVudFZhbHVlKENTU1Byb3BlcnR5Wm9vbSk7CisgICAgYXJndW1lbnRzLm1pblpv
b20gPSBnZXRWaWV3cG9ydEFyZ3VtZW50VmFsdWUoQ1NTUHJvcGVydHlNaW5ab29tKTsKKyAgICBh
cmd1bWVudHMubWF4Wm9vbSA9IGdldFZpZXdwb3J0QXJndW1lbnRWYWx1ZShDU1NQcm9wZXJ0eU1h
eFpvb20pOworICAgIGFyZ3VtZW50cy5taW5XaWR0aCA9IGdldFZpZXdwb3J0QXJndW1lbnRWYWx1
ZShDU1NQcm9wZXJ0eU1pbldpZHRoKTsKKyAgICBhcmd1bWVudHMubWF4V2lkdGggPSBnZXRWaWV3
cG9ydEFyZ3VtZW50VmFsdWUoQ1NTUHJvcGVydHlNYXhXaWR0aCk7CisgICAgYXJndW1lbnRzLm1p
bkhlaWdodCA9IGdldFZpZXdwb3J0QXJndW1lbnRWYWx1ZShDU1NQcm9wZXJ0eU1pbkhlaWdodCk7
CisgICAgYXJndW1lbnRzLm1heEhlaWdodCA9IGdldFZpZXdwb3J0QXJndW1lbnRWYWx1ZShDU1NQ
cm9wZXJ0eU1heEhlaWdodCk7CisgICAgYXJndW1lbnRzLm9yaWVudGF0aW9uID0gZ2V0Vmlld3Bv
cnRBcmd1bWVudFZhbHVlKENTU1Byb3BlcnR5T3JpZW50YXRpb24pOworCisgICAgbV9kb2N1bWVu
dC0+c2V0Vmlld3BvcnRBcmd1bWVudHMoYXJndW1lbnRzKTsKKyAgICBtX2RvY3VtZW50LT51cGRh
dGVWaWV3cG9ydEFyZ3VtZW50cygpOworCisgICAgbV9wcm9wZXJ0eVNldCA9IDA7Cit9CisKK2Zs
b2F0IFZpZXdwb3J0U3R5bGVSZXNvbHZlcjo6Z2V0Vmlld3BvcnRBcmd1bWVudFZhbHVlKENTU1By
b3BlcnR5SUQgaWQpIGNvbnN0Cit7CisgICAgZmxvYXQgZGVmYXVsdFZhbHVlID0gVmlld3BvcnRB
cmd1bWVudHM6OlZhbHVlQXV0bzsKKworICAgIC8vIFVzZXJab29tIGRlZmF1bHQgdmFsdWUgaXMg
Q1NTVmFsdWVab29tLCB3aGljaCBtYXBzIHRvIHRydWUsIG1lYW5pbmcgdGhhdAorICAgIC8vIHll
cywgaXQgaXMgdXNlciBzY2FsYWJsZS4gV2hlbiB0aGUgdmFsdWUgaXMgc2V0IHRvIENTU1ZhbHVl
Rml4ZWQsIHdlCisgICAgLy8gcmV0dXJuIGZhbHNlLgorICAgIGlmIChpZCA9PSBDU1NQcm9wZXJ0
eVVzZXJab29tKQorICAgICAgICBkZWZhdWx0VmFsdWUgPSAxOworCisgICAgUmVmUHRyPENTU1Zh
bHVlPiB2YWx1ZSA9IG1fcHJvcGVydHlTZXQtPmdldFByb3BlcnR5Q1NTVmFsdWUoaWQpOworICAg
IGlmICghdmFsdWUgfHwgIXZhbHVlLT5pc1ByaW1pdGl2ZVZhbHVlKCkpCisgICAgICAgIHJldHVy
biBkZWZhdWx0VmFsdWU7CisKKyAgICBDU1NQcmltaXRpdmVWYWx1ZSogcHJpbWl0aXZlVmFsdWUg
PSBzdGF0aWNfY2FzdDxDU1NQcmltaXRpdmVWYWx1ZSo+KHZhbHVlLmdldCgpKTsKKworICAgIGlm
IChwcmltaXRpdmVWYWx1ZS0+aXNOdW1iZXIoKSB8fCBwcmltaXRpdmVWYWx1ZS0+aXNQeCgpKQor
ICAgICAgICByZXR1cm4gcHJpbWl0aXZlVmFsdWUtPmdldEZsb2F0VmFsdWUoKTsKKworICAgIGlm
IChwcmltaXRpdmVWYWx1ZS0+aXNGb250UmVsYXRpdmVMZW5ndGgoKSkKKyAgICAgICAgcmV0dXJu
IHByaW1pdGl2ZVZhbHVlLT5nZXRGbG9hdFZhbHVlKCkgKiBtX2RvY3VtZW50LT5kb2N1bWVudEVs
ZW1lbnQoKS0+cmVuZGVyU3R5bGUoKS0+Zm9udERlc2NyaXB0aW9uKCkuY29tcHV0ZWRTaXplKCk7
CisKKyAgICBpZiAocHJpbWl0aXZlVmFsdWUtPmlzUGVyY2VudGFnZSgpKSB7CisgICAgICAgIGZs
b2F0IHBlcmNlbnRWYWx1ZSA9IHByaW1pdGl2ZVZhbHVlLT5nZXRGbG9hdFZhbHVlKCkgLyAxMDAu
MGY7CisgICAgICAgIHN3aXRjaCAoaWQpIHsKKyAgICAgICAgY2FzZSBDU1NQcm9wZXJ0eU1heEhl
aWdodDoKKyAgICAgICAgY2FzZSBDU1NQcm9wZXJ0eU1pbkhlaWdodDoKKyAgICAgICAgICAgIHJl
dHVybiBwZXJjZW50VmFsdWUgKiBtX2luaXRpYWxWaWV3cG9ydFNpemUuaGVpZ2h0KCk7CisgICAg
ICAgIGNhc2UgQ1NTUHJvcGVydHlNYXhXaWR0aDoKKyAgICAgICAgY2FzZSBDU1NQcm9wZXJ0eU1p
bldpZHRoOgorICAgICAgICAgICAgcmV0dXJuIHBlcmNlbnRWYWx1ZSAqIG1faW5pdGlhbFZpZXdw
b3J0U2l6ZS53aWR0aCgpOworICAgICAgICBjYXNlIENTU1Byb3BlcnR5TWF4Wm9vbToKKyAgICAg
ICAgY2FzZSBDU1NQcm9wZXJ0eU1pblpvb206CisgICAgICAgIGNhc2UgQ1NTUHJvcGVydHlab29t
OgorICAgICAgICAgICAgcmV0dXJuIHBlcmNlbnRWYWx1ZTsKKyAgICAgICAgZGVmYXVsdDoKKyAg
ICAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgICAgICAgICAgYnJlYWs7CisgICAg
ICAgIH0KKyAgICB9CisKKyAgICBzd2l0Y2ggKHByaW1pdGl2ZVZhbHVlLT5nZXRJZGVudCgpKSB7
CisgICAgY2FzZSBDU1NWYWx1ZUF1dG86CisgICAgICAgIHJldHVybiBkZWZhdWx0VmFsdWU7Cisg
ICAgY2FzZSBDU1NWYWx1ZURldmljZUhlaWdodDoKKyAgICAgICAgcmV0dXJuIFZpZXdwb3J0QXJn
dW1lbnRzOjpWYWx1ZURldmljZUhlaWdodDsKKyAgICBjYXNlIENTU1ZhbHVlRGV2aWNlV2lkdGg6
CisgICAgICAgIHJldHVybiBWaWV3cG9ydEFyZ3VtZW50czo6VmFsdWVEZXZpY2VXaWR0aDsKKyAg
ICBjYXNlIENTU1ZhbHVlTGFuZHNjYXBlOgorICAgICAgICByZXR1cm4gVmlld3BvcnRBcmd1bWVu
dHM6OlZhbHVlTGFuZHNjYXBlOworICAgIGNhc2UgQ1NTVmFsdWVQb3J0cmFpdDoKKyAgICAgICAg
cmV0dXJuIFZpZXdwb3J0QXJndW1lbnRzOjpWYWx1ZVBvcnRyYWl0OworICAgIGNhc2UgQ1NTVmFs
dWVab29tOgorICAgICAgICByZXR1cm4gZGVmYXVsdFZhbHVlOworICAgIGNhc2UgQ1NTVmFsdWVG
aXhlZDoKKyAgICAgICAgcmV0dXJuIDA7CisgICAgZGVmYXVsdDoKKyAgICAgICAgcmV0dXJuIGRl
ZmF1bHRWYWx1ZTsKKyAgICB9Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlm
IC8vIEVOQUJMRShDU1NfREVWSUNFX0FEQVBUQVRJT04pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9jc3MvVmlld3BvcnRTdHlsZVJlc29sdmVyLmggYi9Tb3VyY2UvV2ViQ29yZS9jc3MvVmll
d3BvcnRTdHlsZVJlc29sdmVyLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMGI4ZmY1NzkyMjRkMjViYzhiOTIzOGFh
YmU4ZTI0MTEwMGFjZDlmMAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9W
aWV3cG9ydFN0eWxlUmVzb2x2ZXIuaApAQCAtMCwwICsxLDc0IEBACisvKgorICogQ29weXJpZ2h0
IChDKSAyMDEyIEludGVsIENvcnBvcmF0aW9uLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICoKKyAqIDEuIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUKKyAqICAgIGNvcHly
aWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nCisg
KiAgICBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQorICogICAgY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcKKyAqICAgIGRpc2NsYWltZXIgaW4gdGhl
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscworICogICAgcHJvdmlkZWQgd2l0
aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
VEhFIENPUFlSSUdIVCBIT0xERVIg4oCcQVMgSVPigJ0gQU5EIEFOWQorICogRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAq
IElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwg
VEhFIENPUFlSSUdIVCBIT0xERVIgQkUKKyAqIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwKKyAqIE9SIENPTlNFUVVFTlRJQUwg
REFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBP
RiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAq
IFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
IEFOWQorICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IKKyAqIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRgorICogVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GCisgKiBTVUNIIERBTUFHRS4K
KyAqLworCisjaWZuZGVmIFZpZXdwb3J0U3R5bGVSZXNvbHZlcl9oCisjZGVmaW5lIFZpZXdwb3J0
U3R5bGVSZXNvbHZlcl9oCisKKyNpZiBFTkFCTEUoQ1NTX0RFVklDRV9BREFQVEFUSU9OKQorCisj
aW5jbHVkZSAiQ1NTUHJvcGVydHlOYW1lcy5oIgorI2luY2x1ZGUgIkZsb2F0U2l6ZS5oIgorI2lu
Y2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CisjaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgorCituYW1l
c3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIENTU1ByaW1pdGl2ZVZhbHVlOworY2xhc3MgRG9jdW1l
bnQ7CitjbGFzcyBTdHlsZVJ1bGVWaWV3cG9ydDsKK2NsYXNzIFN0eWxlUHJvcGVydHlTZXQ7CisK
K2NsYXNzIFZpZXdwb3J0U3R5bGVSZXNvbHZlciA6IHB1YmxpYyBSZWZDb3VudGVkPFZpZXdwb3J0
U3R5bGVSZXNvbHZlcj4geworcHVibGljOgorICAgIHN0YXRpYyBQYXNzUmVmUHRyPFZpZXdwb3J0
U3R5bGVSZXNvbHZlcj4gY3JlYXRlKERvY3VtZW50KiBkb2N1bWVudCkKKyAgICB7CisgICAgICAg
IHJldHVybiBhZG9wdFJlZihuZXcgVmlld3BvcnRTdHlsZVJlc29sdmVyKGRvY3VtZW50KSk7Cisg
ICAgfQorCisgICAgdm9pZCBhZGRWaWV3cG9ydFJ1bGUoU3R5bGVSdWxlVmlld3BvcnQqKTsKKwor
ICAgIHZvaWQgY2xlYXJEb2N1bWVudCgpOworICAgIHZvaWQgcmVzb2x2ZSgpOworCitwcml2YXRl
OgorICAgIGV4cGxpY2l0IFZpZXdwb3J0U3R5bGVSZXNvbHZlcihEb2N1bWVudCopOworCisgICAg
ZmxvYXQgZ2V0Vmlld3BvcnRBcmd1bWVudFZhbHVlKENTU1Byb3BlcnR5SUQpIGNvbnN0OworCisg
ICAgRG9jdW1lbnQqIG1fZG9jdW1lbnQ7CisgICAgUmVmUHRyPFN0eWxlUHJvcGVydHlTZXQ+IG1f
cHJvcGVydHlTZXQ7CisKKyAgICBGbG9hdFNpemUgbV9pbml0aWFsVmlld3BvcnRTaXplOworfTsK
KworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gRU5BQkxFKENTU19ERVZJQ0Vf
QURBUFRBVElPTikKKworI2VuZGlmIC8vIFZpZXdwb3J0U3R5bGVSZXNvbHZlcl9oCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9E
b2N1bWVudC5oCmluZGV4IDkyYTMyY2JiMzNjMDYwNGNhMjAyNGYxNjNlOTNkZWMxZTEzNjNkOTku
LmZjNDNmMWUyNzIxM2IwMTIwMWEyOGFjYWI4MTAyZmM0N2E0MGE2ZDggMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1
bWVudC5oCkBAIC0zMjMsNiArMzIzLDcgQEAgcHVibGljOgogICAgIERFRklORV9BVFRSSUJVVEVf
RVZFTlRfTElTVEVORVIod2Via2l0dmlzaWJpbGl0eWNoYW5nZSk7CiAjZW5kaWYKIAorICAgIHZv
aWQgc2V0Vmlld3BvcnRBcmd1bWVudHMoY29uc3QgVmlld3BvcnRBcmd1bWVudHMmIHZpZXdwb3J0
QXJndW1lbnRzKSB7IG1fdmlld3BvcnRBcmd1bWVudHMgPSB2aWV3cG9ydEFyZ3VtZW50czsgfQog
ICAgIFZpZXdwb3J0QXJndW1lbnRzIHZpZXdwb3J0QXJndW1lbnRzKCkgY29uc3QgeyByZXR1cm4g
bV92aWV3cG9ydEFyZ3VtZW50czsgfQogI2lmbmRlZiBOREVCVUcKICAgICBib29sIGRpZERpc3Bh
dGNoVmlld3BvcnRQcm9wZXJ0aWVzQ2hhbmdlZCgpIGNvbnN0IHsgcmV0dXJuIG1fZGlkRGlzcGF0
Y2hWaWV3cG9ydFByb3BlcnRpZXNDaGFuZ2VkOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9kb20vVmlld3BvcnRBcmd1bWVudHMuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL1ZpZXdwb3J0
QXJndW1lbnRzLmNwcAppbmRleCBkODg0MDRlMzYyMzA0Zjc4NzI0MmIyMjNjZDdmZmQ5Y2M3MGYw
MjkxLi5lMWFkZTYzZDExZGI1YzZkZWMyN2RkYTU3NDA5NzYwZGIwNDcyNmYyIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9kb20vVmlld3BvcnRBcmd1bWVudHMuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2RvbS9WaWV3cG9ydEFyZ3VtZW50cy5jcHAKQEAgLTYsNiArNiw3IEBACiAgKiBDb3B5
cmlnaHQgKEMpIDIwMDQsIDIwMDUsIDIwMDYsIDIwMDcsIDIwMDgsIDIwMTEgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgogICogQ29weXJpZ2h0IChDKSAyMDA4IFRvcmNoIE1vYmlsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuIChodHRwOi8vd3d3LnRvcmNobW9iaWxlLmNvbS8pCiAg
KiBDb3B5cmlnaHQgKEMpIDIwMTAgTm9raWEgQ29ycG9yYXRpb24gYW5kL29yIGl0cyBzdWJzaWRp
YXJ5KC1pZXMpCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIgSW50ZWwgQ29ycG9yYXRpb24uIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCiAgKgogICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlv
dSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgogICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJt
cyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKQEAgLTQzLDYgKzQ0LDE5IEBAIG5h
bWVzcGFjZSBXZWJDb3JlIHsKIAogY29uc3QgZmxvYXQgVmlld3BvcnRBcmd1bWVudHM6OmRlcHJl
Y2F0ZWRUYXJnZXREUEkgPSAxNjA7CiAKK3N0YXRpYyBjb25zdCBmbG9hdCYgY29tcGFyZUlnbm9y
aW5nQXV0byhjb25zdCBmbG9hdCYgdmFsdWUxLCBjb25zdCBmbG9hdCYgdmFsdWUyLCBjb25zdCBm
bG9hdCYgKCpjb21wYXJlKSAoY29uc3QgZmxvYXQmLCBjb25zdCBmbG9hdCYpKQoreworICAgIEFT
U0VSVCh2YWx1ZTEgIT0gVmlld3BvcnRBcmd1bWVudHM6OlZhbHVlQXV0byB8fCB2YWx1ZTIgIT0g
Vmlld3BvcnRBcmd1bWVudHM6OlZhbHVlQXV0byk7CisKKyAgICBpZiAodmFsdWUxID09IFZpZXdw
b3J0QXJndW1lbnRzOjpWYWx1ZUF1dG8pCisgICAgICAgIHJldHVybiB2YWx1ZTI7CisKKyAgICBp
ZiAodmFsdWUyID09IFZpZXdwb3J0QXJndW1lbnRzOjpWYWx1ZUF1dG8pCisgICAgICAgIHJldHVy
biB2YWx1ZTE7CisKKyAgICByZXR1cm4gY29tcGFyZSh2YWx1ZTEsIHZhbHVlMik7Cit9CisKIHN0
YXRpYyBpbmxpbmUgZmxvYXQgY2xhbXBMZW5ndGhWYWx1ZShmbG9hdCB2YWx1ZSkKIHsKICAgICBB
U1NFUlQodmFsdWUgIT0gVmlld3BvcnRBcmd1bWVudHM6OlZhbHVlRGV2aWNlV2lkdGgpOwpAQCAt
NjgsNyArODIsMTEgQEAgc3RhdGljIGlubGluZSBmbG9hdCBjbGFtcFNjYWxlVmFsdWUoZmxvYXQg
dmFsdWUpCiBWaWV3cG9ydEF0dHJpYnV0ZXMgVmlld3BvcnRBcmd1bWVudHM6OnJlc29sdmUoY29u
c3QgRmxvYXRTaXplJiBpbml0aWFsVmlld3BvcnRTaXplLCBjb25zdCBGbG9hdFNpemUmIGRldmlj
ZVNpemUsIGludCBkZWZhdWx0V2lkdGgpIGNvbnN0CiB7CiAgICAgZmxvYXQgcmVzdWx0V2lkdGgg
PSB3aWR0aDsKKyAgICBmbG9hdCByZXN1bHRNYXhXaWR0aCA9IG1heFdpZHRoOworICAgIGZsb2F0
IHJlc3VsdE1pbldpZHRoID0gbWluV2lkdGg7CiAgICAgZmxvYXQgcmVzdWx0SGVpZ2h0ID0gaGVp
Z2h0OworICAgIGZsb2F0IHJlc3VsdE1pbkhlaWdodCA9IG1pbkhlaWdodDsKKyAgICBmbG9hdCBy
ZXN1bHRNYXhIZWlnaHQgPSBtYXhIZWlnaHQ7CiAgICAgZmxvYXQgcmVzdWx0Wm9vbSA9IHpvb207
CiAgICAgZmxvYXQgcmVzdWx0TWluWm9vbSA9IG1pblpvb207CiAgICAgZmxvYXQgcmVzdWx0TWF4
Wm9vbSA9IG1heFpvb207CkBAIC05Miw2ICsxMTAsNzMgQEAgVmlld3BvcnRBdHRyaWJ1dGVzIFZp
ZXdwb3J0QXJndW1lbnRzOjpyZXNvbHZlKGNvbnN0IEZsb2F0U2l6ZSYgaW5pdGlhbFZpZXdwb3J0
U2kKICAgICAgICAgYnJlYWs7CiAgICAgfQogCisgICAgaWYgKHR5cGUgPT0gVmlld3BvcnRBcmd1
bWVudHM6OkNTU0RldmljZUFkYXB0YXRpb24pIHsKKyAgICAgICAgc3dpdGNoIChpbnQocmVzdWx0
TWluV2lkdGgpKSB7CisgICAgICAgIGNhc2UgVmlld3BvcnRBcmd1bWVudHM6OlZhbHVlRGV2aWNl
V2lkdGg6CisgICAgICAgICAgICByZXN1bHRNaW5XaWR0aCA9IGRldmljZVNpemUud2lkdGgoKTsK
KyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIFZpZXdwb3J0QXJndW1lbnRzOjpWYWx1
ZURldmljZUhlaWdodDoKKyAgICAgICAgICAgIHJlc3VsdE1pbldpZHRoID0gZGV2aWNlU2l6ZS5o
ZWlnaHQoKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisKKyAgICAgICAgc3dpdGNo
IChpbnQocmVzdWx0TWF4V2lkdGgpKSB7CisgICAgICAgIGNhc2UgVmlld3BvcnRBcmd1bWVudHM6
OlZhbHVlRGV2aWNlV2lkdGg6CisgICAgICAgICAgICByZXN1bHRNYXhXaWR0aCA9IGRldmljZVNp
emUud2lkdGgoKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIFZpZXdwb3J0QXJn
dW1lbnRzOjpWYWx1ZURldmljZUhlaWdodDoKKyAgICAgICAgICAgIHJlc3VsdE1heFdpZHRoID0g
ZGV2aWNlU2l6ZS5oZWlnaHQoKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisKKyAg
ICAgICAgc3dpdGNoIChpbnQocmVzdWx0TWluSGVpZ2h0KSkgeworICAgICAgICBjYXNlIFZpZXdw
b3J0QXJndW1lbnRzOjpWYWx1ZURldmljZVdpZHRoOgorICAgICAgICAgICAgcmVzdWx0TWluSGVp
Z2h0ID0gZGV2aWNlU2l6ZS53aWR0aCgpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNh
c2UgVmlld3BvcnRBcmd1bWVudHM6OlZhbHVlRGV2aWNlSGVpZ2h0OgorICAgICAgICAgICAgcmVz
dWx0TWluSGVpZ2h0ID0gZGV2aWNlU2l6ZS5oZWlnaHQoKTsKKyAgICAgICAgICAgIGJyZWFrOwor
ICAgICAgICB9CisKKyAgICAgICAgc3dpdGNoIChpbnQocmVzdWx0TWF4SGVpZ2h0KSkgeworICAg
ICAgICBjYXNlIFZpZXdwb3J0QXJndW1lbnRzOjpWYWx1ZURldmljZVdpZHRoOgorICAgICAgICAg
ICAgcmVzdWx0TWF4SGVpZ2h0ID0gZGV2aWNlU2l6ZS53aWR0aCgpOworICAgICAgICAgICAgYnJl
YWs7CisgICAgICAgIGNhc2UgVmlld3BvcnRBcmd1bWVudHM6OlZhbHVlRGV2aWNlSGVpZ2h0Ogor
ICAgICAgICAgICAgcmVzdWx0TWF4SGVpZ2h0ID0gZGV2aWNlU2l6ZS5oZWlnaHQoKTsKKyAgICAg
ICAgICAgIGJyZWFrOworICAgICAgICB9CisKKyAgICAgICAgaWYgKHJlc3VsdE1pbldpZHRoICE9
IFZpZXdwb3J0QXJndW1lbnRzOjpWYWx1ZUF1dG8gfHwgcmVzdWx0TWF4V2lkdGggIT0gVmlld3Bv
cnRBcmd1bWVudHM6OlZhbHVlQXV0bykKKyAgICAgICAgICAgIHJlc3VsdFdpZHRoID0gY29tcGFy
ZUlnbm9yaW5nQXV0byhyZXN1bHRNaW5XaWR0aCwgY29tcGFyZUlnbm9yaW5nQXV0byhyZXN1bHRN
YXhXaWR0aCwgZGV2aWNlU2l6ZS53aWR0aCgpLCBtaW4pLCBtYXgpOworCisgICAgICAgIGlmIChy
ZXN1bHRNaW5IZWlnaHQgIT0gVmlld3BvcnRBcmd1bWVudHM6OlZhbHVlQXV0byB8fCByZXN1bHRN
YXhIZWlnaHQgIT0gVmlld3BvcnRBcmd1bWVudHM6OlZhbHVlQXV0bykKKyAgICAgICAgICAgIHJl
c3VsdEhlaWdodCA9IGNvbXBhcmVJZ25vcmluZ0F1dG8ocmVzdWx0TWluSGVpZ2h0LCBjb21wYXJl
SWdub3JpbmdBdXRvKHJlc3VsdE1heEhlaWdodCwgZGV2aWNlU2l6ZS5oZWlnaHQoKSwgbWluKSwg
bWF4KTsKKworICAgICAgICBpZiAocmVzdWx0TWluWm9vbSAhPSBWaWV3cG9ydEFyZ3VtZW50czo6
VmFsdWVBdXRvICYmIHJlc3VsdE1heFpvb20gIT0gVmlld3BvcnRBcmd1bWVudHM6OlZhbHVlQXV0
bykKKyAgICAgICAgICAgIHJlc3VsdE1heFpvb20gPSBtYXgocmVzdWx0TWluWm9vbSwgcmVzdWx0
TWF4Wm9vbSk7CisKKyAgICAgICAgaWYgKHJlc3VsdFpvb20gIT0gVmlld3BvcnRBcmd1bWVudHM6
OlZhbHVlQXV0bykKKyAgICAgICAgICAgIHJlc3VsdFpvb20gPSBjb21wYXJlSWdub3JpbmdBdXRv
KHJlc3VsdE1pblpvb20sIGNvbXBhcmVJZ25vcmluZ0F1dG8ocmVzdWx0TWF4Wm9vbSwgcmVzdWx0
Wm9vbSwgbWluKSwgbWF4KTsKKworICAgICAgICBpZiAocmVzdWx0V2lkdGggPT0gVmlld3BvcnRB
cmd1bWVudHM6OlZhbHVlQXV0byAmJiByZXN1bHRab29tID09IFZpZXdwb3J0QXJndW1lbnRzOjpW
YWx1ZUF1dG8pCisgICAgICAgICAgICByZXN1bHRXaWR0aCA9IGRldmljZVNpemUud2lkdGgoKTsK
KworICAgICAgICBpZiAocmVzdWx0V2lkdGggPT0gVmlld3BvcnRBcmd1bWVudHM6OlZhbHVlQXV0
byAmJiByZXN1bHRIZWlnaHQgPT0gVmlld3BvcnRBcmd1bWVudHM6OlZhbHVlQXV0bykKKyAgICAg
ICAgICAgIHJlc3VsdFdpZHRoID0gZGV2aWNlU2l6ZS53aWR0aCgpIC8gcmVzdWx0Wm9vbTsKKwor
ICAgICAgICBpZiAocmVzdWx0V2lkdGggPT0gVmlld3BvcnRBcmd1bWVudHM6OlZhbHVlQXV0bykK
KyAgICAgICAgICAgIHJlc3VsdFdpZHRoID0gcmVzdWx0SGVpZ2h0ICogZGV2aWNlU2l6ZS53aWR0
aCgpIC8gZGV2aWNlU2l6ZS5oZWlnaHQoKTsKKworICAgICAgICBpZiAocmVzdWx0SGVpZ2h0ID09
IFZpZXdwb3J0QXJndW1lbnRzOjpWYWx1ZUF1dG8pCisgICAgICAgICAgICByZXN1bHRIZWlnaHQg
PSByZXN1bHRXaWR0aCAqIGRldmljZVNpemUuaGVpZ2h0KCkgLyBkZXZpY2VTaXplLndpZHRoKCk7
CisKKyAgICAgICAgaWYgKHJlc3VsdFpvb20gIT0gVmlld3BvcnRBcmd1bWVudHM6OlZhbHVlQXV0
byB8fCByZXN1bHRNYXhab29tICE9IFZpZXdwb3J0QXJndW1lbnRzOjpWYWx1ZUF1dG8pIHsKKyAg
ICAgICAgICAgIHJlc3VsdFdpZHRoID0gY29tcGFyZUlnbm9yaW5nQXV0byhyZXN1bHRXaWR0aCwg
ZGV2aWNlU2l6ZS53aWR0aCgpIC8gY29tcGFyZUlnbm9yaW5nQXV0byhyZXN1bHRab29tLCByZXN1
bHRNYXhab29tLCBtaW4pLCBtYXgpOworICAgICAgICAgICAgcmVzdWx0SGVpZ2h0ID0gY29tcGFy
ZUlnbm9yaW5nQXV0byhyZXN1bHRIZWlnaHQsIGRldmljZVNpemUuaGVpZ2h0KCkgLyBjb21wYXJl
SWdub3JpbmdBdXRvKHJlc3VsdFpvb20sIHJlc3VsdE1heFpvb20sIG1pbiksIG1heCk7CisgICAg
ICAgIH0KKyAgICB9CisKICAgICAvLyBDbGFtcCB2YWx1ZXMgdG8gdmFsaWQgcmFuZ2UuCiAgICAg
cmVzdWx0V2lkdGggPSBjbGFtcExlbmd0aFZhbHVlKHJlc3VsdFdpZHRoKTsKICAgICByZXN1bHRI
ZWlnaHQgPSBjbGFtcExlbmd0aFZhbHVlKHJlc3VsdEhlaWdodCk7CkBAIC0xMDAsNiArMTg1LDcg
QEAgVmlld3BvcnRBdHRyaWJ1dGVzIFZpZXdwb3J0QXJndW1lbnRzOjpyZXNvbHZlKGNvbnN0IEZs
b2F0U2l6ZSYgaW5pdGlhbFZpZXdwb3J0U2kKICAgICByZXN1bHRNYXhab29tID0gY2xhbXBTY2Fs
ZVZhbHVlKHJlc3VsdE1heFpvb20pOwogCiAgICAgVmlld3BvcnRBdHRyaWJ1dGVzIHJlc3VsdDsK
KyAgICByZXN1bHQub3JpZW50YXRpb24gPSBvcmllbnRhdGlvbjsKIAogICAgIC8vIFJlc29sdmUg
bWluaW11bS1zY2FsZSBhbmQgbWF4aW11bS1zY2FsZSB2YWx1ZXMgYWNjb3JkaW5nIHRvIHNwZWMu
CiAgICAgaWYgKHJlc3VsdE1pblpvb20gPT0gVmlld3BvcnRBcmd1bWVudHM6OlZhbHVlQXV0bykK
QEAgLTE1NSw2ICsyNDEsNyBAQCBWaWV3cG9ydEF0dHJpYnV0ZXMgVmlld3BvcnRBcmd1bWVudHM6
OnJlc29sdmUoY29uc3QgRmxvYXRTaXplJiBpbml0aWFsVmlld3BvcnRTaQogICAgIC8vICAgIHJl
c3VsdC5pbml0aWFsU2NhbGUgPSBWaWV3cG9ydEFyZ3VtZW50czo6VmFsdWVBdXRvOwogCiAgICAg
cmVzdWx0LnVzZXJTY2FsYWJsZSA9IHJlc3VsdFVzZXJab29tOworICAgIHJlc3VsdC5vcmllbnRh
dGlvbiA9IG9yaWVudGF0aW9uOwogCiAgICAgcmV0dXJuIHJlc3VsdDsKIH0KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2RvbS9WaWV3cG9ydEFyZ3VtZW50cy5oIGIvU291cmNlL1dlYkNvcmUv
ZG9tL1ZpZXdwb3J0QXJndW1lbnRzLmgKaW5kZXggMTdjOGFkZmQ1ZmQxYTZkMTU5NjdhMzdhMTk3
ZGE5MzRjZDQ5NmRhYy4uZTJmNmYyZWVmZjFlOGMxNDA2MWY4MTgwOWM2MWFiYTlkOWNjYTZiMyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL1ZpZXdwb3J0QXJndW1lbnRzLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvZG9tL1ZpZXdwb3J0QXJndW1lbnRzLmgKQEAgLTYsNiArNiw3IEBACiAg
KiBDb3B5cmlnaHQgKEMpIDIwMDQsIDIwMDUsIDIwMDYsIDIwMDcsIDIwMDggQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgogICogQ29weXJpZ2h0IChDKSAyMDA4IFRvcmNoIE1vYmlsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuIChodHRwOi8vd3d3LnRvcmNobW9iaWxlLmNvbS8pCiAg
KiBDb3B5cmlnaHQgKEMpIDIwMTAgTm9raWEgQ29ycG9yYXRpb24gYW5kL29yIGl0cyBzdWJzaWRp
YXJ5KC1pZXMpCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIgSW50ZWwgQ29ycG9yYXRpb24uIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCiAgKgogICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlv
dSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgogICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJt
cyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKQEAgLTUwLDYgKzUxLDcgQEAgc3Ry
dWN0IFZpZXdwb3J0QXR0cmlidXRlcyB7CiAgICAgZmxvYXQgbWF4aW11bVNjYWxlOwogCiAgICAg
ZmxvYXQgdXNlclNjYWxhYmxlOworICAgIGZsb2F0IG9yaWVudGF0aW9uOwogfTsKIAogc3RydWN0
IFZpZXdwb3J0QXJndW1lbnRzIHsKQEAgLTYyLDIzICs2NCwzMSBAQCBzdHJ1Y3QgVmlld3BvcnRB
cmd1bWVudHMgewogICAgICAgICBIYW5kaGVsZEZyaWVuZGx5TWV0YSwKICAgICAgICAgTW9iaWxl
T3B0aW1pemVkTWV0YSwKICNlbmRpZgotICAgICAgICBWaWV3cG9ydE1ldGEKKyAgICAgICAgVmll
d3BvcnRNZXRhLAorICAgICAgICBDU1NEZXZpY2VBZGFwdGF0aW9uCiAgICAgfSB0eXBlOwogCiAg
ICAgZW51bSB7CiAgICAgICAgIFZhbHVlQXV0byA9IC0xLAogICAgICAgICBWYWx1ZURldmljZVdp
ZHRoID0gLTIsCiAgICAgICAgIFZhbHVlRGV2aWNlSGVpZ2h0ID0gLTMsCisgICAgICAgIFZhbHVl
UG9ydHJhaXQgPSAtNCwKKyAgICAgICAgVmFsdWVMYW5kc2NhcGUgPSAtNQogICAgIH07CiAKICAg
ICBWaWV3cG9ydEFyZ3VtZW50cyhUeXBlIHR5cGUgPSBJbXBsaWNpdCkKICAgICAgICAgOiB0eXBl
KHR5cGUpCiAgICAgICAgICwgd2lkdGgoVmFsdWVBdXRvKQorICAgICAgICAsIG1pbldpZHRoKFZh
bHVlQXV0bykKKyAgICAgICAgLCBtYXhXaWR0aChWYWx1ZUF1dG8pCiAgICAgICAgICwgaGVpZ2h0
KFZhbHVlQXV0bykKKyAgICAgICAgLCBtaW5IZWlnaHQoVmFsdWVBdXRvKQorICAgICAgICAsIG1h
eEhlaWdodChWYWx1ZUF1dG8pCiAgICAgICAgICwgem9vbShWYWx1ZUF1dG8pCiAgICAgICAgICwg
bWluWm9vbShWYWx1ZUF1dG8pCiAgICAgICAgICwgbWF4Wm9vbShWYWx1ZUF1dG8pCiAgICAgICAg
ICwgdXNlclpvb20oVmFsdWVBdXRvKQorICAgICAgICAsIG9yaWVudGF0aW9uKFZhbHVlQXV0bykK
ICAgICB7CiAgICAgfQogCkBAIC04NiwyMiArOTYsMzIgQEAgc3RydWN0IFZpZXdwb3J0QXJndW1l
bnRzIHsKICAgICBWaWV3cG9ydEF0dHJpYnV0ZXMgcmVzb2x2ZShjb25zdCBGbG9hdFNpemUmIGlu
aXRpYWxWaWV3cG9ydFNpemUsIGNvbnN0IEZsb2F0U2l6ZSYgZGV2aWNlU2l6ZSwgaW50IGRlZmF1
bHRXaWR0aCkgY29uc3Q7CiAKICAgICBmbG9hdCB3aWR0aDsKKyAgICBmbG9hdCBtaW5XaWR0aDsK
KyAgICBmbG9hdCBtYXhXaWR0aDsKICAgICBmbG9hdCBoZWlnaHQ7CisgICAgZmxvYXQgbWluSGVp
Z2h0OworICAgIGZsb2F0IG1heEhlaWdodDsKICAgICBmbG9hdCB6b29tOwogICAgIGZsb2F0IG1p
blpvb207CiAgICAgZmxvYXQgbWF4Wm9vbTsKICAgICBmbG9hdCB1c2VyWm9vbTsKKyAgICBmbG9h
dCBvcmllbnRhdGlvbjsKIAogICAgIGJvb2wgb3BlcmF0b3I9PShjb25zdCBWaWV3cG9ydEFyZ3Vt
ZW50cyYgb3RoZXIpIGNvbnN0CiAgICAgewogICAgICAgICAvLyBVc2VkIGZvciBmaWd1cmluZyBv
dXQgd2hldGhlciB0byByZXNldCB0aGUgdmlld3BvcnQgb3Igbm90LAogICAgICAgICAvLyB0aHVz
IHdlIGFyZSBub3QgdGFraW5nIHR5cGUgaW50byBhY2NvdW50LgogICAgICAgICByZXR1cm4gd2lk
dGggPT0gb3RoZXIud2lkdGgKKyAgICAgICAgICAgICYmIG1pbldpZHRoID09IG90aGVyLm1pbldp
ZHRoCisgICAgICAgICAgICAmJiBtYXhXaWR0aCA9PSBvdGhlci5tYXhXaWR0aAogICAgICAgICAg
ICAgJiYgaGVpZ2h0ID09IG90aGVyLmhlaWdodAorICAgICAgICAgICAgJiYgbWluSGVpZ2h0ID09
IG90aGVyLm1pbkhlaWdodAorICAgICAgICAgICAgJiYgbWF4SGVpZ2h0ID09IG90aGVyLm1heEhl
aWdodAogICAgICAgICAgICAgJiYgem9vbSA9PSBvdGhlci56b29tCiAgICAgICAgICAgICAmJiBt
aW5ab29tID09IG90aGVyLm1pblpvb20KICAgICAgICAgICAgICYmIG1heFpvb20gPT0gb3RoZXIu
bWF4Wm9vbQotICAgICAgICAgICAgJiYgdXNlclpvb20gPT0gb3RoZXIudXNlclpvb207CisgICAg
ICAgICAgICAmJiB1c2VyWm9vbSA9PSBvdGhlci51c2VyWm9vbQorICAgICAgICAgICAgJiYgb3Jp
ZW50YXRpb24gPT0gb3RoZXIub3JpZW50YXRpb247CiAgICAgfQogCiAgICAgYm9vbCBvcGVyYXRv
ciE9KGNvbnN0IFZpZXdwb3J0QXJndW1lbnRzJiBvdGhlcikgY29uc3QKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCA3MDZhZGNh
YTIwYjdhMWRkMGQ0MDYzZjQ1Y2RmZGJlNWM1ZDFhNDJmLi4yYmNmYmJhNWZjMTQzY2JhZjFiMmUz
YTk4ZTEwMjYzZWJjOGY4MTQwIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysr
IGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNzQgQEAKKzIwMTItMTEtMTYgIFRo
aWFnbyBNYXJjb3MgUC4gU2FudG9zICA8dGhpYWdvLnNhbnRvc0BpbnRlbC5jb20+CisKKyAgICAg
ICAgQXBwbHkgdGhlIHJlc29sdmVkIHZpZXdwb3J0IHJ1bGVzCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05NTk2NAorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEltcG9ydGVkIHNvbWUgb2YgdGhlIENTUyBEZXZp
Y2UgQWRhcHRhdGlvbiB0ZXN0cyBzdWJtaXR0ZWQgYnkKKyAgICAgICAgT3BlcmEgdG8gVzNDIENT
UyBUZXN0IFN1aXRlLiBUaGVzZSB0ZXN0cyBhcmUgbm90IHlldCBhcHByb3ZlZCBidXQKKyAgICAg
ICAgdGhleSBoYXZlIGEgcHJldHR5IGdvb2QgY292ZXJhZ2Ugb2YgdGhlIHNwZWNpZmljYXRpb24u
CisKKyAgICAgICAgVGVzdHMgdXNpbmcgTWF0aC5mbG9vcigpIHdoZXJlIG1vZGlmaWVkIGZyb20g
dGhlIG9yaWdpbmFsIHZlcnNpb24KKyAgICAgICAgdXNpbmcgTWF0aC5yb3VuZCgpLCB0aGUgcmVh
c29uIGJlaW5nIHRoZSByb3VuZCgpIHZlcnNpb24gZmFpbHMgYnkKKyAgICAgICAgMXB4IHdoZW4g
dGhlIHBpeGVsIHJhdGlvIGlzIGRpZmZlcmVudCBmcm9tIDEuCisKKyAgICAgICAgRGVzcGl0ZSB0
aGUgZmFjdCB0aGV5IGFyZSBhbGwgcGFzc2luZyBvbiB0aGUgRUZMIE1pbmlCcm93c2VyLCBJIGNv
dWxkCisgICAgICAgIG5vdCBlbmFibGUgdGhlbSB5ZXQuIFdlYktpdFRlc3RSdW5uZXIgZG9lcyBu
b3Qgc3VwcG9ydCBmaXhlZCBsYXlvdXQsCisgICAgICAgIGJ1dCB0aGF0IGlzIHRoZSBuZXh0IGdv
YWwuCisKKyAgICAgICAgKiBjc3MzL2RldmljZS1hZGFwdC9vcGVyYS9jYXNjYWRpbmctMDAxLWV4
cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogY3NzMy9kZXZpY2UtYWRhcHQvb3BlcmEvY2Fz
Y2FkaW5nLTAwMS54aHRtbDogQWRkZWQuCisgICAgICAgICogY3NzMy9kZXZpY2UtYWRhcHQvb3Bl
cmEvY2FzY2FkaW5nLTAwMi1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGNzczMvZGV2
aWNlLWFkYXB0L29wZXJhL2Nhc2NhZGluZy0wMDIueGh0bWw6IEFkZGVkLgorICAgICAgICAqIGNz
czMvZGV2aWNlLWFkYXB0L29wZXJhL2Nhc2NhZGluZy0wMDMtZXhwZWN0ZWQudHh0OiBBZGRlZC4K
KyAgICAgICAgKiBjc3MzL2RldmljZS1hZGFwdC9vcGVyYS9jYXNjYWRpbmctMDAzLnhodG1sOiBB
ZGRlZC4KKyAgICAgICAgKiBjc3MzL2RldmljZS1hZGFwdC9vcGVyYS9jYXNjYWRpbmctMDA0LWV4
cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogY3NzMy9kZXZpY2UtYWRhcHQvb3BlcmEvY2Fz
Y2FkaW5nLTAwNC54aHRtbDogQWRkZWQuCisgICAgICAgICogY3NzMy9kZXZpY2UtYWRhcHQvb3Bl
cmEvY29uc3RyYWluLTAwMS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGNzczMvZGV2
aWNlLWFkYXB0L29wZXJhL2NvbnN0cmFpbi0wMDEueGh0bWw6IEFkZGVkLgorICAgICAgICAqIGNz
czMvZGV2aWNlLWFkYXB0L29wZXJhL2NvbnN0cmFpbi0wMDItZXhwZWN0ZWQudHh0OiBBZGRlZC4K
KyAgICAgICAgKiBjc3MzL2RldmljZS1hZGFwdC9vcGVyYS9jb25zdHJhaW4tMDAyLnhodG1sOiBB
ZGRlZC4KKyAgICAgICAgKiBjc3MzL2RldmljZS1hZGFwdC9vcGVyYS9jb25zdHJhaW4tMDAzLWV4
cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogY3NzMy9kZXZpY2UtYWRhcHQvb3BlcmEvY29u
c3RyYWluLTAwMy54aHRtbDogQWRkZWQuCisgICAgICAgICogY3NzMy9kZXZpY2UtYWRhcHQvb3Bl
cmEvY29uc3RyYWluLTAwNC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGNzczMvZGV2
aWNlLWFkYXB0L29wZXJhL2NvbnN0cmFpbi0wMDQueGh0bWw6IEFkZGVkLgorICAgICAgICAqIGNz
czMvZGV2aWNlLWFkYXB0L29wZXJhL2NvbnN0cmFpbi0wMDUtZXhwZWN0ZWQudHh0OiBBZGRlZC4K
KyAgICAgICAgKiBjc3MzL2RldmljZS1hZGFwdC9vcGVyYS9jb25zdHJhaW4tMDA1LnhodG1sOiBB
ZGRlZC4KKyAgICAgICAgKiBjc3MzL2RldmljZS1hZGFwdC9vcGVyYS9jb25zdHJhaW4tMDA2LWV4
cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogY3NzMy9kZXZpY2UtYWRhcHQvb3BlcmEvY29u
c3RyYWluLTAwNi54aHRtbDogQWRkZWQuCisgICAgICAgICogY3NzMy9kZXZpY2UtYWRhcHQvb3Bl
cmEvY29uc3RyYWluLTAwNy1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGNzczMvZGV2
aWNlLWFkYXB0L29wZXJhL2NvbnN0cmFpbi0wMDcueGh0bWw6IEFkZGVkLgorICAgICAgICAqIGNz
czMvZGV2aWNlLWFkYXB0L29wZXJhL2NvbnN0cmFpbi0wMDgtZXhwZWN0ZWQudHh0OiBBZGRlZC4K
KyAgICAgICAgKiBjc3MzL2RldmljZS1hZGFwdC9vcGVyYS9jb25zdHJhaW4tMDA4LnhodG1sOiBB
ZGRlZC4KKyAgICAgICAgKiBjc3MzL2RldmljZS1hZGFwdC9vcGVyYS9jb25zdHJhaW4tMDA5LWV4
cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogY3NzMy9kZXZpY2UtYWRhcHQvb3BlcmEvY29u
c3RyYWluLTAwOS54aHRtbDogQWRkZWQuCisgICAgICAgICogY3NzMy9kZXZpY2UtYWRhcHQvb3Bl
cmEvY29uc3RyYWluLTAxMC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGNzczMvZGV2
aWNlLWFkYXB0L29wZXJhL2NvbnN0cmFpbi0wMTAueGh0bWw6IEFkZGVkLgorICAgICAgICAqIGNz
czMvZGV2aWNlLWFkYXB0L29wZXJhL2NvbnN0cmFpbi0wMTEtZXhwZWN0ZWQudHh0OiBBZGRlZC4K
KyAgICAgICAgKiBjc3MzL2RldmljZS1hZGFwdC9vcGVyYS9jb25zdHJhaW4tMDExLnhodG1sOiBB
ZGRlZC4KKyAgICAgICAgKiBjc3MzL2RldmljZS1hZGFwdC9vcGVyYS9jb25zdHJhaW4tMDEyLWV4
cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogY3NzMy9kZXZpY2UtYWRhcHQvb3BlcmEvY29u
c3RyYWluLTAxMi54aHRtbDogQWRkZWQuCisgICAgICAgICogY3NzMy9kZXZpY2UtYWRhcHQvb3Bl
cmEvY29uc3RyYWluLTAxMy1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGNzczMvZGV2
aWNlLWFkYXB0L29wZXJhL2NvbnN0cmFpbi0wMTMueGh0bWw6IEFkZGVkLgorICAgICAgICAqIGNz
czMvZGV2aWNlLWFkYXB0L29wZXJhL2NvbnN0cmFpbi0wMTQtZXhwZWN0ZWQudHh0OiBBZGRlZC4K
KyAgICAgICAgKiBjc3MzL2RldmljZS1hZGFwdC9vcGVyYS9jb25zdHJhaW4tMDE0LnhodG1sOiBB
ZGRlZC4KKyAgICAgICAgKiBjc3MzL2RldmljZS1hZGFwdC9vcGVyYS9jb25zdHJhaW4tMDE1LWV4
cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogY3NzMy9kZXZpY2UtYWRhcHQvb3BlcmEvY29u
c3RyYWluLTAxNS54aHRtbDogQWRkZWQuCisgICAgICAgICogY3NzMy9kZXZpY2UtYWRhcHQvb3Bl
cmEvY29uc3RyYWluLTAxNi1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGNzczMvZGV2
aWNlLWFkYXB0L29wZXJhL2NvbnN0cmFpbi0wMTYueGh0bWw6IEFkZGVkLgorICAgICAgICAqIGNz
czMvZGV2aWNlLWFkYXB0L29wZXJhL2NvbnN0cmFpbi0wMTctZXhwZWN0ZWQudHh0OiBBZGRlZC4K
KyAgICAgICAgKiBjc3MzL2RldmljZS1hZGFwdC9vcGVyYS9jb25zdHJhaW4tMDE3LnhodG1sOiBB
ZGRlZC4KKyAgICAgICAgKiBjc3MzL2RldmljZS1hZGFwdC9vcGVyYS9jb25zdHJhaW4tMDIwLWV4
cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogY3NzMy9kZXZpY2UtYWRhcHQvb3BlcmEvY29u
c3RyYWluLTAyMC54aHRtbDogQWRkZWQuCisgICAgICAgICogY3NzMy9kZXZpY2UtYWRhcHQvb3Bl
cmEvc3ludGF4LTAwMS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGNzczMvZGV2aWNl
LWFkYXB0L29wZXJhL3N5bnRheC0wMDEueGh0bWw6IEFkZGVkLgorICAgICAgICAqIGNzczMvZGV2
aWNlLWFkYXB0L29wZXJhL3N5bnRheC0wMDItZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAg
KiBjc3MzL2RldmljZS1hZGFwdC9vcGVyYS9zeW50YXgtMDAyLnhodG1sOiBBZGRlZC4KKyAgICAg
ICAgKiBjc3MzL2RldmljZS1hZGFwdC9vcGVyYS9zeW50YXgtMDAzLWV4cGVjdGVkLnR4dDogQWRk
ZWQuCisgICAgICAgICogY3NzMy9kZXZpY2UtYWRhcHQvb3BlcmEvc3ludGF4LTAwMy54aHRtbDog
QWRkZWQuCisgICAgICAgICogcGxhdGZvcm0vZWZsL1Rlc3RFeHBlY3RhdGlvbnM6CisKIDIwMTIt
MTEtMTYgIFNoaW55YSBLYXdhbmFrYSAgPHNoaW55YWtAY2hyb21pdW0ub3JnPgogCiAgICAgICAg
IENoYW5naW5nIHBzZXVkb0NsYXNzICg6aW5kZXRlcm1pbmF0ZSkgc2hvdWxkIGNhdXNlIGRpc3Ry
aWJ1dGlvbgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvY3NzMy9kZXZpY2UtYWRhcHQvb3BlcmEv
Y2FzY2FkaW5nLTAwMS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9jc3MzL2RldmljZS1hZGFw
dC9vcGVyYS9jYXNjYWRpbmctMDAxLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lNGU1ZDkwNmE3
YjA2ZTc4NWQ4YzU1MGNjOWE2YWEzZDNkY2Q5MDk5Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvY3NzMy9kZXZpY2UtYWRhcHQvb3BlcmEvY2FzY2FkaW5nLTAwMS1leHBlY3RlZC50eHQK
QEAgLTAsMCArMSwzIEBACisKK1BBU1MgQ1NTIFRlc3Q6IEB2aWV3cG9ydCBjYXNjYWRpbmcgLSBs
YXN0IGRlY2xhcmF0aW9uIHdpbnMgCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2NzczMvZGV2
aWNlLWFkYXB0L29wZXJhL2Nhc2NhZGluZy0wMDEueGh0bWwgYi9MYXlvdXRUZXN0cy9jc3MzL2Rl
dmljZS1hZGFwdC9vcGVyYS9jYXNjYWRpbmctMDAxLnhodG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjJkYmVlMjRh
NDRmOGMyMzA3NzVmYjcwMWQyYjNkYTk1NTE3N2MyM2UKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy9jc3MzL2RldmljZS1hZGFwdC9vcGVyYS9jYXNjYWRpbmctMDAxLnhodG1sCkBAIC0w
LDAgKzEsODQgQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04Ij8+Cis8IURP
Q1RZUEUgaHRtbCBQVUJMSUMgIi0vL1czQy8vRFREIFhIVE1MIDEuMCBTdHJpY3QvL0VOIiAiaHR0
cDovL3d3dy53My5vcmcvVFIveGh0bWwxL0RURC94aHRtbDEtc3RyaWN0LmR0ZCI+Cis8aHRtbCB4
bWxucz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCI+CisgPGhlYWQ+CisgIDx0aXRsZT5D
U1MgVGVzdDogQHZpZXdwb3J0IGNhc2NhZGluZyAtIGxhc3QgZGVjbGFyYXRpb24gd2luczwvdGl0
bGU+CisgIDxsaW5rIHJlbD0iYXV0aG9yIiB0aXRsZT0iUnVuZSBMaWxsZXN2ZWVuIiBocmVmPSJt
YWlsdG86cnVuZUBvcGVyYS5jb20iLz4KKyAgPGxpbmsgcmVsPSJoZWxwIiBocmVmPSJodHRwOi8v
d3d3LnczLm9yZy9UUi9jc3MtZGV2aWNlLWFkYXB0LyN0aGUtdmlld3BvcnQtcnVsZSIvPgorICA8
bWV0YSBuYW1lPSJmbGFncyIgY29udGVudD0idmlzdWFsIHNjcm9sbCBkb20iIC8+CisgIDxtZXRh
IG5hbWU9ImFzc2VydCIgY29udGVudD0iVGhlIGxhc3Qgb2YgdHdvIG5vbi1pbXBvcnRhbnQgZGVj
bGFyYXRpb25zIGZvciB0aGUgc2FtZSBkZXNjcmlwdG9yIHdpbnMuIi8+CisgIDxzY3JpcHQgc3Jj
PSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiIHR5cGU9InRleHQvamF2YXNjcmlw
dCIgLz4KKyAgPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9y
dC5qcyIgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiAvPgorICA8c3R5bGUgdHlwZT0idGV4dC9jc3Mi
PjwhW0NEQVRBWworICAgYm9keSB7IG1hcmdpbjogMDsgfQorICAgaHRtbCwgYm9keSwgI3Rlc3Qg
eyB3aWR0aDogMTAwJTsgaGVpZ2h0OiAxMDAlOyB9CisgICAjbG9nIHsgcGFkZGluZzogMWVtOyBk
aXNwbGF5OiBub25lOyB9CisgICAvKiBSZXNldCB2aWV3cG9ydCB2YWx1ZXMgdG8gaW5pdGlhbCB2
YWx1ZXMgdG8gaWdub3JlIFVBIHN0eWxlc2hlZXQuICovCisgICBALXdlYmtpdC12aWV3cG9ydCB7
CisgICAgd2lkdGg6IGF1dG87CisgICAgaGVpZ2h0OiBhdXRvOworICAgIHpvb206IGF1dG87Cisg
ICAgbWluLXpvb206IGF1dG87CisgICAgbWF4LXpvb206IGF1dG87CisgICAgdXNlci16b29tOiB6
b29tOworICAgIG9yaWVudGF0aW9uOiBhdXRvOworICAgIHJlc29sdXRpb246IGF1dG87CisgICB9
CisgIF1dPjwvc3R5bGU+CisgIDxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyI+PCFbQ0RBVEFbCisgICAv
KiBDU1MgZm9yIHRoZSB0ZXN0IGJlbG93LiAqLworICAgQC13ZWJraXQtdmlld3BvcnQgeyB3aWR0
aDogMzAwcHg7IHdpZHRoOiA1MDBweCB9CisgICAvKiBTZXQgcm9vdCBlbGVtZW50IGZvbnQtc2l6
ZSB0byBzb21ldGhpbmcgZGlmZmVyZW50IGZyb20gdGhlIGluaXRpYWwKKyAgICAgIGZvbnQtc2l6
ZSB0byBtYWtlIHN1cmUgJ3JlbScgYW5kICdlbScgZm9yIEB2aWV3cG9ydCBpcyBiYXNlZCBvbiB0
aGUKKyAgICAgIGluaXRpYWwgZm9udC1zaXplLCBub3QgdGhlIHJvb3QgZWxlbWVudCBmb250LXNp
emUuICovCisgICBodG1sIHsgZm9udC1zaXplOiAycmVtOyB9CisgICBib2R5IHsgZm9udC1zaXpl
OiAwLjVyZW07IH0KKyAgXV0+PC9zdHlsZT4KKyAgPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3Jp
cHQiPjwhW0NEQVRBWworICAgdmFyIHRlc3QgPSBhc3luY190ZXN0KCJDU1MgVGVzdDogQHZpZXdw
b3J0IGNhc2NhZGluZyAtIGxhc3QgZGVjbGFyYXRpb24gd2lucyIpOworICAgd2luZG93Lm9ubG9h
ZCA9IGZ1bmN0aW9uKCl7CisKKyAgICB2YXIgdGVzdFN0eWxlU2hlZXQgPSBkb2N1bWVudC5zdHls
ZVNoZWV0cy5pdGVtKDEpOworCisgICAgLyogRGlzYWJsZSB0aGUgc3R5bGVzaGVldCB0aGF0IGNv
bnRhaW5zIHRoZSBAdmlld3BvcnQgdG8gdGVzdC4gKi8KKyAgICB0ZXN0U3R5bGVTaGVldC5kaXNh
YmxlZCA9IHRydWU7CisKKyAgICAvKiBJbml0aWFsaXplIGFuIG9iamVjdCB0byBzdG9yZSB2aWV3
cG9ydCB2YWx1ZXMgdG8gYmUgdXNlZCBieSB0aGUgdGVzdAorICAgICAgIGFzc2VydHMuICovCisg
ICAgdmFyIHZpZXdwb3J0ID0gbmV3IE9iamVjdCgpOworCisgICAgLyogQW4gZWxlbWVudCB3aXRo
IHRoZSBzYW1lIHNpemUgYXMgdGhlIGluaXRpYWwgY29udGFpbmluZyBibG9jay4gKi8KKyAgICB2
YXIgdGVzdEVsbSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0ZXN0Iik7CisKKyAgICAvKiBS
ZXRyaWV2ZSB0aGUgaW5pdGlhbCB2aWV3cG9ydCB2YWx1ZXMgYmVmb3JlIGFwcGx5aW5nIHRoZSBA
dmlld3BvcnQgdG8KKyAgICAgICB0ZXN0LiAqLworICAgIHZpZXdwb3J0LmluaXRpYWxXaWR0aCA9
IHRlc3RFbG0ub2Zmc2V0V2lkdGg7CisgICAgdmlld3BvcnQuaW5pdGlhbEhlaWdodCA9IHRlc3RF
bG0ub2Zmc2V0SGVpZ2h0OworICAgIHZpZXdwb3J0LmZvbnRTaXplID0gcGFyc2VJbnQoZ2V0Q29t
cHV0ZWRTdHlsZSh0ZXN0RWxtLCAiIikuZm9udFNpemUpOworCisgICAgLyogRW5hYmxlIHRoZSBz
dHlsZXNoZWV0IHRoYXQgY29udGFpbnMgdGhlIEB2aWV3cG9ydCB0byB0ZXN0LiAqLworICAgIHRl
c3RTdHlsZVNoZWV0LmRpc2FibGVkID0gZmFsc2U7CisKKyAgICAvKiBSZXRyaWV2ZSB0aGUgYWN0
dWFsIHZpZXdwb3J0IHZhbHVlcyBmb3IgdGhlIHRlc3QuICovCisgICAgdmlld3BvcnQuYWN0dWFs
V2lkdGggPSB0ZXN0RWxtLm9mZnNldFdpZHRoOworICAgIHZpZXdwb3J0LmFjdHVhbEhlaWdodCA9
IHRlc3RFbG0ub2Zmc2V0SGVpZ2h0OworICAgIHZpZXdwb3J0Lnpvb20gPSB2aWV3cG9ydC5pbml0
aWFsV2lkdGggLyB3aW5kb3cuaW5uZXJXaWR0aDsKKworICAgIC8qIENoZWNrIHZpZXdwb3J0IHZh
bHVlcy4gKi8KKyAgICB0ZXN0LnN0ZXAoZnVuY3Rpb24oKXsKKyAgICAgICAgYXNzZXJ0X2VxdWFs
cyh2aWV3cG9ydC5hY3R1YWxXaWR0aCwgNTAwKTsKKyAgICB9KTsKKworICAgIC8qIEZpbmlzaGVk
LiBTaG93IHRoZSByZXN1bHRzLiAqLworICAgIHRlc3QuZG9uZSgpOworICAgIHRlc3RTdHlsZVNo
ZWV0LmRpc2FibGVkID0gdHJ1ZTsKKyAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgibG9nIiku
c3R5bGUuZGlzcGxheSA9ICJibG9jayI7CisgICB9CisgIF1dPjwvc2NyaXB0PgorIDwvaGVhZD4K
KyA8Ym9keT4KKyAgPGRpdiBpZD0idGVzdCI+CisgICA8ZGl2IGlkPSJsb2ciPjwvZGl2PgorICA8
L2Rpdj4KKyA8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9jc3MzL2Rl
dmljZS1hZGFwdC9vcGVyYS9jYXNjYWRpbmctMDAyLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3Rz
L2NzczMvZGV2aWNlLWFkYXB0L29wZXJhL2Nhc2NhZGluZy0wMDItZXhwZWN0ZWQudHh0Cm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLjgyYzgxMzU0ZmJmYTViZmJhZTM5YmQ0OTQ3MTZjY2U5MmZkOWQ4YWQKLS0tIC9kZXYv
bnVsbAorKysgYi9MYXlvdXRUZXN0cy9jc3MzL2RldmljZS1hZGFwdC9vcGVyYS9jYXNjYWRpbmct
MDAyLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDMgQEAKKworUEFTUyBDU1MgVGVzdDogQHZpZXdw
b3J0IGNhc2NhZGluZyAtICFpbXBvcnRhbnQgZGVjbGFyYXRpb24gd2lucyAKKwpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvY3NzMy9kZXZpY2UtYWRhcHQvb3BlcmEvY2FzY2FkaW5nLTAwMi54aHRt
bCBiL0xheW91dFRlc3RzL2NzczMvZGV2aWNlLWFkYXB0L29wZXJhL2Nhc2NhZGluZy0wMDIueGh0
bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uNTVjYWJkYTI3MDkxMjI4ZmE5ZThkZTZlOWRlZDg0ZmYxNzE1MjYwMAot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2NzczMvZGV2aWNlLWFkYXB0L29wZXJhL2Nh
c2NhZGluZy0wMDIueGh0bWwKQEAgLTAsMCArMSw4NCBAQAorPD94bWwgdmVyc2lvbj0iMS4wIiBl
bmNvZGluZz0iVVRGLTgiPz4KKzwhRE9DVFlQRSBodG1sIFBVQkxJQyAiLS8vVzNDLy9EVEQgWEhU
TUwgMS4wIFN0cmljdC8vRU4iICJodHRwOi8vd3d3LnczLm9yZy9UUi94aHRtbDEvRFREL3hodG1s
MS1zdHJpY3QuZHRkIj4KKzxodG1sIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1s
Ij4KKyA8aGVhZD4KKyAgPHRpdGxlPkNTUyBUZXN0OiBAdmlld3BvcnQgY2FzY2FkaW5nIC0gIWlt
cG9ydGFudCBkZWNsYXJhdGlvbiB3aW5zPC90aXRsZT4KKyAgPGxpbmsgcmVsPSJhdXRob3IiIHRp
dGxlPSJSdW5lIExpbGxlc3ZlZW4iIGhyZWY9Im1haWx0bzpydW5lQG9wZXJhLmNvbSIvPgorICA8
bGluayByZWw9ImhlbHAiIGhyZWY9Imh0dHA6Ly93d3cudzMub3JnL1RSL2Nzcy1kZXZpY2UtYWRh
cHQvI3RoZS12aWV3cG9ydC1ydWxlIi8+CisgIDxtZXRhIG5hbWU9ImZsYWdzIiBjb250ZW50PSJ2
aXN1YWwgc2Nyb2xsIGRvbSIgLz4KKyAgPG1ldGEgbmFtZT0iYXNzZXJ0IiBjb250ZW50PSJBIHBy
ZWNlZWRpbmcgIWltcG9ydGFudCBkZWNsYXJhdGlvbiB3aW5zIG92ZXIgYSBub24taW1wb3J0YW50
IGRlc2NyaXB0b3IuIi8+CisgIDxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhh
cm5lc3MuanMiIHR5cGU9InRleHQvamF2YXNjcmlwdCIgLz4KKyAgPHNjcmlwdCBzcmM9Ii4uLy4u
Ly4uL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyIgdHlwZT0idGV4dC9qYXZhc2NyaXB0
IiAvPgorICA8c3R5bGUgdHlwZT0idGV4dC9jc3MiPjwhW0NEQVRBWworICAgYm9keSB7IG1hcmdp
bjogMDsgfQorICAgaHRtbCwgYm9keSwgI3Rlc3QgeyB3aWR0aDogMTAwJTsgaGVpZ2h0OiAxMDAl
OyB9CisgICAjbG9nIHsgcGFkZGluZzogMWVtOyBkaXNwbGF5OiBub25lOyB9CisgICAvKiBSZXNl
dCB2aWV3cG9ydCB2YWx1ZXMgdG8gaW5pdGlhbCB2YWx1ZXMgdG8gaWdub3JlIFVBIHN0eWxlc2hl
ZXQuICovCisgICBALXdlYmtpdC12aWV3cG9ydCB7CisgICAgd2lkdGg6IGF1dG87CisgICAgaGVp
Z2h0OiBhdXRvOworICAgIHpvb206IGF1dG87CisgICAgbWluLXpvb206IGF1dG87CisgICAgbWF4
LXpvb206IGF1dG87CisgICAgdXNlci16b29tOiB6b29tOworICAgIG9yaWVudGF0aW9uOiBhdXRv
OworICAgIHJlc29sdXRpb246IGF1dG87CisgICB9CisgIF1dPjwvc3R5bGU+CisgIDxzdHlsZSB0
eXBlPSJ0ZXh0L2NzcyI+PCFbQ0RBVEFbCisgICAvKiBDU1MgZm9yIHRoZSB0ZXN0IGJlbG93LiAq
LworICAgQC13ZWJraXQtdmlld3BvcnQgeyB3aWR0aDogMzAwcHggIWltcG9ydGFudDsgd2lkdGg6
IDUwMHB4IH0KKyAgIC8qIFNldCByb290IGVsZW1lbnQgZm9udC1zaXplIHRvIHNvbWV0aGluZyBk
aWZmZXJlbnQgZnJvbSB0aGUgaW5pdGlhbAorICAgICAgZm9udC1zaXplIHRvIG1ha2Ugc3VyZSAn
cmVtJyBhbmQgJ2VtJyBmb3IgQHZpZXdwb3J0IGlzIGJhc2VkIG9uIHRoZQorICAgICAgaW5pdGlh
bCBmb250LXNpemUsIG5vdCB0aGUgcm9vdCBlbGVtZW50IGZvbnQtc2l6ZS4gKi8KKyAgIGh0bWwg
eyBmb250LXNpemU6IDJyZW07IH0KKyAgIGJvZHkgeyBmb250LXNpemU6IDAuNXJlbTsgfQorICBd
XT48L3N0eWxlPgorICA8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+PCFbQ0RBVEFbCisg
ICB2YXIgdGVzdCA9IGFzeW5jX3Rlc3QoIkNTUyBUZXN0OiBAdmlld3BvcnQgY2FzY2FkaW5nIC0g
IWltcG9ydGFudCBkZWNsYXJhdGlvbiB3aW5zIik7CisgICB3aW5kb3cub25sb2FkID0gZnVuY3Rp
b24oKXsKKworICAgIHZhciB0ZXN0U3R5bGVTaGVldCA9IGRvY3VtZW50LnN0eWxlU2hlZXRzLml0
ZW0oMSk7CisKKyAgICAvKiBEaXNhYmxlIHRoZSBzdHlsZXNoZWV0IHRoYXQgY29udGFpbnMgdGhl
IEB2aWV3cG9ydCB0byB0ZXN0LiAqLworICAgIHRlc3RTdHlsZVNoZWV0LmRpc2FibGVkID0gdHJ1
ZTsKKworICAgIC8qIEluaXRpYWxpemUgYW4gb2JqZWN0IHRvIHN0b3JlIHZpZXdwb3J0IHZhbHVl
cyB0byBiZSB1c2VkIGJ5IHRoZSB0ZXN0CisgICAgICAgYXNzZXJ0cy4gKi8KKyAgICB2YXIgdmll
d3BvcnQgPSBuZXcgT2JqZWN0KCk7CisKKyAgICAvKiBBbiBlbGVtZW50IHdpdGggdGhlIHNhbWUg
c2l6ZSBhcyB0aGUgaW5pdGlhbCBjb250YWluaW5nIGJsb2NrLiAqLworICAgIHZhciB0ZXN0RWxt
ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRlc3QiKTsKKworICAgIC8qIFJldHJpZXZlIHRo
ZSBpbml0aWFsIHZpZXdwb3J0IHZhbHVlcyBiZWZvcmUgYXBwbHlpbmcgdGhlIEB2aWV3cG9ydCB0
bworICAgICAgIHRlc3QuICovCisgICAgdmlld3BvcnQuaW5pdGlhbFdpZHRoID0gdGVzdEVsbS5v
ZmZzZXRXaWR0aDsKKyAgICB2aWV3cG9ydC5pbml0aWFsSGVpZ2h0ID0gdGVzdEVsbS5vZmZzZXRI
ZWlnaHQ7CisgICAgdmlld3BvcnQuZm9udFNpemUgPSBwYXJzZUludChnZXRDb21wdXRlZFN0eWxl
KHRlc3RFbG0sICIiKS5mb250U2l6ZSk7CisKKyAgICAvKiBFbmFibGUgdGhlIHN0eWxlc2hlZXQg
dGhhdCBjb250YWlucyB0aGUgQHZpZXdwb3J0IHRvIHRlc3QuICovCisgICAgdGVzdFN0eWxlU2hl
ZXQuZGlzYWJsZWQgPSBmYWxzZTsKKworICAgIC8qIFJldHJpZXZlIHRoZSBhY3R1YWwgdmlld3Bv
cnQgdmFsdWVzIGZvciB0aGUgdGVzdC4gKi8KKyAgICB2aWV3cG9ydC5hY3R1YWxXaWR0aCA9IHRl
c3RFbG0ub2Zmc2V0V2lkdGg7CisgICAgdmlld3BvcnQuYWN0dWFsSGVpZ2h0ID0gdGVzdEVsbS5v
ZmZzZXRIZWlnaHQ7CisgICAgdmlld3BvcnQuem9vbSA9IHZpZXdwb3J0LmluaXRpYWxXaWR0aCAv
IHdpbmRvdy5pbm5lcldpZHRoOworCisgICAgLyogQ2hlY2sgdmlld3BvcnQgdmFsdWVzLiAqLwor
ICAgIHRlc3Quc3RlcChmdW5jdGlvbigpeworICAgICAgICBhc3NlcnRfZXF1YWxzKHZpZXdwb3J0
LmFjdHVhbFdpZHRoLCAzMDApOworICAgIH0pOworCisgICAgLyogRmluaXNoZWQuIFNob3cgdGhl
IHJlc3VsdHMuICovCisgICAgdGVzdC5kb25lKCk7CisgICAgdGVzdFN0eWxlU2hlZXQuZGlzYWJs
ZWQgPSB0cnVlOworICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJsb2ciKS5zdHlsZS5kaXNw
bGF5ID0gImJsb2NrIjsKKyAgIH0KKyAgXV0+PC9zY3JpcHQ+CisgPC9oZWFkPgorIDxib2R5Pgor
ICA8ZGl2IGlkPSJ0ZXN0Ij4KKyAgIDxkaXYgaWQ9ImxvZyI+PC9kaXY+CisgIDwvZGl2PgorIDwv
Ym9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2NzczMvZGV2aWNlLWFkYXB0
L29wZXJhL2Nhc2NhZGluZy0wMDMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvY3NzMy9kZXZp
Y2UtYWRhcHQvb3BlcmEvY2FzY2FkaW5nLTAwMy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uY2Qw
NDA2YmU4YTM5MzA2N2RiODhjYTNiZjIyYTliODI3YjA4ZGE4ZgotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL2NzczMvZGV2aWNlLWFkYXB0L29wZXJhL2Nhc2NhZGluZy0wMDMtZXhwZWN0
ZWQudHh0CkBAIC0wLDAgKzEsMyBAQAorCitQQVNTIENTUyBUZXN0OiBAdmlld3BvcnQgY2FzY2Fk
aW5nIC0gZGVzY3JpcHRvcnMgY2FzY2FkZWQgc2VwYXJhdGVseSAKKwpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvY3NzMy9kZXZpY2UtYWRhcHQvb3BlcmEvY2FzY2FkaW5nLTAwMy54aHRtbCBiL0xh
eW91dFRlc3RzL2NzczMvZGV2aWNlLWFkYXB0L29wZXJhL2Nhc2NhZGluZy0wMDMueGh0bWwKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uYzA2ZDcyMDIyNmJkZDg2N2Q2NWM3OTUzODgyNDU0NDZkZTI4YTgxMQotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL2NzczMvZGV2aWNlLWFkYXB0L29wZXJhL2Nhc2NhZGlu
Zy0wMDMueGh0bWwKQEAgLTAsMCArMSw4NCBAQAorPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGlu
Zz0iVVRGLTgiPz4KKzwhRE9DVFlQRSBodG1sIFBVQkxJQyAiLS8vVzNDLy9EVEQgWEhUTUwgMS4w
IFN0cmljdC8vRU4iICJodHRwOi8vd3d3LnczLm9yZy9UUi94aHRtbDEvRFREL3hodG1sMS1zdHJp
Y3QuZHRkIj4KKzxodG1sIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sIj4KKyA8
aGVhZD4KKyAgPHRpdGxlPkNTUyBUZXN0OiBAdmlld3BvcnQgY2FzY2FkaW5nIC0gZGVzY3JpcHRv
cnMgY2FzY2FkZWQgc2VwYXJhdGVseTwvdGl0bGU+CisgIDxsaW5rIHJlbD0iYXV0aG9yIiB0aXRs
ZT0iUnVuZSBMaWxsZXN2ZWVuIiBocmVmPSJtYWlsdG86cnVuZUBvcGVyYS5jb20iLz4KKyAgPGxp
bmsgcmVsPSJoZWxwIiBocmVmPSJodHRwOi8vd3d3LnczLm9yZy9UUi9jc3MtZGV2aWNlLWFkYXB0
LyN0aGUtdmlld3BvcnQtcnVsZSIvPgorICA8bWV0YSBuYW1lPSJmbGFncyIgY29udGVudD0idmlz
dWFsIHNjcm9sbCBkb20iIC8+CisgIDxtZXRhIG5hbWU9ImFzc2VydCIgY29udGVudD0iRGVzY3Jp
cHRvcnMgYXJlIGNhc2NhZGVkIHNlcGFyYXRlbHkgYW5kIG1heSBzdGVtIGZyb20gZGlmZmVyZW50
IEB2aWV3cG9ydCBydWxlcy4iLz4KKyAgPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90
ZXN0aGFybmVzcy5qcyIgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiAvPgorICA8c2NyaXB0IHNyYz0i
Li4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIiB0eXBlPSJ0ZXh0L2phdmFz
Y3JpcHQiIC8+CisgIDxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyI+PCFbQ0RBVEFbCisgICBib2R5IHsg
bWFyZ2luOiAwOyB9CisgICBodG1sLCBib2R5LCAjdGVzdCB7IHdpZHRoOiAxMDAlOyBoZWlnaHQ6
IDEwMCU7IH0KKyAgICNsb2cgeyBwYWRkaW5nOiAxZW07IGRpc3BsYXk6IG5vbmU7IH0KKyAgIC8q
IFJlc2V0IHZpZXdwb3J0IHZhbHVlcyB0byBpbml0aWFsIHZhbHVlcyB0byBpZ25vcmUgVUEgc3R5
bGVzaGVldC4gKi8KKyAgIEAtd2Via2l0LXZpZXdwb3J0IHsKKyAgICB3aWR0aDogYXV0bzsKKyAg
ICBoZWlnaHQ6IGF1dG87CisgICAgem9vbTogYXV0bzsKKyAgICBtaW4tem9vbTogYXV0bzsKKyAg
ICBtYXgtem9vbTogYXV0bzsKKyAgICB1c2VyLXpvb206IHpvb207CisgICAgb3JpZW50YXRpb246
IGF1dG87CisgICAgcmVzb2x1dGlvbjogYXV0bzsKKyAgIH0KKyAgXV0+PC9zdHlsZT4KKyAgPHN0
eWxlIHR5cGU9InRleHQvY3NzIj48IVtDREFUQVsKKyAgIC8qIENTUyBmb3IgdGhlIHRlc3QgYmVs
b3cuICovCisgICBALXdlYmtpdC12aWV3cG9ydCB7IHdpZHRoOiAzMDBweDsgaGVpZ2h0OiAzMDBw
eDsgfSBALXdlYmtpdC12aWV3cG9ydCB7IGhlaWdodDogNTAwcHg7IH0KKyAgIC8qIFNldCByb290
IGVsZW1lbnQgZm9udC1zaXplIHRvIHNvbWV0aGluZyBkaWZmZXJlbnQgZnJvbSB0aGUgaW5pdGlh
bAorICAgICAgZm9udC1zaXplIHRvIG1ha2Ugc3VyZSAncmVtJyBhbmQgJ2VtJyBmb3IgQHZpZXdw
b3J0IGlzIGJhc2VkIG9uIHRoZQorICAgICAgaW5pdGlhbCBmb250LXNpemUsIG5vdCB0aGUgcm9v
dCBlbGVtZW50IGZvbnQtc2l6ZS4gKi8KKyAgIGh0bWwgeyBmb250LXNpemU6IDJyZW07IH0KKyAg
IGJvZHkgeyBmb250LXNpemU6IDAuNXJlbTsgfQorICBdXT48L3N0eWxlPgorICA8c2NyaXB0IHR5
cGU9InRleHQvamF2YXNjcmlwdCI+PCFbQ0RBVEFbCisgICB2YXIgdGVzdCA9IGFzeW5jX3Rlc3Qo
IkNTUyBUZXN0OiBAdmlld3BvcnQgY2FzY2FkaW5nIC0gZGVzY3JpcHRvcnMgY2FzY2FkZWQgc2Vw
YXJhdGVseSIpOworICAgd2luZG93Lm9ubG9hZCA9IGZ1bmN0aW9uKCl7CisKKyAgICB2YXIgdGVz
dFN0eWxlU2hlZXQgPSBkb2N1bWVudC5zdHlsZVNoZWV0cy5pdGVtKDEpOworCisgICAgLyogRGlz
YWJsZSB0aGUgc3R5bGVzaGVldCB0aGF0IGNvbnRhaW5zIHRoZSBAdmlld3BvcnQgdG8gdGVzdC4g
Ki8KKyAgICB0ZXN0U3R5bGVTaGVldC5kaXNhYmxlZCA9IHRydWU7CisKKyAgICAvKiBJbml0aWFs
aXplIGFuIG9iamVjdCB0byBzdG9yZSB2aWV3cG9ydCB2YWx1ZXMgdG8gYmUgdXNlZCBieSB0aGUg
dGVzdAorICAgICAgIGFzc2VydHMuICovCisgICAgdmFyIHZpZXdwb3J0ID0gbmV3IE9iamVjdCgp
OworCisgICAgLyogQW4gZWxlbWVudCB3aXRoIHRoZSBzYW1lIHNpemUgYXMgdGhlIGluaXRpYWwg
Y29udGFpbmluZyBibG9jay4gKi8KKyAgICB2YXIgdGVzdEVsbSA9IGRvY3VtZW50LmdldEVsZW1l
bnRCeUlkKCJ0ZXN0Iik7CisKKyAgICAvKiBSZXRyaWV2ZSB0aGUgaW5pdGlhbCB2aWV3cG9ydCB2
YWx1ZXMgYmVmb3JlIGFwcGx5aW5nIHRoZSBAdmlld3BvcnQgdG8KKyAgICAgICB0ZXN0LiAqLwor
ICAgIHZpZXdwb3J0LmluaXRpYWxXaWR0aCA9IHRlc3RFbG0ub2Zmc2V0V2lkdGg7CisgICAgdmll
d3BvcnQuaW5pdGlhbEhlaWdodCA9IHRlc3RFbG0ub2Zmc2V0SGVpZ2h0OworICAgIHZpZXdwb3J0
LmZvbnRTaXplID0gcGFyc2VJbnQoZ2V0Q29tcHV0ZWRTdHlsZSh0ZXN0RWxtLCAiIikuZm9udFNp
emUpOworCisgICAgLyogRW5hYmxlIHRoZSBzdHlsZXNoZWV0IHRoYXQgY29udGFpbnMgdGhlIEB2
aWV3cG9ydCB0byB0ZXN0LiAqLworICAgIHRlc3RTdHlsZVNoZWV0LmRpc2FibGVkID0gZmFsc2U7
CisKKyAgICAvKiBSZXRyaWV2ZSB0aGUgYWN0dWFsIHZpZXdwb3J0IHZhbHVlcyBmb3IgdGhlIHRl
c3QuICovCisgICAgdmlld3BvcnQuYWN0dWFsV2lkdGggPSB0ZXN0RWxtLm9mZnNldFdpZHRoOwor
ICAgIHZpZXdwb3J0LmFjdHVhbEhlaWdodCA9IHRlc3RFbG0ub2Zmc2V0SGVpZ2h0OworICAgIHZp
ZXdwb3J0Lnpvb20gPSB2aWV3cG9ydC5pbml0aWFsV2lkdGggLyB3aW5kb3cuaW5uZXJXaWR0aDsK
KworICAgIC8qIENoZWNrIHZpZXdwb3J0IHZhbHVlcy4gKi8KKyAgICB0ZXN0LnN0ZXAoZnVuY3Rp
b24oKXsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyh2aWV3cG9ydC5hY3R1YWxXaWR0aCwgMzAwKTsg
YXNzZXJ0X2VxdWFscyh2aWV3cG9ydC5hY3R1YWxIZWlnaHQsIDUwMCk7CisgICAgfSk7CisKKyAg
ICAvKiBGaW5pc2hlZC4gU2hvdyB0aGUgcmVzdWx0cy4gKi8KKyAgICB0ZXN0LmRvbmUoKTsKKyAg
ICB0ZXN0U3R5bGVTaGVldC5kaXNhYmxlZCA9IHRydWU7CisgICAgZG9jdW1lbnQuZ2V0RWxlbWVu
dEJ5SWQoImxvZyIpLnN0eWxlLmRpc3BsYXkgPSAiYmxvY2siOworICAgfQorICBdXT48L3Njcmlw
dD4KKyA8L2hlYWQ+CisgPGJvZHk+CisgIDxkaXYgaWQ9InRlc3QiPgorICAgPGRpdiBpZD0ibG9n
Ij48L2Rpdj4KKyAgPC9kaXY+CisgPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvY3NzMy9kZXZpY2UtYWRhcHQvb3BlcmEvY2FzY2FkaW5nLTAwNC1leHBlY3RlZC50eHQg
Yi9MYXlvdXRUZXN0cy9jc3MzL2RldmljZS1hZGFwdC9vcGVyYS9jYXNjYWRpbmctMDA0LWV4cGVj
dGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi5kYTI5YjVhMGI0ZTRlNDM5ODM1ZWUxNjBhNDAxY2QxMDg4NTE2
ODdjCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvY3NzMy9kZXZpY2UtYWRhcHQvb3Bl
cmEvY2FzY2FkaW5nLTAwNC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwzIEBACisKK1BBU1MgQ1NT
IFRlc3Q6IEB2aWV3cG9ydCBjYXNjYWRpbmcgLSAhaW1wb3J0YW50IGRlY2xhcmF0aW9uIGZyb20g
cHJlY2VkaW5nIHJ1bGUgd2lucyAKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvY3NzMy9kZXZp
Y2UtYWRhcHQvb3BlcmEvY2FzY2FkaW5nLTAwNC54aHRtbCBiL0xheW91dFRlc3RzL2NzczMvZGV2
aWNlLWFkYXB0L29wZXJhL2Nhc2NhZGluZy0wMDQueGh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNjFkNjViODhm
MjllOGE5MDY5NTNjN2E3NGFlYmU5YTA1ODhhOTQ0MQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL2NzczMvZGV2aWNlLWFkYXB0L29wZXJhL2Nhc2NhZGluZy0wMDQueGh0bWwKQEAgLTAs
MCArMSw4NCBAQAorPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KKzwhRE9D
VFlQRSBodG1sIFBVQkxJQyAiLS8vVzNDLy9EVEQgWEhUTUwgMS4wIFN0cmljdC8vRU4iICJodHRw
Oi8vd3d3LnczLm9yZy9UUi94aHRtbDEvRFREL3hodG1sMS1zdHJpY3QuZHRkIj4KKzxodG1sIHht
bG5zPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sIj4KKyA8aGVhZD4KKyAgPHRpdGxlPkNT
UyBUZXN0OiBAdmlld3BvcnQgY2FzY2FkaW5nIC0gIWltcG9ydGFudCBkZWNsYXJhdGlvbiBmcm9t
IHByZWNlZGluZyBydWxlIHdpbnM8L3RpdGxlPgorICA8bGluayByZWw9ImF1dGhvciIgdGl0bGU9
IlJ1bmUgTGlsbGVzdmVlbiIgaHJlZj0ibWFpbHRvOnJ1bmVAb3BlcmEuY29tIi8+CisgIDxsaW5r
IHJlbD0iaGVscCIgaHJlZj0iaHR0cDovL3d3dy53My5vcmcvVFIvY3NzLWRldmljZS1hZGFwdC8j
dGhlLXZpZXdwb3J0LXJ1bGUiLz4KKyAgPG1ldGEgbmFtZT0iZmxhZ3MiIGNvbnRlbnQ9InZpc3Vh
bCBzY3JvbGwgZG9tIiAvPgorICA8bWV0YSBuYW1lPSJhc3NlcnQiIGNvbnRlbnQ9IkEgcHJlY2Vl
ZGluZyAhaW1wb3J0YW50IGRlY2xhcmF0aW9uIGZyb20gYSBwcmVjZWRpbmcgcnVsZSB3aW5zIG92
ZXIgYSBub24taW1wb3J0YW50IGRlc2NyaXB0b3IuIi8+CisgIDxzY3JpcHQgc3JjPSIuLi8uLi8u
Li9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiIHR5cGU9InRleHQvamF2YXNjcmlwdCIgLz4KKyAg
PHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyIgdHlw
ZT0idGV4dC9qYXZhc2NyaXB0IiAvPgorICA8c3R5bGUgdHlwZT0idGV4dC9jc3MiPjwhW0NEQVRB
WworICAgYm9keSB7IG1hcmdpbjogMDsgfQorICAgaHRtbCwgYm9keSwgI3Rlc3QgeyB3aWR0aDog
MTAwJTsgaGVpZ2h0OiAxMDAlOyB9CisgICAjbG9nIHsgcGFkZGluZzogMWVtOyBkaXNwbGF5OiBu
b25lOyB9CisgICAvKiBSZXNldCB2aWV3cG9ydCB2YWx1ZXMgdG8gaW5pdGlhbCB2YWx1ZXMgdG8g
aWdub3JlIFVBIHN0eWxlc2hlZXQuICovCisgICBALXdlYmtpdC12aWV3cG9ydCB7CisgICAgd2lk
dGg6IGF1dG87CisgICAgaGVpZ2h0OiBhdXRvOworICAgIHpvb206IGF1dG87CisgICAgbWluLXpv
b206IGF1dG87CisgICAgbWF4LXpvb206IGF1dG87CisgICAgdXNlci16b29tOiB6b29tOworICAg
IG9yaWVudGF0aW9uOiBhdXRvOworICAgIHJlc29sdXRpb246IGF1dG87CisgICB9CisgIF1dPjwv
c3R5bGU+CisgIDxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyI+PCFbQ0RBVEFbCisgICAvKiBDU1MgZm9y
IHRoZSB0ZXN0IGJlbG93LiAqLworICAgQC13ZWJraXQtdmlld3BvcnQgeyB3aWR0aDogMzAwcHgg
IWltcG9ydGFudDsgfSBALXdlYmtpdC12aWV3cG9ydCB7IHdpZHRoOiA1MDBweDsgfQorICAgLyog
U2V0IHJvb3QgZWxlbWVudCBmb250LXNpemUgdG8gc29tZXRoaW5nIGRpZmZlcmVudCBmcm9tIHRo
ZSBpbml0aWFsCisgICAgICBmb250LXNpemUgdG8gbWFrZSBzdXJlICdyZW0nIGFuZCAnZW0nIGZv
ciBAdmlld3BvcnQgaXMgYmFzZWQgb24gdGhlCisgICAgICBpbml0aWFsIGZvbnQtc2l6ZSwgbm90
IHRoZSByb290IGVsZW1lbnQgZm9udC1zaXplLiAqLworICAgaHRtbCB7IGZvbnQtc2l6ZTogMnJl
bTsgfQorICAgYm9keSB7IGZvbnQtc2l6ZTogMC41cmVtOyB9CisgIF1dPjwvc3R5bGU+CisgIDxz
Y3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij48IVtDREFUQVsKKyAgIHZhciB0ZXN0ID0gYXN5
bmNfdGVzdCgiQ1NTIFRlc3Q6IEB2aWV3cG9ydCBjYXNjYWRpbmcgLSAhaW1wb3J0YW50IGRlY2xh
cmF0aW9uIGZyb20gcHJlY2VkaW5nIHJ1bGUgd2lucyIpOworICAgd2luZG93Lm9ubG9hZCA9IGZ1
bmN0aW9uKCl7CisKKyAgICB2YXIgdGVzdFN0eWxlU2hlZXQgPSBkb2N1bWVudC5zdHlsZVNoZWV0
cy5pdGVtKDEpOworCisgICAgLyogRGlzYWJsZSB0aGUgc3R5bGVzaGVldCB0aGF0IGNvbnRhaW5z
IHRoZSBAdmlld3BvcnQgdG8gdGVzdC4gKi8KKyAgICB0ZXN0U3R5bGVTaGVldC5kaXNhYmxlZCA9
IHRydWU7CisKKyAgICAvKiBJbml0aWFsaXplIGFuIG9iamVjdCB0byBzdG9yZSB2aWV3cG9ydCB2
YWx1ZXMgdG8gYmUgdXNlZCBieSB0aGUgdGVzdAorICAgICAgIGFzc2VydHMuICovCisgICAgdmFy
IHZpZXdwb3J0ID0gbmV3IE9iamVjdCgpOworCisgICAgLyogQW4gZWxlbWVudCB3aXRoIHRoZSBz
YW1lIHNpemUgYXMgdGhlIGluaXRpYWwgY29udGFpbmluZyBibG9jay4gKi8KKyAgICB2YXIgdGVz
dEVsbSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0ZXN0Iik7CisKKyAgICAvKiBSZXRyaWV2
ZSB0aGUgaW5pdGlhbCB2aWV3cG9ydCB2YWx1ZXMgYmVmb3JlIGFwcGx5aW5nIHRoZSBAdmlld3Bv
cnQgdG8KKyAgICAgICB0ZXN0LiAqLworICAgIHZpZXdwb3J0LmluaXRpYWxXaWR0aCA9IHRlc3RF
bG0ub2Zmc2V0V2lkdGg7CisgICAgdmlld3BvcnQuaW5pdGlhbEhlaWdodCA9IHRlc3RFbG0ub2Zm
c2V0SGVpZ2h0OworICAgIHZpZXdwb3J0LmZvbnRTaXplID0gcGFyc2VJbnQoZ2V0Q29tcHV0ZWRT
dHlsZSh0ZXN0RWxtLCAiIikuZm9udFNpemUpOworCisgICAgLyogRW5hYmxlIHRoZSBzdHlsZXNo
ZWV0IHRoYXQgY29udGFpbnMgdGhlIEB2aWV3cG9ydCB0byB0ZXN0LiAqLworICAgIHRlc3RTdHls
ZVNoZWV0LmRpc2FibGVkID0gZmFsc2U7CisKKyAgICAvKiBSZXRyaWV2ZSB0aGUgYWN0dWFsIHZp
ZXdwb3J0IHZhbHVlcyBmb3IgdGhlIHRlc3QuICovCisgICAgdmlld3BvcnQuYWN0dWFsV2lkdGgg
PSB0ZXN0RWxtLm9mZnNldFdpZHRoOworICAgIHZpZXdwb3J0LmFjdHVhbEhlaWdodCA9IHRlc3RF
bG0ub2Zmc2V0SGVpZ2h0OworICAgIHZpZXdwb3J0Lnpvb20gPSB2aWV3cG9ydC5pbml0aWFsV2lk
dGggLyB3aW5kb3cuaW5uZXJXaWR0aDsKKworICAgIC8qIENoZWNrIHZpZXdwb3J0IHZhbHVlcy4g
Ki8KKyAgICB0ZXN0LnN0ZXAoZnVuY3Rpb24oKXsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyh2aWV3
cG9ydC5hY3R1YWxXaWR0aCwgMzAwKTsKKyAgICB9KTsKKworICAgIC8qIEZpbmlzaGVkLiBTaG93
IHRoZSByZXN1bHRzLiAqLworICAgIHRlc3QuZG9uZSgpOworICAgIHRlc3RTdHlsZVNoZWV0LmRp
c2FibGVkID0gdHJ1ZTsKKyAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgibG9nIikuc3R5bGUu
ZGlzcGxheSA9ICJibG9jayI7CisgICB9CisgIF1dPjwvc2NyaXB0PgorIDwvaGVhZD4KKyA8Ym9k
eT4KKyAgPGRpdiBpZD0idGVzdCI+CisgICA8ZGl2IGlkPSJsb2ciPjwvZGl2PgorICA8L2Rpdj4K
KyA8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9jc3MzL2RldmljZS1h
ZGFwdC9vcGVyYS9jb25zdHJhaW4tMDAxLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2NzczMv
ZGV2aWNlLWFkYXB0L29wZXJhL2NvbnN0cmFpbi0wMDEtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LjE4YTlkYTk1YWVhZWUxMTAyYmU1YzRlYWViZDFiZDViZGZiYmViYTUKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy9jc3MzL2RldmljZS1hZGFwdC9vcGVyYS9jb25zdHJhaW4tMDAxLWV4
cGVjdGVkLnR4dApAQCAtMCwwICsxLDMgQEAKKworUEFTUyBDU1MgVGVzdDogQHZpZXdwb3J0IGNv
bnN0cmFpbmVkIC0gbWF4LXdpZHRoIDIwMHB4IAorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9j
c3MzL2RldmljZS1hZGFwdC9vcGVyYS9jb25zdHJhaW4tMDAxLnhodG1sIGIvTGF5b3V0VGVzdHMv
Y3NzMy9kZXZpY2UtYWRhcHQvb3BlcmEvY29uc3RyYWluLTAwMS54aHRtbApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4x
ZmMzNDM0YmE0NDA2MDZjNzhmMzU0Y2UwNGRmOTkzMmU4ZTQzODQ0Ci0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvY3NzMy9kZXZpY2UtYWRhcHQvb3BlcmEvY29uc3RyYWluLTAwMS54aHRt
bApAQCAtMCwwICsxLDg0IEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCI/
PgorPCFET0NUWVBFIGh0bWwgUFVCTElDICItLy9XM0MvL0RURCBYSFRNTCAxLjAgU3RyaWN0Ly9F
TiIgImh0dHA6Ly93d3cudzMub3JnL1RSL3hodG1sMS9EVEQveGh0bWwxLXN0cmljdC5kdGQiPgor
PGh0bWwgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwiPgorIDxoZWFkPgorICA8
dGl0bGU+Q1NTIFRlc3Q6IEB2aWV3cG9ydCBjb25zdHJhaW5lZCAtIG1heC13aWR0aCAyMDBweDwv
dGl0bGU+CisgIDxsaW5rIHJlbD0iYXV0aG9yIiB0aXRsZT0iUnVuZSBMaWxsZXN2ZWVuIiBocmVm
PSJtYWlsdG86cnVuZUBvcGVyYS5jb20iLz4KKyAgPGxpbmsgcmVsPSJoZWxwIiBocmVmPSJodHRw
Oi8vd3d3LnczLm9yZy9UUi9jc3MtZGV2aWNlLWFkYXB0LyNjb25zdHJhaW5pbmctcHJvY2VkdXJl
Ii8+CisgIDxtZXRhIG5hbWU9ImZsYWdzIiBjb250ZW50PSJ2aXN1YWwgc2Nyb2xsIGRvbSIgLz4K
KyAgPG1ldGEgbmFtZT0iYXNzZXJ0IiBjb250ZW50PSJTZXR0aW5nIG1heC13aWR0aCBpbiBAdmll
d3BvcnQgdG8gYSBsZW5ndGggc21hbGxlciB0aGFuIHRoZSBpbml0aWFsIHZpZXdwb3J0IHdpZHRo
IHdpbGwgc2V0IHRoZSBhY3R1YWwgdmlld3BvcnQgd2lkdGggdG8gdGhhdCBsZW5ndGgiLz4KKyAg
PHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyIgdHlwZT0idGV4
dC9qYXZhc2NyaXB0IiAvPgorICA8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3Ro
YXJuZXNzcmVwb3J0LmpzIiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIC8+CisgIDxzdHlsZSB0eXBl
PSJ0ZXh0L2NzcyI+PCFbQ0RBVEFbCisgICBib2R5IHsgbWFyZ2luOiAwOyB9CisgICBodG1sLCBi
b2R5LCAjdGVzdCB7IHdpZHRoOiAxMDAlOyBoZWlnaHQ6IDEwMCU7IH0KKyAgICNsb2cgeyBwYWRk
aW5nOiAxZW07IGRpc3BsYXk6IG5vbmU7IH0KKyAgIC8qIFJlc2V0IHZpZXdwb3J0IHZhbHVlcyB0
byBpbml0aWFsIHZhbHVlcyB0byBpZ25vcmUgVUEgc3R5bGVzaGVldC4gKi8KKyAgIEAtd2Via2l0
LXZpZXdwb3J0IHsKKyAgICB3aWR0aDogYXV0bzsKKyAgICBoZWlnaHQ6IGF1dG87CisgICAgem9v
bTogYXV0bzsKKyAgICBtaW4tem9vbTogYXV0bzsKKyAgICBtYXgtem9vbTogYXV0bzsKKyAgICB1
c2VyLXpvb206IHpvb207CisgICAgb3JpZW50YXRpb246IGF1dG87CisgICAgcmVzb2x1dGlvbjog
YXV0bzsKKyAgIH0KKyAgXV0+PC9zdHlsZT4KKyAgPHN0eWxlIHR5cGU9InRleHQvY3NzIj48IVtD
REFUQVsKKyAgIC8qIENTUyBmb3IgdGhlIHRlc3QgYmVsb3cuICovCisgICBALXdlYmtpdC12aWV3
cG9ydCB7IG1heC13aWR0aDogMjAwcHggfQorICAgLyogU2V0IHJvb3QgZWxlbWVudCBmb250LXNp
emUgdG8gc29tZXRoaW5nIGRpZmZlcmVudCBmcm9tIHRoZSBpbml0aWFsCisgICAgICBmb250LXNp
emUgdG8gbWFrZSBzdXJlICdyZW0nIGFuZCAnZW0nIGZvciBAdmlld3BvcnQgaXMgYmFzZWQgb24g
dGhlCisgICAgICBpbml0aWFsIGZvbnQtc2l6ZSwgbm90IHRoZSByb290IGVsZW1lbnQgZm9udC1z
aXplLiAqLworICAgaHRtbCB7IGZvbnQtc2l6ZTogMnJlbTsgfQorICAgYm9keSB7IGZvbnQtc2l6
ZTogMC41cmVtOyB9CisgIF1dPjwvc3R5bGU+CisgIDxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2Ny
aXB0Ij48IVtDREFUQVsKKyAgIHZhciB0ZXN0ID0gYXN5bmNfdGVzdCgiQ1NTIFRlc3Q6IEB2aWV3
cG9ydCBjb25zdHJhaW5lZCAtIG1heC13aWR0aCAyMDBweCIpOworICAgd2luZG93Lm9ubG9hZCA9
IGZ1bmN0aW9uKCl7CisKKyAgICB2YXIgdGVzdFN0eWxlU2hlZXQgPSBkb2N1bWVudC5zdHlsZVNo
ZWV0cy5pdGVtKDEpOworCisgICAgLyogRGlzYWJsZSB0aGUgc3R5bGVzaGVldCB0aGF0IGNvbnRh
aW5zIHRoZSBAdmlld3BvcnQgdG8gdGVzdC4gKi8KKyAgICB0ZXN0U3R5bGVTaGVldC5kaXNhYmxl
ZCA9IHRydWU7CisKKyAgICAvKiBJbml0aWFsaXplIGFuIG9iamVjdCB0byBzdG9yZSB2aWV3cG9y
dCB2YWx1ZXMgdG8gYmUgdXNlZCBieSB0aGUgdGVzdAorICAgICAgIGFzc2VydHMuICovCisgICAg
dmFyIHZpZXdwb3J0ID0gbmV3IE9iamVjdCgpOworCisgICAgLyogQW4gZWxlbWVudCB3aXRoIHRo
ZSBzYW1lIHNpemUgYXMgdGhlIGluaXRpYWwgY29udGFpbmluZyBibG9jay4gKi8KKyAgICB2YXIg
dGVzdEVsbSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0ZXN0Iik7CisKKyAgICAvKiBSZXRy
aWV2ZSB0aGUgaW5pdGlhbCB2aWV3cG9ydCB2YWx1ZXMgYmVmb3JlIGFwcGx5aW5nIHRoZSBAdmll
d3BvcnQgdG8KKyAgICAgICB0ZXN0LiAqLworICAgIHZpZXdwb3J0LmluaXRpYWxXaWR0aCA9IHRl
c3RFbG0ub2Zmc2V0V2lkdGg7CisgICAgdmlld3BvcnQuaW5pdGlhbEhlaWdodCA9IHRlc3RFbG0u
b2Zmc2V0SGVpZ2h0OworICAgIHZpZXdwb3J0LmZvbnRTaXplID0gcGFyc2VJbnQoZ2V0Q29tcHV0
ZWRTdHlsZSh0ZXN0RWxtLCAiIikuZm9udFNpemUpOworCisgICAgLyogRW5hYmxlIHRoZSBzdHls
ZXNoZWV0IHRoYXQgY29udGFpbnMgdGhlIEB2aWV3cG9ydCB0byB0ZXN0LiAqLworICAgIHRlc3RT
dHlsZVNoZWV0LmRpc2FibGVkID0gZmFsc2U7CisKKyAgICAvKiBSZXRyaWV2ZSB0aGUgYWN0dWFs
IHZpZXdwb3J0IHZhbHVlcyBmb3IgdGhlIHRlc3QuICovCisgICAgdmlld3BvcnQuYWN0dWFsV2lk
dGggPSB0ZXN0RWxtLm9mZnNldFdpZHRoOworICAgIHZpZXdwb3J0LmFjdHVhbEhlaWdodCA9IHRl
c3RFbG0ub2Zmc2V0SGVpZ2h0OworICAgIHZpZXdwb3J0Lnpvb20gPSB2aWV3cG9ydC5pbml0aWFs
V2lkdGggLyB3aW5kb3cuaW5uZXJXaWR0aDsKKworICAgIC8qIENoZWNrIHZpZXdwb3J0IHZhbHVl
cy4gKi8KKyAgICB0ZXN0LnN0ZXAoZnVuY3Rpb24oKXsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyh2
aWV3cG9ydC5hY3R1YWxXaWR0aCwgMjAwKTsKKyAgICB9KTsKKworICAgIC8qIEZpbmlzaGVkLiBT
aG93IHRoZSByZXN1bHRzLiAqLworICAgIHRlc3QuZG9uZSgpOworICAgIHRlc3RTdHlsZVNoZWV0
LmRpc2FibGVkID0gdHJ1ZTsKKyAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgibG9nIikuc3R5
bGUuZGlzcGxheSA9ICJibG9jayI7CisgICB9CisgIF1dPjwvc2NyaXB0PgorIDwvaGVhZD4KKyA8
Ym9keT4KKyAgPGRpdiBpZD0idGVzdCI+CisgICA8ZGl2IGlkPSJsb2ciPjwvZGl2PgorICA8L2Rp
dj4KKyA8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9jc3MzL2Rldmlj
ZS1hZGFwdC9vcGVyYS9jb25zdHJhaW4tMDAyLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Nz
czMvZGV2aWNlLWFkYXB0L29wZXJhL2NvbnN0cmFpbi0wMDItZXhwZWN0ZWQudHh0Cm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjJhNzgzNTk5NTA3OTg0NTg4NTlkZDBiZjc3MjJjODc3OTUzNDIwZWYKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy9jc3MzL2RldmljZS1hZGFwdC9vcGVyYS9jb25zdHJhaW4tMDAy
LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDMgQEAKKworUEFTUyBDU1MgVGVzdDogQHZpZXdwb3J0
IGNvbnN0cmFpbmVkIC0gbWF4LXdpZHRoIDEwMDAwcHggCisKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2NzczMvZGV2aWNlLWFkYXB0L29wZXJhL2NvbnN0cmFpbi0wMDIueGh0bWwgYi9MYXlvdXRU
ZXN0cy9jc3MzL2RldmljZS1hZGFwdC9vcGVyYS9jb25zdHJhaW4tMDAyLnhodG1sCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLmRjYjlkZGMxOTIxYmIyODA5NmNjMGE1YTM0NTYyMWM1MWM4YzExMTEKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy9jc3MzL2RldmljZS1hZGFwdC9vcGVyYS9jb25zdHJhaW4tMDAy
LnhodG1sCkBAIC0wLDAgKzEsODQgQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVU
Ri04Ij8+Cis8IURPQ1RZUEUgaHRtbCBQVUJMSUMgIi0vL1czQy8vRFREIFhIVE1MIDEuMCBTdHJp
Y3QvL0VOIiAiaHR0cDovL3d3dy53My5vcmcvVFIveGh0bWwxL0RURC94aHRtbDEtc3RyaWN0LmR0
ZCI+Cis8aHRtbCB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCI+CisgPGhlYWQ+
CisgIDx0aXRsZT5DU1MgVGVzdDogQHZpZXdwb3J0IGNvbnN0cmFpbmVkIC0gbWF4LXdpZHRoIDEw
MDAwcHg8L3RpdGxlPgorICA8bGluayByZWw9ImF1dGhvciIgdGl0bGU9IlJ1bmUgTGlsbGVzdmVl
biIgaHJlZj0ibWFpbHRvOnJ1bmVAb3BlcmEuY29tIi8+CisgIDxsaW5rIHJlbD0iaGVscCIgaHJl
Zj0iaHR0cDovL3d3dy53My5vcmcvVFIvY3NzLWRldmljZS1hZGFwdC8jY29uc3RyYWluaW5nLXBy
b2NlZHVyZSIvPgorICA8bWV0YSBuYW1lPSJmbGFncyIgY29udGVudD0idmlzdWFsIHNjcm9sbCBk
b20iIC8+CisgIDxtZXRhIG5hbWU9ImFzc2VydCIgY29udGVudD0iU2V0dGluZyBtYXgtd2lkdGgg
aW4gQHZpZXdwb3J0IHRvIGEgbGVuZ3RoIGxhcmdlciB0aGFuIHRoZSBpbml0aWFsIHZpZXdwb3J0
IHdpZHRoIHdpbGwgbm90IGNoYW5nZSB0aGUgYWN0dWFsIHZpZXdwb3J0IHdpZHRoLiIvPgorICA8
c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIiB0eXBlPSJ0ZXh0
L2phdmFzY3JpcHQiIC8+CisgIDxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhh
cm5lc3NyZXBvcnQuanMiIHR5cGU9InRleHQvamF2YXNjcmlwdCIgLz4KKyAgPHN0eWxlIHR5cGU9
InRleHQvY3NzIj48IVtDREFUQVsKKyAgIGJvZHkgeyBtYXJnaW46IDA7IH0KKyAgIGh0bWwsIGJv
ZHksICN0ZXN0IHsgd2lkdGg6IDEwMCU7IGhlaWdodDogMTAwJTsgfQorICAgI2xvZyB7IHBhZGRp
bmc6IDFlbTsgZGlzcGxheTogbm9uZTsgfQorICAgLyogUmVzZXQgdmlld3BvcnQgdmFsdWVzIHRv
IGluaXRpYWwgdmFsdWVzIHRvIGlnbm9yZSBVQSBzdHlsZXNoZWV0LiAqLworICAgQC13ZWJraXQt
dmlld3BvcnQgeworICAgIHdpZHRoOiBhdXRvOworICAgIGhlaWdodDogYXV0bzsKKyAgICB6b29t
OiBhdXRvOworICAgIG1pbi16b29tOiBhdXRvOworICAgIG1heC16b29tOiBhdXRvOworICAgIHVz
ZXItem9vbTogem9vbTsKKyAgICBvcmllbnRhdGlvbjogYXV0bzsKKyAgICByZXNvbHV0aW9uOiBh
dXRvOworICAgfQorICBdXT48L3N0eWxlPgorICA8c3R5bGUgdHlwZT0idGV4dC9jc3MiPjwhW0NE
QVRBWworICAgLyogQ1NTIGZvciB0aGUgdGVzdCBiZWxvdy4gKi8KKyAgIEAtd2Via2l0LXZpZXdw
b3J0IHsgbWF4LXdpZHRoOiAxMDAwMHB4IH0KKyAgIC8qIFNldCByb290IGVsZW1lbnQgZm9udC1z
aXplIHRvIHNvbWV0aGluZyBkaWZmZXJlbnQgZnJvbSB0aGUgaW5pdGlhbAorICAgICAgZm9udC1z
aXplIHRvIG1ha2Ugc3VyZSAncmVtJyBhbmQgJ2VtJyBmb3IgQHZpZXdwb3J0IGlzIGJhc2VkIG9u
IHRoZQorICAgICAgaW5pdGlhbCBmb250LXNpemUsIG5vdCB0aGUgcm9vdCBlbGVtZW50IGZvbnQt
c2l6ZS4gKi8KKyAgIGh0bWwgeyBmb250LXNpemU6IDJyZW07IH0KKyAgIGJvZHkgeyBmb250LXNp
emU6IDAuNXJlbTsgfQorICBdXT48L3N0eWxlPgorICA8c2NyaXB0IHR5cGU9InRleHQvamF2YXNj
cmlwdCI+PCFbQ0RBVEFbCisgICB2YXIgdGVzdCA9IGFzeW5jX3Rlc3QoIkNTUyBUZXN0OiBAdmll
d3BvcnQgY29uc3RyYWluZWQgLSBtYXgtd2lkdGggMTAwMDBweCIpOworICAgd2luZG93Lm9ubG9h
ZCA9IGZ1bmN0aW9uKCl7CisKKyAgICB2YXIgdGVzdFN0eWxlU2hlZXQgPSBkb2N1bWVudC5zdHls
ZVNoZWV0cy5pdGVtKDEpOworCisgICAgLyogRGlzYWJsZSB0aGUgc3R5bGVzaGVldCB0aGF0IGNv
bnRhaW5zIHRoZSBAdmlld3BvcnQgdG8gdGVzdC4gKi8KKyAgICB0ZXN0U3R5bGVTaGVldC5kaXNh
YmxlZCA9IHRydWU7CisKKyAgICAvKiBJbml0aWFsaXplIGFuIG9iamVjdCB0byBzdG9yZSB2aWV3
cG9ydCB2YWx1ZXMgdG8gYmUgdXNlZCBieSB0aGUgdGVzdAorICAgICAgIGFzc2VydHMuICovCisg
ICAgdmFyIHZpZXdwb3J0ID0gbmV3IE9iamVjdCgpOworCisgICAgLyogQW4gZWxlbWVudCB3aXRo
IHRoZSBzYW1lIHNpemUgYXMgdGhlIGluaXRpYWwgY29udGFpbmluZyBibG9jay4gKi8KKyAgICB2
YXIgdGVzdEVsbSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0ZXN0Iik7CisKKyAgICAvKiBS
ZXRyaWV2ZSB0aGUgaW5pdGlhbCB2aWV3cG9ydCB2YWx1ZXMgYmVmb3JlIGFwcGx5aW5nIHRoZSBA
dmlld3BvcnQgdG8KKyAgICAgICB0ZXN0LiAqLworICAgIHZpZXdwb3J0LmluaXRpYWxXaWR0aCA9
IHRlc3RFbG0ub2Zmc2V0V2lkdGg7CisgICAgdmlld3BvcnQuaW5pdGlhbEhlaWdodCA9IHRlc3RF
bG0ub2Zmc2V0SGVpZ2h0OworICAgIHZpZXdwb3J0LmZvbnRTaXplID0gcGFyc2VJbnQoZ2V0Q29t
cHV0ZWRTdHlsZSh0ZXN0RWxtLCAiIikuZm9udFNpemUpOworCisgICAgLyogRW5hYmxlIHRoZSBz
dHlsZXNoZWV0IHRoYXQgY29udGFpbnMgdGhlIEB2aWV3cG9ydCB0byB0ZXN0LiAqLworICAgIHRl
c3RTdHlsZVNoZWV0LmRpc2FibGVkID0gZmFsc2U7CisKKyAgICAvKiBSZXRyaWV2ZSB0aGUgYWN0
dWFsIHZpZXdwb3J0IHZhbHVlcyBmb3IgdGhlIHRlc3QuICovCisgICAgdmlld3BvcnQuYWN0dWFs
V2lkdGggPSB0ZXN0RWxtLm9mZnNldFdpZHRoOworICAgIHZpZXdwb3J0LmFjdHVhbEhlaWdodCA9
IHRlc3RFbG0ub2Zmc2V0SGVpZ2h0OworICAgIHZpZXdwb3J0Lnpvb20gPSB2aWV3cG9ydC5pbml0
aWFsV2lkdGggLyB3aW5kb3cuaW5uZXJXaWR0aDsKKworICAgIC8qIENoZWNrIHZpZXdwb3J0IHZh
bHVlcy4gKi8KKyAgICB0ZXN0LnN0ZXAoZnVuY3Rpb24oKXsKKyAgICAgICAgYXNzZXJ0X2VxdWFs
cyh2aWV3cG9ydC5hY3R1YWxXaWR0aCwgdmlld3BvcnQuaW5pdGlhbFdpZHRoKTsKKyAgICB9KTsK
KworICAgIC8qIEZpbmlzaGVkLiBTaG93IHRoZSByZXN1bHRzLiAqLworICAgIHRlc3QuZG9uZSgp
OworICAgIHRlc3RTdHlsZVNoZWV0LmRpc2FibGVkID0gdHJ1ZTsKKyAgICBkb2N1bWVudC5nZXRF
bGVtZW50QnlJZCgibG9nIikuc3R5bGUuZGlzcGxheSA9ICJibG9jayI7CisgICB9CisgIF1dPjwv
c2NyaXB0PgorIDwvaGVhZD4KKyA8Ym9keT4KKyAgPGRpdiBpZD0idGVzdCI+CisgICA8ZGl2IGlk
PSJsb2ciPjwvZGl2PgorICA8L2Rpdj4KKyA8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9jc3MzL2RldmljZS1hZGFwdC9vcGVyYS9jb25zdHJhaW4tMDAzLWV4cGVjdGVk
LnR4dCBiL0xheW91dFRlc3RzL2NzczMvZGV2aWNlLWFkYXB0L29wZXJhL2NvbnN0cmFpbi0wMDMt
ZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjExYzk4OTllMTc0YjFkNjBlZGUyNGZmNzYwZGQ3ZWMx
ODVhMTczOGEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9jc3MzL2RldmljZS1hZGFw
dC9vcGVyYS9jb25zdHJhaW4tMDAzLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDMgQEAKKworUEFT
UyBDU1MgVGVzdDogQHZpZXdwb3J0IGNvbnN0cmFpbmVkIC0gbWluLXdpZHRoIDEwcHggCisKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2NzczMvZGV2aWNlLWFkYXB0L29wZXJhL2NvbnN0cmFpbi0w
MDMueGh0bWwgYi9MYXlvdXRUZXN0cy9jc3MzL2RldmljZS1hZGFwdC9vcGVyYS9jb25zdHJhaW4t
MDAzLnhodG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLjNkNzgyMGY2NDEzZTI2NDY2Yjc3MjgyMGZjZWNiMzY1ZWZi
YjRhNWMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9jc3MzL2RldmljZS1hZGFwdC9v
cGVyYS9jb25zdHJhaW4tMDAzLnhodG1sCkBAIC0wLDAgKzEsODQgQEAKKzw/eG1sIHZlcnNpb249
IjEuMCIgZW5jb2Rpbmc9IlVURi04Ij8+Cis8IURPQ1RZUEUgaHRtbCBQVUJMSUMgIi0vL1czQy8v
RFREIFhIVE1MIDEuMCBTdHJpY3QvL0VOIiAiaHR0cDovL3d3dy53My5vcmcvVFIveGh0bWwxL0RU
RC94aHRtbDEtc3RyaWN0LmR0ZCI+Cis8aHRtbCB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMTk5
OS94aHRtbCI+CisgPGhlYWQ+CisgIDx0aXRsZT5DU1MgVGVzdDogQHZpZXdwb3J0IGNvbnN0cmFp
bmVkIC0gbWluLXdpZHRoIDEwcHg8L3RpdGxlPgorICA8bGluayByZWw9ImF1dGhvciIgdGl0bGU9
IlJ1bmUgTGlsbGVzdmVlbiIgaHJlZj0ibWFpbHRvOnJ1bmVAb3BlcmEuY29tIi8+CisgIDxsaW5r
IHJlbD0iaGVscCIgaHJlZj0iaHR0cDovL3d3dy53My5vcmcvVFIvY3NzLWRldmljZS1hZGFwdC8j
Y29uc3RyYWluaW5nLXByb2NlZHVyZSIvPgorICA8bWV0YSBuYW1lPSJmbGFncyIgY29udGVudD0i
dmlzdWFsIHNjcm9sbCBkb20iIC8+CisgIDxtZXRhIG5hbWU9ImFzc2VydCIgY29udGVudD0iU2V0
dGluZyBtaW4td2lkdGggaW4gQHZpZXdwb3J0IHRvIGEgbGVuZ3RoIHNtYWxsZXIgdGhhbiB0aGUg
aW5pdGlhbCB2aWV3cG9ydCB3aWR0aCB3aWxsIG5vdCBjaGFuZ2UgdGhlIGFjdHVhbCB2aWV3cG9y
dCB3aWR0aC4iLz4KKyAgPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVz
cy5qcyIgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiAvPgorICA8c2NyaXB0IHNyYz0iLi4vLi4vLi4v
cmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIC8+
CisgIDxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyI+PCFbQ0RBVEFbCisgICBib2R5IHsgbWFyZ2luOiAw
OyB9CisgICBodG1sLCBib2R5LCAjdGVzdCB7IHdpZHRoOiAxMDAlOyBoZWlnaHQ6IDEwMCU7IH0K
KyAgICNsb2cgeyBwYWRkaW5nOiAxZW07IGRpc3BsYXk6IG5vbmU7IH0KKyAgIC8qIFJlc2V0IHZp
ZXdwb3J0IHZhbHVlcyB0byBpbml0aWFsIHZhbHVlcyB0byBpZ25vcmUgVUEgc3R5bGVzaGVldC4g
Ki8KKyAgIEAtd2Via2l0LXZpZXdwb3J0IHsKKyAgICB3aWR0aDogYXV0bzsKKyAgICBoZWlnaHQ6
IGF1dG87CisgICAgem9vbTogYXV0bzsKKyAgICBtaW4tem9vbTogYXV0bzsKKyAgICBtYXgtem9v
bTogYXV0bzsKKyAgICB1c2VyLXpvb206IHpvb207CisgICAgb3JpZW50YXRpb246IGF1dG87Cisg
ICAgcmVzb2x1dGlvbjogYXV0bzsKKyAgIH0KKyAgXV0+PC9zdHlsZT4KKyAgPHN0eWxlIHR5cGU9
InRleHQvY3NzIj48IVtDREFUQVsKKyAgIC8qIENTUyBmb3IgdGhlIHRlc3QgYmVsb3cuICovCisg
ICBALXdlYmtpdC12aWV3cG9ydCB7IG1pbi13aWR0aDogMTBweCB9CisgICAvKiBTZXQgcm9vdCBl
bGVtZW50IGZvbnQtc2l6ZSB0byBzb21ldGhpbmcgZGlmZmVyZW50IGZyb20gdGhlIGluaXRpYWwK
KyAgICAgIGZvbnQtc2l6ZSB0byBtYWtlIHN1cmUgJ3JlbScgYW5kICdlbScgZm9yIEB2aWV3cG9y
dCBpcyBiYXNlZCBvbiB0aGUKKyAgICAgIGluaXRpYWwgZm9udC1zaXplLCBub3QgdGhlIHJvb3Qg
ZWxlbWVudCBmb250LXNpemUuICovCisgICBodG1sIHsgZm9udC1zaXplOiAycmVtOyB9CisgICBi
b2R5IHsgZm9udC1zaXplOiAwLjVyZW07IH0KKyAgXV0+PC9zdHlsZT4KKyAgPHNjcmlwdCB0eXBl
PSJ0ZXh0L2phdmFzY3JpcHQiPjwhW0NEQVRBWworICAgdmFyIHRlc3QgPSBhc3luY190ZXN0KCJD
U1MgVGVzdDogQHZpZXdwb3J0IGNvbnN0cmFpbmVkIC0gbWluLXdpZHRoIDEwcHgiKTsKKyAgIHdp
bmRvdy5vbmxvYWQgPSBmdW5jdGlvbigpeworCisgICAgdmFyIHRlc3RTdHlsZVNoZWV0ID0gZG9j
dW1lbnQuc3R5bGVTaGVldHMuaXRlbSgxKTsKKworICAgIC8qIERpc2FibGUgdGhlIHN0eWxlc2hl
ZXQgdGhhdCBjb250YWlucyB0aGUgQHZpZXdwb3J0IHRvIHRlc3QuICovCisgICAgdGVzdFN0eWxl
U2hlZXQuZGlzYWJsZWQgPSB0cnVlOworCisgICAgLyogSW5pdGlhbGl6ZSBhbiBvYmplY3QgdG8g
c3RvcmUgdmlld3BvcnQgdmFsdWVzIHRvIGJlIHVzZWQgYnkgdGhlIHRlc3QKKyAgICAgICBhc3Nl
cnRzLiAqLworICAgIHZhciB2aWV3cG9ydCA9IG5ldyBPYmplY3QoKTsKKworICAgIC8qIEFuIGVs
ZW1lbnQgd2l0aCB0aGUgc2FtZSBzaXplIGFzIHRoZSBpbml0aWFsIGNvbnRhaW5pbmcgYmxvY2su
ICovCisgICAgdmFyIHRlc3RFbG0gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidGVzdCIpOwor
CisgICAgLyogUmV0cmlldmUgdGhlIGluaXRpYWwgdmlld3BvcnQgdmFsdWVzIGJlZm9yZSBhcHBs
eWluZyB0aGUgQHZpZXdwb3J0IHRvCisgICAgICAgdGVzdC4gKi8KKyAgICB2aWV3cG9ydC5pbml0
aWFsV2lkdGggPSB0ZXN0RWxtLm9mZnNldFdpZHRoOworICAgIHZpZXdwb3J0LmluaXRpYWxIZWln
aHQgPSB0ZXN0RWxtLm9mZnNldEhlaWdodDsKKyAgICB2aWV3cG9ydC5mb250U2l6ZSA9IHBhcnNl
SW50KGdldENvbXB1dGVkU3R5bGUodGVzdEVsbSwgIiIpLmZvbnRTaXplKTsKKworICAgIC8qIEVu
YWJsZSB0aGUgc3R5bGVzaGVldCB0aGF0IGNvbnRhaW5zIHRoZSBAdmlld3BvcnQgdG8gdGVzdC4g
Ki8KKyAgICB0ZXN0U3R5bGVTaGVldC5kaXNhYmxlZCA9IGZhbHNlOworCisgICAgLyogUmV0cmll
dmUgdGhlIGFjdHVhbCB2aWV3cG9ydCB2YWx1ZXMgZm9yIHRoZSB0ZXN0LiAqLworICAgIHZpZXdw
b3J0LmFjdHVhbFdpZHRoID0gdGVzdEVsbS5vZmZzZXRXaWR0aDsKKyAgICB2aWV3cG9ydC5hY3R1
YWxIZWlnaHQgPSB0ZXN0RWxtLm9mZnNldEhlaWdodDsKKyAgICB2aWV3cG9ydC56b29tID0gdmll
d3BvcnQuaW5pdGlhbFdpZHRoIC8gd2luZG93LmlubmVyV2lkdGg7CisKKyAgICAvKiBDaGVjayB2
aWV3cG9ydCB2YWx1ZXMuICovCisgICAgdGVzdC5zdGVwKGZ1bmN0aW9uKCl7CisgICAgICAgIGFz
c2VydF9lcXVhbHModmlld3BvcnQuYWN0dWFsV2lkdGgsIHZpZXdwb3J0LmluaXRpYWxXaWR0aCk7
CisgICAgfSk7CisKKyAgICAvKiBGaW5pc2hlZC4gU2hvdyB0aGUgcmVzdWx0cy4gKi8KKyAgICB0
ZXN0LmRvbmUoKTsKKyAgICB0ZXN0U3R5bGVTaGVldC5kaXNhYmxlZCA9IHRydWU7CisgICAgZG9j
dW1lbnQuZ2V0RWxlbWVudEJ5SWQoImxvZyIpLnN0eWxlLmRpc3BsYXkgPSAiYmxvY2siOworICAg
fQorICBdXT48L3NjcmlwdD4KKyA8L2hlYWQ+CisgPGJvZHk+CisgIDxkaXYgaWQ9InRlc3QiPgor
ICAgPGRpdiBpZD0ibG9nIj48L2Rpdj4KKyAgPC9kaXY+CisgPC9ib2R5PgorPC9odG1sPgpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvY3NzMy9kZXZpY2UtYWRhcHQvb3BlcmEvY29uc3RyYWluLTAw
NC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9jc3MzL2RldmljZS1hZGFwdC9vcGVyYS9jb25z
dHJhaW4tMDA0LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zNTg1ZDM3MzBkMmU3Y2MyMWE5MTkx
NjJkZGZlZmU0NDA4ZDY4OTJkCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvY3NzMy9k
ZXZpY2UtYWRhcHQvb3BlcmEvY29uc3RyYWluLTAwNC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwz
IEBACisKK1BBU1MgQ1NTIFRlc3Q6IEB2aWV3cG9ydCBjb25zdHJhaW5lZCAtIG1pbi13aWR0aCAx
MDAwMHB4IAorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9jc3MzL2RldmljZS1hZGFwdC9vcGVy
YS9jb25zdHJhaW4tMDA0LnhodG1sIGIvTGF5b3V0VGVzdHMvY3NzMy9kZXZpY2UtYWRhcHQvb3Bl
cmEvY29uc3RyYWluLTAwNC54aHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yYmFmNjM4ZmE3MmZhMzNjNTA1Njkz
NWJlNGQ3MGQwMzA5YmM3M2I5Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvY3NzMy9k
ZXZpY2UtYWRhcHQvb3BlcmEvY29uc3RyYWluLTAwNC54aHRtbApAQCAtMCwwICsxLDg0IEBACis8
P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCI/PgorPCFET0NUWVBFIGh0bWwgUFVC
TElDICItLy9XM0MvL0RURCBYSFRNTCAxLjAgU3RyaWN0Ly9FTiIgImh0dHA6Ly93d3cudzMub3Jn
L1RSL3hodG1sMS9EVEQveGh0bWwxLXN0cmljdC5kdGQiPgorPGh0bWwgeG1sbnM9Imh0dHA6Ly93
d3cudzMub3JnLzE5OTkveGh0bWwiPgorIDxoZWFkPgorICA8dGl0bGU+Q1NTIFRlc3Q6IEB2aWV3
cG9ydCBjb25zdHJhaW5lZCAtIG1pbi13aWR0aCAxMDAwMHB4PC90aXRsZT4KKyAgPGxpbmsgcmVs
PSJhdXRob3IiIHRpdGxlPSJSdW5lIExpbGxlc3ZlZW4iIGhyZWY9Im1haWx0bzpydW5lQG9wZXJh
LmNvbSIvPgorICA8bGluayByZWw9ImhlbHAiIGhyZWY9Imh0dHA6Ly93d3cudzMub3JnL1RSL2Nz
cy1kZXZpY2UtYWRhcHQvI2NvbnN0cmFpbmluZy1wcm9jZWR1cmUiLz4KKyAgPG1ldGEgbmFtZT0i
ZmxhZ3MiIGNvbnRlbnQ9InZpc3VhbCBzY3JvbGwgZG9tIiAvPgorICA8bWV0YSBuYW1lPSJhc3Nl
cnQiIGNvbnRlbnQ9IlNldHRpbmcgbWluLXdpZHRoIGluIEB2aWV3cG9ydCB0byBhIGxlbmd0aCBs
YXJnZXIgdGhhbiB0aGUgaW5pdGlhbCB2aWV3cG9ydCB3aWR0aCB3aWxsIHNldCB0aGUgYWN0dWFs
IHZpZXdwb3J0IHdpZHRoIHRvIHRoYXQgbGVuZ3RoLiIvPgorICA8c2NyaXB0IHNyYz0iLi4vLi4v
Li4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIC8+Cisg
IDxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiIHR5
cGU9InRleHQvamF2YXNjcmlwdCIgLz4KKyAgPHN0eWxlIHR5cGU9InRleHQvY3NzIj48IVtDREFU
QVsKKyAgIGJvZHkgeyBtYXJnaW46IDA7IH0KKyAgIGh0bWwsIGJvZHksICN0ZXN0IHsgd2lkdGg6
IDEwMCU7IGhlaWdodDogMTAwJTsgfQorICAgI2xvZyB7IHBhZGRpbmc6IDFlbTsgZGlzcGxheTog
bm9uZTsgfQorICAgLyogUmVzZXQgdmlld3BvcnQgdmFsdWVzIHRvIGluaXRpYWwgdmFsdWVzIHRv
IGlnbm9yZSBVQSBzdHlsZXNoZWV0LiAqLworICAgQC13ZWJraXQtdmlld3BvcnQgeworICAgIHdp
ZHRoOiBhdXRvOworICAgIGhlaWdodDogYXV0bzsKKyAgICB6b29tOiBhdXRvOworICAgIG1pbi16
b29tOiBhdXRvOworICAgIG1heC16b29tOiBhdXRvOworICAgIHVzZXItem9vbTogem9vbTsKKyAg
ICBvcmllbnRhdGlvbjogYXV0bzsKKyAgICByZXNvbHV0aW9uOiBhdXRvOworICAgfQorICBdXT48
L3N0eWxlPgorICA8c3R5bGUgdHlwZT0idGV4dC9jc3MiPjwhW0NEQVRBWworICAgLyogQ1NTIGZv
ciB0aGUgdGVzdCBiZWxvdy4gKi8KKyAgIEAtd2Via2l0LXZpZXdwb3J0IHsgbWluLXdpZHRoOiAx
MDAwMHB4IH0KKyAgIC8qIFNldCByb290IGVsZW1lbnQgZm9udC1zaXplIHRvIHNvbWV0aGluZyBk
aWZmZXJlbnQgZnJvbSB0aGUgaW5pdGlhbAorICAgICAgZm9udC1zaXplIHRvIG1ha2Ugc3VyZSAn
cmVtJyBhbmQgJ2VtJyBmb3IgQHZpZXdwb3J0IGlzIGJhc2VkIG9uIHRoZQorICAgICAgaW5pdGlh
bCBmb250LXNpemUsIG5vdCB0aGUgcm9vdCBlbGVtZW50IGZvbnQtc2l6ZS4gKi8KKyAgIGh0bWwg
eyBmb250LXNpemU6IDJyZW07IH0KKyAgIGJvZHkgeyBmb250LXNpemU6IDAuNXJlbTsgfQorICBd
XT48L3N0eWxlPgorICA8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+PCFbQ0RBVEFbCisg
ICB2YXIgdGVzdCA9IGFzeW5jX3Rlc3QoIkNTUyBUZXN0OiBAdmlld3BvcnQgY29uc3RyYWluZWQg
LSBtaW4td2lkdGggMTAwMDBweCIpOworICAgd2luZG93Lm9ubG9hZCA9IGZ1bmN0aW9uKCl7CisK
KyAgICB2YXIgdGVzdFN0eWxlU2hlZXQgPSBkb2N1bWVudC5zdHlsZVNoZWV0cy5pdGVtKDEpOwor
CisgICAgLyogRGlzYWJsZSB0aGUgc3R5bGVzaGVldCB0aGF0IGNvbnRhaW5zIHRoZSBAdmlld3Bv
cnQgdG8gdGVzdC4gKi8KKyAgICB0ZXN0U3R5bGVTaGVldC5kaXNhYmxlZCA9IHRydWU7CisKKyAg
ICAvKiBJbml0aWFsaXplIGFuIG9iamVjdCB0byBzdG9yZSB2aWV3cG9ydCB2YWx1ZXMgdG8gYmUg
dXNlZCBieSB0aGUgdGVzdAorICAgICAgIGFzc2VydHMuICovCisgICAgdmFyIHZpZXdwb3J0ID0g
bmV3IE9iamVjdCgpOworCisgICAgLyogQW4gZWxlbWVudCB3aXRoIHRoZSBzYW1lIHNpemUgYXMg
dGhlIGluaXRpYWwgY29udGFpbmluZyBibG9jay4gKi8KKyAgICB2YXIgdGVzdEVsbSA9IGRvY3Vt
ZW50LmdldEVsZW1lbnRCeUlkKCJ0ZXN0Iik7CisKKyAgICAvKiBSZXRyaWV2ZSB0aGUgaW5pdGlh
bCB2aWV3cG9ydCB2YWx1ZXMgYmVmb3JlIGFwcGx5aW5nIHRoZSBAdmlld3BvcnQgdG8KKyAgICAg
ICB0ZXN0LiAqLworICAgIHZpZXdwb3J0LmluaXRpYWxXaWR0aCA9IHRlc3RFbG0ub2Zmc2V0V2lk
dGg7CisgICAgdmlld3BvcnQuaW5pdGlhbEhlaWdodCA9IHRlc3RFbG0ub2Zmc2V0SGVpZ2h0Owor
ICAgIHZpZXdwb3J0LmZvbnRTaXplID0gcGFyc2VJbnQoZ2V0Q29tcHV0ZWRTdHlsZSh0ZXN0RWxt
LCAiIikuZm9udFNpemUpOworCisgICAgLyogRW5hYmxlIHRoZSBzdHlsZXNoZWV0IHRoYXQgY29u
dGFpbnMgdGhlIEB2aWV3cG9ydCB0byB0ZXN0LiAqLworICAgIHRlc3RTdHlsZVNoZWV0LmRpc2Fi
bGVkID0gZmFsc2U7CisKKyAgICAvKiBSZXRyaWV2ZSB0aGUgYWN0dWFsIHZpZXdwb3J0IHZhbHVl
cyBmb3IgdGhlIHRlc3QuICovCisgICAgdmlld3BvcnQuYWN0dWFsV2lkdGggPSB0ZXN0RWxtLm9m
ZnNldFdpZHRoOworICAgIHZpZXdwb3J0LmFjdHVhbEhlaWdodCA9IHRlc3RFbG0ub2Zmc2V0SGVp
Z2h0OworICAgIHZpZXdwb3J0Lnpvb20gPSB2aWV3cG9ydC5pbml0aWFsV2lkdGggLyB3aW5kb3cu
aW5uZXJXaWR0aDsKKworICAgIC8qIENoZWNrIHZpZXdwb3J0IHZhbHVlcy4gKi8KKyAgICB0ZXN0
LnN0ZXAoZnVuY3Rpb24oKXsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyh2aWV3cG9ydC5hY3R1YWxX
aWR0aCwgMTAwMDApOworICAgIH0pOworCisgICAgLyogRmluaXNoZWQuIFNob3cgdGhlIHJlc3Vs
dHMuICovCisgICAgdGVzdC5kb25lKCk7CisgICAgdGVzdFN0eWxlU2hlZXQuZGlzYWJsZWQgPSB0
cnVlOworICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJsb2ciKS5zdHlsZS5kaXNwbGF5ID0g
ImJsb2NrIjsKKyAgIH0KKyAgXV0+PC9zY3JpcHQ+CisgPC9oZWFkPgorIDxib2R5PgorICA8ZGl2
IGlkPSJ0ZXN0Ij4KKyAgIDxkaXYgaWQ9ImxvZyI+PC9kaXY+CisgIDwvZGl2PgorIDwvYm9keT4K
KzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2NzczMvZGV2aWNlLWFkYXB0L29wZXJh
L2NvbnN0cmFpbi0wMDUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvY3NzMy9kZXZpY2UtYWRh
cHQvb3BlcmEvY29uc3RyYWluLTAwNS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uODA4ZGRmMjkw
YjE3MjRiZWVjNDdkODFkMjBlYmE0YWFjNDhiMjQwMQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL2NzczMvZGV2aWNlLWFkYXB0L29wZXJhL2NvbnN0cmFpbi0wMDUtZXhwZWN0ZWQudHh0
CkBAIC0wLDAgKzEsMyBAQAorCitQQVNTIENTUyBUZXN0OiBAdmlld3BvcnQgY29uc3RyYWluZWQg
LSBtaW4td2lkdGggZ3JlYXRlciB0aGFuIG1heC13aWR0aC4gCisKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2NzczMvZGV2aWNlLWFkYXB0L29wZXJhL2NvbnN0cmFpbi0wMDUueGh0bWwgYi9MYXlv
dXRUZXN0cy9jc3MzL2RldmljZS1hZGFwdC9vcGVyYS9jb25zdHJhaW4tMDA1LnhodG1sCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLjFkNmJmNDZiZmUxOWEwZmNjMzBiM2M1YWVhZDlmOTA0N2RhMWFlNTAKLS0tIC9kZXYv
bnVsbAorKysgYi9MYXlvdXRUZXN0cy9jc3MzL2RldmljZS1hZGFwdC9vcGVyYS9jb25zdHJhaW4t
MDA1LnhodG1sCkBAIC0wLDAgKzEsODQgQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9
IlVURi04Ij8+Cis8IURPQ1RZUEUgaHRtbCBQVUJMSUMgIi0vL1czQy8vRFREIFhIVE1MIDEuMCBT
dHJpY3QvL0VOIiAiaHR0cDovL3d3dy53My5vcmcvVFIveGh0bWwxL0RURC94aHRtbDEtc3RyaWN0
LmR0ZCI+Cis8aHRtbCB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCI+CisgPGhl
YWQ+CisgIDx0aXRsZT5DU1MgVGVzdDogQHZpZXdwb3J0IGNvbnN0cmFpbmVkIC0gbWluLXdpZHRo
IGdyZWF0ZXIgdGhhbiBtYXgtd2lkdGguPC90aXRsZT4KKyAgPGxpbmsgcmVsPSJhdXRob3IiIHRp
dGxlPSJSdW5lIExpbGxlc3ZlZW4iIGhyZWY9Im1haWx0bzpydW5lQG9wZXJhLmNvbSIvPgorICA8
bGluayByZWw9ImhlbHAiIGhyZWY9Imh0dHA6Ly93d3cudzMub3JnL1RSL2Nzcy1kZXZpY2UtYWRh
cHQvI2NvbnN0cmFpbmluZy1wcm9jZWR1cmUiLz4KKyAgPG1ldGEgbmFtZT0iZmxhZ3MiIGNvbnRl
bnQ9InZpc3VhbCBzY3JvbGwgZG9tIiAvPgorICA8bWV0YSBuYW1lPSJhc3NlcnQiIGNvbnRlbnQ9
IklmIG1pbi13aWR0aCBpcyBncmVhdGVyIHRoYW4gbWF4LXdpZHRoLCBtaW4td2lkdGggd2lsbCBv
dmVycnVsZSBtYXgtd2lkdGguIi8+CisgIDxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMv
dGVzdGhhcm5lc3MuanMiIHR5cGU9InRleHQvamF2YXNjcmlwdCIgLz4KKyAgPHNjcmlwdCBzcmM9
Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyIgdHlwZT0idGV4dC9qYXZh
c2NyaXB0IiAvPgorICA8c3R5bGUgdHlwZT0idGV4dC9jc3MiPjwhW0NEQVRBWworICAgYm9keSB7
IG1hcmdpbjogMDsgfQorICAgaHRtbCwgYm9keSwgI3Rlc3QgeyB3aWR0aDogMTAwJTsgaGVpZ2h0
OiAxMDAlOyB9CisgICAjbG9nIHsgcGFkZGluZzogMWVtOyBkaXNwbGF5OiBub25lOyB9CisgICAv
KiBSZXNldCB2aWV3cG9ydCB2YWx1ZXMgdG8gaW5pdGlhbCB2YWx1ZXMgdG8gaWdub3JlIFVBIHN0
eWxlc2hlZXQuICovCisgICBALXdlYmtpdC12aWV3cG9ydCB7CisgICAgd2lkdGg6IGF1dG87Cisg
ICAgaGVpZ2h0OiBhdXRvOworICAgIHpvb206IGF1dG87CisgICAgbWluLXpvb206IGF1dG87Cisg
ICAgbWF4LXpvb206IGF1dG87CisgICAgdXNlci16b29tOiB6b29tOworICAgIG9yaWVudGF0aW9u
OiBhdXRvOworICAgIHJlc29sdXRpb246IGF1dG87CisgICB9CisgIF1dPjwvc3R5bGU+CisgIDxz
dHlsZSB0eXBlPSJ0ZXh0L2NzcyI+PCFbQ0RBVEFbCisgICAvKiBDU1MgZm9yIHRoZSB0ZXN0IGJl
bG93LiAqLworICAgQC13ZWJraXQtdmlld3BvcnQgeyBtaW4td2lkdGg6IDEwMDAwcHg7IG1heC13
aWR0aDogMjAwcHggfQorICAgLyogU2V0IHJvb3QgZWxlbWVudCBmb250LXNpemUgdG8gc29tZXRo
aW5nIGRpZmZlcmVudCBmcm9tIHRoZSBpbml0aWFsCisgICAgICBmb250LXNpemUgdG8gbWFrZSBz
dXJlICdyZW0nIGFuZCAnZW0nIGZvciBAdmlld3BvcnQgaXMgYmFzZWQgb24gdGhlCisgICAgICBp
bml0aWFsIGZvbnQtc2l6ZSwgbm90IHRoZSByb290IGVsZW1lbnQgZm9udC1zaXplLiAqLworICAg
aHRtbCB7IGZvbnQtc2l6ZTogMnJlbTsgfQorICAgYm9keSB7IGZvbnQtc2l6ZTogMC41cmVtOyB9
CisgIF1dPjwvc3R5bGU+CisgIDxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij48IVtDREFU
QVsKKyAgIHZhciB0ZXN0ID0gYXN5bmNfdGVzdCgiQ1NTIFRlc3Q6IEB2aWV3cG9ydCBjb25zdHJh
aW5lZCAtIG1pbi13aWR0aCBncmVhdGVyIHRoYW4gbWF4LXdpZHRoLiIpOworICAgd2luZG93Lm9u
bG9hZCA9IGZ1bmN0aW9uKCl7CisKKyAgICB2YXIgdGVzdFN0eWxlU2hlZXQgPSBkb2N1bWVudC5z
dHlsZVNoZWV0cy5pdGVtKDEpOworCisgICAgLyogRGlzYWJsZSB0aGUgc3R5bGVzaGVldCB0aGF0
IGNvbnRhaW5zIHRoZSBAdmlld3BvcnQgdG8gdGVzdC4gKi8KKyAgICB0ZXN0U3R5bGVTaGVldC5k
aXNhYmxlZCA9IHRydWU7CisKKyAgICAvKiBJbml0aWFsaXplIGFuIG9iamVjdCB0byBzdG9yZSB2
aWV3cG9ydCB2YWx1ZXMgdG8gYmUgdXNlZCBieSB0aGUgdGVzdAorICAgICAgIGFzc2VydHMuICov
CisgICAgdmFyIHZpZXdwb3J0ID0gbmV3IE9iamVjdCgpOworCisgICAgLyogQW4gZWxlbWVudCB3
aXRoIHRoZSBzYW1lIHNpemUgYXMgdGhlIGluaXRpYWwgY29udGFpbmluZyBibG9jay4gKi8KKyAg
ICB2YXIgdGVzdEVsbSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0ZXN0Iik7CisKKyAgICAv
KiBSZXRyaWV2ZSB0aGUgaW5pdGlhbCB2aWV3cG9ydCB2YWx1ZXMgYmVmb3JlIGFwcGx5aW5nIHRo
ZSBAdmlld3BvcnQgdG8KKyAgICAgICB0ZXN0LiAqLworICAgIHZpZXdwb3J0LmluaXRpYWxXaWR0
aCA9IHRlc3RFbG0ub2Zmc2V0V2lkdGg7CisgICAgdmlld3BvcnQuaW5pdGlhbEhlaWdodCA9IHRl
c3RFbG0ub2Zmc2V0SGVpZ2h0OworICAgIHZpZXdwb3J0LmZvbnRTaXplID0gcGFyc2VJbnQoZ2V0
Q29tcHV0ZWRTdHlsZSh0ZXN0RWxtLCAiIikuZm9udFNpemUpOworCisgICAgLyogRW5hYmxlIHRo
ZSBzdHlsZXNoZWV0IHRoYXQgY29udGFpbnMgdGhlIEB2aWV3cG9ydCB0byB0ZXN0LiAqLworICAg
IHRlc3RTdHlsZVNoZWV0LmRpc2FibGVkID0gZmFsc2U7CisKKyAgICAvKiBSZXRyaWV2ZSB0aGUg
YWN0dWFsIHZpZXdwb3J0IHZhbHVlcyBmb3IgdGhlIHRlc3QuICovCisgICAgdmlld3BvcnQuYWN0
dWFsV2lkdGggPSB0ZXN0RWxtLm9mZnNldFdpZHRoOworICAgIHZpZXdwb3J0LmFjdHVhbEhlaWdo
dCA9IHRlc3RFbG0ub2Zmc2V0SGVpZ2h0OworICAgIHZpZXdwb3J0Lnpvb20gPSB2aWV3cG9ydC5p
bml0aWFsV2lkdGggLyB3aW5kb3cuaW5uZXJXaWR0aDsKKworICAgIC8qIENoZWNrIHZpZXdwb3J0
IHZhbHVlcy4gKi8KKyAgICB0ZXN0LnN0ZXAoZnVuY3Rpb24oKXsKKyAgICAgICAgYXNzZXJ0X2Vx
dWFscyh2aWV3cG9ydC5hY3R1YWxXaWR0aCwgMTAwMDApOworICAgIH0pOworCisgICAgLyogRmlu
aXNoZWQuIFNob3cgdGhlIHJlc3VsdHMuICovCisgICAgdGVzdC5kb25lKCk7CisgICAgdGVzdFN0
eWxlU2hlZXQuZGlzYWJsZWQgPSB0cnVlOworICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJs
b2ciKS5zdHlsZS5kaXNwbGF5ID0gImJsb2NrIjsKKyAgIH0KKyAgXV0+PC9zY3JpcHQ+CisgPC9o
ZWFkPgorIDxib2R5PgorICA8ZGl2IGlkPSJ0ZXN0Ij4KKyAgIDxkaXYgaWQ9ImxvZyI+PC9kaXY+
CisgIDwvZGl2PgorIDwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Nz
czMvZGV2aWNlLWFkYXB0L29wZXJhL2NvbnN0cmFpbi0wMDYtZXhwZWN0ZWQudHh0IGIvTGF5b3V0
VGVzdHMvY3NzMy9kZXZpY2UtYWRhcHQvb3BlcmEvY29uc3RyYWluLTAwNi1leHBlY3RlZC50eHQK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uYjAzZDNkZTA4NTU3MmZmMjgzOTVmNTI0NWZmODUyNjhiOTEyYzMzMQotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2NzczMvZGV2aWNlLWFkYXB0L29wZXJhL2NvbnN0
cmFpbi0wMDYtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMyBAQAorCitQQVNTIENTUyBUZXN0OiBA
dmlld3BvcnQgY29uc3RyYWluZWQgLSB3aWR0aCAyMDAlIAorCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9jc3MzL2RldmljZS1hZGFwdC9vcGVyYS9jb25zdHJhaW4tMDA2LnhodG1sIGIvTGF5b3V0
VGVzdHMvY3NzMy9kZXZpY2UtYWRhcHQvb3BlcmEvY29uc3RyYWluLTAwNi54aHRtbApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi40OWU3MTRkYmMwM2YyMjU3ZGQzOThlNzYwOWFhNzczNDk2OGI0N2JmCi0tLSAvZGV2L251
bGwKKysrIGIvTGF5b3V0VGVzdHMvY3NzMy9kZXZpY2UtYWRhcHQvb3BlcmEvY29uc3RyYWluLTAw
Ni54aHRtbApAQCAtMCwwICsxLDg0IEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJV
VEYtOCI/PgorPCFET0NUWVBFIGh0bWwgUFVCTElDICItLy9XM0MvL0RURCBYSFRNTCAxLjAgU3Ry
aWN0Ly9FTiIgImh0dHA6Ly93d3cudzMub3JnL1RSL3hodG1sMS9EVEQveGh0bWwxLXN0cmljdC5k
dGQiPgorPGh0bWwgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwiPgorIDxoZWFk
PgorICA8dGl0bGU+Q1NTIFRlc3Q6IEB2aWV3cG9ydCBjb25zdHJhaW5lZCAtIHdpZHRoIDIwMCU8
L3RpdGxlPgorICA8bGluayByZWw9ImF1dGhvciIgdGl0bGU9IlJ1bmUgTGlsbGVzdmVlbiIgaHJl
Zj0ibWFpbHRvOnJ1bmVAb3BlcmEuY29tIi8+CisgIDxsaW5rIHJlbD0iaGVscCIgaHJlZj0iaHR0
cDovL3d3dy53My5vcmcvVFIvY3NzLWRldmljZS1hZGFwdC8jY29uc3RyYWluaW5nLXByb2NlZHVy
ZSIvPgorICA8bWV0YSBuYW1lPSJmbGFncyIgY29udGVudD0idmlzdWFsIHNjcm9sbCBkb20iIC8+
CisgIDxtZXRhIG5hbWU9ImFzc2VydCIgY29udGVudD0iU2V0dGluZyB3aWR0aCBpbiBAdmlld3Bv
cnQgdG8gMjAwJSB3aWxsIHNldCB0aGUgYWN0dWFsIHZpZXdwb3J0IHdpZHRoIHRvIHR3aWNlIHRo
ZSBpbml0aWFsLXdpZHRoLiIvPgorICA8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rl
c3RoYXJuZXNzLmpzIiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIC8+CisgIDxzY3JpcHQgc3JjPSIu
Li8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiIHR5cGU9InRleHQvamF2YXNj
cmlwdCIgLz4KKyAgPHN0eWxlIHR5cGU9InRleHQvY3NzIj48IVtDREFUQVsKKyAgIGJvZHkgeyBt
YXJnaW46IDA7IH0KKyAgIGh0bWwsIGJvZHksICN0ZXN0IHsgd2lkdGg6IDEwMCU7IGhlaWdodDog
MTAwJTsgfQorICAgI2xvZyB7IHBhZGRpbmc6IDFlbTsgZGlzcGxheTogbm9uZTsgfQorICAgLyog
UmVzZXQgdmlld3BvcnQgdmFsdWVzIHRvIGluaXRpYWwgdmFsdWVzIHRvIGlnbm9yZSBVQSBzdHls
ZXNoZWV0LiAqLworICAgQC13ZWJraXQtdmlld3BvcnQgeworICAgIHdpZHRoOiBhdXRvOworICAg
IGhlaWdodDogYXV0bzsKKyAgICB6b29tOiBhdXRvOworICAgIG1pbi16b29tOiBhdXRvOworICAg
IG1heC16b29tOiBhdXRvOworICAgIHVzZXItem9vbTogem9vbTsKKyAgICBvcmllbnRhdGlvbjog
YXV0bzsKKyAgICByZXNvbHV0aW9uOiBhdXRvOworICAgfQorICBdXT48L3N0eWxlPgorICA8c3R5
bGUgdHlwZT0idGV4dC9jc3MiPjwhW0NEQVRBWworICAgLyogQ1NTIGZvciB0aGUgdGVzdCBiZWxv
dy4gKi8KKyAgIEAtd2Via2l0LXZpZXdwb3J0IHsgd2lkdGg6IDIwMCUgfQorICAgLyogU2V0IHJv
b3QgZWxlbWVudCBmb250LXNpemUgdG8gc29tZXRoaW5nIGRpZmZlcmVudCBmcm9tIHRoZSBpbml0
aWFsCisgICAgICBmb250LXNpemUgdG8gbWFrZSBzdXJlICdyZW0nIGFuZCAnZW0nIGZvciBAdmll
d3BvcnQgaXMgYmFzZWQgb24gdGhlCisgICAgICBpbml0aWFsIGZvbnQtc2l6ZSwgbm90IHRoZSBy
b290IGVsZW1lbnQgZm9udC1zaXplLiAqLworICAgaHRtbCB7IGZvbnQtc2l6ZTogMnJlbTsgfQor
ICAgYm9keSB7IGZvbnQtc2l6ZTogMC41cmVtOyB9CisgIF1dPjwvc3R5bGU+CisgIDxzY3JpcHQg
dHlwZT0idGV4dC9qYXZhc2NyaXB0Ij48IVtDREFUQVsKKyAgIHZhciB0ZXN0ID0gYXN5bmNfdGVz
dCgiQ1NTIFRlc3Q6IEB2aWV3cG9ydCBjb25zdHJhaW5lZCAtIHdpZHRoIDIwMCUiKTsKKyAgIHdp
bmRvdy5vbmxvYWQgPSBmdW5jdGlvbigpeworCisgICAgdmFyIHRlc3RTdHlsZVNoZWV0ID0gZG9j
dW1lbnQuc3R5bGVTaGVldHMuaXRlbSgxKTsKKworICAgIC8qIERpc2FibGUgdGhlIHN0eWxlc2hl
ZXQgdGhhdCBjb250YWlucyB0aGUgQHZpZXdwb3J0IHRvIHRlc3QuICovCisgICAgdGVzdFN0eWxl
U2hlZXQuZGlzYWJsZWQgPSB0cnVlOworCisgICAgLyogSW5pdGlhbGl6ZSBhbiBvYmplY3QgdG8g
c3RvcmUgdmlld3BvcnQgdmFsdWVzIHRvIGJlIHVzZWQgYnkgdGhlIHRlc3QKKyAgICAgICBhc3Nl
cnRzLiAqLworICAgIHZhciB2aWV3cG9ydCA9IG5ldyBPYmplY3QoKTsKKworICAgIC8qIEFuIGVs
ZW1lbnQgd2l0aCB0aGUgc2FtZSBzaXplIGFzIHRoZSBpbml0aWFsIGNvbnRhaW5pbmcgYmxvY2su
ICovCisgICAgdmFyIHRlc3RFbG0gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidGVzdCIpOwor
CisgICAgLyogUmV0cmlldmUgdGhlIGluaXRpYWwgdmlld3BvcnQgdmFsdWVzIGJlZm9yZSBhcHBs
eWluZyB0aGUgQHZpZXdwb3J0IHRvCisgICAgICAgdGVzdC4gKi8KKyAgICB2aWV3cG9ydC5pbml0
aWFsV2lkdGggPSB0ZXN0RWxtLm9mZnNldFdpZHRoOworICAgIHZpZXdwb3J0LmluaXRpYWxIZWln
aHQgPSB0ZXN0RWxtLm9mZnNldEhlaWdodDsKKyAgICB2aWV3cG9ydC5mb250U2l6ZSA9IHBhcnNl
SW50KGdldENvbXB1dGVkU3R5bGUodGVzdEVsbSwgIiIpLmZvbnRTaXplKTsKKworICAgIC8qIEVu
YWJsZSB0aGUgc3R5bGVzaGVldCB0aGF0IGNvbnRhaW5zIHRoZSBAdmlld3BvcnQgdG8gdGVzdC4g
Ki8KKyAgICB0ZXN0U3R5bGVTaGVldC5kaXNhYmxlZCA9IGZhbHNlOworCisgICAgLyogUmV0cmll
dmUgdGhlIGFjdHVhbCB2aWV3cG9ydCB2YWx1ZXMgZm9yIHRoZSB0ZXN0LiAqLworICAgIHZpZXdw
b3J0LmFjdHVhbFdpZHRoID0gdGVzdEVsbS5vZmZzZXRXaWR0aDsKKyAgICB2aWV3cG9ydC5hY3R1
YWxIZWlnaHQgPSB0ZXN0RWxtLm9mZnNldEhlaWdodDsKKyAgICB2aWV3cG9ydC56b29tID0gdmll
d3BvcnQuaW5pdGlhbFdpZHRoIC8gd2luZG93LmlubmVyV2lkdGg7CisKKyAgICAvKiBDaGVjayB2
aWV3cG9ydCB2YWx1ZXMuICovCisgICAgdGVzdC5zdGVwKGZ1bmN0aW9uKCl7CisgICAgICAgIGFz
c2VydF9lcXVhbHModmlld3BvcnQuYWN0dWFsV2lkdGgsIDIqdmlld3BvcnQuaW5pdGlhbFdpZHRo
KTsKKyAgICB9KTsKKworICAgIC8qIEZpbmlzaGVkLiBTaG93IHRoZSByZXN1bHRzLiAqLworICAg
IHRlc3QuZG9uZSgpOworICAgIHRlc3RTdHlsZVNoZWV0LmRpc2FibGVkID0gdHJ1ZTsKKyAgICBk
b2N1bWVudC5nZXRFbGVtZW50QnlJZCgibG9nIikuc3R5bGUuZGlzcGxheSA9ICJibG9jayI7Cisg
ICB9CisgIF1dPjwvc2NyaXB0PgorIDwvaGVhZD4KKyA8Ym9keT4KKyAgPGRpdiBpZD0idGVzdCI+
CisgICA8ZGl2IGlkPSJsb2ciPjwvZGl2PgorICA8L2Rpdj4KKyA8L2JvZHk+Cis8L2h0bWw+CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9jc3MzL2RldmljZS1hZGFwdC9vcGVyYS9jb25zdHJhaW4t
MDA3LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2NzczMvZGV2aWNlLWFkYXB0L29wZXJhL2Nv
bnN0cmFpbi0wMDctZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmYzNDUwNTE4ZDlmM2QxOGQ4OTM1
YjZiNWEyYjhiZjA4NGI0OWQ1OTcKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9jc3Mz
L2RldmljZS1hZGFwdC9vcGVyYS9jb25zdHJhaW4tMDA3LWV4cGVjdGVkLnR4dApAQCAtMCwwICsx
LDMgQEAKKworUEFTUyBDU1MgVGVzdDogQHZpZXdwb3J0IGNvbnN0cmFpbmVkIC0gd2lkdGggNTAl
IAorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9jc3MzL2RldmljZS1hZGFwdC9vcGVyYS9jb25z
dHJhaW4tMDA3LnhodG1sIGIvTGF5b3V0VGVzdHMvY3NzMy9kZXZpY2UtYWRhcHQvb3BlcmEvY29u
c3RyYWluLTAwNy54aHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hNmUwNjk3YTBiZjFlNzk2NWFiNTYwNjI4NTZh
MjhmYzFhYTI4N2VlCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvY3NzMy9kZXZpY2Ut
YWRhcHQvb3BlcmEvY29uc3RyYWluLTAwNy54aHRtbApAQCAtMCwwICsxLDg0IEBACis8P3htbCB2
ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCI/PgorPCFET0NUWVBFIGh0bWwgUFVCTElDICIt
Ly9XM0MvL0RURCBYSFRNTCAxLjAgU3RyaWN0Ly9FTiIgImh0dHA6Ly93d3cudzMub3JnL1RSL3ho
dG1sMS9EVEQveGh0bWwxLXN0cmljdC5kdGQiPgorPGh0bWwgeG1sbnM9Imh0dHA6Ly93d3cudzMu
b3JnLzE5OTkveGh0bWwiPgorIDxoZWFkPgorICA8dGl0bGU+Q1NTIFRlc3Q6IEB2aWV3cG9ydCBj
b25zdHJhaW5lZCAtIHdpZHRoIDUwJTwvdGl0bGU+CisgIDxsaW5rIHJlbD0iYXV0aG9yIiB0aXRs
ZT0iUnVuZSBMaWxsZXN2ZWVuIiBocmVmPSJtYWlsdG86cnVuZUBvcGVyYS5jb20iLz4KKyAgPGxp
bmsgcmVsPSJoZWxwIiBocmVmPSJodHRwOi8vd3d3LnczLm9yZy9UUi9jc3MtZGV2aWNlLWFkYXB0
LyNjb25zdHJhaW5pbmctcHJvY2VkdXJlIi8+CisgIDxtZXRhIG5hbWU9ImZsYWdzIiBjb250ZW50
PSJ2aXN1YWwgc2Nyb2xsIGRvbSIgLz4KKyAgPG1ldGEgbmFtZT0iYXNzZXJ0IiBjb250ZW50PSJT
ZXR0aW5nIHdpZHRoIGluIEB2aWV3cG9ydCB0byA1MCUgd2lsbCBzZXQgdGhlIGFjdHVhbCB2aWV3
cG9ydCB3aWR0aCB0byBoYWxmIHRoZSBpbml0aWFsLXdpZHRoLiIvPgorICA8c2NyaXB0IHNyYz0i
Li4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQi
IC8+CisgIDxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQu
anMiIHR5cGU9InRleHQvamF2YXNjcmlwdCIgLz4KKyAgPHN0eWxlIHR5cGU9InRleHQvY3NzIj48
IVtDREFUQVsKKyAgIGJvZHkgeyBtYXJnaW46IDA7IH0KKyAgIGh0bWwsIGJvZHksICN0ZXN0IHsg
d2lkdGg6IDEwMCU7IGhlaWdodDogMTAwJTsgfQorICAgI2xvZyB7IHBhZGRpbmc6IDFlbTsgZGlz
cGxheTogbm9uZTsgfQorICAgLyogUmVzZXQgdmlld3BvcnQgdmFsdWVzIHRvIGluaXRpYWwgdmFs
dWVzIHRvIGlnbm9yZSBVQSBzdHlsZXNoZWV0LiAqLworICAgQC13ZWJraXQtdmlld3BvcnQgewor
ICAgIHdpZHRoOiBhdXRvOworICAgIGhlaWdodDogYXV0bzsKKyAgICB6b29tOiBhdXRvOworICAg
IG1pbi16b29tOiBhdXRvOworICAgIG1heC16b29tOiBhdXRvOworICAgIHVzZXItem9vbTogem9v
bTsKKyAgICBvcmllbnRhdGlvbjogYXV0bzsKKyAgICByZXNvbHV0aW9uOiBhdXRvOworICAgfQor
ICBdXT48L3N0eWxlPgorICA8c3R5bGUgdHlwZT0idGV4dC9jc3MiPjwhW0NEQVRBWworICAgLyog
Q1NTIGZvciB0aGUgdGVzdCBiZWxvdy4gKi8KKyAgIEAtd2Via2l0LXZpZXdwb3J0IHsgd2lkdGg6
IDUwJSB9CisgICAvKiBTZXQgcm9vdCBlbGVtZW50IGZvbnQtc2l6ZSB0byBzb21ldGhpbmcgZGlm
ZmVyZW50IGZyb20gdGhlIGluaXRpYWwKKyAgICAgIGZvbnQtc2l6ZSB0byBtYWtlIHN1cmUgJ3Jl
bScgYW5kICdlbScgZm9yIEB2aWV3cG9ydCBpcyBiYXNlZCBvbiB0aGUKKyAgICAgIGluaXRpYWwg
Zm9udC1zaXplLCBub3QgdGhlIHJvb3QgZWxlbWVudCBmb250LXNpemUuICovCisgICBodG1sIHsg
Zm9udC1zaXplOiAycmVtOyB9CisgICBib2R5IHsgZm9udC1zaXplOiAwLjVyZW07IH0KKyAgXV0+
PC9zdHlsZT4KKyAgPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPjwhW0NEQVRBWworICAg
dmFyIHRlc3QgPSBhc3luY190ZXN0KCJDU1MgVGVzdDogQHZpZXdwb3J0IGNvbnN0cmFpbmVkIC0g
d2lkdGggNTAlIik7CisgICB3aW5kb3cub25sb2FkID0gZnVuY3Rpb24oKXsKKworICAgIHZhciB0
ZXN0U3R5bGVTaGVldCA9IGRvY3VtZW50LnN0eWxlU2hlZXRzLml0ZW0oMSk7CisKKyAgICAvKiBE
aXNhYmxlIHRoZSBzdHlsZXNoZWV0IHRoYXQgY29udGFpbnMgdGhlIEB2aWV3cG9ydCB0byB0ZXN0
LiAqLworICAgIHRlc3RTdHlsZVNoZWV0LmRpc2FibGVkID0gdHJ1ZTsKKworICAgIC8qIEluaXRp
YWxpemUgYW4gb2JqZWN0IHRvIHN0b3JlIHZpZXdwb3J0IHZhbHVlcyB0byBiZSB1c2VkIGJ5IHRo
ZSB0ZXN0CisgICAgICAgYXNzZXJ0cy4gKi8KKyAgICB2YXIgdmlld3BvcnQgPSBuZXcgT2JqZWN0
KCk7CisKKyAgICAvKiBBbiBlbGVtZW50IHdpdGggdGhlIHNhbWUgc2l6ZSBhcyB0aGUgaW5pdGlh
bCBjb250YWluaW5nIGJsb2NrLiAqLworICAgIHZhciB0ZXN0RWxtID0gZG9jdW1lbnQuZ2V0RWxl
bWVudEJ5SWQoInRlc3QiKTsKKworICAgIC8qIFJldHJpZXZlIHRoZSBpbml0aWFsIHZpZXdwb3J0
IHZhbHVlcyBiZWZvcmUgYXBwbHlpbmcgdGhlIEB2aWV3cG9ydCB0bworICAgICAgIHRlc3QuICov
CisgICAgdmlld3BvcnQuaW5pdGlhbFdpZHRoID0gdGVzdEVsbS5vZmZzZXRXaWR0aDsKKyAgICB2
aWV3cG9ydC5pbml0aWFsSGVpZ2h0ID0gdGVzdEVsbS5vZmZzZXRIZWlnaHQ7CisgICAgdmlld3Bv
cnQuZm9udFNpemUgPSBwYXJzZUludChnZXRDb21wdXRlZFN0eWxlKHRlc3RFbG0sICIiKS5mb250
U2l6ZSk7CisKKyAgICAvKiBFbmFibGUgdGhlIHN0eWxlc2hlZXQgdGhhdCBjb250YWlucyB0aGUg
QHZpZXdwb3J0IHRvIHRlc3QuICovCisgICAgdGVzdFN0eWxlU2hlZXQuZGlzYWJsZWQgPSBmYWxz
ZTsKKworICAgIC8qIFJldHJpZXZlIHRoZSBhY3R1YWwgdmlld3BvcnQgdmFsdWVzIGZvciB0aGUg
dGVzdC4gKi8KKyAgICB2aWV3cG9ydC5hY3R1YWxXaWR0aCA9IHRlc3RFbG0ub2Zmc2V0V2lkdGg7
CisgICAgdmlld3BvcnQuYWN0dWFsSGVpZ2h0ID0gdGVzdEVsbS5vZmZzZXRIZWlnaHQ7CisgICAg
dmlld3BvcnQuem9vbSA9IHZpZXdwb3J0LmluaXRpYWxXaWR0aCAvIHdpbmRvdy5pbm5lcldpZHRo
OworCisgICAgLyogQ2hlY2sgdmlld3BvcnQgdmFsdWVzLiAqLworICAgIHRlc3Quc3RlcChmdW5j
dGlvbigpeworICAgICAgICBhc3NlcnRfZXF1YWxzKHZpZXdwb3J0LmFjdHVhbFdpZHRoLCBNYXRo
LmZsb29yKHZpZXdwb3J0LmluaXRpYWxXaWR0aC8yKSk7CisgICAgfSk7CisKKyAgICAvKiBGaW5p
c2hlZC4gU2hvdyB0aGUgcmVzdWx0cy4gKi8KKyAgICB0ZXN0LmRvbmUoKTsKKyAgICB0ZXN0U3R5
bGVTaGVldC5kaXNhYmxlZCA9IHRydWU7CisgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImxv
ZyIpLnN0eWxlLmRpc3BsYXkgPSAiYmxvY2siOworICAgfQorICBdXT48L3NjcmlwdD4KKyA8L2hl
YWQ+CisgPGJvZHk+CisgIDxkaXYgaWQ9InRlc3QiPgorICAgPGRpdiBpZD0ibG9nIj48L2Rpdj4K
KyAgPC9kaXY+CisgPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvY3Nz
My9kZXZpY2UtYWRhcHQvb3BlcmEvY29uc3RyYWluLTAwOC1leHBlY3RlZC50eHQgYi9MYXlvdXRU
ZXN0cy9jc3MzL2RldmljZS1hZGFwdC9vcGVyYS9jb25zdHJhaW4tMDA4LWV4cGVjdGVkLnR4dApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi44ZjJlYzc0ODQ2Njc4ZGY2NmQ3ZmQ4NGM1NTE2NjVlZTkwZmE2MjY5Ci0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvY3NzMy9kZXZpY2UtYWRhcHQvb3BlcmEvY29uc3Ry
YWluLTAwOC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwzIEBACisKK1BBU1MgQ1NTIFRlc3Q6IEB2
aWV3cG9ydCBjb25zdHJhaW5lZCAtIG1pbi16b29tIGdyZWF0ZXIgdGhhbiBtYXgtem9vbSAKKwpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvY3NzMy9kZXZpY2UtYWRhcHQvb3BlcmEvY29uc3RyYWlu
LTAwOC54aHRtbCBiL0xheW91dFRlc3RzL2NzczMvZGV2aWNlLWFkYXB0L29wZXJhL2NvbnN0cmFp
bi0wMDgueGh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZWE5ZTM2YTQzYWI0ZGY5NjIxYWY4MzE5YzVkMWZkYWI2
ZDBlNDQ4MwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2NzczMvZGV2aWNlLWFkYXB0
L29wZXJhL2NvbnN0cmFpbi0wMDgueGh0bWwKQEAgLTAsMCArMSw4NCBAQAorPD94bWwgdmVyc2lv
bj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KKzwhRE9DVFlQRSBodG1sIFBVQkxJQyAiLS8vVzND
Ly9EVEQgWEhUTUwgMS4wIFN0cmljdC8vRU4iICJodHRwOi8vd3d3LnczLm9yZy9UUi94aHRtbDEv
RFREL3hodG1sMS1zdHJpY3QuZHRkIj4KKzxodG1sIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8x
OTk5L3hodG1sIj4KKyA8aGVhZD4KKyAgPHRpdGxlPkNTUyBUZXN0OiBAdmlld3BvcnQgY29uc3Ry
YWluZWQgLSBtaW4tem9vbSBncmVhdGVyIHRoYW4gbWF4LXpvb208L3RpdGxlPgorICA8bGluayBy
ZWw9ImF1dGhvciIgdGl0bGU9IlJ1bmUgTGlsbGVzdmVlbiIgaHJlZj0ibWFpbHRvOnJ1bmVAb3Bl
cmEuY29tIi8+CisgIDxsaW5rIHJlbD0iaGVscCIgaHJlZj0iaHR0cDovL3d3dy53My5vcmcvVFIv
Y3NzLWRldmljZS1hZGFwdC8jY29uc3RyYWluaW5nLXByb2NlZHVyZSIvPgorICA8bWV0YSBuYW1l
PSJmbGFncyIgY29udGVudD0idmlzdWFsIHNjcm9sbCBkb20iIC8+CisgIDxtZXRhIG5hbWU9ImFz
c2VydCIgY29udGVudD0iSWYgbWluLXpvb20gaXMgZ3JlYXRlciB0aGFuIG1heC16b29tLCBtaW4t
em9vbSB3aWxsIG92ZXJydWxlIG1heC16b29tLiIvPgorICA8c2NyaXB0IHNyYz0iLi4vLi4vLi4v
cmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIC8+CisgIDxz
Y3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiIHR5cGU9
InRleHQvamF2YXNjcmlwdCIgLz4KKyAgPHN0eWxlIHR5cGU9InRleHQvY3NzIj48IVtDREFUQVsK
KyAgIGJvZHkgeyBtYXJnaW46IDA7IH0KKyAgIGh0bWwsIGJvZHksICN0ZXN0IHsgd2lkdGg6IDEw
MCU7IGhlaWdodDogMTAwJTsgfQorICAgI2xvZyB7IHBhZGRpbmc6IDFlbTsgZGlzcGxheTogbm9u
ZTsgfQorICAgLyogUmVzZXQgdmlld3BvcnQgdmFsdWVzIHRvIGluaXRpYWwgdmFsdWVzIHRvIGln
bm9yZSBVQSBzdHlsZXNoZWV0LiAqLworICAgQC13ZWJraXQtdmlld3BvcnQgeworICAgIHdpZHRo
OiBhdXRvOworICAgIGhlaWdodDogYXV0bzsKKyAgICB6b29tOiBhdXRvOworICAgIG1pbi16b29t
OiBhdXRvOworICAgIG1heC16b29tOiBhdXRvOworICAgIHVzZXItem9vbTogem9vbTsKKyAgICBv
cmllbnRhdGlvbjogYXV0bzsKKyAgICByZXNvbHV0aW9uOiBhdXRvOworICAgfQorICBdXT48L3N0
eWxlPgorICA8c3R5bGUgdHlwZT0idGV4dC9jc3MiPjwhW0NEQVRBWworICAgLyogQ1NTIGZvciB0
aGUgdGVzdCBiZWxvdy4gKi8KKyAgIEAtd2Via2l0LXZpZXdwb3J0IHsgem9vbTogMTAwJTsgbWlu
LXpvb206IDIwMCU7IG1heC16b29tOiA1MCUgfQorICAgLyogU2V0IHJvb3QgZWxlbWVudCBmb250
LXNpemUgdG8gc29tZXRoaW5nIGRpZmZlcmVudCBmcm9tIHRoZSBpbml0aWFsCisgICAgICBmb250
LXNpemUgdG8gbWFrZSBzdXJlICdyZW0nIGFuZCAnZW0nIGZvciBAdmlld3BvcnQgaXMgYmFzZWQg
b24gdGhlCisgICAgICBpbml0aWFsIGZvbnQtc2l6ZSwgbm90IHRoZSByb290IGVsZW1lbnQgZm9u
dC1zaXplLiAqLworICAgaHRtbCB7IGZvbnQtc2l6ZTogMnJlbTsgfQorICAgYm9keSB7IGZvbnQt
c2l6ZTogMC41cmVtOyB9CisgIF1dPjwvc3R5bGU+CisgIDxzY3JpcHQgdHlwZT0idGV4dC9qYXZh
c2NyaXB0Ij48IVtDREFUQVsKKyAgIHZhciB0ZXN0ID0gYXN5bmNfdGVzdCgiQ1NTIFRlc3Q6IEB2
aWV3cG9ydCBjb25zdHJhaW5lZCAtIG1pbi16b29tIGdyZWF0ZXIgdGhhbiBtYXgtem9vbSIpOwor
ICAgd2luZG93Lm9ubG9hZCA9IGZ1bmN0aW9uKCl7CisKKyAgICB2YXIgdGVzdFN0eWxlU2hlZXQg
PSBkb2N1bWVudC5zdHlsZVNoZWV0cy5pdGVtKDEpOworCisgICAgLyogRGlzYWJsZSB0aGUgc3R5
bGVzaGVldCB0aGF0IGNvbnRhaW5zIHRoZSBAdmlld3BvcnQgdG8gdGVzdC4gKi8KKyAgICB0ZXN0
U3R5bGVTaGVldC5kaXNhYmxlZCA9IHRydWU7CisKKyAgICAvKiBJbml0aWFsaXplIGFuIG9iamVj
dCB0byBzdG9yZSB2aWV3cG9ydCB2YWx1ZXMgdG8gYmUgdXNlZCBieSB0aGUgdGVzdAorICAgICAg
IGFzc2VydHMuICovCisgICAgdmFyIHZpZXdwb3J0ID0gbmV3IE9iamVjdCgpOworCisgICAgLyog
QW4gZWxlbWVudCB3aXRoIHRoZSBzYW1lIHNpemUgYXMgdGhlIGluaXRpYWwgY29udGFpbmluZyBi
bG9jay4gKi8KKyAgICB2YXIgdGVzdEVsbSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0ZXN0
Iik7CisKKyAgICAvKiBSZXRyaWV2ZSB0aGUgaW5pdGlhbCB2aWV3cG9ydCB2YWx1ZXMgYmVmb3Jl
IGFwcGx5aW5nIHRoZSBAdmlld3BvcnQgdG8KKyAgICAgICB0ZXN0LiAqLworICAgIHZpZXdwb3J0
LmluaXRpYWxXaWR0aCA9IHRlc3RFbG0ub2Zmc2V0V2lkdGg7CisgICAgdmlld3BvcnQuaW5pdGlh
bEhlaWdodCA9IHRlc3RFbG0ub2Zmc2V0SGVpZ2h0OworICAgIHZpZXdwb3J0LmZvbnRTaXplID0g
cGFyc2VJbnQoZ2V0Q29tcHV0ZWRTdHlsZSh0ZXN0RWxtLCAiIikuZm9udFNpemUpOworCisgICAg
LyogRW5hYmxlIHRoZSBzdHlsZXNoZWV0IHRoYXQgY29udGFpbnMgdGhlIEB2aWV3cG9ydCB0byB0
ZXN0LiAqLworICAgIHRlc3RTdHlsZVNoZWV0LmRpc2FibGVkID0gZmFsc2U7CisKKyAgICAvKiBS
ZXRyaWV2ZSB0aGUgYWN0dWFsIHZpZXdwb3J0IHZhbHVlcyBmb3IgdGhlIHRlc3QuICovCisgICAg
dmlld3BvcnQuYWN0dWFsV2lkdGggPSB0ZXN0RWxtLm9mZnNldFdpZHRoOworICAgIHZpZXdwb3J0
LmFjdHVhbEhlaWdodCA9IHRlc3RFbG0ub2Zmc2V0SGVpZ2h0OworICAgIHZpZXdwb3J0Lnpvb20g
PSB2aWV3cG9ydC5pbml0aWFsV2lkdGggLyB3aW5kb3cuaW5uZXJXaWR0aDsKKworICAgIC8qIENo
ZWNrIHZpZXdwb3J0IHZhbHVlcy4gKi8KKyAgICB0ZXN0LnN0ZXAoZnVuY3Rpb24oKXsKKyAgICAg
ICAgYXNzZXJ0X2VxdWFscyh2aWV3cG9ydC5hY3R1YWxXaWR0aCwgTWF0aC5mbG9vcih2aWV3cG9y
dC5pbml0aWFsV2lkdGgvMikpOworICAgIH0pOworCisgICAgLyogRmluaXNoZWQuIFNob3cgdGhl
IHJlc3VsdHMuICovCisgICAgdGVzdC5kb25lKCk7CisgICAgdGVzdFN0eWxlU2hlZXQuZGlzYWJs
ZWQgPSB0cnVlOworICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJsb2ciKS5zdHlsZS5kaXNw
bGF5ID0gImJsb2NrIjsKKyAgIH0KKyAgXV0+PC9zY3JpcHQ+CisgPC9oZWFkPgorIDxib2R5Pgor
ICA8ZGl2IGlkPSJ0ZXN0Ij4KKyAgIDxkaXYgaWQ9ImxvZyI+PC9kaXY+CisgIDwvZGl2PgorIDwv
Ym9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2NzczMvZGV2aWNlLWFkYXB0
L29wZXJhL2NvbnN0cmFpbi0wMDktZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvY3NzMy9kZXZp
Y2UtYWRhcHQvb3BlcmEvY29uc3RyYWluLTAwOS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uODE3
MzMwYTA3ZGI3YTgxMzQ4YTcxOTBhM2MzYzNhZDU2M2Q0YTA0NQotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL2NzczMvZGV2aWNlLWFkYXB0L29wZXJhL2NvbnN0cmFpbi0wMDktZXhwZWN0
ZWQudHh0CkBAIC0wLDAgKzEsMyBAQAorCitQQVNTIENTUyBUZXN0OiBAdmlld3BvcnQgY29uc3Ry
YWluZWQgLSB3aWR0aCAyMGVtIAorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9jc3MzL2Rldmlj
ZS1hZGFwdC9vcGVyYS9jb25zdHJhaW4tMDA5LnhodG1sIGIvTGF5b3V0VGVzdHMvY3NzMy9kZXZp
Y2UtYWRhcHQvb3BlcmEvY29uc3RyYWluLTAwOS54aHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43NGY5OWQxZGVk
OTBmZTZiMjYxNTAwYWRlMmRlODIyYzZjMjc4ODljCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvY3NzMy9kZXZpY2UtYWRhcHQvb3BlcmEvY29uc3RyYWluLTAwOS54aHRtbApAQCAtMCww
ICsxLDg0IEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCI/PgorPCFET0NU
WVBFIGh0bWwgUFVCTElDICItLy9XM0MvL0RURCBYSFRNTCAxLjAgU3RyaWN0Ly9FTiIgImh0dHA6
Ly93d3cudzMub3JnL1RSL3hodG1sMS9EVEQveGh0bWwxLXN0cmljdC5kdGQiPgorPGh0bWwgeG1s
bnM9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwiPgorIDxoZWFkPgorICA8dGl0bGU+Q1NT
IFRlc3Q6IEB2aWV3cG9ydCBjb25zdHJhaW5lZCAtIHdpZHRoIDIwZW08L3RpdGxlPgorICA8bGlu
ayByZWw9ImF1dGhvciIgdGl0bGU9IlJ1bmUgTGlsbGVzdmVlbiIgaHJlZj0ibWFpbHRvOnJ1bmVA
b3BlcmEuY29tIi8+CisgIDxsaW5rIHJlbD0iaGVscCIgaHJlZj0iaHR0cDovL3d3dy53My5vcmcv
VFIvY3NzLWRldmljZS1hZGFwdC8jY29uc3RyYWluaW5nLXByb2NlZHVyZSIvPgorICA8bWV0YSBu
YW1lPSJmbGFncyIgY29udGVudD0idmlzdWFsIHNjcm9sbCBkb20iIC8+CisgIDxtZXRhIG5hbWU9
ImFzc2VydCIgY29udGVudD0iU2V0dGluZyB3aWR0aCBpbiBAdmlld3BvcnQgdG8gMjBlbSB3aWxs
IHNldCB0aGUgYWN0dWFsIHZpZXdwb3J0IHdpZHRoIHRvIDIwIHRpbWVzIHRoZSBpbml0aWFsIGZv
bnQtc2l6ZS4iLz4KKyAgPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVz
cy5qcyIgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiAvPgorICA8c2NyaXB0IHNyYz0iLi4vLi4vLi4v
cmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIC8+
CisgIDxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyI+PCFbQ0RBVEFbCisgICBib2R5IHsgbWFyZ2luOiAw
OyB9CisgICBodG1sLCBib2R5LCAjdGVzdCB7IHdpZHRoOiAxMDAlOyBoZWlnaHQ6IDEwMCU7IH0K
KyAgICNsb2cgeyBwYWRkaW5nOiAxZW07IGRpc3BsYXk6IG5vbmU7IH0KKyAgIC8qIFJlc2V0IHZp
ZXdwb3J0IHZhbHVlcyB0byBpbml0aWFsIHZhbHVlcyB0byBpZ25vcmUgVUEgc3R5bGVzaGVldC4g
Ki8KKyAgIEAtd2Via2l0LXZpZXdwb3J0IHsKKyAgICB3aWR0aDogYXV0bzsKKyAgICBoZWlnaHQ6
IGF1dG87CisgICAgem9vbTogYXV0bzsKKyAgICBtaW4tem9vbTogYXV0bzsKKyAgICBtYXgtem9v
bTogYXV0bzsKKyAgICB1c2VyLXpvb206IHpvb207CisgICAgb3JpZW50YXRpb246IGF1dG87Cisg
ICAgcmVzb2x1dGlvbjogYXV0bzsKKyAgIH0KKyAgXV0+PC9zdHlsZT4KKyAgPHN0eWxlIHR5cGU9
InRleHQvY3NzIj48IVtDREFUQVsKKyAgIC8qIENTUyBmb3IgdGhlIHRlc3QgYmVsb3cuICovCisg
ICBALXdlYmtpdC12aWV3cG9ydCB7IHdpZHRoOiAyMGVtIH0KKyAgIC8qIFNldCByb290IGVsZW1l
bnQgZm9udC1zaXplIHRvIHNvbWV0aGluZyBkaWZmZXJlbnQgZnJvbSB0aGUgaW5pdGlhbAorICAg
ICAgZm9udC1zaXplIHRvIG1ha2Ugc3VyZSAncmVtJyBhbmQgJ2VtJyBmb3IgQHZpZXdwb3J0IGlz
IGJhc2VkIG9uIHRoZQorICAgICAgaW5pdGlhbCBmb250LXNpemUsIG5vdCB0aGUgcm9vdCBlbGVt
ZW50IGZvbnQtc2l6ZS4gKi8KKyAgIGh0bWwgeyBmb250LXNpemU6IDJyZW07IH0KKyAgIGJvZHkg
eyBmb250LXNpemU6IDAuNXJlbTsgfQorICBdXT48L3N0eWxlPgorICA8c2NyaXB0IHR5cGU9InRl
eHQvamF2YXNjcmlwdCI+PCFbQ0RBVEFbCisgICB2YXIgdGVzdCA9IGFzeW5jX3Rlc3QoIkNTUyBU
ZXN0OiBAdmlld3BvcnQgY29uc3RyYWluZWQgLSB3aWR0aCAyMGVtIik7CisgICB3aW5kb3cub25s
b2FkID0gZnVuY3Rpb24oKXsKKworICAgIHZhciB0ZXN0U3R5bGVTaGVldCA9IGRvY3VtZW50LnN0
eWxlU2hlZXRzLml0ZW0oMSk7CisKKyAgICAvKiBEaXNhYmxlIHRoZSBzdHlsZXNoZWV0IHRoYXQg
Y29udGFpbnMgdGhlIEB2aWV3cG9ydCB0byB0ZXN0LiAqLworICAgIHRlc3RTdHlsZVNoZWV0LmRp
c2FibGVkID0gdHJ1ZTsKKworICAgIC8qIEluaXRpYWxpemUgYW4gb2JqZWN0IHRvIHN0b3JlIHZp
ZXdwb3J0IHZhbHVlcyB0byBiZSB1c2VkIGJ5IHRoZSB0ZXN0CisgICAgICAgYXNzZXJ0cy4gKi8K
KyAgICB2YXIgdmlld3BvcnQgPSBuZXcgT2JqZWN0KCk7CisKKyAgICAvKiBBbiBlbGVtZW50IHdp
dGggdGhlIHNhbWUgc2l6ZSBhcyB0aGUgaW5pdGlhbCBjb250YWluaW5nIGJsb2NrLiAqLworICAg
IHZhciB0ZXN0RWxtID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRlc3QiKTsKKworICAgIC8q
IFJldHJpZXZlIHRoZSBpbml0aWFsIHZpZXdwb3J0IHZhbHVlcyBiZWZvcmUgYXBwbHlpbmcgdGhl
IEB2aWV3cG9ydCB0bworICAgICAgIHRlc3QuICovCisgICAgdmlld3BvcnQuaW5pdGlhbFdpZHRo
ID0gdGVzdEVsbS5vZmZzZXRXaWR0aDsKKyAgICB2aWV3cG9ydC5pbml0aWFsSGVpZ2h0ID0gdGVz
dEVsbS5vZmZzZXRIZWlnaHQ7CisgICAgdmlld3BvcnQuZm9udFNpemUgPSBwYXJzZUludChnZXRD
b21wdXRlZFN0eWxlKHRlc3RFbG0sICIiKS5mb250U2l6ZSk7CisKKyAgICAvKiBFbmFibGUgdGhl
IHN0eWxlc2hlZXQgdGhhdCBjb250YWlucyB0aGUgQHZpZXdwb3J0IHRvIHRlc3QuICovCisgICAg
dGVzdFN0eWxlU2hlZXQuZGlzYWJsZWQgPSBmYWxzZTsKKworICAgIC8qIFJldHJpZXZlIHRoZSBh
Y3R1YWwgdmlld3BvcnQgdmFsdWVzIGZvciB0aGUgdGVzdC4gKi8KKyAgICB2aWV3cG9ydC5hY3R1
YWxXaWR0aCA9IHRlc3RFbG0ub2Zmc2V0V2lkdGg7CisgICAgdmlld3BvcnQuYWN0dWFsSGVpZ2h0
ID0gdGVzdEVsbS5vZmZzZXRIZWlnaHQ7CisgICAgdmlld3BvcnQuem9vbSA9IHZpZXdwb3J0Lmlu
aXRpYWxXaWR0aCAvIHdpbmRvdy5pbm5lcldpZHRoOworCisgICAgLyogQ2hlY2sgdmlld3BvcnQg
dmFsdWVzLiAqLworICAgIHRlc3Quc3RlcChmdW5jdGlvbigpeworICAgICAgICBhc3NlcnRfZXF1
YWxzKHZpZXdwb3J0LmFjdHVhbFdpZHRoLCAyMCp2aWV3cG9ydC5mb250U2l6ZSk7CisgICAgfSk7
CisKKyAgICAvKiBGaW5pc2hlZC4gU2hvdyB0aGUgcmVzdWx0cy4gKi8KKyAgICB0ZXN0LmRvbmUo
KTsKKyAgICB0ZXN0U3R5bGVTaGVldC5kaXNhYmxlZCA9IHRydWU7CisgICAgZG9jdW1lbnQuZ2V0
RWxlbWVudEJ5SWQoImxvZyIpLnN0eWxlLmRpc3BsYXkgPSAiYmxvY2siOworICAgfQorICBdXT48
L3NjcmlwdD4KKyA8L2hlYWQ+CisgPGJvZHk+CisgIDxkaXYgaWQ9InRlc3QiPgorICAgPGRpdiBp
ZD0ibG9nIj48L2Rpdj4KKyAgPC9kaXY+CisgPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvY3NzMy9kZXZpY2UtYWRhcHQvb3BlcmEvY29uc3RyYWluLTAxMC1leHBlY3Rl
ZC50eHQgYi9MYXlvdXRUZXN0cy9jc3MzL2RldmljZS1hZGFwdC9vcGVyYS9jb25zdHJhaW4tMDEw
LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40MTMyNjRhOWZiZGQ2ZDNhYzRmYTliZmVlY2Y2NDU0
NGZiNGQyMmNjCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvY3NzMy9kZXZpY2UtYWRh
cHQvb3BlcmEvY29uc3RyYWluLTAxMC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwzIEBACisKK1BB
U1MgQ1NTIFRlc3Q6IEB2aWV3cG9ydCBjb25zdHJhaW5lZCAtIHdpZHRoIDIwcmVtIAorCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9jc3MzL2RldmljZS1hZGFwdC9vcGVyYS9jb25zdHJhaW4tMDEw
LnhodG1sIGIvTGF5b3V0VGVzdHMvY3NzMy9kZXZpY2UtYWRhcHQvb3BlcmEvY29uc3RyYWluLTAx
MC54aHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi4wNDgwMmRmZDBkNDNlOGZmNGZiMWQ0ODY3MDYxYWQ1NWY5ZWI4
ZjMwCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvY3NzMy9kZXZpY2UtYWRhcHQvb3Bl
cmEvY29uc3RyYWluLTAxMC54aHRtbApAQCAtMCwwICsxLDg0IEBACis8P3htbCB2ZXJzaW9uPSIx
LjAiIGVuY29kaW5nPSJVVEYtOCI/PgorPCFET0NUWVBFIGh0bWwgUFVCTElDICItLy9XM0MvL0RU
RCBYSFRNTCAxLjAgU3RyaWN0Ly9FTiIgImh0dHA6Ly93d3cudzMub3JnL1RSL3hodG1sMS9EVEQv
eGh0bWwxLXN0cmljdC5kdGQiPgorPGh0bWwgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkv
eGh0bWwiPgorIDxoZWFkPgorICA8dGl0bGU+Q1NTIFRlc3Q6IEB2aWV3cG9ydCBjb25zdHJhaW5l
ZCAtIHdpZHRoIDIwcmVtPC90aXRsZT4KKyAgPGxpbmsgcmVsPSJhdXRob3IiIHRpdGxlPSJSdW5l
IExpbGxlc3ZlZW4iIGhyZWY9Im1haWx0bzpydW5lQG9wZXJhLmNvbSIvPgorICA8bGluayByZWw9
ImhlbHAiIGhyZWY9Imh0dHA6Ly93d3cudzMub3JnL1RSL2Nzcy1kZXZpY2UtYWRhcHQvI2NvbnN0
cmFpbmluZy1wcm9jZWR1cmUiLz4KKyAgPG1ldGEgbmFtZT0iZmxhZ3MiIGNvbnRlbnQ9InZpc3Vh
bCBzY3JvbGwgZG9tIiAvPgorICA8bWV0YSBuYW1lPSJhc3NlcnQiIGNvbnRlbnQ9IlNldHRpbmcg
d2lkdGggaW4gQHZpZXdwb3J0IHRvIDIwcmVtIHdpbGwgc2V0IHRoZSBhY3R1YWwgdmlld3BvcnQg
d2lkdGggdG8gMjAgdGltZXMgdGhlIGluaXRpYWwgZm9udC1zaXplLiIvPgorICA8c2NyaXB0IHNy
Yz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIiB0eXBlPSJ0ZXh0L2phdmFzY3Jp
cHQiIC8+CisgIDxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBv
cnQuanMiIHR5cGU9InRleHQvamF2YXNjcmlwdCIgLz4KKyAgPHN0eWxlIHR5cGU9InRleHQvY3Nz
Ij48IVtDREFUQVsKKyAgIGJvZHkgeyBtYXJnaW46IDA7IH0KKyAgIGh0bWwsIGJvZHksICN0ZXN0
IHsgd2lkdGg6IDEwMCU7IGhlaWdodDogMTAwJTsgfQorICAgI2xvZyB7IHBhZGRpbmc6IDFlbTsg
ZGlzcGxheTogbm9uZTsgfQorICAgLyogUmVzZXQgdmlld3BvcnQgdmFsdWVzIHRvIGluaXRpYWwg
dmFsdWVzIHRvIGlnbm9yZSBVQSBzdHlsZXNoZWV0LiAqLworICAgQC13ZWJraXQtdmlld3BvcnQg
eworICAgIHdpZHRoOiBhdXRvOworICAgIGhlaWdodDogYXV0bzsKKyAgICB6b29tOiBhdXRvOwor
ICAgIG1pbi16b29tOiBhdXRvOworICAgIG1heC16b29tOiBhdXRvOworICAgIHVzZXItem9vbTog
em9vbTsKKyAgICBvcmllbnRhdGlvbjogYXV0bzsKKyAgICByZXNvbHV0aW9uOiBhdXRvOworICAg
fQorICBdXT48L3N0eWxlPgorICA8c3R5bGUgdHlwZT0idGV4dC9jc3MiPjwhW0NEQVRBWworICAg
LyogQ1NTIGZvciB0aGUgdGVzdCBiZWxvdy4gKi8KKyAgIEAtd2Via2l0LXZpZXdwb3J0IHsgd2lk
dGg6IDIwcmVtIH0KKyAgIC8qIFNldCByb290IGVsZW1lbnQgZm9udC1zaXplIHRvIHNvbWV0aGlu
ZyBkaWZmZXJlbnQgZnJvbSB0aGUgaW5pdGlhbAorICAgICAgZm9udC1zaXplIHRvIG1ha2Ugc3Vy
ZSAncmVtJyBhbmQgJ2VtJyBmb3IgQHZpZXdwb3J0IGlzIGJhc2VkIG9uIHRoZQorICAgICAgaW5p
dGlhbCBmb250LXNpemUsIG5vdCB0aGUgcm9vdCBlbGVtZW50IGZvbnQtc2l6ZS4gKi8KKyAgIGh0
bWwgeyBmb250LXNpemU6IDJyZW07IH0KKyAgIGJvZHkgeyBmb250LXNpemU6IDAuNXJlbTsgfQor
ICBdXT48L3N0eWxlPgorICA8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+PCFbQ0RBVEFb
CisgICB2YXIgdGVzdCA9IGFzeW5jX3Rlc3QoIkNTUyBUZXN0OiBAdmlld3BvcnQgY29uc3RyYWlu
ZWQgLSB3aWR0aCAyMHJlbSIpOworICAgd2luZG93Lm9ubG9hZCA9IGZ1bmN0aW9uKCl7CisKKyAg
ICB2YXIgdGVzdFN0eWxlU2hlZXQgPSBkb2N1bWVudC5zdHlsZVNoZWV0cy5pdGVtKDEpOworCisg
ICAgLyogRGlzYWJsZSB0aGUgc3R5bGVzaGVldCB0aGF0IGNvbnRhaW5zIHRoZSBAdmlld3BvcnQg
dG8gdGVzdC4gKi8KKyAgICB0ZXN0U3R5bGVTaGVldC5kaXNhYmxlZCA9IHRydWU7CisKKyAgICAv
KiBJbml0aWFsaXplIGFuIG9iamVjdCB0byBzdG9yZSB2aWV3cG9ydCB2YWx1ZXMgdG8gYmUgdXNl
ZCBieSB0aGUgdGVzdAorICAgICAgIGFzc2VydHMuICovCisgICAgdmFyIHZpZXdwb3J0ID0gbmV3
IE9iamVjdCgpOworCisgICAgLyogQW4gZWxlbWVudCB3aXRoIHRoZSBzYW1lIHNpemUgYXMgdGhl
IGluaXRpYWwgY29udGFpbmluZyBibG9jay4gKi8KKyAgICB2YXIgdGVzdEVsbSA9IGRvY3VtZW50
LmdldEVsZW1lbnRCeUlkKCJ0ZXN0Iik7CisKKyAgICAvKiBSZXRyaWV2ZSB0aGUgaW5pdGlhbCB2
aWV3cG9ydCB2YWx1ZXMgYmVmb3JlIGFwcGx5aW5nIHRoZSBAdmlld3BvcnQgdG8KKyAgICAgICB0
ZXN0LiAqLworICAgIHZpZXdwb3J0LmluaXRpYWxXaWR0aCA9IHRlc3RFbG0ub2Zmc2V0V2lkdGg7
CisgICAgdmlld3BvcnQuaW5pdGlhbEhlaWdodCA9IHRlc3RFbG0ub2Zmc2V0SGVpZ2h0OworICAg
IHZpZXdwb3J0LmZvbnRTaXplID0gcGFyc2VJbnQoZ2V0Q29tcHV0ZWRTdHlsZSh0ZXN0RWxtLCAi
IikuZm9udFNpemUpOworCisgICAgLyogRW5hYmxlIHRoZSBzdHlsZXNoZWV0IHRoYXQgY29udGFp
bnMgdGhlIEB2aWV3cG9ydCB0byB0ZXN0LiAqLworICAgIHRlc3RTdHlsZVNoZWV0LmRpc2FibGVk
ID0gZmFsc2U7CisKKyAgICAvKiBSZXRyaWV2ZSB0aGUgYWN0dWFsIHZpZXdwb3J0IHZhbHVlcyBm
b3IgdGhlIHRlc3QuICovCisgICAgdmlld3BvcnQuYWN0dWFsV2lkdGggPSB0ZXN0RWxtLm9mZnNl
dFdpZHRoOworICAgIHZpZXdwb3J0LmFjdHVhbEhlaWdodCA9IHRlc3RFbG0ub2Zmc2V0SGVpZ2h0
OworICAgIHZpZXdwb3J0Lnpvb20gPSB2aWV3cG9ydC5pbml0aWFsV2lkdGggLyB3aW5kb3cuaW5u
ZXJXaWR0aDsKKworICAgIC8qIENoZWNrIHZpZXdwb3J0IHZhbHVlcy4gKi8KKyAgICB0ZXN0LnN0
ZXAoZnVuY3Rpb24oKXsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyh2aWV3cG9ydC5hY3R1YWxXaWR0
aCwgMjAqdmlld3BvcnQuZm9udFNpemUpOworICAgIH0pOworCisgICAgLyogRmluaXNoZWQuIFNo
b3cgdGhlIHJlc3VsdHMuICovCisgICAgdGVzdC5kb25lKCk7CisgICAgdGVzdFN0eWxlU2hlZXQu
ZGlzYWJsZWQgPSB0cnVlOworICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJsb2ciKS5zdHls
ZS5kaXNwbGF5ID0gImJsb2NrIjsKKyAgIH0KKyAgXV0+PC9zY3JpcHQ+CisgPC9oZWFkPgorIDxi
b2R5PgorICA8ZGl2IGlkPSJ0ZXN0Ij4KKyAgIDxkaXYgaWQ9ImxvZyI+PC9kaXY+CisgIDwvZGl2
PgorIDwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2NzczMvZGV2aWNl
LWFkYXB0L29wZXJhL2NvbnN0cmFpbi0wMTEtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvY3Nz
My9kZXZpY2UtYWRhcHQvb3BlcmEvY29uc3RyYWluLTAxMS1leHBlY3RlZC50eHQKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uYjc5ZjczZGFhNGExMTA3ZDMwMjc4ODFhYzRjY2FkNzdiZDhmZDI1MAotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL2NzczMvZGV2aWNlLWFkYXB0L29wZXJhL2NvbnN0cmFpbi0wMTEt
ZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMyBAQAorCitQQVNTIENTUyBUZXN0OiBAdmlld3BvcnQg
Y29uc3RyYWluZWQgLSB3aWR0aCBmcm9tIHpvb206IDIwMCUgCisKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2NzczMvZGV2aWNlLWFkYXB0L29wZXJhL2NvbnN0cmFpbi0wMTEueGh0bWwgYi9MYXlv
dXRUZXN0cy9jc3MzL2RldmljZS1hZGFwdC9vcGVyYS9jb25zdHJhaW4tMDExLnhodG1sCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLjMyNjg1NWM0MzkwYzdhZTQ0ZDc1NDU2YzIzYTc2YjAzN2QxM2IwNDUKLS0tIC9kZXYv
bnVsbAorKysgYi9MYXlvdXRUZXN0cy9jc3MzL2RldmljZS1hZGFwdC9vcGVyYS9jb25zdHJhaW4t
MDExLnhodG1sCkBAIC0wLDAgKzEsODQgQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9
IlVURi04Ij8+Cis8IURPQ1RZUEUgaHRtbCBQVUJMSUMgIi0vL1czQy8vRFREIFhIVE1MIDEuMCBT
dHJpY3QvL0VOIiAiaHR0cDovL3d3dy53My5vcmcvVFIveGh0bWwxL0RURC94aHRtbDEtc3RyaWN0
LmR0ZCI+Cis8aHRtbCB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCI+CisgPGhl
YWQ+CisgIDx0aXRsZT5DU1MgVGVzdDogQHZpZXdwb3J0IGNvbnN0cmFpbmVkIC0gd2lkdGggZnJv
bSB6b29tOiAyMDAlPC90aXRsZT4KKyAgPGxpbmsgcmVsPSJhdXRob3IiIHRpdGxlPSJSdW5lIExp
bGxlc3ZlZW4iIGhyZWY9Im1haWx0bzpydW5lQG9wZXJhLmNvbSIvPgorICA8bGluayByZWw9Imhl
bHAiIGhyZWY9Imh0dHA6Ly93d3cudzMub3JnL1RSL2Nzcy1kZXZpY2UtYWRhcHQvI2NvbnN0cmFp
bmluZy1wcm9jZWR1cmUiLz4KKyAgPG1ldGEgbmFtZT0iZmxhZ3MiIGNvbnRlbnQ9InZpc3VhbCBz
Y3JvbGwgZG9tIiAvPgorICA8bWV0YSBuYW1lPSJhc3NlcnQiIGNvbnRlbnQ9IlNldHRpbmcgem9v
bSBpbiBAdmlld3BvcnQgdG8gMjAwJSB3aWxsIHNldCB0aGUgYWN0dWFsIHZpZXdwb3J0IHdpZHRo
IHRvIGhhbGYgdGhlIGluaXRpYWwtd2lkdGguIi8+CisgIDxzY3JpcHQgc3JjPSIuLi8uLi8uLi9y
ZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiIHR5cGU9InRleHQvamF2YXNjcmlwdCIgLz4KKyAgPHNj
cmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyIgdHlwZT0i
dGV4dC9qYXZhc2NyaXB0IiAvPgorICA8c3R5bGUgdHlwZT0idGV4dC9jc3MiPjwhW0NEQVRBWwor
ICAgYm9keSB7IG1hcmdpbjogMDsgfQorICAgaHRtbCwgYm9keSwgI3Rlc3QgeyB3aWR0aDogMTAw
JTsgaGVpZ2h0OiAxMDAlOyB9CisgICAjbG9nIHsgcGFkZGluZzogMWVtOyBkaXNwbGF5OiBub25l
OyB9CisgICAvKiBSZXNldCB2aWV3cG9ydCB2YWx1ZXMgdG8gaW5pdGlhbCB2YWx1ZXMgdG8gaWdu
b3JlIFVBIHN0eWxlc2hlZXQuICovCisgICBALXdlYmtpdC12aWV3cG9ydCB7CisgICAgd2lkdGg6
IGF1dG87CisgICAgaGVpZ2h0OiBhdXRvOworICAgIHpvb206IGF1dG87CisgICAgbWluLXpvb206
IGF1dG87CisgICAgbWF4LXpvb206IGF1dG87CisgICAgdXNlci16b29tOiB6b29tOworICAgIG9y
aWVudGF0aW9uOiBhdXRvOworICAgIHJlc29sdXRpb246IGF1dG87CisgICB9CisgIF1dPjwvc3R5
bGU+CisgIDxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyI+PCFbQ0RBVEFbCisgICAvKiBDU1MgZm9yIHRo
ZSB0ZXN0IGJlbG93LiAqLworICAgQC13ZWJraXQtdmlld3BvcnQgeyB6b29tOiAyMDAlIH0KKyAg
IC8qIFNldCByb290IGVsZW1lbnQgZm9udC1zaXplIHRvIHNvbWV0aGluZyBkaWZmZXJlbnQgZnJv
bSB0aGUgaW5pdGlhbAorICAgICAgZm9udC1zaXplIHRvIG1ha2Ugc3VyZSAncmVtJyBhbmQgJ2Vt
JyBmb3IgQHZpZXdwb3J0IGlzIGJhc2VkIG9uIHRoZQorICAgICAgaW5pdGlhbCBmb250LXNpemUs
IG5vdCB0aGUgcm9vdCBlbGVtZW50IGZvbnQtc2l6ZS4gKi8KKyAgIGh0bWwgeyBmb250LXNpemU6
IDJyZW07IH0KKyAgIGJvZHkgeyBmb250LXNpemU6IDAuNXJlbTsgfQorICBdXT48L3N0eWxlPgor
ICA8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+PCFbQ0RBVEFbCisgICB2YXIgdGVzdCA9
IGFzeW5jX3Rlc3QoIkNTUyBUZXN0OiBAdmlld3BvcnQgY29uc3RyYWluZWQgLSB3aWR0aCBmcm9t
IHpvb206IDIwMCUiKTsKKyAgIHdpbmRvdy5vbmxvYWQgPSBmdW5jdGlvbigpeworCisgICAgdmFy
IHRlc3RTdHlsZVNoZWV0ID0gZG9jdW1lbnQuc3R5bGVTaGVldHMuaXRlbSgxKTsKKworICAgIC8q
IERpc2FibGUgdGhlIHN0eWxlc2hlZXQgdGhhdCBjb250YWlucyB0aGUgQHZpZXdwb3J0IHRvIHRl
c3QuICovCisgICAgdGVzdFN0eWxlU2hlZXQuZGlzYWJsZWQgPSB0cnVlOworCisgICAgLyogSW5p
dGlhbGl6ZSBhbiBvYmplY3QgdG8gc3RvcmUgdmlld3BvcnQgdmFsdWVzIHRvIGJlIHVzZWQgYnkg
dGhlIHRlc3QKKyAgICAgICBhc3NlcnRzLiAqLworICAgIHZhciB2aWV3cG9ydCA9IG5ldyBPYmpl
Y3QoKTsKKworICAgIC8qIEFuIGVsZW1lbnQgd2l0aCB0aGUgc2FtZSBzaXplIGFzIHRoZSBpbml0
aWFsIGNvbnRhaW5pbmcgYmxvY2suICovCisgICAgdmFyIHRlc3RFbG0gPSBkb2N1bWVudC5nZXRF
bGVtZW50QnlJZCgidGVzdCIpOworCisgICAgLyogUmV0cmlldmUgdGhlIGluaXRpYWwgdmlld3Bv
cnQgdmFsdWVzIGJlZm9yZSBhcHBseWluZyB0aGUgQHZpZXdwb3J0IHRvCisgICAgICAgdGVzdC4g
Ki8KKyAgICB2aWV3cG9ydC5pbml0aWFsV2lkdGggPSB0ZXN0RWxtLm9mZnNldFdpZHRoOworICAg
IHZpZXdwb3J0LmluaXRpYWxIZWlnaHQgPSB0ZXN0RWxtLm9mZnNldEhlaWdodDsKKyAgICB2aWV3
cG9ydC5mb250U2l6ZSA9IHBhcnNlSW50KGdldENvbXB1dGVkU3R5bGUodGVzdEVsbSwgIiIpLmZv
bnRTaXplKTsKKworICAgIC8qIEVuYWJsZSB0aGUgc3R5bGVzaGVldCB0aGF0IGNvbnRhaW5zIHRo
ZSBAdmlld3BvcnQgdG8gdGVzdC4gKi8KKyAgICB0ZXN0U3R5bGVTaGVldC5kaXNhYmxlZCA9IGZh
bHNlOworCisgICAgLyogUmV0cmlldmUgdGhlIGFjdHVhbCB2aWV3cG9ydCB2YWx1ZXMgZm9yIHRo
ZSB0ZXN0LiAqLworICAgIHZpZXdwb3J0LmFjdHVhbFdpZHRoID0gdGVzdEVsbS5vZmZzZXRXaWR0
aDsKKyAgICB2aWV3cG9ydC5hY3R1YWxIZWlnaHQgPSB0ZXN0RWxtLm9mZnNldEhlaWdodDsKKyAg
ICB2aWV3cG9ydC56b29tID0gdmlld3BvcnQuaW5pdGlhbFdpZHRoIC8gd2luZG93LmlubmVyV2lk
dGg7CisKKyAgICAvKiBDaGVjayB2aWV3cG9ydCB2YWx1ZXMuICovCisgICAgdGVzdC5zdGVwKGZ1
bmN0aW9uKCl7CisgICAgICAgIGFzc2VydF9lcXVhbHModmlld3BvcnQuYWN0dWFsV2lkdGgsIE1h
dGguZmxvb3Iodmlld3BvcnQuaW5pdGlhbFdpZHRoLzIpKTsKKyAgICB9KTsKKworICAgIC8qIEZp
bmlzaGVkLiBTaG93IHRoZSByZXN1bHRzLiAqLworICAgIHRlc3QuZG9uZSgpOworICAgIHRlc3RT
dHlsZVNoZWV0LmRpc2FibGVkID0gdHJ1ZTsKKyAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgi
bG9nIikuc3R5bGUuZGlzcGxheSA9ICJibG9jayI7CisgICB9CisgIF1dPjwvc2NyaXB0PgorIDwv
aGVhZD4KKyA8Ym9keT4KKyAgPGRpdiBpZD0idGVzdCI+CisgICA8ZGl2IGlkPSJsb2ciPjwvZGl2
PgorICA8L2Rpdj4KKyA8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9j
c3MzL2RldmljZS1hZGFwdC9vcGVyYS9jb25zdHJhaW4tMDEyLWV4cGVjdGVkLnR4dCBiL0xheW91
dFRlc3RzL2NzczMvZGV2aWNlLWFkYXB0L29wZXJhL2NvbnN0cmFpbi0wMTItZXhwZWN0ZWQudHh0
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLjdlNWRhMmQ4NTdkNDM2MDg5ZTlkMTgwMGZiZTlhOTQ2Yzk4NTA3N2IKLS0t
IC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9jc3MzL2RldmljZS1hZGFwdC9vcGVyYS9jb25z
dHJhaW4tMDEyLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDMgQEAKKworUEFTUyBDU1MgVGVzdDog
QHZpZXdwb3J0IGNvbnN0cmFpbmVkIC0gbWluLXpvb20gbm90IGFmZmVjdGluZyB3aWR0aC4gCisK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2NzczMvZGV2aWNlLWFkYXB0L29wZXJhL2NvbnN0cmFp
bi0wMTIueGh0bWwgYi9MYXlvdXRUZXN0cy9jc3MzL2RldmljZS1hZGFwdC9vcGVyYS9jb25zdHJh
aW4tMDEyLnhodG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjhlMzRkM2I5NmM4MTNkNzhlMmQ2ODYzMDRlNDYyMjdi
M2UwYmVmZmYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9jc3MzL2RldmljZS1hZGFw
dC9vcGVyYS9jb25zdHJhaW4tMDEyLnhodG1sCkBAIC0wLDAgKzEsODQgQEAKKzw/eG1sIHZlcnNp
b249IjEuMCIgZW5jb2Rpbmc9IlVURi04Ij8+Cis8IURPQ1RZUEUgaHRtbCBQVUJMSUMgIi0vL1cz
Qy8vRFREIFhIVE1MIDEuMCBTdHJpY3QvL0VOIiAiaHR0cDovL3d3dy53My5vcmcvVFIveGh0bWwx
L0RURC94aHRtbDEtc3RyaWN0LmR0ZCI+Cis8aHRtbCB4bWxucz0iaHR0cDovL3d3dy53My5vcmcv
MTk5OS94aHRtbCI+CisgPGhlYWQ+CisgIDx0aXRsZT5DU1MgVGVzdDogQHZpZXdwb3J0IGNvbnN0
cmFpbmVkIC0gbWluLXpvb20gbm90IGFmZmVjdGluZyB3aWR0aC48L3RpdGxlPgorICA8bGluayBy
ZWw9ImF1dGhvciIgdGl0bGU9IlJ1bmUgTGlsbGVzdmVlbiIgaHJlZj0ibWFpbHRvOnJ1bmVAb3Bl
cmEuY29tIi8+CisgIDxsaW5rIHJlbD0iaGVscCIgaHJlZj0iaHR0cDovL3d3dy53My5vcmcvVFIv
Y3NzLWRldmljZS1hZGFwdC8jY29uc3RyYWluaW5nLXByb2NlZHVyZSIvPgorICA8bWV0YSBuYW1l
PSJmbGFncyIgY29udGVudD0idmlzdWFsIHNjcm9sbCBkb20iIC8+CisgIDxtZXRhIG5hbWU9ImFz
c2VydCIgY29udGVudD0iU2V0dGluZyBtaW4tem9vbSBpbiBAdmlld3BvcnQgdG8gMjAwJSB3aWxs
IG5vdCBhZmZlY3Qgd2lkdGggaWYgem9vbSBpcyBhdXRvLiIvPgorICA8c2NyaXB0IHNyYz0iLi4v
Li4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIC8+
CisgIDxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMi
IHR5cGU9InRleHQvamF2YXNjcmlwdCIgLz4KKyAgPHN0eWxlIHR5cGU9InRleHQvY3NzIj48IVtD
REFUQVsKKyAgIGJvZHkgeyBtYXJnaW46IDA7IH0KKyAgIGh0bWwsIGJvZHksICN0ZXN0IHsgd2lk
dGg6IDEwMCU7IGhlaWdodDogMTAwJTsgfQorICAgI2xvZyB7IHBhZGRpbmc6IDFlbTsgZGlzcGxh
eTogbm9uZTsgfQorICAgLyogUmVzZXQgdmlld3BvcnQgdmFsdWVzIHRvIGluaXRpYWwgdmFsdWVz
IHRvIGlnbm9yZSBVQSBzdHlsZXNoZWV0LiAqLworICAgQC13ZWJraXQtdmlld3BvcnQgeworICAg
IHdpZHRoOiBhdXRvOworICAgIGhlaWdodDogYXV0bzsKKyAgICB6b29tOiBhdXRvOworICAgIG1p
bi16b29tOiBhdXRvOworICAgIG1heC16b29tOiBhdXRvOworICAgIHVzZXItem9vbTogem9vbTsK
KyAgICBvcmllbnRhdGlvbjogYXV0bzsKKyAgICByZXNvbHV0aW9uOiBhdXRvOworICAgfQorICBd
XT48L3N0eWxlPgorICA8c3R5bGUgdHlwZT0idGV4dC9jc3MiPjwhW0NEQVRBWworICAgLyogQ1NT
IGZvciB0aGUgdGVzdCBiZWxvdy4gKi8KKyAgIEAtd2Via2l0LXZpZXdwb3J0IHsgbWluLXpvb206
IDIwMCUgfQorICAgLyogU2V0IHJvb3QgZWxlbWVudCBmb250LXNpemUgdG8gc29tZXRoaW5nIGRp
ZmZlcmVudCBmcm9tIHRoZSBpbml0aWFsCisgICAgICBmb250LXNpemUgdG8gbWFrZSBzdXJlICdy
ZW0nIGFuZCAnZW0nIGZvciBAdmlld3BvcnQgaXMgYmFzZWQgb24gdGhlCisgICAgICBpbml0aWFs
IGZvbnQtc2l6ZSwgbm90IHRoZSByb290IGVsZW1lbnQgZm9udC1zaXplLiAqLworICAgaHRtbCB7
IGZvbnQtc2l6ZTogMnJlbTsgfQorICAgYm9keSB7IGZvbnQtc2l6ZTogMC41cmVtOyB9CisgIF1d
Pjwvc3R5bGU+CisgIDxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij48IVtDREFUQVsKKyAg
IHZhciB0ZXN0ID0gYXN5bmNfdGVzdCgiQ1NTIFRlc3Q6IEB2aWV3cG9ydCBjb25zdHJhaW5lZCAt
IG1pbi16b29tIG5vdCBhZmZlY3Rpbmcgd2lkdGguIik7CisgICB3aW5kb3cub25sb2FkID0gZnVu
Y3Rpb24oKXsKKworICAgIHZhciB0ZXN0U3R5bGVTaGVldCA9IGRvY3VtZW50LnN0eWxlU2hlZXRz
Lml0ZW0oMSk7CisKKyAgICAvKiBEaXNhYmxlIHRoZSBzdHlsZXNoZWV0IHRoYXQgY29udGFpbnMg
dGhlIEB2aWV3cG9ydCB0byB0ZXN0LiAqLworICAgIHRlc3RTdHlsZVNoZWV0LmRpc2FibGVkID0g
dHJ1ZTsKKworICAgIC8qIEluaXRpYWxpemUgYW4gb2JqZWN0IHRvIHN0b3JlIHZpZXdwb3J0IHZh
bHVlcyB0byBiZSB1c2VkIGJ5IHRoZSB0ZXN0CisgICAgICAgYXNzZXJ0cy4gKi8KKyAgICB2YXIg
dmlld3BvcnQgPSBuZXcgT2JqZWN0KCk7CisKKyAgICAvKiBBbiBlbGVtZW50IHdpdGggdGhlIHNh
bWUgc2l6ZSBhcyB0aGUgaW5pdGlhbCBjb250YWluaW5nIGJsb2NrLiAqLworICAgIHZhciB0ZXN0
RWxtID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRlc3QiKTsKKworICAgIC8qIFJldHJpZXZl
IHRoZSBpbml0aWFsIHZpZXdwb3J0IHZhbHVlcyBiZWZvcmUgYXBwbHlpbmcgdGhlIEB2aWV3cG9y
dCB0bworICAgICAgIHRlc3QuICovCisgICAgdmlld3BvcnQuaW5pdGlhbFdpZHRoID0gdGVzdEVs
bS5vZmZzZXRXaWR0aDsKKyAgICB2aWV3cG9ydC5pbml0aWFsSGVpZ2h0ID0gdGVzdEVsbS5vZmZz
ZXRIZWlnaHQ7CisgICAgdmlld3BvcnQuZm9udFNpemUgPSBwYXJzZUludChnZXRDb21wdXRlZFN0
eWxlKHRlc3RFbG0sICIiKS5mb250U2l6ZSk7CisKKyAgICAvKiBFbmFibGUgdGhlIHN0eWxlc2hl
ZXQgdGhhdCBjb250YWlucyB0aGUgQHZpZXdwb3J0IHRvIHRlc3QuICovCisgICAgdGVzdFN0eWxl
U2hlZXQuZGlzYWJsZWQgPSBmYWxzZTsKKworICAgIC8qIFJldHJpZXZlIHRoZSBhY3R1YWwgdmll
d3BvcnQgdmFsdWVzIGZvciB0aGUgdGVzdC4gKi8KKyAgICB2aWV3cG9ydC5hY3R1YWxXaWR0aCA9
IHRlc3RFbG0ub2Zmc2V0V2lkdGg7CisgICAgdmlld3BvcnQuYWN0dWFsSGVpZ2h0ID0gdGVzdEVs
bS5vZmZzZXRIZWlnaHQ7CisgICAgdmlld3BvcnQuem9vbSA9IHZpZXdwb3J0LmluaXRpYWxXaWR0
aCAvIHdpbmRvdy5pbm5lcldpZHRoOworCisgICAgLyogQ2hlY2sgdmlld3BvcnQgdmFsdWVzLiAq
LworICAgIHRlc3Quc3RlcChmdW5jdGlvbigpeworICAgICAgICBhc3NlcnRfZXF1YWxzKHZpZXdw
b3J0LmFjdHVhbFdpZHRoLCB2aWV3cG9ydC5pbml0aWFsV2lkdGgpOworICAgIH0pOworCisgICAg
LyogRmluaXNoZWQuIFNob3cgdGhlIHJlc3VsdHMuICovCisgICAgdGVzdC5kb25lKCk7CisgICAg
dGVzdFN0eWxlU2hlZXQuZGlzYWJsZWQgPSB0cnVlOworICAgIGRvY3VtZW50LmdldEVsZW1lbnRC
eUlkKCJsb2ciKS5zdHlsZS5kaXNwbGF5ID0gImJsb2NrIjsKKyAgIH0KKyAgXV0+PC9zY3JpcHQ+
CisgPC9oZWFkPgorIDxib2R5PgorICA8ZGl2IGlkPSJ0ZXN0Ij4KKyAgIDxkaXYgaWQ9ImxvZyI+
PC9kaXY+CisgIDwvZGl2PgorIDwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2NzczMvZGV2aWNlLWFkYXB0L29wZXJhL2NvbnN0cmFpbi0wMTMtZXhwZWN0ZWQudHh0IGIv
TGF5b3V0VGVzdHMvY3NzMy9kZXZpY2UtYWRhcHQvb3BlcmEvY29uc3RyYWluLTAxMy1leHBlY3Rl
ZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uODgxY2EwNGRkNWM3OTY1MmJkNDdiNzI2NTE4ZWU2M2E4MjhlYjIw
OAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2NzczMvZGV2aWNlLWFkYXB0L29wZXJh
L2NvbnN0cmFpbi0wMTMtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMyBAQAorCitQQVNTIENTUyBU
ZXN0OiBAdmlld3BvcnQgY29uc3RyYWluZWQgLSBtYXgtem9vbSBhZmZlY3Rpbmcgd2lkdGguIAor
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9jc3MzL2RldmljZS1hZGFwdC9vcGVyYS9jb25zdHJh
aW4tMDEzLnhodG1sIGIvTGF5b3V0VGVzdHMvY3NzMy9kZXZpY2UtYWRhcHQvb3BlcmEvY29uc3Ry
YWluLTAxMy54aHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mNmJlZGI3ZDlkNDU1YWI1ZjJhNTJiOTE0YThmOWYx
N2MzMzQ4ZDkwCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvY3NzMy9kZXZpY2UtYWRh
cHQvb3BlcmEvY29uc3RyYWluLTAxMy54aHRtbApAQCAtMCwwICsxLDg0IEBACis8P3htbCB2ZXJz
aW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCI/PgorPCFET0NUWVBFIGh0bWwgUFVCTElDICItLy9X
M0MvL0RURCBYSFRNTCAxLjAgU3RyaWN0Ly9FTiIgImh0dHA6Ly93d3cudzMub3JnL1RSL3hodG1s
MS9EVEQveGh0bWwxLXN0cmljdC5kdGQiPgorPGh0bWwgeG1sbnM9Imh0dHA6Ly93d3cudzMub3Jn
LzE5OTkveGh0bWwiPgorIDxoZWFkPgorICA8dGl0bGU+Q1NTIFRlc3Q6IEB2aWV3cG9ydCBjb25z
dHJhaW5lZCAtIG1heC16b29tIGFmZmVjdGluZyB3aWR0aC48L3RpdGxlPgorICA8bGluayByZWw9
ImF1dGhvciIgdGl0bGU9IlJ1bmUgTGlsbGVzdmVlbiIgaHJlZj0ibWFpbHRvOnJ1bmVAb3BlcmEu
Y29tIi8+CisgIDxsaW5rIHJlbD0iaGVscCIgaHJlZj0iaHR0cDovL3d3dy53My5vcmcvVFIvY3Nz
LWRldmljZS1hZGFwdC8jY29uc3RyYWluaW5nLXByb2NlZHVyZSIvPgorICA8bWV0YSBuYW1lPSJm
bGFncyIgY29udGVudD0idmlzdWFsIHNjcm9sbCBkb20iIC8+CisgIDxtZXRhIG5hbWU9ImFzc2Vy
dCIgY29udGVudD0iU2V0dGluZyBtYXgtem9vbSBpbiBAdmlld3BvcnQgdG8gNTAlIGFmZmVjdCB3
aWR0aCBpZiB6b29tIGlzIGF1dG8gYmVjYXVzZSBvZiBzdGVwIDEwIGluIHRoZSBjb25zdHJhaW5p
bmcgcHJvY2VkdXJlLiIvPgorICA8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3Ro
YXJuZXNzLmpzIiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIC8+CisgIDxzY3JpcHQgc3JjPSIuLi8u
Li8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiIHR5cGU9InRleHQvamF2YXNjcmlw
dCIgLz4KKyAgPHN0eWxlIHR5cGU9InRleHQvY3NzIj48IVtDREFUQVsKKyAgIGJvZHkgeyBtYXJn
aW46IDA7IH0KKyAgIGh0bWwsIGJvZHksICN0ZXN0IHsgd2lkdGg6IDEwMCU7IGhlaWdodDogMTAw
JTsgfQorICAgI2xvZyB7IHBhZGRpbmc6IDFlbTsgZGlzcGxheTogbm9uZTsgfQorICAgLyogUmVz
ZXQgdmlld3BvcnQgdmFsdWVzIHRvIGluaXRpYWwgdmFsdWVzIHRvIGlnbm9yZSBVQSBzdHlsZXNo
ZWV0LiAqLworICAgQC13ZWJraXQtdmlld3BvcnQgeworICAgIHdpZHRoOiBhdXRvOworICAgIGhl
aWdodDogYXV0bzsKKyAgICB6b29tOiBhdXRvOworICAgIG1pbi16b29tOiBhdXRvOworICAgIG1h
eC16b29tOiBhdXRvOworICAgIHVzZXItem9vbTogem9vbTsKKyAgICBvcmllbnRhdGlvbjogYXV0
bzsKKyAgICByZXNvbHV0aW9uOiBhdXRvOworICAgfQorICBdXT48L3N0eWxlPgorICA8c3R5bGUg
dHlwZT0idGV4dC9jc3MiPjwhW0NEQVRBWworICAgLyogQ1NTIGZvciB0aGUgdGVzdCBiZWxvdy4g
Ki8KKyAgIEAtd2Via2l0LXZpZXdwb3J0IHsgbWF4LXpvb206IDUwJSB9CisgICAvKiBTZXQgcm9v
dCBlbGVtZW50IGZvbnQtc2l6ZSB0byBzb21ldGhpbmcgZGlmZmVyZW50IGZyb20gdGhlIGluaXRp
YWwKKyAgICAgIGZvbnQtc2l6ZSB0byBtYWtlIHN1cmUgJ3JlbScgYW5kICdlbScgZm9yIEB2aWV3
cG9ydCBpcyBiYXNlZCBvbiB0aGUKKyAgICAgIGluaXRpYWwgZm9udC1zaXplLCBub3QgdGhlIHJv
b3QgZWxlbWVudCBmb250LXNpemUuICovCisgICBodG1sIHsgZm9udC1zaXplOiAycmVtOyB9Cisg
ICBib2R5IHsgZm9udC1zaXplOiAwLjVyZW07IH0KKyAgXV0+PC9zdHlsZT4KKyAgPHNjcmlwdCB0
eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPjwhW0NEQVRBWworICAgdmFyIHRlc3QgPSBhc3luY190ZXN0
KCJDU1MgVGVzdDogQHZpZXdwb3J0IGNvbnN0cmFpbmVkIC0gbWF4LXpvb20gYWZmZWN0aW5nIHdp
ZHRoLiIpOworICAgd2luZG93Lm9ubG9hZCA9IGZ1bmN0aW9uKCl7CisKKyAgICB2YXIgdGVzdFN0
eWxlU2hlZXQgPSBkb2N1bWVudC5zdHlsZVNoZWV0cy5pdGVtKDEpOworCisgICAgLyogRGlzYWJs
ZSB0aGUgc3R5bGVzaGVldCB0aGF0IGNvbnRhaW5zIHRoZSBAdmlld3BvcnQgdG8gdGVzdC4gKi8K
KyAgICB0ZXN0U3R5bGVTaGVldC5kaXNhYmxlZCA9IHRydWU7CisKKyAgICAvKiBJbml0aWFsaXpl
IGFuIG9iamVjdCB0byBzdG9yZSB2aWV3cG9ydCB2YWx1ZXMgdG8gYmUgdXNlZCBieSB0aGUgdGVz
dAorICAgICAgIGFzc2VydHMuICovCisgICAgdmFyIHZpZXdwb3J0ID0gbmV3IE9iamVjdCgpOwor
CisgICAgLyogQW4gZWxlbWVudCB3aXRoIHRoZSBzYW1lIHNpemUgYXMgdGhlIGluaXRpYWwgY29u
dGFpbmluZyBibG9jay4gKi8KKyAgICB2YXIgdGVzdEVsbSA9IGRvY3VtZW50LmdldEVsZW1lbnRC
eUlkKCJ0ZXN0Iik7CisKKyAgICAvKiBSZXRyaWV2ZSB0aGUgaW5pdGlhbCB2aWV3cG9ydCB2YWx1
ZXMgYmVmb3JlIGFwcGx5aW5nIHRoZSBAdmlld3BvcnQgdG8KKyAgICAgICB0ZXN0LiAqLworICAg
IHZpZXdwb3J0LmluaXRpYWxXaWR0aCA9IHRlc3RFbG0ub2Zmc2V0V2lkdGg7CisgICAgdmlld3Bv
cnQuaW5pdGlhbEhlaWdodCA9IHRlc3RFbG0ub2Zmc2V0SGVpZ2h0OworICAgIHZpZXdwb3J0LmZv
bnRTaXplID0gcGFyc2VJbnQoZ2V0Q29tcHV0ZWRTdHlsZSh0ZXN0RWxtLCAiIikuZm9udFNpemUp
OworCisgICAgLyogRW5hYmxlIHRoZSBzdHlsZXNoZWV0IHRoYXQgY29udGFpbnMgdGhlIEB2aWV3
cG9ydCB0byB0ZXN0LiAqLworICAgIHRlc3RTdHlsZVNoZWV0LmRpc2FibGVkID0gZmFsc2U7CisK
KyAgICAvKiBSZXRyaWV2ZSB0aGUgYWN0dWFsIHZpZXdwb3J0IHZhbHVlcyBmb3IgdGhlIHRlc3Qu
ICovCisgICAgdmlld3BvcnQuYWN0dWFsV2lkdGggPSB0ZXN0RWxtLm9mZnNldFdpZHRoOworICAg
IHZpZXdwb3J0LmFjdHVhbEhlaWdodCA9IHRlc3RFbG0ub2Zmc2V0SGVpZ2h0OworICAgIHZpZXdw
b3J0Lnpvb20gPSB2aWV3cG9ydC5pbml0aWFsV2lkdGggLyB3aW5kb3cuaW5uZXJXaWR0aDsKKwor
ICAgIC8qIENoZWNrIHZpZXdwb3J0IHZhbHVlcy4gKi8KKyAgICB0ZXN0LnN0ZXAoZnVuY3Rpb24o
KXsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyh2aWV3cG9ydC5hY3R1YWxXaWR0aCwgMip2aWV3cG9y
dC5pbml0aWFsV2lkdGgpOworICAgIH0pOworCisgICAgLyogRmluaXNoZWQuIFNob3cgdGhlIHJl
c3VsdHMuICovCisgICAgdGVzdC5kb25lKCk7CisgICAgdGVzdFN0eWxlU2hlZXQuZGlzYWJsZWQg
PSB0cnVlOworICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJsb2ciKS5zdHlsZS5kaXNwbGF5
ID0gImJsb2NrIjsKKyAgIH0KKyAgXV0+PC9zY3JpcHQ+CisgPC9oZWFkPgorIDxib2R5PgorICA8
ZGl2IGlkPSJ0ZXN0Ij4KKyAgIDxkaXYgaWQ9ImxvZyI+PC9kaXY+CisgIDwvZGl2PgorIDwvYm9k
eT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2NzczMvZGV2aWNlLWFkYXB0L29w
ZXJhL2NvbnN0cmFpbi0wMTQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvY3NzMy9kZXZpY2Ut
YWRhcHQvb3BlcmEvY29uc3RyYWluLTAxNC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZjc4ODBj
MzY4YjkwMzBhOGQyNTZhMGJiNDM0Njg5ODg1NmNjZWJhNgotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL2NzczMvZGV2aWNlLWFkYXB0L29wZXJhL2NvbnN0cmFpbi0wMTQtZXhwZWN0ZWQu
dHh0CkBAIC0wLDAgKzEsMyBAQAorCitQQVNTIENTUyBUZXN0OiBAdmlld3BvcnQgY29uc3RyYWlu
ZWQgLSB6b29tIGdyZWF0ZXIgdGhhbiBtYXgtem9vbS4gCisKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2NzczMvZGV2aWNlLWFkYXB0L29wZXJhL2NvbnN0cmFpbi0wMTQueGh0bWwgYi9MYXlvdXRU
ZXN0cy9jc3MzL2RldmljZS1hZGFwdC9vcGVyYS9jb25zdHJhaW4tMDE0LnhodG1sCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjEyMzJjYzU0NTJhMmNjZTRhYTA5ZTA5NzJmYTc1MjhhNWQzMWVhODYKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy9jc3MzL2RldmljZS1hZGFwdC9vcGVyYS9jb25zdHJhaW4tMDE0
LnhodG1sCkBAIC0wLDAgKzEsODQgQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVU
Ri04Ij8+Cis8IURPQ1RZUEUgaHRtbCBQVUJMSUMgIi0vL1czQy8vRFREIFhIVE1MIDEuMCBTdHJp
Y3QvL0VOIiAiaHR0cDovL3d3dy53My5vcmcvVFIveGh0bWwxL0RURC94aHRtbDEtc3RyaWN0LmR0
ZCI+Cis8aHRtbCB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCI+CisgPGhlYWQ+
CisgIDx0aXRsZT5DU1MgVGVzdDogQHZpZXdwb3J0IGNvbnN0cmFpbmVkIC0gem9vbSBncmVhdGVy
IHRoYW4gbWF4LXpvb20uPC90aXRsZT4KKyAgPGxpbmsgcmVsPSJhdXRob3IiIHRpdGxlPSJSdW5l
IExpbGxlc3ZlZW4iIGhyZWY9Im1haWx0bzpydW5lQG9wZXJhLmNvbSIvPgorICA8bGluayByZWw9
ImhlbHAiIGhyZWY9Imh0dHA6Ly93d3cudzMub3JnL1RSL2Nzcy1kZXZpY2UtYWRhcHQvI2NvbnN0
cmFpbmluZy1wcm9jZWR1cmUiLz4KKyAgPG1ldGEgbmFtZT0iZmxhZ3MiIGNvbnRlbnQ9InZpc3Vh
bCBzY3JvbGwgZG9tIiAvPgorICA8bWV0YSBuYW1lPSJhc3NlcnQiIGNvbnRlbnQ9IlNldHRpbmcg
em9vbSBncmVhdGVyIHRoYW4gbWF4LXpvb20gd2lsbCBzZXQgem9vbSB0byBtYXgtem9vbS4iLz4K
KyAgPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyIgdHlwZT0i
dGV4dC9qYXZhc2NyaXB0IiAvPgorICA8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rl
c3RoYXJuZXNzcmVwb3J0LmpzIiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIC8+CisgIDxzdHlsZSB0
eXBlPSJ0ZXh0L2NzcyI+PCFbQ0RBVEFbCisgICBib2R5IHsgbWFyZ2luOiAwOyB9CisgICBodG1s
LCBib2R5LCAjdGVzdCB7IHdpZHRoOiAxMDAlOyBoZWlnaHQ6IDEwMCU7IH0KKyAgICNsb2cgeyBw
YWRkaW5nOiAxZW07IGRpc3BsYXk6IG5vbmU7IH0KKyAgIC8qIFJlc2V0IHZpZXdwb3J0IHZhbHVl
cyB0byBpbml0aWFsIHZhbHVlcyB0byBpZ25vcmUgVUEgc3R5bGVzaGVldC4gKi8KKyAgIEAtd2Vi
a2l0LXZpZXdwb3J0IHsKKyAgICB3aWR0aDogYXV0bzsKKyAgICBoZWlnaHQ6IGF1dG87CisgICAg
em9vbTogYXV0bzsKKyAgICBtaW4tem9vbTogYXV0bzsKKyAgICBtYXgtem9vbTogYXV0bzsKKyAg
ICB1c2VyLXpvb206IHpvb207CisgICAgb3JpZW50YXRpb246IGF1dG87CisgICAgcmVzb2x1dGlv
bjogYXV0bzsKKyAgIH0KKyAgXV0+PC9zdHlsZT4KKyAgPHN0eWxlIHR5cGU9InRleHQvY3NzIj48
IVtDREFUQVsKKyAgIC8qIENTUyBmb3IgdGhlIHRlc3QgYmVsb3cuICovCisgICBALXdlYmtpdC12
aWV3cG9ydCB7IG1heC16b29tOiA1MCU7IHpvb206IDE1MCUgfQorICAgLyogU2V0IHJvb3QgZWxl
bWVudCBmb250LXNpemUgdG8gc29tZXRoaW5nIGRpZmZlcmVudCBmcm9tIHRoZSBpbml0aWFsCisg
ICAgICBmb250LXNpemUgdG8gbWFrZSBzdXJlICdyZW0nIGFuZCAnZW0nIGZvciBAdmlld3BvcnQg
aXMgYmFzZWQgb24gdGhlCisgICAgICBpbml0aWFsIGZvbnQtc2l6ZSwgbm90IHRoZSByb290IGVs
ZW1lbnQgZm9udC1zaXplLiAqLworICAgaHRtbCB7IGZvbnQtc2l6ZTogMnJlbTsgfQorICAgYm9k
eSB7IGZvbnQtc2l6ZTogMC41cmVtOyB9CisgIF1dPjwvc3R5bGU+CisgIDxzY3JpcHQgdHlwZT0i
dGV4dC9qYXZhc2NyaXB0Ij48IVtDREFUQVsKKyAgIHZhciB0ZXN0ID0gYXN5bmNfdGVzdCgiQ1NT
IFRlc3Q6IEB2aWV3cG9ydCBjb25zdHJhaW5lZCAtIHpvb20gZ3JlYXRlciB0aGFuIG1heC16b29t
LiIpOworICAgd2luZG93Lm9ubG9hZCA9IGZ1bmN0aW9uKCl7CisKKyAgICB2YXIgdGVzdFN0eWxl
U2hlZXQgPSBkb2N1bWVudC5zdHlsZVNoZWV0cy5pdGVtKDEpOworCisgICAgLyogRGlzYWJsZSB0
aGUgc3R5bGVzaGVldCB0aGF0IGNvbnRhaW5zIHRoZSBAdmlld3BvcnQgdG8gdGVzdC4gKi8KKyAg
ICB0ZXN0U3R5bGVTaGVldC5kaXNhYmxlZCA9IHRydWU7CisKKyAgICAvKiBJbml0aWFsaXplIGFu
IG9iamVjdCB0byBzdG9yZSB2aWV3cG9ydCB2YWx1ZXMgdG8gYmUgdXNlZCBieSB0aGUgdGVzdAor
ICAgICAgIGFzc2VydHMuICovCisgICAgdmFyIHZpZXdwb3J0ID0gbmV3IE9iamVjdCgpOworCisg
ICAgLyogQW4gZWxlbWVudCB3aXRoIHRoZSBzYW1lIHNpemUgYXMgdGhlIGluaXRpYWwgY29udGFp
bmluZyBibG9jay4gKi8KKyAgICB2YXIgdGVzdEVsbSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlk
KCJ0ZXN0Iik7CisKKyAgICAvKiBSZXRyaWV2ZSB0aGUgaW5pdGlhbCB2aWV3cG9ydCB2YWx1ZXMg
YmVmb3JlIGFwcGx5aW5nIHRoZSBAdmlld3BvcnQgdG8KKyAgICAgICB0ZXN0LiAqLworICAgIHZp
ZXdwb3J0LmluaXRpYWxXaWR0aCA9IHRlc3RFbG0ub2Zmc2V0V2lkdGg7CisgICAgdmlld3BvcnQu
aW5pdGlhbEhlaWdodCA9IHRlc3RFbG0ub2Zmc2V0SGVpZ2h0OworICAgIHZpZXdwb3J0LmZvbnRT
aXplID0gcGFyc2VJbnQoZ2V0Q29tcHV0ZWRTdHlsZSh0ZXN0RWxtLCAiIikuZm9udFNpemUpOwor
CisgICAgLyogRW5hYmxlIHRoZSBzdHlsZXNoZWV0IHRoYXQgY29udGFpbnMgdGhlIEB2aWV3cG9y
dCB0byB0ZXN0LiAqLworICAgIHRlc3RTdHlsZVNoZWV0LmRpc2FibGVkID0gZmFsc2U7CisKKyAg
ICAvKiBSZXRyaWV2ZSB0aGUgYWN0dWFsIHZpZXdwb3J0IHZhbHVlcyBmb3IgdGhlIHRlc3QuICov
CisgICAgdmlld3BvcnQuYWN0dWFsV2lkdGggPSB0ZXN0RWxtLm9mZnNldFdpZHRoOworICAgIHZp
ZXdwb3J0LmFjdHVhbEhlaWdodCA9IHRlc3RFbG0ub2Zmc2V0SGVpZ2h0OworICAgIHZpZXdwb3J0
Lnpvb20gPSB2aWV3cG9ydC5pbml0aWFsV2lkdGggLyB3aW5kb3cuaW5uZXJXaWR0aDsKKworICAg
IC8qIENoZWNrIHZpZXdwb3J0IHZhbHVlcy4gKi8KKyAgICB0ZXN0LnN0ZXAoZnVuY3Rpb24oKXsK
KyAgICAgICAgYXNzZXJ0X2VxdWFscyh2aWV3cG9ydC5hY3R1YWxXaWR0aCwgMip2aWV3cG9ydC5p
bml0aWFsV2lkdGgpOworICAgIH0pOworCisgICAgLyogRmluaXNoZWQuIFNob3cgdGhlIHJlc3Vs
dHMuICovCisgICAgdGVzdC5kb25lKCk7CisgICAgdGVzdFN0eWxlU2hlZXQuZGlzYWJsZWQgPSB0
cnVlOworICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJsb2ciKS5zdHlsZS5kaXNwbGF5ID0g
ImJsb2NrIjsKKyAgIH0KKyAgXV0+PC9zY3JpcHQ+CisgPC9oZWFkPgorIDxib2R5PgorICA8ZGl2
IGlkPSJ0ZXN0Ij4KKyAgIDxkaXYgaWQ9ImxvZyI+PC9kaXY+CisgIDwvZGl2PgorIDwvYm9keT4K
KzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2NzczMvZGV2aWNlLWFkYXB0L29wZXJh
L2NvbnN0cmFpbi0wMTUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvY3NzMy9kZXZpY2UtYWRh
cHQvb3BlcmEvY29uc3RyYWluLTAxNS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMDMyNjllMjhk
NjVkZTY4NTFmZmU0MTVmZDA3NTJhMTA3YTNlZDJhMQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL2NzczMvZGV2aWNlLWFkYXB0L29wZXJhL2NvbnN0cmFpbi0wMTUtZXhwZWN0ZWQudHh0
CkBAIC0wLDAgKzEsMyBAQAorCitQQVNTIENTUyBUZXN0OiBAdmlld3BvcnQgY29uc3RyYWluZWQg
LSB6b29tIGxlc3MgdGhhbiBtaW4tem9vbS4gCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Nz
czMvZGV2aWNlLWFkYXB0L29wZXJhL2NvbnN0cmFpbi0wMTUueGh0bWwgYi9MYXlvdXRUZXN0cy9j
c3MzL2RldmljZS1hZGFwdC9vcGVyYS9jb25zdHJhaW4tMDE1LnhodG1sCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjYx
M2IxZGMzODBhZTNkNTRiYzE0ZmJhNjZjYzM5YzU0MDk1OWFhMDcKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy9jc3MzL2RldmljZS1hZGFwdC9vcGVyYS9jb25zdHJhaW4tMDE1LnhodG1s
CkBAIC0wLDAgKzEsODQgQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04Ij8+
Cis8IURPQ1RZUEUgaHRtbCBQVUJMSUMgIi0vL1czQy8vRFREIFhIVE1MIDEuMCBTdHJpY3QvL0VO
IiAiaHR0cDovL3d3dy53My5vcmcvVFIveGh0bWwxL0RURC94aHRtbDEtc3RyaWN0LmR0ZCI+Cis8
aHRtbCB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCI+CisgPGhlYWQ+CisgIDx0
aXRsZT5DU1MgVGVzdDogQHZpZXdwb3J0IGNvbnN0cmFpbmVkIC0gem9vbSBsZXNzIHRoYW4gbWlu
LXpvb20uPC90aXRsZT4KKyAgPGxpbmsgcmVsPSJhdXRob3IiIHRpdGxlPSJSdW5lIExpbGxlc3Zl
ZW4iIGhyZWY9Im1haWx0bzpydW5lQG9wZXJhLmNvbSIvPgorICA8bGluayByZWw9ImhlbHAiIGhy
ZWY9Imh0dHA6Ly93d3cudzMub3JnL1RSL2Nzcy1kZXZpY2UtYWRhcHQvI2NvbnN0cmFpbmluZy1w
cm9jZWR1cmUiLz4KKyAgPG1ldGEgbmFtZT0iZmxhZ3MiIGNvbnRlbnQ9InZpc3VhbCBzY3JvbGwg
ZG9tIiAvPgorICA8bWV0YSBuYW1lPSJhc3NlcnQiIGNvbnRlbnQ9IlNldHRpbmcgem9vbSBsZXNz
IHRoYW4gbWluLXpvb20gd2lsbCBzZXQgem9vbSB0byBtaW4tem9vbS4iLz4KKyAgPHNjcmlwdCBz
cmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyIgdHlwZT0idGV4dC9qYXZhc2Ny
aXB0IiAvPgorICA8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVw
b3J0LmpzIiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIC8+CisgIDxzdHlsZSB0eXBlPSJ0ZXh0L2Nz
cyI+PCFbQ0RBVEFbCisgICBib2R5IHsgbWFyZ2luOiAwOyB9CisgICBodG1sLCBib2R5LCAjdGVz
dCB7IHdpZHRoOiAxMDAlOyBoZWlnaHQ6IDEwMCU7IH0KKyAgICNsb2cgeyBwYWRkaW5nOiAxZW07
IGRpc3BsYXk6IG5vbmU7IH0KKyAgIC8qIFJlc2V0IHZpZXdwb3J0IHZhbHVlcyB0byBpbml0aWFs
IHZhbHVlcyB0byBpZ25vcmUgVUEgc3R5bGVzaGVldC4gKi8KKyAgIEAtd2Via2l0LXZpZXdwb3J0
IHsKKyAgICB3aWR0aDogYXV0bzsKKyAgICBoZWlnaHQ6IGF1dG87CisgICAgem9vbTogYXV0bzsK
KyAgICBtaW4tem9vbTogYXV0bzsKKyAgICBtYXgtem9vbTogYXV0bzsKKyAgICB1c2VyLXpvb206
IHpvb207CisgICAgb3JpZW50YXRpb246IGF1dG87CisgICAgcmVzb2x1dGlvbjogYXV0bzsKKyAg
IH0KKyAgXV0+PC9zdHlsZT4KKyAgPHN0eWxlIHR5cGU9InRleHQvY3NzIj48IVtDREFUQVsKKyAg
IC8qIENTUyBmb3IgdGhlIHRlc3QgYmVsb3cuICovCisgICBALXdlYmtpdC12aWV3cG9ydCB7IG1p
bi16b29tOiAyMDAlOyB6b29tOiA1MCUgfQorICAgLyogU2V0IHJvb3QgZWxlbWVudCBmb250LXNp
emUgdG8gc29tZXRoaW5nIGRpZmZlcmVudCBmcm9tIHRoZSBpbml0aWFsCisgICAgICBmb250LXNp
emUgdG8gbWFrZSBzdXJlICdyZW0nIGFuZCAnZW0nIGZvciBAdmlld3BvcnQgaXMgYmFzZWQgb24g
dGhlCisgICAgICBpbml0aWFsIGZvbnQtc2l6ZSwgbm90IHRoZSByb290IGVsZW1lbnQgZm9udC1z
aXplLiAqLworICAgaHRtbCB7IGZvbnQtc2l6ZTogMnJlbTsgfQorICAgYm9keSB7IGZvbnQtc2l6
ZTogMC41cmVtOyB9CisgIF1dPjwvc3R5bGU+CisgIDxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2Ny
aXB0Ij48IVtDREFUQVsKKyAgIHZhciB0ZXN0ID0gYXN5bmNfdGVzdCgiQ1NTIFRlc3Q6IEB2aWV3
cG9ydCBjb25zdHJhaW5lZCAtIHpvb20gbGVzcyB0aGFuIG1pbi16b29tLiIpOworICAgd2luZG93
Lm9ubG9hZCA9IGZ1bmN0aW9uKCl7CisKKyAgICB2YXIgdGVzdFN0eWxlU2hlZXQgPSBkb2N1bWVu
dC5zdHlsZVNoZWV0cy5pdGVtKDEpOworCisgICAgLyogRGlzYWJsZSB0aGUgc3R5bGVzaGVldCB0
aGF0IGNvbnRhaW5zIHRoZSBAdmlld3BvcnQgdG8gdGVzdC4gKi8KKyAgICB0ZXN0U3R5bGVTaGVl
dC5kaXNhYmxlZCA9IHRydWU7CisKKyAgICAvKiBJbml0aWFsaXplIGFuIG9iamVjdCB0byBzdG9y
ZSB2aWV3cG9ydCB2YWx1ZXMgdG8gYmUgdXNlZCBieSB0aGUgdGVzdAorICAgICAgIGFzc2VydHMu
ICovCisgICAgdmFyIHZpZXdwb3J0ID0gbmV3IE9iamVjdCgpOworCisgICAgLyogQW4gZWxlbWVu
dCB3aXRoIHRoZSBzYW1lIHNpemUgYXMgdGhlIGluaXRpYWwgY29udGFpbmluZyBibG9jay4gKi8K
KyAgICB2YXIgdGVzdEVsbSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0ZXN0Iik7CisKKyAg
ICAvKiBSZXRyaWV2ZSB0aGUgaW5pdGlhbCB2aWV3cG9ydCB2YWx1ZXMgYmVmb3JlIGFwcGx5aW5n
IHRoZSBAdmlld3BvcnQgdG8KKyAgICAgICB0ZXN0LiAqLworICAgIHZpZXdwb3J0LmluaXRpYWxX
aWR0aCA9IHRlc3RFbG0ub2Zmc2V0V2lkdGg7CisgICAgdmlld3BvcnQuaW5pdGlhbEhlaWdodCA9
IHRlc3RFbG0ub2Zmc2V0SGVpZ2h0OworICAgIHZpZXdwb3J0LmZvbnRTaXplID0gcGFyc2VJbnQo
Z2V0Q29tcHV0ZWRTdHlsZSh0ZXN0RWxtLCAiIikuZm9udFNpemUpOworCisgICAgLyogRW5hYmxl
IHRoZSBzdHlsZXNoZWV0IHRoYXQgY29udGFpbnMgdGhlIEB2aWV3cG9ydCB0byB0ZXN0LiAqLwor
ICAgIHRlc3RTdHlsZVNoZWV0LmRpc2FibGVkID0gZmFsc2U7CisKKyAgICAvKiBSZXRyaWV2ZSB0
aGUgYWN0dWFsIHZpZXdwb3J0IHZhbHVlcyBmb3IgdGhlIHRlc3QuICovCisgICAgdmlld3BvcnQu
YWN0dWFsV2lkdGggPSB0ZXN0RWxtLm9mZnNldFdpZHRoOworICAgIHZpZXdwb3J0LmFjdHVhbEhl
aWdodCA9IHRlc3RFbG0ub2Zmc2V0SGVpZ2h0OworICAgIHZpZXdwb3J0Lnpvb20gPSB2aWV3cG9y
dC5pbml0aWFsV2lkdGggLyB3aW5kb3cuaW5uZXJXaWR0aDsKKworICAgIC8qIENoZWNrIHZpZXdw
b3J0IHZhbHVlcy4gKi8KKyAgICB0ZXN0LnN0ZXAoZnVuY3Rpb24oKXsKKyAgICAgICAgYXNzZXJ0
X2VxdWFscyh2aWV3cG9ydC5hY3R1YWxXaWR0aCwgTWF0aC5mbG9vcih2aWV3cG9ydC5pbml0aWFs
V2lkdGgvMikpOworICAgIH0pOworCisgICAgLyogRmluaXNoZWQuIFNob3cgdGhlIHJlc3VsdHMu
ICovCisgICAgdGVzdC5kb25lKCk7CisgICAgdGVzdFN0eWxlU2hlZXQuZGlzYWJsZWQgPSB0cnVl
OworICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJsb2ciKS5zdHlsZS5kaXNwbGF5ID0gImJs
b2NrIjsKKyAgIH0KKyAgXV0+PC9zY3JpcHQ+CisgPC9oZWFkPgorIDxib2R5PgorICA8ZGl2IGlk
PSJ0ZXN0Ij4KKyAgIDxkaXYgaWQ9ImxvZyI+PC9kaXY+CisgIDwvZGl2PgorIDwvYm9keT4KKzwv
aHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2NzczMvZGV2aWNlLWFkYXB0L29wZXJhL2Nv
bnN0cmFpbi0wMTYtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvY3NzMy9kZXZpY2UtYWRhcHQv
b3BlcmEvY29uc3RyYWluLTAxNi1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYTQxYzRiODExOTAy
OGEyNTA5ODgwNDNiNGIxMTczYjNhM2RlYjQ4MAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL2NzczMvZGV2aWNlLWFkYXB0L29wZXJhL2NvbnN0cmFpbi0wMTYtZXhwZWN0ZWQudHh0CkBA
IC0wLDAgKzEsMyBAQAorCitQQVNTIENTUyBUZXN0OiBAdmlld3BvcnQgY29uc3RyYWluZWQgLSBo
ZWlnaHQgZGVkdWNlZCBmcm9tIHdpZHRoIGFuZCBhc3BlY3QgcmF0aW8uIAorCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9jc3MzL2RldmljZS1hZGFwdC9vcGVyYS9jb25zdHJhaW4tMDE2LnhodG1s
IGIvTGF5b3V0VGVzdHMvY3NzMy9kZXZpY2UtYWRhcHQvb3BlcmEvY29uc3RyYWluLTAxNi54aHRt
bApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi43ZjUyMzk2MGI4N2I1Nzk4YjFhYjRlMmY3ZWIzNTUyZDlhN2YxYWVmCi0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvY3NzMy9kZXZpY2UtYWRhcHQvb3BlcmEvY29u
c3RyYWluLTAxNi54aHRtbApAQCAtMCwwICsxLDg0IEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVu
Y29kaW5nPSJVVEYtOCI/PgorPCFET0NUWVBFIGh0bWwgUFVCTElDICItLy9XM0MvL0RURCBYSFRN
TCAxLjAgU3RyaWN0Ly9FTiIgImh0dHA6Ly93d3cudzMub3JnL1RSL3hodG1sMS9EVEQveGh0bWwx
LXN0cmljdC5kdGQiPgorPGh0bWwgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwi
PgorIDxoZWFkPgorICA8dGl0bGU+Q1NTIFRlc3Q6IEB2aWV3cG9ydCBjb25zdHJhaW5lZCAtIGhl
aWdodCBkZWR1Y2VkIGZyb20gd2lkdGggYW5kIGFzcGVjdCByYXRpby48L3RpdGxlPgorICA8bGlu
ayByZWw9ImF1dGhvciIgdGl0bGU9IlJ1bmUgTGlsbGVzdmVlbiIgaHJlZj0ibWFpbHRvOnJ1bmVA
b3BlcmEuY29tIi8+CisgIDxsaW5rIHJlbD0iaGVscCIgaHJlZj0iaHR0cDovL3d3dy53My5vcmcv
VFIvY3NzLWRldmljZS1hZGFwdC8jY29uc3RyYWluaW5nLXByb2NlZHVyZSIvPgorICA8bWV0YSBu
YW1lPSJmbGFncyIgY29udGVudD0idmlzdWFsIHNjcm9sbCBkb20iIC8+CisgIDxtZXRhIG5hbWU9
ImFzc2VydCIgY29udGVudD0iU2V0dGluZyB3aWR0aCBhbmQgbm90IGhlaWdodCB3aWxsIHNldCBh
IGhlaWdodCB0aGF0IG1ha2VzIHRoZSBhY3R1YWwgd2lkdGgvaGVpZ2h0IGFuZCBpbml0aWFsIHdp
ZHRoL2hlaWdodCBoYXZlIHRoZSBzYW1lIGFzcGVjdCByYXRpby4iLz4KKyAgPHNjcmlwdCBzcmM9
Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyIgdHlwZT0idGV4dC9qYXZhc2NyaXB0
IiAvPgorICA8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0
LmpzIiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIC8+CisgIDxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyI+
PCFbQ0RBVEFbCisgICBib2R5IHsgbWFyZ2luOiAwOyB9CisgICBodG1sLCBib2R5LCAjdGVzdCB7
IHdpZHRoOiAxMDAlOyBoZWlnaHQ6IDEwMCU7IH0KKyAgICNsb2cgeyBwYWRkaW5nOiAxZW07IGRp
c3BsYXk6IG5vbmU7IH0KKyAgIC8qIFJlc2V0IHZpZXdwb3J0IHZhbHVlcyB0byBpbml0aWFsIHZh
bHVlcyB0byBpZ25vcmUgVUEgc3R5bGVzaGVldC4gKi8KKyAgIEAtd2Via2l0LXZpZXdwb3J0IHsK
KyAgICB3aWR0aDogYXV0bzsKKyAgICBoZWlnaHQ6IGF1dG87CisgICAgem9vbTogYXV0bzsKKyAg
ICBtaW4tem9vbTogYXV0bzsKKyAgICBtYXgtem9vbTogYXV0bzsKKyAgICB1c2VyLXpvb206IHpv
b207CisgICAgb3JpZW50YXRpb246IGF1dG87CisgICAgcmVzb2x1dGlvbjogYXV0bzsKKyAgIH0K
KyAgXV0+PC9zdHlsZT4KKyAgPHN0eWxlIHR5cGU9InRleHQvY3NzIj48IVtDREFUQVsKKyAgIC8q
IENTUyBmb3IgdGhlIHRlc3QgYmVsb3cuICovCisgICBALXdlYmtpdC12aWV3cG9ydCB7IHdpZHRo
OiAxMDAwMHB4IH0KKyAgIC8qIFNldCByb290IGVsZW1lbnQgZm9udC1zaXplIHRvIHNvbWV0aGlu
ZyBkaWZmZXJlbnQgZnJvbSB0aGUgaW5pdGlhbAorICAgICAgZm9udC1zaXplIHRvIG1ha2Ugc3Vy
ZSAncmVtJyBhbmQgJ2VtJyBmb3IgQHZpZXdwb3J0IGlzIGJhc2VkIG9uIHRoZQorICAgICAgaW5p
dGlhbCBmb250LXNpemUsIG5vdCB0aGUgcm9vdCBlbGVtZW50IGZvbnQtc2l6ZS4gKi8KKyAgIGh0
bWwgeyBmb250LXNpemU6IDJyZW07IH0KKyAgIGJvZHkgeyBmb250LXNpemU6IDAuNXJlbTsgfQor
ICBdXT48L3N0eWxlPgorICA8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+PCFbQ0RBVEFb
CisgICB2YXIgdGVzdCA9IGFzeW5jX3Rlc3QoIkNTUyBUZXN0OiBAdmlld3BvcnQgY29uc3RyYWlu
ZWQgLSBoZWlnaHQgZGVkdWNlZCBmcm9tIHdpZHRoIGFuZCBhc3BlY3QgcmF0aW8uIik7CisgICB3
aW5kb3cub25sb2FkID0gZnVuY3Rpb24oKXsKKworICAgIHZhciB0ZXN0U3R5bGVTaGVldCA9IGRv
Y3VtZW50LnN0eWxlU2hlZXRzLml0ZW0oMSk7CisKKyAgICAvKiBEaXNhYmxlIHRoZSBzdHlsZXNo
ZWV0IHRoYXQgY29udGFpbnMgdGhlIEB2aWV3cG9ydCB0byB0ZXN0LiAqLworICAgIHRlc3RTdHls
ZVNoZWV0LmRpc2FibGVkID0gdHJ1ZTsKKworICAgIC8qIEluaXRpYWxpemUgYW4gb2JqZWN0IHRv
IHN0b3JlIHZpZXdwb3J0IHZhbHVlcyB0byBiZSB1c2VkIGJ5IHRoZSB0ZXN0CisgICAgICAgYXNz
ZXJ0cy4gKi8KKyAgICB2YXIgdmlld3BvcnQgPSBuZXcgT2JqZWN0KCk7CisKKyAgICAvKiBBbiBl
bGVtZW50IHdpdGggdGhlIHNhbWUgc2l6ZSBhcyB0aGUgaW5pdGlhbCBjb250YWluaW5nIGJsb2Nr
LiAqLworICAgIHZhciB0ZXN0RWxtID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRlc3QiKTsK
KworICAgIC8qIFJldHJpZXZlIHRoZSBpbml0aWFsIHZpZXdwb3J0IHZhbHVlcyBiZWZvcmUgYXBw
bHlpbmcgdGhlIEB2aWV3cG9ydCB0bworICAgICAgIHRlc3QuICovCisgICAgdmlld3BvcnQuaW5p
dGlhbFdpZHRoID0gdGVzdEVsbS5vZmZzZXRXaWR0aDsKKyAgICB2aWV3cG9ydC5pbml0aWFsSGVp
Z2h0ID0gdGVzdEVsbS5vZmZzZXRIZWlnaHQ7CisgICAgdmlld3BvcnQuZm9udFNpemUgPSBwYXJz
ZUludChnZXRDb21wdXRlZFN0eWxlKHRlc3RFbG0sICIiKS5mb250U2l6ZSk7CisKKyAgICAvKiBF
bmFibGUgdGhlIHN0eWxlc2hlZXQgdGhhdCBjb250YWlucyB0aGUgQHZpZXdwb3J0IHRvIHRlc3Qu
ICovCisgICAgdGVzdFN0eWxlU2hlZXQuZGlzYWJsZWQgPSBmYWxzZTsKKworICAgIC8qIFJldHJp
ZXZlIHRoZSBhY3R1YWwgdmlld3BvcnQgdmFsdWVzIGZvciB0aGUgdGVzdC4gKi8KKyAgICB2aWV3
cG9ydC5hY3R1YWxXaWR0aCA9IHRlc3RFbG0ub2Zmc2V0V2lkdGg7CisgICAgdmlld3BvcnQuYWN0
dWFsSGVpZ2h0ID0gdGVzdEVsbS5vZmZzZXRIZWlnaHQ7CisgICAgdmlld3BvcnQuem9vbSA9IHZp
ZXdwb3J0LmluaXRpYWxXaWR0aCAvIHdpbmRvdy5pbm5lcldpZHRoOworCisgICAgLyogQ2hlY2sg
dmlld3BvcnQgdmFsdWVzLiAqLworICAgIHRlc3Quc3RlcChmdW5jdGlvbigpeworICAgICAgICBh
c3NlcnRfZXF1YWxzKHZpZXdwb3J0LmFjdHVhbFdpZHRoLCAxMDAwMCk7IGFzc2VydF9lcXVhbHMo
dmlld3BvcnQuYWN0dWFsSGVpZ2h0LCBNYXRoLmZsb29yKDEwMDAwKnZpZXdwb3J0LmluaXRpYWxI
ZWlnaHQvdmlld3BvcnQuaW5pdGlhbFdpZHRoKSk7CisgICAgfSk7CisKKyAgICAvKiBGaW5pc2hl
ZC4gU2hvdyB0aGUgcmVzdWx0cy4gKi8KKyAgICB0ZXN0LmRvbmUoKTsKKyAgICB0ZXN0U3R5bGVT
aGVldC5kaXNhYmxlZCA9IHRydWU7CisgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImxvZyIp
LnN0eWxlLmRpc3BsYXkgPSAiYmxvY2siOworICAgfQorICBdXT48L3NjcmlwdD4KKyA8L2hlYWQ+
CisgPGJvZHk+CisgIDxkaXYgaWQ9InRlc3QiPgorICAgPGRpdiBpZD0ibG9nIj48L2Rpdj4KKyAg
PC9kaXY+CisgPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvY3NzMy9k
ZXZpY2UtYWRhcHQvb3BlcmEvY29uc3RyYWluLTAxNy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0
cy9jc3MzL2RldmljZS1hZGFwdC9vcGVyYS9jb25zdHJhaW4tMDE3LWV4cGVjdGVkLnR4dApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi4zZjZkMDhmNDg2NmY1Njc4YzRlZWNhNTNiYzEyNjMyMGI1MDM1NDAxCi0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvY3NzMy9kZXZpY2UtYWRhcHQvb3BlcmEvY29uc3RyYWlu
LTAxNy1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwzIEBACisKK1BBU1MgQ1NTIFRlc3Q6IEB2aWV3
cG9ydCBjb25zdHJhaW5lZCAtIExhcmdlIG5vbi1hdXRvIGhlaWdodCBub3QgYWZmZWN0aW5nIHdp
ZHRoLiAKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvY3NzMy9kZXZpY2UtYWRhcHQvb3BlcmEv
Y29uc3RyYWluLTAxNy54aHRtbCBiL0xheW91dFRlc3RzL2NzczMvZGV2aWNlLWFkYXB0L29wZXJh
L2NvbnN0cmFpbi0wMTcueGh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNzI5MDk5NTA4YzdiMzlmYzIxYmIwMzI3
MjhiNDFkNzhmMTZiZWUzMAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2NzczMvZGV2
aWNlLWFkYXB0L29wZXJhL2NvbnN0cmFpbi0wMTcueGh0bWwKQEAgLTAsMCArMSw4NCBAQAorPD94
bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KKzwhRE9DVFlQRSBodG1sIFBVQkxJ
QyAiLS8vVzNDLy9EVEQgWEhUTUwgMS4wIFN0cmljdC8vRU4iICJodHRwOi8vd3d3LnczLm9yZy9U
Ui94aHRtbDEvRFREL3hodG1sMS1zdHJpY3QuZHRkIj4KKzxodG1sIHhtbG5zPSJodHRwOi8vd3d3
LnczLm9yZy8xOTk5L3hodG1sIj4KKyA8aGVhZD4KKyAgPHRpdGxlPkNTUyBUZXN0OiBAdmlld3Bv
cnQgY29uc3RyYWluZWQgLSBMYXJnZSBub24tYXV0byBoZWlnaHQgbm90IGFmZmVjdGluZyB3aWR0
aC48L3RpdGxlPgorICA8bGluayByZWw9ImF1dGhvciIgdGl0bGU9IlJ1bmUgTGlsbGVzdmVlbiIg
aHJlZj0ibWFpbHRvOnJ1bmVAb3BlcmEuY29tIi8+CisgIDxsaW5rIHJlbD0iaGVscCIgaHJlZj0i
aHR0cDovL3d3dy53My5vcmcvVFIvY3NzLWRldmljZS1hZGFwdC8jY29uc3RyYWluaW5nLXByb2Nl
ZHVyZSIvPgorICA8bWV0YSBuYW1lPSJmbGFncyIgY29udGVudD0idmlzdWFsIHNjcm9sbCBkb20i
IC8+CisgIDxtZXRhIG5hbWU9ImFzc2VydCIgY29udGVudD0iTm9uLWF1dG8gaGVpZ2h0IGRvZXMg
bm90IGFmZmVjdCB3aWR0aCBpZiB6b29tIGlzIGF1dG8uIi8+CisgIDxzY3JpcHQgc3JjPSIuLi8u
Li8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiIHR5cGU9InRleHQvamF2YXNjcmlwdCIgLz4K
KyAgPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyIg
dHlwZT0idGV4dC9qYXZhc2NyaXB0IiAvPgorICA8c3R5bGUgdHlwZT0idGV4dC9jc3MiPjwhW0NE
QVRBWworICAgYm9keSB7IG1hcmdpbjogMDsgfQorICAgaHRtbCwgYm9keSwgI3Rlc3QgeyB3aWR0
aDogMTAwJTsgaGVpZ2h0OiAxMDAlOyB9CisgICAjbG9nIHsgcGFkZGluZzogMWVtOyBkaXNwbGF5
OiBub25lOyB9CisgICAvKiBSZXNldCB2aWV3cG9ydCB2YWx1ZXMgdG8gaW5pdGlhbCB2YWx1ZXMg
dG8gaWdub3JlIFVBIHN0eWxlc2hlZXQuICovCisgICBALXdlYmtpdC12aWV3cG9ydCB7CisgICAg
d2lkdGg6IGF1dG87CisgICAgaGVpZ2h0OiBhdXRvOworICAgIHpvb206IGF1dG87CisgICAgbWlu
LXpvb206IGF1dG87CisgICAgbWF4LXpvb206IGF1dG87CisgICAgdXNlci16b29tOiB6b29tOwor
ICAgIG9yaWVudGF0aW9uOiBhdXRvOworICAgIHJlc29sdXRpb246IGF1dG87CisgICB9CisgIF1d
Pjwvc3R5bGU+CisgIDxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyI+PCFbQ0RBVEFbCisgICAvKiBDU1Mg
Zm9yIHRoZSB0ZXN0IGJlbG93LiAqLworICAgQC13ZWJraXQtdmlld3BvcnQgeyBoZWlnaHQ6IDEw
MDAwcHggfQorICAgLyogU2V0IHJvb3QgZWxlbWVudCBmb250LXNpemUgdG8gc29tZXRoaW5nIGRp
ZmZlcmVudCBmcm9tIHRoZSBpbml0aWFsCisgICAgICBmb250LXNpemUgdG8gbWFrZSBzdXJlICdy
ZW0nIGFuZCAnZW0nIGZvciBAdmlld3BvcnQgaXMgYmFzZWQgb24gdGhlCisgICAgICBpbml0aWFs
IGZvbnQtc2l6ZSwgbm90IHRoZSByb290IGVsZW1lbnQgZm9udC1zaXplLiAqLworICAgaHRtbCB7
IGZvbnQtc2l6ZTogMnJlbTsgfQorICAgYm9keSB7IGZvbnQtc2l6ZTogMC41cmVtOyB9CisgIF1d
Pjwvc3R5bGU+CisgIDxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij48IVtDREFUQVsKKyAg
IHZhciB0ZXN0ID0gYXN5bmNfdGVzdCgiQ1NTIFRlc3Q6IEB2aWV3cG9ydCBjb25zdHJhaW5lZCAt
IExhcmdlIG5vbi1hdXRvIGhlaWdodCBub3QgYWZmZWN0aW5nIHdpZHRoLiIpOworICAgd2luZG93
Lm9ubG9hZCA9IGZ1bmN0aW9uKCl7CisKKyAgICB2YXIgdGVzdFN0eWxlU2hlZXQgPSBkb2N1bWVu
dC5zdHlsZVNoZWV0cy5pdGVtKDEpOworCisgICAgLyogRGlzYWJsZSB0aGUgc3R5bGVzaGVldCB0
aGF0IGNvbnRhaW5zIHRoZSBAdmlld3BvcnQgdG8gdGVzdC4gKi8KKyAgICB0ZXN0U3R5bGVTaGVl
dC5kaXNhYmxlZCA9IHRydWU7CisKKyAgICAvKiBJbml0aWFsaXplIGFuIG9iamVjdCB0byBzdG9y
ZSB2aWV3cG9ydCB2YWx1ZXMgdG8gYmUgdXNlZCBieSB0aGUgdGVzdAorICAgICAgIGFzc2VydHMu
ICovCisgICAgdmFyIHZpZXdwb3J0ID0gbmV3IE9iamVjdCgpOworCisgICAgLyogQW4gZWxlbWVu
dCB3aXRoIHRoZSBzYW1lIHNpemUgYXMgdGhlIGluaXRpYWwgY29udGFpbmluZyBibG9jay4gKi8K
KyAgICB2YXIgdGVzdEVsbSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0ZXN0Iik7CisKKyAg
ICAvKiBSZXRyaWV2ZSB0aGUgaW5pdGlhbCB2aWV3cG9ydCB2YWx1ZXMgYmVmb3JlIGFwcGx5aW5n
IHRoZSBAdmlld3BvcnQgdG8KKyAgICAgICB0ZXN0LiAqLworICAgIHZpZXdwb3J0LmluaXRpYWxX
aWR0aCA9IHRlc3RFbG0ub2Zmc2V0V2lkdGg7CisgICAgdmlld3BvcnQuaW5pdGlhbEhlaWdodCA9
IHRlc3RFbG0ub2Zmc2V0SGVpZ2h0OworICAgIHZpZXdwb3J0LmZvbnRTaXplID0gcGFyc2VJbnQo
Z2V0Q29tcHV0ZWRTdHlsZSh0ZXN0RWxtLCAiIikuZm9udFNpemUpOworCisgICAgLyogRW5hYmxl
IHRoZSBzdHlsZXNoZWV0IHRoYXQgY29udGFpbnMgdGhlIEB2aWV3cG9ydCB0byB0ZXN0LiAqLwor
ICAgIHRlc3RTdHlsZVNoZWV0LmRpc2FibGVkID0gZmFsc2U7CisKKyAgICAvKiBSZXRyaWV2ZSB0
aGUgYWN0dWFsIHZpZXdwb3J0IHZhbHVlcyBmb3IgdGhlIHRlc3QuICovCisgICAgdmlld3BvcnQu
YWN0dWFsV2lkdGggPSB0ZXN0RWxtLm9mZnNldFdpZHRoOworICAgIHZpZXdwb3J0LmFjdHVhbEhl
aWdodCA9IHRlc3RFbG0ub2Zmc2V0SGVpZ2h0OworICAgIHZpZXdwb3J0Lnpvb20gPSB2aWV3cG9y
dC5pbml0aWFsV2lkdGggLyB3aW5kb3cuaW5uZXJXaWR0aDsKKworICAgIC8qIENoZWNrIHZpZXdw
b3J0IHZhbHVlcy4gKi8KKyAgICB0ZXN0LnN0ZXAoZnVuY3Rpb24oKXsKKyAgICAgICAgYXNzZXJ0
X2VxdWFscyh2aWV3cG9ydC5hY3R1YWxIZWlnaHQsIDEwMDAwKTsgYXNzZXJ0X2VxdWFscyh2aWV3
cG9ydC5hY3R1YWxXaWR0aCwgdmlld3BvcnQuaW5pdGlhbFdpZHRoKTsKKyAgICB9KTsKKworICAg
IC8qIEZpbmlzaGVkLiBTaG93IHRoZSByZXN1bHRzLiAqLworICAgIHRlc3QuZG9uZSgpOworICAg
IHRlc3RTdHlsZVNoZWV0LmRpc2FibGVkID0gdHJ1ZTsKKyAgICBkb2N1bWVudC5nZXRFbGVtZW50
QnlJZCgibG9nIikuc3R5bGUuZGlzcGxheSA9ICJibG9jayI7CisgICB9CisgIF1dPjwvc2NyaXB0
PgorIDwvaGVhZD4KKyA8Ym9keT4KKyAgPGRpdiBpZD0idGVzdCI+CisgICA8ZGl2IGlkPSJsb2ci
PjwvZGl2PgorICA8L2Rpdj4KKyA8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9jc3MzL2RldmljZS1hZGFwdC9vcGVyYS9jb25zdHJhaW4tMDIwLWV4cGVjdGVkLnR4dCBi
L0xheW91dFRlc3RzL2NzczMvZGV2aWNlLWFkYXB0L29wZXJhL2NvbnN0cmFpbi0wMjAtZXhwZWN0
ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjVkMzVmMmY2MWU1YmRiZjY0YTcyZjRhNTFkMWNmNWQ2ZjgyNTYy
ZjcKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9jc3MzL2RldmljZS1hZGFwdC9vcGVy
YS9jb25zdHJhaW4tMDIwLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDMgQEAKKworUEFTUyBDU1Mg
VGVzdDogQHZpZXdwb3J0IGNvbnN0cmFpbmVkIC0gZXh0ZW5kZWQgd2lkdGggYW5kIGhlaWdodCBm
b3Igbm9uLWF1dG8gem9vbS4gCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2NzczMvZGV2aWNl
LWFkYXB0L29wZXJhL2NvbnN0cmFpbi0wMjAueGh0bWwgYi9MYXlvdXRUZXN0cy9jc3MzL2Rldmlj
ZS1hZGFwdC9vcGVyYS9jb25zdHJhaW4tMDIwLnhodG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmE0OTcxYTc2N2I0
NmIzNjBjODZlYzUxY2Q4ZDUyZWYwYmZiNWZjYjQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy9jc3MzL2RldmljZS1hZGFwdC9vcGVyYS9jb25zdHJhaW4tMDIwLnhodG1sCkBAIC0wLDAg
KzEsODQgQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04Ij8+Cis8IURPQ1RZ
UEUgaHRtbCBQVUJMSUMgIi0vL1czQy8vRFREIFhIVE1MIDEuMCBTdHJpY3QvL0VOIiAiaHR0cDov
L3d3dy53My5vcmcvVFIveGh0bWwxL0RURC94aHRtbDEtc3RyaWN0LmR0ZCI+Cis8aHRtbCB4bWxu
cz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCI+CisgPGhlYWQ+CisgIDx0aXRsZT5DU1Mg
VGVzdDogQHZpZXdwb3J0IGNvbnN0cmFpbmVkIC0gZXh0ZW5kZWQgd2lkdGggYW5kIGhlaWdodCBm
b3Igbm9uLWF1dG8gem9vbS48L3RpdGxlPgorICA8bGluayByZWw9ImF1dGhvciIgdGl0bGU9IlJ1
bmUgTGlsbGVzdmVlbiIgaHJlZj0ibWFpbHRvOnJ1bmVAb3BlcmEuY29tIi8+CisgIDxsaW5rIHJl
bD0iaGVscCIgaHJlZj0iaHR0cDovL3d3dy53My5vcmcvVFIvY3NzLWRldmljZS1hZGFwdC8jY29u
c3RyYWluaW5nLXByb2NlZHVyZSIvPgorICA8bWV0YSBuYW1lPSJmbGFncyIgY29udGVudD0idmlz
dWFsIHNjcm9sbCBkb20iIC8+CisgIDxtZXRhIG5hbWU9ImFzc2VydCIgY29udGVudD0iV2hlbiB6
b29tIGlzIG5vbi1hdXRvLCBhbmQgdGhlIGNvbnN0cmFpbmVkIHdpZHRoIGRvZXMgbm90IGZpbGwg
dGhlIHZpZXdwb3J0IGZvciB0aGUgY29uc3RyYWluZWQgem9vbSB2YWx1ZSwgdGhlIHdpZHRoIGlz
IGV4dGVuZGVkIHRvIGZpbGwgdGhlIHZpZXdwb3J0LiBMaWtld2lzZSBmb3IgaGVpZ2h0LiIvPgor
ICA8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIiB0eXBlPSJ0
ZXh0L2phdmFzY3JpcHQiIC8+CisgIDxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVz
dGhhcm5lc3NyZXBvcnQuanMiIHR5cGU9InRleHQvamF2YXNjcmlwdCIgLz4KKyAgPHN0eWxlIHR5
cGU9InRleHQvY3NzIj48IVtDREFUQVsKKyAgIGJvZHkgeyBtYXJnaW46IDA7IH0KKyAgIGh0bWws
IGJvZHksICN0ZXN0IHsgd2lkdGg6IDEwMCU7IGhlaWdodDogMTAwJTsgfQorICAgI2xvZyB7IHBh
ZGRpbmc6IDFlbTsgZGlzcGxheTogbm9uZTsgfQorICAgLyogUmVzZXQgdmlld3BvcnQgdmFsdWVz
IHRvIGluaXRpYWwgdmFsdWVzIHRvIGlnbm9yZSBVQSBzdHlsZXNoZWV0LiAqLworICAgQC13ZWJr
aXQtdmlld3BvcnQgeworICAgIHdpZHRoOiBhdXRvOworICAgIGhlaWdodDogYXV0bzsKKyAgICB6
b29tOiBhdXRvOworICAgIG1pbi16b29tOiBhdXRvOworICAgIG1heC16b29tOiBhdXRvOworICAg
IHVzZXItem9vbTogem9vbTsKKyAgICBvcmllbnRhdGlvbjogYXV0bzsKKyAgICByZXNvbHV0aW9u
OiBhdXRvOworICAgfQorICBdXT48L3N0eWxlPgorICA8c3R5bGUgdHlwZT0idGV4dC9jc3MiPjwh
W0NEQVRBWworICAgLyogQ1NTIGZvciB0aGUgdGVzdCBiZWxvdy4gKi8KKyAgIEAtd2Via2l0LXZp
ZXdwb3J0IHsgd2lkdGg6IDFweDsgaGVpZ2h0OiAxcHg7IHpvb206IDUwJSB9CisgICAvKiBTZXQg
cm9vdCBlbGVtZW50IGZvbnQtc2l6ZSB0byBzb21ldGhpbmcgZGlmZmVyZW50IGZyb20gdGhlIGlu
aXRpYWwKKyAgICAgIGZvbnQtc2l6ZSB0byBtYWtlIHN1cmUgJ3JlbScgYW5kICdlbScgZm9yIEB2
aWV3cG9ydCBpcyBiYXNlZCBvbiB0aGUKKyAgICAgIGluaXRpYWwgZm9udC1zaXplLCBub3QgdGhl
IHJvb3QgZWxlbWVudCBmb250LXNpemUuICovCisgICBodG1sIHsgZm9udC1zaXplOiAycmVtOyB9
CisgICBib2R5IHsgZm9udC1zaXplOiAwLjVyZW07IH0KKyAgXV0+PC9zdHlsZT4KKyAgPHNjcmlw
dCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPjwhW0NEQVRBWworICAgdmFyIHRlc3QgPSBhc3luY190
ZXN0KCJDU1MgVGVzdDogQHZpZXdwb3J0IGNvbnN0cmFpbmVkIC0gZXh0ZW5kZWQgd2lkdGggYW5k
IGhlaWdodCBmb3Igbm9uLWF1dG8gem9vbS4iKTsKKyAgIHdpbmRvdy5vbmxvYWQgPSBmdW5jdGlv
bigpeworCisgICAgdmFyIHRlc3RTdHlsZVNoZWV0ID0gZG9jdW1lbnQuc3R5bGVTaGVldHMuaXRl
bSgxKTsKKworICAgIC8qIERpc2FibGUgdGhlIHN0eWxlc2hlZXQgdGhhdCBjb250YWlucyB0aGUg
QHZpZXdwb3J0IHRvIHRlc3QuICovCisgICAgdGVzdFN0eWxlU2hlZXQuZGlzYWJsZWQgPSB0cnVl
OworCisgICAgLyogSW5pdGlhbGl6ZSBhbiBvYmplY3QgdG8gc3RvcmUgdmlld3BvcnQgdmFsdWVz
IHRvIGJlIHVzZWQgYnkgdGhlIHRlc3QKKyAgICAgICBhc3NlcnRzLiAqLworICAgIHZhciB2aWV3
cG9ydCA9IG5ldyBPYmplY3QoKTsKKworICAgIC8qIEFuIGVsZW1lbnQgd2l0aCB0aGUgc2FtZSBz
aXplIGFzIHRoZSBpbml0aWFsIGNvbnRhaW5pbmcgYmxvY2suICovCisgICAgdmFyIHRlc3RFbG0g
PSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidGVzdCIpOworCisgICAgLyogUmV0cmlldmUgdGhl
IGluaXRpYWwgdmlld3BvcnQgdmFsdWVzIGJlZm9yZSBhcHBseWluZyB0aGUgQHZpZXdwb3J0IHRv
CisgICAgICAgdGVzdC4gKi8KKyAgICB2aWV3cG9ydC5pbml0aWFsV2lkdGggPSB0ZXN0RWxtLm9m
ZnNldFdpZHRoOworICAgIHZpZXdwb3J0LmluaXRpYWxIZWlnaHQgPSB0ZXN0RWxtLm9mZnNldEhl
aWdodDsKKyAgICB2aWV3cG9ydC5mb250U2l6ZSA9IHBhcnNlSW50KGdldENvbXB1dGVkU3R5bGUo
dGVzdEVsbSwgIiIpLmZvbnRTaXplKTsKKworICAgIC8qIEVuYWJsZSB0aGUgc3R5bGVzaGVldCB0
aGF0IGNvbnRhaW5zIHRoZSBAdmlld3BvcnQgdG8gdGVzdC4gKi8KKyAgICB0ZXN0U3R5bGVTaGVl
dC5kaXNhYmxlZCA9IGZhbHNlOworCisgICAgLyogUmV0cmlldmUgdGhlIGFjdHVhbCB2aWV3cG9y
dCB2YWx1ZXMgZm9yIHRoZSB0ZXN0LiAqLworICAgIHZpZXdwb3J0LmFjdHVhbFdpZHRoID0gdGVz
dEVsbS5vZmZzZXRXaWR0aDsKKyAgICB2aWV3cG9ydC5hY3R1YWxIZWlnaHQgPSB0ZXN0RWxtLm9m
ZnNldEhlaWdodDsKKyAgICB2aWV3cG9ydC56b29tID0gdmlld3BvcnQuaW5pdGlhbFdpZHRoIC8g
d2luZG93LmlubmVyV2lkdGg7CisKKyAgICAvKiBDaGVjayB2aWV3cG9ydCB2YWx1ZXMuICovCisg
ICAgdGVzdC5zdGVwKGZ1bmN0aW9uKCl7CisgICAgICAgIGFzc2VydF9lcXVhbHModmlld3BvcnQu
YWN0dWFsV2lkdGgsIDIqdmlld3BvcnQuaW5pdGlhbFdpZHRoKTsgYXNzZXJ0X2FwcHJveF9lcXVh
bHModmlld3BvcnQuYWN0dWFsSGVpZ2h0LCAyKnZpZXdwb3J0LmluaXRpYWxIZWlnaHQsIDEpOwor
ICAgIH0pOworCisgICAgLyogRmluaXNoZWQuIFNob3cgdGhlIHJlc3VsdHMuICovCisgICAgdGVz
dC5kb25lKCk7CisgICAgdGVzdFN0eWxlU2hlZXQuZGlzYWJsZWQgPSB0cnVlOworICAgIGRvY3Vt
ZW50LmdldEVsZW1lbnRCeUlkKCJsb2ciKS5zdHlsZS5kaXNwbGF5ID0gImJsb2NrIjsKKyAgIH0K
KyAgXV0+PC9zY3JpcHQ+CisgPC9oZWFkPgorIDxib2R5PgorICA8ZGl2IGlkPSJ0ZXN0Ij4KKyAg
IDxkaXYgaWQ9ImxvZyI+PC9kaXY+CisgIDwvZGl2PgorIDwvYm9keT4KKzwvaHRtbD4KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2NzczMvZGV2aWNlLWFkYXB0L29wZXJhL3N5bnRheC0wMDEtZXhw
ZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvY3NzMy9kZXZpY2UtYWRhcHQvb3BlcmEvc3ludGF4LTAw
MS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZGQwNjkwOWFkZDJkMGRiMzE0ZTc3MTIzMzJkM2Jk
OTQ3OWVjMzU5OQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2NzczMvZGV2aWNlLWFk
YXB0L29wZXJhL3N5bnRheC0wMDEtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMyBAQAorCitQQVNT
IENTUyBUZXN0OiBAdmlld3BvcnQgc3ludGF4IC0gaW5zaWRlIEBtZWRpYSAKKwpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvY3NzMy9kZXZpY2UtYWRhcHQvb3BlcmEvc3ludGF4LTAwMS54aHRtbCBi
L0xheW91dFRlc3RzL2NzczMvZGV2aWNlLWFkYXB0L29wZXJhL3N5bnRheC0wMDEueGh0bWwKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uMWI2MjZjYmQwYmM0YWU5ZmJmMTVkNGZkMDNiZDRjZDZkMTU3NjQ4YQotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL2NzczMvZGV2aWNlLWFkYXB0L29wZXJhL3N5bnRheC0w
MDEueGh0bWwKQEAgLTAsMCArMSw4NCBAQAorPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0i
VVRGLTgiPz4KKzwhRE9DVFlQRSBodG1sIFBVQkxJQyAiLS8vVzNDLy9EVEQgWEhUTUwgMS4wIFN0
cmljdC8vRU4iICJodHRwOi8vd3d3LnczLm9yZy9UUi94aHRtbDEvRFREL3hodG1sMS1zdHJpY3Qu
ZHRkIj4KKzxodG1sIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sIj4KKyA8aGVh
ZD4KKyAgPHRpdGxlPkNTUyBUZXN0OiBAdmlld3BvcnQgc3ludGF4IC0gaW5zaWRlIEBtZWRpYTwv
dGl0bGU+CisgIDxsaW5rIHJlbD0iYXV0aG9yIiB0aXRsZT0iUnVuZSBMaWxsZXN2ZWVuIiBocmVm
PSJtYWlsdG86cnVuZUBvcGVyYS5jb20iLz4KKyAgPGxpbmsgcmVsPSJoZWxwIiBocmVmPSJodHRw
Oi8vd3d3LnczLm9yZy9UUi9jc3MtZGV2aWNlLWFkYXB0LyNzeW50YXgiLz4KKyAgPG1ldGEgbmFt
ZT0iZmxhZ3MiIGNvbnRlbnQ9InZpc3VhbCBzY3JvbGwgZG9tIiAvPgorICA8bWV0YSBuYW1lPSJh
c3NlcnQiIGNvbnRlbnQ9IkB2aWV3cG9ydCBpcyBhbGxvd2VkIGluc2lkZSBAbWVkaWEuIi8+Cisg
IDxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiIHR5cGU9InRl
eHQvamF2YXNjcmlwdCIgLz4KKyAgPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0
aGFybmVzc3JlcG9ydC5qcyIgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiAvPgorICA8c3R5bGUgdHlw
ZT0idGV4dC9jc3MiPjwhW0NEQVRBWworICAgYm9keSB7IG1hcmdpbjogMDsgfQorICAgaHRtbCwg
Ym9keSwgI3Rlc3QgeyB3aWR0aDogMTAwJTsgaGVpZ2h0OiAxMDAlOyB9CisgICAjbG9nIHsgcGFk
ZGluZzogMWVtOyBkaXNwbGF5OiBub25lOyB9CisgICAvKiBSZXNldCB2aWV3cG9ydCB2YWx1ZXMg
dG8gaW5pdGlhbCB2YWx1ZXMgdG8gaWdub3JlIFVBIHN0eWxlc2hlZXQuICovCisgICBALXdlYmtp
dC12aWV3cG9ydCB7CisgICAgd2lkdGg6IGF1dG87CisgICAgaGVpZ2h0OiBhdXRvOworICAgIHpv
b206IGF1dG87CisgICAgbWluLXpvb206IGF1dG87CisgICAgbWF4LXpvb206IGF1dG87CisgICAg
dXNlci16b29tOiB6b29tOworICAgIG9yaWVudGF0aW9uOiBhdXRvOworICAgIHJlc29sdXRpb246
IGF1dG87CisgICB9CisgIF1dPjwvc3R5bGU+CisgIDxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyI+PCFb
Q0RBVEFbCisgICAvKiBDU1MgZm9yIHRoZSB0ZXN0IGJlbG93LiAqLworICAgQG1lZGlhIGFsbCB7
IEAtd2Via2l0LXZpZXdwb3J0IHsgd2lkdGg6IDUwMHB4OyB9IH0KKyAgIC8qIFNldCByb290IGVs
ZW1lbnQgZm9udC1zaXplIHRvIHNvbWV0aGluZyBkaWZmZXJlbnQgZnJvbSB0aGUgaW5pdGlhbAor
ICAgICAgZm9udC1zaXplIHRvIG1ha2Ugc3VyZSAncmVtJyBhbmQgJ2VtJyBmb3IgQHZpZXdwb3J0
IGlzIGJhc2VkIG9uIHRoZQorICAgICAgaW5pdGlhbCBmb250LXNpemUsIG5vdCB0aGUgcm9vdCBl
bGVtZW50IGZvbnQtc2l6ZS4gKi8KKyAgIGh0bWwgeyBmb250LXNpemU6IDJyZW07IH0KKyAgIGJv
ZHkgeyBmb250LXNpemU6IDAuNXJlbTsgfQorICBdXT48L3N0eWxlPgorICA8c2NyaXB0IHR5cGU9
InRleHQvamF2YXNjcmlwdCI+PCFbQ0RBVEFbCisgICB2YXIgdGVzdCA9IGFzeW5jX3Rlc3QoIkNT
UyBUZXN0OiBAdmlld3BvcnQgc3ludGF4IC0gaW5zaWRlIEBtZWRpYSIpOworICAgd2luZG93Lm9u
bG9hZCA9IGZ1bmN0aW9uKCl7CisKKyAgICB2YXIgdGVzdFN0eWxlU2hlZXQgPSBkb2N1bWVudC5z
dHlsZVNoZWV0cy5pdGVtKDEpOworCisgICAgLyogRGlzYWJsZSB0aGUgc3R5bGVzaGVldCB0aGF0
IGNvbnRhaW5zIHRoZSBAdmlld3BvcnQgdG8gdGVzdC4gKi8KKyAgICB0ZXN0U3R5bGVTaGVldC5k
aXNhYmxlZCA9IHRydWU7CisKKyAgICAvKiBJbml0aWFsaXplIGFuIG9iamVjdCB0byBzdG9yZSB2
aWV3cG9ydCB2YWx1ZXMgdG8gYmUgdXNlZCBieSB0aGUgdGVzdAorICAgICAgIGFzc2VydHMuICov
CisgICAgdmFyIHZpZXdwb3J0ID0gbmV3IE9iamVjdCgpOworCisgICAgLyogQW4gZWxlbWVudCB3
aXRoIHRoZSBzYW1lIHNpemUgYXMgdGhlIGluaXRpYWwgY29udGFpbmluZyBibG9jay4gKi8KKyAg
ICB2YXIgdGVzdEVsbSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0ZXN0Iik7CisKKyAgICAv
KiBSZXRyaWV2ZSB0aGUgaW5pdGlhbCB2aWV3cG9ydCB2YWx1ZXMgYmVmb3JlIGFwcGx5aW5nIHRo
ZSBAdmlld3BvcnQgdG8KKyAgICAgICB0ZXN0LiAqLworICAgIHZpZXdwb3J0LmluaXRpYWxXaWR0
aCA9IHRlc3RFbG0ub2Zmc2V0V2lkdGg7CisgICAgdmlld3BvcnQuaW5pdGlhbEhlaWdodCA9IHRl
c3RFbG0ub2Zmc2V0SGVpZ2h0OworICAgIHZpZXdwb3J0LmZvbnRTaXplID0gcGFyc2VJbnQoZ2V0
Q29tcHV0ZWRTdHlsZSh0ZXN0RWxtLCAiIikuZm9udFNpemUpOworCisgICAgLyogRW5hYmxlIHRo
ZSBzdHlsZXNoZWV0IHRoYXQgY29udGFpbnMgdGhlIEB2aWV3cG9ydCB0byB0ZXN0LiAqLworICAg
IHRlc3RTdHlsZVNoZWV0LmRpc2FibGVkID0gZmFsc2U7CisKKyAgICAvKiBSZXRyaWV2ZSB0aGUg
YWN0dWFsIHZpZXdwb3J0IHZhbHVlcyBmb3IgdGhlIHRlc3QuICovCisgICAgdmlld3BvcnQuYWN0
dWFsV2lkdGggPSB0ZXN0RWxtLm9mZnNldFdpZHRoOworICAgIHZpZXdwb3J0LmFjdHVhbEhlaWdo
dCA9IHRlc3RFbG0ub2Zmc2V0SGVpZ2h0OworICAgIHZpZXdwb3J0Lnpvb20gPSB2aWV3cG9ydC5p
bml0aWFsV2lkdGggLyB3aW5kb3cuaW5uZXJXaWR0aDsKKworICAgIC8qIENoZWNrIHZpZXdwb3J0
IHZhbHVlcy4gKi8KKyAgICB0ZXN0LnN0ZXAoZnVuY3Rpb24oKXsKKyAgICAgICAgYXNzZXJ0X2Vx
dWFscyh2aWV3cG9ydC5hY3R1YWxXaWR0aCwgNTAwKTsKKyAgICB9KTsKKworICAgIC8qIEZpbmlz
aGVkLiBTaG93IHRoZSByZXN1bHRzLiAqLworICAgIHRlc3QuZG9uZSgpOworICAgIHRlc3RTdHls
ZVNoZWV0LmRpc2FibGVkID0gdHJ1ZTsKKyAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgibG9n
Iikuc3R5bGUuZGlzcGxheSA9ICJibG9jayI7CisgICB9CisgIF1dPjwvc2NyaXB0PgorIDwvaGVh
ZD4KKyA8Ym9keT4KKyAgPGRpdiBpZD0idGVzdCI+CisgICA8ZGl2IGlkPSJsb2ciPjwvZGl2Pgor
ICA8L2Rpdj4KKyA8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9jc3Mz
L2RldmljZS1hZGFwdC9vcGVyYS9zeW50YXgtMDAyLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3Rz
L2NzczMvZGV2aWNlLWFkYXB0L29wZXJhL3N5bnRheC0wMDItZXhwZWN0ZWQudHh0Cm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLmIzNGZjYmQ3MWIwZDQ0NGVhN2Y0MmM3ZjRmMTQzZjliZTNkMzA4MDYKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy9jc3MzL2RldmljZS1hZGFwdC9vcGVyYS9zeW50YXgtMDAyLWV4
cGVjdGVkLnR4dApAQCAtMCwwICsxLDMgQEAKKworUEFTUyBDU1MgVGVzdDogQHZpZXdwb3J0IHN5
bnRheCAtIHVua25vd24gZGVzY3JpcHRvciAKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvY3Nz
My9kZXZpY2UtYWRhcHQvb3BlcmEvc3ludGF4LTAwMi54aHRtbCBiL0xheW91dFRlc3RzL2NzczMv
ZGV2aWNlLWFkYXB0L29wZXJhL3N5bnRheC0wMDIueGh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNGUwZGMyYjZi
NmMyNTc5N2M4NWRmN2NmZWRlMDNkMDYyNDhlMzdjZgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL2NzczMvZGV2aWNlLWFkYXB0L29wZXJhL3N5bnRheC0wMDIueGh0bWwKQEAgLTAsMCAr
MSw4NCBAQAorPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KKzwhRE9DVFlQ
RSBodG1sIFBVQkxJQyAiLS8vVzNDLy9EVEQgWEhUTUwgMS4wIFN0cmljdC8vRU4iICJodHRwOi8v
d3d3LnczLm9yZy9UUi94aHRtbDEvRFREL3hodG1sMS1zdHJpY3QuZHRkIj4KKzxodG1sIHhtbG5z
PSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sIj4KKyA8aGVhZD4KKyAgPHRpdGxlPkNTUyBU
ZXN0OiBAdmlld3BvcnQgc3ludGF4IC0gdW5rbm93biBkZXNjcmlwdG9yPC90aXRsZT4KKyAgPGxp
bmsgcmVsPSJhdXRob3IiIHRpdGxlPSJSdW5lIExpbGxlc3ZlZW4iIGhyZWY9Im1haWx0bzpydW5l
QG9wZXJhLmNvbSIvPgorICA8bGluayByZWw9ImhlbHAiIGhyZWY9Imh0dHA6Ly93d3cudzMub3Jn
L1RSL2Nzcy1kZXZpY2UtYWRhcHQvI3N5bnRheCIvPgorICA8bWV0YSBuYW1lPSJmbGFncyIgY29u
dGVudD0idmlzdWFsIHNjcm9sbCBkb20gaW52YWxpZCIgLz4KKyAgPG1ldGEgbmFtZT0iYXNzZXJ0
IiBjb250ZW50PSJEZXNjcmlwdG9ycyBhZnRlciB1bmtub3duIGRlc2NyaXB0b3IgZGVjbGFyYXRp
b24gaW4gQHZpZXdwb3J0IGlzIHJlY29nbml6ZWQuIi8+CisgIDxzY3JpcHQgc3JjPSIuLi8uLi8u
Li9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiIHR5cGU9InRleHQvamF2YXNjcmlwdCIgLz4KKyAg
PHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyIgdHlw
ZT0idGV4dC9qYXZhc2NyaXB0IiAvPgorICA8c3R5bGUgdHlwZT0idGV4dC9jc3MiPjwhW0NEQVRB
WworICAgYm9keSB7IG1hcmdpbjogMDsgfQorICAgaHRtbCwgYm9keSwgI3Rlc3QgeyB3aWR0aDog
MTAwJTsgaGVpZ2h0OiAxMDAlOyB9CisgICAjbG9nIHsgcGFkZGluZzogMWVtOyBkaXNwbGF5OiBu
b25lOyB9CisgICAvKiBSZXNldCB2aWV3cG9ydCB2YWx1ZXMgdG8gaW5pdGlhbCB2YWx1ZXMgdG8g
aWdub3JlIFVBIHN0eWxlc2hlZXQuICovCisgICBALXdlYmtpdC12aWV3cG9ydCB7CisgICAgd2lk
dGg6IGF1dG87CisgICAgaGVpZ2h0OiBhdXRvOworICAgIHpvb206IGF1dG87CisgICAgbWluLXpv
b206IGF1dG87CisgICAgbWF4LXpvb206IGF1dG87CisgICAgdXNlci16b29tOiB6b29tOworICAg
IG9yaWVudGF0aW9uOiBhdXRvOworICAgIHJlc29sdXRpb246IGF1dG87CisgICB9CisgIF1dPjwv
c3R5bGU+CisgIDxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyI+PCFbQ0RBVEFbCisgICAvKiBDU1MgZm9y
IHRoZSB0ZXN0IGJlbG93LiAqLworICAgQC13ZWJraXQtdmlld3BvcnQgeyBhOiBiOyB3aWR0aDog
NTAwcHggfQorICAgLyogU2V0IHJvb3QgZWxlbWVudCBmb250LXNpemUgdG8gc29tZXRoaW5nIGRp
ZmZlcmVudCBmcm9tIHRoZSBpbml0aWFsCisgICAgICBmb250LXNpemUgdG8gbWFrZSBzdXJlICdy
ZW0nIGFuZCAnZW0nIGZvciBAdmlld3BvcnQgaXMgYmFzZWQgb24gdGhlCisgICAgICBpbml0aWFs
IGZvbnQtc2l6ZSwgbm90IHRoZSByb290IGVsZW1lbnQgZm9udC1zaXplLiAqLworICAgaHRtbCB7
IGZvbnQtc2l6ZTogMnJlbTsgfQorICAgYm9keSB7IGZvbnQtc2l6ZTogMC41cmVtOyB9CisgIF1d
Pjwvc3R5bGU+CisgIDxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij48IVtDREFUQVsKKyAg
IHZhciB0ZXN0ID0gYXN5bmNfdGVzdCgiQ1NTIFRlc3Q6IEB2aWV3cG9ydCBzeW50YXggLSB1bmtu
b3duIGRlc2NyaXB0b3IiKTsKKyAgIHdpbmRvdy5vbmxvYWQgPSBmdW5jdGlvbigpeworCisgICAg
dmFyIHRlc3RTdHlsZVNoZWV0ID0gZG9jdW1lbnQuc3R5bGVTaGVldHMuaXRlbSgxKTsKKworICAg
IC8qIERpc2FibGUgdGhlIHN0eWxlc2hlZXQgdGhhdCBjb250YWlucyB0aGUgQHZpZXdwb3J0IHRv
IHRlc3QuICovCisgICAgdGVzdFN0eWxlU2hlZXQuZGlzYWJsZWQgPSB0cnVlOworCisgICAgLyog
SW5pdGlhbGl6ZSBhbiBvYmplY3QgdG8gc3RvcmUgdmlld3BvcnQgdmFsdWVzIHRvIGJlIHVzZWQg
YnkgdGhlIHRlc3QKKyAgICAgICBhc3NlcnRzLiAqLworICAgIHZhciB2aWV3cG9ydCA9IG5ldyBP
YmplY3QoKTsKKworICAgIC8qIEFuIGVsZW1lbnQgd2l0aCB0aGUgc2FtZSBzaXplIGFzIHRoZSBp
bml0aWFsIGNvbnRhaW5pbmcgYmxvY2suICovCisgICAgdmFyIHRlc3RFbG0gPSBkb2N1bWVudC5n
ZXRFbGVtZW50QnlJZCgidGVzdCIpOworCisgICAgLyogUmV0cmlldmUgdGhlIGluaXRpYWwgdmll
d3BvcnQgdmFsdWVzIGJlZm9yZSBhcHBseWluZyB0aGUgQHZpZXdwb3J0IHRvCisgICAgICAgdGVz
dC4gKi8KKyAgICB2aWV3cG9ydC5pbml0aWFsV2lkdGggPSB0ZXN0RWxtLm9mZnNldFdpZHRoOwor
ICAgIHZpZXdwb3J0LmluaXRpYWxIZWlnaHQgPSB0ZXN0RWxtLm9mZnNldEhlaWdodDsKKyAgICB2
aWV3cG9ydC5mb250U2l6ZSA9IHBhcnNlSW50KGdldENvbXB1dGVkU3R5bGUodGVzdEVsbSwgIiIp
LmZvbnRTaXplKTsKKworICAgIC8qIEVuYWJsZSB0aGUgc3R5bGVzaGVldCB0aGF0IGNvbnRhaW5z
IHRoZSBAdmlld3BvcnQgdG8gdGVzdC4gKi8KKyAgICB0ZXN0U3R5bGVTaGVldC5kaXNhYmxlZCA9
IGZhbHNlOworCisgICAgLyogUmV0cmlldmUgdGhlIGFjdHVhbCB2aWV3cG9ydCB2YWx1ZXMgZm9y
IHRoZSB0ZXN0LiAqLworICAgIHZpZXdwb3J0LmFjdHVhbFdpZHRoID0gdGVzdEVsbS5vZmZzZXRX
aWR0aDsKKyAgICB2aWV3cG9ydC5hY3R1YWxIZWlnaHQgPSB0ZXN0RWxtLm9mZnNldEhlaWdodDsK
KyAgICB2aWV3cG9ydC56b29tID0gdmlld3BvcnQuaW5pdGlhbFdpZHRoIC8gd2luZG93LmlubmVy
V2lkdGg7CisKKyAgICAvKiBDaGVjayB2aWV3cG9ydCB2YWx1ZXMuICovCisgICAgdGVzdC5zdGVw
KGZ1bmN0aW9uKCl7CisgICAgICAgIGFzc2VydF9lcXVhbHModmlld3BvcnQuYWN0dWFsV2lkdGgs
IDUwMCk7CisgICAgfSk7CisKKyAgICAvKiBGaW5pc2hlZC4gU2hvdyB0aGUgcmVzdWx0cy4gKi8K
KyAgICB0ZXN0LmRvbmUoKTsKKyAgICB0ZXN0U3R5bGVTaGVldC5kaXNhYmxlZCA9IHRydWU7Cisg
ICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImxvZyIpLnN0eWxlLmRpc3BsYXkgPSAiYmxvY2si
OworICAgfQorICBdXT48L3NjcmlwdD4KKyA8L2hlYWQ+CisgPGJvZHk+CisgIDxkaXYgaWQ9InRl
c3QiPgorICAgPGRpdiBpZD0ibG9nIj48L2Rpdj4KKyAgPC9kaXY+CisgPC9ib2R5PgorPC9odG1s
PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvY3NzMy9kZXZpY2UtYWRhcHQvb3BlcmEvc3ludGF4
LTAwMy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9jc3MzL2RldmljZS1hZGFwdC9vcGVyYS9z
eW50YXgtMDAzLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40ZThlMzVlNzA1MzFkNmFjMTUzN2U4
N2M1ZjJmNTY5NDVhYzc5ZDA2Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvY3NzMy9k
ZXZpY2UtYWRhcHQvb3BlcmEvc3ludGF4LTAwMy1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwzIEBA
CisKK1BBU1MgQ1NTIFRlc3Q6IEB2aWV3cG9ydCBzeW50YXggLSBkZXNjcmlwdG9yIHJlY292ZXJ5
IAorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9jc3MzL2RldmljZS1hZGFwdC9vcGVyYS9zeW50
YXgtMDAzLnhodG1sIGIvTGF5b3V0VGVzdHMvY3NzMy9kZXZpY2UtYWRhcHQvb3BlcmEvc3ludGF4
LTAwMy54aHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mN2YxZDJhNzU5YjE2M2MyNWE5YjcwOGZkODE1NGZlN2Yw
ZDNjYTEzCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvY3NzMy9kZXZpY2UtYWRhcHQv
b3BlcmEvc3ludGF4LTAwMy54aHRtbApAQCAtMCwwICsxLDg0IEBACis8P3htbCB2ZXJzaW9uPSIx
LjAiIGVuY29kaW5nPSJVVEYtOCI/PgorPCFET0NUWVBFIGh0bWwgUFVCTElDICItLy9XM0MvL0RU
RCBYSFRNTCAxLjAgU3RyaWN0Ly9FTiIgImh0dHA6Ly93d3cudzMub3JnL1RSL3hodG1sMS9EVEQv
eGh0bWwxLXN0cmljdC5kdGQiPgorPGh0bWwgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkv
eGh0bWwiPgorIDxoZWFkPgorICA8dGl0bGU+Q1NTIFRlc3Q6IEB2aWV3cG9ydCBzeW50YXggLSBk
ZXNjcmlwdG9yIHJlY292ZXJ5PC90aXRsZT4KKyAgPGxpbmsgcmVsPSJhdXRob3IiIHRpdGxlPSJS
dW5lIExpbGxlc3ZlZW4iIGhyZWY9Im1haWx0bzpydW5lQG9wZXJhLmNvbSIvPgorICA8bGluayBy
ZWw9ImhlbHAiIGhyZWY9Imh0dHA6Ly93d3cudzMub3JnL1RSL2Nzcy1kZXZpY2UtYWRhcHQvI3N5
bnRheCIvPgorICA8bWV0YSBuYW1lPSJmbGFncyIgY29udGVudD0idmlzdWFsIHNjcm9sbCBkb20g
aW52YWxpZCIgLz4KKyAgPG1ldGEgbmFtZT0iYXNzZXJ0IiBjb250ZW50PSJAdmlld3BvcnQgc3Vw
cG9ydHMgZm9yd2FyZCBjb21wYXRpYmxlIHBhcnNpbmcgZm9yIGRlc2NyaXB0b3JzLiIvPgorICA8
c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIiB0eXBlPSJ0ZXh0
L2phdmFzY3JpcHQiIC8+CisgIDxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhh
cm5lc3NyZXBvcnQuanMiIHR5cGU9InRleHQvamF2YXNjcmlwdCIgLz4KKyAgPHN0eWxlIHR5cGU9
InRleHQvY3NzIj48IVtDREFUQVsKKyAgIGJvZHkgeyBtYXJnaW46IDA7IH0KKyAgIGh0bWwsIGJv
ZHksICN0ZXN0IHsgd2lkdGg6IDEwMCU7IGhlaWdodDogMTAwJTsgfQorICAgI2xvZyB7IHBhZGRp
bmc6IDFlbTsgZGlzcGxheTogbm9uZTsgfQorICAgLyogUmVzZXQgdmlld3BvcnQgdmFsdWVzIHRv
IGluaXRpYWwgdmFsdWVzIHRvIGlnbm9yZSBVQSBzdHlsZXNoZWV0LiAqLworICAgQC13ZWJraXQt
dmlld3BvcnQgeworICAgIHdpZHRoOiBhdXRvOworICAgIGhlaWdodDogYXV0bzsKKyAgICB6b29t
OiBhdXRvOworICAgIG1pbi16b29tOiBhdXRvOworICAgIG1heC16b29tOiBhdXRvOworICAgIHVz
ZXItem9vbTogem9vbTsKKyAgICBvcmllbnRhdGlvbjogYXV0bzsKKyAgICByZXNvbHV0aW9uOiBh
dXRvOworICAgfQorICBdXT48L3N0eWxlPgorICA8c3R5bGUgdHlwZT0idGV4dC9jc3MiPjwhW0NE
QVRBWworICAgLyogQ1NTIGZvciB0aGUgdGVzdCBiZWxvdy4gKi8KKyAgIEAtd2Via2l0LXZpZXdw
b3J0IHsgd2lkdGg6IDUwMHB4OyB3aWR0aDogMjAwcHggeDogeyAhaW1wb3J0YW50IFtdfTsgaGVp
Z2h0OiA3MDBweCB9CisgICAvKiBTZXQgcm9vdCBlbGVtZW50IGZvbnQtc2l6ZSB0byBzb21ldGhp
bmcgZGlmZmVyZW50IGZyb20gdGhlIGluaXRpYWwKKyAgICAgIGZvbnQtc2l6ZSB0byBtYWtlIHN1
cmUgJ3JlbScgYW5kICdlbScgZm9yIEB2aWV3cG9ydCBpcyBiYXNlZCBvbiB0aGUKKyAgICAgIGlu
aXRpYWwgZm9udC1zaXplLCBub3QgdGhlIHJvb3QgZWxlbWVudCBmb250LXNpemUuICovCisgICBo
dG1sIHsgZm9udC1zaXplOiAycmVtOyB9CisgICBib2R5IHsgZm9udC1zaXplOiAwLjVyZW07IH0K
KyAgXV0+PC9zdHlsZT4KKyAgPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPjwhW0NEQVRB
WworICAgdmFyIHRlc3QgPSBhc3luY190ZXN0KCJDU1MgVGVzdDogQHZpZXdwb3J0IHN5bnRheCAt
IGRlc2NyaXB0b3IgcmVjb3ZlcnkiKTsKKyAgIHdpbmRvdy5vbmxvYWQgPSBmdW5jdGlvbigpewor
CisgICAgdmFyIHRlc3RTdHlsZVNoZWV0ID0gZG9jdW1lbnQuc3R5bGVTaGVldHMuaXRlbSgxKTsK
KworICAgIC8qIERpc2FibGUgdGhlIHN0eWxlc2hlZXQgdGhhdCBjb250YWlucyB0aGUgQHZpZXdw
b3J0IHRvIHRlc3QuICovCisgICAgdGVzdFN0eWxlU2hlZXQuZGlzYWJsZWQgPSB0cnVlOworCisg
ICAgLyogSW5pdGlhbGl6ZSBhbiBvYmplY3QgdG8gc3RvcmUgdmlld3BvcnQgdmFsdWVzIHRvIGJl
IHVzZWQgYnkgdGhlIHRlc3QKKyAgICAgICBhc3NlcnRzLiAqLworICAgIHZhciB2aWV3cG9ydCA9
IG5ldyBPYmplY3QoKTsKKworICAgIC8qIEFuIGVsZW1lbnQgd2l0aCB0aGUgc2FtZSBzaXplIGFz
IHRoZSBpbml0aWFsIGNvbnRhaW5pbmcgYmxvY2suICovCisgICAgdmFyIHRlc3RFbG0gPSBkb2N1
bWVudC5nZXRFbGVtZW50QnlJZCgidGVzdCIpOworCisgICAgLyogUmV0cmlldmUgdGhlIGluaXRp
YWwgdmlld3BvcnQgdmFsdWVzIGJlZm9yZSBhcHBseWluZyB0aGUgQHZpZXdwb3J0IHRvCisgICAg
ICAgdGVzdC4gKi8KKyAgICB2aWV3cG9ydC5pbml0aWFsV2lkdGggPSB0ZXN0RWxtLm9mZnNldFdp
ZHRoOworICAgIHZpZXdwb3J0LmluaXRpYWxIZWlnaHQgPSB0ZXN0RWxtLm9mZnNldEhlaWdodDsK
KyAgICB2aWV3cG9ydC5mb250U2l6ZSA9IHBhcnNlSW50KGdldENvbXB1dGVkU3R5bGUodGVzdEVs
bSwgIiIpLmZvbnRTaXplKTsKKworICAgIC8qIEVuYWJsZSB0aGUgc3R5bGVzaGVldCB0aGF0IGNv
bnRhaW5zIHRoZSBAdmlld3BvcnQgdG8gdGVzdC4gKi8KKyAgICB0ZXN0U3R5bGVTaGVldC5kaXNh
YmxlZCA9IGZhbHNlOworCisgICAgLyogUmV0cmlldmUgdGhlIGFjdHVhbCB2aWV3cG9ydCB2YWx1
ZXMgZm9yIHRoZSB0ZXN0LiAqLworICAgIHZpZXdwb3J0LmFjdHVhbFdpZHRoID0gdGVzdEVsbS5v
ZmZzZXRXaWR0aDsKKyAgICB2aWV3cG9ydC5hY3R1YWxIZWlnaHQgPSB0ZXN0RWxtLm9mZnNldEhl
aWdodDsKKyAgICB2aWV3cG9ydC56b29tID0gdmlld3BvcnQuaW5pdGlhbFdpZHRoIC8gd2luZG93
LmlubmVyV2lkdGg7CisKKyAgICAvKiBDaGVjayB2aWV3cG9ydCB2YWx1ZXMuICovCisgICAgdGVz
dC5zdGVwKGZ1bmN0aW9uKCl7CisgICAgICAgIGFzc2VydF9lcXVhbHModmlld3BvcnQuYWN0dWFs
V2lkdGgsIDUwMCk7IGFzc2VydF9lcXVhbHModmlld3BvcnQuYWN0dWFsSGVpZ2h0LCA3MDApOwor
ICAgIH0pOworCisgICAgLyogRmluaXNoZWQuIFNob3cgdGhlIHJlc3VsdHMuICovCisgICAgdGVz
dC5kb25lKCk7CisgICAgdGVzdFN0eWxlU2hlZXQuZGlzYWJsZWQgPSB0cnVlOworICAgIGRvY3Vt
ZW50LmdldEVsZW1lbnRCeUlkKCJsb2ciKS5zdHlsZS5kaXNwbGF5ID0gImJsb2NrIjsKKyAgIH0K
KyAgXV0+PC9zY3JpcHQ+CisgPC9oZWFkPgorIDxib2R5PgorICA8ZGl2IGlkPSJ0ZXN0Ij4KKyAg
IDxkaXYgaWQ9ImxvZyI+PC9kaXY+CisgIDwvZGl2PgorIDwvYm9keT4KKzwvaHRtbD4KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2VmbC9UZXN0RXhwZWN0YXRpb25zIGIvTGF5b3V0
VGVzdHMvcGxhdGZvcm0vZWZsL1Rlc3RFeHBlY3RhdGlvbnMKaW5kZXggZDVhZDVlNjhlNjZmNjBm
ZDI1NzhlNjNjMDY0Y2M4MmE3ZWZlNTZhOC4uMTMxMzc3Y2ZlMTg4NThkZmM3YjNlODk4NmMxNDAw
ZDZkYjhkYjE4OSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZWZsL1Rlc3RFeHBl
Y3RhdGlvbnMKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZWZsL1Rlc3RFeHBlY3RhdGlvbnMK
QEAgLTEyMTAsNiArMTIxMCwzMSBAQCB3ZWJraXQub3JnL2IvODQ4MzUgZWRpdGluZy9leGVjQ29t
bWFuZC80MTI4MDgwLTIuaHRtbCBbIEZhaWx1cmUgXQogd2Via2l0Lm9yZy9iLzg0ODM1IGVkaXRp
bmcvZXhlY0NvbW1hbmQvY29weS13aXRob3V0LXNlbGVjdGlvbi5odG1sIFsgRmFpbHVyZSBdCiB3
ZWJraXQub3JnL2IvODQ4MzUgZWRpdGluZy9leGVjQ29tbWFuZC9maW5kU3RyaW5nLWRpYWNyaXRp
Y2Fscy5odG1sIFsgRmFpbHVyZSBdCiAKKyMgVGhlc2UgdGVzdHMgYXJlIHBhc3Npbmcgd2hlbiBy
dW5uaW5nIG9uIHRoZSBNaW5pQnJvd3NlciwgYnV0IGZhaWxpbmcgb24KKyMgV2ViS2l0VGVzdFJ1
bm5lciBiZWNhdXNlIGl0IGRvZXNuJ3Qgc3VwcG9ydCBmaXhlZCBsYXlvdXQuCit3ZWJraXQub3Jn
L2IvMTAyNTE3IGNzczMvZGV2aWNlLWFkYXB0L29wZXJhL2Nhc2NhZGluZy0wMDEueGh0bWwgWyBG
YWlsdXJlIF0KK3dlYmtpdC5vcmcvYi8xMDI1MTcgY3NzMy9kZXZpY2UtYWRhcHQvb3BlcmEvY2Fz
Y2FkaW5nLTAwMi54aHRtbCBbIEZhaWx1cmUgXQord2Via2l0Lm9yZy9iLzEwMjUxNyBjc3MzL2Rl
dmljZS1hZGFwdC9vcGVyYS9jYXNjYWRpbmctMDAzLnhodG1sIFsgRmFpbHVyZSBdCit3ZWJraXQu
b3JnL2IvMTAyNTE3IGNzczMvZGV2aWNlLWFkYXB0L29wZXJhL2Nhc2NhZGluZy0wMDQueGh0bWwg
WyBGYWlsdXJlIF0KK3dlYmtpdC5vcmcvYi8xMDI1MTcgY3NzMy9kZXZpY2UtYWRhcHQvb3BlcmEv
Y29uc3RyYWluLTAwMS54aHRtbCBbIEZhaWx1cmUgXQord2Via2l0Lm9yZy9iLzEwMjUxNyBjc3Mz
L2RldmljZS1hZGFwdC9vcGVyYS9jb25zdHJhaW4tMDA0LnhodG1sIFsgRmFpbHVyZSBdCit3ZWJr
aXQub3JnL2IvMTAyNTE3IGNzczMvZGV2aWNlLWFkYXB0L29wZXJhL2NvbnN0cmFpbi0wMDUueGh0
bWwgWyBGYWlsdXJlIF0KK3dlYmtpdC5vcmcvYi8xMDI1MTcgY3NzMy9kZXZpY2UtYWRhcHQvb3Bl
cmEvY29uc3RyYWluLTAwNi54aHRtbCBbIEZhaWx1cmUgXQord2Via2l0Lm9yZy9iLzEwMjUxNyBj
c3MzL2RldmljZS1hZGFwdC9vcGVyYS9jb25zdHJhaW4tMDA3LnhodG1sIFsgRmFpbHVyZSBdCit3
ZWJraXQub3JnL2IvMTAyNTE3IGNzczMvZGV2aWNlLWFkYXB0L29wZXJhL2NvbnN0cmFpbi0wMDgu
eGh0bWwgWyBGYWlsdXJlIF0KK3dlYmtpdC5vcmcvYi8xMDI1MTcgY3NzMy9kZXZpY2UtYWRhcHQv
b3BlcmEvY29uc3RyYWluLTAwOS54aHRtbCBbIEZhaWx1cmUgXQord2Via2l0Lm9yZy9iLzEwMjUx
NyBjc3MzL2RldmljZS1hZGFwdC9vcGVyYS9jb25zdHJhaW4tMDEwLnhodG1sIFsgRmFpbHVyZSBd
Cit3ZWJraXQub3JnL2IvMTAyNTE3IGNzczMvZGV2aWNlLWFkYXB0L29wZXJhL2NvbnN0cmFpbi0w
MTEueGh0bWwgWyBGYWlsdXJlIF0KK3dlYmtpdC5vcmcvYi8xMDI1MTcgY3NzMy9kZXZpY2UtYWRh
cHQvb3BlcmEvY29uc3RyYWluLTAxMy54aHRtbCBbIEZhaWx1cmUgXQord2Via2l0Lm9yZy9iLzEw
MjUxNyBjc3MzL2RldmljZS1hZGFwdC9vcGVyYS9jb25zdHJhaW4tMDE0LnhodG1sIFsgRmFpbHVy
ZSBdCit3ZWJraXQub3JnL2IvMTAyNTE3IGNzczMvZGV2aWNlLWFkYXB0L29wZXJhL2NvbnN0cmFp
bi0wMTUueGh0bWwgWyBGYWlsdXJlIF0KK3dlYmtpdC5vcmcvYi8xMDI1MTcgY3NzMy9kZXZpY2Ut
YWRhcHQvb3BlcmEvY29uc3RyYWluLTAxNi54aHRtbCBbIEZhaWx1cmUgXQord2Via2l0Lm9yZy9i
LzEwMjUxNyBjc3MzL2RldmljZS1hZGFwdC9vcGVyYS9jb25zdHJhaW4tMDE3LnhodG1sIFsgRmFp
bHVyZSBdCit3ZWJraXQub3JnL2IvMTAyNTE3IGNzczMvZGV2aWNlLWFkYXB0L29wZXJhL2NvbnN0
cmFpbi0wMjAueGh0bWwgWyBGYWlsdXJlIF0KK3dlYmtpdC5vcmcvYi8xMDI1MTcgY3NzMy9kZXZp
Y2UtYWRhcHQvb3BlcmEvc3ludGF4LTAwMS54aHRtbCBbIEZhaWx1cmUgXQord2Via2l0Lm9yZy9i
LzEwMjUxNyBjc3MzL2RldmljZS1hZGFwdC9vcGVyYS9zeW50YXgtMDAyLnhodG1sIFsgRmFpbHVy
ZSBdCit3ZWJraXQub3JnL2IvMTAyNTE3IGNzczMvZGV2aWNlLWFkYXB0L29wZXJhL3N5bnRheC0w
MDMueGh0bWwgWyBGYWlsdXJlIF0KKwogIyBEUlQgZG9lc24ndCBjaGVjayBmb3IgaXNQcmludGlu
ZygpLgogd2Via2l0Lm9yZy9iLzg3MjI2IHByaW50aW5nL2lmcmFtZS1wcmludC5odG1sIFsgRmFp
bHVyZSBdCiB3ZWJraXQub3JnL2IvODcyMjYgcHJpbnRpbmcvbWVkaWEtcXVlcmllcy1wcmludC5o
dG1sIFsgTWlzc2luZyBdCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>174981</attachid>
            <date>2012-11-19 07:47:39 -0800</date>
            <delta_ts>2012-11-19 08:37:42 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-95964-20121119174936.patch</filename>
            <type>text/plain</type>
            <size>143532</size>
            <attacher name="Thiago Marcos P. Santos">tmpsantos</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM1MTQ5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNmE2YTAxM2VhMDMwMzEw
YzkxZWJjY2Y5NDExNjk5ZWRkODBkYmM1MS4uMjczMTk4ZTY1ZTg4YzQwYTkwOTZlYmE4ZTY1ZTU4
ZjNiZjA1ODczYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDg4IEBACisyMDEyLTExLTE5ICBUaGlh
Z28gTWFyY29zIFAuIFNhbnRvcyAgPHRoaWFnby5zYW50b3NAaW50ZWwuY29tPgorCisgICAgICAg
IEFwcGx5IHRoZSByZXNvbHZlZCB2aWV3cG9ydCBydWxlcworICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTU5NjQKKworICAgICAgICBSZXZpZXdlZCBieSBL
ZW5uZXRoIFJvaGRlIENocmlzdGlhbnNlbi4KKworICAgICAgICBUaGlzIHBhdGNoIGltcGxlbWVu
dHMgdGhlIENTUyBEZXZpY2UgQWRhcHRhdGlvbiBzcGVjaWZpY2F0aW9uLiBUaGUKKyAgICAgICAg
V2ViS2l0IGltcGxlbWVudGF0aW9uIHJlbGllcyBvbiB0aGUgYWxyZWFkeSBpbXBsZW1lbnRlZCBW
aWV3cG9ydCBNZXRhCisgICAgICAgIGluZnJhc3RydWN0dXJlIHRvIG5vdGlmeSB0aGUgYnJvd3Nl
ciBvZiB2aWV3cG9ydCBjaGFuZ2VzLgorCisgICAgICAgIFRoZSBpbXBsZW1lbnRhdGlvbiB3YXMg
dGVzdHMgd2l0aCBzdWNjZXNzIG9uIHRoZSBRdCBhbmQgRUZMIHBvcnRzLCBidXQKKyAgICAgICAg
YmFzaWNhbGx5IGV2ZXJ5IHBvcnQgc3VwcG9ydGluZyBWaWV3cG9ydCBNZXRhIHNob3VsZCBiZSBm
aW5lLgorCisgICAgICAgIFRoZSB1c2FnZSBvZiBALXdlYmtpdC12aWV3cG9ydCBpbnNpZGUgbWVk
aWEgcXVlcmllcyAobW9yZSB0ZXN0cyBjb21pbmcKKyAgICAgICAgdG8gbWFwIGFsbCB0aGUgY29y
bmVyIGNhc2VzKSBpcyBjdXJyZW50bHkgbGltaXRlZCB3aGVuIHRoZSBtZWRpYSBxdWVyeQorICAg
ICAgICBkZXBlbmRzIG9uIHRoZSB2aWV3cG9ydCBkaW1lbnNpb25zIGl0c2VsZi4gRGVmaW5pbmcg
dGhlIHdpZHRoIGFuZCBoZWlnaHQKKyAgICAgICAgYmFzZWQgb24gc2NyZWVuIHNpemUgd2lsbCBm
YWlsIG9uIHBvcnRzIHJlcG9ydGluZyB0aGUgc2NyZWVuCisgICAgICAgIHNpemUgYXMgdGhlIHNp
emUgb2YgdGhlIGJyb3dzZXIgd2luZG93IGluc3RlYWQgb2YgdGhlIGRldmljZSBzY3JlZW4uCisK
KyAgICAgICAgVGVzdHM6IGNzczMvZGV2aWNlLWFkYXB0L29wZXJhL2Nhc2NhZGluZy0wMDEueGh0
bWwKKyAgICAgICAgICAgICAgIGNzczMvZGV2aWNlLWFkYXB0L29wZXJhL2Nhc2NhZGluZy0wMDIu
eGh0bWwKKyAgICAgICAgICAgICAgIGNzczMvZGV2aWNlLWFkYXB0L29wZXJhL2Nhc2NhZGluZy0w
MDMueGh0bWwKKyAgICAgICAgICAgICAgIGNzczMvZGV2aWNlLWFkYXB0L29wZXJhL2Nhc2NhZGlu
Zy0wMDQueGh0bWwKKyAgICAgICAgICAgICAgIGNzczMvZGV2aWNlLWFkYXB0L29wZXJhL2NvbnN0
cmFpbi0wMDEueGh0bWwKKyAgICAgICAgICAgICAgIGNzczMvZGV2aWNlLWFkYXB0L29wZXJhL2Nv
bnN0cmFpbi0wMDIueGh0bWwKKyAgICAgICAgICAgICAgIGNzczMvZGV2aWNlLWFkYXB0L29wZXJh
L2NvbnN0cmFpbi0wMDMueGh0bWwKKyAgICAgICAgICAgICAgIGNzczMvZGV2aWNlLWFkYXB0L29w
ZXJhL2NvbnN0cmFpbi0wMDQueGh0bWwKKyAgICAgICAgICAgICAgIGNzczMvZGV2aWNlLWFkYXB0
L29wZXJhL2NvbnN0cmFpbi0wMDUueGh0bWwKKyAgICAgICAgICAgICAgIGNzczMvZGV2aWNlLWFk
YXB0L29wZXJhL2NvbnN0cmFpbi0wMDYueGh0bWwKKyAgICAgICAgICAgICAgIGNzczMvZGV2aWNl
LWFkYXB0L29wZXJhL2NvbnN0cmFpbi0wMDcueGh0bWwKKyAgICAgICAgICAgICAgIGNzczMvZGV2
aWNlLWFkYXB0L29wZXJhL2NvbnN0cmFpbi0wMDgueGh0bWwKKyAgICAgICAgICAgICAgIGNzczMv
ZGV2aWNlLWFkYXB0L29wZXJhL2NvbnN0cmFpbi0wMDkueGh0bWwKKyAgICAgICAgICAgICAgIGNz
czMvZGV2aWNlLWFkYXB0L29wZXJhL2NvbnN0cmFpbi0wMTAueGh0bWwKKyAgICAgICAgICAgICAg
IGNzczMvZGV2aWNlLWFkYXB0L29wZXJhL2NvbnN0cmFpbi0wMTEueGh0bWwKKyAgICAgICAgICAg
ICAgIGNzczMvZGV2aWNlLWFkYXB0L29wZXJhL2NvbnN0cmFpbi0wMTIueGh0bWwKKyAgICAgICAg
ICAgICAgIGNzczMvZGV2aWNlLWFkYXB0L29wZXJhL2NvbnN0cmFpbi0wMTMueGh0bWwKKyAgICAg
ICAgICAgICAgIGNzczMvZGV2aWNlLWFkYXB0L29wZXJhL2NvbnN0cmFpbi0wMTQueGh0bWwKKyAg
ICAgICAgICAgICAgIGNzczMvZGV2aWNlLWFkYXB0L29wZXJhL2NvbnN0cmFpbi0wMTUueGh0bWwK
KyAgICAgICAgICAgICAgIGNzczMvZGV2aWNlLWFkYXB0L29wZXJhL2NvbnN0cmFpbi0wMTYueGh0
bWwKKyAgICAgICAgICAgICAgIGNzczMvZGV2aWNlLWFkYXB0L29wZXJhL2NvbnN0cmFpbi0wMTcu
eGh0bWwKKyAgICAgICAgICAgICAgIGNzczMvZGV2aWNlLWFkYXB0L29wZXJhL2NvbnN0cmFpbi0w
MjAueGh0bWwKKyAgICAgICAgICAgICAgIGNzczMvZGV2aWNlLWFkYXB0L29wZXJhL3N5bnRheC0w
MDEueGh0bWwKKyAgICAgICAgICAgICAgIGNzczMvZGV2aWNlLWFkYXB0L29wZXJhL3N5bnRheC0w
MDIueGh0bWwKKyAgICAgICAgICAgICAgIGNzczMvZGV2aWNlLWFkYXB0L29wZXJhL3N5bnRheC0w
MDMueGh0bWwKKworICAgICAgICAqIENNYWtlTGlzdHMudHh0OgorICAgICAgICAqIEdOVW1ha2Vm
aWxlLmxpc3QuYW06CisgICAgICAgICogVGFyZ2V0LnByaToKKyAgICAgICAgKiBXZWJDb3JlLmd5
cGk6CisgICAgICAgICogV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2o6CisgICAgICAgICog
V2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIGNzcy9DU1NBbGxJ
bk9uZS5jcHA6CisgICAgICAgICogY3NzL1J1bGVTZXQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
UnVsZVNldDo6YWRkUnVsZXNGcm9tU2hlZXQpOgorICAgICAgICAqIGNzcy9TdHlsZVJlc29sdmVy
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlN0eWxlUmVzb2x2ZXI6OlN0eWxlUmVzb2x2ZXIpOgor
ICAgICAgICAoV2ViQ29yZTo6U3R5bGVSZXNvbHZlcjo6YXBwZW5kQXV0aG9yU3R5bGVTaGVldHMp
OgorICAgICAgICAoV2ViQ29yZTo6U3R5bGVSZXNvbHZlcjo6flN0eWxlUmVzb2x2ZXIpOgorICAg
ICAgICAqIGNzcy9TdHlsZVJlc29sdmVyLmg6CisgICAgICAgIChTdHlsZVJlc29sdmVyKToKKyAg
ICAgICAgKFdlYkNvcmU6OlN0eWxlUmVzb2x2ZXI6OnZpZXdwb3J0U3R5bGVSZXNvbHZlcik6Cisg
ICAgICAgICogY3NzL1ZpZXdwb3J0U3R5bGVSZXNvbHZlci5jcHA6IEFkZGVkLgorICAgICAgICAo
V2ViQ29yZSk6CisgICAgICAgIChXZWJDb3JlOjpWaWV3cG9ydFN0eWxlUmVzb2x2ZXI6OlZpZXdw
b3J0U3R5bGVSZXNvbHZlcik6CisgICAgICAgIChXZWJDb3JlOjpWaWV3cG9ydFN0eWxlUmVzb2x2
ZXI6OmFkZFZpZXdwb3J0UnVsZSk6CisgICAgICAgIChXZWJDb3JlOjpWaWV3cG9ydFN0eWxlUmVz
b2x2ZXI6OmNsZWFyRG9jdW1lbnQpOgorICAgICAgICAoV2ViQ29yZTo6Vmlld3BvcnRTdHlsZVJl
c29sdmVyOjpyZXNvbHZlKToKKyAgICAgICAgKFdlYkNvcmU6OlZpZXdwb3J0U3R5bGVSZXNvbHZl
cjo6Z2V0Vmlld3BvcnRBcmd1bWVudFZhbHVlKToKKyAgICAgICAgKiBjc3MvVmlld3BvcnRTdHls
ZVJlc29sdmVyLmg6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChWaWV3cG9y
dFN0eWxlUmVzb2x2ZXIpOgorICAgICAgICAoV2ViQ29yZTo6Vmlld3BvcnRTdHlsZVJlc29sdmVy
OjpjcmVhdGUpOgorICAgICAgICAqIGRvbS9Eb2N1bWVudC5oOgorICAgICAgICAoV2ViQ29yZTo6
RG9jdW1lbnQ6OnNldFZpZXdwb3J0QXJndW1lbnRzKToKKyAgICAgICAgKiBkb20vVmlld3BvcnRB
cmd1bWVudHMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Y29tcGFyZUlnbm9yaW5nQXV0byk6Cisg
ICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFdlYkNvcmU6OlZpZXdwb3J0QXJndW1lbnRzOjpy
ZXNvbHZlKToKKyAgICAgICAgKiBkb20vVmlld3BvcnRBcmd1bWVudHMuaDoKKyAgICAgICAgKFZp
ZXdwb3J0QXR0cmlidXRlcyk6CisgICAgICAgIChXZWJDb3JlOjpWaWV3cG9ydEFyZ3VtZW50czo6
Vmlld3BvcnRBcmd1bWVudHMpOgorICAgICAgICAoVmlld3BvcnRBcmd1bWVudHMpOgorICAgICAg
ICAoV2ViQ29yZTo6Vmlld3BvcnRBcmd1bWVudHM6Om9wZXJhdG9yPT0pOgorCiAyMDEyLTExLTE5
ICBFcmlrIEFydmlkc3NvbiAgPGFydkBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgVXBkYXRlIERP
TUV4Y2VwdGlvbiBuYW1lOiBRdW90YUV4Y2VlZGVkRXJyb3IKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL0NNYWtlTGlzdHMudHh0IGIvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKaW5k
ZXggMzY1ZjM4ZmRlZTQxZDMzNTg1YzNjNjI4NjlhN2EzODU4YzkzYTUxYy4uOTJmNzJjZjMzNTll
ZWEwNDkyNmVmMzkxNjZkNGRmNzJiYzA3OGJjYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
Q01ha2VMaXN0cy50eHQKKysrIGIvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKQEAgLTEw
ODgsNiArMTA4OCw3IEBAIFNFVChXZWJDb3JlX1NPVVJDRVMKICAgICBjc3MvU1ZHQ1NTQ29tcHV0
ZWRTdHlsZURlY2xhcmF0aW9uLmNwcAogICAgIGNzcy9TVkdDU1NQYXJzZXIuY3BwCiAgICAgY3Nz
L1NWR0NTU1N0eWxlU2VsZWN0b3IuY3BwCisgICAgY3NzL1ZpZXdwb3J0U3R5bGVSZXNvbHZlci5j
cHAKICAgICBjc3MvV2ViS2l0Q1NTRmlsdGVyVmFsdWUuY3BwCiAgICAgY3NzL1dlYktpdENTU0tl
eWZyYW1lUnVsZS5jcHAKICAgICBjc3MvV2ViS2l0Q1NTS2V5ZnJhbWVzUnVsZS5jcHAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0gYi9Tb3VyY2UvV2ViQ29y
ZS9HTlVtYWtlZmlsZS5saXN0LmFtCmluZGV4IDA3YTIzOGFiYWExMjg4YjJiOWQwZDU3N2ZjZDRj
OTMxM2E4YzE5MTkuLmQ4NDM5YjBjYzU5YmFhYjg1NjFlZGNiYmQ3NGQwNTNkNThjMzk5MTggMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0KKysrIGIvU291cmNl
L1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbQpAQCAtMjY0NSw2ICsyNjQ1LDggQEAgd2ViY29y
ZV9zb3VyY2VzICs9IFwKIAlTb3VyY2UvV2ViQ29yZS9jc3MvU1ZHQ1NTQ29tcHV0ZWRTdHlsZURl
Y2xhcmF0aW9uLmNwcCBcCiAJU291cmNlL1dlYkNvcmUvY3NzL1NWR0NTU1BhcnNlci5jcHAgXAog
CVNvdXJjZS9XZWJDb3JlL2Nzcy9TVkdDU1NTdHlsZVNlbGVjdG9yLmNwcCBcCisJU291cmNlL1dl
YkNvcmUvY3NzL1ZpZXdwb3J0U3R5bGVSZXNvbHZlci5jcHAgXAorCVNvdXJjZS9XZWJDb3JlL2Nz
cy9WaWV3cG9ydFN0eWxlUmVzb2x2ZXIuaCBcCiAgICAgU291cmNlL1dlYkNvcmUvY3NzL1dlYktp
dENTU0FycmF5RnVuY3Rpb25WYWx1ZS5jcHAgXAogICAgIFNvdXJjZS9XZWJDb3JlL2Nzcy9XZWJL
aXRDU1NBcnJheUZ1bmN0aW9uVmFsdWUuaCBcCiAJU291cmNlL1dlYkNvcmUvY3NzL1dlYktpdENT
U0ZpbHRlclZhbHVlLmNwcCBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9UYXJnZXQucHJp
IGIvU291cmNlL1dlYkNvcmUvVGFyZ2V0LnByaQppbmRleCA3MmExN2YwYWMzNzYzZDYzNmQ5ODJm
ZmZiNTZkYTg0ZWViNjdiMjMxLi4yY2E4ZjdlNTViMmJjOTc2ODliMjQ0ZTQ2OGQ2ZGVhNzBlMzJk
ZTJlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9UYXJnZXQucHJpCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL1RhcmdldC5wcmkKQEAgLTMyNyw2ICszMjcsNyBAQCBTT1VSQ0VTICs9IFwKICAgICBj
c3MvU3R5bGVTaGVldC5jcHAgXAogICAgIGNzcy9TdHlsZVNoZWV0Q29udGVudHMuY3BwIFwKICAg
ICBjc3MvU3R5bGVTaGVldExpc3QuY3BwIFwKKyAgICBjc3MvVmlld3BvcnRTdHlsZVJlc29sdmVy
LmNwcCBcCiAgICAgY3NzL1dlYktpdENTU0FycmF5RnVuY3Rpb25WYWx1ZS5jcHAgXAogICAgIGNz
cy9XZWJLaXRDU1NGaWx0ZXJWYWx1ZS5jcHAgXAogICAgIGNzcy9XZWJLaXRDU1NLZXlmcmFtZVJ1
bGUuY3BwIFwKQEAgLTE1MDgsNiArMTUwOSw3IEBAIEhFQURFUlMgKz0gXAogICAgIGNzcy9TdHls
ZVNoZWV0LmggXAogICAgIGNzcy9TdHlsZVNoZWV0Q29udGVudHMuaCBcCiAgICAgY3NzL1N0eWxl
U2hlZXRMaXN0LmggXAorICAgIGNzcy9WaWV3cG9ydFN0eWxlUmVzb2x2ZXIuaCBcCiAgICAgY3Nz
L1dlYktpdENTU0FycmF5RnVuY3Rpb25WYWx1ZS5oIFwKICAgICBjc3MvV2ViS2l0Q1NTRmlsdGVy
VmFsdWUuaCBcCiAgICAgY3NzL1dlYktpdENTU0tleWZyYW1lUnVsZS5oIFwKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaSBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lw
aQppbmRleCA3ZWRkOTNjZGU3ZDVmYTdmOGFlNjNkYmYxMGE0ODQyZTY3ODJkMjQ5Li45M2I2YzBk
YTJjOGM2ZDJmZjFmMzRmYzgzZjRlZGMwNDQ5MjkxNmQ3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9XZWJDb3JlLmd5cGkKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCkBAIC0y
NjMxLDYgKzI2MzEsOCBAQAogICAgICAgICAgICAgJ2Nzcy9TdHlsZVNoZWV0Q29udGVudHMuaCcs
CiAgICAgICAgICAgICAnY3NzL1N0eWxlU2hlZXRMaXN0LmNwcCcsCiAgICAgICAgICAgICAnY3Nz
L1N0eWxlU2hlZXRMaXN0LmgnLAorICAgICAgICAgICAgJ2Nzcy9WaWV3cG9ydFN0eWxlUmVzb2x2
ZXIuY3BwJywKKyAgICAgICAgICAgICdjc3MvVmlld3BvcnRTdHlsZVJlc29sdmVyLmgnLAogICAg
ICAgICAgICAgJ2Nzcy9XZWJLaXRDU1NBcnJheUZ1bmN0aW9uVmFsdWUuY3BwJywKICAgICAgICAg
ICAgICdjc3MvV2ViS2l0Q1NTQXJyYXlGdW5jdGlvblZhbHVlLmgnLAogICAgICAgICAgICAgJ2Nz
cy9XZWJLaXRDU1NGaWx0ZXJWYWx1ZS5jcHAnLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
V2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZj
cHJvai9XZWJDb3JlLnZjcHJvagppbmRleCAyMDcwMWMzM2NkYjViZTE3NzMwNDUxMDBjY2I1MDBk
Y2FhY2FiOTUyLi5jNDdiNjNmYzg1MmE1ZDVhMWM1ZGUwOWUwNDFmYTkxYzY1NWIxYzNlIDEwMDc1
NQotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagpAQCAtMzgxMTgs
NiArMzgxMTgsMTQgQEAKIAkJCQk+CiAJCQk8L0ZpbGU+CiAJCQk8RmlsZQorCQkJCVJlbGF0aXZl
UGF0aD0iLi5cY3NzXFZpZXdwb3J0U3R5bGVSZXNvbHZlci5jcHAiCisJCQkJPgorCQkJPC9GaWxl
PgorCQkJPEZpbGUKKwkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGNzc1xWaWV3cG9ydFN0eWxlUmVzb2x2
ZXIuaCIKKwkJCQk+CisJCQk8L0ZpbGU+CisJCQk8RmlsZQogCQkJCVJlbGF0aXZlUGF0aD0iLi5c
Y3NzXFdlYktpdENTU0FycmF5RnVuY3Rpb25WYWx1ZS5jcHAiCiAJCQkJPgogCQkJPC9GaWxlPgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmlu
ZGV4IGMyZTczZDI3ZGU1NmU4Y2IwNzZjMDdiMTdhNmI4OWMyNTY3Y2Q5NDkuLmQ2NzQxN2RkOGFi
ZDgzM2YyNzFmZTYyYmVmNTI2NWQzYmRkNDVmNjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9X
ZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTEwNDEsNiArMTA0MSw4IEBACiAJ
CTNDMjQ0RkVCQTM3NUFDNjMzRjg4QkU2RiAvKiBSZW5kZXJMYXllck1vZGVsT2JqZWN0LmNwcCBp
biBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDNDMjQ0RkU1QTM3
NUFDNjMzRjg4QkU2RiAvKiBSZW5kZXJMYXllck1vZGVsT2JqZWN0LmNwcCAqLzsgfTsKIAkJM0ZG
RkY5QTgxNTlEOUE1NTAwMjBCQkQ1IC8qIFdlYktpdENTU1ZpZXdwb3J0UnVsZS5jcHAgaW4gU291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAzRkZGRjlBNjE1OUQ5QTU1
MDAyMEJCRDUgLyogV2ViS2l0Q1NTVmlld3BvcnRSdWxlLmNwcCAqLzsgfTsKIAkJM0ZGRkY5QTkx
NTlEOUE1NTAwMjBCQkQ1IC8qIFdlYktpdENTU1ZpZXdwb3J0UnVsZS5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gM0ZGRkY5QTcxNTlEOUE1NTAwMjBCQkQ1
IC8qIFdlYktpdENTU1ZpZXdwb3J0UnVsZS5oICovOyB9OworCQkzRkZGRjlBRDE1OUQ5QjA2MDAy
MEJCRDUgLyogVmlld3BvcnRTdHlsZVJlc29sdmVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDNGRkZGOUFCMTU5RDlCMDYwMDIwQkJENSAvKiBWaWV3
cG9ydFN0eWxlUmVzb2x2ZXIuY3BwICovOyB9OworCQkzRkZGRjlBRTE1OUQ5QjA2MDAyMEJCRDUg
LyogVmlld3BvcnRTdHlsZVJlc29sdmVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSAzRkZGRjlBQzE1OUQ5QjA2MDAyMEJCRDUgLyogVmlld3BvcnRTdHls
ZVJlc29sdmVyLmggKi87IH07CiAJCTQxMDAyQ0NEMEY2NkVERUYwMDlFNjYwRCAvKiBTY3JpcHRG
dW5jdGlvbkNhbGwuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDQxMDAyQ0NCMEY2NkVERUYwMDlFNjYwRCAvKiBTY3JpcHRGdW5jdGlvbkNhbGwuaCAqLzsg
fTsKIAkJNDEwMDJDQ0UwRjY2RURFRjAwOUU2NjBEIC8qIFNjcmlwdEZ1bmN0aW9uQ2FsbC5jcHAg
aW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0MTAwMkNDQzBG
NjZFREVGMDA5RTY2MEQgLyogU2NyaXB0RnVuY3Rpb25DYWxsLmNwcCAqLzsgfTsKIAkJNDEwQjdF
NzIxMDQ1RkFCMDAwRDgyMjRGIC8qIEpTTWVzc2FnZUV2ZW50Q3VzdG9tLmNwcCBpbiBTb3VyY2Vz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQxMEI3RTcxMTA0NUZBQjAwMEQ4
MjI0RiAvKiBKU01lc3NhZ2VFdmVudEN1c3RvbS5jcHAgKi87IH07CkBAIC04MjEyLDYgKzgyMTQs
OCBAQAogCQkzQzI0NEZFNUEzNzVBQzYzM0Y4OEJFNkYgLyogUmVuZGVyTGF5ZXJNb2RlbE9iamVj
dC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBSZW5kZXJMYXllck1v
ZGVsT2JqZWN0LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJM0ZGRkY5QTYxNTlE
OUE1NTAwMjBCQkQ1IC8qIFdlYktpdENTU1ZpZXdwb3J0UnVsZS5jcHAgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXZWJLaXRDU1NWaWV3cG9ydFJ1bGUuY3BwOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQkzRkZGRjlBNzE1OUQ5QTU1MDAyMEJCRDUgLyogV2ViS2l0
Q1NTVmlld3BvcnRSdWxlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYktp
dENTU1ZpZXdwb3J0UnVsZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkzRkZGRjlB
QjE1OUQ5QjA2MDAyMEJCRDUgLyogVmlld3BvcnRTdHlsZVJlc29sdmVyLmNwcCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFZpZXdwb3J0U3R5bGVSZXNvbHZlci5jcHA7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTNGRkZGOUFDMTU5RDlCMDYwMDIwQkJENSAvKiBW
aWV3cG9ydFN0eWxlUmVzb2x2ZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
Vmlld3BvcnRTdHlsZVJlc29sdmVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQx
MDAyQ0NCMEY2NkVERUYwMDlFNjYwRCAvKiBTY3JpcHRGdW5jdGlvbkNhbGwuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU2NyaXB0RnVuY3Rpb25DYWxsLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTQxMDAyQ0NDMEY2NkVERUYwMDlFNjYwRCAvKiBTY3JpcHRGdW5j
dGlvbkNhbGwuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gU2NyaXB0
RnVuY3Rpb25DYWxsLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDEwQjdFNzEx
MDQ1RkFCMDAwRDgyMjRGIC8qIEpTTWVzc2FnZUV2ZW50Q3VzdG9tLmNwcCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTTWVzc2FnZUV2ZW50Q3VzdG9tLmNwcDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTIxNDU3LDYgKzIxNDYxLDggQEAKIAkJCQlCMjIyN0Iw
MzBEMDBCRkYxMDA3MUI3ODIgLyogU1ZHQ1NTU3R5bGVTZWxlY3Rvci5jcHAgKi8sCiAJCQkJQjIy
MjdCMDQwRDAwQkZGMTAwNzFCNzgyIC8qIFNWR0NTU1ZhbHVlS2V5d29yZHMuaW4gKi8sCiAJCQkJ
QkM1RUMxNzYwQTUwN0UzRTAwNjAwN0Y1IC8qIHZpZXctc291cmNlLmNzcyAqLywKKwkJCQkzRkZG
RjlBQjE1OUQ5QjA2MDAyMEJCRDUgLyogVmlld3BvcnRTdHlsZVJlc29sdmVyLmNwcCAqLywKKwkJ
CQkzRkZGRjlBQzE1OUQ5QjA2MDAyMEJCRDUgLyogVmlld3BvcnRTdHlsZVJlc29sdmVyLmggKi8s
CiAJCQkJMTUwQjkyMzcxNUYwOERDNDAwRTEwOTg2IC8qIFdlYktpdENTU0FycmF5RnVuY3Rpb25W
YWx1ZS5jcHAgKi8sCiAJCQkJMTUwQjkyMzgxNUYwOERDNDAwRTEwOTg2IC8qIFdlYktpdENTU0Fy
cmF5RnVuY3Rpb25WYWx1ZS5oICovLAogCQkJCTMxMDYwMzZDMTQzMjdEMkUwMEFCRjRCQSAvKiBX
ZWJLaXRDU1NGaWx0ZXJWYWx1ZS5jcHAgKi8sCkBAIC0yNTc1Nyw2ICsyNTc2Myw3IEBACiAJCQkJ
QUFDMDhDRjMxNUY5NDFGRDAwRjFFMTg4IC8qIEFjY2Vzc2liaWxpdHlTVkdSb290LmggaW4gSGVh
ZGVycyAqLywKIAkJCQk1MDkzMzM1MDE2M0IwRTQzMDAwOTlBNjAgLyogQ3VzdG9tRmlsdGVyUGFy
YW1ldGVyTGlzdC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTBEMzI4NTgxNjNCMzEzRjAwMTYxMTFF
IC8qIFZhbGlkYXRlZEN1c3RvbUZpbHRlck9wZXJhdGlvbi5oIGluIEhlYWRlcnMgKi8sCisJCQkJ
M0ZGRkY5QUUxNTlEOUIwNjAwMjBCQkQ1IC8qIFZpZXdwb3J0U3R5bGVSZXNvbHZlci5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJM0ZGRkY5QTkxNTlEOUE1NTAwMjBCQkQ1IC8qIFdlYktpdENTU1ZpZXdw
b3J0UnVsZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTNDMzhCRkYxNjQ0NzNDNzAwMDkxRUIyIC8q
IFNjcm9sbGluZ1N0YXRlRml4ZWROb2RlLmggaW4gSGVhZGVycyAqLywKIAkJCQk5M0MzOEMwMzE2
NDQ3M0REMDAwOTFFQjIgLyogU2Nyb2xsaW5nVHJlZUZpeGVkTm9kZS5oIGluIEhlYWRlcnMgKi8s
CkBAIC0yODg0Niw2ICsyODg1Myw3IEBACiAJCQkJOTNGMTlCMDUwODI0NUU1OTAwMUU5QUJDIC8q
IFhTTFRQcm9jZXNzb3JMaWJ4c2x0LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUUxQkU1MTJEMENG
NkM1MTIwMDJFQTk1OSAvKiBYU0xUVW5pY29kZVNvcnQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJ
OTc3RTJFMEUxMkYwRkM5QzAwQzEzMzc5IC8qIFhTU0F1ZGl0b3IuY3BwIGluIFNvdXJjZXMgKi8s
CisJCQkJM0ZGRkY5QUQxNTlEOUIwNjAwMjBCQkQ1IC8qIFZpZXdwb3J0U3R5bGVSZXNvbHZlci5j
cHAgaW4gU291cmNlcyAqLywKIAkJCQlGRDUzNzM1MjEzN0I2NTE4MDAwMDhEQ0UgLyogWmVyb1Bv
bGUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNTFBQkY2NEQxNjM5MkUyODAwMTMyQTdBIC8qIExv
YWRlclN0cmF0ZWd5LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTUwOTMzMzRGMTYzQjBFNDMwMDA5
OUE2MCAvKiBDdXN0b21GaWx0ZXJQYXJhbWV0ZXJMaXN0LmNwcCBpbiBTb3VyY2VzICovLApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU0FsbEluT25lLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2Nzcy9DU1NBbGxJbk9uZS5jcHAKaW5kZXggODRmOWZlN2Y0M2M4OWU1YmRkMWUwYTFiZWI4
MGU0NjhjOGNhN2MzMi4uNDc5ZDhkZWY3OGM5ZDM3NDA5N2MwYzRlOTk5MTM3MTNlMmEyMzEwNSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU0FsbEluT25lLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9jc3MvQ1NTQWxsSW5PbmUuY3BwCkBAIC03MywzICs3Myw0IEBACiAjaW5jbHVk
ZSAiU3R5bGVQcm9wZXJ0eVNob3J0aGFuZC5jcHAiCiAjaW5jbHVkZSAiU3R5bGVSZXNvbHZlci5j
cHAiCiAjaW5jbHVkZSAiU3R5bGVTY29wZVJlc29sdmVyLmNwcCIKKyNpbmNsdWRlICJWaWV3cG9y
dFN0eWxlUmVzb2x2ZXIuY3BwIgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL1J1bGVT
ZXQuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL1J1bGVTZXQuY3BwCmluZGV4IDM3MmVmZGIzY2Ez
YWRkMzBjNWQ2MTAwMGRhMWY4OWQ2Mzc0OGFjNWEuLjlhNzhjMGZmOTAzODljOTBjNDRkYTVhNmI5
ZjVmZjdhZTIwYzZlMzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9SdWxlU2V0LmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvUnVsZVNldC5jcHAKQEAgLTMxMiw2ICszMTIsMTQg
QEAgdm9pZCBSdWxlU2V0OjphZGRSdWxlc0Zyb21TaGVldChTdHlsZVNoZWV0Q29udGVudHMqIHNo
ZWV0LCBjb25zdCBNZWRpYVF1ZXJ5RXZhbHUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICBj
b250aW51ZTsKICAgICAgICAgICAgICAgICAgICAgICAgIHJlc29sdmVyLT5hZGRLZXlmcmFtZVN0
eWxlKHN0YXRpY19jYXN0PFN0eWxlUnVsZUtleWZyYW1lcyo+KGNoaWxkUnVsZSkpOwogICAgICAg
ICAgICAgICAgICAgICB9CisjaWYgRU5BQkxFKENTU19ERVZJQ0VfQURBUFRBVElPTikKKyAgICAg
ICAgICAgICAgICAgICAgZWxzZSBpZiAoY2hpbGRSdWxlLT5pc1ZpZXdwb3J0UnVsZSgpICYmIHJl
c29sdmVyICYmICFyZXNvbHZlci0+YWZmZWN0ZWRCeVZpZXdwb3J0Q2hhbmdlKCkpIHsKKyAgICAg
ICAgICAgICAgICAgICAgICAgIC8vIEB2aWV3cG9ydCBzaG91bGQgbm90IGJlIHNjb3BlZC4KKyAg
ICAgICAgICAgICAgICAgICAgICAgIGlmIChzY29wZSkKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBjb250aW51ZTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHJlc29sdmVyLT52aWV3cG9y
dFN0eWxlUmVzb2x2ZXIoKS0+YWRkVmlld3BvcnRSdWxlKHN0YXRpY19jYXN0PFN0eWxlUnVsZVZp
ZXdwb3J0Kj4oY2hpbGRSdWxlKSk7CisgICAgICAgICAgICAgICAgICAgIH0KKyNlbmRpZgogICAg
ICAgICAgICAgICAgIH0gLy8gZm9yIHJ1bGVzCiAgICAgICAgICAgICB9IC8vIGlmIHJ1bGVzCiAg
ICAgICAgIH0gZWxzZSBpZiAocnVsZS0+aXNGb250RmFjZVJ1bGUoKSAmJiByZXNvbHZlcikgewpA
QCAtMzQwLDYgKzM0OCwxNCBAQCB2b2lkIFJ1bGVTZXQ6OmFkZFJ1bGVzRnJvbVNoZWV0KFN0eWxl
U2hlZXRDb250ZW50cyogc2hlZXQsIGNvbnN0IE1lZGlhUXVlcnlFdmFsdQogICAgICAgICBlbHNl
IGlmIChydWxlLT5pc0hvc3RSdWxlKCkpCiAgICAgICAgICAgICByZXNvbHZlci0+YWRkSG9zdFJ1
bGUoc3RhdGljX2Nhc3Q8U3R5bGVSdWxlSG9zdCo+KHJ1bGUpLCBoYXNEb2N1bWVudFNlY3VyaXR5
T3JpZ2luLCBzY29wZSk7CiAjZW5kaWYKKyNpZiBFTkFCTEUoQ1NTX0RFVklDRV9BREFQVEFUSU9O
KQorICAgICAgICBlbHNlIGlmIChydWxlLT5pc1ZpZXdwb3J0UnVsZSgpICYmIHJlc29sdmVyKSB7
CisgICAgICAgICAgICAvLyBAdmlld3BvcnQgc2hvdWxkIG5vdCBiZSBzY29wZWQuCisgICAgICAg
ICAgICBpZiAoc2NvcGUpCisgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICBy
ZXNvbHZlci0+dmlld3BvcnRTdHlsZVJlc29sdmVyKCktPmFkZFZpZXdwb3J0UnVsZShzdGF0aWNf
Y2FzdDxTdHlsZVJ1bGVWaWV3cG9ydCo+KHJ1bGUpKTsKKyAgICAgICAgfQorI2VuZGlmCiAgICAg
fQogICAgIGlmIChtX2F1dG9TaHJpbmtUb0ZpdEVuYWJsZWQpCiAgICAgICAgIHNocmlua1RvRml0
KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVSZXNvbHZlci5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVSZXNvbHZlci5jcHAKaW5kZXggYjU5NzBjMDY3NGY3Y2Q1
ODk1ZDQ1OTU1ZTI5MzYwNmE1MzlhMTQ3OS4uMGQwNzIyMDAxMjg3OTk3Yzg2MTFhZTM0MDQ3OTUz
ZjJlN2IxM2ZjNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlUmVzb2x2ZXIu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVJlc29sdmVyLmNwcApAQCAtMTIzLDYg
KzEyMyw3IEBACiAjaW5jbHVkZSAiVHJhbnNmb3JtYXRpb25NYXRyaXguaCIKICNpbmNsdWRlICJU
cmFuc2xhdGVUcmFuc2Zvcm1PcGVyYXRpb24uaCIKICNpbmNsdWRlICJVc2VyQWdlbnRTdHlsZVNo
ZWV0cy5oIgorI2luY2x1ZGUgIlZpZXdwb3J0U3R5bGVSZXNvbHZlci5oIgogI2luY2x1ZGUgIldl
YkNvcmVNZW1vcnlJbnN0cnVtZW50YXRpb24uaCIKICNpbmNsdWRlICJXZWJLaXRDU1NLZXlmcmFt
ZVJ1bGUuaCIKICNpbmNsdWRlICJXZWJLaXRDU1NLZXlmcmFtZXNSdWxlLmgiCkBAIC0yNzYsNiAr
Mjc3LDkgQEAgU3R5bGVSZXNvbHZlcjo6U3R5bGVSZXNvbHZlcihEb2N1bWVudCogZG9jdW1lbnQs
IGJvb2wgbWF0Y2hBdXRob3JBbmRVc2VyU3R5bGVzKQogICAgICwgbV9zYW1lT3JpZ2luT25seShm
YWxzZSkKICAgICAsIG1fZGlzdHJpYnV0ZWRUb0luc2VydGlvblBvaW50KGZhbHNlKQogICAgICwg
bV9mb250U2VsZWN0b3IoQ1NTRm9udFNlbGVjdG9yOjpjcmVhdGUoZG9jdW1lbnQpKQorI2lmIEVO
QUJMRShDU1NfREVWSUNFX0FEQVBUQVRJT04pCisgICAgLCBtX3ZpZXdwb3J0U3R5bGVSZXNvbHZl
cihWaWV3cG9ydFN0eWxlUmVzb2x2ZXI6OmNyZWF0ZShkb2N1bWVudCkpCisjZW5kaWYKICAgICAs
IG1fYXBwbHlQcm9wZXJ0eVRvUmVndWxhclN0eWxlKHRydWUpCiAgICAgLCBtX2FwcGx5UHJvcGVy
dHlUb1Zpc2l0ZWRMaW5rU3R5bGUoZmFsc2UpCiAgICAgLCBtX3N0eWxlQnVpbGRlcihTdHlsZUJ1
aWxkZXI6OnNoYXJlZFN0eWxlQnVpbGRlcigpKQpAQCAtNDA0LDYgKzQwOCwxMCBAQCB2b2lkIFN0
eWxlUmVzb2x2ZXI6OmFwcGVuZEF1dGhvclN0eWxlU2hlZXRzKHVuc2lnbmVkIGZpcnN0TmV3LCBj
b25zdCBWZWN0b3I8UmVmUAogICAgIAogICAgIGlmIChkb2N1bWVudCgpLT5yZW5kZXJlcigpICYm
IGRvY3VtZW50KCktPnJlbmRlcmVyKCktPnN0eWxlKCkpCiAgICAgICAgIGRvY3VtZW50KCktPnJl
bmRlcmVyKCktPnN0eWxlKCktPmZvbnQoKS51cGRhdGUoZm9udFNlbGVjdG9yKCkpOworCisjaWYg
RU5BQkxFKENTU19ERVZJQ0VfQURBUFRBVElPTikKKyAgICB2aWV3cG9ydFN0eWxlUmVzb2x2ZXIo
KS0+cmVzb2x2ZSgpOworI2VuZGlmCiB9CiAKIHZvaWQgU3R5bGVSZXNvbHZlcjo6cHVzaFBhcmVu
dEVsZW1lbnQoRWxlbWVudCogcGFyZW50KQpAQCAtNDU4LDYgKzQ2NiwxMCBAQCB2b2lkIFN0eWxl
UmVzb2x2ZXI6OmFkZEtleWZyYW1lU3R5bGUoUGFzc1JlZlB0cjxTdHlsZVJ1bGVLZXlmcmFtZXM+
IHJ1bGUpCiBTdHlsZVJlc29sdmVyOjp+U3R5bGVSZXNvbHZlcigpCiB7CiAgICAgbV9mb250U2Vs
ZWN0b3ItPmNsZWFyRG9jdW1lbnQoKTsKKworI2lmIEVOQUJMRShDU1NfREVWSUNFX0FEQVBUQVRJ
T04pCisgICAgbV92aWV3cG9ydFN0eWxlUmVzb2x2ZXItPmNsZWFyRG9jdW1lbnQoKTsKKyNlbmRp
ZgogfQogCiB2b2lkIFN0eWxlUmVzb2x2ZXI6OnN3ZWVwTWF0Y2hlZFByb3BlcnRpZXNDYWNoZShU
aW1lcjxTdHlsZVJlc29sdmVyPiopCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5
bGVSZXNvbHZlci5oIGIvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlUmVzb2x2ZXIuaAppbmRleCA0
ZTc3NWE1ODU3OWU2MjlmMWU0YTA0M2ZjNzI5ODYyODUzNTc5NTgxLi5mMTI2NmMyZmUwZTQ1NzE3
NjZmNjllNjdmM2FjMWU2OGJmNzgyYmJiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3Mv
U3R5bGVSZXNvbHZlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVJlc29sdmVyLmgK
QEAgLTMzLDYgKzMzLDcgQEAKICNpbmNsdWRlICJTZWxlY3RvckNoZWNrZXIuaCIKICNpbmNsdWRl
ICJTdHlsZUluaGVyaXRlZERhdGEuaCIKICNpbmNsdWRlICJTdHlsZVNjb3BlUmVzb2x2ZXIuaCIK
KyNpbmNsdWRlICJWaWV3cG9ydFN0eWxlUmVzb2x2ZXIuaCIKICNpbmNsdWRlIDx3dGYvSGFzaE1h
cC5oPgogI2luY2x1ZGUgPHd0Zi9IYXNoU2V0Lmg+CiAjaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgpA
QCAtOTIsNiArOTMsNyBAQCBjbGFzcyBTdHlsZVNoZWV0OwogY2xhc3MgU3R5bGVTaGVldENvbnRl
bnRzOwogY2xhc3MgU3R5bGVTaGVldExpc3Q7CiBjbGFzcyBTdHlsZWRFbGVtZW50OworY2xhc3Mg
Vmlld3BvcnRTdHlsZVJlc29sdmVyOwogY2xhc3MgV2ViS2l0Q1NTRmlsdGVyVmFsdWU7CiBjbGFz
cyBXZWJLaXRDU1NTaGFkZXJWYWx1ZTsKIGNsYXNzIFdlYktpdENTU1NWR0RvY3VtZW50VmFsdWU7
CkBAIC0yNDUsNiArMjQ3LDkgQEAgcHVibGljOgogICAgIGJvb2wgaGFzU2VsZWN0b3JGb3JBdHRy
aWJ1dGUoY29uc3QgQXRvbWljU3RyaW5nJikgY29uc3Q7CiAKICAgICBDU1NGb250U2VsZWN0b3Iq
IGZvbnRTZWxlY3RvcigpIGNvbnN0IHsgcmV0dXJuIG1fZm9udFNlbGVjdG9yLmdldCgpOyB9Cisj
aWYgRU5BQkxFKENTU19ERVZJQ0VfQURBUFRBVElPTikKKyAgICBWaWV3cG9ydFN0eWxlUmVzb2x2
ZXIqIHZpZXdwb3J0U3R5bGVSZXNvbHZlcigpIHsgcmV0dXJuIG1fdmlld3BvcnRTdHlsZVJlc29s
dmVyLmdldCgpOyB9CisjZW5kaWYKIAogICAgIHZvaWQgYWRkVmlld3BvcnREZXBlbmRlbnRNZWRp
YVF1ZXJ5UmVzdWx0KGNvbnN0IE1lZGlhUXVlcnlFeHAqLCBib29sIHJlc3VsdCk7CiAgICAgYm9v
bCBoYXNWaWV3cG9ydERlcGVuZGVudE1lZGlhUXVlcmllcygpIGNvbnN0IHsgcmV0dXJuICFtX3Zp
ZXdwb3J0RGVwZW5kZW50TWVkaWFRdWVyeVJlc3VsdHMuaXNFbXB0eSgpOyB9CkBAIC00OTMsNiAr
NDk4LDEwIEBAIHByaXZhdGU6CiAgICAgUmVmUHRyPENTU0ZvbnRTZWxlY3Rvcj4gbV9mb250U2Vs
ZWN0b3I7CiAgICAgVmVjdG9yPE93blB0cjxNZWRpYVF1ZXJ5UmVzdWx0PiA+IG1fdmlld3BvcnRE
ZXBlbmRlbnRNZWRpYVF1ZXJ5UmVzdWx0czsKIAorI2lmIEVOQUJMRShDU1NfREVWSUNFX0FEQVBU
QVRJT04pCisgICAgUmVmUHRyPFZpZXdwb3J0U3R5bGVSZXNvbHZlcj4gbV92aWV3cG9ydFN0eWxl
UmVzb2x2ZXI7CisjZW5kaWYKKwogICAgIGJvb2wgbV9hcHBseVByb3BlcnR5VG9SZWd1bGFyU3R5
bGU7CiAgICAgYm9vbCBtX2FwcGx5UHJvcGVydHlUb1Zpc2l0ZWRMaW5rU3R5bGU7CiAgICAgY29u
c3QgU3R5bGVCdWlsZGVyJiBtX3N0eWxlQnVpbGRlcjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2Nzcy9WaWV3cG9ydFN0eWxlUmVzb2x2ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL1Zp
ZXdwb3J0U3R5bGVSZXNvbHZlci5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNDE0OGU3YzQ1N2VhNjdiMzE3YzA1
MjYyZDYxMDFlNTgwYjEyYzQ2NAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nz
cy9WaWV3cG9ydFN0eWxlUmVzb2x2ZXIuY3BwCkBAIC0wLDAgKzEsMTY0IEBACisvKgorICogQ29w
eXJpZ2h0IChDKSAyMDEyIEludGVsIENvcnBvcmF0aW9uLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICoKKyAqIDEuIFJl
ZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUKKyAqICAg
IGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nCisgKiAgICBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQorICogICAgY29weXJpZ2h0IG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcKKyAqICAgIGRpc2NsYWltZXIg
aW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscworICogICAgcHJvdmlk
ZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVIg4oCcQVMgSVPigJ0gQU5EIEFOWQorICogRVhQUkVT
UyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBU
SEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1Mg
Rk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQg
U0hBTEwgVEhFIENPUFlSSUdIVCBIT0xERVIgQkUKKyAqIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwKKyAqIE9SIENPTlNFUVVF
TlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJF
TUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwg
T1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5EIE9OIEFOWQorICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IKKyAqIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRgorICogVEhFIFVTRSBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GCisgKiBTVUNIIERB
TUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiVmlld3BvcnRTdHls
ZVJlc29sdmVyLmgiCisKKyNpZiBFTkFCTEUoQ1NTX0RFVklDRV9BREFQVEFUSU9OKQorCisjaW5j
bHVkZSAiQ1NTVmFsdWVLZXl3b3Jkcy5oIgorI2luY2x1ZGUgIkRvY3VtZW50LmgiCisjaW5jbHVk
ZSAiUGFnZS5oIgorI2luY2x1ZGUgIlJlbmRlclZpZXcuaCIKKyNpbmNsdWRlICJTdHlsZVByb3Bl
cnR5U2V0LmgiCisjaW5jbHVkZSAiU3R5bGVSdWxlLmgiCisjaW5jbHVkZSAiVmlld3BvcnRBcmd1
bWVudHMuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitWaWV3cG9ydFN0eWxlUmVzb2x2ZXI6
OlZpZXdwb3J0U3R5bGVSZXNvbHZlcihEb2N1bWVudCogZG9jdW1lbnQpCisgICAgOiBtX2RvY3Vt
ZW50KGRvY3VtZW50KQoreworICAgIEFTU0VSVChtX2RvY3VtZW50KTsKKworICAgIG1faW5pdGlh
bFZpZXdwb3J0U2l6ZS5zZXRXaWR0aChtX2RvY3VtZW50LT52aWV3cG9ydFNpemUoKS53aWR0aCgp
KTsKKyAgICBtX2luaXRpYWxWaWV3cG9ydFNpemUuc2V0SGVpZ2h0KG1fZG9jdW1lbnQtPnZpZXdw
b3J0U2l6ZSgpLmhlaWdodCgpKTsKK30KKwordm9pZCBWaWV3cG9ydFN0eWxlUmVzb2x2ZXI6OmFk
ZFZpZXdwb3J0UnVsZShTdHlsZVJ1bGVWaWV3cG9ydCogdmlld3BvcnRSdWxlKQoreworICAgIFN0
eWxlUHJvcGVydHlTZXQqIHByb3BlcnR5U2V0ID0gdmlld3BvcnRSdWxlLT5tdXRhYmxlUHJvcGVy
dGllcygpOworCisgICAgdW5zaWduZWQgcHJvcGVydHlDb3VudCA9IHByb3BlcnR5U2V0LT5wcm9w
ZXJ0eUNvdW50KCk7CisgICAgaWYgKCFwcm9wZXJ0eUNvdW50KQorICAgICAgICByZXR1cm47CisK
KyAgICBpZiAoIW1fcHJvcGVydHlTZXQpIHsKKyAgICAgICAgbV9wcm9wZXJ0eVNldCA9IHByb3Bl
cnR5U2V0LT5jb3B5KCk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICAvLyBXZSBjYW5u
b3QgdXNlIG1lcmdlQW5kT3ZlcnJpZGVPbkNvbmZsaWN0KCkgaGVyZSBiZWNhdXNlIGl0IGRvZXNu
J3QKKyAgICAvLyByZXNwZWN0IHRoZSAhaW1wb3J0YW50IGRlY2xhcmF0aW9uIChidXQgYWRkUGFy
c2VkUHJvcGVydHkoKSBkb2VzKS4KKyAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgcHJvcGVy
dHlDb3VudDsgKytpKQorICAgICAgICBtX3Byb3BlcnR5U2V0LT5hZGRQYXJzZWRQcm9wZXJ0eShw
cm9wZXJ0eVNldC0+cHJvcGVydHlBdChpKS50b0NTU1Byb3BlcnR5KCkpOworfQorCit2b2lkIFZp
ZXdwb3J0U3R5bGVSZXNvbHZlcjo6Y2xlYXJEb2N1bWVudCgpCit7CisgICAgbV9kb2N1bWVudCA9
IDA7Cit9CisKK3ZvaWQgVmlld3BvcnRTdHlsZVJlc29sdmVyOjpyZXNvbHZlKCkKK3sKKyAgICBp
ZiAoIW1fZG9jdW1lbnQgfHwgIW1fcHJvcGVydHlTZXQpCisgICAgICAgIHJldHVybjsKKworICAg
IFZpZXdwb3J0QXJndW1lbnRzIGFyZ3VtZW50cyhWaWV3cG9ydEFyZ3VtZW50czo6Q1NTRGV2aWNl
QWRhcHRhdGlvbik7CisKKyAgICBhcmd1bWVudHMudXNlclpvb20gPSBnZXRWaWV3cG9ydEFyZ3Vt
ZW50VmFsdWUoQ1NTUHJvcGVydHlVc2VyWm9vbSk7CisgICAgYXJndW1lbnRzLnpvb20gPSBnZXRW
aWV3cG9ydEFyZ3VtZW50VmFsdWUoQ1NTUHJvcGVydHlab29tKTsKKyAgICBhcmd1bWVudHMubWlu
Wm9vbSA9IGdldFZpZXdwb3J0QXJndW1lbnRWYWx1ZShDU1NQcm9wZXJ0eU1pblpvb20pOworICAg
IGFyZ3VtZW50cy5tYXhab29tID0gZ2V0Vmlld3BvcnRBcmd1bWVudFZhbHVlKENTU1Byb3BlcnR5
TWF4Wm9vbSk7CisgICAgYXJndW1lbnRzLm1pbldpZHRoID0gZ2V0Vmlld3BvcnRBcmd1bWVudFZh
bHVlKENTU1Byb3BlcnR5TWluV2lkdGgpOworICAgIGFyZ3VtZW50cy5tYXhXaWR0aCA9IGdldFZp
ZXdwb3J0QXJndW1lbnRWYWx1ZShDU1NQcm9wZXJ0eU1heFdpZHRoKTsKKyAgICBhcmd1bWVudHMu
bWluSGVpZ2h0ID0gZ2V0Vmlld3BvcnRBcmd1bWVudFZhbHVlKENTU1Byb3BlcnR5TWluSGVpZ2h0
KTsKKyAgICBhcmd1bWVudHMubWF4SGVpZ2h0ID0gZ2V0Vmlld3BvcnRBcmd1bWVudFZhbHVlKENT
U1Byb3BlcnR5TWF4SGVpZ2h0KTsKKyAgICBhcmd1bWVudHMub3JpZW50YXRpb24gPSBnZXRWaWV3
cG9ydEFyZ3VtZW50VmFsdWUoQ1NTUHJvcGVydHlPcmllbnRhdGlvbik7CisKKyAgICBtX2RvY3Vt
ZW50LT5zZXRWaWV3cG9ydEFyZ3VtZW50cyhhcmd1bWVudHMpOworICAgIG1fZG9jdW1lbnQtPnVw
ZGF0ZVZpZXdwb3J0QXJndW1lbnRzKCk7CisKKyAgICBtX3Byb3BlcnR5U2V0ID0gMDsKK30KKwor
ZmxvYXQgVmlld3BvcnRTdHlsZVJlc29sdmVyOjpnZXRWaWV3cG9ydEFyZ3VtZW50VmFsdWUoQ1NT
UHJvcGVydHlJRCBpZCkgY29uc3QKK3sKKyAgICBmbG9hdCBkZWZhdWx0VmFsdWUgPSBWaWV3cG9y
dEFyZ3VtZW50czo6VmFsdWVBdXRvOworCisgICAgLy8gVXNlclpvb20gZGVmYXVsdCB2YWx1ZSBp
cyBDU1NWYWx1ZVpvb20sIHdoaWNoIG1hcHMgdG8gdHJ1ZSwgbWVhbmluZyB0aGF0CisgICAgLy8g
eWVzLCBpdCBpcyB1c2VyIHNjYWxhYmxlLiBXaGVuIHRoZSB2YWx1ZSBpcyBzZXQgdG8gQ1NTVmFs
dWVGaXhlZCwgd2UKKyAgICAvLyByZXR1cm4gZmFsc2UuCisgICAgaWYgKGlkID09IENTU1Byb3Bl
cnR5VXNlclpvb20pCisgICAgICAgIGRlZmF1bHRWYWx1ZSA9IDE7CisKKyAgICBSZWZQdHI8Q1NT
VmFsdWU+IHZhbHVlID0gbV9wcm9wZXJ0eVNldC0+Z2V0UHJvcGVydHlDU1NWYWx1ZShpZCk7Cisg
ICAgaWYgKCF2YWx1ZSB8fCAhdmFsdWUtPmlzUHJpbWl0aXZlVmFsdWUoKSkKKyAgICAgICAgcmV0
dXJuIGRlZmF1bHRWYWx1ZTsKKworICAgIENTU1ByaW1pdGl2ZVZhbHVlKiBwcmltaXRpdmVWYWx1
ZSA9IHN0YXRpY19jYXN0PENTU1ByaW1pdGl2ZVZhbHVlKj4odmFsdWUuZ2V0KCkpOworCisgICAg
aWYgKHByaW1pdGl2ZVZhbHVlLT5pc051bWJlcigpIHx8IHByaW1pdGl2ZVZhbHVlLT5pc1B4KCkp
CisgICAgICAgIHJldHVybiBwcmltaXRpdmVWYWx1ZS0+Z2V0RmxvYXRWYWx1ZSgpOworCisgICAg
aWYgKHByaW1pdGl2ZVZhbHVlLT5pc0ZvbnRSZWxhdGl2ZUxlbmd0aCgpKQorICAgICAgICByZXR1
cm4gcHJpbWl0aXZlVmFsdWUtPmdldEZsb2F0VmFsdWUoKSAqIG1fZG9jdW1lbnQtPmRvY3VtZW50
RWxlbWVudCgpLT5yZW5kZXJTdHlsZSgpLT5mb250RGVzY3JpcHRpb24oKS5jb21wdXRlZFNpemUo
KTsKKworICAgIGlmIChwcmltaXRpdmVWYWx1ZS0+aXNQZXJjZW50YWdlKCkpIHsKKyAgICAgICAg
ZmxvYXQgcGVyY2VudFZhbHVlID0gcHJpbWl0aXZlVmFsdWUtPmdldEZsb2F0VmFsdWUoKSAvIDEw
MC4wZjsKKyAgICAgICAgc3dpdGNoIChpZCkgeworICAgICAgICBjYXNlIENTU1Byb3BlcnR5TWF4
SGVpZ2h0OgorICAgICAgICBjYXNlIENTU1Byb3BlcnR5TWluSGVpZ2h0OgorICAgICAgICAgICAg
cmV0dXJuIHBlcmNlbnRWYWx1ZSAqIG1faW5pdGlhbFZpZXdwb3J0U2l6ZS5oZWlnaHQoKTsKKyAg
ICAgICAgY2FzZSBDU1NQcm9wZXJ0eU1heFdpZHRoOgorICAgICAgICBjYXNlIENTU1Byb3BlcnR5
TWluV2lkdGg6CisgICAgICAgICAgICByZXR1cm4gcGVyY2VudFZhbHVlICogbV9pbml0aWFsVmll
d3BvcnRTaXplLndpZHRoKCk7CisgICAgICAgIGNhc2UgQ1NTUHJvcGVydHlNYXhab29tOgorICAg
ICAgICBjYXNlIENTU1Byb3BlcnR5TWluWm9vbToKKyAgICAgICAgY2FzZSBDU1NQcm9wZXJ0eVpv
b206CisgICAgICAgICAgICByZXR1cm4gcGVyY2VudFZhbHVlOworICAgICAgICBkZWZhdWx0Ogor
ICAgICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgICAgICAgICBicmVhazsKKyAg
ICAgICAgfQorICAgIH0KKworICAgIHN3aXRjaCAocHJpbWl0aXZlVmFsdWUtPmdldElkZW50KCkp
IHsKKyAgICBjYXNlIENTU1ZhbHVlQXV0bzoKKyAgICAgICAgcmV0dXJuIGRlZmF1bHRWYWx1ZTsK
KyAgICBjYXNlIENTU1ZhbHVlRGV2aWNlSGVpZ2h0OgorICAgICAgICByZXR1cm4gVmlld3BvcnRB
cmd1bWVudHM6OlZhbHVlRGV2aWNlSGVpZ2h0OworICAgIGNhc2UgQ1NTVmFsdWVEZXZpY2VXaWR0
aDoKKyAgICAgICAgcmV0dXJuIFZpZXdwb3J0QXJndW1lbnRzOjpWYWx1ZURldmljZVdpZHRoOwor
ICAgIGNhc2UgQ1NTVmFsdWVMYW5kc2NhcGU6CisgICAgICAgIHJldHVybiBWaWV3cG9ydEFyZ3Vt
ZW50czo6VmFsdWVMYW5kc2NhcGU7CisgICAgY2FzZSBDU1NWYWx1ZVBvcnRyYWl0OgorICAgICAg
ICByZXR1cm4gVmlld3BvcnRBcmd1bWVudHM6OlZhbHVlUG9ydHJhaXQ7CisgICAgY2FzZSBDU1NW
YWx1ZVpvb206CisgICAgICAgIHJldHVybiBkZWZhdWx0VmFsdWU7CisgICAgY2FzZSBDU1NWYWx1
ZUZpeGVkOgorICAgICAgICByZXR1cm4gMDsKKyAgICBkZWZhdWx0OgorICAgICAgICByZXR1cm4g
ZGVmYXVsdFZhbHVlOworICAgIH0KK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5k
aWYgLy8gRU5BQkxFKENTU19ERVZJQ0VfQURBUFRBVElPTikKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2Nzcy9WaWV3cG9ydFN0eWxlUmVzb2x2ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9W
aWV3cG9ydFN0eWxlUmVzb2x2ZXIuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wYjhmZjU3OTIyNGQyNWJjOGI5MjM4
YWFiZThlMjQxMTAwYWNkOWYwCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvY3Nz
L1ZpZXdwb3J0U3R5bGVSZXNvbHZlci5oCkBAIC0wLDAgKzEsNzQgQEAKKy8qCisgKiBDb3B5cmln
aHQgKEMpIDIwMTIgSW50ZWwgQ29ycG9yYXRpb24uIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgor
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKgorICogMS4gUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZQorICogICAgY29w
eXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcK
KyAqICAgIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0g
bXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCisgKiAgICBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZworICogICAgZGlzY2xhaW1lciBpbiB0
aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzCisgKiAgICBwcm92aWRlZCB3
aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBC
WSBUSEUgQ09QWVJJR0hUIEhPTERFUiDigJxBUyBJU+KAnSBBTkQgQU5ZCisgKiBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQor
ICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFM
TCBUSEUgQ09QWVJJR0hUIEhPTERFUiBCRQorICogTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLAorICogT1IgQ09OU0VRVUVOVElB
TCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5U
IE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgor
ICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQg
T04gQU5ZCisgKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUgorICogVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GCisgKiBUSEUgVVNFIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YKKyAqIFNVQ0ggREFNQUdF
LgorICovCisKKyNpZm5kZWYgVmlld3BvcnRTdHlsZVJlc29sdmVyX2gKKyNkZWZpbmUgVmlld3Bv
cnRTdHlsZVJlc29sdmVyX2gKKworI2lmIEVOQUJMRShDU1NfREVWSUNFX0FEQVBUQVRJT04pCisK
KyNpbmNsdWRlICJDU1NQcm9wZXJ0eU5hbWVzLmgiCisjaW5jbHVkZSAiRmxvYXRTaXplLmgiCisj
aW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KKyNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+CisKK25h
bWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgQ1NTUHJpbWl0aXZlVmFsdWU7CitjbGFzcyBEb2N1
bWVudDsKK2NsYXNzIFN0eWxlUnVsZVZpZXdwb3J0OworY2xhc3MgU3R5bGVQcm9wZXJ0eVNldDsK
KworY2xhc3MgVmlld3BvcnRTdHlsZVJlc29sdmVyIDogcHVibGljIFJlZkNvdW50ZWQ8Vmlld3Bv
cnRTdHlsZVJlc29sdmVyPiB7CitwdWJsaWM6CisgICAgc3RhdGljIFBhc3NSZWZQdHI8Vmlld3Bv
cnRTdHlsZVJlc29sdmVyPiBjcmVhdGUoRG9jdW1lbnQqIGRvY3VtZW50KQorICAgIHsKKyAgICAg
ICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBWaWV3cG9ydFN0eWxlUmVzb2x2ZXIoZG9jdW1lbnQpKTsK
KyAgICB9CisKKyAgICB2b2lkIGFkZFZpZXdwb3J0UnVsZShTdHlsZVJ1bGVWaWV3cG9ydCopOwor
CisgICAgdm9pZCBjbGVhckRvY3VtZW50KCk7CisgICAgdm9pZCByZXNvbHZlKCk7CisKK3ByaXZh
dGU6CisgICAgZXhwbGljaXQgVmlld3BvcnRTdHlsZVJlc29sdmVyKERvY3VtZW50Kik7CisKKyAg
ICBmbG9hdCBnZXRWaWV3cG9ydEFyZ3VtZW50VmFsdWUoQ1NTUHJvcGVydHlJRCkgY29uc3Q7CisK
KyAgICBEb2N1bWVudCogbV9kb2N1bWVudDsKKyAgICBSZWZQdHI8U3R5bGVQcm9wZXJ0eVNldD4g
bV9wcm9wZXJ0eVNldDsKKworICAgIEZsb2F0U2l6ZSBtX2luaXRpYWxWaWV3cG9ydFNpemU7Cit9
OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBFTkFCTEUoQ1NTX0RFVklD
RV9BREFQVEFUSU9OKQorCisjZW5kaWYgLy8gVmlld3BvcnRTdHlsZVJlc29sdmVyX2gKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oIGIvU291cmNlL1dlYkNvcmUvZG9t
L0RvY3VtZW50LmgKaW5kZXggNDQwY2ZhMmMzNTAwMzM3ZDZkMzcwMDhjNWNiZDlmMDdlZjJmMzg1
Ny4uYjk2MWMzNTA3MzgwYTUxZDFhOGZkY2U0MTU1NWRkN2YyNGQ5ZmM5NiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0Rv
Y3VtZW50LmgKQEAgLTMyMyw2ICszMjMsNyBAQCBwdWJsaWM6CiAgICAgREVGSU5FX0FUVFJJQlVU
RV9FVkVOVF9MSVNURU5FUih3ZWJraXR2aXNpYmlsaXR5Y2hhbmdlKTsKICNlbmRpZgogCisgICAg
dm9pZCBzZXRWaWV3cG9ydEFyZ3VtZW50cyhjb25zdCBWaWV3cG9ydEFyZ3VtZW50cyYgdmlld3Bv
cnRBcmd1bWVudHMpIHsgbV92aWV3cG9ydEFyZ3VtZW50cyA9IHZpZXdwb3J0QXJndW1lbnRzOyB9
CiAgICAgVmlld3BvcnRBcmd1bWVudHMgdmlld3BvcnRBcmd1bWVudHMoKSBjb25zdCB7IHJldHVy
biBtX3ZpZXdwb3J0QXJndW1lbnRzOyB9CiAjaWZuZGVmIE5ERUJVRwogICAgIGJvb2wgZGlkRGlz
cGF0Y2hWaWV3cG9ydFByb3BlcnRpZXNDaGFuZ2VkKCkgY29uc3QgeyByZXR1cm4gbV9kaWREaXNw
YXRjaFZpZXdwb3J0UHJvcGVydGllc0NoYW5nZWQ7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2RvbS9WaWV3cG9ydEFyZ3VtZW50cy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vVmlld3Bv
cnRBcmd1bWVudHMuY3BwCmluZGV4IGQ4ODQwNGUzNjIzMDRmNzg3MjQyYjIyM2NkN2ZmZDljYzcw
ZjAyOTEuLmUxYWRlNjNkMTFkYjVjNmRlYzI3ZGRhNTc0MDk3NjBkYjA0NzI2ZjIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9WaWV3cG9ydEFyZ3VtZW50cy5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvZG9tL1ZpZXdwb3J0QXJndW1lbnRzLmNwcApAQCAtNiw2ICs2LDcgQEAKICAqIENv
cHlyaWdodCAoQykgMjAwNCwgMjAwNSwgMjAwNiwgMjAwNywgMjAwOCwgMjAxMSBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKiBDb3B5cmlnaHQgKEMpIDIwMDggVG9yY2ggTW9iaWxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4gKGh0dHA6Ly93d3cudG9yY2htb2JpbGUuY29tLykK
ICAqIENvcHlyaWdodCAoQykgMjAxMCBOb2tpYSBDb3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNp
ZGlhcnkoLWllcykKKyAqIENvcHlyaWdodCAoQykgMjAxMiBJbnRlbCBDb3Jwb3JhdGlvbi4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsg
eW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCiAgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRl
cm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYwpAQCAtNDMsNiArNDQsMTkgQEAg
bmFtZXNwYWNlIFdlYkNvcmUgewogCiBjb25zdCBmbG9hdCBWaWV3cG9ydEFyZ3VtZW50czo6ZGVw
cmVjYXRlZFRhcmdldERQSSA9IDE2MDsKIAorc3RhdGljIGNvbnN0IGZsb2F0JiBjb21wYXJlSWdu
b3JpbmdBdXRvKGNvbnN0IGZsb2F0JiB2YWx1ZTEsIGNvbnN0IGZsb2F0JiB2YWx1ZTIsIGNvbnN0
IGZsb2F0JiAoKmNvbXBhcmUpIChjb25zdCBmbG9hdCYsIGNvbnN0IGZsb2F0JikpCit7CisgICAg
QVNTRVJUKHZhbHVlMSAhPSBWaWV3cG9ydEFyZ3VtZW50czo6VmFsdWVBdXRvIHx8IHZhbHVlMiAh
PSBWaWV3cG9ydEFyZ3VtZW50czo6VmFsdWVBdXRvKTsKKworICAgIGlmICh2YWx1ZTEgPT0gVmll
d3BvcnRBcmd1bWVudHM6OlZhbHVlQXV0bykKKyAgICAgICAgcmV0dXJuIHZhbHVlMjsKKworICAg
IGlmICh2YWx1ZTIgPT0gVmlld3BvcnRBcmd1bWVudHM6OlZhbHVlQXV0bykKKyAgICAgICAgcmV0
dXJuIHZhbHVlMTsKKworICAgIHJldHVybiBjb21wYXJlKHZhbHVlMSwgdmFsdWUyKTsKK30KKwog
c3RhdGljIGlubGluZSBmbG9hdCBjbGFtcExlbmd0aFZhbHVlKGZsb2F0IHZhbHVlKQogewogICAg
IEFTU0VSVCh2YWx1ZSAhPSBWaWV3cG9ydEFyZ3VtZW50czo6VmFsdWVEZXZpY2VXaWR0aCk7CkBA
IC02OCw3ICs4MiwxMSBAQCBzdGF0aWMgaW5saW5lIGZsb2F0IGNsYW1wU2NhbGVWYWx1ZShmbG9h
dCB2YWx1ZSkKIFZpZXdwb3J0QXR0cmlidXRlcyBWaWV3cG9ydEFyZ3VtZW50czo6cmVzb2x2ZShj
b25zdCBGbG9hdFNpemUmIGluaXRpYWxWaWV3cG9ydFNpemUsIGNvbnN0IEZsb2F0U2l6ZSYgZGV2
aWNlU2l6ZSwgaW50IGRlZmF1bHRXaWR0aCkgY29uc3QKIHsKICAgICBmbG9hdCByZXN1bHRXaWR0
aCA9IHdpZHRoOworICAgIGZsb2F0IHJlc3VsdE1heFdpZHRoID0gbWF4V2lkdGg7CisgICAgZmxv
YXQgcmVzdWx0TWluV2lkdGggPSBtaW5XaWR0aDsKICAgICBmbG9hdCByZXN1bHRIZWlnaHQgPSBo
ZWlnaHQ7CisgICAgZmxvYXQgcmVzdWx0TWluSGVpZ2h0ID0gbWluSGVpZ2h0OworICAgIGZsb2F0
IHJlc3VsdE1heEhlaWdodCA9IG1heEhlaWdodDsKICAgICBmbG9hdCByZXN1bHRab29tID0gem9v
bTsKICAgICBmbG9hdCByZXN1bHRNaW5ab29tID0gbWluWm9vbTsKICAgICBmbG9hdCByZXN1bHRN
YXhab29tID0gbWF4Wm9vbTsKQEAgLTkyLDYgKzExMCw3MyBAQCBWaWV3cG9ydEF0dHJpYnV0ZXMg
Vmlld3BvcnRBcmd1bWVudHM6OnJlc29sdmUoY29uc3QgRmxvYXRTaXplJiBpbml0aWFsVmlld3Bv
cnRTaQogICAgICAgICBicmVhazsKICAgICB9CiAKKyAgICBpZiAodHlwZSA9PSBWaWV3cG9ydEFy
Z3VtZW50czo6Q1NTRGV2aWNlQWRhcHRhdGlvbikgeworICAgICAgICBzd2l0Y2ggKGludChyZXN1
bHRNaW5XaWR0aCkpIHsKKyAgICAgICAgY2FzZSBWaWV3cG9ydEFyZ3VtZW50czo6VmFsdWVEZXZp
Y2VXaWR0aDoKKyAgICAgICAgICAgIHJlc3VsdE1pbldpZHRoID0gZGV2aWNlU2l6ZS53aWR0aCgp
OworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgVmlld3BvcnRBcmd1bWVudHM6OlZh
bHVlRGV2aWNlSGVpZ2h0OgorICAgICAgICAgICAgcmVzdWx0TWluV2lkdGggPSBkZXZpY2VTaXpl
LmhlaWdodCgpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKworICAgICAgICBzd2l0
Y2ggKGludChyZXN1bHRNYXhXaWR0aCkpIHsKKyAgICAgICAgY2FzZSBWaWV3cG9ydEFyZ3VtZW50
czo6VmFsdWVEZXZpY2VXaWR0aDoKKyAgICAgICAgICAgIHJlc3VsdE1heFdpZHRoID0gZGV2aWNl
U2l6ZS53aWR0aCgpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgVmlld3BvcnRB
cmd1bWVudHM6OlZhbHVlRGV2aWNlSGVpZ2h0OgorICAgICAgICAgICAgcmVzdWx0TWF4V2lkdGgg
PSBkZXZpY2VTaXplLmhlaWdodCgpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKwor
ICAgICAgICBzd2l0Y2ggKGludChyZXN1bHRNaW5IZWlnaHQpKSB7CisgICAgICAgIGNhc2UgVmll
d3BvcnRBcmd1bWVudHM6OlZhbHVlRGV2aWNlV2lkdGg6CisgICAgICAgICAgICByZXN1bHRNaW5I
ZWlnaHQgPSBkZXZpY2VTaXplLndpZHRoKCk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAg
Y2FzZSBWaWV3cG9ydEFyZ3VtZW50czo6VmFsdWVEZXZpY2VIZWlnaHQ6CisgICAgICAgICAgICBy
ZXN1bHRNaW5IZWlnaHQgPSBkZXZpY2VTaXplLmhlaWdodCgpOworICAgICAgICAgICAgYnJlYWs7
CisgICAgICAgIH0KKworICAgICAgICBzd2l0Y2ggKGludChyZXN1bHRNYXhIZWlnaHQpKSB7Cisg
ICAgICAgIGNhc2UgVmlld3BvcnRBcmd1bWVudHM6OlZhbHVlRGV2aWNlV2lkdGg6CisgICAgICAg
ICAgICByZXN1bHRNYXhIZWlnaHQgPSBkZXZpY2VTaXplLndpZHRoKCk7CisgICAgICAgICAgICBi
cmVhazsKKyAgICAgICAgY2FzZSBWaWV3cG9ydEFyZ3VtZW50czo6VmFsdWVEZXZpY2VIZWlnaHQ6
CisgICAgICAgICAgICByZXN1bHRNYXhIZWlnaHQgPSBkZXZpY2VTaXplLmhlaWdodCgpOworICAg
ICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKworICAgICAgICBpZiAocmVzdWx0TWluV2lkdGgg
IT0gVmlld3BvcnRBcmd1bWVudHM6OlZhbHVlQXV0byB8fCByZXN1bHRNYXhXaWR0aCAhPSBWaWV3
cG9ydEFyZ3VtZW50czo6VmFsdWVBdXRvKQorICAgICAgICAgICAgcmVzdWx0V2lkdGggPSBjb21w
YXJlSWdub3JpbmdBdXRvKHJlc3VsdE1pbldpZHRoLCBjb21wYXJlSWdub3JpbmdBdXRvKHJlc3Vs
dE1heFdpZHRoLCBkZXZpY2VTaXplLndpZHRoKCksIG1pbiksIG1heCk7CisKKyAgICAgICAgaWYg
KHJlc3VsdE1pbkhlaWdodCAhPSBWaWV3cG9ydEFyZ3VtZW50czo6VmFsdWVBdXRvIHx8IHJlc3Vs
dE1heEhlaWdodCAhPSBWaWV3cG9ydEFyZ3VtZW50czo6VmFsdWVBdXRvKQorICAgICAgICAgICAg
cmVzdWx0SGVpZ2h0ID0gY29tcGFyZUlnbm9yaW5nQXV0byhyZXN1bHRNaW5IZWlnaHQsIGNvbXBh
cmVJZ25vcmluZ0F1dG8ocmVzdWx0TWF4SGVpZ2h0LCBkZXZpY2VTaXplLmhlaWdodCgpLCBtaW4p
LCBtYXgpOworCisgICAgICAgIGlmIChyZXN1bHRNaW5ab29tICE9IFZpZXdwb3J0QXJndW1lbnRz
OjpWYWx1ZUF1dG8gJiYgcmVzdWx0TWF4Wm9vbSAhPSBWaWV3cG9ydEFyZ3VtZW50czo6VmFsdWVB
dXRvKQorICAgICAgICAgICAgcmVzdWx0TWF4Wm9vbSA9IG1heChyZXN1bHRNaW5ab29tLCByZXN1
bHRNYXhab29tKTsKKworICAgICAgICBpZiAocmVzdWx0Wm9vbSAhPSBWaWV3cG9ydEFyZ3VtZW50
czo6VmFsdWVBdXRvKQorICAgICAgICAgICAgcmVzdWx0Wm9vbSA9IGNvbXBhcmVJZ25vcmluZ0F1
dG8ocmVzdWx0TWluWm9vbSwgY29tcGFyZUlnbm9yaW5nQXV0byhyZXN1bHRNYXhab29tLCByZXN1
bHRab29tLCBtaW4pLCBtYXgpOworCisgICAgICAgIGlmIChyZXN1bHRXaWR0aCA9PSBWaWV3cG9y
dEFyZ3VtZW50czo6VmFsdWVBdXRvICYmIHJlc3VsdFpvb20gPT0gVmlld3BvcnRBcmd1bWVudHM6
OlZhbHVlQXV0bykKKyAgICAgICAgICAgIHJlc3VsdFdpZHRoID0gZGV2aWNlU2l6ZS53aWR0aCgp
OworCisgICAgICAgIGlmIChyZXN1bHRXaWR0aCA9PSBWaWV3cG9ydEFyZ3VtZW50czo6VmFsdWVB
dXRvICYmIHJlc3VsdEhlaWdodCA9PSBWaWV3cG9ydEFyZ3VtZW50czo6VmFsdWVBdXRvKQorICAg
ICAgICAgICAgcmVzdWx0V2lkdGggPSBkZXZpY2VTaXplLndpZHRoKCkgLyByZXN1bHRab29tOwor
CisgICAgICAgIGlmIChyZXN1bHRXaWR0aCA9PSBWaWV3cG9ydEFyZ3VtZW50czo6VmFsdWVBdXRv
KQorICAgICAgICAgICAgcmVzdWx0V2lkdGggPSByZXN1bHRIZWlnaHQgKiBkZXZpY2VTaXplLndp
ZHRoKCkgLyBkZXZpY2VTaXplLmhlaWdodCgpOworCisgICAgICAgIGlmIChyZXN1bHRIZWlnaHQg
PT0gVmlld3BvcnRBcmd1bWVudHM6OlZhbHVlQXV0bykKKyAgICAgICAgICAgIHJlc3VsdEhlaWdo
dCA9IHJlc3VsdFdpZHRoICogZGV2aWNlU2l6ZS5oZWlnaHQoKSAvIGRldmljZVNpemUud2lkdGgo
KTsKKworICAgICAgICBpZiAocmVzdWx0Wm9vbSAhPSBWaWV3cG9ydEFyZ3VtZW50czo6VmFsdWVB
dXRvIHx8IHJlc3VsdE1heFpvb20gIT0gVmlld3BvcnRBcmd1bWVudHM6OlZhbHVlQXV0bykgewor
ICAgICAgICAgICAgcmVzdWx0V2lkdGggPSBjb21wYXJlSWdub3JpbmdBdXRvKHJlc3VsdFdpZHRo
LCBkZXZpY2VTaXplLndpZHRoKCkgLyBjb21wYXJlSWdub3JpbmdBdXRvKHJlc3VsdFpvb20sIHJl
c3VsdE1heFpvb20sIG1pbiksIG1heCk7CisgICAgICAgICAgICByZXN1bHRIZWlnaHQgPSBjb21w
YXJlSWdub3JpbmdBdXRvKHJlc3VsdEhlaWdodCwgZGV2aWNlU2l6ZS5oZWlnaHQoKSAvIGNvbXBh
cmVJZ25vcmluZ0F1dG8ocmVzdWx0Wm9vbSwgcmVzdWx0TWF4Wm9vbSwgbWluKSwgbWF4KTsKKyAg
ICAgICAgfQorICAgIH0KKwogICAgIC8vIENsYW1wIHZhbHVlcyB0byB2YWxpZCByYW5nZS4KICAg
ICByZXN1bHRXaWR0aCA9IGNsYW1wTGVuZ3RoVmFsdWUocmVzdWx0V2lkdGgpOwogICAgIHJlc3Vs
dEhlaWdodCA9IGNsYW1wTGVuZ3RoVmFsdWUocmVzdWx0SGVpZ2h0KTsKQEAgLTEwMCw2ICsxODUs
NyBAQCBWaWV3cG9ydEF0dHJpYnV0ZXMgVmlld3BvcnRBcmd1bWVudHM6OnJlc29sdmUoY29uc3Qg
RmxvYXRTaXplJiBpbml0aWFsVmlld3BvcnRTaQogICAgIHJlc3VsdE1heFpvb20gPSBjbGFtcFNj
YWxlVmFsdWUocmVzdWx0TWF4Wm9vbSk7CiAKICAgICBWaWV3cG9ydEF0dHJpYnV0ZXMgcmVzdWx0
OworICAgIHJlc3VsdC5vcmllbnRhdGlvbiA9IG9yaWVudGF0aW9uOwogCiAgICAgLy8gUmVzb2x2
ZSBtaW5pbXVtLXNjYWxlIGFuZCBtYXhpbXVtLXNjYWxlIHZhbHVlcyBhY2NvcmRpbmcgdG8gc3Bl
Yy4KICAgICBpZiAocmVzdWx0TWluWm9vbSA9PSBWaWV3cG9ydEFyZ3VtZW50czo6VmFsdWVBdXRv
KQpAQCAtMTU1LDYgKzI0MSw3IEBAIFZpZXdwb3J0QXR0cmlidXRlcyBWaWV3cG9ydEFyZ3VtZW50
czo6cmVzb2x2ZShjb25zdCBGbG9hdFNpemUmIGluaXRpYWxWaWV3cG9ydFNpCiAgICAgLy8gICAg
cmVzdWx0LmluaXRpYWxTY2FsZSA9IFZpZXdwb3J0QXJndW1lbnRzOjpWYWx1ZUF1dG87CiAKICAg
ICByZXN1bHQudXNlclNjYWxhYmxlID0gcmVzdWx0VXNlclpvb207CisgICAgcmVzdWx0Lm9yaWVu
dGF0aW9uID0gb3JpZW50YXRpb247CiAKICAgICByZXR1cm4gcmVzdWx0OwogfQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvZG9tL1ZpZXdwb3J0QXJndW1lbnRzLmggYi9Tb3VyY2UvV2ViQ29y
ZS9kb20vVmlld3BvcnRBcmd1bWVudHMuaAppbmRleCAxN2M4YWRmZDVmZDFhNmQxNTk2N2EzN2Ex
OTdkYTkzNGNkNDk2ZGFjLi5lMmY2ZjJlZWZmMWU4YzE0MDYxZjgxODA5YzYxYWJhOWQ5Y2NhNmIz
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vVmlld3BvcnRBcmd1bWVudHMuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9kb20vVmlld3BvcnRBcmd1bWVudHMuaApAQCAtNiw2ICs2LDcgQEAK
ICAqIENvcHlyaWdodCAoQykgMjAwNCwgMjAwNSwgMjAwNiwgMjAwNywgMjAwOCBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKiBDb3B5cmlnaHQgKEMpIDIwMDggVG9yY2ggTW9iaWxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4gKGh0dHA6Ly93d3cudG9yY2htb2JpbGUuY29tLykK
ICAqIENvcHlyaWdodCAoQykgMjAxMCBOb2tpYSBDb3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNp
ZGlhcnkoLWllcykKKyAqIENvcHlyaWdodCAoQykgMjAxMiBJbnRlbCBDb3Jwb3JhdGlvbi4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsg
eW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCiAgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRl
cm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYwpAQCAtNTAsNiArNTEsNyBAQCBz
dHJ1Y3QgVmlld3BvcnRBdHRyaWJ1dGVzIHsKICAgICBmbG9hdCBtYXhpbXVtU2NhbGU7CiAKICAg
ICBmbG9hdCB1c2VyU2NhbGFibGU7CisgICAgZmxvYXQgb3JpZW50YXRpb247CiB9OwogCiBzdHJ1
Y3QgVmlld3BvcnRBcmd1bWVudHMgewpAQCAtNjIsMjMgKzY0LDMxIEBAIHN0cnVjdCBWaWV3cG9y
dEFyZ3VtZW50cyB7CiAgICAgICAgIEhhbmRoZWxkRnJpZW5kbHlNZXRhLAogICAgICAgICBNb2Jp
bGVPcHRpbWl6ZWRNZXRhLAogI2VuZGlmCi0gICAgICAgIFZpZXdwb3J0TWV0YQorICAgICAgICBW
aWV3cG9ydE1ldGEsCisgICAgICAgIENTU0RldmljZUFkYXB0YXRpb24KICAgICB9IHR5cGU7CiAK
ICAgICBlbnVtIHsKICAgICAgICAgVmFsdWVBdXRvID0gLTEsCiAgICAgICAgIFZhbHVlRGV2aWNl
V2lkdGggPSAtMiwKICAgICAgICAgVmFsdWVEZXZpY2VIZWlnaHQgPSAtMywKKyAgICAgICAgVmFs
dWVQb3J0cmFpdCA9IC00LAorICAgICAgICBWYWx1ZUxhbmRzY2FwZSA9IC01CiAgICAgfTsKIAog
ICAgIFZpZXdwb3J0QXJndW1lbnRzKFR5cGUgdHlwZSA9IEltcGxpY2l0KQogICAgICAgICA6IHR5
cGUodHlwZSkKICAgICAgICAgLCB3aWR0aChWYWx1ZUF1dG8pCisgICAgICAgICwgbWluV2lkdGgo
VmFsdWVBdXRvKQorICAgICAgICAsIG1heFdpZHRoKFZhbHVlQXV0bykKICAgICAgICAgLCBoZWln
aHQoVmFsdWVBdXRvKQorICAgICAgICAsIG1pbkhlaWdodChWYWx1ZUF1dG8pCisgICAgICAgICwg
bWF4SGVpZ2h0KFZhbHVlQXV0bykKICAgICAgICAgLCB6b29tKFZhbHVlQXV0bykKICAgICAgICAg
LCBtaW5ab29tKFZhbHVlQXV0bykKICAgICAgICAgLCBtYXhab29tKFZhbHVlQXV0bykKICAgICAg
ICAgLCB1c2VyWm9vbShWYWx1ZUF1dG8pCisgICAgICAgICwgb3JpZW50YXRpb24oVmFsdWVBdXRv
KQogICAgIHsKICAgICB9CiAKQEAgLTg2LDIyICs5NiwzMiBAQCBzdHJ1Y3QgVmlld3BvcnRBcmd1
bWVudHMgewogICAgIFZpZXdwb3J0QXR0cmlidXRlcyByZXNvbHZlKGNvbnN0IEZsb2F0U2l6ZSYg
aW5pdGlhbFZpZXdwb3J0U2l6ZSwgY29uc3QgRmxvYXRTaXplJiBkZXZpY2VTaXplLCBpbnQgZGVm
YXVsdFdpZHRoKSBjb25zdDsKIAogICAgIGZsb2F0IHdpZHRoOworICAgIGZsb2F0IG1pbldpZHRo
OworICAgIGZsb2F0IG1heFdpZHRoOwogICAgIGZsb2F0IGhlaWdodDsKKyAgICBmbG9hdCBtaW5I
ZWlnaHQ7CisgICAgZmxvYXQgbWF4SGVpZ2h0OwogICAgIGZsb2F0IHpvb207CiAgICAgZmxvYXQg
bWluWm9vbTsKICAgICBmbG9hdCBtYXhab29tOwogICAgIGZsb2F0IHVzZXJab29tOworICAgIGZs
b2F0IG9yaWVudGF0aW9uOwogCiAgICAgYm9vbCBvcGVyYXRvcj09KGNvbnN0IFZpZXdwb3J0QXJn
dW1lbnRzJiBvdGhlcikgY29uc3QKICAgICB7CiAgICAgICAgIC8vIFVzZWQgZm9yIGZpZ3VyaW5n
IG91dCB3aGV0aGVyIHRvIHJlc2V0IHRoZSB2aWV3cG9ydCBvciBub3QsCiAgICAgICAgIC8vIHRo
dXMgd2UgYXJlIG5vdCB0YWtpbmcgdHlwZSBpbnRvIGFjY291bnQuCiAgICAgICAgIHJldHVybiB3
aWR0aCA9PSBvdGhlci53aWR0aAorICAgICAgICAgICAgJiYgbWluV2lkdGggPT0gb3RoZXIubWlu
V2lkdGgKKyAgICAgICAgICAgICYmIG1heFdpZHRoID09IG90aGVyLm1heFdpZHRoCiAgICAgICAg
ICAgICAmJiBoZWlnaHQgPT0gb3RoZXIuaGVpZ2h0CisgICAgICAgICAgICAmJiBtaW5IZWlnaHQg
PT0gb3RoZXIubWluSGVpZ2h0CisgICAgICAgICAgICAmJiBtYXhIZWlnaHQgPT0gb3RoZXIubWF4
SGVpZ2h0CiAgICAgICAgICAgICAmJiB6b29tID09IG90aGVyLnpvb20KICAgICAgICAgICAgICYm
IG1pblpvb20gPT0gb3RoZXIubWluWm9vbQogICAgICAgICAgICAgJiYgbWF4Wm9vbSA9PSBvdGhl
ci5tYXhab29tCi0gICAgICAgICAgICAmJiB1c2VyWm9vbSA9PSBvdGhlci51c2VyWm9vbTsKKyAg
ICAgICAgICAgICYmIHVzZXJab29tID09IG90aGVyLnVzZXJab29tCisgICAgICAgICAgICAmJiBv
cmllbnRhdGlvbiA9PSBvdGhlci5vcmllbnRhdGlvbjsKICAgICB9CiAKICAgICBib29sIG9wZXJh
dG9yIT0oY29uc3QgVmlld3BvcnRBcmd1bWVudHMmIG90aGVyKSBjb25zdApkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IGYwZjli
YzVhOTkzMGY4YjkwYWJmZmFjZTI1NDQ3Nzk4MDllZmM5ODkuLmI0ZWZjZGE3YThkYmU4NzlkNjU4
Zjc5Mzg3OWZkODZmM2Q3OWZmYjcgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZwor
KysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSw3NCBAQAorMjAxMi0xMS0xOSAg
VGhpYWdvIE1hcmNvcyBQLiBTYW50b3MgIDx0aGlhZ28uc2FudG9zQGludGVsLmNvbT4KKworICAg
ICAgICBBcHBseSB0aGUgcmVzb2x2ZWQgdmlld3BvcnQgcnVsZXMKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTk1OTY0CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgS2VubmV0aCBSb2hkZSBDaHJpc3RpYW5zZW4uCisKKyAgICAgICAgSW1wb3J0ZWQgc29tZSBv
ZiB0aGUgQ1NTIERldmljZSBBZGFwdGF0aW9uIHRlc3RzIHN1Ym1pdHRlZCBieQorICAgICAgICBP
cGVyYSB0byBXM0MgQ1NTIFRlc3QgU3VpdGUuIFRoZXNlIHRlc3RzIGFyZSBub3QgeWV0IGFwcHJv
dmVkIGJ1dAorICAgICAgICB0aGV5IGhhdmUgYSBwcmV0dHkgZ29vZCBjb3ZlcmFnZSBvZiB0aGUg
c3BlY2lmaWNhdGlvbi4KKworICAgICAgICBUZXN0cyB1c2luZyBNYXRoLmZsb29yKCkgd2hlcmUg
bW9kaWZpZWQgZnJvbSB0aGUgb3JpZ2luYWwgdmVyc2lvbgorICAgICAgICB1c2luZyBNYXRoLnJv
dW5kKCksIHRoZSByZWFzb24gYmVpbmcgdGhlIHJvdW5kKCkgdmVyc2lvbiBmYWlscyBieQorICAg
ICAgICAxcHggd2hlbiB0aGUgcGl4ZWwgcmF0aW8gaXMgZGlmZmVyZW50IGZyb20gMS4KKworICAg
ICAgICBEZXNwaXRlIHRoZSBmYWN0IHRoZXkgYXJlIGFsbCBwYXNzaW5nIG9uIHRoZSBFRkwgTWlu
aUJyb3dzZXIsIEkgY291bGQKKyAgICAgICAgbm90IGVuYWJsZSB0aGVtIHlldC4gV2ViS2l0VGVz
dFJ1bm5lciBkb2VzIG5vdCBzdXBwb3J0IGZpeGVkIGxheW91dCwKKyAgICAgICAgYnV0IHRoYXQg
aXMgdGhlIG5leHQgZ29hbC4KKworICAgICAgICAqIGNzczMvZGV2aWNlLWFkYXB0L29wZXJhL2Nh
c2NhZGluZy0wMDEtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBjc3MzL2RldmljZS1h
ZGFwdC9vcGVyYS9jYXNjYWRpbmctMDAxLnhodG1sOiBBZGRlZC4KKyAgICAgICAgKiBjc3MzL2Rl
dmljZS1hZGFwdC9vcGVyYS9jYXNjYWRpbmctMDAyLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAg
ICAgICogY3NzMy9kZXZpY2UtYWRhcHQvb3BlcmEvY2FzY2FkaW5nLTAwMi54aHRtbDogQWRkZWQu
CisgICAgICAgICogY3NzMy9kZXZpY2UtYWRhcHQvb3BlcmEvY2FzY2FkaW5nLTAwMy1leHBlY3Rl
ZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGNzczMvZGV2aWNlLWFkYXB0L29wZXJhL2Nhc2NhZGlu
Zy0wMDMueGh0bWw6IEFkZGVkLgorICAgICAgICAqIGNzczMvZGV2aWNlLWFkYXB0L29wZXJhL2Nh
c2NhZGluZy0wMDQtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBjc3MzL2RldmljZS1h
ZGFwdC9vcGVyYS9jYXNjYWRpbmctMDA0LnhodG1sOiBBZGRlZC4KKyAgICAgICAgKiBjc3MzL2Rl
dmljZS1hZGFwdC9vcGVyYS9jb25zdHJhaW4tMDAxLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAg
ICAgICogY3NzMy9kZXZpY2UtYWRhcHQvb3BlcmEvY29uc3RyYWluLTAwMS54aHRtbDogQWRkZWQu
CisgICAgICAgICogY3NzMy9kZXZpY2UtYWRhcHQvb3BlcmEvY29uc3RyYWluLTAwMi1leHBlY3Rl
ZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGNzczMvZGV2aWNlLWFkYXB0L29wZXJhL2NvbnN0cmFp
bi0wMDIueGh0bWw6IEFkZGVkLgorICAgICAgICAqIGNzczMvZGV2aWNlLWFkYXB0L29wZXJhL2Nv
bnN0cmFpbi0wMDMtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBjc3MzL2RldmljZS1h
ZGFwdC9vcGVyYS9jb25zdHJhaW4tMDAzLnhodG1sOiBBZGRlZC4KKyAgICAgICAgKiBjc3MzL2Rl
dmljZS1hZGFwdC9vcGVyYS9jb25zdHJhaW4tMDA0LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAg
ICAgICogY3NzMy9kZXZpY2UtYWRhcHQvb3BlcmEvY29uc3RyYWluLTAwNC54aHRtbDogQWRkZWQu
CisgICAgICAgICogY3NzMy9kZXZpY2UtYWRhcHQvb3BlcmEvY29uc3RyYWluLTAwNS1leHBlY3Rl
ZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGNzczMvZGV2aWNlLWFkYXB0L29wZXJhL2NvbnN0cmFp
bi0wMDUueGh0bWw6IEFkZGVkLgorICAgICAgICAqIGNzczMvZGV2aWNlLWFkYXB0L29wZXJhL2Nv
bnN0cmFpbi0wMDYtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBjc3MzL2RldmljZS1h
ZGFwdC9vcGVyYS9jb25zdHJhaW4tMDA2LnhodG1sOiBBZGRlZC4KKyAgICAgICAgKiBjc3MzL2Rl
dmljZS1hZGFwdC9vcGVyYS9jb25zdHJhaW4tMDA3LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAg
ICAgICogY3NzMy9kZXZpY2UtYWRhcHQvb3BlcmEvY29uc3RyYWluLTAwNy54aHRtbDogQWRkZWQu
CisgICAgICAgICogY3NzMy9kZXZpY2UtYWRhcHQvb3BlcmEvY29uc3RyYWluLTAwOC1leHBlY3Rl
ZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGNzczMvZGV2aWNlLWFkYXB0L29wZXJhL2NvbnN0cmFp
bi0wMDgueGh0bWw6IEFkZGVkLgorICAgICAgICAqIGNzczMvZGV2aWNlLWFkYXB0L29wZXJhL2Nv
bnN0cmFpbi0wMDktZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBjc3MzL2RldmljZS1h
ZGFwdC9vcGVyYS9jb25zdHJhaW4tMDA5LnhodG1sOiBBZGRlZC4KKyAgICAgICAgKiBjc3MzL2Rl
dmljZS1hZGFwdC9vcGVyYS9jb25zdHJhaW4tMDEwLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAg
ICAgICogY3NzMy9kZXZpY2UtYWRhcHQvb3BlcmEvY29uc3RyYWluLTAxMC54aHRtbDogQWRkZWQu
CisgICAgICAgICogY3NzMy9kZXZpY2UtYWRhcHQvb3BlcmEvY29uc3RyYWluLTAxMS1leHBlY3Rl
ZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGNzczMvZGV2aWNlLWFkYXB0L29wZXJhL2NvbnN0cmFp
bi0wMTEueGh0bWw6IEFkZGVkLgorICAgICAgICAqIGNzczMvZGV2aWNlLWFkYXB0L29wZXJhL2Nv
bnN0cmFpbi0wMTItZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBjc3MzL2RldmljZS1h
ZGFwdC9vcGVyYS9jb25zdHJhaW4tMDEyLnhodG1sOiBBZGRlZC4KKyAgICAgICAgKiBjc3MzL2Rl
dmljZS1hZGFwdC9vcGVyYS9jb25zdHJhaW4tMDEzLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAg
ICAgICogY3NzMy9kZXZpY2UtYWRhcHQvb3BlcmEvY29uc3RyYWluLTAxMy54aHRtbDogQWRkZWQu
CisgICAgICAgICogY3NzMy9kZXZpY2UtYWRhcHQvb3BlcmEvY29uc3RyYWluLTAxNC1leHBlY3Rl
ZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGNzczMvZGV2aWNlLWFkYXB0L29wZXJhL2NvbnN0cmFp
bi0wMTQueGh0bWw6IEFkZGVkLgorICAgICAgICAqIGNzczMvZGV2aWNlLWFkYXB0L29wZXJhL2Nv
bnN0cmFpbi0wMTUtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBjc3MzL2RldmljZS1h
ZGFwdC9vcGVyYS9jb25zdHJhaW4tMDE1LnhodG1sOiBBZGRlZC4KKyAgICAgICAgKiBjc3MzL2Rl
dmljZS1hZGFwdC9vcGVyYS9jb25zdHJhaW4tMDE2LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAg
ICAgICogY3NzMy9kZXZpY2UtYWRhcHQvb3BlcmEvY29uc3RyYWluLTAxNi54aHRtbDogQWRkZWQu
CisgICAgICAgICogY3NzMy9kZXZpY2UtYWRhcHQvb3BlcmEvY29uc3RyYWluLTAxNy1leHBlY3Rl
ZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGNzczMvZGV2aWNlLWFkYXB0L29wZXJhL2NvbnN0cmFp
bi0wMTcueGh0bWw6IEFkZGVkLgorICAgICAgICAqIGNzczMvZGV2aWNlLWFkYXB0L29wZXJhL2Nv
bnN0cmFpbi0wMjAtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBjc3MzL2RldmljZS1h
ZGFwdC9vcGVyYS9jb25zdHJhaW4tMDIwLnhodG1sOiBBZGRlZC4KKyAgICAgICAgKiBjc3MzL2Rl
dmljZS1hZGFwdC9vcGVyYS9zeW50YXgtMDAxLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAg
ICogY3NzMy9kZXZpY2UtYWRhcHQvb3BlcmEvc3ludGF4LTAwMS54aHRtbDogQWRkZWQuCisgICAg
ICAgICogY3NzMy9kZXZpY2UtYWRhcHQvb3BlcmEvc3ludGF4LTAwMi1leHBlY3RlZC50eHQ6IEFk
ZGVkLgorICAgICAgICAqIGNzczMvZGV2aWNlLWFkYXB0L29wZXJhL3N5bnRheC0wMDIueGh0bWw6
IEFkZGVkLgorICAgICAgICAqIGNzczMvZGV2aWNlLWFkYXB0L29wZXJhL3N5bnRheC0wMDMtZXhw
ZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBjc3MzL2RldmljZS1hZGFwdC9vcGVyYS9zeW50
YXgtMDAzLnhodG1sOiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9lZmwvVGVzdEV4cGVjdGF0
aW9uczoKKwogMjAxMi0xMS0xOSAgRXJpayBBcnZpZHNzb24gIDxhcnZAY2hyb21pdW0ub3JnPgog
CiAgICAgICAgIFVwZGF0ZSBET01FeGNlcHRpb24gbmFtZTogUXVvdGFFeGNlZWRlZEVycm9yCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9jc3MzL2RldmljZS1hZGFwdC9vcGVyYS9jYXNjYWRpbmct
MDAxLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2NzczMvZGV2aWNlLWFkYXB0L29wZXJhL2Nh
c2NhZGluZy0wMDEtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmU0ZTVkOTA2YTdiMDZlNzg1ZDhj
NTUwY2M5YTZhYTNkM2RjZDkwOTkKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9jc3Mz
L2RldmljZS1hZGFwdC9vcGVyYS9jYXNjYWRpbmctMDAxLWV4cGVjdGVkLnR4dApAQCAtMCwwICsx
LDMgQEAKKworUEFTUyBDU1MgVGVzdDogQHZpZXdwb3J0IGNhc2NhZGluZyAtIGxhc3QgZGVjbGFy
YXRpb24gd2lucyAKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvY3NzMy9kZXZpY2UtYWRhcHQv
b3BlcmEvY2FzY2FkaW5nLTAwMS54aHRtbCBiL0xheW91dFRlc3RzL2NzczMvZGV2aWNlLWFkYXB0
L29wZXJhL2Nhc2NhZGluZy0wMDEueGh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMmRiZWUyNGE0NGY4YzIzMDc3
NWZiNzAxZDJiM2RhOTU1MTc3YzIzZQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Nz
czMvZGV2aWNlLWFkYXB0L29wZXJhL2Nhc2NhZGluZy0wMDEueGh0bWwKQEAgLTAsMCArMSw4NCBA
QAorPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KKzwhRE9DVFlQRSBodG1s
IFBVQkxJQyAiLS8vVzNDLy9EVEQgWEhUTUwgMS4wIFN0cmljdC8vRU4iICJodHRwOi8vd3d3Lncz
Lm9yZy9UUi94aHRtbDEvRFREL3hodG1sMS1zdHJpY3QuZHRkIj4KKzxodG1sIHhtbG5zPSJodHRw
Oi8vd3d3LnczLm9yZy8xOTk5L3hodG1sIj4KKyA8aGVhZD4KKyAgPHRpdGxlPkNTUyBUZXN0OiBA
dmlld3BvcnQgY2FzY2FkaW5nIC0gbGFzdCBkZWNsYXJhdGlvbiB3aW5zPC90aXRsZT4KKyAgPGxp
bmsgcmVsPSJhdXRob3IiIHRpdGxlPSJSdW5lIExpbGxlc3ZlZW4iIGhyZWY9Im1haWx0bzpydW5l
QG9wZXJhLmNvbSIvPgorICA8bGluayByZWw9ImhlbHAiIGhyZWY9Imh0dHA6Ly93d3cudzMub3Jn
L1RSL2Nzcy1kZXZpY2UtYWRhcHQvI3RoZS12aWV3cG9ydC1ydWxlIi8+CisgIDxtZXRhIG5hbWU9
ImZsYWdzIiBjb250ZW50PSJ2aXN1YWwgc2Nyb2xsIGRvbSIgLz4KKyAgPG1ldGEgbmFtZT0iYXNz
ZXJ0IiBjb250ZW50PSJUaGUgbGFzdCBvZiB0d28gbm9uLWltcG9ydGFudCBkZWNsYXJhdGlvbnMg
Zm9yIHRoZSBzYW1lIGRlc2NyaXB0b3Igd2lucy4iLz4KKyAgPHNjcmlwdCBzcmM9Ii4uLy4uLy4u
L3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyIgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiAvPgorICA8
c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIiB0eXBl
PSJ0ZXh0L2phdmFzY3JpcHQiIC8+CisgIDxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyI+PCFbQ0RBVEFb
CisgICBib2R5IHsgbWFyZ2luOiAwOyB9CisgICBodG1sLCBib2R5LCAjdGVzdCB7IHdpZHRoOiAx
MDAlOyBoZWlnaHQ6IDEwMCU7IH0KKyAgICNsb2cgeyBwYWRkaW5nOiAxZW07IGRpc3BsYXk6IG5v
bmU7IH0KKyAgIC8qIFJlc2V0IHZpZXdwb3J0IHZhbHVlcyB0byBpbml0aWFsIHZhbHVlcyB0byBp
Z25vcmUgVUEgc3R5bGVzaGVldC4gKi8KKyAgIEAtd2Via2l0LXZpZXdwb3J0IHsKKyAgICB3aWR0
aDogYXV0bzsKKyAgICBoZWlnaHQ6IGF1dG87CisgICAgem9vbTogYXV0bzsKKyAgICBtaW4tem9v
bTogYXV0bzsKKyAgICBtYXgtem9vbTogYXV0bzsKKyAgICB1c2VyLXpvb206IHpvb207CisgICAg
b3JpZW50YXRpb246IGF1dG87CisgICAgcmVzb2x1dGlvbjogYXV0bzsKKyAgIH0KKyAgXV0+PC9z
dHlsZT4KKyAgPHN0eWxlIHR5cGU9InRleHQvY3NzIj48IVtDREFUQVsKKyAgIC8qIENTUyBmb3Ig
dGhlIHRlc3QgYmVsb3cuICovCisgICBALXdlYmtpdC12aWV3cG9ydCB7IHdpZHRoOiAzMDBweDsg
d2lkdGg6IDUwMHB4IH0KKyAgIC8qIFNldCByb290IGVsZW1lbnQgZm9udC1zaXplIHRvIHNvbWV0
aGluZyBkaWZmZXJlbnQgZnJvbSB0aGUgaW5pdGlhbAorICAgICAgZm9udC1zaXplIHRvIG1ha2Ug
c3VyZSAncmVtJyBhbmQgJ2VtJyBmb3IgQHZpZXdwb3J0IGlzIGJhc2VkIG9uIHRoZQorICAgICAg
aW5pdGlhbCBmb250LXNpemUsIG5vdCB0aGUgcm9vdCBlbGVtZW50IGZvbnQtc2l6ZS4gKi8KKyAg
IGh0bWwgeyBmb250LXNpemU6IDJyZW07IH0KKyAgIGJvZHkgeyBmb250LXNpemU6IDAuNXJlbTsg
fQorICBdXT48L3N0eWxlPgorICA8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+PCFbQ0RB
VEFbCisgICB2YXIgdGVzdCA9IGFzeW5jX3Rlc3QoIkNTUyBUZXN0OiBAdmlld3BvcnQgY2FzY2Fk
aW5nIC0gbGFzdCBkZWNsYXJhdGlvbiB3aW5zIik7CisgICB3aW5kb3cub25sb2FkID0gZnVuY3Rp
b24oKXsKKworICAgIHZhciB0ZXN0U3R5bGVTaGVldCA9IGRvY3VtZW50LnN0eWxlU2hlZXRzLml0
ZW0oMSk7CisKKyAgICAvKiBEaXNhYmxlIHRoZSBzdHlsZXNoZWV0IHRoYXQgY29udGFpbnMgdGhl
IEB2aWV3cG9ydCB0byB0ZXN0LiAqLworICAgIHRlc3RTdHlsZVNoZWV0LmRpc2FibGVkID0gdHJ1
ZTsKKworICAgIC8qIEluaXRpYWxpemUgYW4gb2JqZWN0IHRvIHN0b3JlIHZpZXdwb3J0IHZhbHVl
cyB0byBiZSB1c2VkIGJ5IHRoZSB0ZXN0CisgICAgICAgYXNzZXJ0cy4gKi8KKyAgICB2YXIgdmll
d3BvcnQgPSBuZXcgT2JqZWN0KCk7CisKKyAgICAvKiBBbiBlbGVtZW50IHdpdGggdGhlIHNhbWUg
c2l6ZSBhcyB0aGUgaW5pdGlhbCBjb250YWluaW5nIGJsb2NrLiAqLworICAgIHZhciB0ZXN0RWxt
ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRlc3QiKTsKKworICAgIC8qIFJldHJpZXZlIHRo
ZSBpbml0aWFsIHZpZXdwb3J0IHZhbHVlcyBiZWZvcmUgYXBwbHlpbmcgdGhlIEB2aWV3cG9ydCB0
bworICAgICAgIHRlc3QuICovCisgICAgdmlld3BvcnQuaW5pdGlhbFdpZHRoID0gdGVzdEVsbS5v
ZmZzZXRXaWR0aDsKKyAgICB2aWV3cG9ydC5pbml0aWFsSGVpZ2h0ID0gdGVzdEVsbS5vZmZzZXRI
ZWlnaHQ7CisgICAgdmlld3BvcnQuZm9udFNpemUgPSBwYXJzZUludChnZXRDb21wdXRlZFN0eWxl
KHRlc3RFbG0sICIiKS5mb250U2l6ZSk7CisKKyAgICAvKiBFbmFibGUgdGhlIHN0eWxlc2hlZXQg
dGhhdCBjb250YWlucyB0aGUgQHZpZXdwb3J0IHRvIHRlc3QuICovCisgICAgdGVzdFN0eWxlU2hl
ZXQuZGlzYWJsZWQgPSBmYWxzZTsKKworICAgIC8qIFJldHJpZXZlIHRoZSBhY3R1YWwgdmlld3Bv
cnQgdmFsdWVzIGZvciB0aGUgdGVzdC4gKi8KKyAgICB2aWV3cG9ydC5hY3R1YWxXaWR0aCA9IHRl
c3RFbG0ub2Zmc2V0V2lkdGg7CisgICAgdmlld3BvcnQuYWN0dWFsSGVpZ2h0ID0gdGVzdEVsbS5v
ZmZzZXRIZWlnaHQ7CisgICAgdmlld3BvcnQuem9vbSA9IHZpZXdwb3J0LmluaXRpYWxXaWR0aCAv
IHdpbmRvdy5pbm5lcldpZHRoOworCisgICAgLyogQ2hlY2sgdmlld3BvcnQgdmFsdWVzLiAqLwor
ICAgIHRlc3Quc3RlcChmdW5jdGlvbigpeworICAgICAgICBhc3NlcnRfZXF1YWxzKHZpZXdwb3J0
LmFjdHVhbFdpZHRoLCA1MDApOworICAgIH0pOworCisgICAgLyogRmluaXNoZWQuIFNob3cgdGhl
IHJlc3VsdHMuICovCisgICAgdGVzdC5kb25lKCk7CisgICAgdGVzdFN0eWxlU2hlZXQuZGlzYWJs
ZWQgPSB0cnVlOworICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJsb2ciKS5zdHlsZS5kaXNw
bGF5ID0gImJsb2NrIjsKKyAgIH0KKyAgXV0+PC9zY3JpcHQ+CisgPC9oZWFkPgorIDxib2R5Pgor
ICA8ZGl2IGlkPSJ0ZXN0Ij4KKyAgIDxkaXYgaWQ9ImxvZyI+PC9kaXY+CisgIDwvZGl2PgorIDwv
Ym9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2NzczMvZGV2aWNlLWFkYXB0
L29wZXJhL2Nhc2NhZGluZy0wMDItZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvY3NzMy9kZXZp
Y2UtYWRhcHQvb3BlcmEvY2FzY2FkaW5nLTAwMi1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uODJj
ODEzNTRmYmZhNWJmYmFlMzliZDQ5NDcxNmNjZTkyZmQ5ZDhhZAotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL2NzczMvZGV2aWNlLWFkYXB0L29wZXJhL2Nhc2NhZGluZy0wMDItZXhwZWN0
ZWQudHh0CkBAIC0wLDAgKzEsMyBAQAorCitQQVNTIENTUyBUZXN0OiBAdmlld3BvcnQgY2FzY2Fk
aW5nIC0gIWltcG9ydGFudCBkZWNsYXJhdGlvbiB3aW5zIAorCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9jc3MzL2RldmljZS1hZGFwdC9vcGVyYS9jYXNjYWRpbmctMDAyLnhodG1sIGIvTGF5b3V0
VGVzdHMvY3NzMy9kZXZpY2UtYWRhcHQvb3BlcmEvY2FzY2FkaW5nLTAwMi54aHRtbApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi41NWNhYmRhMjcwOTEyMjhmYTllOGRlNmU5ZGVkODRmZjE3MTUyNjAwCi0tLSAvZGV2L251
bGwKKysrIGIvTGF5b3V0VGVzdHMvY3NzMy9kZXZpY2UtYWRhcHQvb3BlcmEvY2FzY2FkaW5nLTAw
Mi54aHRtbApAQCAtMCwwICsxLDg0IEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJV
VEYtOCI/PgorPCFET0NUWVBFIGh0bWwgUFVCTElDICItLy9XM0MvL0RURCBYSFRNTCAxLjAgU3Ry
aWN0Ly9FTiIgImh0dHA6Ly93d3cudzMub3JnL1RSL3hodG1sMS9EVEQveGh0bWwxLXN0cmljdC5k
dGQiPgorPGh0bWwgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwiPgorIDxoZWFk
PgorICA8dGl0bGU+Q1NTIFRlc3Q6IEB2aWV3cG9ydCBjYXNjYWRpbmcgLSAhaW1wb3J0YW50IGRl
Y2xhcmF0aW9uIHdpbnM8L3RpdGxlPgorICA8bGluayByZWw9ImF1dGhvciIgdGl0bGU9IlJ1bmUg
TGlsbGVzdmVlbiIgaHJlZj0ibWFpbHRvOnJ1bmVAb3BlcmEuY29tIi8+CisgIDxsaW5rIHJlbD0i
aGVscCIgaHJlZj0iaHR0cDovL3d3dy53My5vcmcvVFIvY3NzLWRldmljZS1hZGFwdC8jdGhlLXZp
ZXdwb3J0LXJ1bGUiLz4KKyAgPG1ldGEgbmFtZT0iZmxhZ3MiIGNvbnRlbnQ9InZpc3VhbCBzY3Jv
bGwgZG9tIiAvPgorICA8bWV0YSBuYW1lPSJhc3NlcnQiIGNvbnRlbnQ9IkEgcHJlY2VlZGluZyAh
aW1wb3J0YW50IGRlY2xhcmF0aW9uIHdpbnMgb3ZlciBhIG5vbi1pbXBvcnRhbnQgZGVzY3JpcHRv
ci4iLz4KKyAgPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyIg
dHlwZT0idGV4dC9qYXZhc2NyaXB0IiAvPgorICA8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3Vy
Y2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIC8+CisgIDxz
dHlsZSB0eXBlPSJ0ZXh0L2NzcyI+PCFbQ0RBVEFbCisgICBib2R5IHsgbWFyZ2luOiAwOyB9Cisg
ICBodG1sLCBib2R5LCAjdGVzdCB7IHdpZHRoOiAxMDAlOyBoZWlnaHQ6IDEwMCU7IH0KKyAgICNs
b2cgeyBwYWRkaW5nOiAxZW07IGRpc3BsYXk6IG5vbmU7IH0KKyAgIC8qIFJlc2V0IHZpZXdwb3J0
IHZhbHVlcyB0byBpbml0aWFsIHZhbHVlcyB0byBpZ25vcmUgVUEgc3R5bGVzaGVldC4gKi8KKyAg
IEAtd2Via2l0LXZpZXdwb3J0IHsKKyAgICB3aWR0aDogYXV0bzsKKyAgICBoZWlnaHQ6IGF1dG87
CisgICAgem9vbTogYXV0bzsKKyAgICBtaW4tem9vbTogYXV0bzsKKyAgICBtYXgtem9vbTogYXV0
bzsKKyAgICB1c2VyLXpvb206IHpvb207CisgICAgb3JpZW50YXRpb246IGF1dG87CisgICAgcmVz
b2x1dGlvbjogYXV0bzsKKyAgIH0KKyAgXV0+PC9zdHlsZT4KKyAgPHN0eWxlIHR5cGU9InRleHQv
Y3NzIj48IVtDREFUQVsKKyAgIC8qIENTUyBmb3IgdGhlIHRlc3QgYmVsb3cuICovCisgICBALXdl
YmtpdC12aWV3cG9ydCB7IHdpZHRoOiAzMDBweCAhaW1wb3J0YW50OyB3aWR0aDogNTAwcHggfQor
ICAgLyogU2V0IHJvb3QgZWxlbWVudCBmb250LXNpemUgdG8gc29tZXRoaW5nIGRpZmZlcmVudCBm
cm9tIHRoZSBpbml0aWFsCisgICAgICBmb250LXNpemUgdG8gbWFrZSBzdXJlICdyZW0nIGFuZCAn
ZW0nIGZvciBAdmlld3BvcnQgaXMgYmFzZWQgb24gdGhlCisgICAgICBpbml0aWFsIGZvbnQtc2l6
ZSwgbm90IHRoZSByb290IGVsZW1lbnQgZm9udC1zaXplLiAqLworICAgaHRtbCB7IGZvbnQtc2l6
ZTogMnJlbTsgfQorICAgYm9keSB7IGZvbnQtc2l6ZTogMC41cmVtOyB9CisgIF1dPjwvc3R5bGU+
CisgIDxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij48IVtDREFUQVsKKyAgIHZhciB0ZXN0
ID0gYXN5bmNfdGVzdCgiQ1NTIFRlc3Q6IEB2aWV3cG9ydCBjYXNjYWRpbmcgLSAhaW1wb3J0YW50
IGRlY2xhcmF0aW9uIHdpbnMiKTsKKyAgIHdpbmRvdy5vbmxvYWQgPSBmdW5jdGlvbigpeworCisg
ICAgdmFyIHRlc3RTdHlsZVNoZWV0ID0gZG9jdW1lbnQuc3R5bGVTaGVldHMuaXRlbSgxKTsKKwor
ICAgIC8qIERpc2FibGUgdGhlIHN0eWxlc2hlZXQgdGhhdCBjb250YWlucyB0aGUgQHZpZXdwb3J0
IHRvIHRlc3QuICovCisgICAgdGVzdFN0eWxlU2hlZXQuZGlzYWJsZWQgPSB0cnVlOworCisgICAg
LyogSW5pdGlhbGl6ZSBhbiBvYmplY3QgdG8gc3RvcmUgdmlld3BvcnQgdmFsdWVzIHRvIGJlIHVz
ZWQgYnkgdGhlIHRlc3QKKyAgICAgICBhc3NlcnRzLiAqLworICAgIHZhciB2aWV3cG9ydCA9IG5l
dyBPYmplY3QoKTsKKworICAgIC8qIEFuIGVsZW1lbnQgd2l0aCB0aGUgc2FtZSBzaXplIGFzIHRo
ZSBpbml0aWFsIGNvbnRhaW5pbmcgYmxvY2suICovCisgICAgdmFyIHRlc3RFbG0gPSBkb2N1bWVu
dC5nZXRFbGVtZW50QnlJZCgidGVzdCIpOworCisgICAgLyogUmV0cmlldmUgdGhlIGluaXRpYWwg
dmlld3BvcnQgdmFsdWVzIGJlZm9yZSBhcHBseWluZyB0aGUgQHZpZXdwb3J0IHRvCisgICAgICAg
dGVzdC4gKi8KKyAgICB2aWV3cG9ydC5pbml0aWFsV2lkdGggPSB0ZXN0RWxtLm9mZnNldFdpZHRo
OworICAgIHZpZXdwb3J0LmluaXRpYWxIZWlnaHQgPSB0ZXN0RWxtLm9mZnNldEhlaWdodDsKKyAg
ICB2aWV3cG9ydC5mb250U2l6ZSA9IHBhcnNlSW50KGdldENvbXB1dGVkU3R5bGUodGVzdEVsbSwg
IiIpLmZvbnRTaXplKTsKKworICAgIC8qIEVuYWJsZSB0aGUgc3R5bGVzaGVldCB0aGF0IGNvbnRh
aW5zIHRoZSBAdmlld3BvcnQgdG8gdGVzdC4gKi8KKyAgICB0ZXN0U3R5bGVTaGVldC5kaXNhYmxl
ZCA9IGZhbHNlOworCisgICAgLyogUmV0cmlldmUgdGhlIGFjdHVhbCB2aWV3cG9ydCB2YWx1ZXMg
Zm9yIHRoZSB0ZXN0LiAqLworICAgIHZpZXdwb3J0LmFjdHVhbFdpZHRoID0gdGVzdEVsbS5vZmZz
ZXRXaWR0aDsKKyAgICB2aWV3cG9ydC5hY3R1YWxIZWlnaHQgPSB0ZXN0RWxtLm9mZnNldEhlaWdo
dDsKKyAgICB2aWV3cG9ydC56b29tID0gdmlld3BvcnQuaW5pdGlhbFdpZHRoIC8gd2luZG93Lmlu
bmVyV2lkdGg7CisKKyAgICAvKiBDaGVjayB2aWV3cG9ydCB2YWx1ZXMuICovCisgICAgdGVzdC5z
dGVwKGZ1bmN0aW9uKCl7CisgICAgICAgIGFzc2VydF9lcXVhbHModmlld3BvcnQuYWN0dWFsV2lk
dGgsIDMwMCk7CisgICAgfSk7CisKKyAgICAvKiBGaW5pc2hlZC4gU2hvdyB0aGUgcmVzdWx0cy4g
Ki8KKyAgICB0ZXN0LmRvbmUoKTsKKyAgICB0ZXN0U3R5bGVTaGVldC5kaXNhYmxlZCA9IHRydWU7
CisgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImxvZyIpLnN0eWxlLmRpc3BsYXkgPSAiYmxv
Y2siOworICAgfQorICBdXT48L3NjcmlwdD4KKyA8L2hlYWQ+CisgPGJvZHk+CisgIDxkaXYgaWQ9
InRlc3QiPgorICAgPGRpdiBpZD0ibG9nIj48L2Rpdj4KKyAgPC9kaXY+CisgPC9ib2R5PgorPC9o
dG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvY3NzMy9kZXZpY2UtYWRhcHQvb3BlcmEvY2Fz
Y2FkaW5nLTAwMy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9jc3MzL2RldmljZS1hZGFwdC9v
cGVyYS9jYXNjYWRpbmctMDAzLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jZDA0MDZiZThhMzkz
MDY3ZGI4OGNhM2JmMjJhOWI4MjdiMDhkYThmCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvY3NzMy9kZXZpY2UtYWRhcHQvb3BlcmEvY2FzY2FkaW5nLTAwMy1leHBlY3RlZC50eHQKQEAg
LTAsMCArMSwzIEBACisKK1BBU1MgQ1NTIFRlc3Q6IEB2aWV3cG9ydCBjYXNjYWRpbmcgLSBkZXNj
cmlwdG9ycyBjYXNjYWRlZCBzZXBhcmF0ZWx5IAorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9j
c3MzL2RldmljZS1hZGFwdC9vcGVyYS9jYXNjYWRpbmctMDAzLnhodG1sIGIvTGF5b3V0VGVzdHMv
Y3NzMy9kZXZpY2UtYWRhcHQvb3BlcmEvY2FzY2FkaW5nLTAwMy54aHRtbApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5j
MDZkNzIwMjI2YmRkODY3ZDY1Yzc5NTM4ODI0NTQ0NmRlMjhhODExCi0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvY3NzMy9kZXZpY2UtYWRhcHQvb3BlcmEvY2FzY2FkaW5nLTAwMy54aHRt
bApAQCAtMCwwICsxLDg0IEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCI/
PgorPCFET0NUWVBFIGh0bWwgUFVCTElDICItLy9XM0MvL0RURCBYSFRNTCAxLjAgU3RyaWN0Ly9F
TiIgImh0dHA6Ly93d3cudzMub3JnL1RSL3hodG1sMS9EVEQveGh0bWwxLXN0cmljdC5kdGQiPgor
PGh0bWwgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwiPgorIDxoZWFkPgorICA8
dGl0bGU+Q1NTIFRlc3Q6IEB2aWV3cG9ydCBjYXNjYWRpbmcgLSBkZXNjcmlwdG9ycyBjYXNjYWRl
ZCBzZXBhcmF0ZWx5PC90aXRsZT4KKyAgPGxpbmsgcmVsPSJhdXRob3IiIHRpdGxlPSJSdW5lIExp
bGxlc3ZlZW4iIGhyZWY9Im1haWx0bzpydW5lQG9wZXJhLmNvbSIvPgorICA8bGluayByZWw9Imhl
bHAiIGhyZWY9Imh0dHA6Ly93d3cudzMub3JnL1RSL2Nzcy1kZXZpY2UtYWRhcHQvI3RoZS12aWV3
cG9ydC1ydWxlIi8+CisgIDxtZXRhIG5hbWU9ImZsYWdzIiBjb250ZW50PSJ2aXN1YWwgc2Nyb2xs
IGRvbSIgLz4KKyAgPG1ldGEgbmFtZT0iYXNzZXJ0IiBjb250ZW50PSJEZXNjcmlwdG9ycyBhcmUg
Y2FzY2FkZWQgc2VwYXJhdGVseSBhbmQgbWF5IHN0ZW0gZnJvbSBkaWZmZXJlbnQgQHZpZXdwb3J0
IHJ1bGVzLiIvPgorICA8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNz
LmpzIiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIC8+CisgIDxzY3JpcHQgc3JjPSIuLi8uLi8uLi9y
ZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiIHR5cGU9InRleHQvamF2YXNjcmlwdCIgLz4K
KyAgPHN0eWxlIHR5cGU9InRleHQvY3NzIj48IVtDREFUQVsKKyAgIGJvZHkgeyBtYXJnaW46IDA7
IH0KKyAgIGh0bWwsIGJvZHksICN0ZXN0IHsgd2lkdGg6IDEwMCU7IGhlaWdodDogMTAwJTsgfQor
ICAgI2xvZyB7IHBhZGRpbmc6IDFlbTsgZGlzcGxheTogbm9uZTsgfQorICAgLyogUmVzZXQgdmll
d3BvcnQgdmFsdWVzIHRvIGluaXRpYWwgdmFsdWVzIHRvIGlnbm9yZSBVQSBzdHlsZXNoZWV0LiAq
LworICAgQC13ZWJraXQtdmlld3BvcnQgeworICAgIHdpZHRoOiBhdXRvOworICAgIGhlaWdodDog
YXV0bzsKKyAgICB6b29tOiBhdXRvOworICAgIG1pbi16b29tOiBhdXRvOworICAgIG1heC16b29t
OiBhdXRvOworICAgIHVzZXItem9vbTogem9vbTsKKyAgICBvcmllbnRhdGlvbjogYXV0bzsKKyAg
ICByZXNvbHV0aW9uOiBhdXRvOworICAgfQorICBdXT48L3N0eWxlPgorICA8c3R5bGUgdHlwZT0i
dGV4dC9jc3MiPjwhW0NEQVRBWworICAgLyogQ1NTIGZvciB0aGUgdGVzdCBiZWxvdy4gKi8KKyAg
IEAtd2Via2l0LXZpZXdwb3J0IHsgd2lkdGg6IDMwMHB4OyBoZWlnaHQ6IDMwMHB4OyB9IEAtd2Vi
a2l0LXZpZXdwb3J0IHsgaGVpZ2h0OiA1MDBweDsgfQorICAgLyogU2V0IHJvb3QgZWxlbWVudCBm
b250LXNpemUgdG8gc29tZXRoaW5nIGRpZmZlcmVudCBmcm9tIHRoZSBpbml0aWFsCisgICAgICBm
b250LXNpemUgdG8gbWFrZSBzdXJlICdyZW0nIGFuZCAnZW0nIGZvciBAdmlld3BvcnQgaXMgYmFz
ZWQgb24gdGhlCisgICAgICBpbml0aWFsIGZvbnQtc2l6ZSwgbm90IHRoZSByb290IGVsZW1lbnQg
Zm9udC1zaXplLiAqLworICAgaHRtbCB7IGZvbnQtc2l6ZTogMnJlbTsgfQorICAgYm9keSB7IGZv
bnQtc2l6ZTogMC41cmVtOyB9CisgIF1dPjwvc3R5bGU+CisgIDxzY3JpcHQgdHlwZT0idGV4dC9q
YXZhc2NyaXB0Ij48IVtDREFUQVsKKyAgIHZhciB0ZXN0ID0gYXN5bmNfdGVzdCgiQ1NTIFRlc3Q6
IEB2aWV3cG9ydCBjYXNjYWRpbmcgLSBkZXNjcmlwdG9ycyBjYXNjYWRlZCBzZXBhcmF0ZWx5Iik7
CisgICB3aW5kb3cub25sb2FkID0gZnVuY3Rpb24oKXsKKworICAgIHZhciB0ZXN0U3R5bGVTaGVl
dCA9IGRvY3VtZW50LnN0eWxlU2hlZXRzLml0ZW0oMSk7CisKKyAgICAvKiBEaXNhYmxlIHRoZSBz
dHlsZXNoZWV0IHRoYXQgY29udGFpbnMgdGhlIEB2aWV3cG9ydCB0byB0ZXN0LiAqLworICAgIHRl
c3RTdHlsZVNoZWV0LmRpc2FibGVkID0gdHJ1ZTsKKworICAgIC8qIEluaXRpYWxpemUgYW4gb2Jq
ZWN0IHRvIHN0b3JlIHZpZXdwb3J0IHZhbHVlcyB0byBiZSB1c2VkIGJ5IHRoZSB0ZXN0CisgICAg
ICAgYXNzZXJ0cy4gKi8KKyAgICB2YXIgdmlld3BvcnQgPSBuZXcgT2JqZWN0KCk7CisKKyAgICAv
KiBBbiBlbGVtZW50IHdpdGggdGhlIHNhbWUgc2l6ZSBhcyB0aGUgaW5pdGlhbCBjb250YWluaW5n
IGJsb2NrLiAqLworICAgIHZhciB0ZXN0RWxtID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRl
c3QiKTsKKworICAgIC8qIFJldHJpZXZlIHRoZSBpbml0aWFsIHZpZXdwb3J0IHZhbHVlcyBiZWZv
cmUgYXBwbHlpbmcgdGhlIEB2aWV3cG9ydCB0bworICAgICAgIHRlc3QuICovCisgICAgdmlld3Bv
cnQuaW5pdGlhbFdpZHRoID0gdGVzdEVsbS5vZmZzZXRXaWR0aDsKKyAgICB2aWV3cG9ydC5pbml0
aWFsSGVpZ2h0ID0gdGVzdEVsbS5vZmZzZXRIZWlnaHQ7CisgICAgdmlld3BvcnQuZm9udFNpemUg
PSBwYXJzZUludChnZXRDb21wdXRlZFN0eWxlKHRlc3RFbG0sICIiKS5mb250U2l6ZSk7CisKKyAg
ICAvKiBFbmFibGUgdGhlIHN0eWxlc2hlZXQgdGhhdCBjb250YWlucyB0aGUgQHZpZXdwb3J0IHRv
IHRlc3QuICovCisgICAgdGVzdFN0eWxlU2hlZXQuZGlzYWJsZWQgPSBmYWxzZTsKKworICAgIC8q
IFJldHJpZXZlIHRoZSBhY3R1YWwgdmlld3BvcnQgdmFsdWVzIGZvciB0aGUgdGVzdC4gKi8KKyAg
ICB2aWV3cG9ydC5hY3R1YWxXaWR0aCA9IHRlc3RFbG0ub2Zmc2V0V2lkdGg7CisgICAgdmlld3Bv
cnQuYWN0dWFsSGVpZ2h0ID0gdGVzdEVsbS5vZmZzZXRIZWlnaHQ7CisgICAgdmlld3BvcnQuem9v
bSA9IHZpZXdwb3J0LmluaXRpYWxXaWR0aCAvIHdpbmRvdy5pbm5lcldpZHRoOworCisgICAgLyog
Q2hlY2sgdmlld3BvcnQgdmFsdWVzLiAqLworICAgIHRlc3Quc3RlcChmdW5jdGlvbigpeworICAg
ICAgICBhc3NlcnRfZXF1YWxzKHZpZXdwb3J0LmFjdHVhbFdpZHRoLCAzMDApOyBhc3NlcnRfZXF1
YWxzKHZpZXdwb3J0LmFjdHVhbEhlaWdodCwgNTAwKTsKKyAgICB9KTsKKworICAgIC8qIEZpbmlz
aGVkLiBTaG93IHRoZSByZXN1bHRzLiAqLworICAgIHRlc3QuZG9uZSgpOworICAgIHRlc3RTdHls
ZVNoZWV0LmRpc2FibGVkID0gdHJ1ZTsKKyAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgibG9n
Iikuc3R5bGUuZGlzcGxheSA9ICJibG9jayI7CisgICB9CisgIF1dPjwvc2NyaXB0PgorIDwvaGVh
ZD4KKyA8Ym9keT4KKyAgPGRpdiBpZD0idGVzdCI+CisgICA8ZGl2IGlkPSJsb2ciPjwvZGl2Pgor
ICA8L2Rpdj4KKyA8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9jc3Mz
L2RldmljZS1hZGFwdC9vcGVyYS9jYXNjYWRpbmctMDA0LWV4cGVjdGVkLnR4dCBiL0xheW91dFRl
c3RzL2NzczMvZGV2aWNlLWFkYXB0L29wZXJhL2Nhc2NhZGluZy0wMDQtZXhwZWN0ZWQudHh0Cm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLmRhMjliNWEwYjRlNGU0Mzk4MzVlZTE2MGE0MDFjZDEwODg1MTY4N2MKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9jc3MzL2RldmljZS1hZGFwdC9vcGVyYS9jYXNjYWRp
bmctMDA0LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDMgQEAKKworUEFTUyBDU1MgVGVzdDogQHZp
ZXdwb3J0IGNhc2NhZGluZyAtICFpbXBvcnRhbnQgZGVjbGFyYXRpb24gZnJvbSBwcmVjZWRpbmcg
cnVsZSB3aW5zIAorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9jc3MzL2RldmljZS1hZGFwdC9v
cGVyYS9jYXNjYWRpbmctMDA0LnhodG1sIGIvTGF5b3V0VGVzdHMvY3NzMy9kZXZpY2UtYWRhcHQv
b3BlcmEvY2FzY2FkaW5nLTAwNC54aHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42MWQ2NWI4OGYyOWU4YTkwNjk1
M2M3YTc0YWViZTlhMDU4OGE5NDQxCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvY3Nz
My9kZXZpY2UtYWRhcHQvb3BlcmEvY2FzY2FkaW5nLTAwNC54aHRtbApAQCAtMCwwICsxLDg0IEBA
Cis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCI/PgorPCFET0NUWVBFIGh0bWwg
UFVCTElDICItLy9XM0MvL0RURCBYSFRNTCAxLjAgU3RyaWN0Ly9FTiIgImh0dHA6Ly93d3cudzMu
b3JnL1RSL3hodG1sMS9EVEQveGh0bWwxLXN0cmljdC5kdGQiPgorPGh0bWwgeG1sbnM9Imh0dHA6
Ly93d3cudzMub3JnLzE5OTkveGh0bWwiPgorIDxoZWFkPgorICA8dGl0bGU+Q1NTIFRlc3Q6IEB2
aWV3cG9ydCBjYXNjYWRpbmcgLSAhaW1wb3J0YW50IGRlY2xhcmF0aW9uIGZyb20gcHJlY2VkaW5n
IHJ1bGUgd2luczwvdGl0bGU+CisgIDxsaW5rIHJlbD0iYXV0aG9yIiB0aXRsZT0iUnVuZSBMaWxs
ZXN2ZWVuIiBocmVmPSJtYWlsdG86cnVuZUBvcGVyYS5jb20iLz4KKyAgPGxpbmsgcmVsPSJoZWxw
IiBocmVmPSJodHRwOi8vd3d3LnczLm9yZy9UUi9jc3MtZGV2aWNlLWFkYXB0LyN0aGUtdmlld3Bv
cnQtcnVsZSIvPgorICA8bWV0YSBuYW1lPSJmbGFncyIgY29udGVudD0idmlzdWFsIHNjcm9sbCBk
b20iIC8+CisgIDxtZXRhIG5hbWU9ImFzc2VydCIgY29udGVudD0iQSBwcmVjZWVkaW5nICFpbXBv
cnRhbnQgZGVjbGFyYXRpb24gZnJvbSBhIHByZWNlZGluZyBydWxlIHdpbnMgb3ZlciBhIG5vbi1p
bXBvcnRhbnQgZGVzY3JpcHRvci4iLz4KKyAgPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNl
cy90ZXN0aGFybmVzcy5qcyIgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiAvPgorICA8c2NyaXB0IHNy
Yz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIiB0eXBlPSJ0ZXh0L2ph
dmFzY3JpcHQiIC8+CisgIDxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyI+PCFbQ0RBVEFbCisgICBib2R5
IHsgbWFyZ2luOiAwOyB9CisgICBodG1sLCBib2R5LCAjdGVzdCB7IHdpZHRoOiAxMDAlOyBoZWln
aHQ6IDEwMCU7IH0KKyAgICNsb2cgeyBwYWRkaW5nOiAxZW07IGRpc3BsYXk6IG5vbmU7IH0KKyAg
IC8qIFJlc2V0IHZpZXdwb3J0IHZhbHVlcyB0byBpbml0aWFsIHZhbHVlcyB0byBpZ25vcmUgVUEg
c3R5bGVzaGVldC4gKi8KKyAgIEAtd2Via2l0LXZpZXdwb3J0IHsKKyAgICB3aWR0aDogYXV0bzsK
KyAgICBoZWlnaHQ6IGF1dG87CisgICAgem9vbTogYXV0bzsKKyAgICBtaW4tem9vbTogYXV0bzsK
KyAgICBtYXgtem9vbTogYXV0bzsKKyAgICB1c2VyLXpvb206IHpvb207CisgICAgb3JpZW50YXRp
b246IGF1dG87CisgICAgcmVzb2x1dGlvbjogYXV0bzsKKyAgIH0KKyAgXV0+PC9zdHlsZT4KKyAg
PHN0eWxlIHR5cGU9InRleHQvY3NzIj48IVtDREFUQVsKKyAgIC8qIENTUyBmb3IgdGhlIHRlc3Qg
YmVsb3cuICovCisgICBALXdlYmtpdC12aWV3cG9ydCB7IHdpZHRoOiAzMDBweCAhaW1wb3J0YW50
OyB9IEAtd2Via2l0LXZpZXdwb3J0IHsgd2lkdGg6IDUwMHB4OyB9CisgICAvKiBTZXQgcm9vdCBl
bGVtZW50IGZvbnQtc2l6ZSB0byBzb21ldGhpbmcgZGlmZmVyZW50IGZyb20gdGhlIGluaXRpYWwK
KyAgICAgIGZvbnQtc2l6ZSB0byBtYWtlIHN1cmUgJ3JlbScgYW5kICdlbScgZm9yIEB2aWV3cG9y
dCBpcyBiYXNlZCBvbiB0aGUKKyAgICAgIGluaXRpYWwgZm9udC1zaXplLCBub3QgdGhlIHJvb3Qg
ZWxlbWVudCBmb250LXNpemUuICovCisgICBodG1sIHsgZm9udC1zaXplOiAycmVtOyB9CisgICBi
b2R5IHsgZm9udC1zaXplOiAwLjVyZW07IH0KKyAgXV0+PC9zdHlsZT4KKyAgPHNjcmlwdCB0eXBl
PSJ0ZXh0L2phdmFzY3JpcHQiPjwhW0NEQVRBWworICAgdmFyIHRlc3QgPSBhc3luY190ZXN0KCJD
U1MgVGVzdDogQHZpZXdwb3J0IGNhc2NhZGluZyAtICFpbXBvcnRhbnQgZGVjbGFyYXRpb24gZnJv
bSBwcmVjZWRpbmcgcnVsZSB3aW5zIik7CisgICB3aW5kb3cub25sb2FkID0gZnVuY3Rpb24oKXsK
KworICAgIHZhciB0ZXN0U3R5bGVTaGVldCA9IGRvY3VtZW50LnN0eWxlU2hlZXRzLml0ZW0oMSk7
CisKKyAgICAvKiBEaXNhYmxlIHRoZSBzdHlsZXNoZWV0IHRoYXQgY29udGFpbnMgdGhlIEB2aWV3
cG9ydCB0byB0ZXN0LiAqLworICAgIHRlc3RTdHlsZVNoZWV0LmRpc2FibGVkID0gdHJ1ZTsKKwor
ICAgIC8qIEluaXRpYWxpemUgYW4gb2JqZWN0IHRvIHN0b3JlIHZpZXdwb3J0IHZhbHVlcyB0byBi
ZSB1c2VkIGJ5IHRoZSB0ZXN0CisgICAgICAgYXNzZXJ0cy4gKi8KKyAgICB2YXIgdmlld3BvcnQg
PSBuZXcgT2JqZWN0KCk7CisKKyAgICAvKiBBbiBlbGVtZW50IHdpdGggdGhlIHNhbWUgc2l6ZSBh
cyB0aGUgaW5pdGlhbCBjb250YWluaW5nIGJsb2NrLiAqLworICAgIHZhciB0ZXN0RWxtID0gZG9j
dW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRlc3QiKTsKKworICAgIC8qIFJldHJpZXZlIHRoZSBpbml0
aWFsIHZpZXdwb3J0IHZhbHVlcyBiZWZvcmUgYXBwbHlpbmcgdGhlIEB2aWV3cG9ydCB0bworICAg
ICAgIHRlc3QuICovCisgICAgdmlld3BvcnQuaW5pdGlhbFdpZHRoID0gdGVzdEVsbS5vZmZzZXRX
aWR0aDsKKyAgICB2aWV3cG9ydC5pbml0aWFsSGVpZ2h0ID0gdGVzdEVsbS5vZmZzZXRIZWlnaHQ7
CisgICAgdmlld3BvcnQuZm9udFNpemUgPSBwYXJzZUludChnZXRDb21wdXRlZFN0eWxlKHRlc3RF
bG0sICIiKS5mb250U2l6ZSk7CisKKyAgICAvKiBFbmFibGUgdGhlIHN0eWxlc2hlZXQgdGhhdCBj
b250YWlucyB0aGUgQHZpZXdwb3J0IHRvIHRlc3QuICovCisgICAgdGVzdFN0eWxlU2hlZXQuZGlz
YWJsZWQgPSBmYWxzZTsKKworICAgIC8qIFJldHJpZXZlIHRoZSBhY3R1YWwgdmlld3BvcnQgdmFs
dWVzIGZvciB0aGUgdGVzdC4gKi8KKyAgICB2aWV3cG9ydC5hY3R1YWxXaWR0aCA9IHRlc3RFbG0u
b2Zmc2V0V2lkdGg7CisgICAgdmlld3BvcnQuYWN0dWFsSGVpZ2h0ID0gdGVzdEVsbS5vZmZzZXRI
ZWlnaHQ7CisgICAgdmlld3BvcnQuem9vbSA9IHZpZXdwb3J0LmluaXRpYWxXaWR0aCAvIHdpbmRv
dy5pbm5lcldpZHRoOworCisgICAgLyogQ2hlY2sgdmlld3BvcnQgdmFsdWVzLiAqLworICAgIHRl
c3Quc3RlcChmdW5jdGlvbigpeworICAgICAgICBhc3NlcnRfZXF1YWxzKHZpZXdwb3J0LmFjdHVh
bFdpZHRoLCAzMDApOworICAgIH0pOworCisgICAgLyogRmluaXNoZWQuIFNob3cgdGhlIHJlc3Vs
dHMuICovCisgICAgdGVzdC5kb25lKCk7CisgICAgdGVzdFN0eWxlU2hlZXQuZGlzYWJsZWQgPSB0
cnVlOworICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJsb2ciKS5zdHlsZS5kaXNwbGF5ID0g
ImJsb2NrIjsKKyAgIH0KKyAgXV0+PC9zY3JpcHQ+CisgPC9oZWFkPgorIDxib2R5PgorICA8ZGl2
IGlkPSJ0ZXN0Ij4KKyAgIDxkaXYgaWQ9ImxvZyI+PC9kaXY+CisgIDwvZGl2PgorIDwvYm9keT4K
KzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2NzczMvZGV2aWNlLWFkYXB0L29wZXJh
L2NvbnN0cmFpbi0wMDEtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvY3NzMy9kZXZpY2UtYWRh
cHQvb3BlcmEvY29uc3RyYWluLTAwMS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMThhOWRhOTVh
ZWFlZTExMDJiZTVjNGVhZWJkMWJkNWJkZmJiZWJhNQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL2NzczMvZGV2aWNlLWFkYXB0L29wZXJhL2NvbnN0cmFpbi0wMDEtZXhwZWN0ZWQudHh0
CkBAIC0wLDAgKzEsMyBAQAorCitQQVNTIENTUyBUZXN0OiBAdmlld3BvcnQgY29uc3RyYWluZWQg
LSBtYXgtd2lkdGggMjAwcHggCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2NzczMvZGV2aWNl
LWFkYXB0L29wZXJhL2NvbnN0cmFpbi0wMDEueGh0bWwgYi9MYXlvdXRUZXN0cy9jc3MzL2Rldmlj
ZS1hZGFwdC9vcGVyYS9jb25zdHJhaW4tMDAxLnhodG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjFmYzM0MzRiYTQ0
MDYwNmM3OGYzNTRjZTA0ZGY5OTMyZThlNDM4NDQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy9jc3MzL2RldmljZS1hZGFwdC9vcGVyYS9jb25zdHJhaW4tMDAxLnhodG1sCkBAIC0wLDAg
KzEsODQgQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04Ij8+Cis8IURPQ1RZ
UEUgaHRtbCBQVUJMSUMgIi0vL1czQy8vRFREIFhIVE1MIDEuMCBTdHJpY3QvL0VOIiAiaHR0cDov
L3d3dy53My5vcmcvVFIveGh0bWwxL0RURC94aHRtbDEtc3RyaWN0LmR0ZCI+Cis8aHRtbCB4bWxu
cz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCI+CisgPGhlYWQ+CisgIDx0aXRsZT5DU1Mg
VGVzdDogQHZpZXdwb3J0IGNvbnN0cmFpbmVkIC0gbWF4LXdpZHRoIDIwMHB4PC90aXRsZT4KKyAg
PGxpbmsgcmVsPSJhdXRob3IiIHRpdGxlPSJSdW5lIExpbGxlc3ZlZW4iIGhyZWY9Im1haWx0bzpy
dW5lQG9wZXJhLmNvbSIvPgorICA8bGluayByZWw9ImhlbHAiIGhyZWY9Imh0dHA6Ly93d3cudzMu
b3JnL1RSL2Nzcy1kZXZpY2UtYWRhcHQvI2NvbnN0cmFpbmluZy1wcm9jZWR1cmUiLz4KKyAgPG1l
dGEgbmFtZT0iZmxhZ3MiIGNvbnRlbnQ9InZpc3VhbCBzY3JvbGwgZG9tIiAvPgorICA8bWV0YSBu
YW1lPSJhc3NlcnQiIGNvbnRlbnQ9IlNldHRpbmcgbWF4LXdpZHRoIGluIEB2aWV3cG9ydCB0byBh
IGxlbmd0aCBzbWFsbGVyIHRoYW4gdGhlIGluaXRpYWwgdmlld3BvcnQgd2lkdGggd2lsbCBzZXQg
dGhlIGFjdHVhbCB2aWV3cG9ydCB3aWR0aCB0byB0aGF0IGxlbmd0aCIvPgorICA8c2NyaXB0IHNy
Yz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIiB0eXBlPSJ0ZXh0L2phdmFzY3Jp
cHQiIC8+CisgIDxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBv
cnQuanMiIHR5cGU9InRleHQvamF2YXNjcmlwdCIgLz4KKyAgPHN0eWxlIHR5cGU9InRleHQvY3Nz
Ij48IVtDREFUQVsKKyAgIGJvZHkgeyBtYXJnaW46IDA7IH0KKyAgIGh0bWwsIGJvZHksICN0ZXN0
IHsgd2lkdGg6IDEwMCU7IGhlaWdodDogMTAwJTsgfQorICAgI2xvZyB7IHBhZGRpbmc6IDFlbTsg
ZGlzcGxheTogbm9uZTsgfQorICAgLyogUmVzZXQgdmlld3BvcnQgdmFsdWVzIHRvIGluaXRpYWwg
dmFsdWVzIHRvIGlnbm9yZSBVQSBzdHlsZXNoZWV0LiAqLworICAgQC13ZWJraXQtdmlld3BvcnQg
eworICAgIHdpZHRoOiBhdXRvOworICAgIGhlaWdodDogYXV0bzsKKyAgICB6b29tOiBhdXRvOwor
ICAgIG1pbi16b29tOiBhdXRvOworICAgIG1heC16b29tOiBhdXRvOworICAgIHVzZXItem9vbTog
em9vbTsKKyAgICBvcmllbnRhdGlvbjogYXV0bzsKKyAgICByZXNvbHV0aW9uOiBhdXRvOworICAg
fQorICBdXT48L3N0eWxlPgorICA8c3R5bGUgdHlwZT0idGV4dC9jc3MiPjwhW0NEQVRBWworICAg
LyogQ1NTIGZvciB0aGUgdGVzdCBiZWxvdy4gKi8KKyAgIEAtd2Via2l0LXZpZXdwb3J0IHsgbWF4
LXdpZHRoOiAyMDBweCB9CisgICAvKiBTZXQgcm9vdCBlbGVtZW50IGZvbnQtc2l6ZSB0byBzb21l
dGhpbmcgZGlmZmVyZW50IGZyb20gdGhlIGluaXRpYWwKKyAgICAgIGZvbnQtc2l6ZSB0byBtYWtl
IHN1cmUgJ3JlbScgYW5kICdlbScgZm9yIEB2aWV3cG9ydCBpcyBiYXNlZCBvbiB0aGUKKyAgICAg
IGluaXRpYWwgZm9udC1zaXplLCBub3QgdGhlIHJvb3QgZWxlbWVudCBmb250LXNpemUuICovCisg
ICBodG1sIHsgZm9udC1zaXplOiAycmVtOyB9CisgICBib2R5IHsgZm9udC1zaXplOiAwLjVyZW07
IH0KKyAgXV0+PC9zdHlsZT4KKyAgPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPjwhW0NE
QVRBWworICAgdmFyIHRlc3QgPSBhc3luY190ZXN0KCJDU1MgVGVzdDogQHZpZXdwb3J0IGNvbnN0
cmFpbmVkIC0gbWF4LXdpZHRoIDIwMHB4Iik7CisgICB3aW5kb3cub25sb2FkID0gZnVuY3Rpb24o
KXsKKworICAgIHZhciB0ZXN0U3R5bGVTaGVldCA9IGRvY3VtZW50LnN0eWxlU2hlZXRzLml0ZW0o
MSk7CisKKyAgICAvKiBEaXNhYmxlIHRoZSBzdHlsZXNoZWV0IHRoYXQgY29udGFpbnMgdGhlIEB2
aWV3cG9ydCB0byB0ZXN0LiAqLworICAgIHRlc3RTdHlsZVNoZWV0LmRpc2FibGVkID0gdHJ1ZTsK
KworICAgIC8qIEluaXRpYWxpemUgYW4gb2JqZWN0IHRvIHN0b3JlIHZpZXdwb3J0IHZhbHVlcyB0
byBiZSB1c2VkIGJ5IHRoZSB0ZXN0CisgICAgICAgYXNzZXJ0cy4gKi8KKyAgICB2YXIgdmlld3Bv
cnQgPSBuZXcgT2JqZWN0KCk7CisKKyAgICAvKiBBbiBlbGVtZW50IHdpdGggdGhlIHNhbWUgc2l6
ZSBhcyB0aGUgaW5pdGlhbCBjb250YWluaW5nIGJsb2NrLiAqLworICAgIHZhciB0ZXN0RWxtID0g
ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRlc3QiKTsKKworICAgIC8qIFJldHJpZXZlIHRoZSBp
bml0aWFsIHZpZXdwb3J0IHZhbHVlcyBiZWZvcmUgYXBwbHlpbmcgdGhlIEB2aWV3cG9ydCB0bwor
ICAgICAgIHRlc3QuICovCisgICAgdmlld3BvcnQuaW5pdGlhbFdpZHRoID0gdGVzdEVsbS5vZmZz
ZXRXaWR0aDsKKyAgICB2aWV3cG9ydC5pbml0aWFsSGVpZ2h0ID0gdGVzdEVsbS5vZmZzZXRIZWln
aHQ7CisgICAgdmlld3BvcnQuZm9udFNpemUgPSBwYXJzZUludChnZXRDb21wdXRlZFN0eWxlKHRl
c3RFbG0sICIiKS5mb250U2l6ZSk7CisKKyAgICAvKiBFbmFibGUgdGhlIHN0eWxlc2hlZXQgdGhh
dCBjb250YWlucyB0aGUgQHZpZXdwb3J0IHRvIHRlc3QuICovCisgICAgdGVzdFN0eWxlU2hlZXQu
ZGlzYWJsZWQgPSBmYWxzZTsKKworICAgIC8qIFJldHJpZXZlIHRoZSBhY3R1YWwgdmlld3BvcnQg
dmFsdWVzIGZvciB0aGUgdGVzdC4gKi8KKyAgICB2aWV3cG9ydC5hY3R1YWxXaWR0aCA9IHRlc3RF
bG0ub2Zmc2V0V2lkdGg7CisgICAgdmlld3BvcnQuYWN0dWFsSGVpZ2h0ID0gdGVzdEVsbS5vZmZz
ZXRIZWlnaHQ7CisgICAgdmlld3BvcnQuem9vbSA9IHZpZXdwb3J0LmluaXRpYWxXaWR0aCAvIHdp
bmRvdy5pbm5lcldpZHRoOworCisgICAgLyogQ2hlY2sgdmlld3BvcnQgdmFsdWVzLiAqLworICAg
IHRlc3Quc3RlcChmdW5jdGlvbigpeworICAgICAgICBhc3NlcnRfZXF1YWxzKHZpZXdwb3J0LmFj
dHVhbFdpZHRoLCAyMDApOworICAgIH0pOworCisgICAgLyogRmluaXNoZWQuIFNob3cgdGhlIHJl
c3VsdHMuICovCisgICAgdGVzdC5kb25lKCk7CisgICAgdGVzdFN0eWxlU2hlZXQuZGlzYWJsZWQg
PSB0cnVlOworICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJsb2ciKS5zdHlsZS5kaXNwbGF5
ID0gImJsb2NrIjsKKyAgIH0KKyAgXV0+PC9zY3JpcHQ+CisgPC9oZWFkPgorIDxib2R5PgorICA8
ZGl2IGlkPSJ0ZXN0Ij4KKyAgIDxkaXYgaWQ9ImxvZyI+PC9kaXY+CisgIDwvZGl2PgorIDwvYm9k
eT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2NzczMvZGV2aWNlLWFkYXB0L29w
ZXJhL2NvbnN0cmFpbi0wMDItZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvY3NzMy9kZXZpY2Ut
YWRhcHQvb3BlcmEvY29uc3RyYWluLTAwMi1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMmE3ODM1
OTk1MDc5ODQ1ODg1OWRkMGJmNzcyMmM4Nzc5NTM0MjBlZgotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL2NzczMvZGV2aWNlLWFkYXB0L29wZXJhL2NvbnN0cmFpbi0wMDItZXhwZWN0ZWQu
dHh0CkBAIC0wLDAgKzEsMyBAQAorCitQQVNTIENTUyBUZXN0OiBAdmlld3BvcnQgY29uc3RyYWlu
ZWQgLSBtYXgtd2lkdGggMTAwMDBweCAKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvY3NzMy9k
ZXZpY2UtYWRhcHQvb3BlcmEvY29uc3RyYWluLTAwMi54aHRtbCBiL0xheW91dFRlc3RzL2NzczMv
ZGV2aWNlLWFkYXB0L29wZXJhL2NvbnN0cmFpbi0wMDIueGh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZGNiOWRk
YzE5MjFiYjI4MDk2Y2MwYTVhMzQ1NjIxYzUxYzhjMTExMQotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL2NzczMvZGV2aWNlLWFkYXB0L29wZXJhL2NvbnN0cmFpbi0wMDIueGh0bWwKQEAg
LTAsMCArMSw4NCBAQAorPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KKzwh
RE9DVFlQRSBodG1sIFBVQkxJQyAiLS8vVzNDLy9EVEQgWEhUTUwgMS4wIFN0cmljdC8vRU4iICJo
dHRwOi8vd3d3LnczLm9yZy9UUi94aHRtbDEvRFREL3hodG1sMS1zdHJpY3QuZHRkIj4KKzxodG1s
IHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sIj4KKyA8aGVhZD4KKyAgPHRpdGxl
PkNTUyBUZXN0OiBAdmlld3BvcnQgY29uc3RyYWluZWQgLSBtYXgtd2lkdGggMTAwMDBweDwvdGl0
bGU+CisgIDxsaW5rIHJlbD0iYXV0aG9yIiB0aXRsZT0iUnVuZSBMaWxsZXN2ZWVuIiBocmVmPSJt
YWlsdG86cnVuZUBvcGVyYS5jb20iLz4KKyAgPGxpbmsgcmVsPSJoZWxwIiBocmVmPSJodHRwOi8v
d3d3LnczLm9yZy9UUi9jc3MtZGV2aWNlLWFkYXB0LyNjb25zdHJhaW5pbmctcHJvY2VkdXJlIi8+
CisgIDxtZXRhIG5hbWU9ImZsYWdzIiBjb250ZW50PSJ2aXN1YWwgc2Nyb2xsIGRvbSIgLz4KKyAg
PG1ldGEgbmFtZT0iYXNzZXJ0IiBjb250ZW50PSJTZXR0aW5nIG1heC13aWR0aCBpbiBAdmlld3Bv
cnQgdG8gYSBsZW5ndGggbGFyZ2VyIHRoYW4gdGhlIGluaXRpYWwgdmlld3BvcnQgd2lkdGggd2ls
bCBub3QgY2hhbmdlIHRoZSBhY3R1YWwgdmlld3BvcnQgd2lkdGguIi8+CisgIDxzY3JpcHQgc3Jj
PSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiIHR5cGU9InRleHQvamF2YXNjcmlw
dCIgLz4KKyAgPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9y
dC5qcyIgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiAvPgorICA8c3R5bGUgdHlwZT0idGV4dC9jc3Mi
PjwhW0NEQVRBWworICAgYm9keSB7IG1hcmdpbjogMDsgfQorICAgaHRtbCwgYm9keSwgI3Rlc3Qg
eyB3aWR0aDogMTAwJTsgaGVpZ2h0OiAxMDAlOyB9CisgICAjbG9nIHsgcGFkZGluZzogMWVtOyBk
aXNwbGF5OiBub25lOyB9CisgICAvKiBSZXNldCB2aWV3cG9ydCB2YWx1ZXMgdG8gaW5pdGlhbCB2
YWx1ZXMgdG8gaWdub3JlIFVBIHN0eWxlc2hlZXQuICovCisgICBALXdlYmtpdC12aWV3cG9ydCB7
CisgICAgd2lkdGg6IGF1dG87CisgICAgaGVpZ2h0OiBhdXRvOworICAgIHpvb206IGF1dG87Cisg
ICAgbWluLXpvb206IGF1dG87CisgICAgbWF4LXpvb206IGF1dG87CisgICAgdXNlci16b29tOiB6
b29tOworICAgIG9yaWVudGF0aW9uOiBhdXRvOworICAgIHJlc29sdXRpb246IGF1dG87CisgICB9
CisgIF1dPjwvc3R5bGU+CisgIDxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyI+PCFbQ0RBVEFbCisgICAv
KiBDU1MgZm9yIHRoZSB0ZXN0IGJlbG93LiAqLworICAgQC13ZWJraXQtdmlld3BvcnQgeyBtYXgt
d2lkdGg6IDEwMDAwcHggfQorICAgLyogU2V0IHJvb3QgZWxlbWVudCBmb250LXNpemUgdG8gc29t
ZXRoaW5nIGRpZmZlcmVudCBmcm9tIHRoZSBpbml0aWFsCisgICAgICBmb250LXNpemUgdG8gbWFr
ZSBzdXJlICdyZW0nIGFuZCAnZW0nIGZvciBAdmlld3BvcnQgaXMgYmFzZWQgb24gdGhlCisgICAg
ICBpbml0aWFsIGZvbnQtc2l6ZSwgbm90IHRoZSByb290IGVsZW1lbnQgZm9udC1zaXplLiAqLwor
ICAgaHRtbCB7IGZvbnQtc2l6ZTogMnJlbTsgfQorICAgYm9keSB7IGZvbnQtc2l6ZTogMC41cmVt
OyB9CisgIF1dPjwvc3R5bGU+CisgIDxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij48IVtD
REFUQVsKKyAgIHZhciB0ZXN0ID0gYXN5bmNfdGVzdCgiQ1NTIFRlc3Q6IEB2aWV3cG9ydCBjb25z
dHJhaW5lZCAtIG1heC13aWR0aCAxMDAwMHB4Iik7CisgICB3aW5kb3cub25sb2FkID0gZnVuY3Rp
b24oKXsKKworICAgIHZhciB0ZXN0U3R5bGVTaGVldCA9IGRvY3VtZW50LnN0eWxlU2hlZXRzLml0
ZW0oMSk7CisKKyAgICAvKiBEaXNhYmxlIHRoZSBzdHlsZXNoZWV0IHRoYXQgY29udGFpbnMgdGhl
IEB2aWV3cG9ydCB0byB0ZXN0LiAqLworICAgIHRlc3RTdHlsZVNoZWV0LmRpc2FibGVkID0gdHJ1
ZTsKKworICAgIC8qIEluaXRpYWxpemUgYW4gb2JqZWN0IHRvIHN0b3JlIHZpZXdwb3J0IHZhbHVl
cyB0byBiZSB1c2VkIGJ5IHRoZSB0ZXN0CisgICAgICAgYXNzZXJ0cy4gKi8KKyAgICB2YXIgdmll
d3BvcnQgPSBuZXcgT2JqZWN0KCk7CisKKyAgICAvKiBBbiBlbGVtZW50IHdpdGggdGhlIHNhbWUg
c2l6ZSBhcyB0aGUgaW5pdGlhbCBjb250YWluaW5nIGJsb2NrLiAqLworICAgIHZhciB0ZXN0RWxt
ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRlc3QiKTsKKworICAgIC8qIFJldHJpZXZlIHRo
ZSBpbml0aWFsIHZpZXdwb3J0IHZhbHVlcyBiZWZvcmUgYXBwbHlpbmcgdGhlIEB2aWV3cG9ydCB0
bworICAgICAgIHRlc3QuICovCisgICAgdmlld3BvcnQuaW5pdGlhbFdpZHRoID0gdGVzdEVsbS5v
ZmZzZXRXaWR0aDsKKyAgICB2aWV3cG9ydC5pbml0aWFsSGVpZ2h0ID0gdGVzdEVsbS5vZmZzZXRI
ZWlnaHQ7CisgICAgdmlld3BvcnQuZm9udFNpemUgPSBwYXJzZUludChnZXRDb21wdXRlZFN0eWxl
KHRlc3RFbG0sICIiKS5mb250U2l6ZSk7CisKKyAgICAvKiBFbmFibGUgdGhlIHN0eWxlc2hlZXQg
dGhhdCBjb250YWlucyB0aGUgQHZpZXdwb3J0IHRvIHRlc3QuICovCisgICAgdGVzdFN0eWxlU2hl
ZXQuZGlzYWJsZWQgPSBmYWxzZTsKKworICAgIC8qIFJldHJpZXZlIHRoZSBhY3R1YWwgdmlld3Bv
cnQgdmFsdWVzIGZvciB0aGUgdGVzdC4gKi8KKyAgICB2aWV3cG9ydC5hY3R1YWxXaWR0aCA9IHRl
c3RFbG0ub2Zmc2V0V2lkdGg7CisgICAgdmlld3BvcnQuYWN0dWFsSGVpZ2h0ID0gdGVzdEVsbS5v
ZmZzZXRIZWlnaHQ7CisgICAgdmlld3BvcnQuem9vbSA9IHZpZXdwb3J0LmluaXRpYWxXaWR0aCAv
IHdpbmRvdy5pbm5lcldpZHRoOworCisgICAgLyogQ2hlY2sgdmlld3BvcnQgdmFsdWVzLiAqLwor
ICAgIHRlc3Quc3RlcChmdW5jdGlvbigpeworICAgICAgICBhc3NlcnRfZXF1YWxzKHZpZXdwb3J0
LmFjdHVhbFdpZHRoLCB2aWV3cG9ydC5pbml0aWFsV2lkdGgpOworICAgIH0pOworCisgICAgLyog
RmluaXNoZWQuIFNob3cgdGhlIHJlc3VsdHMuICovCisgICAgdGVzdC5kb25lKCk7CisgICAgdGVz
dFN0eWxlU2hlZXQuZGlzYWJsZWQgPSB0cnVlOworICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlk
KCJsb2ciKS5zdHlsZS5kaXNwbGF5ID0gImJsb2NrIjsKKyAgIH0KKyAgXV0+PC9zY3JpcHQ+Cisg
PC9oZWFkPgorIDxib2R5PgorICA8ZGl2IGlkPSJ0ZXN0Ij4KKyAgIDxkaXYgaWQ9ImxvZyI+PC9k
aXY+CisgIDwvZGl2PgorIDwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2NzczMvZGV2aWNlLWFkYXB0L29wZXJhL2NvbnN0cmFpbi0wMDMtZXhwZWN0ZWQudHh0IGIvTGF5
b3V0VGVzdHMvY3NzMy9kZXZpY2UtYWRhcHQvb3BlcmEvY29uc3RyYWluLTAwMy1leHBlY3RlZC50
eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uMTFjOTg5OWUxNzRiMWQ2MGVkZTI0ZmY3NjBkZDdlYzE4NWExNzM4YQot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2NzczMvZGV2aWNlLWFkYXB0L29wZXJhL2Nv
bnN0cmFpbi0wMDMtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMyBAQAorCitQQVNTIENTUyBUZXN0
OiBAdmlld3BvcnQgY29uc3RyYWluZWQgLSBtaW4td2lkdGggMTBweCAKKwpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvY3NzMy9kZXZpY2UtYWRhcHQvb3BlcmEvY29uc3RyYWluLTAwMy54aHRtbCBi
L0xheW91dFRlc3RzL2NzczMvZGV2aWNlLWFkYXB0L29wZXJhL2NvbnN0cmFpbi0wMDMueGh0bWwK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uM2Q3ODIwZjY0MTNlMjY0NjZiNzcyODIwZmNlY2IzNjVlZmJiNGE1YwotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2NzczMvZGV2aWNlLWFkYXB0L29wZXJhL2NvbnN0
cmFpbi0wMDMueGh0bWwKQEAgLTAsMCArMSw4NCBAQAorPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNv
ZGluZz0iVVRGLTgiPz4KKzwhRE9DVFlQRSBodG1sIFBVQkxJQyAiLS8vVzNDLy9EVEQgWEhUTUwg
MS4wIFN0cmljdC8vRU4iICJodHRwOi8vd3d3LnczLm9yZy9UUi94aHRtbDEvRFREL3hodG1sMS1z
dHJpY3QuZHRkIj4KKzxodG1sIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sIj4K
KyA8aGVhZD4KKyAgPHRpdGxlPkNTUyBUZXN0OiBAdmlld3BvcnQgY29uc3RyYWluZWQgLSBtaW4t
d2lkdGggMTBweDwvdGl0bGU+CisgIDxsaW5rIHJlbD0iYXV0aG9yIiB0aXRsZT0iUnVuZSBMaWxs
ZXN2ZWVuIiBocmVmPSJtYWlsdG86cnVuZUBvcGVyYS5jb20iLz4KKyAgPGxpbmsgcmVsPSJoZWxw
IiBocmVmPSJodHRwOi8vd3d3LnczLm9yZy9UUi9jc3MtZGV2aWNlLWFkYXB0LyNjb25zdHJhaW5p
bmctcHJvY2VkdXJlIi8+CisgIDxtZXRhIG5hbWU9ImZsYWdzIiBjb250ZW50PSJ2aXN1YWwgc2Ny
b2xsIGRvbSIgLz4KKyAgPG1ldGEgbmFtZT0iYXNzZXJ0IiBjb250ZW50PSJTZXR0aW5nIG1pbi13
aWR0aCBpbiBAdmlld3BvcnQgdG8gYSBsZW5ndGggc21hbGxlciB0aGFuIHRoZSBpbml0aWFsIHZp
ZXdwb3J0IHdpZHRoIHdpbGwgbm90IGNoYW5nZSB0aGUgYWN0dWFsIHZpZXdwb3J0IHdpZHRoLiIv
PgorICA8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIiB0eXBl
PSJ0ZXh0L2phdmFzY3JpcHQiIC8+CisgIDxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMv
dGVzdGhhcm5lc3NyZXBvcnQuanMiIHR5cGU9InRleHQvamF2YXNjcmlwdCIgLz4KKyAgPHN0eWxl
IHR5cGU9InRleHQvY3NzIj48IVtDREFUQVsKKyAgIGJvZHkgeyBtYXJnaW46IDA7IH0KKyAgIGh0
bWwsIGJvZHksICN0ZXN0IHsgd2lkdGg6IDEwMCU7IGhlaWdodDogMTAwJTsgfQorICAgI2xvZyB7
IHBhZGRpbmc6IDFlbTsgZGlzcGxheTogbm9uZTsgfQorICAgLyogUmVzZXQgdmlld3BvcnQgdmFs
dWVzIHRvIGluaXRpYWwgdmFsdWVzIHRvIGlnbm9yZSBVQSBzdHlsZXNoZWV0LiAqLworICAgQC13
ZWJraXQtdmlld3BvcnQgeworICAgIHdpZHRoOiBhdXRvOworICAgIGhlaWdodDogYXV0bzsKKyAg
ICB6b29tOiBhdXRvOworICAgIG1pbi16b29tOiBhdXRvOworICAgIG1heC16b29tOiBhdXRvOwor
ICAgIHVzZXItem9vbTogem9vbTsKKyAgICBvcmllbnRhdGlvbjogYXV0bzsKKyAgICByZXNvbHV0
aW9uOiBhdXRvOworICAgfQorICBdXT48L3N0eWxlPgorICA8c3R5bGUgdHlwZT0idGV4dC9jc3Mi
PjwhW0NEQVRBWworICAgLyogQ1NTIGZvciB0aGUgdGVzdCBiZWxvdy4gKi8KKyAgIEAtd2Via2l0
LXZpZXdwb3J0IHsgbWluLXdpZHRoOiAxMHB4IH0KKyAgIC8qIFNldCByb290IGVsZW1lbnQgZm9u
dC1zaXplIHRvIHNvbWV0aGluZyBkaWZmZXJlbnQgZnJvbSB0aGUgaW5pdGlhbAorICAgICAgZm9u
dC1zaXplIHRvIG1ha2Ugc3VyZSAncmVtJyBhbmQgJ2VtJyBmb3IgQHZpZXdwb3J0IGlzIGJhc2Vk
IG9uIHRoZQorICAgICAgaW5pdGlhbCBmb250LXNpemUsIG5vdCB0aGUgcm9vdCBlbGVtZW50IGZv
bnQtc2l6ZS4gKi8KKyAgIGh0bWwgeyBmb250LXNpemU6IDJyZW07IH0KKyAgIGJvZHkgeyBmb250
LXNpemU6IDAuNXJlbTsgfQorICBdXT48L3N0eWxlPgorICA8c2NyaXB0IHR5cGU9InRleHQvamF2
YXNjcmlwdCI+PCFbQ0RBVEFbCisgICB2YXIgdGVzdCA9IGFzeW5jX3Rlc3QoIkNTUyBUZXN0OiBA
dmlld3BvcnQgY29uc3RyYWluZWQgLSBtaW4td2lkdGggMTBweCIpOworICAgd2luZG93Lm9ubG9h
ZCA9IGZ1bmN0aW9uKCl7CisKKyAgICB2YXIgdGVzdFN0eWxlU2hlZXQgPSBkb2N1bWVudC5zdHls
ZVNoZWV0cy5pdGVtKDEpOworCisgICAgLyogRGlzYWJsZSB0aGUgc3R5bGVzaGVldCB0aGF0IGNv
bnRhaW5zIHRoZSBAdmlld3BvcnQgdG8gdGVzdC4gKi8KKyAgICB0ZXN0U3R5bGVTaGVldC5kaXNh
YmxlZCA9IHRydWU7CisKKyAgICAvKiBJbml0aWFsaXplIGFuIG9iamVjdCB0byBzdG9yZSB2aWV3
cG9ydCB2YWx1ZXMgdG8gYmUgdXNlZCBieSB0aGUgdGVzdAorICAgICAgIGFzc2VydHMuICovCisg
ICAgdmFyIHZpZXdwb3J0ID0gbmV3IE9iamVjdCgpOworCisgICAgLyogQW4gZWxlbWVudCB3aXRo
IHRoZSBzYW1lIHNpemUgYXMgdGhlIGluaXRpYWwgY29udGFpbmluZyBibG9jay4gKi8KKyAgICB2
YXIgdGVzdEVsbSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0ZXN0Iik7CisKKyAgICAvKiBS
ZXRyaWV2ZSB0aGUgaW5pdGlhbCB2aWV3cG9ydCB2YWx1ZXMgYmVmb3JlIGFwcGx5aW5nIHRoZSBA
dmlld3BvcnQgdG8KKyAgICAgICB0ZXN0LiAqLworICAgIHZpZXdwb3J0LmluaXRpYWxXaWR0aCA9
IHRlc3RFbG0ub2Zmc2V0V2lkdGg7CisgICAgdmlld3BvcnQuaW5pdGlhbEhlaWdodCA9IHRlc3RF
bG0ub2Zmc2V0SGVpZ2h0OworICAgIHZpZXdwb3J0LmZvbnRTaXplID0gcGFyc2VJbnQoZ2V0Q29t
cHV0ZWRTdHlsZSh0ZXN0RWxtLCAiIikuZm9udFNpemUpOworCisgICAgLyogRW5hYmxlIHRoZSBz
dHlsZXNoZWV0IHRoYXQgY29udGFpbnMgdGhlIEB2aWV3cG9ydCB0byB0ZXN0LiAqLworICAgIHRl
c3RTdHlsZVNoZWV0LmRpc2FibGVkID0gZmFsc2U7CisKKyAgICAvKiBSZXRyaWV2ZSB0aGUgYWN0
dWFsIHZpZXdwb3J0IHZhbHVlcyBmb3IgdGhlIHRlc3QuICovCisgICAgdmlld3BvcnQuYWN0dWFs
V2lkdGggPSB0ZXN0RWxtLm9mZnNldFdpZHRoOworICAgIHZpZXdwb3J0LmFjdHVhbEhlaWdodCA9
IHRlc3RFbG0ub2Zmc2V0SGVpZ2h0OworICAgIHZpZXdwb3J0Lnpvb20gPSB2aWV3cG9ydC5pbml0
aWFsV2lkdGggLyB3aW5kb3cuaW5uZXJXaWR0aDsKKworICAgIC8qIENoZWNrIHZpZXdwb3J0IHZh
bHVlcy4gKi8KKyAgICB0ZXN0LnN0ZXAoZnVuY3Rpb24oKXsKKyAgICAgICAgYXNzZXJ0X2VxdWFs
cyh2aWV3cG9ydC5hY3R1YWxXaWR0aCwgdmlld3BvcnQuaW5pdGlhbFdpZHRoKTsKKyAgICB9KTsK
KworICAgIC8qIEZpbmlzaGVkLiBTaG93IHRoZSByZXN1bHRzLiAqLworICAgIHRlc3QuZG9uZSgp
OworICAgIHRlc3RTdHlsZVNoZWV0LmRpc2FibGVkID0gdHJ1ZTsKKyAgICBkb2N1bWVudC5nZXRF
bGVtZW50QnlJZCgibG9nIikuc3R5bGUuZGlzcGxheSA9ICJibG9jayI7CisgICB9CisgIF1dPjwv
c2NyaXB0PgorIDwvaGVhZD4KKyA8Ym9keT4KKyAgPGRpdiBpZD0idGVzdCI+CisgICA8ZGl2IGlk
PSJsb2ciPjwvZGl2PgorICA8L2Rpdj4KKyA8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9jc3MzL2RldmljZS1hZGFwdC9vcGVyYS9jb25zdHJhaW4tMDA0LWV4cGVjdGVk
LnR4dCBiL0xheW91dFRlc3RzL2NzczMvZGV2aWNlLWFkYXB0L29wZXJhL2NvbnN0cmFpbi0wMDQt
ZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjM1ODVkMzczMGQyZTdjYzIxYTkxOTE2MmRkZmVmZTQ0
MDhkNjg5MmQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9jc3MzL2RldmljZS1hZGFw
dC9vcGVyYS9jb25zdHJhaW4tMDA0LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDMgQEAKKworUEFT
UyBDU1MgVGVzdDogQHZpZXdwb3J0IGNvbnN0cmFpbmVkIC0gbWluLXdpZHRoIDEwMDAwcHggCisK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2NzczMvZGV2aWNlLWFkYXB0L29wZXJhL2NvbnN0cmFp
bi0wMDQueGh0bWwgYi9MYXlvdXRUZXN0cy9jc3MzL2RldmljZS1hZGFwdC9vcGVyYS9jb25zdHJh
aW4tMDA0LnhodG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjJiYWY2MzhmYTcyZmEzM2M1MDU2OTM1YmU0ZDcwZDAz
MDliYzczYjkKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9jc3MzL2RldmljZS1hZGFw
dC9vcGVyYS9jb25zdHJhaW4tMDA0LnhodG1sCkBAIC0wLDAgKzEsODQgQEAKKzw/eG1sIHZlcnNp
b249IjEuMCIgZW5jb2Rpbmc9IlVURi04Ij8+Cis8IURPQ1RZUEUgaHRtbCBQVUJMSUMgIi0vL1cz
Qy8vRFREIFhIVE1MIDEuMCBTdHJpY3QvL0VOIiAiaHR0cDovL3d3dy53My5vcmcvVFIveGh0bWwx
L0RURC94aHRtbDEtc3RyaWN0LmR0ZCI+Cis8aHRtbCB4bWxucz0iaHR0cDovL3d3dy53My5vcmcv
MTk5OS94aHRtbCI+CisgPGhlYWQ+CisgIDx0aXRsZT5DU1MgVGVzdDogQHZpZXdwb3J0IGNvbnN0
cmFpbmVkIC0gbWluLXdpZHRoIDEwMDAwcHg8L3RpdGxlPgorICA8bGluayByZWw9ImF1dGhvciIg
dGl0bGU9IlJ1bmUgTGlsbGVzdmVlbiIgaHJlZj0ibWFpbHRvOnJ1bmVAb3BlcmEuY29tIi8+Cisg
IDxsaW5rIHJlbD0iaGVscCIgaHJlZj0iaHR0cDovL3d3dy53My5vcmcvVFIvY3NzLWRldmljZS1h
ZGFwdC8jY29uc3RyYWluaW5nLXByb2NlZHVyZSIvPgorICA8bWV0YSBuYW1lPSJmbGFncyIgY29u
dGVudD0idmlzdWFsIHNjcm9sbCBkb20iIC8+CisgIDxtZXRhIG5hbWU9ImFzc2VydCIgY29udGVu
dD0iU2V0dGluZyBtaW4td2lkdGggaW4gQHZpZXdwb3J0IHRvIGEgbGVuZ3RoIGxhcmdlciB0aGFu
IHRoZSBpbml0aWFsIHZpZXdwb3J0IHdpZHRoIHdpbGwgc2V0IHRoZSBhY3R1YWwgdmlld3BvcnQg
d2lkdGggdG8gdGhhdCBsZW5ndGguIi8+CisgIDxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJj
ZXMvdGVzdGhhcm5lc3MuanMiIHR5cGU9InRleHQvamF2YXNjcmlwdCIgLz4KKyAgPHNjcmlwdCBz
cmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyIgdHlwZT0idGV4dC9q
YXZhc2NyaXB0IiAvPgorICA8c3R5bGUgdHlwZT0idGV4dC9jc3MiPjwhW0NEQVRBWworICAgYm9k
eSB7IG1hcmdpbjogMDsgfQorICAgaHRtbCwgYm9keSwgI3Rlc3QgeyB3aWR0aDogMTAwJTsgaGVp
Z2h0OiAxMDAlOyB9CisgICAjbG9nIHsgcGFkZGluZzogMWVtOyBkaXNwbGF5OiBub25lOyB9Cisg
ICAvKiBSZXNldCB2aWV3cG9ydCB2YWx1ZXMgdG8gaW5pdGlhbCB2YWx1ZXMgdG8gaWdub3JlIFVB
IHN0eWxlc2hlZXQuICovCisgICBALXdlYmtpdC12aWV3cG9ydCB7CisgICAgd2lkdGg6IGF1dG87
CisgICAgaGVpZ2h0OiBhdXRvOworICAgIHpvb206IGF1dG87CisgICAgbWluLXpvb206IGF1dG87
CisgICAgbWF4LXpvb206IGF1dG87CisgICAgdXNlci16b29tOiB6b29tOworICAgIG9yaWVudGF0
aW9uOiBhdXRvOworICAgIHJlc29sdXRpb246IGF1dG87CisgICB9CisgIF1dPjwvc3R5bGU+Cisg
IDxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyI+PCFbQ0RBVEFbCisgICAvKiBDU1MgZm9yIHRoZSB0ZXN0
IGJlbG93LiAqLworICAgQC13ZWJraXQtdmlld3BvcnQgeyBtaW4td2lkdGg6IDEwMDAwcHggfQor
ICAgLyogU2V0IHJvb3QgZWxlbWVudCBmb250LXNpemUgdG8gc29tZXRoaW5nIGRpZmZlcmVudCBm
cm9tIHRoZSBpbml0aWFsCisgICAgICBmb250LXNpemUgdG8gbWFrZSBzdXJlICdyZW0nIGFuZCAn
ZW0nIGZvciBAdmlld3BvcnQgaXMgYmFzZWQgb24gdGhlCisgICAgICBpbml0aWFsIGZvbnQtc2l6
ZSwgbm90IHRoZSByb290IGVsZW1lbnQgZm9udC1zaXplLiAqLworICAgaHRtbCB7IGZvbnQtc2l6
ZTogMnJlbTsgfQorICAgYm9keSB7IGZvbnQtc2l6ZTogMC41cmVtOyB9CisgIF1dPjwvc3R5bGU+
CisgIDxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij48IVtDREFUQVsKKyAgIHZhciB0ZXN0
ID0gYXN5bmNfdGVzdCgiQ1NTIFRlc3Q6IEB2aWV3cG9ydCBjb25zdHJhaW5lZCAtIG1pbi13aWR0
aCAxMDAwMHB4Iik7CisgICB3aW5kb3cub25sb2FkID0gZnVuY3Rpb24oKXsKKworICAgIHZhciB0
ZXN0U3R5bGVTaGVldCA9IGRvY3VtZW50LnN0eWxlU2hlZXRzLml0ZW0oMSk7CisKKyAgICAvKiBE
aXNhYmxlIHRoZSBzdHlsZXNoZWV0IHRoYXQgY29udGFpbnMgdGhlIEB2aWV3cG9ydCB0byB0ZXN0
LiAqLworICAgIHRlc3RTdHlsZVNoZWV0LmRpc2FibGVkID0gdHJ1ZTsKKworICAgIC8qIEluaXRp
YWxpemUgYW4gb2JqZWN0IHRvIHN0b3JlIHZpZXdwb3J0IHZhbHVlcyB0byBiZSB1c2VkIGJ5IHRo
ZSB0ZXN0CisgICAgICAgYXNzZXJ0cy4gKi8KKyAgICB2YXIgdmlld3BvcnQgPSBuZXcgT2JqZWN0
KCk7CisKKyAgICAvKiBBbiBlbGVtZW50IHdpdGggdGhlIHNhbWUgc2l6ZSBhcyB0aGUgaW5pdGlh
bCBjb250YWluaW5nIGJsb2NrLiAqLworICAgIHZhciB0ZXN0RWxtID0gZG9jdW1lbnQuZ2V0RWxl
bWVudEJ5SWQoInRlc3QiKTsKKworICAgIC8qIFJldHJpZXZlIHRoZSBpbml0aWFsIHZpZXdwb3J0
IHZhbHVlcyBiZWZvcmUgYXBwbHlpbmcgdGhlIEB2aWV3cG9ydCB0bworICAgICAgIHRlc3QuICov
CisgICAgdmlld3BvcnQuaW5pdGlhbFdpZHRoID0gdGVzdEVsbS5vZmZzZXRXaWR0aDsKKyAgICB2
aWV3cG9ydC5pbml0aWFsSGVpZ2h0ID0gdGVzdEVsbS5vZmZzZXRIZWlnaHQ7CisgICAgdmlld3Bv
cnQuZm9udFNpemUgPSBwYXJzZUludChnZXRDb21wdXRlZFN0eWxlKHRlc3RFbG0sICIiKS5mb250
U2l6ZSk7CisKKyAgICAvKiBFbmFibGUgdGhlIHN0eWxlc2hlZXQgdGhhdCBjb250YWlucyB0aGUg
QHZpZXdwb3J0IHRvIHRlc3QuICovCisgICAgdGVzdFN0eWxlU2hlZXQuZGlzYWJsZWQgPSBmYWxz
ZTsKKworICAgIC8qIFJldHJpZXZlIHRoZSBhY3R1YWwgdmlld3BvcnQgdmFsdWVzIGZvciB0aGUg
dGVzdC4gKi8KKyAgICB2aWV3cG9ydC5hY3R1YWxXaWR0aCA9IHRlc3RFbG0ub2Zmc2V0V2lkdGg7
CisgICAgdmlld3BvcnQuYWN0dWFsSGVpZ2h0ID0gdGVzdEVsbS5vZmZzZXRIZWlnaHQ7CisgICAg
dmlld3BvcnQuem9vbSA9IHZpZXdwb3J0LmluaXRpYWxXaWR0aCAvIHdpbmRvdy5pbm5lcldpZHRo
OworCisgICAgLyogQ2hlY2sgdmlld3BvcnQgdmFsdWVzLiAqLworICAgIHRlc3Quc3RlcChmdW5j
dGlvbigpeworICAgICAgICBhc3NlcnRfZXF1YWxzKHZpZXdwb3J0LmFjdHVhbFdpZHRoLCAxMDAw
MCk7CisgICAgfSk7CisKKyAgICAvKiBGaW5pc2hlZC4gU2hvdyB0aGUgcmVzdWx0cy4gKi8KKyAg
ICB0ZXN0LmRvbmUoKTsKKyAgICB0ZXN0U3R5bGVTaGVldC5kaXNhYmxlZCA9IHRydWU7CisgICAg
ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImxvZyIpLnN0eWxlLmRpc3BsYXkgPSAiYmxvY2siOwor
ICAgfQorICBdXT48L3NjcmlwdD4KKyA8L2hlYWQ+CisgPGJvZHk+CisgIDxkaXYgaWQ9InRlc3Qi
PgorICAgPGRpdiBpZD0ibG9nIj48L2Rpdj4KKyAgPC9kaXY+CisgPC9ib2R5PgorPC9odG1sPgpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvY3NzMy9kZXZpY2UtYWRhcHQvb3BlcmEvY29uc3RyYWlu
LTAwNS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9jc3MzL2RldmljZS1hZGFwdC9vcGVyYS9j
b25zdHJhaW4tMDA1LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44MDhkZGYyOTBiMTcyNGJlZWM0
N2Q4MWQyMGViYTRhYWM0OGIyNDAxCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvY3Nz
My9kZXZpY2UtYWRhcHQvb3BlcmEvY29uc3RyYWluLTAwNS1leHBlY3RlZC50eHQKQEAgLTAsMCAr
MSwzIEBACisKK1BBU1MgQ1NTIFRlc3Q6IEB2aWV3cG9ydCBjb25zdHJhaW5lZCAtIG1pbi13aWR0
aCBncmVhdGVyIHRoYW4gbWF4LXdpZHRoLiAKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvY3Nz
My9kZXZpY2UtYWRhcHQvb3BlcmEvY29uc3RyYWluLTAwNS54aHRtbCBiL0xheW91dFRlc3RzL2Nz
czMvZGV2aWNlLWFkYXB0L29wZXJhL2NvbnN0cmFpbi0wMDUueGh0bWwKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMWQ2
YmY0NmJmZTE5YTBmY2MzMGIzYzVhZWFkOWY5MDQ3ZGExYWU1MAotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL2NzczMvZGV2aWNlLWFkYXB0L29wZXJhL2NvbnN0cmFpbi0wMDUueGh0bWwK
QEAgLTAsMCArMSw4NCBAQAorPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4K
KzwhRE9DVFlQRSBodG1sIFBVQkxJQyAiLS8vVzNDLy9EVEQgWEhUTUwgMS4wIFN0cmljdC8vRU4i
ICJodHRwOi8vd3d3LnczLm9yZy9UUi94aHRtbDEvRFREL3hodG1sMS1zdHJpY3QuZHRkIj4KKzxo
dG1sIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sIj4KKyA8aGVhZD4KKyAgPHRp
dGxlPkNTUyBUZXN0OiBAdmlld3BvcnQgY29uc3RyYWluZWQgLSBtaW4td2lkdGggZ3JlYXRlciB0
aGFuIG1heC13aWR0aC48L3RpdGxlPgorICA8bGluayByZWw9ImF1dGhvciIgdGl0bGU9IlJ1bmUg
TGlsbGVzdmVlbiIgaHJlZj0ibWFpbHRvOnJ1bmVAb3BlcmEuY29tIi8+CisgIDxsaW5rIHJlbD0i
aGVscCIgaHJlZj0iaHR0cDovL3d3dy53My5vcmcvVFIvY3NzLWRldmljZS1hZGFwdC8jY29uc3Ry
YWluaW5nLXByb2NlZHVyZSIvPgorICA8bWV0YSBuYW1lPSJmbGFncyIgY29udGVudD0idmlzdWFs
IHNjcm9sbCBkb20iIC8+CisgIDxtZXRhIG5hbWU9ImFzc2VydCIgY29udGVudD0iSWYgbWluLXdp
ZHRoIGlzIGdyZWF0ZXIgdGhhbiBtYXgtd2lkdGgsIG1pbi13aWR0aCB3aWxsIG92ZXJydWxlIG1h
eC13aWR0aC4iLz4KKyAgPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVz
cy5qcyIgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiAvPgorICA8c2NyaXB0IHNyYz0iLi4vLi4vLi4v
cmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIC8+
CisgIDxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyI+PCFbQ0RBVEFbCisgICBib2R5IHsgbWFyZ2luOiAw
OyB9CisgICBodG1sLCBib2R5LCAjdGVzdCB7IHdpZHRoOiAxMDAlOyBoZWlnaHQ6IDEwMCU7IH0K
KyAgICNsb2cgeyBwYWRkaW5nOiAxZW07IGRpc3BsYXk6IG5vbmU7IH0KKyAgIC8qIFJlc2V0IHZp
ZXdwb3J0IHZhbHVlcyB0byBpbml0aWFsIHZhbHVlcyB0byBpZ25vcmUgVUEgc3R5bGVzaGVldC4g
Ki8KKyAgIEAtd2Via2l0LXZpZXdwb3J0IHsKKyAgICB3aWR0aDogYXV0bzsKKyAgICBoZWlnaHQ6
IGF1dG87CisgICAgem9vbTogYXV0bzsKKyAgICBtaW4tem9vbTogYXV0bzsKKyAgICBtYXgtem9v
bTogYXV0bzsKKyAgICB1c2VyLXpvb206IHpvb207CisgICAgb3JpZW50YXRpb246IGF1dG87Cisg
ICAgcmVzb2x1dGlvbjogYXV0bzsKKyAgIH0KKyAgXV0+PC9zdHlsZT4KKyAgPHN0eWxlIHR5cGU9
InRleHQvY3NzIj48IVtDREFUQVsKKyAgIC8qIENTUyBmb3IgdGhlIHRlc3QgYmVsb3cuICovCisg
ICBALXdlYmtpdC12aWV3cG9ydCB7IG1pbi13aWR0aDogMTAwMDBweDsgbWF4LXdpZHRoOiAyMDBw
eCB9CisgICAvKiBTZXQgcm9vdCBlbGVtZW50IGZvbnQtc2l6ZSB0byBzb21ldGhpbmcgZGlmZmVy
ZW50IGZyb20gdGhlIGluaXRpYWwKKyAgICAgIGZvbnQtc2l6ZSB0byBtYWtlIHN1cmUgJ3JlbScg
YW5kICdlbScgZm9yIEB2aWV3cG9ydCBpcyBiYXNlZCBvbiB0aGUKKyAgICAgIGluaXRpYWwgZm9u
dC1zaXplLCBub3QgdGhlIHJvb3QgZWxlbWVudCBmb250LXNpemUuICovCisgICBodG1sIHsgZm9u
dC1zaXplOiAycmVtOyB9CisgICBib2R5IHsgZm9udC1zaXplOiAwLjVyZW07IH0KKyAgXV0+PC9z
dHlsZT4KKyAgPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPjwhW0NEQVRBWworICAgdmFy
IHRlc3QgPSBhc3luY190ZXN0KCJDU1MgVGVzdDogQHZpZXdwb3J0IGNvbnN0cmFpbmVkIC0gbWlu
LXdpZHRoIGdyZWF0ZXIgdGhhbiBtYXgtd2lkdGguIik7CisgICB3aW5kb3cub25sb2FkID0gZnVu
Y3Rpb24oKXsKKworICAgIHZhciB0ZXN0U3R5bGVTaGVldCA9IGRvY3VtZW50LnN0eWxlU2hlZXRz
Lml0ZW0oMSk7CisKKyAgICAvKiBEaXNhYmxlIHRoZSBzdHlsZXNoZWV0IHRoYXQgY29udGFpbnMg
dGhlIEB2aWV3cG9ydCB0byB0ZXN0LiAqLworICAgIHRlc3RTdHlsZVNoZWV0LmRpc2FibGVkID0g
dHJ1ZTsKKworICAgIC8qIEluaXRpYWxpemUgYW4gb2JqZWN0IHRvIHN0b3JlIHZpZXdwb3J0IHZh
bHVlcyB0byBiZSB1c2VkIGJ5IHRoZSB0ZXN0CisgICAgICAgYXNzZXJ0cy4gKi8KKyAgICB2YXIg
dmlld3BvcnQgPSBuZXcgT2JqZWN0KCk7CisKKyAgICAvKiBBbiBlbGVtZW50IHdpdGggdGhlIHNh
bWUgc2l6ZSBhcyB0aGUgaW5pdGlhbCBjb250YWluaW5nIGJsb2NrLiAqLworICAgIHZhciB0ZXN0
RWxtID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRlc3QiKTsKKworICAgIC8qIFJldHJpZXZl
IHRoZSBpbml0aWFsIHZpZXdwb3J0IHZhbHVlcyBiZWZvcmUgYXBwbHlpbmcgdGhlIEB2aWV3cG9y
dCB0bworICAgICAgIHRlc3QuICovCisgICAgdmlld3BvcnQuaW5pdGlhbFdpZHRoID0gdGVzdEVs
bS5vZmZzZXRXaWR0aDsKKyAgICB2aWV3cG9ydC5pbml0aWFsSGVpZ2h0ID0gdGVzdEVsbS5vZmZz
ZXRIZWlnaHQ7CisgICAgdmlld3BvcnQuZm9udFNpemUgPSBwYXJzZUludChnZXRDb21wdXRlZFN0
eWxlKHRlc3RFbG0sICIiKS5mb250U2l6ZSk7CisKKyAgICAvKiBFbmFibGUgdGhlIHN0eWxlc2hl
ZXQgdGhhdCBjb250YWlucyB0aGUgQHZpZXdwb3J0IHRvIHRlc3QuICovCisgICAgdGVzdFN0eWxl
U2hlZXQuZGlzYWJsZWQgPSBmYWxzZTsKKworICAgIC8qIFJldHJpZXZlIHRoZSBhY3R1YWwgdmll
d3BvcnQgdmFsdWVzIGZvciB0aGUgdGVzdC4gKi8KKyAgICB2aWV3cG9ydC5hY3R1YWxXaWR0aCA9
IHRlc3RFbG0ub2Zmc2V0V2lkdGg7CisgICAgdmlld3BvcnQuYWN0dWFsSGVpZ2h0ID0gdGVzdEVs
bS5vZmZzZXRIZWlnaHQ7CisgICAgdmlld3BvcnQuem9vbSA9IHZpZXdwb3J0LmluaXRpYWxXaWR0
aCAvIHdpbmRvdy5pbm5lcldpZHRoOworCisgICAgLyogQ2hlY2sgdmlld3BvcnQgdmFsdWVzLiAq
LworICAgIHRlc3Quc3RlcChmdW5jdGlvbigpeworICAgICAgICBhc3NlcnRfZXF1YWxzKHZpZXdw
b3J0LmFjdHVhbFdpZHRoLCAxMDAwMCk7CisgICAgfSk7CisKKyAgICAvKiBGaW5pc2hlZC4gU2hv
dyB0aGUgcmVzdWx0cy4gKi8KKyAgICB0ZXN0LmRvbmUoKTsKKyAgICB0ZXN0U3R5bGVTaGVldC5k
aXNhYmxlZCA9IHRydWU7CisgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImxvZyIpLnN0eWxl
LmRpc3BsYXkgPSAiYmxvY2siOworICAgfQorICBdXT48L3NjcmlwdD4KKyA8L2hlYWQ+CisgPGJv
ZHk+CisgIDxkaXYgaWQ9InRlc3QiPgorICAgPGRpdiBpZD0ibG9nIj48L2Rpdj4KKyAgPC9kaXY+
CisgPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvY3NzMy9kZXZpY2Ut
YWRhcHQvb3BlcmEvY29uc3RyYWluLTAwNi1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9jc3Mz
L2RldmljZS1hZGFwdC9vcGVyYS9jb25zdHJhaW4tMDA2LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li5iMDNkM2RlMDg1NTcyZmYyODM5NWY1MjQ1ZmY4NTI2OGI5MTJjMzMxCi0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvY3NzMy9kZXZpY2UtYWRhcHQvb3BlcmEvY29uc3RyYWluLTAwNi1l
eHBlY3RlZC50eHQKQEAgLTAsMCArMSwzIEBACisKK1BBU1MgQ1NTIFRlc3Q6IEB2aWV3cG9ydCBj
b25zdHJhaW5lZCAtIHdpZHRoIDIwMCUgCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2NzczMv
ZGV2aWNlLWFkYXB0L29wZXJhL2NvbnN0cmFpbi0wMDYueGh0bWwgYi9MYXlvdXRUZXN0cy9jc3Mz
L2RldmljZS1hZGFwdC9vcGVyYS9jb25zdHJhaW4tMDA2LnhodG1sCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjQ5ZTcx
NGRiYzAzZjIyNTdkZDM5OGU3NjA5YWE3NzM0OTY4YjQ3YmYKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9jc3MzL2RldmljZS1hZGFwdC9vcGVyYS9jb25zdHJhaW4tMDA2LnhodG1sCkBA
IC0wLDAgKzEsODQgQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04Ij8+Cis8
IURPQ1RZUEUgaHRtbCBQVUJMSUMgIi0vL1czQy8vRFREIFhIVE1MIDEuMCBTdHJpY3QvL0VOIiAi
aHR0cDovL3d3dy53My5vcmcvVFIveGh0bWwxL0RURC94aHRtbDEtc3RyaWN0LmR0ZCI+Cis8aHRt
bCB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCI+CisgPGhlYWQ+CisgIDx0aXRs
ZT5DU1MgVGVzdDogQHZpZXdwb3J0IGNvbnN0cmFpbmVkIC0gd2lkdGggMjAwJTwvdGl0bGU+Cisg
IDxsaW5rIHJlbD0iYXV0aG9yIiB0aXRsZT0iUnVuZSBMaWxsZXN2ZWVuIiBocmVmPSJtYWlsdG86
cnVuZUBvcGVyYS5jb20iLz4KKyAgPGxpbmsgcmVsPSJoZWxwIiBocmVmPSJodHRwOi8vd3d3Lncz
Lm9yZy9UUi9jc3MtZGV2aWNlLWFkYXB0LyNjb25zdHJhaW5pbmctcHJvY2VkdXJlIi8+CisgIDxt
ZXRhIG5hbWU9ImZsYWdzIiBjb250ZW50PSJ2aXN1YWwgc2Nyb2xsIGRvbSIgLz4KKyAgPG1ldGEg
bmFtZT0iYXNzZXJ0IiBjb250ZW50PSJTZXR0aW5nIHdpZHRoIGluIEB2aWV3cG9ydCB0byAyMDAl
IHdpbGwgc2V0IHRoZSBhY3R1YWwgdmlld3BvcnQgd2lkdGggdG8gdHdpY2UgdGhlIGluaXRpYWwt
d2lkdGguIi8+CisgIDxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3Mu
anMiIHR5cGU9InRleHQvamF2YXNjcmlwdCIgLz4KKyAgPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jl
c291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyIgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiAvPgor
ICA8c3R5bGUgdHlwZT0idGV4dC9jc3MiPjwhW0NEQVRBWworICAgYm9keSB7IG1hcmdpbjogMDsg
fQorICAgaHRtbCwgYm9keSwgI3Rlc3QgeyB3aWR0aDogMTAwJTsgaGVpZ2h0OiAxMDAlOyB9Cisg
ICAjbG9nIHsgcGFkZGluZzogMWVtOyBkaXNwbGF5OiBub25lOyB9CisgICAvKiBSZXNldCB2aWV3
cG9ydCB2YWx1ZXMgdG8gaW5pdGlhbCB2YWx1ZXMgdG8gaWdub3JlIFVBIHN0eWxlc2hlZXQuICov
CisgICBALXdlYmtpdC12aWV3cG9ydCB7CisgICAgd2lkdGg6IGF1dG87CisgICAgaGVpZ2h0OiBh
dXRvOworICAgIHpvb206IGF1dG87CisgICAgbWluLXpvb206IGF1dG87CisgICAgbWF4LXpvb206
IGF1dG87CisgICAgdXNlci16b29tOiB6b29tOworICAgIG9yaWVudGF0aW9uOiBhdXRvOworICAg
IHJlc29sdXRpb246IGF1dG87CisgICB9CisgIF1dPjwvc3R5bGU+CisgIDxzdHlsZSB0eXBlPSJ0
ZXh0L2NzcyI+PCFbQ0RBVEFbCisgICAvKiBDU1MgZm9yIHRoZSB0ZXN0IGJlbG93LiAqLworICAg
QC13ZWJraXQtdmlld3BvcnQgeyB3aWR0aDogMjAwJSB9CisgICAvKiBTZXQgcm9vdCBlbGVtZW50
IGZvbnQtc2l6ZSB0byBzb21ldGhpbmcgZGlmZmVyZW50IGZyb20gdGhlIGluaXRpYWwKKyAgICAg
IGZvbnQtc2l6ZSB0byBtYWtlIHN1cmUgJ3JlbScgYW5kICdlbScgZm9yIEB2aWV3cG9ydCBpcyBi
YXNlZCBvbiB0aGUKKyAgICAgIGluaXRpYWwgZm9udC1zaXplLCBub3QgdGhlIHJvb3QgZWxlbWVu
dCBmb250LXNpemUuICovCisgICBodG1sIHsgZm9udC1zaXplOiAycmVtOyB9CisgICBib2R5IHsg
Zm9udC1zaXplOiAwLjVyZW07IH0KKyAgXV0+PC9zdHlsZT4KKyAgPHNjcmlwdCB0eXBlPSJ0ZXh0
L2phdmFzY3JpcHQiPjwhW0NEQVRBWworICAgdmFyIHRlc3QgPSBhc3luY190ZXN0KCJDU1MgVGVz
dDogQHZpZXdwb3J0IGNvbnN0cmFpbmVkIC0gd2lkdGggMjAwJSIpOworICAgd2luZG93Lm9ubG9h
ZCA9IGZ1bmN0aW9uKCl7CisKKyAgICB2YXIgdGVzdFN0eWxlU2hlZXQgPSBkb2N1bWVudC5zdHls
ZVNoZWV0cy5pdGVtKDEpOworCisgICAgLyogRGlzYWJsZSB0aGUgc3R5bGVzaGVldCB0aGF0IGNv
bnRhaW5zIHRoZSBAdmlld3BvcnQgdG8gdGVzdC4gKi8KKyAgICB0ZXN0U3R5bGVTaGVldC5kaXNh
YmxlZCA9IHRydWU7CisKKyAgICAvKiBJbml0aWFsaXplIGFuIG9iamVjdCB0byBzdG9yZSB2aWV3
cG9ydCB2YWx1ZXMgdG8gYmUgdXNlZCBieSB0aGUgdGVzdAorICAgICAgIGFzc2VydHMuICovCisg
ICAgdmFyIHZpZXdwb3J0ID0gbmV3IE9iamVjdCgpOworCisgICAgLyogQW4gZWxlbWVudCB3aXRo
IHRoZSBzYW1lIHNpemUgYXMgdGhlIGluaXRpYWwgY29udGFpbmluZyBibG9jay4gKi8KKyAgICB2
YXIgdGVzdEVsbSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0ZXN0Iik7CisKKyAgICAvKiBS
ZXRyaWV2ZSB0aGUgaW5pdGlhbCB2aWV3cG9ydCB2YWx1ZXMgYmVmb3JlIGFwcGx5aW5nIHRoZSBA
dmlld3BvcnQgdG8KKyAgICAgICB0ZXN0LiAqLworICAgIHZpZXdwb3J0LmluaXRpYWxXaWR0aCA9
IHRlc3RFbG0ub2Zmc2V0V2lkdGg7CisgICAgdmlld3BvcnQuaW5pdGlhbEhlaWdodCA9IHRlc3RF
bG0ub2Zmc2V0SGVpZ2h0OworICAgIHZpZXdwb3J0LmZvbnRTaXplID0gcGFyc2VJbnQoZ2V0Q29t
cHV0ZWRTdHlsZSh0ZXN0RWxtLCAiIikuZm9udFNpemUpOworCisgICAgLyogRW5hYmxlIHRoZSBz
dHlsZXNoZWV0IHRoYXQgY29udGFpbnMgdGhlIEB2aWV3cG9ydCB0byB0ZXN0LiAqLworICAgIHRl
c3RTdHlsZVNoZWV0LmRpc2FibGVkID0gZmFsc2U7CisKKyAgICAvKiBSZXRyaWV2ZSB0aGUgYWN0
dWFsIHZpZXdwb3J0IHZhbHVlcyBmb3IgdGhlIHRlc3QuICovCisgICAgdmlld3BvcnQuYWN0dWFs
V2lkdGggPSB0ZXN0RWxtLm9mZnNldFdpZHRoOworICAgIHZpZXdwb3J0LmFjdHVhbEhlaWdodCA9
IHRlc3RFbG0ub2Zmc2V0SGVpZ2h0OworICAgIHZpZXdwb3J0Lnpvb20gPSB2aWV3cG9ydC5pbml0
aWFsV2lkdGggLyB3aW5kb3cuaW5uZXJXaWR0aDsKKworICAgIC8qIENoZWNrIHZpZXdwb3J0IHZh
bHVlcy4gKi8KKyAgICB0ZXN0LnN0ZXAoZnVuY3Rpb24oKXsKKyAgICAgICAgYXNzZXJ0X2VxdWFs
cyh2aWV3cG9ydC5hY3R1YWxXaWR0aCwgMip2aWV3cG9ydC5pbml0aWFsV2lkdGgpOworICAgIH0p
OworCisgICAgLyogRmluaXNoZWQuIFNob3cgdGhlIHJlc3VsdHMuICovCisgICAgdGVzdC5kb25l
KCk7CisgICAgdGVzdFN0eWxlU2hlZXQuZGlzYWJsZWQgPSB0cnVlOworICAgIGRvY3VtZW50Lmdl
dEVsZW1lbnRCeUlkKCJsb2ciKS5zdHlsZS5kaXNwbGF5ID0gImJsb2NrIjsKKyAgIH0KKyAgXV0+
PC9zY3JpcHQ+CisgPC9oZWFkPgorIDxib2R5PgorICA8ZGl2IGlkPSJ0ZXN0Ij4KKyAgIDxkaXYg
aWQ9ImxvZyI+PC9kaXY+CisgIDwvZGl2PgorIDwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2NzczMvZGV2aWNlLWFkYXB0L29wZXJhL2NvbnN0cmFpbi0wMDctZXhwZWN0
ZWQudHh0IGIvTGF5b3V0VGVzdHMvY3NzMy9kZXZpY2UtYWRhcHQvb3BlcmEvY29uc3RyYWluLTAw
Ny1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZjM0NTA1MThkOWYzZDE4ZDg5MzViNmI1YTJiOGJm
MDg0YjQ5ZDU5NwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2NzczMvZGV2aWNlLWFk
YXB0L29wZXJhL2NvbnN0cmFpbi0wMDctZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMyBAQAorCitQ
QVNTIENTUyBUZXN0OiBAdmlld3BvcnQgY29uc3RyYWluZWQgLSB3aWR0aCA1MCUgCisKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2NzczMvZGV2aWNlLWFkYXB0L29wZXJhL2NvbnN0cmFpbi0wMDcu
eGh0bWwgYi9MYXlvdXRUZXN0cy9jc3MzL2RldmljZS1hZGFwdC9vcGVyYS9jb25zdHJhaW4tMDA3
LnhodG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLmE2ZTA2OTdhMGJmMWU3OTY1YWI1NjA2Mjg1NmEyOGZjMWFhMjg3
ZWUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9jc3MzL2RldmljZS1hZGFwdC9vcGVy
YS9jb25zdHJhaW4tMDA3LnhodG1sCkBAIC0wLDAgKzEsODQgQEAKKzw/eG1sIHZlcnNpb249IjEu
MCIgZW5jb2Rpbmc9IlVURi04Ij8+Cis8IURPQ1RZUEUgaHRtbCBQVUJMSUMgIi0vL1czQy8vRFRE
IFhIVE1MIDEuMCBTdHJpY3QvL0VOIiAiaHR0cDovL3d3dy53My5vcmcvVFIveGh0bWwxL0RURC94
aHRtbDEtc3RyaWN0LmR0ZCI+Cis8aHRtbCB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94
aHRtbCI+CisgPGhlYWQ+CisgIDx0aXRsZT5DU1MgVGVzdDogQHZpZXdwb3J0IGNvbnN0cmFpbmVk
IC0gd2lkdGggNTAlPC90aXRsZT4KKyAgPGxpbmsgcmVsPSJhdXRob3IiIHRpdGxlPSJSdW5lIExp
bGxlc3ZlZW4iIGhyZWY9Im1haWx0bzpydW5lQG9wZXJhLmNvbSIvPgorICA8bGluayByZWw9Imhl
bHAiIGhyZWY9Imh0dHA6Ly93d3cudzMub3JnL1RSL2Nzcy1kZXZpY2UtYWRhcHQvI2NvbnN0cmFp
bmluZy1wcm9jZWR1cmUiLz4KKyAgPG1ldGEgbmFtZT0iZmxhZ3MiIGNvbnRlbnQ9InZpc3VhbCBz
Y3JvbGwgZG9tIiAvPgorICA8bWV0YSBuYW1lPSJhc3NlcnQiIGNvbnRlbnQ9IlNldHRpbmcgd2lk
dGggaW4gQHZpZXdwb3J0IHRvIDUwJSB3aWxsIHNldCB0aGUgYWN0dWFsIHZpZXdwb3J0IHdpZHRo
IHRvIGhhbGYgdGhlIGluaXRpYWwtd2lkdGguIi8+CisgIDxzY3JpcHQgc3JjPSIuLi8uLi8uLi9y
ZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiIHR5cGU9InRleHQvamF2YXNjcmlwdCIgLz4KKyAgPHNj
cmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyIgdHlwZT0i
dGV4dC9qYXZhc2NyaXB0IiAvPgorICA8c3R5bGUgdHlwZT0idGV4dC9jc3MiPjwhW0NEQVRBWwor
ICAgYm9keSB7IG1hcmdpbjogMDsgfQorICAgaHRtbCwgYm9keSwgI3Rlc3QgeyB3aWR0aDogMTAw
JTsgaGVpZ2h0OiAxMDAlOyB9CisgICAjbG9nIHsgcGFkZGluZzogMWVtOyBkaXNwbGF5OiBub25l
OyB9CisgICAvKiBSZXNldCB2aWV3cG9ydCB2YWx1ZXMgdG8gaW5pdGlhbCB2YWx1ZXMgdG8gaWdu
b3JlIFVBIHN0eWxlc2hlZXQuICovCisgICBALXdlYmtpdC12aWV3cG9ydCB7CisgICAgd2lkdGg6
IGF1dG87CisgICAgaGVpZ2h0OiBhdXRvOworICAgIHpvb206IGF1dG87CisgICAgbWluLXpvb206
IGF1dG87CisgICAgbWF4LXpvb206IGF1dG87CisgICAgdXNlci16b29tOiB6b29tOworICAgIG9y
aWVudGF0aW9uOiBhdXRvOworICAgIHJlc29sdXRpb246IGF1dG87CisgICB9CisgIF1dPjwvc3R5
bGU+CisgIDxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyI+PCFbQ0RBVEFbCisgICAvKiBDU1MgZm9yIHRo
ZSB0ZXN0IGJlbG93LiAqLworICAgQC13ZWJraXQtdmlld3BvcnQgeyB3aWR0aDogNTAlIH0KKyAg
IC8qIFNldCByb290IGVsZW1lbnQgZm9udC1zaXplIHRvIHNvbWV0aGluZyBkaWZmZXJlbnQgZnJv
bSB0aGUgaW5pdGlhbAorICAgICAgZm9udC1zaXplIHRvIG1ha2Ugc3VyZSAncmVtJyBhbmQgJ2Vt
JyBmb3IgQHZpZXdwb3J0IGlzIGJhc2VkIG9uIHRoZQorICAgICAgaW5pdGlhbCBmb250LXNpemUs
IG5vdCB0aGUgcm9vdCBlbGVtZW50IGZvbnQtc2l6ZS4gKi8KKyAgIGh0bWwgeyBmb250LXNpemU6
IDJyZW07IH0KKyAgIGJvZHkgeyBmb250LXNpemU6IDAuNXJlbTsgfQorICBdXT48L3N0eWxlPgor
ICA8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+PCFbQ0RBVEFbCisgICB2YXIgdGVzdCA9
IGFzeW5jX3Rlc3QoIkNTUyBUZXN0OiBAdmlld3BvcnQgY29uc3RyYWluZWQgLSB3aWR0aCA1MCUi
KTsKKyAgIHdpbmRvdy5vbmxvYWQgPSBmdW5jdGlvbigpeworCisgICAgdmFyIHRlc3RTdHlsZVNo
ZWV0ID0gZG9jdW1lbnQuc3R5bGVTaGVldHMuaXRlbSgxKTsKKworICAgIC8qIERpc2FibGUgdGhl
IHN0eWxlc2hlZXQgdGhhdCBjb250YWlucyB0aGUgQHZpZXdwb3J0IHRvIHRlc3QuICovCisgICAg
dGVzdFN0eWxlU2hlZXQuZGlzYWJsZWQgPSB0cnVlOworCisgICAgLyogSW5pdGlhbGl6ZSBhbiBv
YmplY3QgdG8gc3RvcmUgdmlld3BvcnQgdmFsdWVzIHRvIGJlIHVzZWQgYnkgdGhlIHRlc3QKKyAg
ICAgICBhc3NlcnRzLiAqLworICAgIHZhciB2aWV3cG9ydCA9IG5ldyBPYmplY3QoKTsKKworICAg
IC8qIEFuIGVsZW1lbnQgd2l0aCB0aGUgc2FtZSBzaXplIGFzIHRoZSBpbml0aWFsIGNvbnRhaW5p
bmcgYmxvY2suICovCisgICAgdmFyIHRlc3RFbG0gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgi
dGVzdCIpOworCisgICAgLyogUmV0cmlldmUgdGhlIGluaXRpYWwgdmlld3BvcnQgdmFsdWVzIGJl
Zm9yZSBhcHBseWluZyB0aGUgQHZpZXdwb3J0IHRvCisgICAgICAgdGVzdC4gKi8KKyAgICB2aWV3
cG9ydC5pbml0aWFsV2lkdGggPSB0ZXN0RWxtLm9mZnNldFdpZHRoOworICAgIHZpZXdwb3J0Lmlu
aXRpYWxIZWlnaHQgPSB0ZXN0RWxtLm9mZnNldEhlaWdodDsKKyAgICB2aWV3cG9ydC5mb250U2l6
ZSA9IHBhcnNlSW50KGdldENvbXB1dGVkU3R5bGUodGVzdEVsbSwgIiIpLmZvbnRTaXplKTsKKwor
ICAgIC8qIEVuYWJsZSB0aGUgc3R5bGVzaGVldCB0aGF0IGNvbnRhaW5zIHRoZSBAdmlld3BvcnQg
dG8gdGVzdC4gKi8KKyAgICB0ZXN0U3R5bGVTaGVldC5kaXNhYmxlZCA9IGZhbHNlOworCisgICAg
LyogUmV0cmlldmUgdGhlIGFjdHVhbCB2aWV3cG9ydCB2YWx1ZXMgZm9yIHRoZSB0ZXN0LiAqLwor
ICAgIHZpZXdwb3J0LmFjdHVhbFdpZHRoID0gdGVzdEVsbS5vZmZzZXRXaWR0aDsKKyAgICB2aWV3
cG9ydC5hY3R1YWxIZWlnaHQgPSB0ZXN0RWxtLm9mZnNldEhlaWdodDsKKyAgICB2aWV3cG9ydC56
b29tID0gdmlld3BvcnQuaW5pdGlhbFdpZHRoIC8gd2luZG93LmlubmVyV2lkdGg7CisKKyAgICAv
KiBDaGVjayB2aWV3cG9ydCB2YWx1ZXMuICovCisgICAgdGVzdC5zdGVwKGZ1bmN0aW9uKCl7Cisg
ICAgICAgIGFzc2VydF9lcXVhbHModmlld3BvcnQuYWN0dWFsV2lkdGgsIE1hdGguZmxvb3Iodmll
d3BvcnQuaW5pdGlhbFdpZHRoLzIpKTsKKyAgICB9KTsKKworICAgIC8qIEZpbmlzaGVkLiBTaG93
IHRoZSByZXN1bHRzLiAqLworICAgIHRlc3QuZG9uZSgpOworICAgIHRlc3RTdHlsZVNoZWV0LmRp
c2FibGVkID0gdHJ1ZTsKKyAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgibG9nIikuc3R5bGUu
ZGlzcGxheSA9ICJibG9jayI7CisgICB9CisgIF1dPjwvc2NyaXB0PgorIDwvaGVhZD4KKyA8Ym9k
eT4KKyAgPGRpdiBpZD0idGVzdCI+CisgICA8ZGl2IGlkPSJsb2ciPjwvZGl2PgorICA8L2Rpdj4K
KyA8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9jc3MzL2RldmljZS1h
ZGFwdC9vcGVyYS9jb25zdHJhaW4tMDA4LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2NzczMv
ZGV2aWNlLWFkYXB0L29wZXJhL2NvbnN0cmFpbi0wMDgtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LjhmMmVjNzQ4NDY2NzhkZjY2ZDdmZDg0YzU1MTY2NWVlOTBmYTYyNjkKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy9jc3MzL2RldmljZS1hZGFwdC9vcGVyYS9jb25zdHJhaW4tMDA4LWV4
cGVjdGVkLnR4dApAQCAtMCwwICsxLDMgQEAKKworUEFTUyBDU1MgVGVzdDogQHZpZXdwb3J0IGNv
bnN0cmFpbmVkIC0gbWluLXpvb20gZ3JlYXRlciB0aGFuIG1heC16b29tIAorCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9jc3MzL2RldmljZS1hZGFwdC9vcGVyYS9jb25zdHJhaW4tMDA4LnhodG1s
IGIvTGF5b3V0VGVzdHMvY3NzMy9kZXZpY2UtYWRhcHQvb3BlcmEvY29uc3RyYWluLTAwOC54aHRt
bApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi5lYTllMzZhNDNhYjRkZjk2MjFhZjgzMTljNWQxZmRhYjZkMGU0NDgzCi0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvY3NzMy9kZXZpY2UtYWRhcHQvb3BlcmEvY29u
c3RyYWluLTAwOC54aHRtbApAQCAtMCwwICsxLDg0IEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVu
Y29kaW5nPSJVVEYtOCI/PgorPCFET0NUWVBFIGh0bWwgUFVCTElDICItLy9XM0MvL0RURCBYSFRN
TCAxLjAgU3RyaWN0Ly9FTiIgImh0dHA6Ly93d3cudzMub3JnL1RSL3hodG1sMS9EVEQveGh0bWwx
LXN0cmljdC5kdGQiPgorPGh0bWwgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwi
PgorIDxoZWFkPgorICA8dGl0bGU+Q1NTIFRlc3Q6IEB2aWV3cG9ydCBjb25zdHJhaW5lZCAtIG1p
bi16b29tIGdyZWF0ZXIgdGhhbiBtYXgtem9vbTwvdGl0bGU+CisgIDxsaW5rIHJlbD0iYXV0aG9y
IiB0aXRsZT0iUnVuZSBMaWxsZXN2ZWVuIiBocmVmPSJtYWlsdG86cnVuZUBvcGVyYS5jb20iLz4K
KyAgPGxpbmsgcmVsPSJoZWxwIiBocmVmPSJodHRwOi8vd3d3LnczLm9yZy9UUi9jc3MtZGV2aWNl
LWFkYXB0LyNjb25zdHJhaW5pbmctcHJvY2VkdXJlIi8+CisgIDxtZXRhIG5hbWU9ImZsYWdzIiBj
b250ZW50PSJ2aXN1YWwgc2Nyb2xsIGRvbSIgLz4KKyAgPG1ldGEgbmFtZT0iYXNzZXJ0IiBjb250
ZW50PSJJZiBtaW4tem9vbSBpcyBncmVhdGVyIHRoYW4gbWF4LXpvb20sIG1pbi16b29tIHdpbGwg
b3ZlcnJ1bGUgbWF4LXpvb20uIi8+CisgIDxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMv
dGVzdGhhcm5lc3MuanMiIHR5cGU9InRleHQvamF2YXNjcmlwdCIgLz4KKyAgPHNjcmlwdCBzcmM9
Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyIgdHlwZT0idGV4dC9qYXZh
c2NyaXB0IiAvPgorICA8c3R5bGUgdHlwZT0idGV4dC9jc3MiPjwhW0NEQVRBWworICAgYm9keSB7
IG1hcmdpbjogMDsgfQorICAgaHRtbCwgYm9keSwgI3Rlc3QgeyB3aWR0aDogMTAwJTsgaGVpZ2h0
OiAxMDAlOyB9CisgICAjbG9nIHsgcGFkZGluZzogMWVtOyBkaXNwbGF5OiBub25lOyB9CisgICAv
KiBSZXNldCB2aWV3cG9ydCB2YWx1ZXMgdG8gaW5pdGlhbCB2YWx1ZXMgdG8gaWdub3JlIFVBIHN0
eWxlc2hlZXQuICovCisgICBALXdlYmtpdC12aWV3cG9ydCB7CisgICAgd2lkdGg6IGF1dG87Cisg
ICAgaGVpZ2h0OiBhdXRvOworICAgIHpvb206IGF1dG87CisgICAgbWluLXpvb206IGF1dG87Cisg
ICAgbWF4LXpvb206IGF1dG87CisgICAgdXNlci16b29tOiB6b29tOworICAgIG9yaWVudGF0aW9u
OiBhdXRvOworICAgIHJlc29sdXRpb246IGF1dG87CisgICB9CisgIF1dPjwvc3R5bGU+CisgIDxz
dHlsZSB0eXBlPSJ0ZXh0L2NzcyI+PCFbQ0RBVEFbCisgICAvKiBDU1MgZm9yIHRoZSB0ZXN0IGJl
bG93LiAqLworICAgQC13ZWJraXQtdmlld3BvcnQgeyB6b29tOiAxMDAlOyBtaW4tem9vbTogMjAw
JTsgbWF4LXpvb206IDUwJSB9CisgICAvKiBTZXQgcm9vdCBlbGVtZW50IGZvbnQtc2l6ZSB0byBz
b21ldGhpbmcgZGlmZmVyZW50IGZyb20gdGhlIGluaXRpYWwKKyAgICAgIGZvbnQtc2l6ZSB0byBt
YWtlIHN1cmUgJ3JlbScgYW5kICdlbScgZm9yIEB2aWV3cG9ydCBpcyBiYXNlZCBvbiB0aGUKKyAg
ICAgIGluaXRpYWwgZm9udC1zaXplLCBub3QgdGhlIHJvb3QgZWxlbWVudCBmb250LXNpemUuICov
CisgICBodG1sIHsgZm9udC1zaXplOiAycmVtOyB9CisgICBib2R5IHsgZm9udC1zaXplOiAwLjVy
ZW07IH0KKyAgXV0+PC9zdHlsZT4KKyAgPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPjwh
W0NEQVRBWworICAgdmFyIHRlc3QgPSBhc3luY190ZXN0KCJDU1MgVGVzdDogQHZpZXdwb3J0IGNv
bnN0cmFpbmVkIC0gbWluLXpvb20gZ3JlYXRlciB0aGFuIG1heC16b29tIik7CisgICB3aW5kb3cu
b25sb2FkID0gZnVuY3Rpb24oKXsKKworICAgIHZhciB0ZXN0U3R5bGVTaGVldCA9IGRvY3VtZW50
LnN0eWxlU2hlZXRzLml0ZW0oMSk7CisKKyAgICAvKiBEaXNhYmxlIHRoZSBzdHlsZXNoZWV0IHRo
YXQgY29udGFpbnMgdGhlIEB2aWV3cG9ydCB0byB0ZXN0LiAqLworICAgIHRlc3RTdHlsZVNoZWV0
LmRpc2FibGVkID0gdHJ1ZTsKKworICAgIC8qIEluaXRpYWxpemUgYW4gb2JqZWN0IHRvIHN0b3Jl
IHZpZXdwb3J0IHZhbHVlcyB0byBiZSB1c2VkIGJ5IHRoZSB0ZXN0CisgICAgICAgYXNzZXJ0cy4g
Ki8KKyAgICB2YXIgdmlld3BvcnQgPSBuZXcgT2JqZWN0KCk7CisKKyAgICAvKiBBbiBlbGVtZW50
IHdpdGggdGhlIHNhbWUgc2l6ZSBhcyB0aGUgaW5pdGlhbCBjb250YWluaW5nIGJsb2NrLiAqLwor
ICAgIHZhciB0ZXN0RWxtID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRlc3QiKTsKKworICAg
IC8qIFJldHJpZXZlIHRoZSBpbml0aWFsIHZpZXdwb3J0IHZhbHVlcyBiZWZvcmUgYXBwbHlpbmcg
dGhlIEB2aWV3cG9ydCB0bworICAgICAgIHRlc3QuICovCisgICAgdmlld3BvcnQuaW5pdGlhbFdp
ZHRoID0gdGVzdEVsbS5vZmZzZXRXaWR0aDsKKyAgICB2aWV3cG9ydC5pbml0aWFsSGVpZ2h0ID0g
dGVzdEVsbS5vZmZzZXRIZWlnaHQ7CisgICAgdmlld3BvcnQuZm9udFNpemUgPSBwYXJzZUludChn
ZXRDb21wdXRlZFN0eWxlKHRlc3RFbG0sICIiKS5mb250U2l6ZSk7CisKKyAgICAvKiBFbmFibGUg
dGhlIHN0eWxlc2hlZXQgdGhhdCBjb250YWlucyB0aGUgQHZpZXdwb3J0IHRvIHRlc3QuICovCisg
ICAgdGVzdFN0eWxlU2hlZXQuZGlzYWJsZWQgPSBmYWxzZTsKKworICAgIC8qIFJldHJpZXZlIHRo
ZSBhY3R1YWwgdmlld3BvcnQgdmFsdWVzIGZvciB0aGUgdGVzdC4gKi8KKyAgICB2aWV3cG9ydC5h
Y3R1YWxXaWR0aCA9IHRlc3RFbG0ub2Zmc2V0V2lkdGg7CisgICAgdmlld3BvcnQuYWN0dWFsSGVp
Z2h0ID0gdGVzdEVsbS5vZmZzZXRIZWlnaHQ7CisgICAgdmlld3BvcnQuem9vbSA9IHZpZXdwb3J0
LmluaXRpYWxXaWR0aCAvIHdpbmRvdy5pbm5lcldpZHRoOworCisgICAgLyogQ2hlY2sgdmlld3Bv
cnQgdmFsdWVzLiAqLworICAgIHRlc3Quc3RlcChmdW5jdGlvbigpeworICAgICAgICBhc3NlcnRf
ZXF1YWxzKHZpZXdwb3J0LmFjdHVhbFdpZHRoLCBNYXRoLmZsb29yKHZpZXdwb3J0LmluaXRpYWxX
aWR0aC8yKSk7CisgICAgfSk7CisKKyAgICAvKiBGaW5pc2hlZC4gU2hvdyB0aGUgcmVzdWx0cy4g
Ki8KKyAgICB0ZXN0LmRvbmUoKTsKKyAgICB0ZXN0U3R5bGVTaGVldC5kaXNhYmxlZCA9IHRydWU7
CisgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImxvZyIpLnN0eWxlLmRpc3BsYXkgPSAiYmxv
Y2siOworICAgfQorICBdXT48L3NjcmlwdD4KKyA8L2hlYWQ+CisgPGJvZHk+CisgIDxkaXYgaWQ9
InRlc3QiPgorICAgPGRpdiBpZD0ibG9nIj48L2Rpdj4KKyAgPC9kaXY+CisgPC9ib2R5PgorPC9o
dG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvY3NzMy9kZXZpY2UtYWRhcHQvb3BlcmEvY29u
c3RyYWluLTAwOS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9jc3MzL2RldmljZS1hZGFwdC9v
cGVyYS9jb25zdHJhaW4tMDA5LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44MTczMzBhMDdkYjdh
ODEzNDhhNzE5MGEzYzNjM2FkNTYzZDRhMDQ1Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvY3NzMy9kZXZpY2UtYWRhcHQvb3BlcmEvY29uc3RyYWluLTAwOS1leHBlY3RlZC50eHQKQEAg
LTAsMCArMSwzIEBACisKK1BBU1MgQ1NTIFRlc3Q6IEB2aWV3cG9ydCBjb25zdHJhaW5lZCAtIHdp
ZHRoIDIwZW0gCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2NzczMvZGV2aWNlLWFkYXB0L29w
ZXJhL2NvbnN0cmFpbi0wMDkueGh0bWwgYi9MYXlvdXRUZXN0cy9jc3MzL2RldmljZS1hZGFwdC9v
cGVyYS9jb25zdHJhaW4tMDA5LnhodG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjc0Zjk5ZDFkZWQ5MGZlNmIyNjE1
MDBhZGUyZGU4MjJjNmMyNzg4OWMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9jc3Mz
L2RldmljZS1hZGFwdC9vcGVyYS9jb25zdHJhaW4tMDA5LnhodG1sCkBAIC0wLDAgKzEsODQgQEAK
Kzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04Ij8+Cis8IURPQ1RZUEUgaHRtbCBQ
VUJMSUMgIi0vL1czQy8vRFREIFhIVE1MIDEuMCBTdHJpY3QvL0VOIiAiaHR0cDovL3d3dy53My5v
cmcvVFIveGh0bWwxL0RURC94aHRtbDEtc3RyaWN0LmR0ZCI+Cis8aHRtbCB4bWxucz0iaHR0cDov
L3d3dy53My5vcmcvMTk5OS94aHRtbCI+CisgPGhlYWQ+CisgIDx0aXRsZT5DU1MgVGVzdDogQHZp
ZXdwb3J0IGNvbnN0cmFpbmVkIC0gd2lkdGggMjBlbTwvdGl0bGU+CisgIDxsaW5rIHJlbD0iYXV0
aG9yIiB0aXRsZT0iUnVuZSBMaWxsZXN2ZWVuIiBocmVmPSJtYWlsdG86cnVuZUBvcGVyYS5jb20i
Lz4KKyAgPGxpbmsgcmVsPSJoZWxwIiBocmVmPSJodHRwOi8vd3d3LnczLm9yZy9UUi9jc3MtZGV2
aWNlLWFkYXB0LyNjb25zdHJhaW5pbmctcHJvY2VkdXJlIi8+CisgIDxtZXRhIG5hbWU9ImZsYWdz
IiBjb250ZW50PSJ2aXN1YWwgc2Nyb2xsIGRvbSIgLz4KKyAgPG1ldGEgbmFtZT0iYXNzZXJ0IiBj
b250ZW50PSJTZXR0aW5nIHdpZHRoIGluIEB2aWV3cG9ydCB0byAyMGVtIHdpbGwgc2V0IHRoZSBh
Y3R1YWwgdmlld3BvcnQgd2lkdGggdG8gMjAgdGltZXMgdGhlIGluaXRpYWwgZm9udC1zaXplLiIv
PgorICA8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIiB0eXBl
PSJ0ZXh0L2phdmFzY3JpcHQiIC8+CisgIDxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMv
dGVzdGhhcm5lc3NyZXBvcnQuanMiIHR5cGU9InRleHQvamF2YXNjcmlwdCIgLz4KKyAgPHN0eWxl
IHR5cGU9InRleHQvY3NzIj48IVtDREFUQVsKKyAgIGJvZHkgeyBtYXJnaW46IDA7IH0KKyAgIGh0
bWwsIGJvZHksICN0ZXN0IHsgd2lkdGg6IDEwMCU7IGhlaWdodDogMTAwJTsgfQorICAgI2xvZyB7
IHBhZGRpbmc6IDFlbTsgZGlzcGxheTogbm9uZTsgfQorICAgLyogUmVzZXQgdmlld3BvcnQgdmFs
dWVzIHRvIGluaXRpYWwgdmFsdWVzIHRvIGlnbm9yZSBVQSBzdHlsZXNoZWV0LiAqLworICAgQC13
ZWJraXQtdmlld3BvcnQgeworICAgIHdpZHRoOiBhdXRvOworICAgIGhlaWdodDogYXV0bzsKKyAg
ICB6b29tOiBhdXRvOworICAgIG1pbi16b29tOiBhdXRvOworICAgIG1heC16b29tOiBhdXRvOwor
ICAgIHVzZXItem9vbTogem9vbTsKKyAgICBvcmllbnRhdGlvbjogYXV0bzsKKyAgICByZXNvbHV0
aW9uOiBhdXRvOworICAgfQorICBdXT48L3N0eWxlPgorICA8c3R5bGUgdHlwZT0idGV4dC9jc3Mi
PjwhW0NEQVRBWworICAgLyogQ1NTIGZvciB0aGUgdGVzdCBiZWxvdy4gKi8KKyAgIEAtd2Via2l0
LXZpZXdwb3J0IHsgd2lkdGg6IDIwZW0gfQorICAgLyogU2V0IHJvb3QgZWxlbWVudCBmb250LXNp
emUgdG8gc29tZXRoaW5nIGRpZmZlcmVudCBmcm9tIHRoZSBpbml0aWFsCisgICAgICBmb250LXNp
emUgdG8gbWFrZSBzdXJlICdyZW0nIGFuZCAnZW0nIGZvciBAdmlld3BvcnQgaXMgYmFzZWQgb24g
dGhlCisgICAgICBpbml0aWFsIGZvbnQtc2l6ZSwgbm90IHRoZSByb290IGVsZW1lbnQgZm9udC1z
aXplLiAqLworICAgaHRtbCB7IGZvbnQtc2l6ZTogMnJlbTsgfQorICAgYm9keSB7IGZvbnQtc2l6
ZTogMC41cmVtOyB9CisgIF1dPjwvc3R5bGU+CisgIDxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2Ny
aXB0Ij48IVtDREFUQVsKKyAgIHZhciB0ZXN0ID0gYXN5bmNfdGVzdCgiQ1NTIFRlc3Q6IEB2aWV3
cG9ydCBjb25zdHJhaW5lZCAtIHdpZHRoIDIwZW0iKTsKKyAgIHdpbmRvdy5vbmxvYWQgPSBmdW5j
dGlvbigpeworCisgICAgdmFyIHRlc3RTdHlsZVNoZWV0ID0gZG9jdW1lbnQuc3R5bGVTaGVldHMu
aXRlbSgxKTsKKworICAgIC8qIERpc2FibGUgdGhlIHN0eWxlc2hlZXQgdGhhdCBjb250YWlucyB0
aGUgQHZpZXdwb3J0IHRvIHRlc3QuICovCisgICAgdGVzdFN0eWxlU2hlZXQuZGlzYWJsZWQgPSB0
cnVlOworCisgICAgLyogSW5pdGlhbGl6ZSBhbiBvYmplY3QgdG8gc3RvcmUgdmlld3BvcnQgdmFs
dWVzIHRvIGJlIHVzZWQgYnkgdGhlIHRlc3QKKyAgICAgICBhc3NlcnRzLiAqLworICAgIHZhciB2
aWV3cG9ydCA9IG5ldyBPYmplY3QoKTsKKworICAgIC8qIEFuIGVsZW1lbnQgd2l0aCB0aGUgc2Ft
ZSBzaXplIGFzIHRoZSBpbml0aWFsIGNvbnRhaW5pbmcgYmxvY2suICovCisgICAgdmFyIHRlc3RF
bG0gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidGVzdCIpOworCisgICAgLyogUmV0cmlldmUg
dGhlIGluaXRpYWwgdmlld3BvcnQgdmFsdWVzIGJlZm9yZSBhcHBseWluZyB0aGUgQHZpZXdwb3J0
IHRvCisgICAgICAgdGVzdC4gKi8KKyAgICB2aWV3cG9ydC5pbml0aWFsV2lkdGggPSB0ZXN0RWxt
Lm9mZnNldFdpZHRoOworICAgIHZpZXdwb3J0LmluaXRpYWxIZWlnaHQgPSB0ZXN0RWxtLm9mZnNl
dEhlaWdodDsKKyAgICB2aWV3cG9ydC5mb250U2l6ZSA9IHBhcnNlSW50KGdldENvbXB1dGVkU3R5
bGUodGVzdEVsbSwgIiIpLmZvbnRTaXplKTsKKworICAgIC8qIEVuYWJsZSB0aGUgc3R5bGVzaGVl
dCB0aGF0IGNvbnRhaW5zIHRoZSBAdmlld3BvcnQgdG8gdGVzdC4gKi8KKyAgICB0ZXN0U3R5bGVT
aGVldC5kaXNhYmxlZCA9IGZhbHNlOworCisgICAgLyogUmV0cmlldmUgdGhlIGFjdHVhbCB2aWV3
cG9ydCB2YWx1ZXMgZm9yIHRoZSB0ZXN0LiAqLworICAgIHZpZXdwb3J0LmFjdHVhbFdpZHRoID0g
dGVzdEVsbS5vZmZzZXRXaWR0aDsKKyAgICB2aWV3cG9ydC5hY3R1YWxIZWlnaHQgPSB0ZXN0RWxt
Lm9mZnNldEhlaWdodDsKKyAgICB2aWV3cG9ydC56b29tID0gdmlld3BvcnQuaW5pdGlhbFdpZHRo
IC8gd2luZG93LmlubmVyV2lkdGg7CisKKyAgICAvKiBDaGVjayB2aWV3cG9ydCB2YWx1ZXMuICov
CisgICAgdGVzdC5zdGVwKGZ1bmN0aW9uKCl7CisgICAgICAgIGFzc2VydF9lcXVhbHModmlld3Bv
cnQuYWN0dWFsV2lkdGgsIDIwKnZpZXdwb3J0LmZvbnRTaXplKTsKKyAgICB9KTsKKworICAgIC8q
IEZpbmlzaGVkLiBTaG93IHRoZSByZXN1bHRzLiAqLworICAgIHRlc3QuZG9uZSgpOworICAgIHRl
c3RTdHlsZVNoZWV0LmRpc2FibGVkID0gdHJ1ZTsKKyAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJ
ZCgibG9nIikuc3R5bGUuZGlzcGxheSA9ICJibG9jayI7CisgICB9CisgIF1dPjwvc2NyaXB0Pgor
IDwvaGVhZD4KKyA8Ym9keT4KKyAgPGRpdiBpZD0idGVzdCI+CisgICA8ZGl2IGlkPSJsb2ciPjwv
ZGl2PgorICA8L2Rpdj4KKyA8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9jc3MzL2RldmljZS1hZGFwdC9vcGVyYS9jb25zdHJhaW4tMDEwLWV4cGVjdGVkLnR4dCBiL0xh
eW91dFRlc3RzL2NzczMvZGV2aWNlLWFkYXB0L29wZXJhL2NvbnN0cmFpbi0wMTAtZXhwZWN0ZWQu
dHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjQxMzI2NGE5ZmJkZDZkM2FjNGZhOWJmZWVjZjY0NTQ0ZmI0ZDIyY2MK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9jc3MzL2RldmljZS1hZGFwdC9vcGVyYS9j
b25zdHJhaW4tMDEwLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDMgQEAKKworUEFTUyBDU1MgVGVz
dDogQHZpZXdwb3J0IGNvbnN0cmFpbmVkIC0gd2lkdGggMjByZW0gCisKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2NzczMvZGV2aWNlLWFkYXB0L29wZXJhL2NvbnN0cmFpbi0wMTAueGh0bWwgYi9M
YXlvdXRUZXN0cy9jc3MzL2RldmljZS1hZGFwdC9vcGVyYS9jb25zdHJhaW4tMDEwLnhodG1sCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLjA0ODAyZGZkMGQ0M2U4ZmY0ZmIxZDQ4NjcwNjFhZDU1ZjllYjhmMzAKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9jc3MzL2RldmljZS1hZGFwdC9vcGVyYS9jb25zdHJh
aW4tMDEwLnhodG1sCkBAIC0wLDAgKzEsODQgQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rp
bmc9IlVURi04Ij8+Cis8IURPQ1RZUEUgaHRtbCBQVUJMSUMgIi0vL1czQy8vRFREIFhIVE1MIDEu
MCBTdHJpY3QvL0VOIiAiaHR0cDovL3d3dy53My5vcmcvVFIveGh0bWwxL0RURC94aHRtbDEtc3Ry
aWN0LmR0ZCI+Cis8aHRtbCB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCI+Cisg
PGhlYWQ+CisgIDx0aXRsZT5DU1MgVGVzdDogQHZpZXdwb3J0IGNvbnN0cmFpbmVkIC0gd2lkdGgg
MjByZW08L3RpdGxlPgorICA8bGluayByZWw9ImF1dGhvciIgdGl0bGU9IlJ1bmUgTGlsbGVzdmVl
biIgaHJlZj0ibWFpbHRvOnJ1bmVAb3BlcmEuY29tIi8+CisgIDxsaW5rIHJlbD0iaGVscCIgaHJl
Zj0iaHR0cDovL3d3dy53My5vcmcvVFIvY3NzLWRldmljZS1hZGFwdC8jY29uc3RyYWluaW5nLXBy
b2NlZHVyZSIvPgorICA8bWV0YSBuYW1lPSJmbGFncyIgY29udGVudD0idmlzdWFsIHNjcm9sbCBk
b20iIC8+CisgIDxtZXRhIG5hbWU9ImFzc2VydCIgY29udGVudD0iU2V0dGluZyB3aWR0aCBpbiBA
dmlld3BvcnQgdG8gMjByZW0gd2lsbCBzZXQgdGhlIGFjdHVhbCB2aWV3cG9ydCB3aWR0aCB0byAy
MCB0aW1lcyB0aGUgaW5pdGlhbCBmb250LXNpemUuIi8+CisgIDxzY3JpcHQgc3JjPSIuLi8uLi8u
Li9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiIHR5cGU9InRleHQvamF2YXNjcmlwdCIgLz4KKyAg
PHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyIgdHlw
ZT0idGV4dC9qYXZhc2NyaXB0IiAvPgorICA8c3R5bGUgdHlwZT0idGV4dC9jc3MiPjwhW0NEQVRB
WworICAgYm9keSB7IG1hcmdpbjogMDsgfQorICAgaHRtbCwgYm9keSwgI3Rlc3QgeyB3aWR0aDog
MTAwJTsgaGVpZ2h0OiAxMDAlOyB9CisgICAjbG9nIHsgcGFkZGluZzogMWVtOyBkaXNwbGF5OiBu
b25lOyB9CisgICAvKiBSZXNldCB2aWV3cG9ydCB2YWx1ZXMgdG8gaW5pdGlhbCB2YWx1ZXMgdG8g
aWdub3JlIFVBIHN0eWxlc2hlZXQuICovCisgICBALXdlYmtpdC12aWV3cG9ydCB7CisgICAgd2lk
dGg6IGF1dG87CisgICAgaGVpZ2h0OiBhdXRvOworICAgIHpvb206IGF1dG87CisgICAgbWluLXpv
b206IGF1dG87CisgICAgbWF4LXpvb206IGF1dG87CisgICAgdXNlci16b29tOiB6b29tOworICAg
IG9yaWVudGF0aW9uOiBhdXRvOworICAgIHJlc29sdXRpb246IGF1dG87CisgICB9CisgIF1dPjwv
c3R5bGU+CisgIDxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyI+PCFbQ0RBVEFbCisgICAvKiBDU1MgZm9y
IHRoZSB0ZXN0IGJlbG93LiAqLworICAgQC13ZWJraXQtdmlld3BvcnQgeyB3aWR0aDogMjByZW0g
fQorICAgLyogU2V0IHJvb3QgZWxlbWVudCBmb250LXNpemUgdG8gc29tZXRoaW5nIGRpZmZlcmVu
dCBmcm9tIHRoZSBpbml0aWFsCisgICAgICBmb250LXNpemUgdG8gbWFrZSBzdXJlICdyZW0nIGFu
ZCAnZW0nIGZvciBAdmlld3BvcnQgaXMgYmFzZWQgb24gdGhlCisgICAgICBpbml0aWFsIGZvbnQt
c2l6ZSwgbm90IHRoZSByb290IGVsZW1lbnQgZm9udC1zaXplLiAqLworICAgaHRtbCB7IGZvbnQt
c2l6ZTogMnJlbTsgfQorICAgYm9keSB7IGZvbnQtc2l6ZTogMC41cmVtOyB9CisgIF1dPjwvc3R5
bGU+CisgIDxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij48IVtDREFUQVsKKyAgIHZhciB0
ZXN0ID0gYXN5bmNfdGVzdCgiQ1NTIFRlc3Q6IEB2aWV3cG9ydCBjb25zdHJhaW5lZCAtIHdpZHRo
IDIwcmVtIik7CisgICB3aW5kb3cub25sb2FkID0gZnVuY3Rpb24oKXsKKworICAgIHZhciB0ZXN0
U3R5bGVTaGVldCA9IGRvY3VtZW50LnN0eWxlU2hlZXRzLml0ZW0oMSk7CisKKyAgICAvKiBEaXNh
YmxlIHRoZSBzdHlsZXNoZWV0IHRoYXQgY29udGFpbnMgdGhlIEB2aWV3cG9ydCB0byB0ZXN0LiAq
LworICAgIHRlc3RTdHlsZVNoZWV0LmRpc2FibGVkID0gdHJ1ZTsKKworICAgIC8qIEluaXRpYWxp
emUgYW4gb2JqZWN0IHRvIHN0b3JlIHZpZXdwb3J0IHZhbHVlcyB0byBiZSB1c2VkIGJ5IHRoZSB0
ZXN0CisgICAgICAgYXNzZXJ0cy4gKi8KKyAgICB2YXIgdmlld3BvcnQgPSBuZXcgT2JqZWN0KCk7
CisKKyAgICAvKiBBbiBlbGVtZW50IHdpdGggdGhlIHNhbWUgc2l6ZSBhcyB0aGUgaW5pdGlhbCBj
b250YWluaW5nIGJsb2NrLiAqLworICAgIHZhciB0ZXN0RWxtID0gZG9jdW1lbnQuZ2V0RWxlbWVu
dEJ5SWQoInRlc3QiKTsKKworICAgIC8qIFJldHJpZXZlIHRoZSBpbml0aWFsIHZpZXdwb3J0IHZh
bHVlcyBiZWZvcmUgYXBwbHlpbmcgdGhlIEB2aWV3cG9ydCB0bworICAgICAgIHRlc3QuICovCisg
ICAgdmlld3BvcnQuaW5pdGlhbFdpZHRoID0gdGVzdEVsbS5vZmZzZXRXaWR0aDsKKyAgICB2aWV3
cG9ydC5pbml0aWFsSGVpZ2h0ID0gdGVzdEVsbS5vZmZzZXRIZWlnaHQ7CisgICAgdmlld3BvcnQu
Zm9udFNpemUgPSBwYXJzZUludChnZXRDb21wdXRlZFN0eWxlKHRlc3RFbG0sICIiKS5mb250U2l6
ZSk7CisKKyAgICAvKiBFbmFibGUgdGhlIHN0eWxlc2hlZXQgdGhhdCBjb250YWlucyB0aGUgQHZp
ZXdwb3J0IHRvIHRlc3QuICovCisgICAgdGVzdFN0eWxlU2hlZXQuZGlzYWJsZWQgPSBmYWxzZTsK
KworICAgIC8qIFJldHJpZXZlIHRoZSBhY3R1YWwgdmlld3BvcnQgdmFsdWVzIGZvciB0aGUgdGVz
dC4gKi8KKyAgICB2aWV3cG9ydC5hY3R1YWxXaWR0aCA9IHRlc3RFbG0ub2Zmc2V0V2lkdGg7Cisg
ICAgdmlld3BvcnQuYWN0dWFsSGVpZ2h0ID0gdGVzdEVsbS5vZmZzZXRIZWlnaHQ7CisgICAgdmll
d3BvcnQuem9vbSA9IHZpZXdwb3J0LmluaXRpYWxXaWR0aCAvIHdpbmRvdy5pbm5lcldpZHRoOwor
CisgICAgLyogQ2hlY2sgdmlld3BvcnQgdmFsdWVzLiAqLworICAgIHRlc3Quc3RlcChmdW5jdGlv
bigpeworICAgICAgICBhc3NlcnRfZXF1YWxzKHZpZXdwb3J0LmFjdHVhbFdpZHRoLCAyMCp2aWV3
cG9ydC5mb250U2l6ZSk7CisgICAgfSk7CisKKyAgICAvKiBGaW5pc2hlZC4gU2hvdyB0aGUgcmVz
dWx0cy4gKi8KKyAgICB0ZXN0LmRvbmUoKTsKKyAgICB0ZXN0U3R5bGVTaGVldC5kaXNhYmxlZCA9
IHRydWU7CisgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImxvZyIpLnN0eWxlLmRpc3BsYXkg
PSAiYmxvY2siOworICAgfQorICBdXT48L3NjcmlwdD4KKyA8L2hlYWQ+CisgPGJvZHk+CisgIDxk
aXYgaWQ9InRlc3QiPgorICAgPGRpdiBpZD0ibG9nIj48L2Rpdj4KKyAgPC9kaXY+CisgPC9ib2R5
PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvY3NzMy9kZXZpY2UtYWRhcHQvb3Bl
cmEvY29uc3RyYWluLTAxMS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9jc3MzL2RldmljZS1h
ZGFwdC9vcGVyYS9jb25zdHJhaW4tMDExLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iNzlmNzNk
YWE0YTExMDdkMzAyNzg4MWFjNGNjYWQ3N2JkOGZkMjUwCi0tLSAvZGV2L251bGwKKysrIGIvTGF5
b3V0VGVzdHMvY3NzMy9kZXZpY2UtYWRhcHQvb3BlcmEvY29uc3RyYWluLTAxMS1leHBlY3RlZC50
eHQKQEAgLTAsMCArMSwzIEBACisKK1BBU1MgQ1NTIFRlc3Q6IEB2aWV3cG9ydCBjb25zdHJhaW5l
ZCAtIHdpZHRoIGZyb20gem9vbTogMjAwJSAKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvY3Nz
My9kZXZpY2UtYWRhcHQvb3BlcmEvY29uc3RyYWluLTAxMS54aHRtbCBiL0xheW91dFRlc3RzL2Nz
czMvZGV2aWNlLWFkYXB0L29wZXJhL2NvbnN0cmFpbi0wMTEueGh0bWwKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMzI2
ODU1YzQzOTBjN2FlNDRkNzU0NTZjMjNhNzZiMDM3ZDEzYjA0NQotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL2NzczMvZGV2aWNlLWFkYXB0L29wZXJhL2NvbnN0cmFpbi0wMTEueGh0bWwK
QEAgLTAsMCArMSw4NCBAQAorPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4K
KzwhRE9DVFlQRSBodG1sIFBVQkxJQyAiLS8vVzNDLy9EVEQgWEhUTUwgMS4wIFN0cmljdC8vRU4i
ICJodHRwOi8vd3d3LnczLm9yZy9UUi94aHRtbDEvRFREL3hodG1sMS1zdHJpY3QuZHRkIj4KKzxo
dG1sIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sIj4KKyA8aGVhZD4KKyAgPHRp
dGxlPkNTUyBUZXN0OiBAdmlld3BvcnQgY29uc3RyYWluZWQgLSB3aWR0aCBmcm9tIHpvb206IDIw
MCU8L3RpdGxlPgorICA8bGluayByZWw9ImF1dGhvciIgdGl0bGU9IlJ1bmUgTGlsbGVzdmVlbiIg
aHJlZj0ibWFpbHRvOnJ1bmVAb3BlcmEuY29tIi8+CisgIDxsaW5rIHJlbD0iaGVscCIgaHJlZj0i
aHR0cDovL3d3dy53My5vcmcvVFIvY3NzLWRldmljZS1hZGFwdC8jY29uc3RyYWluaW5nLXByb2Nl
ZHVyZSIvPgorICA8bWV0YSBuYW1lPSJmbGFncyIgY29udGVudD0idmlzdWFsIHNjcm9sbCBkb20i
IC8+CisgIDxtZXRhIG5hbWU9ImFzc2VydCIgY29udGVudD0iU2V0dGluZyB6b29tIGluIEB2aWV3
cG9ydCB0byAyMDAlIHdpbGwgc2V0IHRoZSBhY3R1YWwgdmlld3BvcnQgd2lkdGggdG8gaGFsZiB0
aGUgaW5pdGlhbC13aWR0aC4iLz4KKyAgPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90
ZXN0aGFybmVzcy5qcyIgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiAvPgorICA8c2NyaXB0IHNyYz0i
Li4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIiB0eXBlPSJ0ZXh0L2phdmFz
Y3JpcHQiIC8+CisgIDxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyI+PCFbQ0RBVEFbCisgICBib2R5IHsg
bWFyZ2luOiAwOyB9CisgICBodG1sLCBib2R5LCAjdGVzdCB7IHdpZHRoOiAxMDAlOyBoZWlnaHQ6
IDEwMCU7IH0KKyAgICNsb2cgeyBwYWRkaW5nOiAxZW07IGRpc3BsYXk6IG5vbmU7IH0KKyAgIC8q
IFJlc2V0IHZpZXdwb3J0IHZhbHVlcyB0byBpbml0aWFsIHZhbHVlcyB0byBpZ25vcmUgVUEgc3R5
bGVzaGVldC4gKi8KKyAgIEAtd2Via2l0LXZpZXdwb3J0IHsKKyAgICB3aWR0aDogYXV0bzsKKyAg
ICBoZWlnaHQ6IGF1dG87CisgICAgem9vbTogYXV0bzsKKyAgICBtaW4tem9vbTogYXV0bzsKKyAg
ICBtYXgtem9vbTogYXV0bzsKKyAgICB1c2VyLXpvb206IHpvb207CisgICAgb3JpZW50YXRpb246
IGF1dG87CisgICAgcmVzb2x1dGlvbjogYXV0bzsKKyAgIH0KKyAgXV0+PC9zdHlsZT4KKyAgPHN0
eWxlIHR5cGU9InRleHQvY3NzIj48IVtDREFUQVsKKyAgIC8qIENTUyBmb3IgdGhlIHRlc3QgYmVs
b3cuICovCisgICBALXdlYmtpdC12aWV3cG9ydCB7IHpvb206IDIwMCUgfQorICAgLyogU2V0IHJv
b3QgZWxlbWVudCBmb250LXNpemUgdG8gc29tZXRoaW5nIGRpZmZlcmVudCBmcm9tIHRoZSBpbml0
aWFsCisgICAgICBmb250LXNpemUgdG8gbWFrZSBzdXJlICdyZW0nIGFuZCAnZW0nIGZvciBAdmll
d3BvcnQgaXMgYmFzZWQgb24gdGhlCisgICAgICBpbml0aWFsIGZvbnQtc2l6ZSwgbm90IHRoZSBy
b290IGVsZW1lbnQgZm9udC1zaXplLiAqLworICAgaHRtbCB7IGZvbnQtc2l6ZTogMnJlbTsgfQor
ICAgYm9keSB7IGZvbnQtc2l6ZTogMC41cmVtOyB9CisgIF1dPjwvc3R5bGU+CisgIDxzY3JpcHQg
dHlwZT0idGV4dC9qYXZhc2NyaXB0Ij48IVtDREFUQVsKKyAgIHZhciB0ZXN0ID0gYXN5bmNfdGVz
dCgiQ1NTIFRlc3Q6IEB2aWV3cG9ydCBjb25zdHJhaW5lZCAtIHdpZHRoIGZyb20gem9vbTogMjAw
JSIpOworICAgd2luZG93Lm9ubG9hZCA9IGZ1bmN0aW9uKCl7CisKKyAgICB2YXIgdGVzdFN0eWxl
U2hlZXQgPSBkb2N1bWVudC5zdHlsZVNoZWV0cy5pdGVtKDEpOworCisgICAgLyogRGlzYWJsZSB0
aGUgc3R5bGVzaGVldCB0aGF0IGNvbnRhaW5zIHRoZSBAdmlld3BvcnQgdG8gdGVzdC4gKi8KKyAg
ICB0ZXN0U3R5bGVTaGVldC5kaXNhYmxlZCA9IHRydWU7CisKKyAgICAvKiBJbml0aWFsaXplIGFu
IG9iamVjdCB0byBzdG9yZSB2aWV3cG9ydCB2YWx1ZXMgdG8gYmUgdXNlZCBieSB0aGUgdGVzdAor
ICAgICAgIGFzc2VydHMuICovCisgICAgdmFyIHZpZXdwb3J0ID0gbmV3IE9iamVjdCgpOworCisg
ICAgLyogQW4gZWxlbWVudCB3aXRoIHRoZSBzYW1lIHNpemUgYXMgdGhlIGluaXRpYWwgY29udGFp
bmluZyBibG9jay4gKi8KKyAgICB2YXIgdGVzdEVsbSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlk
KCJ0ZXN0Iik7CisKKyAgICAvKiBSZXRyaWV2ZSB0aGUgaW5pdGlhbCB2aWV3cG9ydCB2YWx1ZXMg
YmVmb3JlIGFwcGx5aW5nIHRoZSBAdmlld3BvcnQgdG8KKyAgICAgICB0ZXN0LiAqLworICAgIHZp
ZXdwb3J0LmluaXRpYWxXaWR0aCA9IHRlc3RFbG0ub2Zmc2V0V2lkdGg7CisgICAgdmlld3BvcnQu
aW5pdGlhbEhlaWdodCA9IHRlc3RFbG0ub2Zmc2V0SGVpZ2h0OworICAgIHZpZXdwb3J0LmZvbnRT
aXplID0gcGFyc2VJbnQoZ2V0Q29tcHV0ZWRTdHlsZSh0ZXN0RWxtLCAiIikuZm9udFNpemUpOwor
CisgICAgLyogRW5hYmxlIHRoZSBzdHlsZXNoZWV0IHRoYXQgY29udGFpbnMgdGhlIEB2aWV3cG9y
dCB0byB0ZXN0LiAqLworICAgIHRlc3RTdHlsZVNoZWV0LmRpc2FibGVkID0gZmFsc2U7CisKKyAg
ICAvKiBSZXRyaWV2ZSB0aGUgYWN0dWFsIHZpZXdwb3J0IHZhbHVlcyBmb3IgdGhlIHRlc3QuICov
CisgICAgdmlld3BvcnQuYWN0dWFsV2lkdGggPSB0ZXN0RWxtLm9mZnNldFdpZHRoOworICAgIHZp
ZXdwb3J0LmFjdHVhbEhlaWdodCA9IHRlc3RFbG0ub2Zmc2V0SGVpZ2h0OworICAgIHZpZXdwb3J0
Lnpvb20gPSB2aWV3cG9ydC5pbml0aWFsV2lkdGggLyB3aW5kb3cuaW5uZXJXaWR0aDsKKworICAg
IC8qIENoZWNrIHZpZXdwb3J0IHZhbHVlcy4gKi8KKyAgICB0ZXN0LnN0ZXAoZnVuY3Rpb24oKXsK
KyAgICAgICAgYXNzZXJ0X2VxdWFscyh2aWV3cG9ydC5hY3R1YWxXaWR0aCwgTWF0aC5mbG9vcih2
aWV3cG9ydC5pbml0aWFsV2lkdGgvMikpOworICAgIH0pOworCisgICAgLyogRmluaXNoZWQuIFNo
b3cgdGhlIHJlc3VsdHMuICovCisgICAgdGVzdC5kb25lKCk7CisgICAgdGVzdFN0eWxlU2hlZXQu
ZGlzYWJsZWQgPSB0cnVlOworICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJsb2ciKS5zdHls
ZS5kaXNwbGF5ID0gImJsb2NrIjsKKyAgIH0KKyAgXV0+PC9zY3JpcHQ+CisgPC9oZWFkPgorIDxi
b2R5PgorICA8ZGl2IGlkPSJ0ZXN0Ij4KKyAgIDxkaXYgaWQ9ImxvZyI+PC9kaXY+CisgIDwvZGl2
PgorIDwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2NzczMvZGV2aWNl
LWFkYXB0L29wZXJhL2NvbnN0cmFpbi0wMTItZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvY3Nz
My9kZXZpY2UtYWRhcHQvb3BlcmEvY29uc3RyYWluLTAxMi1leHBlY3RlZC50eHQKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uN2U1ZGEyZDg1N2Q0MzYwODllOWQxODAwZmJlOWE5NDZjOTg1MDc3YgotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL2NzczMvZGV2aWNlLWFkYXB0L29wZXJhL2NvbnN0cmFpbi0wMTIt
ZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMyBAQAorCitQQVNTIENTUyBUZXN0OiBAdmlld3BvcnQg
Y29uc3RyYWluZWQgLSBtaW4tem9vbSBub3QgYWZmZWN0aW5nIHdpZHRoLiAKKwpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvY3NzMy9kZXZpY2UtYWRhcHQvb3BlcmEvY29uc3RyYWluLTAxMi54aHRt
bCBiL0xheW91dFRlc3RzL2NzczMvZGV2aWNlLWFkYXB0L29wZXJhL2NvbnN0cmFpbi0wMTIueGh0
bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uOGUzNGQzYjk2YzgxM2Q3OGUyZDY4NjMwNGU0NjIyN2IzZTBiZWZmZgot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2NzczMvZGV2aWNlLWFkYXB0L29wZXJhL2Nv
bnN0cmFpbi0wMTIueGh0bWwKQEAgLTAsMCArMSw4NCBAQAorPD94bWwgdmVyc2lvbj0iMS4wIiBl
bmNvZGluZz0iVVRGLTgiPz4KKzwhRE9DVFlQRSBodG1sIFBVQkxJQyAiLS8vVzNDLy9EVEQgWEhU
TUwgMS4wIFN0cmljdC8vRU4iICJodHRwOi8vd3d3LnczLm9yZy9UUi94aHRtbDEvRFREL3hodG1s
MS1zdHJpY3QuZHRkIj4KKzxodG1sIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1s
Ij4KKyA8aGVhZD4KKyAgPHRpdGxlPkNTUyBUZXN0OiBAdmlld3BvcnQgY29uc3RyYWluZWQgLSBt
aW4tem9vbSBub3QgYWZmZWN0aW5nIHdpZHRoLjwvdGl0bGU+CisgIDxsaW5rIHJlbD0iYXV0aG9y
IiB0aXRsZT0iUnVuZSBMaWxsZXN2ZWVuIiBocmVmPSJtYWlsdG86cnVuZUBvcGVyYS5jb20iLz4K
KyAgPGxpbmsgcmVsPSJoZWxwIiBocmVmPSJodHRwOi8vd3d3LnczLm9yZy9UUi9jc3MtZGV2aWNl
LWFkYXB0LyNjb25zdHJhaW5pbmctcHJvY2VkdXJlIi8+CisgIDxtZXRhIG5hbWU9ImZsYWdzIiBj
b250ZW50PSJ2aXN1YWwgc2Nyb2xsIGRvbSIgLz4KKyAgPG1ldGEgbmFtZT0iYXNzZXJ0IiBjb250
ZW50PSJTZXR0aW5nIG1pbi16b29tIGluIEB2aWV3cG9ydCB0byAyMDAlIHdpbGwgbm90IGFmZmVj
dCB3aWR0aCBpZiB6b29tIGlzIGF1dG8uIi8+CisgIDxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNv
dXJjZXMvdGVzdGhhcm5lc3MuanMiIHR5cGU9InRleHQvamF2YXNjcmlwdCIgLz4KKyAgPHNjcmlw
dCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyIgdHlwZT0idGV4
dC9qYXZhc2NyaXB0IiAvPgorICA8c3R5bGUgdHlwZT0idGV4dC9jc3MiPjwhW0NEQVRBWworICAg
Ym9keSB7IG1hcmdpbjogMDsgfQorICAgaHRtbCwgYm9keSwgI3Rlc3QgeyB3aWR0aDogMTAwJTsg
aGVpZ2h0OiAxMDAlOyB9CisgICAjbG9nIHsgcGFkZGluZzogMWVtOyBkaXNwbGF5OiBub25lOyB9
CisgICAvKiBSZXNldCB2aWV3cG9ydCB2YWx1ZXMgdG8gaW5pdGlhbCB2YWx1ZXMgdG8gaWdub3Jl
IFVBIHN0eWxlc2hlZXQuICovCisgICBALXdlYmtpdC12aWV3cG9ydCB7CisgICAgd2lkdGg6IGF1
dG87CisgICAgaGVpZ2h0OiBhdXRvOworICAgIHpvb206IGF1dG87CisgICAgbWluLXpvb206IGF1
dG87CisgICAgbWF4LXpvb206IGF1dG87CisgICAgdXNlci16b29tOiB6b29tOworICAgIG9yaWVu
dGF0aW9uOiBhdXRvOworICAgIHJlc29sdXRpb246IGF1dG87CisgICB9CisgIF1dPjwvc3R5bGU+
CisgIDxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyI+PCFbQ0RBVEFbCisgICAvKiBDU1MgZm9yIHRoZSB0
ZXN0IGJlbG93LiAqLworICAgQC13ZWJraXQtdmlld3BvcnQgeyBtaW4tem9vbTogMjAwJSB9Cisg
ICAvKiBTZXQgcm9vdCBlbGVtZW50IGZvbnQtc2l6ZSB0byBzb21ldGhpbmcgZGlmZmVyZW50IGZy
b20gdGhlIGluaXRpYWwKKyAgICAgIGZvbnQtc2l6ZSB0byBtYWtlIHN1cmUgJ3JlbScgYW5kICdl
bScgZm9yIEB2aWV3cG9ydCBpcyBiYXNlZCBvbiB0aGUKKyAgICAgIGluaXRpYWwgZm9udC1zaXpl
LCBub3QgdGhlIHJvb3QgZWxlbWVudCBmb250LXNpemUuICovCisgICBodG1sIHsgZm9udC1zaXpl
OiAycmVtOyB9CisgICBib2R5IHsgZm9udC1zaXplOiAwLjVyZW07IH0KKyAgXV0+PC9zdHlsZT4K
KyAgPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPjwhW0NEQVRBWworICAgdmFyIHRlc3Qg
PSBhc3luY190ZXN0KCJDU1MgVGVzdDogQHZpZXdwb3J0IGNvbnN0cmFpbmVkIC0gbWluLXpvb20g
bm90IGFmZmVjdGluZyB3aWR0aC4iKTsKKyAgIHdpbmRvdy5vbmxvYWQgPSBmdW5jdGlvbigpewor
CisgICAgdmFyIHRlc3RTdHlsZVNoZWV0ID0gZG9jdW1lbnQuc3R5bGVTaGVldHMuaXRlbSgxKTsK
KworICAgIC8qIERpc2FibGUgdGhlIHN0eWxlc2hlZXQgdGhhdCBjb250YWlucyB0aGUgQHZpZXdw
b3J0IHRvIHRlc3QuICovCisgICAgdGVzdFN0eWxlU2hlZXQuZGlzYWJsZWQgPSB0cnVlOworCisg
ICAgLyogSW5pdGlhbGl6ZSBhbiBvYmplY3QgdG8gc3RvcmUgdmlld3BvcnQgdmFsdWVzIHRvIGJl
IHVzZWQgYnkgdGhlIHRlc3QKKyAgICAgICBhc3NlcnRzLiAqLworICAgIHZhciB2aWV3cG9ydCA9
IG5ldyBPYmplY3QoKTsKKworICAgIC8qIEFuIGVsZW1lbnQgd2l0aCB0aGUgc2FtZSBzaXplIGFz
IHRoZSBpbml0aWFsIGNvbnRhaW5pbmcgYmxvY2suICovCisgICAgdmFyIHRlc3RFbG0gPSBkb2N1
bWVudC5nZXRFbGVtZW50QnlJZCgidGVzdCIpOworCisgICAgLyogUmV0cmlldmUgdGhlIGluaXRp
YWwgdmlld3BvcnQgdmFsdWVzIGJlZm9yZSBhcHBseWluZyB0aGUgQHZpZXdwb3J0IHRvCisgICAg
ICAgdGVzdC4gKi8KKyAgICB2aWV3cG9ydC5pbml0aWFsV2lkdGggPSB0ZXN0RWxtLm9mZnNldFdp
ZHRoOworICAgIHZpZXdwb3J0LmluaXRpYWxIZWlnaHQgPSB0ZXN0RWxtLm9mZnNldEhlaWdodDsK
KyAgICB2aWV3cG9ydC5mb250U2l6ZSA9IHBhcnNlSW50KGdldENvbXB1dGVkU3R5bGUodGVzdEVs
bSwgIiIpLmZvbnRTaXplKTsKKworICAgIC8qIEVuYWJsZSB0aGUgc3R5bGVzaGVldCB0aGF0IGNv
bnRhaW5zIHRoZSBAdmlld3BvcnQgdG8gdGVzdC4gKi8KKyAgICB0ZXN0U3R5bGVTaGVldC5kaXNh
YmxlZCA9IGZhbHNlOworCisgICAgLyogUmV0cmlldmUgdGhlIGFjdHVhbCB2aWV3cG9ydCB2YWx1
ZXMgZm9yIHRoZSB0ZXN0LiAqLworICAgIHZpZXdwb3J0LmFjdHVhbFdpZHRoID0gdGVzdEVsbS5v
ZmZzZXRXaWR0aDsKKyAgICB2aWV3cG9ydC5hY3R1YWxIZWlnaHQgPSB0ZXN0RWxtLm9mZnNldEhl
aWdodDsKKyAgICB2aWV3cG9ydC56b29tID0gdmlld3BvcnQuaW5pdGlhbFdpZHRoIC8gd2luZG93
LmlubmVyV2lkdGg7CisKKyAgICAvKiBDaGVjayB2aWV3cG9ydCB2YWx1ZXMuICovCisgICAgdGVz
dC5zdGVwKGZ1bmN0aW9uKCl7CisgICAgICAgIGFzc2VydF9lcXVhbHModmlld3BvcnQuYWN0dWFs
V2lkdGgsIHZpZXdwb3J0LmluaXRpYWxXaWR0aCk7CisgICAgfSk7CisKKyAgICAvKiBGaW5pc2hl
ZC4gU2hvdyB0aGUgcmVzdWx0cy4gKi8KKyAgICB0ZXN0LmRvbmUoKTsKKyAgICB0ZXN0U3R5bGVT
aGVldC5kaXNhYmxlZCA9IHRydWU7CisgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImxvZyIp
LnN0eWxlLmRpc3BsYXkgPSAiYmxvY2siOworICAgfQorICBdXT48L3NjcmlwdD4KKyA8L2hlYWQ+
CisgPGJvZHk+CisgIDxkaXYgaWQ9InRlc3QiPgorICAgPGRpdiBpZD0ibG9nIj48L2Rpdj4KKyAg
PC9kaXY+CisgPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvY3NzMy9k
ZXZpY2UtYWRhcHQvb3BlcmEvY29uc3RyYWluLTAxMy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0
cy9jc3MzL2RldmljZS1hZGFwdC9vcGVyYS9jb25zdHJhaW4tMDEzLWV4cGVjdGVkLnR4dApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi44ODFjYTA0ZGQ1Yzc5NjUyYmQ0N2I3MjY1MThlZTYzYTgyOGViMjA4Ci0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvY3NzMy9kZXZpY2UtYWRhcHQvb3BlcmEvY29uc3RyYWlu
LTAxMy1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwzIEBACisKK1BBU1MgQ1NTIFRlc3Q6IEB2aWV3
cG9ydCBjb25zdHJhaW5lZCAtIG1heC16b29tIGFmZmVjdGluZyB3aWR0aC4gCisKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2NzczMvZGV2aWNlLWFkYXB0L29wZXJhL2NvbnN0cmFpbi0wMTMueGh0
bWwgYi9MYXlvdXRUZXN0cy9jc3MzL2RldmljZS1hZGFwdC9vcGVyYS9jb25zdHJhaW4tMDEzLnho
dG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLmY2YmVkYjdkOWQ0NTVhYjVmMmE1MmI5MTRhOGY5ZjE3YzMzNDhkOTAK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9jc3MzL2RldmljZS1hZGFwdC9vcGVyYS9j
b25zdHJhaW4tMDEzLnhodG1sCkBAIC0wLDAgKzEsODQgQEAKKzw/eG1sIHZlcnNpb249IjEuMCIg
ZW5jb2Rpbmc9IlVURi04Ij8+Cis8IURPQ1RZUEUgaHRtbCBQVUJMSUMgIi0vL1czQy8vRFREIFhI
VE1MIDEuMCBTdHJpY3QvL0VOIiAiaHR0cDovL3d3dy53My5vcmcvVFIveGh0bWwxL0RURC94aHRt
bDEtc3RyaWN0LmR0ZCI+Cis8aHRtbCB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRt
bCI+CisgPGhlYWQ+CisgIDx0aXRsZT5DU1MgVGVzdDogQHZpZXdwb3J0IGNvbnN0cmFpbmVkIC0g
bWF4LXpvb20gYWZmZWN0aW5nIHdpZHRoLjwvdGl0bGU+CisgIDxsaW5rIHJlbD0iYXV0aG9yIiB0
aXRsZT0iUnVuZSBMaWxsZXN2ZWVuIiBocmVmPSJtYWlsdG86cnVuZUBvcGVyYS5jb20iLz4KKyAg
PGxpbmsgcmVsPSJoZWxwIiBocmVmPSJodHRwOi8vd3d3LnczLm9yZy9UUi9jc3MtZGV2aWNlLWFk
YXB0LyNjb25zdHJhaW5pbmctcHJvY2VkdXJlIi8+CisgIDxtZXRhIG5hbWU9ImZsYWdzIiBjb250
ZW50PSJ2aXN1YWwgc2Nyb2xsIGRvbSIgLz4KKyAgPG1ldGEgbmFtZT0iYXNzZXJ0IiBjb250ZW50
PSJTZXR0aW5nIG1heC16b29tIGluIEB2aWV3cG9ydCB0byA1MCUgYWZmZWN0IHdpZHRoIGlmIHpv
b20gaXMgYXV0byBiZWNhdXNlIG9mIHN0ZXAgMTAgaW4gdGhlIGNvbnN0cmFpbmluZyBwcm9jZWR1
cmUuIi8+CisgIDxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMi
IHR5cGU9InRleHQvamF2YXNjcmlwdCIgLz4KKyAgPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291
cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyIgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiAvPgorICA8
c3R5bGUgdHlwZT0idGV4dC9jc3MiPjwhW0NEQVRBWworICAgYm9keSB7IG1hcmdpbjogMDsgfQor
ICAgaHRtbCwgYm9keSwgI3Rlc3QgeyB3aWR0aDogMTAwJTsgaGVpZ2h0OiAxMDAlOyB9CisgICAj
bG9nIHsgcGFkZGluZzogMWVtOyBkaXNwbGF5OiBub25lOyB9CisgICAvKiBSZXNldCB2aWV3cG9y
dCB2YWx1ZXMgdG8gaW5pdGlhbCB2YWx1ZXMgdG8gaWdub3JlIFVBIHN0eWxlc2hlZXQuICovCisg
ICBALXdlYmtpdC12aWV3cG9ydCB7CisgICAgd2lkdGg6IGF1dG87CisgICAgaGVpZ2h0OiBhdXRv
OworICAgIHpvb206IGF1dG87CisgICAgbWluLXpvb206IGF1dG87CisgICAgbWF4LXpvb206IGF1
dG87CisgICAgdXNlci16b29tOiB6b29tOworICAgIG9yaWVudGF0aW9uOiBhdXRvOworICAgIHJl
c29sdXRpb246IGF1dG87CisgICB9CisgIF1dPjwvc3R5bGU+CisgIDxzdHlsZSB0eXBlPSJ0ZXh0
L2NzcyI+PCFbQ0RBVEFbCisgICAvKiBDU1MgZm9yIHRoZSB0ZXN0IGJlbG93LiAqLworICAgQC13
ZWJraXQtdmlld3BvcnQgeyBtYXgtem9vbTogNTAlIH0KKyAgIC8qIFNldCByb290IGVsZW1lbnQg
Zm9udC1zaXplIHRvIHNvbWV0aGluZyBkaWZmZXJlbnQgZnJvbSB0aGUgaW5pdGlhbAorICAgICAg
Zm9udC1zaXplIHRvIG1ha2Ugc3VyZSAncmVtJyBhbmQgJ2VtJyBmb3IgQHZpZXdwb3J0IGlzIGJh
c2VkIG9uIHRoZQorICAgICAgaW5pdGlhbCBmb250LXNpemUsIG5vdCB0aGUgcm9vdCBlbGVtZW50
IGZvbnQtc2l6ZS4gKi8KKyAgIGh0bWwgeyBmb250LXNpemU6IDJyZW07IH0KKyAgIGJvZHkgeyBm
b250LXNpemU6IDAuNXJlbTsgfQorICBdXT48L3N0eWxlPgorICA8c2NyaXB0IHR5cGU9InRleHQv
amF2YXNjcmlwdCI+PCFbQ0RBVEFbCisgICB2YXIgdGVzdCA9IGFzeW5jX3Rlc3QoIkNTUyBUZXN0
OiBAdmlld3BvcnQgY29uc3RyYWluZWQgLSBtYXgtem9vbSBhZmZlY3Rpbmcgd2lkdGguIik7Cisg
ICB3aW5kb3cub25sb2FkID0gZnVuY3Rpb24oKXsKKworICAgIHZhciB0ZXN0U3R5bGVTaGVldCA9
IGRvY3VtZW50LnN0eWxlU2hlZXRzLml0ZW0oMSk7CisKKyAgICAvKiBEaXNhYmxlIHRoZSBzdHls
ZXNoZWV0IHRoYXQgY29udGFpbnMgdGhlIEB2aWV3cG9ydCB0byB0ZXN0LiAqLworICAgIHRlc3RT
dHlsZVNoZWV0LmRpc2FibGVkID0gdHJ1ZTsKKworICAgIC8qIEluaXRpYWxpemUgYW4gb2JqZWN0
IHRvIHN0b3JlIHZpZXdwb3J0IHZhbHVlcyB0byBiZSB1c2VkIGJ5IHRoZSB0ZXN0CisgICAgICAg
YXNzZXJ0cy4gKi8KKyAgICB2YXIgdmlld3BvcnQgPSBuZXcgT2JqZWN0KCk7CisKKyAgICAvKiBB
biBlbGVtZW50IHdpdGggdGhlIHNhbWUgc2l6ZSBhcyB0aGUgaW5pdGlhbCBjb250YWluaW5nIGJs
b2NrLiAqLworICAgIHZhciB0ZXN0RWxtID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRlc3Qi
KTsKKworICAgIC8qIFJldHJpZXZlIHRoZSBpbml0aWFsIHZpZXdwb3J0IHZhbHVlcyBiZWZvcmUg
YXBwbHlpbmcgdGhlIEB2aWV3cG9ydCB0bworICAgICAgIHRlc3QuICovCisgICAgdmlld3BvcnQu
aW5pdGlhbFdpZHRoID0gdGVzdEVsbS5vZmZzZXRXaWR0aDsKKyAgICB2aWV3cG9ydC5pbml0aWFs
SGVpZ2h0ID0gdGVzdEVsbS5vZmZzZXRIZWlnaHQ7CisgICAgdmlld3BvcnQuZm9udFNpemUgPSBw
YXJzZUludChnZXRDb21wdXRlZFN0eWxlKHRlc3RFbG0sICIiKS5mb250U2l6ZSk7CisKKyAgICAv
KiBFbmFibGUgdGhlIHN0eWxlc2hlZXQgdGhhdCBjb250YWlucyB0aGUgQHZpZXdwb3J0IHRvIHRl
c3QuICovCisgICAgdGVzdFN0eWxlU2hlZXQuZGlzYWJsZWQgPSBmYWxzZTsKKworICAgIC8qIFJl
dHJpZXZlIHRoZSBhY3R1YWwgdmlld3BvcnQgdmFsdWVzIGZvciB0aGUgdGVzdC4gKi8KKyAgICB2
aWV3cG9ydC5hY3R1YWxXaWR0aCA9IHRlc3RFbG0ub2Zmc2V0V2lkdGg7CisgICAgdmlld3BvcnQu
YWN0dWFsSGVpZ2h0ID0gdGVzdEVsbS5vZmZzZXRIZWlnaHQ7CisgICAgdmlld3BvcnQuem9vbSA9
IHZpZXdwb3J0LmluaXRpYWxXaWR0aCAvIHdpbmRvdy5pbm5lcldpZHRoOworCisgICAgLyogQ2hl
Y2sgdmlld3BvcnQgdmFsdWVzLiAqLworICAgIHRlc3Quc3RlcChmdW5jdGlvbigpeworICAgICAg
ICBhc3NlcnRfZXF1YWxzKHZpZXdwb3J0LmFjdHVhbFdpZHRoLCAyKnZpZXdwb3J0LmluaXRpYWxX
aWR0aCk7CisgICAgfSk7CisKKyAgICAvKiBGaW5pc2hlZC4gU2hvdyB0aGUgcmVzdWx0cy4gKi8K
KyAgICB0ZXN0LmRvbmUoKTsKKyAgICB0ZXN0U3R5bGVTaGVldC5kaXNhYmxlZCA9IHRydWU7Cisg
ICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImxvZyIpLnN0eWxlLmRpc3BsYXkgPSAiYmxvY2si
OworICAgfQorICBdXT48L3NjcmlwdD4KKyA8L2hlYWQ+CisgPGJvZHk+CisgIDxkaXYgaWQ9InRl
c3QiPgorICAgPGRpdiBpZD0ibG9nIj48L2Rpdj4KKyAgPC9kaXY+CisgPC9ib2R5PgorPC9odG1s
PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvY3NzMy9kZXZpY2UtYWRhcHQvb3BlcmEvY29uc3Ry
YWluLTAxNC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9jc3MzL2RldmljZS1hZGFwdC9vcGVy
YS9jb25zdHJhaW4tMDE0LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mNzg4MGMzNjhiOTAzMGE4
ZDI1NmEwYmI0MzQ2ODk4ODU2Y2NlYmE2Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
Y3NzMy9kZXZpY2UtYWRhcHQvb3BlcmEvY29uc3RyYWluLTAxNC1leHBlY3RlZC50eHQKQEAgLTAs
MCArMSwzIEBACisKK1BBU1MgQ1NTIFRlc3Q6IEB2aWV3cG9ydCBjb25zdHJhaW5lZCAtIHpvb20g
Z3JlYXRlciB0aGFuIG1heC16b29tLiAKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvY3NzMy9k
ZXZpY2UtYWRhcHQvb3BlcmEvY29uc3RyYWluLTAxNC54aHRtbCBiL0xheW91dFRlc3RzL2NzczMv
ZGV2aWNlLWFkYXB0L29wZXJhL2NvbnN0cmFpbi0wMTQueGh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMTIzMmNj
NTQ1MmEyY2NlNGFhMDllMDk3MmZhNzUyOGE1ZDMxZWE4NgotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL2NzczMvZGV2aWNlLWFkYXB0L29wZXJhL2NvbnN0cmFpbi0wMTQueGh0bWwKQEAg
LTAsMCArMSw4NCBAQAorPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KKzwh
RE9DVFlQRSBodG1sIFBVQkxJQyAiLS8vVzNDLy9EVEQgWEhUTUwgMS4wIFN0cmljdC8vRU4iICJo
dHRwOi8vd3d3LnczLm9yZy9UUi94aHRtbDEvRFREL3hodG1sMS1zdHJpY3QuZHRkIj4KKzxodG1s
IHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sIj4KKyA8aGVhZD4KKyAgPHRpdGxl
PkNTUyBUZXN0OiBAdmlld3BvcnQgY29uc3RyYWluZWQgLSB6b29tIGdyZWF0ZXIgdGhhbiBtYXgt
em9vbS48L3RpdGxlPgorICA8bGluayByZWw9ImF1dGhvciIgdGl0bGU9IlJ1bmUgTGlsbGVzdmVl
biIgaHJlZj0ibWFpbHRvOnJ1bmVAb3BlcmEuY29tIi8+CisgIDxsaW5rIHJlbD0iaGVscCIgaHJl
Zj0iaHR0cDovL3d3dy53My5vcmcvVFIvY3NzLWRldmljZS1hZGFwdC8jY29uc3RyYWluaW5nLXBy
b2NlZHVyZSIvPgorICA8bWV0YSBuYW1lPSJmbGFncyIgY29udGVudD0idmlzdWFsIHNjcm9sbCBk
b20iIC8+CisgIDxtZXRhIG5hbWU9ImFzc2VydCIgY29udGVudD0iU2V0dGluZyB6b29tIGdyZWF0
ZXIgdGhhbiBtYXgtem9vbSB3aWxsIHNldCB6b29tIHRvIG1heC16b29tLiIvPgorICA8c2NyaXB0
IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIiB0eXBlPSJ0ZXh0L2phdmFz
Y3JpcHQiIC8+CisgIDxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3Ny
ZXBvcnQuanMiIHR5cGU9InRleHQvamF2YXNjcmlwdCIgLz4KKyAgPHN0eWxlIHR5cGU9InRleHQv
Y3NzIj48IVtDREFUQVsKKyAgIGJvZHkgeyBtYXJnaW46IDA7IH0KKyAgIGh0bWwsIGJvZHksICN0
ZXN0IHsgd2lkdGg6IDEwMCU7IGhlaWdodDogMTAwJTsgfQorICAgI2xvZyB7IHBhZGRpbmc6IDFl
bTsgZGlzcGxheTogbm9uZTsgfQorICAgLyogUmVzZXQgdmlld3BvcnQgdmFsdWVzIHRvIGluaXRp
YWwgdmFsdWVzIHRvIGlnbm9yZSBVQSBzdHlsZXNoZWV0LiAqLworICAgQC13ZWJraXQtdmlld3Bv
cnQgeworICAgIHdpZHRoOiBhdXRvOworICAgIGhlaWdodDogYXV0bzsKKyAgICB6b29tOiBhdXRv
OworICAgIG1pbi16b29tOiBhdXRvOworICAgIG1heC16b29tOiBhdXRvOworICAgIHVzZXItem9v
bTogem9vbTsKKyAgICBvcmllbnRhdGlvbjogYXV0bzsKKyAgICByZXNvbHV0aW9uOiBhdXRvOwor
ICAgfQorICBdXT48L3N0eWxlPgorICA8c3R5bGUgdHlwZT0idGV4dC9jc3MiPjwhW0NEQVRBWwor
ICAgLyogQ1NTIGZvciB0aGUgdGVzdCBiZWxvdy4gKi8KKyAgIEAtd2Via2l0LXZpZXdwb3J0IHsg
bWF4LXpvb206IDUwJTsgem9vbTogMTUwJSB9CisgICAvKiBTZXQgcm9vdCBlbGVtZW50IGZvbnQt
c2l6ZSB0byBzb21ldGhpbmcgZGlmZmVyZW50IGZyb20gdGhlIGluaXRpYWwKKyAgICAgIGZvbnQt
c2l6ZSB0byBtYWtlIHN1cmUgJ3JlbScgYW5kICdlbScgZm9yIEB2aWV3cG9ydCBpcyBiYXNlZCBv
biB0aGUKKyAgICAgIGluaXRpYWwgZm9udC1zaXplLCBub3QgdGhlIHJvb3QgZWxlbWVudCBmb250
LXNpemUuICovCisgICBodG1sIHsgZm9udC1zaXplOiAycmVtOyB9CisgICBib2R5IHsgZm9udC1z
aXplOiAwLjVyZW07IH0KKyAgXV0+PC9zdHlsZT4KKyAgPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFz
Y3JpcHQiPjwhW0NEQVRBWworICAgdmFyIHRlc3QgPSBhc3luY190ZXN0KCJDU1MgVGVzdDogQHZp
ZXdwb3J0IGNvbnN0cmFpbmVkIC0gem9vbSBncmVhdGVyIHRoYW4gbWF4LXpvb20uIik7CisgICB3
aW5kb3cub25sb2FkID0gZnVuY3Rpb24oKXsKKworICAgIHZhciB0ZXN0U3R5bGVTaGVldCA9IGRv
Y3VtZW50LnN0eWxlU2hlZXRzLml0ZW0oMSk7CisKKyAgICAvKiBEaXNhYmxlIHRoZSBzdHlsZXNo
ZWV0IHRoYXQgY29udGFpbnMgdGhlIEB2aWV3cG9ydCB0byB0ZXN0LiAqLworICAgIHRlc3RTdHls
ZVNoZWV0LmRpc2FibGVkID0gdHJ1ZTsKKworICAgIC8qIEluaXRpYWxpemUgYW4gb2JqZWN0IHRv
IHN0b3JlIHZpZXdwb3J0IHZhbHVlcyB0byBiZSB1c2VkIGJ5IHRoZSB0ZXN0CisgICAgICAgYXNz
ZXJ0cy4gKi8KKyAgICB2YXIgdmlld3BvcnQgPSBuZXcgT2JqZWN0KCk7CisKKyAgICAvKiBBbiBl
bGVtZW50IHdpdGggdGhlIHNhbWUgc2l6ZSBhcyB0aGUgaW5pdGlhbCBjb250YWluaW5nIGJsb2Nr
LiAqLworICAgIHZhciB0ZXN0RWxtID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRlc3QiKTsK
KworICAgIC8qIFJldHJpZXZlIHRoZSBpbml0aWFsIHZpZXdwb3J0IHZhbHVlcyBiZWZvcmUgYXBw
bHlpbmcgdGhlIEB2aWV3cG9ydCB0bworICAgICAgIHRlc3QuICovCisgICAgdmlld3BvcnQuaW5p
dGlhbFdpZHRoID0gdGVzdEVsbS5vZmZzZXRXaWR0aDsKKyAgICB2aWV3cG9ydC5pbml0aWFsSGVp
Z2h0ID0gdGVzdEVsbS5vZmZzZXRIZWlnaHQ7CisgICAgdmlld3BvcnQuZm9udFNpemUgPSBwYXJz
ZUludChnZXRDb21wdXRlZFN0eWxlKHRlc3RFbG0sICIiKS5mb250U2l6ZSk7CisKKyAgICAvKiBF
bmFibGUgdGhlIHN0eWxlc2hlZXQgdGhhdCBjb250YWlucyB0aGUgQHZpZXdwb3J0IHRvIHRlc3Qu
ICovCisgICAgdGVzdFN0eWxlU2hlZXQuZGlzYWJsZWQgPSBmYWxzZTsKKworICAgIC8qIFJldHJp
ZXZlIHRoZSBhY3R1YWwgdmlld3BvcnQgdmFsdWVzIGZvciB0aGUgdGVzdC4gKi8KKyAgICB2aWV3
cG9ydC5hY3R1YWxXaWR0aCA9IHRlc3RFbG0ub2Zmc2V0V2lkdGg7CisgICAgdmlld3BvcnQuYWN0
dWFsSGVpZ2h0ID0gdGVzdEVsbS5vZmZzZXRIZWlnaHQ7CisgICAgdmlld3BvcnQuem9vbSA9IHZp
ZXdwb3J0LmluaXRpYWxXaWR0aCAvIHdpbmRvdy5pbm5lcldpZHRoOworCisgICAgLyogQ2hlY2sg
dmlld3BvcnQgdmFsdWVzLiAqLworICAgIHRlc3Quc3RlcChmdW5jdGlvbigpeworICAgICAgICBh
c3NlcnRfZXF1YWxzKHZpZXdwb3J0LmFjdHVhbFdpZHRoLCAyKnZpZXdwb3J0LmluaXRpYWxXaWR0
aCk7CisgICAgfSk7CisKKyAgICAvKiBGaW5pc2hlZC4gU2hvdyB0aGUgcmVzdWx0cy4gKi8KKyAg
ICB0ZXN0LmRvbmUoKTsKKyAgICB0ZXN0U3R5bGVTaGVldC5kaXNhYmxlZCA9IHRydWU7CisgICAg
ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImxvZyIpLnN0eWxlLmRpc3BsYXkgPSAiYmxvY2siOwor
ICAgfQorICBdXT48L3NjcmlwdD4KKyA8L2hlYWQ+CisgPGJvZHk+CisgIDxkaXYgaWQ9InRlc3Qi
PgorICAgPGRpdiBpZD0ibG9nIj48L2Rpdj4KKyAgPC9kaXY+CisgPC9ib2R5PgorPC9odG1sPgpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvY3NzMy9kZXZpY2UtYWRhcHQvb3BlcmEvY29uc3RyYWlu
LTAxNS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9jc3MzL2RldmljZS1hZGFwdC9vcGVyYS9j
b25zdHJhaW4tMDE1LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wMzI2OWUyOGQ2NWRlNjg1MWZm
ZTQxNWZkMDc1MmExMDdhM2VkMmExCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvY3Nz
My9kZXZpY2UtYWRhcHQvb3BlcmEvY29uc3RyYWluLTAxNS1leHBlY3RlZC50eHQKQEAgLTAsMCAr
MSwzIEBACisKK1BBU1MgQ1NTIFRlc3Q6IEB2aWV3cG9ydCBjb25zdHJhaW5lZCAtIHpvb20gbGVz
cyB0aGFuIG1pbi16b29tLiAKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvY3NzMy9kZXZpY2Ut
YWRhcHQvb3BlcmEvY29uc3RyYWluLTAxNS54aHRtbCBiL0xheW91dFRlc3RzL2NzczMvZGV2aWNl
LWFkYXB0L29wZXJhL2NvbnN0cmFpbi0wMTUueGh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNjEzYjFkYzM4MGFl
M2Q1NGJjMTRmYmE2NmNjMzljNTQwOTU5YWEwNwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL2NzczMvZGV2aWNlLWFkYXB0L29wZXJhL2NvbnN0cmFpbi0wMTUueGh0bWwKQEAgLTAsMCAr
MSw4NCBAQAorPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KKzwhRE9DVFlQ
RSBodG1sIFBVQkxJQyAiLS8vVzNDLy9EVEQgWEhUTUwgMS4wIFN0cmljdC8vRU4iICJodHRwOi8v
d3d3LnczLm9yZy9UUi94aHRtbDEvRFREL3hodG1sMS1zdHJpY3QuZHRkIj4KKzxodG1sIHhtbG5z
PSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sIj4KKyA8aGVhZD4KKyAgPHRpdGxlPkNTUyBU
ZXN0OiBAdmlld3BvcnQgY29uc3RyYWluZWQgLSB6b29tIGxlc3MgdGhhbiBtaW4tem9vbS48L3Rp
dGxlPgorICA8bGluayByZWw9ImF1dGhvciIgdGl0bGU9IlJ1bmUgTGlsbGVzdmVlbiIgaHJlZj0i
bWFpbHRvOnJ1bmVAb3BlcmEuY29tIi8+CisgIDxsaW5rIHJlbD0iaGVscCIgaHJlZj0iaHR0cDov
L3d3dy53My5vcmcvVFIvY3NzLWRldmljZS1hZGFwdC8jY29uc3RyYWluaW5nLXByb2NlZHVyZSIv
PgorICA8bWV0YSBuYW1lPSJmbGFncyIgY29udGVudD0idmlzdWFsIHNjcm9sbCBkb20iIC8+Cisg
IDxtZXRhIG5hbWU9ImFzc2VydCIgY29udGVudD0iU2V0dGluZyB6b29tIGxlc3MgdGhhbiBtaW4t
em9vbSB3aWxsIHNldCB6b29tIHRvIG1pbi16b29tLiIvPgorICA8c2NyaXB0IHNyYz0iLi4vLi4v
Li4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIC8+Cisg
IDxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiIHR5
cGU9InRleHQvamF2YXNjcmlwdCIgLz4KKyAgPHN0eWxlIHR5cGU9InRleHQvY3NzIj48IVtDREFU
QVsKKyAgIGJvZHkgeyBtYXJnaW46IDA7IH0KKyAgIGh0bWwsIGJvZHksICN0ZXN0IHsgd2lkdGg6
IDEwMCU7IGhlaWdodDogMTAwJTsgfQorICAgI2xvZyB7IHBhZGRpbmc6IDFlbTsgZGlzcGxheTog
bm9uZTsgfQorICAgLyogUmVzZXQgdmlld3BvcnQgdmFsdWVzIHRvIGluaXRpYWwgdmFsdWVzIHRv
IGlnbm9yZSBVQSBzdHlsZXNoZWV0LiAqLworICAgQC13ZWJraXQtdmlld3BvcnQgeworICAgIHdp
ZHRoOiBhdXRvOworICAgIGhlaWdodDogYXV0bzsKKyAgICB6b29tOiBhdXRvOworICAgIG1pbi16
b29tOiBhdXRvOworICAgIG1heC16b29tOiBhdXRvOworICAgIHVzZXItem9vbTogem9vbTsKKyAg
ICBvcmllbnRhdGlvbjogYXV0bzsKKyAgICByZXNvbHV0aW9uOiBhdXRvOworICAgfQorICBdXT48
L3N0eWxlPgorICA8c3R5bGUgdHlwZT0idGV4dC9jc3MiPjwhW0NEQVRBWworICAgLyogQ1NTIGZv
ciB0aGUgdGVzdCBiZWxvdy4gKi8KKyAgIEAtd2Via2l0LXZpZXdwb3J0IHsgbWluLXpvb206IDIw
MCU7IHpvb206IDUwJSB9CisgICAvKiBTZXQgcm9vdCBlbGVtZW50IGZvbnQtc2l6ZSB0byBzb21l
dGhpbmcgZGlmZmVyZW50IGZyb20gdGhlIGluaXRpYWwKKyAgICAgIGZvbnQtc2l6ZSB0byBtYWtl
IHN1cmUgJ3JlbScgYW5kICdlbScgZm9yIEB2aWV3cG9ydCBpcyBiYXNlZCBvbiB0aGUKKyAgICAg
IGluaXRpYWwgZm9udC1zaXplLCBub3QgdGhlIHJvb3QgZWxlbWVudCBmb250LXNpemUuICovCisg
ICBodG1sIHsgZm9udC1zaXplOiAycmVtOyB9CisgICBib2R5IHsgZm9udC1zaXplOiAwLjVyZW07
IH0KKyAgXV0+PC9zdHlsZT4KKyAgPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPjwhW0NE
QVRBWworICAgdmFyIHRlc3QgPSBhc3luY190ZXN0KCJDU1MgVGVzdDogQHZpZXdwb3J0IGNvbnN0
cmFpbmVkIC0gem9vbSBsZXNzIHRoYW4gbWluLXpvb20uIik7CisgICB3aW5kb3cub25sb2FkID0g
ZnVuY3Rpb24oKXsKKworICAgIHZhciB0ZXN0U3R5bGVTaGVldCA9IGRvY3VtZW50LnN0eWxlU2hl
ZXRzLml0ZW0oMSk7CisKKyAgICAvKiBEaXNhYmxlIHRoZSBzdHlsZXNoZWV0IHRoYXQgY29udGFp
bnMgdGhlIEB2aWV3cG9ydCB0byB0ZXN0LiAqLworICAgIHRlc3RTdHlsZVNoZWV0LmRpc2FibGVk
ID0gdHJ1ZTsKKworICAgIC8qIEluaXRpYWxpemUgYW4gb2JqZWN0IHRvIHN0b3JlIHZpZXdwb3J0
IHZhbHVlcyB0byBiZSB1c2VkIGJ5IHRoZSB0ZXN0CisgICAgICAgYXNzZXJ0cy4gKi8KKyAgICB2
YXIgdmlld3BvcnQgPSBuZXcgT2JqZWN0KCk7CisKKyAgICAvKiBBbiBlbGVtZW50IHdpdGggdGhl
IHNhbWUgc2l6ZSBhcyB0aGUgaW5pdGlhbCBjb250YWluaW5nIGJsb2NrLiAqLworICAgIHZhciB0
ZXN0RWxtID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRlc3QiKTsKKworICAgIC8qIFJldHJp
ZXZlIHRoZSBpbml0aWFsIHZpZXdwb3J0IHZhbHVlcyBiZWZvcmUgYXBwbHlpbmcgdGhlIEB2aWV3
cG9ydCB0bworICAgICAgIHRlc3QuICovCisgICAgdmlld3BvcnQuaW5pdGlhbFdpZHRoID0gdGVz
dEVsbS5vZmZzZXRXaWR0aDsKKyAgICB2aWV3cG9ydC5pbml0aWFsSGVpZ2h0ID0gdGVzdEVsbS5v
ZmZzZXRIZWlnaHQ7CisgICAgdmlld3BvcnQuZm9udFNpemUgPSBwYXJzZUludChnZXRDb21wdXRl
ZFN0eWxlKHRlc3RFbG0sICIiKS5mb250U2l6ZSk7CisKKyAgICAvKiBFbmFibGUgdGhlIHN0eWxl
c2hlZXQgdGhhdCBjb250YWlucyB0aGUgQHZpZXdwb3J0IHRvIHRlc3QuICovCisgICAgdGVzdFN0
eWxlU2hlZXQuZGlzYWJsZWQgPSBmYWxzZTsKKworICAgIC8qIFJldHJpZXZlIHRoZSBhY3R1YWwg
dmlld3BvcnQgdmFsdWVzIGZvciB0aGUgdGVzdC4gKi8KKyAgICB2aWV3cG9ydC5hY3R1YWxXaWR0
aCA9IHRlc3RFbG0ub2Zmc2V0V2lkdGg7CisgICAgdmlld3BvcnQuYWN0dWFsSGVpZ2h0ID0gdGVz
dEVsbS5vZmZzZXRIZWlnaHQ7CisgICAgdmlld3BvcnQuem9vbSA9IHZpZXdwb3J0LmluaXRpYWxX
aWR0aCAvIHdpbmRvdy5pbm5lcldpZHRoOworCisgICAgLyogQ2hlY2sgdmlld3BvcnQgdmFsdWVz
LiAqLworICAgIHRlc3Quc3RlcChmdW5jdGlvbigpeworICAgICAgICBhc3NlcnRfZXF1YWxzKHZp
ZXdwb3J0LmFjdHVhbFdpZHRoLCBNYXRoLmZsb29yKHZpZXdwb3J0LmluaXRpYWxXaWR0aC8yKSk7
CisgICAgfSk7CisKKyAgICAvKiBGaW5pc2hlZC4gU2hvdyB0aGUgcmVzdWx0cy4gKi8KKyAgICB0
ZXN0LmRvbmUoKTsKKyAgICB0ZXN0U3R5bGVTaGVldC5kaXNhYmxlZCA9IHRydWU7CisgICAgZG9j
dW1lbnQuZ2V0RWxlbWVudEJ5SWQoImxvZyIpLnN0eWxlLmRpc3BsYXkgPSAiYmxvY2siOworICAg
fQorICBdXT48L3NjcmlwdD4KKyA8L2hlYWQ+CisgPGJvZHk+CisgIDxkaXYgaWQ9InRlc3QiPgor
ICAgPGRpdiBpZD0ibG9nIj48L2Rpdj4KKyAgPC9kaXY+CisgPC9ib2R5PgorPC9odG1sPgpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvY3NzMy9kZXZpY2UtYWRhcHQvb3BlcmEvY29uc3RyYWluLTAx
Ni1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9jc3MzL2RldmljZS1hZGFwdC9vcGVyYS9jb25z
dHJhaW4tMDE2LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hNDFjNGI4MTE5MDI4YTI1MDk4ODA0
M2I0YjExNzNiM2EzZGViNDgwCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvY3NzMy9k
ZXZpY2UtYWRhcHQvb3BlcmEvY29uc3RyYWluLTAxNi1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwz
IEBACisKK1BBU1MgQ1NTIFRlc3Q6IEB2aWV3cG9ydCBjb25zdHJhaW5lZCAtIGhlaWdodCBkZWR1
Y2VkIGZyb20gd2lkdGggYW5kIGFzcGVjdCByYXRpby4gCisKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2NzczMvZGV2aWNlLWFkYXB0L29wZXJhL2NvbnN0cmFpbi0wMTYueGh0bWwgYi9MYXlvdXRU
ZXN0cy9jc3MzL2RldmljZS1hZGFwdC9vcGVyYS9jb25zdHJhaW4tMDE2LnhodG1sCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjdmNTIzOTYwYjg3YjU3OThiMWFiNGUyZjdlYjM1NTJkOWE3ZjFhZWYKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy9jc3MzL2RldmljZS1hZGFwdC9vcGVyYS9jb25zdHJhaW4tMDE2
LnhodG1sCkBAIC0wLDAgKzEsODQgQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVU
Ri04Ij8+Cis8IURPQ1RZUEUgaHRtbCBQVUJMSUMgIi0vL1czQy8vRFREIFhIVE1MIDEuMCBTdHJp
Y3QvL0VOIiAiaHR0cDovL3d3dy53My5vcmcvVFIveGh0bWwxL0RURC94aHRtbDEtc3RyaWN0LmR0
ZCI+Cis8aHRtbCB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCI+CisgPGhlYWQ+
CisgIDx0aXRsZT5DU1MgVGVzdDogQHZpZXdwb3J0IGNvbnN0cmFpbmVkIC0gaGVpZ2h0IGRlZHVj
ZWQgZnJvbSB3aWR0aCBhbmQgYXNwZWN0IHJhdGlvLjwvdGl0bGU+CisgIDxsaW5rIHJlbD0iYXV0
aG9yIiB0aXRsZT0iUnVuZSBMaWxsZXN2ZWVuIiBocmVmPSJtYWlsdG86cnVuZUBvcGVyYS5jb20i
Lz4KKyAgPGxpbmsgcmVsPSJoZWxwIiBocmVmPSJodHRwOi8vd3d3LnczLm9yZy9UUi9jc3MtZGV2
aWNlLWFkYXB0LyNjb25zdHJhaW5pbmctcHJvY2VkdXJlIi8+CisgIDxtZXRhIG5hbWU9ImZsYWdz
IiBjb250ZW50PSJ2aXN1YWwgc2Nyb2xsIGRvbSIgLz4KKyAgPG1ldGEgbmFtZT0iYXNzZXJ0IiBj
b250ZW50PSJTZXR0aW5nIHdpZHRoIGFuZCBub3QgaGVpZ2h0IHdpbGwgc2V0IGEgaGVpZ2h0IHRo
YXQgbWFrZXMgdGhlIGFjdHVhbCB3aWR0aC9oZWlnaHQgYW5kIGluaXRpYWwgd2lkdGgvaGVpZ2h0
IGhhdmUgdGhlIHNhbWUgYXNwZWN0IHJhdGlvLiIvPgorICA8c2NyaXB0IHNyYz0iLi4vLi4vLi4v
cmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIC8+CisgIDxz
Y3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiIHR5cGU9
InRleHQvamF2YXNjcmlwdCIgLz4KKyAgPHN0eWxlIHR5cGU9InRleHQvY3NzIj48IVtDREFUQVsK
KyAgIGJvZHkgeyBtYXJnaW46IDA7IH0KKyAgIGh0bWwsIGJvZHksICN0ZXN0IHsgd2lkdGg6IDEw
MCU7IGhlaWdodDogMTAwJTsgfQorICAgI2xvZyB7IHBhZGRpbmc6IDFlbTsgZGlzcGxheTogbm9u
ZTsgfQorICAgLyogUmVzZXQgdmlld3BvcnQgdmFsdWVzIHRvIGluaXRpYWwgdmFsdWVzIHRvIGln
bm9yZSBVQSBzdHlsZXNoZWV0LiAqLworICAgQC13ZWJraXQtdmlld3BvcnQgeworICAgIHdpZHRo
OiBhdXRvOworICAgIGhlaWdodDogYXV0bzsKKyAgICB6b29tOiBhdXRvOworICAgIG1pbi16b29t
OiBhdXRvOworICAgIG1heC16b29tOiBhdXRvOworICAgIHVzZXItem9vbTogem9vbTsKKyAgICBv
cmllbnRhdGlvbjogYXV0bzsKKyAgICByZXNvbHV0aW9uOiBhdXRvOworICAgfQorICBdXT48L3N0
eWxlPgorICA8c3R5bGUgdHlwZT0idGV4dC9jc3MiPjwhW0NEQVRBWworICAgLyogQ1NTIGZvciB0
aGUgdGVzdCBiZWxvdy4gKi8KKyAgIEAtd2Via2l0LXZpZXdwb3J0IHsgd2lkdGg6IDEwMDAwcHgg
fQorICAgLyogU2V0IHJvb3QgZWxlbWVudCBmb250LXNpemUgdG8gc29tZXRoaW5nIGRpZmZlcmVu
dCBmcm9tIHRoZSBpbml0aWFsCisgICAgICBmb250LXNpemUgdG8gbWFrZSBzdXJlICdyZW0nIGFu
ZCAnZW0nIGZvciBAdmlld3BvcnQgaXMgYmFzZWQgb24gdGhlCisgICAgICBpbml0aWFsIGZvbnQt
c2l6ZSwgbm90IHRoZSByb290IGVsZW1lbnQgZm9udC1zaXplLiAqLworICAgaHRtbCB7IGZvbnQt
c2l6ZTogMnJlbTsgfQorICAgYm9keSB7IGZvbnQtc2l6ZTogMC41cmVtOyB9CisgIF1dPjwvc3R5
bGU+CisgIDxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij48IVtDREFUQVsKKyAgIHZhciB0
ZXN0ID0gYXN5bmNfdGVzdCgiQ1NTIFRlc3Q6IEB2aWV3cG9ydCBjb25zdHJhaW5lZCAtIGhlaWdo
dCBkZWR1Y2VkIGZyb20gd2lkdGggYW5kIGFzcGVjdCByYXRpby4iKTsKKyAgIHdpbmRvdy5vbmxv
YWQgPSBmdW5jdGlvbigpeworCisgICAgdmFyIHRlc3RTdHlsZVNoZWV0ID0gZG9jdW1lbnQuc3R5
bGVTaGVldHMuaXRlbSgxKTsKKworICAgIC8qIERpc2FibGUgdGhlIHN0eWxlc2hlZXQgdGhhdCBj
b250YWlucyB0aGUgQHZpZXdwb3J0IHRvIHRlc3QuICovCisgICAgdGVzdFN0eWxlU2hlZXQuZGlz
YWJsZWQgPSB0cnVlOworCisgICAgLyogSW5pdGlhbGl6ZSBhbiBvYmplY3QgdG8gc3RvcmUgdmll
d3BvcnQgdmFsdWVzIHRvIGJlIHVzZWQgYnkgdGhlIHRlc3QKKyAgICAgICBhc3NlcnRzLiAqLwor
ICAgIHZhciB2aWV3cG9ydCA9IG5ldyBPYmplY3QoKTsKKworICAgIC8qIEFuIGVsZW1lbnQgd2l0
aCB0aGUgc2FtZSBzaXplIGFzIHRoZSBpbml0aWFsIGNvbnRhaW5pbmcgYmxvY2suICovCisgICAg
dmFyIHRlc3RFbG0gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidGVzdCIpOworCisgICAgLyog
UmV0cmlldmUgdGhlIGluaXRpYWwgdmlld3BvcnQgdmFsdWVzIGJlZm9yZSBhcHBseWluZyB0aGUg
QHZpZXdwb3J0IHRvCisgICAgICAgdGVzdC4gKi8KKyAgICB2aWV3cG9ydC5pbml0aWFsV2lkdGgg
PSB0ZXN0RWxtLm9mZnNldFdpZHRoOworICAgIHZpZXdwb3J0LmluaXRpYWxIZWlnaHQgPSB0ZXN0
RWxtLm9mZnNldEhlaWdodDsKKyAgICB2aWV3cG9ydC5mb250U2l6ZSA9IHBhcnNlSW50KGdldENv
bXB1dGVkU3R5bGUodGVzdEVsbSwgIiIpLmZvbnRTaXplKTsKKworICAgIC8qIEVuYWJsZSB0aGUg
c3R5bGVzaGVldCB0aGF0IGNvbnRhaW5zIHRoZSBAdmlld3BvcnQgdG8gdGVzdC4gKi8KKyAgICB0
ZXN0U3R5bGVTaGVldC5kaXNhYmxlZCA9IGZhbHNlOworCisgICAgLyogUmV0cmlldmUgdGhlIGFj
dHVhbCB2aWV3cG9ydCB2YWx1ZXMgZm9yIHRoZSB0ZXN0LiAqLworICAgIHZpZXdwb3J0LmFjdHVh
bFdpZHRoID0gdGVzdEVsbS5vZmZzZXRXaWR0aDsKKyAgICB2aWV3cG9ydC5hY3R1YWxIZWlnaHQg
PSB0ZXN0RWxtLm9mZnNldEhlaWdodDsKKyAgICB2aWV3cG9ydC56b29tID0gdmlld3BvcnQuaW5p
dGlhbFdpZHRoIC8gd2luZG93LmlubmVyV2lkdGg7CisKKyAgICAvKiBDaGVjayB2aWV3cG9ydCB2
YWx1ZXMuICovCisgICAgdGVzdC5zdGVwKGZ1bmN0aW9uKCl7CisgICAgICAgIGFzc2VydF9lcXVh
bHModmlld3BvcnQuYWN0dWFsV2lkdGgsIDEwMDAwKTsgYXNzZXJ0X2VxdWFscyh2aWV3cG9ydC5h
Y3R1YWxIZWlnaHQsIE1hdGguZmxvb3IoMTAwMDAqdmlld3BvcnQuaW5pdGlhbEhlaWdodC92aWV3
cG9ydC5pbml0aWFsV2lkdGgpKTsKKyAgICB9KTsKKworICAgIC8qIEZpbmlzaGVkLiBTaG93IHRo
ZSByZXN1bHRzLiAqLworICAgIHRlc3QuZG9uZSgpOworICAgIHRlc3RTdHlsZVNoZWV0LmRpc2Fi
bGVkID0gdHJ1ZTsKKyAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgibG9nIikuc3R5bGUuZGlz
cGxheSA9ICJibG9jayI7CisgICB9CisgIF1dPjwvc2NyaXB0PgorIDwvaGVhZD4KKyA8Ym9keT4K
KyAgPGRpdiBpZD0idGVzdCI+CisgICA8ZGl2IGlkPSJsb2ciPjwvZGl2PgorICA8L2Rpdj4KKyA8
L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9jc3MzL2RldmljZS1hZGFw
dC9vcGVyYS9jb25zdHJhaW4tMDE3LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2NzczMvZGV2
aWNlLWFkYXB0L29wZXJhL2NvbnN0cmFpbi0wMTctZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjNm
NmQwOGY0ODY2ZjU2NzhjNGVlY2E1M2JjMTI2MzIwYjUwMzU0MDEKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy9jc3MzL2RldmljZS1hZGFwdC9vcGVyYS9jb25zdHJhaW4tMDE3LWV4cGVj
dGVkLnR4dApAQCAtMCwwICsxLDMgQEAKKworUEFTUyBDU1MgVGVzdDogQHZpZXdwb3J0IGNvbnN0
cmFpbmVkIC0gTGFyZ2Ugbm9uLWF1dG8gaGVpZ2h0IG5vdCBhZmZlY3Rpbmcgd2lkdGguIAorCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9jc3MzL2RldmljZS1hZGFwdC9vcGVyYS9jb25zdHJhaW4t
MDE3LnhodG1sIGIvTGF5b3V0VGVzdHMvY3NzMy9kZXZpY2UtYWRhcHQvb3BlcmEvY29uc3RyYWlu
LTAxNy54aHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43MjkwOTk1MDhjN2IzOWZjMjFiYjAzMjcyOGI0MWQ3OGYx
NmJlZTMwCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvY3NzMy9kZXZpY2UtYWRhcHQv
b3BlcmEvY29uc3RyYWluLTAxNy54aHRtbApAQCAtMCwwICsxLDg0IEBACis8P3htbCB2ZXJzaW9u
PSIxLjAiIGVuY29kaW5nPSJVVEYtOCI/PgorPCFET0NUWVBFIGh0bWwgUFVCTElDICItLy9XM0Mv
L0RURCBYSFRNTCAxLjAgU3RyaWN0Ly9FTiIgImh0dHA6Ly93d3cudzMub3JnL1RSL3hodG1sMS9E
VEQveGh0bWwxLXN0cmljdC5kdGQiPgorPGh0bWwgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzE5
OTkveGh0bWwiPgorIDxoZWFkPgorICA8dGl0bGU+Q1NTIFRlc3Q6IEB2aWV3cG9ydCBjb25zdHJh
aW5lZCAtIExhcmdlIG5vbi1hdXRvIGhlaWdodCBub3QgYWZmZWN0aW5nIHdpZHRoLjwvdGl0bGU+
CisgIDxsaW5rIHJlbD0iYXV0aG9yIiB0aXRsZT0iUnVuZSBMaWxsZXN2ZWVuIiBocmVmPSJtYWls
dG86cnVuZUBvcGVyYS5jb20iLz4KKyAgPGxpbmsgcmVsPSJoZWxwIiBocmVmPSJodHRwOi8vd3d3
LnczLm9yZy9UUi9jc3MtZGV2aWNlLWFkYXB0LyNjb25zdHJhaW5pbmctcHJvY2VkdXJlIi8+Cisg
IDxtZXRhIG5hbWU9ImZsYWdzIiBjb250ZW50PSJ2aXN1YWwgc2Nyb2xsIGRvbSIgLz4KKyAgPG1l
dGEgbmFtZT0iYXNzZXJ0IiBjb250ZW50PSJOb24tYXV0byBoZWlnaHQgZG9lcyBub3QgYWZmZWN0
IHdpZHRoIGlmIHpvb20gaXMgYXV0by4iLz4KKyAgPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291
cmNlcy90ZXN0aGFybmVzcy5qcyIgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiAvPgorICA8c2NyaXB0
IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIiB0eXBlPSJ0ZXh0
L2phdmFzY3JpcHQiIC8+CisgIDxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyI+PCFbQ0RBVEFbCisgICBi
b2R5IHsgbWFyZ2luOiAwOyB9CisgICBodG1sLCBib2R5LCAjdGVzdCB7IHdpZHRoOiAxMDAlOyBo
ZWlnaHQ6IDEwMCU7IH0KKyAgICNsb2cgeyBwYWRkaW5nOiAxZW07IGRpc3BsYXk6IG5vbmU7IH0K
KyAgIC8qIFJlc2V0IHZpZXdwb3J0IHZhbHVlcyB0byBpbml0aWFsIHZhbHVlcyB0byBpZ25vcmUg
VUEgc3R5bGVzaGVldC4gKi8KKyAgIEAtd2Via2l0LXZpZXdwb3J0IHsKKyAgICB3aWR0aDogYXV0
bzsKKyAgICBoZWlnaHQ6IGF1dG87CisgICAgem9vbTogYXV0bzsKKyAgICBtaW4tem9vbTogYXV0
bzsKKyAgICBtYXgtem9vbTogYXV0bzsKKyAgICB1c2VyLXpvb206IHpvb207CisgICAgb3JpZW50
YXRpb246IGF1dG87CisgICAgcmVzb2x1dGlvbjogYXV0bzsKKyAgIH0KKyAgXV0+PC9zdHlsZT4K
KyAgPHN0eWxlIHR5cGU9InRleHQvY3NzIj48IVtDREFUQVsKKyAgIC8qIENTUyBmb3IgdGhlIHRl
c3QgYmVsb3cuICovCisgICBALXdlYmtpdC12aWV3cG9ydCB7IGhlaWdodDogMTAwMDBweCB9Cisg
ICAvKiBTZXQgcm9vdCBlbGVtZW50IGZvbnQtc2l6ZSB0byBzb21ldGhpbmcgZGlmZmVyZW50IGZy
b20gdGhlIGluaXRpYWwKKyAgICAgIGZvbnQtc2l6ZSB0byBtYWtlIHN1cmUgJ3JlbScgYW5kICdl
bScgZm9yIEB2aWV3cG9ydCBpcyBiYXNlZCBvbiB0aGUKKyAgICAgIGluaXRpYWwgZm9udC1zaXpl
LCBub3QgdGhlIHJvb3QgZWxlbWVudCBmb250LXNpemUuICovCisgICBodG1sIHsgZm9udC1zaXpl
OiAycmVtOyB9CisgICBib2R5IHsgZm9udC1zaXplOiAwLjVyZW07IH0KKyAgXV0+PC9zdHlsZT4K
KyAgPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPjwhW0NEQVRBWworICAgdmFyIHRlc3Qg
PSBhc3luY190ZXN0KCJDU1MgVGVzdDogQHZpZXdwb3J0IGNvbnN0cmFpbmVkIC0gTGFyZ2Ugbm9u
LWF1dG8gaGVpZ2h0IG5vdCBhZmZlY3Rpbmcgd2lkdGguIik7CisgICB3aW5kb3cub25sb2FkID0g
ZnVuY3Rpb24oKXsKKworICAgIHZhciB0ZXN0U3R5bGVTaGVldCA9IGRvY3VtZW50LnN0eWxlU2hl
ZXRzLml0ZW0oMSk7CisKKyAgICAvKiBEaXNhYmxlIHRoZSBzdHlsZXNoZWV0IHRoYXQgY29udGFp
bnMgdGhlIEB2aWV3cG9ydCB0byB0ZXN0LiAqLworICAgIHRlc3RTdHlsZVNoZWV0LmRpc2FibGVk
ID0gdHJ1ZTsKKworICAgIC8qIEluaXRpYWxpemUgYW4gb2JqZWN0IHRvIHN0b3JlIHZpZXdwb3J0
IHZhbHVlcyB0byBiZSB1c2VkIGJ5IHRoZSB0ZXN0CisgICAgICAgYXNzZXJ0cy4gKi8KKyAgICB2
YXIgdmlld3BvcnQgPSBuZXcgT2JqZWN0KCk7CisKKyAgICAvKiBBbiBlbGVtZW50IHdpdGggdGhl
IHNhbWUgc2l6ZSBhcyB0aGUgaW5pdGlhbCBjb250YWluaW5nIGJsb2NrLiAqLworICAgIHZhciB0
ZXN0RWxtID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRlc3QiKTsKKworICAgIC8qIFJldHJp
ZXZlIHRoZSBpbml0aWFsIHZpZXdwb3J0IHZhbHVlcyBiZWZvcmUgYXBwbHlpbmcgdGhlIEB2aWV3
cG9ydCB0bworICAgICAgIHRlc3QuICovCisgICAgdmlld3BvcnQuaW5pdGlhbFdpZHRoID0gdGVz
dEVsbS5vZmZzZXRXaWR0aDsKKyAgICB2aWV3cG9ydC5pbml0aWFsSGVpZ2h0ID0gdGVzdEVsbS5v
ZmZzZXRIZWlnaHQ7CisgICAgdmlld3BvcnQuZm9udFNpemUgPSBwYXJzZUludChnZXRDb21wdXRl
ZFN0eWxlKHRlc3RFbG0sICIiKS5mb250U2l6ZSk7CisKKyAgICAvKiBFbmFibGUgdGhlIHN0eWxl
c2hlZXQgdGhhdCBjb250YWlucyB0aGUgQHZpZXdwb3J0IHRvIHRlc3QuICovCisgICAgdGVzdFN0
eWxlU2hlZXQuZGlzYWJsZWQgPSBmYWxzZTsKKworICAgIC8qIFJldHJpZXZlIHRoZSBhY3R1YWwg
dmlld3BvcnQgdmFsdWVzIGZvciB0aGUgdGVzdC4gKi8KKyAgICB2aWV3cG9ydC5hY3R1YWxXaWR0
aCA9IHRlc3RFbG0ub2Zmc2V0V2lkdGg7CisgICAgdmlld3BvcnQuYWN0dWFsSGVpZ2h0ID0gdGVz
dEVsbS5vZmZzZXRIZWlnaHQ7CisgICAgdmlld3BvcnQuem9vbSA9IHZpZXdwb3J0LmluaXRpYWxX
aWR0aCAvIHdpbmRvdy5pbm5lcldpZHRoOworCisgICAgLyogQ2hlY2sgdmlld3BvcnQgdmFsdWVz
LiAqLworICAgIHRlc3Quc3RlcChmdW5jdGlvbigpeworICAgICAgICBhc3NlcnRfZXF1YWxzKHZp
ZXdwb3J0LmFjdHVhbEhlaWdodCwgMTAwMDApOyBhc3NlcnRfZXF1YWxzKHZpZXdwb3J0LmFjdHVh
bFdpZHRoLCB2aWV3cG9ydC5pbml0aWFsV2lkdGgpOworICAgIH0pOworCisgICAgLyogRmluaXNo
ZWQuIFNob3cgdGhlIHJlc3VsdHMuICovCisgICAgdGVzdC5kb25lKCk7CisgICAgdGVzdFN0eWxl
U2hlZXQuZGlzYWJsZWQgPSB0cnVlOworICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJsb2ci
KS5zdHlsZS5kaXNwbGF5ID0gImJsb2NrIjsKKyAgIH0KKyAgXV0+PC9zY3JpcHQ+CisgPC9oZWFk
PgorIDxib2R5PgorICA8ZGl2IGlkPSJ0ZXN0Ij4KKyAgIDxkaXYgaWQ9ImxvZyI+PC9kaXY+Cisg
IDwvZGl2PgorIDwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2NzczMv
ZGV2aWNlLWFkYXB0L29wZXJhL2NvbnN0cmFpbi0wMjAtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVz
dHMvY3NzMy9kZXZpY2UtYWRhcHQvb3BlcmEvY29uc3RyYWluLTAyMC1leHBlY3RlZC50eHQKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uNWQzNWYyZjYxZTViZGJmNjRhNzJmNGE1MWQxY2Y1ZDZmODI1NjJmNwotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL2NzczMvZGV2aWNlLWFkYXB0L29wZXJhL2NvbnN0cmFp
bi0wMjAtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMyBAQAorCitQQVNTIENTUyBUZXN0OiBAdmll
d3BvcnQgY29uc3RyYWluZWQgLSBleHRlbmRlZCB3aWR0aCBhbmQgaGVpZ2h0IGZvciBub24tYXV0
byB6b29tLiAKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvY3NzMy9kZXZpY2UtYWRhcHQvb3Bl
cmEvY29uc3RyYWluLTAyMC54aHRtbCBiL0xheW91dFRlc3RzL2NzczMvZGV2aWNlLWFkYXB0L29w
ZXJhL2NvbnN0cmFpbi0wMjAueGh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYTQ5NzFhNzY3YjQ2YjM2MGM4NmVj
NTFjZDhkNTJlZjBiZmI1ZmNiNAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2NzczMv
ZGV2aWNlLWFkYXB0L29wZXJhL2NvbnN0cmFpbi0wMjAueGh0bWwKQEAgLTAsMCArMSw4NCBAQAor
PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KKzwhRE9DVFlQRSBodG1sIFBV
QkxJQyAiLS8vVzNDLy9EVEQgWEhUTUwgMS4wIFN0cmljdC8vRU4iICJodHRwOi8vd3d3LnczLm9y
Zy9UUi94aHRtbDEvRFREL3hodG1sMS1zdHJpY3QuZHRkIj4KKzxodG1sIHhtbG5zPSJodHRwOi8v
d3d3LnczLm9yZy8xOTk5L3hodG1sIj4KKyA8aGVhZD4KKyAgPHRpdGxlPkNTUyBUZXN0OiBAdmll
d3BvcnQgY29uc3RyYWluZWQgLSBleHRlbmRlZCB3aWR0aCBhbmQgaGVpZ2h0IGZvciBub24tYXV0
byB6b29tLjwvdGl0bGU+CisgIDxsaW5rIHJlbD0iYXV0aG9yIiB0aXRsZT0iUnVuZSBMaWxsZXN2
ZWVuIiBocmVmPSJtYWlsdG86cnVuZUBvcGVyYS5jb20iLz4KKyAgPGxpbmsgcmVsPSJoZWxwIiBo
cmVmPSJodHRwOi8vd3d3LnczLm9yZy9UUi9jc3MtZGV2aWNlLWFkYXB0LyNjb25zdHJhaW5pbmct
cHJvY2VkdXJlIi8+CisgIDxtZXRhIG5hbWU9ImZsYWdzIiBjb250ZW50PSJ2aXN1YWwgc2Nyb2xs
IGRvbSIgLz4KKyAgPG1ldGEgbmFtZT0iYXNzZXJ0IiBjb250ZW50PSJXaGVuIHpvb20gaXMgbm9u
LWF1dG8sIGFuZCB0aGUgY29uc3RyYWluZWQgd2lkdGggZG9lcyBub3QgZmlsbCB0aGUgdmlld3Bv
cnQgZm9yIHRoZSBjb25zdHJhaW5lZCB6b29tIHZhbHVlLCB0aGUgd2lkdGggaXMgZXh0ZW5kZWQg
dG8gZmlsbCB0aGUgdmlld3BvcnQuIExpa2V3aXNlIGZvciBoZWlnaHQuIi8+CisgIDxzY3JpcHQg
c3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiIHR5cGU9InRleHQvamF2YXNj
cmlwdCIgLz4KKyAgPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzc3Jl
cG9ydC5qcyIgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiAvPgorICA8c3R5bGUgdHlwZT0idGV4dC9j
c3MiPjwhW0NEQVRBWworICAgYm9keSB7IG1hcmdpbjogMDsgfQorICAgaHRtbCwgYm9keSwgI3Rl
c3QgeyB3aWR0aDogMTAwJTsgaGVpZ2h0OiAxMDAlOyB9CisgICAjbG9nIHsgcGFkZGluZzogMWVt
OyBkaXNwbGF5OiBub25lOyB9CisgICAvKiBSZXNldCB2aWV3cG9ydCB2YWx1ZXMgdG8gaW5pdGlh
bCB2YWx1ZXMgdG8gaWdub3JlIFVBIHN0eWxlc2hlZXQuICovCisgICBALXdlYmtpdC12aWV3cG9y
dCB7CisgICAgd2lkdGg6IGF1dG87CisgICAgaGVpZ2h0OiBhdXRvOworICAgIHpvb206IGF1dG87
CisgICAgbWluLXpvb206IGF1dG87CisgICAgbWF4LXpvb206IGF1dG87CisgICAgdXNlci16b29t
OiB6b29tOworICAgIG9yaWVudGF0aW9uOiBhdXRvOworICAgIHJlc29sdXRpb246IGF1dG87Cisg
ICB9CisgIF1dPjwvc3R5bGU+CisgIDxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyI+PCFbQ0RBVEFbCisg
ICAvKiBDU1MgZm9yIHRoZSB0ZXN0IGJlbG93LiAqLworICAgQC13ZWJraXQtdmlld3BvcnQgeyB3
aWR0aDogMXB4OyBoZWlnaHQ6IDFweDsgem9vbTogNTAlIH0KKyAgIC8qIFNldCByb290IGVsZW1l
bnQgZm9udC1zaXplIHRvIHNvbWV0aGluZyBkaWZmZXJlbnQgZnJvbSB0aGUgaW5pdGlhbAorICAg
ICAgZm9udC1zaXplIHRvIG1ha2Ugc3VyZSAncmVtJyBhbmQgJ2VtJyBmb3IgQHZpZXdwb3J0IGlz
IGJhc2VkIG9uIHRoZQorICAgICAgaW5pdGlhbCBmb250LXNpemUsIG5vdCB0aGUgcm9vdCBlbGVt
ZW50IGZvbnQtc2l6ZS4gKi8KKyAgIGh0bWwgeyBmb250LXNpemU6IDJyZW07IH0KKyAgIGJvZHkg
eyBmb250LXNpemU6IDAuNXJlbTsgfQorICBdXT48L3N0eWxlPgorICA8c2NyaXB0IHR5cGU9InRl
eHQvamF2YXNjcmlwdCI+PCFbQ0RBVEFbCisgICB2YXIgdGVzdCA9IGFzeW5jX3Rlc3QoIkNTUyBU
ZXN0OiBAdmlld3BvcnQgY29uc3RyYWluZWQgLSBleHRlbmRlZCB3aWR0aCBhbmQgaGVpZ2h0IGZv
ciBub24tYXV0byB6b29tLiIpOworICAgd2luZG93Lm9ubG9hZCA9IGZ1bmN0aW9uKCl7CisKKyAg
ICB2YXIgdGVzdFN0eWxlU2hlZXQgPSBkb2N1bWVudC5zdHlsZVNoZWV0cy5pdGVtKDEpOworCisg
ICAgLyogRGlzYWJsZSB0aGUgc3R5bGVzaGVldCB0aGF0IGNvbnRhaW5zIHRoZSBAdmlld3BvcnQg
dG8gdGVzdC4gKi8KKyAgICB0ZXN0U3R5bGVTaGVldC5kaXNhYmxlZCA9IHRydWU7CisKKyAgICAv
KiBJbml0aWFsaXplIGFuIG9iamVjdCB0byBzdG9yZSB2aWV3cG9ydCB2YWx1ZXMgdG8gYmUgdXNl
ZCBieSB0aGUgdGVzdAorICAgICAgIGFzc2VydHMuICovCisgICAgdmFyIHZpZXdwb3J0ID0gbmV3
IE9iamVjdCgpOworCisgICAgLyogQW4gZWxlbWVudCB3aXRoIHRoZSBzYW1lIHNpemUgYXMgdGhl
IGluaXRpYWwgY29udGFpbmluZyBibG9jay4gKi8KKyAgICB2YXIgdGVzdEVsbSA9IGRvY3VtZW50
LmdldEVsZW1lbnRCeUlkKCJ0ZXN0Iik7CisKKyAgICAvKiBSZXRyaWV2ZSB0aGUgaW5pdGlhbCB2
aWV3cG9ydCB2YWx1ZXMgYmVmb3JlIGFwcGx5aW5nIHRoZSBAdmlld3BvcnQgdG8KKyAgICAgICB0
ZXN0LiAqLworICAgIHZpZXdwb3J0LmluaXRpYWxXaWR0aCA9IHRlc3RFbG0ub2Zmc2V0V2lkdGg7
CisgICAgdmlld3BvcnQuaW5pdGlhbEhlaWdodCA9IHRlc3RFbG0ub2Zmc2V0SGVpZ2h0OworICAg
IHZpZXdwb3J0LmZvbnRTaXplID0gcGFyc2VJbnQoZ2V0Q29tcHV0ZWRTdHlsZSh0ZXN0RWxtLCAi
IikuZm9udFNpemUpOworCisgICAgLyogRW5hYmxlIHRoZSBzdHlsZXNoZWV0IHRoYXQgY29udGFp
bnMgdGhlIEB2aWV3cG9ydCB0byB0ZXN0LiAqLworICAgIHRlc3RTdHlsZVNoZWV0LmRpc2FibGVk
ID0gZmFsc2U7CisKKyAgICAvKiBSZXRyaWV2ZSB0aGUgYWN0dWFsIHZpZXdwb3J0IHZhbHVlcyBm
b3IgdGhlIHRlc3QuICovCisgICAgdmlld3BvcnQuYWN0dWFsV2lkdGggPSB0ZXN0RWxtLm9mZnNl
dFdpZHRoOworICAgIHZpZXdwb3J0LmFjdHVhbEhlaWdodCA9IHRlc3RFbG0ub2Zmc2V0SGVpZ2h0
OworICAgIHZpZXdwb3J0Lnpvb20gPSB2aWV3cG9ydC5pbml0aWFsV2lkdGggLyB3aW5kb3cuaW5u
ZXJXaWR0aDsKKworICAgIC8qIENoZWNrIHZpZXdwb3J0IHZhbHVlcy4gKi8KKyAgICB0ZXN0LnN0
ZXAoZnVuY3Rpb24oKXsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyh2aWV3cG9ydC5hY3R1YWxXaWR0
aCwgMip2aWV3cG9ydC5pbml0aWFsV2lkdGgpOyBhc3NlcnRfYXBwcm94X2VxdWFscyh2aWV3cG9y
dC5hY3R1YWxIZWlnaHQsIDIqdmlld3BvcnQuaW5pdGlhbEhlaWdodCwgMSk7CisgICAgfSk7CisK
KyAgICAvKiBGaW5pc2hlZC4gU2hvdyB0aGUgcmVzdWx0cy4gKi8KKyAgICB0ZXN0LmRvbmUoKTsK
KyAgICB0ZXN0U3R5bGVTaGVldC5kaXNhYmxlZCA9IHRydWU7CisgICAgZG9jdW1lbnQuZ2V0RWxl
bWVudEJ5SWQoImxvZyIpLnN0eWxlLmRpc3BsYXkgPSAiYmxvY2siOworICAgfQorICBdXT48L3Nj
cmlwdD4KKyA8L2hlYWQ+CisgPGJvZHk+CisgIDxkaXYgaWQ9InRlc3QiPgorICAgPGRpdiBpZD0i
bG9nIj48L2Rpdj4KKyAgPC9kaXY+CisgPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvY3NzMy9kZXZpY2UtYWRhcHQvb3BlcmEvc3ludGF4LTAwMS1leHBlY3RlZC50eHQg
Yi9MYXlvdXRUZXN0cy9jc3MzL2RldmljZS1hZGFwdC9vcGVyYS9zeW50YXgtMDAxLWV4cGVjdGVk
LnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi5kZDA2OTA5YWRkMmQwZGIzMTRlNzcxMjMzMmQzYmQ5NDc5ZWMzNTk5
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvY3NzMy9kZXZpY2UtYWRhcHQvb3BlcmEv
c3ludGF4LTAwMS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwzIEBACisKK1BBU1MgQ1NTIFRlc3Q6
IEB2aWV3cG9ydCBzeW50YXggLSBpbnNpZGUgQG1lZGlhIAorCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9jc3MzL2RldmljZS1hZGFwdC9vcGVyYS9zeW50YXgtMDAxLnhodG1sIGIvTGF5b3V0VGVz
dHMvY3NzMy9kZXZpY2UtYWRhcHQvb3BlcmEvc3ludGF4LTAwMS54aHRtbApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4x
YjYyNmNiZDBiYzRhZTlmYmYxNWQ0ZmQwM2JkNGNkNmQxNTc2NDhhCi0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvY3NzMy9kZXZpY2UtYWRhcHQvb3BlcmEvc3ludGF4LTAwMS54aHRtbApA
QCAtMCwwICsxLDg0IEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCI/Pgor
PCFET0NUWVBFIGh0bWwgUFVCTElDICItLy9XM0MvL0RURCBYSFRNTCAxLjAgU3RyaWN0Ly9FTiIg
Imh0dHA6Ly93d3cudzMub3JnL1RSL3hodG1sMS9EVEQveGh0bWwxLXN0cmljdC5kdGQiPgorPGh0
bWwgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwiPgorIDxoZWFkPgorICA8dGl0
bGU+Q1NTIFRlc3Q6IEB2aWV3cG9ydCBzeW50YXggLSBpbnNpZGUgQG1lZGlhPC90aXRsZT4KKyAg
PGxpbmsgcmVsPSJhdXRob3IiIHRpdGxlPSJSdW5lIExpbGxlc3ZlZW4iIGhyZWY9Im1haWx0bzpy
dW5lQG9wZXJhLmNvbSIvPgorICA8bGluayByZWw9ImhlbHAiIGhyZWY9Imh0dHA6Ly93d3cudzMu
b3JnL1RSL2Nzcy1kZXZpY2UtYWRhcHQvI3N5bnRheCIvPgorICA8bWV0YSBuYW1lPSJmbGFncyIg
Y29udGVudD0idmlzdWFsIHNjcm9sbCBkb20iIC8+CisgIDxtZXRhIG5hbWU9ImFzc2VydCIgY29u
dGVudD0iQHZpZXdwb3J0IGlzIGFsbG93ZWQgaW5zaWRlIEBtZWRpYS4iLz4KKyAgPHNjcmlwdCBz
cmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyIgdHlwZT0idGV4dC9qYXZhc2Ny
aXB0IiAvPgorICA8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVw
b3J0LmpzIiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIC8+CisgIDxzdHlsZSB0eXBlPSJ0ZXh0L2Nz
cyI+PCFbQ0RBVEFbCisgICBib2R5IHsgbWFyZ2luOiAwOyB9CisgICBodG1sLCBib2R5LCAjdGVz
dCB7IHdpZHRoOiAxMDAlOyBoZWlnaHQ6IDEwMCU7IH0KKyAgICNsb2cgeyBwYWRkaW5nOiAxZW07
IGRpc3BsYXk6IG5vbmU7IH0KKyAgIC8qIFJlc2V0IHZpZXdwb3J0IHZhbHVlcyB0byBpbml0aWFs
IHZhbHVlcyB0byBpZ25vcmUgVUEgc3R5bGVzaGVldC4gKi8KKyAgIEAtd2Via2l0LXZpZXdwb3J0
IHsKKyAgICB3aWR0aDogYXV0bzsKKyAgICBoZWlnaHQ6IGF1dG87CisgICAgem9vbTogYXV0bzsK
KyAgICBtaW4tem9vbTogYXV0bzsKKyAgICBtYXgtem9vbTogYXV0bzsKKyAgICB1c2VyLXpvb206
IHpvb207CisgICAgb3JpZW50YXRpb246IGF1dG87CisgICAgcmVzb2x1dGlvbjogYXV0bzsKKyAg
IH0KKyAgXV0+PC9zdHlsZT4KKyAgPHN0eWxlIHR5cGU9InRleHQvY3NzIj48IVtDREFUQVsKKyAg
IC8qIENTUyBmb3IgdGhlIHRlc3QgYmVsb3cuICovCisgICBAbWVkaWEgYWxsIHsgQC13ZWJraXQt
dmlld3BvcnQgeyB3aWR0aDogNTAwcHg7IH0gfQorICAgLyogU2V0IHJvb3QgZWxlbWVudCBmb250
LXNpemUgdG8gc29tZXRoaW5nIGRpZmZlcmVudCBmcm9tIHRoZSBpbml0aWFsCisgICAgICBmb250
LXNpemUgdG8gbWFrZSBzdXJlICdyZW0nIGFuZCAnZW0nIGZvciBAdmlld3BvcnQgaXMgYmFzZWQg
b24gdGhlCisgICAgICBpbml0aWFsIGZvbnQtc2l6ZSwgbm90IHRoZSByb290IGVsZW1lbnQgZm9u
dC1zaXplLiAqLworICAgaHRtbCB7IGZvbnQtc2l6ZTogMnJlbTsgfQorICAgYm9keSB7IGZvbnQt
c2l6ZTogMC41cmVtOyB9CisgIF1dPjwvc3R5bGU+CisgIDxzY3JpcHQgdHlwZT0idGV4dC9qYXZh
c2NyaXB0Ij48IVtDREFUQVsKKyAgIHZhciB0ZXN0ID0gYXN5bmNfdGVzdCgiQ1NTIFRlc3Q6IEB2
aWV3cG9ydCBzeW50YXggLSBpbnNpZGUgQG1lZGlhIik7CisgICB3aW5kb3cub25sb2FkID0gZnVu
Y3Rpb24oKXsKKworICAgIHZhciB0ZXN0U3R5bGVTaGVldCA9IGRvY3VtZW50LnN0eWxlU2hlZXRz
Lml0ZW0oMSk7CisKKyAgICAvKiBEaXNhYmxlIHRoZSBzdHlsZXNoZWV0IHRoYXQgY29udGFpbnMg
dGhlIEB2aWV3cG9ydCB0byB0ZXN0LiAqLworICAgIHRlc3RTdHlsZVNoZWV0LmRpc2FibGVkID0g
dHJ1ZTsKKworICAgIC8qIEluaXRpYWxpemUgYW4gb2JqZWN0IHRvIHN0b3JlIHZpZXdwb3J0IHZh
bHVlcyB0byBiZSB1c2VkIGJ5IHRoZSB0ZXN0CisgICAgICAgYXNzZXJ0cy4gKi8KKyAgICB2YXIg
dmlld3BvcnQgPSBuZXcgT2JqZWN0KCk7CisKKyAgICAvKiBBbiBlbGVtZW50IHdpdGggdGhlIHNh
bWUgc2l6ZSBhcyB0aGUgaW5pdGlhbCBjb250YWluaW5nIGJsb2NrLiAqLworICAgIHZhciB0ZXN0
RWxtID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRlc3QiKTsKKworICAgIC8qIFJldHJpZXZl
IHRoZSBpbml0aWFsIHZpZXdwb3J0IHZhbHVlcyBiZWZvcmUgYXBwbHlpbmcgdGhlIEB2aWV3cG9y
dCB0bworICAgICAgIHRlc3QuICovCisgICAgdmlld3BvcnQuaW5pdGlhbFdpZHRoID0gdGVzdEVs
bS5vZmZzZXRXaWR0aDsKKyAgICB2aWV3cG9ydC5pbml0aWFsSGVpZ2h0ID0gdGVzdEVsbS5vZmZz
ZXRIZWlnaHQ7CisgICAgdmlld3BvcnQuZm9udFNpemUgPSBwYXJzZUludChnZXRDb21wdXRlZFN0
eWxlKHRlc3RFbG0sICIiKS5mb250U2l6ZSk7CisKKyAgICAvKiBFbmFibGUgdGhlIHN0eWxlc2hl
ZXQgdGhhdCBjb250YWlucyB0aGUgQHZpZXdwb3J0IHRvIHRlc3QuICovCisgICAgdGVzdFN0eWxl
U2hlZXQuZGlzYWJsZWQgPSBmYWxzZTsKKworICAgIC8qIFJldHJpZXZlIHRoZSBhY3R1YWwgdmll
d3BvcnQgdmFsdWVzIGZvciB0aGUgdGVzdC4gKi8KKyAgICB2aWV3cG9ydC5hY3R1YWxXaWR0aCA9
IHRlc3RFbG0ub2Zmc2V0V2lkdGg7CisgICAgdmlld3BvcnQuYWN0dWFsSGVpZ2h0ID0gdGVzdEVs
bS5vZmZzZXRIZWlnaHQ7CisgICAgdmlld3BvcnQuem9vbSA9IHZpZXdwb3J0LmluaXRpYWxXaWR0
aCAvIHdpbmRvdy5pbm5lcldpZHRoOworCisgICAgLyogQ2hlY2sgdmlld3BvcnQgdmFsdWVzLiAq
LworICAgIHRlc3Quc3RlcChmdW5jdGlvbigpeworICAgICAgICBhc3NlcnRfZXF1YWxzKHZpZXdw
b3J0LmFjdHVhbFdpZHRoLCA1MDApOworICAgIH0pOworCisgICAgLyogRmluaXNoZWQuIFNob3cg
dGhlIHJlc3VsdHMuICovCisgICAgdGVzdC5kb25lKCk7CisgICAgdGVzdFN0eWxlU2hlZXQuZGlz
YWJsZWQgPSB0cnVlOworICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJsb2ciKS5zdHlsZS5k
aXNwbGF5ID0gImJsb2NrIjsKKyAgIH0KKyAgXV0+PC9zY3JpcHQ+CisgPC9oZWFkPgorIDxib2R5
PgorICA8ZGl2IGlkPSJ0ZXN0Ij4KKyAgIDxkaXYgaWQ9ImxvZyI+PC9kaXY+CisgIDwvZGl2Pgor
IDwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2NzczMvZGV2aWNlLWFk
YXB0L29wZXJhL3N5bnRheC0wMDItZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvY3NzMy9kZXZp
Y2UtYWRhcHQvb3BlcmEvc3ludGF4LTAwMi1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYjM0ZmNi
ZDcxYjBkNDQ0ZWE3ZjQyYzdmNGYxNDNmOWJlM2QzMDgwNgotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL2NzczMvZGV2aWNlLWFkYXB0L29wZXJhL3N5bnRheC0wMDItZXhwZWN0ZWQudHh0
CkBAIC0wLDAgKzEsMyBAQAorCitQQVNTIENTUyBUZXN0OiBAdmlld3BvcnQgc3ludGF4IC0gdW5r
bm93biBkZXNjcmlwdG9yIAorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9jc3MzL2RldmljZS1h
ZGFwdC9vcGVyYS9zeW50YXgtMDAyLnhodG1sIGIvTGF5b3V0VGVzdHMvY3NzMy9kZXZpY2UtYWRh
cHQvb3BlcmEvc3ludGF4LTAwMi54aHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40ZTBkYzJiNmI2YzI1Nzk3Yzg1
ZGY3Y2ZlZGUwM2QwNjI0OGUzN2NmCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvY3Nz
My9kZXZpY2UtYWRhcHQvb3BlcmEvc3ludGF4LTAwMi54aHRtbApAQCAtMCwwICsxLDg0IEBACis8
P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCI/PgorPCFET0NUWVBFIGh0bWwgUFVC
TElDICItLy9XM0MvL0RURCBYSFRNTCAxLjAgU3RyaWN0Ly9FTiIgImh0dHA6Ly93d3cudzMub3Jn
L1RSL3hodG1sMS9EVEQveGh0bWwxLXN0cmljdC5kdGQiPgorPGh0bWwgeG1sbnM9Imh0dHA6Ly93
d3cudzMub3JnLzE5OTkveGh0bWwiPgorIDxoZWFkPgorICA8dGl0bGU+Q1NTIFRlc3Q6IEB2aWV3
cG9ydCBzeW50YXggLSB1bmtub3duIGRlc2NyaXB0b3I8L3RpdGxlPgorICA8bGluayByZWw9ImF1
dGhvciIgdGl0bGU9IlJ1bmUgTGlsbGVzdmVlbiIgaHJlZj0ibWFpbHRvOnJ1bmVAb3BlcmEuY29t
Ii8+CisgIDxsaW5rIHJlbD0iaGVscCIgaHJlZj0iaHR0cDovL3d3dy53My5vcmcvVFIvY3NzLWRl
dmljZS1hZGFwdC8jc3ludGF4Ii8+CisgIDxtZXRhIG5hbWU9ImZsYWdzIiBjb250ZW50PSJ2aXN1
YWwgc2Nyb2xsIGRvbSBpbnZhbGlkIiAvPgorICA8bWV0YSBuYW1lPSJhc3NlcnQiIGNvbnRlbnQ9
IkRlc2NyaXB0b3JzIGFmdGVyIHVua25vd24gZGVzY3JpcHRvciBkZWNsYXJhdGlvbiBpbiBAdmll
d3BvcnQgaXMgcmVjb2duaXplZC4iLz4KKyAgPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNl
cy90ZXN0aGFybmVzcy5qcyIgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiAvPgorICA8c2NyaXB0IHNy
Yz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIiB0eXBlPSJ0ZXh0L2ph
dmFzY3JpcHQiIC8+CisgIDxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyI+PCFbQ0RBVEFbCisgICBib2R5
IHsgbWFyZ2luOiAwOyB9CisgICBodG1sLCBib2R5LCAjdGVzdCB7IHdpZHRoOiAxMDAlOyBoZWln
aHQ6IDEwMCU7IH0KKyAgICNsb2cgeyBwYWRkaW5nOiAxZW07IGRpc3BsYXk6IG5vbmU7IH0KKyAg
IC8qIFJlc2V0IHZpZXdwb3J0IHZhbHVlcyB0byBpbml0aWFsIHZhbHVlcyB0byBpZ25vcmUgVUEg
c3R5bGVzaGVldC4gKi8KKyAgIEAtd2Via2l0LXZpZXdwb3J0IHsKKyAgICB3aWR0aDogYXV0bzsK
KyAgICBoZWlnaHQ6IGF1dG87CisgICAgem9vbTogYXV0bzsKKyAgICBtaW4tem9vbTogYXV0bzsK
KyAgICBtYXgtem9vbTogYXV0bzsKKyAgICB1c2VyLXpvb206IHpvb207CisgICAgb3JpZW50YXRp
b246IGF1dG87CisgICAgcmVzb2x1dGlvbjogYXV0bzsKKyAgIH0KKyAgXV0+PC9zdHlsZT4KKyAg
PHN0eWxlIHR5cGU9InRleHQvY3NzIj48IVtDREFUQVsKKyAgIC8qIENTUyBmb3IgdGhlIHRlc3Qg
YmVsb3cuICovCisgICBALXdlYmtpdC12aWV3cG9ydCB7IGE6IGI7IHdpZHRoOiA1MDBweCB9Cisg
ICAvKiBTZXQgcm9vdCBlbGVtZW50IGZvbnQtc2l6ZSB0byBzb21ldGhpbmcgZGlmZmVyZW50IGZy
b20gdGhlIGluaXRpYWwKKyAgICAgIGZvbnQtc2l6ZSB0byBtYWtlIHN1cmUgJ3JlbScgYW5kICdl
bScgZm9yIEB2aWV3cG9ydCBpcyBiYXNlZCBvbiB0aGUKKyAgICAgIGluaXRpYWwgZm9udC1zaXpl
LCBub3QgdGhlIHJvb3QgZWxlbWVudCBmb250LXNpemUuICovCisgICBodG1sIHsgZm9udC1zaXpl
OiAycmVtOyB9CisgICBib2R5IHsgZm9udC1zaXplOiAwLjVyZW07IH0KKyAgXV0+PC9zdHlsZT4K
KyAgPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPjwhW0NEQVRBWworICAgdmFyIHRlc3Qg
PSBhc3luY190ZXN0KCJDU1MgVGVzdDogQHZpZXdwb3J0IHN5bnRheCAtIHVua25vd24gZGVzY3Jp
cHRvciIpOworICAgd2luZG93Lm9ubG9hZCA9IGZ1bmN0aW9uKCl7CisKKyAgICB2YXIgdGVzdFN0
eWxlU2hlZXQgPSBkb2N1bWVudC5zdHlsZVNoZWV0cy5pdGVtKDEpOworCisgICAgLyogRGlzYWJs
ZSB0aGUgc3R5bGVzaGVldCB0aGF0IGNvbnRhaW5zIHRoZSBAdmlld3BvcnQgdG8gdGVzdC4gKi8K
KyAgICB0ZXN0U3R5bGVTaGVldC5kaXNhYmxlZCA9IHRydWU7CisKKyAgICAvKiBJbml0aWFsaXpl
IGFuIG9iamVjdCB0byBzdG9yZSB2aWV3cG9ydCB2YWx1ZXMgdG8gYmUgdXNlZCBieSB0aGUgdGVz
dAorICAgICAgIGFzc2VydHMuICovCisgICAgdmFyIHZpZXdwb3J0ID0gbmV3IE9iamVjdCgpOwor
CisgICAgLyogQW4gZWxlbWVudCB3aXRoIHRoZSBzYW1lIHNpemUgYXMgdGhlIGluaXRpYWwgY29u
dGFpbmluZyBibG9jay4gKi8KKyAgICB2YXIgdGVzdEVsbSA9IGRvY3VtZW50LmdldEVsZW1lbnRC
eUlkKCJ0ZXN0Iik7CisKKyAgICAvKiBSZXRyaWV2ZSB0aGUgaW5pdGlhbCB2aWV3cG9ydCB2YWx1
ZXMgYmVmb3JlIGFwcGx5aW5nIHRoZSBAdmlld3BvcnQgdG8KKyAgICAgICB0ZXN0LiAqLworICAg
IHZpZXdwb3J0LmluaXRpYWxXaWR0aCA9IHRlc3RFbG0ub2Zmc2V0V2lkdGg7CisgICAgdmlld3Bv
cnQuaW5pdGlhbEhlaWdodCA9IHRlc3RFbG0ub2Zmc2V0SGVpZ2h0OworICAgIHZpZXdwb3J0LmZv
bnRTaXplID0gcGFyc2VJbnQoZ2V0Q29tcHV0ZWRTdHlsZSh0ZXN0RWxtLCAiIikuZm9udFNpemUp
OworCisgICAgLyogRW5hYmxlIHRoZSBzdHlsZXNoZWV0IHRoYXQgY29udGFpbnMgdGhlIEB2aWV3
cG9ydCB0byB0ZXN0LiAqLworICAgIHRlc3RTdHlsZVNoZWV0LmRpc2FibGVkID0gZmFsc2U7CisK
KyAgICAvKiBSZXRyaWV2ZSB0aGUgYWN0dWFsIHZpZXdwb3J0IHZhbHVlcyBmb3IgdGhlIHRlc3Qu
ICovCisgICAgdmlld3BvcnQuYWN0dWFsV2lkdGggPSB0ZXN0RWxtLm9mZnNldFdpZHRoOworICAg
IHZpZXdwb3J0LmFjdHVhbEhlaWdodCA9IHRlc3RFbG0ub2Zmc2V0SGVpZ2h0OworICAgIHZpZXdw
b3J0Lnpvb20gPSB2aWV3cG9ydC5pbml0aWFsV2lkdGggLyB3aW5kb3cuaW5uZXJXaWR0aDsKKwor
ICAgIC8qIENoZWNrIHZpZXdwb3J0IHZhbHVlcy4gKi8KKyAgICB0ZXN0LnN0ZXAoZnVuY3Rpb24o
KXsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyh2aWV3cG9ydC5hY3R1YWxXaWR0aCwgNTAwKTsKKyAg
ICB9KTsKKworICAgIC8qIEZpbmlzaGVkLiBTaG93IHRoZSByZXN1bHRzLiAqLworICAgIHRlc3Qu
ZG9uZSgpOworICAgIHRlc3RTdHlsZVNoZWV0LmRpc2FibGVkID0gdHJ1ZTsKKyAgICBkb2N1bWVu
dC5nZXRFbGVtZW50QnlJZCgibG9nIikuc3R5bGUuZGlzcGxheSA9ICJibG9jayI7CisgICB9Cisg
IF1dPjwvc2NyaXB0PgorIDwvaGVhZD4KKyA8Ym9keT4KKyAgPGRpdiBpZD0idGVzdCI+CisgICA8
ZGl2IGlkPSJsb2ciPjwvZGl2PgorICA8L2Rpdj4KKyA8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9jc3MzL2RldmljZS1hZGFwdC9vcGVyYS9zeW50YXgtMDAzLWV4cGVj
dGVkLnR4dCBiL0xheW91dFRlc3RzL2NzczMvZGV2aWNlLWFkYXB0L29wZXJhL3N5bnRheC0wMDMt
ZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjRlOGUzNWU3MDUzMWQ2YWMxNTM3ZTg3YzVmMmY1Njk0
NWFjNzlkMDYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9jc3MzL2RldmljZS1hZGFw
dC9vcGVyYS9zeW50YXgtMDAzLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDMgQEAKKworUEFTUyBD
U1MgVGVzdDogQHZpZXdwb3J0IHN5bnRheCAtIGRlc2NyaXB0b3IgcmVjb3ZlcnkgCisKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2NzczMvZGV2aWNlLWFkYXB0L29wZXJhL3N5bnRheC0wMDMueGh0
bWwgYi9MYXlvdXRUZXN0cy9jc3MzL2RldmljZS1hZGFwdC9vcGVyYS9zeW50YXgtMDAzLnhodG1s
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLmY3ZjFkMmE3NTliMTYzYzI1YTliNzA4ZmQ4MTU0ZmU3ZjBkM2NhMTMKLS0t
IC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9jc3MzL2RldmljZS1hZGFwdC9vcGVyYS9zeW50
YXgtMDAzLnhodG1sCkBAIC0wLDAgKzEsODQgQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rp
bmc9IlVURi04Ij8+Cis8IURPQ1RZUEUgaHRtbCBQVUJMSUMgIi0vL1czQy8vRFREIFhIVE1MIDEu
MCBTdHJpY3QvL0VOIiAiaHR0cDovL3d3dy53My5vcmcvVFIveGh0bWwxL0RURC94aHRtbDEtc3Ry
aWN0LmR0ZCI+Cis8aHRtbCB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCI+Cisg
PGhlYWQ+CisgIDx0aXRsZT5DU1MgVGVzdDogQHZpZXdwb3J0IHN5bnRheCAtIGRlc2NyaXB0b3Ig
cmVjb3Zlcnk8L3RpdGxlPgorICA8bGluayByZWw9ImF1dGhvciIgdGl0bGU9IlJ1bmUgTGlsbGVz
dmVlbiIgaHJlZj0ibWFpbHRvOnJ1bmVAb3BlcmEuY29tIi8+CisgIDxsaW5rIHJlbD0iaGVscCIg
aHJlZj0iaHR0cDovL3d3dy53My5vcmcvVFIvY3NzLWRldmljZS1hZGFwdC8jc3ludGF4Ii8+Cisg
IDxtZXRhIG5hbWU9ImZsYWdzIiBjb250ZW50PSJ2aXN1YWwgc2Nyb2xsIGRvbSBpbnZhbGlkIiAv
PgorICA8bWV0YSBuYW1lPSJhc3NlcnQiIGNvbnRlbnQ9IkB2aWV3cG9ydCBzdXBwb3J0cyBmb3J3
YXJkIGNvbXBhdGlibGUgcGFyc2luZyBmb3IgZGVzY3JpcHRvcnMuIi8+CisgIDxzY3JpcHQgc3Jj
PSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiIHR5cGU9InRleHQvamF2YXNjcmlw
dCIgLz4KKyAgPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9y
dC5qcyIgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiAvPgorICA8c3R5bGUgdHlwZT0idGV4dC9jc3Mi
PjwhW0NEQVRBWworICAgYm9keSB7IG1hcmdpbjogMDsgfQorICAgaHRtbCwgYm9keSwgI3Rlc3Qg
eyB3aWR0aDogMTAwJTsgaGVpZ2h0OiAxMDAlOyB9CisgICAjbG9nIHsgcGFkZGluZzogMWVtOyBk
aXNwbGF5OiBub25lOyB9CisgICAvKiBSZXNldCB2aWV3cG9ydCB2YWx1ZXMgdG8gaW5pdGlhbCB2
YWx1ZXMgdG8gaWdub3JlIFVBIHN0eWxlc2hlZXQuICovCisgICBALXdlYmtpdC12aWV3cG9ydCB7
CisgICAgd2lkdGg6IGF1dG87CisgICAgaGVpZ2h0OiBhdXRvOworICAgIHpvb206IGF1dG87Cisg
ICAgbWluLXpvb206IGF1dG87CisgICAgbWF4LXpvb206IGF1dG87CisgICAgdXNlci16b29tOiB6
b29tOworICAgIG9yaWVudGF0aW9uOiBhdXRvOworICAgIHJlc29sdXRpb246IGF1dG87CisgICB9
CisgIF1dPjwvc3R5bGU+CisgIDxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyI+PCFbQ0RBVEFbCisgICAv
KiBDU1MgZm9yIHRoZSB0ZXN0IGJlbG93LiAqLworICAgQC13ZWJraXQtdmlld3BvcnQgeyB3aWR0
aDogNTAwcHg7IHdpZHRoOiAyMDBweCB4OiB7ICFpbXBvcnRhbnQgW119OyBoZWlnaHQ6IDcwMHB4
IH0KKyAgIC8qIFNldCByb290IGVsZW1lbnQgZm9udC1zaXplIHRvIHNvbWV0aGluZyBkaWZmZXJl
bnQgZnJvbSB0aGUgaW5pdGlhbAorICAgICAgZm9udC1zaXplIHRvIG1ha2Ugc3VyZSAncmVtJyBh
bmQgJ2VtJyBmb3IgQHZpZXdwb3J0IGlzIGJhc2VkIG9uIHRoZQorICAgICAgaW5pdGlhbCBmb250
LXNpemUsIG5vdCB0aGUgcm9vdCBlbGVtZW50IGZvbnQtc2l6ZS4gKi8KKyAgIGh0bWwgeyBmb250
LXNpemU6IDJyZW07IH0KKyAgIGJvZHkgeyBmb250LXNpemU6IDAuNXJlbTsgfQorICBdXT48L3N0
eWxlPgorICA8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+PCFbQ0RBVEFbCisgICB2YXIg
dGVzdCA9IGFzeW5jX3Rlc3QoIkNTUyBUZXN0OiBAdmlld3BvcnQgc3ludGF4IC0gZGVzY3JpcHRv
ciByZWNvdmVyeSIpOworICAgd2luZG93Lm9ubG9hZCA9IGZ1bmN0aW9uKCl7CisKKyAgICB2YXIg
dGVzdFN0eWxlU2hlZXQgPSBkb2N1bWVudC5zdHlsZVNoZWV0cy5pdGVtKDEpOworCisgICAgLyog
RGlzYWJsZSB0aGUgc3R5bGVzaGVldCB0aGF0IGNvbnRhaW5zIHRoZSBAdmlld3BvcnQgdG8gdGVz
dC4gKi8KKyAgICB0ZXN0U3R5bGVTaGVldC5kaXNhYmxlZCA9IHRydWU7CisKKyAgICAvKiBJbml0
aWFsaXplIGFuIG9iamVjdCB0byBzdG9yZSB2aWV3cG9ydCB2YWx1ZXMgdG8gYmUgdXNlZCBieSB0
aGUgdGVzdAorICAgICAgIGFzc2VydHMuICovCisgICAgdmFyIHZpZXdwb3J0ID0gbmV3IE9iamVj
dCgpOworCisgICAgLyogQW4gZWxlbWVudCB3aXRoIHRoZSBzYW1lIHNpemUgYXMgdGhlIGluaXRp
YWwgY29udGFpbmluZyBibG9jay4gKi8KKyAgICB2YXIgdGVzdEVsbSA9IGRvY3VtZW50LmdldEVs
ZW1lbnRCeUlkKCJ0ZXN0Iik7CisKKyAgICAvKiBSZXRyaWV2ZSB0aGUgaW5pdGlhbCB2aWV3cG9y
dCB2YWx1ZXMgYmVmb3JlIGFwcGx5aW5nIHRoZSBAdmlld3BvcnQgdG8KKyAgICAgICB0ZXN0LiAq
LworICAgIHZpZXdwb3J0LmluaXRpYWxXaWR0aCA9IHRlc3RFbG0ub2Zmc2V0V2lkdGg7CisgICAg
dmlld3BvcnQuaW5pdGlhbEhlaWdodCA9IHRlc3RFbG0ub2Zmc2V0SGVpZ2h0OworICAgIHZpZXdw
b3J0LmZvbnRTaXplID0gcGFyc2VJbnQoZ2V0Q29tcHV0ZWRTdHlsZSh0ZXN0RWxtLCAiIikuZm9u
dFNpemUpOworCisgICAgLyogRW5hYmxlIHRoZSBzdHlsZXNoZWV0IHRoYXQgY29udGFpbnMgdGhl
IEB2aWV3cG9ydCB0byB0ZXN0LiAqLworICAgIHRlc3RTdHlsZVNoZWV0LmRpc2FibGVkID0gZmFs
c2U7CisKKyAgICAvKiBSZXRyaWV2ZSB0aGUgYWN0dWFsIHZpZXdwb3J0IHZhbHVlcyBmb3IgdGhl
IHRlc3QuICovCisgICAgdmlld3BvcnQuYWN0dWFsV2lkdGggPSB0ZXN0RWxtLm9mZnNldFdpZHRo
OworICAgIHZpZXdwb3J0LmFjdHVhbEhlaWdodCA9IHRlc3RFbG0ub2Zmc2V0SGVpZ2h0OworICAg
IHZpZXdwb3J0Lnpvb20gPSB2aWV3cG9ydC5pbml0aWFsV2lkdGggLyB3aW5kb3cuaW5uZXJXaWR0
aDsKKworICAgIC8qIENoZWNrIHZpZXdwb3J0IHZhbHVlcy4gKi8KKyAgICB0ZXN0LnN0ZXAoZnVu
Y3Rpb24oKXsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyh2aWV3cG9ydC5hY3R1YWxXaWR0aCwgNTAw
KTsgYXNzZXJ0X2VxdWFscyh2aWV3cG9ydC5hY3R1YWxIZWlnaHQsIDcwMCk7CisgICAgfSk7CisK
KyAgICAvKiBGaW5pc2hlZC4gU2hvdyB0aGUgcmVzdWx0cy4gKi8KKyAgICB0ZXN0LmRvbmUoKTsK
KyAgICB0ZXN0U3R5bGVTaGVldC5kaXNhYmxlZCA9IHRydWU7CisgICAgZG9jdW1lbnQuZ2V0RWxl
bWVudEJ5SWQoImxvZyIpLnN0eWxlLmRpc3BsYXkgPSAiYmxvY2siOworICAgfQorICBdXT48L3Nj
cmlwdD4KKyA8L2hlYWQ+CisgPGJvZHk+CisgIDxkaXYgaWQ9InRlc3QiPgorICAgPGRpdiBpZD0i
bG9nIj48L2Rpdj4KKyAgPC9kaXY+CisgPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvcGxhdGZvcm0vZWZsL1Rlc3RFeHBlY3RhdGlvbnMgYi9MYXlvdXRUZXN0cy9wbGF0
Zm9ybS9lZmwvVGVzdEV4cGVjdGF0aW9ucwppbmRleCAwMjcxMjAwMzlhYzVmN2UxMjNmZjZiYTA2
NTEzMzZlYmY5ODhkNjQyLi5lNzU1NmViNjdjYzNkOTFiOTE2NTJkZTY3YWQ1NmQwNGYwNWZhNzJj
IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9lZmwvVGVzdEV4cGVjdGF0aW9ucwor
KysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9lZmwvVGVzdEV4cGVjdGF0aW9ucwpAQCAtMTIxMiw2
ICsxMjEyLDMxIEBAIHdlYmtpdC5vcmcvYi84NDgzNSBlZGl0aW5nL2V4ZWNDb21tYW5kLzQxMjgw
ODAtMi5odG1sIFsgRmFpbHVyZSBdCiB3ZWJraXQub3JnL2IvODQ4MzUgZWRpdGluZy9leGVjQ29t
bWFuZC9jb3B5LXdpdGhvdXQtc2VsZWN0aW9uLmh0bWwgWyBGYWlsdXJlIF0KIHdlYmtpdC5vcmcv
Yi84NDgzNSBlZGl0aW5nL2V4ZWNDb21tYW5kL2ZpbmRTdHJpbmctZGlhY3JpdGljYWxzLmh0bWwg
WyBGYWlsdXJlIF0KIAorIyBUaGVzZSB0ZXN0cyBhcmUgcGFzc2luZyB3aGVuIHJ1bm5pbmcgb24g
dGhlIE1pbmlCcm93c2VyLCBidXQgZmFpbGluZyBvbgorIyBXZWJLaXRUZXN0UnVubmVyIGJlY2F1
c2UgaXQgZG9lc24ndCBzdXBwb3J0IGZpeGVkIGxheW91dC4KK3dlYmtpdC5vcmcvYi8xMDI1MTcg
Y3NzMy9kZXZpY2UtYWRhcHQvb3BlcmEvY2FzY2FkaW5nLTAwMS54aHRtbCBbIEZhaWx1cmUgXQor
d2Via2l0Lm9yZy9iLzEwMjUxNyBjc3MzL2RldmljZS1hZGFwdC9vcGVyYS9jYXNjYWRpbmctMDAy
LnhodG1sIFsgRmFpbHVyZSBdCit3ZWJraXQub3JnL2IvMTAyNTE3IGNzczMvZGV2aWNlLWFkYXB0
L29wZXJhL2Nhc2NhZGluZy0wMDMueGh0bWwgWyBGYWlsdXJlIF0KK3dlYmtpdC5vcmcvYi8xMDI1
MTcgY3NzMy9kZXZpY2UtYWRhcHQvb3BlcmEvY2FzY2FkaW5nLTAwNC54aHRtbCBbIEZhaWx1cmUg
XQord2Via2l0Lm9yZy9iLzEwMjUxNyBjc3MzL2RldmljZS1hZGFwdC9vcGVyYS9jb25zdHJhaW4t
MDAxLnhodG1sIFsgRmFpbHVyZSBdCit3ZWJraXQub3JnL2IvMTAyNTE3IGNzczMvZGV2aWNlLWFk
YXB0L29wZXJhL2NvbnN0cmFpbi0wMDQueGh0bWwgWyBGYWlsdXJlIF0KK3dlYmtpdC5vcmcvYi8x
MDI1MTcgY3NzMy9kZXZpY2UtYWRhcHQvb3BlcmEvY29uc3RyYWluLTAwNS54aHRtbCBbIEZhaWx1
cmUgXQord2Via2l0Lm9yZy9iLzEwMjUxNyBjc3MzL2RldmljZS1hZGFwdC9vcGVyYS9jb25zdHJh
aW4tMDA2LnhodG1sIFsgRmFpbHVyZSBdCit3ZWJraXQub3JnL2IvMTAyNTE3IGNzczMvZGV2aWNl
LWFkYXB0L29wZXJhL2NvbnN0cmFpbi0wMDcueGh0bWwgWyBGYWlsdXJlIF0KK3dlYmtpdC5vcmcv
Yi8xMDI1MTcgY3NzMy9kZXZpY2UtYWRhcHQvb3BlcmEvY29uc3RyYWluLTAwOC54aHRtbCBbIEZh
aWx1cmUgXQord2Via2l0Lm9yZy9iLzEwMjUxNyBjc3MzL2RldmljZS1hZGFwdC9vcGVyYS9jb25z
dHJhaW4tMDA5LnhodG1sIFsgRmFpbHVyZSBdCit3ZWJraXQub3JnL2IvMTAyNTE3IGNzczMvZGV2
aWNlLWFkYXB0L29wZXJhL2NvbnN0cmFpbi0wMTAueGh0bWwgWyBGYWlsdXJlIF0KK3dlYmtpdC5v
cmcvYi8xMDI1MTcgY3NzMy9kZXZpY2UtYWRhcHQvb3BlcmEvY29uc3RyYWluLTAxMS54aHRtbCBb
IEZhaWx1cmUgXQord2Via2l0Lm9yZy9iLzEwMjUxNyBjc3MzL2RldmljZS1hZGFwdC9vcGVyYS9j
b25zdHJhaW4tMDEzLnhodG1sIFsgRmFpbHVyZSBdCit3ZWJraXQub3JnL2IvMTAyNTE3IGNzczMv
ZGV2aWNlLWFkYXB0L29wZXJhL2NvbnN0cmFpbi0wMTQueGh0bWwgWyBGYWlsdXJlIF0KK3dlYmtp
dC5vcmcvYi8xMDI1MTcgY3NzMy9kZXZpY2UtYWRhcHQvb3BlcmEvY29uc3RyYWluLTAxNS54aHRt
bCBbIEZhaWx1cmUgXQord2Via2l0Lm9yZy9iLzEwMjUxNyBjc3MzL2RldmljZS1hZGFwdC9vcGVy
YS9jb25zdHJhaW4tMDE2LnhodG1sIFsgRmFpbHVyZSBdCit3ZWJraXQub3JnL2IvMTAyNTE3IGNz
czMvZGV2aWNlLWFkYXB0L29wZXJhL2NvbnN0cmFpbi0wMTcueGh0bWwgWyBGYWlsdXJlIF0KK3dl
YmtpdC5vcmcvYi8xMDI1MTcgY3NzMy9kZXZpY2UtYWRhcHQvb3BlcmEvY29uc3RyYWluLTAyMC54
aHRtbCBbIEZhaWx1cmUgXQord2Via2l0Lm9yZy9iLzEwMjUxNyBjc3MzL2RldmljZS1hZGFwdC9v
cGVyYS9zeW50YXgtMDAxLnhodG1sIFsgRmFpbHVyZSBdCit3ZWJraXQub3JnL2IvMTAyNTE3IGNz
czMvZGV2aWNlLWFkYXB0L29wZXJhL3N5bnRheC0wMDIueGh0bWwgWyBGYWlsdXJlIF0KK3dlYmtp
dC5vcmcvYi8xMDI1MTcgY3NzMy9kZXZpY2UtYWRhcHQvb3BlcmEvc3ludGF4LTAwMy54aHRtbCBb
IEZhaWx1cmUgXQorCiAjIERSVCBkb2Vzbid0IGNoZWNrIGZvciBpc1ByaW50aW5nKCkuCiB3ZWJr
aXQub3JnL2IvODcyMjYgcHJpbnRpbmcvaWZyYW1lLXByaW50Lmh0bWwgWyBGYWlsdXJlIF0KIHdl
YmtpdC5vcmcvYi84NzIyNiBwcmludGluZy9tZWRpYS1xdWVyaWVzLXByaW50Lmh0bWwgWyBNaXNz
aW5nIF0K
</data>

          </attachment>
      

    </bug>

</bugzilla>