<?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>44224</bug_id>
          
          <creation_ts>2010-08-18 17:35:08 -0700</creation_ts>
          <short_desc>Move FileStreamClient to platform and add AsyncFileStream interface</short_desc>
          <delta_ts>2010-08-20 11:35:29 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebCore JavaScript</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Jian Li">jianli</reporter>
          <assigned_to name="Jian Li">jianli</assigned_to>
          <cc>dimich</cc>
    
    <cc>fishd</cc>
    
    <cc>kinuko</cc>
    
    <cc>levin</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>266479</commentid>
    <comment_count>0</comment_count>
    <who name="Jian Li">jianli</who>
    <bug_when>2010-08-18 17:35:08 -0700</bug_when>
    <thetext>Move FileStreamClient to platform and add AsyncFileStream interface. This is needed by BlobResounceHandle that is put under platform/network.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>266482</commentid>
    <comment_count>1</comment_count>
      <attachid>64794</attachid>
    <who name="Jian Li">jianli</who>
    <bug_when>2010-08-18 17:38:47 -0700</bug_when>
    <thetext>Created attachment 64794
Proposed Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>266483</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-08-18 17:40:16 -0700</bug_when>
    <thetext>Attachment 64794 did not pass style-queue:

Failed to run &quot;[&apos;WebKitTools/Scripts/check-webkit-style&apos;]&quot; exit_code: 1
WebCore/platform/AsyncFileStream.h:59:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
Total errors found: 1 in 9 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>266484</commentid>
    <comment_count>3</comment_count>
      <attachid>64795</attachid>
    <who name="Jian Li">jianli</who>
    <bug_when>2010-08-18 17:42:15 -0700</bug_when>
    <thetext>Created attachment 64795
Proposed Patch

Fixed style error.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>266506</commentid>
    <comment_count>4</comment_count>
      <attachid>64798</attachid>
    <who name="Jian Li">jianli</who>
    <bug_when>2010-08-18 18:59:09 -0700</bug_when>
    <thetext>Created attachment 64798
Proposed Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>267315</commentid>
    <comment_count>5</comment_count>
    <who name="Jian Li">jianli</who>
    <bug_when>2010-08-20 11:35:29 -0700</bug_when>
    <thetext>Committed as http://trac.webkit.org/changeset/65745.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>64794</attachid>
            <date>2010-08-18 17:38:47 -0700</date>
            <delta_ts>2010-08-18 17:42:15 -0700</delta_ts>
            <desc>Proposed Patch</desc>
            <filename>44224</filename>
            <type>text/plain</type>
            <size>23652</size>
            <attacher name="Jian Li">jianli</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
