<?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>44362</bug_id>
          
          <creation_ts>2010-08-20 14:45:32 -0700</creation_ts>
          <short_desc>Implement the DOM FileWriter class</short_desc>
          <delta_ts>2010-08-28 01:49:35 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>DOM</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Enhancement</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>44358</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Eric U.">ericu</reporter>
          <assigned_to name="Eric U.">ericu</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>fishd</cc>
    
    <cc>jianli</cc>
    
    <cc>kinuko</cc>
    
    <cc>levin</cc>
    
    <cc>michaeln</cc>
    
    <cc>mike</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>267430</commentid>
    <comment_count>0</comment_count>
    <who name="Eric U.">ericu</who>
    <bug_when>2010-08-20 14:45:32 -0700</bug_when>
    <thetext>This bug is for fleshing out html/FileWriter; it will depend on an abstract class which will be implemented in a separate bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>267449</commentid>
    <comment_count>1</comment_count>
      <attachid>65000</attachid>
    <who name="Eric U.">ericu</who>
    <bug_when>2010-08-20 15:17:59 -0700</bug_when>
    <thetext>Created attachment 65000
Implement html/FileWriter

This implements FileWriter, but delegates the hard work to the forthcoming implementation of AsyncFileWriter, which is abstract.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>267541</commentid>
    <comment_count>2</comment_count>
    <who name="Kinuko Yasuda">kinuko</who>
    <bug_when>2010-08-21 00:01:50 -0700</bug_when>
    <thetext>I&apos;m not a reviewer and I haven&apos;t looked into it carefully yet, but here&apos;re some first comments.

WebCore/html/FileWriter.cpp:45
 +      , m_length(length)
Don&apos;t we want to initialize m_readyState as well?

WebCore/html/FileWriter.cpp:76
 +          ec = INVALID_STATE_ERR;
I think we need to save the error value to m_error to return the last error for FileWriter.error attribute.

WebCore/html/FileWriter.cpp:134
 +      DCHECK_GT(bytes, 0);
I don&apos;t think we have DCHECK_XXX stuff in WebKit.  (ASSERT(...) is used everywhere in WebKit)

WebCore/html/FileWriter.cpp:170
 +          return;
In what case does this happen?

WebCore/html/FileWriter.h:69
 +      FileError* error() const { return m_error; };
m_error.get()?

WebCore/html/FileWriter.h:109
 +      RefPtr&lt;FileError*&gt; m_error;
&apos;*&apos; is not necessary.

WebCore/html/FileWriter.h:111
 +      RefPtr&lt;AsyncFileWriter*&gt; m_writer;
ditto.

WebCore/html/FileWriter.cpp:58
 +      return m_readyState == WRITING || ActiveDOMObject::hasPendingActivity();
If we want to keep an instance while its hasPendingActivity() returns true, we need to add the class name to WebCore/bindings/scripts/CodeGeneratorV8.pm::IsActiveDomType() for v8.  Otherwise it gets GC&apos;ed even it is defined as a subclass of ActiveDOMObject.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>267543</commentid>
    <comment_count>3</comment_count>
    <who name="Kinuko Yasuda">kinuko</who>
    <bug_when>2010-08-21 00:26:02 -0700</bug_when>
    <thetext>WebCore/html/FileWriter.cpp:39
 +  FileWriter::FileWriter(ScriptExecutionContext* context, AsyncFileWriter* writer, const String&amp; path, long long length)
Does this assume the creator/caller of FileWriter holds the AsyncFileWriter&apos;s reference while the writer is writing?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>268092</commentid>
    <comment_count>4</comment_count>
      <attachid>65000</attachid>
    <who name="Eric U.">ericu</who>
    <bug_when>2010-08-23 13:58:45 -0700</bug_when>
    <thetext>Comment on attachment 65000
Implement html/FileWriter

This patch needs a lot of work; I&apos;m retracting it and will repost soon.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>270206</commentid>
    <comment_count>5</comment_count>
      <attachid>65644</attachid>
    <who name="Eric U.">ericu</who>
    <bug_when>2010-08-26 16:33:45 -0700</bug_when>
    <thetext>Created attachment 65644
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>270768</commentid>
    <comment_count>6</comment_count>
      <attachid>65644</attachid>
    <who name="Darin Fisher (:fishd, Google)">fishd</who>
    <bug_when>2010-08-27 14:42:35 -0700</bug_when>
    <thetext>Comment on attachment 65644
Patch

WebCore/html/FileWriterClient.h:54
 +  
nit: looks like there are some extra new lines here that should be nuked.


R=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>270770</commentid>
    <comment_count>7</comment_count>
      <attachid>65771</attachid>
    <who name="Eric U.">ericu</who>
    <bug_when>2010-08-27 14:54:26 -0700</bug_when>
    <thetext>Created attachment 65771
Fixed whitespace, pulled extra entry out of vcproj

I removed those two blank lines, and I also removed an entry for FileWriterCallback from the vcproj file--that snuck in from the next changelist.  Everything else is the same.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>270956</commentid>
    <comment_count>8</comment_count>
      <attachid>65771</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-08-28 01:49:28 -0700</bug_when>
    <thetext>Comment on attachment 65771
Fixed whitespace, pulled extra entry out of vcproj

Clearing flags on attachment: 65771

Committed r66303: &lt;http://trac.webkit.org/changeset/66303&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>270957</commentid>
    <comment_count>9</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-08-28 01:49:35 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>65000</attachid>
            <date>2010-08-20 15:17:59 -0700</date>
            <delta_ts>2010-08-26 16:33:42 -0700</delta_ts>
            <desc>Implement html/FileWriter</desc>
            <filename>FileWriter.patch</filename>
            <type>text/plain</type>
            <size>21311</size>
            <attacher name="Eric U.">ericu</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA2NTc1NSkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsNDEgQEAKKzIwMTAtMDgtMjAgIEVyaWMgVWhyaGFuZSAgPGVyaWN1QGNocm9taXVt
