<?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>11900</bug_id>
          
          <creation_ts>2006-12-20 18:34:37 -0800</creation_ts>
          <short_desc>Windows build bustage</short_desc>
          <delta_ts>2007-01-04 18:53:14 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebCore Misc.</component>
          <version>420+</version>
          <rep_platform>PC</rep_platform>
          <op_sys>Windows XP</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Don Gibson">dgibson77</reporter>
          <assigned_to name="Don Gibson">dgibson77</assigned_to>
          <cc>ap</cc>
    
    <cc>gombi.webkit</cc>
    
    <cc>webkit</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>41158</commentid>
    <comment_count>0</comment_count>
    <who name="Don Gibson">dgibson77</who>
    <bug_when>2006-12-20 18:34:37 -0800</bug_when>
    <thetext>Patch coming shortly</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>41160</commentid>
    <comment_count>1</comment_count>
      <attachid>11942</attachid>
    <who name="Don Gibson">dgibson77</who>
    <bug_when>2006-12-20 18:37:19 -0800</bug_when>
    <thetext>Created attachment 11942
patch for r18368

This fixes the build on my machine.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>41004</commentid>
    <comment_count>2</comment_count>
      <attachid>11942</attachid>
    <who name="Dave Hyatt">hyatt</who>
    <bug_when>2006-12-20 20:33:57 -0800</bug_when>
    <thetext>Comment on attachment 11942
patch for r18368

You used fillColor() by mistake for the rect fills of endpoints in drawLine.  Even though &quot;fill&quot; is used to paint those it&apos;s a stroke and should be using strokeColor.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>37554</commentid>
    <comment_count>3</comment_count>
      <attachid>12175</attachid>
    <who name="Don Gibson">dgibson77</who>
    <bug_when>2007-01-02 17:59:59 -0800</bug_when>
    <thetext>Created attachment 12175
patch for r18532

Updated to correct hyatt&apos;s review comment and fix more things broken since the last patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>37241</commentid>
    <comment_count>4</comment_count>
      <attachid>12200</attachid>
    <who name="Don Gibson">dgibson77</who>
    <bug_when>2007-01-03 13:58:11 -0800</bug_when>
    <thetext>Created attachment 12200
patch for r18551

Updated to latest trunk</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>37161</commentid>
    <comment_count>5</comment_count>
      <attachid>12200</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2007-01-04 05:04:55 -0800</bug_when>
    <thetext>Comment on attachment 12200
patch for r18551

r=me

JFYI, WebKit (debug) still doesn&apos;t link for me for whatever reason (missing fastMalloc/fastFree, WTFReportAssertionFailure, WebCore::contextMenuTemTagXXX).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>37162</commentid>
    <comment_count>6</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2007-01-04 05:05:57 -0800</bug_when>
    <thetext>Committed revision 18579.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>11942</attachid>
            <date>2006-12-20 18:37:19 -0800</date>
            <delta_ts>2007-01-02 17:59:59 -0800</delta_ts>
            <desc>patch for r18368</desc>
            <filename>patch</filename>
            <type>text/plain</type>
            <size>22861</size>
            <attacher name="Don Gibson">dgibson77</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiAxODM3MCkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsNDAgQEAKKzIwMDYtMTItMjAgIERvbiBHaWJzb24gIDxkZ2lic29uNzdAZ21haWwu
Y29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIGh0
dHA6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTExOTAwOgorICAgICAgICBXaW5k
b3dzIGJ1aWxkIGJ1c3RhZ2UKKworICAgICAgICAqIFdlYkNvcmUudmNwcm9qL1dlYkNvcmUvV2Vi
Q29yZS52Y3Byb2o6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dDo6c2V0UGxhdGZvcm1TdHJv
a2VDb2xvcik6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vR3JhcGhpY3NDb250
ZXh0Q2Fpcm8uY3BwOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0OjpkcmF3UmVj
dCk6CisgICAgICAgIChXZWJDb3JlOjphZGp1c3RMaW5lVG9QaXhlbEJvdW5kYXJpZXMpOgorICAg
ICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0OjpkcmF3TGluZSk6CisgICAgICAgIChXZWJD
b3JlOjpHcmFwaGljc0NvbnRleHQ6OmRyYXdFbGxpcHNlKToKKyAgICAgICAgKFdlYkNvcmU6Okdy
YXBoaWNzQ29udGV4dDo6c3Ryb2tlQXJjKToKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29u
dGV4dDo6ZHJhd0NvbnZleFBvbHlnb24pOgorICAgICAgICAqIHBsYXRmb3JtL3dpbi9Gb250V2lu
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZvbnQ6OmRyYXdHbHlwaHMpOgorICAgICAgICAqIHBs
YXRmb3JtL3dpbi9UZW1wb3JhcnlMaW5rU3R1YnMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q29u
dGV4dE1lbnU6On5Db250ZXh0TWVudSk6CisgICAgICAgIChXZWJDb3JlOjpDb250ZXh0TWVudTo6
YXBwZW5kSXRlbSk6CisgICAgICAgIChXZWJDb3JlOjpDb250ZXh0TWVudUl0ZW06OkNvbnRleHRN
ZW51SXRlbSk6CisgICAgICAgIChXZWJDb3JlOjpDb250ZXh0TWVudUl0ZW06OnJlbGVhc2VQbGF0
Zm9ybURlc2NyaXB0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OkNvbnRleHRNZW51SXRlbTo6dHlw
ZSk6CisgICAgICAgIChXZWJDb3JlOjpDb250ZXh0TWVudUl0ZW06OnNldFR5cGUpOgorICAgICAg
ICAoV2ViQ29yZTo6Q29udGV4dE1lbnVJdGVtOjpzZXRBY3Rpb24pOgorICAgICAgICAoV2ViQ29y
ZTo6Q29udGV4dE1lbnVJdGVtOjpzZXRUaXRsZSk6CisgICAgICAgIChXZWJDb3JlOjpDb250ZXh0
TWVudUl0ZW06OnNldFN1Yk1lbnUpOgorICAgICAgICAoV2ViQ29yZTo6Q29udGV4dE1lbnVJdGVt
OjpzZXRDaGVja2VkKToKKyAgICAgICAgKFdlYkNvcmU6OkNvbnRleHRNZW51SXRlbTo6c2V0RW5h
YmxlZCk6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudExvYWRlcjo6VVJMKToKKyAgICAgICAg
KFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dDo6c3Ryb2tlUmVjdCk6CisgICAgICAgIChXZWJDb3Jl
OjpTZWFyY2hQb3B1cE1lbnU6OnNhdmVSZWNlbnRTZWFyY2hlcyk6CisgICAgICAgIChXZWJDb3Jl
OjpTZWFyY2hQb3B1cE1lbnU6OmxvYWRSZWNlbnRTZWFyY2hlcyk6CisgICAgICAgIChXZWJDb3Jl
OjpTZWFyY2hQb3B1cE1lbnU6OlNlYXJjaFBvcHVwTWVudSk6CisKIDIwMDYtMTItMjEgIE5pa29s
YXMgWmltbWVybWFubiAgPHppbW1lcm1hbm5Aa2RlLm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBi
eSBPbGl2ZXIuCkluZGV4OiBXZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUvV2ViQ29yZS52
Y3Byb2oKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlL1dlYkNv
cmUudmNwcm9qCShyZXZpc2lvbiAxODM2OCkKKysrIFdlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2Vi
Q29yZS9XZWJDb3JlLnZjcHJvagkod29ya2luZyBjb3B5KQpAQCAtMTU1OSw2ICsxNTU5LDEwIEBA
CiAJCQkJPgogCQkJPC9GaWxlPgogCQkJPEZpbGUKKwkJCQlSZWxhdGl2ZVBhdGg9Ii4uXC4uXHBs
YXRmb3JtXFBvcHVwTWVudUNsaWVudC5oIgorCQkJCT4KKwkJCTwvRmlsZT4KKwkJCTxGaWxlCiAJ
CQkJUmVsYXRpdmVQYXRoPSIuLlwuLlxwbGF0Zm9ybVxSZWd1bGFyRXhwcmVzc2lvbi5jcHAiCiAJ
CQkJPgogCQkJPC9GaWxlPgpAQCAtMTU4Nyw2ICsxNTkxLDEwIEBACiAJCQkJPgogCQkJPC9GaWxl
PgogCQkJPEZpbGUKKwkJCQlSZWxhdGl2ZVBhdGg9Ii4uXC4uXHBsYXRmb3JtXFNlYXJjaFBvcHVw
TWVudS5oIgorCQkJCT4KKwkJCTwvRmlsZT4KKwkJCTxGaWxlCiAJCQkJUmVsYXRpdmVQYXRoPSIu
LlwuLlxwbGF0Zm9ybVxTZWdtZW50ZWRTdHJpbmcuY3BwIgogCQkJCT4KIAkJCTwvRmlsZT4KQEAg
LTE2MzksNiArMTY0NywxMCBAQAogCQkJCT4KIAkJCTwvRmlsZT4KIAkJCTxGaWxlCisJCQkJUmVs
YXRpdmVQYXRoPSIuLlwuLlxwbGF0Zm9ybVxUZXh0QnJlYWtJdGVyYXRvci5oIgorCQkJCT4KKwkJ
CTwvRmlsZT4KKwkJCTxGaWxlCiAJCQkJUmVsYXRpdmVQYXRoPSIuLlwuLlxwbGF0Zm9ybVxUZXh0
QnJlYWtJdGVyYXRvcklDVS5jcHAiCiAJCQkJPgogCQkJPC9GaWxlPgpAQCAtMTcwMywxMCArMTcx
NSw2IEBACiAJCQkJPgogCQkJPC9GaWxlPgogCQkJPEZpbGUKLQkJCQlSZWxhdGl2ZVBhdGg9Ii4u
XC4uXHBsYXRmb3JtXFRleHRGaWVsZC5oIgotCQkJCT4KLQkJCTwvRmlsZT4KLQkJCTxGaWxlCiAJ
CQkJUmVsYXRpdmVQYXRoPSIuLlwuLlxwbGF0Zm9ybVxUZXh0U3RyZWFtLmNwcCIKIAkJCQk+CiAJ
CQk8L0ZpbGU+CkBAIC0xNzI3LDEwICsxNzM1LDYgQEAKIAkJCQk+CiAJCQk8L0ZpbGU+CiAJCQk8
RmlsZQotCQkJCVJlbGF0aXZlUGF0aD0iLi5cLi5ccGxhdGZvcm1cVUNoYXIuaCIKLQkJCQk+Ci0J
CQk8L0ZpbGU+Ci0JCQk8RmlsZQogCQkJCVJlbGF0aXZlUGF0aD0iLi5cLi5ccGxhdGZvcm1cV2lk
Z2V0LmNwcCIKIAkJCQk+CiAJCQk8L0ZpbGU+CkBAIC0xODE4LDYgKzE4MjIsMTQgQEAKIAkJCQkJ
PgogCQkJCTwvRmlsZT4KIAkJCQk8RmlsZQorCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXC4uXHBsYXRm
b3JtXGdyYXBoaWNzXEltYWdlQnVmZmVyLmNwcCIKKwkJCQkJPgorCQkJCTwvRmlsZT4KKwkJCQk8
RmlsZQorCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXC4uXHBsYXRmb3JtXGdyYXBoaWNzXEltYWdlQnVm
ZmVyLmgiCisJCQkJCT4KKwkJCQk8L0ZpbGU+CisJCQkJPEZpbGUKIAkJCQkJUmVsYXRpdmVQYXRo
PSIuLlwuLlxwbGF0Zm9ybVxncmFwaGljc1xJbWFnZVNvdXJjZS5oIgogCQkJCQk+CiAJCQkJPC9G
aWxlPgpAQCAtMzQ3OSwxNCArMzQ5MSw2IEBACiAJCQkJPgogCQkJPC9GaWxlPgogCQkJPEZpbGUK
LQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXC4uXHJlbmRlcmluZ1xSZW5kZXJMaW5lRWRpdC5jcHAiCi0J
CQkJPgotCQkJPC9GaWxlPgotCQkJPEZpbGUKLQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXC4uXHJlbmRl
cmluZ1xSZW5kZXJMaW5lRWRpdC5oIgotCQkJCT4KLQkJCTwvRmlsZT4KLQkJCTxGaWxlCiAJCQkJ
UmVsYXRpdmVQYXRoPSIuLlwuLlxyZW5kZXJpbmdcUmVuZGVyTGlzdEJveC5jcHAiCiAJCQkJPgog
CQkJPC9GaWxlPgpAQCAtNDMzNCwxOCArNDMzOCw2IEBACiAJCQkJTmFtZT0id2luIgogCQkJCT4K
IAkJCQk8RmlsZQotCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXC4uXGJyaWRnZVx3aW5cQ2hyb21lQ2xp
ZW50V2luLmgiCi0JCQkJCT4KLQkJCQk8L0ZpbGU+Ci0JCQkJPEZpbGUKLQkJCQkJUmVsYXRpdmVQ
YXRoPSIuLlwuLlxicmlkZ2Vcd2luXENvbnRleHRNZW51Q2xpZW50V2luLmgiCi0JCQkJCT4KLQkJ
CQk8L0ZpbGU+Ci0JCQkJPEZpbGUKLQkJCQkJUmVsYXRpdmVQYXRoPSIuLlwuLlxicmlkZ2Vcd2lu
XEVkaXRvckNsaWVudFdpbi5oIgotCQkJCQk+Ci0JCQkJPC9GaWxlPgotCQkJCTxGaWxlCiAJCQkJ
CVJlbGF0aXZlUGF0aD0iLi5cLi5cYnJpZGdlXHdpblxGcmFtZVdpbi5jcHAiCiAJCQkJCT4KIAkJ
CQk8L0ZpbGU+CkBAIC00NDU5LDYgKzQ0NTEsMTAgQEAKIAkJCQk+CiAJCQk8L0ZpbGU+CiAJCQk8
RmlsZQorCQkJCVJlbGF0aXZlUGF0aD0iLi5cLi5cZWRpdGluZ1xFZGl0b3JEZWxldGVBY3Rpb24u
aCIKKwkJCQk+CisJCQk8L0ZpbGU+CisJCQk8RmlsZQogCQkJCVJlbGF0aXZlUGF0aD0iLi5cLi5c
ZWRpdGluZ1xFZGl0b3JJbnNlcnRBY3Rpb24uaCIKIAkJCQk+CiAJCQk8L0ZpbGU+CkluZGV4OiBX
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dC5jcHAKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHQuY3BwCShyZXZpc2lv
biAxODM2OCkKKysrIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0LmNw
cAkod29ya2luZyBjb3B5KQpAQCAtMzQxLDcgKzM0MSw3IEBAIHZvaWQgR3JhcGhpY3NDb250ZXh0
OjpzZXRQbGF0Zm9ybUZpbGxDb2wKIHsKIH0KIAotdm9pZCBHcmFwaGljc0NvbnRleHQ6OnNldFBs
YXRmb3JtU3Ryb2tlQ29sb3IoY29uc3QgQ29sb3ImKTsKK3ZvaWQgR3JhcGhpY3NDb250ZXh0Ojpz
ZXRQbGF0Zm9ybVN0cm9rZUNvbG9yKGNvbnN0IENvbG9yJikKIHsKIH0KIApJbmRleDogV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9HcmFwaGljc0NvbnRleHRDYWlyby5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9HcmFwaGljc0NvbnRleHRD
YWlyby5jcHAJKHJldmlzaW9uIDE4MzY4KQorKysgV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9j
YWlyby9HcmFwaGljc0NvbnRleHRDYWlyby5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEyOCw4ICsx
MjgsOCBAQCB2b2lkIEdyYXBoaWNzQ29udGV4dDo6ZHJhd1JlY3QoY29uc3QgSW50CiAgICAgaWYg
KGZpbGxDb2xvcigpLmFscGhhKCkpCiAgICAgICAgIGZpbGxSZWN0U291cmNlT3Zlcihjb250ZXh0
LCByZWN0LCBmaWxsQ29sb3IoKSk7CiAKLSAgICBpZiAocGVuKCkuc3R5bGUoKSAhPSBQZW46Ok5v
UGVuKSB7Ci0gICAgICAgIHNldENvbG9yKGNvbnRleHQsIHBlbigpLmNvbG9yKCkpOworICAgIGlm
IChzdHJva2VTdHlsZSgpICE9IE5vU3Ryb2tlKSB7CisgICAgICAgIHNldENvbG9yKGNvbnRleHQs
IHN0cm9rZUNvbG9yKCkpOwogICAgICAgICBGbG9hdFJlY3QgcihyZWN0KTsKICAgICAgICAgci5p
bmZsYXRlKC0uNWYpOwogICAgICAgICBjYWlyb19yZWN0YW5nbGUoY29udGV4dCwgci54KCksIHIu
eSgpLCByLndpZHRoKCksIHIuaGVpZ2h0KCkpOwpAQCAtMTM5LDEzICsxMzksMTMgQEAgdm9pZCBH
cmFwaGljc0NvbnRleHQ6OmRyYXdSZWN0KGNvbnN0IEludAogfQogCiAvLyBGSVhNRTogTm93IHRo
YXQgdGhpcyBpcyByZWZhY3RvcmVkLCBpdCBzaG91bGQgYmUgc2hhcmVkIGJ5IGFsbCBjb250ZXh0
cy4KLXN0YXRpYyB2b2lkIGFkanVzdExpbmVUb1BpeGVsQm91bmRhcmllcyhGbG9hdFBvaW50JiBw
MSwgRmxvYXRQb2ludCYgcDIsIGZsb2F0IHN0cm9rZVdpZHRoLCBjb25zdCBQZW46OlBlblN0eWxl
JiBwZW5TdHlsZSkKK3N0YXRpYyB2b2lkIGFkanVzdExpbmVUb1BpeGVsQm91bmRhcmllcyhGbG9h
dFBvaW50JiBwMSwgRmxvYXRQb2ludCYgcDIsIGZsb2F0IHN0cm9rZVdpZHRoLCBTdHJva2VTdHls
ZSBzdHlsZSkKIHsKICAgICAvLyBGb3Igb2RkIHdpZHRocywgd2UgYWRkIGluIDAuNSB0byB0aGUg
YXBwcm9wcmlhdGUgeC95IHNvIHRoYXQgdGhlIGZsb2F0IGFyaXRobWV0aWMKICAgICAvLyB3b3Jr
cyBvdXQuICBGb3IgZXhhbXBsZSwgd2l0aCBhIGJvcmRlciB3aWR0aCBvZiAzLCBLSFRNTCB3aWxs
IHBhc3MgdXMgKHkxK3kyKS8yLCBlLmcuLAogICAgIC8vICg1MCs1MykvMiA9IDEwMy8yID0gNTEg
d2hlbiB3ZSB3YW50IDUxLjUuICBJdCBpcyBhbHdheXMgdHJ1ZSB0aGF0IGFuIGV2ZW4gd2lkdGgg
Z2F2ZQogICAgIC8vIHVzIGEgcGVyZmVjdCBwb3NpdGlvbiwgYnV0IGFuIG9kZCB3aWR0aCBnYXZl
IHVzIGEgcG9zaXRpb24gdGhhdCBpcyBvZmYgYnkgZXhhY3RseSAwLjUuCi0gICAgaWYgKHBlblN0
eWxlID09IFBlbjo6RG90TGluZSB8fCBwZW5TdHlsZSA9PSBQZW46OkRhc2hMaW5lKSB7CisgICAg
aWYgKHN0eWxlID09IERvdHRlZFN0cm9rZSB8fCBzdHlsZSA9PSBEYXNoZWRTdHJva2UpIHsKICAg
ICAgICAgaWYgKHAxLngoKSA9PSBwMi54KCkpIHsKICAgICAgICAgICAgIHAxLnNldFkocDEueSgp
ICsgc3Ryb2tlV2lkdGgpOwogICAgICAgICAgICAgcDIuc2V0WShwMi55KCkgLSBzdHJva2VXaWR0
aCk7CkBAIC0xNzksMTAgKzE3OSwxMCBAQCB2b2lkIEdyYXBoaWNzQ29udGV4dDo6ZHJhd0xpbmUo
Y29uc3QgSW50CiAgICAgY2Fpcm9fdCogY29udGV4dCA9IG1fZGF0YS0+Y29udGV4dDsKICAgICBj
YWlyb19zYXZlKGNvbnRleHQpOwogCi0gICAgUGVuOjpQZW5TdHlsZSBwZW5TdHlsZSA9IHBlbigp
LnN0eWxlKCk7Ci0gICAgaWYgKHBlblN0eWxlID09IFBlbjo6Tm9QZW4pCisgICAgU3Ryb2tlU3R5
bGUgc3R5bGUgPSBzdHJva2VTdHlsZSgpOworICAgIGlmIChzdHlsZSA9PSBOb1N0cm9rZSkKICAg
ICAgICAgcmV0dXJuOwotICAgIGZsb2F0IHdpZHRoID0gcGVuKCkud2lkdGgoKTsKKyAgICBmbG9h
dCB3aWR0aCA9IHN0cm9rZVRoaWNrbmVzcygpOwogICAgIGlmICh3aWR0aCA8IDEpCiAgICAgICAg
IHdpZHRoID0gMTsKIApAQCAtMTkwLDIzICsxOTAsMjMgQEAgdm9pZCBHcmFwaGljc0NvbnRleHQ6
OmRyYXdMaW5lKGNvbnN0IEludAogICAgIEZsb2F0UG9pbnQgcDIgPSBwb2ludDI7CiAgICAgYm9v
bCBpc1ZlcnRpY2FsTGluZSA9IChwMS54KCkgPT0gcDIueCgpKTsKICAgICAKLSAgICBhZGp1c3RM
aW5lVG9QaXhlbEJvdW5kYXJpZXMocDEsIHAyLCB3aWR0aCwgcGVuU3R5bGUpOworICAgIGFkanVz
dExpbmVUb1BpeGVsQm91bmRhcmllcyhwMSwgcDIsIHdpZHRoLCBzdHlsZSk7CiAgICAgY2Fpcm9f
c2V0X2xpbmVfd2lkdGgoY29udGV4dCwgd2lkdGgpOwogCiAgICAgaW50IHBhdFdpZHRoID0gMDsK
LSAgICBzd2l0Y2ggKHBlblN0eWxlKSB7Ci0gICAgY2FzZSBQZW46Ok5vUGVuOgotICAgIGNhc2Ug
UGVuOjpTb2xpZExpbmU6CisgICAgc3dpdGNoIChzdHlsZSkgeworICAgIGNhc2UgTm9TdHJva2U6
CisgICAgY2FzZSBTb2xpZFN0cm9rZToKICAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBQZW46OkRv
dExpbmU6CisgICAgY2FzZSBEb3R0ZWRTdHJva2U6CiAgICAgICAgIHBhdFdpZHRoID0gKGludCl3
aWR0aDsKICAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBQZW46OkRhc2hMaW5lOgorICAgIGNhc2Ug
RGFzaGVkU3Ryb2tlOgogICAgICAgICBwYXRXaWR0aCA9IDMqKGludCl3aWR0aDsKICAgICAgICAg
YnJlYWs7CiAgICAgfQogCi0gICAgc2V0Q29sb3IoY29udGV4dCwgcGVuKCkuY29sb3IoKSk7Cisg
ICAgc2V0Q29sb3IoY29udGV4dCwgc3Ryb2tlQ29sb3IoKSk7CiAgICAgCiAgICAgY2Fpcm9fc2V0
X2FudGlhbGlhcyhjb250ZXh0LCBDQUlST19BTlRJQUxJQVNfTk9ORSk7CiAgICAgCkBAIC0yMTQs
MTEgKzIxNCwxMSBAQCB2b2lkIEdyYXBoaWNzQ29udGV4dDo6ZHJhd0xpbmUoY29uc3QgSW50CiAg
ICAgICAgIC8vIERvIGEgcmVjdCBmaWxsIG9mIG91ciBlbmRwb2ludHMuICBUaGlzIGVuc3VyZXMg
d2UgYWx3YXlzIGhhdmUgdGhlCiAgICAgICAgIC8vIGFwcGVhcmFuY2Ugb2YgYmVpbmcgYSBib3Jk
ZXIuICBXZSB0aGVuIGRyYXcgdGhlIGFjdHVhbCBkb3R0ZWQvZGFzaGVkIGxpbmUuCiAgICAgICAg
IGlmIChpc1ZlcnRpY2FsTGluZSkgewotICAgICAgICAgICAgZmlsbFJlY3RTb3VyY2VPdmVyKGNv
bnRleHQsIEZsb2F0UmVjdChwMS54KCktd2lkdGgvMiwgcDEueSgpLXdpZHRoLCB3aWR0aCwgd2lk
dGgpLCBwZW4oKS5jb2xvcigpKTsKLSAgICAgICAgICAgIGZpbGxSZWN0U291cmNlT3Zlcihjb250
ZXh0LCBGbG9hdFJlY3QocDIueCgpLXdpZHRoLzIsIHAyLnkoKSwgd2lkdGgsIHdpZHRoKSwgcGVu
KCkuY29sb3IoKSk7CisgICAgICAgICAgICBmaWxsUmVjdFNvdXJjZU92ZXIoY29udGV4dCwgRmxv
YXRSZWN0KHAxLngoKS13aWR0aC8yLCBwMS55KCktd2lkdGgsIHdpZHRoLCB3aWR0aCksIGZpbGxD
b2xvcigpKTsKKyAgICAgICAgICAgIGZpbGxSZWN0U291cmNlT3Zlcihjb250ZXh0LCBGbG9hdFJl
Y3QocDIueCgpLXdpZHRoLzIsIHAyLnkoKSwgd2lkdGgsIHdpZHRoKSwgZmlsbENvbG9yKCkpOwog
ICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgZmlsbFJlY3RTb3VyY2VPdmVyKGNvbnRleHQs
IEZsb2F0UmVjdChwMS54KCktd2lkdGgsIHAxLnkoKS13aWR0aC8yLCB3aWR0aCwgd2lkdGgpLCBw
ZW4oKS5jb2xvcigpKTsKLSAgICAgICAgICAgIGZpbGxSZWN0U291cmNlT3Zlcihjb250ZXh0LCBG
bG9hdFJlY3QocDIueCgpLCBwMi55KCktd2lkdGgvMiwgd2lkdGgsIHdpZHRoKSwgcGVuKCkuY29s
b3IoKSk7CisgICAgICAgICAgICBmaWxsUmVjdFNvdXJjZU92ZXIoY29udGV4dCwgRmxvYXRSZWN0
KHAxLngoKS13aWR0aCwgcDEueSgpLXdpZHRoLzIsIHdpZHRoLCB3aWR0aCksIGZpbGxDb2xvcigp
KTsKKyAgICAgICAgICAgIGZpbGxSZWN0U291cmNlT3Zlcihjb250ZXh0LCBGbG9hdFJlY3QocDIu
eCgpLCBwMi55KCktd2lkdGgvMiwgd2lkdGgsIHdpZHRoKSwgZmlsbENvbG9yKCkpOwogICAgICAg
ICB9CiAgICAgICAgIAogICAgICAgICAvLyBFeGFtcGxlOiA4MCBwaXhlbHMgd2l0aCBhIHdpZHRo
IG9mIDMwIHBpeGVscy4KQEAgLTI4MSwxOCArMjgxLDE1IEBAIHZvaWQgR3JhcGhpY3NDb250ZXh0
OjpkcmF3RWxsaXBzZShjb25zdCAKICAgICAgICAgc2V0Q29sb3IoY29udGV4dCwgZmlsbENvbG9y
KCkpOwogICAgICAgICBjYWlyb19maWxsKGNvbnRleHQpOwogICAgIH0KLSAgICBpZiAocGVuKCku
c3R5bGUoKSAhPSBQZW46Ok5vUGVuKSB7Ci0gICAgICAgIHNldENvbG9yKGNvbnRleHQsIHBlbigp
LmNvbG9yKCkpOwotICAgICAgICB1bnNpZ25lZCBwZW5XaWR0aCA9IHBlbigpLndpZHRoKCk7Ci0g
ICAgICAgIGlmIChwZW5XaWR0aCA9PSAwKSAKLSAgICAgICAgICAgIHBlbldpZHRoKys7Ci0gICAg
ICAgIGNhaXJvX3NldF9saW5lX3dpZHRoKGNvbnRleHQsIHBlbldpZHRoKTsKKyAgICBpZiAoc3Ry
b2tlU3R5bGUoKSAhPSBOb1N0cm9rZSkgeworICAgICAgICBzZXRDb2xvcihjb250ZXh0LCBzdHJv
a2VDb2xvcigpKTsKKyAgICAgICAgY2Fpcm9fc2V0X2xpbmVfd2lkdGgoY29udGV4dCwgc3Ryb2tl
VGhpY2tuZXNzKCkpOwogICAgICAgICBjYWlyb19zdHJva2UoY29udGV4dCk7CiAgICAgfQogfQog
CiAvLyBGSVhNRTogVGhpcyBmdW5jdGlvbiBuZWVkcyB0byBiZSBhZGp1c3RlZCB0byBtYXRjaCB0
aGUgZnVuY3Rpb25hbGl0eSBvbiB0aGUgTWFjIHNpZGUuCi12b2lkIEdyYXBoaWNzQ29udGV4dDo6
ZHJhd0FyYyhjb25zdCBJbnRSZWN0JiByZWN0LCBmbG9hdCB0aGlja25lc3MsIGludCBzdGFydEFu
Z2xlLCBpbnQgYW5nbGVTcGFuKQordm9pZCBHcmFwaGljc0NvbnRleHQ6OnN0cm9rZUFyYyhjb25z
dCBJbnRSZWN0JiByZWN0LCBpbnQgc3RhcnRBbmdsZSwgaW50IGFuZ2xlU3BhbikKIHsKICAgICBp
ZiAocGFpbnRpbmdEaXNhYmxlZCgpKQogICAgICAgICByZXR1cm47CkBAIC0zMDUsMTQgKzMwMiwx
NCBAQCB2b2lkIEdyYXBoaWNzQ29udGV4dDo6ZHJhd0FyYyhjb25zdCBJbnRSCiAgICAgZmxvYXQg
cmV2ZXJzZVNjYWxlRmFjdG9yID0gdyAvIGg7CiAgICAgCiAgICAgY2Fpcm9fdCogY29udGV4dCA9
IG1fZGF0YS0+Y29udGV4dDsKLSAgICBpZiAocGVuKCkuc3R5bGUoKSAhPSBQZW46Ok5vUGVuKSB7
ICAgICAgICAKKyAgICBpZiAoc3Ryb2tlU3R5bGUoKSAhPSBOb1N0cm9rZSkgeyAgICAgICAgCiAg
ICAgICAgIGZsb2F0IHIgPSB3IC8gMjsKICAgICAgICAgZmxvYXQgZmEgPSBzdGFydEFuZ2xlOwog
ICAgICAgICBmbG9hdCBmYWxlbiA9ICBmYSArIGFuZ2xlU3BhbjsKICAgICAgICAgY2Fpcm9fYXJj
KGNvbnRleHQsIHggKyByLCB5ICsgciwgciwgLWZhICogTV9QSS8xODAsIC1mYWxlbiAqIE1fUEkv
MTgwKTsKICAgICAgICAgCi0gICAgICAgIHNldENvbG9yKGNvbnRleHQsIHBlbigpLmNvbG9yKCkp
OwotICAgICAgICBjYWlyb19zZXRfbGluZV93aWR0aChjb250ZXh0LCBwZW4oKS53aWR0aCgpKTsK
KyAgICAgICAgc2V0Q29sb3IoY29udGV4dCwgc3Ryb2tlQ29sb3IoKSk7CisgICAgICAgIGNhaXJv
X3NldF9saW5lX3dpZHRoKGNvbnRleHQsIHN0cm9rZVRoaWNrbmVzcygpKTsKICAgICAgICAgY2Fp
cm9fc3Ryb2tlKGNvbnRleHQpOwogICAgIH0KIH0KQEAgLTM0MCw5ICszMzcsOSBAQCB2b2lkIEdy
YXBoaWNzQ29udGV4dDo6ZHJhd0NvbnZleFBvbHlnb24oCiAgICAgICAgIGNhaXJvX2ZpbGwoY29u
dGV4dCk7CiAgICAgfQogCi0gICAgaWYgKHBlbigpLnN0eWxlKCkgIT0gUGVuOjpOb1Blbikgewot
ICAgICAgICBzZXRDb2xvcihjb250ZXh0LCBwZW4oKS5jb2xvcigpKTsKLSAgICAgICAgY2Fpcm9f
c2V0X2xpbmVfd2lkdGgoY29udGV4dCwgcGVuKCkud2lkdGgoKSk7CisgICAgaWYgKHN0cm9rZVN0
eWxlKCkgIT0gTm9TdHJva2UpIHsKKyAgICAgICAgc2V0Q29sb3IoY29udGV4dCwgc3Ryb2tlQ29s
b3IoKSk7CisgICAgICAgIGNhaXJvX3NldF9saW5lX3dpZHRoKGNvbnRleHQsIHN0cm9rZVRoaWNr
bmVzcygpKTsKICAgICAgICAgY2Fpcm9fc3Ryb2tlKGNvbnRleHQpOwogICAgIH0KICAgICBjYWly
b19yZXN0b3JlKGNvbnRleHQpOwpJbmRleDogV2ViQ29yZS9wbGF0Zm9ybS93aW4vRm9udFdpbi5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wbGF0Zm9ybS93aW4vRm9udFdpbi5jcHAJKHJldmlz
aW9uIDE4MzY4KQorKysgV2ViQ29yZS9wbGF0Zm9ybS93aW4vRm9udFdpbi5jcHAJKHdvcmtpbmcg
Y29weSkKQEAgLTQ4LDggKzQ4LDggQEAgdm9pZCBGb250OjpkcmF3R2x5cGhzKEdyYXBoaWNzQ29u
dGV4dCogZwogCiAgICAgLy8gU2V0IHRoZSB0ZXh0IGNvbG9yIHRvIHVzZSBmb3IgZHJhd2luZy4K
ICAgICBmbG9hdCByZWQsIGdyZWVuLCBibHVlLCBhbHBoYTsKLSAgICBDb2xvciBwZW5Db2xvciA9
IGdyYXBoaWNzQ29udGV4dC0+cGVuKCkuY29sb3IoKTsKLSAgICBwZW5Db2xvci5nZXRSR0JBKHJl
ZCwgZ3JlZW4sIGJsdWUsIGFscGhhKTsKKyAgICBDb2xvciBjb2xvciA9IGdyYXBoaWNzQ29udGV4
dC0+c3Ryb2tlQ29sb3IoKTsKKyAgICBjb2xvci5nZXRSR0JBKHJlZCwgZ3JlZW4sIGJsdWUsIGFs
cGhhKTsKICAgICBjYWlyb19zZXRfc291cmNlX3JnYmEoY29udGV4dCwgcmVkLCBncmVlbiwgYmx1
ZSwgYWxwaGEpOwogICAgIAogICAgIGNhaXJvX3N1cmZhY2VfdCogc3VyZmFjZSA9IGNhaXJvX2dl
dF90YXJnZXQoY29udGV4dCk7CkluZGV4OiBXZWJDb3JlL3BsYXRmb3JtL3dpbi9UZW1wb3JhcnlM
aW5rU3R1YnMuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0vd2luL1RlbXBvcmFy
eUxpbmtTdHVicy5jcHAJKHJldmlzaW9uIDE4MzY4KQorKysgV2ViQ29yZS9wbGF0Zm9ybS93aW4v
VGVtcG9yYXJ5TGlua1N0dWJzLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNzYsOCArNzYsOCBAQAog
I2luY2x1ZGUgIlJlbmRlclRoZW1lV2luLmgiCiAjaW5jbHVkZSAiU2NyZWVuLmgiCiAjaW5jbHVk
ZSAiU2Nyb2xsQmFyLmgiCisjaW5jbHVkZSAiU2VhcmNoUG9wdXBNZW51LmgiCiAjaW5jbHVkZSAi
VGV4dEJvdW5kYXJpZXMuaCIKLSNpbmNsdWRlICJUZXh0RmllbGQuaCIKICNpbmNsdWRlICJXaWRn
ZXQuaCIKIAogI2RlZmluZSBub3RJbXBsZW1lbnRlZCgpIGRvIHsgXApAQCAtMTI1LDI2ICsxMjUs
MjkgQEAgdm9pZCBDYWNoZWRSZXNvdXJjZTo6c2V0QWxsRGF0YShQbGF0Zm9ybQogCiBDb250ZXh0
TWVudTo6Q29udGV4dE1lbnUoY29uc3QgSGl0VGVzdFJlc3VsdCYgcmVzdWx0KSA6IG1faGl0VGVz
dFJlc3VsdChyZXN1bHQpIHsgbm90SW1wbGVtZW50ZWQoKTsgfQogQ29udGV4dE1lbnU6On5Db250
ZXh0TWVudSgpIHsgbm90SW1wbGVtZW50ZWQoKTsgfQotdm9pZCBDb250ZXh0TWVudTo6YXBwZW5k
SXRlbShjb25zdCBDb250ZXh0TWVudUl0ZW0mIGl0ZW0pIHsgbm90SW1wbGVtZW50ZWQoKTsgfQog
dm9pZCBDb250ZXh0TWVudTo6c2hvdygpIHsgbm90SW1wbGVtZW50ZWQoKTsgfQordm9pZCBDb250
ZXh0TWVudTo6YXBwZW5kSXRlbShDb250ZXh0TWVudUl0ZW0mKSB7IG5vdEltcGxlbWVudGVkKCk7
IH0KIAotQ29udGV4dE1lbnVJdGVtOjpDb250ZXh0TWVudUl0ZW0oUGxhdGZvcm1NZW51SXRlbURl
c2NyaXB0aW9uLCBDb250ZXh0TWVudSopIHsgbm90SW1wbGVtZW50ZWQoKTsgfQotQ29udGV4dE1l
bnVJdGVtOjpDb250ZXh0TWVudUl0ZW0oQ29udGV4dE1lbnUqIHBhcmVudE1lbnUsIENvbnRleHRN
ZW51KiBzdWJNZW51KSB7IG5vdEltcGxlbWVudGVkKCk7IH0KLUNvbnRleHRNZW51SXRlbTo6Q29u
dGV4dE1lbnVJdGVtKENvbnRleHRNZW51SXRlbVR5cGUgdHlwZSwgQ29udGV4dE1lbnVBY3Rpb24g
YWN0aW9uLCBjb25zdCBTdHJpbmcmIHRpdGxlLCBDb250ZXh0TWVudSogcGFyZW50TWVudSwgQ29u
dGV4dE1lbnUqIHN1Yk1lbnUpIHsgbm90SW1wbGVtZW50ZWQoKTsgfQorQ29udGV4dE1lbnVJdGVt
OjpDb250ZXh0TWVudUl0ZW0oUGxhdGZvcm1NZW51SXRlbURlc2NyaXB0aW9uKSB7IG5vdEltcGxl
bWVudGVkKCk7IH0KK0NvbnRleHRNZW51SXRlbTo6Q29udGV4dE1lbnVJdGVtKENvbnRleHRNZW51
KikgeyBub3RJbXBsZW1lbnRlZCgpOyB9CitDb250ZXh0TWVudUl0ZW06OkNvbnRleHRNZW51SXRl
bShDb250ZXh0TWVudUl0ZW1UeXBlIHR5cGUsIENvbnRleHRNZW51QWN0aW9uIGFjdGlvbiwgY29u
c3QgU3RyaW5nJiB0aXRsZSwgQ29udGV4dE1lbnUqIHN1Yk1lbnUpIHsgbm90SW1wbGVtZW50ZWQo
KTsgfQogQ29udGV4dE1lbnVJdGVtOjp+Q29udGV4dE1lbnVJdGVtKCkgeyBub3RJbXBsZW1lbnRl
ZCgpOyB9Ci1QbGF0Zm9ybU1lbnVJdGVtRGVzY3JpcHRpb24gQ29udGV4dE1lbnVJdGVtOjpwbGF0
Zm9ybURlc2NyaXB0aW9uKCkgY29uc3QgeyBub3RJbXBsZW1lbnRlZCgpOyByZXR1cm4gbV9wbGF0
Zm9ybURlc2NyaXB0aW9uOyB9CitQbGF0Zm9ybU1lbnVJdGVtRGVzY3JpcHRpb24gQ29udGV4dE1l
bnVJdGVtOjpyZWxlYXNlUGxhdGZvcm1EZXNjcmlwdGlvbigpIHsgbm90SW1wbGVtZW50ZWQoKTsg
cmV0dXJuIG1fcGxhdGZvcm1EZXNjcmlwdGlvbjsgfQorQ29udGV4dE1lbnVJdGVtVHlwZSBDb250
ZXh0TWVudUl0ZW06OnR5cGUoKSBjb25zdCB7IG5vdEltcGxlbWVudGVkKCk7IHJldHVybiBBY3Rp
b25UeXBlOyB9Cit2b2lkIENvbnRleHRNZW51SXRlbTo6c2V0VHlwZShDb250ZXh0TWVudUl0ZW1U
eXBlKSB7IG5vdEltcGxlbWVudGVkKCk7IH0KIENvbnRleHRNZW51QWN0aW9uIENvbnRleHRNZW51
SXRlbTo6YWN0aW9uKCkgY29uc3QgeyBub3RJbXBsZW1lbnRlZCgpOyByZXR1cm4gQ29udGV4dE1l
bnVJdGVtVGFnTm9BY3Rpb247IH0KLXZvaWQgQ29udGV4dE1lbnVJdGVtOjpzZXRBY3Rpb24oQ29u
dGV4dE1lbnVBY3Rpb24gYWN0aW9uKSB7IG5vdEltcGxlbWVudGVkKCk7IH0KK3ZvaWQgQ29udGV4
dE1lbnVJdGVtOjpzZXRBY3Rpb24oQ29udGV4dE1lbnVBY3Rpb24pIHsgbm90SW1wbGVtZW50ZWQo
KTsgfQogU3RyaW5nIENvbnRleHRNZW51SXRlbTo6dGl0bGUoKSBjb25zdCB7IG5vdEltcGxlbWVu
dGVkKCk7IHJldHVybiBTdHJpbmcoKTsgfQotdm9pZCBDb250ZXh0TWVudUl0ZW06OnNldFRpdGxl
KFN0cmluZyB0aXRsZSkgeyBub3RJbXBsZW1lbnRlZCgpOyB9Cit2b2lkIENvbnRleHRNZW51SXRl
bTo6c2V0VGl0bGUoY29uc3QgU3RyaW5nJikgeyBub3RJbXBsZW1lbnRlZCgpOyB9CiBQbGF0Zm9y
bU1lbnVEZXNjcmlwdGlvbiBDb250ZXh0TWVudUl0ZW06OnBsYXRmb3JtU3ViTWVudSgpIGNvbnN0
IHsgbm90SW1wbGVtZW50ZWQoKTsgcmV0dXJuIDA7IH0KLXZvaWQgQ29udGV4dE1lbnVJdGVtOjpz
ZXRTdWJNZW51KENvbnRleHRNZW51KiBzdWJNZW51KSB7IG5vdEltcGxlbWVudGVkKCk7IH0KK3Zv
aWQgQ29udGV4dE1lbnVJdGVtOjpzZXRTdWJNZW51KENvbnRleHRNZW51KikgeyBub3RJbXBsZW1l
bnRlZCgpOyB9Cit2b2lkIENvbnRleHRNZW51SXRlbTo6c2V0Q2hlY2tlZChib29sKSB7IG5vdElt
cGxlbWVudGVkKCk7IH0KK3ZvaWQgQ29udGV4dE1lbnVJdGVtOjpzZXRFbmFibGVkKGJvb2wpIHsg
bm90SW1wbGVtZW50ZWQoKTsgfQogCiB2b2lkIERvY3VtZW50TG9hZGVyOjpzZXRGcmFtZShGcmFt
ZSopIHsgbm90SW1wbGVtZW50ZWQoKTsgfQogRnJhbWVMb2FkZXIqIERvY3VtZW50TG9hZGVyOjpm
cmFtZUxvYWRlcigpIGNvbnN0IHsgbm90SW1wbGVtZW50ZWQoKTsgcmV0dXJuIG1fZnJhbWUtPmxv
YWRlcigpOyB9CiBzdGF0aWMgS1VSTCBlbXB0eUtVUkxGb3JEb2N1bWVudExvYWRlcjsKIGNvbnN0
IEtVUkwmIERvY3VtZW50TG9hZGVyOjpVUkwoKSBjb25zdCB7IG5vdEltcGxlbWVudGVkKCk7IHJl
dHVybiBlbXB0eUtVUkxGb3JEb2N1bWVudExvYWRlcjsgfQotYm9vbCBEb2N1bWVudExvYWRlcjo6
aXNTdG9wcGluZygpIGNvbnN0IHsgbm90SW1wbGVtZW50ZWQoKTsgcmV0dXJuIGZhbHNlOyB9CiB2
b2lkIERvY3VtZW50TG9hZGVyOjpzdG9wTG9hZGluZygpIHsgbm90SW1wbGVtZW50ZWQoKTsgfQog
dm9pZCBEb2N1bWVudExvYWRlcjo6c2V0TG9hZGluZyhib29sKSB7IG5vdEltcGxlbWVudGVkKCk7
IH0KIHZvaWQgRG9jdW1lbnRMb2FkZXI6OnVwZGF0ZUxvYWRpbmcoKSB7IG5vdEltcGxlbWVudGVk
KCk7IH0KQEAgLTIzNCw3ICsyMzcsNiBAQCB2b2lkIEdyYXBoaWNzQ29udGV4dDo6YmVnaW5UcmFu
c3BhcmVuY3lMCiB2b2lkIEdyYXBoaWNzQ29udGV4dDo6ZW5kVHJhbnNwYXJlbmN5TGF5ZXIoKSB7
IG5vdEltcGxlbWVudGVkKCk7IH0KIHZvaWQgR3JhcGhpY3NDb250ZXh0OjpjbGVhclJlY3QoY29u
c3QgRmxvYXRSZWN0JikgeyBub3RJbXBsZW1lbnRlZCgpOyB9CiB2b2lkIEdyYXBoaWNzQ29udGV4
dDo6c3Ryb2tlUmVjdChjb25zdCBGbG9hdFJlY3QmLCBmbG9hdCkgeyBub3RJbXBsZW1lbnRlZCgp
OyB9Ci12b2lkIEdyYXBoaWNzQ29udGV4dDo6c2V0TGluZVdpZHRoKGZsb2F0KSB7IG5vdEltcGxl
bWVudGVkKCk7IH0KIHZvaWQgR3JhcGhpY3NDb250ZXh0OjpzZXRMaW5lQ2FwKExpbmVDYXApIHsg
bm90SW1wbGVtZW50ZWQoKTsgfQogdm9pZCBHcmFwaGljc0NvbnRleHQ6OnNldExpbmVKb2luKExp
bmVKb2luKSB7IG5vdEltcGxlbWVudGVkKCk7IH0KIHZvaWQgR3JhcGhpY3NDb250ZXh0OjpzZXRN
aXRlckxpbWl0KGZsb2F0KSB7IG5vdEltcGxlbWVudGVkKCk7IH0KQEAgLTM0MSwzNSArMzQzLDkg
QEAgdm9pZCBTY3JvbGxWaWV3OjpzZXRGcmFtZUdlb21ldHJ5KGNvbnN0IAogSW50UmVjdCBTY3Jv
bGxWaWV3Ojp3aW5kb3dSZXNpemVyUmVjdCgpIHsgbm90SW1wbGVtZW50ZWQoKTsgcmV0dXJuIElu
dFJlY3QoKTsgfQogYm9vbCBTY3JvbGxWaWV3OjpyZXNpemVyT3ZlcmxhcHNDb250ZW50KCkgY29u
c3QgeyBub3RJbXBsZW1lbnRlZCgpOyByZXR1cm4gZmFsc2U7IH0KIAotdm9pZCBUZXh0RmllbGQ6
OnNlbGVjdEFsbCgpIHsgbm90SW1wbGVtZW50ZWQoKTsgfQotdm9pZCBUZXh0RmllbGQ6OmFkZFNl
YXJjaFJlc3VsdCgpIHsgbm90SW1wbGVtZW50ZWQoKTsgfQotaW50IFRleHRGaWVsZDo6c2VsZWN0
aW9uU3RhcnQoKSBjb25zdCB7IG5vdEltcGxlbWVudGVkKCk7IHJldHVybiAwOyB9Ci1ib29sIFRl
eHRGaWVsZDo6aGFzU2VsZWN0ZWRUZXh0KCkgY29uc3QgeyBub3RJbXBsZW1lbnRlZCgpOyByZXR1
cm4gMDsgfQotU3RyaW5nIFRleHRGaWVsZDo6c2VsZWN0ZWRUZXh0KCkgY29uc3QgeyBub3RJbXBs
ZW1lbnRlZCgpOyByZXR1cm4gU3RyaW5nKCk7IH0KLXZvaWQgVGV4dEZpZWxkOjpzZXRBdXRvU2F2
ZU5hbWUoU3RyaW5nIGNvbnN0JikgeyBub3RJbXBsZW1lbnRlZCgpOyB9Ci1ib29sIFRleHRGaWVs
ZDo6Y2hlY2tzRGVzY2VuZGFudHNGb3JGb2N1cygpIGNvbnN0IHsgbm90SW1wbGVtZW50ZWQoKTsg
cmV0dXJuIGZhbHNlOyB9Ci12b2lkIFRleHRGaWVsZDo6c2V0U2VsZWN0aW9uKGludCxpbnQpIHsg
bm90SW1wbGVtZW50ZWQoKTsgfQotdm9pZCBUZXh0RmllbGQ6OnNldE1heFJlc3VsdHMoaW50KSB7
IG5vdEltcGxlbWVudGVkKCk7IH0KLWJvb2wgVGV4dEZpZWxkOjplZGl0ZWQoKSBjb25zdCB7IG5v
dEltcGxlbWVudGVkKCk7IHJldHVybiAwOyB9Ci1XaWRnZXQ6OkZvY3VzUG9saWN5IFRleHRGaWVs
ZDo6Zm9jdXNQb2xpY3koKSBjb25zdCB7IG5vdEltcGxlbWVudGVkKCk7IHJldHVybiBOb0ZvY3Vz
OyB9Ci1UZXh0RmllbGQ6OlRleHRGaWVsZCgpIHsgbm90SW1wbGVtZW50ZWQoKTsgfQotVGV4dEZp
ZWxkOjp+VGV4dEZpZWxkKCkgeyBub3RJbXBsZW1lbnRlZCgpOyB9Ci12b2lkIFRleHRGaWVsZDo6
c2V0Rm9udChXZWJDb3JlOjpGb250IGNvbnN0JikgeyBub3RJbXBsZW1lbnRlZCgpOyB9Ci12b2lk
IFRleHRGaWVsZDo6c2V0QWxpZ25tZW50KEhvcml6b250YWxBbGlnbm1lbnQpIHsgbm90SW1wbGVt
ZW50ZWQoKTsgfQotdm9pZCBUZXh0RmllbGQ6OnNldFdyaXRpbmdEaXJlY3Rpb24oVGV4dERpcmVj
dGlvbikgeyBub3RJbXBsZW1lbnRlZCgpOyB9Ci1pbnQgVGV4dEZpZWxkOjptYXhMZW5ndGgoKSBj
b25zdCB7IG5vdEltcGxlbWVudGVkKCk7IHJldHVybiAwOyB9Ci12b2lkIFRleHRGaWVsZDo6c2V0
TWF4TGVuZ3RoKGludCkgeyBub3RJbXBsZW1lbnRlZCgpOyB9Ci1TdHJpbmcgVGV4dEZpZWxkOjp0
ZXh0KCkgY29uc3QgeyBub3RJbXBsZW1lbnRlZCgpOyByZXR1cm4gU3RyaW5nKCk7IH0KLXZvaWQg
VGV4dEZpZWxkOjpzZXRUZXh0KFN0cmluZyBjb25zdCYpIHsgbm90SW1wbGVtZW50ZWQoKTsgfQot
aW50IFRleHRGaWVsZDo6Y3Vyc29yUG9zaXRpb24oKSBjb25zdCB7IG5vdEltcGxlbWVudGVkKCk7
IHJldHVybiAwOyB9Ci12b2lkIFRleHRGaWVsZDo6c2V0Q3Vyc29yUG9zaXRpb24oaW50KSB7IG5v
dEltcGxlbWVudGVkKCk7IH0KLXZvaWQgVGV4dEZpZWxkOjpzZXRFZGl0ZWQoYm9vbCkgeyBub3RJ
bXBsZW1lbnRlZCgpOyB9Ci12b2lkIFRleHRGaWVsZDo6c2V0UmVhZE9ubHkoYm9vbCkgeyBub3RJ
bXBsZW1lbnRlZCgpOyB9Ci12b2lkIFRleHRGaWVsZDo6c2V0UGxhY2Vob2xkZXJTdHJpbmcoU3Ry
aW5nIGNvbnN0JikgeyBub3RJbXBsZW1lbnRlZCgpOyB9Ci12b2lkIFRleHRGaWVsZDo6c2V0Q29s
b3JzKENvbG9yIGNvbnN0JixDb2xvciBjb25zdCYpIHsgbm90SW1wbGVtZW50ZWQoKTsgfQotSW50
U2l6ZSBUZXh0RmllbGQ6OnNpemVGb3JDaGFyYWN0ZXJXaWR0aChpbnQpIGNvbnN0IHsgbm90SW1w
bGVtZW50ZWQoKTsgcmV0dXJuIEludFNpemUoKTsgfQotaW50IFRleHRGaWVsZDo6YmFzZWxpbmVQ
b3NpdGlvbihpbnQpIGNvbnN0IHsgbm90SW1wbGVtZW50ZWQoKTsgcmV0dXJuIDA7IH0KLXZvaWQg
VGV4dEZpZWxkOjpzZXRMaXZlU2VhcmNoKGJvb2wpIHsgbm90SW1wbGVtZW50ZWQoKTsgfQordm9p
ZCBTZWFyY2hQb3B1cE1lbnU6OnNhdmVSZWNlbnRTZWFyY2hlcyhjb25zdCBBdG9taWNTdHJpbmcm
IG5hbWUsIGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBzZWFyY2hJdGVtcykgeyBub3RJbXBsZW1lbnRl
ZCgpOyB9Cit2b2lkIFNlYXJjaFBvcHVwTWVudTo6bG9hZFJlY2VudFNlYXJjaGVzKGNvbnN0IEF0
b21pY1N0cmluZyYgbmFtZSwgVmVjdG9yPFN0cmluZz4mIHNlYXJjaEl0ZW1zKSB7IG5vdEltcGxl
bWVudGVkKCk7IH0KK1NlYXJjaFBvcHVwTWVudTo6U2VhcmNoUG9wdXBNZW51KFBvcHVwTWVudUNs
aWVudCogY2xpZW50KSA6IFBvcHVwTWVudShjbGllbnQpIHsgbm90SW1wbGVtZW50ZWQoKTsgfQog
CiB2b2lkIFdpZGdldDo6ZW5hYmxlRmx1c2hEcmF3aW5nKCkgeyBub3RJbXBsZW1lbnRlZCgpOyB9
CiBib29sIFdpZGdldDo6aXNFbmFibGVkKCkgY29uc3QgeyBub3RJbXBsZW1lbnRlZCgpOyByZXR1
cm4gMDsgfQpJbmRleDogV2ViS2l0L0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQvQ2hh
bmdlTG9nCShyZXZpc2lvbiAxODM3MCkKKysrIFdlYktpdC9DaGFuZ2VMb2cJKHdvcmtpbmcgY29w
eSkKQEAgLTEsMyArMSwxOSBAQAorMjAwNi0xMi0yMCAgRG9uIEdpYnNvbiAgPGRnaWJzb243N0Bn
bWFpbC5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgaHR0cDovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTE5MDA6CisgICAgICAg
IFdpbmRvd3MgYnVpbGQgYnVzdGFnZQorCisgICAgICAgICogQ09NL0Nocm9tZUNsaWVudFdpbi5j
cHA6CisgICAgICAgIChDaHJvbWVDbGllbnRXaW46OmFkZE1lc3NhZ2VUb0NvbnNvbGUpOgorICAg
ICAgICAoQ2hyb21lQ2xpZW50V2luOjpydW5CZWZvcmVVbmxvYWRDb25maXJtUGFuZWwpOgorICAg
ICAgICAqIENPTS9DaHJvbWVDbGllbnRXaW4uaDoKKyAgICAgICAgKiBDT00vQ29udGV4dE1lbnVD
bGllbnRXaW4uY3BwOgorICAgICAgICAoQ29udGV4dE1lbnVDbGllbnRXaW46OmNvbnRleHRNZW51
SXRlbVNlbGVjdGVkKToKKyAgICAgICAgKiBDT00vQ29udGV4dE1lbnVDbGllbnRXaW4uaDoKKyAg
ICAgICAgKiBXZWJLaXQudmNwcm9qL1dlYktpdC52Y3Byb2o6CisKIDIwMDYtMTItMTkgIEpvaG4g
U3VsbGl2YW4gIDxzdWxsaXZhbkBhcHBsZS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgRGFy
aW4KSW5kZXg6IFdlYktpdC9DT00vQ2hyb21lQ2xpZW50V2luLmNwcAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBX
ZWJLaXQvQ09NL0Nocm9tZUNsaWVudFdpbi5jcHAJKHJldmlzaW9uIDE4MzY4KQorKysgV2ViS2l0
L0NPTS9DaHJvbWVDbGllbnRXaW4uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xNTIsOCArMTUyLDgg
QEAgdm9pZCBDaHJvbWVDbGllbnRXaW46OnNldFJlc2l6YWJsZShib29sKQogfQogCiB2b2lkIENo
cm9tZUNsaWVudFdpbjo6YWRkTWVzc2FnZVRvQ29uc29sZShjb25zdCBXZWJDb3JlOjpTdHJpbmcm
LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgaW50LAotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgV2ViQ29yZTo6U3RyaW5nJikKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGludCwKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IFdlYkNvcmU6OlN0cmlu
ZyYpCiB7CiAgICAgbm90SW1wbGVtZW50ZWQoKTsKIH0KQEAgLTE2NCw3ICsxNjQsOCBAQCBib29s
IENocm9tZUNsaWVudFdpbjo6Y2FuUnVuQmVmb3JlVW5sb2FkCiAgICAgcmV0dXJuIGZhbHNlOwog
fQogCi1ib29sIENocm9tZUNsaWVudFdpbjo6cnVuQmVmb3JlVW5sb2FkQ29uZmlybVBhbmVsKGNv
bnN0IFN0cmluZyYsIEZyYW1lKikKK2Jvb2wgQ2hyb21lQ2xpZW50V2luOjpydW5CZWZvcmVVbmxv
YWRDb25maXJtUGFuZWwoY29uc3QgV2ViQ29yZTo6U3RyaW5nJiwKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgV2ViQ29yZTo6RnJhbWUqKQogewogICAg
IG5vdEltcGxlbWVudGVkKCk7CiAgICAgcmV0dXJuIGZhbHNlOwpJbmRleDogV2ViS2l0L0NPTS9D
aHJvbWVDbGllbnRXaW4uaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQvQ09NL0Nocm9tZUNsaWVudFdp
bi5oCShyZXZpc2lvbiAxODM2OCkKKysrIFdlYktpdC9DT00vQ2hyb21lQ2xpZW50V2luLmgJKHdv
cmtpbmcgY29weSkKQEAgLTcxLDcgKzcxLDggQEAgcHVibGljOgogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGNvbnN0IFdlYkNvcmU6OlN0cmluZyYgc291cmNlSUQpOwogCiAg
ICAgdmlydHVhbCBib29sIGNhblJ1bkJlZm9yZVVubG9hZENvbmZpcm1QYW5lbCgpOwotICAgIHZp
cnR1YWwgYm9vbCBydW5CZWZvcmVVbmxvYWRDb25maXJtUGFuZWwoY29uc3QgU3RyaW5nJiBtZXNz
YWdlLCBGcmFtZSogZnJhbWUpOworICAgIHZpcnR1YWwgYm9vbCBydW5CZWZvcmVVbmxvYWRDb25m
aXJtUGFuZWwoY29uc3QgV2ViQ29yZTo6U3RyaW5nJiBtZXNzYWdlLAorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgV2ViQ29yZTo6RnJhbWUqIGZyYW1lKTsKIAog
ICAgIHZpcnR1YWwgdm9pZCBjbG9zZVdpbmRvd1Nvb24oKTsKIH07CkluZGV4OiBXZWJLaXQvQ09N
L0NvbnRleHRNZW51Q2xpZW50V2luLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQvQ09NL0NvbnRl
eHRNZW51Q2xpZW50V2luLmNwcAkocmV2aXNpb24gMTgzNjgpCisrKyBXZWJLaXQvQ09NL0NvbnRl
eHRNZW51Q2xpZW50V2luLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDQsMTMgKzQ0LDggQEAgdm9p
ZCBDb250ZXh0TWVudUNsaWVudFdpbjo6YWRkQ3VzdG9tQ29udAogICAgIG5vdEltcGxlbWVudGVk
KCk7CiB9CiAKLXZvaWQgQ29udGV4dE1lbnVDbGllbnRXaW46OmNvbnRleHRNZW51SXRlbVNlbGVj
dGVkKAotICAgIGNvbnN0IFdlYkNvcmU6OkNvbnRleHRNZW51SXRlbSopCi17Ci0gICAgbm90SW1w
bGVtZW50ZWQoKTsKLX0KLQotdm9pZCBDb250ZXh0TWVudUNsaWVudFdpbjo6Y29weUxpbmtUb0Ns
aXBib2FyZChjb25zdCBXZWJDb3JlOjpIaXRUZXN0UmVzdWx0JikKK3ZvaWQgQ29udGV4dE1lbnVD
bGllbnRXaW46OmNvbnRleHRNZW51SXRlbVNlbGVjdGVkKFdlYkNvcmU6OkNvbnRleHRNZW51SXRl
bSosCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBj
b25zdCBXZWJDb3JlOjpDb250ZXh0TWVudSopCiB7CiAgICAgbm90SW1wbGVtZW50ZWQoKTsKIH0K
SW5kZXg6IFdlYktpdC9DT00vQ29udGV4dE1lbnVDbGllbnRXaW4uaAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBX
ZWJLaXQvQ09NL0NvbnRleHRNZW51Q2xpZW50V2luLmgJKHJldmlzaW9uIDE4MzY4KQorKysgV2Vi
S2l0L0NPTS9Db250ZXh0TWVudUNsaWVudFdpbi5oCSh3b3JraW5nIGNvcHkpCkBAIC0zNiw5ICsz
Niw5IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgY29udGV4dE1lbnVEZXN0cm95ZWQoKTsK
IAogICAgIHZpcnR1YWwgdm9pZCBhZGRDdXN0b21Db250ZXh0TWVudUl0ZW1zKFdlYkNvcmU6OkNv
bnRleHRNZW51Kik7Ci0gICAgdmlydHVhbCB2b2lkIGNvbnRleHRNZW51SXRlbVNlbGVjdGVkKGNv
bnN0IFdlYkNvcmU6OkNvbnRleHRNZW51SXRlbSopOworICAgIHZpcnR1YWwgdm9pZCBjb250ZXh0
TWVudUl0ZW1TZWxlY3RlZChXZWJDb3JlOjpDb250ZXh0TWVudUl0ZW0qLAorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBXZWJDb3JlOjpDb250ZXh0TWVudSop
OwogCi0gICAgdmlydHVhbCB2b2lkIGNvcHlMaW5rVG9DbGlwYm9hcmQoY29uc3QgV2ViQ29yZTo6
SGl0VGVzdFJlc3VsdCYpOwogICAgIHZpcnR1YWwgdm9pZCBkb3dubG9hZFVSTChjb25zdCBXZWJD
b3JlOjpLVVJMJik7CiAgICAgdmlydHVhbCB2b2lkIGNvcHlJbWFnZVRvQ2xpcGJvYXJkKGNvbnN0
IFdlYkNvcmU6OkhpdFRlc3RSZXN1bHQmKTsKICAgICB2aXJ0dWFsIHZvaWQgbG9va1VwSW5EaWN0
aW9uYXJ5KFdlYkNvcmU6OkZyYW1lKik7CkluZGV4OiBXZWJLaXQvV2ViS2l0LnZjcHJvai9XZWJL
aXQudmNwcm9qCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdC9XZWJLaXQudmNwcm9qL1dlYktpdC52Y3By
b2oJKHJldmlzaW9uIDE4MzY4KQorKysgV2ViS2l0L1dlYktpdC52Y3Byb2ovV2ViS2l0LnZjcHJv
agkod29ya2luZyBjb3B5KQpAQCAtMjQ2LDYgKzI0NiwxMCBAQAogCQkJCT4KIAkJCTwvRmlsZT4K
IAkJCTxGaWxlCisJCQkJUmVsYXRpdmVQYXRoPSIuLlxDT01cV2ViRnJhbWVMb2FkZXJDbGllbnQu
aCIKKwkJCQk+CisJCQk8L0ZpbGU+CisJCQk8RmlsZQogCQkJCVJlbGF0aXZlUGF0aD0iLi5cQ09N
XFdlYkhpc3RvcnlJdGVtLmgiCiAJCQkJPgogCQkJPC9GaWxlPgpAQCAtMzAyLDEwICszMDYsNiBA
QAogCQkJCT4KIAkJCTwvRmlsZT4KIAkJCTxGaWxlCi0JCQkJUmVsYXRpdmVQYXRoPSIuLlxDT01c
V2ViRnJhbWVMb2FkZXJDbGllbnQuaCIKLQkJCQk+Ci0JCQk8L0ZpbGU+Ci0JCQk8RmlsZQogCQkJ
CVJlbGF0aXZlUGF0aD0iLi5cQ09NXFdlYkhpc3RvcnlJdGVtLmNwcCIKIAkJCQk+CiAJCQk8L0Zp
bGU+Cg==
</data>
<flag name="review"
          id="4374"
          type_id="1"
          status="-"
          setter="hyatt"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>12175</attachid>
            <date>2007-01-02 17:59:59 -0800</date>
            <delta_ts>2007-01-03 13:58:11 -0800</delta_ts>
            <desc>patch for r18532</desc>
            <filename>patch</filename>
            <type>text/plain</type>
            <size>30675</size>
            <attacher name="Don Gibson">dgibson77</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiAxODU0MCkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsNTUgQEAKKzIwMDctMDEtMDIgIERvbiBHaWJzb24gIDxkZ2lic29uNzdAZ21haWwu
Y29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIGh0
dHA6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTExOTAwOgorICAgICAgICBXaW5k
b3dzIGJ1aWxkIGJ1c3RhZ2UKKworICAgICAgICAqIFdlYkNvcmUudmNwcm9qL1dlYkNvcmUvV2Vi
Q29yZS52Y3Byb2o6CisgICAgICAgICogYnJpZGdlL3dpbi9GcmFtZVdpbi5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpGcmFtZVdpbjo6RnJhbWVXaW4pOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBo
aWNzL0JpdG1hcEltYWdlLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3ND
b250ZXh0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dDo6c2V0UGxhdGZv
cm1TdHJva2VDb2xvcik6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2UuaDoKKyAg
ICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9HcmFwaGljc0NvbnRleHRDYWlyby5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQ6OmRyYXdSZWN0KToKKyAgICAgICAg
KFdlYkNvcmU6OmFkanVzdExpbmVUb1BpeGVsQm91bmRhcmllcyk6CisgICAgICAgIChXZWJDb3Jl
OjpHcmFwaGljc0NvbnRleHQ6OmRyYXdMaW5lKToKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNz
Q29udGV4dDo6ZHJhd0VsbGlwc2UpOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0
OjpzdHJva2VBcmMpOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0OjpkcmF3Q29u
dmV4UG9seWdvbik6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vSW1hZ2VDYWly
by5jcHA6CisgICAgICAgIChXZWJDb3JlOjpCaXRtYXBJbWFnZTo6Y2hlY2tGb3JTb2xpZENvbG9y
KToKKyAgICAgICAgKFdlYkNvcmU6OkJpdG1hcEltYWdlOjpkcmF3KToKKyAgICAgICAgKFdlYkNv
cmU6OkJpdG1hcEltYWdlOjpkcmF3VGlsZWQpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNz
L3dpbi9JbWFnZVdpbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpCaXRtYXBJbWFnZTo6aW5pdFBs
YXRmb3JtRGF0YSk6CisgICAgICAgIChXZWJDb3JlOjpCaXRtYXBJbWFnZTo6aW52YWxpZGF0ZVBs
YXRmb3JtRGF0YSk6CisgICAgICAgIChXZWJDb3JlOjpJbWFnZTo6bG9hZFBsYXRmb3JtUmVzb3Vy
Y2UpOgorICAgICAgICAqIHBsYXRmb3JtL3dpbi9Gb250V2luLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkZvbnQ6OmRyYXdHbHlwaHMpOgorICAgICAgICAqIHBsYXRmb3JtL3dpbi9UZW1wb3JhcnlM
aW5rU3R1YnMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Qml0bWFwSW1hZ2U6OmRyYXdUaWxlZCk6
CisgICAgICAgIChXZWJDb3JlOjpCaXRtYXBJbWFnZTo6Z2V0SEJJVE1BUCk6CisgICAgICAgIChX
ZWJDb3JlOjpDb250ZXh0TWVudTo6fkNvbnRleHRNZW51KToKKyAgICAgICAgKFdlYkNvcmU6OkNv
bnRleHRNZW51OjphcHBlbmRJdGVtKToKKyAgICAgICAgKFdlYkNvcmU6OkNvbnRleHRNZW51SXRl
bTo6Q29udGV4dE1lbnVJdGVtKToKKyAgICAgICAgKFdlYkNvcmU6OkNvbnRleHRNZW51SXRlbTo6
cmVsZWFzZVBsYXRmb3JtRGVzY3JpcHRpb24pOgorICAgICAgICAoV2ViQ29yZTo6Q29udGV4dE1l
bnVJdGVtOjp0eXBlKToKKyAgICAgICAgKFdlYkNvcmU6OkNvbnRleHRNZW51SXRlbTo6c2V0VHlw
ZSk6CisgICAgICAgIChXZWJDb3JlOjpDb250ZXh0TWVudUl0ZW06OnNldEFjdGlvbik6CisgICAg
ICAgIChXZWJDb3JlOjpDb250ZXh0TWVudUl0ZW06OnNldFRpdGxlKToKKyAgICAgICAgKFdlYkNv
cmU6OkNvbnRleHRNZW51SXRlbTo6c2V0U3ViTWVudSk6CisgICAgICAgIChXZWJDb3JlOjpDb250
ZXh0TWVudUl0ZW06OnNldENoZWNrZWQpOgorICAgICAgICAoV2ViQ29yZTo6Q29udGV4dE1lbnVJ
dGVtOjpzZXRFbmFibGVkKToKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50TG9hZGVyOjpVUkwp
OgorICAgICAgICAoV2ViQ29yZTo6RWRpdG9yOjptYXJrTWlzc3BlbGxpbmdzQWZ0ZXJUeXBpbmdU
b1Bvc2l0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dDo6c3Ryb2tlUmVj
dCk6CisgICAgICAgIChXZWJDb3JlOjpTZWFyY2hQb3B1cE1lbnU6OnNhdmVSZWNlbnRTZWFyY2hl
cyk6CisgICAgICAgIChXZWJDb3JlOjpTZWFyY2hQb3B1cE1lbnU6OmxvYWRSZWNlbnRTZWFyY2hl
cyk6CisgICAgICAgIChXZWJDb3JlOjpTZWFyY2hQb3B1cE1lbnU6OlNlYXJjaFBvcHVwTWVudSk6
CisKIDIwMDctMDEtMDIgIERhcmluIEFkbGVyICA8ZGFyaW5AYXBwbGUuY29tPgogCiAgICAgICAg
IFJ1YmJlciBzdGFtcGVkIGJ5IE1pdHouCkluZGV4OiBXZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dl
YkNvcmUvV2ViQ29yZS52Y3Byb2oKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9XZWJDb3JlLnZjcHJv
ai9XZWJDb3JlL1dlYkNvcmUudmNwcm9qCShyZXZpc2lvbiAxODUzMikKKysrIFdlYkNvcmUvV2Vi
Q29yZS52Y3Byb2ovV2ViQ29yZS9XZWJDb3JlLnZjcHJvagkod29ya2luZyBjb3B5KQpAQCAtMTA1
OSw2ICsxMDU5LDEwIEBACiAJCQkJPgogCQkJPC9GaWxlPgogCQkJPEZpbGUKKwkJCQlSZWxhdGl2
ZVBhdGg9Ii4uXC4uXHBhZ2VcU2V0dGluZ3MuY3BwIgorCQkJCT4KKwkJCTwvRmlsZT4KKwkJCTxG
aWxlCiAJCQkJUmVsYXRpdmVQYXRoPSIuLlwuLlxwYWdlXFNldHRpbmdzLmgiCiAJCQkJPgogCQkJ
PC9GaWxlPgpAQCAtMTU1OSw2ICsxNTYzLDEwIEBACiAJCQkJPgogCQkJPC9GaWxlPgogCQkJPEZp
bGUKKwkJCQlSZWxhdGl2ZVBhdGg9Ii4uXC4uXHBsYXRmb3JtXFBvcHVwTWVudUNsaWVudC5oIgor
CQkJCT4KKwkJCTwvRmlsZT4KKwkJCTxGaWxlCiAJCQkJUmVsYXRpdmVQYXRoPSIuLlwuLlxwbGF0
Zm9ybVxSZWd1bGFyRXhwcmVzc2lvbi5jcHAiCiAJCQkJPgogCQkJPC9GaWxlPgpAQCAtMTU4Nyw2
ICsxNTk1LDEwIEBACiAJCQkJPgogCQkJPC9GaWxlPgogCQkJPEZpbGUKKwkJCQlSZWxhdGl2ZVBh
dGg9Ii4uXC4uXHBsYXRmb3JtXFNlYXJjaFBvcHVwTWVudS5oIgorCQkJCT4KKwkJCTwvRmlsZT4K
KwkJCTxGaWxlCiAJCQkJUmVsYXRpdmVQYXRoPSIuLlwuLlxwbGF0Zm9ybVxTZWdtZW50ZWRTdHJp
bmcuY3BwIgogCQkJCT4KIAkJCTwvRmlsZT4KQEAgLTE2MzksNiArMTY1MSwxMCBAQAogCQkJCT4K
IAkJCTwvRmlsZT4KIAkJCTxGaWxlCisJCQkJUmVsYXRpdmVQYXRoPSIuLlwuLlxwbGF0Zm9ybVxU
ZXh0QnJlYWtJdGVyYXRvci5oIgorCQkJCT4KKwkJCTwvRmlsZT4KKwkJCTxGaWxlCiAJCQkJUmVs
YXRpdmVQYXRoPSIuLlwuLlxwbGF0Zm9ybVxUZXh0QnJlYWtJdGVyYXRvcklDVS5jcHAiCiAJCQkJ
PgogCQkJPC9GaWxlPgpAQCAtMTcwMywxMCArMTcxOSw2IEBACiAJCQkJPgogCQkJPC9GaWxlPgog
CQkJPEZpbGUKLQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXC4uXHBsYXRmb3JtXFRleHRGaWVsZC5oIgot
CQkJCT4KLQkJCTwvRmlsZT4KLQkJCTxGaWxlCiAJCQkJUmVsYXRpdmVQYXRoPSIuLlwuLlxwbGF0
Zm9ybVxUZXh0U3RyZWFtLmNwcCIKIAkJCQk+CiAJCQk8L0ZpbGU+CkBAIC0xNzI3LDEwICsxNzM5
LDYgQEAKIAkJCQk+CiAJCQk8L0ZpbGU+CiAJCQk8RmlsZQotCQkJCVJlbGF0aXZlUGF0aD0iLi5c
Li5ccGxhdGZvcm1cVUNoYXIuaCIKLQkJCQk+Ci0JCQk8L0ZpbGU+Ci0JCQk8RmlsZQogCQkJCVJl
bGF0aXZlUGF0aD0iLi5cLi5ccGxhdGZvcm1cV2lkZ2V0LmNwcCIKIAkJCQk+CiAJCQk8L0ZpbGU+
CkBAIC0xNzU0LDYgKzE3NjIsMTQgQEAKIAkJCQkJPgogCQkJCTwvRmlsZT4KIAkJCQk8RmlsZQor
CQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXC4uXHBsYXRmb3JtXGdyYXBoaWNzXEJpdG1hcEltYWdlLmNw
cCIKKwkJCQkJPgorCQkJCTwvRmlsZT4KKwkJCQk8RmlsZQorCQkJCQlSZWxhdGl2ZVBhdGg9Ii4u
XC4uXHBsYXRmb3JtXGdyYXBoaWNzXEJpdG1hcEltYWdlLmgiCisJCQkJCT4KKwkJCQk8L0ZpbGU+
CisJCQkJPEZpbGUKIAkJCQkJUmVsYXRpdmVQYXRoPSIuLlwuLlxwbGF0Zm9ybVxncmFwaGljc1xD
b2xvci5jcHAiCiAJCQkJCT4KIAkJCQk8L0ZpbGU+CkBAIC0xODE4LDYgKzE4MzQsMTQgQEAKIAkJ
CQkJPgogCQkJCTwvRmlsZT4KIAkJCQk8RmlsZQorCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXC4uXHBs
YXRmb3JtXGdyYXBoaWNzXEltYWdlQnVmZmVyLmNwcCIKKwkJCQkJPgorCQkJCTwvRmlsZT4KKwkJ
CQk8RmlsZQorCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXC4uXHBsYXRmb3JtXGdyYXBoaWNzXEltYWdl
QnVmZmVyLmgiCisJCQkJCT4KKwkJCQk8L0ZpbGU+CisJCQkJPEZpbGUKIAkJCQkJUmVsYXRpdmVQ
YXRoPSIuLlwuLlxwbGF0Zm9ybVxncmFwaGljc1xJbWFnZVNvdXJjZS5oIgogCQkJCQk+CiAJCQkJ
PC9GaWxlPgpAQCAtMTg1MCw2ICsxODc0LDE0IEBACiAJCQkJCT4KIAkJCQk8L0ZpbGU+CiAJCQkJ
PEZpbGUKKwkJCQkJUmVsYXRpdmVQYXRoPSIuLlwuLlxwbGF0Zm9ybVxncmFwaGljc1xQYXRoVHJh
dmVyc2FsU3RhdGUuY3BwIgorCQkJCQk+CisJCQkJPC9GaWxlPgorCQkJCTxGaWxlCisJCQkJCVJl
bGF0aXZlUGF0aD0iLi5cLi5ccGxhdGZvcm1cZ3JhcGhpY3NcUGF0aFRyYXZlcnNhbFN0YXRlLmgi
CisJCQkJCT4KKwkJCQk8L0ZpbGU+CisJCQkJPEZpbGUKIAkJCQkJUmVsYXRpdmVQYXRoPSIuLlwu
LlxwbGF0Zm9ybVxncmFwaGljc1xQZW4uY3BwIgogCQkJCQk+CiAJCQkJPC9GaWxlPgpAQCAtNDMy
NiwxOCArNDM1OCw2IEBACiAJCQkJTmFtZT0id2luIgogCQkJCT4KIAkJCQk8RmlsZQotCQkJCQlS
ZWxhdGl2ZVBhdGg9Ii4uXC4uXGJyaWRnZVx3aW5cQ2hyb21lQ2xpZW50V2luLmgiCi0JCQkJCT4K
LQkJCQk8L0ZpbGU+Ci0JCQkJPEZpbGUKLQkJCQkJUmVsYXRpdmVQYXRoPSIuLlwuLlxicmlkZ2Vc
d2luXENvbnRleHRNZW51Q2xpZW50V2luLmgiCi0JCQkJCT4KLQkJCQk8L0ZpbGU+Ci0JCQkJPEZp
bGUKLQkJCQkJUmVsYXRpdmVQYXRoPSIuLlwuLlxicmlkZ2Vcd2luXEVkaXRvckNsaWVudFdpbi5o
IgotCQkJCQk+Ci0JCQkJPC9GaWxlPgotCQkJCTxGaWxlCiAJCQkJCVJlbGF0aXZlUGF0aD0iLi5c
Li5cYnJpZGdlXHdpblxGcmFtZVdpbi5jcHAiCiAJCQkJCT4KIAkJCQk8L0ZpbGU+CkBAIC00NDUx
LDYgKzQ0NzEsMTAgQEAKIAkJCQk+CiAJCQk8L0ZpbGU+CiAJCQk8RmlsZQorCQkJCVJlbGF0aXZl
UGF0aD0iLi5cLi5cZWRpdGluZ1xFZGl0b3JEZWxldGVBY3Rpb24uaCIKKwkJCQk+CisJCQk8L0Zp
bGU+CisJCQk8RmlsZQogCQkJCVJlbGF0aXZlUGF0aD0iLi5cLi5cZWRpdGluZ1xFZGl0b3JJbnNl
cnRBY3Rpb24uaCIKIAkJCQk+CiAJCQk8L0ZpbGU+CkluZGV4OiBXZWJDb3JlL2JyaWRnZS93aW4v
RnJhbWVXaW4uY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvYnJpZGdlL3dpbi9GcmFtZVdpbi5j
cHAJKHJldmlzaW9uIDE4NTMyKQorKysgV2ViQ29yZS9icmlkZ2Uvd2luL0ZyYW1lV2luLmNwcAko
d29ya2luZyBjb3B5KQpAQCAtNDgsMTQgKzQ4LDE0IEBAIEZyYW1lV2luOjpGcmFtZVdpbihQYWdl
KiBwYWdlLCBIVE1MRnJhbWUKICAgICAsIG1fY2xpZW50KGNsaWVudCkKIHsKICAgICBTZXR0aW5n
cyogc2V0dGluZ3MgPSBuZXcgU2V0dGluZ3MoKTsKLSAgICBzZXR0aW5ncy0+c2V0QXV0b0xvYWRJ
bWFnZXModHJ1ZSk7Ci0gICAgc2V0dGluZ3MtPnNldE1lZGl1bUZpeGVkRm9udFNpemUoMTMpOwot
ICAgIHNldHRpbmdzLT5zZXRNZWRpdW1Gb250U2l6ZSgxNik7Ci0gICAgc2V0dGluZ3MtPnNldFNl
cmlmRm9udE5hbWUoIlRpbWVzIE5ldyBSb21hbiIpOwotICAgIHNldHRpbmdzLT5zZXRGaXhlZEZv
bnROYW1lKCJDb3VyaWVyIE5ldyIpOwotICAgIHNldHRpbmdzLT5zZXRTYW5zU2VyaWZGb250TmFt
ZSgiQXJpYWwiKTsKLSAgICBzZXR0aW5ncy0+c2V0U3RkRm9udE5hbWUoIlRpbWVzIE5ldyBSb21h
biIpOwotICAgIHNldHRpbmdzLT5zZXRJc0phdmFTY3JpcHRFbmFibGVkKHRydWUpOworICAgIHNl
dHRpbmdzLT5zZXRMb2Fkc0ltYWdlc0F1dG9tYXRpY2FsbHkodHJ1ZSk7CisgICAgc2V0dGluZ3Mt
PnNldERlZmF1bHRGaXhlZEZvbnRTaXplKDEzKTsKKyAgICBzZXR0aW5ncy0+c2V0RGVmYXVsdEZv
bnRTaXplKDE2KTsKKyAgICBzZXR0aW5ncy0+c2V0U2VyaWZGb250RmFtaWx5KCJUaW1lcyBOZXcg
Um9tYW4iKTsKKyAgICBzZXR0aW5ncy0+c2V0Rml4ZWRGb250RmFtaWx5KCJDb3VyaWVyIE5ldyIp
OworICAgIHNldHRpbmdzLT5zZXRTYW5zU2VyaWZGb250RmFtaWx5KCJBcmlhbCIpOworICAgIHNl
dHRpbmdzLT5zZXRTdGFuZGFyZEZvbnRGYW1pbHkoIlRpbWVzIE5ldyBSb21hbiIpOworICAgIHNl
dHRpbmdzLT5zZXRKYXZhU2NyaXB0RW5hYmxlZCh0cnVlKTsKICAgICBzZXRTZXR0aW5ncyhzZXR0
aW5ncyk7CiB9CiAKSW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQml0bWFwSW1hZ2Uu
aAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0JpdG1hcEltYWdlLmgJ
KHJldmlzaW9uIDE4NTMyKQorKysgV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9CaXRtYXBJbWFn
ZS5oCSh3b3JraW5nIGNvcHkpCkBAIC05MSw4ICs5MSw2IEBAIHB1YmxpYzoKICAgICBCaXRtYXBJ
bWFnZShJbWFnZUFuaW1hdGlvbk9ic2VydmVyKiBvYnNlcnZlciA9IDApOwogICAgIH5CaXRtYXBJ
bWFnZSgpOwogICAgIAotICAgIHN0YXRpYyBCaXRtYXBJbWFnZSogbG9hZFBsYXRmb3JtUmVzb3Vy
Y2UoY29uc3QgY2hhciogbmFtZSk7Ci0KICAgICB2aXJ0dWFsIEludFNpemUgc2l6ZSgpIGNvbnN0
OwogCiAgICAgdmlydHVhbCBib29sIHNldE5hdGl2ZURhdGEoTmF0aXZlQnl0ZVB0ciwgYm9vbCBh
bGxEYXRhUmVjZWl2ZWQpOwpJbmRleDogV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGlj
c0NvbnRleHQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3Jh
cGhpY3NDb250ZXh0LmNwcAkocmV2aXNpb24gMTg1MzIpCisrKyBXZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL0dyYXBoaWNzQ29udGV4dC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTM0MSw3ICszNDEs
NyBAQCB2b2lkIEdyYXBoaWNzQ29udGV4dDo6c2V0UGxhdGZvcm1GaWxsQ29sCiB7CiB9CiAKLXZv
aWQgR3JhcGhpY3NDb250ZXh0OjpzZXRQbGF0Zm9ybVN0cm9rZUNvbG9yKGNvbnN0IENvbG9yJik7
Cit2b2lkIEdyYXBoaWNzQ29udGV4dDo6c2V0UGxhdGZvcm1TdHJva2VDb2xvcihjb25zdCBDb2xv
ciYpCiB7CiB9CiAKSW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2UuaAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ltYWdlLmgJKHJldmlzaW9uIDE4
NTMyKQorKysgV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9JbWFnZS5oCSh3b3JraW5nIGNvcHkp
CkBAIC0xMDcsMTAgKzEwNyw2IEBAIHByaXZhdGU6CiAgICAgdmlydHVhbCB2b2lkIGRyYXdUaWxl
ZChHcmFwaGljc0NvbnRleHQqLCBjb25zdCBGbG9hdFJlY3QmIGRzdFJlY3QsIGNvbnN0IEZsb2F0
UG9pbnQmIHNyY1BvaW50LCBjb25zdCBGbG9hdFNpemUmIHRpbGVTaXplLCBDb21wb3NpdGVPcGVy
YXRvcikgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBkcmF3VGlsZWQoR3JhcGhpY3NDb250ZXh0Kiwg
Y29uc3QgRmxvYXRSZWN0JiBkc3RSZWN0LCBjb25zdCBGbG9hdFJlY3QmIHNyY1JlY3QsIFRpbGVS
dWxlIGhSdWxlLCBUaWxlUnVsZSB2UnVsZSwgQ29tcG9zaXRlT3BlcmF0b3IpID0gMDsKICAgICAK
LSAgICAvLyBIYW5kbGUgT1Mtc3BlY2lmaWMgZGF0YQotICAgIHZvaWQgaW5pdFBsYXRmb3JtRGF0
YSgpOwotICAgIHZvaWQgaW52YWxpZGF0ZVBsYXRmb3JtRGF0YSgpOwotCiAgICAgVmVjdG9yPGNo
YXI+IG1fZGF0YTsgLy8gVGhlIGVuY29kZWQgcmF3IGRhdGEgZm9yIHRoZSBpbWFnZS4gCiAgICAg
SW1hZ2VBbmltYXRpb25PYnNlcnZlciogbV9hbmltYXRpb25PYnNlcnZlcjsKIH07CkluZGV4OiBX
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL0dyYXBoaWNzQ29udGV4dENhaXJvLmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL0dyYXBoaWNzQ29u
dGV4dENhaXJvLmNwcAkocmV2aXNpb24gMTg1MzIpCisrKyBXZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2NhaXJvL0dyYXBoaWNzQ29udGV4dENhaXJvLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTI4
LDggKzEyOCw4IEBAIHZvaWQgR3JhcGhpY3NDb250ZXh0OjpkcmF3UmVjdChjb25zdCBJbnQKICAg
ICBpZiAoZmlsbENvbG9yKCkuYWxwaGEoKSkKICAgICAgICAgZmlsbFJlY3RTb3VyY2VPdmVyKGNv
bnRleHQsIHJlY3QsIGZpbGxDb2xvcigpKTsKIAotICAgIGlmIChwZW4oKS5zdHlsZSgpICE9IFBl
bjo6Tm9QZW4pIHsKLSAgICAgICAgc2V0Q29sb3IoY29udGV4dCwgcGVuKCkuY29sb3IoKSk7Cisg
ICAgaWYgKHN0cm9rZVN0eWxlKCkgIT0gTm9TdHJva2UpIHsKKyAgICAgICAgc2V0Q29sb3IoY29u
dGV4dCwgc3Ryb2tlQ29sb3IoKSk7CiAgICAgICAgIEZsb2F0UmVjdCByKHJlY3QpOwogICAgICAg
ICByLmluZmxhdGUoLS41Zik7CiAgICAgICAgIGNhaXJvX3JlY3RhbmdsZShjb250ZXh0LCByLngo
KSwgci55KCksIHIud2lkdGgoKSwgci5oZWlnaHQoKSk7CkBAIC0xMzksMTMgKzEzOSwxMyBAQCB2
b2lkIEdyYXBoaWNzQ29udGV4dDo6ZHJhd1JlY3QoY29uc3QgSW50CiB9CiAKIC8vIEZJWE1FOiBO
b3cgdGhhdCB0aGlzIGlzIHJlZmFjdG9yZWQsIGl0IHNob3VsZCBiZSBzaGFyZWQgYnkgYWxsIGNv
bnRleHRzLgotc3RhdGljIHZvaWQgYWRqdXN0TGluZVRvUGl4ZWxCb3VuZGFyaWVzKEZsb2F0UG9p
bnQmIHAxLCBGbG9hdFBvaW50JiBwMiwgZmxvYXQgc3Ryb2tlV2lkdGgsIGNvbnN0IFBlbjo6UGVu
U3R5bGUmIHBlblN0eWxlKQorc3RhdGljIHZvaWQgYWRqdXN0TGluZVRvUGl4ZWxCb3VuZGFyaWVz
KEZsb2F0UG9pbnQmIHAxLCBGbG9hdFBvaW50JiBwMiwgZmxvYXQgc3Ryb2tlV2lkdGgsIFN0cm9r
ZVN0eWxlIHN0eWxlKQogewogICAgIC8vIEZvciBvZGQgd2lkdGhzLCB3ZSBhZGQgaW4gMC41IHRv
IHRoZSBhcHByb3ByaWF0ZSB4L3kgc28gdGhhdCB0aGUgZmxvYXQgYXJpdGhtZXRpYwogICAgIC8v
IHdvcmtzIG91dC4gIEZvciBleGFtcGxlLCB3aXRoIGEgYm9yZGVyIHdpZHRoIG9mIDMsIEtIVE1M
IHdpbGwgcGFzcyB1cyAoeTEreTIpLzIsIGUuZy4sCiAgICAgLy8gKDUwKzUzKS8yID0gMTAzLzIg
PSA1MSB3aGVuIHdlIHdhbnQgNTEuNS4gIEl0IGlzIGFsd2F5cyB0cnVlIHRoYXQgYW4gZXZlbiB3
aWR0aCBnYXZlCiAgICAgLy8gdXMgYSBwZXJmZWN0IHBvc2l0aW9uLCBidXQgYW4gb2RkIHdpZHRo
IGdhdmUgdXMgYSBwb3NpdGlvbiB0aGF0IGlzIG9mZiBieSBleGFjdGx5IDAuNS4KLSAgICBpZiAo
cGVuU3R5bGUgPT0gUGVuOjpEb3RMaW5lIHx8IHBlblN0eWxlID09IFBlbjo6RGFzaExpbmUpIHsK
KyAgICBpZiAoc3R5bGUgPT0gRG90dGVkU3Ryb2tlIHx8IHN0eWxlID09IERhc2hlZFN0cm9rZSkg
ewogICAgICAgICBpZiAocDEueCgpID09IHAyLngoKSkgewogICAgICAgICAgICAgcDEuc2V0WShw
MS55KCkgKyBzdHJva2VXaWR0aCk7CiAgICAgICAgICAgICBwMi5zZXRZKHAyLnkoKSAtIHN0cm9r
ZVdpZHRoKTsKQEAgLTE3OSwxMCArMTc5LDEwIEBAIHZvaWQgR3JhcGhpY3NDb250ZXh0OjpkcmF3
TGluZShjb25zdCBJbnQKICAgICBjYWlyb190KiBjb250ZXh0ID0gbV9kYXRhLT5jb250ZXh0Owog
ICAgIGNhaXJvX3NhdmUoY29udGV4dCk7CiAKLSAgICBQZW46OlBlblN0eWxlIHBlblN0eWxlID0g
cGVuKCkuc3R5bGUoKTsKLSAgICBpZiAocGVuU3R5bGUgPT0gUGVuOjpOb1BlbikKKyAgICBTdHJv
a2VTdHlsZSBzdHlsZSA9IHN0cm9rZVN0eWxlKCk7CisgICAgaWYgKHN0eWxlID09IE5vU3Ryb2tl
KQogICAgICAgICByZXR1cm47Ci0gICAgZmxvYXQgd2lkdGggPSBwZW4oKS53aWR0aCgpOworICAg
IGZsb2F0IHdpZHRoID0gc3Ryb2tlVGhpY2tuZXNzKCk7CiAgICAgaWYgKHdpZHRoIDwgMSkKICAg
ICAgICAgd2lkdGggPSAxOwogCkBAIC0xOTAsMjMgKzE5MCwyMyBAQCB2b2lkIEdyYXBoaWNzQ29u
dGV4dDo6ZHJhd0xpbmUoY29uc3QgSW50CiAgICAgRmxvYXRQb2ludCBwMiA9IHBvaW50MjsKICAg
ICBib29sIGlzVmVydGljYWxMaW5lID0gKHAxLngoKSA9PSBwMi54KCkpOwogICAgIAotICAgIGFk
anVzdExpbmVUb1BpeGVsQm91bmRhcmllcyhwMSwgcDIsIHdpZHRoLCBwZW5TdHlsZSk7CisgICAg
YWRqdXN0TGluZVRvUGl4ZWxCb3VuZGFyaWVzKHAxLCBwMiwgd2lkdGgsIHN0eWxlKTsKICAgICBj
YWlyb19zZXRfbGluZV93aWR0aChjb250ZXh0LCB3aWR0aCk7CiAKICAgICBpbnQgcGF0V2lkdGgg
PSAwOwotICAgIHN3aXRjaCAocGVuU3R5bGUpIHsKLSAgICBjYXNlIFBlbjo6Tm9QZW46Ci0gICAg
Y2FzZSBQZW46OlNvbGlkTGluZToKKyAgICBzd2l0Y2ggKHN0eWxlKSB7CisgICAgY2FzZSBOb1N0
cm9rZToKKyAgICBjYXNlIFNvbGlkU3Ryb2tlOgogICAgICAgICBicmVhazsKLSAgICBjYXNlIFBl
bjo6RG90TGluZToKKyAgICBjYXNlIERvdHRlZFN0cm9rZToKICAgICAgICAgcGF0V2lkdGggPSAo
aW50KXdpZHRoOwogICAgICAgICBicmVhazsKLSAgICBjYXNlIFBlbjo6RGFzaExpbmU6CisgICAg
Y2FzZSBEYXNoZWRTdHJva2U6CiAgICAgICAgIHBhdFdpZHRoID0gMyooaW50KXdpZHRoOwogICAg
ICAgICBicmVhazsKICAgICB9CiAKLSAgICBzZXRDb2xvcihjb250ZXh0LCBwZW4oKS5jb2xvcigp
KTsKKyAgICBzZXRDb2xvcihjb250ZXh0LCBzdHJva2VDb2xvcigpKTsKICAgICAKICAgICBjYWly
b19zZXRfYW50aWFsaWFzKGNvbnRleHQsIENBSVJPX0FOVElBTElBU19OT05FKTsKICAgICAKQEAg
LTIxNCwxMSArMjE0LDExIEBAIHZvaWQgR3JhcGhpY3NDb250ZXh0OjpkcmF3TGluZShjb25zdCBJ
bnQKICAgICAgICAgLy8gRG8gYSByZWN0IGZpbGwgb2Ygb3VyIGVuZHBvaW50cy4gIFRoaXMgZW5z
dXJlcyB3ZSBhbHdheXMgaGF2ZSB0aGUKICAgICAgICAgLy8gYXBwZWFyYW5jZSBvZiBiZWluZyBh
IGJvcmRlci4gIFdlIHRoZW4gZHJhdyB0aGUgYWN0dWFsIGRvdHRlZC9kYXNoZWQgbGluZS4KICAg
ICAgICAgaWYgKGlzVmVydGljYWxMaW5lKSB7Ci0gICAgICAgICAgICBmaWxsUmVjdFNvdXJjZU92
ZXIoY29udGV4dCwgRmxvYXRSZWN0KHAxLngoKS13aWR0aC8yLCBwMS55KCktd2lkdGgsIHdpZHRo
LCB3aWR0aCksIHBlbigpLmNvbG9yKCkpOwotICAgICAgICAgICAgZmlsbFJlY3RTb3VyY2VPdmVy
KGNvbnRleHQsIEZsb2F0UmVjdChwMi54KCktd2lkdGgvMiwgcDIueSgpLCB3aWR0aCwgd2lkdGgp
LCBwZW4oKS5jb2xvcigpKTsKKyAgICAgICAgICAgIGZpbGxSZWN0U291cmNlT3Zlcihjb250ZXh0
LCBGbG9hdFJlY3QocDEueCgpLXdpZHRoLzIsIHAxLnkoKS13aWR0aCwgd2lkdGgsIHdpZHRoKSwg
c3Ryb2tlQ29sb3IoKSk7CisgICAgICAgICAgICBmaWxsUmVjdFNvdXJjZU92ZXIoY29udGV4dCwg
RmxvYXRSZWN0KHAyLngoKS13aWR0aC8yLCBwMi55KCksIHdpZHRoLCB3aWR0aCksIHN0cm9rZUNv
bG9yKCkpOwogICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgZmlsbFJlY3RTb3VyY2VPdmVy
KGNvbnRleHQsIEZsb2F0UmVjdChwMS54KCktd2lkdGgsIHAxLnkoKS13aWR0aC8yLCB3aWR0aCwg
d2lkdGgpLCBwZW4oKS5jb2xvcigpKTsKLSAgICAgICAgICAgIGZpbGxSZWN0U291cmNlT3Zlcihj
b250ZXh0LCBGbG9hdFJlY3QocDIueCgpLCBwMi55KCktd2lkdGgvMiwgd2lkdGgsIHdpZHRoKSwg
cGVuKCkuY29sb3IoKSk7CisgICAgICAgICAgICBmaWxsUmVjdFNvdXJjZU92ZXIoY29udGV4dCwg
RmxvYXRSZWN0KHAxLngoKS13aWR0aCwgcDEueSgpLXdpZHRoLzIsIHdpZHRoLCB3aWR0aCksIHN0
cm9rZUNvbG9yKCkpOworICAgICAgICAgICAgZmlsbFJlY3RTb3VyY2VPdmVyKGNvbnRleHQsIEZs
b2F0UmVjdChwMi54KCksIHAyLnkoKS13aWR0aC8yLCB3aWR0aCwgd2lkdGgpLCBzdHJva2VDb2xv
cigpKTsKICAgICAgICAgfQogICAgICAgICAKICAgICAgICAgLy8gRXhhbXBsZTogODAgcGl4ZWxz
IHdpdGggYSB3aWR0aCBvZiAzMCBwaXhlbHMuCkBAIC0yODEsMTggKzI4MSwxNSBAQCB2b2lkIEdy
YXBoaWNzQ29udGV4dDo6ZHJhd0VsbGlwc2UoY29uc3QgCiAgICAgICAgIHNldENvbG9yKGNvbnRl
eHQsIGZpbGxDb2xvcigpKTsKICAgICAgICAgY2Fpcm9fZmlsbChjb250ZXh0KTsKICAgICB9Ci0g
ICAgaWYgKHBlbigpLnN0eWxlKCkgIT0gUGVuOjpOb1BlbikgewotICAgICAgICBzZXRDb2xvcihj
b250ZXh0LCBwZW4oKS5jb2xvcigpKTsKLSAgICAgICAgdW5zaWduZWQgcGVuV2lkdGggPSBwZW4o
KS53aWR0aCgpOwotICAgICAgICBpZiAocGVuV2lkdGggPT0gMCkgCi0gICAgICAgICAgICBwZW5X
aWR0aCsrOwotICAgICAgICBjYWlyb19zZXRfbGluZV93aWR0aChjb250ZXh0LCBwZW5XaWR0aCk7
CisgICAgaWYgKHN0cm9rZVN0eWxlKCkgIT0gTm9TdHJva2UpIHsKKyAgICAgICAgc2V0Q29sb3Io
Y29udGV4dCwgc3Ryb2tlQ29sb3IoKSk7CisgICAgICAgIGNhaXJvX3NldF9saW5lX3dpZHRoKGNv
bnRleHQsIHN0cm9rZVRoaWNrbmVzcygpKTsKICAgICAgICAgY2Fpcm9fc3Ryb2tlKGNvbnRleHQp
OwogICAgIH0KIH0KIAogLy8gRklYTUU6IFRoaXMgZnVuY3Rpb24gbmVlZHMgdG8gYmUgYWRqdXN0
ZWQgdG8gbWF0Y2ggdGhlIGZ1bmN0aW9uYWxpdHkgb24gdGhlIE1hYyBzaWRlLgotdm9pZCBHcmFw
aGljc0NvbnRleHQ6OmRyYXdBcmMoY29uc3QgSW50UmVjdCYgcmVjdCwgZmxvYXQgdGhpY2tuZXNz
LCBpbnQgc3RhcnRBbmdsZSwgaW50IGFuZ2xlU3BhbikKK3ZvaWQgR3JhcGhpY3NDb250ZXh0Ojpz
dHJva2VBcmMoY29uc3QgSW50UmVjdCYgcmVjdCwgaW50IHN0YXJ0QW5nbGUsIGludCBhbmdsZVNw
YW4pCiB7CiAgICAgaWYgKHBhaW50aW5nRGlzYWJsZWQoKSkKICAgICAgICAgcmV0dXJuOwpAQCAt
MzA1LDE0ICszMDIsMTQgQEAgdm9pZCBHcmFwaGljc0NvbnRleHQ6OmRyYXdBcmMoY29uc3QgSW50
UgogICAgIGZsb2F0IHJldmVyc2VTY2FsZUZhY3RvciA9IHcgLyBoOwogICAgIAogICAgIGNhaXJv
X3QqIGNvbnRleHQgPSBtX2RhdGEtPmNvbnRleHQ7Ci0gICAgaWYgKHBlbigpLnN0eWxlKCkgIT0g
UGVuOjpOb1BlbikgeyAgICAgICAgCisgICAgaWYgKHN0cm9rZVN0eWxlKCkgIT0gTm9TdHJva2Up
IHsgICAgICAgIAogICAgICAgICBmbG9hdCByID0gdyAvIDI7CiAgICAgICAgIGZsb2F0IGZhID0g
c3RhcnRBbmdsZTsKICAgICAgICAgZmxvYXQgZmFsZW4gPSAgZmEgKyBhbmdsZVNwYW47CiAgICAg
ICAgIGNhaXJvX2FyYyhjb250ZXh0LCB4ICsgciwgeSArIHIsIHIsIC1mYSAqIE1fUEkvMTgwLCAt
ZmFsZW4gKiBNX1BJLzE4MCk7CiAgICAgICAgIAotICAgICAgICBzZXRDb2xvcihjb250ZXh0LCBw
ZW4oKS5jb2xvcigpKTsKLSAgICAgICAgY2Fpcm9fc2V0X2xpbmVfd2lkdGgoY29udGV4dCwgcGVu
KCkud2lkdGgoKSk7CisgICAgICAgIHNldENvbG9yKGNvbnRleHQsIHN0cm9rZUNvbG9yKCkpOwor
ICAgICAgICBjYWlyb19zZXRfbGluZV93aWR0aChjb250ZXh0LCBzdHJva2VUaGlja25lc3MoKSk7
CiAgICAgICAgIGNhaXJvX3N0cm9rZShjb250ZXh0KTsKICAgICB9CiB9CkBAIC0zNDAsOSArMzM3
LDkgQEAgdm9pZCBHcmFwaGljc0NvbnRleHQ6OmRyYXdDb252ZXhQb2x5Z29uKAogICAgICAgICBj
YWlyb19maWxsKGNvbnRleHQpOwogICAgIH0KIAotICAgIGlmIChwZW4oKS5zdHlsZSgpICE9IFBl
bjo6Tm9QZW4pIHsKLSAgICAgICAgc2V0Q29sb3IoY29udGV4dCwgcGVuKCkuY29sb3IoKSk7Ci0g
ICAgICAgIGNhaXJvX3NldF9saW5lX3dpZHRoKGNvbnRleHQsIHBlbigpLndpZHRoKCkpOworICAg
IGlmIChzdHJva2VTdHlsZSgpICE9IE5vU3Ryb2tlKSB7CisgICAgICAgIHNldENvbG9yKGNvbnRl
eHQsIHN0cm9rZUNvbG9yKCkpOworICAgICAgICBjYWlyb19zZXRfbGluZV93aWR0aChjb250ZXh0
LCBzdHJva2VUaGlja25lc3MoKSk7CiAgICAgICAgIGNhaXJvX3N0cm9rZShjb250ZXh0KTsKICAg
ICB9CiAgICAgY2Fpcm9fcmVzdG9yZShjb250ZXh0KTsKSW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvY2Fpcm8vSW1hZ2VDYWlyby5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9jYWlyby9JbWFnZUNhaXJvLmNwcAkocmV2aXNpb24gMTg1MzIpCisrKyBX
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL0ltYWdlQ2Fpcm8uY3BwCSh3b3JraW5nIGNv
cHkpCkBAIC0yNCw3ICsyNCw3IEBACiAgKi8KIAogI2luY2x1ZGUgImNvbmZpZy5oIgotI2luY2x1
ZGUgIkltYWdlLmgiCisjaW5jbHVkZSAiQml0bWFwSW1hZ2UuaCIKIAogI2lmIFBMQVRGT1JNKENB
SVJPKQogCkBAIC02NSwxMyArNjUsMTMgQEAgc3RhdGljIHZvaWQgc2V0Q29tcG9zaXRpbmdPcGVy
YXRpb24oY2FpcgogICAgICAgICBjYWlyb19zZXRfb3BlcmF0b3IoY29udGV4dCwgQ0FJUk9fT1BF
UkFUT1JfT1ZFUik7CiB9CiAKLXZvaWQgSW1hZ2U6OmNoZWNrRm9yU29saWRDb2xvcigpCit2b2lk
IEJpdG1hcEltYWdlOjpjaGVja0ZvclNvbGlkQ29sb3IoKQogewogICAgIC8vIEZJWE1FOiBJdCdz
IGVhc3kgdG8gaW1wbGVtZW50IHRoaXMgb3B0aW1pemF0aW9uLiBKdXN0IG5lZWQgdG8gY2hlY2sg
dGhlIFJHQkEzMiBidWZmZXIgdG8gc2VlIGlmIGl0IGlzIDF4MS4KICAgICBtX2lzU29saWRDb2xv
ciA9IGZhbHNlOwogfQogCi12b2lkIEltYWdlOjpkcmF3KEdyYXBoaWNzQ29udGV4dCogY3R4dCwg
Y29uc3QgRmxvYXRSZWN0JiBkc3QsIGNvbnN0IEZsb2F0UmVjdCYgc3JjLCBDb21wb3NpdGVPcGVy
YXRvciBvcCkKK3ZvaWQgQml0bWFwSW1hZ2U6OmRyYXcoR3JhcGhpY3NDb250ZXh0KiBjdHh0LCBj
b25zdCBGbG9hdFJlY3QmIGRzdCwgY29uc3QgRmxvYXRSZWN0JiBzcmMsIENvbXBvc2l0ZU9wZXJh
dG9yIG9wKQogewogICAgIGNhaXJvX3QqIGNvbnRleHQgPSBjdHh0LT5wbGF0Zm9ybUNvbnRleHQo
KTsKIApAQCAtMTEzLDcgKzExMyw3IEBAIHZvaWQgSW1hZ2U6OmRyYXcoR3JhcGhpY3NDb250ZXh0
KiBjdHh0LCAKIAogfQogCi12b2lkIEltYWdlOjpkcmF3VGlsZWQoR3JhcGhpY3NDb250ZXh0KiBj
dHh0LCBjb25zdCBGbG9hdFJlY3QmIGRzdFJlY3QsIGNvbnN0IEZsb2F0UG9pbnQmIHNyY1BvaW50
LAordm9pZCBCaXRtYXBJbWFnZTo6ZHJhd1RpbGVkKEdyYXBoaWNzQ29udGV4dCogY3R4dCwgY29u
c3QgRmxvYXRSZWN0JiBkc3RSZWN0LCBjb25zdCBGbG9hdFBvaW50JiBzcmNQb2ludCwKICAgICBj
b25zdCBGbG9hdFNpemUmIHRpbGVTaXplLCBDb21wb3NpdGVPcGVyYXRvciBvcCkKIHsKICAgICBp
ZiAoIW1fc291cmNlLmluaXRpYWxpemVkKCkpCkluZGV4OiBXZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL3dpbi9JbWFnZVdpbi5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy93aW4vSW1hZ2VXaW4uY3BwCShyZXZpc2lvbiAxODUzMikKKysrIFdlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3Mvd2luL0ltYWdlV2luLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjQsNyArMjQs
NyBAQAogICovCiAKICNpbmNsdWRlICJjb25maWcuaCIKLSNpbmNsdWRlICJJbWFnZS5oIgorI2lu
Y2x1ZGUgIkJpdG1hcEltYWdlLmgiCiAKICNpZiBQTEFURk9STShDQUlSTykKICNpbmNsdWRlIDxj
YWlyby5oPgpAQCAtMzcsMTggKzM3LDE4IEBAIFZlY3RvcjxjaGFyPiBsb2FkUmVzb3VyY2VJbnRv
QXJyYXkoY29uc3QKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi12b2lkIEltYWdlOjppbml0UGxh
dGZvcm1EYXRhKCkKK3ZvaWQgQml0bWFwSW1hZ2U6OmluaXRQbGF0Zm9ybURhdGEoKQogewogfQog
Ci12b2lkIEltYWdlOjppbnZhbGlkYXRlUGxhdGZvcm1EYXRhKCkKK3ZvaWQgQml0bWFwSW1hZ2U6
OmludmFsaWRhdGVQbGF0Zm9ybURhdGEoKQogewogfQogCiBJbWFnZSogSW1hZ2U6OmxvYWRQbGF0
Zm9ybVJlc291cmNlKGNvbnN0IGNoYXIgKm5hbWUpCiB7CiAgICAgVmVjdG9yPGNoYXI+IGFyciA9
IGxvYWRSZXNvdXJjZUludG9BcnJheShuYW1lKTsKLSAgICBJbWFnZSogaW1nID0gbmV3IEltYWdl
OworICAgIEJpdG1hcEltYWdlKiBpbWcgPSBuZXcgQml0bWFwSW1hZ2U7CiAjaWYgUExBVEZPUk0o
Q0FJUk8pCiAgICAgaW1nLT5zZXROYXRpdmVEYXRhKCZhcnIsIHRydWUpOwogI2Vsc2UKSW5kZXg6
IFdlYkNvcmUvcGxhdGZvcm0vd2luL0ZvbnRXaW4uY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUv
cGxhdGZvcm0vd2luL0ZvbnRXaW4uY3BwCShyZXZpc2lvbiAxODUzMikKKysrIFdlYkNvcmUvcGxh
dGZvcm0vd2luL0ZvbnRXaW4uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00OCw4ICs0OCw4IEBAIHZv
aWQgRm9udDo6ZHJhd0dseXBocyhHcmFwaGljc0NvbnRleHQqIGcKIAogICAgIC8vIFNldCB0aGUg
dGV4dCBjb2xvciB0byB1c2UgZm9yIGRyYXdpbmcuCiAgICAgZmxvYXQgcmVkLCBncmVlbiwgYmx1
ZSwgYWxwaGE7Ci0gICAgQ29sb3IgcGVuQ29sb3IgPSBncmFwaGljc0NvbnRleHQtPnBlbigpLmNv
bG9yKCk7Ci0gICAgcGVuQ29sb3IuZ2V0UkdCQShyZWQsIGdyZWVuLCBibHVlLCBhbHBoYSk7Cisg
ICAgQ29sb3IgY29sb3IgPSBncmFwaGljc0NvbnRleHQtPnN0cm9rZUNvbG9yKCk7CisgICAgY29s
b3IuZ2V0UkdCQShyZWQsIGdyZWVuLCBibHVlLCBhbHBoYSk7CiAgICAgY2Fpcm9fc2V0X3NvdXJj
ZV9yZ2JhKGNvbnRleHQsIHJlZCwgZ3JlZW4sIGJsdWUsIGFscGhhKTsKICAgICAKICAgICBjYWly
b19zdXJmYWNlX3QqIHN1cmZhY2UgPSBjYWlyb19nZXRfdGFyZ2V0KGNvbnRleHQpOwpJbmRleDog
V2ViQ29yZS9wbGF0Zm9ybS93aW4vVGVtcG9yYXJ5TGlua1N0dWJzLmNwcAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBXZWJDb3JlL3BsYXRmb3JtL3dpbi9UZW1wb3JhcnlMaW5rU3R1YnMuY3BwCShyZXZpc2lvbiAx
ODUzMikKKysrIFdlYkNvcmUvcGxhdGZvcm0vd2luL1RlbXBvcmFyeUxpbmtTdHVicy5jcHAJKHdv
cmtpbmcgY29weSkKQEAgLTMyLDYgKzMyLDcgQEAKICNpbmNsdWRlIDxzdGRsaWIuaD4KICNpbmNs
dWRlIDx3aW5kb3dzLmg+CiAjaW5jbHVkZSAiQVhPYmplY3RDYWNoZS5oIgorI2luY2x1ZGUgIkJp
dG1hcEltYWdlLmgiCiAjaW5jbHVkZSAiQ2FjaGVkUmVzb3VyY2UuaCIKICNpbmNsdWRlICJDbGlw
Ym9hcmQuaCIKICNpbmNsdWRlICJDb250ZXh0TWVudS5oIgpAQCAtNzYsOCArNzcsOCBAQAogI2lu
Y2x1ZGUgIlJlbmRlclRoZW1lV2luLmgiCiAjaW5jbHVkZSAiU2NyZWVuLmgiCiAjaW5jbHVkZSAi
U2Nyb2xsQmFyLmgiCisjaW5jbHVkZSAiU2VhcmNoUG9wdXBNZW51LmgiCiAjaW5jbHVkZSAiVGV4
dEJvdW5kYXJpZXMuaCIKLSNpbmNsdWRlICJUZXh0RmllbGQuaCIKICNpbmNsdWRlICJXaWRnZXQu
aCIKIAogI2RlZmluZSBub3RJbXBsZW1lbnRlZCgpIGRvIHsgXApAQCAtMTIxLDMwICsxMjIsMzYg
QEAgU3RyaW5nIHN1Ym1pdEJ1dHRvbkRlZmF1bHRMYWJlbCgpIHsgbm90SQogCiBib29sIEFYT2Jq
ZWN0Q2FjaGU6OmdBY2Nlc3NpYmlsaXR5RW5hYmxlZCA9IGZhbHNlOwogCit2b2lkIEJpdG1hcElt
YWdlOjpkcmF3VGlsZWQoR3JhcGhpY3NDb250ZXh0KiwgY29uc3QgRmxvYXRSZWN0JiwgY29uc3Qg
RmxvYXRSZWN0JiwgVGlsZVJ1bGUsIFRpbGVSdWxlLCBDb21wb3NpdGVPcGVyYXRvcikgeyBub3RJ
bXBsZW1lbnRlZCgpOyB9Citib29sIEJpdG1hcEltYWdlOjpnZXRIQklUTUFQKEhCSVRNQVApIHsg
bm90SW1wbGVtZW50ZWQoKTsgcmV0dXJuIGZhbHNlOyB9CisKIHZvaWQgQ2FjaGVkUmVzb3VyY2U6
OnNldEFsbERhdGEoUGxhdGZvcm1EYXRhKSB7IG5vdEltcGxlbWVudGVkKCk7IH0KIAogQ29udGV4
dE1lbnU6OkNvbnRleHRNZW51KGNvbnN0IEhpdFRlc3RSZXN1bHQmIHJlc3VsdCkgOiBtX2hpdFRl
c3RSZXN1bHQocmVzdWx0KSB7IG5vdEltcGxlbWVudGVkKCk7IH0KIENvbnRleHRNZW51Ojp+Q29u
dGV4dE1lbnUoKSB7IG5vdEltcGxlbWVudGVkKCk7IH0KLXZvaWQgQ29udGV4dE1lbnU6OmFwcGVu
ZEl0ZW0oY29uc3QgQ29udGV4dE1lbnVJdGVtJiBpdGVtKSB7IG5vdEltcGxlbWVudGVkKCk7IH0K
IHZvaWQgQ29udGV4dE1lbnU6OnNob3coKSB7IG5vdEltcGxlbWVudGVkKCk7IH0KK3ZvaWQgQ29u
dGV4dE1lbnU6OmFwcGVuZEl0ZW0oQ29udGV4dE1lbnVJdGVtJikgeyBub3RJbXBsZW1lbnRlZCgp
OyB9CiAKLUNvbnRleHRNZW51SXRlbTo6Q29udGV4dE1lbnVJdGVtKFBsYXRmb3JtTWVudUl0ZW1E
ZXNjcmlwdGlvbiwgQ29udGV4dE1lbnUqKSB7IG5vdEltcGxlbWVudGVkKCk7IH0KLUNvbnRleHRN
ZW51SXRlbTo6Q29udGV4dE1lbnVJdGVtKENvbnRleHRNZW51KiBwYXJlbnRNZW51LCBDb250ZXh0
TWVudSogc3ViTWVudSkgeyBub3RJbXBsZW1lbnRlZCgpOyB9Ci1Db250ZXh0TWVudUl0ZW06OkNv
bnRleHRNZW51SXRlbShDb250ZXh0TWVudUl0ZW1UeXBlIHR5cGUsIENvbnRleHRNZW51QWN0aW9u
IGFjdGlvbiwgY29uc3QgU3RyaW5nJiB0aXRsZSwgQ29udGV4dE1lbnUqIHBhcmVudE1lbnUsIENv
bnRleHRNZW51KiBzdWJNZW51KSB7IG5vdEltcGxlbWVudGVkKCk7IH0KK0NvbnRleHRNZW51SXRl
bTo6Q29udGV4dE1lbnVJdGVtKFBsYXRmb3JtTWVudUl0ZW1EZXNjcmlwdGlvbikgeyBub3RJbXBs
ZW1lbnRlZCgpOyB9CitDb250ZXh0TWVudUl0ZW06OkNvbnRleHRNZW51SXRlbShDb250ZXh0TWVu
dSopIHsgbm90SW1wbGVtZW50ZWQoKTsgfQorQ29udGV4dE1lbnVJdGVtOjpDb250ZXh0TWVudUl0
ZW0oQ29udGV4dE1lbnVJdGVtVHlwZSB0eXBlLCBDb250ZXh0TWVudUFjdGlvbiBhY3Rpb24sIGNv
bnN0IFN0cmluZyYgdGl0bGUsIENvbnRleHRNZW51KiBzdWJNZW51KSB7IG5vdEltcGxlbWVudGVk
KCk7IH0KIENvbnRleHRNZW51SXRlbTo6fkNvbnRleHRNZW51SXRlbSgpIHsgbm90SW1wbGVtZW50
ZWQoKTsgfQotUGxhdGZvcm1NZW51SXRlbURlc2NyaXB0aW9uIENvbnRleHRNZW51SXRlbTo6cGxh
dGZvcm1EZXNjcmlwdGlvbigpIGNvbnN0IHsgbm90SW1wbGVtZW50ZWQoKTsgcmV0dXJuIG1fcGxh
dGZvcm1EZXNjcmlwdGlvbjsgfQorUGxhdGZvcm1NZW51SXRlbURlc2NyaXB0aW9uIENvbnRleHRN
ZW51SXRlbTo6cmVsZWFzZVBsYXRmb3JtRGVzY3JpcHRpb24oKSB7IG5vdEltcGxlbWVudGVkKCk7
IHJldHVybiBtX3BsYXRmb3JtRGVzY3JpcHRpb247IH0KK0NvbnRleHRNZW51SXRlbVR5cGUgQ29u
dGV4dE1lbnVJdGVtOjp0eXBlKCkgY29uc3QgeyBub3RJbXBsZW1lbnRlZCgpOyByZXR1cm4gQWN0
aW9uVHlwZTsgfQordm9pZCBDb250ZXh0TWVudUl0ZW06OnNldFR5cGUoQ29udGV4dE1lbnVJdGVt
VHlwZSkgeyBub3RJbXBsZW1lbnRlZCgpOyB9CiBDb250ZXh0TWVudUFjdGlvbiBDb250ZXh0TWVu
dUl0ZW06OmFjdGlvbigpIGNvbnN0IHsgbm90SW1wbGVtZW50ZWQoKTsgcmV0dXJuIENvbnRleHRN
ZW51SXRlbVRhZ05vQWN0aW9uOyB9Ci12b2lkIENvbnRleHRNZW51SXRlbTo6c2V0QWN0aW9uKENv
bnRleHRNZW51QWN0aW9uIGFjdGlvbikgeyBub3RJbXBsZW1lbnRlZCgpOyB9Cit2b2lkIENvbnRl
eHRNZW51SXRlbTo6c2V0QWN0aW9uKENvbnRleHRNZW51QWN0aW9uKSB7IG5vdEltcGxlbWVudGVk
KCk7IH0KIFN0cmluZyBDb250ZXh0TWVudUl0ZW06OnRpdGxlKCkgY29uc3QgeyBub3RJbXBsZW1l
bnRlZCgpOyByZXR1cm4gU3RyaW5nKCk7IH0KLXZvaWQgQ29udGV4dE1lbnVJdGVtOjpzZXRUaXRs
ZShTdHJpbmcgdGl0bGUpIHsgbm90SW1wbGVtZW50ZWQoKTsgfQordm9pZCBDb250ZXh0TWVudUl0
ZW06OnNldFRpdGxlKGNvbnN0IFN0cmluZyYpIHsgbm90SW1wbGVtZW50ZWQoKTsgfQogUGxhdGZv
cm1NZW51RGVzY3JpcHRpb24gQ29udGV4dE1lbnVJdGVtOjpwbGF0Zm9ybVN1Yk1lbnUoKSBjb25z
dCB7IG5vdEltcGxlbWVudGVkKCk7IHJldHVybiAwOyB9Ci12b2lkIENvbnRleHRNZW51SXRlbTo6
c2V0U3ViTWVudShDb250ZXh0TWVudSogc3ViTWVudSkgeyBub3RJbXBsZW1lbnRlZCgpOyB9Cit2
b2lkIENvbnRleHRNZW51SXRlbTo6c2V0U3ViTWVudShDb250ZXh0TWVudSopIHsgbm90SW1wbGVt
ZW50ZWQoKTsgfQordm9pZCBDb250ZXh0TWVudUl0ZW06OnNldENoZWNrZWQoYm9vbCkgeyBub3RJ
bXBsZW1lbnRlZCgpOyB9Cit2b2lkIENvbnRleHRNZW51SXRlbTo6c2V0RW5hYmxlZChib29sKSB7
IG5vdEltcGxlbWVudGVkKCk7IH0KIAogdm9pZCBEb2N1bWVudExvYWRlcjo6c2V0RnJhbWUoRnJh
bWUqKSB7IG5vdEltcGxlbWVudGVkKCk7IH0KIEZyYW1lTG9hZGVyKiBEb2N1bWVudExvYWRlcjo6
ZnJhbWVMb2FkZXIoKSBjb25zdCB7IG5vdEltcGxlbWVudGVkKCk7IHJldHVybiBtX2ZyYW1lLT5s
b2FkZXIoKTsgfQogc3RhdGljIEtVUkwgZW1wdHlLVVJMRm9yRG9jdW1lbnRMb2FkZXI7CiBjb25z
dCBLVVJMJiBEb2N1bWVudExvYWRlcjo6VVJMKCkgY29uc3QgeyBub3RJbXBsZW1lbnRlZCgpOyBy
ZXR1cm4gZW1wdHlLVVJMRm9yRG9jdW1lbnRMb2FkZXI7IH0KLWJvb2wgRG9jdW1lbnRMb2FkZXI6
OmlzU3RvcHBpbmcoKSBjb25zdCB7IG5vdEltcGxlbWVudGVkKCk7IHJldHVybiBmYWxzZTsgfQog
dm9pZCBEb2N1bWVudExvYWRlcjo6c3RvcExvYWRpbmcoKSB7IG5vdEltcGxlbWVudGVkKCk7IH0K
IHZvaWQgRG9jdW1lbnRMb2FkZXI6OnNldExvYWRpbmcoYm9vbCkgeyBub3RJbXBsZW1lbnRlZCgp
OyB9CiB2b2lkIERvY3VtZW50TG9hZGVyOjp1cGRhdGVMb2FkaW5nKCkgeyBub3RJbXBsZW1lbnRl
ZCgpOyB9CkBAIC0xNTgsNyArMTY1LDcgQEAgYm9vbCBFZGl0b3I6OmlzU2VsZWN0aW9uVW5ncmFt
bWF0aWNhbCgpIAogYm9vbCBFZGl0b3I6OmlzU2VsZWN0aW9uTWlzc3BlbGxlZCgpIHsgbm90SW1w
bGVtZW50ZWQoKTsgcmV0dXJuIGZhbHNlOyB9CiBWZWN0b3I8U3RyaW5nPiBFZGl0b3I6Omd1ZXNz
ZXNGb3JNaXNzcGVsbGVkU2VsZWN0aW9uKCkgeyBub3RJbXBsZW1lbnRlZCgpOyByZXR1cm4gVmVj
dG9yPFN0cmluZz4oKTsgfQogVmVjdG9yPFN0cmluZz4gRWRpdG9yOjpndWVzc2VzRm9yVW5ncmFt
bWF0aWNhbFNlbGVjdGlvbigpIHsgbm90SW1wbGVtZW50ZWQoKTsgcmV0dXJuIFZlY3RvcjxTdHJp
bmc+KCk7IH0KLXZvaWQgRWRpdG9yOjptYXJrTWlzc3BlbGxpbmdzSW5BZGphY2VudFdvcmRzKGNv
bnN0IFZpc2libGVQb3NpdGlvbiYpIHsgbm90SW1wbGVtZW50ZWQoKTsgfQordm9pZCBFZGl0b3I6
Om1hcmtNaXNzcGVsbGluZ3NBZnRlclR5cGluZ1RvUG9zaXRpb24oY29uc3QgVmlzaWJsZVBvc2l0
aW9uJikgeyBub3RJbXBsZW1lbnRlZCgpOyB9CiBQYXNzUmVmUHRyPENsaXBib2FyZD4gRWRpdG9y
OjpuZXdHZW5lcmFsQ2xpcGJvYXJkKENsaXBib2FyZEFjY2Vzc1BvbGljeSBwb2xpY3kpIHsgbm90
SW1wbGVtZW50ZWQoKTsgcmV0dXJuIDA7IH0KIAogYm9vbCBFdmVudEhhbmRsZXI6OnRhYnNUb0xp
bmtzKEtleWJvYXJkRXZlbnQqIGV2ZW50KSBjb25zdCB7IG5vdEltcGxlbWVudGVkKCk7IHJldHVy
biBmYWxzZTsgfQpAQCAtMjM0LDcgKzI0MSw2IEBAIHZvaWQgR3JhcGhpY3NDb250ZXh0OjpiZWdp
blRyYW5zcGFyZW5jeUwKIHZvaWQgR3JhcGhpY3NDb250ZXh0OjplbmRUcmFuc3BhcmVuY3lMYXll
cigpIHsgbm90SW1wbGVtZW50ZWQoKTsgfQogdm9pZCBHcmFwaGljc0NvbnRleHQ6OmNsZWFyUmVj
dChjb25zdCBGbG9hdFJlY3QmKSB7IG5vdEltcGxlbWVudGVkKCk7IH0KIHZvaWQgR3JhcGhpY3ND
b250ZXh0OjpzdHJva2VSZWN0KGNvbnN0IEZsb2F0UmVjdCYsIGZsb2F0KSB7IG5vdEltcGxlbWVu
dGVkKCk7IH0KLXZvaWQgR3JhcGhpY3NDb250ZXh0OjpzZXRMaW5lV2lkdGgoZmxvYXQpIHsgbm90
SW1wbGVtZW50ZWQoKTsgfQogdm9pZCBHcmFwaGljc0NvbnRleHQ6OnNldExpbmVDYXAoTGluZUNh
cCkgeyBub3RJbXBsZW1lbnRlZCgpOyB9CiB2b2lkIEdyYXBoaWNzQ29udGV4dDo6c2V0TGluZUpv
aW4oTGluZUpvaW4pIHsgbm90SW1wbGVtZW50ZWQoKTsgfQogdm9pZCBHcmFwaGljc0NvbnRleHQ6
OnNldE1pdGVyTGltaXQoZmxvYXQpIHsgbm90SW1wbGVtZW50ZWQoKTsgfQpAQCAtMjU1LDkgKzI2
MSw2IEBAIEljb25EYXRhYmFzZSogSWNvbkRhdGFiYXNlOjpzaGFyZWRJY29uRGEKIGJvb2wgSWNv
bkRhdGFiYXNlOjpzZXRJY29uVVJMRm9yUGFnZVVSTChjb25zdCBTdHJpbmcmIGljb25VUkwsIGNv
bnN0IFN0cmluZyYgcGFnZVVSTCkgeyBub3RJbXBsZW1lbnRlZCgpOyByZXR1cm4gZmFsc2U7IH0K
IHZvaWQgSWNvbkRhdGFiYXNlOjpzZXRJY29uRGF0YUZvckljb25VUkwoY29uc3Qgdm9pZCogZGF0
YSwgaW50IHNpemUsIGNvbnN0IFN0cmluZyYpIHsgbm90SW1wbGVtZW50ZWQoKTsgfQogCi12b2lk
IEltYWdlOjpkcmF3VGlsZWQoR3JhcGhpY3NDb250ZXh0KiwgY29uc3QgRmxvYXRSZWN0JiwgY29u
c3QgRmxvYXRSZWN0JiwgVGlsZVJ1bGUsIFRpbGVSdWxlLCBDb21wb3NpdGVPcGVyYXRvcikgeyBu
b3RJbXBsZW1lbnRlZCgpOyB9Ci1ib29sIEltYWdlOjpnZXRIQklUTUFQKEhCSVRNQVApIHsgbm90
SW1wbGVtZW50ZWQoKTsgcmV0dXJuIGZhbHNlOyB9Ci0KIEhJTlNUQU5DRSBQYWdlOjpzX2luc3Rh
bmNlSGFuZGxlID0gMDsKIAogUGFzdGVib2FyZCogUGFzdGVib2FyZDo6Z2VuZXJhbFBhc3RlYm9h
cmQoKSB7IG5vdEltcGxlbWVudGVkKCk7IHJldHVybiAwOyB9CkBAIC0zNDEsMzUgKzM0NCw5IEBA
IHZvaWQgU2Nyb2xsVmlldzo6c2V0RnJhbWVHZW9tZXRyeShjb25zdCAKIEludFJlY3QgU2Nyb2xs
Vmlldzo6d2luZG93UmVzaXplclJlY3QoKSB7IG5vdEltcGxlbWVudGVkKCk7IHJldHVybiBJbnRS
ZWN0KCk7IH0KIGJvb2wgU2Nyb2xsVmlldzo6cmVzaXplck92ZXJsYXBzQ29udGVudCgpIGNvbnN0
IHsgbm90SW1wbGVtZW50ZWQoKTsgcmV0dXJuIGZhbHNlOyB9CiAKLXZvaWQgVGV4dEZpZWxkOjpz
ZWxlY3RBbGwoKSB7IG5vdEltcGxlbWVudGVkKCk7IH0KLXZvaWQgVGV4dEZpZWxkOjphZGRTZWFy
Y2hSZXN1bHQoKSB7IG5vdEltcGxlbWVudGVkKCk7IH0KLWludCBUZXh0RmllbGQ6OnNlbGVjdGlv
blN0YXJ0KCkgY29uc3QgeyBub3RJbXBsZW1lbnRlZCgpOyByZXR1cm4gMDsgfQotYm9vbCBUZXh0
RmllbGQ6Omhhc1NlbGVjdGVkVGV4dCgpIGNvbnN0IHsgbm90SW1wbGVtZW50ZWQoKTsgcmV0dXJu
IDA7IH0KLVN0cmluZyBUZXh0RmllbGQ6OnNlbGVjdGVkVGV4dCgpIGNvbnN0IHsgbm90SW1wbGVt
ZW50ZWQoKTsgcmV0dXJuIFN0cmluZygpOyB9Ci12b2lkIFRleHRGaWVsZDo6c2V0QXV0b1NhdmVO
YW1lKFN0cmluZyBjb25zdCYpIHsgbm90SW1wbGVtZW50ZWQoKTsgfQotYm9vbCBUZXh0RmllbGQ6
OmNoZWNrc0Rlc2NlbmRhbnRzRm9yRm9jdXMoKSBjb25zdCB7IG5vdEltcGxlbWVudGVkKCk7IHJl
dHVybiBmYWxzZTsgfQotdm9pZCBUZXh0RmllbGQ6OnNldFNlbGVjdGlvbihpbnQsaW50KSB7IG5v
dEltcGxlbWVudGVkKCk7IH0KLXZvaWQgVGV4dEZpZWxkOjpzZXRNYXhSZXN1bHRzKGludCkgeyBu
b3RJbXBsZW1lbnRlZCgpOyB9Ci1ib29sIFRleHRGaWVsZDo6ZWRpdGVkKCkgY29uc3QgeyBub3RJ
bXBsZW1lbnRlZCgpOyByZXR1cm4gMDsgfQotV2lkZ2V0OjpGb2N1c1BvbGljeSBUZXh0RmllbGQ6
OmZvY3VzUG9saWN5KCkgY29uc3QgeyBub3RJbXBsZW1lbnRlZCgpOyByZXR1cm4gTm9Gb2N1czsg
fQotVGV4dEZpZWxkOjpUZXh0RmllbGQoKSB7IG5vdEltcGxlbWVudGVkKCk7IH0KLVRleHRGaWVs
ZDo6flRleHRGaWVsZCgpIHsgbm90SW1wbGVtZW50ZWQoKTsgfQotdm9pZCBUZXh0RmllbGQ6OnNl
dEZvbnQoV2ViQ29yZTo6Rm9udCBjb25zdCYpIHsgbm90SW1wbGVtZW50ZWQoKTsgfQotdm9pZCBU
ZXh0RmllbGQ6OnNldEFsaWdubWVudChIb3Jpem9udGFsQWxpZ25tZW50KSB7IG5vdEltcGxlbWVu
dGVkKCk7IH0KLXZvaWQgVGV4dEZpZWxkOjpzZXRXcml0aW5nRGlyZWN0aW9uKFRleHREaXJlY3Rp
b24pIHsgbm90SW1wbGVtZW50ZWQoKTsgfQotaW50IFRleHRGaWVsZDo6bWF4TGVuZ3RoKCkgY29u
c3QgeyBub3RJbXBsZW1lbnRlZCgpOyByZXR1cm4gMDsgfQotdm9pZCBUZXh0RmllbGQ6OnNldE1h
eExlbmd0aChpbnQpIHsgbm90SW1wbGVtZW50ZWQoKTsgfQotU3RyaW5nIFRleHRGaWVsZDo6dGV4
dCgpIGNvbnN0IHsgbm90SW1wbGVtZW50ZWQoKTsgcmV0dXJuIFN0cmluZygpOyB9Ci12b2lkIFRl
eHRGaWVsZDo6c2V0VGV4dChTdHJpbmcgY29uc3QmKSB7IG5vdEltcGxlbWVudGVkKCk7IH0KLWlu
dCBUZXh0RmllbGQ6OmN1cnNvclBvc2l0aW9uKCkgY29uc3QgeyBub3RJbXBsZW1lbnRlZCgpOyBy
ZXR1cm4gMDsgfQotdm9pZCBUZXh0RmllbGQ6OnNldEN1cnNvclBvc2l0aW9uKGludCkgeyBub3RJ
bXBsZW1lbnRlZCgpOyB9Ci12b2lkIFRleHRGaWVsZDo6c2V0RWRpdGVkKGJvb2wpIHsgbm90SW1w
bGVtZW50ZWQoKTsgfQotdm9pZCBUZXh0RmllbGQ6OnNldFJlYWRPbmx5KGJvb2wpIHsgbm90SW1w
bGVtZW50ZWQoKTsgfQotdm9pZCBUZXh0RmllbGQ6OnNldFBsYWNlaG9sZGVyU3RyaW5nKFN0cmlu
ZyBjb25zdCYpIHsgbm90SW1wbGVtZW50ZWQoKTsgfQotdm9pZCBUZXh0RmllbGQ6OnNldENvbG9y
cyhDb2xvciBjb25zdCYsQ29sb3IgY29uc3QmKSB7IG5vdEltcGxlbWVudGVkKCk7IH0KLUludFNp
emUgVGV4dEZpZWxkOjpzaXplRm9yQ2hhcmFjdGVyV2lkdGgoaW50KSBjb25zdCB7IG5vdEltcGxl
bWVudGVkKCk7IHJldHVybiBJbnRTaXplKCk7IH0KLWludCBUZXh0RmllbGQ6OmJhc2VsaW5lUG9z
aXRpb24oaW50KSBjb25zdCB7IG5vdEltcGxlbWVudGVkKCk7IHJldHVybiAwOyB9Ci12b2lkIFRl
eHRGaWVsZDo6c2V0TGl2ZVNlYXJjaChib29sKSB7IG5vdEltcGxlbWVudGVkKCk7IH0KK3ZvaWQg
U2VhcmNoUG9wdXBNZW51OjpzYXZlUmVjZW50U2VhcmNoZXMoY29uc3QgQXRvbWljU3RyaW5nJiBu
YW1lLCBjb25zdCBWZWN0b3I8U3RyaW5nPiYgc2VhcmNoSXRlbXMpIHsgbm90SW1wbGVtZW50ZWQo
KTsgfQordm9pZCBTZWFyY2hQb3B1cE1lbnU6OmxvYWRSZWNlbnRTZWFyY2hlcyhjb25zdCBBdG9t
aWNTdHJpbmcmIG5hbWUsIFZlY3RvcjxTdHJpbmc+JiBzZWFyY2hJdGVtcykgeyBub3RJbXBsZW1l
bnRlZCgpOyB9CitTZWFyY2hQb3B1cE1lbnU6OlNlYXJjaFBvcHVwTWVudShQb3B1cE1lbnVDbGll
bnQqIGNsaWVudCkgOiBQb3B1cE1lbnUoY2xpZW50KSB7IG5vdEltcGxlbWVudGVkKCk7IH0KIAog
dm9pZCBXaWRnZXQ6OmVuYWJsZUZsdXNoRHJhd2luZygpIHsgbm90SW1wbGVtZW50ZWQoKTsgfQog
Ym9vbCBXaWRnZXQ6OmlzRW5hYmxlZCgpIGNvbnN0IHsgbm90SW1wbGVtZW50ZWQoKTsgcmV0dXJu
IDA7IH0KSW5kZXg6IFdlYktpdC9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0L0NoYW5n
ZUxvZwkocmV2aXNpb24gMTg1NDApCisrKyBXZWJLaXQvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkp
CkBAIC0xLDMgKzEsMTkgQEAKKzIwMDctMDEtMDIgIERvbiBHaWJzb24gIDxkZ2lic29uNzdAZ21h
aWwuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IGh0dHA6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTExOTAwOgorICAgICAgICBX
aW5kb3dzIGJ1aWxkIGJ1c3RhZ2UKKworICAgICAgICAqIENPTS9DaHJvbWVDbGllbnRXaW4uY3Bw
OgorICAgICAgICAoQ2hyb21lQ2xpZW50V2luOjphZGRNZXNzYWdlVG9Db25zb2xlKToKKyAgICAg
ICAgKENocm9tZUNsaWVudFdpbjo6cnVuQmVmb3JlVW5sb2FkQ29uZmlybVBhbmVsKToKKyAgICAg
ICAgKiBDT00vQ2hyb21lQ2xpZW50V2luLmg6CisgICAgICAgICogQ09NL0NvbnRleHRNZW51Q2xp
ZW50V2luLmNwcDoKKyAgICAgICAgKENvbnRleHRNZW51Q2xpZW50V2luOjpjb250ZXh0TWVudUl0
ZW1TZWxlY3RlZCk6CisgICAgICAgICogQ09NL0NvbnRleHRNZW51Q2xpZW50V2luLmg6CisgICAg
ICAgICogV2ViS2l0LnZjcHJvai9XZWJLaXQudmNwcm9qOgorCiAyMDA3LTAxLTAyICBKb2huIFN1
bGxpdmFuICA8c3VsbGl2YW5AYXBwbGUuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IEtldmlu
IERlY2tlcgpJbmRleDogV2ViS2l0L0NPTS9DaHJvbWVDbGllbnRXaW4uY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFdlYktpdC9DT00vQ2hyb21lQ2xpZW50V2luLmNwcAkocmV2aXNpb24gMTg1MzIpCisrKyBX
ZWJLaXQvQ09NL0Nocm9tZUNsaWVudFdpbi5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTE1Miw4ICsx
NTIsOCBAQCB2b2lkIENocm9tZUNsaWVudFdpbjo6c2V0UmVzaXphYmxlKGJvb2wpCiB9CiAKIHZv
aWQgQ2hyb21lQ2xpZW50V2luOjphZGRNZXNzYWdlVG9Db25zb2xlKGNvbnN0IFdlYkNvcmU6OlN0
cmluZyYsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBpbnQsCi0g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBXZWJDb3JlOjpTdHJpbmcmKQor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgaW50LAor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgV2ViQ29yZTo6
U3RyaW5nJikKIHsKICAgICBub3RJbXBsZW1lbnRlZCgpOwogfQpAQCAtMTY0LDcgKzE2NCw4IEBA
IGJvb2wgQ2hyb21lQ2xpZW50V2luOjpjYW5SdW5CZWZvcmVVbmxvYWQKICAgICByZXR1cm4gZmFs
c2U7CiB9CiAKLWJvb2wgQ2hyb21lQ2xpZW50V2luOjpydW5CZWZvcmVVbmxvYWRDb25maXJtUGFu
ZWwoY29uc3QgU3RyaW5nJiwgRnJhbWUqKQorYm9vbCBDaHJvbWVDbGllbnRXaW46OnJ1bkJlZm9y
ZVVubG9hZENvbmZpcm1QYW5lbChjb25zdCBXZWJDb3JlOjpTdHJpbmcmLAorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBXZWJDb3JlOjpGcmFtZSopCiB7
CiAgICAgbm90SW1wbGVtZW50ZWQoKTsKICAgICByZXR1cm4gZmFsc2U7CkluZGV4OiBXZWJLaXQv
Q09NL0Nocm9tZUNsaWVudFdpbi5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdC9DT00vQ2hyb21lQ2xp
ZW50V2luLmgJKHJldmlzaW9uIDE4NTMyKQorKysgV2ViS2l0L0NPTS9DaHJvbWVDbGllbnRXaW4u
aAkod29ya2luZyBjb3B5KQpAQCAtNzEsNyArNzEsOCBAQCBwdWJsaWM6CiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgV2ViQ29yZTo6U3RyaW5nJiBzb3VyY2VJRCk7
CiAKICAgICB2aXJ0dWFsIGJvb2wgY2FuUnVuQmVmb3JlVW5sb2FkQ29uZmlybVBhbmVsKCk7Ci0g
ICAgdmlydHVhbCBib29sIHJ1bkJlZm9yZVVubG9hZENvbmZpcm1QYW5lbChjb25zdCBTdHJpbmcm
IG1lc3NhZ2UsIEZyYW1lKiBmcmFtZSk7CisgICAgdmlydHVhbCBib29sIHJ1bkJlZm9yZVVubG9h
ZENvbmZpcm1QYW5lbChjb25zdCBXZWJDb3JlOjpTdHJpbmcmIG1lc3NhZ2UsCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBXZWJDb3JlOjpGcmFtZSogZnJhbWUp
OwogCiAgICAgdmlydHVhbCB2b2lkIGNsb3NlV2luZG93U29vbigpOwogfTsKSW5kZXg6IFdlYktp
dC9DT00vQ29udGV4dE1lbnVDbGllbnRXaW4uY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdC9DT00v
Q29udGV4dE1lbnVDbGllbnRXaW4uY3BwCShyZXZpc2lvbiAxODUzMikKKysrIFdlYktpdC9DT00v
Q29udGV4dE1lbnVDbGllbnRXaW4uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00NCwxMyArNDQsOCBA
QCB2b2lkIENvbnRleHRNZW51Q2xpZW50V2luOjphZGRDdXN0b21Db250CiAgICAgbm90SW1wbGVt
ZW50ZWQoKTsKIH0KIAotdm9pZCBDb250ZXh0TWVudUNsaWVudFdpbjo6Y29udGV4dE1lbnVJdGVt
U2VsZWN0ZWQoCi0gICAgY29uc3QgV2ViQ29yZTo6Q29udGV4dE1lbnVJdGVtKikKLXsKLSAgICBu
b3RJbXBsZW1lbnRlZCgpOwotfQotCi12b2lkIENvbnRleHRNZW51Q2xpZW50V2luOjpjb3B5TGlu
a1RvQ2xpcGJvYXJkKGNvbnN0IFdlYkNvcmU6OkhpdFRlc3RSZXN1bHQmKQordm9pZCBDb250ZXh0
TWVudUNsaWVudFdpbjo6Y29udGV4dE1lbnVJdGVtU2VsZWN0ZWQoV2ViQ29yZTo6Q29udGV4dE1l
bnVJdGVtKiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGNvbnN0IFdlYkNvcmU6OkNvbnRleHRNZW51KikKIHsKICAgICBub3RJbXBsZW1lbnRlZCgp
OwogfQpJbmRleDogV2ViS2l0L0NPTS9Db250ZXh0TWVudUNsaWVudFdpbi5oCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFdlYktpdC9DT00vQ29udGV4dE1lbnVDbGllbnRXaW4uaAkocmV2aXNpb24gMTg1MzIpCisr
KyBXZWJLaXQvQ09NL0NvbnRleHRNZW51Q2xpZW50V2luLmgJKHdvcmtpbmcgY29weSkKQEAgLTM2
LDkgKzM2LDkgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBjb250ZXh0TWVudURlc3Ryb3ll
ZCgpOwogCiAgICAgdmlydHVhbCB2b2lkIGFkZEN1c3RvbUNvbnRleHRNZW51SXRlbXMoV2ViQ29y
ZTo6Q29udGV4dE1lbnUqKTsKLSAgICB2aXJ0dWFsIHZvaWQgY29udGV4dE1lbnVJdGVtU2VsZWN0
ZWQoY29uc3QgV2ViQ29yZTo6Q29udGV4dE1lbnVJdGVtKik7CisgICAgdmlydHVhbCB2b2lkIGNv
bnRleHRNZW51SXRlbVNlbGVjdGVkKFdlYkNvcmU6OkNvbnRleHRNZW51SXRlbSosCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IFdlYkNvcmU6OkNvbnRleHRN
ZW51Kik7CiAKLSAgICB2aXJ0dWFsIHZvaWQgY29weUxpbmtUb0NsaXBib2FyZChjb25zdCBXZWJD
b3JlOjpIaXRUZXN0UmVzdWx0Jik7CiAgICAgdmlydHVhbCB2b2lkIGRvd25sb2FkVVJMKGNvbnN0
IFdlYkNvcmU6OktVUkwmKTsKICAgICB2aXJ0dWFsIHZvaWQgY29weUltYWdlVG9DbGlwYm9hcmQo
Y29uc3QgV2ViQ29yZTo6SGl0VGVzdFJlc3VsdCYpOwogICAgIHZpcnR1YWwgdm9pZCBsb29rVXBJ
bkRpY3Rpb25hcnkoV2ViQ29yZTo6RnJhbWUqKTsKSW5kZXg6IFdlYktpdC9XZWJLaXQudmNwcm9q
L1dlYktpdC52Y3Byb2oKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0L1dlYktpdC52Y3Byb2ovV2ViS2l0
LnZjcHJvagkocmV2aXNpb24gMTg1MzIpCisrKyBXZWJLaXQvV2ViS2l0LnZjcHJvai9XZWJLaXQu
dmNwcm9qCSh3b3JraW5nIGNvcHkpCkBAIC0yNDYsNiArMjQ2LDEwIEBACiAJCQkJPgogCQkJPC9G
aWxlPgogCQkJPEZpbGUKKwkJCQlSZWxhdGl2ZVBhdGg9Ii4uXENPTVxXZWJGcmFtZUxvYWRlckNs
aWVudC5oIgorCQkJCT4KKwkJCTwvRmlsZT4KKwkJCTxGaWxlCiAJCQkJUmVsYXRpdmVQYXRoPSIu
LlxDT01cV2ViSGlzdG9yeUl0ZW0uaCIKIAkJCQk+CiAJCQk8L0ZpbGU+CkBAIC0zMDIsMTAgKzMw
Niw2IEBACiAJCQkJPgogCQkJPC9GaWxlPgogCQkJPEZpbGUKLQkJCQlSZWxhdGl2ZVBhdGg9Ii4u
XENPTVxXZWJGcmFtZUxvYWRlckNsaWVudC5oIgotCQkJCT4KLQkJCTwvRmlsZT4KLQkJCTxGaWxl
CiAJCQkJUmVsYXRpdmVQYXRoPSIuLlxDT01cV2ViSGlzdG9yeUl0ZW0uY3BwIgogCQkJCT4KIAkJ
CTwvRmlsZT4K
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>12200</attachid>
            <date>2007-01-03 13:58:11 -0800</date>
            <delta_ts>2007-01-04 05:04:55 -0800</delta_ts>
            <desc>patch for r18551</desc>
            <filename>patch</filename>
            <type>text/plain</type>
            <size>62172</size>
            <attacher name="Don Gibson">dgibson77</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiAxODU1MSkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsNzcgQEAKKzIwMDctMDEtMDMgIERvbiBHaWJzb24gIDxkZ2lic29uNzdAZ21haWwu
Y29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIGh0
dHA6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTExOTAwOgorICAgICAgICBXaW5k
b3dzIGJ1aWxkIGJ1c3RhZ2UKKworICAgICAgICAqIFdlYkNvcmUudmNwcm9qL1dlYkNvcmUvV2Vi
Q29yZS52Y3Byb2o6CisgICAgICAgICogYnJpZGdlL3dpbi9GcmFtZVdpbi5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpGcmFtZVdpbjo6RnJhbWVXaW4pOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBo
aWNzL0JpdG1hcEltYWdlLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3ND
b250ZXh0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dDo6c2V0UGxhdGZv
cm1TdHJva2VDb2xvcik6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2UuaDoKKyAg
ICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9HcmFwaGljc0NvbnRleHRDYWlyby5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQ6OmRyYXdSZWN0KToKKyAgICAgICAg
KFdlYkNvcmU6OmFkanVzdExpbmVUb1BpeGVsQm91bmRhcmllcyk6CisgICAgICAgIChXZWJDb3Jl
OjpHcmFwaGljc0NvbnRleHQ6OmRyYXdMaW5lKToKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNz
Q29udGV4dDo6ZHJhd0VsbGlwc2UpOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0
OjpzdHJva2VBcmMpOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0OjpkcmF3Q29u
dmV4UG9seWdvbik6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vSW1hZ2VDYWly
by5jcHA6CisgICAgICAgIChXZWJDb3JlOjpCaXRtYXBJbWFnZTo6Y2hlY2tGb3JTb2xpZENvbG9y
KToKKyAgICAgICAgKFdlYkNvcmU6OkJpdG1hcEltYWdlOjpkcmF3KToKKyAgICAgICAgKFdlYkNv
cmU6OkJpdG1hcEltYWdlOjpkcmF3VGlsZWQpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNz
L3dpbi9JbWFnZVdpbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpCaXRtYXBJbWFnZTo6aW5pdFBs
YXRmb3JtRGF0YSk6CisgICAgICAgIChXZWJDb3JlOjpCaXRtYXBJbWFnZTo6aW52YWxpZGF0ZVBs
YXRmb3JtRGF0YSk6CisgICAgICAgIChXZWJDb3JlOjpJbWFnZTo6bG9hZFBsYXRmb3JtUmVzb3Vy
Y2UpOgorICAgICAgICAqIHBsYXRmb3JtL3dpbi9Gb250V2luLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkZvbnQ6OmRyYXdHbHlwaHMpOgorICAgICAgICAqIHBsYXRmb3JtL3dpbi9UZW1wb3JhcnlM
aW5rU3R1YnMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6dXNlcklkbGVUaW1lKToKKyAgICAgICAg
KFdlYkNvcmU6OkJpdG1hcEltYWdlOjpkcmF3VGlsZWQpOgorICAgICAgICAoV2ViQ29yZTo6Qml0
bWFwSW1hZ2U6OmdldEhCSVRNQVApOgorICAgICAgICAoV2ViQ29yZTo6Q29udGV4dE1lbnU6On5D
b250ZXh0TWVudSk6CisgICAgICAgIChXZWJDb3JlOjpDb250ZXh0TWVudTo6YXBwZW5kSXRlbSk6
CisgICAgICAgIChXZWJDb3JlOjpDb250ZXh0TWVudUl0ZW06OkNvbnRleHRNZW51SXRlbSk6Cisg
ICAgICAgIChXZWJDb3JlOjpDb250ZXh0TWVudUl0ZW06OnJlbGVhc2VQbGF0Zm9ybURlc2NyaXB0
aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OkNvbnRleHRNZW51SXRlbTo6dHlwZSk6CisgICAgICAg
IChXZWJDb3JlOjpDb250ZXh0TWVudUl0ZW06OnNldFR5cGUpOgorICAgICAgICAoV2ViQ29yZTo6
Q29udGV4dE1lbnVJdGVtOjpzZXRBY3Rpb24pOgorICAgICAgICAoV2ViQ29yZTo6Q29udGV4dE1l
bnVJdGVtOjpzZXRUaXRsZSk6CisgICAgICAgIChXZWJDb3JlOjpDb250ZXh0TWVudUl0ZW06OnNl
dFN1Yk1lbnUpOgorICAgICAgICAoV2ViQ29yZTo6Q29udGV4dE1lbnVJdGVtOjpzZXRDaGVja2Vk
KToKKyAgICAgICAgKFdlYkNvcmU6OkNvbnRleHRNZW51SXRlbTo6c2V0RW5hYmxlZCk6CisgICAg
ICAgIChXZWJDb3JlOjpEb2N1bWVudExvYWRlcjo6b3JpZ2luYWxSZXF1ZXN0KToKKyAgICAgICAg
KFdlYkNvcmU6OkRvY3VtZW50TG9hZGVyOjpyZXF1ZXN0KToKKyAgICAgICAgKFdlYkNvcmU6OkRv
Y3VtZW50TG9hZGVyOjp1bnJlYWNoYWJsZVVSTCk6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVu
dExvYWRlcjo6Z2V0UmVzcG9uc2VSZWZyZXNoQW5kTW9kaWZpZWRIZWFkZXJzKToKKyAgICAgICAg
KFdlYkNvcmU6OkRvY3VtZW50TG9hZGVyOjpyZXBsYWNlUmVxdWVzdFVSTEZvckFuY2hvclNjcm9s
bCk6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudExvYWRlcjo6c2V0Q29tbWl0dGVkKToKKyAg
ICAgICAgKFdlYkNvcmU6OkRvY3VtZW50TG9hZGVyOjppc0xvYWRpbmcpOgorICAgICAgICAoV2Vi
Q29yZTo6RG9jdW1lbnRMb2FkZXI6OnByZXBhcmVGb3JMb2FkU3RhcnQpOgorICAgICAgICAoV2Vi
Q29yZTo6RG9jdW1lbnRMb2FkZXI6OmlzQ2xpZW50UmVkaXJlY3QpOgorICAgICAgICAoV2ViQ29y
ZTo6RG9jdW1lbnRMb2FkZXI6OnRpdGxlKToKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50TG9h
ZGVyOjp1cmxGb3JIaXN0b3J5KToKKyAgICAgICAgKFdlYkNvcmU6OkVkaXRvcjo6bWFya01pc3Nw
ZWxsaW5nc0FmdGVyVHlwaW5nVG9Qb3NpdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZUxv
YWRlcjo6bG9hZCk6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZUxvYWRlcjo6cmVmZXJyZXIpOgor
ICAgICAgICAoV2ViQ29yZTo6RnJhbWVMb2FkZXI6OmRhdGFVUkxCYXNlRnJvbVJlcXVlc3QpOgor
ICAgICAgICAoV2ViQ29yZTo6RnJhbWVMb2FkZXI6Om9wZW5lZCk6CisgICAgICAgIChXZWJDb3Jl
OjpGcmFtZUxvYWRlcjo6YXBwbHlVc2VyQWdlbnQpOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhp
Y3NDb250ZXh0OjpzdHJva2VSZWN0KToKKyAgICAgICAgKFdlYkNvcmU6Okljb25EYXRhYmFzZTo6
aWNvbkZvclBhZ2VVUkwpOgorICAgICAgICAoV2ViQ29yZTo6SWNvbkRhdGFiYXNlOjpkZWZhdWx0
SWNvbik6CisgICAgICAgIChXZWJDb3JlOjpJY29uRGF0YWJhc2U6OnJldGFpbkljb25Gb3JQYWdl
VVJMKToKKyAgICAgICAgKFdlYkNvcmU6Okljb25EYXRhYmFzZTo6cmVsZWFzZUljb25Gb3JQYWdl
VVJMKToKKyAgICAgICAgKFdlYkNvcmU6OlBhZ2VDYWNoZTo6Y2xvc2UpOgorICAgICAgICAoV2Vi
Q29yZTo6UmVzb3VyY2VIYW5kbGU6OndpbGxMb2FkRnJvbUNhY2hlKToKKyAgICAgICAgKFdlYkNv
cmU6OlNlYXJjaFBvcHVwTWVudTo6c2F2ZVJlY2VudFNlYXJjaGVzKToKKyAgICAgICAgKFdlYkNv
cmU6OlNlYXJjaFBvcHVwTWVudTo6bG9hZFJlY2VudFNlYXJjaGVzKToKKyAgICAgICAgKFdlYkNv
cmU6OlNlYXJjaFBvcHVwTWVudTo6U2VhcmNoUG9wdXBNZW51KToKKwogMjAwNy0wMS0wMyAgTGFy
cyBLbm9sbCA8bGFyc0B0cm9sbHRlY2guY29tPgogCiAgICAgICAgIEZpeCB0aGUgUXQgYnVpbGQK
SW5kZXg6IFdlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS9XZWJDb3JlLnZjcHJvago9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBXZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2oJ
KHJldmlzaW9uIDE4NTUxKQorKysgV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlL1dlYkNv
cmUudmNwcm9qCSh3b3JraW5nIGNvcHkpCkBAIC00MSw3ICs0MSw3IEBACiAJCQk8VG9vbAogCQkJ
CU5hbWU9IlZDQ0xDb21waWxlclRvb2wiCiAJCQkJT3B0aW1pemF0aW9uPSIwIgotCQkJCUFkZGl0
aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXM9IiZxdW90OyQoUHJvamVjdERpcilcLi5cLi5cJnF1b3Q7
OyZxdW90OyQoUHJvamVjdERpcilcLi5cLi5cYmluZGluZ3NcanMmcXVvdDs7JnF1b3Q7JChQcm9q
ZWN0RGlyKVwuLlwuLlxicmlkZ2UmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwuLlwuLlxicmlk
Z2Vcd2luJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcilcLi5cLi5cY3NzJnF1b3Q7OyZxdW90OyQo
UHJvamVjdERpcilcLi5cLi5cZG9tJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcilcLi5cLi5cZWRp
dGluZyZxdW90OzsmcXVvdDskKFByb2plY3REaXIpXC4uXC4uXGh0bWwmcXVvdDs7JnF1b3Q7JChQ
cm9qZWN0RGlyKVwuLlwuLlxrc3ZnMlxtaXNjJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcilcLi5c
Li5cbG9hZGVyJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcilcLi5cLi5cbG9hZGVyXGljb24mcXVv
dDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwuLlwuLlxsb2FkZXJcd2luJnF1b3Q7OyZxdW90OyQoUHJv
amVjdERpcilcLi5cLi5ccGFnZSZxdW90OzsmcXVvdDskKFByb2plY3REaXIpXC4uXC4uXHBsYXRm
b3JtJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcilcLi5cLi5ccGxhdGZvcm1cZ3JhcGhpY3NcY2Fp
cm8mcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwuLlwuLlxwbGF0Zm9ybVxncmFwaGljc1xjYWly
b1xjYWlyb1xzcmMmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwuLlwuLlxwbGF0Zm9ybVxncmFw
aGljc1xjYWlyb1xwaXhtYW5cc3JjJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcilcLi5cLi5ccGxh
dGZvcm1caW1hZ2UtZGVjb2RlcnMmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwuLlwuLlxwbGF0
Zm9ybVxpbWFnZS1kZWNvZGVyc1xibXAmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwuLlwuLlxw
bGF0Zm9ybVxpbWFnZS1kZWNvZGVyc1xnaWYmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwuLlwu
LlxwbGF0Zm9ybVxpbWFnZS1kZWNvZGVyc1xpY28mcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwu
LlwuLlxwbGF0Zm9ybVxpbWFnZS1kZWNvZGVyc1xqcGVnJnF1b3Q7OyZxdW90OyQoUHJvamVjdERp
cilcLi5cLi5ccGxhdGZvcm1caW1hZ2UtZGVjb2RlcnNccG5nJnF1b3Q7OyZxdW90OyQoUHJvamVj
dERpcilcLi5cLi5ccGxhdGZvcm1caW1hZ2UtZGVjb2RlcnNceGJtJnF1b3Q7OyZxdW90OyQoUHJv
amVjdERpcilcLi5cLi5ccGxhdGZvcm1caW1hZ2UtZGVjb2RlcnNcemxpYiZxdW90OzsmcXVvdDsk
KFByb2plY3REaXIpXC4uXC4uXHBsYXRmb3JtXGdyYXBoaWNzJnF1b3Q7OyZxdW90OyQoUHJvamVj
dERpcilcLi5cLi5ccGxhdGZvcm1cbmV0d29yayZxdW90OzsmcXVvdDskKFByb2plY3REaXIpXC4u
XC4uXHBsYXRmb3JtXG5ldHdvcmtcd2luJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcilcLi5cLi5c
cGxhdGZvcm1cd2luJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcilcLi5cLi5ccmVuZGVyaW5nJnF1
b3Q7OyZxdW90OyQoUHJvamVjdERpcilcLi5cLi5ceG1sJnF1b3Q7OyZxdW90OyQoUHJvamVjdERp
cilcLi5cLi5cRGVyaXZlZFNvdXJjZXNcV2ViQ29yZSZxdW90OzsmcXVvdDskKFByb2plY3REaXIp
XC4uXC4uXC4uXGljb252XGluY2x1ZGUmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwuLlwuLlwu
LlxpY3VcaW5jbHVkZSZxdW90OzsmcXVvdDskKFByb2plY3REaXIpXC4uXC4uXC4uXEphdmFTY3Jp
cHRDb3JlJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcilcLi5cLi5cLi5cSmF2YVNjcmlwdENvcmVc
a2pzJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcilcLi5cLi5cLi5cSmF2YVNjcmlwdENvcmVcb3Mt
d2luMzImcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwuLlwuLlwuLlxsaWJ4bWxcaW5jbHVkZSZx
dW90OzsmcXVvdDskKFByb2plY3REaXIpXC4uXC4uXC4uXGxpYnhzbHRcaW5jbHVkZSZxdW90OyIK
KwkJCQlBZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzPSImcXVvdDskKFByb2plY3REaXIpXC4u
XC4uXCZxdW90OzsmcXVvdDskKFByb2plY3REaXIpXC4uXC4uXGJpbmRpbmdzXGpzJnF1b3Q7OyZx
dW90OyQoUHJvamVjdERpcilcLi5cLi5cYnJpZGdlJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcilc
Li5cLi5cYnJpZGdlXHdpbiZxdW90OzsmcXVvdDskKFByb2plY3REaXIpXC4uXC4uXGNzcyZxdW90
OzsmcXVvdDskKFByb2plY3REaXIpXC4uXC4uXGRvbSZxdW90OzsmcXVvdDskKFByb2plY3REaXIp
XC4uXC4uXGVkaXRpbmcmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwuLlwuLlxoaXN0b3J5JnF1
b3Q7OyZxdW90OyQoUHJvamVjdERpcilcLi5cLi5caHRtbCZxdW90OzsmcXVvdDskKFByb2plY3RE
aXIpXC4uXC4uXGtzdmcyXG1pc2MmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwuLlwuLlxsb2Fk
ZXImcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwuLlwuLlxsb2FkZXJcaWNvbiZxdW90OzsmcXVv
dDskKFByb2plY3REaXIpXC4uXC4uXGxvYWRlclx3aW4mcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGly
KVwuLlwuLlxwYWdlJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcilcLi5cLi5ccGxhdGZvcm0mcXVv
dDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwuLlwuLlxwbGF0Zm9ybVxncmFwaGljc1xjYWlybyZxdW90
OzsmcXVvdDskKFByb2plY3REaXIpXC4uXC4uXHBsYXRmb3JtXGdyYXBoaWNzXGNhaXJvXGNhaXJv
XHNyYyZxdW90OzsmcXVvdDskKFByb2plY3REaXIpXC4uXC4uXHBsYXRmb3JtXGdyYXBoaWNzXGNh
aXJvXHBpeG1hblxzcmMmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwuLlwuLlxwbGF0Zm9ybVxp
bWFnZS1kZWNvZGVycyZxdW90OzsmcXVvdDskKFByb2plY3REaXIpXC4uXC4uXHBsYXRmb3JtXGlt
YWdlLWRlY29kZXJzXGJtcCZxdW90OzsmcXVvdDskKFByb2plY3REaXIpXC4uXC4uXHBsYXRmb3Jt
XGltYWdlLWRlY29kZXJzXGdpZiZxdW90OzsmcXVvdDskKFByb2plY3REaXIpXC4uXC4uXHBsYXRm
b3JtXGltYWdlLWRlY29kZXJzXGljbyZxdW90OzsmcXVvdDskKFByb2plY3REaXIpXC4uXC4uXHBs
YXRmb3JtXGltYWdlLWRlY29kZXJzXGpwZWcmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwuLlwu
LlxwbGF0Zm9ybVxpbWFnZS1kZWNvZGVyc1xwbmcmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwu
LlwuLlxwbGF0Zm9ybVxpbWFnZS1kZWNvZGVyc1x4Ym0mcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGly
KVwuLlwuLlxwbGF0Zm9ybVxpbWFnZS1kZWNvZGVyc1x6bGliJnF1b3Q7OyZxdW90OyQoUHJvamVj
dERpcilcLi5cLi5ccGxhdGZvcm1cZ3JhcGhpY3MmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwu
LlwuLlxwbGF0Zm9ybVxuZXR3b3JrJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcilcLi5cLi5ccGxh
dGZvcm1cbmV0d29ya1x3aW4mcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwuLlwuLlxwbGF0Zm9y
bVx3aW4mcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwuLlwuLlxyZW5kZXJpbmcmcXVvdDs7JnF1
b3Q7JChQcm9qZWN0RGlyKVwuLlwuLlx4bWwmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwuLlwu
LlxEZXJpdmVkU291cmNlc1xXZWJDb3JlJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcilcLi5cLi5c
Li5caWNvbnZcaW5jbHVkZSZxdW90OzsmcXVvdDskKFByb2plY3REaXIpXC4uXC4uXC4uXGljdVxp
bmNsdWRlJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcilcLi5cLi5cLi5cSmF2YVNjcmlwdENvcmUm
cXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwuLlwuLlwuLlxKYXZhU2NyaXB0Q29yZVxranMmcXVv
dDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwuLlwuLlwuLlxKYXZhU2NyaXB0Q29yZVxvcy13aW4zMiZx
dW90OzsmcXVvdDskKFByb2plY3REaXIpXC4uXC4uXC4uXGxpYnhtbFxpbmNsdWRlJnF1b3Q7OyZx
dW90OyQoUHJvamVjdERpcilcLi5cLi5cLi5cbGlieHNsdFxpbmNsdWRlJnF1b3Q7IgogCQkJCVBy
ZXByb2Nlc3NvckRlZmluaXRpb25zPSJXSU4zMjtYU0xUX1NVUFBPUlQ7WFBBVEhfU1VQUE9SVCIK
IAkJCQlNaW5pbWFsUmVidWlsZD0idHJ1ZSIKIAkJCQlFeGNlcHRpb25IYW5kbGluZz0iMCIKQEAg
LTEwOCw3ICsxMDgsNyBAQAogCQkJLz4KIAkJCTxUb29sCiAJCQkJTmFtZT0iVkNDTENvbXBpbGVy
VG9vbCIKLQkJCQlBZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzPSImcXVvdDskKFByb2plY3RE
aXIpXC4uXC4uXCZxdW90OzsmcXVvdDskKFByb2plY3REaXIpXC4uXC4uXGJpbmRpbmdzXGpzJnF1
b3Q7OyZxdW90OyQoUHJvamVjdERpcilcLi5cLi5cYnJpZGdlJnF1b3Q7OyZxdW90OyQoUHJvamVj
dERpcilcLi5cLi5cYnJpZGdlXHdpbiZxdW90OzsmcXVvdDskKFByb2plY3REaXIpXC4uXC4uXGNz
cyZxdW90OzsmcXVvdDskKFByb2plY3REaXIpXC4uXC4uXGRvbSZxdW90OzsmcXVvdDskKFByb2pl
Y3REaXIpXC4uXC4uXGVkaXRpbmcmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwuLlwuLlxodG1s
JnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcilcLi5cLi5ca3N2ZzJcbWlzYyZxdW90OzsmcXVvdDsk
KFByb2plY3REaXIpXC4uXC4uXGxvYWRlciZxdW90OzsmcXVvdDskKFByb2plY3REaXIpXC4uXC4u
XGxvYWRlclxpY29uJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcilcLi5cLi5cbG9hZGVyXHdpbiZx
dW90OzsmcXVvdDskKFByb2plY3REaXIpXC4uXC4uXHBhZ2UmcXVvdDs7JnF1b3Q7JChQcm9qZWN0
RGlyKVwuLlwuLlxwbGF0Zm9ybSZxdW90OzsmcXVvdDskKFByb2plY3REaXIpXC4uXC4uXHBsYXRm
b3JtXGdyYXBoaWNzXGNhaXJvJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcilcLi5cLi5ccGxhdGZv
cm1cZ3JhcGhpY3NcY2Fpcm9cY2Fpcm9cc3JjJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcilcLi5c
Li5ccGxhdGZvcm1cZ3JhcGhpY3NcY2Fpcm9ccGl4bWFuXHNyYyZxdW90OzsmcXVvdDskKFByb2pl
Y3REaXIpXC4uXC4uXHBsYXRmb3JtXGltYWdlLWRlY29kZXJzJnF1b3Q7OyZxdW90OyQoUHJvamVj
dERpcilcLi5cLi5ccGxhdGZvcm1caW1hZ2UtZGVjb2RlcnNcYm1wJnF1b3Q7OyZxdW90OyQoUHJv
amVjdERpcilcLi5cLi5ccGxhdGZvcm1caW1hZ2UtZGVjb2RlcnNcZ2lmJnF1b3Q7OyZxdW90OyQo
UHJvamVjdERpcilcLi5cLi5ccGxhdGZvcm1caW1hZ2UtZGVjb2RlcnNcaWNvJnF1b3Q7OyZxdW90
OyQoUHJvamVjdERpcilcLi5cLi5ccGxhdGZvcm1caW1hZ2UtZGVjb2RlcnNcanBlZyZxdW90Ozsm
cXVvdDskKFByb2plY3REaXIpXC4uXC4uXHBsYXRmb3JtXGltYWdlLWRlY29kZXJzXHBuZyZxdW90
OzsmcXVvdDskKFByb2plY3REaXIpXC4uXC4uXHBsYXRmb3JtXGltYWdlLWRlY29kZXJzXHhibSZx
dW90OzsmcXVvdDskKFByb2plY3REaXIpXC4uXC4uXHBsYXRmb3JtXGltYWdlLWRlY29kZXJzXHps
aWImcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwuLlwuLlxwbGF0Zm9ybVxncmFwaGljcyZxdW90
OzsmcXVvdDskKFByb2plY3REaXIpXC4uXC4uXHBsYXRmb3JtXG5ldHdvcmsmcXVvdDs7JnF1b3Q7
JChQcm9qZWN0RGlyKVwuLlwuLlxwbGF0Zm9ybVxuZXR3b3JrXHdpbiZxdW90OzsmcXVvdDskKFBy
b2plY3REaXIpXC4uXC4uXHBsYXRmb3JtXHdpbiZxdW90OzsmcXVvdDskKFByb2plY3REaXIpXC4u
XC4uXHJlbmRlcmluZyZxdW90OzsmcXVvdDskKFByb2plY3REaXIpXC4uXC4uXHhtbCZxdW90Ozsm
cXVvdDskKFByb2plY3REaXIpXC4uXC4uXERlcml2ZWRTb3VyY2VzXFdlYkNvcmUmcXVvdDs7JnF1
b3Q7JChQcm9qZWN0RGlyKVwuLlwuLlwuLlxpY29udlxpbmNsdWRlJnF1b3Q7OyZxdW90OyQoUHJv
amVjdERpcilcLi5cLi5cLi5caWN1XGluY2x1ZGUmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwu
LlwuLlwuLlxKYXZhU2NyaXB0Q29yZSZxdW90OzsmcXVvdDskKFByb2plY3REaXIpXC4uXC4uXC4u
XEphdmFTY3JpcHRDb3JlXGtqcyZxdW90OzsmcXVvdDskKFByb2plY3REaXIpXC4uXC4uXC4uXEph
dmFTY3JpcHRDb3JlXG9zLXdpbjMyJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcilcLi5cLi5cLi5c
bGlieG1sXGluY2x1ZGUmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwuLlwuLlwuLlxsaWJ4c2x0
XGluY2x1ZGUmcXVvdDsiCisJCQkJQWRkaXRpb25hbEluY2x1ZGVEaXJlY3Rvcmllcz0iJnF1b3Q7
JChQcm9qZWN0RGlyKVwuLlwuLlwmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwuLlwuLlxiaW5k
aW5nc1xqcyZxdW90OzsmcXVvdDskKFByb2plY3REaXIpXC4uXC4uXGJyaWRnZSZxdW90OzsmcXVv
dDskKFByb2plY3REaXIpXC4uXC4uXGJyaWRnZVx3aW4mcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGly
KVwuLlwuLlxjc3MmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwuLlwuLlxkb20mcXVvdDs7JnF1
b3Q7JChQcm9qZWN0RGlyKVwuLlwuLlxlZGl0aW5nJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcilc
Li5cLi5caGlzdG9yeSZxdW90OzsmcXVvdDskKFByb2plY3REaXIpXC4uXC4uXGh0bWwmcXVvdDs7
JnF1b3Q7JChQcm9qZWN0RGlyKVwuLlwuLlxrc3ZnMlxtaXNjJnF1b3Q7OyZxdW90OyQoUHJvamVj
dERpcilcLi5cLi5cbG9hZGVyJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcilcLi5cLi5cbG9hZGVy
XGljb24mcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwuLlwuLlxsb2FkZXJcd2luJnF1b3Q7OyZx
dW90OyQoUHJvamVjdERpcilcLi5cLi5ccGFnZSZxdW90OzsmcXVvdDskKFByb2plY3REaXIpXC4u
XC4uXHBsYXRmb3JtJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcilcLi5cLi5ccGxhdGZvcm1cZ3Jh
cGhpY3NcY2Fpcm8mcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwuLlwuLlxwbGF0Zm9ybVxncmFw
aGljc1xjYWlyb1xjYWlyb1xzcmMmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwuLlwuLlxwbGF0
Zm9ybVxncmFwaGljc1xjYWlyb1xwaXhtYW5cc3JjJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcilc
Li5cLi5ccGxhdGZvcm1caW1hZ2UtZGVjb2RlcnMmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwu
LlwuLlxwbGF0Zm9ybVxpbWFnZS1kZWNvZGVyc1xibXAmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGly
KVwuLlwuLlxwbGF0Zm9ybVxpbWFnZS1kZWNvZGVyc1xnaWYmcXVvdDs7JnF1b3Q7JChQcm9qZWN0
RGlyKVwuLlwuLlxwbGF0Zm9ybVxpbWFnZS1kZWNvZGVyc1xpY28mcXVvdDs7JnF1b3Q7JChQcm9q
ZWN0RGlyKVwuLlwuLlxwbGF0Zm9ybVxpbWFnZS1kZWNvZGVyc1xqcGVnJnF1b3Q7OyZxdW90OyQo
UHJvamVjdERpcilcLi5cLi5ccGxhdGZvcm1caW1hZ2UtZGVjb2RlcnNccG5nJnF1b3Q7OyZxdW90
OyQoUHJvamVjdERpcilcLi5cLi5ccGxhdGZvcm1caW1hZ2UtZGVjb2RlcnNceGJtJnF1b3Q7OyZx
dW90OyQoUHJvamVjdERpcilcLi5cLi5ccGxhdGZvcm1caW1hZ2UtZGVjb2RlcnNcemxpYiZxdW90
OzsmcXVvdDskKFByb2plY3REaXIpXC4uXC4uXHBsYXRmb3JtXGdyYXBoaWNzJnF1b3Q7OyZxdW90
OyQoUHJvamVjdERpcilcLi5cLi5ccGxhdGZvcm1cbmV0d29yayZxdW90OzsmcXVvdDskKFByb2pl
Y3REaXIpXC4uXC4uXHBsYXRmb3JtXG5ldHdvcmtcd2luJnF1b3Q7OyZxdW90OyQoUHJvamVjdERp
cilcLi5cLi5ccGxhdGZvcm1cd2luJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcilcLi5cLi5ccmVu
ZGVyaW5nJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcilcLi5cLi5ceG1sJnF1b3Q7OyZxdW90OyQo
UHJvamVjdERpcilcLi5cLi5cRGVyaXZlZFNvdXJjZXNcV2ViQ29yZSZxdW90OzsmcXVvdDskKFBy
b2plY3REaXIpXC4uXC4uXC4uXGljb252XGluY2x1ZGUmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGly
KVwuLlwuLlwuLlxpY3VcaW5jbHVkZSZxdW90OzsmcXVvdDskKFByb2plY3REaXIpXC4uXC4uXC4u
XEphdmFTY3JpcHRDb3JlJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcilcLi5cLi5cLi5cSmF2YVNj
cmlwdENvcmVca2pzJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcilcLi5cLi5cLi5cSmF2YVNjcmlw
dENvcmVcb3Mtd2luMzImcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwuLlwuLlwuLlxsaWJ4bWxc
aW5jbHVkZSZxdW90OzsmcXVvdDskKFByb2plY3REaXIpXC4uXC4uXC4uXGxpYnhzbHRcaW5jbHVk
ZSZxdW90OyIKIAkJCQlQcmVwcm9jZXNzb3JEZWZpbml0aW9ucz0iV0lOMzI7WFNMVF9TVVBQT1JU
O1hQQVRIX1NVUFBPUlQ7TkRFQlVHIgogCQkJCUV4Y2VwdGlvbkhhbmRsaW5nPSIwIgogCQkJCVJ1
bnRpbWVMaWJyYXJ5PSIyIgpAQCAtMTA1OSw2ICsxMDU5LDEwIEBACiAJCQkJPgogCQkJPC9GaWxl
PgogCQkJPEZpbGUKKwkJCQlSZWxhdGl2ZVBhdGg9Ii4uXC4uXHBhZ2VcU2V0dGluZ3MuY3BwIgor
CQkJCT4KKwkJCTwvRmlsZT4KKwkJCTxGaWxlCiAJCQkJUmVsYXRpdmVQYXRoPSIuLlwuLlxwYWdl
XFNldHRpbmdzLmgiCiAJCQkJPgogCQkJPC9GaWxlPgpAQCAtMTA3Miw2ICsxMDc2LDQyIEBACiAJ
CQk8L0ZpbHRlcj4KIAkJPC9GaWx0ZXI+CiAJCTxGaWx0ZXIKKwkJCU5hbWU9Imhpc3RvcnkiCisJ
CQk+CisJCQk8RmlsZQorCQkJCVJlbGF0aXZlUGF0aD0iLi5cLi5caGlzdG9yeVxCYWNrRm9yd2Fy
ZExpc3QuY3BwIgorCQkJCT4KKwkJCTwvRmlsZT4KKwkJCTxGaWxlCisJCQkJUmVsYXRpdmVQYXRo
PSIuLlwuLlxoaXN0b3J5XEJhY2tGb3J3YXJkTGlzdC5oIgorCQkJCT4KKwkJCTwvRmlsZT4KKwkJ
CTxGaWxlCisJCQkJUmVsYXRpdmVQYXRoPSIuLlwuLlxoaXN0b3J5XEhpc3RvcnlJdGVtLmNwcCIK
KwkJCQk+CisJCQk8L0ZpbGU+CisJCQk8RmlsZQorCQkJCVJlbGF0aXZlUGF0aD0iLi5cLi5caGlz
dG9yeVxIaXN0b3J5SXRlbS5oIgorCQkJCT4KKwkJCTwvRmlsZT4KKwkJCTxGaWxlCisJCQkJUmVs
YXRpdmVQYXRoPSIuLlwuLlxoaXN0b3J5XEhpc3RvcnlJdGVtVGltZXIuY3BwIgorCQkJCT4KKwkJ
CTwvRmlsZT4KKwkJCTxGaWxlCisJCQkJUmVsYXRpdmVQYXRoPSIuLlwuLlxoaXN0b3J5XEhpc3Rv
cnlJdGVtVGltZXIuaCIKKwkJCQk+CisJCQk8L0ZpbGU+CisJCQk8RmlsZQorCQkJCVJlbGF0aXZl
UGF0aD0iLi5cLi5caGlzdG9yeVxQYWdlQ2FjaGUuY3BwIgorCQkJCT4KKwkJCTwvRmlsZT4KKwkJ
CTxGaWxlCisJCQkJUmVsYXRpdmVQYXRoPSIuLlwuLlxoaXN0b3J5XFBhZ2VDYWNoZS5oIgorCQkJ
CT4KKwkJCTwvRmlsZT4KKwkJPC9GaWx0ZXI+CisJCTxGaWx0ZXIKIAkJCU5hbWU9ImxvYWRlciIK
IAkJCT4KIAkJCTxGaWxlCkBAIC0xMjc4LDYgKzEzMTgsMTAgQEAKIAkJCQlOYW1lPSJpY29uIgog
CQkJCT4KIAkJCQk8RmlsZQorCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXC4uXGxvYWRlclxpY29uXElj
b25EYXRhYmFzZS5oIgorCQkJCQk+CisJCQkJPC9GaWxlPgorCQkJCTxGaWxlCiAJCQkJCVJlbGF0
aXZlUGF0aD0iLi5cLi5cbG9hZGVyXGljb25cSWNvbkxvYWRlci5jcHAiCiAJCQkJCT4KIAkJCQk8
L0ZpbGU+CkBAIC0xNTU5LDYgKzE2MDMsMTAgQEAKIAkJCQk+CiAJCQk8L0ZpbGU+CiAJCQk8Rmls
ZQorCQkJCVJlbGF0aXZlUGF0aD0iLi5cLi5ccGxhdGZvcm1cUG9wdXBNZW51Q2xpZW50LmgiCisJ
CQkJPgorCQkJPC9GaWxlPgorCQkJPEZpbGUKIAkJCQlSZWxhdGl2ZVBhdGg9Ii4uXC4uXHBsYXRm
b3JtXFJlZ3VsYXJFeHByZXNzaW9uLmNwcCIKIAkJCQk+CiAJCQk8L0ZpbGU+CkBAIC0xNTg3LDYg
KzE2MzUsMTAgQEAKIAkJCQk+CiAJCQk8L0ZpbGU+CiAJCQk8RmlsZQorCQkJCVJlbGF0aXZlUGF0
aD0iLi5cLi5ccGxhdGZvcm1cU2VhcmNoUG9wdXBNZW51LmgiCisJCQkJPgorCQkJPC9GaWxlPgor
CQkJPEZpbGUKIAkJCQlSZWxhdGl2ZVBhdGg9Ii4uXC4uXHBsYXRmb3JtXFNlZ21lbnRlZFN0cmlu
Zy5jcHAiCiAJCQkJPgogCQkJPC9GaWxlPgpAQCAtMTYzOSw2ICsxNjkxLDEwIEBACiAJCQkJPgog
CQkJPC9GaWxlPgogCQkJPEZpbGUKKwkJCQlSZWxhdGl2ZVBhdGg9Ii4uXC4uXHBsYXRmb3JtXFRl
eHRCcmVha0l0ZXJhdG9yLmgiCisJCQkJPgorCQkJPC9GaWxlPgorCQkJPEZpbGUKIAkJCQlSZWxh
dGl2ZVBhdGg9Ii4uXC4uXHBsYXRmb3JtXFRleHRCcmVha0l0ZXJhdG9ySUNVLmNwcCIKIAkJCQk+
CiAJCQk8L0ZpbGU+CkBAIC0xNzAzLDEwICsxNzU5LDYgQEAKIAkJCQk+CiAJCQk8L0ZpbGU+CiAJ
CQk8RmlsZQotCQkJCVJlbGF0aXZlUGF0aD0iLi5cLi5ccGxhdGZvcm1cVGV4dEZpZWxkLmgiCi0J
CQkJPgotCQkJPC9GaWxlPgotCQkJPEZpbGUKIAkJCQlSZWxhdGl2ZVBhdGg9Ii4uXC4uXHBsYXRm
b3JtXFRleHRTdHJlYW0uY3BwIgogCQkJCT4KIAkJCTwvRmlsZT4KQEAgLTE3MjcsMTAgKzE3Nzks
NiBAQAogCQkJCT4KIAkJCTwvRmlsZT4KIAkJCTxGaWxlCi0JCQkJUmVsYXRpdmVQYXRoPSIuLlwu
LlxwbGF0Zm9ybVxVQ2hhci5oIgotCQkJCT4KLQkJCTwvRmlsZT4KLQkJCTxGaWxlCiAJCQkJUmVs
YXRpdmVQYXRoPSIuLlwuLlxwbGF0Zm9ybVxXaWRnZXQuY3BwIgogCQkJCT4KIAkJCTwvRmlsZT4K
QEAgLTE3NTQsNiArMTgwMiwxNCBAQAogCQkJCQk+CiAJCQkJPC9GaWxlPgogCQkJCTxGaWxlCisJ
CQkJCVJlbGF0aXZlUGF0aD0iLi5cLi5ccGxhdGZvcm1cZ3JhcGhpY3NcQml0bWFwSW1hZ2UuY3Bw
IgorCQkJCQk+CisJCQkJPC9GaWxlPgorCQkJCTxGaWxlCisJCQkJCVJlbGF0aXZlUGF0aD0iLi5c
Li5ccGxhdGZvcm1cZ3JhcGhpY3NcQml0bWFwSW1hZ2UuaCIKKwkJCQkJPgorCQkJCTwvRmlsZT4K
KwkJCQk8RmlsZQogCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXC4uXHBsYXRmb3JtXGdyYXBoaWNzXENv
bG9yLmNwcCIKIAkJCQkJPgogCQkJCTwvRmlsZT4KQEAgLTE4MTgsNiArMTg3NCwxNCBAQAogCQkJ
CQk+CiAJCQkJPC9GaWxlPgogCQkJCTxGaWxlCisJCQkJCVJlbGF0aXZlUGF0aD0iLi5cLi5ccGxh
dGZvcm1cZ3JhcGhpY3NcSW1hZ2VCdWZmZXIuY3BwIgorCQkJCQk+CisJCQkJPC9GaWxlPgorCQkJ
CTxGaWxlCisJCQkJCVJlbGF0aXZlUGF0aD0iLi5cLi5ccGxhdGZvcm1cZ3JhcGhpY3NcSW1hZ2VC
dWZmZXIuaCIKKwkJCQkJPgorCQkJCTwvRmlsZT4KKwkJCQk8RmlsZQogCQkJCQlSZWxhdGl2ZVBh
dGg9Ii4uXC4uXHBsYXRmb3JtXGdyYXBoaWNzXEltYWdlU291cmNlLmgiCiAJCQkJCT4KIAkJCQk8
L0ZpbGU+CkBAIC0xODUwLDYgKzE5MTQsMTQgQEAKIAkJCQkJPgogCQkJCTwvRmlsZT4KIAkJCQk8
RmlsZQorCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXC4uXHBsYXRmb3JtXGdyYXBoaWNzXFBhdGhUcmF2
ZXJzYWxTdGF0ZS5jcHAiCisJCQkJCT4KKwkJCQk8L0ZpbGU+CisJCQkJPEZpbGUKKwkJCQkJUmVs
YXRpdmVQYXRoPSIuLlwuLlxwbGF0Zm9ybVxncmFwaGljc1xQYXRoVHJhdmVyc2FsU3RhdGUuaCIK
KwkJCQkJPgorCQkJCTwvRmlsZT4KKwkJCQk8RmlsZQogCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXC4u
XHBsYXRmb3JtXGdyYXBoaWNzXFBlbi5jcHAiCiAJCQkJCT4KIAkJCQk8L0ZpbGU+CkBAIC00MzI2
LDE4ICs0Mzk4LDYgQEAKIAkJCQlOYW1lPSJ3aW4iCiAJCQkJPgogCQkJCTxGaWxlCi0JCQkJCVJl
bGF0aXZlUGF0aD0iLi5cLi5cYnJpZGdlXHdpblxDaHJvbWVDbGllbnRXaW4uaCIKLQkJCQkJPgot
CQkJCTwvRmlsZT4KLQkJCQk8RmlsZQotCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXC4uXGJyaWRnZVx3
aW5cQ29udGV4dE1lbnVDbGllbnRXaW4uaCIKLQkJCQkJPgotCQkJCTwvRmlsZT4KLQkJCQk8Rmls
ZQotCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXC4uXGJyaWRnZVx3aW5cRWRpdG9yQ2xpZW50V2luLmgi
Ci0JCQkJCT4KLQkJCQk8L0ZpbGU+Ci0JCQkJPEZpbGUKIAkJCQkJUmVsYXRpdmVQYXRoPSIuLlwu
LlxicmlkZ2Vcd2luXEZyYW1lV2luLmNwcCIKIAkJCQkJPgogCQkJCTwvRmlsZT4KQEAgLTQ0NTEs
NiArNDUxMSwxMCBAQAogCQkJCT4KIAkJCTwvRmlsZT4KIAkJCTxGaWxlCisJCQkJUmVsYXRpdmVQ
YXRoPSIuLlwuLlxlZGl0aW5nXEVkaXRvckRlbGV0ZUFjdGlvbi5oIgorCQkJCT4KKwkJCTwvRmls
ZT4KKwkJCTxGaWxlCiAJCQkJUmVsYXRpdmVQYXRoPSIuLlwuLlxlZGl0aW5nXEVkaXRvckluc2Vy
dEFjdGlvbi5oIgogCQkJCT4KIAkJCTwvRmlsZT4KSW5kZXg6IFdlYkNvcmUvYnJpZGdlL3dpbi9G
cmFtZVdpbi5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9icmlkZ2Uvd2luL0ZyYW1lV2luLmNw
cAkocmV2aXNpb24gMTg1NTEpCisrKyBXZWJDb3JlL2JyaWRnZS93aW4vRnJhbWVXaW4uY3BwCSh3
b3JraW5nIGNvcHkpCkBAIC00OCwxNCArNDgsMTQgQEAgRnJhbWVXaW46OkZyYW1lV2luKFBhZ2Uq
IHBhZ2UsIEhUTUxGcmFtZQogICAgICwgbV9jbGllbnQoY2xpZW50KQogewogICAgIFNldHRpbmdz
KiBzZXR0aW5ncyA9IG5ldyBTZXR0aW5ncygpOwotICAgIHNldHRpbmdzLT5zZXRBdXRvTG9hZElt
YWdlcyh0cnVlKTsKLSAgICBzZXR0aW5ncy0+c2V0TWVkaXVtRml4ZWRGb250U2l6ZSgxMyk7Ci0g
ICAgc2V0dGluZ3MtPnNldE1lZGl1bUZvbnRTaXplKDE2KTsKLSAgICBzZXR0aW5ncy0+c2V0U2Vy
aWZGb250TmFtZSgiVGltZXMgTmV3IFJvbWFuIik7Ci0gICAgc2V0dGluZ3MtPnNldEZpeGVkRm9u
dE5hbWUoIkNvdXJpZXIgTmV3Iik7Ci0gICAgc2V0dGluZ3MtPnNldFNhbnNTZXJpZkZvbnROYW1l
KCJBcmlhbCIpOwotICAgIHNldHRpbmdzLT5zZXRTdGRGb250TmFtZSgiVGltZXMgTmV3IFJvbWFu
Iik7Ci0gICAgc2V0dGluZ3MtPnNldElzSmF2YVNjcmlwdEVuYWJsZWQodHJ1ZSk7CisgICAgc2V0
dGluZ3MtPnNldExvYWRzSW1hZ2VzQXV0b21hdGljYWxseSh0cnVlKTsKKyAgICBzZXR0aW5ncy0+
c2V0RGVmYXVsdEZpeGVkRm9udFNpemUoMTMpOworICAgIHNldHRpbmdzLT5zZXREZWZhdWx0Rm9u
dFNpemUoMTYpOworICAgIHNldHRpbmdzLT5zZXRTZXJpZkZvbnRGYW1pbHkoIlRpbWVzIE5ldyBS
b21hbiIpOworICAgIHNldHRpbmdzLT5zZXRGaXhlZEZvbnRGYW1pbHkoIkNvdXJpZXIgTmV3Iik7
CisgICAgc2V0dGluZ3MtPnNldFNhbnNTZXJpZkZvbnRGYW1pbHkoIkFyaWFsIik7CisgICAgc2V0
dGluZ3MtPnNldFN0YW5kYXJkRm9udEZhbWlseSgiVGltZXMgTmV3IFJvbWFuIik7CisgICAgc2V0
dGluZ3MtPnNldEphdmFTY3JpcHRFbmFibGVkKHRydWUpOwogICAgIHNldFNldHRpbmdzKHNldHRp
bmdzKTsKIH0KIApJbmRleDogV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9CaXRtYXBJbWFnZS5o
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQml0bWFwSW1hZ2UuaAko
cmV2aXNpb24gMTg1NTEpCisrKyBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0JpdG1hcEltYWdl
LmgJKHdvcmtpbmcgY29weSkKQEAgLTkxLDggKzkxLDYgQEAgcHVibGljOgogICAgIEJpdG1hcElt
YWdlKEltYWdlQW5pbWF0aW9uT2JzZXJ2ZXIqIG9ic2VydmVyID0gMCk7CiAgICAgfkJpdG1hcElt
YWdlKCk7CiAgICAgCi0gICAgc3RhdGljIEJpdG1hcEltYWdlKiBsb2FkUGxhdGZvcm1SZXNvdXJj
ZShjb25zdCBjaGFyKiBuYW1lKTsKLQogICAgIHZpcnR1YWwgSW50U2l6ZSBzaXplKCkgY29uc3Q7
CiAKICAgICB2aXJ0dWFsIGJvb2wgc2V0TmF0aXZlRGF0YShOYXRpdmVCeXRlUHRyLCBib29sIGFs
bERhdGFSZWNlaXZlZCk7CkluZGV4OiBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNz
Q29udGV4dC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFw
aGljc0NvbnRleHQuY3BwCShyZXZpc2lvbiAxODU1MSkKKysrIFdlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvR3JhcGhpY3NDb250ZXh0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzQxLDcgKzM0MSw3
IEBAIHZvaWQgR3JhcGhpY3NDb250ZXh0OjpzZXRQbGF0Zm9ybUZpbGxDb2wKIHsKIH0KIAotdm9p
ZCBHcmFwaGljc0NvbnRleHQ6OnNldFBsYXRmb3JtU3Ryb2tlQ29sb3IoY29uc3QgQ29sb3ImKTsK
K3ZvaWQgR3JhcGhpY3NDb250ZXh0OjpzZXRQbGF0Zm9ybVN0cm9rZUNvbG9yKGNvbnN0IENvbG9y
JikKIHsKIH0KIApJbmRleDogV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9JbWFnZS5oCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2UuaAkocmV2aXNpb24gMTg1
NTEpCisrKyBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ltYWdlLmgJKHdvcmtpbmcgY29weSkK
QEAgLTEwNywxMCArMTA3LDYgQEAgcHJpdmF0ZToKICAgICB2aXJ0dWFsIHZvaWQgZHJhd1RpbGVk
KEdyYXBoaWNzQ29udGV4dCosIGNvbnN0IEZsb2F0UmVjdCYgZHN0UmVjdCwgY29uc3QgRmxvYXRQ
b2ludCYgc3JjUG9pbnQsIGNvbnN0IEZsb2F0U2l6ZSYgdGlsZVNpemUsIENvbXBvc2l0ZU9wZXJh
dG9yKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIGRyYXdUaWxlZChHcmFwaGljc0NvbnRleHQqLCBj
b25zdCBGbG9hdFJlY3QmIGRzdFJlY3QsIGNvbnN0IEZsb2F0UmVjdCYgc3JjUmVjdCwgVGlsZVJ1
bGUgaFJ1bGUsIFRpbGVSdWxlIHZSdWxlLCBDb21wb3NpdGVPcGVyYXRvcikgPSAwOwogICAgIAot
ICAgIC8vIEhhbmRsZSBPUy1zcGVjaWZpYyBkYXRhCi0gICAgdm9pZCBpbml0UGxhdGZvcm1EYXRh
KCk7Ci0gICAgdm9pZCBpbnZhbGlkYXRlUGxhdGZvcm1EYXRhKCk7Ci0KICAgICBWZWN0b3I8Y2hh
cj4gbV9kYXRhOyAvLyBUaGUgZW5jb2RlZCByYXcgZGF0YSBmb3IgdGhlIGltYWdlLiAKICAgICBJ
bWFnZUFuaW1hdGlvbk9ic2VydmVyKiBtX2FuaW1hdGlvbk9ic2VydmVyOwogfTsKSW5kZXg6IFdl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vR3JhcGhpY3NDb250ZXh0Q2Fpcm8uY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vR3JhcGhpY3NDb250
ZXh0Q2Fpcm8uY3BwCShyZXZpc2lvbiAxODU1MSkKKysrIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvY2Fpcm8vR3JhcGhpY3NDb250ZXh0Q2Fpcm8uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMjgs
OCArMTI4LDggQEAgdm9pZCBHcmFwaGljc0NvbnRleHQ6OmRyYXdSZWN0KGNvbnN0IEludAogICAg
IGlmIChmaWxsQ29sb3IoKS5hbHBoYSgpKQogICAgICAgICBmaWxsUmVjdFNvdXJjZU92ZXIoY29u
dGV4dCwgcmVjdCwgZmlsbENvbG9yKCkpOwogCi0gICAgaWYgKHBlbigpLnN0eWxlKCkgIT0gUGVu
OjpOb1BlbikgewotICAgICAgICBzZXRDb2xvcihjb250ZXh0LCBwZW4oKS5jb2xvcigpKTsKKyAg
ICBpZiAoc3Ryb2tlU3R5bGUoKSAhPSBOb1N0cm9rZSkgeworICAgICAgICBzZXRDb2xvcihjb250
ZXh0LCBzdHJva2VDb2xvcigpKTsKICAgICAgICAgRmxvYXRSZWN0IHIocmVjdCk7CiAgICAgICAg
IHIuaW5mbGF0ZSgtLjVmKTsKICAgICAgICAgY2Fpcm9fcmVjdGFuZ2xlKGNvbnRleHQsIHIueCgp
LCByLnkoKSwgci53aWR0aCgpLCByLmhlaWdodCgpKTsKQEAgLTEzOSwxMyArMTM5LDEzIEBAIHZv
aWQgR3JhcGhpY3NDb250ZXh0OjpkcmF3UmVjdChjb25zdCBJbnQKIH0KIAogLy8gRklYTUU6IE5v
dyB0aGF0IHRoaXMgaXMgcmVmYWN0b3JlZCwgaXQgc2hvdWxkIGJlIHNoYXJlZCBieSBhbGwgY29u
dGV4dHMuCi1zdGF0aWMgdm9pZCBhZGp1c3RMaW5lVG9QaXhlbEJvdW5kYXJpZXMoRmxvYXRQb2lu
dCYgcDEsIEZsb2F0UG9pbnQmIHAyLCBmbG9hdCBzdHJva2VXaWR0aCwgY29uc3QgUGVuOjpQZW5T
dHlsZSYgcGVuU3R5bGUpCitzdGF0aWMgdm9pZCBhZGp1c3RMaW5lVG9QaXhlbEJvdW5kYXJpZXMo
RmxvYXRQb2ludCYgcDEsIEZsb2F0UG9pbnQmIHAyLCBmbG9hdCBzdHJva2VXaWR0aCwgU3Ryb2tl
U3R5bGUgc3R5bGUpCiB7CiAgICAgLy8gRm9yIG9kZCB3aWR0aHMsIHdlIGFkZCBpbiAwLjUgdG8g
dGhlIGFwcHJvcHJpYXRlIHgveSBzbyB0aGF0IHRoZSBmbG9hdCBhcml0aG1ldGljCiAgICAgLy8g
d29ya3Mgb3V0LiAgRm9yIGV4YW1wbGUsIHdpdGggYSBib3JkZXIgd2lkdGggb2YgMywgS0hUTUwg
d2lsbCBwYXNzIHVzICh5MSt5MikvMiwgZS5nLiwKICAgICAvLyAoNTArNTMpLzIgPSAxMDMvMiA9
IDUxIHdoZW4gd2Ugd2FudCA1MS41LiAgSXQgaXMgYWx3YXlzIHRydWUgdGhhdCBhbiBldmVuIHdp
ZHRoIGdhdmUKICAgICAvLyB1cyBhIHBlcmZlY3QgcG9zaXRpb24sIGJ1dCBhbiBvZGQgd2lkdGgg
Z2F2ZSB1cyBhIHBvc2l0aW9uIHRoYXQgaXMgb2ZmIGJ5IGV4YWN0bHkgMC41LgotICAgIGlmIChw
ZW5TdHlsZSA9PSBQZW46OkRvdExpbmUgfHwgcGVuU3R5bGUgPT0gUGVuOjpEYXNoTGluZSkgewor
ICAgIGlmIChzdHlsZSA9PSBEb3R0ZWRTdHJva2UgfHwgc3R5bGUgPT0gRGFzaGVkU3Ryb2tlKSB7
CiAgICAgICAgIGlmIChwMS54KCkgPT0gcDIueCgpKSB7CiAgICAgICAgICAgICBwMS5zZXRZKHAx
LnkoKSArIHN0cm9rZVdpZHRoKTsKICAgICAgICAgICAgIHAyLnNldFkocDIueSgpIC0gc3Ryb2tl
V2lkdGgpOwpAQCAtMTc5LDEwICsxNzksMTAgQEAgdm9pZCBHcmFwaGljc0NvbnRleHQ6OmRyYXdM
aW5lKGNvbnN0IEludAogICAgIGNhaXJvX3QqIGNvbnRleHQgPSBtX2RhdGEtPmNvbnRleHQ7CiAg
ICAgY2Fpcm9fc2F2ZShjb250ZXh0KTsKIAotICAgIFBlbjo6UGVuU3R5bGUgcGVuU3R5bGUgPSBw
ZW4oKS5zdHlsZSgpOwotICAgIGlmIChwZW5TdHlsZSA9PSBQZW46Ok5vUGVuKQorICAgIFN0cm9r
ZVN0eWxlIHN0eWxlID0gc3Ryb2tlU3R5bGUoKTsKKyAgICBpZiAoc3R5bGUgPT0gTm9TdHJva2Up
CiAgICAgICAgIHJldHVybjsKLSAgICBmbG9hdCB3aWR0aCA9IHBlbigpLndpZHRoKCk7CisgICAg
ZmxvYXQgd2lkdGggPSBzdHJva2VUaGlja25lc3MoKTsKICAgICBpZiAod2lkdGggPCAxKQogICAg
ICAgICB3aWR0aCA9IDE7CiAKQEAgLTE5MCwyMyArMTkwLDIzIEBAIHZvaWQgR3JhcGhpY3NDb250
ZXh0OjpkcmF3TGluZShjb25zdCBJbnQKICAgICBGbG9hdFBvaW50IHAyID0gcG9pbnQyOwogICAg
IGJvb2wgaXNWZXJ0aWNhbExpbmUgPSAocDEueCgpID09IHAyLngoKSk7CiAgICAgCi0gICAgYWRq
dXN0TGluZVRvUGl4ZWxCb3VuZGFyaWVzKHAxLCBwMiwgd2lkdGgsIHBlblN0eWxlKTsKKyAgICBh
ZGp1c3RMaW5lVG9QaXhlbEJvdW5kYXJpZXMocDEsIHAyLCB3aWR0aCwgc3R5bGUpOwogICAgIGNh
aXJvX3NldF9saW5lX3dpZHRoKGNvbnRleHQsIHdpZHRoKTsKIAogICAgIGludCBwYXRXaWR0aCA9
IDA7Ci0gICAgc3dpdGNoIChwZW5TdHlsZSkgewotICAgIGNhc2UgUGVuOjpOb1BlbjoKLSAgICBj
YXNlIFBlbjo6U29saWRMaW5lOgorICAgIHN3aXRjaCAoc3R5bGUpIHsKKyAgICBjYXNlIE5vU3Ry
b2tlOgorICAgIGNhc2UgU29saWRTdHJva2U6CiAgICAgICAgIGJyZWFrOwotICAgIGNhc2UgUGVu
OjpEb3RMaW5lOgorICAgIGNhc2UgRG90dGVkU3Ryb2tlOgogICAgICAgICBwYXRXaWR0aCA9IChp
bnQpd2lkdGg7CiAgICAgICAgIGJyZWFrOwotICAgIGNhc2UgUGVuOjpEYXNoTGluZToKKyAgICBj
YXNlIERhc2hlZFN0cm9rZToKICAgICAgICAgcGF0V2lkdGggPSAzKihpbnQpd2lkdGg7CiAgICAg
ICAgIGJyZWFrOwogICAgIH0KIAotICAgIHNldENvbG9yKGNvbnRleHQsIHBlbigpLmNvbG9yKCkp
OworICAgIHNldENvbG9yKGNvbnRleHQsIHN0cm9rZUNvbG9yKCkpOwogICAgIAogICAgIGNhaXJv
X3NldF9hbnRpYWxpYXMoY29udGV4dCwgQ0FJUk9fQU5USUFMSUFTX05PTkUpOwogICAgIApAQCAt
MjE0LDExICsyMTQsMTEgQEAgdm9pZCBHcmFwaGljc0NvbnRleHQ6OmRyYXdMaW5lKGNvbnN0IElu
dAogICAgICAgICAvLyBEbyBhIHJlY3QgZmlsbCBvZiBvdXIgZW5kcG9pbnRzLiAgVGhpcyBlbnN1
cmVzIHdlIGFsd2F5cyBoYXZlIHRoZQogICAgICAgICAvLyBhcHBlYXJhbmNlIG9mIGJlaW5nIGEg
Ym9yZGVyLiAgV2UgdGhlbiBkcmF3IHRoZSBhY3R1YWwgZG90dGVkL2Rhc2hlZCBsaW5lLgogICAg
ICAgICBpZiAoaXNWZXJ0aWNhbExpbmUpIHsKLSAgICAgICAgICAgIGZpbGxSZWN0U291cmNlT3Zl
cihjb250ZXh0LCBGbG9hdFJlY3QocDEueCgpLXdpZHRoLzIsIHAxLnkoKS13aWR0aCwgd2lkdGgs
IHdpZHRoKSwgcGVuKCkuY29sb3IoKSk7Ci0gICAgICAgICAgICBmaWxsUmVjdFNvdXJjZU92ZXIo
Y29udGV4dCwgRmxvYXRSZWN0KHAyLngoKS13aWR0aC8yLCBwMi55KCksIHdpZHRoLCB3aWR0aCks
IHBlbigpLmNvbG9yKCkpOworICAgICAgICAgICAgZmlsbFJlY3RTb3VyY2VPdmVyKGNvbnRleHQs
IEZsb2F0UmVjdChwMS54KCktd2lkdGgvMiwgcDEueSgpLXdpZHRoLCB3aWR0aCwgd2lkdGgpLCBz
dHJva2VDb2xvcigpKTsKKyAgICAgICAgICAgIGZpbGxSZWN0U291cmNlT3Zlcihjb250ZXh0LCBG
bG9hdFJlY3QocDIueCgpLXdpZHRoLzIsIHAyLnkoKSwgd2lkdGgsIHdpZHRoKSwgc3Ryb2tlQ29s
b3IoKSk7CiAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICBmaWxsUmVjdFNvdXJjZU92ZXIo
Y29udGV4dCwgRmxvYXRSZWN0KHAxLngoKS13aWR0aCwgcDEueSgpLXdpZHRoLzIsIHdpZHRoLCB3
aWR0aCksIHBlbigpLmNvbG9yKCkpOwotICAgICAgICAgICAgZmlsbFJlY3RTb3VyY2VPdmVyKGNv
bnRleHQsIEZsb2F0UmVjdChwMi54KCksIHAyLnkoKS13aWR0aC8yLCB3aWR0aCwgd2lkdGgpLCBw
ZW4oKS5jb2xvcigpKTsKKyAgICAgICAgICAgIGZpbGxSZWN0U291cmNlT3Zlcihjb250ZXh0LCBG
bG9hdFJlY3QocDEueCgpLXdpZHRoLCBwMS55KCktd2lkdGgvMiwgd2lkdGgsIHdpZHRoKSwgc3Ry
b2tlQ29sb3IoKSk7CisgICAgICAgICAgICBmaWxsUmVjdFNvdXJjZU92ZXIoY29udGV4dCwgRmxv
YXRSZWN0KHAyLngoKSwgcDIueSgpLXdpZHRoLzIsIHdpZHRoLCB3aWR0aCksIHN0cm9rZUNvbG9y
KCkpOwogICAgICAgICB9CiAgICAgICAgIAogICAgICAgICAvLyBFeGFtcGxlOiA4MCBwaXhlbHMg
d2l0aCBhIHdpZHRoIG9mIDMwIHBpeGVscy4KQEAgLTI4MSwxOCArMjgxLDE1IEBAIHZvaWQgR3Jh
cGhpY3NDb250ZXh0OjpkcmF3RWxsaXBzZShjb25zdCAKICAgICAgICAgc2V0Q29sb3IoY29udGV4
dCwgZmlsbENvbG9yKCkpOwogICAgICAgICBjYWlyb19maWxsKGNvbnRleHQpOwogICAgIH0KLSAg
ICBpZiAocGVuKCkuc3R5bGUoKSAhPSBQZW46Ok5vUGVuKSB7Ci0gICAgICAgIHNldENvbG9yKGNv
bnRleHQsIHBlbigpLmNvbG9yKCkpOwotICAgICAgICB1bnNpZ25lZCBwZW5XaWR0aCA9IHBlbigp
LndpZHRoKCk7Ci0gICAgICAgIGlmIChwZW5XaWR0aCA9PSAwKSAKLSAgICAgICAgICAgIHBlbldp
ZHRoKys7Ci0gICAgICAgIGNhaXJvX3NldF9saW5lX3dpZHRoKGNvbnRleHQsIHBlbldpZHRoKTsK
KyAgICBpZiAoc3Ryb2tlU3R5bGUoKSAhPSBOb1N0cm9rZSkgeworICAgICAgICBzZXRDb2xvcihj
b250ZXh0LCBzdHJva2VDb2xvcigpKTsKKyAgICAgICAgY2Fpcm9fc2V0X2xpbmVfd2lkdGgoY29u
dGV4dCwgc3Ryb2tlVGhpY2tuZXNzKCkpOwogICAgICAgICBjYWlyb19zdHJva2UoY29udGV4dCk7
CiAgICAgfQogfQogCiAvLyBGSVhNRTogVGhpcyBmdW5jdGlvbiBuZWVkcyB0byBiZSBhZGp1c3Rl
ZCB0byBtYXRjaCB0aGUgZnVuY3Rpb25hbGl0eSBvbiB0aGUgTWFjIHNpZGUuCi12b2lkIEdyYXBo
aWNzQ29udGV4dDo6ZHJhd0FyYyhjb25zdCBJbnRSZWN0JiByZWN0LCBmbG9hdCB0aGlja25lc3Ms
IGludCBzdGFydEFuZ2xlLCBpbnQgYW5nbGVTcGFuKQordm9pZCBHcmFwaGljc0NvbnRleHQ6OnN0
cm9rZUFyYyhjb25zdCBJbnRSZWN0JiByZWN0LCBpbnQgc3RhcnRBbmdsZSwgaW50IGFuZ2xlU3Bh
bikKIHsKICAgICBpZiAocGFpbnRpbmdEaXNhYmxlZCgpKQogICAgICAgICByZXR1cm47CkBAIC0z
MDUsMTQgKzMwMiwxNCBAQCB2b2lkIEdyYXBoaWNzQ29udGV4dDo6ZHJhd0FyYyhjb25zdCBJbnRS
CiAgICAgZmxvYXQgcmV2ZXJzZVNjYWxlRmFjdG9yID0gdyAvIGg7CiAgICAgCiAgICAgY2Fpcm9f
dCogY29udGV4dCA9IG1fZGF0YS0+Y29udGV4dDsKLSAgICBpZiAocGVuKCkuc3R5bGUoKSAhPSBQ
ZW46Ok5vUGVuKSB7ICAgICAgICAKKyAgICBpZiAoc3Ryb2tlU3R5bGUoKSAhPSBOb1N0cm9rZSkg
eyAgICAgICAgCiAgICAgICAgIGZsb2F0IHIgPSB3IC8gMjsKICAgICAgICAgZmxvYXQgZmEgPSBz
dGFydEFuZ2xlOwogICAgICAgICBmbG9hdCBmYWxlbiA9ICBmYSArIGFuZ2xlU3BhbjsKICAgICAg
ICAgY2Fpcm9fYXJjKGNvbnRleHQsIHggKyByLCB5ICsgciwgciwgLWZhICogTV9QSS8xODAsIC1m
YWxlbiAqIE1fUEkvMTgwKTsKICAgICAgICAgCi0gICAgICAgIHNldENvbG9yKGNvbnRleHQsIHBl
bigpLmNvbG9yKCkpOwotICAgICAgICBjYWlyb19zZXRfbGluZV93aWR0aChjb250ZXh0LCBwZW4o
KS53aWR0aCgpKTsKKyAgICAgICAgc2V0Q29sb3IoY29udGV4dCwgc3Ryb2tlQ29sb3IoKSk7Cisg
ICAgICAgIGNhaXJvX3NldF9saW5lX3dpZHRoKGNvbnRleHQsIHN0cm9rZVRoaWNrbmVzcygpKTsK
ICAgICAgICAgY2Fpcm9fc3Ryb2tlKGNvbnRleHQpOwogICAgIH0KIH0KQEAgLTM0MCw5ICszMzcs
OSBAQCB2b2lkIEdyYXBoaWNzQ29udGV4dDo6ZHJhd0NvbnZleFBvbHlnb24oCiAgICAgICAgIGNh
aXJvX2ZpbGwoY29udGV4dCk7CiAgICAgfQogCi0gICAgaWYgKHBlbigpLnN0eWxlKCkgIT0gUGVu
OjpOb1BlbikgewotICAgICAgICBzZXRDb2xvcihjb250ZXh0LCBwZW4oKS5jb2xvcigpKTsKLSAg
ICAgICAgY2Fpcm9fc2V0X2xpbmVfd2lkdGgoY29udGV4dCwgcGVuKCkud2lkdGgoKSk7CisgICAg
aWYgKHN0cm9rZVN0eWxlKCkgIT0gTm9TdHJva2UpIHsKKyAgICAgICAgc2V0Q29sb3IoY29udGV4
dCwgc3Ryb2tlQ29sb3IoKSk7CisgICAgICAgIGNhaXJvX3NldF9saW5lX3dpZHRoKGNvbnRleHQs
IHN0cm9rZVRoaWNrbmVzcygpKTsKICAgICAgICAgY2Fpcm9fc3Ryb2tlKGNvbnRleHQpOwogICAg
IH0KICAgICBjYWlyb19yZXN0b3JlKGNvbnRleHQpOwpJbmRleDogV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9jYWlyby9JbWFnZUNhaXJvLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2NhaXJvL0ltYWdlQ2Fpcm8uY3BwCShyZXZpc2lvbiAxODU1MSkKKysrIFdl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vSW1hZ2VDYWlyby5jcHAJKHdvcmtpbmcgY29w
eSkKQEAgLTI0LDcgKzI0LDcgQEAKICAqLwogCiAjaW5jbHVkZSAiY29uZmlnLmgiCi0jaW5jbHVk
ZSAiSW1hZ2UuaCIKKyNpbmNsdWRlICJCaXRtYXBJbWFnZS5oIgogCiAjaWYgUExBVEZPUk0oQ0FJ
Uk8pCiAKQEAgLTY1LDEzICs2NSwxMyBAQCBzdGF0aWMgdm9pZCBzZXRDb21wb3NpdGluZ09wZXJh
dGlvbihjYWlyCiAgICAgICAgIGNhaXJvX3NldF9vcGVyYXRvcihjb250ZXh0LCBDQUlST19PUEVS
QVRPUl9PVkVSKTsKIH0KIAotdm9pZCBJbWFnZTo6Y2hlY2tGb3JTb2xpZENvbG9yKCkKK3ZvaWQg
Qml0bWFwSW1hZ2U6OmNoZWNrRm9yU29saWRDb2xvcigpCiB7CiAgICAgLy8gRklYTUU6IEl0J3Mg
ZWFzeSB0byBpbXBsZW1lbnQgdGhpcyBvcHRpbWl6YXRpb24uIEp1c3QgbmVlZCB0byBjaGVjayB0
aGUgUkdCQTMyIGJ1ZmZlciB0byBzZWUgaWYgaXQgaXMgMXgxLgogICAgIG1faXNTb2xpZENvbG9y
ID0gZmFsc2U7CiB9CiAKLXZvaWQgSW1hZ2U6OmRyYXcoR3JhcGhpY3NDb250ZXh0KiBjdHh0LCBj
b25zdCBGbG9hdFJlY3QmIGRzdCwgY29uc3QgRmxvYXRSZWN0JiBzcmMsIENvbXBvc2l0ZU9wZXJh
dG9yIG9wKQordm9pZCBCaXRtYXBJbWFnZTo6ZHJhdyhHcmFwaGljc0NvbnRleHQqIGN0eHQsIGNv
bnN0IEZsb2F0UmVjdCYgZHN0LCBjb25zdCBGbG9hdFJlY3QmIHNyYywgQ29tcG9zaXRlT3BlcmF0
b3Igb3ApCiB7CiAgICAgY2Fpcm9fdCogY29udGV4dCA9IGN0eHQtPnBsYXRmb3JtQ29udGV4dCgp
OwogCkBAIC0xMTMsNyArMTEzLDcgQEAgdm9pZCBJbWFnZTo6ZHJhdyhHcmFwaGljc0NvbnRleHQq
IGN0eHQsIAogCiB9CiAKLXZvaWQgSW1hZ2U6OmRyYXdUaWxlZChHcmFwaGljc0NvbnRleHQqIGN0
eHQsIGNvbnN0IEZsb2F0UmVjdCYgZHN0UmVjdCwgY29uc3QgRmxvYXRQb2ludCYgc3JjUG9pbnQs
Cit2b2lkIEJpdG1hcEltYWdlOjpkcmF3VGlsZWQoR3JhcGhpY3NDb250ZXh0KiBjdHh0LCBjb25z
dCBGbG9hdFJlY3QmIGRzdFJlY3QsIGNvbnN0IEZsb2F0UG9pbnQmIHNyY1BvaW50LAogICAgIGNv
bnN0IEZsb2F0U2l6ZSYgdGlsZVNpemUsIENvbXBvc2l0ZU9wZXJhdG9yIG9wKQogewogICAgIGlm
ICghbV9zb3VyY2UuaW5pdGlhbGl6ZWQoKSkKSW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3Mvd2luL0ltYWdlV2luLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL3dpbi9JbWFnZVdpbi5jcHAJKHJldmlzaW9uIDE4NTUxKQorKysgV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy93aW4vSW1hZ2VXaW4uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yNCw3ICsyNCw3
IEBACiAgKi8KIAogI2luY2x1ZGUgImNvbmZpZy5oIgotI2luY2x1ZGUgIkltYWdlLmgiCisjaW5j
bHVkZSAiQml0bWFwSW1hZ2UuaCIKIAogI2lmIFBMQVRGT1JNKENBSVJPKQogI2luY2x1ZGUgPGNh
aXJvLmg+CkBAIC0zNywxOCArMzcsMTggQEAgVmVjdG9yPGNoYXI+IGxvYWRSZXNvdXJjZUludG9B
cnJheShjb25zdAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLXZvaWQgSW1hZ2U6OmluaXRQbGF0
Zm9ybURhdGEoKQordm9pZCBCaXRtYXBJbWFnZTo6aW5pdFBsYXRmb3JtRGF0YSgpCiB7CiB9CiAK
LXZvaWQgSW1hZ2U6OmludmFsaWRhdGVQbGF0Zm9ybURhdGEoKQordm9pZCBCaXRtYXBJbWFnZTo6
aW52YWxpZGF0ZVBsYXRmb3JtRGF0YSgpCiB7CiB9CiAKIEltYWdlKiBJbWFnZTo6bG9hZFBsYXRm
b3JtUmVzb3VyY2UoY29uc3QgY2hhciAqbmFtZSkKIHsKICAgICBWZWN0b3I8Y2hhcj4gYXJyID0g
bG9hZFJlc291cmNlSW50b0FycmF5KG5hbWUpOwotICAgIEltYWdlKiBpbWcgPSBuZXcgSW1hZ2U7
CisgICAgQml0bWFwSW1hZ2UqIGltZyA9IG5ldyBCaXRtYXBJbWFnZTsKICNpZiBQTEFURk9STShD
QUlSTykKICAgICBpbWctPnNldE5hdGl2ZURhdGEoJmFyciwgdHJ1ZSk7CiAjZWxzZQpJbmRleDog
V2ViQ29yZS9wbGF0Zm9ybS93aW4vRm9udFdpbi5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9w
bGF0Zm9ybS93aW4vRm9udFdpbi5jcHAJKHJldmlzaW9uIDE4NTUxKQorKysgV2ViQ29yZS9wbGF0
Zm9ybS93aW4vRm9udFdpbi5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQ4LDggKzQ4LDggQEAgdm9p
ZCBGb250OjpkcmF3R2x5cGhzKEdyYXBoaWNzQ29udGV4dCogZwogCiAgICAgLy8gU2V0IHRoZSB0
ZXh0IGNvbG9yIHRvIHVzZSBmb3IgZHJhd2luZy4KICAgICBmbG9hdCByZWQsIGdyZWVuLCBibHVl
LCBhbHBoYTsKLSAgICBDb2xvciBwZW5Db2xvciA9IGdyYXBoaWNzQ29udGV4dC0+cGVuKCkuY29s
b3IoKTsKLSAgICBwZW5Db2xvci5nZXRSR0JBKHJlZCwgZ3JlZW4sIGJsdWUsIGFscGhhKTsKKyAg
ICBDb2xvciBjb2xvciA9IGdyYXBoaWNzQ29udGV4dC0+c3Ryb2tlQ29sb3IoKTsKKyAgICBjb2xv
ci5nZXRSR0JBKHJlZCwgZ3JlZW4sIGJsdWUsIGFscGhhKTsKICAgICBjYWlyb19zZXRfc291cmNl
X3JnYmEoY29udGV4dCwgcmVkLCBncmVlbiwgYmx1ZSwgYWxwaGEpOwogICAgIAogICAgIGNhaXJv
X3N1cmZhY2VfdCogc3VyZmFjZSA9IGNhaXJvX2dldF90YXJnZXQoY29udGV4dCk7CkluZGV4OiBX
ZWJDb3JlL3BsYXRmb3JtL3dpbi9UZW1wb3JhcnlMaW5rU3R1YnMuY3BwCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFdlYkNvcmUvcGxhdGZvcm0vd2luL1RlbXBvcmFyeUxpbmtTdHVicy5jcHAJKHJldmlzaW9uIDE4
NTUxKQorKysgV2ViQ29yZS9wbGF0Zm9ybS93aW4vVGVtcG9yYXJ5TGlua1N0dWJzLmNwcAkod29y
a2luZyBjb3B5KQpAQCAtMzIsNiArMzIsNyBAQAogI2luY2x1ZGUgPHN0ZGxpYi5oPgogI2luY2x1
ZGUgPHdpbmRvd3MuaD4KICNpbmNsdWRlICJBWE9iamVjdENhY2hlLmgiCisjaW5jbHVkZSAiQml0
bWFwSW1hZ2UuaCIKICNpbmNsdWRlICJDYWNoZWRSZXNvdXJjZS5oIgogI2luY2x1ZGUgIkNsaXBi
b2FyZC5oIgogI2luY2x1ZGUgIkNvbnRleHRNZW51LmgiCkBAIC02Myw2ICs2NCw3IEBACiAjaW5j
bHVkZSAiTG9jYWxpemVkU3RyaW5ncy5oIgogI2luY2x1ZGUgIk5vZGUuaCIKICNpbmNsdWRlICJQ
YWdlLmgiCisjaW5jbHVkZSAiUGFnZUNhY2hlLmgiCiAjaW5jbHVkZSAiUGFzdGVib2FyZC5oIgog
I2luY2x1ZGUgIlBhdGguaCIKICNpbmNsdWRlICJQbGF0Zm9ybU1vdXNlRXZlbnQuaCIKQEAgLTc2
LDggKzc4LDggQEAKICNpbmNsdWRlICJSZW5kZXJUaGVtZVdpbi5oIgogI2luY2x1ZGUgIlNjcmVl
bi5oIgogI2luY2x1ZGUgIlNjcm9sbEJhci5oIgorI2luY2x1ZGUgIlNlYXJjaFBvcHVwTWVudS5o
IgogI2luY2x1ZGUgIlRleHRCb3VuZGFyaWVzLmgiCi0jaW5jbHVkZSAiVGV4dEZpZWxkLmgiCiAj
aW5jbHVkZSAiV2lkZ2V0LmgiCiAKICNkZWZpbmUgbm90SW1wbGVtZW50ZWQoKSBkbyB7IFwKQEAg
LTExOCwzOSArMTIwLDU5IEBAIFN0cmluZyBzZWFyY2hhYmxlSW5kZXhJbnRyb2R1Y3Rpb24oKSB7
IG4KIFZlY3RvcjxjaGFyPiBTZXJ2ZVN5bmNocm9ub3VzUmVxdWVzdChMb2FkZXIqLCBEb2NMb2Fk
ZXIqLCBjb25zdCBSZXNvdXJjZVJlcXVlc3QmLCBSZXNvdXJjZVJlc3BvbnNlJikgeyBub3RJbXBs
ZW1lbnRlZCgpOyByZXR1cm4gVmVjdG9yPGNoYXI+KCk7IH0KIHZvaWQgc2V0Rm9jdXNSaW5nQ29s
b3JDaGFuZ2VGdW5jdGlvbih2b2lkICgqKSgpKSB7IG5vdEltcGxlbWVudGVkKCk7IH0KIFN0cmlu
ZyBzdWJtaXRCdXR0b25EZWZhdWx0TGFiZWwoKSB7IG5vdEltcGxlbWVudGVkKCk7IHJldHVybiAi
U3VibWl0IjsgfQorZmxvYXQgdXNlcklkbGVUaW1lKCkgeyBub3RJbXBsZW1lbnRlZCgpOyByZXR1
cm4gMDsgfQogCiBib29sIEFYT2JqZWN0Q2FjaGU6OmdBY2Nlc3NpYmlsaXR5RW5hYmxlZCA9IGZh
bHNlOwogCit2b2lkIEJpdG1hcEltYWdlOjpkcmF3VGlsZWQoR3JhcGhpY3NDb250ZXh0KiwgY29u
c3QgRmxvYXRSZWN0JiwgY29uc3QgRmxvYXRSZWN0JiwgVGlsZVJ1bGUsIFRpbGVSdWxlLCBDb21w
b3NpdGVPcGVyYXRvcikgeyBub3RJbXBsZW1lbnRlZCgpOyB9Citib29sIEJpdG1hcEltYWdlOjpn
ZXRIQklUTUFQKEhCSVRNQVApIHsgbm90SW1wbGVtZW50ZWQoKTsgcmV0dXJuIGZhbHNlOyB9CisK
IHZvaWQgQ2FjaGVkUmVzb3VyY2U6OnNldEFsbERhdGEoUGxhdGZvcm1EYXRhKSB7IG5vdEltcGxl
bWVudGVkKCk7IH0KIAogQ29udGV4dE1lbnU6OkNvbnRleHRNZW51KGNvbnN0IEhpdFRlc3RSZXN1
bHQmIHJlc3VsdCkgOiBtX2hpdFRlc3RSZXN1bHQocmVzdWx0KSB7IG5vdEltcGxlbWVudGVkKCk7
IH0KIENvbnRleHRNZW51Ojp+Q29udGV4dE1lbnUoKSB7IG5vdEltcGxlbWVudGVkKCk7IH0KLXZv
aWQgQ29udGV4dE1lbnU6OmFwcGVuZEl0ZW0oY29uc3QgQ29udGV4dE1lbnVJdGVtJiBpdGVtKSB7
IG5vdEltcGxlbWVudGVkKCk7IH0KIHZvaWQgQ29udGV4dE1lbnU6OnNob3coKSB7IG5vdEltcGxl
bWVudGVkKCk7IH0KK3ZvaWQgQ29udGV4dE1lbnU6OmFwcGVuZEl0ZW0oQ29udGV4dE1lbnVJdGVt
JikgeyBub3RJbXBsZW1lbnRlZCgpOyB9CiAKLUNvbnRleHRNZW51SXRlbTo6Q29udGV4dE1lbnVJ
dGVtKFBsYXRmb3JtTWVudUl0ZW1EZXNjcmlwdGlvbiwgQ29udGV4dE1lbnUqKSB7IG5vdEltcGxl
bWVudGVkKCk7IH0KLUNvbnRleHRNZW51SXRlbTo6Q29udGV4dE1lbnVJdGVtKENvbnRleHRNZW51
KiBwYXJlbnRNZW51LCBDb250ZXh0TWVudSogc3ViTWVudSkgeyBub3RJbXBsZW1lbnRlZCgpOyB9
Ci1Db250ZXh0TWVudUl0ZW06OkNvbnRleHRNZW51SXRlbShDb250ZXh0TWVudUl0ZW1UeXBlIHR5
cGUsIENvbnRleHRNZW51QWN0aW9uIGFjdGlvbiwgY29uc3QgU3RyaW5nJiB0aXRsZSwgQ29udGV4
dE1lbnUqIHBhcmVudE1lbnUsIENvbnRleHRNZW51KiBzdWJNZW51KSB7IG5vdEltcGxlbWVudGVk
KCk7IH0KK0NvbnRleHRNZW51SXRlbTo6Q29udGV4dE1lbnVJdGVtKFBsYXRmb3JtTWVudUl0ZW1E
ZXNjcmlwdGlvbikgeyBub3RJbXBsZW1lbnRlZCgpOyB9CitDb250ZXh0TWVudUl0ZW06OkNvbnRl
eHRNZW51SXRlbShDb250ZXh0TWVudSopIHsgbm90SW1wbGVtZW50ZWQoKTsgfQorQ29udGV4dE1l
bnVJdGVtOjpDb250ZXh0TWVudUl0ZW0oQ29udGV4dE1lbnVJdGVtVHlwZSB0eXBlLCBDb250ZXh0
TWVudUFjdGlvbiBhY3Rpb24sIGNvbnN0IFN0cmluZyYgdGl0bGUsIENvbnRleHRNZW51KiBzdWJN
ZW51KSB7IG5vdEltcGxlbWVudGVkKCk7IH0KIENvbnRleHRNZW51SXRlbTo6fkNvbnRleHRNZW51
SXRlbSgpIHsgbm90SW1wbGVtZW50ZWQoKTsgfQotUGxhdGZvcm1NZW51SXRlbURlc2NyaXB0aW9u
IENvbnRleHRNZW51SXRlbTo6cGxhdGZvcm1EZXNjcmlwdGlvbigpIGNvbnN0IHsgbm90SW1wbGVt
ZW50ZWQoKTsgcmV0dXJuIG1fcGxhdGZvcm1EZXNjcmlwdGlvbjsgfQorUGxhdGZvcm1NZW51SXRl
bURlc2NyaXB0aW9uIENvbnRleHRNZW51SXRlbTo6cmVsZWFzZVBsYXRmb3JtRGVzY3JpcHRpb24o
KSB7IG5vdEltcGxlbWVudGVkKCk7IHJldHVybiBtX3BsYXRmb3JtRGVzY3JpcHRpb247IH0KK0Nv
bnRleHRNZW51SXRlbVR5cGUgQ29udGV4dE1lbnVJdGVtOjp0eXBlKCkgY29uc3QgeyBub3RJbXBs
ZW1lbnRlZCgpOyByZXR1cm4gQWN0aW9uVHlwZTsgfQordm9pZCBDb250ZXh0TWVudUl0ZW06OnNl
dFR5cGUoQ29udGV4dE1lbnVJdGVtVHlwZSkgeyBub3RJbXBsZW1lbnRlZCgpOyB9CiBDb250ZXh0
TWVudUFjdGlvbiBDb250ZXh0TWVudUl0ZW06OmFjdGlvbigpIGNvbnN0IHsgbm90SW1wbGVtZW50
ZWQoKTsgcmV0dXJuIENvbnRleHRNZW51SXRlbVRhZ05vQWN0aW9uOyB9Ci12b2lkIENvbnRleHRN
ZW51SXRlbTo6c2V0QWN0aW9uKENvbnRleHRNZW51QWN0aW9uIGFjdGlvbikgeyBub3RJbXBsZW1l
bnRlZCgpOyB9Cit2b2lkIENvbnRleHRNZW51SXRlbTo6c2V0QWN0aW9uKENvbnRleHRNZW51QWN0
aW9uKSB7IG5vdEltcGxlbWVudGVkKCk7IH0KIFN0cmluZyBDb250ZXh0TWVudUl0ZW06OnRpdGxl
KCkgY29uc3QgeyBub3RJbXBsZW1lbnRlZCgpOyByZXR1cm4gU3RyaW5nKCk7IH0KLXZvaWQgQ29u
dGV4dE1lbnVJdGVtOjpzZXRUaXRsZShTdHJpbmcgdGl0bGUpIHsgbm90SW1wbGVtZW50ZWQoKTsg
fQordm9pZCBDb250ZXh0TWVudUl0ZW06OnNldFRpdGxlKGNvbnN0IFN0cmluZyYpIHsgbm90SW1w
bGVtZW50ZWQoKTsgfQogUGxhdGZvcm1NZW51RGVzY3JpcHRpb24gQ29udGV4dE1lbnVJdGVtOjpw
bGF0Zm9ybVN1Yk1lbnUoKSBjb25zdCB7IG5vdEltcGxlbWVudGVkKCk7IHJldHVybiAwOyB9Ci12
b2lkIENvbnRleHRNZW51SXRlbTo6c2V0U3ViTWVudShDb250ZXh0TWVudSogc3ViTWVudSkgeyBu
b3RJbXBsZW1lbnRlZCgpOyB9Cit2b2lkIENvbnRleHRNZW51SXRlbTo6c2V0U3ViTWVudShDb250
ZXh0TWVudSopIHsgbm90SW1wbGVtZW50ZWQoKTsgfQordm9pZCBDb250ZXh0TWVudUl0ZW06OnNl
dENoZWNrZWQoYm9vbCkgeyBub3RJbXBsZW1lbnRlZCgpOyB9Cit2b2lkIENvbnRleHRNZW51SXRl
bTo6c2V0RW5hYmxlZChib29sKSB7IG5vdEltcGxlbWVudGVkKCk7IH0KIAogdm9pZCBEb2N1bWVu
dExvYWRlcjo6c2V0RnJhbWUoRnJhbWUqKSB7IG5vdEltcGxlbWVudGVkKCk7IH0KIEZyYW1lTG9h
ZGVyKiBEb2N1bWVudExvYWRlcjo6ZnJhbWVMb2FkZXIoKSBjb25zdCB7IG5vdEltcGxlbWVudGVk
KCk7IHJldHVybiBtX2ZyYW1lLT5sb2FkZXIoKTsgfQorc3RhdGljIFJlc291cmNlUmVxdWVzdCBl
bXB0eVJlc291cmNlUmVxdWVzdEZvckRvY3VtZW50TG9hZGVyOworY29uc3QgUmVzb3VyY2VSZXF1
ZXN0JiBEb2N1bWVudExvYWRlcjo6b3JpZ2luYWxSZXF1ZXN0KCkgY29uc3QgeyBub3RJbXBsZW1l
bnRlZCgpOyByZXR1cm4gZW1wdHlSZXNvdXJjZVJlcXVlc3RGb3JEb2N1bWVudExvYWRlcjsgfQor
Y29uc3QgUmVzb3VyY2VSZXF1ZXN0JiBEb2N1bWVudExvYWRlcjo6cmVxdWVzdCgpIGNvbnN0IHsg
bm90SW1wbGVtZW50ZWQoKTsgcmV0dXJuIGVtcHR5UmVzb3VyY2VSZXF1ZXN0Rm9yRG9jdW1lbnRM
b2FkZXI7IH0KK1Jlc291cmNlUmVxdWVzdCYgRG9jdW1lbnRMb2FkZXI6OnJlcXVlc3QoKSB7IG5v
dEltcGxlbWVudGVkKCk7IHJldHVybiBlbXB0eVJlc291cmNlUmVxdWVzdEZvckRvY3VtZW50TG9h
ZGVyOyB9CiBzdGF0aWMgS1VSTCBlbXB0eUtVUkxGb3JEb2N1bWVudExvYWRlcjsKIGNvbnN0IEtV
UkwmIERvY3VtZW50TG9hZGVyOjpVUkwoKSBjb25zdCB7IG5vdEltcGxlbWVudGVkKCk7IHJldHVy
biBlbXB0eUtVUkxGb3JEb2N1bWVudExvYWRlcjsgfQotYm9vbCBEb2N1bWVudExvYWRlcjo6aXNT
dG9wcGluZygpIGNvbnN0IHsgbm90SW1wbGVtZW50ZWQoKTsgcmV0dXJuIGZhbHNlOyB9Citjb25z
dCBLVVJMIERvY3VtZW50TG9hZGVyOjp1bnJlYWNoYWJsZVVSTCgpIGNvbnN0IHsgbm90SW1wbGVt
ZW50ZWQoKTsgcmV0dXJuIEtVUkwoKTsgfQorYm9vbCBEb2N1bWVudExvYWRlcjo6Z2V0UmVzcG9u
c2VSZWZyZXNoQW5kTW9kaWZpZWRIZWFkZXJzKFN0cmluZyYgcmVmcmVzaCwgU3RyaW5nJiBtb2Rp
ZmllZCkgY29uc3QgeyBub3RJbXBsZW1lbnRlZCgpOyByZXR1cm4gZmFsc2U7IH0KK3ZvaWQgRG9j
dW1lbnRMb2FkZXI6OnJlcGxhY2VSZXF1ZXN0VVJMRm9yQW5jaG9yU2Nyb2xsKGNvbnN0IEtVUkwm
KSB7IG5vdEltcGxlbWVudGVkKCk7IH0KIHZvaWQgRG9jdW1lbnRMb2FkZXI6OnN0b3BMb2FkaW5n
KCkgeyBub3RJbXBsZW1lbnRlZCgpOyB9Cit2b2lkIERvY3VtZW50TG9hZGVyOjpzZXRDb21taXR0
ZWQoYm9vbCkgeyBub3RJbXBsZW1lbnRlZCgpOyB9Citib29sIERvY3VtZW50TG9hZGVyOjppc0xv
YWRpbmcoKSBjb25zdCB7IG5vdEltcGxlbWVudGVkKCk7IHJldHVybiBmYWxzZTsgfQogdm9pZCBE
b2N1bWVudExvYWRlcjo6c2V0TG9hZGluZyhib29sKSB7IG5vdEltcGxlbWVudGVkKCk7IH0KIHZv
aWQgRG9jdW1lbnRMb2FkZXI6OnVwZGF0ZUxvYWRpbmcoKSB7IG5vdEltcGxlbWVudGVkKCk7IH0K
IHZvaWQgRG9jdW1lbnRMb2FkZXI6OnNldHVwRm9yUmVwbGFjZUJ5TUlNRVR5cGUoY29uc3QgU3Ry
aW5nJiBuZXdNSU1FVHlwZSkgeyBub3RJbXBsZW1lbnRlZCgpOyB9Cit2b2lkIERvY3VtZW50TG9h
ZGVyOjpwcmVwYXJlRm9yTG9hZFN0YXJ0KCkgeyBub3RJbXBsZW1lbnRlZCgpOyB9Citib29sIERv
Y3VtZW50TG9hZGVyOjppc0NsaWVudFJlZGlyZWN0KCkgY29uc3QgeyBub3RJbXBsZW1lbnRlZCgp
OyByZXR1cm4gZmFsc2U7IH0KIGJvb2wgRG9jdW1lbnRMb2FkZXI6OmlzTG9hZGluZ0luQVBJU2Vu
c2UoKSBjb25zdCB7IG5vdEltcGxlbWVudGVkKCk7IHJldHVybiBmYWxzZTsgfQogdm9pZCBEb2N1
bWVudExvYWRlcjo6c3RvcFJlY29yZGluZ1Jlc3BvbnNlcygpIHsgbm90SW1wbGVtZW50ZWQoKTsg
fQorU3RyaW5nIERvY3VtZW50TG9hZGVyOjp0aXRsZSgpIGNvbnN0IHsgbm90SW1wbGVtZW50ZWQo
KTsgcmV0dXJuIFN0cmluZygpOyB9CitLVVJMIERvY3VtZW50TG9hZGVyOjp1cmxGb3JIaXN0b3J5
KCkgY29uc3QgeyBub3RJbXBsZW1lbnRlZCgpOyByZXR1cm4gS1VSTCgpOyB9CiAKIHZvaWQgRWRp
dG9yOjppZ25vcmVTcGVsbGluZygpIHsgbm90SW1wbGVtZW50ZWQoKTsgfQogdm9pZCBFZGl0b3I6
OmxlYXJuU3BlbGxpbmcoKSB7IG5vdEltcGxlbWVudGVkKCk7IH0KQEAgLTE1OCw3ICsxODAsNyBA
QCBib29sIEVkaXRvcjo6aXNTZWxlY3Rpb25VbmdyYW1tYXRpY2FsKCkgCiBib29sIEVkaXRvcjo6
aXNTZWxlY3Rpb25NaXNzcGVsbGVkKCkgeyBub3RJbXBsZW1lbnRlZCgpOyByZXR1cm4gZmFsc2U7
IH0KIFZlY3RvcjxTdHJpbmc+IEVkaXRvcjo6Z3Vlc3Nlc0Zvck1pc3NwZWxsZWRTZWxlY3Rpb24o
KSB7IG5vdEltcGxlbWVudGVkKCk7IHJldHVybiBWZWN0b3I8U3RyaW5nPigpOyB9CiBWZWN0b3I8
U3RyaW5nPiBFZGl0b3I6Omd1ZXNzZXNGb3JVbmdyYW1tYXRpY2FsU2VsZWN0aW9uKCkgeyBub3RJ
bXBsZW1lbnRlZCgpOyByZXR1cm4gVmVjdG9yPFN0cmluZz4oKTsgfQotdm9pZCBFZGl0b3I6Om1h
cmtNaXNzcGVsbGluZ3NJbkFkamFjZW50V29yZHMoY29uc3QgVmlzaWJsZVBvc2l0aW9uJikgeyBu
b3RJbXBsZW1lbnRlZCgpOyB9Cit2b2lkIEVkaXRvcjo6bWFya01pc3NwZWxsaW5nc0FmdGVyVHlw
aW5nVG9Qb3NpdGlvbihjb25zdCBWaXNpYmxlUG9zaXRpb24mKSB7IG5vdEltcGxlbWVudGVkKCk7
IH0KIFBhc3NSZWZQdHI8Q2xpcGJvYXJkPiBFZGl0b3I6Om5ld0dlbmVyYWxDbGlwYm9hcmQoQ2xp
cGJvYXJkQWNjZXNzUG9saWN5IHBvbGljeSkgeyBub3RJbXBsZW1lbnRlZCgpOyByZXR1cm4gMDsg
fQogCiBib29sIEV2ZW50SGFuZGxlcjo6dGFic1RvTGlua3MoS2V5Ym9hcmRFdmVudCogZXZlbnQp
IGNvbnN0IHsgbm90SW1wbGVtZW50ZWQoKTsgcmV0dXJuIGZhbHNlOyB9CkBAIC0xODMsMjUgKzIw
NSwyNyBAQCB2b2lkIEZpbGVDaG9vc2VyOjpjaG9vc2VGaWxlKGNvbnN0IFN0cmluCiB2b2lkIEZy
YW1lOjpzZXROZWVkc1JlYXBwbHlTdHlsZXMoKSB7IG5vdEltcGxlbWVudGVkKCk7IH0KIAogdm9p
ZCBGcmFtZUxvYWRlcjo6bG9hZChjb25zdCBGcmFtZUxvYWRSZXF1ZXN0JiwgYm9vbCB1c2VyR2Vz
dHVyZSwgRXZlbnQqLCBIVE1MRm9ybUVsZW1lbnQqLCBjb25zdCBIYXNoTWFwPFN0cmluZywgU3Ry
aW5nPiYgZm9ybVZhbHVlcykgeyBub3RJbXBsZW1lbnRlZCgpOyB9Cit2b2lkIEZyYW1lTG9hZGVy
Ojpsb2FkKGNvbnN0IFJlc291cmNlUmVxdWVzdCYsIGNvbnN0IE5hdmlnYXRpb25BY3Rpb24mLCBG
cmFtZUxvYWRUeXBlLCBQYXNzUmVmUHRyPEZvcm1TdGF0ZT4pIHsgbm90SW1wbGVtZW50ZWQoKTsg
fQordm9pZCBGcmFtZUxvYWRlcjo6bG9hZChEb2N1bWVudExvYWRlciosIEZyYW1lTG9hZFR5cGUs
IFBhc3NSZWZQdHI8Rm9ybVN0YXRlPikgeyBub3RJbXBsZW1lbnRlZCgpOyB9CiB2b2lkIEZyYW1l
TG9hZGVyOjpkaWRGaXJzdExheW91dCgpIHsgbm90SW1wbGVtZW50ZWQoKTsgfQogU3RyaW5nIEZy
YW1lTG9hZGVyOjpvdmVycmlkZU1lZGlhVHlwZSgpIGNvbnN0IHsgbm90SW1wbGVtZW50ZWQoKTsg
cmV0dXJuIFN0cmluZygpOyB9CiBXaWRnZXQqIEZyYW1lTG9hZGVyOjpjcmVhdGVKYXZhQXBwbGV0
V2lkZ2V0KGNvbnN0IEludFNpemUmLCBFbGVtZW50KiwgY29uc3QgSGFzaE1hcDxTdHJpbmcsIFN0
cmluZz4mKSB7IG5vdEltcGxlbWVudGVkKCk7IHJldHVybiAwOyB9CiB2b2lkIEZyYW1lTG9hZGVy
OjpyZWRpcmVjdERhdGFUb1BsdWdpbihXaWRnZXQqIHBsdWdpbldpZGdldCkgeyBub3RJbXBsZW1l
bnRlZCgpOyB9CiBpbnQgRnJhbWVMb2FkZXI6OmdldEhpc3RvcnlMZW5ndGgoKSB7IG5vdEltcGxl
bWVudGVkKCk7IHJldHVybiAwOyB9CiBTdHJpbmcgRnJhbWVMb2FkZXI6OnJlZmVycmVyKCkgY29u
c3QgeyBub3RJbXBsZW1lbnRlZCgpOyByZXR1cm4gU3RyaW5nKCk7IH0KLXZvaWQgRnJhbWVMb2Fk
ZXI6OnNhdmVEb2N1bWVudFN0YXRlKCkgeyBub3RJbXBsZW1lbnRlZCgpOyB9Ci12b2lkIEZyYW1l
TG9hZGVyOjpyZXN0b3JlRG9jdW1lbnRTdGF0ZSgpIHsgbm90SW1wbGVtZW50ZWQoKTsgfQotdm9p
ZCBGcmFtZUxvYWRlcjo6Z29CYWNrT3JGb3J3YXJkKGludCBkaXN0YW5jZSkgeyBub3RJbXBsZW1l
bnRlZCgpOyB9CiBLVVJMIEZyYW1lTG9hZGVyOjpoaXN0b3J5VVJMKGludCBkaXN0YW5jZSkgeyBu
b3RJbXBsZW1lbnRlZCgpOyByZXR1cm4gS1VSTCgpO30KIEZyYW1lKiBGcmFtZUxvYWRlcjo6Y3Jl
YXRlRnJhbWUoY29uc3QgS1VSTCYgVVJMLCBjb25zdCBTdHJpbmcmIG5hbWUsIEhUTUxGcmFtZU93
bmVyRWxlbWVudCosIGNvbnN0IFN0cmluZyYgcmVmZXJyZXIpIHsgbm90SW1wbGVtZW50ZWQoKTsg
cmV0dXJuIDA7IH0KIHZvaWQgRnJhbWVMb2FkZXI6OnBhcnRDbGVhcmVkSW5CZWdpbigpIHsgbm90
SW1wbGVtZW50ZWQoKTsgfQogS1VSTCBGcmFtZUxvYWRlcjo6b3JpZ2luYWxSZXF1ZXN0VVJMKCkg
Y29uc3QgeyBub3RJbXBsZW1lbnRlZCgpOyByZXR1cm4gS1VSTCgpOyB9CitLVVJMIEZyYW1lTG9h
ZGVyOjpkYXRhVVJMQmFzZUZyb21SZXF1ZXN0KGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVz
dCkgY29uc3QgeyBub3RJbXBsZW1lbnRlZCgpOyByZXR1cm4gS1VSTCgpOyB9CiBib29sIEZyYW1l
TG9hZGVyOjpjYW5Hb0JhY2tPckZvcndhcmQoaW50KSBjb25zdCB7IG5vdEltcGxlbWVudGVkKCk7
IHJldHVybiBmYWxzZTsgfQogT2JqZWN0Q29udGVudFR5cGUgRnJhbWVMb2FkZXI6Om9iamVjdENv
bnRlbnRUeXBlKGNvbnN0IEtVUkwmLCBjb25zdCBTdHJpbmcmKSB7IG5vdEltcGxlbWVudGVkKCk7
IHJldHVybiBPYmplY3RDb250ZW50Tm9uZTsgfQogV2lkZ2V0KiBGcmFtZUxvYWRlcjo6Y3JlYXRl
UGx1Z2luKEVsZW1lbnQqLCBjb25zdCBLVVJMJiwgY29uc3QgVmVjdG9yPFN0cmluZz4mLCBjb25z
dCBWZWN0b3I8U3RyaW5nPiYsIGNvbnN0IFN0cmluZyYpIHsgbm90SW1wbGVtZW50ZWQoKTsgcmV0
dXJuIDA7IH0KIHZvaWQgRnJhbWVMb2FkZXI6OmNoZWNrTG9hZENvbXBsZXRlRm9yVGhpc0ZyYW1l
KCkgeyBub3RJbXBsZW1lbnRlZCgpOyB9CiB2b2lkIEZyYW1lTG9hZGVyOjpyZWxvYWQoKSB7IG5v
dEltcGxlbWVudGVkKCk7IH0KIHZvaWQgRnJhbWVMb2FkZXI6OmxvYWRSZXNvdXJjZVN5bmNocm9u
b3VzbHkoY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBSZXNvdXJjZVJlc3BvbnNlJiBy
LCBWZWN0b3I8Y2hhcj4mIGRhdGEpIHsgbm90SW1wbGVtZW50ZWQoKTsgfQordm9pZCBGcmFtZUxv
YWRlcjo6b3BlbmVkKCkgeyBub3RJbXBsZW1lbnRlZCgpOyB9Cit2b2lkIEZyYW1lTG9hZGVyOjph
cHBseVVzZXJBZ2VudChSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QpIHsgbm90SW1wbGVtZW50ZWQo
KTsgfQogCiB2b2lkIEZyYW1lVmlldzo6dXBkYXRlQm9yZGVyKCkgeyBub3RJbXBsZW1lbnRlZCgp
OyB9CiAKQEAgLTIzNCw3ICsyNTgsNiBAQCB2b2lkIEdyYXBoaWNzQ29udGV4dDo6YmVnaW5UcmFu
c3BhcmVuY3lMCiB2b2lkIEdyYXBoaWNzQ29udGV4dDo6ZW5kVHJhbnNwYXJlbmN5TGF5ZXIoKSB7
IG5vdEltcGxlbWVudGVkKCk7IH0KIHZvaWQgR3JhcGhpY3NDb250ZXh0OjpjbGVhclJlY3QoY29u
c3QgRmxvYXRSZWN0JikgeyBub3RJbXBsZW1lbnRlZCgpOyB9CiB2b2lkIEdyYXBoaWNzQ29udGV4
dDo6c3Ryb2tlUmVjdChjb25zdCBGbG9hdFJlY3QmLCBmbG9hdCkgeyBub3RJbXBsZW1lbnRlZCgp
OyB9Ci12b2lkIEdyYXBoaWNzQ29udGV4dDo6c2V0TGluZVdpZHRoKGZsb2F0KSB7IG5vdEltcGxl
bWVudGVkKCk7IH0KIHZvaWQgR3JhcGhpY3NDb250ZXh0OjpzZXRMaW5lQ2FwKExpbmVDYXApIHsg
bm90SW1wbGVtZW50ZWQoKTsgfQogdm9pZCBHcmFwaGljc0NvbnRleHQ6OnNldExpbmVKb2luKExp
bmVKb2luKSB7IG5vdEltcGxlbWVudGVkKCk7IH0KIHZvaWQgR3JhcGhpY3NDb250ZXh0OjpzZXRN
aXRlckxpbWl0KGZsb2F0KSB7IG5vdEltcGxlbWVudGVkKCk7IH0KQEAgLTI0OSwxNyArMjcyLDIz
IEBAIEljb246On5JY29uKCkgeyBub3RJbXBsZW1lbnRlZCgpOyB9CiBQYXNzUmVmUHRyPEljb24+
IEljb246Om5ld0ljb25Gb3JGaWxlKGNvbnN0IFN0cmluZyYgZmlsZW5hbWUpIHsgbm90SW1wbGVt
ZW50ZWQoKTsgcmV0dXJuIFBhc3NSZWZQdHI8SWNvbj4obmV3IEljb24oKSk7IH0KIHZvaWQgSWNv
bjo6cGFpbnQoR3JhcGhpY3NDb250ZXh0KiwgY29uc3QgSW50UmVjdCYpIHsgbm90SW1wbGVtZW50
ZWQoKTsgfQogCisvLyBGSVhNRTogQWxsIHRoaXMgSWNvbkRhdGFiYXNlIHN0dWZmIGNvdWxkIGdv
IGF3YXkgaWYgbXVjaCBvZgorLy8gV2ViQ29yZS9sb2FkZXIvaWNvbiB3YXMgbGlua2VkIGluLiAg
VW5mb3J0dW5hdGVseSB0aGF0IHJlcXVpcmVzIFNRTGl0ZSwKKy8vIHdoaWNoIGlzbid0IGN1cnJl
bnRseSBwYXJ0IG9mIHRoZSBidWlsZC4KK0ltYWdlKiBJY29uRGF0YWJhc2U6Omljb25Gb3JQYWdl
VVJMKGNvbnN0IFN0cmluZyYsIGNvbnN0IEludFNpemUmLCBib29sIGNhY2hlKSB7IG5vdEltcGxl
bWVudGVkKCk7IHJldHVybiAwOyB9CitJbWFnZSogSWNvbkRhdGFiYXNlOjpkZWZhdWx0SWNvbihj
b25zdCBJbnRTaXplJikgeyBub3RJbXBsZW1lbnRlZCgpOyByZXR1cm4gMDsgfQordm9pZCBJY29u
RGF0YWJhc2U6OnJldGFpbkljb25Gb3JQYWdlVVJMKGNvbnN0IFN0cmluZyYpIHsgbm90SW1wbGVt
ZW50ZWQoKTsgfQordm9pZCBJY29uRGF0YWJhc2U6OnJlbGVhc2VJY29uRm9yUGFnZVVSTChjb25z
dCBTdHJpbmcmKSB7IG5vdEltcGxlbWVudGVkKCk7IH0KIGJvb2wgSWNvbkRhdGFiYXNlOjppc0lj
b25FeHBpcmVkRm9ySWNvblVSTChjb25zdCBTdHJpbmcmIHVybCkgeyBub3RJbXBsZW1lbnRlZCgp
OyByZXR1cm4gZmFsc2U7IH0KIGJvb2wgSWNvbkRhdGFiYXNlOjpoYXNFbnRyeUZvckljb25VUkwo
Y29uc3QgU3RyaW5nJiB1cmwpIHsgbm90SW1wbGVtZW50ZWQoKTsgcmV0dXJuIGZhbHNlOyB9CiBJ
Y29uRGF0YWJhc2UqIEljb25EYXRhYmFzZTo6c2hhcmVkSWNvbkRhdGFiYXNlKCkgeyBub3RJbXBs
ZW1lbnRlZCgpOyByZXR1cm4gMDsgfQogYm9vbCBJY29uRGF0YWJhc2U6OnNldEljb25VUkxGb3JQ
YWdlVVJMKGNvbnN0IFN0cmluZyYgaWNvblVSTCwgY29uc3QgU3RyaW5nJiBwYWdlVVJMKSB7IG5v
dEltcGxlbWVudGVkKCk7IHJldHVybiBmYWxzZTsgfQogdm9pZCBJY29uRGF0YWJhc2U6OnNldElj
b25EYXRhRm9ySWNvblVSTChjb25zdCB2b2lkKiBkYXRhLCBpbnQgc2l6ZSwgY29uc3QgU3RyaW5n
JikgeyBub3RJbXBsZW1lbnRlZCgpOyB9CiAKLXZvaWQgSW1hZ2U6OmRyYXdUaWxlZChHcmFwaGlj
c0NvbnRleHQqLCBjb25zdCBGbG9hdFJlY3QmLCBjb25zdCBGbG9hdFJlY3QmLCBUaWxlUnVsZSwg
VGlsZVJ1bGUsIENvbXBvc2l0ZU9wZXJhdG9yKSB7IG5vdEltcGxlbWVudGVkKCk7IH0KLWJvb2wg
SW1hZ2U6OmdldEhCSVRNQVAoSEJJVE1BUCkgeyBub3RJbXBsZW1lbnRlZCgpOyByZXR1cm4gZmFs
c2U7IH0KLQogSElOU1RBTkNFIFBhZ2U6OnNfaW5zdGFuY2VIYW5kbGUgPSAwOwogCit2b2lkIFBh
Z2VDYWNoZTo6Y2xvc2UoKSB7IG5vdEltcGxlbWVudGVkKCk7IH0KKwogUGFzdGVib2FyZCogUGFz
dGVib2FyZDo6Z2VuZXJhbFBhc3RlYm9hcmQoKSB7IG5vdEltcGxlbWVudGVkKCk7IHJldHVybiAw
OyB9CiB2b2lkIFBhc3RlYm9hcmQ6OndyaXRlU2VsZWN0aW9uKFJhbmdlKiwgYm9vbCBjYW5TbWFy
dENvcHlPckRlbGV0ZSwgRnJhbWUqKSB7IG5vdEltcGxlbWVudGVkKCk7IH0KIHZvaWQgUGFzdGVi
b2FyZDo6d3JpdGVVUkwoY29uc3QgS1VSTCYsIGNvbnN0IFN0cmluZyYsIEZyYW1lKikgeyBub3RJ
bXBsZW1lbnRlZCgpOyB9CkBAIC0zMjMsNyArMzUyLDkgQEAgdm9pZCBSZW5kZXJUaGVtZVdpbjo6
c3lzdGVtRm9udChpbnQgcHJvcAogYm9vbCBSZW5kZXJUaGVtZVdpbjo6cGFpbnRNZW51TGlzdChS
ZW5kZXJPYmplY3QgKiwgY29uc3QgUmVuZGVyT2JqZWN0OjpQYWludEluZm8mLCBjb25zdCBJbnRS
ZWN0JikgeyBub3RJbXBsZW1lbnRlZCgpOyByZXR1cm4gZmFsc2U7IH0KIHZvaWQgUmVuZGVyVGhl
bWVXaW46OmFkanVzdE1lbnVMaXN0U3R5bGUoQ1NTU3R5bGVTZWxlY3RvciosIFJlbmRlclN0eWxl
KiwgRWxlbWVudCopIGNvbnN0IHsgbm90SW1wbGVtZW50ZWQoKTsgfQogCitib29sIFJlc291cmNl
SGFuZGxlOjp3aWxsTG9hZEZyb21DYWNoZShSZXNvdXJjZVJlcXVlc3QmKSB7IG5vdEltcGxlbWVu
dGVkKCk7IHJldHVybiBmYWxzZTsgfQogYm9vbCBSZXNvdXJjZUhhbmRsZTo6bG9hZHNCbG9ja2Vk
KCkgeyBub3RJbXBsZW1lbnRlZCgpOyByZXR1cm4gZmFsc2U7IH0KKwogdm9pZCBSZXNvdXJjZUxv
YWRlcjo6Y2FuY2VsKCkgeyBub3RJbXBsZW1lbnRlZCgpOyB9CiAKIHZvaWQgU2Nyb2xsVmlldzo6
YWRkQ2hpbGQoV2lkZ2V0KikgeyBub3RJbXBsZW1lbnRlZCgpOyB9CkBAIC0zNDEsMzUgKzM3Miw5
IEBAIHZvaWQgU2Nyb2xsVmlldzo6c2V0RnJhbWVHZW9tZXRyeShjb25zdCAKIEludFJlY3QgU2Ny
b2xsVmlldzo6d2luZG93UmVzaXplclJlY3QoKSB7IG5vdEltcGxlbWVudGVkKCk7IHJldHVybiBJ
bnRSZWN0KCk7IH0KIGJvb2wgU2Nyb2xsVmlldzo6cmVzaXplck92ZXJsYXBzQ29udGVudCgpIGNv
bnN0IHsgbm90SW1wbGVtZW50ZWQoKTsgcmV0dXJuIGZhbHNlOyB9CiAKLXZvaWQgVGV4dEZpZWxk
OjpzZWxlY3RBbGwoKSB7IG5vdEltcGxlbWVudGVkKCk7IH0KLXZvaWQgVGV4dEZpZWxkOjphZGRT
ZWFyY2hSZXN1bHQoKSB7IG5vdEltcGxlbWVudGVkKCk7IH0KLWludCBUZXh0RmllbGQ6OnNlbGVj
dGlvblN0YXJ0KCkgY29uc3QgeyBub3RJbXBsZW1lbnRlZCgpOyByZXR1cm4gMDsgfQotYm9vbCBU
ZXh0RmllbGQ6Omhhc1NlbGVjdGVkVGV4dCgpIGNvbnN0IHsgbm90SW1wbGVtZW50ZWQoKTsgcmV0
dXJuIDA7IH0KLVN0cmluZyBUZXh0RmllbGQ6OnNlbGVjdGVkVGV4dCgpIGNvbnN0IHsgbm90SW1w
bGVtZW50ZWQoKTsgcmV0dXJuIFN0cmluZygpOyB9Ci12b2lkIFRleHRGaWVsZDo6c2V0QXV0b1Nh
dmVOYW1lKFN0cmluZyBjb25zdCYpIHsgbm90SW1wbGVtZW50ZWQoKTsgfQotYm9vbCBUZXh0Rmll
bGQ6OmNoZWNrc0Rlc2NlbmRhbnRzRm9yRm9jdXMoKSBjb25zdCB7IG5vdEltcGxlbWVudGVkKCk7
IHJldHVybiBmYWxzZTsgfQotdm9pZCBUZXh0RmllbGQ6OnNldFNlbGVjdGlvbihpbnQsaW50KSB7
IG5vdEltcGxlbWVudGVkKCk7IH0KLXZvaWQgVGV4dEZpZWxkOjpzZXRNYXhSZXN1bHRzKGludCkg
eyBub3RJbXBsZW1lbnRlZCgpOyB9Ci1ib29sIFRleHRGaWVsZDo6ZWRpdGVkKCkgY29uc3QgeyBu
b3RJbXBsZW1lbnRlZCgpOyByZXR1cm4gMDsgfQotV2lkZ2V0OjpGb2N1c1BvbGljeSBUZXh0Rmll
bGQ6OmZvY3VzUG9saWN5KCkgY29uc3QgeyBub3RJbXBsZW1lbnRlZCgpOyByZXR1cm4gTm9Gb2N1
czsgfQotVGV4dEZpZWxkOjpUZXh0RmllbGQoKSB7IG5vdEltcGxlbWVudGVkKCk7IH0KLVRleHRG
aWVsZDo6flRleHRGaWVsZCgpIHsgbm90SW1wbGVtZW50ZWQoKTsgfQotdm9pZCBUZXh0RmllbGQ6
OnNldEZvbnQoV2ViQ29yZTo6Rm9udCBjb25zdCYpIHsgbm90SW1wbGVtZW50ZWQoKTsgfQotdm9p
ZCBUZXh0RmllbGQ6OnNldEFsaWdubWVudChIb3Jpem9udGFsQWxpZ25tZW50KSB7IG5vdEltcGxl
bWVudGVkKCk7IH0KLXZvaWQgVGV4dEZpZWxkOjpzZXRXcml0aW5nRGlyZWN0aW9uKFRleHREaXJl
Y3Rpb24pIHsgbm90SW1wbGVtZW50ZWQoKTsgfQotaW50IFRleHRGaWVsZDo6bWF4TGVuZ3RoKCkg
Y29uc3QgeyBub3RJbXBsZW1lbnRlZCgpOyByZXR1cm4gMDsgfQotdm9pZCBUZXh0RmllbGQ6OnNl
dE1heExlbmd0aChpbnQpIHsgbm90SW1wbGVtZW50ZWQoKTsgfQotU3RyaW5nIFRleHRGaWVsZDo6
dGV4dCgpIGNvbnN0IHsgbm90SW1wbGVtZW50ZWQoKTsgcmV0dXJuIFN0cmluZygpOyB9Ci12b2lk
IFRleHRGaWVsZDo6c2V0VGV4dChTdHJpbmcgY29uc3QmKSB7IG5vdEltcGxlbWVudGVkKCk7IH0K
LWludCBUZXh0RmllbGQ6OmN1cnNvclBvc2l0aW9uKCkgY29uc3QgeyBub3RJbXBsZW1lbnRlZCgp
OyByZXR1cm4gMDsgfQotdm9pZCBUZXh0RmllbGQ6OnNldEN1cnNvclBvc2l0aW9uKGludCkgeyBu
b3RJbXBsZW1lbnRlZCgpOyB9Ci12b2lkIFRleHRGaWVsZDo6c2V0RWRpdGVkKGJvb2wpIHsgbm90
SW1wbGVtZW50ZWQoKTsgfQotdm9pZCBUZXh0RmllbGQ6OnNldFJlYWRPbmx5KGJvb2wpIHsgbm90
SW1wbGVtZW50ZWQoKTsgfQotdm9pZCBUZXh0RmllbGQ6OnNldFBsYWNlaG9sZGVyU3RyaW5nKFN0
cmluZyBjb25zdCYpIHsgbm90SW1wbGVtZW50ZWQoKTsgfQotdm9pZCBUZXh0RmllbGQ6OnNldENv
bG9ycyhDb2xvciBjb25zdCYsQ29sb3IgY29uc3QmKSB7IG5vdEltcGxlbWVudGVkKCk7IH0KLUlu
dFNpemUgVGV4dEZpZWxkOjpzaXplRm9yQ2hhcmFjdGVyV2lkdGgoaW50KSBjb25zdCB7IG5vdElt
cGxlbWVudGVkKCk7IHJldHVybiBJbnRTaXplKCk7IH0KLWludCBUZXh0RmllbGQ6OmJhc2VsaW5l
UG9zaXRpb24oaW50KSBjb25zdCB7IG5vdEltcGxlbWVudGVkKCk7IHJldHVybiAwOyB9Ci12b2lk
IFRleHRGaWVsZDo6c2V0TGl2ZVNlYXJjaChib29sKSB7IG5vdEltcGxlbWVudGVkKCk7IH0KK3Zv
aWQgU2VhcmNoUG9wdXBNZW51OjpzYXZlUmVjZW50U2VhcmNoZXMoY29uc3QgQXRvbWljU3RyaW5n
JiBuYW1lLCBjb25zdCBWZWN0b3I8U3RyaW5nPiYgc2VhcmNoSXRlbXMpIHsgbm90SW1wbGVtZW50
ZWQoKTsgfQordm9pZCBTZWFyY2hQb3B1cE1lbnU6OmxvYWRSZWNlbnRTZWFyY2hlcyhjb25zdCBB
dG9taWNTdHJpbmcmIG5hbWUsIFZlY3RvcjxTdHJpbmc+JiBzZWFyY2hJdGVtcykgeyBub3RJbXBs
ZW1lbnRlZCgpOyB9CitTZWFyY2hQb3B1cE1lbnU6OlNlYXJjaFBvcHVwTWVudShQb3B1cE1lbnVD
bGllbnQqIGNsaWVudCkgOiBQb3B1cE1lbnUoY2xpZW50KSB7IG5vdEltcGxlbWVudGVkKCk7IH0K
IAogdm9pZCBXaWRnZXQ6OmVuYWJsZUZsdXNoRHJhd2luZygpIHsgbm90SW1wbGVtZW50ZWQoKTsg
fQogYm9vbCBXaWRnZXQ6OmlzRW5hYmxlZCgpIGNvbnN0IHsgbm90SW1wbGVtZW50ZWQoKTsgcmV0
dXJuIDA7IH0KSW5kZXg6IFdlYktpdC9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0L0No
YW5nZUxvZwkocmV2aXNpb24gMTg1NTEpCisrKyBXZWJLaXQvQ2hhbmdlTG9nCSh3b3JraW5nIGNv
cHkpCkBAIC0xLDMgKzEsMzIgQEAKKzIwMDctMDEtMDMgIERvbiBHaWJzb24gIDxkZ2lic29uNzdA
Z21haWwuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIGh0dHA6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTExOTAwOgorICAgICAg
ICBXaW5kb3dzIGJ1aWxkIGJ1c3RhZ2UKKworICAgICAgICAqIENPTS9DaHJvbWVDbGllbnRXaW4u
Y3BwOgorICAgICAgICAoQ2hyb21lQ2xpZW50V2luOjphZGRNZXNzYWdlVG9Db25zb2xlKToKKyAg
ICAgICAgKENocm9tZUNsaWVudFdpbjo6cnVuQmVmb3JlVW5sb2FkQ29uZmlybVBhbmVsKToKKyAg
ICAgICAgKiBDT00vQ2hyb21lQ2xpZW50V2luLmg6CisgICAgICAgICogQ09NL0NvbnRleHRNZW51
Q2xpZW50V2luLmNwcDoKKyAgICAgICAgKENvbnRleHRNZW51Q2xpZW50V2luOjpjb250ZXh0TWVu
dUl0ZW1TZWxlY3RlZCk6CisgICAgICAgICogQ09NL0NvbnRleHRNZW51Q2xpZW50V2luLmg6Cisg
ICAgICAgICogQ09NL1dlYkZyYW1lTG9hZGVyQ2xpZW50LmNwcDoKKyAgICAgICAgKFdlYkZyYW1l
TG9hZGVyQ2xpZW50OjpzZXREb2N1bWVudFZpZXdGcm9tUGFnZUNhY2hlKToKKyAgICAgICAgKFdl
YkZyYW1lTG9hZGVyQ2xpZW50Ojpmb3JjZUxheW91dCk6CisgICAgICAgIChXZWJGcmFtZUxvYWRl
ckNsaWVudDo6Zm9yY2VMYXlvdXRGb3JOb25IVE1MKToKKyAgICAgICAgKFdlYkZyYW1lTG9hZGVy
Q2xpZW50Ojp1cGRhdGVHbG9iYWxIaXN0b3J5Rm9yU3RhbmRhcmRMb2FkKToKKyAgICAgICAgKFdl
YkZyYW1lTG9hZGVyQ2xpZW50Ojp1cGRhdGVHbG9iYWxIaXN0b3J5Rm9yUmVsb2FkKToKKyAgICAg
ICAgKFdlYkZyYW1lTG9hZGVyQ2xpZW50OjpzaG91bGRHb1RvSGlzdG9yeUl0ZW0pOgorICAgICAg
ICAoV2ViRnJhbWVMb2FkZXJDbGllbnQ6OnNhdmVTY3JvbGxQb3NpdGlvbkFuZFZpZXdTdGF0ZVRv
SXRlbSk6CisgICAgICAgIChXZWJGcmFtZUxvYWRlckNsaWVudDo6cmVzdG9yZVNjcm9sbFBvc2l0
aW9uQW5kVmlld1N0YXRlKToKKyAgICAgICAgKFdlYkZyYW1lTG9hZGVyQ2xpZW50Ojpwcm92aXNp
b25hbExvYWRTdGFydGVkKToKKyAgICAgICAgKFdlYkZyYW1lTG9hZGVyQ2xpZW50OjpzYXZlRG9j
dW1lbnRWaWV3VG9QYWdlQ2FjaGUpOgorICAgICAgICAoV2ViRnJhbWVMb2FkZXJDbGllbnQ6OmNh
bkNhY2hlUGFnZSk6CisgICAgICAgICogQ09NL1dlYkZyYW1lTG9hZGVyQ2xpZW50Lmg6CisgICAg
ICAgICogV2ViS2l0LnZjcHJvai9XZWJLaXQudmNwcm9qOgorCiAyMDA3LTAxLTAzICBCcmFkeSBF
aWRzb24gIDxiZWlkc29uQGFwcGxlLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBKb2huIFN1
bGxpdmFuCkluZGV4OiBXZWJLaXQvQ09NL0Nocm9tZUNsaWVudFdpbi5jcHAKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gV2ViS2l0L0NPTS9DaHJvbWVDbGllbnRXaW4uY3BwCShyZXZpc2lvbiAxODU1MSkKKysrIFdl
YktpdC9DT00vQ2hyb21lQ2xpZW50V2luLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTUyLDggKzE1
Miw4IEBAIHZvaWQgQ2hyb21lQ2xpZW50V2luOjpzZXRSZXNpemFibGUoYm9vbCkKIH0KIAogdm9p
ZCBDaHJvbWVDbGllbnRXaW46OmFkZE1lc3NhZ2VUb0NvbnNvbGUoY29uc3QgV2ViQ29yZTo6U3Ry
aW5nJiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGludCwKLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IFdlYkNvcmU6OlN0cmluZyYpCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBpbnQsCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBXZWJDb3JlOjpT
dHJpbmcmKQogewogICAgIG5vdEltcGxlbWVudGVkKCk7CiB9CkBAIC0xNjQsNyArMTY0LDggQEAg
Ym9vbCBDaHJvbWVDbGllbnRXaW46OmNhblJ1bkJlZm9yZVVubG9hZAogICAgIHJldHVybiBmYWxz
ZTsKIH0KIAotYm9vbCBDaHJvbWVDbGllbnRXaW46OnJ1bkJlZm9yZVVubG9hZENvbmZpcm1QYW5l
bChjb25zdCBTdHJpbmcmLCBGcmFtZSopCitib29sIENocm9tZUNsaWVudFdpbjo6cnVuQmVmb3Jl
VW5sb2FkQ29uZmlybVBhbmVsKGNvbnN0IFdlYkNvcmU6OlN0cmluZyYsCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFdlYkNvcmU6OkZyYW1lKikKIHsK
ICAgICBub3RJbXBsZW1lbnRlZCgpOwogICAgIHJldHVybiBmYWxzZTsKSW5kZXg6IFdlYktpdC9D
T00vQ2hyb21lQ2xpZW50V2luLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0L0NPTS9DaHJvbWVDbGll
bnRXaW4uaAkocmV2aXNpb24gMTg1NTEpCisrKyBXZWJLaXQvQ09NL0Nocm9tZUNsaWVudFdpbi5o
CSh3b3JraW5nIGNvcHkpCkBAIC03MSw3ICs3MSw4IEBAIHB1YmxpYzoKICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBXZWJDb3JlOjpTdHJpbmcmIHNvdXJjZUlEKTsK
IAogICAgIHZpcnR1YWwgYm9vbCBjYW5SdW5CZWZvcmVVbmxvYWRDb25maXJtUGFuZWwoKTsKLSAg
ICB2aXJ0dWFsIGJvb2wgcnVuQmVmb3JlVW5sb2FkQ29uZmlybVBhbmVsKGNvbnN0IFN0cmluZyYg
bWVzc2FnZSwgRnJhbWUqIGZyYW1lKTsKKyAgICB2aXJ0dWFsIGJvb2wgcnVuQmVmb3JlVW5sb2Fk
Q29uZmlybVBhbmVsKGNvbnN0IFdlYkNvcmU6OlN0cmluZyYgbWVzc2FnZSwKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFdlYkNvcmU6OkZyYW1lKiBmcmFtZSk7
CiAKICAgICB2aXJ0dWFsIHZvaWQgY2xvc2VXaW5kb3dTb29uKCk7CiB9OwpJbmRleDogV2ViS2l0
L0NPTS9Db250ZXh0TWVudUNsaWVudFdpbi5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0L0NPTS9D
b250ZXh0TWVudUNsaWVudFdpbi5jcHAJKHJldmlzaW9uIDE4NTUxKQorKysgV2ViS2l0L0NPTS9D
b250ZXh0TWVudUNsaWVudFdpbi5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQ0LDEzICs0NCw4IEBA
IHZvaWQgQ29udGV4dE1lbnVDbGllbnRXaW46OmFkZEN1c3RvbUNvbnQKICAgICBub3RJbXBsZW1l
bnRlZCgpOwogfQogCi12b2lkIENvbnRleHRNZW51Q2xpZW50V2luOjpjb250ZXh0TWVudUl0ZW1T
ZWxlY3RlZCgKLSAgICBjb25zdCBXZWJDb3JlOjpDb250ZXh0TWVudUl0ZW0qKQotewotICAgIG5v
dEltcGxlbWVudGVkKCk7Ci19Ci0KLXZvaWQgQ29udGV4dE1lbnVDbGllbnRXaW46OmNvcHlMaW5r
VG9DbGlwYm9hcmQoY29uc3QgV2ViQ29yZTo6SGl0VGVzdFJlc3VsdCYpCit2b2lkIENvbnRleHRN
ZW51Q2xpZW50V2luOjpjb250ZXh0TWVudUl0ZW1TZWxlY3RlZChXZWJDb3JlOjpDb250ZXh0TWVu
dUl0ZW0qLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgY29uc3QgV2ViQ29yZTo6Q29udGV4dE1lbnUqKQogewogICAgIG5vdEltcGxlbWVudGVkKCk7
CiB9CkluZGV4OiBXZWJLaXQvQ09NL0NvbnRleHRNZW51Q2xpZW50V2luLmgKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gV2ViS2l0L0NPTS9Db250ZXh0TWVudUNsaWVudFdpbi5oCShyZXZpc2lvbiAxODU1MSkKKysr
IFdlYktpdC9DT00vQ29udGV4dE1lbnVDbGllbnRXaW4uaAkod29ya2luZyBjb3B5KQpAQCAtMzYs
OSArMzYsOSBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIGNvbnRleHRNZW51RGVzdHJveWVk
KCk7CiAKICAgICB2aXJ0dWFsIHZvaWQgYWRkQ3VzdG9tQ29udGV4dE1lbnVJdGVtcyhXZWJDb3Jl
OjpDb250ZXh0TWVudSopOwotICAgIHZpcnR1YWwgdm9pZCBjb250ZXh0TWVudUl0ZW1TZWxlY3Rl
ZChjb25zdCBXZWJDb3JlOjpDb250ZXh0TWVudUl0ZW0qKTsKKyAgICB2aXJ0dWFsIHZvaWQgY29u
dGV4dE1lbnVJdGVtU2VsZWN0ZWQoV2ViQ29yZTo6Q29udGV4dE1lbnVJdGVtKiwKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgV2ViQ29yZTo6Q29udGV4dE1l
bnUqKTsKIAotICAgIHZpcnR1YWwgdm9pZCBjb3B5TGlua1RvQ2xpcGJvYXJkKGNvbnN0IFdlYkNv
cmU6OkhpdFRlc3RSZXN1bHQmKTsKICAgICB2aXJ0dWFsIHZvaWQgZG93bmxvYWRVUkwoY29uc3Qg
V2ViQ29yZTo6S1VSTCYpOwogICAgIHZpcnR1YWwgdm9pZCBjb3B5SW1hZ2VUb0NsaXBib2FyZChj
b25zdCBXZWJDb3JlOjpIaXRUZXN0UmVzdWx0Jik7CiAgICAgdmlydHVhbCB2b2lkIGxvb2tVcElu
RGljdGlvbmFyeShXZWJDb3JlOjpGcmFtZSopOwpJbmRleDogV2ViS2l0L0NPTS9XZWJGcmFtZUxv
YWRlckNsaWVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0L0NPTS9XZWJGcmFtZUxvYWRlckNs
aWVudC5jcHAJKHJldmlzaW9uIDE4NTUxKQorKysgV2ViS2l0L0NPTS9XZWJGcmFtZUxvYWRlckNs
aWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTc0LDM0ICs3NCw2IEBAIGJvb2wgV2ViRnJhbWVM
b2FkZXJDbGllbnQ6Omhhc0ZyYW1lVmlldygKICAgICByZXR1cm4gZmFsc2U7CiB9CiAKLWJvb2wg
V2ViRnJhbWVMb2FkZXJDbGllbnQ6Omhhc0JhY2tGb3J3YXJkTGlzdCgpIGNvbnN0Ci17Ci0gICAg
bm90SW1wbGVtZW50ZWQoKTsKLSAgICByZXR1cm4gZmFsc2U7Ci19Ci0KLXZvaWQgV2ViRnJhbWVM
b2FkZXJDbGllbnQ6OnJlc2V0QmFja0ZvcndhcmRMaXN0KCkKLXsKLSAgICBub3RJbXBsZW1lbnRl
ZCgpOwotfQotCi1ib29sIFdlYkZyYW1lTG9hZGVyQ2xpZW50Ojpwcm92aXNpb25hbEl0ZW1Jc1Rh
cmdldCgpIGNvbnN0Ci17Ci0gICAgbm90SW1wbGVtZW50ZWQoKTsKLSAgICByZXR1cm4gZmFsc2U7
Ci19Ci0KLWJvb2wgV2ViRnJhbWVMb2FkZXJDbGllbnQ6OmxvYWRQcm92aXNpb25hbEl0ZW1Gcm9t
UGFnZUNhY2hlKCkKLXsKLSAgICBub3RJbXBsZW1lbnRlZCgpOwotICAgIHJldHVybiBmYWxzZTsK
LX0KLQotdm9pZCBXZWJGcmFtZUxvYWRlckNsaWVudDo6aW52YWxpZGF0ZUN1cnJlbnRJdGVtUGFn
ZUNhY2hlKCkKLXsKLSAgICBub3RJbXBsZW1lbnRlZCgpOwotfQotCiBib29sIFdlYkZyYW1lTG9h
ZGVyQ2xpZW50Ojpwcml2YXRlQnJvd3NpbmdFbmFibGVkKCkgY29uc3QKIHsKICAgICBub3RJbXBs
ZW1lbnRlZCgpOwpAQCAtMTE4LDQyICs5MCwxNyBAQCB2b2lkIFdlYkZyYW1lTG9hZGVyQ2xpZW50
OjptYWtlUmVwcmVzZW50CiAgICAgbm90SW1wbGVtZW50ZWQoKTsKIH0KIAotdm9pZCBXZWJGcmFt
ZUxvYWRlckNsaWVudDo6Zm9yY2VMYXlvdXQoKQotewotICAgIG5vdEltcGxlbWVudGVkKCk7Ci19
Ci0KLXZvaWQgV2ViRnJhbWVMb2FkZXJDbGllbnQ6OmZvcmNlTGF5b3V0Rm9yTm9uSFRNTCgpCi17
Ci0gICAgbm90SW1wbGVtZW50ZWQoKTsKLX0KLQotdm9pZCBXZWJGcmFtZUxvYWRlckNsaWVudDo6
dXBkYXRlSGlzdG9yeUZvckNvbW1pdCgpCi17Ci0gICAgbm90SW1wbGVtZW50ZWQoKTsKLX0KLQot
dm9pZCBXZWJGcmFtZUxvYWRlckNsaWVudDo6dXBkYXRlSGlzdG9yeUZvckJhY2tGb3J3YXJkTmF2
aWdhdGlvbigpCi17Ci0gICAgbm90SW1wbGVtZW50ZWQoKTsKLX0KLQotdm9pZCBXZWJGcmFtZUxv
YWRlckNsaWVudDo6dXBkYXRlSGlzdG9yeUZvclJlbG9hZCgpCit2b2lkIFdlYkZyYW1lTG9hZGVy
Q2xpZW50OjpzZXREb2N1bWVudFZpZXdGcm9tUGFnZUNhY2hlKFdlYkNvcmU6OlBhZ2VDYWNoZSop
CiB7CiAgICAgbm90SW1wbGVtZW50ZWQoKTsKIH0KIAotdm9pZCBXZWJGcmFtZUxvYWRlckNsaWVu
dDo6dXBkYXRlSGlzdG9yeUZvclN0YW5kYXJkTG9hZCgpCi17Ci0gICAgbm90SW1wbGVtZW50ZWQo
KTsKLX0KLQotdm9pZCBXZWJGcmFtZUxvYWRlckNsaWVudDo6dXBkYXRlSGlzdG9yeUZvckludGVy
bmFsTG9hZCgpCit2b2lkIFdlYkZyYW1lTG9hZGVyQ2xpZW50Ojpmb3JjZUxheW91dCgpCiB7CiAg
ICAgbm90SW1wbGVtZW50ZWQoKTsKIH0KIAotdm9pZCBXZWJGcmFtZUxvYWRlckNsaWVudDo6dXBk
YXRlSGlzdG9yeUFmdGVyQ2xpZW50UmVkaXJlY3QoKQordm9pZCBXZWJGcmFtZUxvYWRlckNsaWVu
dDo6Zm9yY2VMYXlvdXRGb3JOb25IVE1MKCkKIHsKICAgICBub3RJbXBsZW1lbnRlZCgpOwogfQpA
QCAtMTYzLDI3ICsxMTAsNiBAQCB2b2lkIFdlYkZyYW1lTG9hZGVyQ2xpZW50OjpzZXRDb3BpZXNP
blNjCiAgICAgbm90SW1wbGVtZW50ZWQoKTsKIH0KIAotV2ViQ29yZTo6TG9hZEVycm9yUmVzZXRU
b2tlbiogV2ViRnJhbWVMb2FkZXJDbGllbnQ6OnRva2VuRm9yTG9hZEVycm9yUmVzZXQoKQotewot
ICAgIG5vdEltcGxlbWVudGVkKCk7Ci0gICAgcmV0dXJuIDA7Ci19Ci0KLXZvaWQgV2ViRnJhbWVM
b2FkZXJDbGllbnQ6OnJlc2V0QWZ0ZXJMb2FkRXJyb3IoV2ViQ29yZTo6TG9hZEVycm9yUmVzZXRU
b2tlbiopCi17Ci0gICAgbm90SW1wbGVtZW50ZWQoKTsKLX0KLQotdm9pZCBXZWJGcmFtZUxvYWRl
ckNsaWVudDo6ZG9Ob3RSZXNldEFmdGVyTG9hZEVycm9yKFdlYkNvcmU6OkxvYWRFcnJvclJlc2V0
VG9rZW4qKQotewotICAgIG5vdEltcGxlbWVudGVkKCk7Ci19Ci0KLXZvaWQgV2ViRnJhbWVMb2Fk
ZXJDbGllbnQ6OndpbGxDbG9zZURvY3VtZW50KCkKLXsKLSAgICBub3RJbXBsZW1lbnRlZCgpOwot
fQotCiB2b2lkIFdlYkZyYW1lTG9hZGVyQ2xpZW50OjpkZXRhY2hlZEZyb21QYXJlbnQxKCkKIHsK
ICAgICBub3RJbXBsZW1lbnRlZCgpOwpAQCAtMjkxLDE3ICsyMTcsNiBAQCB2b2lkIFdlYkZyYW1l
TG9hZGVyQ2xpZW50OjpkaXNwYXRjaERpZExvCiAgICAgbm90SW1wbGVtZW50ZWQoKTsKIH0KIAot
dm9pZCBXZWJGcmFtZUxvYWRlckNsaWVudDo6Y2xlYXJMb2FkaW5nRnJvbVBhZ2VDYWNoZShXZWJD
b3JlOjpEb2N1bWVudExvYWRlciopCi17Ci0gICAgbm90SW1wbGVtZW50ZWQoKTsKLX0KLQotYm9v
bCBXZWJGcmFtZUxvYWRlckNsaWVudDo6aXNMb2FkaW5nRnJvbVBhZ2VDYWNoZShXZWJDb3JlOjpE
b2N1bWVudExvYWRlciopCi17Ci0gICAgbm90SW1wbGVtZW50ZWQoKTsKLSAgICByZXR1cm4gZmFs
c2U7Ci19Ci0KIHZvaWQgV2ViRnJhbWVMb2FkZXJDbGllbnQ6OnJldmVydFRvUHJvdmlzaW9uYWxT
dGF0ZShXZWJDb3JlOjpEb2N1bWVudExvYWRlciopCiB7CiAgICAgbm90SW1wbGVtZW50ZWQoKTsK
QEAgLTM0Nyw2ICsyNjIsMjIgQEAgdm9pZCBXZWJGcmFtZUxvYWRlckNsaWVudDo6ZmluYWxTZXR1
cEZvcgogICAgIG5vdEltcGxlbWVudGVkKCk7CiB9CiAKK3ZvaWQgV2ViRnJhbWVMb2FkZXJDbGll
bnQ6OnVwZGF0ZUdsb2JhbEhpc3RvcnlGb3JTdGFuZGFyZExvYWQoY29uc3QgV2ViQ29yZTo6S1VS
TCYpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKK30KKwordm9pZCBXZWJGcmFtZUxvYWRlckNs
aWVudDo6dXBkYXRlR2xvYmFsSGlzdG9yeUZvclJlbG9hZChjb25zdCBXZWJDb3JlOjpLVVJMJikK
K3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworfQorCitib29sIFdlYkZyYW1lTG9hZGVyQ2xpZW50
OjpzaG91bGRHb1RvSGlzdG9yeUl0ZW0oV2ViQ29yZTo6SGlzdG9yeUl0ZW0qKSBjb25zdAorewor
ICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIGZhbHNlOworfQorCiB2b2lkIFdlYkZy
YW1lTG9hZGVyQ2xpZW50OjpzZXREZWZlcnNMb2FkaW5nKGJvb2wpCiB7CiAgICAgbm90SW1wbGVt
ZW50ZWQoKTsKQEAgLTQwMCwyNCArMzMxLDE3IEBAIHZvaWQgV2ViRnJhbWVMb2FkZXJDbGllbnQ6
OmZyYW1lTG9hZENvbXAKICAgICBub3RJbXBsZW1lbnRlZCgpOwogfQogCi12b2lkIFdlYkZyYW1l
TG9hZGVyQ2xpZW50OjpyZXN0b3JlU2Nyb2xsUG9zaXRpb25BbmRWaWV3U3RhdGUoKQotewotICAg
IG5vdEltcGxlbWVudGVkKCk7Ci19Ci0KLXZvaWQgV2ViRnJhbWVMb2FkZXJDbGllbnQ6OnByb3Zp
c2lvbmFsTG9hZFN0YXJ0ZWQoKQordm9pZCBXZWJGcmFtZUxvYWRlckNsaWVudDo6c2F2ZVNjcm9s
bFBvc2l0aW9uQW5kVmlld1N0YXRlVG9JdGVtKFdlYkNvcmU6Okhpc3RvcnlJdGVtKikKIHsKICAg
ICBub3RJbXBsZW1lbnRlZCgpOwogfQogCi1ib29sIFdlYkZyYW1lTG9hZGVyQ2xpZW50OjpzaG91
bGRUcmVhdFVSTEFzU2FtZUFzQ3VycmVudCgKLSAgICBjb25zdCBXZWJDb3JlOjpLVVJMJikgY29u
c3QKK3ZvaWQgV2ViRnJhbWVMb2FkZXJDbGllbnQ6OnJlc3RvcmVTY3JvbGxQb3NpdGlvbkFuZFZp
ZXdTdGF0ZSgpCiB7CiAgICAgbm90SW1wbGVtZW50ZWQoKTsKLSAgICByZXR1cm4gZmFsc2U7CiB9
CiAKLXZvaWQgV2ViRnJhbWVMb2FkZXJDbGllbnQ6OmFkZEhpc3RvcnlJdGVtRm9yRnJhZ21lbnRT
Y3JvbGwoKQordm9pZCBXZWJGcmFtZUxvYWRlckNsaWVudDo6cHJvdmlzaW9uYWxMb2FkU3RhcnRl
ZCgpCiB7CiAgICAgbm90SW1wbGVtZW50ZWQoKTsKIH0KQEAgLTQ0MiwzICszNjYsMTQgQEAgV2Vi
Q29yZTo6U3RyaW5nIFdlYkZyYW1lTG9hZGVyQ2xpZW50Ojp1cwogewogICAgIHJldHVybiAiTW96
aWxsYS81LjAgKFBDOyBVOyBJbnRlbDsgV2luZG93czsgZW4pIEFwcGxlV2ViS2l0LzQyMCsgKEtI
VE1MLCBsaWtlIEdlY2tvKSI7CiB9CisKK3ZvaWQgV2ViRnJhbWVMb2FkZXJDbGllbnQ6OnNhdmVE
b2N1bWVudFZpZXdUb1BhZ2VDYWNoZShXZWJDb3JlOjpQYWdlQ2FjaGUqKQoreworICAgIG5vdElt
cGxlbWVudGVkKCk7Cit9CisKK2Jvb2wgV2ViRnJhbWVMb2FkZXJDbGllbnQ6OmNhbkNhY2hlUGFn
ZSgpIGNvbnN0Cit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gZmFsc2U7Cit9
CkluZGV4OiBXZWJLaXQvQ09NL1dlYkZyYW1lTG9hZGVyQ2xpZW50LmgKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
V2ViS2l0L0NPTS9XZWJGcmFtZUxvYWRlckNsaWVudC5oCShyZXZpc2lvbiAxODU1MSkKKysrIFdl
YktpdC9DT00vV2ViRnJhbWVMb2FkZXJDbGllbnQuaAkod29ya2luZyBjb3B5KQpAQCAtNDIsMzcg
KzQyLDE2IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIGJvb2wgaGFzV2ViVmlldygpIGNvbnN0Owog
ICAgIHZpcnR1YWwgYm9vbCBoYXNGcmFtZVZpZXcoKSBjb25zdDsKIAotICAgIHZpcnR1YWwgYm9v
bCBoYXNCYWNrRm9yd2FyZExpc3QoKSBjb25zdDsKLSAgICB2aXJ0dWFsIHZvaWQgcmVzZXRCYWNr
Rm9yd2FyZExpc3QoKTsKLQotICAgIHZpcnR1YWwgYm9vbCBwcm92aXNpb25hbEl0ZW1Jc1Rhcmdl
dCgpIGNvbnN0OwotICAgIHZpcnR1YWwgYm9vbCBsb2FkUHJvdmlzaW9uYWxJdGVtRnJvbVBhZ2VD
YWNoZSgpOwotICAgIHZpcnR1YWwgdm9pZCBpbnZhbGlkYXRlQ3VycmVudEl0ZW1QYWdlQ2FjaGUo
KTsKLQogICAgIHZpcnR1YWwgYm9vbCBwcml2YXRlQnJvd3NpbmdFbmFibGVkKCkgY29uc3Q7CiAK
ICAgICB2aXJ0dWFsIHZvaWQgbWFrZURvY3VtZW50VmlldygpOwogICAgIHZpcnR1YWwgdm9pZCBt
YWtlUmVwcmVzZW50YXRpb24oV2ViQ29yZTo6RG9jdW1lbnRMb2FkZXIqKTsKKyAgICB2aXJ0dWFs
IHZvaWQgc2V0RG9jdW1lbnRWaWV3RnJvbVBhZ2VDYWNoZShXZWJDb3JlOjpQYWdlQ2FjaGUqKTsK
ICAgICB2aXJ0dWFsIHZvaWQgZm9yY2VMYXlvdXQoKTsKICAgICB2aXJ0dWFsIHZvaWQgZm9yY2VM
YXlvdXRGb3JOb25IVE1MKCk7CiAKLSAgICB2aXJ0dWFsIHZvaWQgdXBkYXRlSGlzdG9yeUZvckNv
bW1pdCgpOwotCi0gICAgdmlydHVhbCB2b2lkIHVwZGF0ZUhpc3RvcnlGb3JCYWNrRm9yd2FyZE5h
dmlnYXRpb24oKTsKLSAgICB2aXJ0dWFsIHZvaWQgdXBkYXRlSGlzdG9yeUZvclJlbG9hZCgpOwot
ICAgIHZpcnR1YWwgdm9pZCB1cGRhdGVIaXN0b3J5Rm9yU3RhbmRhcmRMb2FkKCk7Ci0gICAgdmly
dHVhbCB2b2lkIHVwZGF0ZUhpc3RvcnlGb3JJbnRlcm5hbExvYWQoKTsKLQotICAgIHZpcnR1YWwg
dm9pZCB1cGRhdGVIaXN0b3J5QWZ0ZXJDbGllbnRSZWRpcmVjdCgpOwotCiAgICAgdmlydHVhbCB2
b2lkIHNldENvcGllc09uU2Nyb2xsKCk7CiAKLSAgICB2aXJ0dWFsIFdlYkNvcmU6OkxvYWRFcnJv
clJlc2V0VG9rZW4qIHRva2VuRm9yTG9hZEVycm9yUmVzZXQoKTsKLSAgICB2aXJ0dWFsIHZvaWQg
cmVzZXRBZnRlckxvYWRFcnJvcihXZWJDb3JlOjpMb2FkRXJyb3JSZXNldFRva2VuKik7Ci0gICAg
dmlydHVhbCB2b2lkIGRvTm90UmVzZXRBZnRlckxvYWRFcnJvcihXZWJDb3JlOjpMb2FkRXJyb3JS
ZXNldFRva2VuKik7Ci0KLSAgICB2aXJ0dWFsIHZvaWQgd2lsbENsb3NlRG9jdW1lbnQoKTsKLQog
ICAgIHZpcnR1YWwgdm9pZCBkZXRhY2hlZEZyb21QYXJlbnQxKCk7CiAgICAgdmlydHVhbCB2b2lk
IGRldGFjaGVkRnJvbVBhcmVudDIoKTsKICAgICB2aXJ0dWFsIHZvaWQgZGV0YWNoZWRGcm9tUGFy
ZW50MygpOwpAQCAtMTAyLDggKzgxLDYgQEAgcHVibGljOgogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIFBhc3NSZWZQdHI8V2ViQ29yZTo6Rm9ybVN0YXRlPik7CiAKICAg
ICB2aXJ0dWFsIHZvaWQgZGlzcGF0Y2hEaWRMb2FkTWFpblJlc291cmNlKFdlYkNvcmU6OkRvY3Vt
ZW50TG9hZGVyKik7Ci0gICAgdmlydHVhbCB2b2lkIGNsZWFyTG9hZGluZ0Zyb21QYWdlQ2FjaGUo
V2ViQ29yZTo6RG9jdW1lbnRMb2FkZXIqKTsKLSAgICB2aXJ0dWFsIGJvb2wgaXNMb2FkaW5nRnJv
bVBhZ2VDYWNoZShXZWJDb3JlOjpEb2N1bWVudExvYWRlciopOwogICAgIHZpcnR1YWwgdm9pZCBy
ZXZlcnRUb1Byb3Zpc2lvbmFsU3RhdGUoV2ViQ29yZTo6RG9jdW1lbnRMb2FkZXIqKTsKICAgICB2
aXJ0dWFsIHZvaWQgY2xlYXJVbmFyY2hpdmluZ1N0YXRlKFdlYkNvcmU6OkRvY3VtZW50TG9hZGVy
Kik7CiAKQEAgLTExOCw2ICs5NSwxMCBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIGZpbmlz
aGVkTG9hZGluZyhXZWJDb3JlOjpEb2N1bWVudExvYWRlciopOwogICAgIHZpcnR1YWwgdm9pZCBm
aW5hbFNldHVwRm9yUmVwbGFjZShXZWJDb3JlOjpEb2N1bWVudExvYWRlciopOwogCisgICAgdmly
dHVhbCB2b2lkIHVwZGF0ZUdsb2JhbEhpc3RvcnlGb3JTdGFuZGFyZExvYWQoY29uc3QgV2ViQ29y
ZTo6S1VSTCYpOworICAgIHZpcnR1YWwgdm9pZCB1cGRhdGVHbG9iYWxIaXN0b3J5Rm9yUmVsb2Fk
KGNvbnN0IFdlYkNvcmU6OktVUkwmKTsKKyAgICB2aXJ0dWFsIGJvb2wgc2hvdWxkR29Ub0hpc3Rv
cnlJdGVtKFdlYkNvcmU6Okhpc3RvcnlJdGVtKikgY29uc3Q7CisKICAgICB2aXJ0dWFsIHZvaWQg
c2V0RGVmZXJzTG9hZGluZyhib29sKTsKIAogICAgIHZpcnR1YWwgYm9vbCBpc0FyY2hpdmVMb2Fk
UGVuZGluZyhXZWJDb3JlOjpSZXNvdXJjZUxvYWRlciopIGNvbnN0OwpAQCAtMTMwLDE2ICsxMTEs
MTkgQEAgcHVibGljOgogICAgIHZpcnR1YWwgV2ViQ29yZTo6U3RyaW5nIGdlbmVyYXRlZE1JTUVU
eXBlRm9yVVJMU2NoZW1lKGNvbnN0IFdlYkNvcmU6OlN0cmluZyYpIGNvbnN0OwogCiAgICAgdmly
dHVhbCB2b2lkIGZyYW1lTG9hZENvbXBsZXRlZCgpOworICAgIHZpcnR1YWwgdm9pZCBzYXZlU2Ny
b2xsUG9zaXRpb25BbmRWaWV3U3RhdGVUb0l0ZW0oV2ViQ29yZTo6SGlzdG9yeUl0ZW0qKTsKICAg
ICB2aXJ0dWFsIHZvaWQgcmVzdG9yZVNjcm9sbFBvc2l0aW9uQW5kVmlld1N0YXRlKCk7CiAgICAg
dmlydHVhbCB2b2lkIHByb3Zpc2lvbmFsTG9hZFN0YXJ0ZWQoKTsKLSAgICB2aXJ0dWFsIGJvb2wg
c2hvdWxkVHJlYXRVUkxBc1NhbWVBc0N1cnJlbnQoY29uc3QgV2ViQ29yZTo6S1VSTCYpIGNvbnN0
OwotICAgIHZpcnR1YWwgdm9pZCBhZGRIaXN0b3J5SXRlbUZvckZyYWdtZW50U2Nyb2xsKCk7CiAg
ICAgdmlydHVhbCB2b2lkIGRpZEZpbmlzaExvYWQoKTsKICAgICB2aXJ0dWFsIHZvaWQgcHJlcGFy
ZUZvckRhdGFTb3VyY2VSZXBsYWNlbWVudCgpOworCiAgICAgdmlydHVhbCB2b2lkIHNldFRpdGxl
KGNvbnN0IFdlYkNvcmU6OlN0cmluZyYgdGl0bGUsIGNvbnN0IFdlYkNvcmU6OktVUkwmKTsKIAog
ICAgIHZpcnR1YWwgV2ViQ29yZTo6U3RyaW5nIHVzZXJBZ2VudCgpOwogCisgICAgdmlydHVhbCB2
b2lkIHNhdmVEb2N1bWVudFZpZXdUb1BhZ2VDYWNoZShXZWJDb3JlOjpQYWdlQ2FjaGUqKTsKKyAg
ICB2aXJ0dWFsIGJvb2wgY2FuQ2FjaGVQYWdlKCkgY29uc3Q7CisKIHByb3RlY3RlZDoKICAgICAv
LyBUaGUgV2ViRnJhbWUgdGhhdCBvd25zIHRoaXMgb2JqZWN0IGFuZCBtYW5hZ2VzIGl0cyBsaWZl
dGltZS4gVGhlcmVmb3JlLAogICAgIC8vIHRoZSB3ZWIgZnJhbWUgb2JqZWN0IGlzIGd1YXJhbnRl
ZWQgdG8gZXhpc3QuCkluZGV4OiBXZWJLaXQvV2ViS2l0LnZjcHJvai9XZWJLaXQudmNwcm9qCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFdlYktpdC9XZWJLaXQudmNwcm9qL1dlYktpdC52Y3Byb2oJKHJldmlzaW9u
IDE4NTUxKQorKysgV2ViS2l0L1dlYktpdC52Y3Byb2ovV2ViS2l0LnZjcHJvagkod29ya2luZyBj
b3B5KQpAQCAtNDAsNyArNDAsNyBAQAogCQkJPFRvb2wKIAkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJU
b29sIgogCQkJCU9wdGltaXphdGlvbj0iMCIKLQkJCQlBZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9y
aWVzPSImcXVvdDskKFByb2plY3REaXIpXC4uXENPTSZxdW90OzsmcXVvdDskKFByb2plY3REaXIp
XC4uXC4uXFdlYkNvcmUmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwuLlwuLlxXZWJDb3JlXGJy
aWRnZSZxdW90OzsmcXVvdDskKFByb2plY3REaXIpXC4uXC4uXFdlYkNvcmVcYnJpZGdlXHdpbiZx
dW90OzsmcXVvdDskKFByb2plY3REaXIpXC4uXC4uXFdlYkNvcmVcY3NzJnF1b3Q7OyZxdW90OyQo
UHJvamVjdERpcilcLi5cLi5cV2ViQ29yZVxkb20mcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwu
LlwuLlxXZWJDb3JlXGVkaXRpbmcmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwuLlwuLlxXZWJD
b3JlXGh0bWwmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwuLlwuLlxXZWJDb3JlXGxvYWRlciZx
dW90OzsmcXVvdDskKFByb2plY3REaXIpXC4uXC4uXFdlYkNvcmVccGFnZSZxdW90OzsmcXVvdDsk
KFByb2plY3REaXIpXC4uXC4uXFdlYkNvcmVccGxhdGZvcm0mcXVvdDs7JnF1b3Q7JChQcm9qZWN0
RGlyKVwuLlwuLlxXZWJDb3JlXHBsYXRmb3JtXGdyYXBoaWNzJnF1b3Q7OyZxdW90OyQoUHJvamVj
dERpcilcLi5cLi5cV2ViQ29yZVxwbGF0Zm9ybVxncmFwaGljc1xjYWlyb1xjYWlyb1xzcmMmcXVv
dDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwuLlwuLlxXZWJDb3JlXHBsYXRmb3JtXG5ldHdvcmsmcXVv
dDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwuLlwuLlxXZWJDb3JlXHBsYXRmb3JtXG5ldHdvcmtcd2lu
JnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcilcLi5cLi5cV2ViQ29yZVxwbGF0Zm9ybVx3aW4mcXVv
dDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwuLlwuLlxXZWJDb3JlXHJlbmRlcmluZyZxdW90OzsmcXVv
dDskKFByb2plY3REaXIpXC4uXC4uXFdlYkNvcmVceG1sJnF1b3Q7OyZxdW90OyQoUHJvamVjdERp
cilcLi5cLi5caWNvbnYmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwuLlwuLlxsaWJ4bWwyJnF1
b3Q7OyZxdW90OyQoUHJvamVjdERpcilcLi5cLi5caWN1XGluY2x1ZGUmcXVvdDs7JnF1b3Q7JChQ
cm9qZWN0RGlyKVwuLlwuLlxKYXZhU2NyaXB0Q29yZSZxdW90OzsmcXVvdDskKFByb2plY3REaXIp
XC4uXC4uXEphdmFTY3JpcHRDb3JlXG9zLXdpbjMyJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcilc
Li5cLi5cSmF2YVNjcmlwdENvcmVcd3RmJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcilcLi5cLi5c
V2ViQ29yZVxGb3J3YXJkaW5nSGVhZGVycyZxdW90OzsmcXVvdDskKFdlYktpdE91dHB1dERpcilc
JChDb25maWd1cmF0aW9uTmFtZSlcV2ViS2l0V2luJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcikm
cXVvdDsiCisJCQkJQWRkaXRpb25hbEluY2x1ZGVEaXJlY3Rvcmllcz0iJnF1b3Q7JChQcm9qZWN0
RGlyKVwuLlxDT00mcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwuLlwuLlxXZWJDb3JlJnF1b3Q7
OyZxdW90OyQoUHJvamVjdERpcilcLi5cLi5cV2ViQ29yZVxicmlkZ2UmcXVvdDs7JnF1b3Q7JChQ
cm9qZWN0RGlyKVwuLlwuLlxXZWJDb3JlXGJyaWRnZVx3aW4mcXVvdDs7JnF1b3Q7JChQcm9qZWN0
RGlyKVwuLlwuLlxXZWJDb3JlXGNzcyZxdW90OzsmcXVvdDskKFByb2plY3REaXIpXC4uXC4uXFdl
YkNvcmVcZG9tJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcilcLi5cLi5cV2ViQ29yZVxlZGl0aW5n
JnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcilcLi5cLi5cV2ViQ29yZVxoaXN0b3J5JnF1b3Q7OyZx
dW90OyQoUHJvamVjdERpcilcLi5cLi5cV2ViQ29yZVxodG1sJnF1b3Q7OyZxdW90OyQoUHJvamVj
dERpcilcLi5cLi5cV2ViQ29yZVxsb2FkZXImcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwuLlwu
LlxXZWJDb3JlXHBhZ2UmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwuLlwuLlxXZWJDb3JlXHBs
YXRmb3JtJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcilcLi5cLi5cV2ViQ29yZVxwbGF0Zm9ybVxn
cmFwaGljcyZxdW90OzsmcXVvdDskKFByb2plY3REaXIpXC4uXC4uXFdlYkNvcmVccGxhdGZvcm1c
Z3JhcGhpY3NcY2Fpcm9cY2Fpcm9cc3JjJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcilcLi5cLi5c
V2ViQ29yZVxwbGF0Zm9ybVxuZXR3b3JrJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcilcLi5cLi5c
V2ViQ29yZVxwbGF0Zm9ybVxuZXR3b3JrXHdpbiZxdW90OzsmcXVvdDskKFByb2plY3REaXIpXC4u
XC4uXFdlYkNvcmVccGxhdGZvcm1cd2luJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcilcLi5cLi5c
V2ViQ29yZVxyZW5kZXJpbmcmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwuLlwuLlxXZWJDb3Jl
XHhtbCZxdW90OzsmcXVvdDskKFByb2plY3REaXIpXC4uXC4uXGljb252JnF1b3Q7OyZxdW90OyQo
UHJvamVjdERpcilcLi5cLi5cbGlieG1sMiZxdW90OzsmcXVvdDskKFByb2plY3REaXIpXC4uXC4u
XGljdVxpbmNsdWRlJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcilcLi5cLi5cSmF2YVNjcmlwdENv
cmUmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwuLlwuLlxKYXZhU2NyaXB0Q29yZVxvcy13aW4z
MiZxdW90OzsmcXVvdDskKFByb2plY3REaXIpXC4uXC4uXEphdmFTY3JpcHRDb3JlXHd0ZiZxdW90
OzsmcXVvdDskKFByb2plY3REaXIpXC4uXC4uXFdlYkNvcmVcRm9yd2FyZGluZ0hlYWRlcnMmcXVv
dDs7JnF1b3Q7JChXZWJLaXRPdXRwdXREaXIpXCQoQ29uZmlndXJhdGlvbk5hbWUpXFdlYktpdFdp
biZxdW90OzsmcXVvdDskKFByb2plY3REaXIpJnF1b3Q7IgogCQkJCVByZXByb2Nlc3NvckRlZmlu
aXRpb25zPSJXSU4zMjtfREVCVUc7X1dJTkRPV1M7X1VTUkRMTDtXRUJLSVRfRVhQT1JUUztfV0lO
MzJfV0lOTlQ9MHg1MDA7X1NDTF9TRUNVUkVfTk9fREVQUkVDQVRFIgogCQkJCU1pbmltYWxSZWJ1
aWxkPSJ0cnVlIgogCQkJCUV4Y2VwdGlvbkhhbmRsaW5nPSIwIgpAQCAtMTI2LDcgKzEyNiw3IEBA
CiAJCQkvPgogCQkJPFRvb2wKIAkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIgotCQkJCUFkZGl0
aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXM9IiZxdW90OyQoUHJvamVjdERpcilcLi5cQ09NJnF1b3Q7
OyZxdW90OyQoUHJvamVjdERpcilcLi5cLi5cV2ViQ29yZSZxdW90OzsmcXVvdDskKFByb2plY3RE
aXIpXC4uXC4uXFdlYkNvcmVcYnJpZGdlJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcilcLi5cLi5c
V2ViQ29yZVxicmlkZ2Vcd2luJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcilcLi5cLi5cV2ViQ29y
ZVxjc3MmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwuLlwuLlxXZWJDb3JlXGRvbSZxdW90Ozsm
cXVvdDskKFByb2plY3REaXIpXC4uXC4uXFdlYkNvcmVcZWRpdGluZyZxdW90OzsmcXVvdDskKFBy
b2plY3REaXIpXC4uXC4uXFdlYkNvcmVcaHRtbCZxdW90OzsmcXVvdDskKFByb2plY3REaXIpXC4u
XC4uXFdlYkNvcmVcbG9hZGVyJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcilcLi5cLi5cV2ViQ29y
ZVxwYWdlJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcilcLi5cLi5cV2ViQ29yZVxwbGF0Zm9ybSZx
dW90OzsmcXVvdDskKFByb2plY3REaXIpXC4uXC4uXFdlYkNvcmVccGxhdGZvcm1cZ3JhcGhpY3Mm
cXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwuLlwuLlxXZWJDb3JlXHBsYXRmb3JtXGdyYXBoaWNz
XGNhaXJvXGNhaXJvXHNyYyZxdW90OzsmcXVvdDskKFByb2plY3REaXIpXC4uXC4uXFdlYkNvcmVc
cGxhdGZvcm1cbmV0d29yayZxdW90OzsmcXVvdDskKFByb2plY3REaXIpXC4uXC4uXFdlYkNvcmVc
cGxhdGZvcm1cbmV0d29ya1x3aW4mcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwuLlwuLlxXZWJD
b3JlXHBsYXRmb3JtXHdpbiZxdW90OzsmcXVvdDskKFByb2plY3REaXIpXC4uXC4uXFdlYkNvcmVc
cmVuZGVyaW5nJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcilcLi5cLi5cV2ViQ29yZVx4bWwmcXVv
dDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwuLlwuLlxpY29udiZxdW90OzsmcXVvdDskKFByb2plY3RE
aXIpXC4uXC4uXGxpYnhtbDImcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwuLlwuLlxpY3VcaW5j
bHVkZSZxdW90OzsmcXVvdDskKFByb2plY3REaXIpXC4uXC4uXEphdmFTY3JpcHRDb3JlJnF1b3Q7
OyZxdW90OyQoUHJvamVjdERpcilcLi5cLi5cSmF2YVNjcmlwdENvcmVcb3Mtd2luMzImcXVvdDs7
JnF1b3Q7JChQcm9qZWN0RGlyKVwuLlwuLlxKYXZhU2NyaXB0Q29yZVx3dGYmcXVvdDs7JnF1b3Q7
JChQcm9qZWN0RGlyKVwuLlwuLlxXZWJDb3JlXEZvcndhcmRpbmdIZWFkZXJzJnF1b3Q7OyZxdW90
OyQoV2ViS2l0T3V0cHV0RGlyKVwkKENvbmZpZ3VyYXRpb25OYW1lKVxXZWJLaXRXaW4mcXVvdDs7
JnF1b3Q7JChQcm9qZWN0RGlyKSZxdW90OyIKKwkJCQlBZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9y
aWVzPSImcXVvdDskKFByb2plY3REaXIpXC4uXENPTSZxdW90OzsmcXVvdDskKFByb2plY3REaXIp
XC4uXC4uXFdlYkNvcmUmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwuLlwuLlxXZWJDb3JlXGJy
aWRnZSZxdW90OzsmcXVvdDskKFByb2plY3REaXIpXC4uXC4uXFdlYkNvcmVcYnJpZGdlXHdpbiZx
dW90OzsmcXVvdDskKFByb2plY3REaXIpXC4uXC4uXFdlYkNvcmVcY3NzJnF1b3Q7OyZxdW90OyQo
UHJvamVjdERpcilcLi5cLi5cV2ViQ29yZVxkb20mcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwu
LlwuLlxXZWJDb3JlXGVkaXRpbmcmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwuLlwuLlxXZWJD
b3JlXGhpc3RvcnkmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwuLlwuLlxXZWJDb3JlXGh0bWwm
cXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwuLlwuLlxXZWJDb3JlXGxvYWRlciZxdW90OzsmcXVv
dDskKFByb2plY3REaXIpXC4uXC4uXFdlYkNvcmVccGFnZSZxdW90OzsmcXVvdDskKFByb2plY3RE
aXIpXC4uXC4uXFdlYkNvcmVccGxhdGZvcm0mcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwuLlwu
LlxXZWJDb3JlXHBsYXRmb3JtXGdyYXBoaWNzJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcilcLi5c
Li5cV2ViQ29yZVxwbGF0Zm9ybVxncmFwaGljc1xjYWlyb1xjYWlyb1xzcmMmcXVvdDs7JnF1b3Q7
JChQcm9qZWN0RGlyKVwuLlwuLlxXZWJDb3JlXHBsYXRmb3JtXG5ldHdvcmsmcXVvdDs7JnF1b3Q7
JChQcm9qZWN0RGlyKVwuLlwuLlxXZWJDb3JlXHBsYXRmb3JtXG5ldHdvcmtcd2luJnF1b3Q7OyZx
dW90OyQoUHJvamVjdERpcilcLi5cLi5cV2ViQ29yZVxwbGF0Zm9ybVx3aW4mcXVvdDs7JnF1b3Q7
JChQcm9qZWN0RGlyKVwuLlwuLlxXZWJDb3JlXHJlbmRlcmluZyZxdW90OzsmcXVvdDskKFByb2pl
Y3REaXIpXC4uXC4uXFdlYkNvcmVceG1sJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcilcLi5cLi5c
aWNvbnYmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwuLlwuLlxsaWJ4bWwyJnF1b3Q7OyZxdW90
OyQoUHJvamVjdERpcilcLi5cLi5caWN1XGluY2x1ZGUmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGly
KVwuLlwuLlxKYXZhU2NyaXB0Q29yZSZxdW90OzsmcXVvdDskKFByb2plY3REaXIpXC4uXC4uXEph
dmFTY3JpcHRDb3JlXG9zLXdpbjMyJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcilcLi5cLi5cSmF2
YVNjcmlwdENvcmVcd3RmJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcilcLi5cLi5cV2ViQ29yZVxG
b3J3YXJkaW5nSGVhZGVycyZxdW90OzsmcXVvdDskKFdlYktpdE91dHB1dERpcilcJChDb25maWd1
cmF0aW9uTmFtZSlcV2ViS2l0V2luJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcikmcXVvdDsiCiAJ
CQkJUHJlcHJvY2Vzc29yRGVmaW5pdGlvbnM9IldJTjMyO05ERUJVRztfV0lORE9XUztfVVNSRExM
O1dFQktJVF9FWFBPUlRTO19XSU4zMl9XSU5OVD0weDUwMDtfU0NMX1NFQ1VSRV9OT19ERVBSRUNB
VEUiCiAJCQkJRXhjZXB0aW9uSGFuZGxpbmc9IjAiCiAJCQkJUnVudGltZUxpYnJhcnk9IjIiCkBA
IC0yNDYsNiArMjQ2LDEwIEBACiAJCQkJPgogCQkJPC9GaWxlPgogCQkJPEZpbGUKKwkJCQlSZWxh
dGl2ZVBhdGg9Ii4uXENPTVxXZWJGcmFtZUxvYWRlckNsaWVudC5oIgorCQkJCT4KKwkJCTwvRmls
ZT4KKwkJCTxGaWxlCiAJCQkJUmVsYXRpdmVQYXRoPSIuLlxDT01cV2ViSGlzdG9yeUl0ZW0uaCIK
IAkJCQk+CiAJCQk8L0ZpbGU+CkBAIC0zMDIsMTAgKzMwNiw2IEBACiAJCQkJPgogCQkJPC9GaWxl
PgogCQkJPEZpbGUKLQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXENPTVxXZWJGcmFtZUxvYWRlckNsaWVu
dC5oIgotCQkJCT4KLQkJCTwvRmlsZT4KLQkJCTxGaWxlCiAJCQkJUmVsYXRpdmVQYXRoPSIuLlxD
T01cV2ViSGlzdG9yeUl0ZW0uY3BwIgogCQkJCT4KIAkJCTwvRmlsZT4K
</data>
<flag name="review"
          id="4527"
          type_id="1"
          status="+"
          setter="ap"
    />
          </attachment>
      

    </bug>

</bugzilla>