ODE5ZjU2MS4uNzJkM2FiZSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvV2Vi
Q29yZS9DaGFuZ2VMb2cKQEAgLTEsNSArMSwyNCBAQAogMjAxMC0wOC0xOCAgSmlhbiBMaSAgPGpp
YW5saUBjaHJvbWl1bS5vcmc+CiAKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgTW92ZSBGaWxlU3RyZWFtQ2xpZW50IHRvIHBsYXRmb3JtIGFuZCBhZGQgQXN5
bmNGaWxlU3RyZWFtIGludGVyZmFjZS4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTQ0MjI0CisKKyAgICAgICAgKiBHTlVtYWtlZmlsZS5hbToKKyAgICAg
ICAgKiBXZWJDb3JlLmd5cGk6CisgICAgICAgICogV2ViQ29yZS5wcm86CisgICAgICAgICogV2Vi
Q29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2o6CisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIGh0bWwvRmlsZVN0cmVhbVByb3h5LmNwcDogQWNj
b3VudCBmb3IgdGhlIGNoYW5nZS4KKyAgICAgICAgKFdlYkNvcmU6OkZpbGVTdHJlYW1Qcm94eTo6
RmlsZVN0cmVhbVByb3h5KToKKyAgICAgICAgKFdlYkNvcmU6OkZpbGVTdHJlYW1Qcm94eTo6c3Rv
cCk6CisgICAgICAgICogaHRtbC9GaWxlU3RyZWFtUHJveHkuaDogTWFrZSBpdCBkZXJpdmUgZnJv
bSBBc3luY0ZpbGVTdHJlYW0uaC4KKyAgICAgICAgKiBwbGF0Zm9ybS9Bc3luY0ZpbGVTdHJlYW0u
aDogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0vRmlsZVN0cmVhbUNsaWVudC5oOiBSZW5hbWVk
IGZyb20gV2ViQ29yZS9odG1sL0ZpbGVTdHJlYW1DbGllbnQuaC4KKworMjAxMC0wOC0xOCAgSmlh
biBMaSAgPGppYW5saUBjaHJvbWl1bS5vcmc+CisKICAgICAgICAgUmV2aWV3ZWQgYnkgRGF2aWQg
TGV2aW4uCiAKICAgICAgICAgTW92ZSBGaWxlU3RyZWFtIHRvIHBsYXRmb3JtLgpkaWZmIC0tZ2l0
IGEvV2ViQ29yZS9HTlVtYWtlZmlsZS5hbSBiL1dlYkNvcmUvR05VbWFrZWZpbGUuYW0KaW5kZXgg
YzZkNTgzOC4uMzU1NDhjMiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9HTlVtYWtlZmlsZS5hbQorKysg
Yi9XZWJDb3JlL0dOVW1ha2VmaWxlLmFtCkBAIC0xMzUzLDcgKzEzNTMsNiBAQCB3ZWJjb3JlX3Nv
dXJjZXMgKz0gXAogCVdlYkNvcmUvaHRtbC9GaWxlTGlzdC5oIFwKIAlXZWJDb3JlL2h0bWwvRmls
ZVJlYWRlci5jcHAgXAogCVdlYkNvcmUvaHRtbC9GaWxlUmVhZGVyLmggXAotCVdlYkNvcmUvaHRt
bC9GaWxlU3RyZWFtQ2xpZW50LmggXAogCVdlYkNvcmUvaHRtbC9GaWxlU3RyZWFtUHJveHkuY3Bw
IFwKIAlXZWJDb3JlL2h0bWwvRmlsZVN0cmVhbVByb3h5LmggXAogCVdlYkNvcmUvaHRtbC9GaWxl
VGhyZWFkLmNwcCBcCkBAIC0xODc1LDYgKzE4NzQsNyBAQCB3ZWJjb3JlX3NvdXJjZXMgKz0gXAog
CVdlYkNvcmUvcGFnZS9hbmltYXRpb24vS2V5ZnJhbWVBbmltYXRpb24uaCBcCiAJV2ViQ29yZS9w
bGF0Zm9ybS9BcmVuYS5jcHAgXAogCVdlYkNvcmUvcGxhdGZvcm0vQXJlbmEuaCBcCisJV2ViQ29y
ZS9wbGF0Zm9ybS9Bc3luY0ZpbGVTdHJlYW0uaCBcCiAJV2ViQ29yZS9wbGF0Zm9ybS9BdXRvZHJh
aW5lZFBvb2wuaCBcCiAJV2ViQ29yZS9wbGF0Zm9ybS9CbG9iSXRlbS5jcHAgXAogCVdlYkNvcmUv
cGxhdGZvcm0vQmxvYkl0ZW0uaCBcCkBAIC0xOTAxLDYgKzE5MDEsNyBAQCB3ZWJjb3JlX3NvdXJj
ZXMgKz0gXAogCVdlYkNvcmUvcGxhdGZvcm0vRmlsZUNob29zZXIuaCBcCiAJV2ViQ29yZS9wbGF0
Zm9ybS9GaWxlU3RyZWFtLmNwcCBcCiAJV2ViQ29yZS9wbGF0Zm9ybS9GaWxlU3RyZWFtLmggXAor
CVdlYkNvcmUvcGxhdGZvcm0vRmlsZVN0cmVhbUNsaWVudC5oIFwKIAlXZWJDb3JlL3BsYXRmb3Jt
L0ZpbGVTeXN0ZW0uY3BwIFwKIAlXZWJDb3JlL3BsYXRmb3JtL0ZpbGVTeXN0ZW0uaCBcCiAJV2Vi
Q29yZS9wbGF0Zm9ybS9GbG9hdENvbnZlcnNpb24uaCBcCmRpZmYgLS1naXQgYS9XZWJDb3JlL1dl
YkNvcmUuZ3lwaSBiL1dlYkNvcmUvV2ViQ29yZS5neXBpCmluZGV4IDMyYjJmZTEuLmZhMWEwYmUg
MTAwNjQ0Ci0tLSBhL1dlYkNvcmUvV2ViQ29yZS5neXBpCisrKyBiL1dlYkNvcmUvV2ViQ29yZS5n
eXBpCkBAIC0xNTE4LDcgKzE1MTgsNiBAQAogICAgICAgICAgICAgJ2h0bWwvRmlsZUxpc3QuaCcs
CiAgICAgICAgICAgICAnaHRtbC9GaWxlUmVhZGVyLmNwcCcsCiAgICAgICAgICAgICAnaHRtbC9G
aWxlUmVhZGVyLmgnLAotICAgICAgICAgICAgJ2h0bWwvRmlsZVN0cmVhbUNsaWVudC5oJywKICAg
ICAgICAgICAgICdodG1sL0ZpbGVTdHJlYW1Qcm94eS5jcHAnLAogICAgICAgICAgICAgJ2h0bWwv
RmlsZVN0cmVhbVByb3h5LmgnLAogICAgICAgICAgICAgJ2h0bWwvRmlsZVRocmVhZC5jcHAnLApA
QCAtMzAzNSw2ICszMDM0LDcgQEAKICAgICAgICAgICAgICdwbGF0Zm9ybS93eC9XaWRnZXRXeC5j
cHAnLAogICAgICAgICAgICAgJ3BsYXRmb3JtL0FyZW5hLmNwcCcsCiAgICAgICAgICAgICAncGxh
dGZvcm0vQXJlbmEuaCcsCisgICAgICAgICAgICAncGxhdGZvcm0vQXN5bmNGaWxlU3RyZWFtLmgn
LAogICAgICAgICAgICAgJ3BsYXRmb3JtL0F1dG9kcmFpbmVkUG9vbC5oJywKICAgICAgICAgICAg
ICdwbGF0Zm9ybS9CbG9iSXRlbS5jcHAnLAogICAgICAgICAgICAgJ3BsYXRmb3JtL0Jsb2JJdGVt
LmgnLApAQCAtMzA2MCw2ICszMDYwLDcgQEAKICAgICAgICAgICAgICdwbGF0Zm9ybS9GaWxlQ2hv
b3Nlci5oJywKICAgICAgICAgICAgICdwbGF0Zm9ybS9GaWxlU3RyZWFtLmNwcCcsCiAgICAgICAg
ICAgICAncGxhdGZvcm0vRmlsZVN0cmVhbS5oJywKKyAgICAgICAgICAgICdwbGF0Zm9ybS9GaWxl
U3RyZWFtQ2xpZW50LmgnLAogICAgICAgICAgICAgJ3BsYXRmb3JtL0ZpbGVTeXN0ZW0uY3BwJywK
ICAgICAgICAgICAgICdwbGF0Zm9ybS9GaWxlU3lzdGVtLmgnLAogICAgICAgICAgICAgJ3BsYXRm
b3JtL0Zsb2F0Q29udmVyc2lvbi5oJywKZGlmZiAtLWdpdCBhL1dlYkNvcmUvV2ViQ29yZS5wcm8g
Yi9XZWJDb3JlL1dlYkNvcmUucHJvCmluZGV4IDZjNmUyODkuLjY4MTA2ZTcgMTAwNjQ0Ci0tLSBh
L1dlYkNvcmUvV2ViQ29yZS5wcm8KKysrIGIvV2ViQ29yZS9XZWJDb3JlLnBybwpAQCAtMTQxMCw3
ICsxNDEwLDYgQEAgSEVBREVSUyArPSBcCiAgICAgaHRtbC9GaWxlRXJyb3IuaCBcCiAgICAgaHRt
bC9GaWxlTGlzdC5oIFwKICAgICBodG1sL0ZpbGVSZWFkZXIuaCBcCi0gICAgaHRtbC9GaWxlU3Ry
ZWFtQ2xpZW50LmggXAogICAgIGh0bWwvRmlsZVN0cmVhbVByb3h5LmggXAogICAgIGh0bWwvRmls
ZVRocmVhZC5oIFwKICAgICBodG1sL0ZpbGVUaHJlYWRUYXNrLmggXApAQCAtMTY0NCw2ICsxNjQz
LDcgQEAgSEVBREVSUyArPSBcCiAgICAgcGxhdGZvcm0vYW5pbWF0aW9uL0FuaW1hdGlvbi5oIFwK
ICAgICBwbGF0Zm9ybS9hbmltYXRpb24vQW5pbWF0aW9uTGlzdC5oIFwKICAgICBwbGF0Zm9ybS9B
cmVuYS5oIFwKKyAgICBwbGF0Zm9ybS9Bc3luY0ZpbGVTdHJlYW0uaCBcCiAgICAgcGxhdGZvcm0v
QmxvYkl0ZW0uaCBcCiAgICAgcGxhdGZvcm0vQ29udGVudFR5cGUuaCBcCiAgICAgcGxhdGZvcm0v
Q29udGV4dE1lbnUuaCBcCkBAIC0xNjUzLDYgKzE2NTMsNyBAQCBIRUFERVJTICs9IFwKICAgICBw
bGF0Zm9ybS9EcmFnSW1hZ2UuaCBcCiAgICAgcGxhdGZvcm0vRmlsZUNob29zZXIuaCBcCiAgICAg
cGxhdGZvcm0vRmlsZVN0cmVhbS5oIFwKKyAgICBwbGF0Zm9ybS9GaWxlU3RyZWFtQ2xpZW50Lmgg
XAogICAgIHBsYXRmb3JtL0ZpbGVTeXN0ZW0uaCBcCiAgICAgcGxhdGZvcm0vR2VvbG9jYXRpb25T
ZXJ2aWNlLmggXAogICAgIHBsYXRmb3JtL2ltYWdlLWRlY29kZXJzL0ltYWdlRGVjb2Rlci5oIFwK
ZGlmZiAtLWdpdCBhL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2ogYi9XZWJD
b3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCmluZGV4IGJlYmMzZjguLmFmZGFmZjIg
MTAwNjQ0Ci0tLSBhL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oKKysrIGIv
V2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagpAQCAtMjM5MjEsNiArMjM5MjEs
MTAgQEAKIAkJCQk+DQogCQkJPC9GaWxlPg0KIAkJCTxGaWxlDQorCQkJCVJlbGF0aXZlUGF0aD0i
Li5ccGxhdGZvcm1cQXN5bmNGaWxlU3RyZWFtLmgiDQorCQkJCT4NCisJCQk8L0ZpbGU+DQorCQkJ
PEZpbGUNCiAJCQkJUmVsYXRpdmVQYXRoPSIuLlxwbGF0Zm9ybVxBdXRvZHJhaW5lZFBvb2wuaCIN
CiAJCQkJPg0KIAkJCTwvRmlsZT4NCkBAIC0yNDAyMSw2ICsyNDAyNSwxMCBAQAogCQkJCT4NCiAJ
CQk8L0ZpbGU+DQogCQkJPEZpbGUNCisJCQkJUmVsYXRpdmVQYXRoPSIuLlxwbGF0Zm9ybVxGaWxl
U3RyZWFtQ2xpZW50LmgiDQorCQkJCT4NCisJCQk8L0ZpbGU+DQorCQkJPEZpbGUNCiAJCQkJUmVs
YXRpdmVQYXRoPSIuLlxwbGF0Zm9ybVxGaWxlU3lzdGVtLmNwcCINCiAJCQkJPg0KIAkJCTwvRmls
ZT4NCkBAIC0zNzEyNSwxMCArMzcxMzMsNiBAQAogCQkJCT4NCiAJCQk8L0ZpbGU+DQogCQkJPEZp
bGUNCi0JCQkJUmVsYXRpdmVQYXRoPSIuLlxodG1sXEZpbGVTdHJlYW1DbGllbnQuaCINCi0JCQkJ
Pg0KLQkJCTwvRmlsZT4NCi0JCQk8RmlsZQ0KIAkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGh0bWxcRmls
ZVN0cmVhbVByb3h5LmNwcCINCiAJCQkJPg0KIAkJCTwvRmlsZT4NCmRpZmYgLS1naXQgYS9XZWJD
b3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1dlYkNvcmUvV2ViQ29yZS54
Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDhjZTJhMDYuLjAzMzdiZjUgMTAwNjQ0Ci0t
LSBhL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1dlYkNv
cmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC03MjIsNiArNzIyLDggQEAK
IAkJMkVFRDU3RkUxMjE0QTlDMjAwNzY1NkJCIC8qIFRocmVhZGFibGVCbG9iUmVnaXN0cnkuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDJFRUQ1N0ZDMTIx
NEE5QzIwMDc2NTZCQiAvKiBUaHJlYWRhYmxlQmxvYlJlZ2lzdHJ5LmggKi87IH07CiAJCTJFRjFC
RkVBMTIxQzlGNDIwMEMyNzYyNyAvKiBGaWxlU3RyZWFtLmNwcCBpbiBTb3VyY2VzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDJFRjFCRkU4MTIxQzlGNDIwMEMyNzYyNyAvKiBG
aWxlU3RyZWFtLmNwcCAqLzsgfTsKIAkJMkVGMUJGRUIxMjFDOUY0MjAwQzI3NjI3IC8qIEZpbGVT
dHJlYW0uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDJF
RjFCRkU5MTIxQzlGNDIwMEMyNzYyNyAvKiBGaWxlU3RyZWFtLmggKi87IH07CisJCTJFRjFCRkY3
MTIxQ0IwQkQwMEMyNzYyNyAvKiBBc3luY0ZpbGVTdHJlYW0uaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDJFRjFCRkY2MTIxQ0IwQkQwMEMyNzYyNyAvKiBB
c3luY0ZpbGVTdHJlYW0uaCAqLzsgfTsKKwkJMkVGMUJGRjkxMjFDQjBDRTAwQzI3NjI3IC8qIEZp
bGVTdHJlYW1DbGllbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDJFRjFCRkY4MTIxQ0IwQ0UwMEMyNzYyNyAvKiBGaWxlU3RyZWFtQ2xpZW50LmggKi87
IH07CiAJCTMxMjg4RTcyMEUzMDA1RDYwMDM2MTlBRSAvKiBXZWJLaXRDU1NLZXlmcmFtZVJ1bGUu
Y3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMzEyODhF
NkUwRTMwMDVENjAwMzYxOUFFIC8qIFdlYktpdENTU0tleWZyYW1lUnVsZS5jcHAgKi87IH07CiAJ
CTMxMjg4RTczMEUzMDA1RDYwMDM2MTlBRSAvKiBXZWJLaXRDU1NLZXlmcmFtZVJ1bGUuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDMxMjg4RTZGMEUzMDA1
RDYwMDM2MTlBRSAvKiBXZWJLaXRDU1NLZXlmcmFtZVJ1bGUuaCAqLzsgfTsKIAkJMzEyODhFNzQw
RTMwMDVENjAwMzYxOUFFIC8qIFdlYktpdENTU0tleWZyYW1lc1J1bGUuY3BwIGluIFNvdXJjZXMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMzEyODhFNzAwRTMwMDVENjAwMzYx
OUFFIC8qIFdlYktpdENTU0tleWZyYW1lc1J1bGUuY3BwICovOyB9OwpAQCAtMjM3OCw3ICsyMzgw
LDYgQEAKIAkJODYyNDNEMDExMUJDMzFGNzAwQ0MwMDZBIC8qIEpTQXJyYXlCdWZmZXJWaWV3SGVs
cGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4NjI0
M0QwMDExQkMzMUY3MDBDQzAwNkEgLyogSlNBcnJheUJ1ZmZlclZpZXdIZWxwZXIuaCAqLzsgfTsK
IAkJODk1MjUzNTIxMTY0MUIzNDAwQ0FCRjAwIC8qIEZpbGVUaHJlYWQuY3BwIGluIFNvdXJjZXMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODk1MjUzNTAxMTY0MUIzNDAwQ0FC
RjAwIC8qIEZpbGVUaHJlYWQuY3BwICovOyB9OwogCQk4OTUyNTM1MzExNjQxQjM0MDBDQUJGMDAg
LyogRmlsZVRocmVhZC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gODk1MjUzNTExMTY0MUIzNDAwQ0FCRjAwIC8qIEZpbGVUaHJlYWQuaCAqLzsgfTsKLQkJ
ODk1MjUzRDkxMTZDNEM2ODAwQ0FCRjAwIC8qIEZpbGVTdHJlYW1DbGllbnQuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg5NTI1M0Q2MTE2QzRDNjgwMENB
QkYwMCAvKiBGaWxlU3RyZWFtQ2xpZW50LmggKi87IH07CiAJCTg5NTI1M0RDMTE2QzRFRjUwMENB
QkYwMCAvKiBGaWxlU3RyZWFtUHJveHkuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gODk1MjUzREExMTZDNEVGNTAwQ0FCRjAwIC8qIEZpbGVTdHJlYW1Q
cm94eS5jcHAgKi87IH07CiAJCTg5NTI1M0REMTE2QzRFRjUwMENBQkYwMCAvKiBGaWxlU3RyZWFt
UHJveHkuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg5
NTI1M0RCMTE2QzRFRjUwMENBQkYwMCAvKiBGaWxlU3RyZWFtUHJveHkuaCAqLzsgfTsKIAkJODk1
MjUzREYxMTZDNEYwNjAwQ0FCRjAwIC8qIEZpbGVUaHJlYWRUYXNrLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4OTUyNTNERTExNkM0RjA2MDBDQUJGMDAg
LyogRmlsZVRocmVhZFRhc2suaCAqLzsgfTsKQEAgLTY1MzUsNiArNjUzNiw4IEBACiAJCTJFRUQ1
N0ZDMTIxNEE5QzIwMDc2NTZCQiAvKiBUaHJlYWRhYmxlQmxvYlJlZ2lzdHJ5LmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFRocmVhZGFibGVCbG9iUmVnaXN0cnkuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMkVGMUJGRTgxMjFDOUY0MjAwQzI3NjI3IC8qIEZpbGVT
dHJlYW0uY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gRmlsZVN0cmVh
bS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTJFRjFCRkU5MTIxQzlGNDIwMEMy
NzYyNyAvKiBGaWxlU3RyZWFtLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEZp
bGVTdHJlYW0uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMkVGMUJGRjYxMjFDQjBC
RDAwQzI3NjI3IC8qIEFzeW5jRmlsZVN0cmVhbS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBBc3luY0ZpbGVTdHJlYW0uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJ
MkVGMUJGRjgxMjFDQjBDRTAwQzI3NjI3IC8qIEZpbGVTdHJlYW1DbGllbnQuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRmlsZVN0cmVhbUNsaWVudC5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQkzMTI4OEU2RTBFMzAwNUQ2MDAzNjE5QUUgLyogV2ViS2l0Q1NTS2V5
ZnJhbWVSdWxlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdlYktp
dENTU0tleWZyYW1lUnVsZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTMxMjg4
RTZGMEUzMDA1RDYwMDM2MTlBRSAvKiBXZWJLaXRDU1NLZXlmcmFtZVJ1bGUuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViS2l0Q1NTS2V5ZnJhbWVSdWxlLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTMxMjg4RTcwMEUzMDA1RDYwMDM2MTlBRSAvKiBXZWJLaXRD
U1NLZXlmcmFtZXNSdWxlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9
IFdlYktpdENTU0tleWZyYW1lc1J1bGUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpA
QCAtODIyNiw3ICs4MjI5LDYgQEAKIAkJODYyNDNEMDAxMUJDMzFGNzAwQ0MwMDZBIC8qIEpTQXJy
YXlCdWZmZXJWaWV3SGVscGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpT
QXJyYXlCdWZmZXJWaWV3SGVscGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTg5
NTI1MzUwMTE2NDFCMzQwMENBQkYwMCAvKiBGaWxlVGhyZWFkLmNwcCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEZpbGVUaHJlYWQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQk4OTUyNTM1MTExNjQxQjM0MDBDQUJGMDAgLyogRmlsZVRocmVhZC5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBGaWxlVGhyZWFkLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07Ci0JCTg5NTI1M0Q2MTE2QzRDNjgwMENBQkYwMCAvKiBGaWxlU3RyZWFtQ2xp
ZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEZpbGVTdHJlYW1DbGllbnQu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJODk1MjUzREExMTZDNEVGNTAwQ0FCRjAw
IC8qIEZpbGVTdHJlYW1Qcm94eS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBh
dGggPSBGaWxlU3RyZWFtUHJveHkuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk4
OTUyNTNEQjExNkM0RUY1MDBDQUJGMDAgLyogRmlsZVN0cmVhbVByb3h5LmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEZpbGVTdHJlYW1Qcm94eS5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQk4OTUyNTNERTExNkM0RjA2MDBDQUJGMDAgLyogRmlsZVRocmVhZFRhc2su
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRmlsZVRocmVhZFRhc2suaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTE0MDA5LDcgKzE0MDExLDYgQEAKIAkJCQkyRTk0
RjNDQjExOEI5MDhFMDBCN0Y3NUQgLyogRmlsZVJlYWRlci5jcHAgKi8sCiAJCQkJMkU5NEYzQ0Mx
MThCOTA4RTAwQjdGNzVEIC8qIEZpbGVSZWFkZXIuaCAqLywKIAkJCQkyRTk0RjQyNzExOTIwNUIz
MDBCN0Y3NUQgLyogRmlsZVJlYWRlci5pZGwgKi8sCi0JCQkJODk1MjUzRDYxMTZDNEM2ODAwQ0FC
RjAwIC8qIEZpbGVTdHJlYW1DbGllbnQuaCAqLywKIAkJCQk4OTUyNTNEQTExNkM0RUY1MDBDQUJG
MDAgLyogRmlsZVN0cmVhbVByb3h5LmNwcCAqLywKIAkJCQk4OTUyNTNEQjExNkM0RUY1MDBDQUJG
MDAgLyogRmlsZVN0cmVhbVByb3h5LmggKi8sCiAJCQkJODk1MjUzNTAxMTY0MUIzNDAwQ0FCRjAw
IC8qIEZpbGVUaHJlYWQuY3BwICovLApAQCAtMTY1NjcsNiArMTY1NjgsNyBAQAogCQkJCUIyQzNE
OUVDMEQwMDZDMUQwMEVGNkYyNiAvKiB0ZXh0ICovLAogCQkJCUJDRkIyRjc0MDk3QTJFMUEwMEJB
NzAzRCAvKiBBcmVuYS5jcHAgKi8sCiAJCQkJQkNGQjJGNzUwOTdBMkUxQTAwQkE3MDNEIC8qIEFy
ZW5hLmggKi8sCisJCQkJMkVGMUJGRjYxMjFDQjBCRDAwQzI3NjI3IC8qIEFzeW5jRmlsZVN0cmVh
bS5oICovLAogCQkJCTUxRTFFQ0IxMEM5MUM1NTYwMERDMjU1QiAvKiBBdXRvZHJhaW5lZFBvb2wu
aCAqLywKIAkJCQk4OTg4RTEwQzExQTM1MDhCMDBEQjczMkUgLyogQmxvYkl0ZW0uY3BwICovLAog
CQkJCTg5ODhFMTBEMTFBMzUwOEIwMERCNzMyRSAvKiBCbG9iSXRlbS5oICovLApAQCAtMTY1OTQs
NiArMTY1OTYsNyBAQAogCQkJCTA2NkM3NzJBMEFCNjAzQjcwMDIzOENDNCAvKiBGaWxlQ2hvb3Nl
ci5oICovLAogCQkJCTJFRjFCRkU4MTIxQzlGNDIwMEMyNzYyNyAvKiBGaWxlU3RyZWFtLmNwcCAq
LywKIAkJCQkyRUYxQkZFOTEyMUM5RjQyMDBDMjc2MjcgLyogRmlsZVN0cmVhbS5oICovLAorCQkJ
CTJFRjFCRkY4MTIxQ0IwQ0UwMEMyNzYyNyAvKiBGaWxlU3RyZWFtQ2xpZW50LmggKi8sCiAJCQkJ
QzU3RkVERTAxMjEyRUU5QzAwOTdCRTY1IC8qIEZpbGVTeXN0ZW0uY3BwICovLAogCQkJCTUxNEIz
RjcyMEM3MjIwNDcwMDA1MzBERiAvKiBGaWxlU3lzdGVtLmggKi8sCiAJCQkJQkMwNzNCQTkwQzM5
OUIxRjAwMEY1OTc5IC8qIEZsb2F0Q29udmVyc2lvbi5oICovLApAQCAtMTg2NzMsNyArMTg2NzYs
NiBAQAogCQkJCTJFM0JDMEJEMTE3RDNBNEYwMEI5NDA5QSAvKiBGaWxlRXJyb3IuaCBpbiBIZWFk
ZXJzICovLAogCQkJCUJDREJCOEFDMEUwODhDQTUwMEM2MEZGNiAvKiBGaWxlTGlzdC5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJMkU5NEY0NTExMTkyMDk2QTAwQjdGNzVEIC8qIEZpbGVSZWFkZXIuaCBp
biBIZWFkZXJzICovLAotCQkJCTg5NTI1M0Q5MTE2QzRDNjgwMENBQkYwMCAvKiBGaWxlU3RyZWFt
Q2xpZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQk4OTUyNTNERDExNkM0RUY1MDBDQUJGMDAgLyog
RmlsZVN0cmVhbVByb3h5LmggaW4gSGVhZGVycyAqLywKIAkJCQk1MTRCM0Y3MzBDNzIyMDQ3MDAw
NTMwREYgLyogRmlsZVN5c3RlbS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJODk1MjUzNTMxMTY0MUIz
NDAwQ0FCRjAwIC8qIEZpbGVUaHJlYWQuaCBpbiBIZWFkZXJzICovLApAQCAtMjAzMjAsNiArMjAz
MjIsOCBAQAogCQkJCTJFREVGMUY3MTIxQjBFRkMwMDcyNkRCMiAvKiBCbG9iUmVnaXN0cnlJbXBs
LmggaW4gSGVhZGVycyAqLywKIAkJCQkyRURFRjFGODEyMUIwRUZDMDA3MjZEQjIgLyogQmxvYlN0
b3JhZ2VEYXRhLmggaW4gSGVhZGVycyAqLywKIAkJCQkyRUYxQkZFQjEyMUM5RjQyMDBDMjc2Mjcg
LyogRmlsZVN0cmVhbS5oIGluIEhlYWRlcnMgKi8sCisJCQkJMkVGMUJGRjcxMjFDQjBCRDAwQzI3
NjI3IC8qIEFzeW5jRmlsZVN0cmVhbS5oIGluIEhlYWRlcnMgKi8sCisJCQkJMkVGMUJGRjkxMjFD
QjBDRTAwQzI3NjI3IC8qIEZpbGVTdHJlYW1DbGllbnQuaCBpbiBIZWFkZXJzICovLAogCQkJKTsK
IAkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9zdHByb2Nlc3NpbmcgPSAwOwogCQl9OwpkaWZmIC0t
Z2l0IGEvV2ViQ29yZS9odG1sL0ZpbGVTdHJlYW1DbGllbnQuaCBiL1dlYkNvcmUvaHRtbC9GaWxl
U3RyZWFtQ2xpZW50LmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGIzZDFmZmYuLjAw
MDAwMDAKLS0tIGEvV2ViQ29yZS9odG1sL0ZpbGVTdHJlYW1DbGllbnQuaAorKysgL2Rldi9udWxs
CkBAIC0xLDYzICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTAgR29vZ2xlIEluYy4g
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJl
Ci0gKiBtZXQ6Ci0gKgotICogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqICAgICAqIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKLSAqIGNvcHly
aWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIKLSAqIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUKLSAqIGRpc3RyaWJ1dGlvbi4KLSAqICAgICAqIE5laXRoZXIgdGhl
IG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKLSAqIGNvbnRyaWJ1dG9y
cyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9t
Ci0gKiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNz
aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBI
T0xERVJTIEFORCBDT05UUklCVVRPUlMKLSAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCi0gKiBMSU1JVEVEIFRPLCBUSEUg
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKLSAq
IEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBU
SEUgQ09QWVJJR0hUCi0gKiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkg
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKLSAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1Ig
Q09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKLSAqIExJTUlURUQgVE8s
IFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNF
LAotICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQgT04gQU5ZCi0gKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAqIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuCi0gKi8KLQotI2lmbmRlZiBGaWxlU3RyZWFtQ2xpZW50X2gKLSNkZWZpbmUgRmls
ZVN0cmVhbUNsaWVudF9oCi0KLSNpZiBFTkFCTEUoQkxPQikgfHwgRU5BQkxFKEZJTEVfV1JJVEVS
KQotCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci0KLWNsYXNzIEZpbGVTdHJlYW1DbGllbnQgewotcHVi
bGljOgotICAgIC8vIEZvciByZWFkaW5nLgotICAgIHZpcnR1YWwgdm9pZCBkaWRSZWFkKGludCkg
eyB9Ci0KLSAgICAvLyBGb3Igd3JpdGluZy4KLSAgICB2aXJ0dWFsIHZvaWQgZGlkV3JpdGUoaW50
KSB7IH0KLSAgICB2aXJ0dWFsIHZvaWQgZGlkVHJ1bmNhdGUoYm9vbCkgeyB9Ci0KLSAgICAvLyBG
SVhNRTogVG8gYmUgcmVtb3ZlZCB3aGVuIHdlIHN3aXRjaCB0byB1c2luZyBCbG9iRGF0YS4KLSAg
ICB2aXJ0dWFsIHZvaWQgZGlkU3RhcnQoKSB7IH0KLQotICAgIC8vIEZvciBib3RoIHJlYWRpbmcg
YW5kIHdyaXRpbmcuCi0gICAgdmlydHVhbCB2b2lkIGRpZE9wZW4oYm9vbCkgeyB9Ci0gICAgdmly
dHVhbCB2b2lkIGRpZFN0b3AoKSB7IH0KLSAgICB2aXJ0dWFsIHZvaWQgZGlkR2V0U2l6ZShsb25n
IGxvbmcpIHsgfQotCi1wcm90ZWN0ZWQ6Ci0gICAgdmlydHVhbCB+RmlsZVN0cmVhbUNsaWVudCgp
IHsgfQotfTsKLQotfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQotCi0jZW5kaWYgLy8gRU5BQkxFKEJM
T0IpIHx8IEVOQUJMRShGSUxFX1dSSVRFUikKLQotI2VuZGlmIC8vIEZpbGVTdHJlYW1DbGllbnRf
aApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9odG1sL0ZpbGVTdHJlYW1Qcm94eS5jcHAgYi9XZWJDb3Jl
L2h0bWwvRmlsZVN0cmVhbVByb3h5LmNwcAppbmRleCBmMjg5Yzg0Li4zMDgxM2QzIDEwMDY0NAot
LS0gYS9XZWJDb3JlL2h0bWwvRmlsZVN0cmVhbVByb3h5LmNwcAorKysgYi9XZWJDb3JlL2h0bWwv
RmlsZVN0cmVhbVByb3h5LmNwcApAQCAtMzcsNyArMzcsNiBAQAogI2luY2x1ZGUgIkJsb2IuaCIK
ICNpbmNsdWRlICJDcm9zc1RocmVhZFRhc2suaCIKICNpbmNsdWRlICJGaWxlU3RyZWFtLmgiCi0j
aW5jbHVkZSAiRmlsZVN0cmVhbUNsaWVudC5oIgogI2luY2x1ZGUgIkZpbGVUaHJlYWQuaCIKICNp
bmNsdWRlICJGaWxlVGhyZWFkVGFzay5oIgogI2luY2x1ZGUgIlBsYXRmb3JtU3RyaW5nLmgiCkBA
IC00Niw4ICs0NSw4IEBACiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGlubGluZSBGaWxlU3RyZWFt
UHJveHk6OkZpbGVTdHJlYW1Qcm94eShTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0LCBG
aWxlU3RyZWFtQ2xpZW50KiBjbGllbnQpCi0gICAgOiBtX2NvbnRleHQoY29udGV4dCkKLSAgICAs
IG1fY2xpZW50KGNsaWVudCkKKyAgICA6IEFzeW5jRmlsZVN0cmVhbShjbGllbnQpCisgICAgLCBt
X2NvbnRleHQoY29udGV4dCkKICAgICAsIG1fc3RyZWFtKEZpbGVTdHJlYW06OmNyZWF0ZSgpKQog
ewogfQpAQCAtOTEsNyArOTAsNyBAQCB2b2lkIEZpbGVTdHJlYW1Qcm94eTo6c3RhcnRPbkZpbGVU
aHJlYWQoKQogdm9pZCBGaWxlU3RyZWFtUHJveHk6OnN0b3AoKQogewogICAgIC8vIENsZWFyIHRo
ZSBjbGllbnQgc28gdGhhdCB3ZSB3b24ndCBiZSBjYWxsaW5nIGNhbGxiYWNrcyBvbiB0aGUgY2xp
ZW50LgotICAgIG1fY2xpZW50ID0gMDsKKyAgICBzZXRDbGllbnQoMCk7CiAKICAgICBmaWxlVGhy
ZWFkKCktPnVuc2NoZWR1bGVUYXNrcyhtX3N0cmVhbS5nZXQoKSk7CiAgICAgZmlsZVRocmVhZCgp
LT5wb3N0VGFzayhjcmVhdGVGaWxlVGhyZWFkVGFzayh0aGlzLCAmRmlsZVN0cmVhbVByb3h5Ojpz
dG9wT25GaWxlVGhyZWFkKSk7CmRpZmYgLS1naXQgYS9XZWJDb3JlL2h0bWwvRmlsZVN0cmVhbVBy
b3h5LmggYi9XZWJDb3JlL2h0bWwvRmlsZVN0cmVhbVByb3h5LmgKaW5kZXggNmRjMWNjNy4uZWRj
NmNiYiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9odG1sL0ZpbGVTdHJlYW1Qcm94eS5oCisrKyBiL1dl
YkNvcmUvaHRtbC9GaWxlU3RyZWFtUHJveHkuaApAQCAtMzQsNiArMzQsNyBAQAogCiAjaWYgRU5B
QkxFKEJMT0IpIHx8IEVOQUJMRShGSUxFX1dSSVRFUikKIAorI2luY2x1ZGUgIkFzeW5jRmlsZVN0
cmVhbS5oIgogI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+CiAjaW5jbHVkZSA8d3RmL1Bhc3NSZWZQ
dHIuaD4KICNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgpAQCAtNDIsMzEgKzQzLDI4IEBACiBu
YW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIEZpbGVTdHJlYW07Ci1jbGFzcyBGaWxlU3RyZWFt
Q2xpZW50OwogY2xhc3MgRmlsZVRocmVhZDsKIGNsYXNzIEtVUkw7CiBjbGFzcyBTY3JpcHRFeGVj
dXRpb25Db250ZXh0OwogCiAvLyBBIHByb3h5IG1vZHVsZSB0aGF0IGFzeW5jaHJvbm91c2x5IGNh
bGxzIGNvcnJlc3BvbmRpbmcgRmlsZVN0cmVhbSBtZXRob2RzIG9uIHRoZSBmaWxlIHRocmVhZC4g
IE5vdGU6IHlvdSBtdXN0IGNhbGwgc3RvcCgpIGZpcnN0IGFuZCB0aGVuIHJlbGVhc2UgdGhlIHJl
ZmVyZW5jZSB0byBkZXN0cnVjdCB0aGUgRmlsZVN0cmVhbVByb3h5IGluc3RhbmNlLgotY2xhc3Mg
RmlsZVN0cmVhbVByb3h5IDogcHVibGljIFJlZkNvdW50ZWQ8RmlsZVN0cmVhbVByb3h5PiB7Citj
bGFzcyBGaWxlU3RyZWFtUHJveHkgOiBwdWJsaWMgUmVmQ291bnRlZDxGaWxlU3RyZWFtUHJveHk+
LCBwdWJsaWMgQXN5bmNGaWxlU3RyZWFtIHsKIHB1YmxpYzoKICAgICBzdGF0aWMgUGFzc1JlZlB0
cjxGaWxlU3RyZWFtUHJveHk+IGNyZWF0ZShTY3JpcHRFeGVjdXRpb25Db250ZXh0KiwgRmlsZVN0
cmVhbUNsaWVudCopOwogICAgIHZpcnR1YWwgfkZpbGVTdHJlYW1Qcm94eSgpOwogCi0gICAgdm9p
ZCBnZXRTaXplKGNvbnN0IFN0cmluZyYgcGF0aCwgZG91YmxlIGV4cGVjdGVkTW9kaWZpY2F0aW9u
VGltZSk7Ci0gICAgdm9pZCBvcGVuRm9yUmVhZChjb25zdCBTdHJpbmcmIHBhdGgsIGxvbmcgbG9u
ZyBvZmZzZXQsIGxvbmcgbG9uZyBsZW5ndGgpOwotICAgIHZvaWQgb3BlbkZvcldyaXRlKGNvbnN0
IFN0cmluZyYgcGF0aCk7Ci0gICAgdm9pZCBjbG9zZSgpOwotICAgIHZvaWQgcmVhZChjaGFyKiBi
dWZmZXIsIGludCBsZW5ndGgpOwotICAgIHZvaWQgd3JpdGUoY29uc3QgS1VSTCYgYmxvYlVSTCwg
bG9uZyBsb25nIHBvc2l0aW9uLCBpbnQgbGVuZ3RoKTsKLSAgICB2b2lkIHRydW5jYXRlKGxvbmcg
bG9uZyBwb3NpdGlvbik7CisgICAgdmlydHVhbCB2b2lkIGdldFNpemUoY29uc3QgU3RyaW5nJiBw
YXRoLCBkb3VibGUgZXhwZWN0ZWRNb2RpZmljYXRpb25UaW1lKTsKKyAgICB2aXJ0dWFsIHZvaWQg
b3BlbkZvclJlYWQoY29uc3QgU3RyaW5nJiBwYXRoLCBsb25nIGxvbmcgb2Zmc2V0LCBsb25nIGxv
bmcgbGVuZ3RoKTsKKyAgICB2aXJ0dWFsIHZvaWQgb3BlbkZvcldyaXRlKGNvbnN0IFN0cmluZyYg
cGF0aCk7CisgICAgdmlydHVhbCB2b2lkIGNsb3NlKCk7CisgICAgdmlydHVhbCB2b2lkIHJlYWQo
Y2hhciogYnVmZmVyLCBpbnQgbGVuZ3RoKTsKKyAgICB2aXJ0dWFsIHZvaWQgd3JpdGUoY29uc3Qg
S1VSTCYgYmxvYlVSTCwgbG9uZyBsb25nIHBvc2l0aW9uLCBpbnQgbGVuZ3RoKTsKKyAgICB2aXJ0
dWFsIHZvaWQgdHJ1bmNhdGUobG9uZyBsb25nIHBvc2l0aW9uKTsKIAogICAgIC8vIFN0b3BzIHRo
ZSBwcm94eSBhbmQgc2NlZHVsZXMgaXQgdG8gYmUgZGVzdHJ1Y3RlZC4gIEFsbCB0aGUgcGVuZGlu
ZyB0YXNrcyB3aWxsIGJlIGFib3J0ZWQgYW5kIHRoZSBmaWxlIHN0cmVhbSB3aWxsIGJlIGNsb3Nl
ZC4KICAgICAvLyBOb3RlOiB0aGUgY2FsbGVyIHNob3VsZCBkZXJlZiB0aGUgaW5zdGFuY2UgaW1t
ZWRpYXRlbHkgYWZ0ZXIgY2FsbGluZyBzdG9wKCkuCiAgICAgdm9pZCBzdG9wKCk7CiAKLSAgICBG
aWxlU3RyZWFtQ2xpZW50KiBjbGllbnQoKSBjb25zdCB7IHJldHVybiBtX2NsaWVudDsgfQotCiBw
cml2YXRlOgogICAgIEZpbGVTdHJlYW1Qcm94eShTY3JpcHRFeGVjdXRpb25Db250ZXh0KiwgRmls
ZVN0cmVhbUNsaWVudCopOwogCkBAIC04NCw3ICs4Miw2IEBAIHByaXZhdGU6CiAgICAgdm9pZCB0
cnVuY2F0ZU9uRmlsZVRocmVhZChsb25nIGxvbmcgcG9zaXRpb24pOwogCiAgICAgUmVmUHRyPFNj
cmlwdEV4ZWN1dGlvbkNvbnRleHQ+IG1fY29udGV4dDsKLSAgICBGaWxlU3RyZWFtQ2xpZW50KiBt
X2NsaWVudDsKICAgICBSZWZQdHI8RmlsZVN0cmVhbT4gbV9zdHJlYW07CiB9OwogCmRpZmYgLS1n
aXQgYS9XZWJDb3JlL3BsYXRmb3JtL0FzeW5jRmlsZVN0cmVhbS5oIGIvV2ViQ29yZS9wbGF0Zm9y
bS9Bc3luY0ZpbGVTdHJlYW0uaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4x
M2JiYWQxCi0tLSAvZGV2L251bGwKKysrIGIvV2ViQ29yZS9wbGF0Zm9ybS9Bc3luY0ZpbGVTdHJl
YW0uaApAQCAtMCwwICsxLDcyIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEwIEdvb2dsZSBJ
bmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDEwIEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBh
cmUKKyAqIG1ldDoKKyAqCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogICAgICogUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQorICogY29w
eXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lcgorICogaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZQorICogZGlzdHJpYnV0aW9uLgorICogICAgICogTmVpdGhlciB0
aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cworICogY29udHJpYnV0
b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZy
b20KKyAqIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1p
c3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hU
IEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUworICogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1Ig
SU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFRI
RSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgor
ICogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxM
IFRIRSBDT1BZUklHSFQKKyAqIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFO
WSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAorICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBP
UiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBU
TywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBV
U0UsCisgKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORCBPTiBBTlkKKyAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4g
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICog
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIEFzeW5jRmlsZVN0cmVhbV9oCisjZGVmaW5lIEFz
eW5jRmlsZVN0cmVhbV9oCisKKyNpZiBFTkFCTEUoQkxPQikgfHwgRU5BQkxFKEZJTEVfV1JJVEVS
KQorCisjaW5jbHVkZSAiRmlsZVN0cmVhbUNsaWVudC5oIgorI2luY2x1ZGUgPHd0Zi9Gb3J3YXJk
Lmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgS1VSTDsKKworY2xhc3MgQXN5bmNG
aWxlU3RyZWFtIHsKK3B1YmxpYzoKKyAgICB2aXJ0dWFsIHZvaWQgZ2V0U2l6ZShjb25zdCBTdHJp
bmcmIHBhdGgsIGRvdWJsZSBleHBlY3RlZE1vZGlmaWNhdGlvblRpbWUpID0gMDsKKyAgICB2aXJ0
dWFsIHZvaWQgb3BlbkZvclJlYWQoY29uc3QgU3RyaW5nJiBwYXRoLCBsb25nIGxvbmcgb2Zmc2V0
LCBsb25nIGxvbmcgbGVuZ3RoKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIG9wZW5Gb3JXcml0ZShj
b25zdCBTdHJpbmcmIHBhdGgpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgY2xvc2UoKSA9IDA7Cisg
ICAgdmlydHVhbCB2b2lkIHJlYWQoY2hhciogYnVmZmVyLCBpbnQgbGVuZ3RoKSA9IDA7CisgICAg
dmlydHVhbCB2b2lkIHdyaXRlKGNvbnN0IEtVUkwmIGJsb2JVUkwsIGxvbmcgbG9uZyBwb3NpdGlv
biwgaW50IGxlbmd0aCkgPSAwOworICAgIHZpcnR1YWwgdm9pZCB0cnVuY2F0ZShsb25nIGxvbmcg
cG9zaXRpb24pID0gMDsKKworICAgIEZpbGVTdHJlYW1DbGllbnQqIGNsaWVudCgpIGNvbnN0IHsg
cmV0dXJuIG1fY2xpZW50OyB9CisgICAgdm9pZCBzZXRDbGllbnQoRmlsZVN0cmVhbUNsaWVudCog
Y2xpZW50KSB7IG1fY2xpZW50ID0gY2xpZW50OyB9CisKK3Byb3RlY3RlZDoKKyAgICBBc3luY0Zp
bGVTdHJlYW0oRmlsZVN0cmVhbUNsaWVudCogY2xpZW50KQorICAgICAgICA6IG1fY2xpZW50KGNs
aWVudCkgeworICAgIH0KKworICAgIHZpcnR1YWwgfkFzeW5jRmlsZVN0cmVhbSgpIHsgfQorCitw
cml2YXRlOgorICAgIEZpbGVTdHJlYW1DbGllbnQqIG1fY2xpZW50OworfTsKKworfSAvLyBuYW1l
c3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gRU5BQkxFKEJMT0IpIHx8IEVOQUJMRShGSUxFX1dS
SVRFUikKKworI2VuZGlmIC8vIEFzeW5jRmlsZVN0cmVhbV9oCmRpZmYgLS1naXQgYS9XZWJDb3Jl
L3BsYXRmb3JtL0ZpbGVTdHJlYW1DbGllbnQuaCBiL1dlYkNvcmUvcGxhdGZvcm0vRmlsZVN0cmVh
bUNsaWVudC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmIzZDFmZmYKLS0t
IC9kZXYvbnVsbAorKysgYi9XZWJDb3JlL3BsYXRmb3JtL0ZpbGVTdHJlYW1DbGllbnQuaApAQCAt
MCwwICsxLDYzIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEwIEdvb2dsZSBJbmMuICBBbGwg
cmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQorICog
bWV0OgorICoKKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCisgKiBjb3B5cmlnaHQg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyCisgKiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlCisgKiBkaXN0cmlidXRpb24uCisgKiAgICAgKiBOZWl0aGVyIHRoZSBuYW1l
IG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCisgKiBjb250cmlidXRvcnMgbWF5
IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQorICog
dGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4K
KyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVS
UyBBTkQgQ09OVFJJQlVUT1JTCisgKiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgVEhFIElNUExJ
RUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCisgKiBBIFBB
UlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENP
UFlSSUdIVAorICogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCisgKiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBQUk9D
VVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKKyAq
IERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWQorICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgorICovCisKKyNpZm5kZWYgRmlsZVN0cmVhbUNsaWVudF9oCisjZGVmaW5lIEZpbGVTdHJl
YW1DbGllbnRfaAorCisjaWYgRU5BQkxFKEJMT0IpIHx8IEVOQUJMRShGSUxFX1dSSVRFUikKKwor
bmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBGaWxlU3RyZWFtQ2xpZW50IHsKK3B1YmxpYzoK
KyAgICAvLyBGb3IgcmVhZGluZy4KKyAgICB2aXJ0dWFsIHZvaWQgZGlkUmVhZChpbnQpIHsgfQor
CisgICAgLy8gRm9yIHdyaXRpbmcuCisgICAgdmlydHVhbCB2b2lkIGRpZFdyaXRlKGludCkgeyB9
CisgICAgdmlydHVhbCB2b2lkIGRpZFRydW5jYXRlKGJvb2wpIHsgfQorCisgICAgLy8gRklYTUU6
IFRvIGJlIHJlbW92ZWQgd2hlbiB3ZSBzd2l0Y2ggdG8gdXNpbmcgQmxvYkRhdGEuCisgICAgdmly
dHVhbCB2b2lkIGRpZFN0YXJ0KCkgeyB9CisKKyAgICAvLyBGb3IgYm90aCByZWFkaW5nIGFuZCB3
cml0aW5nLgorICAgIHZpcnR1YWwgdm9pZCBkaWRPcGVuKGJvb2wpIHsgfQorICAgIHZpcnR1YWwg
dm9pZCBkaWRTdG9wKCkgeyB9CisgICAgdmlydHVhbCB2b2lkIGRpZEdldFNpemUobG9uZyBsb25n
KSB7IH0KKworcHJvdGVjdGVkOgorICAgIHZpcnR1YWwgfkZpbGVTdHJlYW1DbGllbnQoKSB7IH0K
K307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEVOQUJMRShCTE9CKSB8
fCBFTkFCTEUoRklMRV9XUklURVIpCisKKyNlbmRpZiAvLyBGaWxlU3RyZWFtQ2xpZW50X2gK
</data>
<flag name="commit-queue"
          id="53433"
          type_id="3"
          status="-"
          setter="jianli"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>64795</attachid>
            <date>2010-08-18 17:42:15 -0700</date>
            <delta_ts>2010-08-18 18:59:09 -0700</delta_ts>
            <desc>Proposed Patch</desc>
            <filename>44224_2</filename>
            <type>text/plain</type>
            <size>23657</size>
            <attacher name="Jian Li">jianli</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