Lm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBJ
bXBsZW1lbnQgdGhlIERPTSBGaWxlV3JpdGVyIGNsYXNzCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00NDM2MgorCisgICAgICAgIE5vIG5ldyB0ZXN0cyB1
bnRpbCB0aGUgdW5kZXJseWluZyBpbXBsZW1lbnRhdGlvbiBvYmplY3QgaXMgaW1wbGVtZW50ZWQ7
IEkndmUgbG9nZ2VkIDQ0MzYzIHRvIHRyYWNrIHRoYXQuCisKKyAgICAgICAgQnVpbGQgZmlsZSBh
ZGRpdGlvbnMgZm9yIHRoZSBuZXcgZmlsZXMuCisgICAgICAgICogR05VbWFrZWZpbGUuYW06Cisg
ICAgICAgICogV2ViQ29yZS5neXBpOgorICAgICAgICAqIFdlYkNvcmUucHJvOgorICAgICAgICAq
IFdlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qOgorICAgICAgICAqIFdlYkNvcmUueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvajoKKworICAgICAgICBUaGUgYWJzdHJhY3QgaW50ZXJmYWNlIGZv
ciB0aGUgYmFja2VuZCB0aGF0IGRvZXMgYWxsIHRoZSByZWFsIHdvcmsuCisgICAgICAgICogaHRt
bC9Bc3luY0ZpbGVXcml0ZXIuaDogQWRkZWQuCisgICAgICAgIAorICAgICAgICBUaGUgYWJzdHJh
Y3QgaW50ZXJmYWNlIGJ5IHdoaWNoIHRoZSBiYWNrZW5kIHJlc3BvbmRzIHdpdGggcmVzdWx0cy4K
KyAgICAgICAgKiBodG1sL0ZpbGVXcml0ZXJDbGllbnQuaDogQWRkZWQuCisKKyAgICAgICAgSW1w
bGVtZW50YXRpb24gb2YgQWN0aXZlRE9NT2JqZWN0IG92ZXJyaWRlcywgdHJhY2tpbmcgb2YgcmVh
ZHlTdGF0ZSwKKyAgICAgICAgcHJveHlpbmcgbW9zdCB1c2VyIGNhbGxzIHRocm91Z2ggdG8gdGhl
IGJhY2tlbmQsIGFuZCByZXNwb25zZXMgdG8KKyAgICAgICAgZXZlbnRzIGZyb20gdGhlIGJhY2tl
bmQuCisgICAgICAgICogaHRtbC9GaWxlV3JpdGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZp
bGVXcml0ZXI6OkZpbGVXcml0ZXIpOgorICAgICAgICAoV2ViQ29yZTo6RmlsZVdyaXRlcjo6fkZp
bGVXcml0ZXIpOgorICAgICAgICAoV2ViQ29yZTo6RmlsZVdyaXRlcjo6aGFzUGVuZGluZ0FjdGl2
aXR5KToKKyAgICAgICAgKFdlYkNvcmU6OkZpbGVXcml0ZXI6OnN0b3ApOgorICAgICAgICAoV2Vi
Q29yZTo6RmlsZVdyaXRlcjo6d3JpdGUpOgorICAgICAgICAoV2ViQ29yZTo6RmlsZVdyaXRlcjo6
c2Vlayk6CisgICAgICAgICogaHRtbC9GaWxlV3JpdGVyLmg6CisgICAgICAgIChXZWJDb3JlOjpG
aWxlV3JpdGVyOjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6RmlsZVdyaXRlcjo6cmVhZHlT
dGF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpGaWxlV3JpdGVyOjpwb3NpdGlvbik6CisgICAgICAg
IChXZWJDb3JlOjpGaWxlV3JpdGVyOjpsZW5ndGgpOgorCiAyMDEwLTA4LTIwICBEdW1pdHJ1IERh
bmlsaXVjICA8ZHVtaUBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgQWRhbSBC
YXJ0aC4KSW5kZXg6IFdlYkNvcmUvR05VbWFrZWZpbGUuYW0KPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29y
ZS9HTlVtYWtlZmlsZS5hbQkocmV2aXNpb24gNjU3NTEpCisrKyBXZWJDb3JlL0dOVW1ha2VmaWxl
LmFtCSh3b3JraW5nIGNvcHkpCkBAIC0xMzExLDYgKzEzMTEsNyBAQCB3ZWJjb3JlX3NvdXJjZXMg
Kz0gXAogCVdlYkNvcmUvaGlzdG9yeS9IaXN0b3J5SXRlbS5oIFwKIAlXZWJDb3JlL2hpc3Rvcnkv
UGFnZUNhY2hlLmNwcCBcCiAJV2ViQ29yZS9oaXN0b3J5L1BhZ2VDYWNoZS5oIFwKKwlXZWJDb3Jl
L2h0bWwvQXN5bmNGaWxlV3JpdGVyLmggXAogCVdlYkNvcmUvaHRtbC9Bc3luY0ltYWdlUmVzaXpl
ci5jcHAgXAogCVdlYkNvcmUvaHRtbC9Bc3luY0ltYWdlUmVzaXplci5oIFwKIAlXZWJDb3JlL2h0
bWwvQmxvYi5jcHAgXApAQCAtMTM1NSwxMyArMTM1NiwxNCBAQCB3ZWJjb3JlX3NvdXJjZXMgKz0g
XAogCVdlYkNvcmUvaHRtbC9GaWxlTGlzdC5oIFwKIAlXZWJDb3JlL2h0bWwvRmlsZVJlYWRlci5j
cHAgXAogCVdlYkNvcmUvaHRtbC9GaWxlUmVhZGVyLmggXAotCVdlYkNvcmUvaHRtbC9GaWxlV3Jp
dGVyLmNwcCBcCi0JV2ViQ29yZS9odG1sL0ZpbGVXcml0ZXIuaCBcCiAJV2ViQ29yZS9odG1sL0Zp
bGVTdHJlYW1Qcm94eS5jcHAgXAogCVdlYkNvcmUvaHRtbC9GaWxlU3RyZWFtUHJveHkuaCBcCiAJ
V2ViQ29yZS9odG1sL0ZpbGVUaHJlYWQuY3BwIFwKIAlXZWJDb3JlL2h0bWwvRmlsZVRocmVhZC5o
IFwKIAlXZWJDb3JlL2h0bWwvRmlsZVRocmVhZFRhc2suaCBcCisJV2ViQ29yZS9odG1sL0ZpbGVX
cml0ZXIuY3BwIFwKKwlXZWJDb3JlL2h0bWwvRmlsZVdyaXRlci5oIFwKKwlXZWJDb3JlL2h0bWwv
RmlsZVdyaXRlckNsaWVudC5oIFwKIAlXZWJDb3JlL2h0bWwvRm9ybURhdGFMaXN0LmNwcCBcCiAJ
V2ViQ29yZS9odG1sL0Zvcm1EYXRhTGlzdC5oIFwKIAlXZWJDb3JlL2h0bWwvSFRNTEVudGl0eVBh
cnNlci5jcHAgXApJbmRleDogV2ViQ29yZS9XZWJDb3JlLmd5cGkKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2Vi
Q29yZS9XZWJDb3JlLmd5cGkJKHJldmlzaW9uIDY1NzUxKQorKysgV2ViQ29yZS9XZWJDb3JlLmd5
cGkJKHdvcmtpbmcgY29weSkKQEAgLTE0MzIsNiArMTQzMiw3IEBACiAgICAgICAgICAgICAnaGlz
dG9yeS9IaXN0b3J5SXRlbS5oJywKICAgICAgICAgICAgICdoaXN0b3J5L1BhZ2VDYWNoZS5jcHAn
LAogICAgICAgICAgICAgJ2hpc3RvcnkvUGFnZUNhY2hlLmgnLAorICAgICAgICAgICAgJ2h0bWwv
QXN5bmNGaWxlV3JpdGVyLmgnLAogICAgICAgICAgICAgJ2h0bWwvQXN5bmNJbWFnZVJlc2l6ZXIu
Y3BwJywKICAgICAgICAgICAgICdodG1sL0FzeW5jSW1hZ2VSZXNpemVyLmgnLAogICAgICAgICAg
ICAgJ2h0bWwvQmxvYi5jcHAnLApAQCAtMTUxOSwxMyArMTUyMCwxNCBAQAogICAgICAgICAgICAg
J2h0bWwvRmlsZUxpc3QuaCcsCiAgICAgICAgICAgICAnaHRtbC9GaWxlUmVhZGVyLmNwcCcsCiAg
ICAgICAgICAgICAnaHRtbC9GaWxlUmVhZGVyLmgnLAotICAgICAgICAgICAgJ2h0bWwvRmlsZVdy
aXRlci5jcHAnLAotICAgICAgICAgICAgJ2h0bWwvRmlsZVdyaXRlci5oJywKICAgICAgICAgICAg
ICdodG1sL0ZpbGVTdHJlYW1Qcm94eS5jcHAnLAogICAgICAgICAgICAgJ2h0bWwvRmlsZVN0cmVh
bVByb3h5LmgnLAogICAgICAgICAgICAgJ2h0bWwvRmlsZVRocmVhZC5jcHAnLAogICAgICAgICAg
ICAgJ2h0bWwvRmlsZVRocmVhZC5oJywKICAgICAgICAgICAgICdodG1sL0ZpbGVUaHJlYWRUYXNr
LmgnLAorICAgICAgICAgICAgJ2h0bWwvRmlsZVdyaXRlci5jcHAnLAorICAgICAgICAgICAgJ2h0
bWwvRmlsZVdyaXRlci5oJywKKyAgICAgICAgICAgICdodG1sL0ZpbGVXcml0ZXJDbGllbnQuaCcs
CiAgICAgICAgICAgICAnaHRtbC9Gb3JtRGF0YUxpc3QuY3BwJywKICAgICAgICAgICAgICdodG1s
L0Zvcm1EYXRhTGlzdC5oJywKICAgICAgICAgICAgICdodG1sL0hUTUxFbnRpdHlQYXJzZXIuY3Bw
JywKSW5kZXg6IFdlYkNvcmUvV2ViQ29yZS5wcm8KPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9XZWJD
b3JlLnBybwkocmV2aXNpb24gNjU3NTEpCisrKyBXZWJDb3JlL1dlYkNvcmUucHJvCSh3b3JraW5n
IGNvcHkpCkBAIC0xMzkxLDYgKzEzOTEsNyBAQCBIRUFERVJTICs9IFwKICAgICBoaXN0b3J5L0Nh
Y2hlZFBhZ2UuaCBcCiAgICAgaGlzdG9yeS9IaXN0b3J5SXRlbS5oIFwKICAgICBoaXN0b3J5L1Bh
Z2VDYWNoZS5oIFwKKyAgICBodG1sL0FzeW5jRmlsZVdyaXRlci5oIFwKICAgICBodG1sL0FzeW5j
SW1hZ2VSZXNpemVyLmggXAogICAgIGh0bWwvQmxvYi5oIFwKICAgICBodG1sL0Jsb2JCdWlsZGVy
LmggXApAQCAtMTQxNSw2ICsxNDE2LDcgQEAgSEVBREVSUyArPSBcCiAgICAgaHRtbC9GaWxlVGhy
ZWFkLmggXAogICAgIGh0bWwvRmlsZVRocmVhZFRhc2suaCBcCiAgICAgaHRtbC9GaWxlV3JpdGVy
LmggXAorICAgIGh0bWwvRmlsZVdyaXRlckNsaWVudC5oIFwKICAgICBodG1sL0Zvcm1EYXRhTGlz
dC5oIFwKICAgICBodG1sL0hUTUxBbGxDb2xsZWN0aW9uLmggXAogICAgIGh0bWwvSFRNTEFuY2hv
ckVsZW1lbnQuaCBcCkluZGV4OiBXZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9q
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFdlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oJKHJl
dmlzaW9uIDY1NzUxKQorKysgV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagko
d29ya2luZyBjb3B5KQpAQCAtMzcwMDksNiArMzcwMDksMTAgQEAKIAkJCU5hbWU9Imh0bWwiDQog
CQkJPg0KIAkJCTxGaWxlDQorCQkJCVJlbGF0aXZlUGF0aD0iLi5caHRtbFxBc3luY0ZpbGVXcml0
ZXIuaCINCisJCQkJPg0KKwkJCTwvRmlsZT4NCisJCQk8RmlsZQ0KIAkJCQlSZWxhdGl2ZVBhdGg9
Ii4uXGh0bWxcQXN5bmNJbWFnZVJlc2l6ZXIuY3BwIg0KIAkJCQk+DQogCQkJPC9GaWxlPg0KQEAg
LTM3MjE3LDYgKzM3MjIxLDEwIEBACiAJCQkJPg0KIAkJCTwvRmlsZT4NCiAJCQk8RmlsZQ0KKwkJ
CQlSZWxhdGl2ZVBhdGg9Ii4uXGh0bWxcRmlsZVdyaXRlckNsaWVudC5oIg0KKwkJCQk+DQorCQkJ
PC9GaWxlPg0KKwkJCTxGaWxlDQogCQkJCVJlbGF0aXZlUGF0aD0iLi5caHRtbFxGb3JtRGF0YUxp
c3QuY3BwIg0KIAkJCQk+DQogCQkJPC9GaWxlPg0KSW5kZXg6IFdlYkNvcmUvV2ViQ29yZS54Y29k
ZXByb2ovcHJvamVjdC5wYnhwcm9qCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvV2ViQ29yZS54Y29k
ZXByb2ovcHJvamVjdC5wYnhwcm9qCShyZXZpc2lvbiA2NTc1MSkKKysrIFdlYkNvcmUvV2ViQ29y
ZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCSh3b3JraW5nIGNvcHkpCkBAIC04OTYsOCArODk2
LDEwIEBACiAJCTQ0OEFEMjdDMEE0ODEzN0EwMDIzRDE3OSAvKiBKU0hUTUxPcHRpb25zQ29sbGVj
dGlvbkN1c3RvbS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA0NDhBRDI3QTBBNDgxMzc5MDAyM0QxNzkgLyogSlNIVE1MT3B0aW9uc0NvbGxlY3Rpb25D
dXN0b20uY3BwICovOyB9OwogCQk0NDlCMTlGNTBGQTcyRUNFMDAxNUNBNEEgLyogSFRNTFBhcnNl
clF1aXJrcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
NDQ5QjE5RjMwRkE3MkVDRTAwMTVDQTRBIC8qIEhUTUxQYXJzZXJRdWlya3MuaCAqLzsgc2V0dGlu
Z3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk0NjE0QTFGRTBCMjNBOEQ2
MDA0NDZFMUMgLyogY29weUN1cnNvci5wbmcgaW4gUmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDQ2MTRBMUZEMEIyM0E4RDYwMDQ0NkUxQyAvKiBjb3B5Q3Vyc29y
LnBuZyAqLzsgfTsKKwkJNDYxN0U3QjExMjFFMDc4RjAwNUVDOEE4IC8qIEFzeW5jRmlsZVdyaXRl
ci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDYxN0U3
QjAxMjFFMDc4RjAwNUVDOEE4IC8qIEFzeW5jRmlsZVdyaXRlci5oICovOyB9OwogCQk0NjRFQTI3
MzBCOEEzNTBCMDBBOEU2RTMgLyogY3Jvc3NIYWlyQ3Vyc29yLnBuZyBpbiBSZXNvdXJjZXMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDY0RUEyNzEwQjhBMzUwQjAwQThFNkUz
IC8qIGNyb3NzSGFpckN1cnNvci5wbmcgKi87IH07CiAJCTQ2NEVBMjc0MEI4QTM1MEIwMEE4RTZF
MyAvKiBub3RBbGxvd2VkQ3Vyc29yLnBuZyBpbiBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gNDY0RUEyNzIwQjhBMzUwQjAwQThFNkUzIC8qIG5vdEFsbG93ZWRD
dXJzb3IucG5nICovOyB9OworCQk0NjhGNUFBNDEyMUYxRDc0MDBCNUM0OTggLyogRmlsZVdyaXRl
ckNsaWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
NDY4RjVBQTMxMjFGMUQ3NDAwQjVDNDk4IC8qIEZpbGVXcml0ZXJDbGllbnQuaCAqLzsgfTsKIAkJ
NDZBMjY5MDUxMjFCNkI0MzAwQzQxRjNBIC8qIEZpbGVXcml0ZXIuY3BwIGluIFNvdXJjZXMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDZBMjY5MDIxMjFCNkI0MzAwQzQxRjNB
IC8qIEZpbGVXcml0ZXIuY3BwICovOyB9OwogCQk0NkEyNjkwNjEyMUI2QjQzMDBDNDFGM0EgLyog
RmlsZVdyaXRlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gNDZBMjY5MDMxMjFCNkI0MzAwQzQxRjNBIC8qIEZpbGVXcml0ZXIuaCAqLzsgfTsKIAkJNDZC
RDE2RTMwQjI3OTQ3MzAwMUYwODM5IC8qIG5vbmVDdXJzb3IucG5nIGluIFJlc291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0NkJEMTZFMjBCMjc5NDczMDAxRjA4Mzkg
Lyogbm9uZUN1cnNvci5wbmcgKi87IH07CkBAIC02NzI4LDggKzY3MzAsMTAgQEAKIAkJNDQ5MDk4
QjEwRjhGODI1MjAwNzZBMzI3IC8qIEZlYXR1cmVEZWZpbmVzLnhjY29uZmlnICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
dGV4dC54Y2NvbmZpZzsgcGF0aCA9IEZlYXR1cmVEZWZpbmVzLnhjY29uZmlnOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQk0NDlCMTlGMzBGQTcyRUNFMDAxNUNBNEEgLyogSFRNTFBhcnNl
clF1aXJrcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBIVE1MUGFyc2VyUXVp
cmtzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQ2MTRBMUZEMEIyM0E4RDYwMDQ0
NkUxQyAvKiBjb3B5Q3Vyc29yLnBuZyAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0
S25vd25GaWxlVHlwZSA9IGltYWdlLnBuZzsgcGF0aCA9IGNvcHlDdXJzb3IucG5nOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OworCQk0NjE3RTdCMDEyMUUwNzhGMDA1RUM4QTggLyogQXN5bmNG
aWxlV3JpdGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEFzeW5jRmlsZVdy
aXRlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0NjRFQTI3MTBCOEEzNTBCMDBB
OEU2RTMgLyogY3Jvc3NIYWlyQ3Vyc29yLnBuZyAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBsYXN0S25vd25GaWxlVHlwZSA9IGltYWdlLnBuZzsgcGF0aCA9IGNyb3NzSGFpckN1cnNvci5w
bmc7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQ2NEVBMjcyMEI4QTM1MEIwMEE4RTZF
MyAvKiBub3RBbGxvd2VkQ3Vyc29yLnBuZyAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBs
YXN0S25vd25GaWxlVHlwZSA9IGltYWdlLnBuZzsgcGF0aCA9IG5vdEFsbG93ZWRDdXJzb3IucG5n
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk0NjhGNUFBMzEyMUYxRDc0MDBCNUM0OTgg
LyogRmlsZVdyaXRlckNsaWVudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBG
aWxlV3JpdGVyQ2xpZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQ2QTI2OTAy
MTIxQjZCNDMwMEM0MUYzQSAvKiBGaWxlV3JpdGVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLmNwcDsgcGF0aCA9IEZpbGVXcml0ZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQk0NkEyNjkwMzEyMUI2QjQzMDBDNDFGM0EgLyogRmlsZVdyaXRlci5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBGaWxlV3JpdGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCTQ2QTI2OTA0MTIxQjZCNDMwMEM0MUYzQSAvKiBGaWxlV3JpdGVyLmlkbCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHRleHQ7IHBhdGggPSBGaWxlV3JpdGVyLmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKQEAgLTEyMDAwLDYgKzEyMDA0LDcgQEAKIAkJCQk0OUVFQ0RDNzEwNTAzQzIzMDAwOTlG
QUIgLyogQXJyYXlCdWZmZXJWaWV3LmNwcCAqLywKIAkJCQk0OUVFQ0RDODEwNTAzQzIzMDAwOTlG
QUIgLyogQXJyYXlCdWZmZXJWaWV3LmggKi8sCiAJCQkJNDlFRUNEQzkxMDUwM0MyMzAwMDk5RkFC
IC8qIEFycmF5QnVmZmVyVmlldy5pZGwgKi8sCisJCQkJNDYxN0U3QjAxMjFFMDc4RjAwNUVDOEE4
IC8qIEFzeW5jRmlsZVdyaXRlci5oICovLAogCQkJCTZFNEU5MUE3MTBGN0ZCMzEwMEEyNzc5QyAv
KiBDYW52YXNDb250ZXh0QXR0cmlidXRlcy5jcHAgKi8sCiAJCQkJNkU0RTkxQTgxMEY3RkIzMTAw
QTI3NzlDIC8qIENhbnZhc0NvbnRleHRBdHRyaWJ1dGVzLmggKi8sCiAJCQkJNDk0ODRGQjMxMDJD
RjIzQzAwMTg3REQzIC8qIENhbnZhc0dyYWRpZW50LmNwcCAqLywKQEAgLTE0MDIzLDYgKzE0MDI4
LDcgQEAKIAkJCQk4OTUyNTNERTExNkM0RjA2MDBDQUJGMDAgLyogRmlsZVRocmVhZFRhc2suaCAq
LywKIAkJCQk0NkEyNjkwMjEyMUI2QjQzMDBDNDFGM0EgLyogRmlsZVdyaXRlci5jcHAgKi8sCiAJ
CQkJNDZBMjY5MDMxMjFCNkI0MzAwQzQxRjNBIC8qIEZpbGVXcml0ZXIuaCAqLywKKwkJCQk0NjhG
NUFBMzEyMUYxRDc0MDBCNUM0OTggLyogRmlsZVdyaXRlckNsaWVudC5oICovLAogCQkJCTQ2QTI2
OTA0MTIxQjZCNDMwMEM0MUYzQSAvKiBGaWxlV3JpdGVyLmlkbCAqLywKIAkJCQlBODEzNkQzNzA5
NzNBOEU3MDBENzQ0NjMgLyogRm9ybURhdGFMaXN0LmNwcCAqLywKIAkJCQlBODEzNkQzNjA5NzNB
OEU3MDBENzQ0NjMgLyogRm9ybURhdGFMaXN0LmggKi8sCkBAIC0yMDMzMyw2ICsyMDMzOSw4IEBA
CiAJCQkJNDZBMjY5MDYxMjFCNkI0MzAwQzQxRjNBIC8qIEZpbGVXcml0ZXIuaCBpbiBIZWFkZXJz
ICovLAogCQkJCTJFRjFCRkY3MTIxQ0IwQkQwMEMyNzYyNyAvKiBBc3luY0ZpbGVTdHJlYW0uaCBp
biBIZWFkZXJzICovLAogCQkJCTJFRjFCRkY5MTIxQ0IwQ0UwMEMyNzYyNyAvKiBGaWxlU3RyZWFt
Q2xpZW50LmggaW4gSGVhZGVycyAqLywKKwkJCQk0NjE3RTdCMTEyMUUwNzhGMDA1RUM4QTggLyog
QXN5bmNGaWxlV3JpdGVyLmggaW4gSGVhZGVycyAqLywKKwkJCQk0NjhGNUFBNDEyMUYxRDc0MDBC
NUM0OTggLyogRmlsZVdyaXRlckNsaWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkpOwogCQkJcnVu
T25seUZvckRlcGxveW1lbnRQb3N0cHJvY2Vzc2luZyA9IDA7CiAJCX07CkluZGV4OiBXZWJDb3Jl
L2h0bWwvQXN5bmNGaWxlV3JpdGVyLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9odG1sL0FzeW5j
RmlsZVdyaXRlci5oCShyZXZpc2lvbiAwKQorKysgV2ViQ29yZS9odG1sL0FzeW5jRmlsZVdyaXRl
ci5oCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDU3IEBACisvKgorICogQ29weXJpZ2h0IChDKSAy
MDEwIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Cisg
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMgYXJlCisgKiBtZXQ6CisgKgorICogICAgICogUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAq
ICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUKKyAqIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKKyAqIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKKyAqIGRpc3RyaWJ1dGlvbi4KKyAqICAg
ICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMK
KyAqIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVj
dHMgZGVyaXZlZCBmcm9tCisgKiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Ig
d3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
VEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKKyAqICJBUyBJUyIgQU5EIEFO
WSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisgKiBM
SU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IKKyAqIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBO
TyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCisgKiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUg
TElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKyAqIFNQRUNJQUws
IEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QK
KyAqIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7IExPU1MgT0YgVVNFLAorICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisgKiBUSEVPUlkgT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBBc3luY0ZpbGVXcml0ZXJf
aAorI2RlZmluZSBBc3luY0ZpbGVXcml0ZXJfaAorCisjaWYgRU5BQkxFKEZJTEVfV1JJVEVSKQor
CisjaW5jbHVkZSAiUGxhdGZvcm1TdHJpbmcuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitj
bGFzcyBCbG9iOworY2xhc3MgRmlsZVdyaXRlckNsaWVudDsKKworY2xhc3MgQXN5bmNGaWxlV3Jp
dGVyIHsKK3B1YmxpYzoKKyAgICB2b2lkIHNldEZpbGVXcml0ZXJDbGllbnQoRmlsZVdyaXRlckNs
aWVudCogY2xpZW50KSA9IDA7CisKKyAgICB2b2lkIHdyaXRlKGNvbnN0IFN0cmluZyYgcGF0aCwg
bG9uZyBsb25nIHBvc2l0aW9uLCBCbG9iKiBkYXRhKSA9IDA7CisgICAgdm9pZCB0cnVuY2F0ZShj
b25zdCBTdHJpbmcmIHBhdGgsIGxvbmcgbG9uZyBwb3NpdGlvbikgPSAwOworICAgIHZvaWQgYWJv
cnQoKSA9IDA7Cit9OworCit9IC8vIG5hbWVzcGFjZQorCisjZW5kaWYgLy8gRU5BQkxFKEZJTEVf
V1JJVEVSKQorCisjZW5kaWYgLy8gQXN5bmNGaWxlV3JpdGVyX2gKKwpJbmRleDogV2ViQ29yZS9o
dG1sL0ZpbGVXcml0ZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvaHRtbC9GaWxlV3JpdGVy
LmNwcAkocmV2aXNpb24gNjU3NTEpCisrKyBXZWJDb3JlL2h0bWwvRmlsZVdyaXRlci5jcHAJKHdv
cmtpbmcgY29weSkKQEAgLTM2LDE4ICszNiwyNiBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAK
LUZpbGVXcml0ZXI6OkZpbGVXcml0ZXIoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCkK
K0ZpbGVXcml0ZXI6OkZpbGVXcml0ZXIoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCwg
QXN5bmNGaWxlV3JpdGVyKiB3cml0ZXIsIGNvbnN0IFN0cmluZyYgcGF0aCwgbG9uZyBsb25nIGxl
bmd0aCkKICAgICA6IEFjdGl2ZURPTU9iamVjdChjb250ZXh0LCB0aGlzKQorICAgICwgbV93cml0
ZXIod3JpdGVyKQorICAgICwgbV9wYXRoKHBhdGgpCisgICAgLCBtX2J5dGVzV3JpdHRlbigwKQor
ICAgICwgbV9ieXRlc1RvV3JpdGUoMCkKKyAgICAsIG1fbGVuZ3RoKGxlbmd0aCkKIHsKKyAgICBt
X3dyaXRlci0+c2V0RmlsZVdyaXRlckNsaWVudCh0aGlzKTsKIH0KIAogRmlsZVdyaXRlcjo6fkZp
bGVXcml0ZXIoKQogeworICAgIGlmIChtX3JlYWR5U3RhdGUgPT0gV1JJVElORykKKyAgICAgICAg
c3RvcCgpOwogfQogCiBib29sIEZpbGVXcml0ZXI6Omhhc1BlbmRpbmdBY3Rpdml0eSgpIGNvbnN0
CiB7Ci0gICAgcmV0dXJuIGZhbHNlOworICAgIHJldHVybiBtX3JlYWR5U3RhdGUgPT0gV1JJVElO
RyB8fCBBY3RpdmVET01PYmplY3Q6Omhhc1BlbmRpbmdBY3Rpdml0eSgpOwogfQogCiBib29sIEZp
bGVXcml0ZXI6OmNhblN1c3BlbmQoKSBjb25zdApAQCAtNTgsMjcgKzY2LDExMSBAQCBib29sIEZp
bGVXcml0ZXI6OmNhblN1c3BlbmQoKSBjb25zdAogCiB2b2lkIEZpbGVXcml0ZXI6OnN0b3AoKQog
eworICAgIG1fcmVhZHlTdGF0ZSA9IERPTkU7CisgICAgbV93cml0ZXItPmFib3J0KCk7CiB9CiAK
LXZvaWQgRmlsZVdyaXRlcjo6d3JpdGUoQmxvYiopCit2b2lkIEZpbGVXcml0ZXI6OndyaXRlKEJs
b2IqIGRhdGEsIEV4Y2VwdGlvbkNvZGUmIGVjKQogeworICAgIGlmIChtX3JlYWR5U3RhdGUgPT0g
V1JJVElORykgeworICAgICAgICBlYyA9IElOVkFMSURfU1RBVEVfRVJSOworICAgICAgICByZXR1
cm47CisgICAgfQorCisgICAgbV9yZWFkeVN0YXRlID0gV1JJVElORzsKKyAgICBtX2J5dGVzV3Jp
dHRlbiA9IDA7CisgICAgbV9ieXRlc1RvV3JpdGUgPSBkYXRhLT5zaXplKCk7CisgICAgZmlyZUV2
ZW50KGV2ZW50TmFtZXMoKS53cml0ZXN0YXJ0RXZlbnQpOworICAgIG1fd3JpdGVyLT53cml0ZSht
X3BhdGgsIG1fcG9zaXRpb24sIGRhdGEpOwogfQogCi12b2lkIEZpbGVXcml0ZXI6OnNlZWsobG9u
ZyBsb25nKQordm9pZCBGaWxlV3JpdGVyOjpzZWVrKGxvbmcgbG9uZyBwb3NpdGlvbiwgRXhjZXB0
aW9uQ29kZSYgZWMpCiB7CisgICAgaWYgKG1fcmVhZHlTdGF0ZSA9PSBXUklUSU5HKSB7CisgICAg
ICAgIGVjID0gSU5WQUxJRF9TVEFURV9FUlI7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAg
ICBtX2J5dGVzV3JpdHRlbiA9IDA7CisgICAgbV9ieXRlc1RvV3JpdGUgPSAwOworICAgIGlmIChw
b3NpdGlvbiA+IG1fbGVuZ3RoKQorICAgICAgICBwb3NpdGlvbiA9IG1fbGVuZ3RoOworICAgIGVs
c2UgaWYgKHBvc2l0aW9uIDwgMCkgeworICAgICAgICBwb3NpdGlvbiA9IG1fbGVuZ3RoICsgcG9z
aXRpb247CisgICAgaWYgKHBvc2l0aW9uIDwgMCkKKyAgICAgICAgcG9zaXRpb24gPSAwOworICAg
IG1fcG9zaXRpb24gPSBwb3NpdGlvbjsKIH0KIAotdm9pZCBGaWxlV3JpdGVyOjp0cnVuY2F0ZShs
b25nIGxvbmcpCit2b2lkIEZpbGVXcml0ZXI6OnRydW5jYXRlKGxvbmcgbG9uZyBwb3NpdGlvbiwg
RXhjZXB0aW9uQ29kZSYgZWMpCiB7CisgICAgaWYgKG1fcmVhZHlTdGF0ZSA9PSBXUklUSU5HIHx8
IHBvc2l0aW9uID49IG1fbGVuZ3RoKSB7CisgICAgICAgIGVjID0gSU5WQUxJRF9TVEFURV9FUlI7
CisgICAgICAgIHJldHVybjsKKyAgICB9CisgICAgbV9yZWFkeVN0YXRlID0gV1JJVElORzsKKyAg
ICBtX2J5dGVzV3JpdHRlbiA9IDA7CisgICAgbV9ieXRlc1RvV3JpdGUgPSAwOworICAgIGZpcmVF
dmVudChldmVudE5hbWVzKCkud3JpdGVzdGFydEV2ZW50KTsKKyAgICBtX3dyaXRlci0+dHJ1bmNh
dGUobV9wYXRoLCBwb3NpdGlvbik7CiB9CiAKLXZvaWQgRmlsZVdyaXRlcjo6YWJvcnQoKQordm9p
ZCBGaWxlV3JpdGVyOjphYm9ydChFeGNlcHRpb25Db2RlJiBlYykKIHsKKyAgICBpZiAobV9yZWFk
eVN0YXRlID09IERPTkUpIHsKKyAgICAgICAgZWMgPSBJTlZBTElEX1NUQVRFX0VSUjsKKyAgICAg
ICAgcmV0dXJuOworICAgIH0KKyAgICBtX2Vycm9yID0gRmlsZUVycm9yOjpjcmVhdGUoQUJPUlRf
RVJSKTsKKyAgICBmaXJlRXZlbnQoZXZlbnROYW1lcygpLmVycm9yRXZlbnQpOworICAgIGZpcmVF
dmVudChldmVudE5hbWVzKCkuYWJvcnRFdmVudCk7CisgICAgZmlyZUV2ZW50KGV2ZW50TmFtZXMo
KS53cml0ZWVuZEV2ZW50KTsKKyAgICBtX3dyaXRlci0+YWJvcnQoKTsKKyAgICBtX3JlYWR5U3Rh
dGUgPSBET05FOwogfQogCi1GaWxlV3JpdGVyOjpSZWFkeVN0YXRlIEZpbGVXcml0ZXI6OnJlYWR5
U3RhdGUoKSBjb25zdAordm9pZCBGaWxlV3JpdGVyOjpkaWRXcml0ZShsb25nIGxvbmcgYnl0ZXMp
CiB7Ci0gICAgcmV0dXJuIEVNUFRZOworICAgIERDSEVDS19HVChieXRlcywgMCk7CisgICAgRENI
RUNLX0dUKGJ5dGVzICsgbV9ieXRlc1dyaXR0ZW4sIDApOworICAgIERDSEVDS19MRShieXRlcyAr
IG1fYnl0ZXNXcml0dGVuLCBtX2J5dGVzVG9Xcml0ZSk7CisgICAgbV9ieXRlc1dyaXR0ZW4gKz0g
Ynl0ZXM7CisgICAgbV9vZmZzZXQgKz0gYnl0ZXM7CisgICAgaWYgKG1fb2Zmc2V0ID4gbV9sZW5n
dGgpCisgICAgICAgIG1fbGVuZ3RoID0gbV9vZmZzZXQ7CisgICAgZmlyZUV2ZW50KGV2ZW50TmFt
ZXMoKS53cml0ZUV2ZW50KTsKKyAgICBpZiAobV9ieXRlc1dyaXR0ZW4gPT0gbV9ieXRlc1RvV3Jp
dGUpIHsKKyAgICAgICAgZmlyZUV2ZW50KGV2ZW50TmFtZXMoKS53cml0ZWVuZEV2ZW50KTsKKyAg
ICAgICAgbV9yZWFkeVN0YXRlID0gRE9ORTsKKyAgICB9Cit9CisKK3ZvaWQgRmlsZVdyaXRlcjo6
ZGlkVHJ1bmNhdGUobG9uZyBsb25nIGxlbmd0aCkKK3sKKyAgICBEQ0hFQ0tfR0UobGVuZ3RoLCAw
KTsKKyAgICBEQ0hFQ0tfTFQobGVuZ3RoLCBtX2xlbmd0aCk7CisgICAgbV9sZW5ndGggPSBsZW5n
dGg7CisgICAgaWYgKG1fcG9zaXRpb24gPiBtX2xlbmd0aCkKKyAgICAgICAgbV9wb3NpdGlvbiA9
IG1fbGVuZ3RoOworICAgIGZpcmVFdmVudChldmVudE5hbWVzKCkud3JpdGVFdmVudCk7CisgICAg
ZmlyZUV2ZW50KGV2ZW50TmFtZXMoKS53cml0ZWVuZEV2ZW50KTsKKyAgICBtX3JlYWR5U3RhdGUg
PSBET05FOworfQorCit2b2lkIEZpbGVXcml0ZXI6OmRpZEZhaWwoRXhjZXB0aW9uQ29kZSBlYykK
K3sKKyAgICBtX2Vycm9yID0gRmlsZUVycm9yOjpjcmVhdGUoZWMpOworICAgIGZpcmVFdmVudChl
dmVudE5hbWVzKCkuZXJyb3JFdmVudCk7CisgICAgZmlyZUV2ZW50KGV2ZW50TmFtZXMoKS53cml0
ZWVuZEV2ZW50KTsKK30KKwordm9pZCBGaWxlV3JpdGVyOjpmaXJlRXZlbnQoY29uc3QgQXRvbWlj
U3RyaW5nJiB0eXBlKQoreworICAgIGlmIChtX3JlYWR5U3RhdGUgPT0gRE9ORSkKKyAgICAgICAg
cmV0dXJuOworCisgICAgLy8gRklYTUU6IHRoZSBjdXJyZW50IFByb2dyZXNzRXZlbnQgdXNlcyAi
dW5zaWduZWQgbG9uZyIgZm9yIHRvdGFsIGFuZCBsb2FkZWQgYXR0cmlidXRlcy4gTmVlZCB0byB0
YWxrIHdpdGggdGhlIHNwZWMgd3JpdGVyIHRvIHJlc29sdmUgdGhlIGlzc3VlLgorICAgIGRpc3Bh
dGNoRXZlbnQoUHJvZ3Jlc3NFdmVudDo6Y3JlYXRlKHR5cGUsIHRydWUsIHN0YXRpY19jYXN0PHVu
c2lnbmVkPihtX2J5dGVzV3JpdHRlbiksIHN0YXRpY19jYXN0PHVuc2lnbmVkPihtX2J5dGVzVG9X
cml0ZSkpKTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpJbmRleDogV2ViQ29yZS9odG1s
L0ZpbGVXcml0ZXIuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2h0bWwvRmlsZVdyaXRlci5oCShy
ZXZpc2lvbiA2NTc1MSkKKysrIFdlYkNvcmUvaHRtbC9GaWxlV3JpdGVyLmgJKHdvcmtpbmcgY29w
eSkKQEAgLTQxLDE2ICs0MSwxNyBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKK2NsYXNzIEFz
eW5jRmlsZVdyaXRlcjsKIGNsYXNzIEJsb2I7CiBjbGFzcyBGaWxlRXJyb3I7CiBjbGFzcyBTY3Jp
cHRFeGVjdXRpb25Db250ZXh0OwogCiAvLyBGSVhNRTogVGhpcyBpcyBhbiBlbXB0eSwgZG8tbm90
aGluZyBwbGFjZWhvbGRlciBmb3IgaW1wbGVtZW50YXRpb24geWV0IHRvIGNvbWUuCi1jbGFzcyBG
aWxlV3JpdGVyIDogcHVibGljIFJlZkNvdW50ZWQ8RmlsZVdyaXRlcj4sIHB1YmxpYyBBY3RpdmVE
T01PYmplY3QsIHB1YmxpYyBFdmVudFRhcmdldCB7CitjbGFzcyBGaWxlV3JpdGVyIDogcHVibGlj
IFJlZkNvdW50ZWQ8RmlsZVdyaXRlcj4sIHB1YmxpYyBBY3RpdmVET01PYmplY3QsIHB1YmxpYyBF
dmVudFRhcmdldCwgcHVibGljIEZpbGVXcml0ZXJDbGllbnQgewogcHVibGljOgotICAgIHN0YXRp
YyBQYXNzUmVmUHRyPEZpbGVXcml0ZXI+IGNyZWF0ZShTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBj
b250ZXh0KQorICAgIHN0YXRpYyBQYXNzUmVmUHRyPEZpbGVXcml0ZXI+IGNyZWF0ZShTY3JpcHRF
eGVjdXRpb25Db250ZXh0KiBjb250ZXh0LCBBc3luY0ZpbGVXcml0ZXIqIHdyaXRlciwgY29uc3Qg
U3RyaW5nJiBwYXRoLCBsb25nIGxvbmcgbGVuZ3RoKQogICAgIHsKLSAgICAgICAgcmV0dXJuIGFk
b3B0UmVmKG5ldyBGaWxlV3JpdGVyKGNvbnRleHQpKTsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVm
KG5ldyBGaWxlV3JpdGVyKGNvbnRleHQsIHdyaXRlciwgcGF0aCwgbG9uZyBsb25nIGxlbmd0aCkp
OwogICAgIH0KIAogICAgIGVudW0gUmVhZHlTdGF0ZSB7CkBAIC01OSwyMCArNjAsMjQgQEAgcHVi
bGljOgogICAgICAgICBET05FID0gMgogICAgIH07CiAKLSAgICB2b2lkIHdyaXRlKEJsb2IqKTsK
LSAgICB2b2lkIHNlZWsobG9uZyBsb25nIHBvc2l0aW9uKTsKLSAgICB2b2lkIHRydW5jYXRlKGxv
bmcgbG9uZyBsZW5ndGgpOwotICAgIHZvaWQgYWJvcnQoKTsKKyAgICB2b2lkIHdyaXRlKEJsb2Iq
IGRhdGEsIEV4Y2VwdGlvbkNvZGUmIGVjKTsKKyAgICB2b2lkIHNlZWsobG9uZyBsb25nIHBvc2l0
aW9uLCBFeGNlcHRpb25Db2RlJiBlYyk7CisgICAgdm9pZCB0cnVuY2F0ZShsb25nIGxvbmcgbGVu
Z3RoLCBFeGNlcHRpb25Db2RlJiBlYyk7CisgICAgdm9pZCBhYm9ydChFeGNlcHRpb25Db2RlJiBl
Yyk7CiAKLSAgICBSZWFkeVN0YXRlIHJlYWR5U3RhdGUoKSBjb25zdDsKKyAgICBSZWFkeVN0YXRl
IHJlYWR5U3RhdGUoKSBjb25zdCB7IHJldHVybiBtX3JlYWR5U3RhdGU7IH0KICAgICBGaWxlRXJy
b3IqIGVycm9yKCkgY29uc3QgeyByZXR1cm4gbV9lcnJvcjsgfTsKLSAgICBsb25nIGxvbmcgcG9z
aXRpb24oKSBjb25zdCB7IHJldHVybiAwOyB9OwotICAgIGxvbmcgbG9uZyBsZW5ndGgoKSBjb25z
dCB7IHJldHVybiAwOyB9OworICAgIGxvbmcgbG9uZyBwb3NpdGlvbigpIGNvbnN0IHsgcmV0dXJu
IG1fcG9zaXRpb247IH07CisgICAgbG9uZyBsb25nIGxlbmd0aCgpIGNvbnN0IHsgcmV0dXJuIG1f
bGVuZ3RoOyB9OworCisgICAgdm9pZCBkaWRXcml0ZShsb25nIGxvbmcpOworICAgIHZvaWQgZGlk
VHJ1bmNhdGUoKTsKKyAgICB2b2lkIGRpZEZhaWwoRXhjZXB0aW9uQ29kZSBlYyk7CiAKICAgICAv
LyBBY3RpdmVET01PYmplY3QKICAgICB2aXJ0dWFsIGJvb2wgY2FuU3VzcGVuZCgpIGNvbnN0Owot
ICAgIHZpcnR1YWwgdm9pZCBzdG9wKCk7CiAgICAgdmlydHVhbCBib29sIGhhc1BlbmRpbmdBY3Rp
dml0eSgpIGNvbnN0OworICAgIHZpcnR1YWwgdm9pZCBzdG9wKCk7CiAKICAgICAvLyBFdmVudFRh
cmdldAogICAgIHZpcnR1YWwgRmlsZVdyaXRlciogdG9GaWxlV3JpdGVyKCkgeyByZXR1cm4gdGhp
czsgfQpAQCAtODcsOSArOTIsOSBAQCBwdWJsaWM6CiAgICAgREVGSU5FX0FUVFJJQlVURV9FVkVO
VF9MSVNURU5FUihhYm9ydCk7CiAgICAgREVGSU5FX0FUVFJJQlVURV9FVkVOVF9MSVNURU5FUihl
cnJvcik7CiAgICAgREVGSU5FX0FUVFJJQlVURV9FVkVOVF9MSVNURU5FUih3cml0ZWVuZCk7Ci0K
KyAgICAKIHByaXZhdGU6Ci0gICAgRmlsZVdyaXRlcihTY3JpcHRFeGVjdXRpb25Db250ZXh0Kik7
CisgICAgRmlsZVdyaXRlcihTY3JpcHRFeGVjdXRpb25Db250ZXh0KiwgQXN5bmNGaWxlV3JpdGVy
KiwgY29uc3QgU3RyaW5nJiwgbG9uZyBsb25nKTsKIAogICAgIHZpcnR1YWwgfkZpbGVXcml0ZXIo
KTsKIApAQCAtMTAzLDYgKzEwOCwxMiBAQCBwcml2YXRlOgogCiAgICAgUmVmUHRyPEZpbGVFcnJv
cio+IG1fZXJyb3I7CiAgICAgRXZlbnRUYXJnZXREYXRhIG1fZXZlbnRUYXJnZXREYXRhOworICAg
IFJlZlB0cjxBc3luY0ZpbGVXcml0ZXIqPiBtX3dyaXRlcjsKKyAgICBSZWFkeVN0YXRlIG1fcmVh
ZHlTdGF0ZTsKKyAgICBsb25nIGxvbmcgbV9wb3NpdGlvbjsKKyAgICBsb25nIGxvbmcgbV9ieXRl
c1dyaXR0ZW47CisgICAgbG9uZyBsb25nIG1fYnl0ZXNUb1dyaXRlOworICAgIFN0cmluZyBtX3Bh
dGg7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCkluZGV4OiBXZWJDb3JlL2h0bWwvRmls
ZVdyaXRlckNsaWVudC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvaHRtbC9GaWxlV3JpdGVyQ2xp
ZW50LmgJKHJldmlzaW9uIDApCisrKyBXZWJDb3JlL2h0bWwvRmlsZVdyaXRlckNsaWVudC5oCShy
ZXZpc2lvbiAwKQpAQCAtMCwwICsxLDUzIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEwIEdv
b2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMgYXJlCisgKiBtZXQ6CisgKgorICogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqICAgICAq
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUK
KyAqIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIKKyAqIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKKyAqIGRpc3RyaWJ1dGlvbi4KKyAqICAgICAqIE5l
aXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKKyAqIGNv
bnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVy
aXZlZCBmcm9tCisgKiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRl
biBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENP
UFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKKyAqICJBUyBJUyIgQU5EIEFOWSBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVE
IFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IKKyAqIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVO
VCBTSEFMTCBUSEUgQ09QWVJJR0hUCisgKiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxF
IEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKyAqIFNQRUNJQUwsIEVYRU1Q
TEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJ
TUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExP
U1MgT0YgVVNFLAorICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9O
KSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisgKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVU
SEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5H
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV
U0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBGaWxlV3JpdGVyQ2xpZW50X2gKKyNk
ZWZpbmUgRmlsZVdyaXRlckNsaWVudF9oCisKKyNpZiBFTkFCTEUoRklMRV9XUklURVIpCisKKyNp
bmNsdWRlICJFeGNlcHRpb25Db2RlLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3Mg
RmlsZVdyaXRlckNsaWVudCB7CitwdWJsaWM6CisgICAgdm9pZCBkaWRXcml0ZShsb25nIGxvbmcp
ID0gMDsKKyAgICB2b2lkIGRpZFRydW5jYXRlKCkgPSAwOworICAgIHZvaWQgZGlkRmFpbChFeGNl
cHRpb25Db2RlKSA9IDA7Cit9OworCit9IC8vIG5hbWVzcGFjZQorCisjZW5kaWYgLy8gRU5BQkxF
KEZJTEVfV1JJVEVSKQorCisjZW5kaWYgLy8gRmlsZVdyaXRlckNsaWVudF9oCisKKwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>65644</attachid>
            <date>2010-08-26 16:33:45 -0700</date>
            <delta_ts>2010-08-27 14:54:26 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-44362-20100826163344.patch</filename>
            <type>text/plain</type>
            <size>27586</size>
            <attacher name="Eric U.">ericu</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA2NjE0OSkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsNDcgQEAKKzIwMTAtMDgtMjYgIEVyaWMgVWhyaGFuZSAgPGVyaWN1QGNocm9taXVt
