<?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>225589</bug_id>
          
          <creation_ts>2021-05-10 03:14:04 -0700</creation_ts>
          <short_desc>[GPU Process] Simplify DisplayList::Iterator part 10: Remove the ItemHandle type</short_desc>
          <delta_ts>2021-05-17 03:15:16 -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>New Bugs</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>NEW</bug_status>
          <resolution></resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>223560</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Myles C. Maxfield">mmaxfield</reporter>
          <assigned_to name="Myles C. Maxfield">mmaxfield</assigned_to>
          <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1758458</commentid>
    <comment_count>0</comment_count>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2021-05-10 03:14:04 -0700</bug_when>
    <thetext>Remove the ItemHandle type</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1758459</commentid>
    <comment_count>1</comment_count>
      <attachid>428164</attachid>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2021-05-10 03:14:23 -0700</bug_when>
    <thetext>Created attachment 428164
WIP</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1760714</commentid>
    <comment_count>2</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-05-17 03:15:16 -0700</bug_when>
    <thetext>&lt;rdar://problem/78098431&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>428164</attachid>
            <date>2021-05-10 03:14:23 -0700</date>
            <delta_ts>2021-05-10 03:14:23 -0700</delta_ts>
            <desc>WIP</desc>
            <filename>patch.diff</filename>
            <type>text/plain</type>
            <size>27370</size>
            <attacher name="Myles C. Maxfield">mmaxfield</attacher>
            
              <data encoding="base64">Y29tbWl0IGMwZGU4YjZjZDhkYjA4MWM3N2YwOTczMjdjNTVmNjQ0ODU0MWUyZTgKQXV0aG9yOiBN