ODE5ZjU2MS4uNzJkM2FiZSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvV2Vi
Q29yZS9DaGFuZ2VMb2cKQEAgLTEsNSArMSwyNCBAQAogMjAxMC0wOC0xOCAgSmlhbiBMaSAgPGpp
YW5saUBjaHJvbWl1bS5vcmc+CiAKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgTW92ZSBGaWxlU3RyZWFtQ2xpZW50IHRvIHBsYXRmb3JtIGFuZCBhZGQgQXN5
bmNGaWxlU3RyZWFtIGludGVyZmFjZS4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTQ0MjI0CisKKyAgICAgICAgKiBHTlVtYWtlZmlsZS5hbToKKyAgICAg
ICAgKiBXZWJDb3JlLmd5cGk6CisgICAgICAgICogV2ViQ29yZS5wcm86CisgICAgICAgICogV2Vi
Q29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2o6CisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIGh0bWwvRmlsZVN0cmVhbVByb3h5LmNwcDogQWNj
b3VudCBmb3IgdGhlIGNoYW5nZS4KKyAgICAgICAgKFdlYkNvcmU6OkZpbGVTdHJlYW1Qcm94eTo6
RmlsZVN0cmVhbVByb3h5KToKKyAgICAgICAgKFdlYkNvcmU6OkZpbGVTdHJlYW1Qcm94eTo6c3Rv
cCk6CisgICAgICAgICogaHRtbC9GaWxlU3RyZWFtUHJveHkuaDogTWFrZSBpdCBkZXJpdmUgZnJv
bSBBc3luY0ZpbGVTdHJlYW0uaC4KKyAgICAgICAgKiBwbGF0Zm9ybS9Bc3luY0ZpbGVTdHJlYW0u
aDogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0vRmlsZVN0cmVhbUNsaWVudC5oOiBSZW5hbWVk
IGZyb20gV2ViQ29yZS9odG1sL0ZpbGVTdHJlYW1DbGllbnQuaC4KKworMjAxMC0wOC0xOCAgSmlh
biBMaSAgPGppYW5saUBjaHJvbWl1bS5vcmc+CisKICAgICAgICAgUmV2aWV3ZWQgYnkgRGF2aWQg
TGV2aW4uCiAKICAgICAgICAgTW92ZSBGaWxlU3RyZWFtIHRvIHBsYXRmb3JtLgpkaWZmIC0tZ2l0
IGEvV2ViQ29yZS9HTlVtYWtlZmlsZS5hbSBiL1dlYkNvcmUvR05VbWFrZWZpbGUuYW0KaW5kZXgg
YzZkNTgzOC4uMzU1NDhjMiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9HTlVtYWtlZmlsZS5hbQorKysg
Yi9XZWJDb3JlL0dOVW1ha2VmaWxlLmFtCkBAIC0xMzUzLDcgKzEzNTMsNiBAQCB3ZWJjb3JlX3Nv
dXJjZXMgKz0gXAogCVdlYkNvcmUvaHRtbC9GaWxlTGlzdC5oIFwKIAlXZWJDb3JlL2h0bWwvRmls
ZVJlYWRlci5jcHAgXAogCVdlYkNvcmUvaHRtbC9GaWxlUmVhZGVyLmggXAotCVdlYkNvcmUvaHRt
bC9GaWxlU3RyZWFtQ2xpZW50LmggXAogCVdlYkNvcmUvaHRtbC9GaWxlU3RyZWFtUHJveHkuY3Bw
IFwKIAlXZWJDb3JlL2h0bWwvRmlsZVN0cmVhbVByb3h5LmggXAogCVdlYkNvcmUvaHRtbC9GaWxl
VGhyZWFkLmNwcCBcCkBAIC0xODc1LDYgKzE4NzQsNyBAQCB3ZWJjb3JlX3NvdXJjZXMgKz0gXAog
CVdlYkNvcmUvcGFnZS9hbmltYXRpb24vS2V5ZnJhbWVBbmltYXRpb24uaCBcCiAJV2ViQ29yZS9w
bGF0Zm9ybS9BcmVuYS5jcHAgXAogCVdlYkNvcmUvcGxhdGZvcm0vQXJlbmEuaCBcCisJV2ViQ29y
ZS9wbGF0Zm9ybS9Bc3luY0ZpbGVTdHJlYW0uaCBcCiAJV2ViQ29yZS9wbGF0Zm9ybS9BdXRvZHJh
aW5lZFBvb2wuaCBcCiAJV2ViQ29yZS9wbGF0Zm9ybS9CbG9iSXRlbS5jcHAgXAogCVdlYkNvcmUv
cGxhdGZvcm0vQmxvYkl0ZW0uaCBcCkBAIC0xOTAxLDYgKzE5MDEsNyBAQCB3ZWJjb3JlX3NvdXJj
ZXMgKz0gXAogCVdlYkNvcmUvcGxhdGZvcm0vRmlsZUNob29zZXIuaCBcCiAJV2ViQ29yZS9wbGF0
Zm9ybS9GaWxlU3RyZWFtLmNwcCBcCiAJV2ViQ29yZS9wbGF0Zm9ybS9GaWxlU3RyZWFtLmggXAor
CVdlYkNvcmUvcGxhdGZvcm0vRmlsZVN0cmVhbUNsaWVudC5oIFwKIAlXZWJDb3JlL3BsYXRmb3Jt
L0ZpbGVTeXN0ZW0uY3BwIFwKIAlXZWJDb3JlL3BsYXRmb3JtL0ZpbGVTeXN0ZW0uaCBcCiAJV2Vi
Q29yZS9wbGF0Zm9ybS9GbG9hdENvbnZlcnNpb24uaCBcCmRpZmYgLS1naXQgYS9XZWJDb3JlL1dl
YkNvcmUuZ3lwaSBiL1dlYkNvcmUvV2ViQ29yZS5neXBpCmluZGV4IDMyYjJmZTEuLmZhMWEwYmUg
MTAwNjQ0Ci0tLSBhL1dlYkNvcmUvV2ViQ29yZS5neXBpCisrKyBiL1dlYkNvcmUvV2ViQ29yZS5n
eXBpCkBAIC0xNTE4LDcgKzE1MTgsNiBAQAogICAgICAgICAgICAgJ2h0bWwvRmlsZUxpc3QuaCcs
CiAgICAgICAgICAgICAnaHRtbC9GaWxlUmVhZGVyLmNwcCcsCiAgICAgICAgICAgICAnaHRtbC9G
aWxlUmVhZGVyLmgnLAotICAgICAgICAgICAgJ2h0bWwvRmlsZVN0cmVhbUNsaWVudC5oJywKICAg
ICAgICAgICAgICdodG1sL0ZpbGVTdHJlYW1Qcm94eS5jcHAnLAogICAgICAgICAgICAgJ2h0bWwv
RmlsZVN0cmVhbVByb3h5LmgnLAogICAgICAgICAgICAgJ2h0bWwvRmlsZVRocmVhZC5jcHAnLApA
QCAtMzAzNSw2ICszMDM0LDcgQEAKICAgICAgICAgICAgICdwbGF0Zm9ybS93eC9XaWRnZXRXeC5j
cHAnLAogICAgICAgICAgICAgJ3BsYXRmb3JtL0FyZW5hLmNwcCcsCiAgICAgICAgICAgICAncGxh
dGZvcm0vQXJlbmEuaCcsCisgICAgICAgICAgICAncGxhdGZvcm0vQXN5bmNGaWxlU3RyZWFtLmgn
LAogICAgICAgICAgICAgJ3BsYXRmb3JtL0F1dG9kcmFpbmVkUG9vbC5oJywKICAgICAgICAgICAg
ICdwbGF0Zm9ybS9CbG9iSXRlbS5jcHAnLAogICAgICAgICAgICAgJ3BsYXRmb3JtL0Jsb2JJdGVt
LmgnLApAQCAtMzA2MCw2ICszMDYwLDcgQEAKICAgICAgICAgICAgICdwbGF0Zm9ybS9GaWxlQ2hv
b3Nlci5oJywKICAgICAgICAgICAgICdwbGF0Zm9ybS9GaWxlU3RyZWFtLmNwcCcsCiAgICAgICAg
ICAgICAncGxhdGZvcm0vRmlsZVN0cmVhbS5oJywKKyAgICAgICAgICAgICdwbGF0Zm9ybS9GaWxl
U3RyZWFtQ2xpZW50LmgnLAogICAgICAgICAgICAgJ3BsYXRmb3JtL0ZpbGVTeXN0ZW0uY3BwJywK
ICAgICAgICAgICAgICdwbGF0Zm9ybS9GaWxlU3lzdGVtLmgnLAogICAgICAgICAgICAgJ3BsYXRm
b3JtL0Zsb2F0Q29udmVyc2lvbi5oJywKZGlmZiAtLWdpdCBhL1dlYkNvcmUvV2ViQ29yZS5wcm8g
Yi9XZWJDb3JlL1dlYkNvcmUucHJvCmluZGV4IDZjNmUyODkuLjY4MTA2ZTcgMTAwNjQ0Ci0tLSBh
L1dlYkNvcmUvV2ViQ29yZS5wcm8KKysrIGIvV2ViQ29yZS9XZWJDb3JlLnBybwpAQCAtMTQxMCw3
ICsxNDEwLDYgQEAgSEVBREVSUyArPSBcCiAgICAgaHRtbC9GaWxlRXJyb3IuaCBcCiAgICAgaHRt
bC9GaWxlTGlzdC5oIFwKICAgICBodG1sL0ZpbGVSZWFkZXIuaCBcCi0gICAgaHRtbC9GaWxlU3Ry
ZWFtQ2xpZW50LmggXAogICAgIGh0bWwvRmlsZVN0cmVhbVByb3h5LmggXAogICAgIGh0bWwvRmls
ZVRocmVhZC5oIFwKICAgICBodG1sL0ZpbGVUaHJlYWRUYXNrLmggXApAQCAtMTY0NCw2ICsxNjQz
LDcgQEAgSEVBREVSUyArPSBcCiAgICAgcGxhdGZvcm0vYW5pbWF0aW9uL0FuaW1hdGlvbi5oIFwK
ICAgICBwbGF0Zm9ybS9hbmltYXRpb24vQW5pbWF0aW9uTGlzdC5oIFwKICAgICBwbGF0Zm9ybS9B
cmVuYS5oIFwKKyAgICBwbGF0Zm9ybS9Bc3luY0ZpbGVTdHJlYW0uaCBcCiAgICAgcGxhdGZvcm0v
QmxvYkl0ZW0uaCBcCiAgICAgcGxhdGZvcm0vQ29udGVudFR5cGUuaCBcCiAgICAgcGxhdGZvcm0v
Q29udGV4dE1lbnUuaCBcCkBAIC0xNjUzLDYgKzE2NTMsNyBAQCBIRUFERVJTICs9IFwKICAgICBw
bGF0Zm9ybS9EcmFnSW1hZ2UuaCBcCiAgICAgcGxhdGZvcm0vRmlsZUNob29zZXIuaCBcCiAgICAg
cGxhdGZvcm0vRmlsZVN0cmVhbS5oIFwKKyAgICBwbGF0Zm9ybS9GaWxlU3RyZWFtQ2xpZW50Lmgg
XAogICAgIHBsYXRmb3JtL0ZpbGVTeXN0ZW0uaCBcCiAgICAgcGxhdGZvcm0vR2VvbG9jYXRpb25T
ZXJ2aWNlLmggXAogICAgIHBsYXRmb3JtL2ltYWdlLWRlY29kZXJzL0ltYWdlRGVjb2Rlci5oIFwK
ZGlmZiAtLWdpdCBhL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2ogYi9XZWJD
b3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCmluZGV4IGJlYmMzZjguLmFmZGFmZjIg
MTAwNjQ0Ci0tLSBhL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oKKysrIGIv
V2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagpAQCAtMjM5MjEsNiArMjM5MjEs
MTAgQEAKIAkJCQk+DQogCQkJPC9GaWxlPg0KIAkJCTxGaWxlDQorCQkJCVJlbGF0aXZlUGF0aD0i
Li5ccGxhdGZvcm1cQXN5bmNGaWxlU3RyZWFtLmgiDQorCQkJCT4NCisJCQk8L0ZpbGU+DQorCQkJ
PEZpbGUNCiAJCQkJUmVsYXRpdmVQYXRoPSIuLlxwbGF0Zm9ybVxBdXRvZHJhaW5lZFBvb2wuaCIN
CiAJCQkJPg0KIAkJCTwvRmlsZT4NCkBAIC0yNDAyMSw2ICsyNDAyNSwxMCBAQAogCQkJCT4NCiAJ
CQk8L0ZpbGU+DQogCQkJPEZpbGUNCisJCQkJUmVsYXRpdmVQYXRoPSIuLlxwbGF0Zm9ybVxGaWxl
U3RyZWFtQ2xpZW50LmgiDQorCQkJCT4NCisJCQk8L0ZpbGU+DQorCQkJPEZpbGUNCiAJCQkJUmVs
YXRpdmVQYXRoPSIuLlxwbGF0Zm9ybVxGaWxlU3lzdGVtLmNwcCINCiAJCQkJPg0KIAkJCTwvRmls
ZT4NCkBAIC0zNzEyNSwxMCArMzcxMzMsNiBAQAogCQkJCT4NCiAJCQk8L0ZpbGU+DQogCQkJPEZp
bGUNCi0JCQkJUmVsYXRpdmVQYXRoPSIuLlxodG1sXEZpbGVTdHJlYW1DbGllbnQuaCINCi0JCQkJ
Pg0KLQkJCTwvRmlsZT4NCi0JCQk8RmlsZQ0KIAkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGh0bWxcRmls
ZVN0cmVhbVByb3h5LmNwcCINCiAJCQkJPg0KIAkJCTwvRmlsZT4NCmRpZmYgLS1naXQgYS9XZWJD
b3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1dlYkNvcmUvV2ViQ29yZS54
Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDhjZTJhMDYuLjAzMzdiZjUgMTAwNjQ0Ci0t
LSBhL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1dlYkNv
cmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC03MjIsNiArNzIyLDggQEAK
IAkJMkVFRDU3RkUxMjE0QTlDMjAwNzY1NkJCIC8qIFRocmVhZGFibGVCbG9iUmVnaXN0cnkuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDJFRUQ1N0ZDMTIx
NEE5QzIwMDc2NTZCQiAvKiBUaHJlYWRhYmxlQmxvYlJlZ2lzdHJ5LmggKi87IH07CiAJCTJFRjFC
RkVBMTIxQzlGNDIwMEMyNzYyNyAvKiBGaWxlU3RyZWFtLmNwcCBpbiBTb3VyY2VzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDJFRjFCRkU4MTIxQzlGNDIwMEMyNzYyNyAvKiBG
aWxlU3RyZWFtLmNwcCAqLzsgfTsKIAkJMkVGMUJGRUIxMjFDOUY0MjAwQzI3NjI3IC8qIEZpbGVT
dHJlYW0uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDJF
RjFCRkU5MTIxQzlGNDIwMEMyNzYyNyAvKiBGaWxlU3RyZWFtLmggKi87IH07CisJCTJFRjFCRkY3
MTIxQ0IwQkQwMEMyNzYyNyAvKiBBc3luY0ZpbGVTdHJlYW0uaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDJFRjFCRkY2MTIxQ0IwQkQwMEMyNzYyNyAvKiBB
c3luY0ZpbGVTdHJlYW0uaCAqLzsgfTsKKwkJMkVGMUJGRjkxMjFDQjBDRTAwQzI3NjI3IC8qIEZp
bGVTdHJlYW1DbGllbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDJFRjFCRkY4MTIxQ0IwQ0UwMEMyNzYyNyAvKiBGaWxlU3RyZWFtQ2xpZW50LmggKi87
IH07CiAJCTMxMjg4RTcyMEUzMDA1RDYwMDM2MTlBRSAvKiBXZWJLaXRDU1NLZXlmcmFtZVJ1bGUu
Y3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMzEyODhF
NkUwRTMwMDVENjAwMzYxOUFFIC8qIFdlYktpdENTU0tleWZyYW1lUnVsZS5jcHAgKi87IH07CiAJ
CTMxMjg4RTczMEUzMDA1RDYwMDM2MTlBRSAvKiBXZWJLaXRDU1NLZXlmcmFtZVJ1bGUuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDMxMjg4RTZGMEUzMDA1
RDYwMDM2MTlBRSAvKiBXZWJLaXRDU1NLZXlmcmFtZVJ1bGUuaCAqLzsgfTsKIAkJMzEyODhFNzQw
RTMwMDVENjAwMzYxOUFFIC8qIFdlYktpdENTU0tleWZyYW1lc1J1bGUuY3BwIGluIFNvdXJjZXMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMzEyODhFNzAwRTMwMDVENjAwMzYx
OUFFIC8qIFdlYktpdENTU0tleWZyYW1lc1J1bGUuY3BwICovOyB9OwpAQCAtMjM3OCw3ICsyMzgw
LDYgQEAKIAkJODYyNDNEMDExMUJDMzFGNzAwQ0MwMDZBIC8qIEpTQXJyYXlCdWZmZXJWaWV3SGVs
cGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4NjI0
M0QwMDExQkMzMUY3MDBDQzAwNkEgLyogSlNBcnJheUJ1ZmZlclZpZXdIZWxwZXIuaCAqLzsgfTsK
IAkJODk1MjUzNTIxMTY0MUIzNDAwQ0FCRjAwIC8qIEZpbGVUaHJlYWQuY3BwIGluIFNvdXJjZXMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODk1MjUzNTAxMTY0MUIzNDAwQ0FC
RjAwIC8qIEZpbGVUaHJlYWQuY3BwICovOyB9OwogCQk4OTUyNTM1MzExNjQxQjM0MDBDQUJGMDAg
LyogRmlsZVRocmVhZC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gODk1MjUzNTExMTY0MUIzNDAwQ0FCRjAwIC8qIEZpbGVUaHJlYWQuaCAqLzsgfTsKLQkJ
ODk1MjUzRDkxMTZDNEM2ODAwQ0FCRjAwIC8qIEZpbGVTdHJlYW1DbGllbnQuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg5NTI1M0Q2MTE2QzRDNjgwMENB
QkYwMCAvKiBGaWxlU3RyZWFtQ2xpZW50LmggKi87IH07CiAJCTg5NTI1M0RDMTE2QzRFRjUwMENB
QkYwMCAvKiBGaWxlU3RyZWFtUHJveHkuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gODk1MjUzREExMTZDNEVGNTAwQ0FCRjAwIC8qIEZpbGVTdHJlYW1Q
cm94eS5jcHAgKi87IH07CiAJCTg5NTI1M0REMTE2QzRFRjUwMENBQkYwMCAvKiBGaWxlU3RyZWFt
UHJveHkuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg5
NTI1M0RCMTE2QzRFRjUwMENBQkYwMCAvKiBGaWxlU3RyZWFtUHJveHkuaCAqLzsgfTsKIAkJODk1
MjUzREYxMTZDNEYwNjAwQ0FCRjAwIC8qIEZpbGVUaHJlYWRUYXNrLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4OTUyNTNERTExNkM0RjA2MDBDQUJGMDAg
LyogRmlsZVRocmVhZFRhc2suaCAqLzsgfTsKQEAgLTY1MzUsNiArNjUzNiw4IEBACiAJCTJFRUQ1
N0ZDMTIxNEE5QzIwMDc2NTZCQiAvKiBUaHJlYWRhYmxlQmxvYlJlZ2lzdHJ5LmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFRocmVhZGFibGVCbG9iUmVnaXN0cnkuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMkVGMUJGRTgxMjFDOUY0MjAwQzI3NjI3IC8qIEZpbGVT
dHJlYW0uY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gRmlsZVN0cmVh
bS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTJFRjFCRkU5MTIxQzlGNDIwMEMy
NzYyNyAvKiBGaWxlU3RyZWFtLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEZp
bGVTdHJlYW0uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMkVGMUJGRjYxMjFDQjBC
RDAwQzI3NjI3IC8qIEFzeW5jRmlsZVN0cmVhbS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBBc3luY0ZpbGVTdHJlYW0uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJ
MkVGMUJGRjgxMjFDQjBDRTAwQzI3NjI3IC8qIEZpbGVTdHJlYW1DbGllbnQuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRmlsZVN0cmVhbUNsaWVudC5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQkzMTI4OEU2RTBFMzAwNUQ2MDAzNjE5QUUgLyogV2ViS2l0Q1NTS2V5
ZnJhbWVSdWxlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdlYktp
dENTU0tleWZyYW1lUnVsZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTMxMjg4
RTZGMEUzMDA1RDYwMDM2MTlBRSAvKiBXZWJLaXRDU1NLZXlmcmFtZVJ1bGUuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViS2l0Q1NTS2V5ZnJhbWVSdWxlLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTMxMjg4RTcwMEUzMDA1RDYwMDM2MTlBRSAvKiBXZWJLaXRD
U1NLZXlmcmFtZXNSdWxlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9
IFdlYktpdENTU0tleWZyYW1lc1J1bGUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpA
QCAtODIyNiw3ICs4MjI5LDYgQEAKIAkJODYyNDNEMDAxMUJDMzFGNzAwQ0MwMDZBIC8qIEpTQXJy
YXlCdWZmZXJWaWV3SGVscGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpT
QXJyYXlCdWZmZXJWaWV3SGVscGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTg5
NTI1MzUwMTE2NDFCMzQwMENBQkYwMCAvKiBGaWxlVGhyZWFkLmNwcCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEZpbGVUaHJlYWQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQk4OTUyNTM1MTExNjQxQjM0MDBDQUJGMDAgLyogRmlsZVRocmVhZC5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBGaWxlVGhyZWFkLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07Ci0JCTg5NTI1M0Q2MTE2QzRDNjgwMENBQkYwMCAvKiBGaWxlU3RyZWFtQ2xp
ZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEZpbGVTdHJlYW1DbGllbnQu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJODk1MjUzREExMTZDNEVGNTAwQ0FCRjAw
IC8qIEZpbGVTdHJlYW1Qcm94eS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBh
dGggPSBGaWxlU3RyZWFtUHJveHkuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk4
OTUyNTNEQjExNkM0RUY1MDBDQUJGMDAgLyogRmlsZVN0cmVhbVByb3h5LmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEZpbGVTdHJlYW1Qcm94eS5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQk4OTUyNTNERTExNkM0RjA2MDBDQUJGMDAgLyogRmlsZVRocmVhZFRhc2su
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRmlsZVRocmVhZFRhc2suaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTE0MDA5LDcgKzE0MDExLDYgQEAKIAkJCQkyRTk0
RjNDQjExOEI5MDhFMDBCN0Y3NUQgLyogRmlsZVJlYWRlci5jcHAgKi8sCiAJCQkJMkU5NEYzQ0Mx
MThCOTA4RTAwQjdGNzVEIC8qIEZpbGVSZWFkZXIuaCAqLywKIAkJCQkyRTk0RjQyNzExOTIwNUIz
MDBCN0Y3NUQgLyogRmlsZVJlYWRlci5pZGwgKi8sCi0JCQkJODk1MjUzRDYxMTZDNEM2ODAwQ0FC
RjAwIC8qIEZpbGVTdHJlYW1DbGllbnQuaCAqLywKIAkJCQk4OTUyNTNEQTExNkM0RUY1MDBDQUJG
MDAgLyogRmlsZVN0cmVhbVByb3h5LmNwcCAqLywKIAkJCQk4OTUyNTNEQjExNkM0RUY1MDBDQUJG
MDAgLyogRmlsZVN0cmVhbVByb3h5LmggKi8sCiAJCQkJODk1MjUzNTAxMTY0MUIzNDAwQ0FCRjAw
IC8qIEZpbGVUaHJlYWQuY3BwICovLApAQCAtMTY1NjcsNiArMTY1NjgsNyBAQAogCQkJCUIyQzNE
OUVDMEQwMDZDMUQwMEVGNkYyNiAvKiB0ZXh0ICovLAogCQkJCUJDRkIyRjc0MDk3QTJFMUEwMEJB
NzAzRCAvKiBBcmVuYS5jcHAgKi8sCiAJCQkJQkNGQjJGNzUwOTdBMkUxQTAwQkE3MDNEIC8qIEFy
ZW5hLmggKi8sCisJCQkJMkVGMUJGRjYxMjFDQjBCRDAwQzI3NjI3IC8qIEFzeW5jRmlsZVN0cmVh
bS5oICovLAogCQkJCTUxRTFFQ0IxMEM5MUM1NTYwMERDMjU1QiAvKiBBdXRvZHJhaW5lZFBvb2wu
aCAqLywKIAkJCQk4OTg4RTEwQzExQTM1MDhCMDBEQjczMkUgLyogQmxvYkl0ZW0uY3BwICovLAog
CQkJCTg5ODhFMTBEMTFBMzUwOEIwMERCNzMyRSAvKiBCbG9iSXRlbS5oICovLApAQCAtMTY1OTQs
NiArMTY1OTYsNyBAQAogCQkJCTA2NkM3NzJBMEFCNjAzQjcwMDIzOENDNCAvKiBGaWxlQ2hvb3Nl
ci5oICovLAogCQkJCTJFRjFCRkU4MTIxQzlGNDIwMEMyNzYyNyAvKiBGaWxlU3RyZWFtLmNwcCAq
LywKIAkJCQkyRUYxQkZFOTEyMUM5RjQyMDBDMjc2MjcgLyogRmlsZVN0cmVhbS5oICovLAorCQkJ
CTJFRjFCRkY4MTIxQ0IwQ0UwMEMyNzYyNyAvKiBGaWxlU3RyZWFtQ2xpZW50LmggKi8sCiAJCQkJ
QzU3RkVERTAxMjEyRUU5QzAwOTdCRTY1IC8qIEZpbGVTeXN0ZW0uY3BwICovLAogCQkJCTUxNEIz
RjcyMEM3MjIwNDcwMDA1MzBERiAvKiBGaWxlU3lzdGVtLmggKi8sCiAJCQkJQkMwNzNCQTkwQzM5
OUIxRjAwMEY1OTc5IC8qIEZsb2F0Q29udmVyc2lvbi5oICovLApAQCAtMTg2NzMsNyArMTg2NzYs
NiBAQAogCQkJCTJFM0JDMEJEMTE3RDNBNEYwMEI5NDA5QSAvKiBGaWxlRXJyb3IuaCBpbiBIZWFk
ZXJzICovLAogCQkJCUJDREJCOEFDMEUwODhDQTUwMEM2MEZGNiAvKiBGaWxlTGlzdC5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJMkU5NEY0NTExMTkyMDk2QTAwQjdGNzVEIC8qIEZpbGVSZWFkZXIuaCBp
biBIZWFkZXJzICovLAotCQkJCTg5NTI1M0Q5MTE2QzRDNjgwMENBQkYwMCAvKiBGaWxlU3RyZWFt
Q2xpZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQk4OTUyNTNERDExNkM0RUY1MDBDQUJGMDAgLyog
RmlsZVN0cmVhbVByb3h5LmggaW4gSGVhZGVycyAqLywKIAkJCQk1MTRCM0Y3MzBDNzIyMDQ3MDAw
NTMwREYgLyogRmlsZVN5c3RlbS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJODk1MjUzNTMxMTY0MUIz
NDAwQ0FCRjAwIC8qIEZpbGVUaHJlYWQuaCBpbiBIZWFkZXJzICovLApAQCAtMjAzMjAsNiArMjAz
MjIsOCBAQAogCQkJCTJFREVGMUY3MTIxQjBFRkMwMDcyNkRCMiAvKiBCbG9iUmVnaXN0cnlJbXBs
LmggaW4gSGVhZGVycyAqLywKIAkJCQkyRURFRjFGODEyMUIwRUZDMDA3MjZEQjIgLyogQmxvYlN0
b3JhZ2VEYXRhLmggaW4gSGVhZGVycyAqLywKIAkJCQkyRUYxQkZFQjEyMUM5RjQyMDBDMjc2Mjcg
LyogRmlsZVN0cmVhbS5oIGluIEhlYWRlcnMgKi8sCisJCQkJMkVGMUJGRjcxMjFDQjBCRDAwQzI3
NjI3IC8qIEFzeW5jRmlsZVN0cmVhbS5oIGluIEhlYWRlcnMgKi8sCisJCQkJMkVGMUJGRjkxMjFD
QjBDRTAwQzI3NjI3IC8qIEZpbGVTdHJlYW1DbGllbnQuaCBpbiBIZWFkZXJzICovLAogCQkJKTsK
IAkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9zdHByb2Nlc3NpbmcgPSAwOwogCQl9OwpkaWZmIC0t
Z2l0IGEvV2ViQ29yZS9odG1sL0ZpbGVTdHJlYW1DbGllbnQuaCBiL1dlYkNvcmUvaHRtbC9GaWxl
U3RyZWFtQ2xpZW50LmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGIzZDFmZmYuLjAw
MDAwMDAKLS0tIGEvV2ViQ29yZS9odG1sL0ZpbGVTdHJlYW1DbGllbnQuaAorKysgL2Rldi9udWxs
CkBAIC0xLDYzICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTAgR29vZ2xlIEluYy4g
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJl
Ci0gKiBtZXQ6Ci0gKgotICogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqICAgICAqIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKLSAqIGNvcHly
aWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIKLSAqIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUKLSAqIGRpc3RyaWJ1dGlvbi4KLSAqICAgICAqIE5laXRoZXIgdGhl
IG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKLSAqIGNvbnRyaWJ1dG9y
cyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9t
Ci0gKiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNz
aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBI
T0xERVJTIEFORCBDT05UUklCVVRPUlMKLSAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCi0gKiBMSU1JVEVEIFRPLCBUSEUg
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKLSAq
IEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBU
SEUgQ09QWVJJR0hUCi0gKiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkg
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKLSAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1Ig
Q09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKLSAqIExJTUlURUQgVE8s
IFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNF
LAotICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQgT04gQU5ZCi0gKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAqIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuCi0gKi8KLQotI2lmbmRlZiBGaWxlU3RyZWFtQ2xpZW50X2gKLSNkZWZpbmUgRmls
ZVN0cmVhbUNsaWVudF9oCi0KLSNpZiBFTkFCTEUoQkxPQikgfHwgRU5BQkxFKEZJTEVfV1JJVEVS
KQotCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci0KLWNsYXNzIEZpbGVTdHJlYW1DbGllbnQgewotcHVi
bGljOgotICAgIC8vIEZvciByZWFkaW5nLgotICAgIHZpcnR1YWwgdm9pZCBkaWRSZWFkKGludCkg
eyB9Ci0KLSAgICAvLyBGb3Igd3JpdGluZy4KLSAgICB2aXJ0dWFsIHZvaWQgZGlkV3JpdGUoaW50
KSB7IH0KLSAgICB2aXJ0dWFsIHZvaWQgZGlkVHJ1bmNhdGUoYm9vbCkgeyB9Ci0KLSAgICAvLyBG
SVhNRTogVG8gYmUgcmVtb3ZlZCB3aGVuIHdlIHN3aXRjaCB0byB1c2luZyBCbG9iRGF0YS4KLSAg
ICB2aXJ0dWFsIHZvaWQgZGlkU3RhcnQoKSB7IH0KLQotICAgIC8vIEZvciBib3RoIHJlYWRpbmcg
YW5kIHdyaXRpbmcuCi0gICAgdmlydHVhbCB2b2lkIGRpZE9wZW4oYm9vbCkgeyB9Ci0gICAgdmly
dHVhbCB2b2lkIGRpZFN0b3AoKSB7IH0KLSAgICB2aXJ0dWFsIHZvaWQgZGlkR2V0U2l6ZShsb25n
IGxvbmcpIHsgfQotCi1wcm90ZWN0ZWQ6Ci0gICAgdmlydHVhbCB+RmlsZVN0cmVhbUNsaWVudCgp
IHsgfQotfTsKLQotfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQotCi0jZW5kaWYgLy8gRU5BQkxFKEJM
T0IpIHx8IEVOQUJMRShGSUxFX1dSSVRFUikKLQotI2VuZGlmIC8vIEZpbGVTdHJlYW1DbGllbnRf
aApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9odG1sL0ZpbGVTdHJlYW1Qcm94eS5jcHAgYi9XZWJDb3Jl
L2h0bWwvRmlsZVN0cmVhbVByb3h5LmNwcAppbmRleCBmMjg5Yzg0Li4zMDgxM2QzIDEwMDY0NAot
LS0gYS9XZWJDb3JlL2h0bWwvRmlsZVN0cmVhbVByb3h5LmNwcAorKysgYi9XZWJDb3JlL2h0bWwv
RmlsZVN0cmVhbVByb3h5LmNwcApAQCAtMzcsNyArMzcsNiBAQAogI2luY2x1ZGUgIkJsb2IuaCIK
ICNpbmNsdWRlICJDcm9zc1RocmVhZFRhc2suaCIKICNpbmNsdWRlICJGaWxlU3RyZWFtLmgiCi0j
aW5jbHVkZSAiRmlsZVN0cmVhbUNsaWVudC5oIgogI2luY2x1ZGUgIkZpbGVUaHJlYWQuaCIKICNp
bmNsdWRlICJGaWxlVGhyZWFkVGFzay5oIgogI2luY2x1ZGUgIlBsYXRmb3JtU3RyaW5nLmgiCkBA
IC00Niw4ICs0NSw4IEBACiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGlubGluZSBGaWxlU3RyZWFt
UHJveHk6OkZpbGVTdHJlYW1Qcm94eShTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0LCBG
aWxlU3RyZWFtQ2xpZW50KiBjbGllbnQpCi0gICAgOiBtX2NvbnRleHQoY29udGV4dCkKLSAgICAs
IG1fY2xpZW50KGNsaWVudCkKKyAgICA6IEFzeW5jRmlsZVN0cmVhbShjbGllbnQpCisgICAgLCBt
X2NvbnRleHQoY29udGV4dCkKICAgICAsIG1fc3RyZWFtKEZpbGVTdHJlYW06OmNyZWF0ZSgpKQog
ewogfQpAQCAtOTEsNyArOTAsNyBAQCB2b2lkIEZpbGVTdHJlYW1Qcm94eTo6c3RhcnRPbkZpbGVU
aHJlYWQoKQogdm9pZCBGaWxlU3RyZWFtUHJveHk6OnN0b3AoKQogewogICAgIC8vIENsZWFyIHRo
ZSBjbGllbnQgc28gdGhhdCB3ZSB3b24ndCBiZSBjYWxsaW5nIGNhbGxiYWNrcyBvbiB0aGUgY2xp
ZW50LgotICAgIG1fY2xpZW50ID0gMDsKKyAgICBzZXRDbGllbnQoMCk7CiAKICAgICBmaWxlVGhy
ZWFkKCktPnVuc2NoZWR1bGVUYXNrcyhtX3N0cmVhbS5nZXQoKSk7CiAgICAgZmlsZVRocmVhZCgp
LT5wb3N0VGFzayhjcmVhdGVGaWxlVGhyZWFkVGFzayh0aGlzLCAmRmlsZVN0cmVhbVByb3h5Ojpz
dG9wT25GaWxlVGhyZWFkKSk7CmRpZmYgLS1naXQgYS9XZWJDb3JlL2h0bWwvRmlsZVN0cmVhbVBy
b3h5LmggYi9XZWJDb3JlL2h0bWwvRmlsZVN0cmVhbVByb3h5LmgKaW5kZXggNmRjMWNjNy4uZWRj
NmNiYiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9odG1sL0ZpbGVTdHJlYW1Qcm94eS5oCisrKyBiL1dl
YkNvcmUvaHRtbC9GaWxlU3RyZWFtUHJveHkuaApAQCAtMzQsNiArMzQsNyBAQAogCiAjaWYgRU5B
QkxFKEJMT0IpIHx8IEVOQUJMRShGSUxFX1dSSVRFUikKIAorI2luY2x1ZGUgIkFzeW5jRmlsZVN0
cmVhbS5oIgogI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+CiAjaW5jbHVkZSA8d3RmL1Bhc3NSZWZQ
dHIuaD4KICNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgpAQCAtNDIsMzEgKzQzLDI4IEBACiBu
YW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIEZpbGVTdHJlYW07Ci1jbGFzcyBGaWxlU3RyZWFt
Q2xpZW50OwogY2xhc3MgRmlsZVRocmVhZDsKIGNsYXNzIEtVUkw7CiBjbGFzcyBTY3JpcHRFeGVj
dXRpb25Db250ZXh0OwogCiAvLyBBIHByb3h5IG1vZHVsZSB0aGF0IGFzeW5jaHJvbm91c2x5IGNh
bGxzIGNvcnJlc3BvbmRpbmcgRmlsZVN0cmVhbSBtZXRob2RzIG9uIHRoZSBmaWxlIHRocmVhZC4g
IE5vdGU6IHlvdSBtdXN0IGNhbGwgc3RvcCgpIGZpcnN0IGFuZCB0aGVuIHJlbGVhc2UgdGhlIHJl
ZmVyZW5jZSB0byBkZXN0cnVjdCB0aGUgRmlsZVN0cmVhbVByb3h5IGluc3RhbmNlLgotY2xhc3Mg
RmlsZVN0cmVhbVByb3h5IDogcHVibGljIFJlZkNvdW50ZWQ8RmlsZVN0cmVhbVByb3h5PiB7Citj
bGFzcyBGaWxlU3RyZWFtUHJveHkgOiBwdWJsaWMgUmVmQ291bnRlZDxGaWxlU3RyZWFtUHJveHk+
LCBwdWJsaWMgQXN5bmNGaWxlU3RyZWFtIHsKIHB1YmxpYzoKICAgICBzdGF0aWMgUGFzc1JlZlB0
cjxGaWxlU3RyZWFtUHJveHk+IGNyZWF0ZShTY3JpcHRFeGVjdXRpb25Db250ZXh0KiwgRmlsZVN0
cmVhbUNsaWVudCopOwogICAgIHZpcnR1YWwgfkZpbGVTdHJlYW1Qcm94eSgpOwogCi0gICAgdm9p
ZCBnZXRTaXplKGNvbnN0IFN0cmluZyYgcGF0aCwgZG91YmxlIGV4cGVjdGVkTW9kaWZpY2F0aW9u
VGltZSk7Ci0gICAgdm9pZCBvcGVuRm9yUmVhZChjb25zdCBTdHJpbmcmIHBhdGgsIGxvbmcgbG9u
ZyBvZmZzZXQsIGxvbmcgbG9uZyBsZW5ndGgpOwotICAgIHZvaWQgb3BlbkZvcldyaXRlKGNvbnN0
IFN0cmluZyYgcGF0aCk7Ci0gICAgdm9pZCBjbG9zZSgpOwotICAgIHZvaWQgcmVhZChjaGFyKiBi
dWZmZXIsIGludCBsZW5ndGgpOwotICAgIHZvaWQgd3JpdGUoY29uc3QgS1VSTCYgYmxvYlVSTCwg
bG9uZyBsb25nIHBvc2l0aW9uLCBpbnQgbGVuZ3RoKTsKLSAgICB2b2lkIHRydW5jYXRlKGxvbmcg
bG9uZyBwb3NpdGlvbik7CisgICAgdmlydHVhbCB2b2lkIGdldFNpemUoY29uc3QgU3RyaW5nJiBw
YXRoLCBkb3VibGUgZXhwZWN0ZWRNb2RpZmljYXRpb25UaW1lKTsKKyAgICB2aXJ0dWFsIHZvaWQg
b3BlbkZvclJlYWQoY29uc3QgU3RyaW5nJiBwYXRoLCBsb25nIGxvbmcgb2Zmc2V0LCBsb25nIGxv
bmcgbGVuZ3RoKTsKKyAgICB2aXJ0dWFsIHZvaWQgb3BlbkZvcldyaXRlKGNvbnN0IFN0cmluZyYg
cGF0aCk7CisgICAgdmlydHVhbCB2b2lkIGNsb3NlKCk7CisgICAgdmlydHVhbCB2b2lkIHJlYWQo
Y2hhciogYnVmZmVyLCBpbnQgbGVuZ3RoKTsKKyAgICB2aXJ0dWFsIHZvaWQgd3JpdGUoY29uc3Qg
S1VSTCYgYmxvYlVSTCwgbG9uZyBsb25nIHBvc2l0aW9uLCBpbnQgbGVuZ3RoKTsKKyAgICB2aXJ0
dWFsIHZvaWQgdHJ1bmNhdGUobG9uZyBsb25nIHBvc2l0aW9uKTsKIAogICAgIC8vIFN0b3BzIHRo
ZSBwcm94eSBhbmQgc2NlZHVsZXMgaXQgdG8gYmUgZGVzdHJ1Y3RlZC4gIEFsbCB0aGUgcGVuZGlu
ZyB0YXNrcyB3aWxsIGJlIGFib3J0ZWQgYW5kIHRoZSBmaWxlIHN0cmVhbSB3aWxsIGJlIGNsb3Nl
ZC4KICAgICAvLyBOb3RlOiB0aGUgY2FsbGVyIHNob3VsZCBkZXJlZiB0aGUgaW5zdGFuY2UgaW1t
ZWRpYXRlbHkgYWZ0ZXIgY2FsbGluZyBzdG9wKCkuCiAgICAgdm9pZCBzdG9wKCk7CiAKLSAgICBG
aWxlU3RyZWFtQ2xpZW50KiBjbGllbnQoKSBjb25zdCB7IHJldHVybiBtX2NsaWVudDsgfQotCiBw
cml2YXRlOgogICAgIEZpbGVTdHJlYW1Qcm94eShTY3JpcHRFeGVjdXRpb25Db250ZXh0KiwgRmls
ZVN0cmVhbUNsaWVudCopOwogCkBAIC04NCw3ICs4Miw2IEBAIHByaXZhdGU6CiAgICAgdm9pZCB0
cnVuY2F0ZU9uRmlsZVRocmVhZChsb25nIGxvbmcgcG9zaXRpb24pOwogCiAgICAgUmVmUHRyPFNj
cmlwdEV4ZWN1dGlvbkNvbnRleHQ+IG1fY29udGV4dDsKLSAgICBGaWxlU3RyZWFtQ2xpZW50KiBt
X2NsaWVudDsKICAgICBSZWZQdHI8RmlsZVN0cmVhbT4gbV9zdHJlYW07CiB9OwogCmRpZmYgLS1n
aXQgYS9XZWJDb3JlL3BsYXRmb3JtL0FzeW5jRmlsZVN0cmVhbS5oIGIvV2ViQ29yZS9wbGF0Zm9y
bS9Bc3luY0ZpbGVTdHJlYW0uaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5k
ZjFlYjIzCi0tLSAvZGV2L251bGwKKysrIGIvV2ViQ29yZS9wbGF0Zm9ybS9Bc3luY0ZpbGVTdHJl
YW0uaApAQCAtMCwwICsxLDczIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEwIEdvb2dsZSBJ
bmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDEwIEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBh
cmUKKyAqIG1ldDoKKyAqCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogICAgICogUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQorICogY29w
eXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lcgorICogaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZQorICogZGlzdHJpYnV0aW9uLgorICogICAgICogTmVpdGhlciB0
aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cworICogY29udHJpYnV0
b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZy
b20KKyAqIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1p
c3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hU
IEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUworICogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1Ig
SU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFRI
RSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgor
ICogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxM
IFRIRSBDT1BZUklHSFQKKyAqIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFO
WSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAorICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBP
UiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBU
TywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBV
U0UsCisgKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORCBPTiBBTlkKKyAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4g
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICog
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIEFzeW5jRmlsZVN0cmVhbV9oCisjZGVmaW5lIEFz
eW5jRmlsZVN0cmVhbV9oCisKKyNpZiBFTkFCTEUoQkxPQikgfHwgRU5BQkxFKEZJTEVfV1JJVEVS
KQorCisjaW5jbHVkZSAiRmlsZVN0cmVhbUNsaWVudC5oIgorI2luY2x1ZGUgPHd0Zi9Gb3J3YXJk
Lmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgS1VSTDsKKworY2xhc3MgQXN5bmNG
aWxlU3RyZWFtIHsKK3B1YmxpYzoKKyAgICB2aXJ0dWFsIHZvaWQgZ2V0U2l6ZShjb25zdCBTdHJp
bmcmIHBhdGgsIGRvdWJsZSBleHBlY3RlZE1vZGlmaWNhdGlvblRpbWUpID0gMDsKKyAgICB2aXJ0
dWFsIHZvaWQgb3BlbkZvclJlYWQoY29uc3QgU3RyaW5nJiBwYXRoLCBsb25nIGxvbmcgb2Zmc2V0
LCBsb25nIGxvbmcgbGVuZ3RoKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIG9wZW5Gb3JXcml0ZShj
b25zdCBTdHJpbmcmIHBhdGgpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgY2xvc2UoKSA9IDA7Cisg
ICAgdmlydHVhbCB2b2lkIHJlYWQoY2hhciogYnVmZmVyLCBpbnQgbGVuZ3RoKSA9IDA7CisgICAg
dmlydHVhbCB2b2lkIHdyaXRlKGNvbnN0IEtVUkwmIGJsb2JVUkwsIGxvbmcgbG9uZyBwb3NpdGlv
biwgaW50IGxlbmd0aCkgPSAwOworICAgIHZpcnR1YWwgdm9pZCB0cnVuY2F0ZShsb25nIGxvbmcg
cG9zaXRpb24pID0gMDsKKworICAgIEZpbGVTdHJlYW1DbGllbnQqIGNsaWVudCgpIGNvbnN0IHsg
cmV0dXJuIG1fY2xpZW50OyB9CisgICAgdm9pZCBzZXRDbGllbnQoRmlsZVN0cmVhbUNsaWVudCog
Y2xpZW50KSB7IG1fY2xpZW50ID0gY2xpZW50OyB9CisKK3Byb3RlY3RlZDoKKyAgICBBc3luY0Zp
bGVTdHJlYW0oRmlsZVN0cmVhbUNsaWVudCogY2xpZW50KQorICAgICAgICA6IG1fY2xpZW50KGNs
aWVudCkKKyAgICB7CisgICAgfQorCisgICAgdmlydHVhbCB+QXN5bmNGaWxlU3RyZWFtKCkgeyB9
CisKK3ByaXZhdGU6CisgICAgRmlsZVN0cmVhbUNsaWVudCogbV9jbGllbnQ7Cit9OworCit9IC8v
IG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBFTkFCTEUoQkxPQikgfHwgRU5BQkxFKEZJ
TEVfV1JJVEVSKQorCisjZW5kaWYgLy8gQXN5bmNGaWxlU3RyZWFtX2gKZGlmZiAtLWdpdCBhL1dl
YkNvcmUvcGxhdGZvcm0vRmlsZVN0cmVhbUNsaWVudC5oIGIvV2ViQ29yZS9wbGF0Zm9ybS9GaWxl
U3RyZWFtQ2xpZW50LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYjNkMWZm
ZgotLS0gL2Rldi9udWxsCisrKyBiL1dlYkNvcmUvcGxhdGZvcm0vRmlsZVN0cmVhbUNsaWVudC5o
CkBAIC0wLDAgKzEsNjMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgR29vZ2xlIEluYy4g
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJl
CisgKiBtZXQ6CisgKgorICogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqICAgICAqIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKKyAqIGNvcHly
aWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIKKyAqIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUKKyAqIGRpc3RyaWJ1dGlvbi4KKyAqICAgICAqIE5laXRoZXIgdGhl
IG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKKyAqIGNvbnRyaWJ1dG9y
cyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9t
CisgKiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNz
aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBI
T0xERVJTIEFORCBDT05UUklCVVRPUlMKKyAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBUSEUg
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKKyAq
IEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBU
SEUgQ09QWVJJR0hUCisgKiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkg
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKyAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1Ig
Q09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8s
IFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNF
LAorICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQgT04gQU5ZCisgKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBGaWxlU3RyZWFtQ2xpZW50X2gKKyNkZWZpbmUgRmls
ZVN0cmVhbUNsaWVudF9oCisKKyNpZiBFTkFCTEUoQkxPQikgfHwgRU5BQkxFKEZJTEVfV1JJVEVS
KQorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIEZpbGVTdHJlYW1DbGllbnQgeworcHVi
bGljOgorICAgIC8vIEZvciByZWFkaW5nLgorICAgIHZpcnR1YWwgdm9pZCBkaWRSZWFkKGludCkg
eyB9CisKKyAgICAvLyBGb3Igd3JpdGluZy4KKyAgICB2aXJ0dWFsIHZvaWQgZGlkV3JpdGUoaW50
KSB7IH0KKyAgICB2aXJ0dWFsIHZvaWQgZGlkVHJ1bmNhdGUoYm9vbCkgeyB9CisKKyAgICAvLyBG
SVhNRTogVG8gYmUgcmVtb3ZlZCB3aGVuIHdlIHN3aXRjaCB0byB1c2luZyBCbG9iRGF0YS4KKyAg
ICB2aXJ0dWFsIHZvaWQgZGlkU3RhcnQoKSB7IH0KKworICAgIC8vIEZvciBib3RoIHJlYWRpbmcg
YW5kIHdyaXRpbmcuCisgICAgdmlydHVhbCB2b2lkIGRpZE9wZW4oYm9vbCkgeyB9CisgICAgdmly
dHVhbCB2b2lkIGRpZFN0b3AoKSB7IH0KKyAgICB2aXJ0dWFsIHZvaWQgZGlkR2V0U2l6ZShsb25n
IGxvbmcpIHsgfQorCitwcm90ZWN0ZWQ6CisgICAgdmlydHVhbCB+RmlsZVN0cmVhbUNsaWVudCgp
IHsgfQorfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gRU5BQkxFKEJM
T0IpIHx8IEVOQUJMRShGSUxFX1dSSVRFUikKKworI2VuZGlmIC8vIEZpbGVTdHJlYW1DbGllbnRf
aAo=
</data>
<flag name="commit-queue"
          id="53435"
          type_id="3"
          status="-"
          setter="jianli"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>64798</attachid>
            <date>2010-08-18 18:59:09 -0700</date>
            <delta_ts>2010-08-19 10:49:36 -0700</delta_ts>
            <desc>Proposed Patch</desc>
            <filename>44224_3</filename>
            <type>text/plain</type>
            <size>23741</size>
            <attacher name="Jian Li">jianli</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