Lm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBJ
bXBsZW1lbnQgdGhlIERPTSBGaWxlV3JpdGVyIGNsYXNzCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00NDM2MgorCisgICAgICAgIE5vIG5ldyB0ZXN0cyB1
bnRpbCB0aGUgZGVsZWdhdGUgY2xhc3MgaGFzIGFuIGltcGxlbWVudGF0aW9uOyBidWcgbG9nZ2Vk
LgorCisgICAgICAgIEJ1aWxkIGZpbGUgYWRkaXRpb25zLgorICAgICAgICAqIEdOVW1ha2VmaWxl
LmFtOgorICAgICAgICAqIFdlYkNvcmUuZ3lwaToKKyAgICAgICAgKiBXZWJDb3JlLnBybzoKKyAg
ICAgICAgKiBXZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvajoKKyAgICAgICAgKiBXZWJDb3Jl
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisKKyAgICAgICAgVGhlIEFzeW5jRmlsZVdyaXRl
ciBpcyBhbiBhYnN0cmFjdCBpbnRlcmZhY2UgdG8gd2hpY2ggRmlsZVdyaXRlciBkZWxlZ2F0ZXMg
YWxsIHRoZSBoYXJkIHdvcmsuCisgICAgICAgICogaHRtbC9Bc3luY0ZpbGVXcml0ZXIuaDogQWRk
ZWQuCisKKyAgICAgICAgVGhlIEZpbGVXcml0ZXJDbGllbnQgaXMgdGhlIGludGVyZmFjZSBmb3Ig
Y29tbXVuaWNhdGlvbnMgYmFjayBmcm9tIHRoZSBBc3luY0ZpbGVXcml0ZXIgW3N1Y2Nlc3MvZmFp
bHVyZSwgcHJvZ3Jlc3MgZXZlbnRzXS4KKyAgICAgICAgKiBodG1sL0ZpbGVXcml0ZXJDbGllbnQu
aDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpGaWxlV3JpdGVyQ2xpZW50Ojp+RmlsZVdyaXRl
ckNsaWVudCk6CisKKyAgICAgICAgQWRkZWQgYWxsIGRlbGVnYXRpb24sIHN0YXRlIHRyYWNraW5n
LCBhbmQgcHJvZ3Jlc3MgZXZlbnQgcHJvY2Vzc2luZy4KKyAgICAgICAgKiBodG1sL0ZpbGVXcml0
ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RmlsZVdyaXRlcjo6RmlsZVdyaXRlcik6CisgICAg
ICAgIChXZWJDb3JlOjpGaWxlV3JpdGVyOjppbml0aWFsaXplKToKKyAgICAgICAgKFdlYkNvcmU6
OkZpbGVXcml0ZXI6On5GaWxlV3JpdGVyKToKKyAgICAgICAgQWN0aXZlRG9tT2JqZWN0IHN0dWZm
CisgICAgICAgIChXZWJDb3JlOjpGaWxlV3JpdGVyOjpoYXNQZW5kaW5nQWN0aXZpdHkpOgorICAg
ICAgICAoV2ViQ29yZTo6RmlsZVdyaXRlcjo6c3RvcCk6CisgICAgICAgIChXZWJDb3JlOjpGaWxl
V3JpdGVyOjp3cml0ZSk6CisgICAgICAgIEZpbGVXcml0ZXIgcHVibGljIGludGVyZmFjZQorICAg
ICAgICAoV2ViQ29yZTo6RmlsZVdyaXRlcjo6c2Vlayk6CisgICAgICAgIChXZWJDb3JlOjpGaWxl
V3JpdGVyOjp0cnVuY2F0ZSk6CisgICAgICAgIChXZWJDb3JlOjpGaWxlV3JpdGVyOjphYm9ydCk6
CisgICAgICAgIEZpbGVXcml0ZXJDbGllbnQgaW50ZXJmYWNlCisgICAgICAgIChXZWJDb3JlOjpG
aWxlV3JpdGVyOjpkaWRXcml0ZSk6CisgICAgICAgIChXZWJDb3JlOjpGaWxlV3JpdGVyOjpkaWRU
cnVuY2F0ZSk6CisgICAgICAgIChXZWJDb3JlOjpGaWxlV3JpdGVyOjpkaWRGYWlsKToKKyAgICAg
ICAgUHJvZ3Jlc3MgZXZlbnRzCisgICAgICAgIChXZWJDb3JlOjpGaWxlV3JpdGVyOjpmaXJlRXZl
bnQpOgorICAgICAgICAqIGh0bWwvRmlsZVdyaXRlci5oOgorCiAyMDEwLTA4LTIzICBNYXJ0aW4g
Um9iaW5zb24gIDxtcm9iaW5zb25AaWdhbGlhLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBH
dXN0YXZvIE5vcm9uaGEgU2lsdmEuCkluZGV4OiBXZWJDb3JlL0dOVW1ha2VmaWxlLmFtCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFdlYkNvcmUvR05VbWFrZWZpbGUuYW0JKHJldmlzaW9uIDY2MTM5KQorKysgV2Vi
Q29yZS9HTlVtYWtlZmlsZS5hbQkod29ya2luZyBjb3B5KQpAQCAtMjM2LDggKzIzNiw2IEBAIHdl
YmNvcmVfYnVpbHRfc291cmNlcyArPSBcCiAJRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU0ZpbGVM
aXN0LmggXAogCURlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNGaWxlUmVhZGVyLmNwcCBcCiAJRGVy
aXZlZFNvdXJjZXMvV2ViQ29yZS9KU0ZpbGVSZWFkZXIuaCBcCi0JRGVyaXZlZFNvdXJjZXMvV2Vi
Q29yZS9KU0ZpbGVXcml0ZXIuY3BwIFwKLQlEZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTRmlsZVdy
aXRlci5oIFwKIAlEZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTRmxvYXQzMkFycmF5LmNwcCBcCiAJ
RGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU0Zsb2F0MzJBcnJheS5oIFwKIAlEZXJpdmVkU291cmNl
cy9XZWJDb3JlL0pTR2VvbG9jYXRpb24uY3BwIFwKQEAgLTEzNTQsOCArMTM1Miw2IEBAIHdlYmNv
cmVfc291cmNlcyArPSBcCiAJV2ViQ29yZS9odG1sL0ZpbGVMaXN0LmggXAogCVdlYkNvcmUvaHRt
bC9GaWxlUmVhZGVyLmNwcCBcCiAJV2ViQ29yZS9odG1sL0ZpbGVSZWFkZXIuaCBcCi0JV2ViQ29y
ZS9odG1sL0ZpbGVXcml0ZXIuY3BwIFwKLQlXZWJDb3JlL2h0bWwvRmlsZVdyaXRlci5oIFwKIAlX
ZWJDb3JlL2h0bWwvRmlsZVN0cmVhbVByb3h5LmNwcCBcCiAJV2ViQ29yZS9odG1sL0ZpbGVTdHJl
YW1Qcm94eS5oIFwKIAlXZWJDb3JlL2h0bWwvRmlsZVRocmVhZC5jcHAgXApAQCAtNDQzOSw2ICs0
NDM1LDE3IEBAIGVuZGlmICAjIEVORCBFTkFCTEVfQkxPQgogaWYgRU5BQkxFX0ZJTEVfV1JJVEVS
CiBGRUFUVVJFX0RFRklORVMgKz0gRU5BQkxFX0ZJTEVfV1JJVEVSPTEKIHdlYmNvcmVfY3BwZmxh
Z3MgKz0gLURFTkFCTEVfRklMRV9XUklURVI9MQorCit3ZWJjb3JlX2J1aWx0X3NvdXJjZXMgKz0g
XAorCURlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNGaWxlV3JpdGVyLmNwcCBcCisJRGVyaXZlZFNv
dXJjZXMvV2ViQ29yZS9KU0ZpbGVXcml0ZXIuaAorCit3ZWJjb3JlX3NvdXJjZXMgKz0gXAorCVdl
YkNvcmUvaHRtbC9Bc3luY0ZpbGVXcml0ZXIuaCBcCisJV2ViQ29yZS9odG1sL0ZpbGVXcml0ZXIu
Y3BwIFwKKwlXZWJDb3JlL2h0bWwvRmlsZVdyaXRlci5oIFwKKwlXZWJDb3JlL2h0bWwvRmlsZVdy
aXRlckNsaWVudC5oCisKIGVuZGlmICAjIEVORCBFTkFCTEVfRklMRV9XUklURVIKIAogRGVyaXZl
ZFNvdXJjZXMvV2ViQ29yZS9DU1NQcm9wZXJ0eU5hbWVzLmg6ICQoV0VCQ09SRV9DU1NfUFJPUEVS
VFlfTkFNRVMpICQoV2ViQ29yZSkvY3NzL21ha2Vwcm9wLnBsCkluZGV4OiBXZWJDb3JlL1dlYkNv
cmUuZ3lwaQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL1dlYkNvcmUuZ3lwaQkocmV2aXNpb24gNjYx
MzkpCisrKyBXZWJDb3JlL1dlYkNvcmUuZ3lwaQkod29ya2luZyBjb3B5KQpAQCAtMTQzNiw2ICsx
NDM2LDcgQEAKICAgICAgICAgICAgICdoaXN0b3J5L0hpc3RvcnlJdGVtLmgnLAogICAgICAgICAg
ICAgJ2hpc3RvcnkvUGFnZUNhY2hlLmNwcCcsCiAgICAgICAgICAgICAnaGlzdG9yeS9QYWdlQ2Fj
aGUuaCcsCisgICAgICAgICAgICAnaHRtbC9Bc3luY0ZpbGVXcml0ZXIuaCcsCiAgICAgICAgICAg
ICAnaHRtbC9Bc3luY0ltYWdlUmVzaXplci5jcHAnLAogICAgICAgICAgICAgJ2h0bWwvQXN5bmNJ
bWFnZVJlc2l6ZXIuaCcsCiAgICAgICAgICAgICAnaHRtbC9CbG9iLmNwcCcsCkBAIC0xNTIzLDEz
ICsxNTI0LDE0IEBACiAgICAgICAgICAgICAnaHRtbC9GaWxlTGlzdC5oJywKICAgICAgICAgICAg
ICdodG1sL0ZpbGVSZWFkZXIuY3BwJywKICAgICAgICAgICAgICdodG1sL0ZpbGVSZWFkZXIuaCcs
Ci0gICAgICAgICAgICAnaHRtbC9GaWxlV3JpdGVyLmNwcCcsCi0gICAgICAgICAgICAnaHRtbC9G
aWxlV3JpdGVyLmgnLAogICAgICAgICAgICAgJ2h0bWwvRmlsZVN0cmVhbVByb3h5LmNwcCcsCiAg
ICAgICAgICAgICAnaHRtbC9GaWxlU3RyZWFtUHJveHkuaCcsCiAgICAgICAgICAgICAnaHRtbC9G
aWxlVGhyZWFkLmNwcCcsCiAgICAgICAgICAgICAnaHRtbC9GaWxlVGhyZWFkLmgnLAogICAgICAg
ICAgICAgJ2h0bWwvRmlsZVRocmVhZFRhc2suaCcsCisgICAgICAgICAgICAnaHRtbC9GaWxlV3Jp
dGVyLmNwcCcsCisgICAgICAgICAgICAnaHRtbC9GaWxlV3JpdGVyLmgnLAorICAgICAgICAgICAg
J2h0bWwvRmlsZVdyaXRlckNsaWVudC5oJywKICAgICAgICAgICAgICdodG1sL0Zvcm1EYXRhTGlz
dC5jcHAnLAogICAgICAgICAgICAgJ2h0bWwvRm9ybURhdGFMaXN0LmgnLAogICAgICAgICAgICAg
J2h0bWwvSFRNTEVudGl0eVBhcnNlci5jcHAnLApJbmRleDogV2ViQ29yZS9XZWJDb3JlLnBybwo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBXZWJDb3JlL1dlYkNvcmUucHJvCShyZXZpc2lvbiA2NjEzOSkKKysrIFdl
YkNvcmUvV2ViQ29yZS5wcm8JKHdvcmtpbmcgY29weSkKQEAgLTE0MDQsNiArMTQwNCw3IEBAIEhF
QURFUlMgKz0gXAogICAgIGhpc3RvcnkvQ2FjaGVkUGFnZS5oIFwKICAgICBoaXN0b3J5L0hpc3Rv
cnlJdGVtLmggXAogICAgIGhpc3RvcnkvUGFnZUNhY2hlLmggXAorICAgIGh0bWwvQXN5bmNGaWxl
V3JpdGVyLmggXAogICAgIGh0bWwvQXN5bmNJbWFnZVJlc2l6ZXIuaCBcCiAgICAgaHRtbC9CbG9i
LmggXAogICAgIGh0bWwvQmxvYkJ1aWxkZXIuaCBcCkBAIC0xNDI4LDYgKzE0MjksNyBAQCBIRUFE
RVJTICs9IFwKICAgICBodG1sL0ZpbGVUaHJlYWQuaCBcCiAgICAgaHRtbC9GaWxlVGhyZWFkVGFz
ay5oIFwKICAgICBodG1sL0ZpbGVXcml0ZXIuaCBcCisgICAgaHRtbC9GaWxlV3JpdGVyQ2xpZW50
LmggXAogICAgIGh0bWwvRm9ybURhdGFMaXN0LmggXAogICAgIGh0bWwvSFRNTEFsbENvbGxlY3Rp
b24uaCBcCiAgICAgaHRtbC9IVE1MQW5jaG9yRWxlbWVudC5oIFwKQEAgLTI1OTQsNiArMjU5Niw3
IEBAIGNvbnRhaW5zKERFRklORVMsIEVOQUJMRV9GSUxFX1NZU1RFTT0xKSAKICAgICAgICAgc3Rv
cmFnZS9GaWxlRW50cnkuaCBcCiAgICAgICAgIHN0b3JhZ2UvRmlsZVN5c3RlbUNhbGxiYWNrLmgg
XAogICAgICAgICBzdG9yYWdlL0ZpbGVTeXN0ZW1DYWxsYmFja3MuaCBcCisgICAgICAgIHN0b3Jh
Z2UvRmlsZVdyaXRlckNhbGxiYWNrLmggXAogICAgICAgICBzdG9yYWdlL0ZsYWdzLmggXAogICAg
ICAgICBzdG9yYWdlL01ldGFkYXRhLmggXAogICAgICAgICBzdG9yYWdlL01ldGFkYXRhQ2FsbGJh
Y2suaApJbmRleDogV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvago9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBXZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCShyZXZpc2lvbiA2
NjEzOSkKKysrIFdlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oJKHdvcmtpbmcg
Y29weSkKQEAgLTM3MDUzLDYgKzM3MDUzLDEwIEBACiAJCQlOYW1lPSJodG1sIg0KIAkJCT4NCiAJ
CQk8RmlsZQ0KKwkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGh0bWxcQXN5bmNGaWxlV3JpdGVyLmgiDQor
CQkJCT4NCisJCQk8L0ZpbGU+DQorCQkJPEZpbGUNCiAJCQkJUmVsYXRpdmVQYXRoPSIuLlxodG1s
XEFzeW5jSW1hZ2VSZXNpemVyLmNwcCINCiAJCQkJPg0KIAkJCTwvRmlsZT4NCkBAIC0zNzI2MSw2
ICszNzI2NSwxMCBAQAogCQkJCT4NCiAJCQk8L0ZpbGU+DQogCQkJPEZpbGUNCisJCQkJUmVsYXRp
dmVQYXRoPSIuLlxodG1sXEZpbGVXcml0ZXJDbGllbnQuaCINCisJCQkJPg0KKwkJCTwvRmlsZT4N
CisJCQk8RmlsZQ0KIAkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGh0bWxcRm9ybURhdGFMaXN0LmNwcCIN
CiAJCQkJPg0KIAkJCTwvRmlsZT4NCkBAIC01MTI1Myw2ICs1MTI2MSwxMCBAQAogCQkJCT4NCiAJ
CQk8L0ZpbGU+DQogCQkJPEZpbGUNCisJCQkJUmVsYXRpdmVQYXRoPSIuLlxzdG9yYWdlXEZpbGVX
cml0ZXJDYWxsYmFjay5oIg0KKwkJCQk+DQorCQkJPC9GaWxlPg0KKwkJCTxGaWxlDQogCQkJCVJl
bGF0aXZlUGF0aD0iLi5cc3RvcmFnZVxGbGFncy5oIg0KIAkJCQk+DQogCQkJPC9GaWxlPg0KSW5k
ZXg6IFdlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFdlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCShyZXZpc2lvbiA2
NjEzOSkKKysrIFdlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCSh3b3Jr
aW5nIGNvcHkpCkBAIC04OTgsMTQgKzg5OCwxOCBAQAogCQk0NDhBRDI3QzBBNDgxMzdBMDAyM0Qx
NzkgLyogSlNIVE1MT3B0aW9uc0NvbGxlY3Rpb25DdXN0b20uY3BwIGluIFNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDQ4QUQyN0EwQTQ4MTM3OTAwMjNEMTc5IC8q
IEpTSFRNTE9wdGlvbnNDb2xsZWN0aW9uQ3VzdG9tLmNwcCAqLzsgfTsKIAkJNDQ5QjE5RjUwRkE3
MkVDRTAwMTVDQTRBIC8qIEhUTUxQYXJzZXJRdWlya3MuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ0OUIxOUYzMEZBNzJFQ0UwMDE1Q0E0QSAvKiBIVE1M
UGFyc2VyUXVpcmtzLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsg
fTsgfTsKIAkJNDYxNEExRkUwQjIzQThENjAwNDQ2RTFDIC8qIGNvcHlDdXJzb3IucG5nIGluIFJl
c291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0NjE0QTFGRDBCMjNB
OEQ2MDA0NDZFMUMgLyogY29weUN1cnNvci5wbmcgKi87IH07CisJCTQ2MTdFN0IxMTIxRTA3OEYw
MDVFQzhBOCAvKiBBc3luY0ZpbGVXcml0ZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDQ2MTdFN0IwMTIxRTA3OEYwMDVFQzhBOCAvKiBBc3luY0ZpbGVX
cml0ZXIuaCAqLzsgfTsKIAkJNDY0RUEyNzMwQjhBMzUwQjAwQThFNkUzIC8qIGNyb3NzSGFpckN1
cnNvci5wbmcgaW4gUmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDQ2NEVBMjcxMEI4QTM1MEIwMEE4RTZFMyAvKiBjcm9zc0hhaXJDdXJzb3IucG5nICovOyB9Owog
CQk0NjRFQTI3NDBCOEEzNTBCMDBBOEU2RTMgLyogbm90QWxsb3dlZEN1cnNvci5wbmcgaW4gUmVz
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ2NEVBMjcyMEI4QTM1
MEIwMEE4RTZFMyAvKiBub3RBbGxvd2VkQ3Vyc29yLnBuZyAqLzsgfTsKKwkJNDY4RjVBQTQxMjFG
MUQ3NDAwQjVDNDk4IC8qIEZpbGVXcml0ZXJDbGllbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ2OEY1QUEzMTIxRjFENzQwMEI1QzQ5OCAvKiBGaWxl
V3JpdGVyQ2xpZW50LmggKi87IH07CiAJCTQ2QTI2OTA1MTIxQjZCNDMwMEM0MUYzQSAvKiBGaWxl
V3JpdGVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDQ2QTI2OTAyMTIxQjZCNDMwMEM0MUYzQSAvKiBGaWxlV3JpdGVyLmNwcCAqLzsgfTsKIAkJNDZB
MjY5MDYxMjFCNkI0MzAwQzQxRjNBIC8qIEZpbGVXcml0ZXIuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ2QTI2OTAzMTIxQjZCNDMwMEM0MUYzQSAvKiBG
aWxlV3JpdGVyLmggKi87IH07CiAJCTQ2QkQxNkUzMEIyNzk0NzMwMDFGMDgzOSAvKiBub25lQ3Vy
c29yLnBuZyBpbiBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
NDZCRDE2RTIwQjI3OTQ3MzAwMUYwODM5IC8qIG5vbmVDdXJzb3IucG5nICovOyB9OwogCQk0NkQ0
RjI0OTBBRjk3RTgxMDAzNTM4NUEgLyogY2VsbEN1cnNvci5wbmcgaW4gUmVzb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ2RDRGMjQ2MEFGOTdFODEwMDM1Mzg1QSAv
KiBjZWxsQ3Vyc29yLnBuZyAqLzsgfTsKIAkJNDZENEYyNEEwQUY5N0U4MTAwMzUzODVBIC8qIGNv
bnRleHRNZW51Q3Vyc29yLnBuZyBpbiBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gNDZENEYyNDcwQUY5N0U4MTAwMzUzODVBIC8qIGNvbnRleHRNZW51Q3Vyc29y
LnBuZyAqLzsgfTsKIAkJNDZENEYyNEIwQUY5N0U4MTAwMzUzODVBIC8qIHZlcnRpY2FsVGV4dEN1
cnNvci5wbmcgaW4gUmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDQ2RDRGMjQ4MEFGOTdFODEwMDM1Mzg1QSAvKiB2ZXJ0aWNhbFRleHRDdXJzb3IucG5nICovOyB9
OworCQk0NkRBODQ0RDEyMjRBMDcxMDA2MEQwMDYgLyogSlNGaWxlV3JpdGVyLmNwcCBpbiBTb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ2REE4NDRCMTIyNEEwNzEw
MDYwRDAwNiAvKiBKU0ZpbGVXcml0ZXIuY3BwICovOyB9OworCQk0NkRBODQ0RTEyMjRBMDcxMDA2
MEQwMDYgLyogSlNGaWxlV3JpdGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA0NkRBODQ0QzEyMjRBMDcxMDA2MEQwMDYgLyogSlNGaWxlV3JpdGVyLmgg
Ki87IH07CiAJCTQ2RjlENUREMEIwRDYwMTcwMDI4RUUzNiAvKiBhbGlhc0N1cnNvci5wbmcgaW4g
UmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ2RjlENURBMEIw
RDYwMTcwMDI4RUUzNiAvKiBhbGlhc0N1cnNvci5wbmcgKi87IH07CiAJCTQ2RjlENURFMEIwRDYw
MTcwMDI4RUUzNiAvKiBub0Ryb3BDdXJzb3IucG5nIGluIFJlc291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0NkY5RDVEQjBCMEQ2MDE3MDAyOEVFMzYgLyogbm9Ecm9w
Q3Vyc29yLnBuZyAqLzsgfTsKIAkJNDZGOUQ1REYwQjBENjAxNzAwMjhFRTM2IC8qIHByb2dyZXNz
Q3Vyc29yLnBuZyBpbiBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gNDZGOUQ1REMwQjBENjAxNzAwMjhFRTM2IC8qIHByb2dyZXNzQ3Vyc29yLnBuZyAqLzsgfTsK
QEAgLTY3NDMsOCArNjc0NywxMCBAQAogCQk0NDkwOThCMTBGOEY4MjUyMDA3NkEzMjcgLyogRmVh
dHVyZURlZmluZXMueGNjb25maWcgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0LnhjY29uZmlnOyBwYXRoID0gRmVh
dHVyZURlZmluZXMueGNjb25maWc7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQ0OUIx
OUYzMEZBNzJFQ0UwMDE1Q0E0QSAvKiBIVE1MUGFyc2VyUXVpcmtzLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IEhUTUxQYXJzZXJRdWlya3MuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJNDYxNEExRkQwQjIzQThENjAwNDQ2RTFDIC8qIGNvcHlDdXJzb3IucG5nICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gaW1hZ2UucG5n
OyBwYXRoID0gY29weUN1cnNvci5wbmc7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTQ2
MTdFN0IwMTIxRTA3OEYwMDVFQzhBOCAvKiBBc3luY0ZpbGVXcml0ZXIuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gQXN5bmNGaWxlV3JpdGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTQ2NEVBMjcxMEI4QTM1MEIwMEE4RTZFMyAvKiBjcm9zc0hhaXJDdXJzb3Iu
cG5nICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gaW1h
Z2UucG5nOyBwYXRoID0gY3Jvc3NIYWlyQ3Vyc29yLnBuZzsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJNDY0RUEyNzIwQjhBMzUwQjAwQThFNkUzIC8qIG5vdEFsbG93ZWRDdXJzb3IucG5n
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gaW1hZ2Uu
cG5nOyBwYXRoID0gbm90QWxsb3dlZEN1cnNvci5wbmc7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CisJCTQ2OEY1QUEzMTIxRjFENzQwMEI1QzQ5OCAvKiBGaWxlV3JpdGVyQ2xpZW50LmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEZpbGVXcml0ZXJDbGllbnQuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDZBMjY5MDIxMjFCNkI0MzAwQzQxRjNBIC8qIEZpbGVX
cml0ZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gRmlsZVdyaXRl
ci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQ2QTI2OTAzMTIxQjZCNDMwMEM0
MUYzQSAvKiBGaWxlV3JpdGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEZp
bGVXcml0ZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDZBMjY5MDQxMjFCNkI0
MzAwQzQxRjNBIC8qIEZpbGVXcml0ZXIuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IEZpbGVX
cml0ZXIuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtNjc1Miw2ICs2NzU4LDgg
QEAKIAkJNDZENEYyNDYwQUY5N0U4MTAwMzUzODVBIC8qIGNlbGxDdXJzb3IucG5nICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gaW1hZ2UucG5nOyBwYXRo
ID0gY2VsbEN1cnNvci5wbmc7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQ2RDRGMjQ3
MEFGOTdFODEwMDM1Mzg1QSAvKiBjb250ZXh0TWVudUN1cnNvci5wbmcgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBpbWFnZS5wbmc7IHBhdGggPSBjb250
ZXh0TWVudUN1cnNvci5wbmc7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQ2RDRGMjQ4
MEFGOTdFODEwMDM1Mzg1QSAvKiB2ZXJ0aWNhbFRleHRDdXJzb3IucG5nICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gaW1hZ2UucG5nOyBwYXRoID0gdmVy
dGljYWxUZXh0Q3Vyc29yLnBuZzsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNDZEQTg0
NEIxMjI0QTA3MTAwNjBEMDA2IC8qIEpTRmlsZVdyaXRlci5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5jcHA7IHBhdGggPSBKU0ZpbGVXcml0ZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OworCQk0NkRBODQ0QzEyMjRBMDcxMDA2MEQwMDYgLyogSlNGaWxlV3JpdGVyLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTRmlsZVdyaXRlci5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQk0NkY5RDVEQTBCMEQ2MDE3MDAyOEVFMzYgLyogYWxpYXNDdXJz
b3IucG5nICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0g
aW1hZ2UucG5nOyBwYXRoID0gYWxpYXNDdXJzb3IucG5nOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQk0NkY5RDVEQjBCMEQ2MDE3MDAyOEVFMzYgLyogbm9Ecm9wQ3Vyc29yLnBuZyAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IGltYWdlLnBuZzsg
cGF0aCA9IG5vRHJvcEN1cnNvci5wbmc7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQ2
RjlENURDMEIwRDYwMTcwMDI4RUUzNiAvKiBwcm9ncmVzc0N1cnNvci5wbmcgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBpbWFnZS5wbmc7IHBhdGggPSBw
cm9ncmVzc0N1cnNvci5wbmc7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xMjAzMCw2
ICsxMjAzOCw3IEBACiAJCQkJNDlFRUNEQzcxMDUwM0MyMzAwMDk5RkFCIC8qIEFycmF5QnVmZmVy
Vmlldy5jcHAgKi8sCiAJCQkJNDlFRUNEQzgxMDUwM0MyMzAwMDk5RkFCIC8qIEFycmF5QnVmZmVy
Vmlldy5oICovLAogCQkJCTQ5RUVDREM5MTA1MDNDMjMwMDA5OUZBQiAvKiBBcnJheUJ1ZmZlclZp
ZXcuaWRsICovLAorCQkJCTQ2MTdFN0IwMTIxRTA3OEYwMDVFQzhBOCAvKiBBc3luY0ZpbGVXcml0
ZXIuaCAqLywKIAkJCQk2RTRFOTFBNzEwRjdGQjMxMDBBMjc3OUMgLyogQ2FudmFzQ29udGV4dEF0
dHJpYnV0ZXMuY3BwICovLAogCQkJCTZFNEU5MUE4MTBGN0ZCMzEwMEEyNzc5QyAvKiBDYW52YXND
b250ZXh0QXR0cmlidXRlcy5oICovLAogCQkJCTQ5NDg0RkIzMTAyQ0YyM0MwMDE4N0REMyAvKiBD
YW52YXNHcmFkaWVudC5jcHAgKi8sCkBAIC0xNDA1NSw2ICsxNDA2NCw3IEBACiAJCQkJODk1MjUz
REUxMTZDNEYwNjAwQ0FCRjAwIC8qIEZpbGVUaHJlYWRUYXNrLmggKi8sCiAJCQkJNDZBMjY5MDIx
MjFCNkI0MzAwQzQxRjNBIC8qIEZpbGVXcml0ZXIuY3BwICovLAogCQkJCTQ2QTI2OTAzMTIxQjZC
NDMwMEM0MUYzQSAvKiBGaWxlV3JpdGVyLmggKi8sCisJCQkJNDY4RjVBQTMxMjFGMUQ3NDAwQjVD
NDk4IC8qIEZpbGVXcml0ZXJDbGllbnQuaCAqLywKIAkJCQk0NkEyNjkwNDEyMUI2QjQzMDBDNDFG
M0EgLyogRmlsZVdyaXRlci5pZGwgKi8sCiAJCQkJQTgxMzZEMzcwOTczQThFNzAwRDc0NDYzIC8q
IEZvcm1EYXRhTGlzdC5jcHAgKi8sCiAJCQkJQTgxMzZEMzYwOTczQThFNzAwRDc0NDYzIC8qIEZv
cm1EYXRhTGlzdC5oICovLApAQCAtMTQ0MzgsNiArMTQ0NDgsOCBAQAogCQkJCUJDMDBGMDEzMEUw
QTE4OTUwMEZEMDRFMyAvKiBKU0ZpbGVMaXN0LmggKi8sCiAJCQkJMkU5NEY0MzkxMTkyMDdEQTAw
QjdGNzVEIC8qIEpTRmlsZVJlYWRlci5jcHAgKi8sCiAJCQkJMkU5NEY0M0ExMTkyMDdEQTAwQjdG
NzVEIC8qIEpTRmlsZVJlYWRlci5oICovLAorCQkJCTQ2REE4NDRCMTIyNEEwNzEwMDYwRDAwNiAv
KiBKU0ZpbGVXcml0ZXIuY3BwICovLAorCQkJCTQ2REE4NDRDMTIyNEEwNzEwMDYwRDAwNiAvKiBK
U0ZpbGVXcml0ZXIuaCAqLywKIAkJCQk0OUVFQ0VGNDEwNTA3MEM0MDAwOTlGQUIgLyogSlNGbG9h
dDMyQXJyYXkuY3BwICovLAogCQkJCTQ5RUVDRUY1MTA1MDcwQzQwMDA5OUZBQiAvKiBKU0Zsb2F0
MzJBcnJheS5oICovLAogCQkJCUJDOTdFNDEwMTA5MTU0RkEwMDEwRDM2MSAvKiBKU0hUTUxBbGxD
b2xsZWN0aW9uLmNwcCAqLywKQEAgLTIwMzY2LDEwICsyMDM3OCwxMyBAQAogCQkJCTQ2QTI2OTA2
MTIxQjZCNDMwMEM0MUYzQSAvKiBGaWxlV3JpdGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQkyRUYx
QkZGNzEyMUNCMEJEMDBDMjc2MjcgLyogQXN5bmNGaWxlU3RyZWFtLmggaW4gSGVhZGVycyAqLywK
IAkJCQkyRUYxQkZGOTEyMUNCMENFMDBDMjc2MjcgLyogRmlsZVN0cmVhbUNsaWVudC5oIGluIEhl
YWRlcnMgKi8sCisJCQkJNDYxN0U3QjExMjFFMDc4RjAwNUVDOEE4IC8qIEFzeW5jRmlsZVdyaXRl
ci5oIGluIEhlYWRlcnMgKi8sCisJCQkJNDY4RjVBQTQxMjFGMUQ3NDAwQjVDNDk4IC8qIEZpbGVX
cml0ZXJDbGllbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCTg5QzBERDdCMTIxRjBDNjkwMDlFMTdD
QSAvKiBGaWxlU3lzdGVtQ2FsbGJhY2tzLmggaW4gSGVhZGVycyAqLywKIAkJCQlDRTA1N0ZBNjEy
MjA3MzExMDBBNDc2RDUgLyogRG9jdW1lbnRNYXJrZXJDb250cm9sbGVyLmggaW4gSGVhZGVycyAq
LywKIAkJCQk5RjBENkIyRjEyMUJGRUJBMDA2QzAyODggLyogSW5zcGVjdG9yUHJvZmlsZXJBZ2Vu
dC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMkVCNEJDRDMxMjFGMDNFMzAwRUM0ODg1IC8qIEJsb2JS
ZXNvdXJjZUhhbmRsZS5oIGluIEhlYWRlcnMgKi8sCisJCQkJNDZEQTg0NEUxMjI0QTA3MTAwNjBE
MDA2IC8qIEpTRmlsZVdyaXRlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJODk2ODZDQTAxMjIyNDRB
MDAwNzZFQUE0IC8qIERPTUZpbGVQYXRoLmggaW4gSGVhZGVycyAqLywKIAkJCQk4OTQ3QTgyQTEy
MjIyQzQ3MDBEOTVGMkQgLyogSlNNZXRhZGF0YS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJODk0N0E4
MkMxMjIyMkM0NzAwRDk1RjJEIC8qIEpTTWV0YWRhdGFDYWxsYmFjay5oIGluIEhlYWRlcnMgKi8s
CkBAIC0yMjgzMCw2ICsyMjg0NSw3IEBACiAJCQkJQ0UwNTdGQTUxMjIwNzMxMTAwQTQ3NkQ1IC8q
IERvY3VtZW50TWFya2VyQ29udHJvbGxlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk5RjBENkIy
RTEyMUJGRUJBMDA2QzAyODggLyogSW5zcGVjdG9yUHJvZmlsZXJBZ2VudC5jcHAgaW4gU291cmNl
cyAqLywKIAkJCQkyRUI0QkNEMjEyMUYwM0UzMDBFQzQ4ODUgLyogQmxvYlJlc291cmNlSGFuZGxl
LmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTQ2REE4NDREMTIyNEEwNzEwMDYwRDAwNiAvKiBKU0Zp
bGVXcml0ZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJODk2ODZDOUYxMjIyNDRBMDAwNzZFQUE0
IC8qIERPTUZpbGVQYXRoLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTg5NDdBODI5MTIyMjJDNDcw
MEQ5NUYyRCAvKiBKU01ldGFkYXRhLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTg5NDdBODJCMTIy
MjJDNDcwMEQ5NUYyRCAvKiBKU01ldGFkYXRhQ2FsbGJhY2suY3BwIGluIFNvdXJjZXMgKi8sCklu
ZGV4OiBXZWJDb3JlL2h0bWwvQXN5bmNGaWxlV3JpdGVyLmgKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29y
ZS9odG1sL0FzeW5jRmlsZVdyaXRlci5oCShyZXZpc2lvbiAwKQorKysgV2ViQ29yZS9odG1sL0Fz
eW5jRmlsZVdyaXRlci5oCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDYwIEBACisvKgorICogQ29w
eXJpZ2h0IChDKSAyMDEwIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCisgKiBtZXQ6CisgKgorICogICAgICogUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUKKyAqIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKKyAqIGluIHRoZSBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKKyAqIGRpc3RyaWJ1
dGlvbi4KKyAqICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBu
YW1lcyBvZiBpdHMKKyAqIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHBy
b21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCisgKiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3Bl
Y2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKKyAqICJB
UyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBC
VVQgTk9UCisgKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5U
QUJJTElUWSBBTkQgRklUTkVTUyBGT1IKKyAqIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVND
TEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCisgKiBPV05FUiBPUiBDT05U
UklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwK
KyAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJ
TkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAorICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVT
SU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisgKiBUSEVPUlkg
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBBc3lu
Y0ZpbGVXcml0ZXJfaAorI2RlZmluZSBBc3luY0ZpbGVXcml0ZXJfaAorCisjaWYgRU5BQkxFKEZJ
TEVfV1JJVEVSKQorCisjaW5jbHVkZSAiUGxhdGZvcm1TdHJpbmcuaCIKKyNpbmNsdWRlIDx3dGYv
UmVmQ291bnRlZC5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIEJsb2I7CitjbGFz
cyBGaWxlV3JpdGVyQ2xpZW50OworCitjbGFzcyBBc3luY0ZpbGVXcml0ZXIgeworcHVibGljOgor
ICAgIHZpcnR1YWwgfkFzeW5jRmlsZVdyaXRlcigpIHt9CisKKyAgICB2aXJ0dWFsIHZvaWQgc2V0
RmlsZVdyaXRlckNsaWVudChGaWxlV3JpdGVyQ2xpZW50KiBjbGllbnQpID0gMDsKKworICAgIHZp
cnR1YWwgdm9pZCB3cml0ZShsb25nIGxvbmcgcG9zaXRpb24sIEJsb2IqIGRhdGEpID0gMDsKKyAg
ICB2aXJ0dWFsIHZvaWQgdHJ1bmNhdGUobG9uZyBsb25nIGxlbmd0aCkgPSAwOworICAgIHZpcnR1
YWwgdm9pZCBhYm9ydCgpID0gMDsKK307CisKK30gLy8gbmFtZXNwYWNlCisKKyNlbmRpZiAvLyBF
TkFCTEUoRklMRV9XUklURVIpCisKKyNlbmRpZiAvLyBBc3luY0ZpbGVXcml0ZXJfaAorCkluZGV4
OiBXZWJDb3JlL2h0bWwvRmlsZVdyaXRlci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9odG1s
L0ZpbGVXcml0ZXIuY3BwCShyZXZpc2lvbiA2NjEzOSkKKysrIFdlYkNvcmUvaHRtbC9GaWxlV3Jp
dGVyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzQsMjAgKzM0LDQwIEBACiAKICNpbmNsdWRlICJG
aWxlV3JpdGVyLmgiCiAKKyNpbmNsdWRlICJBc3luY0ZpbGVXcml0ZXIuaCIKKyNpbmNsdWRlICJC
bG9iLmgiCisjaW5jbHVkZSAiRXhjZXB0aW9uQ29kZS5oIgorI2luY2x1ZGUgIkZpbGVFcnJvci5o
IgorI2luY2x1ZGUgIlByb2dyZXNzRXZlbnQuaCIKKwogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBG
aWxlV3JpdGVyOjpGaWxlV3JpdGVyKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQpCiAg
ICAgOiBBY3RpdmVET01PYmplY3QoY29udGV4dCwgdGhpcykKKyAgICAsIG1fcmVhZHlTdGF0ZShJ
TklUKQorICAgICwgbV9wb3NpdGlvbigwKQorICAgICwgbV9ieXRlc1dyaXR0ZW4oMCkKKyAgICAs
IG1fYnl0ZXNUb1dyaXRlKDApCiB7CiB9CiAKK3ZvaWQgRmlsZVdyaXRlcjo6aW5pdGlhbGl6ZShQ
YXNzT3duUHRyPEFzeW5jRmlsZVdyaXRlcj4gd3JpdGVyLCBsb25nIGxvbmcgbGVuZ3RoKQorewor
ICAgIEFTU0VSVCghbV93cml0ZXIpOworICAgIEFTU0VSVChsZW5ndGggPj0gMCk7CisgICAgbV93
cml0ZXIgPSB3cml0ZXI7CisgICAgbV9sZW5ndGggPSBsZW5ndGg7Cit9CisKIEZpbGVXcml0ZXI6
On5GaWxlV3JpdGVyKCkKIHsKKyAgICBpZiAobV9yZWFkeVN0YXRlID09IFdSSVRJTkcpCisgICAg
ICAgIHN0b3AoKTsKIH0KIAogYm9vbCBGaWxlV3JpdGVyOjpoYXNQZW5kaW5nQWN0aXZpdHkoKSBj
b25zdAogewotICAgIHJldHVybiBmYWxzZTsKKyAgICByZXR1cm4gbV9yZWFkeVN0YXRlID09IFdS
SVRJTkcgfHwgQWN0aXZlRE9NT2JqZWN0OjpoYXNQZW5kaW5nQWN0aXZpdHkoKTsKIH0KIAogYm9v
bCBGaWxlV3JpdGVyOjpjYW5TdXNwZW5kKCkgY29uc3QKQEAgLTU4LDI3ICs3OCwxMjAgQEAgYm9v
bCBGaWxlV3JpdGVyOjpjYW5TdXNwZW5kKCkgY29uc3QKIAogdm9pZCBGaWxlV3JpdGVyOjpzdG9w
KCkKIHsKKyAgICBpZiAobV93cml0ZXIgJiYgbV9yZWFkeVN0YXRlID09IFdSSVRJTkcpCisgICAg
ICAgIG1fd3JpdGVyLT5hYm9ydCgpOworICAgIG1fcmVhZHlTdGF0ZSA9IERPTkU7Cit9CisKK3Zv
aWQgRmlsZVdyaXRlcjo6d3JpdGUoQmxvYiogZGF0YSwgRXhjZXB0aW9uQ29kZSYgZWMpCit7Cisg
ICAgQVNTRVJUKG1fd3JpdGVyKTsKKyAgICBpZiAobV9yZWFkeVN0YXRlID09IFdSSVRJTkcpIHsK
KyAgICAgICAgZWMgPSBJTlZBTElEX1NUQVRFX0VSUjsKKyAgICAgICAgbV9lcnJvciA9IEZpbGVF
cnJvcjo6Y3JlYXRlKGVjKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIG1fcmVhZHlT
dGF0ZSA9IFdSSVRJTkc7CisgICAgbV9ieXRlc1dyaXR0ZW4gPSAwOworICAgIG1fYnl0ZXNUb1dy
aXRlID0gZGF0YS0+c2l6ZSgpOworICAgIGZpcmVFdmVudChldmVudE5hbWVzKCkud3JpdGVzdGFy
dEV2ZW50KTsKKyAgICBtX3dyaXRlci0+d3JpdGUobV9wb3NpdGlvbiwgZGF0YSk7Cit9CisKK3Zv
aWQgRmlsZVdyaXRlcjo6c2Vlayhsb25nIGxvbmcgcG9zaXRpb24sIEV4Y2VwdGlvbkNvZGUmIGVj
KQoreworICAgIEFTU0VSVChtX3dyaXRlcik7CisgICAgaWYgKG1fcmVhZHlTdGF0ZSA9PSBXUklU
SU5HKSB7CisgICAgICAgIGVjID0gSU5WQUxJRF9TVEFURV9FUlI7CisgICAgICAgIG1fZXJyb3Ig
PSBGaWxlRXJyb3I6OmNyZWF0ZShlYyk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBt
X2J5dGVzV3JpdHRlbiA9IDA7CisgICAgbV9ieXRlc1RvV3JpdGUgPSAwOworICAgIGlmIChwb3Np
dGlvbiA+IG1fbGVuZ3RoKQorICAgICAgICBwb3NpdGlvbiA9IG1fbGVuZ3RoOworICAgIGVsc2Ug
aWYgKHBvc2l0aW9uIDwgMCkKKyAgICAgICAgcG9zaXRpb24gPSBtX2xlbmd0aCArIHBvc2l0aW9u
OworICAgIGlmIChwb3NpdGlvbiA8IDApCisgICAgICAgIHBvc2l0aW9uID0gMDsKKyAgICBtX3Bv
c2l0aW9uID0gcG9zaXRpb247Cit9CisKK3ZvaWQgRmlsZVdyaXRlcjo6dHJ1bmNhdGUobG9uZyBs
b25nIHBvc2l0aW9uLCBFeGNlcHRpb25Db2RlJiBlYykKK3sKKyAgICBBU1NFUlQobV93cml0ZXIp
OworICAgIGlmIChtX3JlYWR5U3RhdGUgPT0gV1JJVElORyB8fCBwb3NpdGlvbiA+PSBtX2xlbmd0
aCkgeworICAgICAgICBlYyA9IElOVkFMSURfU1RBVEVfRVJSOworICAgICAgICBtX2Vycm9yID0g
RmlsZUVycm9yOjpjcmVhdGUoZWMpOworICAgICAgICByZXR1cm47CisgICAgfQorICAgIG1fcmVh
ZHlTdGF0ZSA9IFdSSVRJTkc7CisgICAgbV9ieXRlc1dyaXR0ZW4gPSAwOworICAgIG1fYnl0ZXNU
b1dyaXRlID0gMDsKKyAgICBmaXJlRXZlbnQoZXZlbnROYW1lcygpLndyaXRlc3RhcnRFdmVudCk7
CisgICAgbV93cml0ZXItPnRydW5jYXRlKHBvc2l0aW9uKTsKK30KKwordm9pZCBGaWxlV3JpdGVy
OjphYm9ydChFeGNlcHRpb25Db2RlJiBlYykKK3sKKyAgICBBU1NFUlQobV93cml0ZXIpOworICAg
IGlmIChtX3JlYWR5U3RhdGUgIT0gV1JJVElORykgeworICAgICAgICBlYyA9IElOVkFMSURfU1RB
VEVfRVJSOworICAgICAgICBtX2Vycm9yID0gRmlsZUVycm9yOjpjcmVhdGUoZWMpOworICAgICAg
ICByZXR1cm47CisgICAgfQorICAgIG1fZXJyb3IgPSBGaWxlRXJyb3I6OmNyZWF0ZShBQk9SVF9F
UlIpOworICAgIG1fcmVhZHlTdGF0ZSA9IERPTkU7CisgICAgZmlyZUV2ZW50KGV2ZW50TmFtZXMo
KS5lcnJvckV2ZW50KTsKKyAgICBmaXJlRXZlbnQoZXZlbnROYW1lcygpLmFib3J0RXZlbnQpOwor
ICAgIGZpcmVFdmVudChldmVudE5hbWVzKCkud3JpdGVlbmRFdmVudCk7CisgICAgbV93cml0ZXIt
PmFib3J0KCk7Cit9CisKK3ZvaWQgRmlsZVdyaXRlcjo6ZGlkV3JpdGUobG9uZyBsb25nIGJ5dGVz
LCBib29sIGNvbXBsZXRlKQoreworICAgIEFTU0VSVChieXRlcyA+IDApOworICAgIEFTU0VSVChi
eXRlcyArIG1fYnl0ZXNXcml0dGVuID4gMCk7CisgICAgQVNTRVJUKGJ5dGVzICsgbV9ieXRlc1dy
aXR0ZW4gPD0gbV9ieXRlc1RvV3JpdGUpOworICAgIG1fYnl0ZXNXcml0dGVuICs9IGJ5dGVzOwor
ICAgIEFTU0VSVCgobV9ieXRlc1dyaXR0ZW4gPT0gbV9ieXRlc1RvV3JpdGUpID09IGNvbXBsZXRl
KTsKKyAgICBtX3Bvc2l0aW9uICs9IGJ5dGVzOworICAgIGlmIChtX3Bvc2l0aW9uID4gbV9sZW5n
dGgpCisgICAgICAgIG1fbGVuZ3RoID0gbV9wb3NpdGlvbjsKKyAgICBpZiAoY29tcGxldGUpCisg
ICAgICAgIG1fcmVhZHlTdGF0ZSA9IERPTkU7CisgICAgZmlyZUV2ZW50KGV2ZW50TmFtZXMoKS53
cml0ZUV2ZW50KTsKKyAgICBpZiAoY29tcGxldGUpCisgICAgICAgIGZpcmVFdmVudChldmVudE5h
bWVzKCkud3JpdGVlbmRFdmVudCk7Cit9CisKK3ZvaWQgRmlsZVdyaXRlcjo6ZGlkVHJ1bmNhdGUo
bG9uZyBsb25nIGxlbmd0aCkKK3sKKyAgICBBU1NFUlQobGVuZ3RoID4gMCk7CisgICAgQVNTRVJU
KGxlbmd0aCA+PSAwKTsKKyAgICBBU1NFUlQobGVuZ3RoIDwgbV9sZW5ndGgpOworICAgIG1fbGVu
Z3RoID0gbGVuZ3RoOworICAgIGlmIChtX3Bvc2l0aW9uID4gbV9sZW5ndGgpCisgICAgICAgIG1f
cG9zaXRpb24gPSBtX2xlbmd0aDsKKyAgICBtX3JlYWR5U3RhdGUgPSBET05FOworICAgIGZpcmVF
dmVudChldmVudE5hbWVzKCkud3JpdGVFdmVudCk7CisgICAgZmlyZUV2ZW50KGV2ZW50TmFtZXMo
KS53cml0ZWVuZEV2ZW50KTsKK30KKwordm9pZCBGaWxlV3JpdGVyOjpkaWRGYWlsKEV4Y2VwdGlv
bkNvZGUgZWMpCit7CisgICAgbV9lcnJvciA9IEZpbGVFcnJvcjo6Y3JlYXRlKGVjKTsKKyAgICBt
X3JlYWR5U3RhdGUgPSBET05FOworICAgIGZpcmVFdmVudChldmVudE5hbWVzKCkuZXJyb3JFdmVu
dCk7CisgICAgZmlyZUV2ZW50KGV2ZW50TmFtZXMoKS53cml0ZWVuZEV2ZW50KTsKIH0KIAotdm9p
ZCBGaWxlV3JpdGVyOjp3cml0ZShCbG9iKikKLXsKLX0KLQotdm9pZCBGaWxlV3JpdGVyOjpzZWVr
KGxvbmcgbG9uZykKLXsKLX0KLQotdm9pZCBGaWxlV3JpdGVyOjp0cnVuY2F0ZShsb25nIGxvbmcp
Ci17Ci19Ci0KLXZvaWQgRmlsZVdyaXRlcjo6YWJvcnQoKQotewotfQotCi1GaWxlV3JpdGVyOjpS
ZWFkeVN0YXRlIEZpbGVXcml0ZXI6OnJlYWR5U3RhdGUoKSBjb25zdAordm9pZCBGaWxlV3JpdGVy
OjpmaXJlRXZlbnQoY29uc3QgQXRvbWljU3RyaW5nJiB0eXBlKQogewotICAgIHJldHVybiBFTVBU
WTsKKyAgICAvLyBGSVhNRTogdGhlIGN1cnJlbnQgUHJvZ3Jlc3NFdmVudCB1c2VzICJ1bnNpZ25l
ZCBsb25nIiBmb3IgdG90YWwgYW5kIGxvYWRlZCBhdHRyaWJ1dGVzLiBOZWVkIHRvIHRhbGsgd2l0
aCB0aGUgc3BlYyB3cml0ZXIgdG8gcmVzb2x2ZSB0aGUgaXNzdWUuCisgICAgZGlzcGF0Y2hFdmVu
dChQcm9ncmVzc0V2ZW50OjpjcmVhdGUodHlwZSwgdHJ1ZSwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+
KG1fYnl0ZXNXcml0dGVuKSwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KG1fYnl0ZXNUb1dyaXRlKSkp
OwogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCkluZGV4OiBXZWJDb3JlL2h0bWwvRmlsZVdy
aXRlci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvaHRtbC9GaWxlV3JpdGVyLmgJKHJldmlzaW9u
IDY2MTM5KQorKysgV2ViQ29yZS9odG1sL0ZpbGVXcml0ZXIuaAkod29ya2luZyBjb3B5KQpAQCAt
MzUsNDQgKzM1LDU0IEBACiAKICNpbmNsdWRlICJBY3RpdmVET01PYmplY3QuaCIKICNpbmNsdWRl
ICJFdmVudFRhcmdldC5oIgorI2luY2x1ZGUgIkZpbGVXcml0ZXJDbGllbnQuaCIKKyNpbmNsdWRl
IDx3dGYvT3duUHRyLmg+CisjaW5jbHVkZSA8d3RmL1Bhc3NPd25QdHIuaD4KICNpbmNsdWRlIDx3
dGYvUGFzc1JlZlB0ci5oPgogI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CiAjaW5jbHVkZSA8
d3RmL1JlZlB0ci5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKK2NsYXNzIEFzeW5jRmlsZVdy
aXRlcjsKIGNsYXNzIEJsb2I7CiBjbGFzcyBGaWxlRXJyb3I7CiBjbGFzcyBTY3JpcHRFeGVjdXRp
b25Db250ZXh0OwogCi0vLyBGSVhNRTogVGhpcyBpcyBhbiBlbXB0eSwgZG8tbm90aGluZyBwbGFj
ZWhvbGRlciBmb3IgaW1wbGVtZW50YXRpb24geWV0IHRvIGNvbWUuCi1jbGFzcyBGaWxlV3JpdGVy
IDogcHVibGljIFJlZkNvdW50ZWQ8RmlsZVdyaXRlcj4sIHB1YmxpYyBBY3RpdmVET01PYmplY3Qs
IHB1YmxpYyBFdmVudFRhcmdldCB7CitjbGFzcyBGaWxlV3JpdGVyIDogcHVibGljIFJlZkNvdW50
ZWQ8RmlsZVdyaXRlcj4sIHB1YmxpYyBBY3RpdmVET01PYmplY3QsIHB1YmxpYyBFdmVudFRhcmdl
dCwgcHVibGljIEZpbGVXcml0ZXJDbGllbnQgewogcHVibGljOgogICAgIHN0YXRpYyBQYXNzUmVm
UHRyPEZpbGVXcml0ZXI+IGNyZWF0ZShTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0KQog
ICAgIHsKICAgICAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBGaWxlV3JpdGVyKGNvbnRleHQpKTsK
ICAgICB9CiAKKyAgICB2b2lkIGluaXRpYWxpemUoUGFzc093blB0cjxBc3luY0ZpbGVXcml0ZXI+
IHdyaXRlciwgbG9uZyBsb25nIGxlbmd0aCk7CisKICAgICBlbnVtIFJlYWR5U3RhdGUgewotICAg
ICAgICBFTVBUWSA9IDAsCisgICAgICAgIElOSVQgPSAwLAogICAgICAgICBXUklUSU5HID0gMSwK
ICAgICAgICAgRE9ORSA9IDIKICAgICB9OwogCi0gICAgdm9pZCB3cml0ZShCbG9iKik7Ci0gICAg
dm9pZCBzZWVrKGxvbmcgbG9uZyBwb3NpdGlvbik7Ci0gICAgdm9pZCB0cnVuY2F0ZShsb25nIGxv
bmcgbGVuZ3RoKTsKLSAgICB2b2lkIGFib3J0KCk7Ci0KLSAgICBSZWFkeVN0YXRlIHJlYWR5U3Rh
dGUoKSBjb25zdDsKLSAgICBGaWxlRXJyb3IqIGVycm9yKCkgY29uc3QgeyByZXR1cm4gbV9lcnJv
cjsgfTsKLSAgICBsb25nIGxvbmcgcG9zaXRpb24oKSBjb25zdCB7IHJldHVybiAwOyB9OwotICAg
IGxvbmcgbG9uZyBsZW5ndGgoKSBjb25zdCB7IHJldHVybiAwOyB9OworICAgIHZvaWQgd3JpdGUo
QmxvYiogZGF0YSwgRXhjZXB0aW9uQ29kZSYgZWMpOworICAgIHZvaWQgc2Vlayhsb25nIGxvbmcg
cG9zaXRpb24sIEV4Y2VwdGlvbkNvZGUmIGVjKTsKKyAgICB2b2lkIHRydW5jYXRlKGxvbmcgbG9u
ZyBsZW5ndGgsIEV4Y2VwdGlvbkNvZGUmIGVjKTsKKyAgICB2b2lkIGFib3J0KEV4Y2VwdGlvbkNv
ZGUmIGVjKTsKKworICAgIFJlYWR5U3RhdGUgcmVhZHlTdGF0ZSgpIGNvbnN0IHsgcmV0dXJuIG1f
cmVhZHlTdGF0ZTsgfQorICAgIEZpbGVFcnJvciogZXJyb3IoKSBjb25zdCB7IHJldHVybiBtX2Vy
cm9yLmdldCgpOyB9CisgICAgbG9uZyBsb25nIHBvc2l0aW9uKCkgY29uc3QgeyByZXR1cm4gbV9w
b3NpdGlvbjsgfQorICAgIGxvbmcgbG9uZyBsZW5ndGgoKSBjb25zdCB7IHJldHVybiBtX2xlbmd0
aDsgfQorCisgICAgLy8gRmlsZVdyaXRlckNsaWVudAorICAgIHZvaWQgZGlkV3JpdGUobG9uZyBs
b25nIGJ5dGVzLCBib29sIGNvbXBsZXRlKTsKKyAgICB2b2lkIGRpZFRydW5jYXRlKGxvbmcgbG9u
ZyBsZW5ndGgpOworICAgIHZvaWQgZGlkRmFpbChFeGNlcHRpb25Db2RlIGVjKTsKIAogICAgIC8v
IEFjdGl2ZURPTU9iamVjdAogICAgIHZpcnR1YWwgYm9vbCBjYW5TdXNwZW5kKCkgY29uc3Q7Ci0g
ICAgdmlydHVhbCB2b2lkIHN0b3AoKTsKICAgICB2aXJ0dWFsIGJvb2wgaGFzUGVuZGluZ0FjdGl2
aXR5KCkgY29uc3Q7CisgICAgdmlydHVhbCB2b2lkIHN0b3AoKTsKIAogICAgIC8vIEV2ZW50VGFy
Z2V0CiAgICAgdmlydHVhbCBGaWxlV3JpdGVyKiB0b0ZpbGVXcml0ZXIoKSB7IHJldHVybiB0aGlz
OyB9CkBAIC04Nyw3ICs5Nyw3IEBAIHB1YmxpYzoKICAgICBERUZJTkVfQVRUUklCVVRFX0VWRU5U
X0xJU1RFTkVSKGFib3J0KTsKICAgICBERUZJTkVfQVRUUklCVVRFX0VWRU5UX0xJU1RFTkVSKGVy
cm9yKTsKICAgICBERUZJTkVfQVRUUklCVVRFX0VWRU5UX0xJU1RFTkVSKHdyaXRlZW5kKTsKLQor
ICAgIAogcHJpdmF0ZToKICAgICBGaWxlV3JpdGVyKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqKTsK
IApAQCAtMTAxLDggKzExMSwxNiBAQCBwcml2YXRlOgogICAgIHZpcnR1YWwgRXZlbnRUYXJnZXRE
YXRhKiBldmVudFRhcmdldERhdGEoKSB7IHJldHVybiAmbV9ldmVudFRhcmdldERhdGE7IH0KICAg
ICB2aXJ0dWFsIEV2ZW50VGFyZ2V0RGF0YSogZW5zdXJlRXZlbnRUYXJnZXREYXRhKCkgeyByZXR1
cm4gJm1fZXZlbnRUYXJnZXREYXRhOyB9CiAKLSAgICBSZWZQdHI8RmlsZUVycm9yKj4gbV9lcnJv
cjsKKyAgICB2b2lkIGZpcmVFdmVudChjb25zdCBBdG9taWNTdHJpbmcmIHR5cGUpOworCisgICAg
UmVmUHRyPEZpbGVFcnJvcj4gbV9lcnJvcjsKICAgICBFdmVudFRhcmdldERhdGEgbV9ldmVudFRh
cmdldERhdGE7CisgICAgT3duUHRyPEFzeW5jRmlsZVdyaXRlcj4gbV93cml0ZXI7CisgICAgUmVh
ZHlTdGF0ZSBtX3JlYWR5U3RhdGU7CisgICAgbG9uZyBsb25nIG1fcG9zaXRpb247CisgICAgbG9u
ZyBsb25nIG1fbGVuZ3RoOworICAgIGxvbmcgbG9uZyBtX2J5dGVzV3JpdHRlbjsKKyAgICBsb25n
IGxvbmcgbV9ieXRlc1RvV3JpdGU7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCkluZGV4
OiBXZWJDb3JlL2h0bWwvRmlsZVdyaXRlckNsaWVudC5oCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUv
aHRtbC9GaWxlV3JpdGVyQ2xpZW50LmgJKHJldmlzaW9uIDApCisrKyBXZWJDb3JlL2h0bWwvRmls
ZVdyaXRlckNsaWVudC5oCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDU1IEBACisvKgorICogQ29w
eXJpZ2h0IChDKSAyMDEwIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCisgKiBtZXQ6CisgKgorICogICAgICogUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUKKyAqIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKKyAqIGluIHRoZSBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKKyAqIGRpc3RyaWJ1
dGlvbi4KKyAqICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBu
YW1lcyBvZiBpdHMKKyAqIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHBy
b21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCisgKiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3Bl
Y2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKKyAqICJB
UyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBC
VVQgTk9UCisgKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5U
QUJJTElUWSBBTkQgRklUTkVTUyBGT1IKKyAqIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVND
TEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCisgKiBPV05FUiBPUiBDT05U
UklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwK
KyAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJ
TkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAorICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVT
SU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisgKiBUSEVPUlkg
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBGaWxl
V3JpdGVyQ2xpZW50X2gKKyNkZWZpbmUgRmlsZVdyaXRlckNsaWVudF9oCisKKyNpZiBFTkFCTEUo
RklMRV9XUklURVIpCisKKyNpbmNsdWRlICJFeGNlcHRpb25Db2RlLmgiCisKK25hbWVzcGFjZSBX
ZWJDb3JlIHsKKworY2xhc3MgRmlsZVdyaXRlckNsaWVudCB7CitwdWJsaWM6CisgICAgdmlydHVh
bCB+RmlsZVdyaXRlckNsaWVudCgpIHt9CisKKyAgICB2aXJ0dWFsIHZvaWQgZGlkV3JpdGUobG9u
ZyBsb25nIGJ5dGVzLCBib29sIGNvbXBsZXRlKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIGRpZFRy
dW5jYXRlKGxvbmcgbG9uZyBwb3NpdGlvbikgPSAwOworICAgIHZpcnR1YWwgdm9pZCBkaWRGYWls
KEV4Y2VwdGlvbkNvZGUpID0gMDsKK307CisKK30gLy8gbmFtZXNwYWNlCisKKyNlbmRpZiAvLyBF
TkFCTEUoRklMRV9XUklURVIpCisKKyNlbmRpZiAvLyBGaWxlV3JpdGVyQ2xpZW50X2gKKworCg==
</data>
<flag name="review"
          id="54470"
          type_id="1"
          status="+"
          setter="fishd"
    />
    <flag name="commit-queue"
          id="54471"
          type_id="3"
          status="-"
          setter="fishd"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>65771</attachid>
            <date>2010-08-27 14:54:26 -0700</date>
            <delta_ts>2010-08-28 01:49:28 -0700</delta_ts>
            <desc>Fixed whitespace, pulled extra entry out of vcproj</desc>
            <filename>webcore0.patch</filename>
            <type>text/plain</type>
            <size>27364</size>
            <attacher name="Eric U.">ericu</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA2NjI2MCkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsNDcgQEAKKzIwMTAtMDgtMjcgIEVyaWMgVWhyaGFuZSAgPGVyaWN1QGNocm9taXVt
