<?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>52439</bug_id>
          
          <creation_ts>2011-01-14 02:41:07 -0800</creation_ts>
          <short_desc>REGRESSION(r75783): a bit strange but the same patch have broken mac builds at linking stage. (Requested by loislo2 on #webkit).</short_desc>
          <delta_ts>2011-01-14 02:49:10 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Other</rep_platform>
          <op_sys>OS X 10.5</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>
          
          <blocked>52294</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="WebKit Review Bot">webkit.review.bot</reporter>
          <assigned_to name="WebKit Review Bot">webkit.review.bot</assigned_to>
          <cc>loislo</cc>
    
    <cc>yurys</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>334218</commentid>
    <comment_count>0</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-01-14 02:41:07 -0800</bug_when>
    <thetext>http://trac.webkit.org/changeset/75783 broke the build:
a bit strange but the same patch have broken mac builds at linking stage. (Requested by loislo2 on #webkit).

This is an automatic bug report generated by the sheriff-bot. If this bug
report was created because of a flaky test, please file a bug for the flaky
test (if we don&apos;t already have one on file) and dup this bug against that bug
so that we can track how often these flaky tests case pain.

&quot;Only you can prevent forest fires.&quot; -- Smokey the Bear</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>334219</commentid>
    <comment_count>1</comment_count>
      <attachid>78919</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-01-14 02:41:32 -0800</bug_when>
    <thetext>Created attachment 78919
ROLLOUT of r75783

Any committer can land this patch automatically by marking it commit-queue+.  The commit-queue will build and test the patch before landing to ensure that the rollout will be successful.  This process takes approximately 15 minutes.

If you would like to land the rollout faster, you can use the following command:

  webkit-patch land-attachment ATTACHMENT_ID --ignore-builders

where ATTACHMENT_ID is the ID of this attachment.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>334222</commentid>
    <comment_count>2</comment_count>
      <attachid>78919</attachid>
    <who name="Ilya Tikhonovsky">loislo</who>
    <bug_when>2011-01-14 02:48:58 -0800</bug_when>
    <thetext>Comment on attachment 78919
ROLLOUT of r75783

Committed r75785
	M	Source/WebCore/WebCore.pro
	M	Source/WebCore/ChangeLog
	M	Source/WebCore/WebCore.vcproj/WebCore.vcproj
	M	Source/WebCore/GNUmakefile.am
	M	Source/WebCore/WebCore.gypi
	D	Source/WebCore/inspector/InspectorBrowserDebuggerAgent.cpp
	D	Source/WebCore/inspector/InspectorBrowserDebuggerAgent.h
	M	Source/WebCore/inspector/CodeGeneratorInspector.pm
	M	Source/WebCore/inspector/InspectorController.cpp
	M	Source/WebCore/inspector/Inspector.idl
	M	Source/WebCore/inspector/InspectorController.h
	M	Source/WebCore/inspector/InspectorInstrumentation.cpp
	M	Source/WebCore/inspector/InspectorDOMAgent.h
	M	Source/WebCore/inspector/InspectorDOMAgent.cpp
	M	Source/WebCore/CMakeLists.txt
	M	Source/WebCore/WebCore.xcodeproj/project.pbxproj
W: -empty_dir: trunk/Source/WebCore/inspector/InspectorBrowserDebuggerAgent.cpp
W: -empty_dir: trunk/Source/WebCore/inspector/InspectorBrowserDebuggerAgent.h
r75785 = 675492047a732f92064a96a79c3dbb86b7ca10c2 (refs/remotes/trunk)</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>78919</attachid>
            <date>2011-01-14 02:41:32 -0800</date>
            <delta_ts>2011-01-14 02:48:58 -0800</delta_ts>
            <desc>ROLLOUT of r75783</desc>
            <filename>bug-52439-20110114104128.patch</filename>
            <type>text/plain</type>
            <size>55679</size>
            <attacher name="WebKit Review Bot">webkit.review.bot</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0IGIvU291cmNlL1dlYkNv
cmUvQ01ha2VMaXN0cy50eHQKaW5kZXggZjhlMzE1NmU2NTUxNmVjZTM4MzczMTEyMTVlOTVkODAx
YmE3YTZkOC4uNGE2YzJjMWNkZDM3MTg3MWU2ZDExMTNhM2VhMGU0N2QzZTM4OTU4NCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKKysrIGIvU291cmNlL1dlYkNvcmUv
Q01ha2VMaXN0cy50eHQKQEAgLTExNTIsNyArMTE1Miw2IEBAIFNFVChXZWJDb3JlX1NPVVJDRVMK
ICAgICBpbnNwZWN0b3IvSW5qZWN0ZWRTY3JpcHQuY3BwCiAgICAgaW5zcGVjdG9yL0luamVjdGVk
U2NyaXB0SG9zdC5jcHAKICAgICBpbnNwZWN0b3IvSW5zcGVjdG9yQXBwbGljYXRpb25DYWNoZUFn
ZW50LmNwcAotICAgIGluc3BlY3Rvci9JbnNwZWN0b3JCcm93c2VyRGVidWdnZXJBZ2VudC5jcHAK
ICAgICBpbnNwZWN0b3IvSW5zcGVjdG9yQ1NTQWdlbnQuY3BwCiAgICAgaW5zcGVjdG9yL0luc3Bl
Y3RvckNsaWVudC5jcHAKICAgICBpbnNwZWN0b3IvSW5zcGVjdG9yQ29udHJvbGxlci5jcHAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwppbmRleCAxYmE1NzYxOTNhOGVlNWVhN2ViNjI0Yzg4ZmI0ZjAxMGQ4Y2NiMzc3Li41OGJl
ZjRjODk1YzIwNmQ3NzYyOTU3ZGQyOWNkNTA2MjU1ZThiMGI2IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMg
KzEsNTkgQEAKKzIwMTEtMDEtMTQgIFNoZXJpZmYgQm90ICA8d2Via2l0LnJldmlldy5ib3RAZ21h
aWwuY29tPgorCisgICAgICAgIFVucmV2aWV3ZWQsIHJvbGxpbmcgb3V0IHI3NTc4My4KKyAgICAg
ICAgaHR0cDovL3RyYWMud2Via2l0Lm9yZy9jaGFuZ2VzZXQvNzU3ODMKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTUyNDM5CisKKyAgICAgICAgYSBiaXQg
c3RyYW5nZSBidXQgdGhlIHNhbWUgcGF0Y2ggaGF2ZSBicm9rZW4gbWFjIGJ1aWxkcyBhdAorICAg
ICAgICBsaW5raW5nIHN0YWdlLiAoUmVxdWVzdGVkIGJ5IGxvaXNsbzIgb24gI3dlYmtpdCkuCisK
KyAgICAgICAgKiBDTWFrZUxpc3RzLnR4dDoKKyAgICAgICAgKiBHTlVtYWtlZmlsZS5hbToKKyAg
ICAgICAgKiBXZWJDb3JlLmd5cGk6CisgICAgICAgICogV2ViQ29yZS5wcm86CisgICAgICAgICog
V2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2o6CisgICAgICAgICogV2ViQ29yZS54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIGluc3BlY3Rvci9Db2RlR2VuZXJhdG9ySW5z
cGVjdG9yLnBtOgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3IuaWRsOgorICAgICAgICAq
IGluc3BlY3Rvci9JbnNwZWN0b3JCcm93c2VyRGVidWdnZXJBZ2VudC5jcHA6IFJlbW92ZWQuCisg
ICAgICAgICogaW5zcGVjdG9yL0luc3BlY3RvckJyb3dzZXJEZWJ1Z2dlckFnZW50Lmg6IFJlbW92
ZWQuCisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3RvckNvbnRyb2xsZXIuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6SW5zcGVjdG9yQ29udHJvbGxlcjo6SW5zcGVjdG9yQ29udHJvbGxlcik6Cisg
ICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JDb250cm9sbGVyOjppbnNwZWN0ZWRQYWdlRGVzdHJv
eWVkKToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckNvbnRyb2xsZXI6OmRpZENvbW1pdExv
YWQpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yQ29udHJvbGxlcjo6ZW5hYmxlRGVidWdn
ZXJGcm9tRnJvbnRlbmQpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yQ29udHJvbGxlcjo6
ZGlzYWJsZURlYnVnZ2VyKToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckNvbnRyb2xsZXI6
OnJlc3RvcmVTdGlja3lCcmVha3BvaW50cyk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JD
b250cm9sbGVyOjpyZXN0b3JlU3RpY2t5QnJlYWtwb2ludCk6CisgICAgICAgIChXZWJDb3JlOjpJ
bnNwZWN0b3JDb250cm9sbGVyOjpzZXRFdmVudExpc3RlbmVyQnJlYWtwb2ludCk6CisgICAgICAg
IChXZWJDb3JlOjpJbnNwZWN0b3JDb250cm9sbGVyOjpyZW1vdmVFdmVudExpc3RlbmVyQnJlYWtw
b2ludCk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JDb250cm9sbGVyOjpoYXNFdmVudExp
c3RlbmVyQnJlYWtwb2ludCk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JDb250cm9sbGVy
OjpzZXRYSFJCcmVha3BvaW50KToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckNvbnRyb2xs
ZXI6OnJlbW92ZVhIUkJyZWFrcG9pbnQpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yQ29u
dHJvbGxlcjo6aGFzWEhSQnJlYWtwb2ludCk6CisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3Rv
ckNvbnRyb2xsZXIuaDoKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yRE9NQWdlbnQuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yRE9NQWdlbnQ6OmRpc2NhcmRCaW5kaW5ncyk6
CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JET01BZ2VudDo6c2V0RE9NQnJlYWtwb2ludCk6
CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JET01BZ2VudDo6cmVtb3ZlRE9NQnJlYWtwb2lu
dCk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JET01BZ2VudDo6c2hvdWxkQnJlYWtPbk5v
ZGVJbnNlcnRpb24pOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yRE9NQWdlbnQ6OnNob3Vs
ZEJyZWFrT25Ob2RlUmVtb3ZhbCk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JET01BZ2Vu
dDo6c2hvdWxkQnJlYWtPbkF0dHJpYnV0ZU1vZGlmaWNhdGlvbik6CisgICAgICAgIChXZWJDb3Jl
OjpJbnNwZWN0b3JET01BZ2VudDo6ZGVzY3JpcHRpb25Gb3JET01FdmVudCk6CisgICAgICAgIChX
ZWJDb3JlOjpJbnNwZWN0b3JET01BZ2VudDo6ZGlkSW5zZXJ0RE9NTm9kZSk6CisgICAgICAgIChX
ZWJDb3JlOjpJbnNwZWN0b3JET01BZ2VudDo6ZGlkUmVtb3ZlRE9NTm9kZSk6CisgICAgICAgIChX
ZWJDb3JlOjpJbnNwZWN0b3JET01BZ2VudDo6aGFzQnJlYWtwb2ludCk6CisgICAgICAgIChXZWJD
b3JlOjpJbnNwZWN0b3JET01BZ2VudDo6dXBkYXRlU3VidHJlZUJyZWFrcG9pbnRzKToKKyAgICAg
ICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yRE9NQWdlbnQuaDoKKyAgICAgICAgKiBpbnNwZWN0b3Iv
SW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3Rv
ckluc3RydW1lbnRhdGlvbjo6d2lsbEluc2VydERPTU5vZGVJbXBsKToKKyAgICAgICAgKFdlYkNv
cmU6Okluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6ZGlkSW5zZXJ0RE9NTm9kZUltcGwpOgorICAg
ICAgICAoV2ViQ29yZTo6SW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjp3aWxsUmVtb3ZlRE9NTm9k
ZUltcGwpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpkaWRS
ZW1vdmVET01Ob2RlSW1wbCk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JJbnN0cnVtZW50
YXRpb246OndpbGxNb2RpZnlET01BdHRySW1wbCk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0
b3JJbnN0cnVtZW50YXRpb246OndpbGxTZW5kWE1MSHR0cFJlcXVlc3RJbXBsKToKKyAgICAgICAg
KFdlYkNvcmU6Okluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6cGF1c2VPbk5hdGl2ZUV2ZW50SWZO
ZWVkZWQpOgorCiAyMDExLTAxLTEyICBJbHlhIFRpa2hvbm92c2t5ICA8bG9pc2xvQGNocm9taXVt
Lm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBZdXJ5IFNlbWlraGF0c2t5LgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUuYW0gYi9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtl
ZmlsZS5hbQppbmRleCBlYjMzYjVkNWIzMWRmMzk0MTA3MmE2NTgwOWM2ZmRhYjc5MWU5MWY4Li44
N2JmNDM1MmYxN2RjN2I1NjNlMTRjN2FiNTkzOWI3MmM4ZGQ0MzNhIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5hbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmls
ZS5hbQpAQCAtMTk0Niw4ICsxOTQ2LDYgQEAgd2ViY29yZV9zb3VyY2VzICs9IFwKIAlTb3VyY2Uv
V2ViQ29yZS9pbnNwZWN0b3IvSW5qZWN0ZWRTY3JpcHRIb3N0LmggXAogCVNvdXJjZS9XZWJDb3Jl
L2luc3BlY3Rvci9JbnNwZWN0b3JBcHBsaWNhdGlvbkNhY2hlQWdlbnQuY3BwIFwKIAlTb3VyY2Uv
V2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQXBwbGljYXRpb25DYWNoZUFnZW50LmggXAotCVNv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JCcm93c2VyRGVidWdnZXJBZ2VudC5jcHAg
XAotCVNvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JCcm93c2VyRGVidWdnZXJBZ2Vu
dC5oIFwKIAlTb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ2xpZW50LmNwcCBcCiAJ
U291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNsaWVudC5oIFwKIAlTb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ29udHJvbGxlci5jcHAgXApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCmlu
ZGV4IGRhMDg3ZmRiNWZjOWFkZDM0ZmU4ODVkZDFkYjdlNWNhZTVmNTE1NTYuLmMxY2I2ZGU0ZWQ1
MmUzZjJmMzA1OGY2ZTlkYzBjZTU4ZjkxOWExODUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L1dlYkNvcmUuZ3lwaQorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKQEAgLTIwMDIs
OCArMjAwMiw2IEBACiAgICAgICAgICAgICAnaW5zcGVjdG9yL0luamVjdGVkU2NyaXB0SG9zdC5o
JywKICAgICAgICAgICAgICdpbnNwZWN0b3IvSW5zcGVjdG9yQXBwbGljYXRpb25DYWNoZUFnZW50
LmNwcCcsCiAgICAgICAgICAgICAnaW5zcGVjdG9yL0luc3BlY3RvckFwcGxpY2F0aW9uQ2FjaGVB
Z2VudC5oJywKLSAgICAgICAgICAgICdpbnNwZWN0b3IvSW5zcGVjdG9yQnJvd3NlckRlYnVnZ2Vy
QWdlbnQuY3BwJywKLSAgICAgICAgICAgICdpbnNwZWN0b3IvSW5zcGVjdG9yQnJvd3NlckRlYnVn
Z2VyQWdlbnQuaCcsCiAgICAgICAgICAgICAnaW5zcGVjdG9yL0luc3BlY3RvckNsaWVudC5jcHAn
LAogICAgICAgICAgICAgJ2luc3BlY3Rvci9JbnNwZWN0b3JDbGllbnQuaCcsCiAgICAgICAgICAg
ICAnaW5zcGVjdG9yL0luc3BlY3RvckNvbnRyb2xsZXIuY3BwJywKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL1dlYkNvcmUucHJvIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5wcm8KaW5kZXgg
YmI3NmJhNzI5MDc5YWY0MTI2NDI4N2E1M2YyMmM2ZDIwN2FlM2YyYy4uYjA0MDlmMTRjNzlkZThl
NjYyNTNjZmQ2M2MyZGYwYmZkZWI3MDBkNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2Vi
Q29yZS5wcm8KKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5wcm8KQEAgLTEwNDMsNyArMTA0
Myw2IEBAIFNPVVJDRVMgKz0gXAogICAgIGluc3BlY3Rvci9JbmplY3RlZFNjcmlwdC5jcHAgXAog
ICAgIGluc3BlY3Rvci9JbmplY3RlZFNjcmlwdEhvc3QuY3BwIFwKICAgICBpbnNwZWN0b3IvSW5z
cGVjdG9yQXBwbGljYXRpb25DYWNoZUFnZW50LmNwcCBcCi0gICAgaW5zcGVjdG9yL0luc3BlY3Rv
ckJyb3dzZXJEZWJ1Z2dlckFnZW50LmNwcCBcCiAgICAgaW5zcGVjdG9yL0luc3BlY3RvckNTU0Fn
ZW50LmNwcCBcCiAgICAgaW5zcGVjdG9yL0luc3BlY3RvckNsaWVudC5jcHAgXAogICAgIGluc3Bl
Y3Rvci9JbnNwZWN0b3JDb250cm9sbGVyLmNwcCBcCkBAIC0xOTM3LDcgKzE5MzYsNiBAQCBIRUFE
RVJTICs9IFwKICAgICBpbnNwZWN0b3IvSW5qZWN0ZWRTY3JpcHQuaCBcCiAgICAgaW5zcGVjdG9y
L0luamVjdGVkU2NyaXB0SG9zdC5oIFwKICAgICBpbnNwZWN0b3IvSW5zcGVjdG9yQXBwbGljYXRp
b25DYWNoZUFnZW50LmggXAotICAgIGluc3BlY3Rvci9JbnNwZWN0b3JCcm93c2VyRGVidWdnZXJB
Z2VudC5oIFwKICAgICBpbnNwZWN0b3IvSW5zcGVjdG9yQ29udHJvbGxlci5oIFwKICAgICBpbnNw
ZWN0b3IvSW5zcGVjdG9yQ1NTQWdlbnQuaCBcCiAgICAgaW5zcGVjdG9yL0luc3BlY3RvckRhdGFi
YXNlQWdlbnQuaCBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9X
ZWJDb3JlLnZjcHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNw
cm9qCmluZGV4IDY1NGM0NGZjYTY4MDk5ZTZmOGE2MzM4MGFhNGY3YmM3ZWM2YjA4NGUuLjg0MzA2
ODdhM2YyN2E0ZGNhZWIyZGIxNzQwZmJjMjE1Y2NmZmNlYTggMTAwNzU1Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCkBAIC02NTAxMCwxNCArNjUwMTAsNiBAQAog
CQkJCT4KIAkJCTwvRmlsZT4KIAkJCTxGaWxlCi0JCQkJUmVsYXRpdmVQYXRoPSIuLlxpbnNwZWN0
b3JcSW5zcGVjdG9yQnJvd3NlckRlYnVnZ2VyQWdlbnQuY3BwIgotCQkJCT4KLQkJCTwvRmlsZT4K
LQkJCTxGaWxlCi0JCQkJUmVsYXRpdmVQYXRoPSIuLlxpbnNwZWN0b3JcSW5zcGVjdG9yQnJvd3Nl
ckRlYnVnZ2VyQWdlbnQuaCIKLQkJCQk+Ci0JCQk8L0ZpbGU+Ci0JCQk8RmlsZQogCQkJCVJlbGF0
aXZlUGF0aD0iLi5caW5zcGVjdG9yXEluc3BlY3RvckNsaWVudC5jcHAiCiAJCQkJPgogCQkJPC9G
aWxlPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qCmluZGV4IGMwZjIyMzA1ZThhMjYzOTUxZDZjYmFmMDg4NjE5YjQ2OGQxNzZkYWUuLmE0MzFi
NWM0NWUyMzMwMDBiYTNjNmFiZGVmZDNjMmM3YmU5NzA5M2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTEyNjYsOCArMTI2Niw2
IEBACiAJCTRGNzA3QTlBMTFFRjY3OTQwMEFDREE2OSAvKiBJbnNwZWN0b3JCYWNrZW5kRGlzcGF0
Y2hlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNEY3
MDdBOTgxMUVGNjc5NDAwQUNEQTY5IC8qIEluc3BlY3RvckJhY2tlbmREaXNwYXRjaGVyLmggKi87
IH07CiAJCTRGQTNCOTBBMTI1Q0QxMjIwMDMwMEJBRCAvKiBJbnNwZWN0b3JTdGF0ZS5jcHAgaW4g
U291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0RkEzQjkwODEyNUNE
MTIxMDAzMDBCQUQgLyogSW5zcGVjdG9yU3RhdGUuY3BwICovOyB9OwogCQk0RkEzQjkwQjEyNUNE
MTIyMDAzMDBCQUQgLyogSW5zcGVjdG9yU3RhdGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDRGQTNCOTA5MTI1Q0QxMjIwMDMwMEJBRCAvKiBJbnNwZWN0
b3JTdGF0ZS5oICovOyB9OwotCQk0RkMyODQyNDEyRERGMjdFMDBCRjQyRTQgLyogSW5zcGVjdG9y
QnJvd3NlckRlYnVnZ2VyQWdlbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDRGQzI4NDIyMTJEREYyN0UwMEJGNDJFNCAvKiBJbnNwZWN0b3JCcm93c2Vy
RGVidWdnZXJBZ2VudC5oICovOyB9OwotCQk0RkMyODQyNTEyRERGMjdFMDBCRjQyRTQgLyogSW5z
cGVjdG9yQnJvd3NlckRlYnVnZ2VyQWdlbnQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gNEZDMjg0MjMxMkRERjI3RTAwQkY0MkU0IC8qIEluc3BlY3Rv
ckJyb3dzZXJEZWJ1Z2dlckFnZW50LmNwcCAqLzsgfTsKIAkJNEZEOEQwRjIxMTlDNzE4QjAwMkZB
ODI1IC8qIFNjcmlwdEdDRXZlbnQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gNEZEOEQwRjAxMTlDNzE4QjAwMkZBODI1IC8qIFNjcmlwdEdDRXZlbnQu
Y3BwICovOyB9OwogCQk0RkQ4RDBGMzExOUM3MThCMDAyRkE4MjUgLyogU2NyaXB0R0NFdmVudC5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNEZEOEQwRjEx
MTlDNzE4QjAwMkZBODI1IC8qIFNjcmlwdEdDRXZlbnQuaCAqLzsgfTsKIAkJNTEwMTg0NjkwQjA4
NjAyQTAwNEE4MjVGIC8qIENhY2hlZFBhZ2UuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDUxMDE4NDY3MEIwODYwMkEwMDRBODI1RiAvKiBDYWNoZWRQYWdl
LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKQEAgLTc2
NDcsOCArNzY0NSw2IEBACiAJCTRGNzA3QTk4MTFFRjY3OTQwMEFDREE2OSAvKiBJbnNwZWN0b3JC
YWNrZW5kRGlzcGF0Y2hlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBJbnNw
ZWN0b3JCYWNrZW5kRGlzcGF0Y2hlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0
RkEzQjkwODEyNUNEMTIxMDAzMDBCQUQgLyogSW5zcGVjdG9yU3RhdGUuY3BwICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSW5zcGVjdG9yU3RhdGUuY3BwOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQk0RkEzQjkwOTEyNUNEMTIyMDAzMDBCQUQgLyogSW5zcGVjdG9y
U3RhdGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSW5zcGVjdG9yU3RhdGUu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJNEZDMjg0MjIxMkRERjI3RTAwQkY0MkU0
IC8qIEluc3BlY3RvckJyb3dzZXJEZWJ1Z2dlckFnZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IEluc3BlY3RvckJyb3dzZXJEZWJ1Z2dlckFnZW50Lmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07Ci0JCTRGQzI4NDIzMTJEREYyN0UwMEJGNDJFNCAvKiBJbnNwZWN0b3JC
cm93c2VyRGVidWdnZXJBZ2VudC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBh
dGggPSBJbnNwZWN0b3JCcm93c2VyRGVidWdnZXJBZ2VudC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTRGRDhEMEYwMTE5QzcxOEIwMDJGQTgyNSAvKiBTY3JpcHRHQ0V2ZW50LmNw
cCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFNjcmlwdEdDRXZlbnQuY3Bw
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0RkQ4RDBGMTExOUM3MThCMDAyRkE4MjUg
LyogU2NyaXB0R0NFdmVudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTY3Jp
cHRHQ0V2ZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUxMDE4NDY3MEIwODYw
MkEwMDRBODI1RiAvKiBDYWNoZWRQYWdlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IENhY2hlZFBhZ2UuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTEyOTI3LDgg
KzEyOTIzLDYgQEAKIAkJCQk3QTU2NDBCRTEyREY5RTVFMDBGNDUzNkQgLyogSW5zcGVjdG9yU2V0
dGluZ3MuaCAqLywKIAkJCQlCODg1RThEMjExRTA2REQyMDA5RkZCRjQgLyogSW5zcGVjdG9yQXBw
bGljYXRpb25DYWNoZUFnZW50LmNwcCAqLywKIAkJCQlCODg1RThEMzExRTA2REQyMDA5RkZCRjQg
LyogSW5zcGVjdG9yQXBwbGljYXRpb25DYWNoZUFnZW50LmggKi8sCi0JCQkJNEZDMjg0MjIxMkRE
RjI3RTAwQkY0MkU0IC8qIEluc3BlY3RvckJyb3dzZXJEZWJ1Z2dlckFnZW50LmggKi8sCi0JCQkJ
NEZDMjg0MjMxMkRERjI3RTAwQkY0MkU0IC8qIEluc3BlY3RvckJyb3dzZXJEZWJ1Z2dlckFnZW50
LmNwcCAqLywKIAkJCQk3QTFGMkI1MTEyNkM2MUIyMDAwNkE3RTYgLyogSW5zcGVjdG9yQ2xpZW50
LmNwcCAqLywKIAkJCQkxQzgxQjk1ODBFOTczMzA4MDAyNjZFMDcgLyogSW5zcGVjdG9yQ2xpZW50
LmggKi8sCiAJCQkJMUM4MUI5NTcwRTk3MzMwODAwMjY2RTA3IC8qIEluc3BlY3RvckNvbnRyb2xs
ZXIuY3BwICovLApAQCAtMjIzMzQsNyArMjIzMjgsNiBAQAogCQkJCTJFMzdERkRCMTJEQkFGQjgw
MEE2QjIzMyAvKiBET01VUkwuaCBpbiBIZWFkZXJzICovLAogCQkJCTJFMzdFMDA2MTJEQkM1QTQw
MEE2QjIzMyAvKiBKU0RPTVVSTC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNEZDMjg0MjQxMkRERjI3
RTAwQkY0MkU0IC8qIEluc3BlY3RvckJyb3dzZXJEZWJ1Z2dlckFnZW50LmggaW4gSGVhZGVycyAq
LywKLQkJCQk0RkMyODQyNDEyRERGMjdFMDBCRjQyRTQgLyogSW5zcGVjdG9yQnJvd3NlckRlYnVn
Z2VyQWdlbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCTdBNTY0MEMwMTJERjlFNUUwMEY0NTM2RCAv
KiBJbnNwZWN0b3JTZXR0aW5ncy5oIGluIEhlYWRlcnMgKi8sCiAJCQkpOwogCQkJcnVuT25seUZv
ckRlcGxveW1lbnRQb3N0cHJvY2Vzc2luZyA9IDA7CkBAIC0yNTAxOSw3ICsyNTAxMiw2IEBACiAJ
CQkJOTNGMTlCMDUwODI0NUU1OTAwMUU5QUJDIC8qIFhTTFRQcm9jZXNzb3JMaWJ4c2x0LmNwcCBp
biBTb3VyY2VzICovLAogCQkJCUUxQkU1MTJEMENGNkM1MTIwMDJFQTk1OSAvKiBYU0xUVW5pY29k
ZVNvcnQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJOTdERDREODYwRkRGNEQ2RTAwRUNGOUE0IC8q
IFhTU0F1ZGl0b3IuY3BwIGluIFNvdXJjZXMgKi8sCi0JCQkJNEZDMjg0MjUxMkRERjI3RTAwQkY0
MkU0IC8qIEluc3BlY3RvckJyb3dzZXJEZWJ1Z2dlckFnZW50LmNwcCBpbiBTb3VyY2VzICovLAog
CQkJCTJFMzdERkRBMTJEQkFGQjgwMEE2QjIzMyAvKiBET01VUkwuY3BwIGluIFNvdXJjZXMgKi8s
CiAJCQkJMkUzN0UwMDUxMkRCQzVBNDAwQTZCMjMzIC8qIEpTRE9NVVJMLmNwcCBpbiBTb3VyY2Vz
ICovLAogCQkJCTRGQzI4NDI1MTJEREYyN0UwMEJGNDJFNCAvKiBJbnNwZWN0b3JCcm93c2VyRGVi
dWdnZXJBZ2VudC5jcHAgaW4gU291cmNlcyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2luc3BlY3Rvci9Db2RlR2VuZXJhdG9ySW5zcGVjdG9yLnBtIGIvU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL0NvZGVHZW5lcmF0b3JJbnNwZWN0b3IucG0KaW5kZXggMzBjYzU2NTM4NTRjZjMwOWNk
N2ZlMDk2MjNkNWM0YmNhZjk3ZmI3MC4uYjhhZWEwZTQxNDA1YWE3YjdhZDk3ZTdmMGI1ZTY3MGVj
MTU3NGRhNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0NvZGVHZW5lcmF0
b3JJbnNwZWN0b3IucG0KKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0NvZGVHZW5lcmF0
b3JJbnNwZWN0b3IucG0KQEAgLTI1LDExICsyNSw2IEBAICR0eXBlVHJhbnNmb3JteyJEZWJ1Z2dl
ciJ9ID0gewogICAgICJoZWFkZXIiID0+ICJJbnNwZWN0b3JEZWJ1Z2dlckFnZW50LmgiLAogICAg
ICJkb21haW5BY2Nlc3NvciIgPT4gIm1faW5zcGVjdG9yQ29udHJvbGxlci0+bV9kZWJ1Z2dlckFn
ZW50IiwKIH07Ci0kdHlwZVRyYW5zZm9ybXsiQnJvd3NlckRlYnVnZ2VyIn0gPSB7Ci0gICAgImZv
cndhcmQiID0+ICJJbnNwZWN0b3JCcm93c2VyRGVidWdnZXJBZ2VudCIsCi0gICAgImhlYWRlciIg
PT4gIkluc3BlY3RvckJyb3dzZXJEZWJ1Z2dlckFnZW50LmgiLAotICAgICJkb21haW5BY2Nlc3Nv
ciIgPT4gIm1faW5zcGVjdG9yQ29udHJvbGxlci0+bV9icm93c2VyRGVidWdnZXJBZ2VudCIsCi19
OwogJHR5cGVUcmFuc2Zvcm17IkRhdGFiYXNlIn0gPSB7CiAgICAgImZvcndhcmQiID0+ICJJbnNw
ZWN0b3JEYXRhYmFzZUFnZW50IiwKICAgICAiaGVhZGVyIiA9PiAiSW5zcGVjdG9yRGF0YWJhc2VB
Z2VudC5oIiwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3Iu
aWRsIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvci5pZGwKaW5kZXggZDNlNjI5
NjBlODNkZjQyODQzYmZhYjcyN2JhYjVkZTRiNWY1MGNlOC4uODdiMzhjMmM1OGZmNmYyNDUwYjc0
NmU4NmU5NGFiZjgyNWNmNGEyYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L0luc3BlY3Rvci5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvci5p
ZGwKQEAgLTIyMyw5ICsyMjMsNiBAQCBtb2R1bGUgY29yZSB7CiAKICAgICAgICAgW2RvbWFpbj1J
bnNwZWN0b3JdIHZvaWQgZW5hYmxlRGVidWdnZXJGcm9tRnJvbnRlbmQoaW4gYm9vbGVhbiBhbHdh
eXMpOwogICAgICAgICBbZG9tYWluPUluc3BlY3Rvcl0gdm9pZCBkaXNhYmxlRGVidWdnZXIoaW4g
Ym9vbGVhbiBhbHdheXMpOwotCi0gICAgICAgIFtkb21haW49SW5zcGVjdG9yXSB2b2lkIHNldFN0
aWNreUJyZWFrcG9pbnRzKGluIE9iamVjdCBicmVha3BvaW50cyk7Ci0KICAgICAgICAgW25vdGlm
eSwgZG9tYWluPURlYnVnZ2VyXSB2b2lkIGRlYnVnZ2VyV2FzRW5hYmxlZCgpOwogICAgICAgICBb
bm90aWZ5LCBkb21haW49RGVidWdnZXJdIHZvaWQgZGVidWdnZXJXYXNEaXNhYmxlZCgpOwogCkBA
IC0yNDAsMTIgKzIzNywxNiBAQCBtb2R1bGUgY29yZSB7CiAgICAgICAgIFtkb21haW49RGVidWdn
ZXJdIHZvaWQgc2V0QnJlYWtwb2ludChpbiBTdHJpbmcgc291cmNlSUQsIGluIHVuc2lnbmVkIGlu
dCBsaW5lTnVtYmVyLCBpbiBTdHJpbmcgY29uZGl0aW9uLCBpbiBib29sZWFuIGVuYWJsZWQsIG91
dCBTdHJpbmcgYnJlYWtwb2ludElkLCBvdXQgdW5zaWduZWQgaW50IGFjdHVhbExpbmVOdW1iZXIp
OwogICAgICAgICBbZG9tYWluPURlYnVnZ2VyXSB2b2lkIHJlbW92ZUJyZWFrcG9pbnQoaW4gU3Ry
aW5nIGJyZWFrcG9pbnRJZCk7CiAKLSAgICAgICAgW2RvbWFpbj1Ccm93c2VyRGVidWdnZXJdIHZv
aWQgc2V0RE9NQnJlYWtwb2ludChpbiBsb25nIG5vZGVJZCwgaW4gbG9uZyB0eXBlKTsKLSAgICAg
ICAgW2RvbWFpbj1Ccm93c2VyRGVidWdnZXJdIHZvaWQgcmVtb3ZlRE9NQnJlYWtwb2ludChpbiBs
b25nIG5vZGVJZCwgaW4gbG9uZyB0eXBlKTsKLSAgICAgICAgW2RvbWFpbj1Ccm93c2VyRGVidWdn
ZXJdIHZvaWQgc2V0RXZlbnRMaXN0ZW5lckJyZWFrcG9pbnQoaW4gU3RyaW5nIGV2ZW50TmFtZSk7
Ci0gICAgICAgIFtkb21haW49QnJvd3NlckRlYnVnZ2VyXSB2b2lkIHJlbW92ZUV2ZW50TGlzdGVu
ZXJCcmVha3BvaW50KGluIFN0cmluZyBldmVudE5hbWUpOwotICAgICAgICBbZG9tYWluPUJyb3dz
ZXJEZWJ1Z2dlcl0gdm9pZCBzZXRYSFJCcmVha3BvaW50KGluIFN0cmluZyB1cmwpOwotICAgICAg
ICBbZG9tYWluPUJyb3dzZXJEZWJ1Z2dlcl0gdm9pZCByZW1vdmVYSFJCcmVha3BvaW50KGluIFN0
cmluZyB1cmwpOworICAgICAgICBbZG9tYWluPUluc3BlY3Rvcl0gdm9pZCBzZXRTdGlja3lCcmVh
a3BvaW50cyhpbiBPYmplY3QgYnJlYWtwb2ludHMpOyAvLyBGSVhNRTogTW92ZSB0byBuZXdseSBp
bnRyb2R1Y2VkIEJyb3dzZXJEZWJ1Z2dlci4KKworICAgICAgICBbZG9tYWluPURPTV0gdm9pZCBz
ZXRET01CcmVha3BvaW50KGluIGxvbmcgbm9kZUlkLCBpbiBsb25nIHR5cGUpOyAvLyBGSVhNRTog
TW92ZSB0byBuZXdseSBpbnRyb2R1Y2VkIEJyb3dzZXJEZWJ1Z2dlci4KKyAgICAgICAgW2RvbWFp
bj1ET01dIHZvaWQgcmVtb3ZlRE9NQnJlYWtwb2ludChpbiBsb25nIG5vZGVJZCwgaW4gbG9uZyB0
eXBlKTsgLy8gRklYTUU6IE1vdmUgdG8gbmV3bHkgaW50cm9kdWNlZCBCcm93c2VyRGVidWdnZXIu
CisKKyAgICAgICAgW2RvbWFpbj1JbnNwZWN0b3JdIHZvaWQgc2V0RXZlbnRMaXN0ZW5lckJyZWFr
cG9pbnQoaW4gU3RyaW5nIGV2ZW50TmFtZSk7IC8vIEZJWE1FOiBNb3ZlIHRvIG5ld2x5IGludHJv
ZHVjZWQgQnJvd3NlckRlYnVnZ2VyLgorICAgICAgICBbZG9tYWluPUluc3BlY3Rvcl0gdm9pZCBy
ZW1vdmVFdmVudExpc3RlbmVyQnJlYWtwb2ludChpbiBTdHJpbmcgZXZlbnROYW1lKTsgLy8gRklY
TUU6IE1vdmUgdG8gbmV3bHkgaW50cm9kdWNlZCBCcm93c2VyRGVidWdnZXIuCisKKyAgICAgICAg
W2RvbWFpbj1JbnNwZWN0b3JdIHZvaWQgc2V0WEhSQnJlYWtwb2ludChpbiBTdHJpbmcgdXJsKTsg
Ly8gRklYTUU6IE1vdmUgdG8gbmV3bHkgaW50cm9kdWNlZCBCcm93c2VyRGVidWdnZXIuCisgICAg
ICAgIFtkb21haW49SW5zcGVjdG9yXSB2b2lkIHJlbW92ZVhIUkJyZWFrcG9pbnQoaW4gU3RyaW5n
IHVybCk7IC8vIEZJWE1FOiBNb3ZlIHRvIG5ld2x5IGludHJvZHVjZWQgQnJvd3NlckRlYnVnZ2Vy
LgogCiAgICAgICAgIFtkb21haW49RGVidWdnZXJdIHZvaWQgc3RlcE92ZXIoKTsKICAgICAgICAg
W2RvbWFpbj1EZWJ1Z2dlcl0gdm9pZCBzdGVwSW50bygpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckJyb3dzZXJEZWJ1Z2dlckFnZW50LmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JCcm93c2VyRGVidWdnZXJBZ2VudC5jcHAKZGVs
ZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGFkMDE5Mjk3MDVkNmZiZGNhNWQ0YTY4MmU2MjZj
ZjM3OWVjN2U1MmUuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0t
IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckJyb3dzZXJEZWJ1Z2dlckFnZW50
LmNwcAorKysgL2Rldi9udWxsCkBAIC0xLDMyNCArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChD
KSAyMDExIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMgYXJlCi0gKiBtZXQ6Ci0gKgotICogICAgICogUmVkaXN0cmlidXRpb25z
IG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
LSAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0
aGUgYWJvdmUKLSAqIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKLSAqIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKLSAqIGRpc3RyaWJ1dGlvbi4KLSAq
ICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBp
dHMKLSAqIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJv
ZHVjdHMgZGVyaXZlZCBmcm9tCi0gKiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJp
b3Igd3JpdHRlbiBwZXJtaXNzaW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKLSAqICJBUyBJUyIgQU5E
IEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCi0g
KiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IKLSAqIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJ
TiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCi0gKiBPV05FUiBPUiBDT05UUklCVVRPUlMg
QkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKLSAqIFNQRUNJ
QUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBO
T1QKLSAqIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VS
VklDRVM7IExPU1MgT0YgVVNFLAotICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5U
RVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCi0gKiBUSEVPUlkgT0YgTElBQklM
SVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAo
SU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VU
IE9GIFRIRSBVU0UKLSAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI2luY2x1ZGUgImNvbmZpZy5oIgot
Ci0jaW5jbHVkZSAiSW5zcGVjdG9yQnJvd3NlckRlYnVnZ2VyQWdlbnQuaCIKLQotI2lmIEVOQUJM
RShJTlNQRUNUT1IpICYmIEVOQUJMRShKQVZBU0NSSVBUX0RFQlVHR0VSKQotCi0jaW5jbHVkZSAi
SFRNTEVsZW1lbnQuaCIKLSNpbmNsdWRlICJJbnNwZWN0b3JDb250cm9sbGVyLmgiCi0jaW5jbHVk
ZSAiSW5zcGVjdG9yRE9NQWdlbnQuaCIKLSNpbmNsdWRlICJJbnNwZWN0b3JEZWJ1Z2dlckFnZW50
LmgiCi0jaW5jbHVkZSAiSW5zcGVjdG9yU3RhdGUuaCIKLQotbmFtZXNwYWNlIHsKLQotZW51bSBE
T01CcmVha3BvaW50VHlwZSB7Ci0gICAgU3VidHJlZU1vZGlmaWVkID0gMCwKLSAgICBBdHRyaWJ1
dGVNb2RpZmllZCwKLSAgICBOb2RlUmVtb3ZlZCwKLSAgICBET01CcmVha3BvaW50VHlwZXNDb3Vu
dAotfTsKLQotc3RhdGljIGNvbnN0IGNoYXIqIGNvbnN0IGRvbU5hdGl2ZUJyZWFrcG9pbnRUeXBl
ID0gIkRPTSI7Ci1zdGF0aWMgY29uc3QgY2hhciogY29uc3QgZXZlbnRMaXN0ZW5lck5hdGl2ZUJy
ZWFrcG9pbnRUeXBlID0gIkV2ZW50TGlzdGVuZXIiOwotc3RhdGljIGNvbnN0IGNoYXIqIGNvbnN0
IHhock5hdGl2ZUJyZWFrcG9pbnRUeXBlID0gIlhIUiI7Ci0KLWNvbnN0IHVpbnQzMl90IGluaGVy
aXRhYmxlRE9NQnJlYWtwb2ludFR5cGVzTWFzayA9ICgxIDw8IFN1YnRyZWVNb2RpZmllZCk7Ci1j
b25zdCBpbnQgZG9tQnJlYWtwb2ludERlcml2ZWRUeXBlU2hpZnQgPSAxNjsKLQotfQotCi1uYW1l
c3BhY2UgV2ViQ29yZSB7Ci0KLUluc3BlY3RvckJyb3dzZXJEZWJ1Z2dlckFnZW50OjpJbnNwZWN0
b3JCcm93c2VyRGVidWdnZXJBZ2VudChJbnNwZWN0b3JDb250cm9sbGVyKiBjb250cm9sbGVyKQot
ICAgIDogbV9jb250cm9sbGVyKGNvbnRyb2xsZXIpCi0gICAgLCBtX2hhc1hIUkJyZWFrcG9pbnRX
aXRoRW1wdHlVUkwoZmFsc2UpCi17Ci19Ci0KLUluc3BlY3RvckJyb3dzZXJEZWJ1Z2dlckFnZW50
Ojp+SW5zcGVjdG9yQnJvd3NlckRlYnVnZ2VyQWdlbnQoKQotewotfQotCi12b2lkIEluc3BlY3Rv
ckJyb3dzZXJEZWJ1Z2dlckFnZW50OjpkaXNjYXJkQmluZGluZ3MoKQotewotICAgIG1fYnJlYWtw
b2ludHMuY2xlYXIoKTsKLX0KLQotdm9pZCBJbnNwZWN0b3JCcm93c2VyRGVidWdnZXJBZ2VudDo6
c2V0RXZlbnRMaXN0ZW5lckJyZWFrcG9pbnQoY29uc3QgU3RyaW5nJiBldmVudE5hbWUpCi17Ci0g
ICAgbV9ldmVudExpc3RlbmVyQnJlYWtwb2ludHMuYWRkKGV2ZW50TmFtZSk7Ci19Ci0KLXZvaWQg
SW5zcGVjdG9yQnJvd3NlckRlYnVnZ2VyQWdlbnQ6OnJlbW92ZUV2ZW50TGlzdGVuZXJCcmVha3Bv
aW50KGNvbnN0IFN0cmluZyYgZXZlbnROYW1lKQotewotICAgIG1fZXZlbnRMaXN0ZW5lckJyZWFr
cG9pbnRzLnJlbW92ZShldmVudE5hbWUpOwotfQotCi12b2lkIEluc3BlY3RvckJyb3dzZXJEZWJ1
Z2dlckFnZW50OjpkaWRJbnNlcnRET01Ob2RlKE5vZGUqIG5vZGUpCi17Ci0gICAgaWYgKG1fYnJl
YWtwb2ludHMuc2l6ZSgpKSB7Ci0gICAgICAgIHVpbnQzMl90IG1hc2sgPSBtX2JyZWFrcG9pbnRz
LmdldChJbnNwZWN0b3JET01BZ2VudDo6aW5uZXJQYXJlbnROb2RlKG5vZGUpKTsKLSAgICAgICAg
dWludDMyX3QgaW5oZXJpdGFibGVUeXBlc01hc2sgPSAobWFzayB8IChtYXNrID4+IGRvbUJyZWFr
cG9pbnREZXJpdmVkVHlwZVNoaWZ0KSkgJiBpbmhlcml0YWJsZURPTUJyZWFrcG9pbnRUeXBlc01h
c2s7Ci0gICAgICAgIGlmIChpbmhlcml0YWJsZVR5cGVzTWFzaykKLSAgICAgICAgICAgIHVwZGF0
ZVN1YnRyZWVCcmVha3BvaW50cyhub2RlLCBpbmhlcml0YWJsZVR5cGVzTWFzaywgdHJ1ZSk7Ci0g
ICAgfQotfQotCi12b2lkIEluc3BlY3RvckJyb3dzZXJEZWJ1Z2dlckFnZW50OjpkaWRSZW1vdmVE
T01Ob2RlKE5vZGUqIG5vZGUpCi17Ci0gICAgaWYgKG1fYnJlYWtwb2ludHMuc2l6ZSgpKSB7Ci0g
ICAgICAgIC8vIFJlbW92ZSBzdWJ0cmVlIGJyZWFrcG9pbnRzLgotICAgICAgICBtX2JyZWFrcG9p
bnRzLnJlbW92ZShub2RlKTsKLSAgICAgICAgVmVjdG9yPE5vZGUqPiBzdGFjaygxLCBJbnNwZWN0
b3JET01BZ2VudDo6aW5uZXJGaXJzdENoaWxkKG5vZGUpKTsKLSAgICAgICAgZG8gewotICAgICAg
ICAgICAgTm9kZSogbm9kZSA9IHN0YWNrLmxhc3QoKTsKLSAgICAgICAgICAgIHN0YWNrLnJlbW92
ZUxhc3QoKTsKLSAgICAgICAgICAgIGlmICghbm9kZSkKLSAgICAgICAgICAgICAgICBjb250aW51
ZTsKLSAgICAgICAgICAgIG1fYnJlYWtwb2ludHMucmVtb3ZlKG5vZGUpOwotICAgICAgICAgICAg
c3RhY2suYXBwZW5kKEluc3BlY3RvckRPTUFnZW50Ojppbm5lckZpcnN0Q2hpbGQobm9kZSkpOwot
ICAgICAgICAgICAgc3RhY2suYXBwZW5kKEluc3BlY3RvckRPTUFnZW50Ojppbm5lck5leHRTaWJs
aW5nKG5vZGUpKTsKLSAgICAgICAgfSB3aGlsZSAoIXN0YWNrLmlzRW1wdHkoKSk7Ci0gICAgfQot
fQotCi12b2lkIEluc3BlY3RvckJyb3dzZXJEZWJ1Z2dlckFnZW50OjpzZXRET01CcmVha3BvaW50
KGxvbmcgbm9kZUlkLCBsb25nIHR5cGUpCi17Ci0gICAgTm9kZSogbm9kZSA9IG1fY29udHJvbGxl
ci0+bV9kb21BZ2VudC0+bm9kZUZvcklkKG5vZGVJZCk7Ci0gICAgaWYgKCFub2RlKQotICAgICAg
ICByZXR1cm47Ci0KLSAgICB1aW50MzJfdCByb290Qml0ID0gMSA8PCB0eXBlOwotICAgIG1fYnJl
YWtwb2ludHMuc2V0KG5vZGUsIG1fYnJlYWtwb2ludHMuZ2V0KG5vZGUpIHwgcm9vdEJpdCk7Ci0g
ICAgaWYgKHJvb3RCaXQgJiBpbmhlcml0YWJsZURPTUJyZWFrcG9pbnRUeXBlc01hc2spIHsKLSAg
ICAgICAgZm9yIChOb2RlKiBjaGlsZCA9IEluc3BlY3RvckRPTUFnZW50Ojppbm5lckZpcnN0Q2hp
bGQobm9kZSk7IGNoaWxkOyBjaGlsZCA9IEluc3BlY3RvckRPTUFnZW50Ojppbm5lck5leHRTaWJs
aW5nKGNoaWxkKSkKLSAgICAgICAgICAgIHVwZGF0ZVN1YnRyZWVCcmVha3BvaW50cyhjaGlsZCwg
cm9vdEJpdCwgdHJ1ZSk7Ci0gICAgfQotfQotCi12b2lkIEluc3BlY3RvckJyb3dzZXJEZWJ1Z2dl
ckFnZW50OjpyZW1vdmVET01CcmVha3BvaW50KGxvbmcgbm9kZUlkLCBsb25nIHR5cGUpCi17Ci0g
ICAgTm9kZSogbm9kZSA9IG1fY29udHJvbGxlci0+bV9kb21BZ2VudC0+bm9kZUZvcklkKG5vZGVJ
ZCk7Ci0gICAgaWYgKCFub2RlKQotICAgICAgICByZXR1cm47Ci0KLSAgICB1aW50MzJfdCByb290
Qml0ID0gMSA8PCB0eXBlOwotICAgIHVpbnQzMl90IG1hc2sgPSBtX2JyZWFrcG9pbnRzLmdldChu
b2RlKSAmIH5yb290Qml0OwotICAgIGlmIChtYXNrKQotICAgICAgICBtX2JyZWFrcG9pbnRzLnNl
dChub2RlLCBtYXNrKTsKLSAgICBlbHNlCi0gICAgICAgIG1fYnJlYWtwb2ludHMucmVtb3ZlKG5v
ZGUpOwotCi0gICAgaWYgKChyb290Qml0ICYgaW5oZXJpdGFibGVET01CcmVha3BvaW50VHlwZXNN
YXNrKSAmJiAhKG1hc2sgJiAocm9vdEJpdCA8PCBkb21CcmVha3BvaW50RGVyaXZlZFR5cGVTaGlm
dCkpKSB7Ci0gICAgICAgIGZvciAoTm9kZSogY2hpbGQgPSBJbnNwZWN0b3JET01BZ2VudDo6aW5u
ZXJGaXJzdENoaWxkKG5vZGUpOyBjaGlsZDsgY2hpbGQgPSBJbnNwZWN0b3JET01BZ2VudDo6aW5u
ZXJOZXh0U2libGluZyhjaGlsZCkpCi0gICAgICAgICAgICB1cGRhdGVTdWJ0cmVlQnJlYWtwb2lu
dHMoY2hpbGQsIHJvb3RCaXQsIGZhbHNlKTsKLSAgICB9Ci19Ci0KLXZvaWQgSW5zcGVjdG9yQnJv
d3NlckRlYnVnZ2VyQWdlbnQ6OndpbGxJbnNlcnRET01Ob2RlKE5vZGUqLCBOb2RlKiBwYXJlbnQp
Ci17Ci0gICAgSW5zcGVjdG9yRGVidWdnZXJBZ2VudCogZGVidWdnZXJBZ2VudCA9IG1fY29udHJv
bGxlci0+bV9kZWJ1Z2dlckFnZW50LmdldCgpOwotICAgIGlmICghZGVidWdnZXJBZ2VudCkKLSAg
ICAgICAgcmV0dXJuOwotCi0gICAgaWYgKGhhc0JyZWFrcG9pbnQocGFyZW50LCBTdWJ0cmVlTW9k
aWZpZWQpKSB7Ci0gICAgICAgIFJlZlB0cjxJbnNwZWN0b3JPYmplY3Q+IGV2ZW50RGF0YSA9IElu
c3BlY3Rvck9iamVjdDo6Y3JlYXRlKCk7Ci0gICAgICAgIGRlc2NyaXB0aW9uRm9yRE9NRXZlbnQo
cGFyZW50LCBTdWJ0cmVlTW9kaWZpZWQsIHRydWUsIGV2ZW50RGF0YS5nZXQoKSk7Ci0gICAgICAg
IGV2ZW50RGF0YS0+c2V0U3RyaW5nKCJicmVha3BvaW50VHlwZSIsIGRvbU5hdGl2ZUJyZWFrcG9p
bnRUeXBlKTsKLSAgICAgICAgZGVidWdnZXJBZ2VudC0+YnJlYWtQcm9ncmFtKE5hdGl2ZUJyZWFr
cG9pbnREZWJ1Z2dlckV2ZW50VHlwZSwgZXZlbnREYXRhLnJlbGVhc2UoKSk7Ci0gICAgfQotfQot
Ci12b2lkIEluc3BlY3RvckJyb3dzZXJEZWJ1Z2dlckFnZW50Ojp3aWxsUmVtb3ZlRE9NTm9kZShO
b2RlKiBub2RlKQotewotICAgIEluc3BlY3RvckRlYnVnZ2VyQWdlbnQqIGRlYnVnZ2VyQWdlbnQg
PSBtX2NvbnRyb2xsZXItPm1fZGVidWdnZXJBZ2VudC5nZXQoKTsKLSAgICBpZiAoIWRlYnVnZ2Vy
QWdlbnQpCi0gICAgICAgIHJldHVybjsKLQotICAgIGlmIChoYXNCcmVha3BvaW50KG5vZGUsIE5v
ZGVSZW1vdmVkKSkgewotICAgICAgICBSZWZQdHI8SW5zcGVjdG9yT2JqZWN0PiBldmVudERhdGEg
PSBJbnNwZWN0b3JPYmplY3Q6OmNyZWF0ZSgpOwotICAgICAgICBkZXNjcmlwdGlvbkZvckRPTUV2
ZW50KG5vZGUsIE5vZGVSZW1vdmVkLCBmYWxzZSwgZXZlbnREYXRhLmdldCgpKTsKLSAgICAgICAg
ZXZlbnREYXRhLT5zZXRTdHJpbmcoImJyZWFrcG9pbnRUeXBlIiwgZG9tTmF0aXZlQnJlYWtwb2lu
dFR5cGUpOwotICAgICAgICBkZWJ1Z2dlckFnZW50LT5icmVha1Byb2dyYW0oTmF0aXZlQnJlYWtw
b2ludERlYnVnZ2VyRXZlbnRUeXBlLCBldmVudERhdGEucmVsZWFzZSgpKTsKLSAgICB9IGVsc2Ug
aWYgKGhhc0JyZWFrcG9pbnQoSW5zcGVjdG9yRE9NQWdlbnQ6OmlubmVyUGFyZW50Tm9kZShub2Rl
KSwgU3VidHJlZU1vZGlmaWVkKSkgewotICAgICAgICBSZWZQdHI8SW5zcGVjdG9yT2JqZWN0PiBl
dmVudERhdGEgPSBJbnNwZWN0b3JPYmplY3Q6OmNyZWF0ZSgpOwotICAgICAgICBkZXNjcmlwdGlv
bkZvckRPTUV2ZW50KG5vZGUsIFN1YnRyZWVNb2RpZmllZCwgZmFsc2UsIGV2ZW50RGF0YS5nZXQo
KSk7Ci0gICAgICAgIGV2ZW50RGF0YS0+c2V0U3RyaW5nKCJicmVha3BvaW50VHlwZSIsIGRvbU5h
dGl2ZUJyZWFrcG9pbnRUeXBlKTsKLSAgICAgICAgZGVidWdnZXJBZ2VudC0+YnJlYWtQcm9ncmFt
KE5hdGl2ZUJyZWFrcG9pbnREZWJ1Z2dlckV2ZW50VHlwZSwgZXZlbnREYXRhLnJlbGVhc2UoKSk7
Ci0gICAgfQotfQotCi12b2lkIEluc3BlY3RvckJyb3dzZXJEZWJ1Z2dlckFnZW50Ojp3aWxsTW9k
aWZ5RE9NQXR0cihFbGVtZW50KiBlbGVtZW50KQotewotICAgIEluc3BlY3RvckRlYnVnZ2VyQWdl
bnQqIGRlYnVnZ2VyQWdlbnQgPSBtX2NvbnRyb2xsZXItPm1fZGVidWdnZXJBZ2VudC5nZXQoKTsK
LSAgICBpZiAoIWRlYnVnZ2VyQWdlbnQpCi0gICAgICAgIHJldHVybjsKLQotICAgIGlmIChoYXNC
cmVha3BvaW50KGVsZW1lbnQsIEF0dHJpYnV0ZU1vZGlmaWVkKSkgewotICAgICAgICBSZWZQdHI8
SW5zcGVjdG9yT2JqZWN0PiBldmVudERhdGEgPSBJbnNwZWN0b3JPYmplY3Q6OmNyZWF0ZSgpOwot
ICAgICAgICBkZXNjcmlwdGlvbkZvckRPTUV2ZW50KGVsZW1lbnQsIEF0dHJpYnV0ZU1vZGlmaWVk
LCBmYWxzZSwgZXZlbnREYXRhLmdldCgpKTsKLSAgICAgICAgZXZlbnREYXRhLT5zZXRTdHJpbmco
ImJyZWFrcG9pbnRUeXBlIiwgZG9tTmF0aXZlQnJlYWtwb2ludFR5cGUpOwotICAgICAgICBkZWJ1
Z2dlckFnZW50LT5icmVha1Byb2dyYW0oTmF0aXZlQnJlYWtwb2ludERlYnVnZ2VyRXZlbnRUeXBl
LCBldmVudERhdGEucmVsZWFzZSgpKTsKLSAgICB9Ci19Ci0KLXZvaWQgSW5zcGVjdG9yQnJvd3Nl
ckRlYnVnZ2VyQWdlbnQ6OmRlc2NyaXB0aW9uRm9yRE9NRXZlbnQoTm9kZSogdGFyZ2V0LCBsb25n
IGJyZWFrcG9pbnRUeXBlLCBib29sIGluc2VydGlvbiwgSW5zcGVjdG9yT2JqZWN0KiBkZXNjcmlw
dGlvbikKLXsKLSAgICBBU1NFUlQoaGFzQnJlYWtwb2ludCh0YXJnZXQsIGJyZWFrcG9pbnRUeXBl
KSk7Ci0KLSAgICBOb2RlKiBicmVha3BvaW50T3duZXIgPSB0YXJnZXQ7Ci0gICAgaWYgKCgxIDw8
IGJyZWFrcG9pbnRUeXBlKSAmIGluaGVyaXRhYmxlRE9NQnJlYWtwb2ludFR5cGVzTWFzaykgewot
ICAgICAgICAvLyBGb3IgaW5oZXJpdGFibGUgYnJlYWtwb2ludCB0eXBlcywgdGFyZ2V0IG5vZGUg
aXNuJ3QgYWx3YXlzIHRoZSBzYW1lIGFzIHRoZSBub2RlIHRoYXQgb3ducyBhIGJyZWFrcG9pbnQu
Ci0gICAgICAgIC8vIFRhcmdldCBub2RlIG1heSBiZSB1bmtub3duIHRvIGZyb250ZW5kLCBzbyB3
ZSBuZWVkIHRvIHB1c2ggaXQgZmlyc3QuCi0gICAgICAgIGxvbmcgdGFyZ2V0Tm9kZUlkID0gbV9j
b250cm9sbGVyLT5tX2RvbUFnZW50LT5wdXNoTm9kZVBhdGhUb0Zyb250ZW5kKHRhcmdldCk7Ci0g
ICAgICAgIEFTU0VSVCh0YXJnZXROb2RlSWQpOwotICAgICAgICBkZXNjcmlwdGlvbi0+c2V0TnVt
YmVyKCJ0YXJnZXROb2RlSWQiLCB0YXJnZXROb2RlSWQpOwotCi0gICAgICAgIC8vIEZpbmQgYnJl
YWtwb2ludCBvd25lciBub2RlLgotICAgICAgICBpZiAoIWluc2VydGlvbikKLSAgICAgICAgICAg
IGJyZWFrcG9pbnRPd25lciA9IEluc3BlY3RvckRPTUFnZW50Ojppbm5lclBhcmVudE5vZGUodGFy
Z2V0KTsKLSAgICAgICAgQVNTRVJUKGJyZWFrcG9pbnRPd25lcik7Ci0gICAgICAgIHdoaWxlICgh
KG1fYnJlYWtwb2ludHMuZ2V0KGJyZWFrcG9pbnRPd25lcikgJiAoMSA8PCBicmVha3BvaW50VHlw
ZSkpKSB7Ci0gICAgICAgICAgICBicmVha3BvaW50T3duZXIgPSBJbnNwZWN0b3JET01BZ2VudDo6
aW5uZXJQYXJlbnROb2RlKGJyZWFrcG9pbnRPd25lcik7Ci0gICAgICAgICAgICBBU1NFUlQoYnJl
YWtwb2ludE93bmVyKTsKLSAgICAgICAgfQotCi0gICAgICAgIGlmIChicmVha3BvaW50VHlwZSA9
PSBTdWJ0cmVlTW9kaWZpZWQpCi0gICAgICAgICAgICBkZXNjcmlwdGlvbi0+c2V0Qm9vbGVhbigi
aW5zZXJ0aW9uIiwgaW5zZXJ0aW9uKTsKLSAgICB9Ci0KLSAgICBsb25nIGJyZWFrcG9pbnRPd25l
ck5vZGVJZCA9IG1fY29udHJvbGxlci0+bV9kb21BZ2VudC0+cHVzaE5vZGVQYXRoVG9Gcm9udGVu
ZChicmVha3BvaW50T3duZXIpOwotICAgIEFTU0VSVChicmVha3BvaW50T3duZXJOb2RlSWQpOwot
ICAgIGRlc2NyaXB0aW9uLT5zZXROdW1iZXIoIm5vZGVJZCIsIGJyZWFrcG9pbnRPd25lck5vZGVJ
ZCk7Ci0gICAgZGVzY3JpcHRpb24tPnNldE51bWJlcigidHlwZSIsIGJyZWFrcG9pbnRUeXBlKTsK
LX0KLQotYm9vbCBJbnNwZWN0b3JCcm93c2VyRGVidWdnZXJBZ2VudDo6aGFzQnJlYWtwb2ludChO
b2RlKiBub2RlLCBsb25nIHR5cGUpCi17Ci0gICAgdWludDMyX3Qgcm9vdEJpdCA9IDEgPDwgdHlw
ZTsKLSAgICB1aW50MzJfdCBkZXJpdmVkQml0ID0gcm9vdEJpdCA8PCBkb21CcmVha3BvaW50RGVy
aXZlZFR5cGVTaGlmdDsKLSAgICByZXR1cm4gbV9icmVha3BvaW50cy5nZXQobm9kZSkgJiAocm9v
dEJpdCB8IGRlcml2ZWRCaXQpOwotfQotCi12b2lkIEluc3BlY3RvckJyb3dzZXJEZWJ1Z2dlckFn
ZW50Ojp1cGRhdGVTdWJ0cmVlQnJlYWtwb2ludHMoTm9kZSogbm9kZSwgdWludDMyX3Qgcm9vdE1h
c2ssIGJvb2wgc2V0KQotewotICAgIHVpbnQzMl90IG9sZE1hc2sgPSBtX2JyZWFrcG9pbnRzLmdl
dChub2RlKTsKLSAgICB1aW50MzJfdCBkZXJpdmVkTWFzayA9IHJvb3RNYXNrIDw8IGRvbUJyZWFr
cG9pbnREZXJpdmVkVHlwZVNoaWZ0OwotICAgIHVpbnQzMl90IG5ld01hc2sgPSBzZXQgPyBvbGRN
YXNrIHwgZGVyaXZlZE1hc2sgOiBvbGRNYXNrICYgfmRlcml2ZWRNYXNrOwotICAgIGlmIChuZXdN
YXNrKQotICAgICAgICBtX2JyZWFrcG9pbnRzLnNldChub2RlLCBuZXdNYXNrKTsKLSAgICBlbHNl
Ci0gICAgICAgIG1fYnJlYWtwb2ludHMucmVtb3ZlKG5vZGUpOwotCi0gICAgdWludDMyX3QgbmV3
Um9vdE1hc2sgPSByb290TWFzayAmIH5uZXdNYXNrOwotICAgIGlmICghbmV3Um9vdE1hc2spCi0g
ICAgICAgIHJldHVybjsKLQotICAgIGZvciAoTm9kZSogY2hpbGQgPSBJbnNwZWN0b3JET01BZ2Vu
dDo6aW5uZXJGaXJzdENoaWxkKG5vZGUpOyBjaGlsZDsgY2hpbGQgPSBJbnNwZWN0b3JET01BZ2Vu
dDo6aW5uZXJOZXh0U2libGluZyhjaGlsZCkpCi0gICAgICAgIHVwZGF0ZVN1YnRyZWVCcmVha3Bv
aW50cyhjaGlsZCwgbmV3Um9vdE1hc2ssIHNldCk7Ci19Ci0KLXZvaWQgSW5zcGVjdG9yQnJvd3Nl
ckRlYnVnZ2VyQWdlbnQ6OnBhdXNlT25OYXRpdmVFdmVudElmTmVlZGVkKGNvbnN0IFN0cmluZyYg
Y2F0ZWdvcnlUeXBlLCBjb25zdCBTdHJpbmcmIGV2ZW50TmFtZSwgYm9vbCBzeW5jaHJvbm91cykK
LXsKLSAgICBJbnNwZWN0b3JEZWJ1Z2dlckFnZW50KiBkZWJ1Z2dlckFnZW50ID0gbV9jb250cm9s
bGVyLT5tX2RlYnVnZ2VyQWdlbnQuZ2V0KCk7Ci0gICAgaWYgKCFkZWJ1Z2dlckFnZW50KQotICAg
ICAgICByZXR1cm47Ci0KLSAgICBTdHJpbmcgZnVsbEV2ZW50TmFtZSA9IFN0cmluZzo6Zm9ybWF0
KCIlczolcyIsIGNhdGVnb3J5VHlwZS51dGY4KCkuZGF0YSgpLCBldmVudE5hbWUudXRmOCgpLmRh
dGEoKSk7Ci0gICAgaWYgKCFtX2V2ZW50TGlzdGVuZXJCcmVha3BvaW50cy5jb250YWlucyhmdWxs
RXZlbnROYW1lKSkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgUmVmUHRyPEluc3BlY3Rvck9iamVj
dD4gZXZlbnREYXRhID0gSW5zcGVjdG9yT2JqZWN0OjpjcmVhdGUoKTsKLSAgICBldmVudERhdGEt
PnNldFN0cmluZygiYnJlYWtwb2ludFR5cGUiLCBldmVudExpc3RlbmVyTmF0aXZlQnJlYWtwb2lu
dFR5cGUpOwotICAgIGV2ZW50RGF0YS0+c2V0U3RyaW5nKCJldmVudE5hbWUiLCBmdWxsRXZlbnRO
YW1lKTsKLSAgICBpZiAoc3luY2hyb25vdXMpCi0gICAgICAgIGRlYnVnZ2VyQWdlbnQtPmJyZWFr
UHJvZ3JhbShOYXRpdmVCcmVha3BvaW50RGVidWdnZXJFdmVudFR5cGUsIGV2ZW50RGF0YS5yZWxl
YXNlKCkpOwotICAgIGVsc2UKLSAgICAgICAgZGVidWdnZXJBZ2VudC0+c2NoZWR1bGVQYXVzZU9u
TmV4dFN0YXRlbWVudChOYXRpdmVCcmVha3BvaW50RGVidWdnZXJFdmVudFR5cGUsIGV2ZW50RGF0
YS5yZWxlYXNlKCkpOwotfQotCi12b2lkIEluc3BlY3RvckJyb3dzZXJEZWJ1Z2dlckFnZW50Ojpz
ZXRYSFJCcmVha3BvaW50KGNvbnN0IFN0cmluZyYgdXJsKQotewotICAgIGlmICh1cmwuaXNFbXB0
eSgpKQotICAgICAgICBtX2hhc1hIUkJyZWFrcG9pbnRXaXRoRW1wdHlVUkwgPSB0cnVlOwotICAg
IGVsc2UKLSAgICAgICAgbV9YSFJCcmVha3BvaW50cy5hZGQodXJsKTsKLX0KLQotdm9pZCBJbnNw
ZWN0b3JCcm93c2VyRGVidWdnZXJBZ2VudDo6cmVtb3ZlWEhSQnJlYWtwb2ludChjb25zdCBTdHJp
bmcmIHVybCkKLXsKLSAgICBpZiAodXJsLmlzRW1wdHkoKSkKLSAgICAgICAgbV9oYXNYSFJCcmVh
a3BvaW50V2l0aEVtcHR5VVJMID0gZmFsc2U7Ci0gICAgZWxzZQotICAgICAgICBtX1hIUkJyZWFr
cG9pbnRzLnJlbW92ZSh1cmwpOwotfQotCi12b2lkIEluc3BlY3RvckJyb3dzZXJEZWJ1Z2dlckFn
ZW50Ojp3aWxsU2VuZFhNTEh0dHBSZXF1ZXN0KGNvbnN0IFN0cmluZyYgdXJsKQotewotICAgIElu
c3BlY3RvckRlYnVnZ2VyQWdlbnQqIGRlYnVnZ2VyQWdlbnQgPSBtX2NvbnRyb2xsZXItPm1fZGVi
dWdnZXJBZ2VudC5nZXQoKTsKLSAgICBpZiAoIWRlYnVnZ2VyQWdlbnQpCi0gICAgICAgIHJldHVy
bjsKLQotICAgIFN0cmluZyBicmVha3BvaW50VVJMOwotICAgIGlmIChtX2hhc1hIUkJyZWFrcG9p
bnRXaXRoRW1wdHlVUkwpCi0gICAgICAgIGJyZWFrcG9pbnRVUkwgPSAiIjsKLSAgICBlbHNlIHsK
LSAgICAgICAgZm9yIChIYXNoU2V0PFN0cmluZz46Oml0ZXJhdG9yIGl0ID0gbV9YSFJCcmVha3Bv
aW50cy5iZWdpbigpOyBpdCAhPSBtX1hIUkJyZWFrcG9pbnRzLmVuZCgpOyArK2l0KSB7Ci0gICAg
ICAgICAgICBpZiAodXJsLmNvbnRhaW5zKCppdCkpIHsKLSAgICAgICAgICAgICAgICBicmVha3Bv
aW50VVJMID0gKml0OwotICAgICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAgfQotICAg
ICAgICB9Ci0gICAgfQotCi0gICAgaWYgKCFicmVha3BvaW50VVJMLmlzTnVsbCgpKQotICAgICAg
ICByZXR1cm47Ci0KLSAgICBSZWZQdHI8SW5zcGVjdG9yT2JqZWN0PiBldmVudERhdGEgPSBJbnNw
ZWN0b3JPYmplY3Q6OmNyZWF0ZSgpOwotICAgIGV2ZW50RGF0YS0+c2V0U3RyaW5nKCJicmVha3Bv
aW50VHlwZSIsIHhock5hdGl2ZUJyZWFrcG9pbnRUeXBlKTsKLSAgICBldmVudERhdGEtPnNldFN0
cmluZygiYnJlYWtwb2ludFVSTCIsIGJyZWFrcG9pbnRVUkwpOwotICAgIGV2ZW50RGF0YS0+c2V0
U3RyaW5nKCJ1cmwiLCB1cmwpOwotICAgIGRlYnVnZ2VyQWdlbnQtPmJyZWFrUHJvZ3JhbShOYXRp
dmVCcmVha3BvaW50RGVidWdnZXJFdmVudFR5cGUsIGV2ZW50RGF0YS5yZWxlYXNlKCkpOwotfQot
Ci12b2lkIEluc3BlY3RvckJyb3dzZXJEZWJ1Z2dlckFnZW50OjpjbGVhckZvclBhZ2VOYXZpZ2F0
aW9uKCkKLXsKLSAgICBtX2V2ZW50TGlzdGVuZXJCcmVha3BvaW50cy5jbGVhcigpOwotICAgIG1f
WEhSQnJlYWtwb2ludHMuY2xlYXIoKTsKLSAgICBtX2hhc1hIUkJyZWFrcG9pbnRXaXRoRW1wdHlV
UkwgPSBmYWxzZTsKLX0KLQotfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQotCi0jZW5kaWYgLy8gRU5B
QkxFKElOU1BFQ1RPUikgJiYgRU5BQkxFKEpBVkFTQ1JJUFRfREVCVUdHRVIpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQnJvd3NlckRlYnVnZ2VyQWdlbnQu
aCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JCcm93c2VyRGVidWdnZXJBZ2Vu
dC5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBkOGE1YjdmM2UwNGYwNTljZjNjMTdi
NmZiZTA5NjI4YTg2NWY3NTJlLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwCi0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JCcm93c2VyRGVidWdn
ZXJBZ2VudC5oCisrKyAvZGV2L251bGwKQEAgLTEsOTcgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdo
dCAoQykgMjAxMSBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zIGFyZQotICogbWV0OgotICoKLSAqICAgICAqIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCi0gKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlCi0gKiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCi0gKiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCi0gKiBkaXN0cmlidXRpb24u
Ci0gKiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMg
b2YgaXRzCi0gKiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3Rl
IHByb2R1Y3RzIGRlcml2ZWQgZnJvbQotICogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmlj
IHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCi0gKiAiQVMgSVMi
IEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VAotICogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SCi0gKiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAotICogT1dORVIgT1IgQ09OVFJJQlVU
T1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCi0gKiBT
UEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBC
VVQgTk9UCi0gKiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKLSAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNT
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQotICogVEhFT1JZIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAot
ICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFCi0gKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0Yg
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNpZm5kZWYgSW5zcGVjdG9y
QnJvd3NlckRlYnVnZ2VyQWdlbnRfaAotI2RlZmluZSBJbnNwZWN0b3JCcm93c2VyRGVidWdnZXJB
Z2VudF9oCi0KLSNpZiBFTkFCTEUoSkFWQVNDUklQVF9ERUJVR0dFUikgJiYgRU5BQkxFKElOU1BF
Q1RPUikKLQotI2luY2x1ZGUgIlBsYXRmb3JtU3RyaW5nLmgiCi0KLSNpbmNsdWRlIDx3dGYvSGFz
aE1hcC5oPgotI2luY2x1ZGUgPHd0Zi9IYXNoU2V0Lmg+Ci0jaW5jbHVkZSA8d3RmL1Bhc3NPd25Q
dHIuaD4KLSNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgotI2luY2x1ZGUgPHd0Zi90ZXh0L1N0
cmluZ0hhc2guaD4KLQotbmFtZXNwYWNlIFdlYkNvcmUgewotCi1jbGFzcyBFbGVtZW50OwotY2xh
c3MgSW5zcGVjdG9yQ29udHJvbGxlcjsKLWNsYXNzIEluc3BlY3Rvck9iamVjdDsKLWNsYXNzIE5v
ZGU7Ci0KLWNsYXNzIEluc3BlY3RvckJyb3dzZXJEZWJ1Z2dlckFnZW50IDogcHVibGljIE5vbmNv
cHlhYmxlIHsKLXB1YmxpYzoKLSAgICBzdGF0aWMgUGFzc093blB0cjxJbnNwZWN0b3JCcm93c2Vy
RGVidWdnZXJBZ2VudD4gY3JlYXRlKEluc3BlY3RvckNvbnRyb2xsZXIqIGNvbnRyb2xsZXIpCi0g
ICAgewotICAgICAgICByZXR1cm4gYWRvcHRQdHIobmV3IEluc3BlY3RvckJyb3dzZXJEZWJ1Z2dl
ckFnZW50KGNvbnRyb2xsZXIpKTsKLSAgICB9Ci0KLSAgICB2aXJ0dWFsIH5JbnNwZWN0b3JCcm93
c2VyRGVidWdnZXJBZ2VudCgpOwotCi0gICAgLy8gQnJvd3NlckRlYnVnZ2VyIEFQSSBmb3IgSW5z
cGVjdG9yRnJvbnRlbmQKLSAgICB2b2lkIHNldFhIUkJyZWFrcG9pbnQoY29uc3QgU3RyaW5nJiB1
cmwpOwotICAgIHZvaWQgcmVtb3ZlWEhSQnJlYWtwb2ludChjb25zdCBTdHJpbmcmIHVybCk7Ci0g
ICAgdm9pZCBzZXRFdmVudExpc3RlbmVyQnJlYWtwb2ludChjb25zdCBTdHJpbmcmIGV2ZW50TmFt
ZSk7Ci0gICAgdm9pZCByZW1vdmVFdmVudExpc3RlbmVyQnJlYWtwb2ludChjb25zdCBTdHJpbmcm
IGV2ZW50TmFtZSk7Ci0gICAgdm9pZCBzZXRET01CcmVha3BvaW50KGxvbmcgbm9kZUlkLCBsb25n
IHR5cGUpOwotICAgIHZvaWQgcmVtb3ZlRE9NQnJlYWtwb2ludChsb25nIG5vZGVJZCwgbG9uZyB0
eXBlKTsKLQotICAgIC8vIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbiBBUEkKLSAgICB2b2lkIHdp
bGxJbnNlcnRET01Ob2RlKE5vZGUqLCBOb2RlKiBwYXJlbnQpOwotICAgIHZvaWQgZGlkSW5zZXJ0
RE9NTm9kZShOb2RlKik7Ci0gICAgdm9pZCB3aWxsUmVtb3ZlRE9NTm9kZShOb2RlKik7Ci0gICAg
dm9pZCBkaWRSZW1vdmVET01Ob2RlKE5vZGUqKTsKLSAgICB2b2lkIHdpbGxNb2RpZnlET01BdHRy
KEVsZW1lbnQqKTsKLSAgICB2b2lkIHdpbGxTZW5kWE1MSHR0cFJlcXVlc3QoY29uc3QgU3RyaW5n
JiB1cmwpOwotICAgIHZvaWQgcGF1c2VPbk5hdGl2ZUV2ZW50SWZOZWVkZWQoY29uc3QgU3RyaW5n
JiBjYXRlZ29yeVR5cGUsIGNvbnN0IFN0cmluZyYgZXZlbnROYW1lLCBib29sIHN5bmNocm9ub3Vz
KTsKLQotICAgIHZvaWQgY2xlYXJGb3JQYWdlTmF2aWdhdGlvbigpOwotcHJpdmF0ZToKLSAgICBJ
bnNwZWN0b3JCcm93c2VyRGVidWdnZXJBZ2VudChJbnNwZWN0b3JDb250cm9sbGVyKik7Ci0KLSAg
ICB2b2lkIGRlc2NyaXB0aW9uRm9yRE9NRXZlbnQoTm9kZSogdGFyZ2V0LCBsb25nIGJyZWFrcG9p
bnRUeXBlLCBib29sIGluc2VydGlvbiwgSW5zcGVjdG9yT2JqZWN0KiBkZXNjcmlwdGlvbik7Ci0g
ICAgdm9pZCB1cGRhdGVTdWJ0cmVlQnJlYWtwb2ludHMoTm9kZSosIHVpbnQzMl90IHJvb3RNYXNr
LCBib29sIHNldCk7Ci0gICAgYm9vbCBoYXNCcmVha3BvaW50KE5vZGUqLCBsb25nIHR5cGUpOwot
ICAgIHZvaWQgZGlzY2FyZEJpbmRpbmdzKCk7Ci0KLSAgICBJbnNwZWN0b3JDb250cm9sbGVyKiBt
X2NvbnRyb2xsZXI7Ci0gICAgSGFzaE1hcDxOb2RlKiwgdWludDMyX3Q+IG1fYnJlYWtwb2ludHM7
Ci0gICAgSGFzaFNldDxTdHJpbmc+IG1fZXZlbnRMaXN0ZW5lckJyZWFrcG9pbnRzOwotICAgIEhh
c2hTZXQ8U3RyaW5nPiBtX1hIUkJyZWFrcG9pbnRzOwotICAgIGJvb2wgbV9oYXNYSFJCcmVha3Bv
aW50V2l0aEVtcHR5VVJMOwotfTsKLQotfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQotCi0jZW5kaWYg
Ly8gRU5BQkxFKEpBVkFTQ1JJUFRfREVCVUdHRVIpICYmIEVOQUJMRShJTlNQRUNUT1IpCi0KLSNl
bmRpZiAvLyAhZGVmaW5lZChJbnNwZWN0b3JCcm93c2VyRGVidWdnZXJBZ2VudF9oKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNvbnRyb2xsZXIuY3BwIGIv
U291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNvbnRyb2xsZXIuY3BwCmluZGV4IGU1
OTYwMGVkYTAwMWQ2NGMwM2Q0ZTg0ZmMyZmZlMTgwZmRjZDJjOTMuLjY1NDdmYjdmY2FiOGVmZDQ2
N2JjNGFmNmZiZTMwMjdhZGU2YTY1NTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3Bl
Y3Rvci9JbnNwZWN0b3JDb250cm9sbGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0
b3IvSW5zcGVjdG9yQ29udHJvbGxlci5jcHAKQEAgLTU4LDcgKzU4LDYgQEAKICNpbmNsdWRlICJJ
bmplY3RlZFNjcmlwdC5oIgogI2luY2x1ZGUgIkluamVjdGVkU2NyaXB0SG9zdC5oIgogI2luY2x1
ZGUgIkluc3BlY3RvckJhY2tlbmREaXNwYXRjaGVyLmgiCi0jaW5jbHVkZSAiSW5zcGVjdG9yQnJv
d3NlckRlYnVnZ2VyQWdlbnQuaCIKICNpbmNsdWRlICJJbnNwZWN0b3JDU1NBZ2VudC5oIgogI2lu
Y2x1ZGUgIkluc3BlY3RvckNsaWVudC5oIgogI2luY2x1ZGUgIkluc3BlY3RvckRPTUFnZW50Lmgi
CkBAIC0xNDYsNiArMTQ1LDcgQEAgSW5zcGVjdG9yQ29udHJvbGxlcjo6SW5zcGVjdG9yQ29udHJv
bGxlcihQYWdlKiBwYWdlLCBJbnNwZWN0b3JDbGllbnQqIGNsaWVudCkKICAgICAsIG1faW5qZWN0
ZWRTY3JpcHRIb3N0KEluamVjdGVkU2NyaXB0SG9zdDo6Y3JlYXRlKHRoaXMpKQogI2lmIEVOQUJM
RShKQVZBU0NSSVBUX0RFQlVHR0VSKQogICAgICwgbV9hdHRhY2hEZWJ1Z2dlcldoZW5TaG93bihm
YWxzZSkKKyAgICAsIG1faGFzWEhSQnJlYWtwb2ludFdpdGhFbXB0eVVSTChmYWxzZSkKICAgICAs
IG1fcHJvZmlsZXJBZ2VudChJbnNwZWN0b3JQcm9maWxlckFnZW50OjpjcmVhdGUodGhpcykpCiAj
ZW5kaWYKIHsKQEAgLTE3NSw3ICsxNzUsNiBAQCB2b2lkIEluc3BlY3RvckNvbnRyb2xsZXI6Omlu
c3BlY3RlZFBhZ2VEZXN0cm95ZWQoKQogCiAjaWYgRU5BQkxFKEpBVkFTQ1JJUFRfREVCVUdHRVIp
CiAgICAgbV9kZWJ1Z2dlckFnZW50LmNsZWFyKCk7Ci0gICAgbV9icm93c2VyRGVidWdnZXJBZ2Vu
dC5jbGVhcigpOwogI2VuZGlmCiAgICAgQVNTRVJUKG1faW5zcGVjdGVkUGFnZSk7CiAgICAgbV9p
bnNwZWN0ZWRQYWdlID0gMDsKQEAgLTcyNSw4ICs3MjQsNiBAQCB2b2lkIEluc3BlY3RvckNvbnRy
b2xsZXI6OmRpZENvbW1pdExvYWQoRG9jdW1lbnRMb2FkZXIqIGxvYWRlcikKICNpZiBFTkFCTEUo
SkFWQVNDUklQVF9ERUJVR0dFUikKICAgICAgICAgaWYgKG1fZGVidWdnZXJBZ2VudCkgewogICAg
ICAgICAgICAgbV9kZWJ1Z2dlckFnZW50LT5jbGVhckZvclBhZ2VOYXZpZ2F0aW9uKCk7Ci0gICAg
ICAgICAgICBpZiAobV9icm93c2VyRGVidWdnZXJBZ2VudCkKLSAgICAgICAgICAgICAgICBtX2Jy
b3dzZXJEZWJ1Z2dlckFnZW50LT5jbGVhckZvclBhZ2VOYXZpZ2F0aW9uKCk7CiAgICAgICAgICAg
ICByZXN0b3JlU3RpY2t5QnJlYWtwb2ludHMoKTsKICAgICAgICAgfQogI2VuZGlmCkBAIC0xMTgw
LDcgKzExNzcsNiBAQCB2b2lkIEluc3BlY3RvckNvbnRyb2xsZXI6OmVuYWJsZURlYnVnZ2VyRnJv
bUZyb250ZW5kKGJvb2wgYWx3YXlzKQogICAgIEFTU0VSVChtX2luc3BlY3RlZFBhZ2UpOwogCiAg
ICAgbV9kZWJ1Z2dlckFnZW50ID0gSW5zcGVjdG9yRGVidWdnZXJBZ2VudDo6Y3JlYXRlKHRoaXMs
IG1fZnJvbnRlbmQuZ2V0KCkpOwotICAgIG1fYnJvd3NlckRlYnVnZ2VyQWdlbnQgPSBJbnNwZWN0
b3JCcm93c2VyRGVidWdnZXJBZ2VudDo6Y3JlYXRlKHRoaXMpOwogICAgIHJlc3RvcmVTdGlja3lC
cmVha3BvaW50cygpOwogCiAgICAgbV9mcm9udGVuZC0+ZGVidWdnZXJXYXNFbmFibGVkKCk7CkBA
IC0xMjEzLDcgKzEyMDksNiBAQCB2b2lkIEluc3BlY3RvckNvbnRyb2xsZXI6OmRpc2FibGVEZWJ1
Z2dlcihib29sIGFsd2F5cykKICAgICBBU1NFUlQobV9pbnNwZWN0ZWRQYWdlKTsKIAogICAgIG1f
ZGVidWdnZXJBZ2VudC5jbGVhcigpOwotICAgIG1fYnJvd3NlckRlYnVnZ2VyQWdlbnQuY2xlYXIo
KTsKIAogICAgIG1fYXR0YWNoRGVidWdnZXJXaGVuU2hvd24gPSBmYWxzZTsKIApAQCAtMTIzNCw2
ICsxMjI5LDEwIEBAIHZvaWQgSW5zcGVjdG9yQ29udHJvbGxlcjo6c2V0U3RpY2t5QnJlYWtwb2lu
dHMoUGFzc1JlZlB0cjxJbnNwZWN0b3JPYmplY3Q+IGJyZWFrCiAKIHZvaWQgSW5zcGVjdG9yQ29u
dHJvbGxlcjo6cmVzdG9yZVN0aWNreUJyZWFrcG9pbnRzKCkKIHsKKyAgICBtX2V2ZW50TGlzdGVu
ZXJCcmVha3BvaW50cy5jbGVhcigpOworICAgIG1fWEhSQnJlYWtwb2ludHMuY2xlYXIoKTsKKyAg
ICBtX2hhc1hIUkJyZWFrcG9pbnRXaXRoRW1wdHlVUkwgPSBmYWxzZTsKKwogICAgIFJlZlB0cjxJ
bnNwZWN0b3JPYmplY3Q+IGFsbEJyZWFrcG9pbnRzID0gbV9zdGF0ZS0+Z2V0T2JqZWN0KEluc3Bl
Y3RvclN0YXRlOjpzdGlja3lCcmVha3BvaW50cyk7CiAgICAgS1VSTCB1cmwgPSBtX2luc3BlY3Rl
ZFBhZ2UtPm1haW5GcmFtZSgpLT5sb2FkZXIoKS0+dXJsKCk7CiAgICAgdXJsLnJlbW92ZUZyYWdt
ZW50SWRlbnRpZmllcigpOwpAQCAtMTI2MiwxNCArMTI2MSwxMyBAQCB2b2lkIEluc3BlY3RvckNv
bnRyb2xsZXI6OnJlc3RvcmVTdGlja3lCcmVha3BvaW50KFBhc3NSZWZQdHI8SW5zcGVjdG9yT2Jq
ZWN0PiBicgogICAgIGlmICghY29uZGl0aW9uKQogICAgICAgICByZXR1cm47CiAKLSAgICBpZiAo
dHlwZSA9PSBldmVudExpc3RlbmVyQnJlYWtwb2ludFR5cGUgJiYgbV9icm93c2VyRGVidWdnZXJB
Z2VudCkgeworICAgIGlmICh0eXBlID09IGV2ZW50TGlzdGVuZXJCcmVha3BvaW50VHlwZSkgewog
ICAgICAgICBpZiAoIWVuYWJsZWQpCiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIFN0cmlu
ZyBldmVudE5hbWU7Ci0gICAgICAgIGlmICghY29uZGl0aW9uLT5nZXRTdHJpbmcoImV2ZW50TmFt
ZSIsICZldmVudE5hbWUpKQotICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICBtX2Jyb3dzZXJE
ZWJ1Z2dlckFnZW50LT5zZXRFdmVudExpc3RlbmVyQnJlYWtwb2ludChldmVudE5hbWUpOwotICAg
IH0gZWxzZSBpZiAodHlwZSA9PSBqYXZhU2NyaXB0QnJlYWtwb2ludFR5cGUgJiYgbV9kZWJ1Z2dl
ckFnZW50KSB7CisgICAgICAgIGlmIChjb25kaXRpb24tPmdldFN0cmluZygiZXZlbnROYW1lIiwg
JmV2ZW50TmFtZSkpCisgICAgICAgICAgICBzZXRFdmVudExpc3RlbmVyQnJlYWtwb2ludChldmVu
dE5hbWUpOworICAgIH0gZWxzZSBpZiAodHlwZSA9PSBqYXZhU2NyaXB0QnJlYWtwb2ludFR5cGUp
IHsKICAgICAgICAgU3RyaW5nIHVybDsKICAgICAgICAgaWYgKCFjb25kaXRpb24tPmdldFN0cmlu
ZygidXJsIiwgJnVybCkpCiAgICAgICAgICAgICByZXR1cm47CkBAIC0xMjc5LDE2ICsxMjc3LDYz
IEBAIHZvaWQgSW5zcGVjdG9yQ29udHJvbGxlcjo6cmVzdG9yZVN0aWNreUJyZWFrcG9pbnQoUGFz
c1JlZlB0cjxJbnNwZWN0b3JPYmplY3Q+IGJyCiAgICAgICAgIFN0cmluZyBqYXZhU2NyaXB0Q29u
ZGl0aW9uOwogICAgICAgICBpZiAoIWNvbmRpdGlvbi0+Z2V0U3RyaW5nKCJjb25kaXRpb24iLCAm
amF2YVNjcmlwdENvbmRpdGlvbikpCiAgICAgICAgICAgICByZXR1cm47Ci0gICAgICAgIG1fZGVi
dWdnZXJBZ2VudC0+c2V0U3RpY2t5QnJlYWtwb2ludCh1cmwsIHN0YXRpY19jYXN0PHVuc2lnbmVk
PihsaW5lTnVtYmVyKSwgamF2YVNjcmlwdENvbmRpdGlvbiwgZW5hYmxlZCk7Ci0gICAgfSBlbHNl
IGlmICh0eXBlID09IHhockJyZWFrcG9pbnRUeXBlICYmIG1fYnJvd3NlckRlYnVnZ2VyQWdlbnQp
IHsKKyAgICAgICAgaWYgKG1fZGVidWdnZXJBZ2VudCkKKyAgICAgICAgICAgIG1fZGVidWdnZXJB
Z2VudC0+c2V0U3RpY2t5QnJlYWtwb2ludCh1cmwsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihsaW5l
TnVtYmVyKSwgamF2YVNjcmlwdENvbmRpdGlvbiwgZW5hYmxlZCk7CisgICAgfSBlbHNlIGlmICh0
eXBlID09IHhockJyZWFrcG9pbnRUeXBlKSB7CiAgICAgICAgIGlmICghZW5hYmxlZCkKICAgICAg
ICAgICAgIHJldHVybjsKICAgICAgICAgU3RyaW5nIHVybDsKLSAgICAgICAgaWYgKCFjb25kaXRp
b24tPmdldFN0cmluZygidXJsIiwgJnVybCkpCi0gICAgICAgICAgICByZXR1cm47Ci0gICAgICAg
IG1fYnJvd3NlckRlYnVnZ2VyQWdlbnQtPnNldFhIUkJyZWFrcG9pbnQodXJsKTsKKyAgICAgICAg
aWYgKGNvbmRpdGlvbi0+Z2V0U3RyaW5nKCJ1cmwiLCAmdXJsKSkKKyAgICAgICAgICAgIHNldFhI
UkJyZWFrcG9pbnQodXJsKTsKKyAgICB9Cit9CisKK3ZvaWQgSW5zcGVjdG9yQ29udHJvbGxlcjo6
c2V0RXZlbnRMaXN0ZW5lckJyZWFrcG9pbnQoY29uc3QgU3RyaW5nJiBldmVudE5hbWUpCit7Cisg
ICAgbV9ldmVudExpc3RlbmVyQnJlYWtwb2ludHMuYWRkKGV2ZW50TmFtZSk7Cit9CisKK3ZvaWQg
SW5zcGVjdG9yQ29udHJvbGxlcjo6cmVtb3ZlRXZlbnRMaXN0ZW5lckJyZWFrcG9pbnQoY29uc3Qg
U3RyaW5nJiBldmVudE5hbWUpCit7CisgICAgbV9ldmVudExpc3RlbmVyQnJlYWtwb2ludHMucmVt
b3ZlKGV2ZW50TmFtZSk7Cit9CisKK2Jvb2wgSW5zcGVjdG9yQ29udHJvbGxlcjo6aGFzRXZlbnRM
aXN0ZW5lckJyZWFrcG9pbnQoY29uc3QgU3RyaW5nJiBldmVudE5hbWUpCit7CisgICAgcmV0dXJu
IG1fZXZlbnRMaXN0ZW5lckJyZWFrcG9pbnRzLmNvbnRhaW5zKGV2ZW50TmFtZSk7Cit9CisKK3Zv
aWQgSW5zcGVjdG9yQ29udHJvbGxlcjo6c2V0WEhSQnJlYWtwb2ludChjb25zdCBTdHJpbmcmIHVy
bCkKK3sKKyAgICBpZiAodXJsLmlzRW1wdHkoKSkKKyAgICAgICAgbV9oYXNYSFJCcmVha3BvaW50
V2l0aEVtcHR5VVJMID0gdHJ1ZTsKKyAgICBlbHNlCisgICAgICAgIG1fWEhSQnJlYWtwb2ludHMu
YWRkKHVybCk7Cit9CisKK3ZvaWQgSW5zcGVjdG9yQ29udHJvbGxlcjo6cmVtb3ZlWEhSQnJlYWtw
b2ludChjb25zdCBTdHJpbmcmIHVybCkKK3sKKyAgICBpZiAodXJsLmlzRW1wdHkoKSkKKyAgICAg
ICAgbV9oYXNYSFJCcmVha3BvaW50V2l0aEVtcHR5VVJMID0gZmFsc2U7CisgICAgZWxzZQorICAg
ICAgICBtX1hIUkJyZWFrcG9pbnRzLnJlbW92ZSh1cmwpOworfQorCitib29sIEluc3BlY3RvckNv
bnRyb2xsZXI6Omhhc1hIUkJyZWFrcG9pbnQoY29uc3QgU3RyaW5nJiB1cmwsIFN0cmluZyogYnJl
YWtwb2ludFVSTCkKK3sKKyAgICBpZiAobV9oYXNYSFJCcmVha3BvaW50V2l0aEVtcHR5VVJMKSB7
CisgICAgICAgICpicmVha3BvaW50VVJMID0gIiI7CisgICAgICAgIHJldHVybiB0cnVlOwogICAg
IH0KKyAgICBmb3IgKEhhc2hTZXQ8U3RyaW5nPjo6aXRlcmF0b3IgaXQgPSBtX1hIUkJyZWFrcG9p
bnRzLmJlZ2luKCk7IGl0ICE9IG1fWEhSQnJlYWtwb2ludHMuZW5kKCk7ICsraXQpIHsKKyAgICAg
ICAgaWYgKHVybC5jb250YWlucygqaXQpKSB7CisgICAgICAgICAgICAqYnJlYWtwb2ludFVSTCA9
ICppdDsKKyAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICB9CisgICAgfQorICAgIHJl
dHVybiBmYWxzZTsKIH0KKwogI2VuZGlmCiAKIHZvaWQgSW5zcGVjdG9yQ29udHJvbGxlcjo6ZGlz
cGF0Y2hPbkluamVjdGVkU2NyaXB0KGxvbmcgaW5qZWN0ZWRTY3JpcHRJZCwgY29uc3QgU3RyaW5n
JiBtZXRob2ROYW1lLCBjb25zdCBTdHJpbmcmIGFyZ3VtZW50cywgUmVmUHRyPEluc3BlY3RvclZh
bHVlPiogcmVzdWx0LCBib29sKiBoYWRFeGNlcHRpb24pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ29udHJvbGxlci5oIGIvU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL0luc3BlY3RvckNvbnRyb2xsZXIuaAppbmRleCA0Y2JlOTMxNDA0Zjk5YjI3YmFhMzU2
ZjQwMTk5OTM4NTdkMDU2ZmYyLi5jY2YzNDRlYWEzMGUzZmFkZDJmMWU5OGQ5NTQ4NTE2M2IwMGU0
YjE4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ29udHJv
bGxlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JDb250cm9sbGVy
LmgKQEAgLTU3LDcgKzU3LDYgQEAgY2xhc3MgSW5qZWN0ZWRTY3JpcHQ7CiBjbGFzcyBJbmplY3Rl
ZFNjcmlwdEhvc3Q7CiBjbGFzcyBJbnNwZWN0b3JBcnJheTsKIGNsYXNzIEluc3BlY3RvckJhY2tl
bmREaXNwYXRjaGVyOwotY2xhc3MgSW5zcGVjdG9yQnJvd3NlckRlYnVnZ2VyQWdlbnQ7CiBjbGFz
cyBJbnNwZWN0b3JDbGllbnQ7CiBjbGFzcyBJbnNwZWN0b3JDU1NBZ2VudDsKIGNsYXNzIEluc3Bl
Y3RvckRPTUFnZW50OwpAQCAtMjM2LDYgKzIzNSwxMiBAQCBwdWJsaWM6CiAgICAgdm9pZCByZXN1
bWUoKTsKIAogICAgIHZvaWQgc2V0U3RpY2t5QnJlYWtwb2ludHMoUGFzc1JlZlB0cjxJbnNwZWN0
b3JPYmplY3Q+IGJyZWFrcG9pbnRzKTsKKyAgICB2b2lkIHNldEV2ZW50TGlzdGVuZXJCcmVha3Bv
aW50KGNvbnN0IFN0cmluZyYgZXZlbnROYW1lKTsKKyAgICB2b2lkIHJlbW92ZUV2ZW50TGlzdGVu
ZXJCcmVha3BvaW50KGNvbnN0IFN0cmluZyYgZXZlbnROYW1lKTsKKyAgICBib29sIGhhc0V2ZW50
TGlzdGVuZXJCcmVha3BvaW50KGNvbnN0IFN0cmluZyYgZXZlbnROYW1lKTsKKyAgICB2b2lkIHNl
dFhIUkJyZWFrcG9pbnQoY29uc3QgU3RyaW5nJiB1cmwpOworICAgIHZvaWQgcmVtb3ZlWEhSQnJl
YWtwb2ludChjb25zdCBTdHJpbmcmIHVybCk7CisgICAgYm9vbCBoYXNYSFJCcmVha3BvaW50KGNv
bnN0IFN0cmluZyYgdXJsLCBTdHJpbmcqIGJyZWFrcG9pbnRVUkwpOwogI2VuZGlmCiAKICAgICB2
b2lkIHNldEluamVjdGVkU2NyaXB0U291cmNlKGNvbnN0IFN0cmluZyYgc291cmNlKTsKQEAgLTI2
MCw3ICsyNjUsNiBAQCBwdWJsaWM6CiBwcml2YXRlOgogICAgIGZyaWVuZCBjbGFzcyBJbnNwZWN0
b3JCYWNrZW5kOwogICAgIGZyaWVuZCBjbGFzcyBJbnNwZWN0b3JCYWNrZW5kRGlzcGF0Y2hlcjsK
LSAgICBmcmllbmQgY2xhc3MgSW5zcGVjdG9yQnJvd3NlckRlYnVnZ2VyQWdlbnQ7CiAgICAgZnJp
ZW5kIGNsYXNzIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjsKICAgICBmcmllbmQgY2xhc3MgSW5q
ZWN0ZWRTY3JpcHRIb3N0OwogCkBAIC0zNjQsNyArMzY4LDEwIEBAIHByaXZhdGU6CiAjaWYgRU5B
QkxFKEpBVkFTQ1JJUFRfREVCVUdHRVIpCiAgICAgYm9vbCBtX2F0dGFjaERlYnVnZ2VyV2hlblNo
b3duOwogICAgIE93blB0cjxJbnNwZWN0b3JEZWJ1Z2dlckFnZW50PiBtX2RlYnVnZ2VyQWdlbnQ7
Ci0gICAgT3duUHRyPEluc3BlY3RvckJyb3dzZXJEZWJ1Z2dlckFnZW50PiBtX2Jyb3dzZXJEZWJ1
Z2dlckFnZW50OworCisgICAgSGFzaFNldDxTdHJpbmc+IG1fZXZlbnRMaXN0ZW5lckJyZWFrcG9p
bnRzOworICAgIEhhc2hTZXQ8U3RyaW5nPiBtX1hIUkJyZWFrcG9pbnRzOworICAgIGJvb2wgbV9o
YXNYSFJCcmVha3BvaW50V2l0aEVtcHR5VVJMOwogCiAgICAgT3duUHRyPEluc3BlY3RvclByb2Zp
bGVyQWdlbnQ+IG1fcHJvZmlsZXJBZ2VudDsKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckRPTUFnZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9JbnNwZWN0b3JET01BZ2VudC5jcHAKaW5kZXggMTlhZTMwZGE3Yjk1YzQ5ZWY2Y2Yz
ZDFlZDg1YzExNDQ4MDlhODdjMi4uNWQ4ZjQwODg4OGEwZGNmODRkYmJiOTc3YWExOGQ2NjAxNTQ2
NDRjNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckRPTUFn
ZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRE9NQWdlbnQu
Y3BwCkBAIC0yMDQsNiArMjA0LDE2IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIH5NYXRjaFBsYWlu
VGV4dEpvYigpIHsgfQogfTsKIAorZW51bSBET01CcmVha3BvaW50VHlwZSB7CisgICAgU3VidHJl
ZU1vZGlmaWVkID0gMCwKKyAgICBBdHRyaWJ1dGVNb2RpZmllZCwKKyAgICBOb2RlUmVtb3ZlZCwK
KyAgICBET01CcmVha3BvaW50VHlwZXNDb3VudAorfTsKKworY29uc3QgdWludDMyX3QgaW5oZXJp
dGFibGVET01CcmVha3BvaW50VHlwZXNNYXNrID0gKDEgPDwgU3VidHJlZU1vZGlmaWVkKTsKK2Nv
bnN0IGludCBkb21CcmVha3BvaW50RGVyaXZlZFR5cGVTaGlmdCA9IDE2OworCiB9CiAKIEluc3Bl
Y3RvckRPTUFnZW50OjpJbnNwZWN0b3JET01BZ2VudChJbnNwZWN0b3JGcm9udGVuZCogZnJvbnRl
bmQpCkBAIC0zOTQsNiArNDA0LDcgQEAgdm9pZCBJbnNwZWN0b3JET01BZ2VudDo6ZGlzY2FyZEJp
bmRpbmdzKCkKICAgICByZWxlYXNlRGFuZ2xpbmdOb2RlcygpOwogICAgIG1fY2hpbGRyZW5SZXF1
ZXN0ZWQuY2xlYXIoKTsKICAgICBtX2luc3BlY3RlZE5vZGVzLmNsZWFyKCk7CisgICAgbV9icmVh
a3BvaW50cy5jbGVhcigpOwogfQogCiBOb2RlKiBJbnNwZWN0b3JET01BZ2VudDo6bm9kZUZvcklk
KGxvbmcgaWQpCkBAIC03NTgsNiArNzY5LDEwMSBAQCB2b2lkIEluc3BlY3RvckRPTUFnZW50Ojpz
ZWFyY2hDYW5jZWxlZCgpCiAgICAgbV9zZWFyY2hSZXN1bHRzLmNsZWFyKCk7CiB9CiAKK3ZvaWQg
SW5zcGVjdG9yRE9NQWdlbnQ6OnNldERPTUJyZWFrcG9pbnQobG9uZyBub2RlSWQsIGxvbmcgdHlw
ZSkKK3sKKyAgICBOb2RlKiBub2RlID0gbm9kZUZvcklkKG5vZGVJZCk7CisgICAgaWYgKCFub2Rl
KQorICAgICAgICByZXR1cm47CisKKyAgICB1aW50MzJfdCByb290Qml0ID0gMSA8PCB0eXBlOwor
ICAgIG1fYnJlYWtwb2ludHMuc2V0KG5vZGUsIG1fYnJlYWtwb2ludHMuZ2V0KG5vZGUpIHwgcm9v
dEJpdCk7CisgICAgaWYgKHJvb3RCaXQgJiBpbmhlcml0YWJsZURPTUJyZWFrcG9pbnRUeXBlc01h
c2spIHsKKyAgICAgICAgZm9yIChOb2RlKiBjaGlsZCA9IGlubmVyRmlyc3RDaGlsZChub2RlKTsg
Y2hpbGQ7IGNoaWxkID0gaW5uZXJOZXh0U2libGluZyhjaGlsZCkpCisgICAgICAgICAgICB1cGRh
dGVTdWJ0cmVlQnJlYWtwb2ludHMoY2hpbGQsIHJvb3RCaXQsIHRydWUpOworICAgIH0KK30KKwor
dm9pZCBJbnNwZWN0b3JET01BZ2VudDo6cmVtb3ZlRE9NQnJlYWtwb2ludChsb25nIG5vZGVJZCwg
bG9uZyB0eXBlKQoreworICAgIE5vZGUqIG5vZGUgPSBub2RlRm9ySWQobm9kZUlkKTsKKyAgICBp
ZiAoIW5vZGUpCisgICAgICAgIHJldHVybjsKKworICAgIHVpbnQzMl90IHJvb3RCaXQgPSAxIDw8
IHR5cGU7CisgICAgdWludDMyX3QgbWFzayA9IG1fYnJlYWtwb2ludHMuZ2V0KG5vZGUpICYgfnJv
b3RCaXQ7CisgICAgaWYgKG1hc2spCisgICAgICAgIG1fYnJlYWtwb2ludHMuc2V0KG5vZGUsIG1h
c2spOworICAgIGVsc2UKKyAgICAgICAgbV9icmVha3BvaW50cy5yZW1vdmUobm9kZSk7CisKKyAg
ICBpZiAoKHJvb3RCaXQgJiBpbmhlcml0YWJsZURPTUJyZWFrcG9pbnRUeXBlc01hc2spICYmICEo
bWFzayAmIChyb290Qml0IDw8IGRvbUJyZWFrcG9pbnREZXJpdmVkVHlwZVNoaWZ0KSkpIHsKKyAg
ICAgICAgZm9yIChOb2RlKiBjaGlsZCA9IGlubmVyRmlyc3RDaGlsZChub2RlKTsgY2hpbGQ7IGNo
aWxkID0gaW5uZXJOZXh0U2libGluZyhjaGlsZCkpCisgICAgICAgICAgICB1cGRhdGVTdWJ0cmVl
QnJlYWtwb2ludHMoY2hpbGQsIHJvb3RCaXQsIGZhbHNlKTsKKyAgICB9Cit9CisKK2Jvb2wgSW5z
cGVjdG9yRE9NQWdlbnQ6OnNob3VsZEJyZWFrT25Ob2RlSW5zZXJ0aW9uKE5vZGUqLCBOb2RlKiBw
YXJlbnQsIFBhc3NSZWZQdHI8SW5zcGVjdG9yT2JqZWN0PiBkZXRhaWxzKQoreworICAgIGlmICho
YXNCcmVha3BvaW50KHBhcmVudCwgU3VidHJlZU1vZGlmaWVkKSkgeworICAgICAgICBkZXNjcmlw
dGlvbkZvckRPTUV2ZW50KHBhcmVudCwgU3VidHJlZU1vZGlmaWVkLCB0cnVlLCBkZXRhaWxzKTsK
KyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorICAgIHJldHVybiBmYWxzZTsKK30KKworYm9v
bCBJbnNwZWN0b3JET01BZ2VudDo6c2hvdWxkQnJlYWtPbk5vZGVSZW1vdmFsKE5vZGUqIG5vZGUs
IFBhc3NSZWZQdHI8SW5zcGVjdG9yT2JqZWN0PiBkZXRhaWxzKQoreworICAgIGlmIChoYXNCcmVh
a3BvaW50KG5vZGUsIE5vZGVSZW1vdmVkKSkgeworICAgICAgICBkZXNjcmlwdGlvbkZvckRPTUV2
ZW50KG5vZGUsIE5vZGVSZW1vdmVkLCBmYWxzZSwgZGV0YWlscyk7CisgICAgICAgIHJldHVybiB0
cnVlOworICAgIH0KKyAgICBpZiAoaGFzQnJlYWtwb2ludChpbm5lclBhcmVudE5vZGUobm9kZSks
IFN1YnRyZWVNb2RpZmllZCkpIHsKKyAgICAgICAgZGVzY3JpcHRpb25Gb3JET01FdmVudChub2Rl
LCBTdWJ0cmVlTW9kaWZpZWQsIGZhbHNlLCBkZXRhaWxzKTsKKyAgICAgICAgcmV0dXJuIHRydWU7
CisgICAgfQorICAgIHJldHVybiBmYWxzZTsKK30KKworYm9vbCBJbnNwZWN0b3JET01BZ2VudDo6
c2hvdWxkQnJlYWtPbkF0dHJpYnV0ZU1vZGlmaWNhdGlvbihFbGVtZW50KiBlbGVtZW50LCBQYXNz
UmVmUHRyPEluc3BlY3Rvck9iamVjdD4gZGV0YWlscykKK3sKKyAgICBpZiAoaGFzQnJlYWtwb2lu
dChlbGVtZW50LCBBdHRyaWJ1dGVNb2RpZmllZCkpIHsKKyAgICAgICAgZGVzY3JpcHRpb25Gb3JE
T01FdmVudChlbGVtZW50LCBBdHRyaWJ1dGVNb2RpZmllZCwgZmFsc2UsIGRldGFpbHMpOworICAg
ICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CisgICAgcmV0dXJuIGZhbHNlOworfQorCit2b2lkIElu
c3BlY3RvckRPTUFnZW50OjpkZXNjcmlwdGlvbkZvckRPTUV2ZW50KE5vZGUqIHRhcmdldCwgbG9u
ZyBicmVha3BvaW50VHlwZSwgYm9vbCBpbnNlcnRpb24sIFBhc3NSZWZQdHI8SW5zcGVjdG9yT2Jq
ZWN0PiBkZXNjcmlwdGlvbikKK3sKKyAgICBBU1NFUlQoaGFzQnJlYWtwb2ludCh0YXJnZXQsIGJy
ZWFrcG9pbnRUeXBlKSk7CisKKyAgICBOb2RlKiBicmVha3BvaW50T3duZXIgPSB0YXJnZXQ7Cisg
ICAgaWYgKCgxIDw8IGJyZWFrcG9pbnRUeXBlKSAmIGluaGVyaXRhYmxlRE9NQnJlYWtwb2ludFR5
cGVzTWFzaykgeworICAgICAgICAvLyBGb3IgaW5oZXJpdGFibGUgYnJlYWtwb2ludCB0eXBlcywg
dGFyZ2V0IG5vZGUgaXNuJ3QgYWx3YXlzIHRoZSBzYW1lIGFzIHRoZSBub2RlIHRoYXQgb3ducyBh
IGJyZWFrcG9pbnQuCisgICAgICAgIC8vIFRhcmdldCBub2RlIG1heSBiZSB1bmtub3duIHRvIGZy
b250ZW5kLCBzbyB3ZSBuZWVkIHRvIHB1c2ggaXQgZmlyc3QuCisgICAgICAgIGxvbmcgdGFyZ2V0
Tm9kZUlkID0gcHVzaE5vZGVQYXRoVG9Gcm9udGVuZCh0YXJnZXQpOworICAgICAgICBBU1NFUlQo
dGFyZ2V0Tm9kZUlkKTsKKyAgICAgICAgZGVzY3JpcHRpb24tPnNldE51bWJlcigidGFyZ2V0Tm9k
ZUlkIiwgdGFyZ2V0Tm9kZUlkKTsKKworICAgICAgICAvLyBGaW5kIGJyZWFrcG9pbnQgb3duZXIg
bm9kZS4KKyAgICAgICAgaWYgKCFpbnNlcnRpb24pCisgICAgICAgICAgICBicmVha3BvaW50T3du
ZXIgPSBpbm5lclBhcmVudE5vZGUodGFyZ2V0KTsKKyAgICAgICAgQVNTRVJUKGJyZWFrcG9pbnRP
d25lcik7CisgICAgICAgIHdoaWxlICghKG1fYnJlYWtwb2ludHMuZ2V0KGJyZWFrcG9pbnRPd25l
cikgJiAoMSA8PCBicmVha3BvaW50VHlwZSkpKSB7CisgICAgICAgICAgICBicmVha3BvaW50T3du
ZXIgPSBpbm5lclBhcmVudE5vZGUoYnJlYWtwb2ludE93bmVyKTsKKyAgICAgICAgICAgIEFTU0VS
VChicmVha3BvaW50T3duZXIpOworICAgICAgICB9CisKKyAgICAgICAgaWYgKGJyZWFrcG9pbnRU
eXBlID09IFN1YnRyZWVNb2RpZmllZCkKKyAgICAgICAgICAgIGRlc2NyaXB0aW9uLT5zZXRCb29s
ZWFuKCJpbnNlcnRpb24iLCBpbnNlcnRpb24pOworICAgIH0KKworICAgIGxvbmcgYnJlYWtwb2lu
dE93bmVyTm9kZUlkID0gbV9kb2N1bWVudE5vZGVUb0lkTWFwLmdldChicmVha3BvaW50T3duZXIp
OworICAgIEFTU0VSVChicmVha3BvaW50T3duZXJOb2RlSWQpOworICAgIGRlc2NyaXB0aW9uLT5z
ZXROdW1iZXIoIm5vZGVJZCIsIGJyZWFrcG9pbnRPd25lck5vZGVJZCk7CisgICAgZGVzY3JpcHRp
b24tPnNldE51bWJlcigidHlwZSIsIGJyZWFrcG9pbnRUeXBlKTsKK30KKwogU3RyaW5nIEluc3Bl
Y3RvckRPTUFnZW50Ojpkb2N1bWVudFVSTFN0cmluZyhEb2N1bWVudCogZG9jdW1lbnQpIGNvbnN0
CiB7CiAgICAgaWYgKCFkb2N1bWVudCB8fCBkb2N1bWVudC0+dXJsKCkuaXNOdWxsKCkpCkBAIC05
NjQsNiArMTA3MCwxMyBAQCB2b2lkIEluc3BlY3RvckRPTUFnZW50OjpkaWRJbnNlcnRET01Ob2Rl
KE5vZGUqIG5vZGUpCiAgICAgaWYgKGlzV2hpdGVzcGFjZShub2RlKSkKICAgICAgICAgcmV0dXJu
OwogCisgICAgaWYgKG1fYnJlYWtwb2ludHMuc2l6ZSgpKSB7CisgICAgICAgIHVpbnQzMl90IG1h
c2sgPSBtX2JyZWFrcG9pbnRzLmdldChpbm5lclBhcmVudE5vZGUobm9kZSkpOworICAgICAgICB1
aW50MzJfdCBpbmhlcml0YWJsZVR5cGVzTWFzayA9IChtYXNrIHwgKG1hc2sgPj4gZG9tQnJlYWtw
b2ludERlcml2ZWRUeXBlU2hpZnQpKSAmIGluaGVyaXRhYmxlRE9NQnJlYWtwb2ludFR5cGVzTWFz
azsKKyAgICAgICAgaWYgKGluaGVyaXRhYmxlVHlwZXNNYXNrKQorICAgICAgICAgICAgdXBkYXRl
U3VidHJlZUJyZWFrcG9pbnRzKG5vZGUsIGluaGVyaXRhYmxlVHlwZXNNYXNrLCB0cnVlKTsKKyAg
ICB9CisKICAgICAvLyBXZSBjb3VsZCBiZSBhdHRhY2hpbmcgZXhpc3Rpbmcgc3VidHJlZS4gRm9y
Z2V0IHRoZSBiaW5kaW5ncy4KICAgICB1bmJpbmQobm9kZSwgJm1fZG9jdW1lbnROb2RlVG9JZE1h
cCk7CiAKQEAgLTk5MCw2ICsxMTAzLDIxIEBAIHZvaWQgSW5zcGVjdG9yRE9NQWdlbnQ6OmRpZFJl
bW92ZURPTU5vZGUoTm9kZSogbm9kZSkKICAgICBpZiAoaXNXaGl0ZXNwYWNlKG5vZGUpKQogICAg
ICAgICByZXR1cm47CiAKKyAgICBpZiAobV9icmVha3BvaW50cy5zaXplKCkpIHsKKyAgICAgICAg
Ly8gUmVtb3ZlIHN1YnRyZWUgYnJlYWtwb2ludHMuCisgICAgICAgIG1fYnJlYWtwb2ludHMucmVt
b3ZlKG5vZGUpOworICAgICAgICBWZWN0b3I8Tm9kZSo+IHN0YWNrKDEsIGlubmVyRmlyc3RDaGls
ZChub2RlKSk7CisgICAgICAgIGRvIHsKKyAgICAgICAgICAgIE5vZGUqIG5vZGUgPSBzdGFjay5s
YXN0KCk7CisgICAgICAgICAgICBzdGFjay5yZW1vdmVMYXN0KCk7CisgICAgICAgICAgICBpZiAo
IW5vZGUpCisgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICBtX2JyZWFrcG9p
bnRzLnJlbW92ZShub2RlKTsKKyAgICAgICAgICAgIHN0YWNrLmFwcGVuZChpbm5lckZpcnN0Q2hp
bGQobm9kZSkpOworICAgICAgICAgICAgc3RhY2suYXBwZW5kKGlubmVyTmV4dFNpYmxpbmcobm9k
ZSkpOworICAgICAgICB9IHdoaWxlICghc3RhY2suaXNFbXB0eSgpKTsKKyAgICB9CisKICAgICBD
b250YWluZXJOb2RlKiBwYXJlbnQgPSBub2RlLT5wYXJlbnROb2RlKCk7CiAgICAgbG9uZyBwYXJl
bnRJZCA9IG1fZG9jdW1lbnROb2RlVG9JZE1hcC5nZXQocGFyZW50KTsKICAgICAvLyBJZiBwYXJl
bnQgaXMgbm90IG1hcHBlZCB5ZXQgLT4gaWdub3JlIHRoZSBldmVudC4KQEAgLTEwMjksNiArMTE1
NywzMSBAQCB2b2lkIEluc3BlY3RvckRPTUFnZW50OjpjaGFyYWN0ZXJEYXRhTW9kaWZpZWQoQ2hh
cmFjdGVyRGF0YSogY2hhcmFjdGVyRGF0YSkKICAgICBtX2Zyb250ZW5kLT5jaGFyYWN0ZXJEYXRh
TW9kaWZpZWQoaWQsIGNoYXJhY3RlckRhdGEtPmRhdGEoKSk7CiB9CiAKK2Jvb2wgSW5zcGVjdG9y
RE9NQWdlbnQ6Omhhc0JyZWFrcG9pbnQoTm9kZSogbm9kZSwgbG9uZyB0eXBlKQoreworICAgIHVp
bnQzMl90IHJvb3RCaXQgPSAxIDw8IHR5cGU7CisgICAgdWludDMyX3QgZGVyaXZlZEJpdCA9IHJv
b3RCaXQgPDwgZG9tQnJlYWtwb2ludERlcml2ZWRUeXBlU2hpZnQ7CisgICAgcmV0dXJuIG1fYnJl
YWtwb2ludHMuZ2V0KG5vZGUpICYgKHJvb3RCaXQgfCBkZXJpdmVkQml0KTsKK30KKwordm9pZCBJ
bnNwZWN0b3JET01BZ2VudDo6dXBkYXRlU3VidHJlZUJyZWFrcG9pbnRzKE5vZGUqIG5vZGUsIHVp
bnQzMl90IHJvb3RNYXNrLCBib29sIHNldCkKK3sKKyAgICB1aW50MzJfdCBvbGRNYXNrID0gbV9i
cmVha3BvaW50cy5nZXQobm9kZSk7CisgICAgdWludDMyX3QgZGVyaXZlZE1hc2sgPSByb290TWFz
ayA8PCBkb21CcmVha3BvaW50RGVyaXZlZFR5cGVTaGlmdDsKKyAgICB1aW50MzJfdCBuZXdNYXNr
ID0gc2V0ID8gb2xkTWFzayB8IGRlcml2ZWRNYXNrIDogb2xkTWFzayAmIH5kZXJpdmVkTWFzazsK
KyAgICBpZiAobmV3TWFzaykKKyAgICAgICAgbV9icmVha3BvaW50cy5zZXQobm9kZSwgbmV3TWFz
ayk7CisgICAgZWxzZQorICAgICAgICBtX2JyZWFrcG9pbnRzLnJlbW92ZShub2RlKTsKKworICAg
IHVpbnQzMl90IG5ld1Jvb3RNYXNrID0gcm9vdE1hc2sgJiB+bmV3TWFzazsKKyAgICBpZiAoIW5l
d1Jvb3RNYXNrKQorICAgICAgICByZXR1cm47CisKKyAgICBmb3IgKE5vZGUqIGNoaWxkID0gaW5u
ZXJGaXJzdENoaWxkKG5vZGUpOyBjaGlsZDsgY2hpbGQgPSBpbm5lck5leHRTaWJsaW5nKGNoaWxk
KSkKKyAgICAgICAgdXBkYXRlU3VidHJlZUJyZWFrcG9pbnRzKGNoaWxkLCBuZXdSb290TWFzaywg
c2V0KTsKK30KKwogTm9kZSogSW5zcGVjdG9yRE9NQWdlbnQ6Om5vZGVGb3JQYXRoKGNvbnN0IFN0
cmluZyYgcGF0aCkKIHsKICAgICAvLyBUaGUgcGF0aCBpcyBvZiBmb3JtICIxLEhUTUwsMixCT0RZ
LDEsRElWIgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckRP
TUFnZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRE9NQWdlbnQuaApp
bmRleCA5ZWE2OTBjNGQ3M2E4Yjk4MDJiMTkzYWI3MGVlY2FmN2Y5MjM5YWNhLi4zNjYyN2Y1N2Q5
N2MyMzRkODYzYjU4ZTEyMzZkY2I2MTQ3NTAzZmQ4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9pbnNwZWN0b3IvSW5zcGVjdG9yRE9NQWdlbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvSW5zcGVjdG9yRE9NQWdlbnQuaApAQCAtMTQ0LDE0ICsxNDQsOCBAQCBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiAKICAgICAgICAgU3RyaW5nIGRvY3VtZW50VVJMU3RyaW5nKERvY3VtZW50KiBk
b2N1bWVudCkgY29uc3Q7CiAKLSAgICAgICAgLy8gV2UgcmVwcmVzZW50IGVtYmVkZGVkIGRvbXMg
YXMgYSBwYXJ0IG9mIHRoZSBzYW1lIGhpZXJhcmNoeS4gSGVuY2Ugd2UgdHJlYXQgY2hpbGRyZW4g
b2YgZnJhbWUgb3duZXJzIGRpZmZlcmVudGx5LgotICAgICAgICAvLyBXZSBhbHNvIHNraXAgd2hp
dGVzcGFjZSB0ZXh0IG5vZGVzIGNvbmRpdGlvbmFsbHkuIEZvbGxvd2luZyBtZXRob2RzIGVuY2Fw
c3VsYXRlIHRoZXNlIHNwZWNpZmljcy4KLSAgICAgICAgc3RhdGljIE5vZGUqIGlubmVyRmlyc3RD
aGlsZChOb2RlKik7Ci0gICAgICAgIHN0YXRpYyBOb2RlKiBpbm5lck5leHRTaWJsaW5nKE5vZGUq
KTsKLSAgICAgICAgc3RhdGljIE5vZGUqIGlubmVyUHJldmlvdXNTaWJsaW5nKE5vZGUqKTsKLSAg
ICAgICAgc3RhdGljIHVuc2lnbmVkIGlubmVyQ2hpbGROb2RlQ291bnQoTm9kZSopOwotICAgICAg
ICBzdGF0aWMgTm9kZSogaW5uZXJQYXJlbnROb2RlKE5vZGUqKTsKLSAgICAgICAgc3RhdGljIGJv
b2wgaXNXaGl0ZXNwYWNlKE5vZGUqKTsKKyAgICAgICAgdm9pZCBzZXRET01CcmVha3BvaW50KGxv
bmcgbm9kZUlkLCBsb25nIHR5cGUpOworICAgICAgICB2b2lkIHJlbW92ZURPTUJyZWFrcG9pbnQo
bG9uZyBub2RlSWQsIGxvbmcgdHlwZSk7CiAKICAgICBwcml2YXRlOgogICAgICAgICB2b2lkIHN0
YXJ0TGlzdGVuaW5nRnJhbWVEb2N1bWVudChOb2RlKiBmcmFtZU93bmVyTm9kZSk7CkBAIC0xNzYs
NiArMTcwLDE1IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgUGFzc1JlZlB0cjxJbnNw
ZWN0b3JBcnJheT4gYnVpbGRBcnJheUZvckNvbnRhaW5lckNoaWxkcmVuKE5vZGUqIGNvbnRhaW5l
ciwgaW50IGRlcHRoLCBOb2RlVG9JZE1hcCogbm9kZXNNYXApOwogICAgICAgICBQYXNzUmVmUHRy
PEluc3BlY3Rvck9iamVjdD4gYnVpbGRPYmplY3RGb3JFdmVudExpc3RlbmVyKGNvbnN0IFJlZ2lz
dGVyZWRFdmVudExpc3RlbmVyJiByZWdpc3RlcmVkRXZlbnRMaXN0ZW5lciwgY29uc3QgQXRvbWlj
U3RyaW5nJiBldmVudFR5cGUsIE5vZGUqIG5vZGUpOwogCisgICAgICAgIC8vIFdlIHJlcHJlc2Vu
dCBlbWJlZGRlZCBkb21zIGFzIGEgcGFydCBvZiB0aGUgc2FtZSBoaWVyYXJjaHkuIEhlbmNlIHdl
IHRyZWF0IGNoaWxkcmVuIG9mIGZyYW1lIG93bmVycyBkaWZmZXJlbnRseS4KKyAgICAgICAgLy8g
V2UgYWxzbyBza2lwIHdoaXRlc3BhY2UgdGV4dCBub2RlcyBjb25kaXRpb25hbGx5LiBGb2xsb3dp
bmcgbWV0aG9kcyBlbmNhcHN1bGF0ZSB0aGVzZSBzcGVjaWZpY3MuCisgICAgICAgIE5vZGUqIGlu
bmVyRmlyc3RDaGlsZChOb2RlKiBub2RlKTsKKyAgICAgICAgTm9kZSogaW5uZXJOZXh0U2libGlu
ZyhOb2RlKiBub2RlKTsKKyAgICAgICAgTm9kZSogaW5uZXJQcmV2aW91c1NpYmxpbmcoTm9kZSog
bm9kZSk7CisgICAgICAgIHVuc2lnbmVkIGlubmVyQ2hpbGROb2RlQ291bnQoTm9kZSogbm9kZSk7
CisgICAgICAgIE5vZGUqIGlubmVyUGFyZW50Tm9kZShOb2RlKiBub2RlKTsKKyAgICAgICAgYm9v
bCBpc1doaXRlc3BhY2UoTm9kZSogbm9kZSk7CisKICAgICAgICAgRG9jdW1lbnQqIG1haW5GcmFt
ZURvY3VtZW50KCkgY29uc3Q7CiAKICAgICAgICAgdm9pZCBvbk1hdGNoSm9ic1RpbWVyKFRpbWVy
PEluc3BlY3RvckRPTUFnZW50PiopOwpAQCAtMjAwLDYgKzIwMyw3IEBAIG5hbWVzcGFjZSBXZWJD
b3JlIHsKICAgICAgICAgVGltZXI8SW5zcGVjdG9yRE9NQWdlbnQ+IG1fbWF0Y2hKb2JzVGltZXI7
CiAgICAgICAgIEhhc2hTZXQ8UmVmUHRyPE5vZGU+ID4gbV9zZWFyY2hSZXN1bHRzOwogICAgICAg
ICBWZWN0b3I8bG9uZz4gbV9pbnNwZWN0ZWROb2RlczsKKyAgICAgICAgSGFzaE1hcDxOb2RlKiwg
dWludDMyX3Q+IG1fYnJlYWtwb2ludHM7CiAgICAgfTsKIAogI2VuZGlmCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JJbnN0cnVtZW50YXRpb24uY3BwCmluZGV4
IDFmMTk5ZWNmNmNkZGI1ZWQ3NmY3MDU0OTJkNmU1MGU1NjY4YTUzYTIuLjkzOTVkZDVkNzYzODYx
YWUzMWMxOGNiYjM4MDg0ODI5ZjAxMTZhMTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9JbnNwZWN0b3JJbnN0cnVtZW50YXRpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2luc3BlY3Rvci9JbnNwZWN0b3JJbnN0cnVtZW50YXRpb24uY3BwCkBAIC0zOCw3ICszOCw2IEBA
CiAjaW5jbHVkZSAiRXZlbnQuaCIKICNpbmNsdWRlICJFdmVudENvbnRleHQuaCIKICNpbmNsdWRl
ICJJbnNwZWN0b3JBcHBsaWNhdGlvbkNhY2hlQWdlbnQuaCIKLSNpbmNsdWRlICJJbnNwZWN0b3JC
cm93c2VyRGVidWdnZXJBZ2VudC5oIgogI2luY2x1ZGUgIkluc3BlY3RvckNvbnRyb2xsZXIuaCIK
ICNpbmNsdWRlICJJbnNwZWN0b3JET01BZ2VudC5oIgogI2luY2x1ZGUgIkluc3BlY3RvckRlYnVn
Z2VyQWdlbnQuaCIKQEAgLTQ5LDYgKzQ4LDEwIEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAor
c3RhdGljIGNvbnN0IGNoYXIqIGNvbnN0IGRvbU5hdGl2ZUJyZWFrcG9pbnRUeXBlID0gIkRPTSI7
CitzdGF0aWMgY29uc3QgY2hhciogY29uc3QgZXZlbnRMaXN0ZW5lck5hdGl2ZUJyZWFrcG9pbnRU
eXBlID0gIkV2ZW50TGlzdGVuZXIiOworc3RhdGljIGNvbnN0IGNoYXIqIGNvbnN0IHhock5hdGl2
ZUJyZWFrcG9pbnRUeXBlID0gIlhIUiI7CisKIHN0YXRpYyBjb25zdCBjaGFyKiBjb25zdCBsaXN0
ZW5lckV2ZW50Q2F0ZWdvcnlUeXBlID0gImxpc3RlbmVyIjsKIHN0YXRpYyBjb25zdCBjaGFyKiBj
b25zdCBpbnN0cnVtZW50YXRpb25FdmVudENhdGVnb3J5VHlwZSA9ICJpbnN0cnVtZW50YXRpb24i
OwogCkBAIC03OCw4ICs4MSwxNyBAQCBzdGF0aWMgYm9vbCBldmVudEhhc0xpc3RlbmVycyhjb25z
dCBBdG9taWNTdHJpbmcmIGV2ZW50VHlwZSwgRE9NV2luZG93KiB3aW5kb3csCiB2b2lkIEluc3Bl
Y3Rvckluc3RydW1lbnRhdGlvbjo6d2lsbEluc2VydERPTU5vZGVJbXBsKEluc3BlY3RvckNvbnRy
b2xsZXIqIGluc3BlY3RvckNvbnRyb2xsZXIsIE5vZGUqIG5vZGUsIE5vZGUqIHBhcmVudCkKIHsK
ICNpZiBFTkFCTEUoSkFWQVNDUklQVF9ERUJVR0dFUikKLSAgICBpZiAoSW5zcGVjdG9yQnJvd3Nl
ckRlYnVnZ2VyQWdlbnQqIGJyb3dzZXJEZWJ1Z2dlckFnZW50ID0gaW5zcGVjdG9yQ29udHJvbGxl
ci0+bV9icm93c2VyRGVidWdnZXJBZ2VudC5nZXQoKSkKLSAgICAgICAgYnJvd3NlckRlYnVnZ2Vy
QWdlbnQtPndpbGxJbnNlcnRET01Ob2RlKG5vZGUsIHBhcmVudCk7CisgICAgSW5zcGVjdG9yRGVi
dWdnZXJBZ2VudCogZGVidWdnZXJBZ2VudCA9IGluc3BlY3RvckNvbnRyb2xsZXItPm1fZGVidWdn
ZXJBZ2VudC5nZXQoKTsKKyAgICBpZiAoIWRlYnVnZ2VyQWdlbnQpCisgICAgICAgIHJldHVybjsK
KyAgICBJbnNwZWN0b3JET01BZ2VudCogZG9tQWdlbnQgPSBpbnNwZWN0b3JDb250cm9sbGVyLT5t
X2RvbUFnZW50LmdldCgpOworICAgIGlmICghZG9tQWdlbnQpCisgICAgICAgIHJldHVybjsKKyAg
ICBSZWZQdHI8SW5zcGVjdG9yT2JqZWN0PiBldmVudERhdGEgPSBJbnNwZWN0b3JPYmplY3Q6OmNy
ZWF0ZSgpOworICAgIGlmIChkb21BZ2VudC0+c2hvdWxkQnJlYWtPbk5vZGVJbnNlcnRpb24obm9k
ZSwgcGFyZW50LCBldmVudERhdGEpKSB7CisgICAgICAgIGV2ZW50RGF0YS0+c2V0U3RyaW5nKCJi
cmVha3BvaW50VHlwZSIsIGRvbU5hdGl2ZUJyZWFrcG9pbnRUeXBlKTsKKyAgICAgICAgZGVidWdn
ZXJBZ2VudC0+YnJlYWtQcm9ncmFtKE5hdGl2ZUJyZWFrcG9pbnREZWJ1Z2dlckV2ZW50VHlwZSwg
ZXZlbnREYXRhKTsKKyAgICB9CiAjZW5kaWYKIH0KIApAQCAtODcsMjYgKzk5LDI3IEBAIHZvaWQg
SW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpkaWRJbnNlcnRET01Ob2RlSW1wbChJbnNwZWN0b3JD
b250cm9sbGVyKiBpbnNwZWN0CiB7CiAgICAgaWYgKEluc3BlY3RvckRPTUFnZW50KiBkb21BZ2Vu
dCA9IGluc3BlY3RvckNvbnRyb2xsZXItPm1fZG9tQWdlbnQuZ2V0KCkpCiAgICAgICAgIGRvbUFn
ZW50LT5kaWRJbnNlcnRET01Ob2RlKG5vZGUpOwotI2lmIEVOQUJMRShKQVZBU0NSSVBUX0RFQlVH
R0VSKQotICAgIGlmIChJbnNwZWN0b3JCcm93c2VyRGVidWdnZXJBZ2VudCogYnJvd3NlckRlYnVn
Z2VyQWdlbnQgPSBpbnNwZWN0b3JDb250cm9sbGVyLT5tX2Jyb3dzZXJEZWJ1Z2dlckFnZW50Lmdl
dCgpKQotICAgICAgICBicm93c2VyRGVidWdnZXJBZ2VudC0+ZGlkSW5zZXJ0RE9NTm9kZShub2Rl
KTsKLSNlbmRpZgogfQogCiB2b2lkIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6d2lsbFJlbW92
ZURPTU5vZGVJbXBsKEluc3BlY3RvckNvbnRyb2xsZXIqIGluc3BlY3RvckNvbnRyb2xsZXIsIE5v
ZGUqIG5vZGUpCiB7CiAjaWYgRU5BQkxFKEpBVkFTQ1JJUFRfREVCVUdHRVIpCi0gICAgaWYgKElu
c3BlY3RvckJyb3dzZXJEZWJ1Z2dlckFnZW50KiBicm93c2VyRGVidWdnZXJBZ2VudCA9IGluc3Bl
Y3RvckNvbnRyb2xsZXItPm1fYnJvd3NlckRlYnVnZ2VyQWdlbnQuZ2V0KCkpCi0gICAgICAgIGJy
b3dzZXJEZWJ1Z2dlckFnZW50LT53aWxsUmVtb3ZlRE9NTm9kZShub2RlKTsKKyAgICBJbnNwZWN0
b3JEZWJ1Z2dlckFnZW50KiBkZWJ1Z2dlckFnZW50ID0gaW5zcGVjdG9yQ29udHJvbGxlci0+bV9k
ZWJ1Z2dlckFnZW50LmdldCgpOworICAgIGlmICghZGVidWdnZXJBZ2VudCkKKyAgICAgICAgcmV0
dXJuOworICAgIEluc3BlY3RvckRPTUFnZW50KiBkb21BZ2VudCA9IGluc3BlY3RvckNvbnRyb2xs
ZXItPm1fZG9tQWdlbnQuZ2V0KCk7CisgICAgaWYgKCFkb21BZ2VudCkKKyAgICAgICAgcmV0dXJu
OworICAgIFJlZlB0cjxJbnNwZWN0b3JPYmplY3Q+IGV2ZW50RGF0YSA9IEluc3BlY3Rvck9iamVj
dDo6Y3JlYXRlKCk7CisgICAgaWYgKGRvbUFnZW50LT5zaG91bGRCcmVha09uTm9kZVJlbW92YWwo
bm9kZSwgZXZlbnREYXRhKSkgeworICAgICAgICBldmVudERhdGEtPnNldFN0cmluZygiYnJlYWtw
b2ludFR5cGUiLCBkb21OYXRpdmVCcmVha3BvaW50VHlwZSk7CisgICAgICAgIGRlYnVnZ2VyQWdl
bnQtPmJyZWFrUHJvZ3JhbShOYXRpdmVCcmVha3BvaW50RGVidWdnZXJFdmVudFR5cGUsIGV2ZW50
RGF0YSk7CisgICAgfQogI2VuZGlmCiB9CiAKIHZvaWQgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9u
OjpkaWRSZW1vdmVET01Ob2RlSW1wbChJbnNwZWN0b3JDb250cm9sbGVyKiBpbnNwZWN0b3JDb250
cm9sbGVyLCBOb2RlKiBub2RlKQogewotI2lmIEVOQUJMRShKQVZBU0NSSVBUX0RFQlVHR0VSKQot
ICAgIGlmIChJbnNwZWN0b3JCcm93c2VyRGVidWdnZXJBZ2VudCogYnJvd3NlckRlYnVnZ2VyQWdl
bnQgPSBpbnNwZWN0b3JDb250cm9sbGVyLT5tX2Jyb3dzZXJEZWJ1Z2dlckFnZW50LmdldCgpKQot
ICAgICAgICBicm93c2VyRGVidWdnZXJBZ2VudC0+ZGlkUmVtb3ZlRE9NTm9kZShub2RlKTsKLSNl
bmRpZgogICAgIGlmIChJbnNwZWN0b3JET01BZ2VudCogZG9tQWdlbnQgPSBpbnNwZWN0b3JDb250
cm9sbGVyLT5tX2RvbUFnZW50LmdldCgpKQogICAgICAgICBkb21BZ2VudC0+ZGlkUmVtb3ZlRE9N
Tm9kZShub2RlKTsKIH0KQEAgLTExNCw4ICsxMjcsMTcgQEAgdm9pZCBJbnNwZWN0b3JJbnN0cnVt
ZW50YXRpb246OmRpZFJlbW92ZURPTU5vZGVJbXBsKEluc3BlY3RvckNvbnRyb2xsZXIqIGluc3Bl
Y3QKIHZvaWQgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjp3aWxsTW9kaWZ5RE9NQXR0ckltcGwo
SW5zcGVjdG9yQ29udHJvbGxlciogaW5zcGVjdG9yQ29udHJvbGxlciwgRWxlbWVudCogZWxlbWVu
dCkKIHsKICNpZiBFTkFCTEUoSkFWQVNDUklQVF9ERUJVR0dFUikKLSAgICBpZiAoSW5zcGVjdG9y
QnJvd3NlckRlYnVnZ2VyQWdlbnQqIGJyb3dzZXJEZWJ1Z2dlckFnZW50ID0gaW5zcGVjdG9yQ29u
dHJvbGxlci0+bV9icm93c2VyRGVidWdnZXJBZ2VudC5nZXQoKSkKLSAgICAgICAgYnJvd3NlckRl
YnVnZ2VyQWdlbnQtPndpbGxNb2RpZnlET01BdHRyKGVsZW1lbnQpOworICAgIEluc3BlY3RvckRl
YnVnZ2VyQWdlbnQqIGRlYnVnZ2VyQWdlbnQgPSBpbnNwZWN0b3JDb250cm9sbGVyLT5tX2RlYnVn
Z2VyQWdlbnQuZ2V0KCk7CisgICAgaWYgKCFkZWJ1Z2dlckFnZW50KQorICAgICAgICByZXR1cm47
CisgICAgSW5zcGVjdG9yRE9NQWdlbnQqIGRvbUFnZW50ID0gaW5zcGVjdG9yQ29udHJvbGxlci0+
bV9kb21BZ2VudC5nZXQoKTsKKyAgICBpZiAoIWRvbUFnZW50KQorICAgICAgICByZXR1cm47Cisg
ICAgUmVmUHRyPEluc3BlY3Rvck9iamVjdD4gZXZlbnREYXRhID0gSW5zcGVjdG9yT2JqZWN0Ojpj
cmVhdGUoKTsKKyAgICBpZiAoZG9tQWdlbnQtPnNob3VsZEJyZWFrT25BdHRyaWJ1dGVNb2RpZmlj
YXRpb24oZWxlbWVudCwgZXZlbnREYXRhKSkgeworICAgICAgICBldmVudERhdGEtPnNldFN0cmlu
ZygiYnJlYWtwb2ludFR5cGUiLCBkb21OYXRpdmVCcmVha3BvaW50VHlwZSk7CisgICAgICAgIGRl
YnVnZ2VyQWdlbnQtPmJyZWFrUHJvZ3JhbShOYXRpdmVCcmVha3BvaW50RGVidWdnZXJFdmVudFR5
cGUsIGV2ZW50RGF0YSk7CisgICAgfQogI2VuZGlmCiB9CiAKQEAgLTEzNCw4ICsxNTYsMTkgQEAg
dm9pZCBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmNoYXJhY3RlckRhdGFNb2RpZmllZEltcGwo
SW5zcGVjdG9yQ29udHJvbGxlciogaW4KIHZvaWQgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjp3
aWxsU2VuZFhNTEh0dHBSZXF1ZXN0SW1wbChJbnNwZWN0b3JDb250cm9sbGVyKiBpbnNwZWN0b3JD
b250cm9sbGVyLCBjb25zdCBTdHJpbmcmIHVybCkKIHsKICNpZiBFTkFCTEUoSkFWQVNDUklQVF9E
RUJVR0dFUikKLSAgICBpZiAoSW5zcGVjdG9yQnJvd3NlckRlYnVnZ2VyQWdlbnQqIGJyb3dzZXJE
ZWJ1Z2dlckFnZW50ID0gaW5zcGVjdG9yQ29udHJvbGxlci0+bV9icm93c2VyRGVidWdnZXJBZ2Vu
dC5nZXQoKSkKLSAgICAgICAgYnJvd3NlckRlYnVnZ2VyQWdlbnQtPndpbGxTZW5kWE1MSHR0cFJl
cXVlc3QodXJsKTsKKyAgICBJbnNwZWN0b3JEZWJ1Z2dlckFnZW50KiBkZWJ1Z2dlckFnZW50ID0g
aW5zcGVjdG9yQ29udHJvbGxlci0+bV9kZWJ1Z2dlckFnZW50LmdldCgpOworICAgIGlmICghZGVi
dWdnZXJBZ2VudCkKKyAgICAgICAgcmV0dXJuOworCisgICAgU3RyaW5nIGJyZWFrcG9pbnRVUkw7
CisgICAgaWYgKCFpbnNwZWN0b3JDb250cm9sbGVyLT5oYXNYSFJCcmVha3BvaW50KHVybCwgJmJy
ZWFrcG9pbnRVUkwpKQorICAgICAgICByZXR1cm47CisKKyAgICBSZWZQdHI8SW5zcGVjdG9yT2Jq
ZWN0PiBldmVudERhdGEgPSBJbnNwZWN0b3JPYmplY3Q6OmNyZWF0ZSgpOworICAgIGV2ZW50RGF0
YS0+c2V0U3RyaW5nKCJicmVha3BvaW50VHlwZSIsIHhock5hdGl2ZUJyZWFrcG9pbnRUeXBlKTsK
KyAgICBldmVudERhdGEtPnNldFN0cmluZygiYnJlYWtwb2ludFVSTCIsIGJyZWFrcG9pbnRVUkwp
OworICAgIGV2ZW50RGF0YS0+c2V0U3RyaW5nKCJ1cmwiLCB1cmwpOworICAgIGRlYnVnZ2VyQWdl
bnQtPmJyZWFrUHJvZ3JhbShOYXRpdmVCcmVha3BvaW50RGVidWdnZXJFdmVudFR5cGUsIGV2ZW50
RGF0YSk7CiAjZW5kaWYKIH0KIApAQCAtNTEzLDggKzU0NiwxOSBAQCBib29sIEluc3BlY3Rvcklu
c3RydW1lbnRhdGlvbjo6aGFzRnJvbnRlbmQoSW5zcGVjdG9yQ29udHJvbGxlciogaW5zcGVjdG9y
Q29udHJvbAogdm9pZCBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OnBhdXNlT25OYXRpdmVFdmVu
dElmTmVlZGVkKEluc3BlY3RvckNvbnRyb2xsZXIqIGluc3BlY3RvckNvbnRyb2xsZXIsIGNvbnN0
IFN0cmluZyYgY2F0ZWdvcnlUeXBlLCBjb25zdCBTdHJpbmcmIGV2ZW50TmFtZSwgYm9vbCBzeW5j
aHJvbm91cykKIHsKICNpZiBFTkFCTEUoSkFWQVNDUklQVF9ERUJVR0dFUikKLSAgICBpZiAoSW5z
cGVjdG9yQnJvd3NlckRlYnVnZ2VyQWdlbnQqIGJyb3dzZXJEZWJ1Z2dlckFnZW50ID0gaW5zcGVj
dG9yQ29udHJvbGxlci0+bV9icm93c2VyRGVidWdnZXJBZ2VudC5nZXQoKSkKLSAgICAgICAgYnJv
d3NlckRlYnVnZ2VyQWdlbnQtPnBhdXNlT25OYXRpdmVFdmVudElmTmVlZGVkKGNhdGVnb3J5VHlw
ZSwgZXZlbnROYW1lLCBzeW5jaHJvbm91cyk7CisgICAgSW5zcGVjdG9yRGVidWdnZXJBZ2VudCog
ZGVidWdnZXJBZ2VudCA9IGluc3BlY3RvckNvbnRyb2xsZXItPm1fZGVidWdnZXJBZ2VudC5nZXQo
KTsKKyAgICBpZiAoIWRlYnVnZ2VyQWdlbnQpCisgICAgICAgIHJldHVybjsKKyAgICBTdHJpbmcg
ZnVsbEV2ZW50TmFtZSA9IFN0cmluZzo6Zm9ybWF0KCIlczolcyIsIGNhdGVnb3J5VHlwZS51dGY4
KCkuZGF0YSgpLCBldmVudE5hbWUudXRmOCgpLmRhdGEoKSk7CisgICAgaWYgKCFpbnNwZWN0b3JD
b250cm9sbGVyLT5oYXNFdmVudExpc3RlbmVyQnJlYWtwb2ludChmdWxsRXZlbnROYW1lKSkKKyAg
ICAgICAgcmV0dXJuOworICAgIFJlZlB0cjxJbnNwZWN0b3JPYmplY3Q+IGV2ZW50RGF0YSA9IElu
c3BlY3Rvck9iamVjdDo6Y3JlYXRlKCk7CisgICAgZXZlbnREYXRhLT5zZXRTdHJpbmcoImJyZWFr
cG9pbnRUeXBlIiwgZXZlbnRMaXN0ZW5lck5hdGl2ZUJyZWFrcG9pbnRUeXBlKTsKKyAgICBldmVu
dERhdGEtPnNldFN0cmluZygiZXZlbnROYW1lIiwgZnVsbEV2ZW50TmFtZSk7CisgICAgaWYgKHN5
bmNocm9ub3VzKQorICAgICAgICBkZWJ1Z2dlckFnZW50LT5icmVha1Byb2dyYW0oTmF0aXZlQnJl
YWtwb2ludERlYnVnZ2VyRXZlbnRUeXBlLCBldmVudERhdGEpOworICAgIGVsc2UKKyAgICAgICAg
ZGVidWdnZXJBZ2VudC0+c2NoZWR1bGVQYXVzZU9uTmV4dFN0YXRlbWVudChOYXRpdmVCcmVha3Bv
aW50RGVidWdnZXJFdmVudFR5cGUsIGV2ZW50RGF0YSk7CiAjZW5kaWYKIH0KIAo=
</data>

          </attachment>
      

    </bug>

</bugzilla>