ODE5ZjU2MS4uNzJkM2FiZSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvV2Vi
Q29yZS9DaGFuZ2VMb2cKQEAgLTEsNSArMSwyNCBAQAogMjAxMC0wOC0xOCAgSmlhbiBMaSAgPGpp
YW5saUBjaHJvbWl1bS5vcmc+CiAKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgTW92ZSBGaWxlU3RyZWFtQ2xpZW50IHRvIHBsYXRmb3JtIGFuZCBhZGQgQXN5
bmNGaWxlU3RyZWFtIGludGVyZmFjZS4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTQ0MjI0CisKKyAgICAgICAgKiBHTlVtYWtlZmlsZS5hbToKKyAgICAg
ICAgKiBXZWJDb3JlLmd5cGk6CisgICAgICAgICogV2ViQ29yZS5wcm86CisgICAgICAgICogV2Vi
Q29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2o6CisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIGh0bWwvRmlsZVN0cmVhbVByb3h5LmNwcDogQWNj
b3VudCBmb3IgdGhlIGNoYW5nZS4KKyAgICAgICAgKFdlYkNvcmU6OkZpbGVTdHJlYW1Qcm94eTo6
RmlsZVN0cmVhbVByb3h5KToKKyAgICAgICAgKFdlYkNvcmU6OkZpbGVTdHJlYW1Qcm94eTo6c3Rv
cCk6CisgICAgICAgICogaHRtbC9GaWxlU3RyZWFtUHJveHkuaDogTWFrZSBpdCBkZXJpdmUgZnJv
bSBBc3luY0ZpbGVTdHJlYW0uaC4KKyAgICAgICAgKiBwbGF0Zm9ybS9Bc3luY0ZpbGVTdHJlYW0u
aDogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0vRmlsZVN0cmVhbUNsaWVudC5oOiBSZW5hbWVk
IGZyb20gV2ViQ29yZS9odG1sL0ZpbGVTdHJlYW1DbGllbnQuaC4KKworMjAxMC0wOC0xOCAgSmlh
biBMaSAgPGppYW5saUBjaHJvbWl1bS5vcmc+CisKICAgICAgICAgUmV2aWV3ZWQgYnkgRGF2aWQg
TGV2aW4uCiAKICAgICAgICAgTW92ZSBGaWxlU3RyZWFtIHRvIHBsYXRmb3JtLgpkaWZmIC0tZ2l0
IGEvV2ViQ29yZS9HTlVtYWtlZmlsZS5hbSBiL1dlYkNvcmUvR05VbWFrZWZpbGUuYW0KaW5kZXgg
YzZkNTgzOC4uMzU1NDhjMiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9HTlVtYWtlZmlsZS5hbQorKysg
Yi9XZWJDb3JlL0dOVW1ha2VmaWxlLmFtCkBAIC0xMzUzLDcgKzEzNTMsNiBAQCB3ZWJjb3JlX3Nv
dXJjZXMgKz0gXAogCVdlYkNvcmUvaHRtbC9GaWxlTGlzdC5oIFwKIAlXZWJDb3JlL2h0bWwvRmls
ZVJlYWRlci5jcHAgXAogCVdlYkNvcmUvaHRtbC9GaWxlUmVhZGVyLmggXAotCVdlYkNvcmUvaHRt
bC9GaWxlU3RyZWFtQ2xpZW50LmggXAogCVdlYkNvcmUvaHRtbC9GaWxlU3RyZWFtUHJveHkuY3Bw
IFwKIAlXZWJDb3JlL2h0bWwvRmlsZVN0cmVhbVByb3h5LmggXAogCVdlYkNvcmUvaHRtbC9GaWxl
VGhyZWFkLmNwcCBcCkBAIC0xODc1LDYgKzE4NzQsNyBAQCB3ZWJjb3JlX3NvdXJjZXMgKz0gXAog
CVdlYkNvcmUvcGFnZS9hbmltYXRpb24vS2V5ZnJhbWVBbmltYXRpb24uaCBcCiAJV2ViQ29yZS9w
bGF0Zm9ybS9BcmVuYS5jcHAgXAogCVdlYkNvcmUvcGxhdGZvcm0vQXJlbmEuaCBcCisJV2ViQ29y
ZS9wbGF0Zm9ybS9Bc3luY0ZpbGVTdHJlYW0uaCBcCiAJV2ViQ29yZS9wbGF0Zm9ybS9BdXRvZHJh
aW5lZFBvb2wuaCBcCiAJV2ViQ29yZS9wbGF0Zm9ybS9CbG9iSXRlbS5jcHAgXAogCVdlYkNvcmUv
cGxhdGZvcm0vQmxvYkl0ZW0uaCBcCkBAIC0xOTAxLDYgKzE5MDEsNyBAQCB3ZWJjb3JlX3NvdXJj
ZXMgKz0gXAogCVdlYkNvcmUvcGxhdGZvcm0vRmlsZUNob29zZXIuaCBcCiAJV2ViQ29yZS9wbGF0
Zm9ybS9GaWxlU3RyZWFtLmNwcCBcCiAJV2ViQ29yZS9wbGF0Zm9ybS9GaWxlU3RyZWFtLmggXAor
CVdlYkNvcmUvcGxhdGZvcm0vRmlsZVN0cmVhbUNsaWVudC5oIFwKIAlXZWJDb3JlL3BsYXRmb3Jt
L0ZpbGVTeXN0ZW0uY3BwIFwKIAlXZWJDb3JlL3BsYXRmb3JtL0ZpbGVTeXN0ZW0uaCBcCiAJV2Vi
Q29yZS9wbGF0Zm9ybS9GbG9hdENvbnZlcnNpb24uaCBcCmRpZmYgLS1naXQgYS9XZWJDb3JlL1dl
YkNvcmUuZ3lwaSBiL1dlYkNvcmUvV2ViQ29yZS5neXBpCmluZGV4IDMyYjJmZTEuLmZhMWEwYmUg
MTAwNjQ0Ci0tLSBhL1dlYkNvcmUvV2ViQ29yZS5neXBpCisrKyBiL1dlYkNvcmUvV2ViQ29yZS5n
eXBpCkBAIC0xNTE4LDcgKzE1MTgsNiBAQAogICAgICAgICAgICAgJ2h0bWwvRmlsZUxpc3QuaCcs
CiAgICAgICAgICAgICAnaHRtbC9GaWxlUmVhZGVyLmNwcCcsCiAgICAgICAgICAgICAnaHRtbC9G
aWxlUmVhZGVyLmgnLAotICAgICAgICAgICAgJ2h0bWwvRmlsZVN0cmVhbUNsaWVudC5oJywKICAg
ICAgICAgICAgICdodG1sL0ZpbGVTdHJlYW1Qcm94eS5jcHAnLAogICAgICAgICAgICAgJ2h0bWwv
RmlsZVN0cmVhbVByb3h5LmgnLAogICAgICAgICAgICAgJ2h0bWwvRmlsZVRocmVhZC5jcHAnLApA
QCAtMzAzNSw2ICszMDM0LDcgQEAKICAgICAgICAgICAgICdwbGF0Zm9ybS93eC9XaWRnZXRXeC5j
cHAnLAogICAgICAgICAgICAgJ3BsYXRmb3JtL0FyZW5hLmNwcCcsCiAgICAgICAgICAgICAncGxh
dGZvcm0vQXJlbmEuaCcsCisgICAgICAgICAgICAncGxhdGZvcm0vQXN5bmNGaWxlU3RyZWFtLmgn
LAogICAgICAgICAgICAgJ3BsYXRmb3JtL0F1dG9kcmFpbmVkUG9vbC5oJywKICAgICAgICAgICAg
ICdwbGF0Zm9ybS9CbG9iSXRlbS5jcHAnLAogICAgICAgICAgICAgJ3BsYXRmb3JtL0Jsb2JJdGVt
LmgnLApAQCAtMzA2MCw2ICszMDYwLDcgQEAKICAgICAgICAgICAgICdwbGF0Zm9ybS9GaWxlQ2hv
b3Nlci5oJywKICAgICAgICAgICAgICdwbGF0Zm9ybS9GaWxlU3RyZWFtLmNwcCcsCiAgICAgICAg
ICAgICAncGxhdGZvcm0vRmlsZVN0cmVhbS5oJywKKyAgICAgICAgICAgICdwbGF0Zm9ybS9GaWxl
U3RyZWFtQ2xpZW50LmgnLAogICAgICAgICAgICAgJ3BsYXRmb3JtL0ZpbGVTeXN0ZW0uY3BwJywK
ICAgICAgICAgICAgICdwbGF0Zm9ybS9GaWxlU3lzdGVtLmgnLAogICAgICAgICAgICAgJ3BsYXRm
b3JtL0Zsb2F0Q29udmVyc2lvbi5oJywKZGlmZiAtLWdpdCBhL1dlYkNvcmUvV2ViQ29yZS5wcm8g
Yi9XZWJDb3JlL1dlYkNvcmUucHJvCmluZGV4IDZjNmUyODkuLjY4MTA2ZTcgMTAwNjQ0Ci0tLSBh
L1dlYkNvcmUvV2ViQ29yZS5wcm8KKysrIGIvV2ViQ29yZS9XZWJDb3JlLnBybwpAQCAtMTQxMCw3
ICsxNDEwLDYgQEAgSEVBREVSUyArPSBcCiAgICAgaHRtbC9GaWxlRXJyb3IuaCBcCiAgICAgaHRt
bC9GaWxlTGlzdC5oIFwKICAgICBodG1sL0ZpbGVSZWFkZXIuaCBcCi0gICAgaHRtbC9GaWxlU3Ry
ZWFtQ2xpZW50LmggXAogICAgIGh0bWwvRmlsZVN0cmVhbVByb3h5LmggXAogICAgIGh0bWwvRmls
ZVRocmVhZC5oIFwKICAgICBodG1sL0ZpbGVUaHJlYWRUYXNrLmggXApAQCAtMTY0NCw2ICsxNjQz
LDcgQEAgSEVBREVSUyArPSBcCiAgICAgcGxhdGZvcm0vYW5pbWF0aW9uL0FuaW1hdGlvbi5oIFwK
ICAgICBwbGF0Zm9ybS9hbmltYXRpb24vQW5pbWF0aW9uTGlzdC5oIFwKICAgICBwbGF0Zm9ybS9B
cmVuYS5oIFwKKyAgICBwbGF0Zm9ybS9Bc3luY0ZpbGVTdHJlYW0uaCBcCiAgICAgcGxhdGZvcm0v
QmxvYkl0ZW0uaCBcCiAgICAgcGxhdGZvcm0vQ29udGVudFR5cGUuaCBcCiAgICAgcGxhdGZvcm0v
Q29udGV4dE1lbnUuaCBcCkBAIC0xNjUzLDYgKzE2NTMsNyBAQCBIRUFERVJTICs9IFwKICAgICBw
bGF0Zm9ybS9EcmFnSW1hZ2UuaCBcCiAgICAgcGxhdGZvcm0vRmlsZUNob29zZXIuaCBcCiAgICAg
cGxhdGZvcm0vRmlsZVN0cmVhbS5oIFwKKyAgICBwbGF0Zm9ybS9GaWxlU3RyZWFtQ2xpZW50Lmgg
XAogICAgIHBsYXRmb3JtL0ZpbGVTeXN0ZW0uaCBcCiAgICAgcGxhdGZvcm0vR2VvbG9jYXRpb25T
ZXJ2aWNlLmggXAogICAgIHBsYXRmb3JtL2ltYWdlLWRlY29kZXJzL0ltYWdlRGVjb2Rlci5oIFwK
ZGlmZiAtLWdpdCBhL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2ogYi9XZWJD
b3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCmluZGV4IGJlYmMzZjguLmFmZGFmZjIg
MTAwNjQ0Ci0tLSBhL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oKKysrIGIv
V2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagpAQCAtMjM5MjEsNiArMjM5MjEs
MTAgQEAKIAkJCQk+DQogCQkJPC9GaWxlPg0KIAkJCTxGaWxlDQorCQkJCVJlbGF0aXZlUGF0aD0i
Li5ccGxhdGZvcm1cQXN5bmNGaWxlU3RyZWFtLmgiDQorCQkJCT4NCisJCQk8L0ZpbGU+DQorCQkJ
PEZpbGUNCiAJCQkJUmVsYXRpdmVQYXRoPSIuLlxwbGF0Zm9ybVxBdXRvZHJhaW5lZFBvb2wuaCIN
CiAJCQkJPg0KIAkJCTwvRmlsZT4NCkBAIC0yNDAyMSw2ICsyNDAyNSwxMCBAQAogCQkJCT4NCiAJ
CQk8L0ZpbGU+DQogCQkJPEZpbGUNCisJCQkJUmVsYXRpdmVQYXRoPSIuLlxwbGF0Zm9ybVxGaWxl
U3RyZWFtQ2xpZW50LmgiDQorCQkJCT4NCisJCQk8L0ZpbGU+DQorCQkJPEZpbGUNCiAJCQkJUmVs
YXRpdmVQYXRoPSIuLlxwbGF0Zm9ybVxGaWxlU3lzdGVtLmNwcCINCiAJCQkJPg0KIAkJCTwvRmls
ZT4NCkBAIC0zNzEyNSwxMCArMzcxMzMsNiBAQAogCQkJCT4NCiAJCQk8L0ZpbGU+DQogCQkJPEZp
bGUNCi0JCQkJUmVsYXRpdmVQYXRoPSIuLlxodG1sXEZpbGVTdHJlYW1DbGllbnQuaCINCi0JCQkJ
Pg0KLQkJCTwvRmlsZT4NCi0JCQk8RmlsZQ0KIAkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGh0bWxcRmls
ZVN0cmVhbVByb3h5LmNwcCINCiAJCQkJPg0KIAkJCTwvRmlsZT4NCmRpZmYgLS1naXQgYS9XZWJD
b3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1dlYkNvcmUvV2ViQ29yZS54
Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDhjZTJhMDYuLjAzMzdiZjUgMTAwNjQ0Ci0t
LSBhL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1dlYkNv
cmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC03MjIsNiArNzIyLDggQEAK
IAkJMkVFRDU3RkUxMjE0QTlDMjAwNzY1NkJCIC8qIFRocmVhZGFibGVCbG9iUmVnaXN0cnkuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDJFRUQ1N0ZDMTIx
NEE5QzIwMDc2NTZCQiAvKiBUaHJlYWRhYmxlQmxvYlJlZ2lzdHJ5LmggKi87IH07CiAJCTJFRjFC
RkVBMTIxQzlGNDIwMEMyNzYyNyAvKiBGaWxlU3RyZWFtLmNwcCBpbiBTb3VyY2VzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDJFRjFCRkU4MTIxQzlGNDIwMEMyNzYyNyAvKiBG
aWxlU3RyZWFtLmNwcCAqLzsgfTsKIAkJMkVGMUJGRUIxMjFDOUY0MjAwQzI3NjI3IC8qIEZpbGVT
dHJlYW0uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDJF
RjFCRkU5MTIxQzlGNDIwMEMyNzYyNyAvKiBGaWxlU3RyZWFtLmggKi87IH07CisJCTJFRjFCRkY3
MTIxQ0IwQkQwMEMyNzYyNyAvKiBBc3luY0ZpbGVTdHJlYW0uaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDJFRjFCRkY2MTIxQ0IwQkQwMEMyNzYyNyAvKiBB
c3luY0ZpbGVTdHJlYW0uaCAqLzsgfTsKKwkJMkVGMUJGRjkxMjFDQjBDRTAwQzI3NjI3IC8qIEZp
bGVTdHJlYW1DbGllbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDJFRjFCRkY4MTIxQ0IwQ0UwMEMyNzYyNyAvKiBGaWxlU3RyZWFtQ2xpZW50LmggKi87
IH07CiAJCTMxMjg4RTcyMEUzMDA1RDYwMDM2MTlBRSAvKiBXZWJLaXRDU1NLZXlmcmFtZVJ1bGUu
Y3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMzEyODhF
NkUwRTMwMDVENjAwMzYxOUFFIC8qIFdlYktpdENTU0tleWZyYW1lUnVsZS5jcHAgKi87IH07CiAJ
CTMxMjg4RTczMEUzMDA1RDYwMDM2MTlBRSAvKiBXZWJLaXRDU1NLZXlmcmFtZVJ1bGUuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDMxMjg4RTZGMEUzMDA1
RDYwMDM2MTlBRSAvKiBXZWJLaXRDU1NLZXlmcmFtZVJ1bGUuaCAqLzsgfTsKIAkJMzEyODhFNzQw
RTMwMDVENjAwMzYxOUFFIC8qIFdlYktpdENTU0tleWZyYW1lc1J1bGUuY3BwIGluIFNvdXJjZXMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMzEyODhFNzAwRTMwMDVENjAwMzYx
OUFFIC8qIFdlYktpdENTU0tleWZyYW1lc1J1bGUuY3BwICovOyB9OwpAQCAtMjM3OCw3ICsyMzgw
LDYgQEAKIAkJODYyNDNEMDExMUJDMzFGNzAwQ0MwMDZBIC8qIEpTQXJyYXlCdWZmZXJWaWV3SGVs
cGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4NjI0
M0QwMDExQkMzMUY3MDBDQzAwNkEgLyogSlNBcnJheUJ1ZmZlclZpZXdIZWxwZXIuaCAqLzsgfTsK
IAkJODk1MjUzNTIxMTY0MUIzNDAwQ0FCRjAwIC8qIEZpbGVUaHJlYWQuY3BwIGluIFNvdXJjZXMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODk1MjUzNTAxMTY0MUIzNDAwQ0FC
RjAwIC8qIEZpbGVUaHJlYWQuY3BwICovOyB9OwogCQk4OTUyNTM1MzExNjQxQjM0MDBDQUJGMDAg
LyogRmlsZVRocmVhZC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gODk1MjUzNTExMTY0MUIzNDAwQ0FCRjAwIC8qIEZpbGVUaHJlYWQuaCAqLzsgfTsKLQkJ
ODk1MjUzRDkxMTZDNEM2ODAwQ0FCRjAwIC8qIEZpbGVTdHJlYW1DbGllbnQuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg5NTI1M0Q2MTE2QzRDNjgwMENB
QkYwMCAvKiBGaWxlU3RyZWFtQ2xpZW50LmggKi87IH07CiAJCTg5NTI1M0RDMTE2QzRFRjUwMENB
QkYwMCAvKiBGaWxlU3RyZWFtUHJveHkuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gODk1MjUzREExMTZDNEVGNTAwQ0FCRjAwIC8qIEZpbGVTdHJlYW1Q
cm94eS5jcHAgKi87IH07CiAJCTg5NTI1M0REMTE2QzRFRjUwMENBQkYwMCAvKiBGaWxlU3RyZWFt
UHJveHkuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg5
NTI1M0RCMTE2QzRFRjUwMENBQkYwMCAvKiBGaWxlU3RyZWFtUHJveHkuaCAqLzsgfTsKIAkJODk1
MjUzREYxMTZDNEYwNjAwQ0FCRjAwIC8qIEZpbGVUaHJlYWRUYXNrLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4OTUyNTNERTExNkM0RjA2MDBDQUJGMDAg
LyogRmlsZVRocmVhZFRhc2suaCAqLzsgfTsKQEAgLTY1MzUsNiArNjUzNiw4IEBACiAJCTJFRUQ1
N0ZDMTIxNEE5QzIwMDc2NTZCQiAvKiBUaHJlYWRhYmxlQmxvYlJlZ2lzdHJ5LmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFRocmVhZGFibGVCbG9iUmVnaXN0cnkuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMkVGMUJGRTgxMjFDOUY0MjAwQzI3NjI3IC8qIEZpbGVT
dHJlYW0uY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gRmlsZVN0cmVh
bS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTJFRjFCRkU5MTIxQzlGNDIwMEMy
NzYyNyAvKiBGaWxlU3RyZWFtLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEZp
bGVTdHJlYW0uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMkVGMUJGRjYxMjFDQjBC
RDAwQzI3NjI3IC8qIEFzeW5jRmlsZVN0cmVhbS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBBc3luY0ZpbGVTdHJlYW0uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJ
MkVGMUJGRjgxMjFDQjBDRTAwQzI3NjI3IC8qIEZpbGVTdHJlYW1DbGllbnQuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRmlsZVN0cmVhbUNsaWVudC5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQkzMTI4OEU2RTBFMzAwNUQ2MDAzNjE5QUUgLyogV2ViS2l0Q1NTS2V5
ZnJhbWVSdWxlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdlYktp
dENTU0tleWZyYW1lUnVsZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTMxMjg4
RTZGMEUzMDA1RDYwMDM2MTlBRSAvKiBXZWJLaXRDU1NLZXlmcmFtZVJ1bGUuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViS2l0Q1NTS2V5ZnJhbWVSdWxlLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTMxMjg4RTcwMEUzMDA1RDYwMDM2MTlBRSAvKiBXZWJLaXRD
U1NLZXlmcmFtZXNSdWxlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9
IFdlYktpdENTU0tleWZyYW1lc1J1bGUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpA
QCAtODIyNiw3ICs4MjI5LDYgQEAKIAkJODYyNDNEMDAxMUJDMzFGNzAwQ0MwMDZBIC8qIEpTQXJy
YXlCdWZmZXJWaWV3SGVscGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpT
QXJyYXlCdWZmZXJWaWV3SGVscGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTg5
NTI1MzUwMTE2NDFCMzQwMENBQkYwMCAvKiBGaWxlVGhyZWFkLmNwcCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEZpbGVUaHJlYWQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQk4OTUyNTM1MTExNjQxQjM0MDBDQUJGMDAgLyogRmlsZVRocmVhZC5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBGaWxlVGhyZWFkLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07Ci0JCTg5NTI1M0Q2MTE2QzRDNjgwMENBQkYwMCAvKiBGaWxlU3RyZWFtQ2xp
ZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEZpbGVTdHJlYW1DbGllbnQu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJODk1MjUzREExMTZDNEVGNTAwQ0FCRjAw
IC8qIEZpbGVTdHJlYW1Qcm94eS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBh
dGggPSBGaWxlU3RyZWFtUHJveHkuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk4
OTUyNTNEQjExNkM0RUY1MDBDQUJGMDAgLyogRmlsZVN0cmVhbVByb3h5LmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEZpbGVTdHJlYW1Qcm94eS5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQk4OTUyNTNERTExNkM0RjA2MDBDQUJGMDAgLyogRmlsZVRocmVhZFRhc2su
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRmlsZVRocmVhZFRhc2suaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTE0MDA5LDcgKzE0MDExLDYgQEAKIAkJCQkyRTk0
RjNDQjExOEI5MDhFMDBCN0Y3NUQgLyogRmlsZVJlYWRlci5jcHAgKi8sCiAJCQkJMkU5NEYzQ0Mx
MThCOTA4RTAwQjdGNzVEIC8qIEZpbGVSZWFkZXIuaCAqLywKIAkJCQkyRTk0RjQyNzExOTIwNUIz
MDBCN0Y3NUQgLyogRmlsZVJlYWRlci5pZGwgKi8sCi0JCQkJODk1MjUzRDYxMTZDNEM2ODAwQ0FC
RjAwIC8qIEZpbGVTdHJlYW1DbGllbnQuaCAqLywKIAkJCQk4OTUyNTNEQTExNkM0RUY1MDBDQUJG
MDAgLyogRmlsZVN0cmVhbVByb3h5LmNwcCAqLywKIAkJCQk4OTUyNTNEQjExNkM0RUY1MDBDQUJG
MDAgLyogRmlsZVN0cmVhbVByb3h5LmggKi8sCiAJCQkJODk1MjUzNTAxMTY0MUIzNDAwQ0FCRjAw
IC8qIEZpbGVUaHJlYWQuY3BwICovLApAQCAtMTY1NjcsNiArMTY1NjgsNyBAQAogCQkJCUIyQzNE
OUVDMEQwMDZDMUQwMEVGNkYyNiAvKiB0ZXh0ICovLAogCQkJCUJDRkIyRjc0MDk3QTJFMUEwMEJB
NzAzRCAvKiBBcmVuYS5jcHAgKi8sCiAJCQkJQkNGQjJGNzUwOTdBMkUxQTAwQkE3MDNEIC8qIEFy
ZW5hLmggKi8sCisJCQkJMkVGMUJGRjYxMjFDQjBCRDAwQzI3NjI3IC8qIEFzeW5jRmlsZVN0cmVh
bS5oICovLAogCQkJCTUxRTFFQ0IxMEM5MUM1NTYwMERDMjU1QiAvKiBBdXRvZHJhaW5lZFBvb2wu
aCAqLywKIAkJCQk4OTg4RTEwQzExQTM1MDhCMDBEQjczMkUgLyogQmxvYkl0ZW0uY3BwICovLAog
CQkJCTg5ODhFMTBEMTFBMzUwOEIwMERCNzMyRSAvKiBCbG9iSXRlbS5oICovLApAQCAtMTY1OTQs
NiArMTY1OTYsNyBAQAogCQkJCTA2NkM3NzJBMEFCNjAzQjcwMDIzOENDNCAvKiBGaWxlQ2hvb3Nl
ci5oICovLAogCQkJCTJFRjFCRkU4MTIxQzlGNDIwMEMyNzYyNyAvKiBGaWxlU3RyZWFtLmNwcCAq
LywKIAkJCQkyRUYxQkZFOTEyMUM5RjQyMDBDMjc2MjcgLyogRmlsZVN0cmVhbS5oICovLAorCQkJ
CTJFRjFCRkY4MTIxQ0IwQ0UwMEMyNzYyNyAvKiBGaWxlU3RyZWFtQ2xpZW50LmggKi8sCiAJCQkJ
QzU3RkVERTAxMjEyRUU5QzAwOTdCRTY1IC8qIEZpbGVTeXN0ZW0uY3BwICovLAogCQkJCTUxNEIz
RjcyMEM3MjIwNDcwMDA1MzBERiAvKiBGaWxlU3lzdGVtLmggKi8sCiAJCQkJQkMwNzNCQTkwQzM5
OUIxRjAwMEY1OTc5IC8qIEZsb2F0Q29udmVyc2lvbi5oICovLApAQCAtMTg2NzMsNyArMTg2NzYs
NiBAQAogCQkJCTJFM0JDMEJEMTE3RDNBNEYwMEI5NDA5QSAvKiBGaWxlRXJyb3IuaCBpbiBIZWFk
ZXJzICovLAogCQkJCUJDREJCOEFDMEUwODhDQTUwMEM2MEZGNiAvKiBGaWxlTGlzdC5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJMkU5NEY0NTExMTkyMDk2QTAwQjdGNzVEIC8qIEZpbGVSZWFkZXIuaCBp
biBIZWFkZXJzICovLAotCQkJCTg5NTI1M0Q5MTE2QzRDNjgwMENBQkYwMCAvKiBGaWxlU3RyZWFt
Q2xpZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQk4OTUyNTNERDExNkM0RUY1MDBDQUJGMDAgLyog
RmlsZVN0cmVhbVByb3h5LmggaW4gSGVhZGVycyAqLywKIAkJCQk1MTRCM0Y3MzBDNzIyMDQ3MDAw
NTMwREYgLyogRmlsZVN5c3RlbS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJODk1MjUzNTMxMTY0MUIz
NDAwQ0FCRjAwIC8qIEZpbGVUaHJlYWQuaCBpbiBIZWFkZXJzICovLApAQCAtMjAzMjAsNiArMjAz
MjIsOCBAQAogCQkJCTJFREVGMUY3MTIxQjBFRkMwMDcyNkRCMiAvKiBCbG9iUmVnaXN0cnlJbXBs
LmggaW4gSGVhZGVycyAqLywKIAkJCQkyRURFRjFGODEyMUIwRUZDMDA3MjZEQjIgLyogQmxvYlN0
b3JhZ2VEYXRhLmggaW4gSGVhZGVycyAqLywKIAkJCQkyRUYxQkZFQjEyMUM5RjQyMDBDMjc2Mjcg
LyogRmlsZVN0cmVhbS5oIGluIEhlYWRlcnMgKi8sCisJCQkJMkVGMUJGRjcxMjFDQjBCRDAwQzI3
NjI3IC8qIEFzeW5jRmlsZVN0cmVhbS5oIGluIEhlYWRlcnMgKi8sCisJCQkJMkVGMUJGRjkxMjFD
QjBDRTAwQzI3NjI3IC8qIEZpbGVTdHJlYW1DbGllbnQuaCBpbiBIZWFkZXJzICovLAogCQkJKTsK
IAkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9zdHByb2Nlc3NpbmcgPSAwOwogCQl9OwpkaWZmIC0t
Z2l0IGEvV2ViQ29yZS9odG1sL0ZpbGVTdHJlYW1DbGllbnQuaCBiL1dlYkNvcmUvaHRtbC9GaWxl
U3RyZWFtQ2xpZW50LmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGIzZDFmZmYuLjAw
MDAwMDAKLS0tIGEvV2ViQ29yZS9odG1sL0ZpbGVTdHJlYW1DbGllbnQuaAorKysgL2Rldi9udWxs
CkBAIC0xLDYzICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTAgR29vZ2xlIEluYy4g
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJl
Ci0gKiBtZXQ6Ci0gKgotICogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqICAgICAqIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKLSAqIGNvcHly
aWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIKLSAqIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUKLSAqIGRpc3RyaWJ1dGlvbi4KLSAqICAgICAqIE5laXRoZXIgdGhl
IG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKLSAqIGNvbnRyaWJ1dG9y
cyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9t
Ci0gKiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNz
aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBI
T0xERVJTIEFORCBDT05UUklCVVRPUlMKLSAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCi0gKiBMSU1JVEVEIFRPLCBUSEUg
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKLSAq
IEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBU
SEUgQ09QWVJJR0hUCi0gKiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkg
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKLSAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1Ig
Q09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKLSAqIExJTUlURUQgVE8s
IFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNF
LAotICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQgT04gQU5ZCi0gKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAqIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuCi0gKi8KLQotI2lmbmRlZiBGaWxlU3RyZWFtQ2xpZW50X2gKLSNkZWZpbmUgRmls
ZVN0cmVhbUNsaWVudF9oCi0KLSNpZiBFTkFCTEUoQkxPQikgfHwgRU5BQkxFKEZJTEVfV1JJVEVS
KQotCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci0KLWNsYXNzIEZpbGVTdHJlYW1DbGllbnQgewotcHVi
bGljOgotICAgIC8vIEZvciByZWFkaW5nLgotICAgIHZpcnR1YWwgdm9pZCBkaWRSZWFkKGludCkg
eyB9Ci0KLSAgICAvLyBGb3Igd3JpdGluZy4KLSAgICB2aXJ0dWFsIHZvaWQgZGlkV3JpdGUoaW50
KSB7IH0KLSAgICB2aXJ0dWFsIHZvaWQgZGlkVHJ1bmNhdGUoYm9vbCkgeyB9Ci0KLSAgICAvLyBG
SVhNRTogVG8gYmUgcmVtb3ZlZCB3aGVuIHdlIHN3aXRjaCB0byB1c2luZyBCbG9iRGF0YS4KLSAg
ICB2aXJ0dWFsIHZvaWQgZGlkU3RhcnQoKSB7IH0KLQotICAgIC8vIEZvciBib3RoIHJlYWRpbmcg
YW5kIHdyaXRpbmcuCi0gICAgdmlydHVhbCB2b2lkIGRpZE9wZW4oYm9vbCkgeyB9Ci0gICAgdmly
dHVhbCB2b2lkIGRpZFN0b3AoKSB7IH0KLSAgICB2aXJ0dWFsIHZvaWQgZGlkR2V0U2l6ZShsb25n
IGxvbmcpIHsgfQotCi1wcm90ZWN0ZWQ6Ci0gICAgdmlydHVhbCB+RmlsZVN0cmVhbUNsaWVudCgp
IHsgfQotfTsKLQotfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQotCi0jZW5kaWYgLy8gRU5BQkxFKEJM
T0IpIHx8IEVOQUJMRShGSUxFX1dSSVRFUikKLQotI2VuZGlmIC8vIEZpbGVTdHJlYW1DbGllbnRf
aApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9odG1sL0ZpbGVTdHJlYW1Qcm94eS5jcHAgYi9XZWJDb3Jl
L2h0bWwvRmlsZVN0cmVhbVByb3h5LmNwcAppbmRleCBmMjg5Yzg0Li4zMDgxM2QzIDEwMDY0NAot
LS0gYS9XZWJDb3JlL2h0bWwvRmlsZVN0cmVhbVByb3h5LmNwcAorKysgYi9XZWJDb3JlL2h0bWwv
RmlsZVN0cmVhbVByb3h5LmNwcApAQCAtMzcsNyArMzcsNiBAQAogI2luY2x1ZGUgIkJsb2IuaCIK
ICNpbmNsdWRlICJDcm9zc1RocmVhZFRhc2suaCIKICNpbmNsdWRlICJGaWxlU3RyZWFtLmgiCi0j
aW5jbHVkZSAiRmlsZVN0cmVhbUNsaWVudC5oIgogI2luY2x1ZGUgIkZpbGVUaHJlYWQuaCIKICNp
bmNsdWRlICJGaWxlVGhyZWFkVGFzay5oIgogI2luY2x1ZGUgIlBsYXRmb3JtU3RyaW5nLmgiCkBA
IC00Niw4ICs0NSw4IEBACiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGlubGluZSBGaWxlU3RyZWFt
UHJveHk6OkZpbGVTdHJlYW1Qcm94eShTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0LCBG
aWxlU3RyZWFtQ2xpZW50KiBjbGllbnQpCi0gICAgOiBtX2NvbnRleHQoY29udGV4dCkKLSAgICAs
IG1fY2xpZW50KGNsaWVudCkKKyAgICA6IEFzeW5jRmlsZVN0cmVhbShjbGllbnQpCisgICAgLCBt
X2NvbnRleHQoY29udGV4dCkKICAgICAsIG1fc3RyZWFtKEZpbGVTdHJlYW06OmNyZWF0ZSgpKQog
ewogfQpAQCAtOTEsNyArOTAsNyBAQCB2b2lkIEZpbGVTdHJlYW1Qcm94eTo6c3RhcnRPbkZpbGVU
aHJlYWQoKQogdm9pZCBGaWxlU3RyZWFtUHJveHk6OnN0b3AoKQogewogICAgIC8vIENsZWFyIHRo
ZSBjbGllbnQgc28gdGhhdCB3ZSB3b24ndCBiZSBjYWxsaW5nIGNhbGxiYWNrcyBvbiB0aGUgY2xp
ZW50LgotICAgIG1fY2xpZW50ID0gMDsKKyAgICBzZXRDbGllbnQoMCk7CiAKICAgICBmaWxlVGhy
ZWFkKCktPnVuc2NoZWR1bGVUYXNrcyhtX3N0cmVhbS5nZXQoKSk7CiAgICAgZmlsZVRocmVhZCgp
LT5wb3N0VGFzayhjcmVhdGVGaWxlVGhyZWFkVGFzayh0aGlzLCAmRmlsZVN0cmVhbVByb3h5Ojpz
dG9wT25GaWxlVGhyZWFkKSk7CmRpZmYgLS1naXQgYS9XZWJDb3JlL2h0bWwvRmlsZVN0cmVhbVBy
b3h5LmggYi9XZWJDb3JlL2h0bWwvRmlsZVN0cmVhbVByb3h5LmgKaW5kZXggNmRjMWNjNy4uMzVh
M2FmOCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9odG1sL0ZpbGVTdHJlYW1Qcm94eS5oCisrKyBiL1dl
YkNvcmUvaHRtbC9GaWxlU3RyZWFtUHJveHkuaApAQCAtMzQsNiArMzQsNyBAQAogCiAjaWYgRU5B
QkxFKEJMT0IpIHx8IEVOQUJMRShGSUxFX1dSSVRFUikKIAorI2luY2x1ZGUgIkFzeW5jRmlsZVN0
cmVhbS5oIgogI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+CiAjaW5jbHVkZSA8d3RmL1Bhc3NSZWZQ
dHIuaD4KICNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgpAQCAtNDIsMzAgKzQzLDI3IEBACiBu
YW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIEZpbGVTdHJlYW07Ci1jbGFzcyBGaWxlU3RyZWFt
Q2xpZW50OwogY2xhc3MgRmlsZVRocmVhZDsKIGNsYXNzIEtVUkw7CiBjbGFzcyBTY3JpcHRFeGVj
dXRpb25Db250ZXh0OwogCiAvLyBBIHByb3h5IG1vZHVsZSB0aGF0IGFzeW5jaHJvbm91c2x5IGNh
bGxzIGNvcnJlc3BvbmRpbmcgRmlsZVN0cmVhbSBtZXRob2RzIG9uIHRoZSBmaWxlIHRocmVhZC4g
IE5vdGU6IHlvdSBtdXN0IGNhbGwgc3RvcCgpIGZpcnN0IGFuZCB0aGVuIHJlbGVhc2UgdGhlIHJl
ZmVyZW5jZSB0byBkZXN0cnVjdCB0aGUgRmlsZVN0cmVhbVByb3h5IGluc3RhbmNlLgotY2xhc3Mg
RmlsZVN0cmVhbVByb3h5IDogcHVibGljIFJlZkNvdW50ZWQ8RmlsZVN0cmVhbVByb3h5PiB7Citj
bGFzcyBGaWxlU3RyZWFtUHJveHkgOiBwdWJsaWMgQXN5bmNGaWxlU3RyZWFtIHsKIHB1YmxpYzoK
ICAgICBzdGF0aWMgUGFzc1JlZlB0cjxGaWxlU3RyZWFtUHJveHk+IGNyZWF0ZShTY3JpcHRFeGVj
dXRpb25Db250ZXh0KiwgRmlsZVN0cmVhbUNsaWVudCopOwogICAgIHZpcnR1YWwgfkZpbGVTdHJl
YW1Qcm94eSgpOwogCi0gICAgdm9pZCBnZXRTaXplKGNvbnN0IFN0cmluZyYgcGF0aCwgZG91Ymxl
IGV4cGVjdGVkTW9kaWZpY2F0aW9uVGltZSk7Ci0gICAgdm9pZCBvcGVuRm9yUmVhZChjb25zdCBT
dHJpbmcmIHBhdGgsIGxvbmcgbG9uZyBvZmZzZXQsIGxvbmcgbG9uZyBsZW5ndGgpOwotICAgIHZv
aWQgb3BlbkZvcldyaXRlKGNvbnN0IFN0cmluZyYgcGF0aCk7Ci0gICAgdm9pZCBjbG9zZSgpOwot
ICAgIHZvaWQgcmVhZChjaGFyKiBidWZmZXIsIGludCBsZW5ndGgpOwotICAgIHZvaWQgd3JpdGUo
Y29uc3QgS1VSTCYgYmxvYlVSTCwgbG9uZyBsb25nIHBvc2l0aW9uLCBpbnQgbGVuZ3RoKTsKLSAg
ICB2b2lkIHRydW5jYXRlKGxvbmcgbG9uZyBwb3NpdGlvbik7CisgICAgdmlydHVhbCB2b2lkIGdl
dFNpemUoY29uc3QgU3RyaW5nJiBwYXRoLCBkb3VibGUgZXhwZWN0ZWRNb2RpZmljYXRpb25UaW1l
KTsKKyAgICB2aXJ0dWFsIHZvaWQgb3BlbkZvclJlYWQoY29uc3QgU3RyaW5nJiBwYXRoLCBsb25n
IGxvbmcgb2Zmc2V0LCBsb25nIGxvbmcgbGVuZ3RoKTsKKyAgICB2aXJ0dWFsIHZvaWQgb3BlbkZv
cldyaXRlKGNvbnN0IFN0cmluZyYgcGF0aCk7CisgICAgdmlydHVhbCB2b2lkIGNsb3NlKCk7Cisg
ICAgdmlydHVhbCB2b2lkIHJlYWQoY2hhciogYnVmZmVyLCBpbnQgbGVuZ3RoKTsKKyAgICB2aXJ0
dWFsIHZvaWQgd3JpdGUoY29uc3QgS1VSTCYgYmxvYlVSTCwgbG9uZyBsb25nIHBvc2l0aW9uLCBp
bnQgbGVuZ3RoKTsKKyAgICB2aXJ0dWFsIHZvaWQgdHJ1bmNhdGUobG9uZyBsb25nIHBvc2l0aW9u
KTsKIAogICAgIC8vIFN0b3BzIHRoZSBwcm94eSBhbmQgc2NlZHVsZXMgaXQgdG8gYmUgZGVzdHJ1
Y3RlZC4gIEFsbCB0aGUgcGVuZGluZyB0YXNrcyB3aWxsIGJlIGFib3J0ZWQgYW5kIHRoZSBmaWxl
IHN0cmVhbSB3aWxsIGJlIGNsb3NlZC4KICAgICAvLyBOb3RlOiB0aGUgY2FsbGVyIHNob3VsZCBk
ZXJlZiB0aGUgaW5zdGFuY2UgaW1tZWRpYXRlbHkgYWZ0ZXIgY2FsbGluZyBzdG9wKCkuCi0gICAg
dm9pZCBzdG9wKCk7Ci0KLSAgICBGaWxlU3RyZWFtQ2xpZW50KiBjbGllbnQoKSBjb25zdCB7IHJl
dHVybiBtX2NsaWVudDsgfQorICAgIHZpcnR1YWwgdm9pZCBzdG9wKCk7CiAKIHByaXZhdGU6CiAg
ICAgRmlsZVN0cmVhbVByb3h5KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBGaWxlU3RyZWFtQ2xp
ZW50Kik7CkBAIC04NCw3ICs4Miw2IEBAIHByaXZhdGU6CiAgICAgdm9pZCB0cnVuY2F0ZU9uRmls
ZVRocmVhZChsb25nIGxvbmcgcG9zaXRpb24pOwogCiAgICAgUmVmUHRyPFNjcmlwdEV4ZWN1dGlv
bkNvbnRleHQ+IG1fY29udGV4dDsKLSAgICBGaWxlU3RyZWFtQ2xpZW50KiBtX2NsaWVudDsKICAg
ICBSZWZQdHI8RmlsZVN0cmVhbT4gbV9zdHJlYW07CiB9OwogCmRpZmYgLS1naXQgYS9XZWJDb3Jl
L3BsYXRmb3JtL0FzeW5jRmlsZVN0cmVhbS5oIGIvV2ViQ29yZS9wbGF0Zm9ybS9Bc3luY0ZpbGVT
dHJlYW0uaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40MDI5ZWMyCi0tLSAv
ZGV2L251bGwKKysrIGIvV2ViQ29yZS9wbGF0Zm9ybS9Bc3luY0ZpbGVTdHJlYW0uaApAQCAtMCww
ICsxLDc1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEwIEdvb2dsZSBJbmMuICBBbGwgcmln
aHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDEwIEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKKyAqIG1ldDoK
KyAqCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAorICogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogICAgICogUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQorICogY29weXJpZ2h0IG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgor
ICogaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3
aXRoIHRoZQorICogZGlzdHJpYnV0aW9uLgorICogICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBH
b29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cworICogY29udHJpYnV0b3JzIG1heSBiZSB1
c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KKyAqIHRoaXMg
c29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisgKgor
ICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5E
IENPTlRSSUJVVE9SUworICogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgorICogQSBQQVJUSUNV
TEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklH
SFQKKyAqIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLAorICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5U
SUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgUFJPQ1VSRU1F
TlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCisgKiBEQVRB
LCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RCBPTiBBTlkKKyAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
KyAqLworCisjaWZuZGVmIEFzeW5jRmlsZVN0cmVhbV9oCisjZGVmaW5lIEFzeW5jRmlsZVN0cmVh
bV9oCisKKyNpZiBFTkFCTEUoQkxPQikgfHwgRU5BQkxFKEZJTEVfV1JJVEVSKQorCisjaW5jbHVk
ZSAiRmlsZVN0cmVhbUNsaWVudC5oIgorI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+CisjaW5jbHVk
ZSA8d3RmL1JlZkNvdW50ZWQuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBLVVJM
OworCitjbGFzcyBBc3luY0ZpbGVTdHJlYW0gOiBwdWJsaWMgUmVmQ291bnRlZDxBc3luY0ZpbGVT
dHJlYW0+IHsKK3B1YmxpYzoKKyAgICB2aXJ0dWFsIH5Bc3luY0ZpbGVTdHJlYW0oKSB7IH0KKwor
ICAgIHZpcnR1YWwgdm9pZCBnZXRTaXplKGNvbnN0IFN0cmluZyYgcGF0aCwgZG91YmxlIGV4cGVj
dGVkTW9kaWZpY2F0aW9uVGltZSkgPSAwOworICAgIHZpcnR1YWwgdm9pZCBvcGVuRm9yUmVhZChj
b25zdCBTdHJpbmcmIHBhdGgsIGxvbmcgbG9uZyBvZmZzZXQsIGxvbmcgbG9uZyBsZW5ndGgpID0g
MDsKKyAgICB2aXJ0dWFsIHZvaWQgb3BlbkZvcldyaXRlKGNvbnN0IFN0cmluZyYgcGF0aCkgPSAw
OworICAgIHZpcnR1YWwgdm9pZCBjbG9zZSgpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgcmVhZChj
aGFyKiBidWZmZXIsIGludCBsZW5ndGgpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgd3JpdGUoY29u
c3QgS1VSTCYgYmxvYlVSTCwgbG9uZyBsb25nIHBvc2l0aW9uLCBpbnQgbGVuZ3RoKSA9IDA7Cisg
ICAgdmlydHVhbCB2b2lkIHRydW5jYXRlKGxvbmcgbG9uZyBwb3NpdGlvbikgPSAwOworICAgIHZp
cnR1YWwgdm9pZCBzdG9wKCkgPSAwOworCisgICAgRmlsZVN0cmVhbUNsaWVudCogY2xpZW50KCkg
Y29uc3QgeyByZXR1cm4gbV9jbGllbnQ7IH0KKyAgICB2b2lkIHNldENsaWVudChGaWxlU3RyZWFt
Q2xpZW50KiBjbGllbnQpIHsgbV9jbGllbnQgPSBjbGllbnQ7IH0KKworcHJvdGVjdGVkOgorICAg
IEFzeW5jRmlsZVN0cmVhbShGaWxlU3RyZWFtQ2xpZW50KiBjbGllbnQpCisgICAgICAgIDogbV9j
bGllbnQoY2xpZW50KQorICAgIHsKKyAgICB9CisKK3ByaXZhdGU6CisgICAgRmlsZVN0cmVhbUNs
aWVudCogbV9jbGllbnQ7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAv
LyBFTkFCTEUoQkxPQikgfHwgRU5BQkxFKEZJTEVfV1JJVEVSKQorCisjZW5kaWYgLy8gQXN5bmNG
aWxlU3RyZWFtX2gKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGxhdGZvcm0vRmlsZVN0cmVhbUNsaWVu
dC5oIGIvV2ViQ29yZS9wbGF0Zm9ybS9GaWxlU3RyZWFtQ2xpZW50LmgKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMC4uYjNkMWZmZgotLS0gL2Rldi9udWxsCisrKyBiL1dlYkNvcmUv
cGxhdGZvcm0vRmlsZVN0cmVhbUNsaWVudC5oCkBAIC0wLDAgKzEsNjMgQEAKKy8qCisgKiBDb3B5
cmlnaHQgKEMpIDIwMTAgR29vZ2xlIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCisgKiBtZXQ6CisgKgorICogICAgICogUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUKKyAqIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKKyAqIGluIHRoZSBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKKyAqIGRpc3RyaWJ1
dGlvbi4KKyAqICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBu
YW1lcyBvZiBpdHMKKyAqIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHBy
b21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCisgKiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3Bl
Y2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKKyAqICJB
UyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBC
VVQgTk9UCisgKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5U
QUJJTElUWSBBTkQgRklUTkVTUyBGT1IKKyAqIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVND
TEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCisgKiBPV05FUiBPUiBDT05U
UklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwK
KyAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJ
TkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAorICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVT
SU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisgKiBUSEVPUlkg
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBGaWxl
U3RyZWFtQ2xpZW50X2gKKyNkZWZpbmUgRmlsZVN0cmVhbUNsaWVudF9oCisKKyNpZiBFTkFCTEUo
QkxPQikgfHwgRU5BQkxFKEZJTEVfV1JJVEVSKQorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2Ns
YXNzIEZpbGVTdHJlYW1DbGllbnQgeworcHVibGljOgorICAgIC8vIEZvciByZWFkaW5nLgorICAg
IHZpcnR1YWwgdm9pZCBkaWRSZWFkKGludCkgeyB9CisKKyAgICAvLyBGb3Igd3JpdGluZy4KKyAg
ICB2aXJ0dWFsIHZvaWQgZGlkV3JpdGUoaW50KSB7IH0KKyAgICB2aXJ0dWFsIHZvaWQgZGlkVHJ1
bmNhdGUoYm9vbCkgeyB9CisKKyAgICAvLyBGSVhNRTogVG8gYmUgcmVtb3ZlZCB3aGVuIHdlIHN3
aXRjaCB0byB1c2luZyBCbG9iRGF0YS4KKyAgICB2aXJ0dWFsIHZvaWQgZGlkU3RhcnQoKSB7IH0K
KworICAgIC8vIEZvciBib3RoIHJlYWRpbmcgYW5kIHdyaXRpbmcuCisgICAgdmlydHVhbCB2b2lk
IGRpZE9wZW4oYm9vbCkgeyB9CisgICAgdmlydHVhbCB2b2lkIGRpZFN0b3AoKSB7IH0KKyAgICB2
aXJ0dWFsIHZvaWQgZGlkR2V0U2l6ZShsb25nIGxvbmcpIHsgfQorCitwcm90ZWN0ZWQ6CisgICAg
dmlydHVhbCB+RmlsZVN0cmVhbUNsaWVudCgpIHsgfQorfTsKKworfSAvLyBuYW1lc3BhY2UgV2Vi
Q29yZQorCisjZW5kaWYgLy8gRU5BQkxFKEJMT0IpIHx8IEVOQUJMRShGSUxFX1dSSVRFUikKKwor
I2VuZGlmIC8vIEZpbGVTdHJlYW1DbGllbnRfaAo=
</data>
<flag name="review"
          id="53439"
          type_id="1"
          status="+"
          setter="levin"
    />
    <flag name="commit-queue"
          id="53440"
          type_id="3"
          status="-"
          setter="jianli"
    />
          </attachment>
      

    </bug>

</bugzilla>