Lm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBJ
bXBsZW1lbnQgdGhlIERPTSBGaWxlV3JpdGVyIGNsYXNzCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00NDM2MgorCisgICAgICAgIE5vIG5ldyB0ZXN0cyB1
bnRpbCB0aGUgZGVsZWdhdGUgY2xhc3MgaGFzIGFuIGltcGxlbWVudGF0aW9uOyBidWcgbG9nZ2Vk
LgorCisgICAgICAgIEJ1aWxkIGZpbGUgYWRkaXRpb25zLgorICAgICAgICAqIEdOVW1ha2VmaWxl
LmFtOgorICAgICAgICAqIFdlYkNvcmUuZ3lwaToKKyAgICAgICAgKiBXZWJDb3JlLnBybzoKKyAg
ICAgICAgKiBXZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvajoKKyAgICAgICAgKiBXZWJDb3Jl
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisKKyAgICAgICAgVGhlIEFzeW5jRmlsZVdyaXRl
ciBpcyBhbiBhYnN0cmFjdCBpbnRlcmZhY2UgdG8gd2hpY2ggRmlsZVdyaXRlciBkZWxlZ2F0ZXMg
YWxsIHRoZSBoYXJkIHdvcmsuCisgICAgICAgICogaHRtbC9Bc3luY0ZpbGVXcml0ZXIuaDogQWRk
ZWQuCisKKyAgICAgICAgVGhlIEZpbGVXcml0ZXJDbGllbnQgaXMgdGhlIGludGVyZmFjZSBmb3Ig
Y29tbXVuaWNhdGlvbnMgYmFjayBmcm9tIHRoZSBBc3luY0ZpbGVXcml0ZXIgW3N1Y2Nlc3MvZmFp
bHVyZSwgcHJvZ3Jlc3MgZXZlbnRzXS4KKyAgICAgICAgKiBodG1sL0ZpbGVXcml0ZXJDbGllbnQu
aDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpGaWxlV3JpdGVyQ2xpZW50Ojp+RmlsZVdyaXRl
ckNsaWVudCk6CisKKyAgICAgICAgQWRkZWQgYWxsIGRlbGVnYXRpb24sIHN0YXRlIHRyYWNraW5n
LCBhbmQgcHJvZ3Jlc3MgZXZlbnQgcHJvY2Vzc2luZy4KKyAgICAgICAgKiBodG1sL0ZpbGVXcml0
ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RmlsZVdyaXRlcjo6RmlsZVdyaXRlcik6CisgICAg
ICAgIChXZWJDb3JlOjpGaWxlV3JpdGVyOjppbml0aWFsaXplKToKKyAgICAgICAgKFdlYkNvcmU6
OkZpbGVXcml0ZXI6On5GaWxlV3JpdGVyKToKKyAgICAgICAgQWN0aXZlRG9tT2JqZWN0IHN0dWZm
CisgICAgICAgIChXZWJDb3JlOjpGaWxlV3JpdGVyOjpoYXNQZW5kaW5nQWN0aXZpdHkpOgorICAg
ICAgICAoV2ViQ29yZTo6RmlsZVdyaXRlcjo6c3RvcCk6CisgICAgICAgIChXZWJDb3JlOjpGaWxl
V3JpdGVyOjp3cml0ZSk6CisgICAgICAgIEZpbGVXcml0ZXIgcHVibGljIGludGVyZmFjZQorICAg
ICAgICAoV2ViQ29yZTo6RmlsZVdyaXRlcjo6c2Vlayk6CisgICAgICAgIChXZWJDb3JlOjpGaWxl
V3JpdGVyOjp0cnVuY2F0ZSk6CisgICAgICAgIChXZWJDb3JlOjpGaWxlV3JpdGVyOjphYm9ydCk6
CisgICAgICAgIEZpbGVXcml0ZXJDbGllbnQgaW50ZXJmYWNlCisgICAgICAgIChXZWJDb3JlOjpG
aWxlV3JpdGVyOjpkaWRXcml0ZSk6CisgICAgICAgIChXZWJDb3JlOjpGaWxlV3JpdGVyOjpkaWRU
cnVuY2F0ZSk6CisgICAgICAgIChXZWJDb3JlOjpGaWxlV3JpdGVyOjpkaWRGYWlsKToKKyAgICAg
ICAgUHJvZ3Jlc3MgZXZlbnRzCisgICAgICAgIChXZWJDb3JlOjpGaWxlV3JpdGVyOjpmaXJlRXZl
bnQpOgorICAgICAgICAqIGh0bWwvRmlsZVdyaXRlci5oOgorCiAyMDEwLTA4LTI3ICBDaHJpcyBN
YXJyaW4gIDxjbWFycmluQGFwcGxlLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBTaW1vbiBG
cmFzZXIuCkluZGV4OiBXZWJDb3JlL0dOVW1ha2VmaWxlLmFtCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNv
cmUvR05VbWFrZWZpbGUuYW0JKHJldmlzaW9uIDY2MTM5KQorKysgV2ViQ29yZS9HTlVtYWtlZmls
ZS5hbQkod29ya2luZyBjb3B5KQpAQCAtMjM2LDggKzIzNiw2IEBAIHdlYmNvcmVfYnVpbHRfc291
cmNlcyArPSBcCiAJRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU0ZpbGVMaXN0LmggXAogCURlcml2
ZWRTb3VyY2VzL1dlYkNvcmUvSlNGaWxlUmVhZGVyLmNwcCBcCiAJRGVyaXZlZFNvdXJjZXMvV2Vi
Q29yZS9KU0ZpbGVSZWFkZXIuaCBcCi0JRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU0ZpbGVXcml0
ZXIuY3BwIFwKLQlEZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTRmlsZVdyaXRlci5oIFwKIAlEZXJp
dmVkU291cmNlcy9XZWJDb3JlL0pTRmxvYXQzMkFycmF5LmNwcCBcCiAJRGVyaXZlZFNvdXJjZXMv
V2ViQ29yZS9KU0Zsb2F0MzJBcnJheS5oIFwKIAlEZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTR2Vv
bG9jYXRpb24uY3BwIFwKQEAgLTEzNTQsOCArMTM1Miw2IEBAIHdlYmNvcmVfc291cmNlcyArPSBc
CiAJV2ViQ29yZS9odG1sL0ZpbGVMaXN0LmggXAogCVdlYkNvcmUvaHRtbC9GaWxlUmVhZGVyLmNw
cCBcCiAJV2ViQ29yZS9odG1sL0ZpbGVSZWFkZXIuaCBcCi0JV2ViQ29yZS9odG1sL0ZpbGVXcml0
ZXIuY3BwIFwKLQlXZWJDb3JlL2h0bWwvRmlsZVdyaXRlci5oIFwKIAlXZWJDb3JlL2h0bWwvRmls
ZVN0cmVhbVByb3h5LmNwcCBcCiAJV2ViQ29yZS9odG1sL0ZpbGVTdHJlYW1Qcm94eS5oIFwKIAlX
ZWJDb3JlL2h0bWwvRmlsZVRocmVhZC5jcHAgXApAQCAtNDQzOSw2ICs0NDM1LDE3IEBAIGVuZGlm
ICAjIEVORCBFTkFCTEVfQkxPQgogaWYgRU5BQkxFX0ZJTEVfV1JJVEVSCiBGRUFUVVJFX0RFRklO
RVMgKz0gRU5BQkxFX0ZJTEVfV1JJVEVSPTEKIHdlYmNvcmVfY3BwZmxhZ3MgKz0gLURFTkFCTEVf
RklMRV9XUklURVI9MQorCit3ZWJjb3JlX2J1aWx0X3NvdXJjZXMgKz0gXAorCURlcml2ZWRTb3Vy
Y2VzL1dlYkNvcmUvSlNGaWxlV3JpdGVyLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9K
U0ZpbGVXcml0ZXIuaAorCit3ZWJjb3JlX3NvdXJjZXMgKz0gXAorCVdlYkNvcmUvaHRtbC9Bc3lu
Y0ZpbGVXcml0ZXIuaCBcCisJV2ViQ29yZS9odG1sL0ZpbGVXcml0ZXIuY3BwIFwKKwlXZWJDb3Jl
L2h0bWwvRmlsZVdyaXRlci5oIFwKKwlXZWJDb3JlL2h0bWwvRmlsZVdyaXRlckNsaWVudC5oCisK
IGVuZGlmICAjIEVORCBFTkFCTEVfRklMRV9XUklURVIKIAogRGVyaXZlZFNvdXJjZXMvV2ViQ29y
ZS9DU1NQcm9wZXJ0eU5hbWVzLmg6ICQoV0VCQ09SRV9DU1NfUFJPUEVSVFlfTkFNRVMpICQoV2Vi
Q29yZSkvY3NzL21ha2Vwcm9wLnBsCkluZGV4OiBXZWJDb3JlL1dlYkNvcmUuZ3lwaQo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBXZWJDb3JlL1dlYkNvcmUuZ3lwaQkocmV2aXNpb24gNjYxMzkpCisrKyBXZWJDb3Jl
L1dlYkNvcmUuZ3lwaQkod29ya2luZyBjb3B5KQpAQCAtMTQzNiw2ICsxNDM2LDcgQEAKICAgICAg
ICAgICAgICdoaXN0b3J5L0hpc3RvcnlJdGVtLmgnLAogICAgICAgICAgICAgJ2hpc3RvcnkvUGFn
ZUNhY2hlLmNwcCcsCiAgICAgICAgICAgICAnaGlzdG9yeS9QYWdlQ2FjaGUuaCcsCisgICAgICAg
ICAgICAnaHRtbC9Bc3luY0ZpbGVXcml0ZXIuaCcsCiAgICAgICAgICAgICAnaHRtbC9Bc3luY0lt
YWdlUmVzaXplci5jcHAnLAogICAgICAgICAgICAgJ2h0bWwvQXN5bmNJbWFnZVJlc2l6ZXIuaCcs
CiAgICAgICAgICAgICAnaHRtbC9CbG9iLmNwcCcsCkBAIC0xNTIzLDEzICsxNTI0LDE0IEBACiAg
ICAgICAgICAgICAnaHRtbC9GaWxlTGlzdC5oJywKICAgICAgICAgICAgICdodG1sL0ZpbGVSZWFk
ZXIuY3BwJywKICAgICAgICAgICAgICdodG1sL0ZpbGVSZWFkZXIuaCcsCi0gICAgICAgICAgICAn
aHRtbC9GaWxlV3JpdGVyLmNwcCcsCi0gICAgICAgICAgICAnaHRtbC9GaWxlV3JpdGVyLmgnLAog
ICAgICAgICAgICAgJ2h0bWwvRmlsZVN0cmVhbVByb3h5LmNwcCcsCiAgICAgICAgICAgICAnaHRt
bC9GaWxlU3RyZWFtUHJveHkuaCcsCiAgICAgICAgICAgICAnaHRtbC9GaWxlVGhyZWFkLmNwcCcs
CiAgICAgICAgICAgICAnaHRtbC9GaWxlVGhyZWFkLmgnLAogICAgICAgICAgICAgJ2h0bWwvRmls
ZVRocmVhZFRhc2suaCcsCisgICAgICAgICAgICAnaHRtbC9GaWxlV3JpdGVyLmNwcCcsCisgICAg
ICAgICAgICAnaHRtbC9GaWxlV3JpdGVyLmgnLAorICAgICAgICAgICAgJ2h0bWwvRmlsZVdyaXRl
ckNsaWVudC5oJywKICAgICAgICAgICAgICdodG1sL0Zvcm1EYXRhTGlzdC5jcHAnLAogICAgICAg
ICAgICAgJ2h0bWwvRm9ybURhdGFMaXN0LmgnLAogICAgICAgICAgICAgJ2h0bWwvSFRNTEVudGl0
eVBhcnNlci5jcHAnLApJbmRleDogV2ViQ29yZS9XZWJDb3JlLnBybwo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBX
ZWJDb3JlL1dlYkNvcmUucHJvCShyZXZpc2lvbiA2NjEzOSkKKysrIFdlYkNvcmUvV2ViQ29yZS5w
cm8JKHdvcmtpbmcgY29weSkKQEAgLTE0MDQsNiArMTQwNCw3IEBAIEhFQURFUlMgKz0gXAogICAg
IGhpc3RvcnkvQ2FjaGVkUGFnZS5oIFwKICAgICBoaXN0b3J5L0hpc3RvcnlJdGVtLmggXAogICAg
IGhpc3RvcnkvUGFnZUNhY2hlLmggXAorICAgIGh0bWwvQXN5bmNGaWxlV3JpdGVyLmggXAogICAg
IGh0bWwvQXN5bmNJbWFnZVJlc2l6ZXIuaCBcCiAgICAgaHRtbC9CbG9iLmggXAogICAgIGh0bWwv
QmxvYkJ1aWxkZXIuaCBcCkBAIC0xNDI4LDYgKzE0MjksNyBAQCBIRUFERVJTICs9IFwKICAgICBo
dG1sL0ZpbGVUaHJlYWQuaCBcCiAgICAgaHRtbC9GaWxlVGhyZWFkVGFzay5oIFwKICAgICBodG1s
L0ZpbGVXcml0ZXIuaCBcCisgICAgaHRtbC9GaWxlV3JpdGVyQ2xpZW50LmggXAogICAgIGh0bWwv
Rm9ybURhdGFMaXN0LmggXAogICAgIGh0bWwvSFRNTEFsbENvbGxlY3Rpb24uaCBcCiAgICAgaHRt
bC9IVE1MQW5jaG9yRWxlbWVudC5oIFwKQEAgLTI1OTQsNiArMjU5Niw3IEBAIGNvbnRhaW5zKERF
RklORVMsIEVOQUJMRV9GSUxFX1NZU1RFTT0xKSAKICAgICAgICAgc3RvcmFnZS9GaWxlRW50cnku
aCBcCiAgICAgICAgIHN0b3JhZ2UvRmlsZVN5c3RlbUNhbGxiYWNrLmggXAogICAgICAgICBzdG9y
YWdlL0ZpbGVTeXN0ZW1DYWxsYmFja3MuaCBcCisgICAgICAgIHN0b3JhZ2UvRmlsZVdyaXRlckNh
bGxiYWNrLmggXAogICAgICAgICBzdG9yYWdlL0ZsYWdzLmggXAogICAgICAgICBzdG9yYWdlL01l
dGFkYXRhLmggXAogICAgICAgICBzdG9yYWdlL01ldGFkYXRhQ2FsbGJhY2suaApJbmRleDogV2Vi
Q29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvago9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3Jl
L1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCShyZXZpc2lvbiA2NjEzOSkKKysrIFdlYkNv
cmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oJKHdvcmtpbmcgY29weSkKQEAgLTM3MDUz
LDYgKzM3MDUzLDEwIEBACiAJCQlOYW1lPSJodG1sIg0KIAkJCT4NCiAJCQk8RmlsZQ0KKwkJCQlS
ZWxhdGl2ZVBhdGg9Ii4uXGh0bWxcQXN5bmNGaWxlV3JpdGVyLmgiDQorCQkJCT4NCisJCQk8L0Zp
bGU+DQorCQkJPEZpbGUNCiAJCQkJUmVsYXRpdmVQYXRoPSIuLlxodG1sXEFzeW5jSW1hZ2VSZXNp
emVyLmNwcCINCiAJCQkJPg0KIAkJCTwvRmlsZT4NCkBAIC0zNzI2MSw2ICszNzI2NSwxMCBAQAog
CQkJCT4NCiAJCQk8L0ZpbGU+DQogCQkJPEZpbGUNCisJCQkJUmVsYXRpdmVQYXRoPSIuLlxodG1s
XEZpbGVXcml0ZXJDbGllbnQuaCINCisJCQkJPg0KKwkJCTwvRmlsZT4NCisJCQk8RmlsZQ0KIAkJ
CQlSZWxhdGl2ZVBhdGg9Ii4uXGh0bWxcRm9ybURhdGFMaXN0LmNwcCINCiAJCQkJPg0KIAkJCTwv
RmlsZT4NCkluZGV4OiBXZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvago9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBXZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagko
cmV2aXNpb24gNjYxMzkpCisrKyBXZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvagkod29ya2luZyBjb3B5KQpAQCAtODk4LDE0ICs4OTgsMTggQEAKIAkJNDQ4QUQyN0MwQTQ4
MTM3QTAwMjNEMTc5IC8qIEpTSFRNTE9wdGlvbnNDb2xsZWN0aW9uQ3VzdG9tLmNwcCBpbiBTb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ0OEFEMjdBMEE0ODEzNzkw
MDIzRDE3OSAvKiBKU0hUTUxPcHRpb25zQ29sbGVjdGlvbkN1c3RvbS5jcHAgKi87IH07CiAJCTQ0
OUIxOUY1MEZBNzJFQ0UwMDE1Q0E0QSAvKiBIVE1MUGFyc2VyUXVpcmtzLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0NDlCMTlGMzBGQTcyRUNFMDAxNUNB
NEEgLyogSFRNTFBhcnNlclF1aXJrcy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFBy
aXZhdGUsICk7IH07IH07CiAJCTQ2MTRBMUZFMEIyM0E4RDYwMDQ0NkUxQyAvKiBjb3B5Q3Vyc29y
LnBuZyBpbiBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDYx
NEExRkQwQjIzQThENjAwNDQ2RTFDIC8qIGNvcHlDdXJzb3IucG5nICovOyB9OworCQk0NjE3RTdC
MTEyMUUwNzhGMDA1RUM4QTggLyogQXN5bmNGaWxlV3JpdGVyLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0NjE3RTdCMDEyMUUwNzhGMDA1RUM4QTggLyog
QXN5bmNGaWxlV3JpdGVyLmggKi87IH07CiAJCTQ2NEVBMjczMEI4QTM1MEIwMEE4RTZFMyAvKiBj
cm9zc0hhaXJDdXJzb3IucG5nIGluIFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA0NjRFQTI3MTBCOEEzNTBCMDBBOEU2RTMgLyogY3Jvc3NIYWlyQ3Vyc29yLnBu
ZyAqLzsgfTsKIAkJNDY0RUEyNzQwQjhBMzUwQjAwQThFNkUzIC8qIG5vdEFsbG93ZWRDdXJzb3Iu
cG5nIGluIFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0NjRF
QTI3MjBCOEEzNTBCMDBBOEU2RTMgLyogbm90QWxsb3dlZEN1cnNvci5wbmcgKi87IH07CisJCTQ2
OEY1QUE0MTIxRjFENzQwMEI1QzQ5OCAvKiBGaWxlV3JpdGVyQ2xpZW50LmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0NjhGNUFBMzEyMUYxRDc0MDBCNUM0
OTggLyogRmlsZVdyaXRlckNsaWVudC5oICovOyB9OwogCQk0NkEyNjkwNTEyMUI2QjQzMDBDNDFG
M0EgLyogRmlsZVdyaXRlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA0NkEyNjkwMjEyMUI2QjQzMDBDNDFGM0EgLyogRmlsZVdyaXRlci5jcHAgKi87
IH07CiAJCTQ2QTI2OTA2MTIxQjZCNDMwMEM0MUYzQSAvKiBGaWxlV3JpdGVyLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0NkEyNjkwMzEyMUI2QjQzMDBD
NDFGM0EgLyogRmlsZVdyaXRlci5oICovOyB9OwogCQk0NkJEMTZFMzBCMjc5NDczMDAxRjA4Mzkg
Lyogbm9uZUN1cnNvci5wbmcgaW4gUmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDQ2QkQxNkUyMEIyNzk0NzMwMDFGMDgzOSAvKiBub25lQ3Vyc29yLnBuZyAqLzsg
fTsKIAkJNDZENEYyNDkwQUY5N0U4MTAwMzUzODVBIC8qIGNlbGxDdXJzb3IucG5nIGluIFJlc291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0NkQ0RjI0NjBBRjk3RTgx
MDAzNTM4NUEgLyogY2VsbEN1cnNvci5wbmcgKi87IH07CiAJCTQ2RDRGMjRBMEFGOTdFODEwMDM1
Mzg1QSAvKiBjb250ZXh0TWVudUN1cnNvci5wbmcgaW4gUmVzb3VyY2VzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ2RDRGMjQ3MEFGOTdFODEwMDM1Mzg1QSAvKiBjb250ZXh0
TWVudUN1cnNvci5wbmcgKi87IH07CiAJCTQ2RDRGMjRCMEFGOTdFODEwMDM1Mzg1QSAvKiB2ZXJ0
aWNhbFRleHRDdXJzb3IucG5nIGluIFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA0NkQ0RjI0ODBBRjk3RTgxMDAzNTM4NUEgLyogdmVydGljYWxUZXh0Q3Vyc29y
LnBuZyAqLzsgfTsKKwkJNDZEQTg0NEQxMjI0QTA3MTAwNjBEMDA2IC8qIEpTRmlsZVdyaXRlci5j
cHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0NkRBODQ0
QjEyMjRBMDcxMDA2MEQwMDYgLyogSlNGaWxlV3JpdGVyLmNwcCAqLzsgfTsKKwkJNDZEQTg0NEUx
MjI0QTA3MTAwNjBEMDA2IC8qIEpTRmlsZVdyaXRlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDZEQTg0NEMxMjI0QTA3MTAwNjBEMDA2IC8qIEpTRmls
ZVdyaXRlci5oICovOyB9OwogCQk0NkY5RDVERDBCMEQ2MDE3MDAyOEVFMzYgLyogYWxpYXNDdXJz
b3IucG5nIGluIFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0
NkY5RDVEQTBCMEQ2MDE3MDAyOEVFMzYgLyogYWxpYXNDdXJzb3IucG5nICovOyB9OwogCQk0NkY5
RDVERTBCMEQ2MDE3MDAyOEVFMzYgLyogbm9Ecm9wQ3Vyc29yLnBuZyBpbiBSZXNvdXJjZXMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDZGOUQ1REIwQjBENjAxNzAwMjhFRTM2
IC8qIG5vRHJvcEN1cnNvci5wbmcgKi87IH07CiAJCTQ2RjlENURGMEIwRDYwMTcwMDI4RUUzNiAv
KiBwcm9ncmVzc0N1cnNvci5wbmcgaW4gUmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDQ2RjlENURDMEIwRDYwMTcwMDI4RUUzNiAvKiBwcm9ncmVzc0N1cnNvci5w
bmcgKi87IH07CkBAIC02NzQzLDggKzY3NDcsMTAgQEAKIAkJNDQ5MDk4QjEwRjhGODI1MjAwNzZB
MzI3IC8qIEZlYXR1cmVEZWZpbmVzLnhjY29uZmlnICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dC54Y2NvbmZpZzsg
cGF0aCA9IEZlYXR1cmVEZWZpbmVzLnhjY29uZmlnOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQk0NDlCMTlGMzBGQTcyRUNFMDAxNUNBNEEgLyogSFRNTFBhcnNlclF1aXJrcy5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBIVE1MUGFyc2VyUXVpcmtzLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQ2MTRBMUZEMEIyM0E4RDYwMDQ0NkUxQyAvKiBjb3B5Q3Vy
c29yLnBuZyAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9
IGltYWdlLnBuZzsgcGF0aCA9IGNvcHlDdXJzb3IucG5nOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OworCQk0NjE3RTdCMDEyMUUwNzhGMDA1RUM4QTggLyogQXN5bmNGaWxlV3JpdGVyLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEFzeW5jRmlsZVdyaXRlci5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQk0NjRFQTI3MTBCOEEzNTBCMDBBOEU2RTMgLyogY3Jvc3NI
YWlyQ3Vyc29yLnBuZyAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxl
VHlwZSA9IGltYWdlLnBuZzsgcGF0aCA9IGNyb3NzSGFpckN1cnNvci5wbmc7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTQ2NEVBMjcyMEI4QTM1MEIwMEE4RTZFMyAvKiBub3RBbGxvd2Vk
Q3Vyc29yLnBuZyAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlw
ZSA9IGltYWdlLnBuZzsgcGF0aCA9IG5vdEFsbG93ZWRDdXJzb3IucG5nOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OworCQk0NjhGNUFBMzEyMUYxRDc0MDBCNUM0OTggLyogRmlsZVdyaXRlckNs
aWVudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBGaWxlV3JpdGVyQ2xpZW50
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQ2QTI2OTAyMTIxQjZCNDMwMEM0MUYz
QSAvKiBGaWxlV3JpdGVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9
IEZpbGVXcml0ZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0NkEyNjkwMzEy
MUI2QjQzMDBDNDFGM0EgLyogRmlsZVdyaXRlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBGaWxlV3JpdGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQ2QTI2
OTA0MTIxQjZCNDMwMEM0MUYzQSAvKiBGaWxlV3JpdGVyLmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBh
dGggPSBGaWxlV3JpdGVyLmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTY3NTIs
NiArNjc1OCw4IEBACiAJCTQ2RDRGMjQ2MEFGOTdFODEwMDM1Mzg1QSAvKiBjZWxsQ3Vyc29yLnBu
ZyAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IGltYWdl
LnBuZzsgcGF0aCA9IGNlbGxDdXJzb3IucG5nOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQk0NkQ0RjI0NzBBRjk3RTgxMDAzNTM4NUEgLyogY29udGV4dE1lbnVDdXJzb3IucG5nICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gaW1hZ2UucG5nOyBw
YXRoID0gY29udGV4dE1lbnVDdXJzb3IucG5nOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQk0NkQ0RjI0ODBBRjk3RTgxMDAzNTM4NUEgLyogdmVydGljYWxUZXh0Q3Vyc29yLnBuZyAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IGltYWdlLnBuZzsg
cGF0aCA9IHZlcnRpY2FsVGV4dEN1cnNvci5wbmc7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CisJCTQ2REE4NDRCMTIyNEEwNzEwMDYwRDAwNiAvKiBKU0ZpbGVXcml0ZXIuY3BwICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNGaWxlV3JpdGVyLmNwcDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNDZEQTg0NEMxMjI0QTA3MTAwNjBEMDA2IC8qIEpTRmlsZVdy
aXRlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU0ZpbGVXcml0ZXIuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDZGOUQ1REEwQjBENjAxNzAwMjhFRTM2IC8q
IGFsaWFzQ3Vyc29yLnBuZyAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25G
aWxlVHlwZSA9IGltYWdlLnBuZzsgcGF0aCA9IGFsaWFzQ3Vyc29yLnBuZzsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJNDZGOUQ1REIwQjBENjAxNzAwMjhFRTM2IC8qIG5vRHJvcEN1cnNv
ci5wbmcgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBp
bWFnZS5wbmc7IHBhdGggPSBub0Ryb3BDdXJzb3IucG5nOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQk0NkY5RDVEQzBCMEQ2MDE3MDAyOEVFMzYgLyogcHJvZ3Jlc3NDdXJzb3IucG5nICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gaW1hZ2UucG5n
OyBwYXRoID0gcHJvZ3Jlc3NDdXJzb3IucG5nOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpA
QCAtMTIwMzAsNiArMTIwMzgsNyBAQAogCQkJCTQ5RUVDREM3MTA1MDNDMjMwMDA5OUZBQiAvKiBB
cnJheUJ1ZmZlclZpZXcuY3BwICovLAogCQkJCTQ5RUVDREM4MTA1MDNDMjMwMDA5OUZBQiAvKiBB
cnJheUJ1ZmZlclZpZXcuaCAqLywKIAkJCQk0OUVFQ0RDOTEwNTAzQzIzMDAwOTlGQUIgLyogQXJy
YXlCdWZmZXJWaWV3LmlkbCAqLywKKwkJCQk0NjE3RTdCMDEyMUUwNzhGMDA1RUM4QTggLyogQXN5
bmNGaWxlV3JpdGVyLmggKi8sCiAJCQkJNkU0RTkxQTcxMEY3RkIzMTAwQTI3NzlDIC8qIENhbnZh
c0NvbnRleHRBdHRyaWJ1dGVzLmNwcCAqLywKIAkJCQk2RTRFOTFBODEwRjdGQjMxMDBBMjc3OUMg
LyogQ2FudmFzQ29udGV4dEF0dHJpYnV0ZXMuaCAqLywKIAkJCQk0OTQ4NEZCMzEwMkNGMjNDMDAx
ODdERDMgLyogQ2FudmFzR3JhZGllbnQuY3BwICovLApAQCAtMTQwNTUsNiArMTQwNjQsNyBAQAog
CQkJCTg5NTI1M0RFMTE2QzRGMDYwMENBQkYwMCAvKiBGaWxlVGhyZWFkVGFzay5oICovLAogCQkJ
CTQ2QTI2OTAyMTIxQjZCNDMwMEM0MUYzQSAvKiBGaWxlV3JpdGVyLmNwcCAqLywKIAkJCQk0NkEy
NjkwMzEyMUI2QjQzMDBDNDFGM0EgLyogRmlsZVdyaXRlci5oICovLAorCQkJCTQ2OEY1QUEzMTIx
RjFENzQwMEI1QzQ5OCAvKiBGaWxlV3JpdGVyQ2xpZW50LmggKi8sCiAJCQkJNDZBMjY5MDQxMjFC
NkI0MzAwQzQxRjNBIC8qIEZpbGVXcml0ZXIuaWRsICovLAogCQkJCUE4MTM2RDM3MDk3M0E4RTcw
MEQ3NDQ2MyAvKiBGb3JtRGF0YUxpc3QuY3BwICovLAogCQkJCUE4MTM2RDM2MDk3M0E4RTcwMEQ3
NDQ2MyAvKiBGb3JtRGF0YUxpc3QuaCAqLywKQEAgLTE0NDM4LDYgKzE0NDQ4LDggQEAKIAkJCQlC
QzAwRjAxMzBFMEExODk1MDBGRDA0RTMgLyogSlNGaWxlTGlzdC5oICovLAogCQkJCTJFOTRGNDM5
MTE5MjA3REEwMEI3Rjc1RCAvKiBKU0ZpbGVSZWFkZXIuY3BwICovLAogCQkJCTJFOTRGNDNBMTE5
MjA3REEwMEI3Rjc1RCAvKiBKU0ZpbGVSZWFkZXIuaCAqLywKKwkJCQk0NkRBODQ0QjEyMjRBMDcx
MDA2MEQwMDYgLyogSlNGaWxlV3JpdGVyLmNwcCAqLywKKwkJCQk0NkRBODQ0QzEyMjRBMDcxMDA2
MEQwMDYgLyogSlNGaWxlV3JpdGVyLmggKi8sCiAJCQkJNDlFRUNFRjQxMDUwNzBDNDAwMDk5RkFC
IC8qIEpTRmxvYXQzMkFycmF5LmNwcCAqLywKIAkJCQk0OUVFQ0VGNTEwNTA3MEM0MDAwOTlGQUIg
LyogSlNGbG9hdDMyQXJyYXkuaCAqLywKIAkJCQlCQzk3RTQxMDEwOTE1NEZBMDAxMEQzNjEgLyog
SlNIVE1MQWxsQ29sbGVjdGlvbi5jcHAgKi8sCkBAIC0yMDM2NiwxMCArMjAzNzgsMTMgQEAKIAkJ
CQk0NkEyNjkwNjEyMUI2QjQzMDBDNDFGM0EgLyogRmlsZVdyaXRlci5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJMkVGMUJGRjcxMjFDQjBCRDAwQzI3NjI3IC8qIEFzeW5jRmlsZVN0cmVhbS5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJMkVGMUJGRjkxMjFDQjBDRTAwQzI3NjI3IC8qIEZpbGVTdHJlYW1DbGll
bnQuaCBpbiBIZWFkZXJzICovLAorCQkJCTQ2MTdFN0IxMTIxRTA3OEYwMDVFQzhBOCAvKiBBc3lu
Y0ZpbGVXcml0ZXIuaCBpbiBIZWFkZXJzICovLAorCQkJCTQ2OEY1QUE0MTIxRjFENzQwMEI1QzQ5
OCAvKiBGaWxlV3JpdGVyQ2xpZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQk4OUMwREQ3QjEyMUYw
QzY5MDA5RTE3Q0EgLyogRmlsZVN5c3RlbUNhbGxiYWNrcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
Q0UwNTdGQTYxMjIwNzMxMTAwQTQ3NkQ1IC8qIERvY3VtZW50TWFya2VyQ29udHJvbGxlci5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJOUYwRDZCMkYxMjFCRkVCQTAwNkMwMjg4IC8qIEluc3BlY3RvclBy
b2ZpbGVyQWdlbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCTJFQjRCQ0QzMTIxRjAzRTMwMEVDNDg4
NSAvKiBCbG9iUmVzb3VyY2VIYW5kbGUuaCBpbiBIZWFkZXJzICovLAorCQkJCTQ2REE4NDRFMTIy
NEEwNzEwMDYwRDAwNiAvKiBKU0ZpbGVXcml0ZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTg5Njg2
Q0EwMTIyMjQ0QTAwMDc2RUFBNCAvKiBET01GaWxlUGF0aC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
ODk0N0E4MkExMjIyMkM0NzAwRDk1RjJEIC8qIEpTTWV0YWRhdGEuaCBpbiBIZWFkZXJzICovLAog
CQkJCTg5NDdBODJDMTIyMjJDNDcwMEQ5NUYyRCAvKiBKU01ldGFkYXRhQ2FsbGJhY2suaCBpbiBI
ZWFkZXJzICovLApAQCAtMjI4MzAsNiArMjI4NDUsNyBAQAogCQkJCUNFMDU3RkE1MTIyMDczMTEw
MEE0NzZENSAvKiBEb2N1bWVudE1hcmtlckNvbnRyb2xsZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJ
CQkJOUYwRDZCMkUxMjFCRkVCQTAwNkMwMjg4IC8qIEluc3BlY3RvclByb2ZpbGVyQWdlbnQuY3Bw
IGluIFNvdXJjZXMgKi8sCiAJCQkJMkVCNEJDRDIxMjFGMDNFMzAwRUM0ODg1IC8qIEJsb2JSZXNv
dXJjZUhhbmRsZS5jcHAgaW4gU291cmNlcyAqLywKKwkJCQk0NkRBODQ0RDEyMjRBMDcxMDA2MEQw
MDYgLyogSlNGaWxlV3JpdGVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTg5Njg2QzlGMTIyMjQ0
QTAwMDc2RUFBNCAvKiBET01GaWxlUGF0aC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk4OTQ3QTgy
OTEyMjIyQzQ3MDBEOTVGMkQgLyogSlNNZXRhZGF0YS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk4
OTQ3QTgyQjEyMjIyQzQ3MDBEOTVGMkQgLyogSlNNZXRhZGF0YUNhbGxiYWNrLmNwcCBpbiBTb3Vy
Y2VzICovLApJbmRleDogV2ViQ29yZS9odG1sL0FzeW5jRmlsZVdyaXRlci5oCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFdlYkNvcmUvaHRtbC9Bc3luY0ZpbGVXcml0ZXIuaAkocmV2aXNpb24gMCkKKysrIFdlYkNv
cmUvaHRtbC9Bc3luY0ZpbGVXcml0ZXIuaAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSw2MCBAQAor
LyoKKyAqIENvcHlyaWdodCAoQykgMjAxMCBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQorICogbWV0OgorICoKKyAqICAg
ICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIuCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCisgKiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCisgKiBpbiB0aGUg
ZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCisg
KiBkaXN0cmlidXRpb24uCisgKiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMu
IG5vciB0aGUgbmFtZXMgb2YgaXRzCisgKiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5k
b3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQorICogdGhpcyBzb2Z0d2FyZSB3
aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVU
T1JTCisgKiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCisgKiBBIFBBUlRJQ1VMQVIgUFVSUE9T
RSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAorICogT1dO
RVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElO
Q0lERU5UQUwsCisgKiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdF
UyAoSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJT
VElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKKyAqIERBVEEsIE9SIFBST0ZJ
VFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQor
ICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJ
TElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJ
U0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNp
Zm5kZWYgQXN5bmNGaWxlV3JpdGVyX2gKKyNkZWZpbmUgQXN5bmNGaWxlV3JpdGVyX2gKKworI2lm
IEVOQUJMRShGSUxFX1dSSVRFUikKKworI2luY2x1ZGUgIlBsYXRmb3JtU3RyaW5nLmgiCisjaW5j
bHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBC
bG9iOworY2xhc3MgRmlsZVdyaXRlckNsaWVudDsKKworY2xhc3MgQXN5bmNGaWxlV3JpdGVyIHsK
K3B1YmxpYzoKKyAgICB2aXJ0dWFsIH5Bc3luY0ZpbGVXcml0ZXIoKSB7fQorCisgICAgdmlydHVh
bCB2b2lkIHNldEZpbGVXcml0ZXJDbGllbnQoRmlsZVdyaXRlckNsaWVudCogY2xpZW50KSA9IDA7
CisKKyAgICB2aXJ0dWFsIHZvaWQgd3JpdGUobG9uZyBsb25nIHBvc2l0aW9uLCBCbG9iKiBkYXRh
KSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHRydW5jYXRlKGxvbmcgbG9uZyBsZW5ndGgpID0gMDsK
KyAgICB2aXJ0dWFsIHZvaWQgYWJvcnQoKSA9IDA7Cit9OworCit9IC8vIG5hbWVzcGFjZQorCisj
ZW5kaWYgLy8gRU5BQkxFKEZJTEVfV1JJVEVSKQorCisjZW5kaWYgLy8gQXN5bmNGaWxlV3JpdGVy
X2gKKwpJbmRleDogV2ViQ29yZS9odG1sL0ZpbGVXcml0ZXIuY3BwCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdl
YkNvcmUvaHRtbC9GaWxlV3JpdGVyLmNwcAkocmV2aXNpb24gNjYxMzkpCisrKyBXZWJDb3JlL2h0
bWwvRmlsZVdyaXRlci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTM0LDIwICszNCw0MCBAQAogCiAj
aW5jbHVkZSAiRmlsZVdyaXRlci5oIgogCisjaW5jbHVkZSAiQXN5bmNGaWxlV3JpdGVyLmgiCisj
aW5jbHVkZSAiQmxvYi5oIgorI2luY2x1ZGUgIkV4Y2VwdGlvbkNvZGUuaCIKKyNpbmNsdWRlICJG
aWxlRXJyb3IuaCIKKyNpbmNsdWRlICJQcm9ncmVzc0V2ZW50LmgiCisKIG5hbWVzcGFjZSBXZWJD
b3JlIHsKIAogRmlsZVdyaXRlcjo6RmlsZVdyaXRlcihTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBj
b250ZXh0KQogICAgIDogQWN0aXZlRE9NT2JqZWN0KGNvbnRleHQsIHRoaXMpCisgICAgLCBtX3Jl
YWR5U3RhdGUoSU5JVCkKKyAgICAsIG1fcG9zaXRpb24oMCkKKyAgICAsIG1fYnl0ZXNXcml0dGVu
KDApCisgICAgLCBtX2J5dGVzVG9Xcml0ZSgwKQogewogfQogCit2b2lkIEZpbGVXcml0ZXI6Omlu
aXRpYWxpemUoUGFzc093blB0cjxBc3luY0ZpbGVXcml0ZXI+IHdyaXRlciwgbG9uZyBsb25nIGxl
bmd0aCkKK3sKKyAgICBBU1NFUlQoIW1fd3JpdGVyKTsKKyAgICBBU1NFUlQobGVuZ3RoID49IDAp
OworICAgIG1fd3JpdGVyID0gd3JpdGVyOworICAgIG1fbGVuZ3RoID0gbGVuZ3RoOworfQorCiBG
aWxlV3JpdGVyOjp+RmlsZVdyaXRlcigpCiB7CisgICAgaWYgKG1fcmVhZHlTdGF0ZSA9PSBXUklU
SU5HKQorICAgICAgICBzdG9wKCk7CiB9CiAKIGJvb2wgRmlsZVdyaXRlcjo6aGFzUGVuZGluZ0Fj
dGl2aXR5KCkgY29uc3QKIHsKLSAgICByZXR1cm4gZmFsc2U7CisgICAgcmV0dXJuIG1fcmVhZHlT
dGF0ZSA9PSBXUklUSU5HIHx8IEFjdGl2ZURPTU9iamVjdDo6aGFzUGVuZGluZ0FjdGl2aXR5KCk7
CiB9CiAKIGJvb2wgRmlsZVdyaXRlcjo6Y2FuU3VzcGVuZCgpIGNvbnN0CkBAIC01OCwyNyArNzgs
MTIwIEBAIGJvb2wgRmlsZVdyaXRlcjo6Y2FuU3VzcGVuZCgpIGNvbnN0CiAKIHZvaWQgRmlsZVdy
aXRlcjo6c3RvcCgpCiB7CisgICAgaWYgKG1fd3JpdGVyICYmIG1fcmVhZHlTdGF0ZSA9PSBXUklU
SU5HKQorICAgICAgICBtX3dyaXRlci0+YWJvcnQoKTsKKyAgICBtX3JlYWR5U3RhdGUgPSBET05F
OworfQorCit2b2lkIEZpbGVXcml0ZXI6OndyaXRlKEJsb2IqIGRhdGEsIEV4Y2VwdGlvbkNvZGUm
IGVjKQoreworICAgIEFTU0VSVChtX3dyaXRlcik7CisgICAgaWYgKG1fcmVhZHlTdGF0ZSA9PSBX
UklUSU5HKSB7CisgICAgICAgIGVjID0gSU5WQUxJRF9TVEFURV9FUlI7CisgICAgICAgIG1fZXJy
b3IgPSBGaWxlRXJyb3I6OmNyZWF0ZShlYyk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAg
ICBtX3JlYWR5U3RhdGUgPSBXUklUSU5HOworICAgIG1fYnl0ZXNXcml0dGVuID0gMDsKKyAgICBt
X2J5dGVzVG9Xcml0ZSA9IGRhdGEtPnNpemUoKTsKKyAgICBmaXJlRXZlbnQoZXZlbnROYW1lcygp
LndyaXRlc3RhcnRFdmVudCk7CisgICAgbV93cml0ZXItPndyaXRlKG1fcG9zaXRpb24sIGRhdGEp
OworfQorCit2b2lkIEZpbGVXcml0ZXI6OnNlZWsobG9uZyBsb25nIHBvc2l0aW9uLCBFeGNlcHRp
b25Db2RlJiBlYykKK3sKKyAgICBBU1NFUlQobV93cml0ZXIpOworICAgIGlmIChtX3JlYWR5U3Rh
dGUgPT0gV1JJVElORykgeworICAgICAgICBlYyA9IElOVkFMSURfU1RBVEVfRVJSOworICAgICAg
ICBtX2Vycm9yID0gRmlsZUVycm9yOjpjcmVhdGUoZWMpOworICAgICAgICByZXR1cm47CisgICAg
fQorCisgICAgbV9ieXRlc1dyaXR0ZW4gPSAwOworICAgIG1fYnl0ZXNUb1dyaXRlID0gMDsKKyAg
ICBpZiAocG9zaXRpb24gPiBtX2xlbmd0aCkKKyAgICAgICAgcG9zaXRpb24gPSBtX2xlbmd0aDsK
KyAgICBlbHNlIGlmIChwb3NpdGlvbiA8IDApCisgICAgICAgIHBvc2l0aW9uID0gbV9sZW5ndGgg
KyBwb3NpdGlvbjsKKyAgICBpZiAocG9zaXRpb24gPCAwKQorICAgICAgICBwb3NpdGlvbiA9IDA7
CisgICAgbV9wb3NpdGlvbiA9IHBvc2l0aW9uOworfQorCit2b2lkIEZpbGVXcml0ZXI6OnRydW5j
YXRlKGxvbmcgbG9uZyBwb3NpdGlvbiwgRXhjZXB0aW9uQ29kZSYgZWMpCit7CisgICAgQVNTRVJU
KG1fd3JpdGVyKTsKKyAgICBpZiAobV9yZWFkeVN0YXRlID09IFdSSVRJTkcgfHwgcG9zaXRpb24g
Pj0gbV9sZW5ndGgpIHsKKyAgICAgICAgZWMgPSBJTlZBTElEX1NUQVRFX0VSUjsKKyAgICAgICAg
bV9lcnJvciA9IEZpbGVFcnJvcjo6Y3JlYXRlKGVjKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0K
KyAgICBtX3JlYWR5U3RhdGUgPSBXUklUSU5HOworICAgIG1fYnl0ZXNXcml0dGVuID0gMDsKKyAg
ICBtX2J5dGVzVG9Xcml0ZSA9IDA7CisgICAgZmlyZUV2ZW50KGV2ZW50TmFtZXMoKS53cml0ZXN0
YXJ0RXZlbnQpOworICAgIG1fd3JpdGVyLT50cnVuY2F0ZShwb3NpdGlvbik7Cit9CisKK3ZvaWQg
RmlsZVdyaXRlcjo6YWJvcnQoRXhjZXB0aW9uQ29kZSYgZWMpCit7CisgICAgQVNTRVJUKG1fd3Jp
dGVyKTsKKyAgICBpZiAobV9yZWFkeVN0YXRlICE9IFdSSVRJTkcpIHsKKyAgICAgICAgZWMgPSBJ
TlZBTElEX1NUQVRFX0VSUjsKKyAgICAgICAgbV9lcnJvciA9IEZpbGVFcnJvcjo6Y3JlYXRlKGVj
KTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKyAgICBtX2Vycm9yID0gRmlsZUVycm9yOjpjcmVh
dGUoQUJPUlRfRVJSKTsKKyAgICBtX3JlYWR5U3RhdGUgPSBET05FOworICAgIGZpcmVFdmVudChl
dmVudE5hbWVzKCkuZXJyb3JFdmVudCk7CisgICAgZmlyZUV2ZW50KGV2ZW50TmFtZXMoKS5hYm9y
dEV2ZW50KTsKKyAgICBmaXJlRXZlbnQoZXZlbnROYW1lcygpLndyaXRlZW5kRXZlbnQpOworICAg
IG1fd3JpdGVyLT5hYm9ydCgpOworfQorCit2b2lkIEZpbGVXcml0ZXI6OmRpZFdyaXRlKGxvbmcg
bG9uZyBieXRlcywgYm9vbCBjb21wbGV0ZSkKK3sKKyAgICBBU1NFUlQoYnl0ZXMgPiAwKTsKKyAg
ICBBU1NFUlQoYnl0ZXMgKyBtX2J5dGVzV3JpdHRlbiA+IDApOworICAgIEFTU0VSVChieXRlcyAr
IG1fYnl0ZXNXcml0dGVuIDw9IG1fYnl0ZXNUb1dyaXRlKTsKKyAgICBtX2J5dGVzV3JpdHRlbiAr
PSBieXRlczsKKyAgICBBU1NFUlQoKG1fYnl0ZXNXcml0dGVuID09IG1fYnl0ZXNUb1dyaXRlKSA9
PSBjb21wbGV0ZSk7CisgICAgbV9wb3NpdGlvbiArPSBieXRlczsKKyAgICBpZiAobV9wb3NpdGlv
biA+IG1fbGVuZ3RoKQorICAgICAgICBtX2xlbmd0aCA9IG1fcG9zaXRpb247CisgICAgaWYgKGNv
bXBsZXRlKQorICAgICAgICBtX3JlYWR5U3RhdGUgPSBET05FOworICAgIGZpcmVFdmVudChldmVu
dE5hbWVzKCkud3JpdGVFdmVudCk7CisgICAgaWYgKGNvbXBsZXRlKQorICAgICAgICBmaXJlRXZl
bnQoZXZlbnROYW1lcygpLndyaXRlZW5kRXZlbnQpOworfQorCit2b2lkIEZpbGVXcml0ZXI6OmRp
ZFRydW5jYXRlKGxvbmcgbG9uZyBsZW5ndGgpCit7CisgICAgQVNTRVJUKGxlbmd0aCA+IDApOwor
ICAgIEFTU0VSVChsZW5ndGggPj0gMCk7CisgICAgQVNTRVJUKGxlbmd0aCA8IG1fbGVuZ3RoKTsK
KyAgICBtX2xlbmd0aCA9IGxlbmd0aDsKKyAgICBpZiAobV9wb3NpdGlvbiA+IG1fbGVuZ3RoKQor
ICAgICAgICBtX3Bvc2l0aW9uID0gbV9sZW5ndGg7CisgICAgbV9yZWFkeVN0YXRlID0gRE9ORTsK
KyAgICBmaXJlRXZlbnQoZXZlbnROYW1lcygpLndyaXRlRXZlbnQpOworICAgIGZpcmVFdmVudChl
dmVudE5hbWVzKCkud3JpdGVlbmRFdmVudCk7Cit9CisKK3ZvaWQgRmlsZVdyaXRlcjo6ZGlkRmFp
bChFeGNlcHRpb25Db2RlIGVjKQoreworICAgIG1fZXJyb3IgPSBGaWxlRXJyb3I6OmNyZWF0ZShl
Yyk7CisgICAgbV9yZWFkeVN0YXRlID0gRE9ORTsKKyAgICBmaXJlRXZlbnQoZXZlbnROYW1lcygp
LmVycm9yRXZlbnQpOworICAgIGZpcmVFdmVudChldmVudE5hbWVzKCkud3JpdGVlbmRFdmVudCk7
CiB9CiAKLXZvaWQgRmlsZVdyaXRlcjo6d3JpdGUoQmxvYiopCi17Ci19Ci0KLXZvaWQgRmlsZVdy
aXRlcjo6c2Vlayhsb25nIGxvbmcpCi17Ci19Ci0KLXZvaWQgRmlsZVdyaXRlcjo6dHJ1bmNhdGUo
bG9uZyBsb25nKQotewotfQotCi12b2lkIEZpbGVXcml0ZXI6OmFib3J0KCkKLXsKLX0KLQotRmls
ZVdyaXRlcjo6UmVhZHlTdGF0ZSBGaWxlV3JpdGVyOjpyZWFkeVN0YXRlKCkgY29uc3QKK3ZvaWQg
RmlsZVdyaXRlcjo6ZmlyZUV2ZW50KGNvbnN0IEF0b21pY1N0cmluZyYgdHlwZSkKIHsKLSAgICBy
ZXR1cm4gRU1QVFk7CisgICAgLy8gRklYTUU6IHRoZSBjdXJyZW50IFByb2dyZXNzRXZlbnQgdXNl
cyAidW5zaWduZWQgbG9uZyIgZm9yIHRvdGFsIGFuZCBsb2FkZWQgYXR0cmlidXRlcy4gTmVlZCB0
byB0YWxrIHdpdGggdGhlIHNwZWMgd3JpdGVyIHRvIHJlc29sdmUgdGhlIGlzc3VlLgorICAgIGRp
c3BhdGNoRXZlbnQoUHJvZ3Jlc3NFdmVudDo6Y3JlYXRlKHR5cGUsIHRydWUsIHN0YXRpY19jYXN0
PHVuc2lnbmVkPihtX2J5dGVzV3JpdHRlbiksIHN0YXRpY19jYXN0PHVuc2lnbmVkPihtX2J5dGVz
VG9Xcml0ZSkpKTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpJbmRleDogV2ViQ29yZS9o
dG1sL0ZpbGVXcml0ZXIuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2h0bWwvRmlsZVdyaXRlci5o
CShyZXZpc2lvbiA2NjEzOSkKKysrIFdlYkNvcmUvaHRtbC9GaWxlV3JpdGVyLmgJKHdvcmtpbmcg
Y29weSkKQEAgLTM1LDQ0ICszNSw1NCBAQAogCiAjaW5jbHVkZSAiQWN0aXZlRE9NT2JqZWN0Lmgi
CiAjaW5jbHVkZSAiRXZlbnRUYXJnZXQuaCIKKyNpbmNsdWRlICJGaWxlV3JpdGVyQ2xpZW50Lmgi
CisjaW5jbHVkZSA8d3RmL093blB0ci5oPgorI2luY2x1ZGUgPHd0Zi9QYXNzT3duUHRyLmg+CiAj
aW5jbHVkZSA8d3RmL1Bhc3NSZWZQdHIuaD4KICNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgog
I2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCitjbGFzcyBB
c3luY0ZpbGVXcml0ZXI7CiBjbGFzcyBCbG9iOwogY2xhc3MgRmlsZUVycm9yOwogY2xhc3MgU2Ny
aXB0RXhlY3V0aW9uQ29udGV4dDsKIAotLy8gRklYTUU6IFRoaXMgaXMgYW4gZW1wdHksIGRvLW5v
dGhpbmcgcGxhY2Vob2xkZXIgZm9yIGltcGxlbWVudGF0aW9uIHlldCB0byBjb21lLgotY2xhc3Mg
RmlsZVdyaXRlciA6IHB1YmxpYyBSZWZDb3VudGVkPEZpbGVXcml0ZXI+LCBwdWJsaWMgQWN0aXZl
RE9NT2JqZWN0LCBwdWJsaWMgRXZlbnRUYXJnZXQgeworY2xhc3MgRmlsZVdyaXRlciA6IHB1Ymxp
YyBSZWZDb3VudGVkPEZpbGVXcml0ZXI+LCBwdWJsaWMgQWN0aXZlRE9NT2JqZWN0LCBwdWJsaWMg
RXZlbnRUYXJnZXQsIHB1YmxpYyBGaWxlV3JpdGVyQ2xpZW50IHsKIHB1YmxpYzoKICAgICBzdGF0
aWMgUGFzc1JlZlB0cjxGaWxlV3JpdGVyPiBjcmVhdGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCog
Y29udGV4dCkKICAgICB7CiAgICAgICAgIHJldHVybiBhZG9wdFJlZihuZXcgRmlsZVdyaXRlcihj
b250ZXh0KSk7CiAgICAgfQogCisgICAgdm9pZCBpbml0aWFsaXplKFBhc3NPd25QdHI8QXN5bmNG
aWxlV3JpdGVyPiB3cml0ZXIsIGxvbmcgbG9uZyBsZW5ndGgpOworCiAgICAgZW51bSBSZWFkeVN0
YXRlIHsKLSAgICAgICAgRU1QVFkgPSAwLAorICAgICAgICBJTklUID0gMCwKICAgICAgICAgV1JJ
VElORyA9IDEsCiAgICAgICAgIERPTkUgPSAyCiAgICAgfTsKIAotICAgIHZvaWQgd3JpdGUoQmxv
YiopOwotICAgIHZvaWQgc2Vlayhsb25nIGxvbmcgcG9zaXRpb24pOwotICAgIHZvaWQgdHJ1bmNh
dGUobG9uZyBsb25nIGxlbmd0aCk7Ci0gICAgdm9pZCBhYm9ydCgpOwotCi0gICAgUmVhZHlTdGF0
ZSByZWFkeVN0YXRlKCkgY29uc3Q7Ci0gICAgRmlsZUVycm9yKiBlcnJvcigpIGNvbnN0IHsgcmV0
dXJuIG1fZXJyb3I7IH07Ci0gICAgbG9uZyBsb25nIHBvc2l0aW9uKCkgY29uc3QgeyByZXR1cm4g
MDsgfTsKLSAgICBsb25nIGxvbmcgbGVuZ3RoKCkgY29uc3QgeyByZXR1cm4gMDsgfTsKKyAgICB2
b2lkIHdyaXRlKEJsb2IqIGRhdGEsIEV4Y2VwdGlvbkNvZGUmIGVjKTsKKyAgICB2b2lkIHNlZWso
bG9uZyBsb25nIHBvc2l0aW9uLCBFeGNlcHRpb25Db2RlJiBlYyk7CisgICAgdm9pZCB0cnVuY2F0
ZShsb25nIGxvbmcgbGVuZ3RoLCBFeGNlcHRpb25Db2RlJiBlYyk7CisgICAgdm9pZCBhYm9ydChF
eGNlcHRpb25Db2RlJiBlYyk7CisKKyAgICBSZWFkeVN0YXRlIHJlYWR5U3RhdGUoKSBjb25zdCB7
IHJldHVybiBtX3JlYWR5U3RhdGU7IH0KKyAgICBGaWxlRXJyb3IqIGVycm9yKCkgY29uc3QgeyBy
ZXR1cm4gbV9lcnJvci5nZXQoKTsgfQorICAgIGxvbmcgbG9uZyBwb3NpdGlvbigpIGNvbnN0IHsg
cmV0dXJuIG1fcG9zaXRpb247IH0KKyAgICBsb25nIGxvbmcgbGVuZ3RoKCkgY29uc3QgeyByZXR1
cm4gbV9sZW5ndGg7IH0KKworICAgIC8vIEZpbGVXcml0ZXJDbGllbnQKKyAgICB2b2lkIGRpZFdy
aXRlKGxvbmcgbG9uZyBieXRlcywgYm9vbCBjb21wbGV0ZSk7CisgICAgdm9pZCBkaWRUcnVuY2F0
ZShsb25nIGxvbmcgbGVuZ3RoKTsKKyAgICB2b2lkIGRpZEZhaWwoRXhjZXB0aW9uQ29kZSBlYyk7
CiAKICAgICAvLyBBY3RpdmVET01PYmplY3QKICAgICB2aXJ0dWFsIGJvb2wgY2FuU3VzcGVuZCgp
IGNvbnN0OwotICAgIHZpcnR1YWwgdm9pZCBzdG9wKCk7CiAgICAgdmlydHVhbCBib29sIGhhc1Bl
bmRpbmdBY3Rpdml0eSgpIGNvbnN0OworICAgIHZpcnR1YWwgdm9pZCBzdG9wKCk7CiAKICAgICAv
LyBFdmVudFRhcmdldAogICAgIHZpcnR1YWwgRmlsZVdyaXRlciogdG9GaWxlV3JpdGVyKCkgeyBy
ZXR1cm4gdGhpczsgfQpAQCAtODcsNyArOTcsNyBAQCBwdWJsaWM6CiAgICAgREVGSU5FX0FUVFJJ
QlVURV9FVkVOVF9MSVNURU5FUihhYm9ydCk7CiAgICAgREVGSU5FX0FUVFJJQlVURV9FVkVOVF9M
SVNURU5FUihlcnJvcik7CiAgICAgREVGSU5FX0FUVFJJQlVURV9FVkVOVF9MSVNURU5FUih3cml0
ZWVuZCk7Ci0KKyAgICAKIHByaXZhdGU6CiAgICAgRmlsZVdyaXRlcihTY3JpcHRFeGVjdXRpb25D
b250ZXh0Kik7CiAKQEAgLTEwMSw4ICsxMTEsMTYgQEAgcHJpdmF0ZToKICAgICB2aXJ0dWFsIEV2
ZW50VGFyZ2V0RGF0YSogZXZlbnRUYXJnZXREYXRhKCkgeyByZXR1cm4gJm1fZXZlbnRUYXJnZXRE
YXRhOyB9CiAgICAgdmlydHVhbCBFdmVudFRhcmdldERhdGEqIGVuc3VyZUV2ZW50VGFyZ2V0RGF0
YSgpIHsgcmV0dXJuICZtX2V2ZW50VGFyZ2V0RGF0YTsgfQogCi0gICAgUmVmUHRyPEZpbGVFcnJv
cio+IG1fZXJyb3I7CisgICAgdm9pZCBmaXJlRXZlbnQoY29uc3QgQXRvbWljU3RyaW5nJiB0eXBl
KTsKKworICAgIFJlZlB0cjxGaWxlRXJyb3I+IG1fZXJyb3I7CiAgICAgRXZlbnRUYXJnZXREYXRh
IG1fZXZlbnRUYXJnZXREYXRhOworICAgIE93blB0cjxBc3luY0ZpbGVXcml0ZXI+IG1fd3JpdGVy
OworICAgIFJlYWR5U3RhdGUgbV9yZWFkeVN0YXRlOworICAgIGxvbmcgbG9uZyBtX3Bvc2l0aW9u
OworICAgIGxvbmcgbG9uZyBtX2xlbmd0aDsKKyAgICBsb25nIGxvbmcgbV9ieXRlc1dyaXR0ZW47
CisgICAgbG9uZyBsb25nIG1fYnl0ZXNUb1dyaXRlOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2Vi
Q29yZQpJbmRleDogV2ViQ29yZS9odG1sL0ZpbGVXcml0ZXJDbGllbnQuaAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBXZWJDb3JlL2h0bWwvRmlsZVdyaXRlckNsaWVudC5oCShyZXZpc2lvbiAwKQorKysgV2ViQ29y
ZS9odG1sL0ZpbGVXcml0ZXJDbGllbnQuaAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSw1MyBAQAor
LyoKKyAqIENvcHlyaWdodCAoQykgMjAxMCBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQorICogbWV0OgorICoKKyAqICAg
ICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIuCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCisgKiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCisgKiBpbiB0aGUg
ZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCisg
KiBkaXN0cmlidXRpb24uCisgKiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMu
IG5vciB0aGUgbmFtZXMgb2YgaXRzCisgKiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5k
b3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQorICogdGhpcyBzb2Z0d2FyZSB3
aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVU
T1JTCisgKiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCisgKiBBIFBBUlRJQ1VMQVIgUFVSUE9T
RSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAorICogT1dO
RVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElO
Q0lERU5UQUwsCisgKiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdF
UyAoSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJT
VElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKKyAqIERBVEEsIE9SIFBST0ZJ
VFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQor
ICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJ
TElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJ
U0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNp
Zm5kZWYgRmlsZVdyaXRlckNsaWVudF9oCisjZGVmaW5lIEZpbGVXcml0ZXJDbGllbnRfaAorCisj
aWYgRU5BQkxFKEZJTEVfV1JJVEVSKQorCisjaW5jbHVkZSAiRXhjZXB0aW9uQ29kZS5oIgorCitu
YW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIEZpbGVXcml0ZXJDbGllbnQgeworcHVibGljOgor
ICAgIHZpcnR1YWwgfkZpbGVXcml0ZXJDbGllbnQoKSB7fQorCisgICAgdmlydHVhbCB2b2lkIGRp
ZFdyaXRlKGxvbmcgbG9uZyBieXRlcywgYm9vbCBjb21wbGV0ZSkgPSAwOworICAgIHZpcnR1YWwg
dm9pZCBkaWRUcnVuY2F0ZShsb25nIGxvbmcgcG9zaXRpb24pID0gMDsKKyAgICB2aXJ0dWFsIHZv
aWQgZGlkRmFpbChFeGNlcHRpb25Db2RlKSA9IDA7Cit9OworCit9IC8vIG5hbWVzcGFjZQorCisj
ZW5kaWYgLy8gRU5BQkxFKEZJTEVfV1JJVEVSKQorCisjZW5kaWYgLy8gRmlsZVdyaXRlckNsaWVu
dF9oCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>