<?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>59321</bug_id>
          
          <creation_ts>2011-04-25 06:50:44 -0700</creation_ts>
          <short_desc>Web Inspector: move Frame and Resource Tree management into the Page agent.</short_desc>
          <delta_ts>2011-04-25 07:14:47 -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>Web Inspector (Deprecated)</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>0</everconfirmed>
          <reporter name="Pavel Feldman">pfeldman</reporter>
          <assigned_to name="Pavel Feldman">pfeldman</assigned_to>
          <cc>apavlov</cc>
    
    <cc>buildbot</cc>
    
    <cc>bweinstein</cc>
    
    <cc>dglazkov</cc>
    
    <cc>joepeck</cc>
    
    <cc>keishi</cc>
    
    <cc>loislo</cc>
    
    <cc>pfeldman</cc>
    
    <cc>pmuellr</cc>
    
    <cc>rik</cc>
    
    <cc>timothy</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>yurys</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>391748</commentid>
    <comment_count>0</comment_count>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2011-04-25 06:50:44 -0700</bug_when>
    <thetext>Network agent should only handle network-related activities. Frame structure should be managed by the Page agent instead.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>391749</commentid>
    <comment_count>1</comment_count>
      <attachid>90916</attachid>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2011-04-25 06:52:56 -0700</bug_when>
    <thetext>Created attachment 90916
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>391750</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-04-25 07:03:16 -0700</bug_when>
    <thetext>Attachment 90916 did not build on mac:
Build output: http://queues.webkit.org/results/8508257</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>391751</commentid>
    <comment_count>3</comment_count>
      <attachid>90916</attachid>
    <who name="Yury Semikhatsky">yurys</who>
    <bug_when>2011-04-25 07:08:53 -0700</bug_when>
    <thetext>Comment on attachment 90916
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=90916&amp;action=review

&gt; Source/WebCore/inspector/Inspector.json:67
&gt; +                &quot;description&quot;: &quot;Resource type as it was perceived by the rendering enging.&quot;

enging -&gt; engine.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>391752</commentid>
    <comment_count>4</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-04-25 07:09:30 -0700</bug_when>
    <thetext>Attachment 90916 did not build on chromium:
Build output: http://queues.webkit.org/results/8507289</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>391753</commentid>
    <comment_count>5</comment_count>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2011-04-25 07:12:45 -0700</bug_when>
    <thetext>Committed r84774: &lt;http://trac.webkit.org/changeset/84774&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>391754</commentid>
    <comment_count>6</comment_count>
    <who name="Build Bot">buildbot</who>
    <bug_when>2011-04-25 07:14:47 -0700</bug_when>
    <thetext>Attachment 90916 did not build on win:
Build output: http://queues.webkit.org/results/8508261</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>90916</attachid>
            <date>2011-04-25 06:52:56 -0700</date>
            <delta_ts>2011-04-25 07:08:53 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-59321-20110425175253.patch</filename>
            <type>text/plain</type>
            <size>74851</size>
            <attacher name="Pavel Feldman">pfeldman</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogODQ3NzIKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5n
ZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCBmMTI2ZjJkNjMyNGI4ODMzZmJmMDFl
MzQ4NWI1YjIxNGNmYTc4NTFjLi40NmE0ZmM1YjIyNGVjOTNjMzcwYzIzNTU4NWY2MTA4ZWIzZmNh
MGYwIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCkBAIC0xLDUgKzEsMTQgQEAKIDIwMTEtMDQtMjUgIFBhdmVsIEZlbGRtYW4gIDxw
ZmVsZG1hbkBnb29nbGUuY29tPgogCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIFdlYiBJbnNwZWN0b3I6IG1vdmUgRnJhbWUgYW5kIFJlc291cmNlIFRyZWUg
bWFuYWdlbWVudCBpbnRvIHRoZSBQYWdlIGFnZW50LgorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTkzMjEKKworICAgICAgICAqIGluc3BlY3Rvci9yZXBv
cnQtcHJvdG9jb2wtZXJyb3JzLmh0bWw6CisKKzIwMTEtMDQtMjUgIFBhdmVsIEZlbGRtYW4gIDxw
ZmVsZG1hbkBnb29nbGUuY29tPgorCiAgICAgICAgIFJldmlld2VkIGJ5IFl1cnkgU2VtaWtoYXRz
a3kuCiAKICAgICAgICAgV2ViIEluc3BlY3RvcjogZmV3IHByb3RvY29sIGltcHJvdmVtZW50cy4K
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9yZXBvcnQtcHJvdG9jb2wtZXJyb3Jz
Lmh0bWwgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvcmVwb3J0LXByb3RvY29sLWVycm9ycy5odG1s
CmluZGV4IDU5MGUzZTZjODI3MDlmN2RlYzA4Y2Y4OTM5MjkxNGJhNzljNDJiODYuLjUzMGEwYTY3
YmFiOWMwZGRmOWMwOTZkYTlhM2JiNzkwYzgyMDIzYzMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L2luc3BlY3Rvci9yZXBvcnQtcHJvdG9jb2wtZXJyb3JzLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMv
aW5zcGVjdG9yL3JlcG9ydC1wcm90b2NvbC1lcnJvcnMuaHRtbApAQCAtMTIsMTAgKzEyLDEwIEBA
IGZ1bmN0aW9uIHRlc3QoKQogICAgICAgICAneyJpZCI6MSwibWV0aG9kIjoxfScsCiAgICAgICAg
ICd7ImlkIjoyLCJtZXRob2QiOiJyZXNvdXJjZUNvbnRlbnQifScsCiAgICAgICAgICd7ImlkIjoz
LCJtZXRob2QiOiJET00udGVzdCJ9JywKLSAgICAgICAgJ3siaWQiOjQsIm1ldGhvZCI6Ik5ldHdv
cmsuZ2V0UmVzb3VyY2VDb250ZW50In0nLAotICAgICAgICAneyJpZCI6NSwibWV0aG9kIjoiTmV0
d29yay5nZXRSZXNvdXJjZUNvbnRlbnQiLCJwYXJhbXMiOltdfScsCi0gICAgICAgICd7ImlkIjo2
LCJtZXRob2QiOiJOZXR3b3JrLmdldFJlc291cmNlQ29udGVudCIsInBhcmFtcyI6e319JywKLSAg
ICAgICAgJ3siaWQiOjcsIm1ldGhvZCI6Ik5ldHdvcmsuZ2V0UmVzb3VyY2VDb250ZW50IiwicGFy
YW1zIjp7ImZyYW1lSWQiOiJub3QgYSBudW1iZXIifX0nLAorICAgICAgICAneyJpZCI6NCwibWV0
aG9kIjoiUGFnZS5nZXRSZXNvdXJjZUNvbnRlbnQifScsCisgICAgICAgICd7ImlkIjo1LCJtZXRo
b2QiOiJQYWdlLmdldFJlc291cmNlQ29udGVudCIsInBhcmFtcyI6W119JywKKyAgICAgICAgJ3si
aWQiOjYsIm1ldGhvZCI6IlBhZ2UuZ2V0UmVzb3VyY2VDb250ZW50IiwicGFyYW1zIjp7fX0nLAor
ICAgICAgICAneyJpZCI6NywibWV0aG9kIjoiUGFnZS5nZXRSZXNvdXJjZUNvbnRlbnQiLCJwYXJh
bXMiOnsiZnJhbWVJZCI6Im5vdCBhIG51bWJlciJ9fScsCiAgICAgXTsKICAgICB2YXIgbnVtYmVy
T2ZSZXBvcnRzID0gMDsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIv
U291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IDYyMGIxY2IzZDcwYTk4N2ZhMzI0NmQ0ZjVh
NzEzMzY0YWRhZTZiNGUuLmE3MTNjNWZmZDdkNDkyZDhiOTkzZTQwYTRmOTg1NzViMGIyM2Q1NWYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKQEAgLTEsNSArMSw4OSBAQAogMjAxMS0wNC0yNSAgUGF2ZWwgRmVsZG1hbiAg
PHBmZWxkbWFuQGdvb2dsZS5jb20+CiAKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgV2ViIEluc3BlY3RvcjogbW92ZSBGcmFtZSBhbmQgUmVzb3VyY2UgVHJl
ZSBtYW5hZ2VtZW50IGludG8gdGhlIFBhZ2UgYWdlbnQuCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD01OTMyMQorCisgICAgICAgIE5ldHdvcmsgYWdlbnQg
c2hvdWxkIG9ubHkgaGFuZGxlIG5ldHdvcmstcmVsYXRlZCBhY3Rpdml0aWVzLgorICAgICAgICBG
cmFtZSBzdHJ1Y3R1cmUgc2hvdWxkIGJlIG1hbmFnZWQgYnkgdGhlIFBhZ2UgYWdlbnQgaW5zdGVh
ZC4KKworICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3IuanNvbjoKKyAgICAgICAgKiBpbnNw
ZWN0b3IvSW5zcGVjdG9yQWdlbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yQWdl
bnQ6Okluc3BlY3RvckFnZW50KToKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yRE9NQWdl
bnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yRE9NQWdlbnQ6Okluc3BlY3RvckRP
TUFnZW50KToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckRPTUFnZW50OjpzZXRGcm9udGVu
ZCk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JET01BZ2VudDo6cmVzdG9yZSk6CisgICAg
ICAgIChXZWJDb3JlOjpJbnNwZWN0b3JET01BZ2VudDo6aGlnaGxpZ2h0RnJhbWUpOgorICAgICAg
ICAqIGluc3BlY3Rvci9JbnNwZWN0b3JET01BZ2VudC5oOgorICAgICAgICAoV2ViQ29yZTo6SW5z
cGVjdG9yRE9NQWdlbnQ6OmNyZWF0ZSk6CisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3Rvcklu
c3RydW1lbnRhdGlvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JJbnN0cnVtZW50
YXRpb246OmRvbUNvbnRlbnRMb2FkZWRFdmVudEZpcmVkSW1wbCk6CisgICAgICAgIChXZWJDb3Jl
OjpJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmxvYWRFdmVudEZpcmVkSW1wbCk6CisgICAgICAg
IChXZWJDb3JlOjpJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmZyYW1lRGV0YWNoZWRGcm9tUGFy
ZW50SW1wbCk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmRp
ZENvbW1pdExvYWRJbXBsKToKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yUGFnZUFnZW50
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvclBhZ2VBZ2VudDo6Y3JlYXRlKToKKyAg
ICAgICAgKFdlYkNvcmU6Okluc3BlY3RvclBhZ2VBZ2VudDo6cmVzb3VyY2VDb250ZW50KToKKyAg
ICAgICAgKFdlYkNvcmU6Okluc3BlY3RvclBhZ2VBZ2VudDo6cmVzb3VyY2VDb250ZW50QmFzZTY0
KToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvclBhZ2VBZ2VudDo6cmVzb3VyY2VEYXRhKToK
KyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvclBhZ2VBZ2VudDo6Y2FjaGVkUmVzb3VyY2UpOgor
ICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yUGFnZUFnZW50OjpyZXNvdXJjZVR5cGVTdHJpbmcp
OgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yUGFnZUFnZW50OjpjYWNoZWRSZXNvdXJjZVR5
cGUpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yUGFnZUFnZW50OjpjYWNoZWRSZXNvdXJj
ZVR5cGVTdHJpbmcpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yUGFnZUFnZW50OjpJbnNw
ZWN0b3JQYWdlQWdlbnQpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yUGFnZUFnZW50Ojpz
ZXRGcm9udGVuZCk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JQYWdlQWdlbnQ6OnJlbG9h
ZCk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JQYWdlQWdlbnQ6Om9wZW4pOgorICAgICAg
ICAoV2ViQ29yZTo6SW5zcGVjdG9yUGFnZUFnZW50OjpnZXRDb29raWVzKToKKyAgICAgICAgKFdl
YkNvcmU6Okluc3BlY3RvclBhZ2VBZ2VudDo6ZGVsZXRlQ29va2llKToKKyAgICAgICAgKFdlYkNv
cmU6Okluc3BlY3RvclBhZ2VBZ2VudDo6Z2V0UmVzb3VyY2VUcmVlKToKKyAgICAgICAgKFdlYkNv
cmU6Okluc3BlY3RvclBhZ2VBZ2VudDo6Z2V0UmVzb3VyY2VDb250ZW50KToKKyAgICAgICAgKFdl
YkNvcmU6Okluc3BlY3RvclBhZ2VBZ2VudDo6cmVzdG9yZSk6CisgICAgICAgIChXZWJDb3JlOjpJ
bnNwZWN0b3JQYWdlQWdlbnQ6OmRvbUNvbnRlbnRFdmVudEZpcmVkKToKKyAgICAgICAgKFdlYkNv
cmU6Okluc3BlY3RvclBhZ2VBZ2VudDo6bG9hZEV2ZW50RmlyZWQpOgorICAgICAgICAoV2ViQ29y
ZTo6SW5zcGVjdG9yUGFnZUFnZW50OjpmcmFtZU5hdmlnYXRlZCk6CisgICAgICAgIChXZWJDb3Jl
OjpJbnNwZWN0b3JQYWdlQWdlbnQ6OmZyYW1lRGV0YWNoZWQpOgorICAgICAgICAoV2ViQ29yZTo6
SW5zcGVjdG9yUGFnZUFnZW50OjpkaWRDbGVhcldpbmRvd09iamVjdEluV29ybGQpOgorICAgICAg
ICAoV2ViQ29yZTo6SW5zcGVjdG9yUGFnZUFnZW50OjptYWluRnJhbWUpOgorICAgICAgICAoV2Vi
Q29yZTo6cG9pbnRlckFzSWQpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yUGFnZUFnZW50
OjpmcmFtZUZvcklkKToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvclBhZ2VBZ2VudDo6ZnJh
bWVJZCk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JQYWdlQWdlbnQ6OmxvYWRlcklkKToK
KyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvclBhZ2VBZ2VudDo6YnVpbGRPYmplY3RGb3JGcmFt
ZSk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JQYWdlQWdlbnQ6OmJ1aWxkT2JqZWN0Rm9y
RnJhbWVUcmVlKToKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yUGFnZUFnZW50Lmg6Cisg
ICAgICAgICogaW5zcGVjdG9yL0luc3BlY3RvclJlc291cmNlQWdlbnQuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6YnVpbGRPYmplY3RGb3JDYWNoZWRSZXNvdXJjZSk6CisgICAgICAgIChXZWJDb3Jl
OjpJbnNwZWN0b3JSZXNvdXJjZUFnZW50Ojp3aWxsU2VuZFJlcXVlc3QpOgorICAgICAgICAoV2Vi
Q29yZTo6SW5zcGVjdG9yUmVzb3VyY2VBZ2VudDo6ZGlkUmVjZWl2ZVJlc3BvbnNlKToKKyAgICAg
ICAgKFdlYkNvcmU6Okluc3BlY3RvclJlc291cmNlQWdlbnQ6OmRpZExvYWRSZXNvdXJjZUZyb21N
ZW1vcnlDYWNoZSk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JSZXNvdXJjZUFnZW50Ojpz
ZXRJbml0aWFsU2NyaXB0Q29udGVudCk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JSZXNv
dXJjZUFnZW50OjpzZXRJbml0aWFsWEhSQ29udGVudCk6CisgICAgICAgIChXZWJDb3JlOjpJbnNw
ZWN0b3JSZXNvdXJjZUFnZW50OjpJbnNwZWN0b3JSZXNvdXJjZUFnZW50KToKKyAgICAgICAgKiBp
bnNwZWN0b3IvSW5zcGVjdG9yUmVzb3VyY2VBZ2VudC5oOgorICAgICAgICAoV2ViQ29yZTo6SW5z
cGVjdG9yUmVzb3VyY2VBZ2VudDo6Y3JlYXRlKToKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVj
dG9yU3R5bGVTaGVldC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JTdHlsZVNoZWV0
OjpyZXNvdXJjZVN0eWxlU2hlZXRUZXh0KToKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5k
L05ldHdvcmtNYW5hZ2VyLmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9yLk5ldHdvcmtNYW5hZ2Vy
LnByb3RvdHlwZS5yZXF1ZXN0Q29udGVudCk6CisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVu
ZC9OZXR3b3JrUGFuZWwuanM6CisgICAgICAgIChXZWJJbnNwZWN0b3IuTmV0d29ya1BhbmVsKToK
KyAgICAgICAgKFdlYkluc3BlY3Rvci5OZXR3b3JrUGFuZWwucHJvdG90eXBlLmZyYW1lTmF2aWdh
dGVkKToKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL1Jlc291cmNlVHJlZU1vZGVsLmpz
OgorICAgICAgICAoV2ViSW5zcGVjdG9yLlJlc291cmNlVHJlZU1vZGVsKToKKyAgICAgICAgKFdl
Ykluc3BlY3Rvci5SZXNvdXJjZVRyZWVNb2RlbC5wcm90b3R5cGUuZnJvbnRlbmRSZXVzZWQpOgor
ICAgICAgICAoV2ViSW5zcGVjdG9yLlJlc291cmNlVHJlZU1vZGVsLnByb3RvdHlwZS5mcmFtZU5h
dmlnYXRlZCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuUmVzb3VyY2VUcmVlTW9kZWwucHJvdG90
eXBlLmZyYW1lRGV0YWNoZWQpOgorICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvaW5zcGVj
dG9yLmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9yLmRvbUNvbnRlbnRFdmVudEZpcmVkKToKKyAg
ICAgICAgKFdlYkluc3BlY3Rvci5sb2FkRXZlbnRGaXJlZCk6CisgICAgICAgIChXZWJJbnNwZWN0
b3IuZnJhbWVOYXZpZ2F0ZWQpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLmZyYW1lRGV0YWNoZWQp
OgorCisyMDExLTA0LTI1ICBQYXZlbCBGZWxkbWFuICA8cGZlbGRtYW5AZ29vZ2xlLmNvbT4KKwog
ICAgICAgICBSZXZpZXdlZCBieSBZdXJ5IFNlbWlraGF0c2t5LgogCiAgICAgICAgIFdlYiBJbnNw
ZWN0b3I6IGZldyBwcm90b2NvbCBpbXByb3ZlbWVudHMuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yLmpzb24gYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3Iv
SW5zcGVjdG9yLmpzb24KaW5kZXggMGZjODZkMzhiMTk5NTk0MmEyMTNlYTlhZjViN2FhYTE3MTFi
YWM2Yi4uMjI2OTkxMjQyOTY1NGRhMjc3MzNkNDI3MzJjZjY0MGMwNjMyMzJkNiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvci5qc29uCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3IuanNvbgpAQCAtNTksNyArNTksNDUgQEAKICAgICB7
CiAgICAgICAgICJkb21haW4iOiAiUGFnZSIsCiAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJBY3Rp
b25zIGFuZCBldmVudHMgcmVsYXRlZCB0byB0aGUgaW5zcGVjdGVkIHBhZ2UgYmVsb25nIHRvIHRo
ZSBwYWdlIGRvbWFpbi4iLAotICAgICAgICAidHlwZXMiOiBbXSwKKyAgICAgICAgInR5cGVzIjog
WworICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICJpZCI6ICJSZXNvdXJjZVR5cGUiLAor
ICAgICAgICAgICAgICAgICJ0eXBlIjogInN0cmluZyIsCisgICAgICAgICAgICAgICAgImVudW0i
OiBbIkRvY3VtZW50IiwgIlN0eWxlc2hlZXQiLCAiSW1hZ2UiLCAiRm9udCIsICJTY3JpcHQiLCAi
WEhSIiwgIldlYlNvY2tldCIsICJPdGhlciJdLAorICAgICAgICAgICAgICAgICJkZXNjcmlwdGlv
biI6ICJSZXNvdXJjZSB0eXBlIGFzIGl0IHdhcyBwZXJjZWl2ZWQgYnkgdGhlIHJlbmRlcmluZyBl
bmdpbmcuIgorICAgICAgICAgICAgfSwKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAi
aWQiOiAiRnJhbWUiLAorICAgICAgICAgICAgICAgICJ0eXBlIjogIm9iamVjdCIsCisgICAgICAg
ICAgICAgICAgImRlc2NyaXB0aW9uIjogIkluZm9ybWF0aW9uIGFib3V0IHRoZSBGcmFtZSBvbiB0
aGUgcGFnZS4iLAorICAgICAgICAgICAgICAgICJwcm9wZXJ0aWVzIjogWworICAgICAgICAgICAg
ICAgICAgICB7ICJuYW1lIjogImlkIiwgInR5cGUiOiAic3RyaW5nIiwgImRlc2NyaXB0aW9uIjog
IkZyYW1lIHVuaXF1ZSBpZGVudGlmaWVyLiIgfSwKKyAgICAgICAgICAgICAgICAgICAgeyAibmFt
ZSI6ICJwYXJlbnRJZCIsICJ0eXBlIjogInN0cmluZyIsICJkZXNjcmlwdGlvbiI6ICJQYXJlbnQg
ZnJhbWUgaWRlbnRpZmllci4iIH0sCisgICAgICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAibG9h
ZGVySWQiLCAidHlwZSI6ICJzdHJpbmciLCAiZGVzY3JpcHRpb24iOiAiSWRlbnRpZmllciBvZiB0
aGUgbG9hZGVyIGFzc29jaWF0ZWQgd2l0aCB0aGlzIGZyYW1lLiIgfSwKKyAgICAgICAgICAgICAg
ICAgICAgeyAibmFtZSI6ICJuYW1lIiwgInR5cGUiOiAic3RyaW5nIiwgIm9wdGlvbmFsIjogdHJ1
ZSwgImRlc2NyaXB0aW9uIjogIkZyYW1lJ3MgbmFtZSBhcyBzcGVjaWZpZWQgaW4gdGhlIHRhZy4i
IH0sCisgICAgICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAidXJsIiwgInR5cGUiOiAic3RyaW5n
IiwgImRlc2NyaXB0aW9uIjogIkZyYW1lIGRvY3VtZW50J3MgVVJMLiIgfQorICAgICAgICAgICAg
ICAgIF0KKyAgICAgICAgICAgIH0sCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgImlk
IjogIkZyYW1lUmVzb3VyY2VUcmVlIiwKKyAgICAgICAgICAgICAgICAidHlwZSI6ICJvYmplY3Qi
LAorICAgICAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJJbmZvcm1hdGlvbiBhYm91dCB0aGUg
RnJhbWUgaGllcmFyY2h5IGFsb25nIHdpdGggdGhlaXIgY2FjaGVkIHJlc291cmNlcy4iLAorICAg
ICAgICAgICAgICAgICJwcm9wZXJ0aWVzIjogWworICAgICAgICAgICAgICAgICAgICB7ICJuYW1l
IjogImZyYW1lIiwgIiRyZWYiOiAiRnJhbWUiLCAiZGVzY3JpcHRpb24iOiAiRnJhbWUgaW5mb3Jt
YXRpb24gZm9yIHRoaXMgdHJlZSBpdGVtLiIgfSwKKyAgICAgICAgICAgICAgICAgICAgeyAibmFt
ZSI6ICJjaGlsZEZyYW1lcyIsICJ0eXBlIjogImFycmF5IiwgIm9wdGlvbmFsIjogdHJ1ZSwgIml0
ZW1zIjogeyAiJHJlZiI6ICJGcmFtZVJlc291cmNlVHJlZSIgfSwgImRlc2NyaXB0aW9uIjogIkNo
aWxkIGZyYW1lcy4iIH0sCisgICAgICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAicmVzb3VyY2Vz
IiwgInR5cGUiOiAiYXJyYXkiLAorICAgICAgICAgICAgICAgICAgICAgICAgIml0ZW1zIjogewor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICJ0eXBlIjogIm9iamVjdCIsCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgInByb3BlcnRpZXMiOiBbCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHsgIm5hbWUiOiAidXJsIiwgInR5cGUiOiAic3RyaW5nIiwgImRlc2NyaXB0aW9u
IjogIlJlc291cmNlIFVSTC4iIH0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsg
Im5hbWUiOiAidHlwZSIsICIkcmVmIjogIlJlc291cmNlVHlwZSIsICJkZXNjcmlwdGlvbiI6ICJU
eXBlIG9mIHRoaXMgcmVzb3VyY2UuIiB9CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgXQor
ICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICAgICAgICAgICJkZXNj
cmlwdGlvbiI6ICJJbmZvcm1hdGlvbiBhYm91dCBmcmFtZSByZXNvdXJjZXMuIgorICAgICAgICAg
ICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgfQorICAgICAgICBd
LAogICAgICAgICAiY29tbWFuZHMiOiBbCiAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAg
Im5hbWUiOiAiYWRkU2NyaXB0VG9FdmFsdWF0ZU9uTG9hZCIsCkBAIC0xMDAsNiArMTM4LDI1IEBA
CiAgICAgICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAiZG9tYWluIiwgInR5cGUiOiAic3RyaW5n
IiwgImRlc2NyaXB0aW9uIjogIkRvbWFpbiBvZiB0aGUgY29va2llIHRvIHJlbW92ZS4iIH0KICAg
ICAgICAgICAgICAgICBdLAogICAgICAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJEZWxldGVz
IGJyb3dzZXIgY29va2llIHdpdGggZ2l2ZW4gbmFtZSBmb3IgdGhlIGdpdmVuIGRvbWFpbi4iCisg
ICAgICAgICAgICB9LAorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICJuYW1lIjogImdl
dFJlc291cmNlVHJlZSIsCisgICAgICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIlJldHVybnMg
cHJlc2VudCBmcmFtZSAvIHJlc291cmNlIHRyZWUgc3RydWN0dXJlLiIsCisgICAgICAgICAgICAg
ICAgInJldHVybnMiOiBbCisgICAgICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAiZnJhbWVUcmVl
IiwgIiRyZWYiOiAiRnJhbWVSZXNvdXJjZVRyZWUiLCAiZGVzY3JpcHRpb24iOiAiUHJlc2VudCBm
cmFtZSAvIHJlc291cmNlIHRyZWUgc3RydWN0dXJlLiIgfQorICAgICAgICAgICAgICAgIF0KKyAg
ICAgICAgICAgIH0sCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgIm5hbWUiOiAiZ2V0
UmVzb3VyY2VDb250ZW50IiwKKyAgICAgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiUmV0dXJu
cyBjb250ZW50IG9mIHRoZSBnaXZlbiByZXNvdXJjZS4iLAorICAgICAgICAgICAgICAgICJwYXJh
bWV0ZXJzIjogWworICAgICAgICAgICAgICAgICAgICB7ICJuYW1lIjogImZyYW1lSWQiLCAidHlw
ZSI6ICJzdHJpbmciLCAiZGVzY3JpcHRpb24iOiAiRnJhbWUgaWQgdG8gZ2V0IHJlc291cmNlIGZv
ci4iIH0sCisgICAgICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAidXJsIiwgInR5cGUiOiAic3Ry
aW5nIiwgImRlc2NyaXB0aW9uIjogIlVSTCBvZiB0aGUgcmVzb3VyY2UgdG8gZ2V0IGNvbnRlbnQg
Zm9yLiIgfSwKKyAgICAgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJiYXNlNjRFbmNvZGUiLCAi
dHlwZSI6ICJib29sZWFuIiwgIm9wdGlvbmFsIjogdHJ1ZSwgImRlc2NyaXB0aW9uIjogIlJlcXVl
c3RzIHRoYXQgcmVzb3VyY2UgY29udGVudCBpcyBzZXJ2ZWQgYXMgYmFzZTY0LiIgfQorICAgICAg
ICAgICAgICAgIF0sCisgICAgICAgICAgICAgICAgInJldHVybnMiOiBbCisgICAgICAgICAgICAg
ICAgICAgIHsgIm5hbWUiOiAiY29udGVudCIsICJ0eXBlIjogInN0cmluZyIsICJkZXNjcmlwdGlv
biI6ICJSZXNvdXJjZSBjb250ZW50LiIgfQorICAgICAgICAgICAgICAgIF0KICAgICAgICAgICAg
IH0KICAgICAgICAgXSwKICAgICAgICAgImV2ZW50cyI6IFsKQEAgLTEyMCw2ICsxNzcsMjEgQEAK
ICAgICAgICAgICAgICAgICAicGFyYW1ldGVycyI6IFsKICAgICAgICAgICAgICAgICAgICAgeyAi
bmFtZSI6ICJ0aW1lc3RhbXAiLCAidHlwZSI6ICJudW1iZXIiIH0KICAgICAgICAgICAgICAgICBd
CisgICAgICAgICAgICB9LAorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICJuYW1lIjog
ImZyYW1lTmF2aWdhdGVkIiwKKyAgICAgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiRmlyZWQg
b25jZSBuYXZpZ2F0aW9uIG9mIHRoZSBmcmFtZSBoYXMgY29tcGxldGVkLiBGcmFtZSBpcyBub3cg
YXNzb2NpYXRlZCB3aXRoIHRoZSBuZXcgbG9hZGVyLiIsCisgICAgICAgICAgICAgICAgInBhcmFt
ZXRlcnMiOiBbCisgICAgICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAiZnJhbWUiLCAiJHJlZiI6
ICJGcmFtZSIsICJkZXNjcmlwdGlvbiI6ICJGcmFtZSBvYmplY3QuIiB9LAorICAgICAgICAgICAg
ICAgICAgICB7ICJuYW1lIjogImxvYWRlcklkIiwgInR5cGUiOiAic3RyaW5nIiwgImRlc2NyaXB0
aW9uIjogIkxvYWRlciBpZGVudGlmaWVyLiIgfQorICAgICAgICAgICAgICAgIF0KKyAgICAgICAg
ICAgIH0sCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgIm5hbWUiOiAiZnJhbWVEZXRh
Y2hlZCIsCisgICAgICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkZpcmVkIHdoZW4gZnJhbWUg
aGFzIGJlZW4gZGV0YWNoZWQgZnJvbSBpdHMgcGFyZW50LiIsCisgICAgICAgICAgICAgICAgInBh
cmFtZXRlcnMiOiBbCisgICAgICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAiZnJhbWVJZCIsICJ0
eXBlIjogInN0cmluZyIsICJkZXNjcmlwdGlvbiI6ICJJZCBvZiB0aGUgZnJhbWUgdGhhdCBoYXMg
YmVlbiBkZXRhY2hlZC4iIH0KKyAgICAgICAgICAgICAgICBdCiAgICAgICAgICAgICB9CiAgICAg
ICAgIF0KICAgICB9LApAQCAtMzQ3LDUyICs0MTksMTUgQEAKICAgICAgICAgICAgICAgICBdCiAg
ICAgICAgICAgICB9LAogICAgICAgICAgICAgewotICAgICAgICAgICAgICAgICJpZCI6ICJSZXNv
dXJjZVR5cGUiLAotICAgICAgICAgICAgICAgICJ0eXBlIjogInN0cmluZyIsCi0gICAgICAgICAg
ICAgICAgImVudW0iOiBbIkRvY3VtZW50IiwgIlN0eWxlc2hlZXQiLCAiSW1hZ2UiLCAiRm9udCIs
ICJTY3JpcHQiLCAiWEhSIiwgIldlYlNvY2tldCIsICJPdGhlciJdLAotICAgICAgICAgICAgICAg
ICJkZXNjcmlwdGlvbiI6ICJSZXNvdXJjZSB0eXBlIGFzIGl0IHdhcyBwZXJjZWl2ZWQgYnkgdGhl
IHJlbmRlcmluZyBlbmdpbmcuIgotICAgICAgICAgICAgfSwKLSAgICAgICAgICAgIHsKICAgICAg
ICAgICAgICAgICAiaWQiOiAiQ2FjaGVkUmVzb3VyY2UiLAogICAgICAgICAgICAgICAgICJ0eXBl
IjogIm9iamVjdCIsCiAgICAgICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkluZm9ybWF0aW9u
IGFib3V0IHRoZSBjYWNoZWQgcmVzb3VyY2UuIiwKICAgICAgICAgICAgICAgICAicHJvcGVydGll
cyI6IFsKICAgICAgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJ1cmwiLCAidHlwZSI6ICJzdHJp
bmciLCAiZGVzY3JpcHRpb24iOiAiUmVzb3VyY2UgVVJMLiIgfSwKLSAgICAgICAgICAgICAgICAg
ICAgeyAibmFtZSI6ICJ0eXBlIiwgIiRyZWYiOiAiUmVzb3VyY2VUeXBlIiwgImRlc2NyaXB0aW9u
IjogIlR5cGUgb2YgdGhpcyByZXNvdXJjZS4iIH0sCisgICAgICAgICAgICAgICAgICAgIHsgIm5h
bWUiOiAidHlwZSIsICIkcmVmIjogIlBhZ2UuUmVzb3VyY2VUeXBlIiwgImRlc2NyaXB0aW9uIjog
IlR5cGUgb2YgdGhpcyByZXNvdXJjZS4iIH0sCiAgICAgICAgICAgICAgICAgICAgIHsgIm5hbWUi
OiAicmVzcG9uc2UiLCAiJHJlZiI6ICJSZXNvdXJjZVJlc3BvbnNlIiwgImRlc2NyaXB0aW9uIjog
IkNhY2hlZCByZXNwb25zZSBkYXRhLiIgfSwKICAgICAgICAgICAgICAgICAgICAgeyAibmFtZSI6
ICJib2R5U2l6ZSIsICJ0eXBlIjogIm51bWJlciIsICJkZXNjcmlwdGlvbiI6ICJDYWNoZWQgcmVz
cG9uc2UgYm9keSBzaXplLiIgfQogICAgICAgICAgICAgICAgIF0KLSAgICAgICAgICAgIH0sCi0g
ICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgImlkIjogIkZyYW1lIiwKLSAgICAgICAgICAg
ICAgICAidHlwZSI6ICJvYmplY3QiLAotICAgICAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJJ
bmZvcm1hdGlvbiBhYm91dCB0aGUgRnJhbWUgb24gdGhlIHBhZ2UuIiwKLSAgICAgICAgICAgICAg
ICAicHJvcGVydGllcyI6IFsKLSAgICAgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJpZCIsICJ0
eXBlIjogInN0cmluZyIsICJkZXNjcmlwdGlvbiI6ICJGcmFtZSB1bmlxdWUgaWRlbnRpZmllci4i
IH0sCi0gICAgICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAicGFyZW50SWQiLCAidHlwZSI6ICJz
dHJpbmciLCAiZGVzY3JpcHRpb24iOiAiUGFyZW50IGZyYW1lIGlkZW50aWZpZXIuIiB9LAotICAg
ICAgICAgICAgICAgICAgICB7ICJuYW1lIjogImxvYWRlcklkIiwgInR5cGUiOiAic3RyaW5nIiwg
ImRlc2NyaXB0aW9uIjogIklkZW50aWZpZXIgb2YgdGhlIGxvYWRlciBhc3NvY2lhdGVkIHdpdGgg
dGhpcyBmcmFtZS4iIH0sCi0gICAgICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAibmFtZSIsICJ0
eXBlIjogInN0cmluZyIsICJvcHRpb25hbCI6IHRydWUsICJkZXNjcmlwdGlvbiI6ICJGcmFtZSdz
IG5hbWUgYXMgc3BlY2lmaWVkIGluIHRoZSB0YWcuIiB9LAotICAgICAgICAgICAgICAgICAgICB7
ICJuYW1lIjogInVybCIsICJ0eXBlIjogInN0cmluZyIsICJkZXNjcmlwdGlvbiI6ICJGcmFtZSBk
b2N1bWVudCdzIFVSTC4iIH0KLSAgICAgICAgICAgICAgICBdCi0gICAgICAgICAgICB9LAotICAg
ICAgICAgICAgewotICAgICAgICAgICAgICAgICJpZCI6ICJGcmFtZVJlc291cmNlVHJlZSIsCi0g
ICAgICAgICAgICAgICAgInR5cGUiOiAib2JqZWN0IiwKLSAgICAgICAgICAgICAgICAiZGVzY3Jp
cHRpb24iOiAiSW5mb3JtYXRpb24gYWJvdXQgdGhlIEZyYW1lIGhpZXJhcmNoeSBhbG9uZyB3aXRo
IHRoZWlyIGNhY2hlZCByZXNvdXJjZXMuIiwKLSAgICAgICAgICAgICAgICAicHJvcGVydGllcyI6
IFsKLSAgICAgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJmcmFtZSIsICIkcmVmIjogIkZyYW1l
IiwgImRlc2NyaXB0aW9uIjogIkZyYW1lIGluZm9ybWF0aW9uIGZvciB0aGlzIHRyZWUgaXRlbS4i
IH0sCi0gICAgICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAiY2hpbGRGcmFtZXMiLCAidHlwZSI6
ICJhcnJheSIsICJvcHRpb25hbCI6IHRydWUsICJpdGVtcyI6IHsgIiRyZWYiOiAiRnJhbWVSZXNv
dXJjZVRyZWUiIH0sICJkZXNjcmlwdGlvbiI6ICJDaGlsZCBmcmFtZXMuIiB9LAotICAgICAgICAg
ICAgICAgICAgICB7ICJuYW1lIjogInJlc291cmNlcyIsICJ0eXBlIjogImFycmF5IiwKLSAgICAg
ICAgICAgICAgICAgICAgICAgICJpdGVtcyI6IHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAidHlwZSI6ICJvYmplY3QiLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICJwcm9wZXJ0
aWVzIjogWwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ICJuYW1lIjogInVybCIs
ICJ0eXBlIjogInN0cmluZyIsICJkZXNjcmlwdGlvbiI6ICJSZXNvdXJjZSBVUkwuIiB9LAotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ICJuYW1lIjogInR5cGUiLCAiJHJlZiI6ICJS
ZXNvdXJjZVR5cGUiLCAiZGVzY3JpcHRpb24iOiAiVHlwZSBvZiB0aGlzIHJlc291cmNlLiIgfQot
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIF0KLSAgICAgICAgICAgICAgICAgICAgICAgIH0s
Ci0gICAgICAgICAgICAgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiSW5mb3JtYXRpb24gYWJv
dXQgZnJhbWUgcmVzb3VyY2VzLiIKLSAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAg
ICAgIF0KICAgICAgICAgICAgIH0KICAgICAgICAgXSwKICAgICAgICAgImNvbW1hbmRzIjogWwpA
QCAtNDA1LDI1ICs0NDAsNiBAQAogICAgICAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJEaXNh
YmxlcyBuZXR3b3JrIHRyYWNraW5nLCBwcmV2ZW50cyBuZXR3b3JrIGV2ZW50cyBmcm9tIGJlaW5n
IHNlbnQgdG8gdGhlIGNsaWVudC4iCiAgICAgICAgICAgICB9LAogICAgICAgICAgICAgewotICAg
ICAgICAgICAgICAgICJuYW1lIjogImdldENhY2hlZFJlc291cmNlcyIsCi0gICAgICAgICAgICAg
ICAgImRlc2NyaXB0aW9uIjogIlJldHVybnMgcHJlc2VudCBmcmFtZSAvIHJlc291cmNlIHRyZWUg
c3RydWN0dXJlLiIsCi0gICAgICAgICAgICAgICAgInJldHVybnMiOiBbCi0gICAgICAgICAgICAg
ICAgICAgIHsgIm5hbWUiOiAiZnJhbWVUcmVlIiwgIiRyZWYiOiAiRnJhbWVSZXNvdXJjZVRyZWUi
LCAiZGVzY3JpcHRpb24iOiAiUHJlc2VudCBmcmFtZSAvIHJlc291cmNlIHRyZWUgc3RydWN0dXJl
LiIgfQotICAgICAgICAgICAgICAgIF0KLSAgICAgICAgICAgIH0sCi0gICAgICAgICAgICB7Ci0g
ICAgICAgICAgICAgICAgIm5hbWUiOiAiZ2V0UmVzb3VyY2VDb250ZW50IiwKLSAgICAgICAgICAg
ICAgICAiZGVzY3JpcHRpb24iOiAiUmV0dXJucyBjb250ZW50IG9mIHRoZSBnaXZlbiByZXNvdXJj
ZS4iLAotICAgICAgICAgICAgICAgICJwYXJhbWV0ZXJzIjogWwotICAgICAgICAgICAgICAgICAg
ICB7ICJuYW1lIjogImZyYW1lSWQiLCAidHlwZSI6ICJzdHJpbmciLCAiZGVzY3JpcHRpb24iOiAi
RnJhbWUgaWQgdG8gZ2V0IHJlc291cmNlIGZvci4iIH0sCi0gICAgICAgICAgICAgICAgICAgIHsg
Im5hbWUiOiAidXJsIiwgInR5cGUiOiAic3RyaW5nIiwgImRlc2NyaXB0aW9uIjogIlVSTCBvZiB0
aGUgcmVzb3VyY2UgdG8gZ2V0IGNvbnRlbnQgZm9yLiIgfSwKLSAgICAgICAgICAgICAgICAgICAg
eyAibmFtZSI6ICJiYXNlNjRFbmNvZGUiLCAidHlwZSI6ICJib29sZWFuIiwgIm9wdGlvbmFsIjog
dHJ1ZSwgImRlc2NyaXB0aW9uIjogIlJlcXVlc3RzIHRoYXQgcmVzb3VyY2UgY29udGVudCBpcyBz
ZXJ2ZWQgYXMgYmFzZTY0LiIgfQotICAgICAgICAgICAgICAgIF0sCi0gICAgICAgICAgICAgICAg
InJldHVybnMiOiBbCi0gICAgICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAiY29udGVudCIsICJ0
eXBlIjogInN0cmluZyIsICJkZXNjcmlwdGlvbiI6ICJSZXNvdXJjZSBjb250ZW50LiIgfQotICAg
ICAgICAgICAgICAgIF0KLSAgICAgICAgICAgIH0sCi0gICAgICAgICAgICB7CiAgICAgICAgICAg
ICAgICAgIm5hbWUiOiAic2V0VXNlckFnZW50T3ZlcnJpZGUiLAogICAgICAgICAgICAgICAgICJk
ZXNjcmlwdGlvbiI6ICJBbGxvd3Mgb3ZlcnJpZGluZyB1c2VyIGFnZW50IHdpdGggdGhlIGdpdmVu
IHN0cmluZy4iLAogICAgICAgICAgICAgICAgICJwYXJhbWV0ZXJzIjogWwpAQCAtNDQwLDI1ICs0
NTYsNiBAQAogICAgICAgICBdLAogICAgICAgICAiZXZlbnRzIjogWwogICAgICAgICAgICAgewot
ICAgICAgICAgICAgICAgICJuYW1lIjogImRvbUNvbnRlbnRFdmVudEZpcmVkIiwKLSAgICAgICAg
ICAgICAgICAicGFyYW1ldGVycyI6IFsKLSAgICAgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJ0
aW1lIiwgInR5cGUiOiAibnVtYmVyIiB9Ci0gICAgICAgICAgICAgICAgXQotICAgICAgICAgICAg
fSwKLSAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICAibmFtZSI6ICJsb2FkRXZlbnRGaXJl
ZCIsCi0gICAgICAgICAgICAgICAgInBhcmFtZXRlcnMiOiBbCi0gICAgICAgICAgICAgICAgICAg
IHsgIm5hbWUiOiAidGltZSIsICJ0eXBlIjogIm51bWJlciIgfQotICAgICAgICAgICAgICAgIF0K
LSAgICAgICAgICAgIH0sCi0gICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgIm5hbWUiOiAi
ZnJhbWVEZXRhY2hlZCIsCi0gICAgICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkZpcmVkIHdo
ZW4gZnJhbWUgaGFzIGJlZW4gZGV0YWNoZWQgZnJvbSBpdHMgcGFyZW50LiIsCi0gICAgICAgICAg
ICAgICAgInBhcmFtZXRlcnMiOiBbCi0gICAgICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAiZnJh
bWVJZCIsICJ0eXBlIjogInN0cmluZyIsICJkZXNjcmlwdGlvbiI6ICJJZCBvZiB0aGUgZnJhbWUg
dGhhdCBoYXMgYmVlbiBkZXRhY2hlZC4iIH0KLSAgICAgICAgICAgICAgICBdCi0gICAgICAgICAg
ICB9LAotICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICJuYW1lIjogInJlcXVlc3RXaWxs
QmVTZW50IiwKICAgICAgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiRmlyZWQgd2hlbiBwYWdl
IGlzIGFib3V0IHRvIHNlbmQgSFRUUCByZXF1ZXN0LiIsCiAgICAgICAgICAgICAgICAgInBhcmFt
ZXRlcnMiOiBbCkBAIC00ODUsNyArNDgyLDcgQEAKICAgICAgICAgICAgICAgICAicGFyYW1ldGVy
cyI6IFsKICAgICAgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJpZGVudGlmaWVyIiwgInR5cGUi
OiAiaW50ZWdlciIsICJkZXNjcmlwdGlvbiI6ICJSZXF1ZXN0IGlkZW50aWZpZXIuIiB9LAogICAg
ICAgICAgICAgICAgICAgICB7ICJuYW1lIjogInRpbWVzdGFtcCIsICJ0eXBlIjogIm51bWJlciIs
ICJkZXNjcmlwdGlvbiI6ICJUaW1lc3RhbXAuIiB9LAotICAgICAgICAgICAgICAgICAgICB7ICJu
YW1lIjogInR5cGUiLCAiJHJlZiI6ICJSZXNvdXJjZVR5cGUiLCAiZGVzY3JpcHRpb24iOiAiUmVz
b3VyY2UgdHlwZS4iIH0sCisgICAgICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAidHlwZSIsICIk
cmVmIjogIlBhZ2UuUmVzb3VyY2VUeXBlIiwgImRlc2NyaXB0aW9uIjogIlJlc291cmNlIHR5cGUu
IiB9LAogICAgICAgICAgICAgICAgICAgICB7ICJuYW1lIjogInJlc3BvbnNlIiwgIiRyZWYiOiAi
UmVzb3VyY2VSZXNwb25zZSIsICJkZXNjcmlwdGlvbiI6ICJSZXNwb25zZSBkYXRhLiIgfQogICAg
ICAgICAgICAgICAgIF0KICAgICAgICAgICAgIH0sCkBAIC01MzQsMTUgKzUzMSw3IEBACiAgICAg
ICAgICAgICAgICAgInBhcmFtZXRlcnMiOiBbCiAgICAgICAgICAgICAgICAgICAgIHsgIm5hbWUi
OiAiaWRlbnRpZmllciIsICJ0eXBlIjogImludGVnZXIiLCAiZGVzY3JpcHRpb24iOiAiUmVxdWVz
dCBpZGVudGlmaWVyLiIgfSwKICAgICAgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJjb250ZW50
IiwgInR5cGUiOiAic3RyaW5nIiwgImRlc2NyaXB0aW9uIjogIlJlc291cmNlIGNvbnRlbnQuIiB9
LAotICAgICAgICAgICAgICAgICAgICB7ICJuYW1lIjogInR5cGUiLCAiJHJlZiI6ICJSZXNvdXJj
ZVR5cGUiLCAiZGVzY3JpcHRpb24iOiAiUmVzb3VyY2UgdHlwZS4iIH0KLSAgICAgICAgICAgICAg
ICBdCi0gICAgICAgICAgICB9LAotICAgICAgICAgICAgewotICAgICAgICAgICAgICAgICJuYW1l
IjogImZyYW1lTmF2aWdhdGVkIiwKLSAgICAgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiRmly
ZWQgb25jZSBuYXZpZ2F0aW9uIG9mIHRoZSBmcmFtZSBoYXMgY29tcGxldGVkLiBGcmFtZSBpcyBu
b3cgYXNzb2NpYXRlZCB3aXRoIHRoZSBuZXcgbG9hZGVyLiIsCi0gICAgICAgICAgICAgICAgInBh
cmFtZXRlcnMiOiBbCi0gICAgICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAiZnJhbWUiLCAiJHJl
ZiI6ICJGcmFtZSIsICJkZXNjcmlwdGlvbiI6ICJGcmFtZSBpZGVudGlmaWVyLiIgfSwKLSAgICAg
ICAgICAgICAgICAgICAgeyAibmFtZSI6ICJsb2FkZXJJZCIsICJ0eXBlIjogInN0cmluZyIsICJk
ZXNjcmlwdGlvbiI6ICJMb2FkZXIgaWRlbnRpZmllci4iIH0KKyAgICAgICAgICAgICAgICAgICAg
eyAibmFtZSI6ICJ0eXBlIiwgIiRyZWYiOiAiUGFnZS5SZXNvdXJjZVR5cGUiLCAiZGVzY3JpcHRp
b24iOiAiUmVzb3VyY2UgdHlwZS4iIH0KICAgICAgICAgICAgICAgICBdCiAgICAgICAgICAgICB9
LAogICAgICAgICAgICAgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0lu
c3BlY3RvckFnZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JBZ2Vu
dC5jcHAKaW5kZXggMGNmYzVkMjhhNDIwNGQwZDA2Y2YyZTI1MTNhNDliN2QwZmIxMjBlYS4uNDUz
MWI5ZmUxYTBmNmQ5ZGU1OTdkZmU4NjVkNjA0NTUzNGMxODgzNiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckFnZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9pbnNwZWN0b3IvSW5zcGVjdG9yQWdlbnQuY3BwCkBAIC0xMTMsNyArMTEzLDcgQEAgSW5zcGVj
dG9yQWdlbnQ6Okluc3BlY3RvckFnZW50KFBhZ2UqIHBhZ2UsIEluc3BlY3RvckNsaWVudCogY2xp
ZW50LCBJbmplY3RlZFNjcmkKICAgICAsIG1faW5qZWN0ZWRTY3JpcHRNYW5hZ2VyKGluamVjdGVk
U2NyaXB0TWFuYWdlcikKICAgICAsIG1fc3RhdGUobmV3IEluc3BlY3RvclN0YXRlKGNsaWVudCkp
CiAgICAgLCBtX3BhZ2VBZ2VudChJbnNwZWN0b3JQYWdlQWdlbnQ6OmNyZWF0ZShtX2luc3RydW1l
bnRpbmdBZ2VudHMuZ2V0KCksIHBhZ2UsIGluamVjdGVkU2NyaXB0TWFuYWdlcikpCi0gICAgLCBt
X2RvbUFnZW50KEluc3BlY3RvckRPTUFnZW50OjpjcmVhdGUobV9pbnN0cnVtZW50aW5nQWdlbnRz
LmdldCgpLCBwYWdlLCBtX2NsaWVudCwgbV9zdGF0ZS5nZXQoKSwgaW5qZWN0ZWRTY3JpcHRNYW5h
Z2VyKSkKKyAgICAsIG1fZG9tQWdlbnQoSW5zcGVjdG9yRE9NQWdlbnQ6OmNyZWF0ZShtX2luc3Ry
dW1lbnRpbmdBZ2VudHMuZ2V0KCksIG1fcGFnZUFnZW50LmdldCgpLCBtX2NsaWVudCwgbV9zdGF0
ZS5nZXQoKSwgaW5qZWN0ZWRTY3JpcHRNYW5hZ2VyKSkKICAgICAsIG1fY3NzQWdlbnQobmV3IElu
c3BlY3RvckNTU0FnZW50KG1faW5zdHJ1bWVudGluZ0FnZW50cy5nZXQoKSwgbV9kb21BZ2VudC5n
ZXQoKSkpCiAjaWYgRU5BQkxFKERBVEFCQVNFKQogICAgICwgbV9kYXRhYmFzZUFnZW50KEluc3Bl
Y3RvckRhdGFiYXNlQWdlbnQ6OmNyZWF0ZShtX2luc3RydW1lbnRpbmdBZ2VudHMuZ2V0KCksIG1f
c3RhdGUuZ2V0KCkpKQpAQCAtMTI1LDcgKzEyNSw3IEBAIEluc3BlY3RvckFnZW50OjpJbnNwZWN0
b3JBZ2VudChQYWdlKiBwYWdlLCBJbnNwZWN0b3JDbGllbnQqIGNsaWVudCwgSW5qZWN0ZWRTY3Jp
CiAjaWYgRU5BQkxFKE9GRkxJTkVfV0VCX0FQUExJQ0FUSU9OUykKICAgICAsIG1fYXBwbGljYXRp
b25DYWNoZUFnZW50KG5ldyBJbnNwZWN0b3JBcHBsaWNhdGlvbkNhY2hlQWdlbnQobV9pbnN0cnVt
ZW50aW5nQWdlbnRzLmdldCgpLCBwYWdlKSkKICNlbmRpZgotICAgICwgbV9yZXNvdXJjZUFnZW50
KEluc3BlY3RvclJlc291cmNlQWdlbnQ6OmNyZWF0ZShtX2luc3RydW1lbnRpbmdBZ2VudHMuZ2V0
KCksIHBhZ2UsIG1fc3RhdGUuZ2V0KCkpKQorICAgICwgbV9yZXNvdXJjZUFnZW50KEluc3BlY3Rv
clJlc291cmNlQWdlbnQ6OmNyZWF0ZShtX2luc3RydW1lbnRpbmdBZ2VudHMuZ2V0KCksIG1fcGFn
ZUFnZW50LmdldCgpLCBtX3N0YXRlLmdldCgpKSkKICAgICAsIG1fcnVudGltZUFnZW50KGFkb3B0
UHRyKG5ldyBQYWdlUnVudGltZUFnZW50KG1faW5qZWN0ZWRTY3JpcHRNYW5hZ2VyLCBwYWdlKSkp
CiAgICAgLCBtX2NvbnNvbGVBZ2VudChuZXcgSW5zcGVjdG9yQ29uc29sZUFnZW50KG1faW5zdHJ1
bWVudGluZ0FnZW50cy5nZXQoKSwgdGhpcywgbV9zdGF0ZS5nZXQoKSwgaW5qZWN0ZWRTY3JpcHRN
YW5hZ2VyLCBtX2RvbUFnZW50LmdldCgpKSkKICNpZiBFTkFCTEUoSkFWQVNDUklQVF9ERUJVR0dF
UikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JET01BZ2Vu
dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRE9NQWdlbnQuY3BwCmlu
ZGV4IGJmODllYjZhMTFjMjBmYzAxZTg0M2YwNmNhYmVmODdiOTdhNTAwMjYuLjhkYjY1NzRmZTc1
Zjg0ZmQ3ODM4ZjkwZWVhYjE4MDgzZGZmMmRlODEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2luc3BlY3Rvci9JbnNwZWN0b3JET01BZ2VudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL0luc3BlY3RvckRPTUFnZW50LmNwcApAQCAtNjQsNyArNjQsNyBAQAogI2luY2x1ZGUg
IkluamVjdGVkU2NyaXB0TWFuYWdlci5oIgogI2luY2x1ZGUgIkluc3BlY3RvckNsaWVudC5oIgog
I2luY2x1ZGUgIkluc3BlY3RvckZyb250ZW5kLmgiCi0jaW5jbHVkZSAiSW5zcGVjdG9yUmVzb3Vy
Y2VBZ2VudC5oIgorI2luY2x1ZGUgIkluc3BlY3RvclBhZ2VBZ2VudC5oIgogI2luY2x1ZGUgIklu
c3BlY3RvclN0YXRlLmgiCiAjaW5jbHVkZSAiSW5zdHJ1bWVudGluZ0FnZW50cy5oIgogI2luY2x1
ZGUgIk11dGF0aW9uRXZlbnQuaCIKQEAgLTI1Nyw5ICsyNTcsOSBAQCB2b2lkIFJldmFsaWRhdGVT
dHlsZUF0dHJpYnV0ZVRhc2s6Om9uVGltZXIoVGltZXI8UmV2YWxpZGF0ZVN0eWxlQXR0cmlidXRl
VGFzaz4qKQogICAgIG1fZWxlbWVudHMuY2xlYXIoKTsKIH0KIAotSW5zcGVjdG9yRE9NQWdlbnQ6
Okluc3BlY3RvckRPTUFnZW50KEluc3RydW1lbnRpbmdBZ2VudHMqIGluc3RydW1lbnRpbmdBZ2Vu
dHMsIFBhZ2UqIGluc3BlY3RlZFBhZ2UsIEluc3BlY3RvckNsaWVudCogY2xpZW50LCBJbnNwZWN0
b3JTdGF0ZSogaW5zcGVjdG9yU3RhdGUsIEluamVjdGVkU2NyaXB0TWFuYWdlciogaW5qZWN0ZWRT
Y3JpcHRNYW5hZ2VyKQorSW5zcGVjdG9yRE9NQWdlbnQ6Okluc3BlY3RvckRPTUFnZW50KEluc3Ry
dW1lbnRpbmdBZ2VudHMqIGluc3RydW1lbnRpbmdBZ2VudHMsIEluc3BlY3RvclBhZ2VBZ2VudCog
cGFnZUFnZW50LCBJbnNwZWN0b3JDbGllbnQqIGNsaWVudCwgSW5zcGVjdG9yU3RhdGUqIGluc3Bl
Y3RvclN0YXRlLCBJbmplY3RlZFNjcmlwdE1hbmFnZXIqIGluamVjdGVkU2NyaXB0TWFuYWdlcikK
ICAgICA6IG1faW5zdHJ1bWVudGluZ0FnZW50cyhpbnN0cnVtZW50aW5nQWdlbnRzKQotICAgICwg
bV9pbnNwZWN0ZWRQYWdlKGluc3BlY3RlZFBhZ2UpCisgICAgLCBtX3BhZ2VBZ2VudChwYWdlQWdl
bnQpCiAgICAgLCBtX2NsaWVudChjbGllbnQpCiAgICAgLCBtX2luc3BlY3RvclN0YXRlKGluc3Bl
Y3RvclN0YXRlKQogICAgICwgbV9pbmplY3RlZFNjcmlwdE1hbmFnZXIoaW5qZWN0ZWRTY3JpcHRN
YW5hZ2VyKQpAQCAtMjgzLDcgKzI4Myw3IEBAIHZvaWQgSW5zcGVjdG9yRE9NQWdlbnQ6OnNldEZy
b250ZW5kKEluc3BlY3RvckZyb250ZW5kKiBmcm9udGVuZCkKICAgICBBU1NFUlQoIW1fZnJvbnRl
bmQpOwogICAgIG1fZnJvbnRlbmQgPSBmcm9udGVuZC0+ZG9tKCk7CiAgICAgbV9pbnN0cnVtZW50
aW5nQWdlbnRzLT5zZXRJbnNwZWN0b3JET01BZ2VudCh0aGlzKTsKLSAgICBtX2RvY3VtZW50ID0g
bV9pbnNwZWN0ZWRQYWdlLT5tYWluRnJhbWUoKS0+ZG9jdW1lbnQoKTsKKyAgICBtX2RvY3VtZW50
ID0gbV9wYWdlQWdlbnQtPm1haW5GcmFtZSgpLT5kb2N1bWVudCgpOwogCiAgICAgaWYgKG1fbm9k
ZVRvRm9jdXMpCiAgICAgICAgIGZvY3VzTm9kZSgpOwpAQCAtMzA3LDcgKzMwNyw3IEBAIHZvaWQg
SW5zcGVjdG9yRE9NQWdlbnQ6OnJlc3RvcmUoKQogewogICAgIC8vIFJlc2V0IGRvY3VtZW50IHRv
IGF2b2lkIGVhcmx5IHJldHVybiBmcm9tIHNldERvY3VtZW50LgogICAgIG1fZG9jdW1lbnQgPSAw
OwotICAgIHNldERvY3VtZW50KG1faW5zcGVjdGVkUGFnZS0+bWFpbkZyYW1lKCktPmRvY3VtZW50
KCkpOworICAgIHNldERvY3VtZW50KG1fcGFnZUFnZW50LT5tYWluRnJhbWUoKS0+ZG9jdW1lbnQo
KSk7CiB9CiAKIFZlY3RvcjxEb2N1bWVudCo+IEluc3BlY3RvckRPTUFnZW50Ojpkb2N1bWVudHMo
KQpAQCAtOTYyLDcgKzk2Miw3IEBAIHZvaWQgSW5zcGVjdG9yRE9NQWdlbnQ6OmhpZ2hsaWdodE5v
ZGUoRXJyb3JTdHJpbmcqIGVycm9yLCBpbnQgbm9kZUlkLCBTdHJpbmcqIG1vCiAKIHZvaWQgSW5z
cGVjdG9yRE9NQWdlbnQ6OmhpZ2hsaWdodEZyYW1lKEVycm9yU3RyaW5nKiBlcnJvciwgY29uc3Qg
U3RyaW5nJiBmcmFtZUlkKQogewotICAgIEZyYW1lKiBmcmFtZSA9IG1faW5zdHJ1bWVudGluZ0Fn
ZW50cy0+aW5zcGVjdG9yUmVzb3VyY2VBZ2VudCgpLT5mcmFtZUZvcklkKGZyYW1lSWQpOworICAg
IEZyYW1lKiBmcmFtZSA9IG1fcGFnZUFnZW50LT5mcmFtZUZvcklkKGZyYW1lSWQpOwogICAgIGlm
IChmcmFtZSAmJiBmcmFtZS0+b3duZXJFbGVtZW50KCkpCiAgICAgICAgIGhpZ2hsaWdodChlcnJv
ciwgZnJhbWUtPm93bmVyRWxlbWVudCgpLCAiYWxsIik7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRE9NQWdlbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9JbnNwZWN0b3JET01BZ2VudC5oCmluZGV4IDI4NDk0OTBlYjhjZmYwYWE1ZWNiMmI2
NjMzZGM5ZTYzYWM0OTJjNWYuLmU0N2EwOTRjZmM0MDI2MDdkOTMxOTY1YjlhMjZiMzM0MWY5ZDQ0
YTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JET01BZ2Vu
dC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JET01BZ2VudC5oCkBA
IC01Nyw2ICs1Nyw3IEBAIGNsYXNzIEdyYXBoaWNzQ29udGV4dDsKIGNsYXNzIEluc3BlY3RvckNs
aWVudDsKIGNsYXNzIEluc3BlY3RvckRPTUFnZW50OwogY2xhc3MgSW5zcGVjdG9yRnJvbnRlbmQ7
CitjbGFzcyBJbnNwZWN0b3JQYWdlQWdlbnQ7CiBjbGFzcyBIaXRUZXN0UmVzdWx0OwogY2xhc3Mg
TWF0Y2hKb2I7CiBjbGFzcyBIVE1MRWxlbWVudDsKQEAgLTY0LDcgKzY1LDYgQEAgY2xhc3MgSW5z
cGVjdG9yU3RhdGU7CiBjbGFzcyBJbnN0cnVtZW50aW5nQWdlbnRzOwogY2xhc3MgTmFtZU5vZGVN
YXA7CiBjbGFzcyBOb2RlOwotY2xhc3MgUGFnZTsKIGNsYXNzIFJldmFsaWRhdGVTdHlsZUF0dHJp
YnV0ZVRhc2s7CiBjbGFzcyBTY3JpcHRWYWx1ZTsKIApAQCAtOTYsOSArOTYsOSBAQCBwdWJsaWM6
CiAgICAgICAgIHZpcnR1YWwgdm9pZCBkaWRNb2RpZnlET01BdHRyKEVsZW1lbnQqKSA9IDA7CiAg
ICAgfTsKIAotICAgIHN0YXRpYyBQYXNzT3duUHRyPEluc3BlY3RvckRPTUFnZW50PiBjcmVhdGUo
SW5zdHJ1bWVudGluZ0FnZW50cyogaW5zdHJ1bWVudGluZ0FnZW50cywgUGFnZSogcGFnZSwgSW5z
cGVjdG9yQ2xpZW50KiBjbGllbnQsIEluc3BlY3RvclN0YXRlKiBpbnNwZWN0b3JTdGF0ZSwgSW5q
ZWN0ZWRTY3JpcHRNYW5hZ2VyKiBpbmplY3RlZFNjcmlwdE1hbmFnZXIpCisgICAgc3RhdGljIFBh
c3NPd25QdHI8SW5zcGVjdG9yRE9NQWdlbnQ+IGNyZWF0ZShJbnN0cnVtZW50aW5nQWdlbnRzKiBp
bnN0cnVtZW50aW5nQWdlbnRzLCBJbnNwZWN0b3JQYWdlQWdlbnQqIHBhZ2VBZ2VudCwgSW5zcGVj
dG9yQ2xpZW50KiBjbGllbnQsIEluc3BlY3RvclN0YXRlKiBpbnNwZWN0b3JTdGF0ZSwgSW5qZWN0
ZWRTY3JpcHRNYW5hZ2VyKiBpbmplY3RlZFNjcmlwdE1hbmFnZXIpCiAgICAgewotICAgICAgICBy
ZXR1cm4gYWRvcHRQdHIobmV3IEluc3BlY3RvckRPTUFnZW50KGluc3RydW1lbnRpbmdBZ2VudHMs
IHBhZ2UsIGNsaWVudCwgaW5zcGVjdG9yU3RhdGUsIGluamVjdGVkU2NyaXB0TWFuYWdlcikpOwor
ICAgICAgICByZXR1cm4gYWRvcHRQdHIobmV3IEluc3BlY3RvckRPTUFnZW50KGluc3RydW1lbnRp
bmdBZ2VudHMsIHBhZ2VBZ2VudCwgY2xpZW50LCBpbnNwZWN0b3JTdGF0ZSwgaW5qZWN0ZWRTY3Jp
cHRNYW5hZ2VyKSk7CiAgICAgfQogCiAgICAgfkluc3BlY3RvckRPTUFnZW50KCk7CkBAIC0xNzUs
NyArMTc1LDcgQEAgcHVibGljOgogICAgIHN0YXRpYyBib29sIGlzV2hpdGVzcGFjZShOb2RlKik7
CiAKIHByaXZhdGU6Ci0gICAgSW5zcGVjdG9yRE9NQWdlbnQoSW5zdHJ1bWVudGluZ0FnZW50cyos
IFBhZ2UqLCBJbnNwZWN0b3JDbGllbnQqLCBJbnNwZWN0b3JTdGF0ZSosIEluamVjdGVkU2NyaXB0
TWFuYWdlciopOworICAgIEluc3BlY3RvckRPTUFnZW50KEluc3RydW1lbnRpbmdBZ2VudHMqLCBJ
bnNwZWN0b3JQYWdlQWdlbnQqLCBJbnNwZWN0b3JDbGllbnQqLCBJbnNwZWN0b3JTdGF0ZSosIElu
amVjdGVkU2NyaXB0TWFuYWdlciopOwogCiAgICAgdm9pZCBzZXRTZWFyY2hpbmdGb3JOb2RlKGJv
b2wgZW5hYmxlZCk7CiAgICAgdm9pZCBoaWdobGlnaHQoRXJyb3JTdHJpbmcqLCBOb2RlKiwgY29u
c3QgU3RyaW5nJiBtb2RlKTsKQEAgLTIwOCw3ICsyMDgsNyBAQCBwcml2YXRlOgogICAgIHZvaWQg
ZGlzY2FyZEJpbmRpbmdzKCk7CiAKICAgICBJbnN0cnVtZW50aW5nQWdlbnRzKiBtX2luc3RydW1l
bnRpbmdBZ2VudHM7Ci0gICAgUGFnZSogbV9pbnNwZWN0ZWRQYWdlOworICAgIEluc3BlY3RvclBh
Z2VBZ2VudCogbV9wYWdlQWdlbnQ7CiAgICAgSW5zcGVjdG9yQ2xpZW50KiBtX2NsaWVudDsKICAg
ICBJbnNwZWN0b3JTdGF0ZSogbV9pbnNwZWN0b3JTdGF0ZTsKICAgICBJbmplY3RlZFNjcmlwdE1h
bmFnZXIqIG1faW5qZWN0ZWRTY3JpcHRNYW5hZ2VyOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvaW5zcGVjdG9yL0luc3BlY3Rvckluc3RydW1lbnRhdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9pbnNwZWN0b3IvSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uLmNwcAppbmRleCBkYzRlNWFjY2Mz
NjlkNDZhZjllNjNmMmFiZjljZDI1NDQ1NGU2NDdmLi5kMWU2MTI2OGM5Mzc0ODEyZTFmOTQzNjg4
ZjFhYzg2MWFiYWMwZjQwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5z
cGVjdG9ySW5zdHJ1bWVudGF0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3Iv
SW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uLmNwcApAQCAtNTMwLDkgKzUzMCw2IEBAIHZvaWQgSW5z
cGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpkb21Db250ZW50TG9hZGVkRXZlbnRGaXJlZEltcGwoSW5z
cGVjdG9yQWdlbnQqIGluCiAgICAgaWYgKEluc3BlY3RvclRpbWVsaW5lQWdlbnQqIHRpbWVsaW5l
QWdlbnQgPSBpbnNwZWN0b3JBZ2VudC0+aW5zdHJ1bWVudGluZ0FnZW50cygpLT5pbnNwZWN0b3JU
aW1lbGluZUFnZW50KCkpCiAgICAgICAgIHRpbWVsaW5lQWdlbnQtPmRpZE1hcmtET01Db250ZW50
RXZlbnQoKTsKIAotICAgIGlmIChJbnNwZWN0b3JSZXNvdXJjZUFnZW50KiByZXNvdXJjZUFnZW50
ID0gaW5zcGVjdG9yQWdlbnQtPmluc3RydW1lbnRpbmdBZ2VudHMoKS0+aW5zcGVjdG9yUmVzb3Vy
Y2VBZ2VudCgpKQotICAgICAgICByZXNvdXJjZUFnZW50LT5kb21Db250ZW50RXZlbnRGaXJlZCgp
OwotCiAgICAgaWYgKEluc3BlY3RvclBhZ2VBZ2VudCogcGFnZUFnZW50ID0gaW5zcGVjdG9yQWdl
bnQtPmluc3RydW1lbnRpbmdBZ2VudHMoKS0+aW5zcGVjdG9yUGFnZUFnZW50KCkpCiAgICAgICAg
IHBhZ2VBZ2VudC0+ZG9tQ29udGVudEV2ZW50RmlyZWQoKTsKIH0KQEAgLTU1MSwxNyArNTQ4LDE0
IEBAIHZvaWQgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpsb2FkRXZlbnRGaXJlZEltcGwoSW5z
cGVjdG9yQWdlbnQqIGluc3BlY3RvckFnZW50CiAgICAgaWYgKEluc3BlY3RvclRpbWVsaW5lQWdl
bnQqIHRpbWVsaW5lQWdlbnQgPSBpbnNwZWN0b3JBZ2VudC0+aW5zdHJ1bWVudGluZ0FnZW50cygp
LT5pbnNwZWN0b3JUaW1lbGluZUFnZW50KCkpCiAgICAgICAgIHRpbWVsaW5lQWdlbnQtPmRpZE1h
cmtMb2FkRXZlbnQoKTsKIAotICAgIGlmIChJbnNwZWN0b3JSZXNvdXJjZUFnZW50KiByZXNvdXJj
ZUFnZW50ID0gaW5zcGVjdG9yQWdlbnQtPmluc3RydW1lbnRpbmdBZ2VudHMoKS0+aW5zcGVjdG9y
UmVzb3VyY2VBZ2VudCgpKQotICAgICAgICByZXNvdXJjZUFnZW50LT5sb2FkRXZlbnRGaXJlZCgp
OwotCiAgICAgaWYgKEluc3BlY3RvclBhZ2VBZ2VudCogcGFnZUFnZW50ID0gaW5zcGVjdG9yQWdl
bnQtPmluc3RydW1lbnRpbmdBZ2VudHMoKS0+aW5zcGVjdG9yUGFnZUFnZW50KCkpCiAgICAgICAg
IHBhZ2VBZ2VudC0+bG9hZEV2ZW50RmlyZWQoKTsKIH0KIAogdm9pZCBJbnNwZWN0b3JJbnN0cnVt
ZW50YXRpb246OmZyYW1lRGV0YWNoZWRGcm9tUGFyZW50SW1wbChJbnNwZWN0b3JBZ2VudCogaW5z
cGVjdG9yQWdlbnQsIEZyYW1lKiBmcmFtZSkKIHsKLSAgICBpZiAoSW5zcGVjdG9yUmVzb3VyY2VB
Z2VudCogcmVzb3VyY2VBZ2VudCA9IHJldHJpZXZlUmVzb3VyY2VBZ2VudChpbnNwZWN0b3JBZ2Vu
dCkpCi0gICAgICAgIHJlc291cmNlQWdlbnQtPmZyYW1lRGV0YWNoZWRGcm9tUGFyZW50KGZyYW1l
KTsKKyAgICBpZiAoSW5zcGVjdG9yUGFnZUFnZW50KiBwYWdlQWdlbnQgPSBpbnNwZWN0b3JBZ2Vu
dC0+aW5zdHJ1bWVudGluZ0FnZW50cygpLT5pbnNwZWN0b3JQYWdlQWdlbnQoKSkKKyAgICAgICAg
cGFnZUFnZW50LT5mcmFtZURldGFjaGVkKGZyYW1lKTsKIH0KIAogdm9pZCBJbnNwZWN0b3JJbnN0
cnVtZW50YXRpb246OmRpZENvbW1pdExvYWRJbXBsKFBhZ2UqIHBhZ2UsIEluc3BlY3RvckFnZW50
KiBpbnNwZWN0b3JBZ2VudCwgRG9jdW1lbnRMb2FkZXIqIGxvYWRlcikKQEAgLTU3MCw4ICs1NjQs
OSBAQCB2b2lkIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6ZGlkQ29tbWl0TG9hZEltcGwoUGFn
ZSogcGFnZSwgSW5zcGVjdG9yQWdlbnQqIGlucwogICAgICAgICByZXR1cm47CiAKICAgICBJbnN0
cnVtZW50aW5nQWdlbnRzKiBpbnN0cnVtZW50aW5nQWdlbnRzID0gaW5zcGVjdG9yQWdlbnQtPmlu
c3RydW1lbnRpbmdBZ2VudHMoKTsKLSAgICBpZiAoSW5zcGVjdG9yUmVzb3VyY2VBZ2VudCogcmVz
b3VyY2VBZ2VudCA9IGluc3RydW1lbnRpbmdBZ2VudHMtPmluc3BlY3RvclJlc291cmNlQWdlbnQo
KSkKLSAgICAgICAgcmVzb3VyY2VBZ2VudC0+ZGlkQ29tbWl0TG9hZChsb2FkZXIpOworCisgICAg
aWYgKEluc3BlY3RvclBhZ2VBZ2VudCogcGFnZUFnZW50ID0gaW5zdHJ1bWVudGluZ0FnZW50cy0+
aW5zcGVjdG9yUGFnZUFnZW50KCkpCisgICAgICAgIHBhZ2VBZ2VudC0+ZnJhbWVOYXZpZ2F0ZWQo
bG9hZGVyKTsKIAogICAgIEZyYW1lKiBtYWluRnJhbWUgPSBwYWdlLT5tYWluRnJhbWUoKTsKICAg
ICBpZiAobG9hZGVyLT5mcmFtZSgpICE9IG1haW5GcmFtZSkKQEAgLTYwNCw5ICs1OTksNiBAQCB2
b2lkIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6ZGlkQ29tbWl0TG9hZEltcGwoUGFnZSogcGFn
ZSwgSW5zcGVjdG9yQWdlbnQqIGlucwogICAgIGlmIChJbnNwZWN0b3JET01BZ2VudCogZG9tQWdl
bnQgPSBpbnN0cnVtZW50aW5nQWdlbnRzLT5pbnNwZWN0b3JET01BZ2VudCgpKQogICAgICAgICBk
b21BZ2VudC0+c2V0RG9jdW1lbnQobWFpbkZyYW1lLT5kb2N1bWVudCgpKTsKIAotICAgIGlmIChJ
bnNwZWN0b3JQYWdlQWdlbnQqIHBhZ2VBZ2VudCA9IGluc3RydW1lbnRpbmdBZ2VudHMtPmluc3Bl
Y3RvclBhZ2VBZ2VudCgpKQotICAgICAgICBwYWdlQWdlbnQtPmluc3BlY3RlZFVSTENoYW5nZWQo
bG9hZGVyLT51cmwoKS5zdHJpbmcoKSk7Ci0KICAgICBpbnNwZWN0b3JBZ2VudC0+ZGlkQ29tbWl0
TG9hZCgpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVj
dG9yUGFnZUFnZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JQYWdl
QWdlbnQuY3BwCmluZGV4IDhmZjJmMTAwYThkYWRkODUyNjUxODNkZTRhZjEyNTVjZmZmNTgzN2Mu
LjQzZWI2M2Q2Njk5MTUzMjM2N2Q4YTUzOTA1MjM0OGRhZGE3ODY1ZTcgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JQYWdlQWdlbnQuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JQYWdlQWdlbnQuY3BwCkBAIC0zNCwzMyArMzQs
MTYyIEBACiAKICNpZiBFTkFCTEUoSU5TUEVDVE9SKQogCisjaW5jbHVkZSAiQmFzZTY0LmgiCiAj
aW5jbHVkZSAiQ2FjaGVkUmVzb3VyY2VMb2FkZXIuaCIKICNpbmNsdWRlICJDb29raWUuaCIKICNp
bmNsdWRlICJDb29raWVKYXIuaCIKKyNpbmNsdWRlICJEb2N1bWVudC5oIgogI2luY2x1ZGUgIkRv
Y3VtZW50TG9hZGVyLmgiCiAjaW5jbHVkZSAiRnJhbWUuaCIKICNpbmNsdWRlICJGcmFtZUxvYWRS
ZXF1ZXN0LmgiCisjaW5jbHVkZSAiSFRNTEZyYW1lT3duZXJFbGVtZW50LmgiCisjaW5jbHVkZSAi
SFRNTE5hbWVzLmgiCiAjaW5jbHVkZSAiSW5qZWN0ZWRTY3JpcHRNYW5hZ2VyLmgiCiAjaW5jbHVk
ZSAiSW5zcGVjdG9yRnJvbnRlbmQuaCIKICNpbmNsdWRlICJJbnNwZWN0b3JWYWx1ZXMuaCIKICNp
bmNsdWRlICJJbnN0cnVtZW50aW5nQWdlbnRzLmgiCisjaW5jbHVkZSAiTWVtb3J5Q2FjaGUuaCIK
ICNpbmNsdWRlICJQYWdlLmgiCiAjaW5jbHVkZSAiU2NyaXB0T2JqZWN0LmgiCisjaW5jbHVkZSAi
U2hhcmVkQnVmZmVyLmgiCisjaW5jbHVkZSAiVGV4dEVuY29kaW5nLmgiCiAjaW5jbHVkZSAiVXNl
ckdlc3R1cmVJbmRpY2F0b3IuaCIKICNpbmNsdWRlICJXaW5kb3dGZWF0dXJlcy5oIgorCiAjaW5j
bHVkZSA8d3RmL0N1cnJlbnRUaW1lLmg+CiAjaW5jbHVkZSA8d3RmL0xpc3RIYXNoU2V0Lmg+CiAK
IG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotUGFzc093blB0cjxJbnNwZWN0b3JQYWdlQWdlbnQ+IElu
c3BlY3RvclBhZ2VBZ2VudDo6Y3JlYXRlKEluc3RydW1lbnRpbmdBZ2VudHMqIGluc3RydW1lbnRp
bmdBZ2VudHMsIFBhZ2UqIGluc3BlY3RlZFBhZ2UsIEluamVjdGVkU2NyaXB0TWFuYWdlciogaW5q
ZWN0ZWRTY3JpcHRNYW5hZ2VyKQorUGFzc093blB0cjxJbnNwZWN0b3JQYWdlQWdlbnQ+IEluc3Bl
Y3RvclBhZ2VBZ2VudDo6Y3JlYXRlKEluc3RydW1lbnRpbmdBZ2VudHMqIGluc3RydW1lbnRpbmdB
Z2VudHMsIFBhZ2UqIHBhZ2UsIEluamVjdGVkU2NyaXB0TWFuYWdlciogaW5qZWN0ZWRTY3JpcHRN
YW5hZ2VyKQoreworICAgIHJldHVybiBhZG9wdFB0cihuZXcgSW5zcGVjdG9yUGFnZUFnZW50KGlu
c3RydW1lbnRpbmdBZ2VudHMsIHBhZ2UsIGluamVjdGVkU2NyaXB0TWFuYWdlcikpOworfQorCit2
b2lkIEluc3BlY3RvclBhZ2VBZ2VudDo6cmVzb3VyY2VDb250ZW50KEVycm9yU3RyaW5nKiBlcnJv
clN0cmluZywgRnJhbWUqIGZyYW1lLCBjb25zdCBLVVJMJiB1cmwsIFN0cmluZyogcmVzdWx0KQor
eworICAgIGlmICghZnJhbWUpIHsKKyAgICAgICAgKmVycm9yU3RyaW5nID0gIk5vIGZyYW1lIHRv
IGdldCByZXNvdXJjZSBjb250ZW50IGZvciI7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAg
ICBTdHJpbmcgdGV4dEVuY29kaW5nTmFtZTsKKyAgICBSZWZQdHI8U2hhcmVkQnVmZmVyPiBidWZm
ZXIgPSBJbnNwZWN0b3JQYWdlQWdlbnQ6OnJlc291cmNlRGF0YShmcmFtZSwgdXJsLCAmdGV4dEVu
Y29kaW5nTmFtZSk7CisKKyAgICBpZiAoYnVmZmVyKSB7CisgICAgICAgIFRleHRFbmNvZGluZyBl
bmNvZGluZyh0ZXh0RW5jb2RpbmdOYW1lKTsKKyAgICAgICAgaWYgKCFlbmNvZGluZy5pc1ZhbGlk
KCkpCisgICAgICAgICAgICBlbmNvZGluZyA9IFdpbmRvd3NMYXRpbjFFbmNvZGluZygpOworICAg
ICAgICAqcmVzdWx0ID0gZW5jb2RpbmcuZGVjb2RlKGJ1ZmZlci0+ZGF0YSgpLCBidWZmZXItPnNp
emUoKSk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisgICAgKmVycm9yU3RyaW5nID0gIk5vIHJl
c291cmNlIHdpdGggZ2l2ZW4gVVJMIGZvdW5kIjsKK30KKwordm9pZCBJbnNwZWN0b3JQYWdlQWdl
bnQ6OnJlc291cmNlQ29udGVudEJhc2U2NChFcnJvclN0cmluZyogZXJyb3JTdHJpbmcsIEZyYW1l
KiBmcmFtZSwgY29uc3QgS1VSTCYgdXJsLCBTdHJpbmcqIHJlc3VsdCkKIHsKLSAgICByZXR1cm4g
YWRvcHRQdHIobmV3IEluc3BlY3RvclBhZ2VBZ2VudChpbnN0cnVtZW50aW5nQWdlbnRzLCBpbnNw
ZWN0ZWRQYWdlLCBpbmplY3RlZFNjcmlwdE1hbmFnZXIpKTsKKyAgICBTdHJpbmcgdGV4dEVuY29k
aW5nTmFtZTsKKyAgICBSZWZQdHI8U2hhcmVkQnVmZmVyPiBkYXRhID0gSW5zcGVjdG9yUGFnZUFn
ZW50OjpyZXNvdXJjZURhdGEoZnJhbWUsIHVybCwgJnRleHRFbmNvZGluZ05hbWUpOworICAgIGlm
ICghZGF0YSkgeworICAgICAgICAqcmVzdWx0ID0gU3RyaW5nKCk7CisgICAgICAgICplcnJvclN0
cmluZyA9ICJObyByZXNvdXJjZSB3aXRoIGdpdmVuIFVSTCBmb3VuZCI7CisgICAgICAgIHJldHVy
bjsKKyAgICB9CisKKyAgICAqcmVzdWx0ID0gYmFzZTY0RW5jb2RlKGRhdGEtPmRhdGEoKSwgZGF0
YS0+c2l6ZSgpKTsKIH0KIAotSW5zcGVjdG9yUGFnZUFnZW50OjpJbnNwZWN0b3JQYWdlQWdlbnQo
SW5zdHJ1bWVudGluZ0FnZW50cyogaW5zdHJ1bWVudGluZ0FnZW50cywgUGFnZSogaW5zcGVjdGVk
UGFnZSwgSW5qZWN0ZWRTY3JpcHRNYW5hZ2VyKiBpbmplY3RlZFNjcmlwdE1hbmFnZXIpCitQYXNz
UmVmUHRyPFNoYXJlZEJ1ZmZlcj4gSW5zcGVjdG9yUGFnZUFnZW50OjpyZXNvdXJjZURhdGEoRnJh
bWUqIGZyYW1lLCBjb25zdCBLVVJMJiB1cmwsIFN0cmluZyogdGV4dEVuY29kaW5nTmFtZSkKK3sK
KyAgICBGcmFtZUxvYWRlciogZnJhbWVMb2FkZXIgPSBmcmFtZS0+bG9hZGVyKCk7CisgICAgRG9j
dW1lbnRMb2FkZXIqIGxvYWRlciA9IGZyYW1lTG9hZGVyLT5kb2N1bWVudExvYWRlcigpOworICAg
IGlmIChlcXVhbElnbm9yaW5nRnJhZ21lbnRJZGVudGlmaWVyKHVybCwgbG9hZGVyLT51cmwoKSkp
IHsKKyAgICAgICAgKnRleHRFbmNvZGluZ05hbWUgPSBmcmFtZS0+ZG9jdW1lbnQoKS0+aW5wdXRF
bmNvZGluZygpOworICAgICAgICByZXR1cm4gZnJhbWVMb2FkZXItPmRvY3VtZW50TG9hZGVyKCkt
Pm1haW5SZXNvdXJjZURhdGEoKTsKKyAgICB9CisKKyAgICBDYWNoZWRSZXNvdXJjZSogY2FjaGVk
UmVzb3VyY2UgPSBJbnNwZWN0b3JQYWdlQWdlbnQ6OmNhY2hlZFJlc291cmNlKGZyYW1lLCB1cmwp
OworICAgIGlmICghY2FjaGVkUmVzb3VyY2UpCisgICAgICAgIHJldHVybiAwOworCisgICAgLy8g
WmVyby1zaXplZCByZXNvdXJjZXMgZG9uJ3QgaGF2ZSBkYXRhIGF0IGFsbCAtLSBzbyBmYWtlIHRo
ZSBlbXB0eSBidWZmZXIsIGluc3RlZCBvZiBpbmRpY2F0aW5nIGVycm9yIGJ5IHJldHVybmluZyAw
LgorICAgIGlmICghY2FjaGVkUmVzb3VyY2UtPmVuY29kZWRTaXplKCkpCisgICAgICAgIHJldHVy
biBTaGFyZWRCdWZmZXI6OmNyZWF0ZSgpOworCisgICAgaWYgKGNhY2hlZFJlc291cmNlLT5pc1B1
cmdlYWJsZSgpKSB7CisgICAgICAgIC8vIElmIHRoZSByZXNvdXJjZSBpcyBwdXJnZWFibGUgdGhl
biBtYWtlIGl0IHVucHVyZ2VhYmxlIHRvIGdldAorICAgICAgICAvLyBnZXQgaXRzIGRhdGEuIFRo
aXMgbWlnaHQgZmFpbCwgaW4gd2hpY2ggY2FzZSB3ZSByZXR1cm4gYW4KKyAgICAgICAgLy8gZW1w
dHkgU3RyaW5nLgorICAgICAgICAvLyBGSVhNRTogc2hvdWxkIHdlIGRvIHNvbWV0aGluZyBlbHNl
IGluIHRoZSBjYXNlIG9mIGEgcHVyZ2VkCisgICAgICAgIC8vIHJlc291cmNlIHRoYXQgaW5mb3Jt
cyB0aGUgdXNlciB3aHkgdGhlcmUgaXMgbm8gZGF0YSBpbiB0aGUKKyAgICAgICAgLy8gaW5zcGVj
dG9yPworICAgICAgICBpZiAoIWNhY2hlZFJlc291cmNlLT5tYWtlUHVyZ2VhYmxlKGZhbHNlKSkK
KyAgICAgICAgICAgIHJldHVybiAwOworICAgIH0KKworICAgICp0ZXh0RW5jb2RpbmdOYW1lID0g
Y2FjaGVkUmVzb3VyY2UtPmVuY29kaW5nKCk7CisgICAgcmV0dXJuIGNhY2hlZFJlc291cmNlLT5k
YXRhKCk7Cit9CisKK0NhY2hlZFJlc291cmNlKiBJbnNwZWN0b3JQYWdlQWdlbnQ6OmNhY2hlZFJl
c291cmNlKEZyYW1lKiBmcmFtZSwgY29uc3QgS1VSTCYgdXJsKQoreworICAgIENhY2hlZFJlc291
cmNlKiBjYWNoZWRSZXNvdXJjZSA9IGZyYW1lLT5kb2N1bWVudCgpLT5jYWNoZWRSZXNvdXJjZUxv
YWRlcigpLT5jYWNoZWRSZXNvdXJjZSh1cmwpOworICAgIGlmICghY2FjaGVkUmVzb3VyY2UpCisg
ICAgICAgIGNhY2hlZFJlc291cmNlID0gbWVtb3J5Q2FjaGUoKS0+cmVzb3VyY2VGb3JVUkwodXJs
KTsKKyAgICByZXR1cm4gY2FjaGVkUmVzb3VyY2U7Cit9CisKK1N0cmluZyBJbnNwZWN0b3JQYWdl
QWdlbnQ6OnJlc291cmNlVHlwZVN0cmluZyhJbnNwZWN0b3JQYWdlQWdlbnQ6OlJlc291cmNlVHlw
ZSByZXNvdXJjZVR5cGUpCit7CisgICAgc3dpdGNoIChyZXNvdXJjZVR5cGUpIHsKKyAgICBjYXNl
IERvY3VtZW50UmVzb3VyY2U6CisgICAgICAgIHJldHVybiAiRG9jdW1lbnQiOworICAgIGNhc2Ug
SW1hZ2VSZXNvdXJjZToKKyAgICAgICAgcmV0dXJuICJJbWFnZSI7CisgICAgY2FzZSBGb250UmVz
b3VyY2U6CisgICAgICAgIHJldHVybiAiRm9udCI7CisgICAgY2FzZSBTdHlsZXNoZWV0UmVzb3Vy
Y2U6CisgICAgICAgIHJldHVybiAiU3R5bGVzaGVldCI7CisgICAgY2FzZSBTY3JpcHRSZXNvdXJj
ZToKKyAgICAgICAgcmV0dXJuICJTY3JpcHQiOworICAgIGNhc2UgWEhSUmVzb3VyY2U6CisgICAg
ICAgIHJldHVybiAiWEhSIjsKKyAgICBjYXNlIFdlYlNvY2tldFJlc291cmNlOgorICAgICAgICBy
ZXR1cm4gIldlYlNvY2tldCI7CisgICAgY2FzZSBPdGhlclJlc291cmNlOgorICAgICAgICByZXR1
cm4gIk90aGVyIjsKKyAgICB9Cit9CisKK0luc3BlY3RvclBhZ2VBZ2VudDo6UmVzb3VyY2VUeXBl
IEluc3BlY3RvclBhZ2VBZ2VudDo6Y2FjaGVkUmVzb3VyY2VUeXBlKGNvbnN0IENhY2hlZFJlc291
cmNlJiBjYWNoZWRSZXNvdXJjZSkKK3sKKyAgICBzd2l0Y2ggKGNhY2hlZFJlc291cmNlLnR5cGUo
KSkgeworICAgIGNhc2UgQ2FjaGVkUmVzb3VyY2U6OkltYWdlUmVzb3VyY2U6CisgICAgICAgIHJl
dHVybiBJbnNwZWN0b3JQYWdlQWdlbnQ6OkltYWdlUmVzb3VyY2U7CisgICAgY2FzZSBDYWNoZWRS
ZXNvdXJjZTo6Rm9udFJlc291cmNlOgorICAgICAgICByZXR1cm4gSW5zcGVjdG9yUGFnZUFnZW50
OjpGb250UmVzb3VyY2U7CisgICAgY2FzZSBDYWNoZWRSZXNvdXJjZTo6Q1NTU3R5bGVTaGVldDoK
KyAgICAgICAgLy8gRmFsbCB0aHJvdWdoLgorI2lmIEVOQUJMRShYU0xUKQorICAgIGNhc2UgQ2Fj
aGVkUmVzb3VyY2U6OlhTTFN0eWxlU2hlZXQ6CisjZW5kaWYKKyAgICAgICAgcmV0dXJuIEluc3Bl
Y3RvclBhZ2VBZ2VudDo6U3R5bGVzaGVldFJlc291cmNlOworICAgIGNhc2UgQ2FjaGVkUmVzb3Vy
Y2U6OlNjcmlwdDoKKyAgICAgICAgcmV0dXJuIEluc3BlY3RvclBhZ2VBZ2VudDo6U2NyaXB0UmVz
b3VyY2U7CisgICAgZGVmYXVsdDoKKyAgICAgICAgYnJlYWs7CisgICAgfQorICAgIHJldHVybiBJ
bnNwZWN0b3JQYWdlQWdlbnQ6Ok90aGVyUmVzb3VyY2U7Cit9CisKK1N0cmluZyBJbnNwZWN0b3JQ
YWdlQWdlbnQ6OmNhY2hlZFJlc291cmNlVHlwZVN0cmluZyhjb25zdCBDYWNoZWRSZXNvdXJjZSYg
Y2FjaGVkUmVzb3VyY2UpCit7CisgICAgcmV0dXJuIHJlc291cmNlVHlwZVN0cmluZyhjYWNoZWRS
ZXNvdXJjZVR5cGUoY2FjaGVkUmVzb3VyY2UpKTsKK30KKworSW5zcGVjdG9yUGFnZUFnZW50OjpJ
bnNwZWN0b3JQYWdlQWdlbnQoSW5zdHJ1bWVudGluZ0FnZW50cyogaW5zdHJ1bWVudGluZ0FnZW50
cywgUGFnZSogcGFnZSwgSW5qZWN0ZWRTY3JpcHRNYW5hZ2VyKiBpbmplY3RlZFNjcmlwdE1hbmFn
ZXIpCiAgICAgOiBtX2luc3RydW1lbnRpbmdBZ2VudHMoaW5zdHJ1bWVudGluZ0FnZW50cykKLSAg
ICAsIG1faW5zcGVjdGVkUGFnZShpbnNwZWN0ZWRQYWdlKQorICAgICwgbV9wYWdlKHBhZ2UpCiAg
ICAgLCBtX2luamVjdGVkU2NyaXB0TWFuYWdlcihpbmplY3RlZFNjcmlwdE1hbmFnZXIpCiAgICAg
LCBtX2Zyb250ZW5kKDApCiB7CkBAIC02OCwxMiArMTk3LDExIEBAIEluc3BlY3RvclBhZ2VBZ2Vu
dDo6SW5zcGVjdG9yUGFnZUFnZW50KEluc3RydW1lbnRpbmdBZ2VudHMqIGluc3RydW1lbnRpbmdB
Z2VudHMsCiAKIHZvaWQgSW5zcGVjdG9yUGFnZUFnZW50OjpzZXRGcm9udGVuZChJbnNwZWN0b3JG
cm9udGVuZCogZnJvbnRlbmQpCiB7Ci0gICAgbV9mcm9udGVuZCA9IGZyb250ZW5kOworICAgIG1f
ZnJvbnRlbmQgPSBmcm9udGVuZC0+cGFnZSgpOwogICAgIG1faW5zdHJ1bWVudGluZ0FnZW50cy0+
c2V0SW5zcGVjdG9yUGFnZUFnZW50KHRoaXMpOwogCiAgICAgLy8gSW5pdGlhbGl6ZSBXZWIgSW5z
cGVjdG9yIHRpdGxlLgotICAgIG1fZnJvbnRlbmQtPnBhZ2UoKS0+aW5zcGVjdGVkVVJMQ2hhbmdl
ZChtX2luc3BlY3RlZFBhZ2UtPm1haW5GcmFtZSgpLT5kb2N1bWVudCgpLT51cmwoKS5zdHJpbmco
KSk7Ci0KKyAgICBtX2Zyb250ZW5kLT5pbnNwZWN0ZWRVUkxDaGFuZ2VkKG1fcGFnZS0+bWFpbkZy
YW1lKCktPmRvY3VtZW50KCktPnVybCgpLnN0cmluZygpKTsKIH0KIAogdm9pZCBJbnNwZWN0b3JQ
YWdlQWdlbnQ6OmNsZWFyRnJvbnRlbmQoKQpAQCAtOTQsMTIgKzIyMiwxMiBAQCB2b2lkIEluc3Bl
Y3RvclBhZ2VBZ2VudDo6cmVtb3ZlQWxsU2NyaXB0c1RvRXZhbHVhdGVPbkxvYWQoRXJyb3JTdHJp
bmcqKQogCiB2b2lkIEluc3BlY3RvclBhZ2VBZ2VudDo6cmVsb2FkKEVycm9yU3RyaW5nKiwgY29u
c3QgYm9vbCogY29uc3Qgb3B0aW9uYWxJZ25vcmVDYWNoZSkKIHsKLSAgICBtX2luc3BlY3RlZFBh
Z2UtPm1haW5GcmFtZSgpLT5sb2FkZXIoKS0+cmVsb2FkKG9wdGlvbmFsSWdub3JlQ2FjaGUgPyAq
b3B0aW9uYWxJZ25vcmVDYWNoZSA6IGZhbHNlKTsKKyAgICBtX3BhZ2UtPm1haW5GcmFtZSgpLT5s
b2FkZXIoKS0+cmVsb2FkKG9wdGlvbmFsSWdub3JlQ2FjaGUgPyAqb3B0aW9uYWxJZ25vcmVDYWNo
ZSA6IGZhbHNlKTsKIH0KIAogdm9pZCBJbnNwZWN0b3JQYWdlQWdlbnQ6Om9wZW4oRXJyb3JTdHJp
bmcqLCBjb25zdCBTdHJpbmcmIHVybCwgY29uc3QgYm9vbCogY29uc3QgaW5OZXdXaW5kb3cpCiB7
Ci0gICAgRnJhbWUqIG1haW5GcmFtZSA9IG1faW5zcGVjdGVkUGFnZS0+bWFpbkZyYW1lKCk7Cisg
ICAgRnJhbWUqIG1haW5GcmFtZSA9IG1fcGFnZS0+bWFpbkZyYW1lKCk7CiAgICAgRnJhbWUqIGZy
YW1lOwogICAgIGlmIChpbk5ld1dpbmRvdyAmJiAqaW5OZXdXaW5kb3cpIHsKICAgICAgICAgRnJh
bWVMb2FkUmVxdWVzdCByZXF1ZXN0KG1haW5GcmFtZS0+ZG9jdW1lbnQoKS0+c2VjdXJpdHlPcmln
aW4oKSwgUmVzb3VyY2VSZXF1ZXN0KCksICJfYmxhbmsiKTsKQEAgLTE1OSw3ICsyODcsNyBAQCB2
b2lkIEluc3BlY3RvclBhZ2VBZ2VudDo6Z2V0Q29va2llcyhFcnJvclN0cmluZyosIFJlZlB0cjxJ
bnNwZWN0b3JBcnJheT4qIGNvb2tpZQogICAgIC8vIGFsd2F5cyByZXR1cm4gdGhlIHNhbWUgdHJ1
ZS9mYWxzZSB2YWx1ZS4KICAgICBib29sIHJhd0Nvb2tpZXNJbXBsZW1lbnRlZCA9IGZhbHNlOwog
Ci0gICAgZm9yIChGcmFtZSogZnJhbWUgPSBtX2luc3BlY3RlZFBhZ2UtPm1haW5GcmFtZSgpOyBm
cmFtZTsgZnJhbWUgPSBmcmFtZS0+dHJlZSgpLT50cmF2ZXJzZU5leHQobV9pbnNwZWN0ZWRQYWdl
LT5tYWluRnJhbWUoKSkpIHsKKyAgICBmb3IgKEZyYW1lKiBmcmFtZSA9IG1haW5GcmFtZSgpOyBm
cmFtZTsgZnJhbWUgPSBmcmFtZS0+dHJlZSgpLT50cmF2ZXJzZU5leHQobWFpbkZyYW1lKCkpKSB7
CiAgICAgICAgIERvY3VtZW50KiBkb2N1bWVudCA9IGZyYW1lLT5kb2N1bWVudCgpOwogICAgICAg
ICBjb25zdCBDYWNoZWRSZXNvdXJjZUxvYWRlcjo6RG9jdW1lbnRSZXNvdXJjZU1hcCYgYWxsUmVz
b3VyY2VzID0gZG9jdW1lbnQtPmNhY2hlZFJlc291cmNlTG9hZGVyKCktPmFsbENhY2hlZFJlc291
cmNlcygpOwogICAgICAgICBDYWNoZWRSZXNvdXJjZUxvYWRlcjo6RG9jdW1lbnRSZXNvdXJjZU1h
cDo6Y29uc3RfaXRlcmF0b3IgZW5kID0gYWxsUmVzb3VyY2VzLmVuZCgpOwpAQCAtMTkyLDcgKzMy
MCw3IEBAIHZvaWQgSW5zcGVjdG9yUGFnZUFnZW50OjpnZXRDb29raWVzKEVycm9yU3RyaW5nKiwg
UmVmUHRyPEluc3BlY3RvckFycmF5PiogY29va2llCiAKIHZvaWQgSW5zcGVjdG9yUGFnZUFnZW50
OjpkZWxldGVDb29raWUoRXJyb3JTdHJpbmcqLCBjb25zdCBTdHJpbmcmIGNvb2tpZU5hbWUsIGNv
bnN0IFN0cmluZyYgZG9tYWluKQogewotICAgIGZvciAoRnJhbWUqIGZyYW1lID0gbV9pbnNwZWN0
ZWRQYWdlLT5tYWluRnJhbWUoKTsgZnJhbWU7IGZyYW1lID0gZnJhbWUtPnRyZWUoKS0+dHJhdmVy
c2VOZXh0KG1faW5zcGVjdGVkUGFnZS0+bWFpbkZyYW1lKCkpKSB7CisgICAgZm9yIChGcmFtZSog
ZnJhbWUgPSBtX3BhZ2UtPm1haW5GcmFtZSgpOyBmcmFtZTsgZnJhbWUgPSBmcmFtZS0+dHJlZSgp
LT50cmF2ZXJzZU5leHQobV9wYWdlLT5tYWluRnJhbWUoKSkpIHsKICAgICAgICAgRG9jdW1lbnQq
IGRvY3VtZW50ID0gZnJhbWUtPmRvY3VtZW50KCk7CiAgICAgICAgIGlmIChkb2N1bWVudC0+dXJs
KCkuaG9zdCgpICE9IGRvbWFpbikKICAgICAgICAgICAgIGNvbnRpbnVlOwpAQCAtMjAzLDI5ICsz
MzEsNDggQEAgdm9pZCBJbnNwZWN0b3JQYWdlQWdlbnQ6OmRlbGV0ZUNvb2tpZShFcnJvclN0cmlu
ZyosIGNvbnN0IFN0cmluZyYgY29va2llTmFtZSwgY28KICAgICB9CiB9CiAKLXZvaWQgSW5zcGVj
dG9yUGFnZUFnZW50OjppbnNwZWN0ZWRVUkxDaGFuZ2VkKGNvbnN0IFN0cmluZyYgdXJsKQordm9p
ZCBJbnNwZWN0b3JQYWdlQWdlbnQ6OmdldFJlc291cmNlVHJlZShFcnJvclN0cmluZyosIFJlZlB0
cjxJbnNwZWN0b3JPYmplY3Q+KiBvYmplY3QpCiB7Ci0gICAgbV9mcm9udGVuZC0+cGFnZSgpLT5p
bnNwZWN0ZWRVUkxDaGFuZ2VkKHVybCk7CisgICAgKm9iamVjdCA9IGJ1aWxkT2JqZWN0Rm9yRnJh
bWVUcmVlKG1fcGFnZS0+bWFpbkZyYW1lKCkpOwogfQogCi12b2lkIEluc3BlY3RvclBhZ2VBZ2Vu
dDo6cmVzdG9yZSgpCit2b2lkIEluc3BlY3RvclBhZ2VBZ2VudDo6Z2V0UmVzb3VyY2VDb250ZW50
KEVycm9yU3RyaW5nKiBlcnJvclN0cmluZywgY29uc3QgU3RyaW5nJiBmcmFtZUlkLCBjb25zdCBT
dHJpbmcmIHVybCwgY29uc3QgYm9vbCogY29uc3Qgb3B0aW9uYWxCYXNlNjRFbmNvZGUsIFN0cmlu
ZyogY29udGVudCkKIHsKLSAgICBpbnNwZWN0ZWRVUkxDaGFuZ2VkKG1faW5zcGVjdGVkUGFnZS0+
bWFpbkZyYW1lKCktPmRvY3VtZW50KCktPnVybCgpLnN0cmluZygpKTsKKyAgICBGcmFtZSogZnJh
bWUgPSBmcmFtZUZvcklkKGZyYW1lSWQpOworICAgIGlmICghZnJhbWUpIHsKKyAgICAgICAgKmVy
cm9yU3RyaW5nID0gIk5vIGZyYW1lIGZvciBnaXZlbiBpZCBmb3VuZCI7CisgICAgICAgIHJldHVy
bjsKKyAgICB9CisgICAgaWYgKG9wdGlvbmFsQmFzZTY0RW5jb2RlID8gKm9wdGlvbmFsQmFzZTY0
RW5jb2RlIDogZmFsc2UpCisgICAgICAgIEluc3BlY3RvclBhZ2VBZ2VudDo6cmVzb3VyY2VDb250
ZW50QmFzZTY0KGVycm9yU3RyaW5nLCBmcmFtZSwgS1VSTChQYXJzZWRVUkxTdHJpbmcsIHVybCks
IGNvbnRlbnQpOworICAgIGVsc2UKKyAgICAgICAgSW5zcGVjdG9yUGFnZUFnZW50OjpyZXNvdXJj
ZUNvbnRlbnQoZXJyb3JTdHJpbmcsIGZyYW1lLCBLVVJMKFBhcnNlZFVSTFN0cmluZywgdXJsKSwg
Y29udGVudCk7CiB9CiAKLXZvaWQgSW5zcGVjdG9yUGFnZUFnZW50OjpkaWRDb21taXRMb2FkKGNv
bnN0IFN0cmluZyYgdXJsKQordm9pZCBJbnNwZWN0b3JQYWdlQWdlbnQ6OnJlc3RvcmUoKQogewot
ICAgIGluc3BlY3RlZFVSTENoYW5nZWQodXJsKTsKKyAgICBtX2Zyb250ZW5kLT5pbnNwZWN0ZWRV
UkxDaGFuZ2VkKG1haW5GcmFtZSgpLT5kb2N1bWVudCgpLT51cmwoKS5zdHJpbmcoKSk7CiB9CiAK
IHZvaWQgSW5zcGVjdG9yUGFnZUFnZW50Ojpkb21Db250ZW50RXZlbnRGaXJlZCgpCiB7Ci0gICAg
IG1fZnJvbnRlbmQtPnBhZ2UoKS0+ZG9tQ29udGVudEV2ZW50RmlyZWQoY3VycmVudFRpbWUoKSk7
CisgICAgIG1fZnJvbnRlbmQtPmRvbUNvbnRlbnRFdmVudEZpcmVkKGN1cnJlbnRUaW1lKCkpOwog
fQogCiB2b2lkIEluc3BlY3RvclBhZ2VBZ2VudDo6bG9hZEV2ZW50RmlyZWQoKQogewotICAgICBt
X2Zyb250ZW5kLT5wYWdlKCktPmxvYWRFdmVudEZpcmVkKGN1cnJlbnRUaW1lKCkpOworICAgICBt
X2Zyb250ZW5kLT5sb2FkRXZlbnRGaXJlZChjdXJyZW50VGltZSgpKTsKK30KKwordm9pZCBJbnNw
ZWN0b3JQYWdlQWdlbnQ6OmZyYW1lTmF2aWdhdGVkKERvY3VtZW50TG9hZGVyKiBsb2FkZXIpCit7
CisgICAgbV9mcm9udGVuZC0+ZnJhbWVOYXZpZ2F0ZWQoYnVpbGRPYmplY3RGb3JGcmFtZShsb2Fk
ZXItPmZyYW1lKCkpLCBsb2FkZXJJZChsb2FkZXIpKTsKKyAgICBtX2Zyb250ZW5kLT5pbnNwZWN0
ZWRVUkxDaGFuZ2VkKGxvYWRlci0+dXJsKCkuc3RyaW5nKCkpOworfQorCit2b2lkIEluc3BlY3Rv
clBhZ2VBZ2VudDo6ZnJhbWVEZXRhY2hlZChGcmFtZSogZnJhbWUpCit7CisgICAgbV9mcm9udGVu
ZC0+ZnJhbWVEZXRhY2hlZChmcmFtZUlkKGZyYW1lKSk7CiB9CiAKIHZvaWQgSW5zcGVjdG9yUGFn
ZUFnZW50OjpkaWRDbGVhcldpbmRvd09iamVjdEluV29ybGQoRnJhbWUqIGZyYW1lLCBET01XcmFw
cGVyV29ybGQqIHdvcmxkKQpAQCAtMjMzLDcgKzM4MCw3IEBAIHZvaWQgSW5zcGVjdG9yUGFnZUFn
ZW50OjpkaWRDbGVhcldpbmRvd09iamVjdEluV29ybGQoRnJhbWUqIGZyYW1lLCBET01XcmFwcGVy
V29yCiAgICAgaWYgKHdvcmxkICE9IG1haW5UaHJlYWROb3JtYWxXb3JsZCgpKQogICAgICAgICBy
ZXR1cm47CiAKLSAgICBpZiAoZnJhbWUgPT0gbV9pbnNwZWN0ZWRQYWdlLT5tYWluRnJhbWUoKSkK
KyAgICBpZiAoZnJhbWUgPT0gbV9wYWdlLT5tYWluRnJhbWUoKSkKICAgICAgICAgbV9pbmplY3Rl
ZFNjcmlwdE1hbmFnZXItPmRpc2NhcmRJbmplY3RlZFNjcmlwdHMoKTsKIAogICAgIGlmIChtX3Nj
cmlwdHNUb0V2YWx1YXRlT25Mb2FkLnNpemUoKSkgewpAQCAtMjQ1LDYgKzM5Miw4NCBAQCB2b2lk
IEluc3BlY3RvclBhZ2VBZ2VudDo6ZGlkQ2xlYXJXaW5kb3dPYmplY3RJbldvcmxkKEZyYW1lKiBm
cmFtZSwgRE9NV3JhcHBlcldvcgogICAgIH0KIH0KIAorRnJhbWUqIEluc3BlY3RvclBhZ2VBZ2Vu
dDo6bWFpbkZyYW1lKCkKK3sKKyAgICByZXR1cm4gbV9wYWdlLT5tYWluRnJhbWUoKTsKK30KKwor
c3RhdGljIFN0cmluZyBwb2ludGVyQXNJZCh2b2lkKiBwb2ludGVyKQoreworICAgIHVuc2lnbmVk
IGxvbmcgbG9uZyBhZGRyZXNzID0gcmVpbnRlcnByZXRfY2FzdDx1aW50cHRyX3Q+KHBvaW50ZXIp
OworICAgIC8vIFdlIHdhbnQgMCB0byBiZSAiIiwgc28gdGhhdCBKYXZhU2NyaXB0IGNoZWNrcyBm
b3IgaWYgKGZyYW1lSWQpIHdvcmtlZC4KKyAgICByZXR1cm4gU3RyaW5nOjpmb3JtYXQoIiUuMGxs
WCIsIGFkZHJlc3MpOworfQorCitGcmFtZSogSW5zcGVjdG9yUGFnZUFnZW50OjpmcmFtZUZvcklk
KGNvbnN0IFN0cmluZyYgZnJhbWVJZCkKK3sKKyAgICBGcmFtZSogbWFpbkZyYW1lID0gbV9wYWdl
LT5tYWluRnJhbWUoKTsKKyAgICBmb3IgKEZyYW1lKiBmcmFtZSA9IG1haW5GcmFtZTsgZnJhbWU7
IGZyYW1lID0gZnJhbWUtPnRyZWUoKS0+dHJhdmVyc2VOZXh0KG1haW5GcmFtZSkpIHsKKyAgICAg
ICAgaWYgKHBvaW50ZXJBc0lkKGZyYW1lKSA9PSBmcmFtZUlkKQorICAgICAgICAgICAgcmV0dXJu
IGZyYW1lOworICAgIH0KKyAgICByZXR1cm4gMDsKK30KKworU3RyaW5nIEluc3BlY3RvclBhZ2VB
Z2VudDo6ZnJhbWVJZChGcmFtZSogZnJhbWUpCit7CisgICAgcmV0dXJuIHBvaW50ZXJBc0lkKGZy
YW1lKTsKK30KKworU3RyaW5nIEluc3BlY3RvclBhZ2VBZ2VudDo6bG9hZGVySWQoRG9jdW1lbnRM
b2FkZXIqIGxvYWRlcikKK3sKKyAgICByZXR1cm4gcG9pbnRlckFzSWQobG9hZGVyKTsKK30KKwor
UGFzc1JlZlB0cjxJbnNwZWN0b3JPYmplY3Q+IEluc3BlY3RvclBhZ2VBZ2VudDo6YnVpbGRPYmpl
Y3RGb3JGcmFtZShGcmFtZSogZnJhbWUpCit7CisgICAgUmVmUHRyPEluc3BlY3Rvck9iamVjdD4g
ZnJhbWVPYmplY3QgPSBJbnNwZWN0b3JPYmplY3Q6OmNyZWF0ZSgpOworICAgIGZyYW1lT2JqZWN0
LT5zZXRTdHJpbmcoImlkIiwgZnJhbWVJZChmcmFtZSkpOworICAgIGZyYW1lT2JqZWN0LT5zZXRT
dHJpbmcoInBhcmVudElkIiwgZnJhbWVJZChmcmFtZS0+dHJlZSgpLT5wYXJlbnQoKSkpOworICAg
IGlmIChmcmFtZS0+b3duZXJFbGVtZW50KCkpIHsKKyAgICAgICAgU3RyaW5nIG5hbWUgPSBmcmFt
ZS0+b3duZXJFbGVtZW50KCktPmdldEF0dHJpYnV0ZShIVE1MTmFtZXM6Om5hbWVBdHRyKTsKKyAg
ICAgICAgaWYgKG5hbWUuaXNFbXB0eSgpKQorICAgICAgICAgICAgbmFtZSA9IGZyYW1lLT5vd25l
ckVsZW1lbnQoKS0+Z2V0QXR0cmlidXRlKEhUTUxOYW1lczo6aWRBdHRyKTsKKyAgICAgICAgZnJh
bWVPYmplY3QtPnNldFN0cmluZygibmFtZSIsIG5hbWUpOworICAgIH0KKyAgICBmcmFtZU9iamVj
dC0+c2V0U3RyaW5nKCJ1cmwiLCBmcmFtZS0+ZG9jdW1lbnQoKS0+dXJsKCkuc3RyaW5nKCkpOwor
ICAgIGZyYW1lT2JqZWN0LT5zZXRTdHJpbmcoImxvYWRlcklkIiwgbG9hZGVySWQoZnJhbWUtPmxv
YWRlcigpLT5kb2N1bWVudExvYWRlcigpKSk7CisKKyAgICByZXR1cm4gZnJhbWVPYmplY3Q7Cit9
CisKK1Bhc3NSZWZQdHI8SW5zcGVjdG9yT2JqZWN0PiBJbnNwZWN0b3JQYWdlQWdlbnQ6OmJ1aWxk
T2JqZWN0Rm9yRnJhbWVUcmVlKEZyYW1lKiBmcmFtZSkKK3sKKyAgICBSZWZQdHI8SW5zcGVjdG9y
T2JqZWN0PiByZXN1bHQgPSBJbnNwZWN0b3JPYmplY3Q6OmNyZWF0ZSgpOworICAgIFJlZlB0cjxJ
bnNwZWN0b3JPYmplY3Q+IGZyYW1lT2JqZWN0ID0gYnVpbGRPYmplY3RGb3JGcmFtZShmcmFtZSk7
CisgICAgcmVzdWx0LT5zZXRPYmplY3QoImZyYW1lIiwgZnJhbWVPYmplY3QpOworCisgICAgUmVm
UHRyPEluc3BlY3RvckFycmF5PiBzdWJyZXNvdXJjZXMgPSBJbnNwZWN0b3JBcnJheTo6Y3JlYXRl
KCk7CisgICAgcmVzdWx0LT5zZXRBcnJheSgicmVzb3VyY2VzIiwgc3VicmVzb3VyY2VzKTsKKyAg
ICBjb25zdCBDYWNoZWRSZXNvdXJjZUxvYWRlcjo6RG9jdW1lbnRSZXNvdXJjZU1hcCYgYWxsUmVz
b3VyY2VzID0gZnJhbWUtPmRvY3VtZW50KCktPmNhY2hlZFJlc291cmNlTG9hZGVyKCktPmFsbENh
Y2hlZFJlc291cmNlcygpOworICAgIENhY2hlZFJlc291cmNlTG9hZGVyOjpEb2N1bWVudFJlc291
cmNlTWFwOjpjb25zdF9pdGVyYXRvciBlbmQgPSBhbGxSZXNvdXJjZXMuZW5kKCk7CisgICAgZm9y
IChDYWNoZWRSZXNvdXJjZUxvYWRlcjo6RG9jdW1lbnRSZXNvdXJjZU1hcDo6Y29uc3RfaXRlcmF0
b3IgaXQgPSBhbGxSZXNvdXJjZXMuYmVnaW4oKTsgaXQgIT0gZW5kOyArK2l0KSB7CisgICAgICAg
IENhY2hlZFJlc291cmNlKiBjYWNoZWRSZXNvdXJjZSA9IGl0LT5zZWNvbmQuZ2V0KCk7CisgICAg
ICAgIFJlZlB0cjxJbnNwZWN0b3JPYmplY3Q+IHJlc291cmNlT2JqZWN0ID0gSW5zcGVjdG9yT2Jq
ZWN0OjpjcmVhdGUoKTsKKyAgICAgICAgcmVzb3VyY2VPYmplY3QtPnNldFN0cmluZygidXJsIiwg
Y2FjaGVkUmVzb3VyY2UtPnVybCgpKTsKKyAgICAgICAgcmVzb3VyY2VPYmplY3QtPnNldFN0cmlu
ZygidHlwZSIsIGNhY2hlZFJlc291cmNlVHlwZVN0cmluZygqY2FjaGVkUmVzb3VyY2UpKTsKKyAg
ICAgICAgc3VicmVzb3VyY2VzLT5wdXNoVmFsdWUocmVzb3VyY2VPYmplY3QpOworICAgIH0KKwor
ICAgIFJlZlB0cjxJbnNwZWN0b3JBcnJheT4gY2hpbGRyZW5BcnJheTsKKyAgICBmb3IgKEZyYW1l
KiBjaGlsZCA9IGZyYW1lLT50cmVlKCktPmZpcnN0Q2hpbGQoKTsgY2hpbGQ7IGNoaWxkID0gY2hp
bGQtPnRyZWUoKS0+bmV4dFNpYmxpbmcoKSkgeworICAgICAgICBpZiAoIWNoaWxkcmVuQXJyYXkp
IHsKKyAgICAgICAgICAgIGNoaWxkcmVuQXJyYXkgPSBJbnNwZWN0b3JBcnJheTo6Y3JlYXRlKCk7
CisgICAgICAgICAgICByZXN1bHQtPnNldEFycmF5KCJjaGlsZEZyYW1lcyIsIGNoaWxkcmVuQXJy
YXkpOworICAgICAgICB9CisgICAgICAgIGNoaWxkcmVuQXJyYXktPnB1c2hPYmplY3QoYnVpbGRP
YmplY3RGb3JGcmFtZVRyZWUoY2hpbGQpKTsKKyAgICB9CisgICAgcmV0dXJuIHJlc3VsdDsKK30K
KwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiAjZW5kaWYgLy8gRU5BQkxFKElOU1BFQ1RPUikK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JQYWdlQWdlbnQu
aCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JQYWdlQWdlbnQuaAppbmRleCBi
OTVjYzE4NWJkY2RkMjJiMWFiNzgxOGI2ZDI3MDkyZjVkODA0YmQwLi42ODlmM2U1ZGMzOTczNmZh
ZGVhZGFkNzM3NWI1NjUzMjAyY2E1NzFlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvSW5zcGVjdG9yUGFnZUFnZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L0luc3BlY3RvclBhZ2VBZ2VudC5oCkBAIC0zMywxOSArMzMsMjMgQEAKIAogI2lmIEVOQUJMRShJ
TlNQRUNUT1IpCiAKKyNpbmNsdWRlICJJbnNwZWN0b3JGcm9udGVuZC5oIgogI2luY2x1ZGUgIlBs
YXRmb3JtU3RyaW5nLmgiCiAjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KICNpbmNsdWRlIDx3
dGYvVmVjdG9yLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAorY2xhc3MgQ2FjaGVkUmVzb3Vy
Y2U7CiBjbGFzcyBET01XcmFwcGVyV29ybGQ7CitjbGFzcyBEb2N1bWVudExvYWRlcjsKIGNsYXNz
IEZyYW1lOwogY2xhc3MgRnJvbnRlbmQ7CiBjbGFzcyBJbmplY3RlZFNjcmlwdE1hbmFnZXI7CiBj
bGFzcyBJbnNwZWN0b3JBcnJheTsKLWNsYXNzIEluc3BlY3RvckZyb250ZW5kOworY2xhc3MgSW5z
cGVjdG9yT2JqZWN0OwogY2xhc3MgSW5zdHJ1bWVudGluZ0FnZW50czsKK2NsYXNzIEtVUkw7CiBj
bGFzcyBQYWdlOwogCiB0eXBlZGVmIFN0cmluZyBFcnJvclN0cmluZzsKQEAgLTUzLDggKzU3LDI5
IEBAIHR5cGVkZWYgU3RyaW5nIEVycm9yU3RyaW5nOwogY2xhc3MgSW5zcGVjdG9yUGFnZUFnZW50
IHsKICAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShJbnNwZWN0b3JQYWdlQWdlbnQpOwogcHVibGlj
OgorCisgICAgZW51bSBSZXNvdXJjZVR5cGUgeworICAgICAgICBEb2N1bWVudFJlc291cmNlLAor
ICAgICAgICBTdHlsZXNoZWV0UmVzb3VyY2UsCisgICAgICAgIEltYWdlUmVzb3VyY2UsCisgICAg
ICAgIEZvbnRSZXNvdXJjZSwKKyAgICAgICAgU2NyaXB0UmVzb3VyY2UsCisgICAgICAgIFhIUlJl
c291cmNlLAorICAgICAgICBXZWJTb2NrZXRSZXNvdXJjZSwKKyAgICAgICAgT3RoZXJSZXNvdXJj
ZQorICAgIH07CisKICAgICBzdGF0aWMgUGFzc093blB0cjxJbnNwZWN0b3JQYWdlQWdlbnQ+IGNy
ZWF0ZShJbnN0cnVtZW50aW5nQWdlbnRzKiwgUGFnZSosIEluamVjdGVkU2NyaXB0TWFuYWdlciop
OwogCisgICAgc3RhdGljIHZvaWQgcmVzb3VyY2VDb250ZW50KEVycm9yU3RyaW5nKiwgRnJhbWUq
LCBjb25zdCBLVVJMJiwgU3RyaW5nKiByZXN1bHQpOworICAgIHN0YXRpYyB2b2lkIHJlc291cmNl
Q29udGVudEJhc2U2NChFcnJvclN0cmluZyosIEZyYW1lKiwgY29uc3QgS1VSTCYsIFN0cmluZyog
cmVzdWx0KTsKKworICAgIHN0YXRpYyBQYXNzUmVmUHRyPFNoYXJlZEJ1ZmZlcj4gcmVzb3VyY2VE
YXRhKEZyYW1lKiwgY29uc3QgS1VSTCYsIFN0cmluZyogdGV4dEVuY29kaW5nTmFtZSk7CisgICAg
c3RhdGljIENhY2hlZFJlc291cmNlKiBjYWNoZWRSZXNvdXJjZShGcmFtZSosIGNvbnN0IEtVUkwm
KTsKKyAgICBzdGF0aWMgU3RyaW5nIHJlc291cmNlVHlwZVN0cmluZyhSZXNvdXJjZVR5cGUpOwor
ICAgIHN0YXRpYyBSZXNvdXJjZVR5cGUgY2FjaGVkUmVzb3VyY2VUeXBlKGNvbnN0IENhY2hlZFJl
c291cmNlJik7CisgICAgc3RhdGljIFN0cmluZyBjYWNoZWRSZXNvdXJjZVR5cGVTdHJpbmcoY29u
c3QgQ2FjaGVkUmVzb3VyY2UmKTsKKwogICAgIC8vIFBhZ2UgQVBJIGZvciBJbnNwZWN0b3JGcm9u
dGVuZAogICAgIHZvaWQgYWRkU2NyaXB0VG9FdmFsdWF0ZU9uTG9hZChFcnJvclN0cmluZyosIGNv
bnN0IFN0cmluZyYgc291cmNlKTsKICAgICB2b2lkIHJlbW92ZUFsbFNjcmlwdHNUb0V2YWx1YXRl
T25Mb2FkKEVycm9yU3RyaW5nKik7CkBAIC02MiwyNiArODcsMzggQEAgcHVibGljOgogICAgIHZv
aWQgb3BlbihFcnJvclN0cmluZyosIGNvbnN0IFN0cmluZyYgdXJsLCBjb25zdCBib29sKiBjb25z
dCBpbk5ld1dpbmRvdyk7CiAgICAgdm9pZCBnZXRDb29raWVzKEVycm9yU3RyaW5nKiwgUmVmUHRy
PEluc3BlY3RvckFycmF5PiogY29va2llcywgV1RGOjpTdHJpbmcqIGNvb2tpZXNTdHJpbmcpOwog
ICAgIHZvaWQgZGVsZXRlQ29va2llKEVycm9yU3RyaW5nKiwgY29uc3QgU3RyaW5nJiBjb29raWVO
YW1lLCBjb25zdCBTdHJpbmcmIGRvbWFpbik7CisgICAgdm9pZCBnZXRSZXNvdXJjZVRyZWUoRXJy
b3JTdHJpbmcqLCBSZWZQdHI8SW5zcGVjdG9yT2JqZWN0PiopOworICAgIHZvaWQgZ2V0UmVzb3Vy
Y2VDb250ZW50KEVycm9yU3RyaW5nKiwgY29uc3QgU3RyaW5nJiBmcmFtZUlkLCBjb25zdCBTdHJp
bmcmIHVybCwgY29uc3QgYm9vbCogY29uc3QgYmFzZTY0RW5jb2RlLCBTdHJpbmcqIGNvbnRlbnQp
OwogCiAgICAgLy8gSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uIEFQSQotICAgIHZvaWQgaW5zcGVj
dGVkVVJMQ2hhbmdlZChjb25zdCBTdHJpbmcmIHVybCk7CiAgICAgdm9pZCBkaWRDb21taXRMb2Fk
KGNvbnN0IFN0cmluZyYgdXJsKTsKICAgICB2b2lkIGRpZENsZWFyV2luZG93T2JqZWN0SW5Xb3Js
ZChGcmFtZSosIERPTVdyYXBwZXJXb3JsZCopOwogICAgIHZvaWQgZG9tQ29udGVudEV2ZW50Rmly
ZWQoKTsKICAgICB2b2lkIGxvYWRFdmVudEZpcmVkKCk7CisgICAgdm9pZCBmcmFtZU5hdmlnYXRl
ZChEb2N1bWVudExvYWRlciopOworICAgIHZvaWQgZnJhbWVEZXRhY2hlZChGcmFtZSopOwogCisg
ICAgLy8gSW5zcGVjdG9yIENvbnRyb2xsZXIgQVBJCiAgICAgdm9pZCBzZXRGcm9udGVuZChJbnNw
ZWN0b3JGcm9udGVuZCopOwogICAgIHZvaWQgY2xlYXJGcm9udGVuZCgpOwogICAgIHZvaWQgcmVz
dG9yZSgpOwotICAgIHZvaWQgYXBwbHlVc2VyQWdlbnRPdmVycmlkZShTdHJpbmcqIHVzZXJBZ2Vu
dCkgY29uc3Q7CisKKyAgICAvLyBDcm9zcy1hZ2VudHMgQVBJCisgICAgRnJhbWUqIG1haW5GcmFt
ZSgpOworICAgIEZyYW1lKiBmcmFtZUZvcklkKGNvbnN0IFN0cmluZyYgZnJhbWVJZCk7CisgICAg
U3RyaW5nIGZyYW1lSWQoRnJhbWUqKTsKKyAgICBTdHJpbmcgbG9hZGVySWQoRG9jdW1lbnRMb2Fk
ZXIqKTsKIAogcHJpdmF0ZToKICAgICBJbnNwZWN0b3JQYWdlQWdlbnQoSW5zdHJ1bWVudGluZ0Fn
ZW50cyosIFBhZ2UqLCBJbmplY3RlZFNjcmlwdE1hbmFnZXIqKTsKIAorICAgIFBhc3NSZWZQdHI8
SW5zcGVjdG9yT2JqZWN0PiBidWlsZE9iamVjdEZvckZyYW1lKEZyYW1lKik7CisgICAgUGFzc1Jl
ZlB0cjxJbnNwZWN0b3JPYmplY3Q+IGJ1aWxkT2JqZWN0Rm9yRnJhbWVUcmVlKEZyYW1lKik7CisK
ICAgICBJbnN0cnVtZW50aW5nQWdlbnRzKiBtX2luc3RydW1lbnRpbmdBZ2VudHM7Ci0gICAgUGFn
ZSogbV9pbnNwZWN0ZWRQYWdlOworICAgIFBhZ2UqIG1fcGFnZTsKICAgICBJbmplY3RlZFNjcmlw
dE1hbmFnZXIqIG1faW5qZWN0ZWRTY3JpcHRNYW5hZ2VyOwotICAgIEluc3BlY3RvckZyb250ZW5k
KiBtX2Zyb250ZW5kOworICAgIEluc3BlY3RvckZyb250ZW5kOjpQYWdlKiBtX2Zyb250ZW5kOwog
ICAgIFZlY3RvcjxTdHJpbmc+IG1fc2NyaXB0c1RvRXZhbHVhdGVPbkxvYWQ7CiB9OwogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yUmVzb3VyY2VBZ2VudC5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yUmVzb3VyY2VBZ2VudC5jcHAK
aW5kZXggNWJiZDM2MDEyMmQ0MWZhMDM0YzVmMTE1ZjU5ZTY5NDNhNTViNjk2YS4uMWE4YjcyOWVh
MmI4MjlkNWJkZjQwNjIzZTFlOWJkYzVkMTA4OGM1OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvaW5zcGVjdG9yL0luc3BlY3RvclJlc291cmNlQWdlbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2luc3BlY3Rvci9JbnNwZWN0b3JSZXNvdXJjZUFnZW50LmNwcApAQCAtMzMsMzQgKzMzLDI3
IEBACiAKICNpZiBFTkFCTEUoSU5TUEVDVE9SKQogCi0jaW5jbHVkZSAiQmFzZTY0LmgiCiAjaW5j
bHVkZSAiQ2FjaGVkUmVzb3VyY2UuaCIKICNpbmNsdWRlICJDYWNoZWRSZXNvdXJjZUxvYWRlci5o
IgotI2luY2x1ZGUgIkRvY3VtZW50LmgiCiAjaW5jbHVkZSAiRG9jdW1lbnRMb2FkZXIuaCIKICNp
bmNsdWRlICJFdmVudHNDb2xsZWN0b3IuaCIKICNpbmNsdWRlICJGcmFtZS5oIgogI2luY2x1ZGUg
IkZyYW1lTG9hZGVyLmgiCi0jaW5jbHVkZSAiSFRNTEZyYW1lT3duZXJFbGVtZW50LmgiCi0jaW5j
bHVkZSAiSFRNTE5hbWVzLmgiCiAjaW5jbHVkZSAiSFRUUEhlYWRlck1hcC5oIgogI2luY2x1ZGUg
Ikluc3BlY3RvckZyb250ZW5kLmgiCiAjaW5jbHVkZSAiSW5zcGVjdG9yRnJvbnRlbmRDaGFubmVs
LmgiCiAjaW5jbHVkZSAiSW5zcGVjdG9yRnJvbnRlbmRQcm94eS5oIgorI2luY2x1ZGUgIkluc3Bl
Y3RvclBhZ2VBZ2VudC5oIgogI2luY2x1ZGUgIkluc3BlY3RvclN0YXRlLmgiCiAjaW5jbHVkZSAi
SW5zcGVjdG9yVmFsdWVzLmgiCiAjaW5jbHVkZSAiSW5zdHJ1bWVudGluZ0FnZW50cy5oIgogI2lu
Y2x1ZGUgIktVUkwuaCIKLSNpbmNsdWRlICJNZW1vcnlDYWNoZS5oIgotI2luY2x1ZGUgIlBhZ2Uu
aCIKICNpbmNsdWRlICJQcm9ncmVzc1RyYWNrZXIuaCIKICNpbmNsdWRlICJSZXNvdXJjZUVycm9y
LmgiCiAjaW5jbHVkZSAiUmVzb3VyY2VSZXF1ZXN0LmgiCiAjaW5jbHVkZSAiUmVzb3VyY2VSZXNw
b25zZS5oIgogI2luY2x1ZGUgIlNjcmlwdENhbGxTdGFjay5oIgogI2luY2x1ZGUgIlNjcmlwdENh
bGxTdGFja0ZhY3RvcnkuaCIKLSNpbmNsdWRlICJTaGFyZWRCdWZmZXIuaCIKLSNpbmNsdWRlICJU
ZXh0RW5jb2RpbmcuaCIKICNpbmNsdWRlICJXZWJTb2NrZXRIYW5kc2hha2VSZXF1ZXN0LmgiCiAj
aW5jbHVkZSAiV2ViU29ja2V0SGFuZHNoYWtlUmVzcG9uc2UuaCIKIApAQCAtNzcsMTcgKzcwLDYg
QEAgc3RhdGljIGNvbnN0IGNoYXIgcmVzb3VyY2VBZ2VudEVuYWJsZWRbXSA9ICJyZXNvdXJjZUFn
ZW50RW5hYmxlZCI7CiBzdGF0aWMgY29uc3QgY2hhciBleHRyYVJlcXVlc3RIZWFkZXJzW10gPSAi
ZXh0cmFSZXF1ZXN0SGVhZGVycyI7CiB9CiAKLW5hbWVzcGFjZSBSZXNvdXJjZVR5cGUgewotc3Rh
dGljIGNvbnN0IGNoYXIgZG9jdW1lbnRbXSA9ICJEb2N1bWVudCI7Ci1zdGF0aWMgY29uc3QgY2hh
ciBzdHlsZXNoZWV0W10gPSAiU3R5bGVzaGVldCI7Ci1zdGF0aWMgY29uc3QgY2hhciBpbWFnZVtd
ID0gIkltYWdlIjsKLXN0YXRpYyBjb25zdCBjaGFyIGZvbnRbXSA9ICJGb250IjsKLXN0YXRpYyBj
b25zdCBjaGFyIHNjcmlwdFtdID0gIlNjcmlwdCI7Ci1zdGF0aWMgY29uc3QgY2hhciB4aHJbXSA9
ICJYSFIiOwotc3RhdGljIGNvbnN0IGNoYXIgd2Vic29ja2V0W10gPSAiV2ViU29ja2V0IjsKLXN0
YXRpYyBjb25zdCBjaGFyIG90aGVyW10gPSAiT3RoZXIiOwotfQotCiB2b2lkIEluc3BlY3RvclJl
c291cmNlQWdlbnQ6OnNldEZyb250ZW5kKEluc3BlY3RvckZyb250ZW5kKiBmcm9udGVuZCkKIHsK
ICAgICBtX2Zyb250ZW5kID0gZnJvbnRlbmQtPm5ldHdvcmsoKTsKQEAgLTExOCw3OSArMTAwLDYg
QEAgdm9pZCBJbnNwZWN0b3JSZXNvdXJjZUFnZW50OjpyZXN0b3JlKCkKICAgICAgICAgZW5hYmxl
KCk7CiB9CiAKLXZvaWQgSW5zcGVjdG9yUmVzb3VyY2VBZ2VudDo6cmVzb3VyY2VDb250ZW50KEVy
cm9yU3RyaW5nKiBlcnJvclN0cmluZywgRnJhbWUqIGZyYW1lLCBjb25zdCBLVVJMJiB1cmwsIFN0
cmluZyogcmVzdWx0KQotewotICAgIGlmICghZnJhbWUpIHsKLSAgICAgICAgKmVycm9yU3RyaW5n
ID0gIk5vIGZyYW1lIHRvIGdldCByZXNvdXJjZSBjb250ZW50IGZvciI7Ci0gICAgICAgIHJldHVy
bjsKLSAgICB9Ci0KLSAgICBTdHJpbmcgdGV4dEVuY29kaW5nTmFtZTsKLSAgICBSZWZQdHI8U2hh
cmVkQnVmZmVyPiBidWZmZXIgPSBJbnNwZWN0b3JSZXNvdXJjZUFnZW50OjpyZXNvdXJjZURhdGEo
ZnJhbWUsIHVybCwgJnRleHRFbmNvZGluZ05hbWUpOwotCi0gICAgaWYgKGJ1ZmZlcikgewotICAg
ICAgICBUZXh0RW5jb2RpbmcgZW5jb2RpbmcodGV4dEVuY29kaW5nTmFtZSk7Ci0gICAgICAgIGlm
ICghZW5jb2RpbmcuaXNWYWxpZCgpKQotICAgICAgICAgICAgZW5jb2RpbmcgPSBXaW5kb3dzTGF0
aW4xRW5jb2RpbmcoKTsKLSAgICAgICAgKnJlc3VsdCA9IGVuY29kaW5nLmRlY29kZShidWZmZXIt
PmRhdGEoKSwgYnVmZmVyLT5zaXplKCkpOwotICAgICAgICByZXR1cm47Ci0gICAgfQotICAgICpl
cnJvclN0cmluZyA9ICJObyByZXNvdXJjZSB3aXRoIGdpdmVuIFVSTCBmb3VuZCI7IAotfQotCi12
b2lkIEluc3BlY3RvclJlc291cmNlQWdlbnQ6OnJlc291cmNlQ29udGVudEJhc2U2NChFcnJvclN0
cmluZyogZXJyb3JTdHJpbmcsIEZyYW1lKiBmcmFtZSwgY29uc3QgS1VSTCYgdXJsLCBTdHJpbmcq
IHJlc3VsdCkKLXsKLSAgICBTdHJpbmcgdGV4dEVuY29kaW5nTmFtZTsKLSAgICBSZWZQdHI8U2hh
cmVkQnVmZmVyPiBkYXRhID0gSW5zcGVjdG9yUmVzb3VyY2VBZ2VudDo6cmVzb3VyY2VEYXRhKGZy
YW1lLCB1cmwsICZ0ZXh0RW5jb2RpbmdOYW1lKTsKLSAgICBpZiAoIWRhdGEpIHsKLSAgICAgICAg
KnJlc3VsdCA9IFN0cmluZygpOwotICAgICAgICAqZXJyb3JTdHJpbmcgPSAiTm8gcmVzb3VyY2Ug
d2l0aCBnaXZlbiBVUkwgZm91bmQiOyAKLSAgICAgICAgcmV0dXJuOwotICAgIH0KLQotICAgICpy
ZXN1bHQgPSBiYXNlNjRFbmNvZGUoZGF0YS0+ZGF0YSgpLCBkYXRhLT5zaXplKCkpOwotfQotCi1Q
YXNzUmVmUHRyPFNoYXJlZEJ1ZmZlcj4gSW5zcGVjdG9yUmVzb3VyY2VBZ2VudDo6cmVzb3VyY2VE
YXRhKEZyYW1lKiBmcmFtZSwgY29uc3QgS1VSTCYgdXJsLCBTdHJpbmcqIHRleHRFbmNvZGluZ05h
bWUpCi17Ci0gICAgRnJhbWVMb2FkZXIqIGZyYW1lTG9hZGVyID0gZnJhbWUtPmxvYWRlcigpOwot
ICAgIERvY3VtZW50TG9hZGVyKiBsb2FkZXIgPSBmcmFtZUxvYWRlci0+ZG9jdW1lbnRMb2FkZXIo
KTsKLSAgICBpZiAoZXF1YWxJZ25vcmluZ0ZyYWdtZW50SWRlbnRpZmllcih1cmwsIGxvYWRlci0+
dXJsKCkpKSB7Ci0gICAgICAgICp0ZXh0RW5jb2RpbmdOYW1lID0gZnJhbWUtPmRvY3VtZW50KCkt
PmlucHV0RW5jb2RpbmcoKTsKLSAgICAgICAgcmV0dXJuIGZyYW1lTG9hZGVyLT5kb2N1bWVudExv
YWRlcigpLT5tYWluUmVzb3VyY2VEYXRhKCk7Ci0gICAgfQotCi0gICAgQ2FjaGVkUmVzb3VyY2Uq
IGNhY2hlZFJlc291cmNlID0gSW5zcGVjdG9yUmVzb3VyY2VBZ2VudDo6Y2FjaGVkUmVzb3VyY2Uo
ZnJhbWUsIHVybCk7Ci0gICAgaWYgKCFjYWNoZWRSZXNvdXJjZSkKLSAgICAgICAgcmV0dXJuIDA7
Ci0KLSAgICAvLyBaZXJvLXNpemVkIHJlc291cmNlcyBkb24ndCBoYXZlIGRhdGEgYXQgYWxsIC0t
IHNvIGZha2UgdGhlIGVtcHR5IGJ1ZmZlciwgaW5zdGVkIG9mIGluZGljYXRpbmcgZXJyb3IgYnkg
cmV0dXJuaW5nIDAuCi0gICAgaWYgKCFjYWNoZWRSZXNvdXJjZS0+ZW5jb2RlZFNpemUoKSkKLSAg
ICAgICAgcmV0dXJuIFNoYXJlZEJ1ZmZlcjo6Y3JlYXRlKCk7Ci0KLSAgICBpZiAoY2FjaGVkUmVz
b3VyY2UtPmlzUHVyZ2VhYmxlKCkpIHsKLSAgICAgICAgLy8gSWYgdGhlIHJlc291cmNlIGlzIHB1
cmdlYWJsZSB0aGVuIG1ha2UgaXQgdW5wdXJnZWFibGUgdG8gZ2V0Ci0gICAgICAgIC8vIGdldCBp
dHMgZGF0YS4gVGhpcyBtaWdodCBmYWlsLCBpbiB3aGljaCBjYXNlIHdlIHJldHVybiBhbgotICAg
ICAgICAvLyBlbXB0eSBTdHJpbmcuCi0gICAgICAgIC8vIEZJWE1FOiBzaG91bGQgd2UgZG8gc29t
ZXRoaW5nIGVsc2UgaW4gdGhlIGNhc2Ugb2YgYSBwdXJnZWQKLSAgICAgICAgLy8gcmVzb3VyY2Ug
dGhhdCBpbmZvcm1zIHRoZSB1c2VyIHdoeSB0aGVyZSBpcyBubyBkYXRhIGluIHRoZQotICAgICAg
ICAvLyBpbnNwZWN0b3I/Ci0gICAgICAgIGlmICghY2FjaGVkUmVzb3VyY2UtPm1ha2VQdXJnZWFi
bGUoZmFsc2UpKQotICAgICAgICAgICAgcmV0dXJuIDA7Ci0gICAgfQotCi0gICAgKnRleHRFbmNv
ZGluZ05hbWUgPSBjYWNoZWRSZXNvdXJjZS0+ZW5jb2RpbmcoKTsKLSAgICByZXR1cm4gY2FjaGVk
UmVzb3VyY2UtPmRhdGEoKTsKLX0KLQotQ2FjaGVkUmVzb3VyY2UqIEluc3BlY3RvclJlc291cmNl
QWdlbnQ6OmNhY2hlZFJlc291cmNlKEZyYW1lKiBmcmFtZSwgY29uc3QgS1VSTCYgdXJsKQotewot
ICAgIENhY2hlZFJlc291cmNlKiBjYWNoZWRSZXNvdXJjZSA9IGZyYW1lLT5kb2N1bWVudCgpLT5j
YWNoZWRSZXNvdXJjZUxvYWRlcigpLT5jYWNoZWRSZXNvdXJjZSh1cmwpOwotICAgIGlmICghY2Fj
aGVkUmVzb3VyY2UpCi0gICAgICAgIGNhY2hlZFJlc291cmNlID0gbWVtb3J5Q2FjaGUoKS0+cmVz
b3VyY2VGb3JVUkwodXJsKTsKLSAgICByZXR1cm4gY2FjaGVkUmVzb3VyY2U7Ci19Ci0KIHN0YXRp
YyBQYXNzUmVmUHRyPEluc3BlY3Rvck9iamVjdD4gYnVpbGRPYmplY3RGb3JIZWFkZXJzKGNvbnN0
IEhUVFBIZWFkZXJNYXAmIGhlYWRlcnMpCiB7CiAgICAgUmVmUHRyPEluc3BlY3Rvck9iamVjdD4g
aGVhZGVyc09iamVjdCA9IEluc3BlY3Rvck9iamVjdDo6Y3JlYXRlKCk7CkBAIC0yNTksMzkgKzE2
OCwxMSBAQCBzdGF0aWMgUGFzc1JlZlB0cjxJbnNwZWN0b3JPYmplY3Q+IGJ1aWxkT2JqZWN0Rm9y
UmVzb3VyY2VSZXNwb25zZShjb25zdCBSZXNvdXJjZQogICAgIHJldHVybiByZXNwb25zZU9iamVj
dDsKIH0KIAotc3RhdGljIFN0cmluZyBwb2ludGVyQXNJZCh2b2lkKiBwb2ludGVyKQotewotICAg
IHVuc2lnbmVkIGxvbmcgbG9uZyBhZGRyZXNzID0gcmVpbnRlcnByZXRfY2FzdDx1aW50cHRyX3Q+
KHBvaW50ZXIpOwotICAgIC8vIFdlIHdhbnQgMCB0byBiZSAiIiwgc28gdGhhdCBKYXZhU2NyaXB0
IGNoZWNrcyBmb3IgaWYgKGZyYW1lSWQpIHdvcmtlZC4KLSAgICByZXR1cm4gU3RyaW5nOjpmb3Jt
YXQoIiUuMGxsWCIsIGFkZHJlc3MpOwotfQotCi1zdGF0aWMgU3RyaW5nIGNhY2hlZFJlc291cmNl
VHlwZVN0cmluZyhjb25zdCBDYWNoZWRSZXNvdXJjZSYgY2FjaGVkUmVzb3VyY2UpCi17Ci0gICAg
c3dpdGNoIChjYWNoZWRSZXNvdXJjZS50eXBlKCkpIHsKLSAgICBjYXNlIENhY2hlZFJlc291cmNl
OjpJbWFnZVJlc291cmNlOgotICAgICAgICByZXR1cm4gUmVzb3VyY2VUeXBlOjppbWFnZTsKLSAg
ICBjYXNlIENhY2hlZFJlc291cmNlOjpGb250UmVzb3VyY2U6Ci0gICAgICAgIHJldHVybiBSZXNv
dXJjZVR5cGU6OmZvbnQ7Ci0gICAgY2FzZSBDYWNoZWRSZXNvdXJjZTo6Q1NTU3R5bGVTaGVldDoK
LSAgICAgICAgLy8gRmFsbCB0aHJvdWdoLgotI2lmIEVOQUJMRShYU0xUKQotICAgIGNhc2UgQ2Fj
aGVkUmVzb3VyY2U6OlhTTFN0eWxlU2hlZXQ6Ci0jZW5kaWYKLSAgICAgICAgcmV0dXJuIFJlc291
cmNlVHlwZTo6c3R5bGVzaGVldDsKLSAgICBjYXNlIENhY2hlZFJlc291cmNlOjpTY3JpcHQ6Ci0g
ICAgICAgIHJldHVybiBSZXNvdXJjZVR5cGU6OnNjcmlwdDsKLSAgICBkZWZhdWx0OgotICAgICAg
ICBicmVhazsKLSAgICB9Ci0gICAgcmV0dXJuIFJlc291cmNlVHlwZTo6b3RoZXI7Ci19Ci0KIHN0
YXRpYyBQYXNzUmVmUHRyPEluc3BlY3Rvck9iamVjdD4gYnVpbGRPYmplY3RGb3JDYWNoZWRSZXNv
dXJjZShjb25zdCBDYWNoZWRSZXNvdXJjZSYgY2FjaGVkUmVzb3VyY2UpCiB7CiAgICAgUmVmUHRy
PEluc3BlY3Rvck9iamVjdD4gcmVzb3VyY2VPYmplY3QgPSBJbnNwZWN0b3JPYmplY3Q6OmNyZWF0
ZSgpOwogICAgIHJlc291cmNlT2JqZWN0LT5zZXRTdHJpbmcoInVybCIsIGNhY2hlZFJlc291cmNl
LnVybCgpKTsKLSAgICByZXNvdXJjZU9iamVjdC0+c2V0U3RyaW5nKCJ0eXBlIiwgY2FjaGVkUmVz
b3VyY2VUeXBlU3RyaW5nKGNhY2hlZFJlc291cmNlKSk7CisgICAgcmVzb3VyY2VPYmplY3QtPnNl
dFN0cmluZygidHlwZSIsIEluc3BlY3RvclBhZ2VBZ2VudDo6Y2FjaGVkUmVzb3VyY2VUeXBlU3Ry
aW5nKGNhY2hlZFJlc291cmNlKSk7CiAgICAgcmVzb3VyY2VPYmplY3QtPnNldE51bWJlcigiYm9k
eVNpemUiLCBjYWNoZWRSZXNvdXJjZS5lbmNvZGVkU2l6ZSgpKTsKICAgICBSZWZQdHI8SW5zcGVj
dG9yT2JqZWN0PiByZXNvdXJjZVJlc3BvbnNlID0gYnVpbGRPYmplY3RGb3JSZXNvdXJjZVJlc3Bv
bnNlKGNhY2hlZFJlc291cmNlLnJlc3BvbnNlKCkpOwogICAgIGlmIChyZXNvdXJjZVJlc3BvbnNl
KQpAQCAtMzMwLDcgKzIxMSw3IEBAIHZvaWQgSW5zcGVjdG9yUmVzb3VyY2VBZ2VudDo6d2lsbFNl
bmRSZXF1ZXN0KHVuc2lnbmVkIGxvbmcgaWRlbnRpZmllciwgRG9jdW1lbnRMCiAgICAgICAgIGNh
bGxTdGFja1ZhbHVlID0gY2FsbFN0YWNrLT5idWlsZEluc3BlY3RvckFycmF5KCk7CiAgICAgZWxz
ZQogICAgICAgICBjYWxsU3RhY2tWYWx1ZSA9IEluc3BlY3RvckFycmF5OjpjcmVhdGUoKTsKLSAg
ICBtX2Zyb250ZW5kLT5yZXF1ZXN0V2lsbEJlU2VudChzdGF0aWNfY2FzdDxpbnQ+KGlkZW50aWZp
ZXIpLCBwb2ludGVyQXNJZChsb2FkZXItPmZyYW1lKCkpLCBwb2ludGVyQXNJZChsb2FkZXIpLCBs
b2FkZXItPnVybCgpLnN0cmluZygpLCBidWlsZE9iamVjdEZvclJlc291cmNlUmVxdWVzdChyZXF1
ZXN0KSwgY3VycmVudFRpbWUoKSwgY2FsbFN0YWNrVmFsdWUsIGJ1aWxkT2JqZWN0Rm9yUmVzb3Vy
Y2VSZXNwb25zZShyZWRpcmVjdFJlc3BvbnNlKSk7CisgICAgbV9mcm9udGVuZC0+cmVxdWVzdFdp
bGxCZVNlbnQoc3RhdGljX2Nhc3Q8aW50PihpZGVudGlmaWVyKSwgbV9wYWdlQWdlbnQtPmZyYW1l
SWQobG9hZGVyLT5mcmFtZSgpKSwgbV9wYWdlQWdlbnQtPmxvYWRlcklkKGxvYWRlciksIGxvYWRl
ci0+dXJsKCkuc3RyaW5nKCksIGJ1aWxkT2JqZWN0Rm9yUmVzb3VyY2VSZXF1ZXN0KHJlcXVlc3Qp
LCBjdXJyZW50VGltZSgpLCBjYWxsU3RhY2tWYWx1ZSwgYnVpbGRPYmplY3RGb3JSZXNvdXJjZVJl
c3BvbnNlKHJlZGlyZWN0UmVzcG9uc2UpKTsKIH0KIAogdm9pZCBJbnNwZWN0b3JSZXNvdXJjZUFn
ZW50OjptYXJrUmVzb3VyY2VBc0NhY2hlZCh1bnNpZ25lZCBsb25nIGlkZW50aWZpZXIpCkBAIC0z
NDEsMjQgKzIyMiwyNCBAQCB2b2lkIEluc3BlY3RvclJlc291cmNlQWdlbnQ6Om1hcmtSZXNvdXJj
ZUFzQ2FjaGVkKHVuc2lnbmVkIGxvbmcgaWRlbnRpZmllcikKIHZvaWQgSW5zcGVjdG9yUmVzb3Vy
Y2VBZ2VudDo6ZGlkUmVjZWl2ZVJlc3BvbnNlKHVuc2lnbmVkIGxvbmcgaWRlbnRpZmllciwgRG9j
dW1lbnRMb2FkZXIqIGxvYWRlciwgY29uc3QgUmVzb3VyY2VSZXNwb25zZSYgcmVzcG9uc2UpCiB7
CiAgICAgUmVmUHRyPEluc3BlY3Rvck9iamVjdD4gcmVzb3VyY2VSZXNwb25zZSA9IGJ1aWxkT2Jq
ZWN0Rm9yUmVzb3VyY2VSZXNwb25zZShyZXNwb25zZSk7Ci0gICAgU3RyaW5nIHR5cGUgPSAiT3Ro
ZXIiOworICAgIEluc3BlY3RvclBhZ2VBZ2VudDo6UmVzb3VyY2VUeXBlIHR5cGUgPSBJbnNwZWN0
b3JQYWdlQWdlbnQ6Ok90aGVyUmVzb3VyY2U7CiAgICAgbG9uZyBjYWNoZWRSZXNvdXJjZVNpemUg
PSAwOwogCiAgICAgaWYgKGxvYWRlcikgewotICAgICAgICBDYWNoZWRSZXNvdXJjZSogY2FjaGVk
UmVzb3VyY2UgPSBJbnNwZWN0b3JSZXNvdXJjZUFnZW50OjpjYWNoZWRSZXNvdXJjZShsb2FkZXIt
PmZyYW1lKCksIHJlc3BvbnNlLnVybCgpKTsKKyAgICAgICAgQ2FjaGVkUmVzb3VyY2UqIGNhY2hl
ZFJlc291cmNlID0gSW5zcGVjdG9yUGFnZUFnZW50OjpjYWNoZWRSZXNvdXJjZShsb2FkZXItPmZy
YW1lKCksIHJlc3BvbnNlLnVybCgpKTsKICAgICAgICAgaWYgKGNhY2hlZFJlc291cmNlKSB7Ci0g
ICAgICAgICAgICB0eXBlID0gY2FjaGVkUmVzb3VyY2VUeXBlU3RyaW5nKCpjYWNoZWRSZXNvdXJj
ZSk7CisgICAgICAgICAgICB0eXBlID0gSW5zcGVjdG9yUGFnZUFnZW50OjpjYWNoZWRSZXNvdXJj
ZVR5cGUoKmNhY2hlZFJlc291cmNlKTsKICAgICAgICAgICAgIGNhY2hlZFJlc291cmNlU2l6ZSA9
IGNhY2hlZFJlc291cmNlLT5lbmNvZGVkU2l6ZSgpOwogICAgICAgICAgICAgLy8gVXNlIG1pbWUg
dHlwZSBmcm9tIGNhY2hlZCByZXNvdXJjZSBpbiBjYXNlIHRoZSBvbmUgaW4gcmVzcG9uc2UgaXMg
ZW1wdHkuCiAgICAgICAgICAgICBpZiAocmVzcG9uc2UubWltZVR5cGUoKS5pc0VtcHR5KCkpCiAg
ICAgICAgICAgICAgICAgcmVzb3VyY2VSZXNwb25zZS0+c2V0U3RyaW5nKCJtaW1lVHlwZSIsIGNh
Y2hlZFJlc291cmNlLT5yZXNwb25zZSgpLm1pbWVUeXBlKCkpOwogICAgICAgICB9CiAgICAgICAg
IGlmIChlcXVhbElnbm9yaW5nRnJhZ21lbnRJZGVudGlmaWVyKHJlc3BvbnNlLnVybCgpLCBsb2Fk
ZXItPmZyYW1lTG9hZGVyKCktPmljb25VUkwoKSkpCi0gICAgICAgICAgICB0eXBlID0gUmVzb3Vy
Y2VUeXBlOjppbWFnZTsKLSAgICAgICAgZWxzZSBpZiAoZXF1YWxJZ25vcmluZ0ZyYWdtZW50SWRl
bnRpZmllcihyZXNwb25zZS51cmwoKSwgbG9hZGVyLT51cmwoKSkgJiYgdHlwZSA9PSAiT3RoZXIi
KQotICAgICAgICAgICAgdHlwZSA9IFJlc291cmNlVHlwZTo6ZG9jdW1lbnQ7CisgICAgICAgICAg
ICB0eXBlID0gSW5zcGVjdG9yUGFnZUFnZW50OjpJbWFnZVJlc291cmNlOworICAgICAgICBlbHNl
IGlmIChlcXVhbElnbm9yaW5nRnJhZ21lbnRJZGVudGlmaWVyKHJlc3BvbnNlLnVybCgpLCBsb2Fk
ZXItPnVybCgpKSAmJiB0eXBlID09IEluc3BlY3RvclBhZ2VBZ2VudDo6T3RoZXJSZXNvdXJjZSkK
KyAgICAgICAgICAgIHR5cGUgPSBJbnNwZWN0b3JQYWdlQWdlbnQ6OkRvY3VtZW50UmVzb3VyY2U7
CiAgICAgfQotICAgIG1fZnJvbnRlbmQtPnJlc3BvbnNlUmVjZWl2ZWQoc3RhdGljX2Nhc3Q8aW50
PihpZGVudGlmaWVyKSwgY3VycmVudFRpbWUoKSwgdHlwZSwgcmVzb3VyY2VSZXNwb25zZSk7Cisg
ICAgbV9mcm9udGVuZC0+cmVzcG9uc2VSZWNlaXZlZChzdGF0aWNfY2FzdDxpbnQ+KGlkZW50aWZp
ZXIpLCBjdXJyZW50VGltZSgpLCBJbnNwZWN0b3JQYWdlQWdlbnQ6OnJlc291cmNlVHlwZVN0cmlu
Zyh0eXBlKSwgcmVzb3VyY2VSZXNwb25zZSk7CiAgICAgLy8gSWYgd2UgcmV2YWxpZGF0ZWQgdGhl
IHJlc291cmNlIGFuZCBnb3QgTm90IG1vZGlmaWVkLCBzZW5kIGNvbnRlbnQgbGVuZ3RoIGZvbGxv
d2luZyBkaWRSZWNlaXZlUmVzcG9uc2UKICAgICAvLyBhcyB0aGVyZSB3aWxsIGJlIG5vIGNhbGxz
IHRvIGRpZFJlY2VpdmVDb250ZW50TGVuZ3RoIGZyb20gdGhlIG5ldHdvcmsgc3RhY2suCiAgICAg
aWYgKGNhY2hlZFJlc291cmNlU2l6ZSAmJiByZXNwb25zZS5odHRwU3RhdHVzQ29kZSgpID09IDMw
NCkKQEAgLTM4NSw4MyArMjY2LDE3IEBAIHZvaWQgSW5zcGVjdG9yUmVzb3VyY2VBZ2VudDo6ZGlk
RmFpbExvYWRpbmcodW5zaWduZWQgbG9uZyBpZGVudGlmaWVyLCBjb25zdCBSZXNvCiAKIHZvaWQg
SW5zcGVjdG9yUmVzb3VyY2VBZ2VudDo6ZGlkTG9hZFJlc291cmNlRnJvbU1lbW9yeUNhY2hlKERv
Y3VtZW50TG9hZGVyKiBsb2FkZXIsIGNvbnN0IENhY2hlZFJlc291cmNlKiByZXNvdXJjZSkKIHsK
LSAgICBtX2Zyb250ZW5kLT5yZXNvdXJjZUxvYWRlZEZyb21NZW1vcnlDYWNoZShwb2ludGVyQXNJ
ZChsb2FkZXItPmZyYW1lKCkpLCBwb2ludGVyQXNJZChsb2FkZXIpLCBsb2FkZXItPnVybCgpLnN0
cmluZygpLCBjdXJyZW50VGltZSgpLCBidWlsZE9iamVjdEZvckNhY2hlZFJlc291cmNlKCpyZXNv
dXJjZSkpOworICAgIG1fZnJvbnRlbmQtPnJlc291cmNlTG9hZGVkRnJvbU1lbW9yeUNhY2hlKG1f
cGFnZUFnZW50LT5mcmFtZUlkKGxvYWRlci0+ZnJhbWUoKSksIG1fcGFnZUFnZW50LT5sb2FkZXJJ
ZChsb2FkZXIpLCBsb2FkZXItPnVybCgpLnN0cmluZygpLCBjdXJyZW50VGltZSgpLCBidWlsZE9i
amVjdEZvckNhY2hlZFJlc291cmNlKCpyZXNvdXJjZSkpOwogfQogCiB2b2lkIEluc3BlY3RvclJl
c291cmNlQWdlbnQ6OnNldEluaXRpYWxTY3JpcHRDb250ZW50KHVuc2lnbmVkIGxvbmcgaWRlbnRp
ZmllciwgY29uc3QgU3RyaW5nJiBzb3VyY2VTdHJpbmcpCiB7Ci0gICAgbV9mcm9udGVuZC0+aW5p
dGlhbENvbnRlbnRTZXQoc3RhdGljX2Nhc3Q8aW50PihpZGVudGlmaWVyKSwgc291cmNlU3RyaW5n
LCBSZXNvdXJjZVR5cGU6OnNjcmlwdCk7CisgICAgbV9mcm9udGVuZC0+aW5pdGlhbENvbnRlbnRT
ZXQoc3RhdGljX2Nhc3Q8aW50PihpZGVudGlmaWVyKSwgc291cmNlU3RyaW5nLCBJbnNwZWN0b3JQ
YWdlQWdlbnQ6OnJlc291cmNlVHlwZVN0cmluZyhJbnNwZWN0b3JQYWdlQWdlbnQ6OlNjcmlwdFJl
c291cmNlKSk7CiB9CiAKIHZvaWQgSW5zcGVjdG9yUmVzb3VyY2VBZ2VudDo6c2V0SW5pdGlhbFhI
UkNvbnRlbnQodW5zaWduZWQgbG9uZyBpZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIHNvdXJjZVN0
cmluZykKIHsKLSAgICBtX2Zyb250ZW5kLT5pbml0aWFsQ29udGVudFNldChzdGF0aWNfY2FzdDxp
bnQ+KGlkZW50aWZpZXIpLCBzb3VyY2VTdHJpbmcsIFJlc291cmNlVHlwZTo6eGhyKTsKLX0KLQot
dm9pZCBJbnNwZWN0b3JSZXNvdXJjZUFnZW50Ojpkb21Db250ZW50RXZlbnRGaXJlZCgpCi17Ci0g
ICAgbV9mcm9udGVuZC0+ZG9tQ29udGVudEV2ZW50RmlyZWQoY3VycmVudFRpbWUoKSk7Ci19Ci0K
LXZvaWQgSW5zcGVjdG9yUmVzb3VyY2VBZ2VudDo6bG9hZEV2ZW50RmlyZWQoKQotewotICAgIG1f
ZnJvbnRlbmQtPmxvYWRFdmVudEZpcmVkKGN1cnJlbnRUaW1lKCkpOwotfQotCi1zdGF0aWMgUGFz
c1JlZlB0cjxJbnNwZWN0b3JPYmplY3Q+IGJ1aWxkT2JqZWN0Rm9yRnJhbWUoRnJhbWUqIGZyYW1l
KQotewotICAgIFJlZlB0cjxJbnNwZWN0b3JPYmplY3Q+IGZyYW1lT2JqZWN0ID0gSW5zcGVjdG9y
T2JqZWN0OjpjcmVhdGUoKTsKLSAgICBmcmFtZU9iamVjdC0+c2V0U3RyaW5nKCJpZCIsIHBvaW50
ZXJBc0lkKGZyYW1lKSk7Ci0gICAgZnJhbWVPYmplY3QtPnNldFN0cmluZygicGFyZW50SWQiLCBw
b2ludGVyQXNJZChmcmFtZS0+dHJlZSgpLT5wYXJlbnQoKSkpOwotICAgIGlmIChmcmFtZS0+b3du
ZXJFbGVtZW50KCkpIHsKLSAgICAgICAgU3RyaW5nIG5hbWUgPSBmcmFtZS0+b3duZXJFbGVtZW50
KCktPmdldEF0dHJpYnV0ZShIVE1MTmFtZXM6Om5hbWVBdHRyKTsKLSAgICAgICAgaWYgKG5hbWUu
aXNFbXB0eSgpKQotICAgICAgICAgICAgbmFtZSA9IGZyYW1lLT5vd25lckVsZW1lbnQoKS0+Z2V0
QXR0cmlidXRlKEhUTUxOYW1lczo6aWRBdHRyKTsKLSAgICAgICAgZnJhbWVPYmplY3QtPnNldFN0
cmluZygibmFtZSIsIG5hbWUpOwotICAgIH0KLSAgICBmcmFtZU9iamVjdC0+c2V0U3RyaW5nKCJ1
cmwiLCBmcmFtZS0+ZG9jdW1lbnQoKS0+dXJsKCkuc3RyaW5nKCkpOwotICAgIGZyYW1lT2JqZWN0
LT5zZXRTdHJpbmcoImxvYWRlcklkIiwgcG9pbnRlckFzSWQoZnJhbWUtPmxvYWRlcigpLT5kb2N1
bWVudExvYWRlcigpKSk7Ci0KLSAgICByZXR1cm4gZnJhbWVPYmplY3Q7Ci19Ci0KLXN0YXRpYyBQ
YXNzUmVmUHRyPEluc3BlY3Rvck9iamVjdD4gYnVpbGRPYmplY3RGb3JGcmFtZVRyZWUoRnJhbWUq
IGZyYW1lKQotewotICAgIFJlZlB0cjxJbnNwZWN0b3JPYmplY3Q+IHJlc3VsdCA9IEluc3BlY3Rv
ck9iamVjdDo6Y3JlYXRlKCk7Ci0gICAgUmVmUHRyPEluc3BlY3Rvck9iamVjdD4gZnJhbWVPYmpl
Y3QgPSBidWlsZE9iamVjdEZvckZyYW1lKGZyYW1lKTsKLSAgICByZXN1bHQtPnNldE9iamVjdCgi
ZnJhbWUiLCBmcmFtZU9iamVjdCk7Ci0KLSAgICBSZWZQdHI8SW5zcGVjdG9yQXJyYXk+IHN1YnJl
c291cmNlcyA9IEluc3BlY3RvckFycmF5OjpjcmVhdGUoKTsKLSAgICByZXN1bHQtPnNldEFycmF5
KCJyZXNvdXJjZXMiLCBzdWJyZXNvdXJjZXMpOwotICAgIGNvbnN0IENhY2hlZFJlc291cmNlTG9h
ZGVyOjpEb2N1bWVudFJlc291cmNlTWFwJiBhbGxSZXNvdXJjZXMgPSBmcmFtZS0+ZG9jdW1lbnQo
KS0+Y2FjaGVkUmVzb3VyY2VMb2FkZXIoKS0+YWxsQ2FjaGVkUmVzb3VyY2VzKCk7Ci0gICAgQ2Fj
aGVkUmVzb3VyY2VMb2FkZXI6OkRvY3VtZW50UmVzb3VyY2VNYXA6OmNvbnN0X2l0ZXJhdG9yIGVu
ZCA9IGFsbFJlc291cmNlcy5lbmQoKTsKLSAgICBmb3IgKENhY2hlZFJlc291cmNlTG9hZGVyOjpE
b2N1bWVudFJlc291cmNlTWFwOjpjb25zdF9pdGVyYXRvciBpdCA9IGFsbFJlc291cmNlcy5iZWdp
bigpOyBpdCAhPSBlbmQ7ICsraXQpIHsKLSAgICAgICAgQ2FjaGVkUmVzb3VyY2UqIGNhY2hlZFJl
c291cmNlID0gaXQtPnNlY29uZC5nZXQoKTsKLSAgICAgICAgUmVmUHRyPEluc3BlY3Rvck9iamVj
dD4gcmVzb3VyY2VPYmplY3QgPSBJbnNwZWN0b3JPYmplY3Q6OmNyZWF0ZSgpOwotICAgICAgICBy
ZXNvdXJjZU9iamVjdC0+c2V0U3RyaW5nKCJ1cmwiLCBjYWNoZWRSZXNvdXJjZS0+dXJsKCkpOwot
ICAgICAgICByZXNvdXJjZU9iamVjdC0+c2V0U3RyaW5nKCJ0eXBlIiwgY2FjaGVkUmVzb3VyY2VU
eXBlU3RyaW5nKCpjYWNoZWRSZXNvdXJjZSkpOwotICAgICAgICBzdWJyZXNvdXJjZXMtPnB1c2hW
YWx1ZShyZXNvdXJjZU9iamVjdCk7Ci0gICAgfQotCi0gICAgUmVmUHRyPEluc3BlY3RvckFycmF5
PiBjaGlsZHJlbkFycmF5OwotICAgIGZvciAoRnJhbWUqIGNoaWxkID0gZnJhbWUtPnRyZWUoKS0+
Zmlyc3RDaGlsZCgpOyBjaGlsZDsgY2hpbGQgPSBjaGlsZC0+dHJlZSgpLT5uZXh0U2libGluZygp
KSB7Ci0gICAgICAgIGlmICghY2hpbGRyZW5BcnJheSkgewotICAgICAgICAgICAgY2hpbGRyZW5B
cnJheSA9IEluc3BlY3RvckFycmF5OjpjcmVhdGUoKTsKLSAgICAgICAgICAgIHJlc3VsdC0+c2V0
QXJyYXkoImNoaWxkRnJhbWVzIiwgY2hpbGRyZW5BcnJheSk7Ci0gICAgICAgIH0KLSAgICAgICAg
Y2hpbGRyZW5BcnJheS0+cHVzaE9iamVjdChidWlsZE9iamVjdEZvckZyYW1lVHJlZShjaGlsZCkp
OwotICAgIH0KLSAgICByZXR1cm4gcmVzdWx0OwotfQotCi12b2lkIEluc3BlY3RvclJlc291cmNl
QWdlbnQ6OmRpZENvbW1pdExvYWQoRG9jdW1lbnRMb2FkZXIqIGxvYWRlcikKLXsKLSAgICBtX2Zy
b250ZW5kLT5mcmFtZU5hdmlnYXRlZChidWlsZE9iamVjdEZvckZyYW1lKGxvYWRlci0+ZnJhbWUo
KSksIHBvaW50ZXJBc0lkKGxvYWRlcikpOwotfQotCi12b2lkIEluc3BlY3RvclJlc291cmNlQWdl
bnQ6OmZyYW1lRGV0YWNoZWRGcm9tUGFyZW50KEZyYW1lKiBmcmFtZSkKLXsKLSAgICBtX2Zyb250
ZW5kLT5mcmFtZURldGFjaGVkKHBvaW50ZXJBc0lkKGZyYW1lKSk7CisgICAgbV9mcm9udGVuZC0+
aW5pdGlhbENvbnRlbnRTZXQoc3RhdGljX2Nhc3Q8aW50PihpZGVudGlmaWVyKSwgc291cmNlU3Ry
aW5nLCBJbnNwZWN0b3JQYWdlQWdlbnQ6OnJlc291cmNlVHlwZVN0cmluZyhJbnNwZWN0b3JQYWdl
QWdlbnQ6OlhIUlJlc291cmNlKSk7CiB9CiAKIHZvaWQgSW5zcGVjdG9yUmVzb3VyY2VBZ2VudDo6
YXBwbHlVc2VyQWdlbnRPdmVycmlkZShTdHJpbmcqIHVzZXJBZ2VudCkKQEAgLTUxNiwxNiArMzMx
LDYgQEAgdm9pZCBJbnNwZWN0b3JSZXNvdXJjZUFnZW50OjpkaWRDbG9zZVdlYlNvY2tldCh1bnNp
Z25lZCBsb25nIGlkZW50aWZpZXIpCiB9CiAjZW5kaWYgLy8gRU5BQkxFKFdFQl9TT0NLRVRTKQog
Ci1GcmFtZSogSW5zcGVjdG9yUmVzb3VyY2VBZ2VudDo6ZnJhbWVGb3JJZChjb25zdCBTdHJpbmcm
IGZyYW1lSWQpCi17Ci0gICAgRnJhbWUqIG1haW5GcmFtZSA9IG1fcGFnZS0+bWFpbkZyYW1lKCk7
Ci0gICAgZm9yIChGcmFtZSogZnJhbWUgPSBtYWluRnJhbWU7IGZyYW1lOyBmcmFtZSA9IGZyYW1l
LT50cmVlKCktPnRyYXZlcnNlTmV4dChtYWluRnJhbWUpKSB7Ci0gICAgICAgIGlmIChwb2ludGVy
QXNJZChmcmFtZSkgPT0gZnJhbWVJZCkKLSAgICAgICAgICAgIHJldHVybiBmcmFtZTsKLSAgICB9
Ci0gICAgcmV0dXJuIDA7Ci19Ci0KIGJvb2wgSW5zcGVjdG9yUmVzb3VyY2VBZ2VudDo6YmFja2dy
b3VuZEV2ZW50c0NvbGxlY3Rpb25FbmFibGVkKCkKIHsKICAgICAvLyBGSVhNRSAoaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTU4NjUyKQpAQCAtNTUzLDI0ICszNTgsNiBA
QCB2b2lkIEluc3BlY3RvclJlc291cmNlQWdlbnQ6OmRpc2FibGUoRXJyb3JTdHJpbmcqKQogICAg
IG1faW5zdHJ1bWVudGluZ0FnZW50cy0+c2V0SW5zcGVjdG9yUmVzb3VyY2VBZ2VudCgwKTsKIH0K
IAotdm9pZCBJbnNwZWN0b3JSZXNvdXJjZUFnZW50OjpnZXRDYWNoZWRSZXNvdXJjZXMoRXJyb3JT
dHJpbmcqLCBSZWZQdHI8SW5zcGVjdG9yT2JqZWN0Piogb2JqZWN0KQotewotICAgICpvYmplY3Qg
PSBidWlsZE9iamVjdEZvckZyYW1lVHJlZShtX3BhZ2UtPm1haW5GcmFtZSgpKTsKLX0KLQotdm9p
ZCBJbnNwZWN0b3JSZXNvdXJjZUFnZW50OjpnZXRSZXNvdXJjZUNvbnRlbnQoRXJyb3JTdHJpbmcq
IGVycm9yU3RyaW5nLCBjb25zdCBTdHJpbmcmIGZyYW1lSWQsIGNvbnN0IFN0cmluZyYgdXJsLCBj
b25zdCBib29sKiBjb25zdCBvcHRpb25hbEJhc2U2NEVuY29kZSwgU3RyaW5nKiBjb250ZW50KQot
ewotICAgIEZyYW1lKiBmcmFtZSA9IGZyYW1lRm9ySWQoZnJhbWVJZCk7Ci0gICAgaWYgKCFmcmFt
ZSkgewotICAgICAgICAqZXJyb3JTdHJpbmcgPSAiTm8gZnJhbWUgZm9yIGdpdmVuIGlkIGZvdW5k
IjsKLSAgICAgICAgcmV0dXJuOwotICAgIH0KLSAgICBpZiAob3B0aW9uYWxCYXNlNjRFbmNvZGUg
PyAqb3B0aW9uYWxCYXNlNjRFbmNvZGUgOiBmYWxzZSkKLSAgICAgICAgSW5zcGVjdG9yUmVzb3Vy
Y2VBZ2VudDo6cmVzb3VyY2VDb250ZW50QmFzZTY0KGVycm9yU3RyaW5nLCBmcmFtZSwgS1VSTChQ
YXJzZWRVUkxTdHJpbmcsIHVybCksIGNvbnRlbnQpOwotICAgIGVsc2UKLSAgICAgICAgSW5zcGVj
dG9yUmVzb3VyY2VBZ2VudDo6cmVzb3VyY2VDb250ZW50KGVycm9yU3RyaW5nLCBmcmFtZSwgS1VS
TChQYXJzZWRVUkxTdHJpbmcsIHVybCksIGNvbnRlbnQpOwotfQotCiB2b2lkIEluc3BlY3RvclJl
c291cmNlQWdlbnQ6OnNldFVzZXJBZ2VudE92ZXJyaWRlKEVycm9yU3RyaW5nKiwgY29uc3QgU3Ry
aW5nJiB1c2VyQWdlbnQpCiB7CiAgICAgbV91c2VyQWdlbnRPdmVycmlkZSA9IHVzZXJBZ2VudDsK
QEAgLTU4MSw5ICszNjgsOSBAQCB2b2lkIEluc3BlY3RvclJlc291cmNlQWdlbnQ6OnNldEV4dHJh
SGVhZGVycyhFcnJvclN0cmluZyosIFBhc3NSZWZQdHI8SW5zcGVjdG9yTwogICAgIG1fc3RhdGUt
PnNldE9iamVjdChSZXNvdXJjZUFnZW50U3RhdGU6OmV4dHJhUmVxdWVzdEhlYWRlcnMsIGhlYWRl
cnMpOwogfQogCi1JbnNwZWN0b3JSZXNvdXJjZUFnZW50OjpJbnNwZWN0b3JSZXNvdXJjZUFnZW50
KEluc3RydW1lbnRpbmdBZ2VudHMqIGluc3RydW1lbnRpbmdBZ2VudHMsIFBhZ2UqIHBhZ2UsIElu
c3BlY3RvclN0YXRlKiBzdGF0ZSkKK0luc3BlY3RvclJlc291cmNlQWdlbnQ6Okluc3BlY3RvclJl
c291cmNlQWdlbnQoSW5zdHJ1bWVudGluZ0FnZW50cyogaW5zdHJ1bWVudGluZ0FnZW50cywgSW5z
cGVjdG9yUGFnZUFnZW50KiBwYWdlQWdlbnQsIEluc3BlY3RvclN0YXRlKiBzdGF0ZSkKICAgICA6
IG1faW5zdHJ1bWVudGluZ0FnZW50cyhpbnN0cnVtZW50aW5nQWdlbnRzKQotICAgICwgbV9wYWdl
KHBhZ2UpCisgICAgLCBtX3BhZ2VBZ2VudChwYWdlQWdlbnQpCiAgICAgLCBtX3N0YXRlKHN0YXRl
KQogewogICAgIGlmIChiYWNrZ3JvdW5kRXZlbnRzQ29sbGVjdGlvbkVuYWJsZWQoKSkgewpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclJlc291cmNlQWdlbnQu
aCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JSZXNvdXJjZUFnZW50LmgKaW5k
ZXggN2UyZjA3YzY2YzFkMzI1Y2FkNDE0MWI5NzlmOWE5NDI4YmUyMjg1YS4uZDYwZDIxZjQzYTRj
OTk1NjEwNmY3Zjg2NjU0MjU0ZDNmZmFhMzQwMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
aW5zcGVjdG9yL0luc3BlY3RvclJlc291cmNlQWdlbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9p
bnNwZWN0b3IvSW5zcGVjdG9yUmVzb3VyY2VBZ2VudC5oCkBAIC01NCw2ICs1NCw3IEBAIGNsYXNz
IEluc3BlY3RvckFycmF5OwogY2xhc3MgSW5zcGVjdG9yRnJvbnRlbmQ7CiBjbGFzcyBJbnNwZWN0
b3JGcm9udGVuZFByb3h5OwogY2xhc3MgSW5zcGVjdG9yT2JqZWN0OworY2xhc3MgSW5zcGVjdG9y
UGFnZUFnZW50OwogY2xhc3MgSW5zcGVjdG9yU3RhdGU7CiBjbGFzcyBJbnN0cnVtZW50aW5nQWdl
bnRzOwogY2xhc3MgS1VSTDsKQEAgLTczLDkgKzc0LDkgQEAgdHlwZWRlZiBTdHJpbmcgRXJyb3JT
dHJpbmc7CiAKIGNsYXNzIEluc3BlY3RvclJlc291cmNlQWdlbnQgOiBwdWJsaWMgUmVmQ291bnRl
ZDxJbnNwZWN0b3JSZXNvdXJjZUFnZW50PiB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFBhc3NSZWZQ
dHI8SW5zcGVjdG9yUmVzb3VyY2VBZ2VudD4gY3JlYXRlKEluc3RydW1lbnRpbmdBZ2VudHMqIGlu
c3RydW1lbnRpbmdBZ2VudHMsIFBhZ2UqIHBhZ2UsIEluc3BlY3RvclN0YXRlKiBzdGF0ZSkKKyAg
ICBzdGF0aWMgUGFzc1JlZlB0cjxJbnNwZWN0b3JSZXNvdXJjZUFnZW50PiBjcmVhdGUoSW5zdHJ1
bWVudGluZ0FnZW50cyogaW5zdHJ1bWVudGluZ0FnZW50cywgSW5zcGVjdG9yUGFnZUFnZW50KiBw
YWdlQWdlbnQsIEluc3BlY3RvclN0YXRlKiBzdGF0ZSkKICAgICB7Ci0gICAgICAgIHJldHVybiBh
ZG9wdFJlZihuZXcgSW5zcGVjdG9yUmVzb3VyY2VBZ2VudChpbnN0cnVtZW50aW5nQWdlbnRzLCBw
YWdlLCBzdGF0ZSkpOworICAgICAgICByZXR1cm4gYWRvcHRSZWYobmV3IEluc3BlY3RvclJlc291
cmNlQWdlbnQoaW5zdHJ1bWVudGluZ0FnZW50cywgcGFnZUFnZW50LCBzdGF0ZSkpOwogICAgIH0K
IAogICAgIHZvaWQgc2V0RnJvbnRlbmQoSW5zcGVjdG9yRnJvbnRlbmQqKTsKQEAgLTg0LDEyICs4
NSw2IEBAIHB1YmxpYzoKIAogICAgIHN0YXRpYyBQYXNzUmVmUHRyPEluc3BlY3RvclJlc291cmNl
QWdlbnQ+IHJlc3RvcmUoUGFnZSosIEluc3BlY3RvclN0YXRlKiwgSW5zcGVjdG9yRnJvbnRlbmQq
KTsKIAotICAgIHN0YXRpYyB2b2lkIHJlc291cmNlQ29udGVudChFcnJvclN0cmluZyosIEZyYW1l
KiwgY29uc3QgS1VSTCYsIFN0cmluZyogcmVzdWx0KTsKLSAgICBzdGF0aWMgdm9pZCByZXNvdXJj
ZUNvbnRlbnRCYXNlNjQoRXJyb3JTdHJpbmcqLCBGcmFtZSosIGNvbnN0IEtVUkwmLCBTdHJpbmcq
IHJlc3VsdCk7Ci0KLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxTaGFyZWRCdWZmZXI+IHJlc291cmNl
RGF0YShGcmFtZSosIGNvbnN0IEtVUkwmLCBTdHJpbmcqIHRleHRFbmNvZGluZ05hbWUpOwotICAg
IHN0YXRpYyBDYWNoZWRSZXNvdXJjZSogY2FjaGVkUmVzb3VyY2UoRnJhbWUqLCBjb25zdCBLVVJM
Jik7Ci0KICAgICB+SW5zcGVjdG9yUmVzb3VyY2VBZ2VudCgpOwogCiAgICAgdm9pZCB3aWxsU2Vu
ZFJlcXVlc3QodW5zaWduZWQgbG9uZyBpZGVudGlmaWVyLCBEb2N1bWVudExvYWRlciosIFJlc291
cmNlUmVxdWVzdCYsIGNvbnN0IFJlc291cmNlUmVzcG9uc2UmIHJlZGlyZWN0UmVzcG9uc2UpOwpA
QCAtMTAxLDEwICs5Niw2IEBAIHB1YmxpYzoKICAgICB2b2lkIGRpZExvYWRSZXNvdXJjZUZyb21N
ZW1vcnlDYWNoZShEb2N1bWVudExvYWRlciosIGNvbnN0IENhY2hlZFJlc291cmNlKik7CiAgICAg
dm9pZCBzZXRJbml0aWFsU2NyaXB0Q29udGVudCh1bnNpZ25lZCBsb25nIGlkZW50aWZpZXIsIGNv
bnN0IFN0cmluZyYgc291cmNlU3RyaW5nKTsKICAgICB2b2lkIHNldEluaXRpYWxYSFJDb250ZW50
KHVuc2lnbmVkIGxvbmcgaWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiBzb3VyY2VTdHJpbmcpOwot
ICAgIHZvaWQgZG9tQ29udGVudEV2ZW50RmlyZWQoKTsKLSAgICB2b2lkIGxvYWRFdmVudEZpcmVk
KCk7Ci0gICAgdm9pZCBkaWRDb21taXRMb2FkKERvY3VtZW50TG9hZGVyKik7Ci0gICAgdm9pZCBm
cmFtZURldGFjaGVkRnJvbVBhcmVudChGcmFtZSopOwogICAgIHZvaWQgYXBwbHlVc2VyQWdlbnRP
dmVycmlkZShTdHJpbmcqIHVzZXJBZ2VudCk7CiAKICNpZiBFTkFCTEUoV0VCX1NPQ0tFVFMpCkBA
IC0xMTQsMjUgKzEwNSwyMiBAQCBwdWJsaWM6CiAgICAgdm9pZCBkaWRDbG9zZVdlYlNvY2tldCh1
bnNpZ25lZCBsb25nIGlkZW50aWZpZXIpOwogI2VuZGlmCiAKLSAgICBGcmFtZSogZnJhbWVGb3JJ
ZChjb25zdCBTdHJpbmcmIGZyYW1lSWQpOwogICAgIGJvb2wgYmFja2dyb3VuZEV2ZW50c0NvbGxl
Y3Rpb25FbmFibGVkKCk7CiAKICAgICAvLyBDYWxsZWQgZnJvbSBmcm9udGVuZCAKICAgICB2b2lk
IGVuYWJsZShFcnJvclN0cmluZyopOwogICAgIHZvaWQgZGlzYWJsZShFcnJvclN0cmluZyopOwot
ICAgIHZvaWQgZ2V0Q2FjaGVkUmVzb3VyY2VzKEVycm9yU3RyaW5nKiwgUmVmUHRyPEluc3BlY3Rv
ck9iamVjdD4qKTsKLSAgICB2b2lkIGdldFJlc291cmNlQ29udGVudChFcnJvclN0cmluZyosIGNv
bnN0IFN0cmluZyYgZnJhbWVJZCwgY29uc3QgU3RyaW5nJiB1cmwsIGNvbnN0IGJvb2wqIGNvbnN0
IGJhc2U2NEVuY29kZSwgU3RyaW5nKiBjb250ZW50KTsKICAgICB2b2lkIHNldFVzZXJBZ2VudE92
ZXJyaWRlKEVycm9yU3RyaW5nKiwgY29uc3QgU3RyaW5nJiB1c2VyQWdlbnQpOwogICAgIHZvaWQg
c2V0RXh0cmFIZWFkZXJzKEVycm9yU3RyaW5nKiwgUGFzc1JlZlB0cjxJbnNwZWN0b3JPYmplY3Q+
KTsKIAogCiBwcml2YXRlOgotICAgIEluc3BlY3RvclJlc291cmNlQWdlbnQoSW5zdHJ1bWVudGlu
Z0FnZW50cyosIFBhZ2UqLCBJbnNwZWN0b3JTdGF0ZSopOworICAgIEluc3BlY3RvclJlc291cmNl
QWdlbnQoSW5zdHJ1bWVudGluZ0FnZW50cyosIEluc3BlY3RvclBhZ2VBZ2VudCosIEluc3BlY3Rv
clN0YXRlKik7CiAKICAgICB2b2lkIGVuYWJsZSgpOwogCiAgICAgSW5zdHJ1bWVudGluZ0FnZW50
cyogbV9pbnN0cnVtZW50aW5nQWdlbnRzOwotICAgIFBhZ2UqIG1fcGFnZTsKKyAgICBJbnNwZWN0
b3JQYWdlQWdlbnQqIG1fcGFnZUFnZW50OwogICAgIEluc3BlY3RvclN0YXRlKiBtX3N0YXRlOwog
ICAgIE93blB0cjxFdmVudHNDb2xsZWN0b3I+IG1fZXZlbnRzQ29sbGVjdG9yOwogICAgIEluc3Bl
Y3RvckZyb250ZW5kOjpOZXR3b3JrKiBtX2Zyb250ZW5kOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclN0eWxlU2hlZXQuY3BwIGIvU291cmNlL1dlYkNvcmUv
aW5zcGVjdG9yL0luc3BlY3RvclN0eWxlU2hlZXQuY3BwCmluZGV4IDJlZGI4YTE0MjIxYWUzYWI2
N2ZiMTZlYWZjODc3ZGIwYjI1NTdkODIuLjdjNDNlMWZlNjg0NjRkMWRhMTJjMzhhMDllMWMwNjEy
YjFiZDZiOGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JT
dHlsZVNoZWV0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yU3R5
bGVTaGVldC5jcHAKQEAgLTQxLDcgKzQxLDcgQEAKICNpbmNsdWRlICJIVE1MSGVhZEVsZW1lbnQu
aCIKICNpbmNsdWRlICJIVE1MUGFyc2VySWRpb21zLmgiCiAjaW5jbHVkZSAiSW5zcGVjdG9yQ1NT
QWdlbnQuaCIKLSNpbmNsdWRlICJJbnNwZWN0b3JSZXNvdXJjZUFnZW50LmgiCisjaW5jbHVkZSAi
SW5zcGVjdG9yUGFnZUFnZW50LmgiCiAjaW5jbHVkZSAiSW5zcGVjdG9yVmFsdWVzLmgiCiAjaW5j
bHVkZSAiTm9kZS5oIgogI2luY2x1ZGUgIlN0eWxlU2hlZXRMaXN0LmgiCkBAIC0xMDcyLDcgKzEw
NzIsNyBAQCBib29sIEluc3BlY3RvclN0eWxlU2hlZXQ6OnJlc291cmNlU3R5bGVTaGVldFRleHQo
U3RyaW5nKiByZXN1bHQpIGNvbnN0CiAgICAgICAgIHJldHVybiBmYWxzZTsKIAogICAgIFN0cmlu
ZyBlcnJvcjsKLSAgICBJbnNwZWN0b3JSZXNvdXJjZUFnZW50OjpyZXNvdXJjZUNvbnRlbnQoJmVy
cm9yLCBvd25lckRvY3VtZW50KCktPmZyYW1lKCksIG1fcGFnZVN0eWxlU2hlZXQtPmZpbmFsVVJM
KCksIHJlc3VsdCk7CisgICAgSW5zcGVjdG9yUGFnZUFnZW50OjpyZXNvdXJjZUNvbnRlbnQoJmVy
cm9yLCBvd25lckRvY3VtZW50KCktPmZyYW1lKCksIG1fcGFnZVN0eWxlU2hlZXQtPmZpbmFsVVJM
KCksIHJlc3VsdCk7CiAgICAgcmV0dXJuIGVycm9yLmlzRW1wdHkoKTsKIH0KIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9OZXR3b3JrTWFuYWdlci5qcyBi
L1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvTmV0d29ya01hbmFnZXIuanMKaW5k
ZXggMzk5ZjExMDQwNmFkZjg4NGZhMWYyN2Y1MGQ1MWM2MmQ4MzQ2ODk4Zi4uZTY1NzEzNDYxMzlk
MWQ1NjAyYWUyMTFiNmRhZTVmNTkyMWFhNTllMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
aW5zcGVjdG9yL2Zyb250LWVuZC9OZXR3b3JrTWFuYWdlci5qcworKysgYi9Tb3VyY2UvV2ViQ29y
ZS9pbnNwZWN0b3IvZnJvbnQtZW5kL05ldHdvcmtNYW5hZ2VyLmpzCkBAIC0zOCw5ICszOCw3IEBA
IFdlYkluc3BlY3Rvci5OZXR3b3JrTWFuYWdlciA9IGZ1bmN0aW9uKCkKIFdlYkluc3BlY3Rvci5O
ZXR3b3JrTWFuYWdlci5FdmVudFR5cGVzID0gewogICAgIFJlc291cmNlU3RhcnRlZDogIlJlc291
cmNlU3RhcnRlZCIsCiAgICAgUmVzb3VyY2VVcGRhdGVkOiAiUmVzb3VyY2VVcGRhdGVkIiwKLSAg
ICBSZXNvdXJjZUZpbmlzaGVkOiAiUmVzb3VyY2VGaW5pc2hlZCIsCi0gICAgRnJhbWVDb21taXR0
ZWRMb2FkOiAiRnJhbWVDb21taXR0ZWRMb2FkIiwKLSAgICBGcmFtZURldGFjaGVkOiAiRnJhbWVE
ZXRhY2hlZCIKKyAgICBSZXNvdXJjZUZpbmlzaGVkOiAiUmVzb3VyY2VGaW5pc2hlZCIKIH0KIAog
V2ViSW5zcGVjdG9yLk5ldHdvcmtNYW5hZ2VyLnByb3RvdHlwZSA9IHsKQEAgLTU1LDcgKzUzLDcg
QEAgV2ViSW5zcGVjdG9yLk5ldHdvcmtNYW5hZ2VyLnByb3RvdHlwZSA9IHsKICAgICAgICAgewog
ICAgICAgICAgICAgY2FsbGJhY2soIWVycm9yID8gY29udGVudCA6IG51bGwpOwogICAgICAgICB9
Ci0gICAgICAgIE5ldHdvcmtBZ2VudC5nZXRSZXNvdXJjZUNvbnRlbnQocmVzb3VyY2UuZnJhbWVJ
ZCwgcmVzb3VyY2UudXJsLCBiYXNlNjRFbmNvZGUsIGNhbGxiYWNrV3JhcHBlcik7CisgICAgICAg
IFBhZ2VBZ2VudC5nZXRSZXNvdXJjZUNvbnRlbnQocmVzb3VyY2UuZnJhbWVJZCwgcmVzb3VyY2Uu
dXJsLCBiYXNlNjRFbmNvZGUsIGNhbGxiYWNrV3JhcHBlcik7CiAgICAgfSwKIAogICAgIGluZmxp
Z2h0UmVzb3VyY2VGb3JVUkw6IGZ1bmN0aW9uKHVybCkKQEAgLTE1MywxOCArMTUxLDYgQEAgV2Vi
SW5zcGVjdG9yLk5ldHdvcmtEaXNwYXRjaGVyLnByb3RvdHlwZSA9IHsKICAgICAgICAgdGhpcy5f
dXBkYXRlUmVzb3VyY2UocmVzb3VyY2UpOwogICAgIH0sCiAKLSAgICBkb21Db250ZW50RXZlbnRG
aXJlZDogZnVuY3Rpb24odGltZSkKLSAgICB7Ci0gICAgICAgIGlmIChXZWJJbnNwZWN0b3IucGFu
ZWxzLm5ldHdvcmspCi0gICAgICAgICAgICBXZWJJbnNwZWN0b3IucGFuZWxzLm5ldHdvcmsubWFp
blJlc291cmNlRE9NQ29udGVudFRpbWUgPSB0aW1lOwotICAgIH0sCi0KLSAgICBsb2FkRXZlbnRG
aXJlZDogZnVuY3Rpb24odGltZSkKLSAgICB7Ci0gICAgICAgIGlmIChXZWJJbnNwZWN0b3IucGFu
ZWxzLm5ldHdvcmspCi0gICAgICAgICAgICBXZWJJbnNwZWN0b3IucGFuZWxzLm5ldHdvcmsubWFp
blJlc291cmNlTG9hZFRpbWUgPSB0aW1lOwotICAgIH0sCi0KICAgICBkYXRhUmVjZWl2ZWQ6IGZ1
bmN0aW9uKGlkZW50aWZpZXIsIHRpbWUsIGRhdGFMZW5ndGgsIGVuY29kZWREYXRhTGVuZ3RoKQog
ICAgIHsKICAgICAgICAgdmFyIHJlc291cmNlID0gdGhpcy5faW5mbGlnaHRSZXNvdXJjZXNCeUlk
W2lkZW50aWZpZXJdOwpAQCAtMjExLDExICsxOTcsNiBAQCBXZWJJbnNwZWN0b3IuTmV0d29ya0Rp
c3BhdGNoZXIucHJvdG90eXBlID0gewogICAgICAgICB0aGlzLl9maW5pc2hSZXNvdXJjZShyZXNv
dXJjZSwgdGltZSk7CiAgICAgfSwKIAotICAgIGZyYW1lRGV0YWNoZWQ6IGZ1bmN0aW9uKGZyYW1l
SWQpCi0gICAgewotICAgICAgICB0aGlzLl9kaXNwYXRjaEV2ZW50VG9MaXN0ZW5lcnMoV2ViSW5z
cGVjdG9yLk5ldHdvcmtNYW5hZ2VyLkV2ZW50VHlwZXMuRnJhbWVEZXRhY2hlZCwgZnJhbWVJZCk7
Ci0gICAgfSwKLQogICAgIGluaXRpYWxDb250ZW50U2V0OiBmdW5jdGlvbihpZGVudGlmaWVyLCBz
b3VyY2VTdHJpbmcsIHR5cGUpCiAgICAgewogICAgICAgICB2YXIgcmVzb3VyY2UgPSBXZWJJbnNw
ZWN0b3IubmV0d29ya1Jlc291cmNlQnlJZChpZGVudGlmaWVyKTsKQEAgLTIyNywxMSArMjA4LDYg
QEAgV2ViSW5zcGVjdG9yLk5ldHdvcmtEaXNwYXRjaGVyLnByb3RvdHlwZSA9IHsKICAgICAgICAg
dGhpcy5fdXBkYXRlUmVzb3VyY2UocmVzb3VyY2UpOwogICAgIH0sCiAKLSAgICBmcmFtZU5hdmln
YXRlZDogZnVuY3Rpb24oZnJhbWUsIGxvYWRlcklkKQotICAgIHsKLSAgICAgICAgdGhpcy5fZGlz
cGF0Y2hFdmVudFRvTGlzdGVuZXJzKFdlYkluc3BlY3Rvci5OZXR3b3JrTWFuYWdlci5FdmVudFR5
cGVzLkZyYW1lQ29tbWl0dGVkTG9hZCwgeyBmcmFtZTogZnJhbWUsIGxvYWRlcklkOiBsb2FkZXJJ
ZCB9KTsKLSAgICB9LAotCiAgICAgd2ViU29ja2V0Q3JlYXRlZDogZnVuY3Rpb24oaWRlbnRpZmll
ciwgcmVxdWVzdFVSTCkKICAgICB7CiAgICAgICAgIHZhciByZXNvdXJjZSA9IHRoaXMuX2NyZWF0
ZVJlc291cmNlKGlkZW50aWZpZXIsIG51bGwsIG51bGwsIHJlcXVlc3RVUkwpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9OZXR3b3JrUGFuZWwuanMgYi9T
b3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL05ldHdvcmtQYW5lbC5qcwppbmRleCAy
ODQwNzIxYWExMWIyZWRmYjc1NzY1MGU5MTczNjJjMjJmM2I0NTUzLi4wZDhiODgxYmQ2NDNiYjY3
YTEzYzQ2NzA5MGVkMDFjMmM1NjJiNmJkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvZnJvbnQtZW5kL05ldHdvcmtQYW5lbC5qcworKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvZnJvbnQtZW5kL05ldHdvcmtQYW5lbC5qcwpAQCAtODMsNyArODMsNiBAQCBXZWJJbnNw
ZWN0b3IuTmV0d29ya1BhbmVsID0gZnVuY3Rpb24oKQogICAgIFdlYkluc3BlY3Rvci5uZXR3b3Jr
TWFuYWdlci5hZGRFdmVudExpc3RlbmVyKFdlYkluc3BlY3Rvci5OZXR3b3JrTWFuYWdlci5FdmVu
dFR5cGVzLlJlc291cmNlU3RhcnRlZCwgdGhpcy5fb25SZXNvdXJjZVN0YXJ0ZWQsIHRoaXMpOwog
ICAgIFdlYkluc3BlY3Rvci5uZXR3b3JrTWFuYWdlci5hZGRFdmVudExpc3RlbmVyKFdlYkluc3Bl
Y3Rvci5OZXR3b3JrTWFuYWdlci5FdmVudFR5cGVzLlJlc291cmNlVXBkYXRlZCwgdGhpcy5fb25S
ZXNvdXJjZVVwZGF0ZWQsIHRoaXMpOwogICAgIFdlYkluc3BlY3Rvci5uZXR3b3JrTWFuYWdlci5h
ZGRFdmVudExpc3RlbmVyKFdlYkluc3BlY3Rvci5OZXR3b3JrTWFuYWdlci5FdmVudFR5cGVzLlJl
c291cmNlRmluaXNoZWQsIHRoaXMuX29uUmVzb3VyY2VVcGRhdGVkLCB0aGlzKTsKLSAgICBXZWJJ
bnNwZWN0b3IubmV0d29ya01hbmFnZXIuYWRkRXZlbnRMaXN0ZW5lcihXZWJJbnNwZWN0b3IuTmV0
d29ya01hbmFnZXIuRXZlbnRUeXBlcy5GcmFtZUNvbW1pdHRlZExvYWQsIHRoaXMuX29uRnJhbWVD
b21taXRMb2FkLCB0aGlzKTsKIAogICAgIHRoaXMucmVnaXN0ZXJTaG9ydGN1dHMoKTsKIH0KQEAg
LTgwNyw5ICs4MDYsOSBAQCBXZWJJbnNwZWN0b3IuTmV0d29ya1BhbmVsLnByb3RvdHlwZSA9IHsK
ICAgICAgICAgdGhpcy5fcmVzZXQoKTsKICAgICB9LAogCi0gICAgX29uRnJhbWVDb21taXRMb2Fk
OiBmdW5jdGlvbihldmVudCkKKyAgICBmcmFtZU5hdmlnYXRlZDogZnVuY3Rpb24oZnJhbWUsIGxv
YWRlcklkKQogICAgIHsKLSAgICAgICAgaWYgKGV2ZW50LmRhdGEuZnJhbWUucGFyZW50SWQpCisg
ICAgICAgIGlmIChmcmFtZS5wYXJlbnRJZCkKICAgICAgICAgICAgIHJldHVybjsKIAogICAgICAg
ICAvLyBNYWluIGZyYW1lIGNvbW1pdHRlZCBsb2FkLgpAQCAtODE3LDcgKzgxNiw2IEBAIFdlYklu
c3BlY3Rvci5OZXR3b3JrUGFuZWwucHJvdG90eXBlID0gewogICAgICAgICAgICAgcmV0dXJuOwog
CiAgICAgICAgIC8vIFByZXNlcnZlIHByb3Zpc2lvbmFsIGxvYWQgcmVzb3VyY2VzLgotICAgICAg
ICB2YXIgbG9hZGVySWQgPSBldmVudC5kYXRhLmxvYWRlcklkOwogICAgICAgICB2YXIgcmVzb3Vy
Y2VzVG9QcmVzZXJ2ZSA9IFtdOwogICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHRoaXMuX3Jl
c291cmNlcy5sZW5ndGg7ICsraSkgewogICAgICAgICAgICAgdmFyIHJlc291cmNlID0gdGhpcy5f
cmVzb3VyY2VzW2ldOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250
LWVuZC9SZXNvdXJjZVRyZWVNb2RlbC5qcyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9u
dC1lbmQvUmVzb3VyY2VUcmVlTW9kZWwuanMKaW5kZXggYzBkZDY5MTZlNTY5MjdhODIxNDc1Zjgw
MTYwODYxYmVlMmRlZjhkOS4uMDljZDJkY2VhZjY0ZGY0ZTM0MzgyOWFhNTdhMWM3Yjk5YjA1OWNj
NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9SZXNvdXJj
ZVRyZWVNb2RlbC5qcworKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1Jl
c291cmNlVHJlZU1vZGVsLmpzCkBAIC0zNCw4ICszNCw2IEBAIFdlYkluc3BlY3Rvci5SZXNvdXJj
ZVRyZWVNb2RlbCA9IGZ1bmN0aW9uKG5ldHdvcmtNYW5hZ2VyKQogICAgIFdlYkluc3BlY3Rvci5u
ZXR3b3JrTWFuYWdlci5hZGRFdmVudExpc3RlbmVyKFdlYkluc3BlY3Rvci5OZXR3b3JrTWFuYWdl
ci5FdmVudFR5cGVzLlJlc291cmNlU3RhcnRlZCwgdGhpcy5fb25SZXNvdXJjZVN0YXJ0ZWQsIHRo
aXMpOwogICAgIFdlYkluc3BlY3Rvci5uZXR3b3JrTWFuYWdlci5hZGRFdmVudExpc3RlbmVyKFdl
Ykluc3BlY3Rvci5OZXR3b3JrTWFuYWdlci5FdmVudFR5cGVzLlJlc291cmNlVXBkYXRlZCwgdGhp
cy5fb25SZXNvdXJjZVVwZGF0ZWQsIHRoaXMpOwogICAgIFdlYkluc3BlY3Rvci5uZXR3b3JrTWFu
YWdlci5hZGRFdmVudExpc3RlbmVyKFdlYkluc3BlY3Rvci5OZXR3b3JrTWFuYWdlci5FdmVudFR5
cGVzLlJlc291cmNlRmluaXNoZWQsIHRoaXMuX29uUmVzb3VyY2VVcGRhdGVkLCB0aGlzKTsKLSAg
ICBXZWJJbnNwZWN0b3IubmV0d29ya01hbmFnZXIuYWRkRXZlbnRMaXN0ZW5lcihXZWJJbnNwZWN0
b3IuTmV0d29ya01hbmFnZXIuRXZlbnRUeXBlcy5GcmFtZURldGFjaGVkLCB0aGlzLl9vbkZyYW1l
RGV0YWNoZWRGcm9tUGFyZW50LCB0aGlzKTsKLSAgICBXZWJJbnNwZWN0b3IubmV0d29ya01hbmFn
ZXIuYWRkRXZlbnRMaXN0ZW5lcihXZWJJbnNwZWN0b3IuTmV0d29ya01hbmFnZXIuRXZlbnRUeXBl
cy5GcmFtZUNvbW1pdHRlZExvYWQsIHRoaXMuX29uQ29tbWl0TG9hZCwgdGhpcyk7CiAKICAgICB0
aGlzLmZyb250ZW5kUmV1c2VkKCk7CiB9CkBAIC01NCw3ICs1Miw3IEBAIFdlYkluc3BlY3Rvci5S
ZXNvdXJjZVRyZWVNb2RlbC5wcm90b3R5cGUgPSB7CiAgICAgICAgIHRoaXMuX3Jlc291cmNlc0J5
VVJMID0ge307CiAgICAgICAgIHRoaXMuX3Jlc291cmNlc0J5RnJhbWVJZCA9IHt9OwogICAgICAg
ICB0aGlzLl9zdWJmcmFtZXMgPSB7fTsKLSAgICAgICAgTmV0d29ya0FnZW50LmdldENhY2hlZFJl
c291cmNlcyh0aGlzLl9wcm9jZXNzQ2FjaGVkUmVzb3VyY2VzLmJpbmQodGhpcykpOworICAgICAg
ICBQYWdlQWdlbnQuZ2V0UmVzb3VyY2VUcmVlKHRoaXMuX3Byb2Nlc3NDYWNoZWRSZXNvdXJjZXMu
YmluZCh0aGlzKSk7CiAgICAgfSwKIAogICAgIF9wcm9jZXNzQ2FjaGVkUmVzb3VyY2VzOiBmdW5j
dGlvbihlcnJvciwgbWFpbkZyYW1lUGF5bG9hZCkKQEAgLTEwMSwxMyArOTksMTEgQEAgV2ViSW5z
cGVjdG9yLlJlc291cmNlVHJlZU1vZGVsLnByb3RvdHlwZSA9IHsKICAgICAgICAgcmV0dXJuIHJl
c3VsdDsKICAgICB9LAogCi0gICAgX29uQ29tbWl0TG9hZDogZnVuY3Rpb24oZXZlbnQpCisgICAg
ZnJhbWVOYXZpZ2F0ZWQ6IGZ1bmN0aW9uKGZyYW1lLCBsb2FkZXJJZCkKICAgICB7CiAgICAgICAg
IGlmICghdGhpcy5fY2FjaGVkUmVzb3VyY2VzUHJvY2Vzc2VkKQogICAgICAgICAgICAgcmV0dXJu
OwogCi0gICAgICAgIHZhciBmcmFtZSA9IGV2ZW50LmRhdGEuZnJhbWU7Ci0gICAgICAgIHZhciBs
b2FkZXJJZCA9IGV2ZW50LmRhdGEubG9hZGVySWQ7CiAgICAgICAgIHZhciBpc01haW5GcmFtZSA9
ICFmcmFtZS5wYXJlbnRJZDsKIAogICAgICAgICAvLyBmcmFtZS5wYXJlbnRJZCA9PT0gMCBpcyB3
aGVuIG1haW4gZnJhbWUgbmF2aWdhdGlvbiBoYXBwZW5zLgpAQCAtMTI4LDEyICsxMjQsMTEgQEAg
V2ViSW5zcGVjdG9yLlJlc291cmNlVHJlZU1vZGVsLnByb3RvdHlwZSA9IHsKICAgICAgICAgICAg
IFdlYkluc3BlY3Rvci5SZXNvdXJjZS5jbGVhclJldmlzaW9uSGlzdG9yeSgpOwogICAgIH0sCiAK
LSAgICBfb25GcmFtZURldGFjaGVkRnJvbVBhcmVudDogZnVuY3Rpb24oZXZlbnQpCisgICAgZnJh
bWVEZXRhY2hlZDogZnVuY3Rpb24oZnJhbWVJZCkKICAgICB7CiAgICAgICAgIGlmICghdGhpcy5f
Y2FjaGVkUmVzb3VyY2VzUHJvY2Vzc2VkKQogICAgICAgICAgICAgcmV0dXJuOwogCi0gICAgICAg
IHZhciBmcmFtZUlkID0gZXZlbnQuZGF0YTsKICAgICAgICAgdGhpcy5fY2xlYXJDaGlsZEZyYW1l
c0FuZFJlc291cmNlcyhmcmFtZUlkLCAwKTsKICAgICAgICAgdGhpcy5kaXNwYXRjaEV2ZW50VG9M
aXN0ZW5lcnMoV2ViSW5zcGVjdG9yLlJlc291cmNlVHJlZU1vZGVsLkV2ZW50VHlwZXMuRnJhbWVE
ZXRhY2hlZCwgZnJhbWVJZCk7CiAgICAgfSwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9mcm9udC1lbmQvaW5zcGVjdG9yLmpzIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L2Zyb250LWVuZC9pbnNwZWN0b3IuanMKaW5kZXggNzAxZjRhODZjYmIxMWM3Y2FkNmVhMThmYmRm
ODkyMjEyYWQ1YmU0Yi4uNTIyYjVmNDY3ZjM0NjI5ZmNkODM1NGQ4OWE0MTNhMmE4MWM1YjYwOCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9pbnNwZWN0b3Iu
anMKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9pbnNwZWN0b3IuanMK
QEAgLTk4MywyNCArOTgzLDI5IEBAIFdlYkluc3BlY3Rvci5zdGFydFVzZXJJbml0aWF0ZWREZWJ1
Z2dpbmcgPSBmdW5jdGlvbigpCiBXZWJJbnNwZWN0b3IuZG9tQ29udGVudEV2ZW50RmlyZWQgPSBm
dW5jdGlvbih0aW1lKQogewogICAgIHRoaXMucGFuZWxzLmF1ZGl0cy5tYWluUmVzb3VyY2VET01D
b250ZW50VGltZSA9IHRpbWU7CisgICAgdGhpcy5wYW5lbHMubmV0d29yay5tYWluUmVzb3VyY2VE
T01Db250ZW50VGltZSA9IHRpbWU7CisKICAgICB0aGlzLm1haW5SZXNvdXJjZURPTUNvbnRlbnRU
aW1lID0gdGltZTsKIH0KIAogV2ViSW5zcGVjdG9yLmxvYWRFdmVudEZpcmVkID0gZnVuY3Rpb24o
dGltZSkKIHsKICAgICB0aGlzLnBhbmVscy5hdWRpdHMubWFpblJlc291cmNlTG9hZFRpbWUgPSB0
aW1lOworICAgIHRoaXMucGFuZWxzLm5ldHdvcmsubWFpblJlc291cmNlTG9hZFRpbWUgPSB0aW1l
OwogICAgIHRoaXMucGFuZWxzLnJlc291cmNlcy5sb2FkRXZlbnRGaXJlZCgpOworCiAgICAgdGhp
cy5tYWluUmVzb3VyY2VMb2FkVGltZSA9IHRpbWU7CiB9CiAKLVdlYkluc3BlY3Rvci5zZWFyY2hp
bmdGb3JOb2RlV2FzRW5hYmxlZCA9IGZ1bmN0aW9uKCkKKy8vIEZJWE1FOiBtb3ZlIHRoZXNlIGlu
dG8gdGhlIGRlZGljYXRlZCBkaXNwYXRjaGVyLgorV2ViSW5zcGVjdG9yLmZyYW1lTmF2aWdhdGVk
ID0gZnVuY3Rpb24oZnJhbWUsIGxvYWRlcklkKQogewotICAgIHRoaXMucGFuZWxzLmVsZW1lbnRz
LnNlYXJjaGluZ0Zvck5vZGVXYXNFbmFibGVkKCk7CisgICAgdGhpcy5yZXNvdXJjZVRyZWVNb2Rl
bC5mcmFtZU5hdmlnYXRlZChmcmFtZSwgbG9hZGVySWQpOworICAgIHRoaXMucGFuZWxzLm5ldHdv
cmsuZnJhbWVOYXZpZ2F0ZWQoZnJhbWUsIGxvYWRlcklkKTsKIH0KLQotV2ViSW5zcGVjdG9yLnNl
YXJjaGluZ0Zvck5vZGVXYXNEaXNhYmxlZCA9IGZ1bmN0aW9uKCkKK1dlYkluc3BlY3Rvci5mcmFt
ZURldGFjaGVkID0gZnVuY3Rpb24oZnJhbWVJZCkKIHsKLSAgICB0aGlzLnBhbmVscy5lbGVtZW50
cy5zZWFyY2hpbmdGb3JOb2RlV2FzRGlzYWJsZWQoKTsKKyAgICB0aGlzLnJlc291cmNlVHJlZU1v
ZGVsLmZyYW1lRGV0YWNoZWQobG9hZGVySWQpOwogfQogCiBXZWJJbnNwZWN0b3IucmVzZXQgPSBm
dW5jdGlvbigpCg==
</data>
<flag name="review"
          id="83686"
          type_id="1"
          status="+"
          setter="yurys"
    />
          </attachment>
      

    </bug>

</bugzilla>