<?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>36693</bug_id>
          
          <creation_ts>2010-03-26 21:01:52 -0700</creation_ts>
          <short_desc>[Qt] Baseline accessibility support for QtWebKit</short_desc>
          <delta_ts>2012-12-19 07:14:52 -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>Accessibility</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>PC</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>DUPLICATE</resolution>
          <dup_id>77864</dup_id>
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>Qt, QtTriaged</keywords>
          <priority>P2</priority>
          <bug_severity>Enhancement</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Laszlo Gombos">laszlo.gombos</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>hausmann</cc>
    
    <cc>jturcotte</cc>
    
    <cc>kenneth</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>204923</commentid>
    <comment_count>0</comment_count>
    <who name="Laszlo Gombos">laszlo.gombos</who>
    <bug_when>2010-03-26 21:01:52 -0700</bug_when>
    <thetext>QtWebKit does not provide an implementation for AccessibilityObjectWrapper.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>204925</commentid>
    <comment_count>1</comment_count>
      <attachid>51808</attachid>
    <who name="Laszlo Gombos">laszlo.gombos</who>
    <bug_when>2010-03-26 21:07:23 -0700</bug_when>
    <thetext>Created attachment 51808
proposed patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>204930</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-03-26 21:14:17 -0700</bug_when>
    <thetext>Attachment 51808 did not pass style-queue:

Failed to run &quot;WebKitTools/Scripts/check-webkit-style&quot; exit_code: 1
WebCore/accessibility/qt/AccessibilityObjectWrapperQt.h:29:  Code inside a namespace should not be indented.  [whitespace/indent] [4]
Total errors found: 1 in 13 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>204934</commentid>
    <comment_count>3</comment_count>
      <attachid>51813</attachid>
    <who name="Laszlo Gombos">laszlo.gombos</who>
    <bug_when>2010-03-26 21:49:42 -0700</bug_when>
    <thetext>Created attachment 51813
previous patch + fix style</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>205244</commentid>
    <comment_count>4</comment_count>
      <attachid>51813</attachid>
    <who name="Simon Hausmann">hausmann</who>
    <bug_when>2010-03-28 14:21:27 -0700</bug_when>
    <thetext>Comment on attachment 51813
previous patch + fix style

&gt; @@ -566,6 +568,8 @@ protected:
&gt;      AtkObject* m_wrapper;
&gt;  #elif PLATFORM(CHROMIUM)
&gt;      RefPtr&lt;AccessibilityObjectWrapper&gt; m_wrapper;
&gt; +#elif PLATFORM(QT)
&gt; +    RefPtr&lt;AccessibilityObjectWrapper&gt; m_wrapper;
&gt;  #endif

Why not reuse the chromium preprocessor branch? :)