eWxlcyBDLiBNYXhmaWVsZCA8bW1heGZpZWxkQGFwcGxlLmNvbT4KRGF0ZTogICBNb24gTWF5IDEw
IDAzOjEyOjMzIDIwMjEgLTA3MDAKCiAgICBQYXJ0IDEwCgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0SXRlbUJ1ZmZl
ci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlz
cGxheUxpc3RJdGVtQnVmZmVyLmNwcAppbmRleCAyMWVlZGQ3NGMxZDUuLmNiMDdjNjMxYzVhOSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3Rz
L0Rpc3BsYXlMaXN0SXRlbUJ1ZmZlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0SXRlbUJ1ZmZlci5jcHAKQEAgLTM0LDQw
MiArMzQsNiBAQAogbmFtZXNwYWNlIFdlYkNvcmUgewogbmFtZXNwYWNlIERpc3BsYXlMaXN0IHsK
IAotdm9pZCBJdGVtSGFuZGxlOjphcHBseShHcmFwaGljc0NvbnRleHQmIGNvbnRleHQpCi17Ci0g
ICAgc3dpdGNoICh0eXBlKCkpIHsKLSAgICBjYXNlIEl0ZW1UeXBlOjpTYXZlOgotICAgICAgICBn
ZXQ8U2F2ZT4oKS5hcHBseShjb250ZXh0KTsKLSAgICAgICAgcmV0dXJuOwotICAgIGNhc2UgSXRl
bVR5cGU6OlJlc3RvcmU6Ci0gICAgICAgIGdldDxSZXN0b3JlPigpLmFwcGx5KGNvbnRleHQpOwot
ICAgICAgICByZXR1cm47Ci0gICAgY2FzZSBJdGVtVHlwZTo6VHJhbnNsYXRlOgotICAgICAgICBn
ZXQ8VHJhbnNsYXRlPigpLmFwcGx5KGNvbnRleHQpOwotICAgICAgICByZXR1cm47Ci0gICAgY2Fz
ZSBJdGVtVHlwZTo6Um90YXRlOgotICAgICAgICBnZXQ8Um90YXRlPigpLmFwcGx5KGNvbnRleHQp
OwotICAgICAgICByZXR1cm47Ci0gICAgY2FzZSBJdGVtVHlwZTo6U2NhbGU6Ci0gICAgICAgIGdl
dDxTY2FsZT4oKS5hcHBseShjb250ZXh0KTsKLSAgICAgICAgcmV0dXJuOwotICAgIGNhc2UgSXRl
bVR5cGU6OkNvbmNhdGVuYXRlQ1RNOgotICAgICAgICBnZXQ8Q29uY2F0ZW5hdGVDVE0+KCkuYXBw
bHkoY29udGV4dCk7Ci0gICAgICAgIHJldHVybjsKLSAgICBjYXNlIEl0ZW1UeXBlOjpTZXRDVE06
Ci0gICAgICAgIGdldDxTZXRDVE0+KCkuYXBwbHkoY29udGV4dCk7Ci0gICAgICAgIHJldHVybjsK
LSAgICBjYXNlIEl0ZW1UeXBlOjpTZXRJbmxpbmVGaWxsR3JhZGllbnQ6Ci0gICAgICAgIGdldDxT
ZXRJbmxpbmVGaWxsR3JhZGllbnQ+KCkuYXBwbHkoY29udGV4dCk7Ci0gICAgICAgIHJldHVybjsK
LSAgICBjYXNlIEl0ZW1UeXBlOjpTZXRJbmxpbmVGaWxsQ29sb3I6Ci0gICAgICAgIGdldDxTZXRJ
bmxpbmVGaWxsQ29sb3I+KCkuYXBwbHkoY29udGV4dCk7Ci0gICAgICAgIHJldHVybjsKLSAgICBj
YXNlIEl0ZW1UeXBlOjpTZXRJbmxpbmVTdHJva2VDb2xvcjoKLSAgICAgICAgZ2V0PFNldElubGlu
ZVN0cm9rZUNvbG9yPigpLmFwcGx5KGNvbnRleHQpOwotICAgICAgICByZXR1cm47Ci0gICAgY2Fz
ZSBJdGVtVHlwZTo6U2V0U3Ryb2tlVGhpY2tuZXNzOgotICAgICAgICBnZXQ8U2V0U3Ryb2tlVGhp
Y2tuZXNzPigpLmFwcGx5KGNvbnRleHQpOwotICAgICAgICByZXR1cm47Ci0gICAgY2FzZSBJdGVt
VHlwZTo6U2V0U3RhdGU6Ci0gICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwotICAgICAgICBy
ZXR1cm47Ci0gICAgY2FzZSBJdGVtVHlwZTo6U2V0TGluZUNhcDoKLSAgICAgICAgZ2V0PFNldExp
bmVDYXA+KCkuYXBwbHkoY29udGV4dCk7Ci0gICAgICAgIHJldHVybjsKLSAgICBjYXNlIEl0ZW1U
eXBlOjpTZXRMaW5lRGFzaDoKLSAgICAgICAgZ2V0PFNldExpbmVEYXNoPigpLmFwcGx5KGNvbnRl
eHQpOwotICAgICAgICByZXR1cm47Ci0gICAgY2FzZSBJdGVtVHlwZTo6U2V0TGluZUpvaW46Ci0g
ICAgICAgIGdldDxTZXRMaW5lSm9pbj4oKS5hcHBseShjb250ZXh0KTsKLSAgICAgICAgcmV0dXJu
OwotICAgIGNhc2UgSXRlbVR5cGU6OlNldE1pdGVyTGltaXQ6Ci0gICAgICAgIGdldDxTZXRNaXRl
ckxpbWl0PigpLmFwcGx5KGNvbnRleHQpOwotICAgICAgICByZXR1cm47Ci0gICAgY2FzZSBJdGVt
VHlwZTo6Q2xlYXJTaGFkb3c6Ci0gICAgICAgIGdldDxDbGVhclNoYWRvdz4oKS5hcHBseShjb250
ZXh0KTsKLSAgICAgICAgcmV0dXJuOwotICAgIGNhc2UgSXRlbVR5cGU6OkNsaXA6Ci0gICAgICAg
IGdldDxDbGlwPigpLmFwcGx5KGNvbnRleHQpOwotICAgICAgICByZXR1cm47Ci0gICAgY2FzZSBJ
dGVtVHlwZTo6Q2xpcE91dDoKLSAgICAgICAgZ2V0PENsaXBPdXQ+KCkuYXBwbHkoY29udGV4dCk7
Ci0gICAgICAgIHJldHVybjsKLSAgICBjYXNlIEl0ZW1UeXBlOjpDbGlwVG9JbWFnZUJ1ZmZlcjoK
LSAgICAgICAgZ2V0PENsaXBUb0ltYWdlQnVmZmVyPigpLmFwcGx5KGNvbnRleHQpOwotICAgICAg
ICByZXR1cm47Ci0gICAgY2FzZSBJdGVtVHlwZTo6Q2xpcE91dFRvUGF0aDoKLSAgICAgICAgZ2V0
PENsaXBPdXRUb1BhdGg+KCkuYXBwbHkoY29udGV4dCk7Ci0gICAgICAgIHJldHVybjsKLSAgICBj
YXNlIEl0ZW1UeXBlOjpDbGlwUGF0aDoKLSAgICAgICAgZ2V0PENsaXBQYXRoPigpLmFwcGx5KGNv
bnRleHQpOwotICAgICAgICByZXR1cm47Ci0gICAgY2FzZSBJdGVtVHlwZTo6QmVnaW5DbGlwVG9E
cmF3aW5nQ29tbWFuZHM6Ci0gICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwotICAgICAgICBy
ZXR1cm47Ci0gICAgY2FzZSBJdGVtVHlwZTo6RW5kQ2xpcFRvRHJhd2luZ0NvbW1hbmRzOgotICAg
ICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKLSAgICAgICAgcmV0dXJuOwotICAgIGNhc2UgSXRl
bVR5cGU6OkRyYXdHbHlwaHM6Ci0gICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwotICAgICAg
ICByZXR1cm47Ci0gICAgY2FzZSBJdGVtVHlwZTo6RHJhd0ltYWdlQnVmZmVyOgotICAgICAgICBn
ZXQ8RHJhd0ltYWdlQnVmZmVyPigpLmFwcGx5KGNvbnRleHQpOwotICAgICAgICByZXR1cm47Ci0g
ICAgY2FzZSBJdGVtVHlwZTo6RHJhd05hdGl2ZUltYWdlOgotICAgICAgICBnZXQ8RHJhd05hdGl2
ZUltYWdlPigpLmFwcGx5KGNvbnRleHQpOwotICAgICAgICByZXR1cm47Ci0gICAgY2FzZSBJdGVt
VHlwZTo6RHJhd1BhdHRlcm46Ci0gICAgICAgIGdldDxEcmF3UGF0dGVybj4oKS5hcHBseShjb250
ZXh0KTsKLSAgICAgICAgcmV0dXJuOwotICAgIGNhc2UgSXRlbVR5cGU6OkRyYXdSZWN0OgotICAg
ICAgICBnZXQ8RHJhd1JlY3Q+KCkuYXBwbHkoY29udGV4dCk7Ci0gICAgICAgIHJldHVybjsKLSAg
ICBjYXNlIEl0ZW1UeXBlOjpEcmF3TGluZToKLSAgICAgICAgZ2V0PERyYXdMaW5lPigpLmFwcGx5
KGNvbnRleHQpOwotICAgICAgICByZXR1cm47Ci0gICAgY2FzZSBJdGVtVHlwZTo6RHJhd0xpbmVz
Rm9yVGV4dDoKLSAgICAgICAgZ2V0PERyYXdMaW5lc0ZvclRleHQ+KCkuYXBwbHkoY29udGV4dCk7
Ci0gICAgICAgIHJldHVybjsKLSAgICBjYXNlIEl0ZW1UeXBlOjpEcmF3RG90c0ZvckRvY3VtZW50
TWFya2VyOgotICAgICAgICBnZXQ8RHJhd0RvdHNGb3JEb2N1bWVudE1hcmtlcj4oKS5hcHBseShj
b250ZXh0KTsKLSAgICAgICAgcmV0dXJuOwotICAgIGNhc2UgSXRlbVR5cGU6OkRyYXdFbGxpcHNl
OgotICAgICAgICBnZXQ8RHJhd0VsbGlwc2U+KCkuYXBwbHkoY29udGV4dCk7Ci0gICAgICAgIHJl
dHVybjsKLSAgICBjYXNlIEl0ZW1UeXBlOjpEcmF3UGF0aDoKLSAgICAgICAgZ2V0PERyYXdQYXRo
PigpLmFwcGx5KGNvbnRleHQpOwotICAgICAgICByZXR1cm47Ci0gICAgY2FzZSBJdGVtVHlwZTo6
RHJhd0ZvY3VzUmluZ1BhdGg6Ci0gICAgICAgIGdldDxEcmF3Rm9jdXNSaW5nUGF0aD4oKS5hcHBs
eShjb250ZXh0KTsKLSAgICAgICAgcmV0dXJuOwotICAgIGNhc2UgSXRlbVR5cGU6OkRyYXdGb2N1
c1JpbmdSZWN0czoKLSAgICAgICAgZ2V0PERyYXdGb2N1c1JpbmdSZWN0cz4oKS5hcHBseShjb250
ZXh0KTsKLSAgICAgICAgcmV0dXJuOwotICAgIGNhc2UgSXRlbVR5cGU6OkZpbGxSZWN0OgotICAg
ICAgICBnZXQ8RmlsbFJlY3Q+KCkuYXBwbHkoY29udGV4dCk7Ci0gICAgICAgIHJldHVybjsKLSAg
ICBjYXNlIEl0ZW1UeXBlOjpGaWxsUmVjdFdpdGhDb2xvcjoKLSAgICAgICAgZ2V0PEZpbGxSZWN0
V2l0aENvbG9yPigpLmFwcGx5KGNvbnRleHQpOwotICAgICAgICByZXR1cm47Ci0gICAgY2FzZSBJ
dGVtVHlwZTo6RmlsbFJlY3RXaXRoR3JhZGllbnQ6Ci0gICAgICAgIGdldDxGaWxsUmVjdFdpdGhH
cmFkaWVudD4oKS5hcHBseShjb250ZXh0KTsKLSAgICAgICAgcmV0dXJuOwotICAgIGNhc2UgSXRl
bVR5cGU6OkZpbGxDb21wb3NpdGVkUmVjdDoKLSAgICAgICAgZ2V0PEZpbGxDb21wb3NpdGVkUmVj
dD4oKS5hcHBseShjb250ZXh0KTsKLSAgICAgICAgcmV0dXJuOwotICAgIGNhc2UgSXRlbVR5cGU6
OkZpbGxSb3VuZGVkUmVjdDoKLSAgICAgICAgZ2V0PEZpbGxSb3VuZGVkUmVjdD4oKS5hcHBseShj
b250ZXh0KTsKLSAgICAgICAgcmV0dXJuOwotICAgIGNhc2UgSXRlbVR5cGU6OkZpbGxSZWN0V2l0
aFJvdW5kZWRIb2xlOgotICAgICAgICBnZXQ8RmlsbFJlY3RXaXRoUm91bmRlZEhvbGU+KCkuYXBw
bHkoY29udGV4dCk7Ci0gICAgICAgIHJldHVybjsKLSNpZiBFTkFCTEUoSU5MSU5FX1BBVEhfREFU
QSkKLSAgICBjYXNlIEl0ZW1UeXBlOjpGaWxsSW5saW5lUGF0aDoKLSAgICAgICAgZ2V0PEZpbGxJ
bmxpbmVQYXRoPigpLmFwcGx5KGNvbnRleHQpOwotICAgICAgICByZXR1cm47Ci0jZW5kaWYKLSAg
ICBjYXNlIEl0ZW1UeXBlOjpGaWxsUGF0aDoKLSAgICAgICAgZ2V0PEZpbGxQYXRoPigpLmFwcGx5
KGNvbnRleHQpOwotICAgICAgICByZXR1cm47Ci0gICAgY2FzZSBJdGVtVHlwZTo6RmlsbEVsbGlw
c2U6Ci0gICAgICAgIGdldDxGaWxsRWxsaXBzZT4oKS5hcHBseShjb250ZXh0KTsKLSAgICAgICAg
cmV0dXJuOwotICAgIGNhc2UgSXRlbVR5cGU6OkZsdXNoQ29udGV4dDoKLSAgICAgICAgZ2V0PEZs
dXNoQ29udGV4dD4oKS5hcHBseShjb250ZXh0KTsKLSAgICAgICAgcmV0dXJuOwotICAgIGNhc2Ug
SXRlbVR5cGU6Ok1ldGFDb21tYW5kQ2hhbmdlRGVzdGluYXRpb25JbWFnZUJ1ZmZlcjoKLSAgICBj
YXNlIEl0ZW1UeXBlOjpNZXRhQ29tbWFuZENoYW5nZUl0ZW1CdWZmZXI6Ci0gICAgICAgIHJldHVy
bjsKLSAgICBjYXNlIEl0ZW1UeXBlOjpHZXRJbWFnZURhdGE6Ci0gICAgY2FzZSBJdGVtVHlwZTo6
UHV0SW1hZ2VEYXRhOgotICAgICAgICAvLyBTaG91bGQgYWxyZWFkeSBiZSBoYW5kbGVkIGJ5IHRo
ZSBkZWxlZ2F0ZS4KLSAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Ci0gICAgICAgIHJldHVy
bjsKLSNpZiBFTkFCTEUoVklERU8pCi0gICAgY2FzZSBJdGVtVHlwZTo6UGFpbnRGcmFtZUZvck1l
ZGlhOgotICAgICAgICBnZXQ8UGFpbnRGcmFtZUZvck1lZGlhPigpLmFwcGx5KGNvbnRleHQpOwot
ICAgICAgICByZXR1cm47Ci0jZW5kaWYKLSAgICBjYXNlIEl0ZW1UeXBlOjpTdHJva2VSZWN0Ogot
ICAgICAgICBnZXQ8U3Ryb2tlUmVjdD4oKS5hcHBseShjb250ZXh0KTsKLSAgICAgICAgcmV0dXJu
OwotICAgIGNhc2UgSXRlbVR5cGU6OlN0cm9rZUxpbmU6Ci0gICAgICAgIGdldDxTdHJva2VMaW5l
PigpLmFwcGx5KGNvbnRleHQpOwotICAgICAgICByZXR1cm47Ci0jaWYgRU5BQkxFKElOTElORV9Q
QVRIX0RBVEEpCi0gICAgY2FzZSBJdGVtVHlwZTo6U3Ryb2tlSW5saW5lUGF0aDoKLSAgICAgICAg
Z2V0PFN0cm9rZUlubGluZVBhdGg+KCkuYXBwbHkoY29udGV4dCk7Ci0gICAgICAgIHJldHVybjsK
LSNlbmRpZgotICAgIGNhc2UgSXRlbVR5cGU6OlN0cm9rZVBhdGg6Ci0gICAgICAgIGdldDxTdHJv
a2VQYXRoPigpLmFwcGx5KGNvbnRleHQpOwotICAgICAgICByZXR1cm47Ci0gICAgY2FzZSBJdGVt
VHlwZTo6U3Ryb2tlRWxsaXBzZToKLSAgICAgICAgZ2V0PFN0cm9rZUVsbGlwc2U+KCkuYXBwbHko
Y29udGV4dCk7Ci0gICAgICAgIHJldHVybjsKLSAgICBjYXNlIEl0ZW1UeXBlOjpDbGVhclJlY3Q6
Ci0gICAgICAgIGdldDxDbGVhclJlY3Q+KCkuYXBwbHkoY29udGV4dCk7Ci0gICAgICAgIHJldHVy
bjsKLSAgICBjYXNlIEl0ZW1UeXBlOjpCZWdpblRyYW5zcGFyZW5jeUxheWVyOgotICAgICAgICBn
ZXQ8QmVnaW5UcmFuc3BhcmVuY3lMYXllcj4oKS5hcHBseShjb250ZXh0KTsKLSAgICAgICAgcmV0
dXJuOwotICAgIGNhc2UgSXRlbVR5cGU6OkVuZFRyYW5zcGFyZW5jeUxheWVyOgotICAgICAgICBn
ZXQ8RW5kVHJhbnNwYXJlbmN5TGF5ZXI+KCkuYXBwbHkoY29udGV4dCk7Ci0gICAgICAgIHJldHVy
bjsKLSNpZiBVU0UoQ0cpCi0gICAgY2FzZSBJdGVtVHlwZTo6QXBwbHlTdHJva2VQYXR0ZXJuOgot
ICAgICAgICBnZXQ8QXBwbHlTdHJva2VQYXR0ZXJuPigpLmFwcGx5KGNvbnRleHQpOwotICAgICAg
ICByZXR1cm47Ci0gICAgY2FzZSBJdGVtVHlwZTo6QXBwbHlGaWxsUGF0dGVybjoKLSAgICAgICAg
Z2V0PEFwcGx5RmlsbFBhdHRlcm4+KCkuYXBwbHkoY29udGV4dCk7Ci0gICAgICAgIHJldHVybjsK
LSNlbmRpZgotICAgIGNhc2UgSXRlbVR5cGU6OkFwcGx5RGV2aWNlU2NhbGVGYWN0b3I6Ci0gICAg
ICAgIGdldDxBcHBseURldmljZVNjYWxlRmFjdG9yPigpLmFwcGx5KGNvbnRleHQpOwotICAgICAg
ICByZXR1cm47Ci0gICAgfQotfQotCi12b2lkIEl0ZW1IYW5kbGU6OmRlc3Ryb3koKQotewotICAg
IHN3aXRjaCAodHlwZSgpKSB7Ci0gICAgY2FzZSBJdGVtVHlwZTo6Q2xpcE91dFRvUGF0aDoKLSAg
ICAgICAgZ2V0PENsaXBPdXRUb1BhdGg+KCkufkNsaXBPdXRUb1BhdGgoKTsKLSAgICAgICAgcmV0
dXJuOwotICAgIGNhc2UgSXRlbVR5cGU6OkNsaXBQYXRoOgotICAgICAgICBnZXQ8Q2xpcFBhdGg+
KCkufkNsaXBQYXRoKCk7Ci0gICAgICAgIHJldHVybjsKLSAgICBjYXNlIEl0ZW1UeXBlOjpEcmF3
Rm9jdXNSaW5nUGF0aDoKLSAgICAgICAgZ2V0PERyYXdGb2N1c1JpbmdQYXRoPigpLn5EcmF3Rm9j
dXNSaW5nUGF0aCgpOwotICAgICAgICByZXR1cm47Ci0gICAgY2FzZSBJdGVtVHlwZTo6RHJhd0Zv
Y3VzUmluZ1JlY3RzOgotICAgICAgICBnZXQ8RHJhd0ZvY3VzUmluZ1JlY3RzPigpLn5EcmF3Rm9j
dXNSaW5nUmVjdHMoKTsKLSAgICAgICAgcmV0dXJuOwotICAgIGNhc2UgSXRlbVR5cGU6OkRyYXdH
bHlwaHM6Ci0gICAgICAgIGdldDxEcmF3R2x5cGhzPigpLn5EcmF3R2x5cGhzKCk7Ci0gICAgICAg
IHJldHVybjsKLSAgICBjYXNlIEl0ZW1UeXBlOjpEcmF3TGluZXNGb3JUZXh0OgotICAgICAgICBn
ZXQ8RHJhd0xpbmVzRm9yVGV4dD4oKS5+RHJhd0xpbmVzRm9yVGV4dCgpOwotICAgICAgICByZXR1
cm47Ci0gICAgY2FzZSBJdGVtVHlwZTo6RHJhd1BhdGg6Ci0gICAgICAgIGdldDxEcmF3UGF0aD4o
KS5+RHJhd1BhdGgoKTsKLSAgICAgICAgcmV0dXJuOwotICAgIGNhc2UgSXRlbVR5cGU6OkZpbGxD
b21wb3NpdGVkUmVjdDoKLSAgICAgICAgZ2V0PEZpbGxDb21wb3NpdGVkUmVjdD4oKS5+RmlsbENv
bXBvc2l0ZWRSZWN0KCk7Ci0gICAgICAgIHJldHVybjsKLSAgICBjYXNlIEl0ZW1UeXBlOjpGaWxs
UGF0aDoKLSAgICAgICAgZ2V0PEZpbGxQYXRoPigpLn5GaWxsUGF0aCgpOwotICAgICAgICByZXR1
cm47Ci0gICAgY2FzZSBJdGVtVHlwZTo6RmlsbFJlY3RXaXRoQ29sb3I6Ci0gICAgICAgIGdldDxG
aWxsUmVjdFdpdGhDb2xvcj4oKS5+RmlsbFJlY3RXaXRoQ29sb3IoKTsKLSAgICAgICAgcmV0dXJu
OwotICAgIGNhc2UgSXRlbVR5cGU6OkZpbGxSZWN0V2l0aEdyYWRpZW50OgotICAgICAgICBnZXQ8
RmlsbFJlY3RXaXRoR3JhZGllbnQ+KCkufkZpbGxSZWN0V2l0aEdyYWRpZW50KCk7Ci0gICAgICAg
IHJldHVybjsKLSAgICBjYXNlIEl0ZW1UeXBlOjpGaWxsUmVjdFdpdGhSb3VuZGVkSG9sZToKLSAg
ICAgICAgZ2V0PEZpbGxSZWN0V2l0aFJvdW5kZWRIb2xlPigpLn5GaWxsUmVjdFdpdGhSb3VuZGVk
SG9sZSgpOwotICAgICAgICByZXR1cm47Ci0gICAgY2FzZSBJdGVtVHlwZTo6RmlsbFJvdW5kZWRS
ZWN0OgotICAgICAgICBnZXQ8RmlsbFJvdW5kZWRSZWN0PigpLn5GaWxsUm91bmRlZFJlY3QoKTsK
LSAgICAgICAgcmV0dXJuOwotICAgIGNhc2UgSXRlbVR5cGU6OkdldEltYWdlRGF0YToKLSAgICAg
ICAgc3RhdGljX2Fzc2VydChzdGQ6OmlzX3RyaXZpYWxseV9kZXN0cnVjdGlibGU8R2V0SW1hZ2VE
YXRhPjo6dmFsdWUpOwotICAgICAgICByZXR1cm47Ci0gICAgY2FzZSBJdGVtVHlwZTo6UHV0SW1h
Z2VEYXRhOgotICAgICAgICBnZXQ8UHV0SW1hZ2VEYXRhPigpLn5QdXRJbWFnZURhdGEoKTsKLSAg
ICAgICAgcmV0dXJuOwotICAgIGNhc2UgSXRlbVR5cGU6OlNldExpbmVEYXNoOgotICAgICAgICBn
ZXQ8U2V0TGluZURhc2g+KCkuflNldExpbmVEYXNoKCk7Ci0gICAgICAgIHJldHVybjsKLSAgICBj
YXNlIEl0ZW1UeXBlOjpTZXRTdGF0ZToKLSAgICAgICAgZ2V0PFNldFN0YXRlPigpLn5TZXRTdGF0
ZSgpOwotICAgICAgICByZXR1cm47Ci0gICAgY2FzZSBJdGVtVHlwZTo6U3Ryb2tlUGF0aDoKLSAg
ICAgICAgZ2V0PFN0cm9rZVBhdGg+KCkuflN0cm9rZVBhdGgoKTsKLSAgICAgICAgcmV0dXJuOwot
ICAgIGNhc2UgSXRlbVR5cGU6OkFwcGx5RGV2aWNlU2NhbGVGYWN0b3I6Ci0gICAgICAgIHN0YXRp
Y19hc3NlcnQoc3RkOjppc190cml2aWFsbHlfZGVzdHJ1Y3RpYmxlPEFwcGx5RGV2aWNlU2NhbGVG
YWN0b3I+Ojp2YWx1ZSk7Ci0gICAgICAgIHJldHVybjsKLSNpZiBVU0UoQ0cpCi0gICAgY2FzZSBJ
dGVtVHlwZTo6QXBwbHlGaWxsUGF0dGVybjoKLSAgICAgICAgc3RhdGljX2Fzc2VydChzdGQ6Omlz
X3RyaXZpYWxseV9kZXN0cnVjdGlibGU8QXBwbHlGaWxsUGF0dGVybj46OnZhbHVlKTsKLSAgICAg
ICAgcmV0dXJuOwotICAgIGNhc2UgSXRlbVR5cGU6OkFwcGx5U3Ryb2tlUGF0dGVybjoKLSAgICAg
ICAgc3RhdGljX2Fzc2VydChzdGQ6OmlzX3RyaXZpYWxseV9kZXN0cnVjdGlibGU8QXBwbHlTdHJv
a2VQYXR0ZXJuPjo6dmFsdWUpOwotICAgICAgICByZXR1cm47Ci0jZW5kaWYKLSAgICBjYXNlIEl0
ZW1UeXBlOjpCZWdpbkNsaXBUb0RyYXdpbmdDb21tYW5kczoKLSAgICAgICAgc3RhdGljX2Fzc2Vy
dChzdGQ6OmlzX3RyaXZpYWxseV9kZXN0cnVjdGlibGU8QmVnaW5DbGlwVG9EcmF3aW5nQ29tbWFu
ZHM+Ojp2YWx1ZSk7Ci0gICAgICAgIHJldHVybjsKLSAgICBjYXNlIEl0ZW1UeXBlOjpCZWdpblRy
YW5zcGFyZW5jeUxheWVyOgotICAgICAgICBzdGF0aWNfYXNzZXJ0KHN0ZDo6aXNfdHJpdmlhbGx5
X2Rlc3RydWN0aWJsZTxCZWdpblRyYW5zcGFyZW5jeUxheWVyPjo6dmFsdWUpOwotICAgICAgICBy
ZXR1cm47Ci0gICAgY2FzZSBJdGVtVHlwZTo6Q2xlYXJSZWN0OgotICAgICAgICBzdGF0aWNfYXNz
ZXJ0KHN0ZDo6aXNfdHJpdmlhbGx5X2Rlc3RydWN0aWJsZTxDbGVhclJlY3Q+Ojp2YWx1ZSk7Ci0g
ICAgICAgIHJldHVybjsKLSAgICBjYXNlIEl0ZW1UeXBlOjpDbGVhclNoYWRvdzoKLSAgICAgICAg
c3RhdGljX2Fzc2VydChzdGQ6OmlzX3RyaXZpYWxseV9kZXN0cnVjdGlibGU8Q2xlYXJTaGFkb3c+
Ojp2YWx1ZSk7Ci0gICAgICAgIHJldHVybjsKLSAgICBjYXNlIEl0ZW1UeXBlOjpDbGlwOgotICAg
ICAgICBzdGF0aWNfYXNzZXJ0KHN0ZDo6aXNfdHJpdmlhbGx5X2Rlc3RydWN0aWJsZTxDbGlwPjo6
dmFsdWUpOwotICAgICAgICByZXR1cm47Ci0gICAgY2FzZSBJdGVtVHlwZTo6Q2xpcE91dDoKLSAg
ICAgICAgc3RhdGljX2Fzc2VydChzdGQ6OmlzX3RyaXZpYWxseV9kZXN0cnVjdGlibGU8Q2xpcE91
dD46OnZhbHVlKTsKLSAgICAgICAgcmV0dXJuOwotICAgIGNhc2UgSXRlbVR5cGU6OkNsaXBUb0lt
YWdlQnVmZmVyOgotICAgICAgICBzdGF0aWNfYXNzZXJ0KHN0ZDo6aXNfdHJpdmlhbGx5X2Rlc3Ry
dWN0aWJsZTxDbGlwVG9JbWFnZUJ1ZmZlcj46OnZhbHVlKTsKLSAgICAgICAgcmV0dXJuOwotICAg
IGNhc2UgSXRlbVR5cGU6OkNvbmNhdGVuYXRlQ1RNOgotICAgICAgICBzdGF0aWNfYXNzZXJ0KHN0
ZDo6aXNfdHJpdmlhbGx5X2Rlc3RydWN0aWJsZTxDb25jYXRlbmF0ZUNUTT46OnZhbHVlKTsKLSAg
ICAgICAgcmV0dXJuOwotICAgIGNhc2UgSXRlbVR5cGU6OkRyYXdEb3RzRm9yRG9jdW1lbnRNYXJr
ZXI6Ci0gICAgICAgIHN0YXRpY19hc3NlcnQoc3RkOjppc190cml2aWFsbHlfZGVzdHJ1Y3RpYmxl
PERyYXdEb3RzRm9yRG9jdW1lbnRNYXJrZXI+Ojp2YWx1ZSk7Ci0gICAgICAgIHJldHVybjsKLSAg
ICBjYXNlIEl0ZW1UeXBlOjpEcmF3RWxsaXBzZToKLSAgICAgICAgc3RhdGljX2Fzc2VydChzdGQ6
OmlzX3RyaXZpYWxseV9kZXN0cnVjdGlibGU8RHJhd0VsbGlwc2U+Ojp2YWx1ZSk7Ci0gICAgICAg
IHJldHVybjsKLSAgICBjYXNlIEl0ZW1UeXBlOjpEcmF3SW1hZ2VCdWZmZXI6Ci0gICAgICAgIHN0
YXRpY19hc3NlcnQoc3RkOjppc190cml2aWFsbHlfZGVzdHJ1Y3RpYmxlPERyYXdJbWFnZUJ1ZmZl
cj46OnZhbHVlKTsKLSAgICAgICAgcmV0dXJuOwotICAgIGNhc2UgSXRlbVR5cGU6OkRyYXdOYXRp
dmVJbWFnZToKLSAgICAgICAgc3RhdGljX2Fzc2VydChzdGQ6OmlzX3RyaXZpYWxseV9kZXN0cnVj
dGlibGU8RHJhd05hdGl2ZUltYWdlPjo6dmFsdWUpOwotICAgICAgICByZXR1cm47Ci0gICAgY2Fz
ZSBJdGVtVHlwZTo6RHJhd1BhdHRlcm46Ci0gICAgICAgIHN0YXRpY19hc3NlcnQoc3RkOjppc190
cml2aWFsbHlfZGVzdHJ1Y3RpYmxlPERyYXdQYXR0ZXJuPjo6dmFsdWUpOwotICAgICAgICByZXR1
cm47Ci0gICAgY2FzZSBJdGVtVHlwZTo6RHJhd0xpbmU6Ci0gICAgICAgIHN0YXRpY19hc3NlcnQo
c3RkOjppc190cml2aWFsbHlfZGVzdHJ1Y3RpYmxlPERyYXdMaW5lPjo6dmFsdWUpOwotICAgICAg
ICByZXR1cm47Ci0gICAgY2FzZSBJdGVtVHlwZTo6RHJhd1JlY3Q6Ci0gICAgICAgIHN0YXRpY19h
c3NlcnQoc3RkOjppc190cml2aWFsbHlfZGVzdHJ1Y3RpYmxlPERyYXdSZWN0Pjo6dmFsdWUpOwot
ICAgICAgICByZXR1cm47Ci0gICAgY2FzZSBJdGVtVHlwZTo6RW5kQ2xpcFRvRHJhd2luZ0NvbW1h
bmRzOgotICAgICAgICBzdGF0aWNfYXNzZXJ0KHN0ZDo6aXNfdHJpdmlhbGx5X2Rlc3RydWN0aWJs
ZTxFbmRDbGlwVG9EcmF3aW5nQ29tbWFuZHM+Ojp2YWx1ZSk7Ci0gICAgICAgIHJldHVybjsKLSAg
ICBjYXNlIEl0ZW1UeXBlOjpFbmRUcmFuc3BhcmVuY3lMYXllcjoKLSAgICAgICAgc3RhdGljX2Fz
c2VydChzdGQ6OmlzX3RyaXZpYWxseV9kZXN0cnVjdGlibGU8RW5kVHJhbnNwYXJlbmN5TGF5ZXI+
Ojp2YWx1ZSk7Ci0gICAgICAgIHJldHVybjsKLSAgICBjYXNlIEl0ZW1UeXBlOjpGaWxsRWxsaXBz
ZToKLSAgICAgICAgc3RhdGljX2Fzc2VydChzdGQ6OmlzX3RyaXZpYWxseV9kZXN0cnVjdGlibGU8
RmlsbEVsbGlwc2U+Ojp2YWx1ZSk7Ci0gICAgICAgIHJldHVybjsKLSNpZiBFTkFCTEUoSU5MSU5F
X1BBVEhfREFUQSkKLSAgICBjYXNlIEl0ZW1UeXBlOjpGaWxsSW5saW5lUGF0aDoKLSAgICAgICAg
c3RhdGljX2Fzc2VydChzdGQ6OmlzX3RyaXZpYWxseV9kZXN0cnVjdGlibGU8RmlsbElubGluZVBh
dGg+Ojp2YWx1ZSk7Ci0gICAgICAgIHJldHVybjsKLSNlbmRpZgotICAgIGNhc2UgSXRlbVR5cGU6
OkZpbGxSZWN0OgotICAgICAgICBzdGF0aWNfYXNzZXJ0KHN0ZDo6aXNfdHJpdmlhbGx5X2Rlc3Ry
dWN0aWJsZTxGaWxsUmVjdD46OnZhbHVlKTsKLSAgICAgICAgcmV0dXJuOwotICAgIGNhc2UgSXRl
bVR5cGU6OkZsdXNoQ29udGV4dDoKLSAgICAgICAgc3RhdGljX2Fzc2VydChzdGQ6OmlzX3RyaXZp
YWxseV9kZXN0cnVjdGlibGU8Rmx1c2hDb250ZXh0Pjo6dmFsdWUpOwotICAgICAgICByZXR1cm47
Ci0gICAgY2FzZSBJdGVtVHlwZTo6TWV0YUNvbW1hbmRDaGFuZ2VEZXN0aW5hdGlvbkltYWdlQnVm
ZmVyOgotICAgICAgICBzdGF0aWNfYXNzZXJ0KHN0ZDo6aXNfdHJpdmlhbGx5X2Rlc3RydWN0aWJs
ZTxNZXRhQ29tbWFuZENoYW5nZURlc3RpbmF0aW9uSW1hZ2VCdWZmZXI+Ojp2YWx1ZSk7Ci0gICAg
ICAgIHJldHVybjsKLSAgICBjYXNlIEl0ZW1UeXBlOjpNZXRhQ29tbWFuZENoYW5nZUl0ZW1CdWZm
ZXI6Ci0gICAgICAgIHN0YXRpY19hc3NlcnQoc3RkOjppc190cml2aWFsbHlfZGVzdHJ1Y3RpYmxl
PE1ldGFDb21tYW5kQ2hhbmdlSXRlbUJ1ZmZlcj46OnZhbHVlKTsKLSAgICAgICAgcmV0dXJuOwot
I2lmIEVOQUJMRShWSURFTykKLSAgICBjYXNlIEl0ZW1UeXBlOjpQYWludEZyYW1lRm9yTWVkaWE6
Ci0gICAgICAgIHN0YXRpY19hc3NlcnQoc3RkOjppc190cml2aWFsbHlfZGVzdHJ1Y3RpYmxlPFBh
aW50RnJhbWVGb3JNZWRpYT46OnZhbHVlKTsKLSAgICAgICAgcmV0dXJuOwotI2VuZGlmCi0gICAg
Y2FzZSBJdGVtVHlwZTo6UmVzdG9yZToKLSAgICAgICAgc3RhdGljX2Fzc2VydChzdGQ6OmlzX3Ry
aXZpYWxseV9kZXN0cnVjdGlibGU8UmVzdG9yZT46OnZhbHVlKTsKLSAgICAgICAgcmV0dXJuOwot
ICAgIGNhc2UgSXRlbVR5cGU6OlJvdGF0ZToKLSAgICAgICAgc3RhdGljX2Fzc2VydChzdGQ6Omlz
X3RyaXZpYWxseV9kZXN0cnVjdGlibGU8Um90YXRlPjo6dmFsdWUpOwotICAgICAgICByZXR1cm47
Ci0gICAgY2FzZSBJdGVtVHlwZTo6U2F2ZToKLSAgICAgICAgc3RhdGljX2Fzc2VydChzdGQ6Omlz
X3RyaXZpYWxseV9kZXN0cnVjdGlibGU8U2F2ZT46OnZhbHVlKTsKLSAgICAgICAgcmV0dXJuOwot
ICAgIGNhc2UgSXRlbVR5cGU6OlNjYWxlOgotICAgICAgICBzdGF0aWNfYXNzZXJ0KHN0ZDo6aXNf
dHJpdmlhbGx5X2Rlc3RydWN0aWJsZTxTY2FsZT46OnZhbHVlKTsKLSAgICAgICAgcmV0dXJuOwot
ICAgIGNhc2UgSXRlbVR5cGU6OlNldENUTToKLSAgICAgICAgc3RhdGljX2Fzc2VydChzdGQ6Omlz
X3RyaXZpYWxseV9kZXN0cnVjdGlibGU8U2V0Q1RNPjo6dmFsdWUpOwotICAgICAgICByZXR1cm47
Ci0gICAgY2FzZSBJdGVtVHlwZTo6U2V0SW5saW5lRmlsbENvbG9yOgotICAgICAgICBzdGF0aWNf
YXNzZXJ0KHN0ZDo6aXNfdHJpdmlhbGx5X2Rlc3RydWN0aWJsZTxTZXRJbmxpbmVGaWxsQ29sb3I+
Ojp2YWx1ZSk7Ci0gICAgICAgIHJldHVybjsKLSAgICBjYXNlIEl0ZW1UeXBlOjpTZXRJbmxpbmVG
aWxsR3JhZGllbnQ6Ci0gICAgICAgIHN0YXRpY19hc3NlcnQoc3RkOjppc190cml2aWFsbHlfZGVz
dHJ1Y3RpYmxlPFNldElubGluZUZpbGxHcmFkaWVudD46OnZhbHVlKTsKLSAgICAgICAgcmV0dXJu
OwotICAgIGNhc2UgSXRlbVR5cGU6OlNldElubGluZVN0cm9rZUNvbG9yOgotICAgICAgICBzdGF0
aWNfYXNzZXJ0KHN0ZDo6aXNfdHJpdmlhbGx5X2Rlc3RydWN0aWJsZTxTZXRJbmxpbmVTdHJva2VD
b2xvcj46OnZhbHVlKTsKLSAgICAgICAgcmV0dXJuOwotICAgIGNhc2UgSXRlbVR5cGU6OlNldExp
bmVDYXA6Ci0gICAgICAgIHN0YXRpY19hc3NlcnQoc3RkOjppc190cml2aWFsbHlfZGVzdHJ1Y3Rp
YmxlPFNldExpbmVDYXA+Ojp2YWx1ZSk7Ci0gICAgICAgIHJldHVybjsKLSAgICBjYXNlIEl0ZW1U
eXBlOjpTZXRMaW5lSm9pbjoKLSAgICAgICAgc3RhdGljX2Fzc2VydChzdGQ6OmlzX3RyaXZpYWxs
eV9kZXN0cnVjdGlibGU8U2V0TGluZUpvaW4+Ojp2YWx1ZSk7Ci0gICAgICAgIHJldHVybjsKLSAg
ICBjYXNlIEl0ZW1UeXBlOjpTZXRNaXRlckxpbWl0OgotICAgICAgICBzdGF0aWNfYXNzZXJ0KHN0
ZDo6aXNfdHJpdmlhbGx5X2Rlc3RydWN0aWJsZTxTZXRNaXRlckxpbWl0Pjo6dmFsdWUpOwotICAg
ICAgICByZXR1cm47Ci0gICAgY2FzZSBJdGVtVHlwZTo6U2V0U3Ryb2tlVGhpY2tuZXNzOgotICAg
ICAgICBzdGF0aWNfYXNzZXJ0KHN0ZDo6aXNfdHJpdmlhbGx5X2Rlc3RydWN0aWJsZTxTZXRTdHJv
a2VUaGlja25lc3M+Ojp2YWx1ZSk7Ci0gICAgICAgIHJldHVybjsKLSAgICBjYXNlIEl0ZW1UeXBl
OjpTdHJva2VFbGxpcHNlOgotICAgICAgICBzdGF0aWNfYXNzZXJ0KHN0ZDo6aXNfdHJpdmlhbGx5
X2Rlc3RydWN0aWJsZTxTdHJva2VFbGxpcHNlPjo6dmFsdWUpOwotICAgICAgICByZXR1cm47Ci0j
aWYgRU5BQkxFKElOTElORV9QQVRIX0RBVEEpCi0gICAgY2FzZSBJdGVtVHlwZTo6U3Ryb2tlSW5s
aW5lUGF0aDoKLSAgICAgICAgc3RhdGljX2Fzc2VydChzdGQ6OmlzX3RyaXZpYWxseV9kZXN0cnVj
dGlibGU8U3Ryb2tlSW5saW5lUGF0aD46OnZhbHVlKTsKLSAgICAgICAgcmV0dXJuOwotI2VuZGlm
Ci0gICAgY2FzZSBJdGVtVHlwZTo6U3Ryb2tlUmVjdDoKLSAgICAgICAgc3RhdGljX2Fzc2VydChz
dGQ6OmlzX3RyaXZpYWxseV9kZXN0cnVjdGlibGU8U3Ryb2tlUmVjdD46OnZhbHVlKTsKLSAgICAg
ICAgcmV0dXJuOwotICAgIGNhc2UgSXRlbVR5cGU6OlN0cm9rZUxpbmU6Ci0gICAgICAgIHN0YXRp
Y19hc3NlcnQoc3RkOjppc190cml2aWFsbHlfZGVzdHJ1Y3RpYmxlPFN0cm9rZUxpbmU+Ojp2YWx1
ZSk7Ci0gICAgICAgIHJldHVybjsKLSAgICBjYXNlIEl0ZW1UeXBlOjpUcmFuc2xhdGU6Ci0gICAg
ICAgIHN0YXRpY19hc3NlcnQoc3RkOjppc190cml2aWFsbHlfZGVzdHJ1Y3RpYmxlPFRyYW5zbGF0
ZT46OnZhbHVlKTsKLSAgICAgICAgcmV0dXJuOwotICAgIH0KLX0KLQogdGVtcGxhdGU8dHlwZW5h
bWUgSXRlbT4KIHN0YXRpYyBpbmxpbmUgYm9vbCBjb3B5SW50byh1aW50OF90KiBkZXN0aW5hdGlv
bldpdGhPZmZzZXQsIGNvbnN0IEl0ZW0mIGl0ZW0pCiB7CkBAIC00MzcsMTg2ICs0MSw2IEBAIHN0
YXRpYyBpbmxpbmUgYm9vbCBjb3B5SW50byh1aW50OF90KiBkZXN0aW5hdGlvbldpdGhPZmZzZXQs
IGNvbnN0IEl0ZW0mIGl0ZW0pCiAgICAgcmV0dXJuIGlzVmFsaWQoKm5ld0l0ZW0pOwogfQogCi10
ZW1wbGF0ZTx0eXBlbmFtZSBJdGVtPgotc3RhdGljIGlubGluZSBib29sIGNvcHlJbnRvKHVpbnQ4
X3QqIGRlc3RpbmF0aW9uV2l0aE9mZnNldCwgY29uc3QgSXRlbUhhbmRsZSYgaXRlbUhhbmRsZSkK
LXsKLSAgICByZXR1cm4gY29weUludG8oZGVzdGluYXRpb25XaXRoT2Zmc2V0LCBpdGVtSGFuZGxl
LmdldDxJdGVtPigpKTsKLX0KLQotYm9vbCBJdGVtSGFuZGxlOjpzYWZlQ29weShJdGVtSGFuZGxl
IGRlc3RpbmF0aW9uKSBjb25zdAotewotICAgIGF1dG8gaXRlbVR5cGUgPSB0eXBlKCk7Ci0gICAg
ZGVzdGluYXRpb24uZGF0YVswXSA9IHN0YXRpY19jYXN0PHVpbnQ4X3Q+KGl0ZW1UeXBlKTsKLSAg
ICBhdXRvIGl0ZW1PZmZzZXQgPSBkZXN0aW5hdGlvbi5kYXRhICsgc2l6ZW9mKHVpbnQ2NF90KTsK
LSAgICBzd2l0Y2ggKGl0ZW1UeXBlKSB7Ci0gICAgY2FzZSBJdGVtVHlwZTo6Q2xpcE91dFRvUGF0
aDoKLSAgICAgICAgcmV0dXJuIGNvcHlJbnRvPENsaXBPdXRUb1BhdGg+KGl0ZW1PZmZzZXQsICp0
aGlzKTsKLSAgICBjYXNlIEl0ZW1UeXBlOjpDbGlwUGF0aDoKLSAgICAgICAgcmV0dXJuIGNvcHlJ
bnRvPENsaXBQYXRoPihpdGVtT2Zmc2V0LCAqdGhpcyk7Ci0gICAgY2FzZSBJdGVtVHlwZTo6RHJh
d0ZvY3VzUmluZ1BhdGg6Ci0gICAgICAgIHJldHVybiBjb3B5SW50bzxEcmF3Rm9jdXNSaW5nUGF0
aD4oaXRlbU9mZnNldCwgKnRoaXMpOwotICAgIGNhc2UgSXRlbVR5cGU6OkRyYXdGb2N1c1JpbmdS
ZWN0czoKLSAgICAgICAgcmV0dXJuIGNvcHlJbnRvPERyYXdGb2N1c1JpbmdSZWN0cz4oaXRlbU9m
ZnNldCwgKnRoaXMpOwotICAgIGNhc2UgSXRlbVR5cGU6OkRyYXdHbHlwaHM6Ci0gICAgICAgIHJl
dHVybiBjb3B5SW50bzxEcmF3R2x5cGhzPihpdGVtT2Zmc2V0LCAqdGhpcyk7Ci0gICAgY2FzZSBJ
dGVtVHlwZTo6RHJhd0ltYWdlQnVmZmVyOgotICAgICAgICByZXR1cm4gY29weUludG88RHJhd0lt
YWdlQnVmZmVyPihpdGVtT2Zmc2V0LCAqdGhpcyk7Ci0gICAgY2FzZSBJdGVtVHlwZTo6RHJhd0xp
bmVzRm9yVGV4dDoKLSAgICAgICAgcmV0dXJuIGNvcHlJbnRvPERyYXdMaW5lc0ZvclRleHQ+KGl0
ZW1PZmZzZXQsICp0aGlzKTsKLSAgICBjYXNlIEl0ZW1UeXBlOjpEcmF3TmF0aXZlSW1hZ2U6Ci0g
ICAgICAgIHJldHVybiBjb3B5SW50bzxEcmF3TmF0aXZlSW1hZ2U+KGl0ZW1PZmZzZXQsICp0aGlz
KTsKLSAgICBjYXNlIEl0ZW1UeXBlOjpEcmF3UGF0dGVybjoKLSAgICAgICAgcmV0dXJuIGNvcHlJ
bnRvPERyYXdQYXR0ZXJuPihpdGVtT2Zmc2V0LCAqdGhpcyk7Ci0gICAgY2FzZSBJdGVtVHlwZTo6
RHJhd1BhdGg6Ci0gICAgICAgIHJldHVybiBjb3B5SW50bzxEcmF3UGF0aD4oaXRlbU9mZnNldCwg
KnRoaXMpOwotICAgIGNhc2UgSXRlbVR5cGU6OkZpbGxDb21wb3NpdGVkUmVjdDoKLSAgICAgICAg
cmV0dXJuIGNvcHlJbnRvPEZpbGxDb21wb3NpdGVkUmVjdD4oaXRlbU9mZnNldCwgKnRoaXMpOwot
ICAgIGNhc2UgSXRlbVR5cGU6OkZpbGxQYXRoOgotICAgICAgICByZXR1cm4gY29weUludG88Rmls
bFBhdGg+KGl0ZW1PZmZzZXQsICp0aGlzKTsKLSAgICBjYXNlIEl0ZW1UeXBlOjpGaWxsUmVjdFdp
dGhDb2xvcjoKLSAgICAgICAgcmV0dXJuIGNvcHlJbnRvPEZpbGxSZWN0V2l0aENvbG9yPihpdGVt
T2Zmc2V0LCAqdGhpcyk7Ci0gICAgY2FzZSBJdGVtVHlwZTo6RmlsbFJlY3RXaXRoR3JhZGllbnQ6
Ci0gICAgICAgIHJldHVybiBjb3B5SW50bzxGaWxsUmVjdFdpdGhHcmFkaWVudD4oaXRlbU9mZnNl
dCwgKnRoaXMpOwotICAgIGNhc2UgSXRlbVR5cGU6OkZpbGxSZWN0V2l0aFJvdW5kZWRIb2xlOgot
ICAgICAgICByZXR1cm4gY29weUludG88RmlsbFJlY3RXaXRoUm91bmRlZEhvbGU+KGl0ZW1PZmZz
ZXQsICp0aGlzKTsKLSAgICBjYXNlIEl0ZW1UeXBlOjpGaWxsUm91bmRlZFJlY3Q6Ci0gICAgICAg
IHJldHVybiBjb3B5SW50bzxGaWxsUm91bmRlZFJlY3Q+KGl0ZW1PZmZzZXQsICp0aGlzKTsKLSAg
ICBjYXNlIEl0ZW1UeXBlOjpHZXRJbWFnZURhdGE6Ci0gICAgICAgIHJldHVybiBjb3B5SW50bzxH
ZXRJbWFnZURhdGE+KGl0ZW1PZmZzZXQsICp0aGlzKTsKLSAgICBjYXNlIEl0ZW1UeXBlOjpQdXRJ
bWFnZURhdGE6Ci0gICAgICAgIHJldHVybiBjb3B5SW50bzxQdXRJbWFnZURhdGE+KGl0ZW1PZmZz
ZXQsICp0aGlzKTsKLSAgICBjYXNlIEl0ZW1UeXBlOjpTZXRMaW5lRGFzaDoKLSAgICAgICAgcmV0
dXJuIGNvcHlJbnRvPFNldExpbmVEYXNoPihpdGVtT2Zmc2V0LCAqdGhpcyk7Ci0gICAgY2FzZSBJ
dGVtVHlwZTo6U2V0U3RhdGU6Ci0gICAgICAgIHJldHVybiBjb3B5SW50bzxTZXRTdGF0ZT4oaXRl
bU9mZnNldCwgKnRoaXMpOwotICAgIGNhc2UgSXRlbVR5cGU6OlN0cm9rZVBhdGg6Ci0gICAgICAg
IHJldHVybiBjb3B5SW50bzxTdHJva2VQYXRoPihpdGVtT2Zmc2V0LCAqdGhpcyk7Ci0gICAgY2Fz
ZSBJdGVtVHlwZTo6QXBwbHlEZXZpY2VTY2FsZUZhY3RvcjoKLSAgICAgICAgcmV0dXJuIGNvcHlJ
bnRvPEFwcGx5RGV2aWNlU2NhbGVGYWN0b3I+KGl0ZW1PZmZzZXQsICp0aGlzKTsKLSNpZiBVU0Uo
Q0cpCi0gICAgY2FzZSBJdGVtVHlwZTo6QXBwbHlGaWxsUGF0dGVybjoKLSAgICAgICAgcmV0dXJu
IGNvcHlJbnRvPEFwcGx5RmlsbFBhdHRlcm4+KGl0ZW1PZmZzZXQsICp0aGlzKTsKLSAgICBjYXNl
IEl0ZW1UeXBlOjpBcHBseVN0cm9rZVBhdHRlcm46Ci0gICAgICAgIHJldHVybiBjb3B5SW50bzxB
cHBseVN0cm9rZVBhdHRlcm4+KGl0ZW1PZmZzZXQsICp0aGlzKTsKLSNlbmRpZgotICAgIGNhc2Ug
SXRlbVR5cGU6OkJlZ2luQ2xpcFRvRHJhd2luZ0NvbW1hbmRzOgotICAgICAgICByZXR1cm4gY29w
eUludG88QmVnaW5DbGlwVG9EcmF3aW5nQ29tbWFuZHM+KGl0ZW1PZmZzZXQsICp0aGlzKTsKLSAg
ICBjYXNlIEl0ZW1UeXBlOjpCZWdpblRyYW5zcGFyZW5jeUxheWVyOgotICAgICAgICByZXR1cm4g
Y29weUludG88QmVnaW5UcmFuc3BhcmVuY3lMYXllcj4oaXRlbU9mZnNldCwgKnRoaXMpOwotICAg
IGNhc2UgSXRlbVR5cGU6OkNsZWFyUmVjdDoKLSAgICAgICAgcmV0dXJuIGNvcHlJbnRvPENsZWFy
UmVjdD4oaXRlbU9mZnNldCwgKnRoaXMpOwotICAgIGNhc2UgSXRlbVR5cGU6OkNsZWFyU2hhZG93
OgotICAgICAgICByZXR1cm4gY29weUludG88Q2xlYXJTaGFkb3c+KGl0ZW1PZmZzZXQsICp0aGlz
KTsKLSAgICBjYXNlIEl0ZW1UeXBlOjpDbGlwOgotICAgICAgICByZXR1cm4gY29weUludG88Q2xp
cD4oaXRlbU9mZnNldCwgKnRoaXMpOwotICAgIGNhc2UgSXRlbVR5cGU6OkNsaXBPdXQ6Ci0gICAg
ICAgIHJldHVybiBjb3B5SW50bzxDbGlwT3V0PihpdGVtT2Zmc2V0LCAqdGhpcyk7Ci0gICAgY2Fz
ZSBJdGVtVHlwZTo6Q2xpcFRvSW1hZ2VCdWZmZXI6Ci0gICAgICAgIHJldHVybiBjb3B5SW50bzxD
bGlwVG9JbWFnZUJ1ZmZlcj4oaXRlbU9mZnNldCwgKnRoaXMpOwotICAgIGNhc2UgSXRlbVR5cGU6
OkNvbmNhdGVuYXRlQ1RNOgotICAgICAgICByZXR1cm4gY29weUludG88Q29uY2F0ZW5hdGVDVE0+
KGl0ZW1PZmZzZXQsICp0aGlzKTsKLSAgICBjYXNlIEl0ZW1UeXBlOjpEcmF3RG90c0ZvckRvY3Vt
ZW50TWFya2VyOgotICAgICAgICByZXR1cm4gY29weUludG88RHJhd0RvdHNGb3JEb2N1bWVudE1h
cmtlcj4oaXRlbU9mZnNldCwgKnRoaXMpOwotICAgIGNhc2UgSXRlbVR5cGU6OkRyYXdFbGxpcHNl
OgotICAgICAgICByZXR1cm4gY29weUludG88RHJhd0VsbGlwc2U+KGl0ZW1PZmZzZXQsICp0aGlz
KTsKLSAgICBjYXNlIEl0ZW1UeXBlOjpEcmF3TGluZToKLSAgICAgICAgcmV0dXJuIGNvcHlJbnRv
PERyYXdMaW5lPihpdGVtT2Zmc2V0LCAqdGhpcyk7Ci0gICAgY2FzZSBJdGVtVHlwZTo6RHJhd1Jl
Y3Q6Ci0gICAgICAgIHJldHVybiBjb3B5SW50bzxEcmF3UmVjdD4oaXRlbU9mZnNldCwgKnRoaXMp
OwotICAgIGNhc2UgSXRlbVR5cGU6OkVuZENsaXBUb0RyYXdpbmdDb21tYW5kczoKLSAgICAgICAg
cmV0dXJuIGNvcHlJbnRvPEVuZENsaXBUb0RyYXdpbmdDb21tYW5kcz4oaXRlbU9mZnNldCwgKnRo
aXMpOwotICAgIGNhc2UgSXRlbVR5cGU6OkVuZFRyYW5zcGFyZW5jeUxheWVyOgotICAgICAgICBy
ZXR1cm4gY29weUludG88RW5kVHJhbnNwYXJlbmN5TGF5ZXI+KGl0ZW1PZmZzZXQsICp0aGlzKTsK
LSAgICBjYXNlIEl0ZW1UeXBlOjpGaWxsRWxsaXBzZToKLSAgICAgICAgcmV0dXJuIGNvcHlJbnRv
PEZpbGxFbGxpcHNlPihpdGVtT2Zmc2V0LCAqdGhpcyk7Ci0jaWYgRU5BQkxFKElOTElORV9QQVRI
X0RBVEEpCi0gICAgY2FzZSBJdGVtVHlwZTo6RmlsbElubGluZVBhdGg6Ci0gICAgICAgIHJldHVy
biBjb3B5SW50bzxGaWxsSW5saW5lUGF0aD4oaXRlbU9mZnNldCwgKnRoaXMpOwotI2VuZGlmCi0g
ICAgY2FzZSBJdGVtVHlwZTo6RmlsbFJlY3Q6Ci0gICAgICAgIHJldHVybiBjb3B5SW50bzxGaWxs
UmVjdD4oaXRlbU9mZnNldCwgKnRoaXMpOwotICAgIGNhc2UgSXRlbVR5cGU6OkZsdXNoQ29udGV4
dDoKLSAgICAgICAgcmV0dXJuIGNvcHlJbnRvPEZsdXNoQ29udGV4dD4oaXRlbU9mZnNldCwgKnRo
aXMpOwotICAgIGNhc2UgSXRlbVR5cGU6Ok1ldGFDb21tYW5kQ2hhbmdlRGVzdGluYXRpb25JbWFn
ZUJ1ZmZlcjoKLSAgICAgICAgcmV0dXJuIGNvcHlJbnRvPE1ldGFDb21tYW5kQ2hhbmdlRGVzdGlu
YXRpb25JbWFnZUJ1ZmZlcj4oaXRlbU9mZnNldCwgKnRoaXMpOwotICAgIGNhc2UgSXRlbVR5cGU6
Ok1ldGFDb21tYW5kQ2hhbmdlSXRlbUJ1ZmZlcjoKLSAgICAgICAgcmV0dXJuIGNvcHlJbnRvPE1l
dGFDb21tYW5kQ2hhbmdlSXRlbUJ1ZmZlcj4oaXRlbU9mZnNldCwgKnRoaXMpOwotI2lmIEVOQUJM
RShWSURFTykKLSAgICBjYXNlIEl0ZW1UeXBlOjpQYWludEZyYW1lRm9yTWVkaWE6Ci0gICAgICAg
IHJldHVybiBjb3B5SW50bzxQYWludEZyYW1lRm9yTWVkaWE+KGl0ZW1PZmZzZXQsICp0aGlzKTsK
LSNlbmRpZgotICAgIGNhc2UgSXRlbVR5cGU6OlJlc3RvcmU6Ci0gICAgICAgIHJldHVybiBjb3B5
SW50bzxSZXN0b3JlPihpdGVtT2Zmc2V0LCAqdGhpcyk7Ci0gICAgY2FzZSBJdGVtVHlwZTo6Um90
YXRlOgotICAgICAgICByZXR1cm4gY29weUludG88Um90YXRlPihpdGVtT2Zmc2V0LCAqdGhpcyk7
Ci0gICAgY2FzZSBJdGVtVHlwZTo6U2F2ZToKLSAgICAgICAgcmV0dXJuIGNvcHlJbnRvPFNhdmU+
KGl0ZW1PZmZzZXQsICp0aGlzKTsKLSAgICBjYXNlIEl0ZW1UeXBlOjpTY2FsZToKLSAgICAgICAg
cmV0dXJuIGNvcHlJbnRvPFNjYWxlPihpdGVtT2Zmc2V0LCAqdGhpcyk7Ci0gICAgY2FzZSBJdGVt
VHlwZTo6U2V0Q1RNOgotICAgICAgICByZXR1cm4gY29weUludG88U2V0Q1RNPihpdGVtT2Zmc2V0
LCAqdGhpcyk7Ci0gICAgY2FzZSBJdGVtVHlwZTo6U2V0SW5saW5lRmlsbENvbG9yOgotICAgICAg
ICByZXR1cm4gY29weUludG88U2V0SW5saW5lRmlsbENvbG9yPihpdGVtT2Zmc2V0LCAqdGhpcyk7
Ci0gICAgY2FzZSBJdGVtVHlwZTo6U2V0SW5saW5lRmlsbEdyYWRpZW50OgotICAgICAgICByZXR1
cm4gY29weUludG88U2V0SW5saW5lRmlsbEdyYWRpZW50PihpdGVtT2Zmc2V0LCAqdGhpcyk7Ci0g
ICAgY2FzZSBJdGVtVHlwZTo6U2V0SW5saW5lU3Ryb2tlQ29sb3I6Ci0gICAgICAgIHJldHVybiBj
b3B5SW50bzxTZXRJbmxpbmVTdHJva2VDb2xvcj4oaXRlbU9mZnNldCwgKnRoaXMpOwotICAgIGNh
c2UgSXRlbVR5cGU6OlNldExpbmVDYXA6Ci0gICAgICAgIHJldHVybiBjb3B5SW50bzxTZXRMaW5l
Q2FwPihpdGVtT2Zmc2V0LCAqdGhpcyk7Ci0gICAgY2FzZSBJdGVtVHlwZTo6U2V0TGluZUpvaW46
Ci0gICAgICAgIHJldHVybiBjb3B5SW50bzxTZXRMaW5lSm9pbj4oaXRlbU9mZnNldCwgKnRoaXMp
OwotICAgIGNhc2UgSXRlbVR5cGU6OlNldE1pdGVyTGltaXQ6Ci0gICAgICAgIHJldHVybiBjb3B5
SW50bzxTZXRNaXRlckxpbWl0PihpdGVtT2Zmc2V0LCAqdGhpcyk7Ci0gICAgY2FzZSBJdGVtVHlw
ZTo6U2V0U3Ryb2tlVGhpY2tuZXNzOgotICAgICAgICByZXR1cm4gY29weUludG88U2V0U3Ryb2tl
VGhpY2tuZXNzPihpdGVtT2Zmc2V0LCAqdGhpcyk7Ci0gICAgY2FzZSBJdGVtVHlwZTo6U3Ryb2tl
RWxsaXBzZToKLSAgICAgICAgcmV0dXJuIGNvcHlJbnRvPFN0cm9rZUVsbGlwc2U+KGl0ZW1PZmZz
ZXQsICp0aGlzKTsKLSNpZiBFTkFCTEUoSU5MSU5FX1BBVEhfREFUQSkKLSAgICBjYXNlIEl0ZW1U
eXBlOjpTdHJva2VJbmxpbmVQYXRoOgotICAgICAgICByZXR1cm4gY29weUludG88U3Ryb2tlSW5s
aW5lUGF0aD4oaXRlbU9mZnNldCwgKnRoaXMpOwotI2VuZGlmCi0gICAgY2FzZSBJdGVtVHlwZTo6
U3Ryb2tlUmVjdDoKLSAgICAgICAgcmV0dXJuIGNvcHlJbnRvPFN0cm9rZVJlY3Q+KGl0ZW1PZmZz
ZXQsICp0aGlzKTsKLSAgICBjYXNlIEl0ZW1UeXBlOjpTdHJva2VMaW5lOgotICAgICAgICByZXR1
cm4gY29weUludG88U3Ryb2tlTGluZT4oaXRlbU9mZnNldCwgKnRoaXMpOwotICAgIGNhc2UgSXRl
bVR5cGU6OlRyYW5zbGF0ZToKLSAgICAgICAgcmV0dXJuIGNvcHlJbnRvPFRyYW5zbGF0ZT4oaXRl
bU9mZnNldCwgKnRoaXMpOwotICAgIH0KLSAgICByZXR1cm4gZmFsc2U7Ci19Ci0KLWJvb2wgc2Fm
ZUNvcHkoSXRlbUhhbmRsZSBkZXN0aW5hdGlvbiwgY29uc3QgRGlzcGxheUxpc3RJdGVtJiBzb3Vy
Y2UpCi17Ci0gICAgcmV0dXJuIFdURjo6c3dpdGNoT24oc291cmNlLCBbJl0oY29uc3QgYXV0byYg
c291cmNlKSB7Ci0gICAgICAgIHVzaW5nIERpc3BsYXlMaXN0SXRlbVR5cGUgPSB0eXBlbmFtZSBX
VEY6OlJlbW92ZUNWQW5kUmVmZXJlbmNlPGRlY2x0eXBlKHNvdXJjZSk+Ojp0eXBlOwotICAgICAg
ICBjb25zdGV4cHIgYXV0byBpdGVtVHlwZSA9IERpc3BsYXlMaXN0SXRlbVR5cGU6Oml0ZW1UeXBl
OwotICAgICAgICBkZXN0aW5hdGlvbi5kYXRhWzBdID0gc3RhdGljX2Nhc3Q8dWludDhfdD4oaXRl
bVR5cGUpOwotICAgICAgICBhdXRvIGl0ZW1PZmZzZXQgPSBkZXN0aW5hdGlvbi5kYXRhICsgc2l6
ZW9mKHVpbnQ2NF90KTsKLSAgICAgICAgcmV0dXJuIGNvcHlJbnRvPERpc3BsYXlMaXN0SXRlbVR5
cGU+KGl0ZW1PZmZzZXQsIHNvdXJjZSk7Ci0gICAgfSk7Ci19Ci0KLU9wdGlvbmFsPERpc3BsYXlM
aXN0SXRlbT4gc2FmZUNvcHkoSXRlbUhhbmRsZSBzb3VyY2UpCi17Ci0gICAgdXNpbmcgU2VxdWVu
Y2UgPSBicmlnYW5kOjptYWtlX3NlcXVlbmNlPGJyaWdhbmQ6OnB0cmRpZmZfdDwwPiwgV1RGOjp2
YXJpYW50X3NpemU8RGlzcGxheUxpc3RJdGVtPjo6dmFsdWU+OwotCi0gICAgT3B0aW9uYWw8RGlz
cGxheUxpc3RJdGVtPiByZXN1bHQ7Ci0gICAgYnJpZ2FuZDo6Zm9yX2VhY2g8U2VxdWVuY2U+KFsm
XShhdXRvJiYgdHlwZSkgewotICAgICAgICB1c2luZyBJID0gdHlwZW5hbWUgV1RGOjpSZW1vdmVD
VkFuZFJlZmVyZW5jZTxkZWNsdHlwZSh0eXBlKT46OnR5cGU6OnR5cGU7Ci0gICAgICAgIHVzaW5n
IERpc3BsYXlMaXN0SXRlbVR5cGUgPSBXVEY6OnZhcmlhbnRfYWx0ZXJuYXRpdmVfdDxJOjp2YWx1
ZSwgRGlzcGxheUxpc3RJdGVtPjsKLQotICAgICAgICBpZiAoc291cmNlLnR5cGUoKSAhPSBEaXNw
bGF5TGlzdEl0ZW1UeXBlOjppdGVtVHlwZSkKLSAgICAgICAgICAgIHJldHVybjsKLQotICAgICAg
ICBhdXRvIGRpc3BsYXlMaXN0SXRlbSA9IHNvdXJjZS5nZXQ8RGlzcGxheUxpc3RJdGVtVHlwZT4o
KTsKLSAgICAgICAgaWYgKGlzVmFsaWQoZGlzcGxheUxpc3RJdGVtKSkgewotICAgICAgICAgICAg
QVNTRVJUKCFyZXN1bHQpOwotICAgICAgICAgICAgcmVzdWx0ID0gRGlzcGxheUxpc3RJdGVtKFdU
Rk1vdmUoZGlzcGxheUxpc3RJdGVtKSk7Ci0gICAgICAgIH0KLSAgICB9KTsKLSAgICByZXR1cm4g
cmVzdWx0OwotfQotCiBJdGVtQnVmZmVyOjpJdGVtQnVmZmVyKEl0ZW1CdWZmZXJIYW5kbGVzJiYg
aGFuZGxlcykKICAgICA6IG1fcmVhZE9ubHlCdWZmZXJzKFdURk1vdmUoaGFuZGxlcykpCiB7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMv
RGlzcGxheUxpc3RJdGVtQnVmZmVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RJdGVtQnVmZmVyLmgKaW5kZXggMzM2YTIxYTI1NDEx
Li43NjNhMGVjNTNlOWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdEl0ZW1CdWZmZXIuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RJdGVtQnVmZmVy
LmgKQEAgLTUyLDM5ICs1Miw2IEBAIHN0cnVjdCBJdGVtQnVmZmVySGFuZGxlIHsKIAogdXNpbmcg
SXRlbUJ1ZmZlckhhbmRsZXMgPSBWZWN0b3I8SXRlbUJ1ZmZlckhhbmRsZSwgMj47CiAKLS8vIEFu
IEl0ZW1IYW5kbGUgd3JhcHMgYSBwb2ludGVyIHRvIGFuIEl0ZW1UeXBlIGZvbGxvd2VkIGltbWVk
aWF0ZWx5IGJ5IGFuIGl0ZW0gb2YgdGhhdCB0eXBlLgotLy8gRWFjaCBpdGVtIGhhbmRsZSBkYXRh
IHBvaW50ZXIgaXMgYWxpZ25lZCB0byA4IGJ5dGVzLCBhbmQgdGhlIGl0ZW0gaXRzZWxmIGlzIGFs
c28gYWxpZ25lZAotLy8gdG8gOCBieXRlcy4gVG8gZW5zdXJlIHRoaXMsIHRoZSBpdGVtIHR5cGUg
Y29uc2lzdHMgb2YgOCBieXRlcyAoMSBieXRlIGZvciB0aGUgdHlwZSBhbmQgNwotLy8gYnl0ZXMg
b2YgcGFkZGluZykuCi1zdHJ1Y3QgSXRlbUhhbmRsZSB7Ci0gICAgdWludDhfdCogZGF0YSB7IG51
bGxwdHIgfTsKLQotICAgIHZvaWQgYXBwbHkoR3JhcGhpY3NDb250ZXh0Jik7Ci0gICAgV0VCQ09S
RV9FWFBPUlQgdm9pZCBkZXN0cm95KCk7Ci0gICAgYm9vbCBpc0RyYXdpbmdJdGVtKCkgY29uc3Qg
eyByZXR1cm4gV2ViQ29yZTo6RGlzcGxheUxpc3Q6OmlzRHJhd2luZ0l0ZW0odHlwZSgpKTsgfQot
Ci0gICAgb3BlcmF0b3IgYm9vbCgpIGNvbnN0IHsgcmV0dXJuICEhKCp0aGlzKTsgfQotICAgIGJv
b2wgb3BlcmF0b3IhKCkgY29uc3QgeyByZXR1cm4gIWRhdGE7IH0KLQotI2lmICFkZWZpbmVkKE5E
RUJVRykgfHwgIUxPR19ESVNBQkxFRAotICAgIENTdHJpbmcgZGVzY3JpcHRpb24oKSBjb25zdDsK
LSNlbmRpZgotCi0gICAgSXRlbVR5cGUgdHlwZSgpIGNvbnN0IHsgcmV0dXJuIHN0YXRpY19jYXN0
PEl0ZW1UeXBlPihkYXRhWzBdKTsgfQotCi0gICAgdGVtcGxhdGU8dHlwZW5hbWUgVD4gYm9vbCBp
cygpIGNvbnN0IHsgcmV0dXJuIHR5cGUoKSA9PSBUOjppdGVtVHlwZTsgfQotICAgIHRlbXBsYXRl
PHR5cGVuYW1lIFQ+IFQmIGdldCgpIGNvbnN0Ci0gICAgewotICAgICAgICBBU1NFUlQoaXM8VD4o
KSk7Ci0gICAgICAgIHJldHVybiAqcmVpbnRlcnByZXRfY2FzdDxUKj4oZGF0YSArIHNpemVvZih1
aW50NjRfdCkpOwotICAgIH0KLQotICAgIGJvb2wgc2FmZUNvcHkoSXRlbUhhbmRsZSBkZXN0aW5h
dGlvbikgY29uc3Q7Ci19OwotCi1ib29sIHNhZmVDb3B5KEl0ZW1IYW5kbGUgZGVzdGluYXRpb24s
IGNvbnN0IERpc3BsYXlMaXN0SXRlbSYgc291cmNlKTsKLU9wdGlvbmFsPERpc3BsYXlMaXN0SXRl
bT4gc2FmZUNvcHkoSXRlbUhhbmRsZSk7Ci0KIGVudW0gY2xhc3MgRGlkQ2hhbmdlSXRlbUJ1ZmZl
ciA6IGJvb2wgeyBObywgWWVzIH07CiAKIGNsYXNzIEl0ZW1CdWZmZXJXcml0aW5nQ2xpZW50IHsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0
cy9EaXNwbGF5TGlzdEl0ZW1zLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9k
aXNwbGF5bGlzdHMvRGlzcGxheUxpc3RJdGVtcy5oCmluZGV4IDFkOTQ0YTAyMTlkNi4uNmQxNWM2
NmIyMTYyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNw
bGF5bGlzdHMvRGlzcGxheUxpc3RJdGVtcy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdEl0ZW1zLmgKQEAgLTU1LDggKzU1LDYg
QEAgc3RydWN0IEltYWdlUGFpbnRpbmdPcHRpb25zOwogCiBuYW1lc3BhY2UgRGlzcGxheUxpc3Qg
ewogCi1zdHJ1Y3QgSXRlbUhhbmRsZTsKLQogLyogaXNJbmxpbmVJdGVtIGluZGljYXRlcyB3aGV0
aGVyIHRoZSBvYmplY3QgbmVlZHMgdG8gYmUgcGFzc2VkIHRocm91Z2ggSVBDOjpFbmNvZGVyIGlu
IG9yZGVyIHRvIHNlcmlhbGl6ZSwKICAqIG9yIHdoZXRoZXIgd2UgY2FuIGp1c3QgdXNlIHBsYWNl
bWVudCBuZXcgYW5kIGJlIGRvbmUuCiAgKiBJdCBuZWVkcyB0byBtYXRjaCAoMSkgUmVtb3RlSW1h
Z2VCdWZmZXJQcm94eTo6ZW5jb2RlSXRlbSgpLCAoMikgUmVtb3RlUmVuZGVyaW5nQmFja2VuZDo6
ZGVjb2RlSXRlbSgpLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvZGlzcGxheWxpc3RzL0luTWVtb3J5RGlzcGxheUxpc3QuY3BwIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0luTWVtb3J5RGlzcGxheUxpc3QuY3BwCmlu
ZGV4IDNkMmJmNGE0NWRlMC4uNzJlYmI4ZTUzOTg3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvSW5NZW1vcnlEaXNwbGF5TGlzdC5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0luTWVt
b3J5RGlzcGxheUxpc3QuY3BwCkBAIC0zMywyMCArMzMsMzIgQEAgbmFtZXNwYWNlIERpc3BsYXlM
aXN0IHsKIAogT3B0aW9uYWw8c3RkOjpzaXplX3Q+IEluTWVtb3J5RGlzcGxheUxpc3Q6OldyaXRp
bmdDbGllbnQ6OnJlcXVpcmVkU2l6ZUZvckl0ZW0oY29uc3QgRGlzcGxheUxpc3RJdGVtJiBkaXNw
bGF5TGlzdEl0ZW0pIGNvbnN0CiB7Ci0gICAgcmV0dXJuIHBhZGRlZFNpemVPZlR5cGVBbmRJdGVt
SW5CeXRlcyhkaXNwbGF5TGlzdEl0ZW0pOworICAgIHJldHVybiBXVEY6OnN3aXRjaE9uKGl0ZW0s
IFtdKGNvbnN0IGF1dG8mIGl0ZW0pIHsKKyAgICAgICAgdXNpbmcgRGlzcGxheUxpc3RJdGVtVHlw
ZSA9IHR5cGVuYW1lIFdURjo6UmVtb3ZlQ1ZBbmRSZWZlcmVuY2U8ZGVjbHR5cGUoaXRlbSk+Ojp0
eXBlOworICAgICAgICByZXR1cm4gc2l6ZW9mKERpc3BsYXlMaXN0SXRlbVR5cGUpOworICAgIH0p
OwogfQogCiB2b2lkIEluTWVtb3J5RGlzcGxheUxpc3Q6OldyaXRpbmdDbGllbnQ6OmVuY29kZUl0
ZW1JbmxpbmUoY29uc3QgRGlzcGxheUxpc3RJdGVtJiBkaXNwbGF5TGlzdEl0ZW0sIHVpbnQ4X3Qq
IGxvY2F0aW9uKSBjb25zdAogewotICAgIHNhZmVDb3B5KHsgbG9jYXRpb24gfSwgZGlzcGxheUxp
c3RJdGVtKTsKKyAgICByZXR1cm4gV1RGOjpzd2l0Y2hPbihpdGVtLCBbJl0oY29uc3QgYXV0byYg
aXRlbSkgeworICAgICAgICB1c2luZyBEaXNwbGF5TGlzdEl0ZW1UeXBlID0gdHlwZW5hbWUgV1RG
OjpSZW1vdmVDVkFuZFJlZmVyZW5jZTxkZWNsdHlwZShpdGVtKT46OnR5cGU7CisgICAgICAgIG5l
dyAobG9jYXRpb24pIFQoaXRlbSk7CisgICAgfSk7CiB9CiAKIE9wdGlvbmFsPERpc3BsYXlMaXN0
SXRlbT4gV0FSTl9VTlVTRURfUkVUVVJOIEluTWVtb3J5RGlzcGxheUxpc3Q6OlJlYWRpbmdDbGll
bnQ6OmRlY29kZUl0ZW0oY29uc3QgdWludDhfdCogZGF0YSwgc2l6ZV90IGRhdGFMZW5ndGgsIEl0
ZW1UeXBlIHR5cGUpCiB7Ci0gICAgY29uc3QgSXRlbUhhbmRsZSBkYXRhSGFuZGxlIHsgY29uc3Rf
Y2FzdDx1aW50OF90Kj4oZGF0YSkgfTsKLSAgICBBU1NFUlRfVU5VU0VEKHR5cGUsIGRhdGFIYW5k
bGUudHlwZSgpID09IHR5cGUpOwotICAgIEFTU0VSVF9VTlVTRUQoZGF0YUxlbmd0aCwgZGF0YUxl
bmd0aCA+PSBwYWRkZWRTaXplT2ZUeXBlQW5kSXRlbUluQnl0ZXMoZGF0YUhhbmRsZS50eXBlKCkp
KTsKLSAgICByZXR1cm4gc2FmZUNvcHkoZGF0YUhhbmRsZSk7CisgICAgT3B0aW9uYWw8RGlzcGxh
eUxpc3RJdGVtPiByZXN1bHQ7CisgICAgYnJpZ2FuZDo6Zm9yX2VhY2g8RGlzcGxheUxpc3RJdGVt
PihbJl0oYXV0byYmIHR5cGUpIHsKKyAgICAgICAgdXNpbmcgRGlzcGxheUxpc3RJdGVtVHlwZSA9
IHR5cGVuYW1lIFdURjo6UmVtb3ZlQ1ZBbmRSZWZlcmVuY2U8ZGVjbHR5cGUodHlwZSk+Ojp0eXBl
Ojp0eXBlOworICAgICAgICBpZiAodHlwZSAhPSBEaXNwbGF5TGlzdEl0ZW1UeXBlOjppdGVtVHlw
ZSkKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgQVNTRVJUX1VOVVNFRChkYXRhTGVuZ3Ro
LCBkYXRhTGVuZ3RoID49IHNpemVvZihEaXNwbGF5TGlzdEl0ZW1UeXBlKSk7CisgICAgICAgIEFT
U0VSVCghcmVzdWx0KTsKKyAgICAgICAgcmVzdWx0ID0gRGlzcGxheUxpc3RJdGVtKCpyZWludGVy
cHJldF9jYXN0PGNvbnN0IERpc3BsYXlMaXN0SXRlbVR5cGUqPihkYXRhKSk7CisgICAgfSk7Cisg
ICAgcmV0dXJuIHJlc3VsdDsKIH0KIAogSW5NZW1vcnlEaXNwbGF5TGlzdDo6SW5NZW1vcnlEaXNw
bGF5TGlzdCgpCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>