&gt; Index: WebCore/accessibility/qt/AccessibilityObjectQt.cpp
&gt; ===================================================================
&gt; --- WebCore/accessibility/qt/AccessibilityObjectQt.cpp	(revision 56652)
&gt; +++ WebCore/accessibility/qt/AccessibilityObjectQt.cpp	(working copy)
&gt; @@ -1,5 +1,6 @@
&gt;  /*
&gt;   * Copyright (C) 2008 Apple Ltd.
&gt; + * Copyright (C) 2010 Nokia Inc. All rights reserved.
&gt;   *
&gt;   * This library is free software; you can redistribute it and/or
&gt;   * modify it under the terms of the GNU Library General Public

It seems odd to me to add a copyright clase without adding any content that _is_ copyrightable.

&gt; Index: WebKitTools/DumpRenderTree/AccessibilityUIElement.cpp
&gt; ===================================================================
&gt; --- WebKitTools/DumpRenderTree/AccessibilityUIElement.cpp	(revision 56652)
&gt; +++ WebKitTools/DumpRenderTree/AccessibilityUIElement.cpp	(working copy)
&gt; @@ -28,6 +28,8 @@
&gt;  
&gt;  #include &lt;JavaScriptCore/JSRetainPtr.h&gt;
&gt;  
&gt; +#include &lt;limits.h&gt;
&gt; +
&gt;  // Static Functions
&gt;  

Why is this inclusion needed?


&gt; -HEADERS = $$BASEDIR/WorkQueue.h \
&gt; +HEADERS = \
&gt; +    $$BASEDIR/AccessibilityController.h \
&gt; +    $$BASEDIR/AccessibilityUIElement.h \
&gt; +    $$BASEDIR/WorkQueue.h \
&gt;      DumpRenderTreeQt.h \
&gt;      EventSenderQt.h \
&gt;      TextInputControllerQt.h \
&gt; @@ -29,8 +32,14 @@ HEADERS = $$BASEDIR/WorkQueue.h \
&gt;      LayoutTestControllerQt.h \
&gt;      GCControllerQt.h \
&gt;      testplugin.h
&gt; -SOURCES = ../../../JavaScriptCore/wtf/Assertions.cpp \
&gt; +
&gt; +SOURCES = \
&gt; +    ../../../JavaScriptCore/wtf/Assertions.cpp \
&gt; +    $$BASEDIR/AccessibilityController.cpp \
&gt; +    $$BASEDIR/AccessibilityUIElement.cpp \
&gt;      $$BASEDIR/WorkQueue.cpp \
&gt; +    AccessibilityControllerQt.cpp \
&gt; +    AccessibilityUIElementQt.cpp \

I doubt that this approach is going to work at all at this point, as the newly added files require the JSC C API to actually work in the DRT. However there is no JSContextRef available within the Qt DRT.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>205410</commentid>
    <comment_count>5</comment_count>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2010-03-29 05:38:01 -0700</bug_when>
    <thetext>Why all those FIXME&apos;s ? why not use notImplemented() ?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>794646</commentid>
    <comment_count>6</comment_count>
    <who name="Laszlo Gombos">laszlo.gombos</who>
    <bug_when>2012-12-19 07:14:52 -0800</bug_when>
    <thetext>

*** This bug has been marked as a duplicate of bug 77864 ***</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>51808</attachid>
            <date>2010-03-26 21:07:23 -0700</date>
            <delta_ts>2010-03-26 21:49:42 -0700</delta_ts>
            <desc>proposed patch</desc>
            <filename>36693.patch</filename>
            <type>text/plain</type>
            <size>28162</size>
            <attacher name="Laszlo Gombos">laszlo.gombos</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA1NjY1MikKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMjcgQEAKKzIwMTAtMDMtMjYgIExhc3psbyBHb21ib3MgIDxsYXN6bG8uMS5nb21i
b3NAbm9raWEuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIFtRdF0gQmFzZWxpbmUgYWNjZXNzaWJpbGl0eSBzdXBwb3J0IGZvciBRdFdlYktpdAor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MzY2OTMKKyAg
ICAgICAgCisgICAgICAgIEVtcHR5IHN0dWJzIGZvciBRdFdlYktpdC4KKworICAgICAgICAqIFdl
YkNvcmUucHJvOgorICAgICAgICAqIGFjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdC5o
OgorICAgICAgICAqIGFjY2Vzc2liaWxpdHkvcXQvQVhPYmplY3RDYWNoZVF0LmNwcDogQWRkZWQu
CisgICAgICAgIChXZWJDb3JlOjpBWE9iamVjdENhY2hlOjpkZXRhY2hXcmFwcGVyKToKKyAgICAg
ICAgKFdlYkNvcmU6OkFYT2JqZWN0Q2FjaGU6OmF0dGFjaFdyYXBwZXIpOgorICAgICAgICAoV2Vi
Q29yZTo6QVhPYmplY3RDYWNoZTo6cG9zdFBsYXRmb3JtTm90aWZpY2F0aW9uKToKKyAgICAgICAg
KFdlYkNvcmU6OkFYT2JqZWN0Q2FjaGU6OmhhbmRsZUZvY3VzZWRVSUVsZW1lbnRDaGFuZ2VkKToK
KyAgICAgICAgKFdlYkNvcmU6OkFYT2JqZWN0Q2FjaGU6OmhhbmRsZVNjcm9sbGVkVG9BbmNob3Ip
OgorICAgICAgICAqIGFjY2Vzc2liaWxpdHkvcXQvQWNjZXNzaWJpbGl0eU9iamVjdFF0LmNwcDoK
KyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L3F0L0FjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVyUXQu
aDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlcjo6
fkFjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVyKToKKyAgICAgICAgKFdlYkNvcmU6OkFjY2Vzc2li
aWxpdHlPYmplY3RXcmFwcGVyOjphdHRhY2hlZCk6CisgICAgICAgIChXZWJDb3JlOjpBY2Nlc3Np
YmlsaXR5T2JqZWN0V3JhcHBlcjo6YWNjZXNzaWJpbGl0eU9iamVjdCk6CisgICAgICAgIChXZWJD
b3JlOjpBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlcjo6QWNjZXNzaWJpbGl0eU9iamVjdFdyYXBw
ZXIpOgorCiAyMDEwLTAzLTI2ICBKdXN0aW4gU2NodWggIDxqc2NodWhAY2hyb21pdW0ub3JnPgog
CiAgICAgICAgIFJldmlld2VkIGJ5IEFkYW0gQmFydGguCkluZGV4OiBXZWJDb3JlL1dlYkNvcmUu
cHJvCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvV2ViQ29yZS5wcm8JKHJldmlzaW9uIDU2NjUyKQor
KysgV2ViQ29yZS9XZWJDb3JlLnBybwkod29ya2luZyBjb3B5KQpAQCAtMjIxLDYgKzIyMSw3IEBA
IElOQ0xVREVQQVRIID0gXAogICAgICQkSU5DTFVERVBBVEgKIAogSU5DTFVERVBBVEggPSBcCisg
ICAgJCRQV0QvYWNjZXNzaWJpbGl0eS9xdCBcCiAgICAgJCRQV0QvYnJpZGdlL3F0IFwKICAgICAk
JFBXRC9wYWdlL3F0IFwKICAgICAkJFBXRC9wbGF0Zm9ybS9ncmFwaGljcy9xdCBcCkBAIC0yMDE1
LDYgKzIwMTYsNyBAQCBIRUFERVJTICs9IFwKIAogU09VUkNFUyArPSBcCiAgICAgYWNjZXNzaWJp
bGl0eS9xdC9BY2Nlc3NpYmlsaXR5T2JqZWN0UXQuY3BwIFwKKyAgICBhY2Nlc3NpYmlsaXR5L3F0
L0FYT2JqZWN0Q2FjaGVRdC5jcHAgXAogICAgIGJpbmRpbmdzL2pzL1NjcmlwdENvbnRyb2xsZXJR
dC5jcHAgXAogICAgIGJyaWRnZS9xdC9xdF9jbGFzcy5jcHAgXAogICAgIGJyaWRnZS9xdC9xdF9p
bnN0YW5jZS5jcHAgXApJbmRleDogV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlP
YmplY3QuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0
eU9iamVjdC5oCShyZXZpc2lvbiA1NjY1MikKKysrIFdlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nl
c3NpYmlsaXR5T2JqZWN0LmgJKHdvcmtpbmcgY29weSkKQEAgLTQ0LDYgKzQ0LDggQEAKICNpbmNs
dWRlICJDT01QdHIuaCIKICNlbGlmIFBMQVRGT1JNKENIUk9NSVVNKQogI2luY2x1ZGUgIkFjY2Vz
c2liaWxpdHlPYmplY3RXcmFwcGVyLmgiCisjZWxpZiBQTEFURk9STShRVCkKKyNpbmNsdWRlICJB
Y2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlclF0LmgiCiAjZW5kaWYKIAogdHlwZWRlZiBzdHJ1Y3Qg
X05TUmFuZ2UgTlNSYW5nZTsKQEAgLTU2Niw2ICs1NjgsOCBAQCBwcm90ZWN0ZWQ6CiAgICAgQXRr
T2JqZWN0KiBtX3dyYXBwZXI7CiAjZWxpZiBQTEFURk9STShDSFJPTUlVTSkKICAgICBSZWZQdHI8
QWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXI+IG1fd3JhcHBlcjsKKyNlbGlmIFBMQVRGT1JNKFFU
KQorICAgIFJlZlB0cjxBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlcj4gbV93cmFwcGVyOwogI2Vu
ZGlmCiB9OwogCkluZGV4OiBXZWJDb3JlL2FjY2Vzc2liaWxpdHkvcXQvQVhPYmplY3RDYWNoZVF0
LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2FjY2Vzc2liaWxpdHkvcXQvQVhPYmplY3RDYWNo
ZVF0LmNwcAkocmV2aXNpb24gMCkKKysrIFdlYkNvcmUvYWNjZXNzaWJpbGl0eS9xdC9BWE9iamVj
dENhY2hlUXQuY3BwCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDU1IEBACisvKgorICogQ29weXJp
Z2h0IChDKSAyMDEwIE5va2lhIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdo
dCAoQykgMjAwOCBBcHBsZSBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQg
KEMpIDIwMDggR29vZ2xlIEluYy4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2Fy
ZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgKiBtb2RpZnkgaXQgdW5kZXIgdGhl
IHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYworICogTGljZW5zZSBhcyBw
dWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisgKiB2ZXJz
aW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNp
b24uCisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQg
aXQgd2lsbCBiZSB1c2VmdWwsCisgKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQg
ZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAqIExpYnJhcnkgR2Vu
ZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICoKKyAqIFlvdSBzaG91bGQg
aGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExp
Y2Vuc2UKKyAqIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5M
SUIuICBJZiBub3QsIHdyaXRlIHRvCisgKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJ
bmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLAorICogQm9zdG9uLCBNQSAwMjEx
MC0xMzAxLCBVU0EuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIkFYT2Jq
ZWN0Q2FjaGUuaCIKKworI2lmIEhBVkUoQUNDRVNTSUJJTElUWSkKKworI2luY2x1ZGUgIkFjY2Vz
c2liaWxpdHlPYmplY3QuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCit2b2lkIEFYT2JqZWN0
Q2FjaGU6OmRldGFjaFdyYXBwZXIoQWNjZXNzaWJpbGl0eU9iamVjdCogb2JqKQoreworICAgIGlm
IChBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlciogd3JhcHBlciA9IG9iai0+d3JhcHBlcigpKQor
ICAgICAgICB3cmFwcGVyLT5kZXRhY2goKTsKK30KKwordm9pZCBBWE9iamVjdENhY2hlOjphdHRh
Y2hXcmFwcGVyKEFjY2Vzc2liaWxpdHlPYmplY3QqKQoreworfQorCit2b2lkIEFYT2JqZWN0Q2Fj
aGU6OnBvc3RQbGF0Zm9ybU5vdGlmaWNhdGlvbihBY2Nlc3NpYmlsaXR5T2JqZWN0KiBvYmosIEFY
Tm90aWZpY2F0aW9uIG5vdGlmaWNhdGlvbikKK3sKK30KKwordm9pZCBBWE9iamVjdENhY2hlOjpo
YW5kbGVGb2N1c2VkVUlFbGVtZW50Q2hhbmdlZChSZW5kZXJPYmplY3QqLCBSZW5kZXJPYmplY3Qq
KQoreworfQorCit2b2lkIEFYT2JqZWN0Q2FjaGU6OmhhbmRsZVNjcm9sbGVkVG9BbmNob3IoY29u
c3QgTm9kZSopCit7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmCkluZGV4
OiBXZWJDb3JlL2FjY2Vzc2liaWxpdHkvcXQvQWNjZXNzaWJpbGl0eU9iamVjdFF0LmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBXZWJDb3JlL2FjY2Vzc2liaWxpdHkvcXQvQWNjZXNzaWJpbGl0eU9iamVjdFF0
LmNwcAkocmV2aXNpb24gNTY2NTIpCisrKyBXZWJDb3JlL2FjY2Vzc2liaWxpdHkvcXQvQWNjZXNz
aWJpbGl0eU9iamVjdFF0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDYgQEAKIC8qCiAg
KiBDb3B5cmlnaHQgKEMpIDIwMDggQXBwbGUgTHRkLgorICogQ29weXJpZ2h0IChDKSAyMDEwIE5v
a2lhIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBUaGlzIGxpYnJhcnkgaXMgZnJl
ZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCiAgKiBtb2RpZnkgaXQg
dW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYwpJbmRleDog
V2ViQ29yZS9hY2Nlc3NpYmlsaXR5L3F0L0FjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVyUXQuaAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBXZWJDb3JlL2FjY2Vzc2liaWxpdHkvcXQvQWNjZXNzaWJpbGl0eU9iamVj
dFdyYXBwZXJRdC5oCShyZXZpc2lvbiAwKQorKysgV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L3F0L0Fj
Y2Vzc2liaWxpdHlPYmplY3RXcmFwcGVyUXQuaAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSw0OSBA
QAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMCBOb2tpYSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMDggQXBwbGUgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVk
LgorICogQ29weXJpZ2h0IChDKSAyMDA4IEdvb2dsZSBJbmMuCisgKgorICogVGhpcyBsaWJyYXJ5
IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICogbW9k
aWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMK
KyAqIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247
IGVpdGhlcgorICogdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24p
IGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBp
biB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICogYnV0IFdJVEhPVVQgQU5ZIFdB
UlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAqIE1FUkNIQU5U
QUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05V
CisgKiBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAq
CisgKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBH
ZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgKiBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRo
ZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0bworICogdGhlIEZyZWUgU29mdHdh
cmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwKKyAq
IEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgorICovCisKKyNpZm5kZWYgQWNjZXNzaWJpbGl0
eU9iamVjdFdyYXBwZXJRdF9oCisjZGVmaW5lIEFjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVyUXRf
aAorCisjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgewor
CisgICAgY2xhc3MgQWNjZXNzaWJpbGl0eU9iamVjdDsKKyAgICBjbGFzcyBBY2Nlc3NpYmlsaXR5
T2JqZWN0V3JhcHBlciA6IHB1YmxpYyBSZWZDb3VudGVkPEFjY2Vzc2liaWxpdHlPYmplY3RXcmFw
cGVyPiB7CisgICAgcHVibGljOgorICAgICAgICB2aXJ0dWFsIH5BY2Nlc3NpYmlsaXR5T2JqZWN0
V3JhcHBlcigpIHt9CisgICAgICAgIHZpcnR1YWwgdm9pZCBkZXRhY2goKSA9IDA7CisgICAgICAg
IGJvb2wgYXR0YWNoZWQoKSBjb25zdCB7IHJldHVybiBtX29iamVjdDsgfQorICAgICAgICBBY2Nl
c3NpYmlsaXR5T2JqZWN0KiBhY2Nlc3NpYmlsaXR5T2JqZWN0KCkgY29uc3QgeyByZXR1cm4gbV9v
YmplY3Q7IH0KKworICAgIHByb3RlY3RlZDoKKyAgICAgICAgQWNjZXNzaWJpbGl0eU9iamVjdFdy
YXBwZXIoQWNjZXNzaWJpbGl0eU9iamVjdCogb2JqKQorICAgICAgICAgICAgOiBtX29iamVjdChv
YmopCisgICAgICAgIHsKKyAgICAgICAgfQorICAgICAgICBBY2Nlc3NpYmlsaXR5T2JqZWN0V3Jh
cHBlcigpIDogbV9vYmplY3QoMCkgeyB9CisKKyAgICAgICAgQWNjZXNzaWJpbGl0eU9iamVjdCog
bV9vYmplY3Q7CisgICAgfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYKSW5k
ZXg6IFdlYktpdFRvb2xzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXRUb29scy9DaGFu
Z2VMb2cJKHJldmlzaW9uIDU2NjUyKQorKysgV2ViS2l0VG9vbHMvQ2hhbmdlTG9nCSh3b3JraW5n
IGNvcHkpCkBAIC0xLDMgKzEsMTUgQEAKKzIwMTAtMDMtMjYgIExhc3psbyBHb21ib3MgIDxsYXN6
bG8uMS5nb21ib3NAbm9raWEuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgIFtRdF0gQmFzZWxpbmUgYWNjZXNzaWJpbGl0eSBzdXBwb3J0IGZvciBR
dFdlYktpdAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MzY2OTMKKworICAgICAgICAqIER1bXBSZW5kZXJUcmVlL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnQu
Y3BwOgorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL3F0L0FjY2Vzc2liaWxpdHlDb250cm9sbGVy
UXQuY3BwOiBBZGRlZC4KKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9xdC9BY2Nlc3NpYmlsaXR5
VUlFbGVtZW50UXQuY3BwOiBBZGRlZC4KKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9xdC9EdW1w
UmVuZGVyVHJlZS5wcm86CisKIDIwMTAtMDMtMjYgIERpcmsgUHJhbmtlICA8ZHByYW5rZUBjaHJv
bWl1bS5vcmc+CiAKICAgICAgICAgVW5yZXZpZXdlZCBmaXguCkluZGV4OiBXZWJLaXRUb29scy9E
dW1wUmVuZGVyVHJlZS9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50LmNwcAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBX
ZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50LmNwcAkocmV2
aXNpb24gNTY2NTIpCisrKyBXZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS9BY2Nlc3NpYmlsaXR5
VUlFbGVtZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjgsNiArMjgsOCBAQAogCiAjaW5jbHVk
ZSA8SmF2YVNjcmlwdENvcmUvSlNSZXRhaW5QdHIuaD4KIAorI2luY2x1ZGUgPGxpbWl0cy5oPgor
CiAvLyBTdGF0aWMgRnVuY3Rpb25zCiAKIHN0YXRpYyBpbmxpbmUgQWNjZXNzaWJpbGl0eVVJRWxl
bWVudCogdG9BWEVsZW1lbnQoSlNPYmplY3RSZWYgb2JqZWN0KQpJbmRleDogV2ViS2l0VG9vbHMv
RHVtcFJlbmRlclRyZWUvcXQvQWNjZXNzaWJpbGl0eUNvbnRyb2xsZXJRdC5jcHAKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvcXQvQWNjZXNzaWJpbGl0eUNvbnRyb2xs
ZXJRdC5jcHAJKHJldmlzaW9uIDApCisrKyBXZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS9xdC9B
Y2Nlc3NpYmlsaXR5Q29udHJvbGxlclF0LmNwcAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSw4MiBA
QAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAwOCwgMjAwOSwgMjAxMCBBcHBsZSBJbmMuIEFsbCBS
aWdodHMgUmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgTm9raWEgSW5jLiBBbGwgUmln
aHRzIFJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0
OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4g
dGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElO
Qy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERB
TUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0Yg
U1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBB
TlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLwor
CisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiQWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIu
aCIKKworI2luY2x1ZGUgIkFjY2Vzc2liaWxpdHlVSUVsZW1lbnQuaCIKKyNpbmNsdWRlICJEdW1w
UmVuZGVyVHJlZS5oIgorCitBY2Nlc3NpYmlsaXR5Q29udHJvbGxlcjo6QWNjZXNzaWJpbGl0eUNv
bnRyb2xsZXIoKQoreworfQorCitBY2Nlc3NpYmlsaXR5Q29udHJvbGxlcjo6fkFjY2Vzc2liaWxp
dHlDb250cm9sbGVyKCkKK3sKK30KKworQWNjZXNzaWJpbGl0eVVJRWxlbWVudCBBY2Nlc3NpYmls
aXR5Q29udHJvbGxlcjo6ZWxlbWVudEF0UG9pbnQoaW50IHgsIGludCB5KQoreworICAgIC8vIEZJ
WE1FOiBpbXBsZW1lbnQKKyAgICByZXR1cm4gMDsKK30KKworQWNjZXNzaWJpbGl0eVVJRWxlbWVu
dCBBY2Nlc3NpYmlsaXR5Q29udHJvbGxlcjo6Zm9jdXNlZEVsZW1lbnQoKQoreworICAgIC8vIEZJ
WE1FOiBpbXBsZW1lbnQKKyAgICByZXR1cm4gMDsKK30KKworQWNjZXNzaWJpbGl0eVVJRWxlbWVu
dCBBY2Nlc3NpYmlsaXR5Q29udHJvbGxlcjo6cm9vdEVsZW1lbnQoKQoreworICAgIC8vIEZJWE1F
OiBpbXBsZW1lbnQKKyAgICByZXR1cm4gMDsKK30KKwordm9pZCBBY2Nlc3NpYmlsaXR5Q29udHJv
bGxlcjo6c2V0TG9nRm9jdXNFdmVudHMoYm9vbCkKK3sKKyAgICAvLyBGSVhNRTogaW1wbGVtZW50
Cit9CisKK3ZvaWQgQWNjZXNzaWJpbGl0eUNvbnRyb2xsZXI6OnNldExvZ1Njcm9sbGluZ1N0YXJ0
RXZlbnRzKGJvb2wpCit7CisgICAgLy8gRklYTUU6IGltcGxlbWVudAorfQorCit2b2lkIEFjY2Vz
c2liaWxpdHlDb250cm9sbGVyOjpzZXRMb2dWYWx1ZUNoYW5nZUV2ZW50cyhib29sKQoreworICAg
IC8vIEZJWE1FOiBpbXBsZW1lbnQKK30KKwordm9pZCBBY2Nlc3NpYmlsaXR5Q29udHJvbGxlcjo6
YWRkTm90aWZpY2F0aW9uTGlzdGVuZXIoUGxhdGZvcm1VSUVsZW1lbnQsIEpTT2JqZWN0UmVmKQor
eworICAgIC8vIEZJWE1FOiBpbXBsZW1lbnQKK30KKwordm9pZCBBY2Nlc3NpYmlsaXR5Q29udHJv
bGxlcjo6bm90aWZpY2F0aW9uUmVjZWl2ZWQoUGxhdGZvcm1VSUVsZW1lbnQsIGNvbnN0IHN0ZDo6
c3RyaW5nJikKK3sKKyAgICAvLyBGSVhNRTogaW1wbGVtZW50Cit9CkluZGV4OiBXZWJLaXRUb29s
cy9EdW1wUmVuZGVyVHJlZS9xdC9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50UXQuY3BwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFdlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL3F0L0FjY2Vzc2liaWxpdHlVSUVsZW1l
bnRRdC5jcHAJKHJldmlzaW9uIDApCisrKyBXZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS9xdC9B
Y2Nlc3NpYmlsaXR5VUlFbGVtZW50UXQuY3BwCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDU1NCBA
QAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAwOCBBcHBsZSBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2
ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgTm9raWEgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVk
LgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlz
dHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5D
LiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9T
RSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENP
TlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBC
VVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisg
KiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKworI2luY2x1ZGUg
ImNvbmZpZy5oIgorI2luY2x1ZGUgIkFjY2Vzc2liaWxpdHlVSUVsZW1lbnQuaCIKKworI2luY2x1
ZGUgPEphdmFTY3JpcHRDb3JlL0pTU3RyaW5nUmVmLmg+CisjaW5jbHVkZSA8d3RmL0Fzc2VydGlv
bnMuaD4KKworQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6QWNjZXNzaWJpbGl0eVVJRWxlbWVudChQ
bGF0Zm9ybVVJRWxlbWVudCBlbGVtZW50KQorICAgIDogbV9lbGVtZW50KGVsZW1lbnQpCit7Cit9
CisKK0FjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OkFjY2Vzc2liaWxpdHlVSUVsZW1lbnQoY29uc3Qg
QWNjZXNzaWJpbGl0eVVJRWxlbWVudCYgb3RoZXIpCisgICAgOiBtX2VsZW1lbnQob3RoZXIubV9l
bGVtZW50KQoreworfQorCitBY2Nlc3NpYmlsaXR5VUlFbGVtZW50Ojp+QWNjZXNzaWJpbGl0eVVJ
RWxlbWVudCgpCit7Cit9CisKK3ZvaWQgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6Z2V0TGlua2Vk
VUlFbGVtZW50cyhWZWN0b3I8QWNjZXNzaWJpbGl0eVVJRWxlbWVudD4mIGVsZW1lbnRzKQorewor
ICAgIC8vIEZJWE1FOiBpbXBsZW1lbnQKK30KKwordm9pZCBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50
OjpnZXREb2N1bWVudExpbmtzKFZlY3RvcjxBY2Nlc3NpYmlsaXR5VUlFbGVtZW50PiYpCit7Cisg
ICAgLy8gRklYTUU6IGltcGxlbWVudAorfQorCit2b2lkIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6
OmdldENoaWxkcmVuKFZlY3RvcjxBY2Nlc3NpYmlsaXR5VUlFbGVtZW50PiYgY2hpbGRyZW4pCit7
CisgICAgLy8gRklYTUU6IGltcGxlbWVudAorfQorCit2b2lkIEFjY2Vzc2liaWxpdHlVSUVsZW1l
bnQ6OmdldENoaWxkcmVuV2l0aFJhbmdlKFZlY3RvcjxBY2Nlc3NpYmlsaXR5VUlFbGVtZW50PiYg
ZWxlbWVudFZlY3RvciwgdW5zaWduZWQgc3RhcnQsIHVuc2lnbmVkIGVuZCkKK3sKKyAgICAvLyBG
SVhNRTogaW1wbGVtZW50Cit9CisKK2ludCBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50Ojpyb3dDb3Vu
dCgpCit7CisgICAgLy8gRklYTUU6IGltcGxlbWVudAorICAgIHJldHVybiAwOworfQorCitpbnQg
QWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6Y29sdW1uQ291bnQoKQoreworICAgIC8vIEZJWE1FOiBp
bXBsZW1lbnQKKyAgICByZXR1cm4gMDsKK30KKworaW50IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6
OmNoaWxkcmVuQ291bnQoKQoreworICAgIC8vIEZJWE1FOiBpbXBsZW1lbnQKKyAgICByZXR1cm4g
MDsKK30KKworQWNjZXNzaWJpbGl0eVVJRWxlbWVudCBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50Ojpl
bGVtZW50QXRQb2ludChpbnQgeCwgaW50IHkpCit7CisgICAgLy8gRklYTUU6IGltcGxlbWVudAor
ICAgIHJldHVybiAwOworfQorCitBY2Nlc3NpYmlsaXR5VUlFbGVtZW50IEFjY2Vzc2liaWxpdHlV
SUVsZW1lbnQ6OmdldENoaWxkQXRJbmRleCh1bnNpZ25lZCBpbmRleCkKK3sKKyAgICAvLyBGSVhN
RTogaW1wbGVtZW50CisgICAgcmV0dXJuIDA7ICAgICAgICAKK30KKwordW5zaWduZWQgQWNjZXNz
aWJpbGl0eVVJRWxlbWVudDo6aW5kZXhPZkNoaWxkKEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQqIGVs
ZW1lbnQpCit7IAorICAgIC8vIEZJWE1FOiBpbXBsZW1lbnQKKyAgICByZXR1cm4gMDsKK30KKwor
SlNTdHJpbmdSZWYgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6YWxsQXR0cmlidXRlcygpCit7Cisg
ICAgLy8gRklYTUU6IGltcGxlbWVudAorICAgIHJldHVybiBKU1N0cmluZ0NyZWF0ZVdpdGhDaGFy
YWN0ZXJzKDAsIDApOworfQorCitKU1N0cmluZ1JlZiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50Ojph
dHRyaWJ1dGVzT2ZMaW5rZWRVSUVsZW1lbnRzKCkKK3sKKyAgICAvLyBGSVhNRTogaW1wbGVtZW50
CisgICAgcmV0dXJuIEpTU3RyaW5nQ3JlYXRlV2l0aENoYXJhY3RlcnMoMCwgMCk7Cit9CisKK0pT
U3RyaW5nUmVmIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmF0dHJpYnV0ZXNPZkRvY3VtZW50TGlu
a3MoKQoreworICAgIC8vIEZJWE1FOiBpbXBsZW1lbnQKKyAgICByZXR1cm4gSlNTdHJpbmdDcmVh
dGVXaXRoQ2hhcmFjdGVycygwLCAwKTsKK30KKworQWNjZXNzaWJpbGl0eVVJRWxlbWVudCBBY2Nl
c3NpYmlsaXR5VUlFbGVtZW50Ojp0aXRsZVVJRWxlbWVudCgpCit7CisgICAgLy8gRklYTUU6IGlt
cGxlbWVudAorICAgIHJldHVybiAwOworfQorCitBY2Nlc3NpYmlsaXR5VUlFbGVtZW50IEFjY2Vz
c2liaWxpdHlVSUVsZW1lbnQ6OnBhcmVudEVsZW1lbnQoKQoreworICAgIC8vIEZJWE1FOiBpbXBs
ZW1lbnQKKyAgICByZXR1cm4gMDsKK30KKworSlNTdHJpbmdSZWYgQWNjZXNzaWJpbGl0eVVJRWxl
bWVudDo6YXR0cmlidXRlc09mQ2hpbGRyZW4oKQoreworICAgIC8vIEZJWE1FOiBpbXBsZW1lbnQK
KyAgICByZXR1cm4gSlNTdHJpbmdDcmVhdGVXaXRoQ2hhcmFjdGVycygwLCAwKTsKK30KKworSlNT
dHJpbmdSZWYgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6cGFyYW1ldGVyaXplZEF0dHJpYnV0ZU5h
bWVzKCkKK3sKKyAgICAvLyBGSVhNRTogaW1wbGVtZW50CisgICAgcmV0dXJuIEpTU3RyaW5nQ3Jl
YXRlV2l0aENoYXJhY3RlcnMoMCwgMCk7Cit9CisKK0pTU3RyaW5nUmVmIEFjY2Vzc2liaWxpdHlV
SUVsZW1lbnQ6OnJvbGUoKQoreworICAgIC8vIEZJWE1FOiBpbXBsZW1lbnQKKyAgICByZXR1cm4g
MDsKK30KKworSlNTdHJpbmdSZWYgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6c3Vicm9sZSgpCit7
CisgICAgLy8gRklYTUU6IGltcGxlbWVudAorICAgIHJldHVybiAwOworfQorCitKU1N0cmluZ1Jl
ZiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50Ojpyb2xlRGVzY3JpcHRpb24oKQoreworICAgIC8vIEZJ
WE1FOiBpbXBsZW1lbnQKKyAgICByZXR1cm4gMDsKK30KKworSlNTdHJpbmdSZWYgQWNjZXNzaWJp
bGl0eVVJRWxlbWVudDo6dGl0bGUoKQoreworICAgIC8vIEZJWE1FOiBpbXBsZW1lbnQKKyAgICBy
ZXR1cm4gMDsKK30KKworSlNTdHJpbmdSZWYgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6ZGVzY3Jp
cHRpb24oKQoreworICAgIC8vIEZJWE1FOiBpbXBsZW1lbnQKKyAgICByZXR1cm4gMDsKK30KKwor
SlNTdHJpbmdSZWYgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6c3RyaW5nVmFsdWUoKQoreworICAg
IC8vIEZJWE1FOiBpbXBsZW1lbnQKKyAgICByZXR1cm4gSlNTdHJpbmdDcmVhdGVXaXRoQ2hhcmFj
dGVycygwLCAwKTsKK30KKworSlNTdHJpbmdSZWYgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6bGFu
Z3VhZ2UoKQoreworICAgIC8vIEZJWE1FOiBpbXBsZW1lbnQKKyAgICByZXR1cm4gSlNTdHJpbmdD
cmVhdGVXaXRoQ2hhcmFjdGVycygwLCAwKTsKK30KKworZG91YmxlIEFjY2Vzc2liaWxpdHlVSUVs
ZW1lbnQ6OngoKQoreworICAgIC8vIEZJWE1FOiBpbXBsZW1lbnQKKyAgICByZXR1cm4gMC5mOwor
fQorCitkb3VibGUgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6eSgpCit7CisgICAgLy8gRklYTUU6
IGltcGxlbWVudAorICAgIHJldHVybiAwLmY7Cit9CisKK2RvdWJsZSBBY2Nlc3NpYmlsaXR5VUlF
bGVtZW50Ojp3aWR0aCgpCit7CisgICAgLy8gRklYTUU6IGltcGxlbWVudAorICAgIHJldHVybiAw
LmY7Cit9CisKK2RvdWJsZSBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpoZWlnaHQoKQoreworICAg
IC8vIEZJWE1FOiBpbXBsZW1lbnQKKyAgICByZXR1cm4gMC5mOworfQorCitkb3VibGUgQWNjZXNz
aWJpbGl0eVVJRWxlbWVudDo6Y2xpY2tQb2ludFgoKQoreworICAgIC8vIEZJWE1FOiBpbXBsZW1l
bnQKKyAgICByZXR1cm4gMC5mOworfQorCitkb3VibGUgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6
Y2xpY2tQb2ludFkoKQoreworICAgIC8vIEZJWE1FOiBpbXBsZW1lbnQKKyAgICByZXR1cm4gMC5m
OworfQorCitKU1N0cmluZ1JlZiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpvcmllbnRhdGlvbigp
IGNvbnN0Cit7CisgICAgLy8gRklYTUU6IGltcGxlbWVudAorICAgIHJldHVybiAwOworfQorCitk
b3VibGUgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6aW50VmFsdWUoKSBjb25zdAoreworICAgIC8v
IEZJWE1FOiBpbXBsZW1lbnQKKyAgICByZXR1cm4gMC4wZjsKK30KKworZG91YmxlIEFjY2Vzc2li
aWxpdHlVSUVsZW1lbnQ6Om1pblZhbHVlKCkKK3sKKyAgICAvLyBGSVhNRTogaW1wbGVtZW50Cisg
ICAgcmV0dXJuIDAuMGY7Cit9CisKK2RvdWJsZSBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjptYXhW
YWx1ZSgpCit7CisgICAgLy8gRklYTUU6IGltcGxlbWVudAorICAgIHJldHVybiAwLjBmOworfQor
CitKU1N0cmluZ1JlZiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50Ojp2YWx1ZURlc2NyaXB0aW9uKCkK
K3sKKyAgICAvLyBGSVhNRTogaW1wbGVtZW50CisgICAgcmV0dXJuIEpTU3RyaW5nQ3JlYXRlV2l0
aENoYXJhY3RlcnMoMCwgMCk7Cit9CisKK2Jvb2wgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6aXNF
bmFibGVkKCkKK3sKKyAgICAvLyBGSVhNRTogaW1wbGVtZW50CisgICAgcmV0dXJuIGZhbHNlOwor
fQorCisKK2ludCBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjppbnNlcnRpb25Qb2ludExpbmVOdW1i
ZXIoKQoreworICAgIC8vIEZJWE1FOiBpbXBsZW1lbnQKKyAgICByZXR1cm4gMDsKK30KKworYm9v
bCBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50Ojppc0FjdGlvblN1cHBvcnRlZChKU1N0cmluZ1JlZiBh
Y3Rpb24pCit7CisgICAgLy8gRklYTUU6IGltcGxlbWVudAorICAgIHJldHVybiBmYWxzZTsKK30K
KworYm9vbCBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50Ojppc1JlcXVpcmVkKCkgY29uc3QKK3sKKyAg
ICAvLyBGSVhNRTogaW1wbGVtZW50CisgICAgcmV0dXJuIGZhbHNlOworfQorCitib29sIEFjY2Vz
c2liaWxpdHlVSUVsZW1lbnQ6OmlzU2VsZWN0ZWQoKSBjb25zdAoreworICAgIC8vIEZJWE1FOiBp
bXBsZW1lbnQKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKK2ludCBBY2Nlc3NpYmlsaXR5VUlFbGVt
ZW50OjpoaWVyYXJjaGljYWxMZXZlbCgpIGNvbnN0Cit7CisgICAgLy8gRklYTUU6IGltcGxlbWVu
dAorICAgIHJldHVybiAwOworfQorCitib29sIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmFyaWFJ
c0dyYWJiZWQoKSBjb25zdAoreworICAgIC8vIEZJWE1FOiBpbXBsZW1lbnQKKyAgICByZXR1cm4g
ZmFsc2U7Cit9CisgCitKU1N0cmluZ1JlZiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjphcmlhRHJv
cEVmZmVjdHMoKSBjb25zdAoreyAgIAorICAgIC8vIEZJWE1FOiBpbXBsZW1lbnQKKyAgICByZXR1
cm4gMDsgCit9CisKK2Jvb2wgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6aXNFeHBhbmRlZCgpIGNv
bnN0Cit7CisgICAgLy8gRklYTUU6IGltcGxlbWVudAorICAgIHJldHVybiBmYWxzZTsKK30KKwor
Ym9vbCBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50Ojppc0NoZWNrZWQoKSBjb25zdAoreworICAgIHJl
dHVybiBpbnRWYWx1ZSgpOworfQorCitKU1N0cmluZ1JlZiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50
OjphdHRyaWJ1dGVzT2ZDb2x1bW5IZWFkZXJzKCkKK3sKKyAgICAvLyBGSVhNRTogaW1wbGVtZW50
CisgICAgcmV0dXJuIEpTU3RyaW5nQ3JlYXRlV2l0aENoYXJhY3RlcnMoMCwgMCk7Cit9CisKK0pT
U3RyaW5nUmVmIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmF0dHJpYnV0ZXNPZlJvd0hlYWRlcnMo
KQoreworICAgIC8vIEZJWE1FOiBpbXBsZW1lbnQKKyAgICByZXR1cm4gSlNTdHJpbmdDcmVhdGVX
aXRoQ2hhcmFjdGVycygwLCAwKTsKK30KKworSlNTdHJpbmdSZWYgQWNjZXNzaWJpbGl0eVVJRWxl
bWVudDo6YXR0cmlidXRlc09mQ29sdW1ucygpCit7CisgICAgLy8gRklYTUU6IGltcGxlbWVudAor
ICAgIHJldHVybiBKU1N0cmluZ0NyZWF0ZVdpdGhDaGFyYWN0ZXJzKDAsIDApOworfQorCitKU1N0
cmluZ1JlZiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjphdHRyaWJ1dGVzT2ZSb3dzKCkKK3sKKyAg
ICAvLyBGSVhNRTogaW1wbGVtZW50CisgICAgcmV0dXJuIEpTU3RyaW5nQ3JlYXRlV2l0aENoYXJh
Y3RlcnMoMCwgMCk7Cit9CisKK0pTU3RyaW5nUmVmIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmF0
dHJpYnV0ZXNPZlZpc2libGVDZWxscygpCit7CisgICAgLy8gRklYTUU6IGltcGxlbWVudAorICAg
IHJldHVybiBKU1N0cmluZ0NyZWF0ZVdpdGhDaGFyYWN0ZXJzKDAsIDApOworfQorCitKU1N0cmlu
Z1JlZiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjphdHRyaWJ1dGVzT2ZIZWFkZXIoKQoreworICAg
IC8vIEZJWE1FOiBpbXBsZW1lbnQKKyAgICByZXR1cm4gSlNTdHJpbmdDcmVhdGVXaXRoQ2hhcmFj
dGVycygwLCAwKTsKK30KKworaW50IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmluZGV4SW5UYWJs
ZSgpCit7CisgICAgLy8gRklYTUU6IGltcGxlbWVudAorICAgIHJldHVybiAwOworfQorCitKU1N0
cmluZ1JlZiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50Ojpyb3dJbmRleFJhbmdlKCkKK3sKKyAgICAv
LyBGSVhNRTogaW1wbGVtZW50CisgICAgcmV0dXJuIEpTU3RyaW5nQ3JlYXRlV2l0aENoYXJhY3Rl
cnMoMCwgMCk7Cit9CisKK0pTU3RyaW5nUmVmIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmNvbHVt
bkluZGV4UmFuZ2UoKQoreworICAgIC8vIEZJWE1FOiBpbXBsZW1lbnQKKyAgICByZXR1cm4gSlNT
dHJpbmdDcmVhdGVXaXRoQ2hhcmFjdGVycygwLCAwKTsKK30KKworaW50IEFjY2Vzc2liaWxpdHlV
SUVsZW1lbnQ6OmxpbmVGb3JJbmRleChpbnQpCit7CisgICAgLy8gRklYTUU6IGltcGxlbWVudAor
ICAgIHJldHVybiAwOworfQorCitKU1N0cmluZ1JlZiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50Ojpi
b3VuZHNGb3JSYW5nZSh1bnNpZ25lZCBsb2NhdGlvbiwgdW5zaWduZWQgbGVuZ3RoKQoreworICAg
IC8vIEZJWE1FOiBpbXBsZW1lbnQKKyAgICByZXR1cm4gSlNTdHJpbmdDcmVhdGVXaXRoQ2hhcmFj
dGVycygwLCAwKTsKK30KKworSlNTdHJpbmdSZWYgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6c3Ry
aW5nRm9yUmFuZ2UodW5zaWduZWQsIHVuc2lnbmVkKSAKK3sKKyAgICAvLyBGSVhNRTogaW1wbGVt
ZW50CisgICAgcmV0dXJuIEpTU3RyaW5nQ3JlYXRlV2l0aENoYXJhY3RlcnMoMCwgMCk7Cit9IAor
CitBY2Nlc3NpYmlsaXR5VUlFbGVtZW50IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmNlbGxGb3JD
b2x1bW5BbmRSb3codW5zaWduZWQgY29sdW1uLCB1bnNpZ25lZCByb3cpCit7CisgICAgLy8gRklY
TUU6IGltcGxlbWVudAorICAgIHJldHVybiAwOworfQorCitKU1N0cmluZ1JlZiBBY2Nlc3NpYmls
aXR5VUlFbGVtZW50OjpzZWxlY3RlZFRleHRSYW5nZSgpCit7CisgICAgLy8gRklYTUU6IGltcGxl
bWVudAorICAgIHJldHVybiBKU1N0cmluZ0NyZWF0ZVdpdGhDaGFyYWN0ZXJzKDAsIDApOworfQor
Cit2b2lkIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OnNldFNlbGVjdGVkVGV4dFJhbmdlKHVuc2ln
bmVkIGxvY2F0aW9uLCB1bnNpZ25lZCBsZW5ndGgpCit7CisgICAgLy8gRklYTUU6IGltcGxlbWVu
dAorfQorCitKU1N0cmluZ1JlZiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpzdHJpbmdBdHRyaWJ1
dGVWYWx1ZShKU1N0cmluZ1JlZiBhdHRyaWJ1dGUpCit7CisgICAgLy8gRklYTUU6IGltcGxlbWVu
dAorICAgIHJldHVybiBKU1N0cmluZ0NyZWF0ZVdpdGhDaGFyYWN0ZXJzKDAsIDApOworfQorCiti
b29sIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmJvb2xBdHRyaWJ1dGVWYWx1ZShKU1N0cmluZ1Jl
ZiBhdHRyaWJ1dGUpCit7CisgICAgLy8gRklYTUU6IGltcGxlbWVudAorICAgIHJldHVybiBmYWxz
ZTsKK30KKworYm9vbCBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50Ojppc0F0dHJpYnV0ZVNldHRhYmxl
KEpTU3RyaW5nUmVmIGF0dHJpYnV0ZSkKK3sKKyAgICAvLyBGSVhNRTogaW1wbGVtZW50CisgICAg
cmV0dXJuIGZhbHNlOworfQorCitib29sIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmlzQXR0cmli
dXRlU3VwcG9ydGVkKEpTU3RyaW5nUmVmIGF0dHJpYnV0ZSkKK3sKKyAgICByZXR1cm4gZmFsc2U7
Cit9CisKK3ZvaWQgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6aW5jcmVtZW50KCkKK3sKKyAgICAv
LyBGSVhNRTogaW1wbGVtZW50Cit9CisKK3ZvaWQgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6ZGVj
cmVtZW50KCkKK3sKKyAgICAvLyBGSVhNRTogaW1wbGVtZW50Cit9CisKK3ZvaWQgQWNjZXNzaWJp
bGl0eVVJRWxlbWVudDo6cHJlc3MoKQoreworICAgIC8vIEZJWE1FOiBpbXBsZW1lbnQKK30KKwor
dm9pZCBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpzaG93TWVudSgpCit7CisgICAgLy8gRklYTUU6
IGltcGxlbWVudAorfQorCitBY2Nlc3NpYmlsaXR5VUlFbGVtZW50IEFjY2Vzc2liaWxpdHlVSUVs
ZW1lbnQ6OmRpc2Nsb3NlZFJvd0F0SW5kZXgodW5zaWduZWQgaW5kZXgpCit7CisgICAgcmV0dXJu
IDA7Cit9CisKK0FjY2Vzc2liaWxpdHlVSUVsZW1lbnQgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6
YXJpYU93bnNFbGVtZW50QXRJbmRleCh1bnNpZ25lZCBpbmRleCkKK3sKKyAgICByZXR1cm4gMDsK
K30KKworQWNjZXNzaWJpbGl0eVVJRWxlbWVudCBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50Ojphcmlh
Rmxvd1RvRWxlbWVudEF0SW5kZXgodW5zaWduZWQgaW5kZXgpCit7CisgICAgcmV0dXJuIDA7Cit9
CisKK0FjY2Vzc2liaWxpdHlVSUVsZW1lbnQgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6c2VsZWN0
ZWRSb3dBdEluZGV4KHVuc2lnbmVkIGluZGV4KQoreworICAgIHJldHVybiAwOworfQorCitBY2Nl
c3NpYmlsaXR5VUlFbGVtZW50IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmRpc2Nsb3NlZEJ5Um93
KCkKK3sKKyAgICByZXR1cm4gMDsKK30KKworSlNTdHJpbmdSZWYgQWNjZXNzaWJpbGl0eVVJRWxl
bWVudDo6YWNjZXNzaWJpbGl0eVZhbHVlKCkgY29uc3QKK3sKKyAgICAvLyBGSVhNRTogaW1wbGVt
ZW50CisgICAgcmV0dXJuIEpTU3RyaW5nQ3JlYXRlV2l0aENoYXJhY3RlcnMoMCwgMCk7Cit9CisK
K0pTU3RyaW5nUmVmIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmRvY3VtZW50RW5jb2RpbmcoKQor
eworICAgIC8vIEZJWE1FOiBpbXBsZW1lbnQKKyAgICByZXR1cm4gSlNTdHJpbmdDcmVhdGVXaXRo
Q2hhcmFjdGVycygwLCAwKTsgICAgICAgIAorfQorCitKU1N0cmluZ1JlZiBBY2Nlc3NpYmlsaXR5
VUlFbGVtZW50Ojpkb2N1bWVudFVSSSgpCit7CisgICAgLy8gRklYTUU6IGltcGxlbWVudAorICAg
IHJldHVybiBKU1N0cmluZ0NyZWF0ZVdpdGhDaGFyYWN0ZXJzKDAsIDApOyAgICAgICAgCit9CisK
K0pTU3RyaW5nUmVmIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OnVybCgpCit7CisgICAgLy8gRklY
TUU6IGltcGxlbWVudAorICAgIHJldHVybiBKU1N0cmluZ0NyZWF0ZVdpdGhDaGFyYWN0ZXJzKDAs
IDApOworfQorCitib29sIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmFkZE5vdGlmaWNhdGlvbkxp
c3RlbmVyKEpTT2JqZWN0UmVmIGZ1bmN0aW9uQ2FsbGJhY2spCit7CisgICAgLy8gRklYTUU6IGlt
cGxlbWVudAorICAgIHJldHVybiBmYWxzZTsKK30KKworYm9vbCBBY2Nlc3NpYmlsaXR5VUlFbGVt
ZW50Ojppc1NlbGVjdGFibGUoKSBjb25zdAoreworICAgIC8vIEZJWE1FOiBpbXBsZW1lbnQKKyAg
ICByZXR1cm4gZmFsc2U7Cit9CisKK2Jvb2wgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6aXNNdWx0
aVNlbGVjdGFibGUoKSBjb25zdAoreworICAgIC8vIEZJWE1FOiBpbXBsZW1lbnQKKyAgICByZXR1
cm4gZmFsc2U7Cit9CisKK2Jvb2wgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6aXNWaXNpYmxlKCkg
Y29uc3QKK3sKKyAgICAvLyBGSVhNRTogaW1wbGVtZW50CisgICAgcmV0dXJuIGZhbHNlOworfQor
Citib29sIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmlzT2ZmU2NyZWVuKCkgY29uc3QKK3sKKyAg
ICAvLyBGSVhNRTogaW1wbGVtZW50CisgICAgcmV0dXJuIGZhbHNlOworfQorCitib29sIEFjY2Vz
c2liaWxpdHlVSUVsZW1lbnQ6OmlzQ29sbGFwc2VkKCkgY29uc3QKK3sKKyAgICAvLyBGSVhNRTog
aW1wbGVtZW50CisgICAgcmV0dXJuIGZhbHNlOworfQorCitib29sIEFjY2Vzc2liaWxpdHlVSUVs
ZW1lbnQ6Omhhc1BvcHVwKCkgY29uc3QKK3sKKyAgICAvLyBGSVhNRTogaW1wbGVtZW50CisgICAg
cmV0dXJuIGZhbHNlOworfQorCit2b2lkIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OnRha2VGb2N1
cygpCit7CisgICAgLy8gRklYTUU6IGltcGxlbWVudAorfQorCit2b2lkIEFjY2Vzc2liaWxpdHlV
SUVsZW1lbnQ6OnRha2VTZWxlY3Rpb24oKQoreworICAgIC8vIEZJWE1FOiBpbXBsZW1lbnQKK30K
Kwordm9pZCBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjphZGRTZWxlY3Rpb24oKQoreworICAgIC8v
IEZJWE1FOiBpbXBsZW1lbnQKK30KKwordm9pZCBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpyZW1v
dmVTZWxlY3Rpb24oKQoreworICAgIC8vIEZJWE1FOiBpbXBsZW1lbnQKK30KSW5kZXg6IFdlYktp
dFRvb2xzL0R1bXBSZW5kZXJUcmVlL3F0L0R1bXBSZW5kZXJUcmVlLnBybwo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBXZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS9xdC9EdW1wUmVuZGVyVHJlZS5wcm8JKHJldmlz
aW9uIDU2NjUyKQorKysgV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvcXQvRHVtcFJlbmRlclRy
ZWUucHJvCSh3b3JraW5nIGNvcHkpCkBAIC0yMSw3ICsyMSwxMCBAQCBERVNURElSID0gLi4vLi4v
Li4vYmluCiBRVCA9IGNvcmUgZ3VpIG5ldHdvcmsgdGVzdGxpYgogbWFjeDogUVQgKz0geG1sCiAK
LUhFQURFUlMgPSAkJEJBU0VESVIvV29ya1F1ZXVlLmggXAorSEVBREVSUyA9IFwKKyAgICAkJEJB
U0VESVIvQWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIuaCBcCisgICAgJCRCQVNFRElSL0FjY2Vzc2li
aWxpdHlVSUVsZW1lbnQuaCBcCisgICAgJCRCQVNFRElSL1dvcmtRdWV1ZS5oIFwKICAgICBEdW1w
UmVuZGVyVHJlZVF0LmggXAogICAgIEV2ZW50U2VuZGVyUXQuaCBcCiAgICAgVGV4dElucHV0Q29u
dHJvbGxlclF0LmggXApAQCAtMjksOCArMzIsMTQgQEAgSEVBREVSUyA9ICQkQkFTRURJUi9Xb3Jr
UXVldWUuaCBcCiAgICAgTGF5b3V0VGVzdENvbnRyb2xsZXJRdC5oIFwKICAgICBHQ0NvbnRyb2xs
ZXJRdC5oIFwKICAgICB0ZXN0cGx1Z2luLmgKLVNPVVJDRVMgPSAuLi8uLi8uLi9KYXZhU2NyaXB0
Q29yZS93dGYvQXNzZXJ0aW9ucy5jcHAgXAorCitTT1VSQ0VTID0gXAorICAgIC4uLy4uLy4uL0ph
dmFTY3JpcHRDb3JlL3d0Zi9Bc3NlcnRpb25zLmNwcCBcCisgICAgJCRCQVNFRElSL0FjY2Vzc2li
aWxpdHlDb250cm9sbGVyLmNwcCBcCisgICAgJCRCQVNFRElSL0FjY2Vzc2liaWxpdHlVSUVsZW1l
bnQuY3BwIFwKICAgICAkJEJBU0VESVIvV29ya1F1ZXVlLmNwcCBcCisgICAgQWNjZXNzaWJpbGl0
eUNvbnRyb2xsZXJRdC5jcHAgXAorICAgIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnRRdC5jcHAgXAog
ICAgIER1bXBSZW5kZXJUcmVlUXQuY3BwIFwKICAgICBFdmVudFNlbmRlclF0LmNwcCBcCiAgICAg
VGV4dElucHV0Q29udHJvbGxlclF0LmNwcCBcCkluZGV4OiBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCShyZXZpc2lvbiA1NjY1MikKKysr
IExheW91dFRlc3RzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE1IEBACisy
MDEwLTAzLTI2ICBMYXN6bG8gR29tYm9zICA8bGFzemxvLjEuZ29tYm9zQG5va2lhLmNvbT4KKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBbUXRdIEJhc2Vs
aW5lIGFjY2Vzc2liaWxpdHkgc3VwcG9ydCBmb3IgUXRXZWJLaXQKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTM2NjkzCisgICAgICAgIAorICAgICAgICBM
aXN0IHRoZSBmYWlsaW5nIHRlc3RzIGluZGl2aWR1YWxseS4gNSB0ZXN0IGFyZSBwYXNzaW5nIHdp
dGggdGhlCisgICAgICAgIHN0dWJzLgorCisgICAgICAgICogcGxhdGZvcm0vcXQvU2tpcHBlZDoK
KwogMjAxMC0wMy0yNiAgSnVzdGluIFNjaHVoICA8anNjaHVoQGNocm9taXVtLm9yZz4KIAogICAg
ICAgICBSZXZpZXdlZCBieSBBZGFtIEJhcnRoLgpJbmRleDogTGF5b3V0VGVzdHMvcGxhdGZvcm0v
cXQvU2tpcHBlZAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9xdC9Ta2lwcGVk
CShyZXZpc2lvbiA1NjY1MikKKysrIExheW91dFRlc3RzL3BsYXRmb3JtL3F0L1NraXBwZWQJKHdv
cmtpbmcgY29weSkKQEAgLTk1LDggKzk1LDgxIEBAIGh0dHAvdGVzdHMvbmF2aWdhdGlvbi90aW1l
cnJlZGlyZWN0LXN1YmYKICMgRmFpbGluZyBodHRwIG11bHRpcGFydCB0ZXN0CiBodHRwL3Rlc3Rz
L211bHRpcGFydC9pbnZhbGlkLWltYWdlLWRhdGEtc3RhbmRhbG9uZS5odG1sCiAKKyMgRmFpbGlu
ZyBhY2Nlc3NpYmlsaXR5IHRlc3RzCithY2Nlc3NpYmlsaXR5L2FyaWEtY2hlY2tib3gtY2hlY2tl
ZC5odG1sCithY2Nlc3NpYmlsaXR5L2FyaWEtY29udHJvbHMtd2l0aC10YWJzLmh0bWwKK2FjY2Vz
c2liaWxpdHkvYXJpYS1kaXNhYmxlZC5odG1sCithY2Nlc3NpYmlsaXR5L2FyaWEtaGlkZGVuLmh0
bWwKK2FjY2Vzc2liaWxpdHkvYXJpYS1oaWRkZW4td2l0aC1lbGVtZW50cy5odG1sCithY2Nlc3Np
YmlsaXR5L2FyaWEtbGFiZWwuaHRtbAorYWNjZXNzaWJpbGl0eS9hcmlhLWxhYmVsbGVkYnktb3Zl
cnJpZGVzLWxhYmVsLmh0bWwKK2FjY2Vzc2liaWxpdHkvYXJpYS1saW5rLXN1cHBvcnRzLXByZXNz
Lmh0bWwKK2FjY2Vzc2liaWxpdHkvYXJpYS1wcmVzZW50YXRpb25hbC1yb2xlLmh0bWwKK2FjY2Vz
c2liaWxpdHkvYXJpYS1yZWFkb25seS5odG1sCithY2Nlc3NpYmlsaXR5L2FyaWEtc2Nyb2xsYmFy
LXJvbGUuaHRtbAorYWNjZXNzaWJpbGl0eS9hcmlhLXRleHQtcm9sZS5odG1sCithY2Nlc3NpYmls
aXR5L2FyaWEtdXNlZC1vbi1pbWFnZS1tYXBzLmh0bWwKK2FjY2Vzc2liaWxpdHkvYnV0dG9uLXBy
ZXNzLWFjdGlvbi5odG1sCithY2Nlc3NpYmlsaXR5L2NhbnZhcy5odG1sCithY2Nlc3NpYmlsaXR5
L2NvbnRlbnRlZGl0YWJsZS1oaWRkZW4tZGl2Lmh0bWwKK2FjY2Vzc2liaWxpdHkvZGltZW5zaW9u
cy1pbmNsdWRlLWRlc2NlbmRhbnRzLmh0bWwKK2FjY2Vzc2liaWxpdHkvZG9jdW1lbnQtYXR0cmli
dXRlcy5odG1sCithY2Nlc3NpYmlsaXR5L2VkaXRhYmxlLXdlYmFyZWEtY29udGV4dC1tZW51LXBv
aW50Lmh0bWwKK2FjY2Vzc2liaWxpdHkvaWZyYW1lLWJhc3RhcmRpemF0aW9uLmh0bWwKK2FjY2Vz
c2liaWxpdHkvaWdub3JlLXNwYWNlci1lbGVtZW50cy5odG1sCithY2Nlc3NpYmlsaXR5L2ltZy1h
cmlhLWJ1dHRvbi1hbHQtdGFnLmh0bWwKK2FjY2Vzc2liaWxpdHkvaW5wdXQtaW1hZ2UtYWx0Lmh0
bWwKK2FjY2Vzc2liaWxpdHkvbGFiZWwtZm9yLWNvbnRyb2wtaGl0dGVzdC5odG1sCithY2Nlc3Np
YmlsaXR5L2xhbmd1YWdlLWF0dHJpYnV0ZS5odG1sCithY2Nlc3NpYmlsaXR5L25lc3RlZC1sYXlv
dXQtY3Jhc2guaHRtbAorYWNjZXNzaWJpbGl0eS9ub2NoaWxkcmVuLWVsZW1lbnRzLmh0bWwKK2Fj
Y2Vzc2liaWxpdHkvbm9uLWRhdGEtdGFibGUtY2VsbC10aXRsZS11aS1lbGVtZW50Lmh0bWwKK2Fj
Y2Vzc2liaWxpdHkvb25jbGljay1oYW5kbGVycy5odG1sCithY2Nlc3NpYmlsaXR5L3BsYWNlaG9s
ZGVyLmh0bWwKK2FjY2Vzc2liaWxpdHkvcmFkaW8tYnV0dG9uLWNoZWNrYm94LXNpemUuaHRtbAor
YWNjZXNzaWJpbGl0eS9yYWRpby1idXR0b24tdGl0bGUtbGFiZWwuaHRtbAorYWNjZXNzaWJpbGl0
eS9zZWN1cmUtdGV4dGZpZWxkLXRpdGxlLXVpLmh0bWwKK2FjY2Vzc2liaWxpdHkvc2VsZWN0aW9u
LXN0YXRlcy5odG1sCithY2Nlc3NpYmlsaXR5L3RhYmxlLW1vZGlmaWNhdGlvbi1jcmFzaC5odG1s
CithY2Nlc3NpYmlsaXR5L3RhYmxlLW5vZmlyc3Rib2R5Lmh0bWwKK2FjY2Vzc2liaWxpdHkvdGFi
bGUtbm90Ym9keS5odG1sCithY2Nlc3NpYmlsaXR5L3RleHRhcmVhLWluc2VydGlvbi1wb2ludC1s
aW5lLW51bWJlci5odG1sCithY2Nlc3NpYmlsaXR5L3RleHRhcmVhLWxpbmUtZm9yLWluZGV4Lmh0
bWwKK2FjY2Vzc2liaWxpdHkvdGV4dGFyZWEtc2VsZWN0ZWQtdGV4dC1yYW5nZS5odG1sCithY2Nl
c3NpYmlsaXR5L3RoLWFzLXRpdGxlLXVpLmh0bWwKK2FjY2Vzc2liaWxpdHkvdHJhbnNmb3JtZWQt
ZWxlbWVudC5odG1sCithY2Nlc3NpYmlsaXR5L3Zpc2libGUtZWxlbWVudHMuaHRtbAorCisjIG5l
dyB0ZXN0cyB3aXRoIG5vIGV4cGVjdGVkIHJlc3VsdHMKK2FjY2Vzc2liaWxpdHkvYXJpYS1jaGVj
a2JveC10ZXh0Lmh0bWwKK2FjY2Vzc2liaWxpdHkvYXJpYS1jb21ib2JveC5odG1sCithY2Nlc3Np
YmlsaXR5L2FyaWEtZGVzY3JpYmVkYnktb24taW5wdXQuaHRtbAorYWNjZXNzaWJpbGl0eS9hcmlh
LWxhYmVsbGVkYnktb24taW5wdXQuaHRtbAorYWNjZXNzaWJpbGl0eS9hcmlhLWxhYmVsbGVkYnkt
c3RheS13aXRoaW4uaHRtbAorYWNjZXNzaWJpbGl0eS9hcmlhLWxpc3QtYW5kLWxpc3RpdGVtLmh0
bWwKK2FjY2Vzc2liaWxpdHkvYXJpYS1vcHRpb24tcm9sZS5odG1sCithY2Nlc3NpYmlsaXR5L2Fy
aWEtcm9sZXMuaHRtbAorYWNjZXNzaWJpbGl0eS9hcmlhLXRhYmxlcy5odG1sCithY2Nlc3NpYmls
aXR5L2FyaWEtdGFiLXJvbGVzLmh0bWwKK2FjY2Vzc2liaWxpdHkvaW1hZ2UtbWFwMS5odG1sCith
Y2Nlc3NpYmlsaXR5L2ltYWdlLW1hcDIuaHRtbAorYWNjZXNzaWJpbGl0eS9pbnB1dC1zbGlkZXIu
aHRtbAorYWNjZXNzaWJpbGl0eS9pbnRlcm5hbC1saW5rLWFuY2hvcnMyLmh0bWwKK2FjY2Vzc2li
aWxpdHkvbGVnZW5kLmh0bWwKK2FjY2Vzc2liaWxpdHkvbGlzdHMuaHRtbAorYWNjZXNzaWJpbGl0
eS9tZWRpYS1lbGVtZW50Lmh0bWwKK2FjY2Vzc2liaWxpdHkvcGx1Z2luLmh0bWwKK2FjY2Vzc2li
aWxpdHkvcmFkaW8tYnV0dG9uLWdyb3VwLW1lbWJlcnMuaHRtbAorYWNjZXNzaWJpbGl0eS90YWJs
ZS1hdHRyaWJ1dGVzLmh0bWwKK2FjY2Vzc2liaWxpdHkvdGFibGUtY2VsbHMuaHRtbAorYWNjZXNz
aWJpbGl0eS90YWJsZS1jZWxsLXNwYW5zLmh0bWwKK2FjY2Vzc2liaWxpdHkvdGFibGUtZGV0ZWN0
aW9uLmh0bWwKK2FjY2Vzc2liaWxpdHkvdGFibGUtb25lLWNlbGwuaHRtbAorYWNjZXNzaWJpbGl0
eS90YWJsZS1zZWN0aW9ucy5odG1sCithY2Nlc3NpYmlsaXR5L3RhYmxlLXdpdGgtYXJpYS1yb2xl
Lmh0bWwKK2FjY2Vzc2liaWxpdHkvdGFibGUtd2l0aC1ydWxlcy5odG1sCisKICMgLS0tLS0tLSBt
aXNzaW5nIGZlYXR1cmVzCi1hY2Nlc3NpYmlsaXR5CiB3ZWJhcmNoaXZlCiBzdmcvd2ViYXJjaGl2
ZQogCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>51813</attachid>
            <date>2010-03-26 21:49:42 -0700</date>
            <delta_ts>2010-06-11 12:58:09 -0700</delta_ts>
            <desc>previous patch + fix style</desc>
            <filename>36693-2.patch</filename>
            <type>text/plain</type>
            <size>28118</size>
            <attacher name="Laszlo Gombos">laszlo.gombos</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA1NjY1MykKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMjcgQEAKKzIwMTAtMDMtMjYgIExhc3psbyBHb21ib3MgIDxsYXN6bG8uMS5nb21i
b3NAbm9raWEuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIFtRdF0gQmFzZWxpbmUgYWNjZXNzaWJpbGl0eSBzdXBwb3J0IGZvciBRdFdlYktpdAor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MzY2OTMKKyAg
ICAgICAgCisgICAgICAgIEVtcHR5IHN0dWJzIGZvciBRdFdlYktpdC4KKworICAgICAgICAqIFdl
YkNvcmUucHJvOgorICAgICAgICAqIGFjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdC5o
OgorICAgICAgICAqIGFjY2Vzc2liaWxpdHkvcXQvQVhPYmplY3RDYWNoZVF0LmNwcDogQWRkZWQu
CisgICAgICAgIChXZWJDb3JlOjpBWE9iamVjdENhY2hlOjpkZXRhY2hXcmFwcGVyKToKKyAgICAg
ICAgKFdlYkNvcmU6OkFYT2JqZWN0Q2FjaGU6OmF0dGFjaFdyYXBwZXIpOgorICAgICAgICAoV2Vi
Q29yZTo6QVhPYmplY3RDYWNoZTo6cG9zdFBsYXRmb3JtTm90aWZpY2F0aW9uKToKKyAgICAgICAg
KFdlYkNvcmU6OkFYT2JqZWN0Q2FjaGU6OmhhbmRsZUZvY3VzZWRVSUVsZW1lbnRDaGFuZ2VkKToK
KyAgICAgICAgKFdlYkNvcmU6OkFYT2JqZWN0Q2FjaGU6OmhhbmRsZVNjcm9sbGVkVG9BbmNob3Ip
OgorICAgICAgICAqIGFjY2Vzc2liaWxpdHkvcXQvQWNjZXNzaWJpbGl0eU9iamVjdFF0LmNwcDoK
KyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L3F0L0FjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVyUXQu
aDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlcjo6
fkFjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVyKToKKyAgICAgICAgKFdlYkNvcmU6OkFjY2Vzc2li
aWxpdHlPYmplY3RXcmFwcGVyOjphdHRhY2hlZCk6CisgICAgICAgIChXZWJDb3JlOjpBY2Nlc3Np
YmlsaXR5T2JqZWN0V3JhcHBlcjo6YWNjZXNzaWJpbGl0eU9iamVjdCk6CisgICAgICAgIChXZWJD
b3JlOjpBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlcjo6QWNjZXNzaWJpbGl0eU9iamVjdFdyYXBw
ZXIpOgorCiAyMDEwLTAzLTI2ICBMYXN6bG8gR29tYm9zICA8bGFzemxvLjEuZ29tYm9zQG5va2lh
LmNvbT4KIAogICAgICAgICBVbnJldmlld2VkLCBtaW5vciBidWlsZCBmaXguCkluZGV4OiBXZWJD
b3JlL1dlYkNvcmUucHJvCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvV2ViQ29yZS5wcm8JKHJldmlz
aW9uIDU2NjUyKQorKysgV2ViQ29yZS9XZWJDb3JlLnBybwkod29ya2luZyBjb3B5KQpAQCAtMjIx
LDYgKzIyMSw3IEBAIElOQ0xVREVQQVRIID0gXAogICAgICQkSU5DTFVERVBBVEgKIAogSU5DTFVE
RVBBVEggPSBcCisgICAgJCRQV0QvYWNjZXNzaWJpbGl0eS9xdCBcCiAgICAgJCRQV0QvYnJpZGdl
L3F0IFwKICAgICAkJFBXRC9wYWdlL3F0IFwKICAgICAkJFBXRC9wbGF0Zm9ybS9ncmFwaGljcy9x
dCBcCkBAIC0yMDE1LDYgKzIwMTYsNyBAQCBIRUFERVJTICs9IFwKIAogU09VUkNFUyArPSBcCiAg
ICAgYWNjZXNzaWJpbGl0eS9xdC9BY2Nlc3NpYmlsaXR5T2JqZWN0UXQuY3BwIFwKKyAgICBhY2Nl
c3NpYmlsaXR5L3F0L0FYT2JqZWN0Q2FjaGVRdC5jcHAgXAogICAgIGJpbmRpbmdzL2pzL1Njcmlw
dENvbnRyb2xsZXJRdC5jcHAgXAogICAgIGJyaWRnZS9xdC9xdF9jbGFzcy5jcHAgXAogICAgIGJy
aWRnZS9xdC9xdF9pbnN0YW5jZS5jcHAgXApJbmRleDogV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0Fj
Y2Vzc2liaWxpdHlPYmplY3QuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2FjY2Vzc2liaWxpdHkv
QWNjZXNzaWJpbGl0eU9iamVjdC5oCShyZXZpc2lvbiA1NjY1MikKKysrIFdlYkNvcmUvYWNjZXNz
aWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0LmgJKHdvcmtpbmcgY29weSkKQEAgLTQ0LDYgKzQ0
LDggQEAKICNpbmNsdWRlICJDT01QdHIuaCIKICNlbGlmIFBMQVRGT1JNKENIUk9NSVVNKQogI2lu
Y2x1ZGUgIkFjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVyLmgiCisjZWxpZiBQTEFURk9STShRVCkK
KyNpbmNsdWRlICJBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlclF0LmgiCiAjZW5kaWYKIAogdHlw
ZWRlZiBzdHJ1Y3QgX05TUmFuZ2UgTlNSYW5nZTsKQEAgLTU2Niw2ICs1NjgsOCBAQCBwcm90ZWN0
ZWQ6CiAgICAgQXRrT2JqZWN0KiBtX3dyYXBwZXI7CiAjZWxpZiBQTEFURk9STShDSFJPTUlVTSkK
ICAgICBSZWZQdHI8QWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXI+IG1fd3JhcHBlcjsKKyNlbGlm
IFBMQVRGT1JNKFFUKQorICAgIFJlZlB0cjxBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlcj4gbV93
cmFwcGVyOwogI2VuZGlmCiB9OwogCkluZGV4OiBXZWJDb3JlL2FjY2Vzc2liaWxpdHkvcXQvQVhP
YmplY3RDYWNoZVF0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2FjY2Vzc2liaWxpdHkvcXQv
QVhPYmplY3RDYWNoZVF0LmNwcAkocmV2aXNpb24gMCkKKysrIFdlYkNvcmUvYWNjZXNzaWJpbGl0
eS9xdC9BWE9iamVjdENhY2hlUXQuY3BwCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDU1IEBACisv
KgorICogQ29weXJpZ2h0IChDKSAyMDEwIE5va2lhIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqIENvcHlyaWdodCAoQykgMjAwOCBBcHBsZSBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisg
KiBDb3B5cmlnaHQgKEMpIDIwMDggR29vZ2xlIEluYy4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMg
ZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgKiBtb2RpZnkg
aXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYworICog
TGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0
aGVyCisgKiB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55
IGxhdGVyIHZlcnNpb24uCisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRo
ZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFO
VFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICogTUVSQ0hBTlRBQklM
SVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAq
IExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICoKKyAq
IFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVy
YWwgUHVibGljIExpY2Vuc2UKKyAqIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZp
bGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRlIHRvCisgKiB0aGUgRnJlZSBTb2Z0d2FyZSBG
b3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLAorICogQm9z
dG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2lu
Y2x1ZGUgIkFYT2JqZWN0Q2FjaGUuaCIKKworI2lmIEhBVkUoQUNDRVNTSUJJTElUWSkKKworI2lu
Y2x1ZGUgIkFjY2Vzc2liaWxpdHlPYmplY3QuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCit2
b2lkIEFYT2JqZWN0Q2FjaGU6OmRldGFjaFdyYXBwZXIoQWNjZXNzaWJpbGl0eU9iamVjdCogb2Jq
KQoreworICAgIGlmIChBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlciogd3JhcHBlciA9IG9iai0+
d3JhcHBlcigpKQorICAgICAgICB3cmFwcGVyLT5kZXRhY2goKTsKK30KKwordm9pZCBBWE9iamVj
dENhY2hlOjphdHRhY2hXcmFwcGVyKEFjY2Vzc2liaWxpdHlPYmplY3QqKQoreworfQorCit2b2lk
IEFYT2JqZWN0Q2FjaGU6OnBvc3RQbGF0Zm9ybU5vdGlmaWNhdGlvbihBY2Nlc3NpYmlsaXR5T2Jq
ZWN0KiBvYmosIEFYTm90aWZpY2F0aW9uIG5vdGlmaWNhdGlvbikKK3sKK30KKwordm9pZCBBWE9i
amVjdENhY2hlOjpoYW5kbGVGb2N1c2VkVUlFbGVtZW50Q2hhbmdlZChSZW5kZXJPYmplY3QqLCBS
ZW5kZXJPYmplY3QqKQoreworfQorCit2b2lkIEFYT2JqZWN0Q2FjaGU6OmhhbmRsZVNjcm9sbGVk
VG9BbmNob3IoY29uc3QgTm9kZSopCit7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKwor
I2VuZGlmCkluZGV4OiBXZWJDb3JlL2FjY2Vzc2liaWxpdHkvcXQvQWNjZXNzaWJpbGl0eU9iamVj
dFF0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2FjY2Vzc2liaWxpdHkvcXQvQWNjZXNzaWJp
bGl0eU9iamVjdFF0LmNwcAkocmV2aXNpb24gNTY2NTIpCisrKyBXZWJDb3JlL2FjY2Vzc2liaWxp
dHkvcXQvQWNjZXNzaWJpbGl0eU9iamVjdFF0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsx
LDYgQEAKIC8qCiAgKiBDb3B5cmlnaHQgKEMpIDIwMDggQXBwbGUgTHRkLgorICogQ29weXJpZ2h0
IChDKSAyMDEwIE5va2lhIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBUaGlzIGxp
YnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCiAg
KiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1
YmxpYwpJbmRleDogV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L3F0L0FjY2Vzc2liaWxpdHlPYmplY3RX
cmFwcGVyUXQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2FjY2Vzc2liaWxpdHkvcXQvQWNjZXNz
aWJpbGl0eU9iamVjdFdyYXBwZXJRdC5oCShyZXZpc2lvbiAwKQorKysgV2ViQ29yZS9hY2Nlc3Np
YmlsaXR5L3F0L0FjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVyUXQuaAkocmV2aXNpb24gMCkKQEAg
LTAsMCArMSw0OSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMCBOb2tpYSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMDggQXBwbGUgSW5jLiBBbGwgUmln
aHRzIFJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDA4IEdvb2dsZSBJbmMuCisgKgorICog
VGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFu
ZC9vcgorICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2Vu
ZXJhbCBQdWJsaWMKKyAqIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJl
IEZvdW5kYXRpb247IGVpdGhlcgorICogdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQg
eW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBk
aXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICogYnV0IFdJ
VEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YK
KyAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4g
IFNlZSB0aGUgR05VCisgKiBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUg
ZGV0YWlscy4KKyAqCisgKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBH
TlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgKiBhbG9uZyB3aXRoIHRoaXMgbGli
cmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0bworICogdGhl
IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0
aCBGbG9vciwKKyAqIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgorICovCisKKyNpZm5kZWYg
QWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXJRdF9oCisjZGVmaW5lIEFjY2Vzc2liaWxpdHlPYmpl
Y3RXcmFwcGVyUXRfaAorCisjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KKworbmFtZXNwYWNl
IFdlYkNvcmUgeworCitjbGFzcyBBY2Nlc3NpYmlsaXR5T2JqZWN0OworY2xhc3MgQWNjZXNzaWJp
bGl0eU9iamVjdFdyYXBwZXIgOiBwdWJsaWMgUmVmQ291bnRlZDxBY2Nlc3NpYmlsaXR5T2JqZWN0
V3JhcHBlcj4geworcHVibGljOgorICAgIHZpcnR1YWwgfkFjY2Vzc2liaWxpdHlPYmplY3RXcmFw
cGVyKCkge30KKyAgICB2aXJ0dWFsIHZvaWQgZGV0YWNoKCkgPSAwOworICAgIGJvb2wgYXR0YWNo
ZWQoKSBjb25zdCB7IHJldHVybiBtX29iamVjdDsgfQorICAgIEFjY2Vzc2liaWxpdHlPYmplY3Qq
IGFjY2Vzc2liaWxpdHlPYmplY3QoKSBjb25zdCB7IHJldHVybiBtX29iamVjdDsgfQorCitwcm90
ZWN0ZWQ6CisgICAgQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXIoQWNjZXNzaWJpbGl0eU9iamVj
dCogb2JqKQorICAgICAgICA6IG1fb2JqZWN0KG9iaikKKyAgICB7CisgICAgfQorICAgIEFjY2Vz
c2liaWxpdHlPYmplY3RXcmFwcGVyKCkgOiBtX29iamVjdCgwKSB7IH0KKyAgICAKKyAgICBBY2Nl
c3NpYmlsaXR5T2JqZWN0KiBtX29iamVjdDsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUK
KworI2VuZGlmCkluZGV4OiBXZWJLaXRUb29scy9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2Vi
S2l0VG9vbHMvQ2hhbmdlTG9nCShyZXZpc2lvbiA1NjY1MikKKysrIFdlYktpdFRvb2xzL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE1IEBACisyMDEwLTAzLTI2ICBMYXN6bG8g
R29tYm9zICA8bGFzemxvLjEuZ29tYm9zQG5va2lhLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBbUXRdIEJhc2VsaW5lIGFjY2Vzc2liaWxpdHkg
c3VwcG9ydCBmb3IgUXRXZWJLaXQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTM2NjkzCisKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9BY2Nlc3NpYmls
aXR5VUlFbGVtZW50LmNwcDoKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9xdC9BY2Nlc3NpYmls
aXR5Q29udHJvbGxlclF0LmNwcDogQWRkZWQuCisgICAgICAgICogRHVtcFJlbmRlclRyZWUvcXQv
QWNjZXNzaWJpbGl0eVVJRWxlbWVudFF0LmNwcDogQWRkZWQuCisgICAgICAgICogRHVtcFJlbmRl
clRyZWUvcXQvRHVtcFJlbmRlclRyZWUucHJvOgorCiAyMDEwLTAzLTI2ICBEaXJrIFByYW5rZSAg
PGRwcmFua2VAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFVucmV2aWV3ZWQgZml4LgpJbmRleDog
V2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvQWNjZXNzaWJpbGl0eVVJRWxlbWVudC5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvQWNjZXNzaWJpbGl0eVVJRWxl
bWVudC5jcHAJKHJldmlzaW9uIDU2NjUyKQorKysgV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUv
QWNjZXNzaWJpbGl0eVVJRWxlbWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI4LDYgKzI4LDgg
QEAKIAogI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0pTUmV0YWluUHRyLmg+CiAKKyNpbmNsdWRl
IDxsaW1pdHMuaD4KKwogLy8gU3RhdGljIEZ1bmN0aW9ucwogCiBzdGF0aWMgaW5saW5lIEFjY2Vz
c2liaWxpdHlVSUVsZW1lbnQqIHRvQVhFbGVtZW50KEpTT2JqZWN0UmVmIG9iamVjdCkKSW5kZXg6
IFdlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL3F0L0FjY2Vzc2liaWxpdHlDb250cm9sbGVyUXQu
Y3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFdlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL3F0L0FjY2Vzc2li
aWxpdHlDb250cm9sbGVyUXQuY3BwCShyZXZpc2lvbiAwKQorKysgV2ViS2l0VG9vbHMvRHVtcFJl
bmRlclRyZWUvcXQvQWNjZXNzaWJpbGl0eUNvbnRyb2xsZXJRdC5jcHAJKHJldmlzaW9uIDApCkBA
IC0wLDAgKzEsODIgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMDgsIDIwMDksIDIwMTAgQXBw
bGUgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDEwIE5va2lh
IEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1Mg
T1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhF
CisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZP
UiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBT
SEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09O
U0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBS
T0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBE
QVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIkFjY2Vzc2liaWxp
dHlDb250cm9sbGVyLmgiCisKKyNpbmNsdWRlICJBY2Nlc3NpYmlsaXR5VUlFbGVtZW50LmgiCisj
aW5jbHVkZSAiRHVtcFJlbmRlclRyZWUuaCIKKworQWNjZXNzaWJpbGl0eUNvbnRyb2xsZXI6OkFj
Y2Vzc2liaWxpdHlDb250cm9sbGVyKCkKK3sKK30KKworQWNjZXNzaWJpbGl0eUNvbnRyb2xsZXI6
On5BY2Nlc3NpYmlsaXR5Q29udHJvbGxlcigpCit7Cit9CisKK0FjY2Vzc2liaWxpdHlVSUVsZW1l
bnQgQWNjZXNzaWJpbGl0eUNvbnRyb2xsZXI6OmVsZW1lbnRBdFBvaW50KGludCB4LCBpbnQgeSkK
K3sKKyAgICAvLyBGSVhNRTogaW1wbGVtZW50CisgICAgcmV0dXJuIDA7Cit9CisKK0FjY2Vzc2li
aWxpdHlVSUVsZW1lbnQgQWNjZXNzaWJpbGl0eUNvbnRyb2xsZXI6OmZvY3VzZWRFbGVtZW50KCkK
K3sKKyAgICAvLyBGSVhNRTogaW1wbGVtZW50CisgICAgcmV0dXJuIDA7Cit9CisKK0FjY2Vzc2li
aWxpdHlVSUVsZW1lbnQgQWNjZXNzaWJpbGl0eUNvbnRyb2xsZXI6OnJvb3RFbGVtZW50KCkKK3sK
KyAgICAvLyBGSVhNRTogaW1wbGVtZW50CisgICAgcmV0dXJuIDA7Cit9CisKK3ZvaWQgQWNjZXNz
aWJpbGl0eUNvbnRyb2xsZXI6OnNldExvZ0ZvY3VzRXZlbnRzKGJvb2wpCit7CisgICAgLy8gRklY
TUU6IGltcGxlbWVudAorfQorCit2b2lkIEFjY2Vzc2liaWxpdHlDb250cm9sbGVyOjpzZXRMb2dT
Y3JvbGxpbmdTdGFydEV2ZW50cyhib29sKQoreworICAgIC8vIEZJWE1FOiBpbXBsZW1lbnQKK30K
Kwordm9pZCBBY2Nlc3NpYmlsaXR5Q29udHJvbGxlcjo6c2V0TG9nVmFsdWVDaGFuZ2VFdmVudHMo
Ym9vbCkKK3sKKyAgICAvLyBGSVhNRTogaW1wbGVtZW50Cit9CisKK3ZvaWQgQWNjZXNzaWJpbGl0
eUNvbnRyb2xsZXI6OmFkZE5vdGlmaWNhdGlvbkxpc3RlbmVyKFBsYXRmb3JtVUlFbGVtZW50LCBK
U09iamVjdFJlZikKK3sKKyAgICAvLyBGSVhNRTogaW1wbGVtZW50Cit9CisKK3ZvaWQgQWNjZXNz
aWJpbGl0eUNvbnRyb2xsZXI6Om5vdGlmaWNhdGlvblJlY2VpdmVkKFBsYXRmb3JtVUlFbGVtZW50
LCBjb25zdCBzdGQ6OnN0cmluZyYpCit7CisgICAgLy8gRklYTUU6IGltcGxlbWVudAorfQpJbmRl
eDogV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvcXQvQWNjZXNzaWJpbGl0eVVJRWxlbWVudFF0
LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS9xdC9BY2Nlc3Np
YmlsaXR5VUlFbGVtZW50UXQuY3BwCShyZXZpc2lvbiAwKQorKysgV2ViS2l0VG9vbHMvRHVtcFJl
bmRlclRyZWUvcXQvQWNjZXNzaWJpbGl0eVVJRWxlbWVudFF0LmNwcAkocmV2aXNpb24gMCkKQEAg
LTAsMCArMSw1NTQgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMDggQXBwbGUgSW5jLiBBbGwg
UmlnaHRzIFJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDEwIE5va2lhIEluYy4gQWxsIFJp
Z2h0cyBSZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1l
dDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmlu
YXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGlu
IHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVk
IHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVE
IEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVE
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJ
TkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9G
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICog
UFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAorICov
CisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJBY2Nlc3NpYmlsaXR5VUlFbGVtZW50
LmgiCisKKyNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9KU1N0cmluZ1JlZi5oPgorI2luY2x1ZGUg
PHd0Zi9Bc3NlcnRpb25zLmg+CisKK0FjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OkFjY2Vzc2liaWxp
dHlVSUVsZW1lbnQoUGxhdGZvcm1VSUVsZW1lbnQgZWxlbWVudCkKKyAgICA6IG1fZWxlbWVudChl
bGVtZW50KQoreworfQorCitBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpBY2Nlc3NpYmlsaXR5VUlF
bGVtZW50KGNvbnN0IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQmIG90aGVyKQorICAgIDogbV9lbGVt
ZW50KG90aGVyLm1fZWxlbWVudCkKK3sKK30KKworQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6fkFj
Y2Vzc2liaWxpdHlVSUVsZW1lbnQoKQoreworfQorCit2b2lkIEFjY2Vzc2liaWxpdHlVSUVsZW1l
bnQ6OmdldExpbmtlZFVJRWxlbWVudHMoVmVjdG9yPEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ+JiBl
bGVtZW50cykKK3sKKyAgICAvLyBGSVhNRTogaW1wbGVtZW50Cit9CisKK3ZvaWQgQWNjZXNzaWJp
bGl0eVVJRWxlbWVudDo6Z2V0RG9jdW1lbnRMaW5rcyhWZWN0b3I8QWNjZXNzaWJpbGl0eVVJRWxl
bWVudD4mKQoreworICAgIC8vIEZJWE1FOiBpbXBsZW1lbnQKK30KKwordm9pZCBBY2Nlc3NpYmls
aXR5VUlFbGVtZW50OjpnZXRDaGlsZHJlbihWZWN0b3I8QWNjZXNzaWJpbGl0eVVJRWxlbWVudD4m
IGNoaWxkcmVuKQoreworICAgIC8vIEZJWE1FOiBpbXBsZW1lbnQKK30KKwordm9pZCBBY2Nlc3Np
YmlsaXR5VUlFbGVtZW50OjpnZXRDaGlsZHJlbldpdGhSYW5nZShWZWN0b3I8QWNjZXNzaWJpbGl0
eVVJRWxlbWVudD4mIGVsZW1lbnRWZWN0b3IsIHVuc2lnbmVkIHN0YXJ0LCB1bnNpZ25lZCBlbmQp
Cit7CisgICAgLy8gRklYTUU6IGltcGxlbWVudAorfQorCitpbnQgQWNjZXNzaWJpbGl0eVVJRWxl
bWVudDo6cm93Q291bnQoKQoreworICAgIC8vIEZJWE1FOiBpbXBsZW1lbnQKKyAgICByZXR1cm4g
MDsKK30KKworaW50IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmNvbHVtbkNvdW50KCkKK3sKKyAg
ICAvLyBGSVhNRTogaW1wbGVtZW50CisgICAgcmV0dXJuIDA7Cit9CisKK2ludCBBY2Nlc3NpYmls
aXR5VUlFbGVtZW50OjpjaGlsZHJlbkNvdW50KCkKK3sKKyAgICAvLyBGSVhNRTogaW1wbGVtZW50
CisgICAgcmV0dXJuIDA7Cit9CisKK0FjY2Vzc2liaWxpdHlVSUVsZW1lbnQgQWNjZXNzaWJpbGl0
eVVJRWxlbWVudDo6ZWxlbWVudEF0UG9pbnQoaW50IHgsIGludCB5KQoreworICAgIC8vIEZJWE1F
OiBpbXBsZW1lbnQKKyAgICByZXR1cm4gMDsKK30KKworQWNjZXNzaWJpbGl0eVVJRWxlbWVudCBB
Y2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpnZXRDaGlsZEF0SW5kZXgodW5zaWduZWQgaW5kZXgpCit7
CisgICAgLy8gRklYTUU6IGltcGxlbWVudAorICAgIHJldHVybiAwOyAgICAgICAgCit9CisKK3Vu
c2lnbmVkIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmluZGV4T2ZDaGlsZChBY2Nlc3NpYmlsaXR5
VUlFbGVtZW50KiBlbGVtZW50KQoreyAKKyAgICAvLyBGSVhNRTogaW1wbGVtZW50CisgICAgcmV0
dXJuIDA7Cit9CisKK0pTU3RyaW5nUmVmIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmFsbEF0dHJp
YnV0ZXMoKQoreworICAgIC8vIEZJWE1FOiBpbXBsZW1lbnQKKyAgICByZXR1cm4gSlNTdHJpbmdD
cmVhdGVXaXRoQ2hhcmFjdGVycygwLCAwKTsKK30KKworSlNTdHJpbmdSZWYgQWNjZXNzaWJpbGl0
eVVJRWxlbWVudDo6YXR0cmlidXRlc09mTGlua2VkVUlFbGVtZW50cygpCit7CisgICAgLy8gRklY
TUU6IGltcGxlbWVudAorICAgIHJldHVybiBKU1N0cmluZ0NyZWF0ZVdpdGhDaGFyYWN0ZXJzKDAs
IDApOworfQorCitKU1N0cmluZ1JlZiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjphdHRyaWJ1dGVz
T2ZEb2N1bWVudExpbmtzKCkKK3sKKyAgICAvLyBGSVhNRTogaW1wbGVtZW50CisgICAgcmV0dXJu
IEpTU3RyaW5nQ3JlYXRlV2l0aENoYXJhY3RlcnMoMCwgMCk7Cit9CisKK0FjY2Vzc2liaWxpdHlV
SUVsZW1lbnQgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6dGl0bGVVSUVsZW1lbnQoKQoreworICAg
IC8vIEZJWE1FOiBpbXBsZW1lbnQKKyAgICByZXR1cm4gMDsKK30KKworQWNjZXNzaWJpbGl0eVVJ
RWxlbWVudCBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpwYXJlbnRFbGVtZW50KCkKK3sKKyAgICAv
LyBGSVhNRTogaW1wbGVtZW50CisgICAgcmV0dXJuIDA7Cit9CisKK0pTU3RyaW5nUmVmIEFjY2Vz
c2liaWxpdHlVSUVsZW1lbnQ6OmF0dHJpYnV0ZXNPZkNoaWxkcmVuKCkKK3sKKyAgICAvLyBGSVhN
RTogaW1wbGVtZW50CisgICAgcmV0dXJuIEpTU3RyaW5nQ3JlYXRlV2l0aENoYXJhY3RlcnMoMCwg
MCk7Cit9CisKK0pTU3RyaW5nUmVmIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OnBhcmFtZXRlcml6
ZWRBdHRyaWJ1dGVOYW1lcygpCit7CisgICAgLy8gRklYTUU6IGltcGxlbWVudAorICAgIHJldHVy
biBKU1N0cmluZ0NyZWF0ZVdpdGhDaGFyYWN0ZXJzKDAsIDApOworfQorCitKU1N0cmluZ1JlZiBB
Y2Nlc3NpYmlsaXR5VUlFbGVtZW50Ojpyb2xlKCkKK3sKKyAgICAvLyBGSVhNRTogaW1wbGVtZW50
CisgICAgcmV0dXJuIDA7Cit9CisKK0pTU3RyaW5nUmVmIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6
OnN1YnJvbGUoKQoreworICAgIC8vIEZJWE1FOiBpbXBsZW1lbnQKKyAgICByZXR1cm4gMDsKK30K
KworSlNTdHJpbmdSZWYgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6cm9sZURlc2NyaXB0aW9uKCkK
K3sKKyAgICAvLyBGSVhNRTogaW1wbGVtZW50CisgICAgcmV0dXJuIDA7Cit9CisKK0pTU3RyaW5n
UmVmIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OnRpdGxlKCkKK3sKKyAgICAvLyBGSVhNRTogaW1w
bGVtZW50CisgICAgcmV0dXJuIDA7Cit9CisKK0pTU3RyaW5nUmVmIEFjY2Vzc2liaWxpdHlVSUVs
ZW1lbnQ6OmRlc2NyaXB0aW9uKCkKK3sKKyAgICAvLyBGSVhNRTogaW1wbGVtZW50CisgICAgcmV0
dXJuIDA7Cit9CisKK0pTU3RyaW5nUmVmIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OnN0cmluZ1Zh
bHVlKCkKK3sKKyAgICAvLyBGSVhNRTogaW1wbGVtZW50CisgICAgcmV0dXJuIEpTU3RyaW5nQ3Jl
YXRlV2l0aENoYXJhY3RlcnMoMCwgMCk7Cit9CisKK0pTU3RyaW5nUmVmIEFjY2Vzc2liaWxpdHlV
SUVsZW1lbnQ6Omxhbmd1YWdlKCkKK3sKKyAgICAvLyBGSVhNRTogaW1wbGVtZW50CisgICAgcmV0
dXJuIEpTU3RyaW5nQ3JlYXRlV2l0aENoYXJhY3RlcnMoMCwgMCk7Cit9CisKK2RvdWJsZSBBY2Nl
c3NpYmlsaXR5VUlFbGVtZW50Ojp4KCkKK3sKKyAgICAvLyBGSVhNRTogaW1wbGVtZW50CisgICAg
cmV0dXJuIDAuZjsKK30KKworZG91YmxlIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OnkoKQorewor
ICAgIC8vIEZJWE1FOiBpbXBsZW1lbnQKKyAgICByZXR1cm4gMC5mOworfQorCitkb3VibGUgQWNj
ZXNzaWJpbGl0eVVJRWxlbWVudDo6d2lkdGgoKQoreworICAgIC8vIEZJWE1FOiBpbXBsZW1lbnQK
KyAgICByZXR1cm4gMC5mOworfQorCitkb3VibGUgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6aGVp
Z2h0KCkKK3sKKyAgICAvLyBGSVhNRTogaW1wbGVtZW50CisgICAgcmV0dXJuIDAuZjsKK30KKwor
ZG91YmxlIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmNsaWNrUG9pbnRYKCkKK3sKKyAgICAvLyBG
SVhNRTogaW1wbGVtZW50CisgICAgcmV0dXJuIDAuZjsKK30KKworZG91YmxlIEFjY2Vzc2liaWxp
dHlVSUVsZW1lbnQ6OmNsaWNrUG9pbnRZKCkKK3sKKyAgICAvLyBGSVhNRTogaW1wbGVtZW50Cisg
ICAgcmV0dXJuIDAuZjsKK30KKworSlNTdHJpbmdSZWYgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6
b3JpZW50YXRpb24oKSBjb25zdAoreworICAgIC8vIEZJWE1FOiBpbXBsZW1lbnQKKyAgICByZXR1
cm4gMDsKK30KKworZG91YmxlIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmludFZhbHVlKCkgY29u
c3QKK3sKKyAgICAvLyBGSVhNRTogaW1wbGVtZW50CisgICAgcmV0dXJuIDAuMGY7Cit9CisKK2Rv
dWJsZSBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjptaW5WYWx1ZSgpCit7CisgICAgLy8gRklYTUU6
IGltcGxlbWVudAorICAgIHJldHVybiAwLjBmOworfQorCitkb3VibGUgQWNjZXNzaWJpbGl0eVVJ
RWxlbWVudDo6bWF4VmFsdWUoKQoreworICAgIC8vIEZJWE1FOiBpbXBsZW1lbnQKKyAgICByZXR1
cm4gMC4wZjsKK30KKworSlNTdHJpbmdSZWYgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6dmFsdWVE
ZXNjcmlwdGlvbigpCit7CisgICAgLy8gRklYTUU6IGltcGxlbWVudAorICAgIHJldHVybiBKU1N0
cmluZ0NyZWF0ZVdpdGhDaGFyYWN0ZXJzKDAsIDApOworfQorCitib29sIEFjY2Vzc2liaWxpdHlV
SUVsZW1lbnQ6OmlzRW5hYmxlZCgpCit7CisgICAgLy8gRklYTUU6IGltcGxlbWVudAorICAgIHJl
dHVybiBmYWxzZTsKK30KKworCitpbnQgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6aW5zZXJ0aW9u
UG9pbnRMaW5lTnVtYmVyKCkKK3sKKyAgICAvLyBGSVhNRTogaW1wbGVtZW50CisgICAgcmV0dXJu
IDA7Cit9CisKK2Jvb2wgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6aXNBY3Rpb25TdXBwb3J0ZWQo
SlNTdHJpbmdSZWYgYWN0aW9uKQoreworICAgIC8vIEZJWE1FOiBpbXBsZW1lbnQKKyAgICByZXR1
cm4gZmFsc2U7Cit9CisKK2Jvb2wgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6aXNSZXF1aXJlZCgp
IGNvbnN0Cit7CisgICAgLy8gRklYTUU6IGltcGxlbWVudAorICAgIHJldHVybiBmYWxzZTsKK30K
KworYm9vbCBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50Ojppc1NlbGVjdGVkKCkgY29uc3QKK3sKKyAg
ICAvLyBGSVhNRTogaW1wbGVtZW50CisgICAgcmV0dXJuIGZhbHNlOworfQorCitpbnQgQWNjZXNz
aWJpbGl0eVVJRWxlbWVudDo6aGllcmFyY2hpY2FsTGV2ZWwoKSBjb25zdAoreworICAgIC8vIEZJ
WE1FOiBpbXBsZW1lbnQKKyAgICByZXR1cm4gMDsKK30KKworYm9vbCBBY2Nlc3NpYmlsaXR5VUlF
bGVtZW50OjphcmlhSXNHcmFiYmVkKCkgY29uc3QKK3sKKyAgICAvLyBGSVhNRTogaW1wbGVtZW50
CisgICAgcmV0dXJuIGZhbHNlOworfQorIAorSlNTdHJpbmdSZWYgQWNjZXNzaWJpbGl0eVVJRWxl
bWVudDo6YXJpYURyb3BFZmZlY3RzKCkgY29uc3QKK3sgICAKKyAgICAvLyBGSVhNRTogaW1wbGVt
ZW50CisgICAgcmV0dXJuIDA7IAorfQorCitib29sIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6Omlz
RXhwYW5kZWQoKSBjb25zdAoreworICAgIC8vIEZJWE1FOiBpbXBsZW1lbnQKKyAgICByZXR1cm4g
ZmFsc2U7Cit9CisKK2Jvb2wgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6aXNDaGVja2VkKCkgY29u
c3QKK3sKKyAgICByZXR1cm4gaW50VmFsdWUoKTsKK30KKworSlNTdHJpbmdSZWYgQWNjZXNzaWJp
bGl0eVVJRWxlbWVudDo6YXR0cmlidXRlc09mQ29sdW1uSGVhZGVycygpCit7CisgICAgLy8gRklY
TUU6IGltcGxlbWVudAorICAgIHJldHVybiBKU1N0cmluZ0NyZWF0ZVdpdGhDaGFyYWN0ZXJzKDAs
IDApOworfQorCitKU1N0cmluZ1JlZiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjphdHRyaWJ1dGVz
T2ZSb3dIZWFkZXJzKCkKK3sKKyAgICAvLyBGSVhNRTogaW1wbGVtZW50CisgICAgcmV0dXJuIEpT
U3RyaW5nQ3JlYXRlV2l0aENoYXJhY3RlcnMoMCwgMCk7Cit9CisKK0pTU3RyaW5nUmVmIEFjY2Vz
c2liaWxpdHlVSUVsZW1lbnQ6OmF0dHJpYnV0ZXNPZkNvbHVtbnMoKQoreworICAgIC8vIEZJWE1F
OiBpbXBsZW1lbnQKKyAgICByZXR1cm4gSlNTdHJpbmdDcmVhdGVXaXRoQ2hhcmFjdGVycygwLCAw
KTsKK30KKworSlNTdHJpbmdSZWYgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6YXR0cmlidXRlc09m
Um93cygpCit7CisgICAgLy8gRklYTUU6IGltcGxlbWVudAorICAgIHJldHVybiBKU1N0cmluZ0Ny
ZWF0ZVdpdGhDaGFyYWN0ZXJzKDAsIDApOworfQorCitKU1N0cmluZ1JlZiBBY2Nlc3NpYmlsaXR5
VUlFbGVtZW50OjphdHRyaWJ1dGVzT2ZWaXNpYmxlQ2VsbHMoKQoreworICAgIC8vIEZJWE1FOiBp
bXBsZW1lbnQKKyAgICByZXR1cm4gSlNTdHJpbmdDcmVhdGVXaXRoQ2hhcmFjdGVycygwLCAwKTsK
K30KKworSlNTdHJpbmdSZWYgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6YXR0cmlidXRlc09mSGVh
ZGVyKCkKK3sKKyAgICAvLyBGSVhNRTogaW1wbGVtZW50CisgICAgcmV0dXJuIEpTU3RyaW5nQ3Jl
YXRlV2l0aENoYXJhY3RlcnMoMCwgMCk7Cit9CisKK2ludCBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50
OjppbmRleEluVGFibGUoKQoreworICAgIC8vIEZJWE1FOiBpbXBsZW1lbnQKKyAgICByZXR1cm4g
MDsKK30KKworSlNTdHJpbmdSZWYgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6cm93SW5kZXhSYW5n
ZSgpCit7CisgICAgLy8gRklYTUU6IGltcGxlbWVudAorICAgIHJldHVybiBKU1N0cmluZ0NyZWF0
ZVdpdGhDaGFyYWN0ZXJzKDAsIDApOworfQorCitKU1N0cmluZ1JlZiBBY2Nlc3NpYmlsaXR5VUlF
bGVtZW50Ojpjb2x1bW5JbmRleFJhbmdlKCkKK3sKKyAgICAvLyBGSVhNRTogaW1wbGVtZW50Cisg
ICAgcmV0dXJuIEpTU3RyaW5nQ3JlYXRlV2l0aENoYXJhY3RlcnMoMCwgMCk7Cit9CisKK2ludCBB
Y2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpsaW5lRm9ySW5kZXgoaW50KQoreworICAgIC8vIEZJWE1F
OiBpbXBsZW1lbnQKKyAgICByZXR1cm4gMDsKK30KKworSlNTdHJpbmdSZWYgQWNjZXNzaWJpbGl0
eVVJRWxlbWVudDo6Ym91bmRzRm9yUmFuZ2UodW5zaWduZWQgbG9jYXRpb24sIHVuc2lnbmVkIGxl
bmd0aCkKK3sKKyAgICAvLyBGSVhNRTogaW1wbGVtZW50CisgICAgcmV0dXJuIEpTU3RyaW5nQ3Jl
YXRlV2l0aENoYXJhY3RlcnMoMCwgMCk7Cit9CisKK0pTU3RyaW5nUmVmIEFjY2Vzc2liaWxpdHlV
SUVsZW1lbnQ6OnN0cmluZ0ZvclJhbmdlKHVuc2lnbmVkLCB1bnNpZ25lZCkgCit7CisgICAgLy8g
RklYTUU6IGltcGxlbWVudAorICAgIHJldHVybiBKU1N0cmluZ0NyZWF0ZVdpdGhDaGFyYWN0ZXJz
KDAsIDApOworfSAKKworQWNjZXNzaWJpbGl0eVVJRWxlbWVudCBBY2Nlc3NpYmlsaXR5VUlFbGVt
ZW50OjpjZWxsRm9yQ29sdW1uQW5kUm93KHVuc2lnbmVkIGNvbHVtbiwgdW5zaWduZWQgcm93KQor
eworICAgIC8vIEZJWE1FOiBpbXBsZW1lbnQKKyAgICByZXR1cm4gMDsKK30KKworSlNTdHJpbmdS
ZWYgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6c2VsZWN0ZWRUZXh0UmFuZ2UoKQoreworICAgIC8v
IEZJWE1FOiBpbXBsZW1lbnQKKyAgICByZXR1cm4gSlNTdHJpbmdDcmVhdGVXaXRoQ2hhcmFjdGVy
cygwLCAwKTsKK30KKwordm9pZCBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpzZXRTZWxlY3RlZFRl
eHRSYW5nZSh1bnNpZ25lZCBsb2NhdGlvbiwgdW5zaWduZWQgbGVuZ3RoKQoreworICAgIC8vIEZJ
WE1FOiBpbXBsZW1lbnQKK30KKworSlNTdHJpbmdSZWYgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6
c3RyaW5nQXR0cmlidXRlVmFsdWUoSlNTdHJpbmdSZWYgYXR0cmlidXRlKQoreworICAgIC8vIEZJ
WE1FOiBpbXBsZW1lbnQKKyAgICByZXR1cm4gSlNTdHJpbmdDcmVhdGVXaXRoQ2hhcmFjdGVycygw
LCAwKTsKK30KKworYm9vbCBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50Ojpib29sQXR0cmlidXRlVmFs
dWUoSlNTdHJpbmdSZWYgYXR0cmlidXRlKQoreworICAgIC8vIEZJWE1FOiBpbXBsZW1lbnQKKyAg
ICByZXR1cm4gZmFsc2U7Cit9CisKK2Jvb2wgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6aXNBdHRy
aWJ1dGVTZXR0YWJsZShKU1N0cmluZ1JlZiBhdHRyaWJ1dGUpCit7CisgICAgLy8gRklYTUU6IGlt
cGxlbWVudAorICAgIHJldHVybiBmYWxzZTsKK30KKworYm9vbCBBY2Nlc3NpYmlsaXR5VUlFbGVt
ZW50Ojppc0F0dHJpYnV0ZVN1cHBvcnRlZChKU1N0cmluZ1JlZiBhdHRyaWJ1dGUpCit7CisgICAg
cmV0dXJuIGZhbHNlOworfQorCit2b2lkIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmluY3JlbWVu
dCgpCit7CisgICAgLy8gRklYTUU6IGltcGxlbWVudAorfQorCit2b2lkIEFjY2Vzc2liaWxpdHlV
SUVsZW1lbnQ6OmRlY3JlbWVudCgpCit7CisgICAgLy8gRklYTUU6IGltcGxlbWVudAorfQorCit2
b2lkIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OnByZXNzKCkKK3sKKyAgICAvLyBGSVhNRTogaW1w
bGVtZW50Cit9CisKK3ZvaWQgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6c2hvd01lbnUoKQorewor
ICAgIC8vIEZJWE1FOiBpbXBsZW1lbnQKK30KKworQWNjZXNzaWJpbGl0eVVJRWxlbWVudCBBY2Nl
c3NpYmlsaXR5VUlFbGVtZW50OjpkaXNjbG9zZWRSb3dBdEluZGV4KHVuc2lnbmVkIGluZGV4KQor
eworICAgIHJldHVybiAwOworfQorCitBY2Nlc3NpYmlsaXR5VUlFbGVtZW50IEFjY2Vzc2liaWxp
dHlVSUVsZW1lbnQ6OmFyaWFPd25zRWxlbWVudEF0SW5kZXgodW5zaWduZWQgaW5kZXgpCit7Cisg
ICAgcmV0dXJuIDA7Cit9CisKK0FjY2Vzc2liaWxpdHlVSUVsZW1lbnQgQWNjZXNzaWJpbGl0eVVJ
RWxlbWVudDo6YXJpYUZsb3dUb0VsZW1lbnRBdEluZGV4KHVuc2lnbmVkIGluZGV4KQoreworICAg
IHJldHVybiAwOworfQorCitBY2Nlc3NpYmlsaXR5VUlFbGVtZW50IEFjY2Vzc2liaWxpdHlVSUVs
ZW1lbnQ6OnNlbGVjdGVkUm93QXRJbmRleCh1bnNpZ25lZCBpbmRleCkKK3sKKyAgICByZXR1cm4g
MDsKK30KKworQWNjZXNzaWJpbGl0eVVJRWxlbWVudCBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50Ojpk
aXNjbG9zZWRCeVJvdygpCit7CisgICAgcmV0dXJuIDA7Cit9CisKK0pTU3RyaW5nUmVmIEFjY2Vz
c2liaWxpdHlVSUVsZW1lbnQ6OmFjY2Vzc2liaWxpdHlWYWx1ZSgpIGNvbnN0Cit7CisgICAgLy8g
RklYTUU6IGltcGxlbWVudAorICAgIHJldHVybiBKU1N0cmluZ0NyZWF0ZVdpdGhDaGFyYWN0ZXJz
KDAsIDApOworfQorCitKU1N0cmluZ1JlZiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50Ojpkb2N1bWVu
dEVuY29kaW5nKCkKK3sKKyAgICAvLyBGSVhNRTogaW1wbGVtZW50CisgICAgcmV0dXJuIEpTU3Ry
aW5nQ3JlYXRlV2l0aENoYXJhY3RlcnMoMCwgMCk7ICAgICAgICAKK30KKworSlNTdHJpbmdSZWYg
QWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6ZG9jdW1lbnRVUkkoKQoreworICAgIC8vIEZJWE1FOiBp
bXBsZW1lbnQKKyAgICByZXR1cm4gSlNTdHJpbmdDcmVhdGVXaXRoQ2hhcmFjdGVycygwLCAwKTsg
ICAgICAgIAorfQorCitKU1N0cmluZ1JlZiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50Ojp1cmwoKQor
eworICAgIC8vIEZJWE1FOiBpbXBsZW1lbnQKKyAgICByZXR1cm4gSlNTdHJpbmdDcmVhdGVXaXRo
Q2hhcmFjdGVycygwLCAwKTsKK30KKworYm9vbCBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjphZGRO
b3RpZmljYXRpb25MaXN0ZW5lcihKU09iamVjdFJlZiBmdW5jdGlvbkNhbGxiYWNrKQoreworICAg
IC8vIEZJWE1FOiBpbXBsZW1lbnQKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKK2Jvb2wgQWNjZXNz
aWJpbGl0eVVJRWxlbWVudDo6aXNTZWxlY3RhYmxlKCkgY29uc3QKK3sKKyAgICAvLyBGSVhNRTog
aW1wbGVtZW50CisgICAgcmV0dXJuIGZhbHNlOworfQorCitib29sIEFjY2Vzc2liaWxpdHlVSUVs
ZW1lbnQ6OmlzTXVsdGlTZWxlY3RhYmxlKCkgY29uc3QKK3sKKyAgICAvLyBGSVhNRTogaW1wbGVt
ZW50CisgICAgcmV0dXJuIGZhbHNlOworfQorCitib29sIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6
OmlzVmlzaWJsZSgpIGNvbnN0Cit7CisgICAgLy8gRklYTUU6IGltcGxlbWVudAorICAgIHJldHVy
biBmYWxzZTsKK30KKworYm9vbCBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50Ojppc09mZlNjcmVlbigp
IGNvbnN0Cit7CisgICAgLy8gRklYTUU6IGltcGxlbWVudAorICAgIHJldHVybiBmYWxzZTsKK30K
KworYm9vbCBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50Ojppc0NvbGxhcHNlZCgpIGNvbnN0Cit7Cisg
ICAgLy8gRklYTUU6IGltcGxlbWVudAorICAgIHJldHVybiBmYWxzZTsKK30KKworYm9vbCBBY2Nl
c3NpYmlsaXR5VUlFbGVtZW50OjpoYXNQb3B1cCgpIGNvbnN0Cit7CisgICAgLy8gRklYTUU6IGlt
cGxlbWVudAorICAgIHJldHVybiBmYWxzZTsKK30KKwordm9pZCBBY2Nlc3NpYmlsaXR5VUlFbGVt
ZW50Ojp0YWtlRm9jdXMoKQoreworICAgIC8vIEZJWE1FOiBpbXBsZW1lbnQKK30KKwordm9pZCBB
Y2Nlc3NpYmlsaXR5VUlFbGVtZW50Ojp0YWtlU2VsZWN0aW9uKCkKK3sKKyAgICAvLyBGSVhNRTog
aW1wbGVtZW50Cit9CisKK3ZvaWQgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6YWRkU2VsZWN0aW9u
KCkKK3sKKyAgICAvLyBGSVhNRTogaW1wbGVtZW50Cit9CisKK3ZvaWQgQWNjZXNzaWJpbGl0eVVJ
RWxlbWVudDo6cmVtb3ZlU2VsZWN0aW9uKCkKK3sKKyAgICAvLyBGSVhNRTogaW1wbGVtZW50Cit9
CkluZGV4OiBXZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS9xdC9EdW1wUmVuZGVyVHJlZS5wcm8K
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvcXQvRHVtcFJlbmRlclRy
ZWUucHJvCShyZXZpc2lvbiA1NjY1MikKKysrIFdlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL3F0
L0R1bXBSZW5kZXJUcmVlLnBybwkod29ya2luZyBjb3B5KQpAQCAtMjEsNyArMjEsMTAgQEAgREVT
VERJUiA9IC4uLy4uLy4uL2JpbgogUVQgPSBjb3JlIGd1aSBuZXR3b3JrIHRlc3RsaWIKIG1hY3g6
IFFUICs9IHhtbAogCi1IRUFERVJTID0gJCRCQVNFRElSL1dvcmtRdWV1ZS5oIFwKK0hFQURFUlMg
PSBcCisgICAgJCRCQVNFRElSL0FjY2Vzc2liaWxpdHlDb250cm9sbGVyLmggXAorICAgICQkQkFT
RURJUi9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50LmggXAorICAgICQkQkFTRURJUi9Xb3JrUXVldWUu
aCBcCiAgICAgRHVtcFJlbmRlclRyZWVRdC5oIFwKICAgICBFdmVudFNlbmRlclF0LmggXAogICAg
IFRleHRJbnB1dENvbnRyb2xsZXJRdC5oIFwKQEAgLTI5LDggKzMyLDE0IEBAIEhFQURFUlMgPSAk
JEJBU0VESVIvV29ya1F1ZXVlLmggXAogICAgIExheW91dFRlc3RDb250cm9sbGVyUXQuaCBcCiAg
ICAgR0NDb250cm9sbGVyUXQuaCBcCiAgICAgdGVzdHBsdWdpbi5oCi1TT1VSQ0VTID0gLi4vLi4v
Li4vSmF2YVNjcmlwdENvcmUvd3RmL0Fzc2VydGlvbnMuY3BwIFwKKworU09VUkNFUyA9IFwKKyAg
ICAuLi8uLi8uLi9KYXZhU2NyaXB0Q29yZS93dGYvQXNzZXJ0aW9ucy5jcHAgXAorICAgICQkQkFT
RURJUi9BY2Nlc3NpYmlsaXR5Q29udHJvbGxlci5jcHAgXAorICAgICQkQkFTRURJUi9BY2Nlc3Np
YmlsaXR5VUlFbGVtZW50LmNwcCBcCiAgICAgJCRCQVNFRElSL1dvcmtRdWV1ZS5jcHAgXAorICAg
IEFjY2Vzc2liaWxpdHlDb250cm9sbGVyUXQuY3BwIFwKKyAgICBBY2Nlc3NpYmlsaXR5VUlFbGVt
ZW50UXQuY3BwIFwKICAgICBEdW1wUmVuZGVyVHJlZVF0LmNwcCBcCiAgICAgRXZlbnRTZW5kZXJR
dC5jcHAgXAogICAgIFRleHRJbnB1dENvbnRyb2xsZXJRdC5jcHAgXApJbmRleDogTGF5b3V0VGVz
dHMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL0NoYW5nZUxvZwkocmV2aXNp
b24gNTY2NTIpCisrKyBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEs
MyArMSwxNSBAQAorMjAxMC0wMy0yNiAgTGFzemxvIEdvbWJvcyAgPGxhc3psby4xLmdvbWJvc0Bu
b2tpYS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgW1F0XSBCYXNlbGluZSBhY2Nlc3NpYmlsaXR5IHN1cHBvcnQgZm9yIFF0V2ViS2l0CisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0zNjY5MworICAgICAg
ICAKKyAgICAgICAgTGlzdCB0aGUgZmFpbGluZyB0ZXN0cyBpbmRpdmlkdWFsbHkuIDUgdGVzdCBh
cmUgcGFzc2luZyB3aXRoIHRoZQorICAgICAgICBzdHVicy4KKworICAgICAgICAqIHBsYXRmb3Jt
L3F0L1NraXBwZWQ6CisKIDIwMTAtMDMtMjYgIEp1c3RpbiBTY2h1aCAgPGpzY2h1aEBjaHJvbWl1
bS5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgQWRhbSBCYXJ0aC4KSW5kZXg6IExheW91dFRl
c3RzL3BsYXRmb3JtL3F0L1NraXBwZWQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvcGxhdGZv
cm0vcXQvU2tpcHBlZAkocmV2aXNpb24gNTY2NTIpCisrKyBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9x
dC9Ta2lwcGVkCSh3b3JraW5nIGNvcHkpCkBAIC05NSw4ICs5NSw4MSBAQCBodHRwL3Rlc3RzL25h
dmlnYXRpb24vdGltZXJyZWRpcmVjdC1zdWJmCiAjIEZhaWxpbmcgaHR0cCBtdWx0aXBhcnQgdGVz
dAogaHR0cC90ZXN0cy9tdWx0aXBhcnQvaW52YWxpZC1pbWFnZS1kYXRhLXN0YW5kYWxvbmUuaHRt
bAogCisjIEZhaWxpbmcgYWNjZXNzaWJpbGl0eSB0ZXN0cworYWNjZXNzaWJpbGl0eS9hcmlhLWNo
ZWNrYm94LWNoZWNrZWQuaHRtbAorYWNjZXNzaWJpbGl0eS9hcmlhLWNvbnRyb2xzLXdpdGgtdGFi
cy5odG1sCithY2Nlc3NpYmlsaXR5L2FyaWEtZGlzYWJsZWQuaHRtbAorYWNjZXNzaWJpbGl0eS9h
cmlhLWhpZGRlbi5odG1sCithY2Nlc3NpYmlsaXR5L2FyaWEtaGlkZGVuLXdpdGgtZWxlbWVudHMu
aHRtbAorYWNjZXNzaWJpbGl0eS9hcmlhLWxhYmVsLmh0bWwKK2FjY2Vzc2liaWxpdHkvYXJpYS1s
YWJlbGxlZGJ5LW92ZXJyaWRlcy1sYWJlbC5odG1sCithY2Nlc3NpYmlsaXR5L2FyaWEtbGluay1z
dXBwb3J0cy1wcmVzcy5odG1sCithY2Nlc3NpYmlsaXR5L2FyaWEtcHJlc2VudGF0aW9uYWwtcm9s
ZS5odG1sCithY2Nlc3NpYmlsaXR5L2FyaWEtcmVhZG9ubHkuaHRtbAorYWNjZXNzaWJpbGl0eS9h
cmlhLXNjcm9sbGJhci1yb2xlLmh0bWwKK2FjY2Vzc2liaWxpdHkvYXJpYS10ZXh0LXJvbGUuaHRt
bAorYWNjZXNzaWJpbGl0eS9hcmlhLXVzZWQtb24taW1hZ2UtbWFwcy5odG1sCithY2Nlc3NpYmls
aXR5L2J1dHRvbi1wcmVzcy1hY3Rpb24uaHRtbAorYWNjZXNzaWJpbGl0eS9jYW52YXMuaHRtbAor
YWNjZXNzaWJpbGl0eS9jb250ZW50ZWRpdGFibGUtaGlkZGVuLWRpdi5odG1sCithY2Nlc3NpYmls
aXR5L2RpbWVuc2lvbnMtaW5jbHVkZS1kZXNjZW5kYW50cy5odG1sCithY2Nlc3NpYmlsaXR5L2Rv
Y3VtZW50LWF0dHJpYnV0ZXMuaHRtbAorYWNjZXNzaWJpbGl0eS9lZGl0YWJsZS13ZWJhcmVhLWNv
bnRleHQtbWVudS1wb2ludC5odG1sCithY2Nlc3NpYmlsaXR5L2lmcmFtZS1iYXN0YXJkaXphdGlv
bi5odG1sCithY2Nlc3NpYmlsaXR5L2lnbm9yZS1zcGFjZXItZWxlbWVudHMuaHRtbAorYWNjZXNz
aWJpbGl0eS9pbWctYXJpYS1idXR0b24tYWx0LXRhZy5odG1sCithY2Nlc3NpYmlsaXR5L2lucHV0
LWltYWdlLWFsdC5odG1sCithY2Nlc3NpYmlsaXR5L2xhYmVsLWZvci1jb250cm9sLWhpdHRlc3Qu
aHRtbAorYWNjZXNzaWJpbGl0eS9sYW5ndWFnZS1hdHRyaWJ1dGUuaHRtbAorYWNjZXNzaWJpbGl0
eS9uZXN0ZWQtbGF5b3V0LWNyYXNoLmh0bWwKK2FjY2Vzc2liaWxpdHkvbm9jaGlsZHJlbi1lbGVt
ZW50cy5odG1sCithY2Nlc3NpYmlsaXR5L25vbi1kYXRhLXRhYmxlLWNlbGwtdGl0bGUtdWktZWxl
bWVudC5odG1sCithY2Nlc3NpYmlsaXR5L29uY2xpY2staGFuZGxlcnMuaHRtbAorYWNjZXNzaWJp
bGl0eS9wbGFjZWhvbGRlci5odG1sCithY2Nlc3NpYmlsaXR5L3JhZGlvLWJ1dHRvbi1jaGVja2Jv
eC1zaXplLmh0bWwKK2FjY2Vzc2liaWxpdHkvcmFkaW8tYnV0dG9uLXRpdGxlLWxhYmVsLmh0bWwK
K2FjY2Vzc2liaWxpdHkvc2VjdXJlLXRleHRmaWVsZC10aXRsZS11aS5odG1sCithY2Nlc3NpYmls
aXR5L3NlbGVjdGlvbi1zdGF0ZXMuaHRtbAorYWNjZXNzaWJpbGl0eS90YWJsZS1tb2RpZmljYXRp
b24tY3Jhc2guaHRtbAorYWNjZXNzaWJpbGl0eS90YWJsZS1ub2ZpcnN0Ym9keS5odG1sCithY2Nl
c3NpYmlsaXR5L3RhYmxlLW5vdGJvZHkuaHRtbAorYWNjZXNzaWJpbGl0eS90ZXh0YXJlYS1pbnNl
cnRpb24tcG9pbnQtbGluZS1udW1iZXIuaHRtbAorYWNjZXNzaWJpbGl0eS90ZXh0YXJlYS1saW5l
LWZvci1pbmRleC5odG1sCithY2Nlc3NpYmlsaXR5L3RleHRhcmVhLXNlbGVjdGVkLXRleHQtcmFu
Z2UuaHRtbAorYWNjZXNzaWJpbGl0eS90aC1hcy10aXRsZS11aS5odG1sCithY2Nlc3NpYmlsaXR5
L3RyYW5zZm9ybWVkLWVsZW1lbnQuaHRtbAorYWNjZXNzaWJpbGl0eS92aXNpYmxlLWVsZW1lbnRz
Lmh0bWwKKworIyBuZXcgdGVzdHMgd2l0aCBubyBleHBlY3RlZCByZXN1bHRzCithY2Nlc3NpYmls
aXR5L2FyaWEtY2hlY2tib3gtdGV4dC5odG1sCithY2Nlc3NpYmlsaXR5L2FyaWEtY29tYm9ib3gu
aHRtbAorYWNjZXNzaWJpbGl0eS9hcmlhLWRlc2NyaWJlZGJ5LW9uLWlucHV0Lmh0bWwKK2FjY2Vz
c2liaWxpdHkvYXJpYS1sYWJlbGxlZGJ5LW9uLWlucHV0Lmh0bWwKK2FjY2Vzc2liaWxpdHkvYXJp
YS1sYWJlbGxlZGJ5LXN0YXktd2l0aGluLmh0bWwKK2FjY2Vzc2liaWxpdHkvYXJpYS1saXN0LWFu
ZC1saXN0aXRlbS5odG1sCithY2Nlc3NpYmlsaXR5L2FyaWEtb3B0aW9uLXJvbGUuaHRtbAorYWNj
ZXNzaWJpbGl0eS9hcmlhLXJvbGVzLmh0bWwKK2FjY2Vzc2liaWxpdHkvYXJpYS10YWJsZXMuaHRt
bAorYWNjZXNzaWJpbGl0eS9hcmlhLXRhYi1yb2xlcy5odG1sCithY2Nlc3NpYmlsaXR5L2ltYWdl
LW1hcDEuaHRtbAorYWNjZXNzaWJpbGl0eS9pbWFnZS1tYXAyLmh0bWwKK2FjY2Vzc2liaWxpdHkv
aW5wdXQtc2xpZGVyLmh0bWwKK2FjY2Vzc2liaWxpdHkvaW50ZXJuYWwtbGluay1hbmNob3JzMi5o
dG1sCithY2Nlc3NpYmlsaXR5L2xlZ2VuZC5odG1sCithY2Nlc3NpYmlsaXR5L2xpc3RzLmh0bWwK
K2FjY2Vzc2liaWxpdHkvbWVkaWEtZWxlbWVudC5odG1sCithY2Nlc3NpYmlsaXR5L3BsdWdpbi5o
dG1sCithY2Nlc3NpYmlsaXR5L3JhZGlvLWJ1dHRvbi1ncm91cC1tZW1iZXJzLmh0bWwKK2FjY2Vz
c2liaWxpdHkvdGFibGUtYXR0cmlidXRlcy5odG1sCithY2Nlc3NpYmlsaXR5L3RhYmxlLWNlbGxz
Lmh0bWwKK2FjY2Vzc2liaWxpdHkvdGFibGUtY2VsbC1zcGFucy5odG1sCithY2Nlc3NpYmlsaXR5
L3RhYmxlLWRldGVjdGlvbi5odG1sCithY2Nlc3NpYmlsaXR5L3RhYmxlLW9uZS1jZWxsLmh0bWwK
K2FjY2Vzc2liaWxpdHkvdGFibGUtc2VjdGlvbnMuaHRtbAorYWNjZXNzaWJpbGl0eS90YWJsZS13
aXRoLWFyaWEtcm9sZS5odG1sCithY2Nlc3NpYmlsaXR5L3RhYmxlLXdpdGgtcnVsZXMuaHRtbAor
CiAjIC0tLS0tLS0gbWlzc2luZyBmZWF0dXJlcwotYWNjZXNzaWJpbGl0eQogd2ViYXJjaGl2ZQog
c3ZnL3dlYmFyY2hpdmUKIAo=
</data>
<flag name="review"
          id="35165"
          type_id="1"
          status="-"
          setter="hausmann"
    />
          </attachment>
      

    </bug>

</bugzilla>