diff --git a/Tests/JWTKitTests/X5CTests.swift b/Tests/JWTKitTests/X5CTests.swift index 4030c9f1..628ad07c 100644 --- a/Tests/JWTKitTests/X5CTests.swift +++ b/Tests/JWTKitTests/X5CTests.swift @@ -34,20 +34,20 @@ struct X5CTests { // Trusted root: """ -----BEGIN CERTIFICATE----- - MIICijCCAi+gAwIBAgIUQ+GZt69343+8jDCMflUIG4Il2MswCgYIKoZIzj0EAwIw + MIICiTCCAi+gAwIBAgIUAQnnizzn/hIrJBy3tPG/BsT8zdwwCgYIKoZIzj0EAwIw gZkxCzAJBgNVBAYTAlVTMREwDwYDVQQIDAhOZXcgWW9yazERMA8GA1UEBwwITmV3 IFlvcmsxDjAMBgNVBAoMBVZhcG9yMRQwEgYDVQQLDAtFbmdpbmVlcmluZzEWMBQG A1UEAwwNVmFwb3IgUm9vdCBDQTEmMCQGCSqGSIb3DQEJARYXYWRtaW5AdmFwb3Iu - ZXhhbXBsZS5jb20wHhcNMjUwMTEwMDkyNzE4WhcNMzUwMTA4MDkyNzE4WjCBmTEL + ZXhhbXBsZS5jb20wHhcNMjYwMjA5MTIxNTE2WhcNMzYwMjA3MTIxNTE2WjCBmTEL MAkGA1UEBhMCVVMxETAPBgNVBAgMCE5ldyBZb3JrMREwDwYDVQQHDAhOZXcgWW9y azEOMAwGA1UECgwFVmFwb3IxFDASBgNVBAsMC0VuZ2luZWVyaW5nMRYwFAYDVQQD DA1WYXBvciBSb290IENBMSYwJAYJKoZIhvcNAQkBFhdhZG1pbkB2YXBvci5leGFt - cGxlLmNvbTBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABK/74uVxo9bVpbF13l3d - h7txUH20FpOwW7JsNvW6yGzRrJr0JcGIUJFUml8horg/mZLQqde+LTKf4VByWlk7 - hBKjUzBRMB0GA1UdDgQWBBTwox5TK8yr7ZDJcieuEo6hOUJvcjAfBgNVHSMEGDAW - gBTwox5TK8yr7ZDJcieuEo6hOUJvcjAPBgNVHRMBAf8EBTADAQH/MAoGCCqGSM49 - BAMCA0kAMEYCIQDDB3s+2CUl/YrXxQUbyl38GNSpXcogYfEcWXEQmQtOlgIhAJHz - e7CCTDHODtGan89r2VED7tXpwGk/5EWLarTvohI3 + cGxlLmNvbTBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABAtmAodPfalJ6lBwjOtw + UW/n0c92tBWDtOdb+SgHUHKbq5vXrlmDwkcje44fXgUbH0fc/WtL/6w5pq55UbzN + C2ejUzBRMB0GA1UdDgQWBBR5J5DrZfuJ1v6ZwsXcbSuAFDKx+jAfBgNVHSMEGDAW + gBR5J5DrZfuJ1v6ZwsXcbSuAFDKx+jAPBgNVHRMBAf8EBTADAQH/MAoGCCqGSM49 + BAMCA0gAMEUCIQDtFydbBhYIx3Y1cTo3OjzZZvsEjZQa/1yHGyk/uA/j/wIgMeJS + NxQDLTGLvHoYZxtqO4i2kc+Z3KedZ0ki+Zi4Fk0= -----END CERTIFICATE----- """ ]) @@ -355,93 +355,93 @@ struct X5CTests { } } -let missingIntermediateToken = """ - eyJhbGciOiJFUzI1NiIsInR5cCI6IkpXVCIsIng1YyI6WyJNSUlDZmpDQ0FpT2dBd0lCQWdJVUZ5b29aUm1zXC9TUzVKdllMMGRsNmhId1I1bFl3Q2dZSUtvWkl6ajBFQXdJd2dhRXhDekFKQmdOVkJBWVRBbFZUTVJFd0R3WURWUVFJREFoT1pYY2dXVzl5YXpFUk1BOEdBMVVFQnd3SVRtVjNJRmx2Y21zeERqQU1CZ05WQkFvTUJWWmhjRzl5TVJRd0VnWURWUVFMREF0RmJtZHBibVZsY21sdVp6RWVNQndHQTFVRUF3d1ZWbUZ3YjNJZ1NXNTBaWEp0WldScFlYUmxJRU5CTVNZd0pBWUpLb1pJaHZjTkFRa0JGaGRoWkcxcGJrQjJZWEJ2Y2k1bGVHRnRjR3hsTG1OdmJUQWVGdzB5TlRBeE1UQXdPVEkzTVRoYUZ3MHlOakF4TVRBd09USTNNVGhhTUlHV01Rc3dDUVlEVlFRR0V3SlZVekVSTUE4R0ExVUVDQXdJVG1WM0lGbHZjbXN4RVRBUEJnTlZCQWNNQ0U1bGR5QlpiM0pyTVE0d0RBWURWUVFLREFWV1lYQnZjakVVTUJJR0ExVUVDd3dMUlc1bmFXNWxaWEpwYm1jeEV6QVJCZ05WQkFNTUNsWmhjRzl5SUV4bFlXWXhKakFrQmdrcWhraUc5dzBCQ1FFV0YyRmtiV2x1UUhaaGNHOXlMbVY0WVcxd2JHVXVZMjl0TUZrd0V3WUhLb1pJemowQ0FRWUlLb1pJemowREFRY0RRZ0FFWExLUHNkMVBpczE4Wno3NzlMSTNqZTRHQ1wvR0xlZUp4eFM3VjVud0Z4U0F0U3htSlhaUGx3RDZjZEZydVhkd0p2ekpuT1ByWFdENHBZdkFNUFwvN0NTNk5DTUVBd0hRWURWUjBPQkJZRUZIXC9ja0Z0bWtKYll5aXZ5VmtvdHAyRklwTnFXTUI4R0ExVWRJd1FZTUJhQUZIUFd6am43SHhHSTJ4SHhSTkVKaHkzU1JJZVZNQW9HQ0NxR1NNNDlCQU1DQTBrQU1FWUNJUURSd1g4TTZEVEgwSmVjZGNSdDBYVTdXUlhXZkZvRUZmbGRrTFJKOVU0dlFRSWhBTHBWUFhVSVozTEx2MVVTYlk3M0pRNWNrMEk3OTJjdTVcL25hQ2VUNm84ckgiLCJNSUlDaWpDQ0FpK2dBd0lCQWdJVVErR1p0NjkzNDMrOGpEQ01mbFVJRzRJbDJNc3dDZ1lJS29aSXpqMEVBd0l3Z1preEN6QUpCZ05WQkFZVEFsVlRNUkV3RHdZRFZRUUlEQWhPWlhjZ1dXOXlhekVSTUE4R0ExVUVCd3dJVG1WM0lGbHZjbXN4RGpBTUJnTlZCQW9NQlZaaGNHOXlNUlF3RWdZRFZRUUxEQXRGYm1kcGJtVmxjbWx1WnpFV01CUUdBMVVFQXd3TlZtRndiM0lnVW05dmRDQkRRVEVtTUNRR0NTcUdTSWIzRFFFSkFSWVhZV1J0YVc1QWRtRndiM0l1WlhoaGJYQnNaUzVqYjIwd0hoY05NalV3TVRFd01Ea3lOekU0V2hjTk16VXdNVEE0TURreU56RTRXakNCbVRFTE1Ba0dBMVVFQmhNQ1ZWTXhFVEFQQmdOVkJBZ01DRTVsZHlCWmIzSnJNUkV3RHdZRFZRUUhEQWhPWlhjZ1dXOXlhekVPTUF3R0ExVUVDZ3dGVm1Gd2IzSXhGREFTQmdOVkJBc01DMFZ1WjJsdVpXVnlhVzVuTVJZd0ZBWURWUVFEREExV1lYQnZjaUJTYjI5MElFTkJNU1l3SkFZSktvWklodmNOQVFrQkZoZGhaRzFwYmtCMllYQnZjaTVsZUdGdGNHeGxMbU52YlRCWk1CTUdCeXFHU000OUFnRUdDQ3FHU000OUF3RUhBMElBQktcLzc0dVZ4bzliVnBiRjEzbDNkaDd0eFVIMjBGcE93VzdKc052VzZ5R3pSckpyMEpjR0lVSkZVbWw4aG9yZ1wvbVpMUXFkZStMVEtmNFZCeVdsazdoQktqVXpCUk1CMEdBMVVkRGdRV0JCVHdveDVUSzh5cjdaREpjaWV1RW82aE9VSnZjakFmQmdOVkhTTUVHREFXZ0JUd294NVRLOHlyN1pESmNpZXVFbzZoT1VKdmNqQVBCZ05WSFJNQkFmOEVCVEFEQVFIXC9NQW9HQ0NxR1NNNDlCQU1DQTBrQU1FWUNJUUREQjNzKzJDVWxcL1lyWHhRVWJ5bDM4R05TcFhjb2dZZkVjV1hFUW1RdE9sZ0loQUpIemU3Q0NUREhPRHRHYW44OXIyVkVEN3RYcHdHa1wvNUVXTGFyVHZvaEkzIl19.eyJjb29sIjp0cnVlfQ.Mr5vTqM97-hdniDt1kZWXZcyKQ_7tBKlh8bCwMhubyPk0TDuvbzb14bu1iOJY9KtVwxdZQqkUxLijhAKi8hHPg - """ -let missingRootToken = """ - eyJhbGciOiJFUzI1NiIsInR5cCI6IkpXVCIsIng1YyI6WyJNSUlDZmpDQ0FpT2dBd0lCQWdJVUZ5b29aUm1zXC9TUzVKdllMMGRsNmhId1I1bFl3Q2dZSUtvWkl6ajBFQXdJd2dhRXhDekFKQmdOVkJBWVRBbFZUTVJFd0R3WURWUVFJREFoT1pYY2dXVzl5YXpFUk1BOEdBMVVFQnd3SVRtVjNJRmx2Y21zeERqQU1CZ05WQkFvTUJWWmhjRzl5TVJRd0VnWURWUVFMREF0RmJtZHBibVZsY21sdVp6RWVNQndHQTFVRUF3d1ZWbUZ3YjNJZ1NXNTBaWEp0WldScFlYUmxJRU5CTVNZd0pBWUpLb1pJaHZjTkFRa0JGaGRoWkcxcGJrQjJZWEJ2Y2k1bGVHRnRjR3hsTG1OdmJUQWVGdzB5TlRBeE1UQXdPVEkzTVRoYUZ3MHlOakF4TVRBd09USTNNVGhhTUlHV01Rc3dDUVlEVlFRR0V3SlZVekVSTUE4R0ExVUVDQXdJVG1WM0lGbHZjbXN4RVRBUEJnTlZCQWNNQ0U1bGR5QlpiM0pyTVE0d0RBWURWUVFLREFWV1lYQnZjakVVTUJJR0ExVUVDd3dMUlc1bmFXNWxaWEpwYm1jeEV6QVJCZ05WQkFNTUNsWmhjRzl5SUV4bFlXWXhKakFrQmdrcWhraUc5dzBCQ1FFV0YyRmtiV2x1UUhaaGNHOXlMbVY0WVcxd2JHVXVZMjl0TUZrd0V3WUhLb1pJemowQ0FRWUlLb1pJemowREFRY0RRZ0FFWExLUHNkMVBpczE4Wno3NzlMSTNqZTRHQ1wvR0xlZUp4eFM3VjVud0Z4U0F0U3htSlhaUGx3RDZjZEZydVhkd0p2ekpuT1ByWFdENHBZdkFNUFwvN0NTNk5DTUVBd0hRWURWUjBPQkJZRUZIXC9ja0Z0bWtKYll5aXZ5VmtvdHAyRklwTnFXTUI4R0ExVWRJd1FZTUJhQUZIUFd6am43SHhHSTJ4SHhSTkVKaHkzU1JJZVZNQW9HQ0NxR1NNNDlCQU1DQTBrQU1FWUNJUURSd1g4TTZEVEgwSmVjZGNSdDBYVTdXUlhXZkZvRUZmbGRrTFJKOVU0dlFRSWhBTHBWUFhVSVozTEx2MVVTYlk3M0pRNWNrMEk3OTJjdTVcL25hQ2VUNm84ckgiLCJNSUlDampDQ0FqU2dBd0lCQWdJVVM1Uk1IUVNQOTFFWkhaRzlHTG1LcFNcL0NxYm93Q2dZSUtvWkl6ajBFQXdJd2daa3hDekFKQmdOVkJBWVRBbFZUTVJFd0R3WURWUVFJREFoT1pYY2dXVzl5YXpFUk1BOEdBMVVFQnd3SVRtVjNJRmx2Y21zeERqQU1CZ05WQkFvTUJWWmhjRzl5TVJRd0VnWURWUVFMREF0RmJtZHBibVZsY21sdVp6RVdNQlFHQTFVRUF3d05WbUZ3YjNJZ1VtOXZkQ0JEUVRFbU1DUUdDU3FHU0liM0RRRUpBUllYWVdSdGFXNUFkbUZ3YjNJdVpYaGhiWEJzWlM1amIyMHdIaGNOTWpVd01URXdNRGt5TnpFNFdoY05NekF3TVRBNU1Ea3lOekU0V2pDQm9URUxNQWtHQTFVRUJoTUNWVk14RVRBUEJnTlZCQWdNQ0U1bGR5QlpiM0pyTVJFd0R3WURWUVFIREFoT1pYY2dXVzl5YXpFT01Bd0dBMVVFQ2d3RlZtRndiM0l4RkRBU0JnTlZCQXNNQzBWdVoybHVaV1Z5YVc1bk1SNHdIQVlEVlFRRERCVldZWEJ2Y2lCSmJuUmxjbTFsWkdsaGRHVWdRMEV4SmpBa0Jna3Foa2lHOXcwQkNRRVdGMkZrYldsdVFIWmhjRzl5TG1WNFlXMXdiR1V1WTI5dE1Ga3dFd1lIS29aSXpqMENBUVlJS29aSXpqMERBUWNEUWdBRXR2c1JaTmFvWXhlME9FY3lTcDRQanQxWjF4NmJ2VVwvYU5PVVdjazVpZEJpWHpMZnExYXREaGpsNVpSUEFOSWozeXI3aGw0clNrZ3FramFiQXJLY250S05RTUU0d0RBWURWUjBUQkFVd0F3RUJcL3pBZEJnTlZIUTRFRmdRVWM5Yk9PZnNmRVlqYkVmRkUwUW1ITGRKRWg1VXdId1lEVlIwakJCZ3dGb0FVOEtNZVV5dk1xKzJReVhJbnJoS09vVGxDYjNJd0NnWUlLb1pJemowRUF3SURTQUF3UlFJaEFOVFFaVGxvdCtQSGk5a2NzbHl1ZHdqSXFaNTdVbms2VXdwVHJ4Wm40bXQxQWlBd3poaW5jUHNvSE5FWnIrdEFFZmtOb0crMzVGVG9jbElxV0F4aVErMnpNdz09Il19.eyJjb29sIjp0cnVlfQ.TLleai7BXhSfpFQ1j0eCKxNlKFtcTIO3nlBixeaeCnrnu2xGNVTX2zdTjJCd32udiLm9Kx4qihIguU9IwKX9Ag +let validToken = """ + eyJ0eXAiOiJKV1QiLCJhbGciOiJFUzI1NiIsIng1YyI6WyJNSUlDZkRDQ0FpT2dBd0lCQWdJVVFxMDhSalpTbnpzSnlCVnlqZFI0R1h1bm1TUXdDZ1lJS29aSXpqMEVBd0l3Z2FFeEN6QUpCZ05WQkFZVEFsVlRNUkV3RHdZRFZRUUlEQWhPWlhjZ1dXOXlhekVSTUE4R0ExVUVCd3dJVG1WM0lGbHZjbXN4RGpBTUJnTlZCQW9NQlZaaGNHOXlNUlF3RWdZRFZRUUxEQXRGYm1kcGJtVmxjbWx1WnpFZU1Cd0dBMVVFQXd3VlZtRndiM0lnU1c1MFpYSnRaV1JwWVhSbElFTkJNU1l3SkFZSktvWklodmNOQVFrQkZoZGhaRzFwYmtCMllYQnZjaTVsZUdGdGNHeGxMbU52YlRBZUZ3MHlOakF5TURreE1qRTFNVFphRncweU56QXlNRGt4TWpFMU1UWmFNSUdXTVFzd0NRWURWUVFHRXdKVlV6RVJNQThHQTFVRUNBd0lUbVYzSUZsdmNtc3hFVEFQQmdOVkJBY01DRTVsZHlCWmIzSnJNUTR3REFZRFZRUUtEQVZXWVhCdmNqRVVNQklHQTFVRUN3d0xSVzVuYVc1bFpYSnBibWN4RXpBUkJnTlZCQU1NQ2xaaGNHOXlJRXhsWVdZeEpqQWtCZ2txaGtpRzl3MEJDUUVXRjJGa2JXbHVRSFpoY0c5eUxtVjRZVzF3YkdVdVkyOXRNRmt3RXdZSEtvWkl6ajBDQVFZSUtvWkl6ajBEQVFjRFFnQUVYK0s3TFZhVmpPenFwU3dOK3pqY0NxVDhmMnoyWHUzUE5cL2xjRmthd2IyRURyUXpCNCtiM2VrR1hlcVJmRWc3bGNFMHR6dnhpVmV3RU9TcDNSVktvektOQ01FQXdIUVlEVlIwT0JCWUVGSlF2UCtJR2IzaEdXZW1nZHBLV3B3RE9Vdk5RTUI4R0ExVWRJd1FZTUJhQUZBWXZPRm5FbjdROFNua0FCdDBjOFJLYlFVSnlNQW9HQ0NxR1NNNDlCQU1DQTBjQU1FUUNJQnFocEZuUExRdkdjdzdkYXUySU90WmxKeWtNZ2I0WlFCMGpuMEFoeDVKSEFpQTl0cHFWbFR1a1JSMnhjM1dqVlE4NDZHS1BxZElMXC9uXC8yTlVvQ2NJeEZhUT09IiwiTUlJQ2pqQ0NBalNnQXdJQkFnSVVXS3BaWHBiUVRubG1qazhNTUdNcHUxWmtkb2N3Q2dZSUtvWkl6ajBFQXdJd2daa3hDekFKQmdOVkJBWVRBbFZUTVJFd0R3WURWUVFJREFoT1pYY2dXVzl5YXpFUk1BOEdBMVVFQnd3SVRtVjNJRmx2Y21zeERqQU1CZ05WQkFvTUJWWmhjRzl5TVJRd0VnWURWUVFMREF0RmJtZHBibVZsY21sdVp6RVdNQlFHQTFVRUF3d05WbUZ3YjNJZ1VtOXZkQ0JEUVRFbU1DUUdDU3FHU0liM0RRRUpBUllYWVdSdGFXNUFkbUZ3YjNJdVpYaGhiWEJzWlM1amIyMHdIaGNOTWpZd01qQTVNVEl4TlRFMldoY05NekV3TWpBNE1USXhOVEUyV2pDQm9URUxNQWtHQTFVRUJoTUNWVk14RVRBUEJnTlZCQWdNQ0U1bGR5QlpiM0pyTVJFd0R3WURWUVFIREFoT1pYY2dXVzl5YXpFT01Bd0dBMVVFQ2d3RlZtRndiM0l4RkRBU0JnTlZCQXNNQzBWdVoybHVaV1Z5YVc1bk1SNHdIQVlEVlFRRERCVldZWEJ2Y2lCSmJuUmxjbTFsWkdsaGRHVWdRMEV4SmpBa0Jna3Foa2lHOXcwQkNRRVdGMkZrYldsdVFIWmhjRzl5TG1WNFlXMXdiR1V1WTI5dE1Ga3dFd1lIS29aSXpqMENBUVlJS29aSXpqMERBUWNEUWdBRUthaWJtQnFhbzc0bDhwbG1pWDZcL3pLWkE2RjBGeWdBU2p4djY3TG1lQ2g1M2pib0hkQmRKY2RLWnRwY1htWExqbWNVUlRsS1M0anczS1RueDJyK3RwS05RTUU0d0RBWURWUjBUQkFVd0F3RUJcL3pBZEJnTlZIUTRFRmdRVUJpODRXY1NmdER4S2VRQUczUnp4RXB0QlFuSXdId1lEVlIwakJCZ3dGb0FVZVNlUTYyWDdpZGIrbWNMRjNHMHJnQlF5c2Zvd0NnWUlLb1pJemowRUF3SURTQUF3UlFJZ0JUbEUya2pVOHZRQXpXc1wvc1BreXFNVkhiY01nazFGaHp1MVJxaEc5V09JQ0lRQ3hWYWtiaW9udHh6MFplU3pLWFNsbERvZFc2WWhmaU1sbVNIVklrMDBiQVE9PSIsIk1JSUNpVENDQWkrZ0F3SUJBZ0lVQVFubml6em5cL2hJckpCeTN0UEdcL0JzVDh6ZHd3Q2dZSUtvWkl6ajBFQXdJd2daa3hDekFKQmdOVkJBWVRBbFZUTVJFd0R3WURWUVFJREFoT1pYY2dXVzl5YXpFUk1BOEdBMVVFQnd3SVRtVjNJRmx2Y21zeERqQU1CZ05WQkFvTUJWWmhjRzl5TVJRd0VnWURWUVFMREF0RmJtZHBibVZsY21sdVp6RVdNQlFHQTFVRUF3d05WbUZ3YjNJZ1VtOXZkQ0JEUVRFbU1DUUdDU3FHU0liM0RRRUpBUllYWVdSdGFXNUFkbUZ3YjNJdVpYaGhiWEJzWlM1amIyMHdIaGNOTWpZd01qQTVNVEl4TlRFMldoY05Nell3TWpBM01USXhOVEUyV2pDQm1URUxNQWtHQTFVRUJoTUNWVk14RVRBUEJnTlZCQWdNQ0U1bGR5QlpiM0pyTVJFd0R3WURWUVFIREFoT1pYY2dXVzl5YXpFT01Bd0dBMVVFQ2d3RlZtRndiM0l4RkRBU0JnTlZCQXNNQzBWdVoybHVaV1Z5YVc1bk1SWXdGQVlEVlFRRERBMVdZWEJ2Y2lCU2IyOTBJRU5CTVNZd0pBWUpLb1pJaHZjTkFRa0JGaGRoWkcxcGJrQjJZWEJ2Y2k1bGVHRnRjR3hsTG1OdmJUQlpNQk1HQnlxR1NNNDlBZ0VHQ0NxR1NNNDlBd0VIQTBJQUJBdG1Bb2RQZmFsSjZsQndqT3R3VVdcL24wYzkydEJXRHRPZGIrU2dIVUhLYnE1dlhybG1Ed2tjamU0NGZYZ1ViSDBmY1wvV3RMXC82dzVwcTU1VWJ6TkMyZWpVekJSTUIwR0ExVWREZ1FXQkJSNUo1RHJaZnVKMXY2WndzWGNiU3VBRkRLeCtqQWZCZ05WSFNNRUdEQVdnQlI1SjVEclpmdUoxdjZad3NYY2JTdUFGREt4K2pBUEJnTlZIUk1CQWY4RUJUQURBUUhcL01Bb0dDQ3FHU000OUJBTUNBMGdBTUVVQ0lRRHRGeWRiQmhZSXgzWTFjVG8zT2p6Wlp2c0VqWlFhXC8xeUhHeWtcL3VBXC9qXC93SWdNZUpTTnhRRExUR0x2SG9ZWnh0cU80aTJrYytaM0tlZFowa2krWmk0RmswPSJdfQ.eyJjb29sIjp0cnVlfQ.C4htltMFn1cxny-2NQTk6rR-q1wL2Ko0aePc_z8Cb97svkYiLmvLBIpRU7qBC9rHrpLgbidwPPeZUk-qJqn8ew """ let validButNotCoolToken = """ - eyJhbGciOiJFUzI1NiIsIng1YyI6WyJNSUlDZmpDQ0FpT2dBd0lCQWdJVUZ5b29aUm1zXC9TUzVKdllMMGRsNmhId1I1bFl3Q2dZSUtvWkl6ajBFQXdJd2dhRXhDekFKQmdOVkJBWVRBbFZUTVJFd0R3WURWUVFJREFoT1pYY2dXVzl5YXpFUk1BOEdBMVVFQnd3SVRtVjNJRmx2Y21zeERqQU1CZ05WQkFvTUJWWmhjRzl5TVJRd0VnWURWUVFMREF0RmJtZHBibVZsY21sdVp6RWVNQndHQTFVRUF3d1ZWbUZ3YjNJZ1NXNTBaWEp0WldScFlYUmxJRU5CTVNZd0pBWUpLb1pJaHZjTkFRa0JGaGRoWkcxcGJrQjJZWEJ2Y2k1bGVHRnRjR3hsTG1OdmJUQWVGdzB5TlRBeE1UQXdPVEkzTVRoYUZ3MHlOakF4TVRBd09USTNNVGhhTUlHV01Rc3dDUVlEVlFRR0V3SlZVekVSTUE4R0ExVUVDQXdJVG1WM0lGbHZjbXN4RVRBUEJnTlZCQWNNQ0U1bGR5QlpiM0pyTVE0d0RBWURWUVFLREFWV1lYQnZjakVVTUJJR0ExVUVDd3dMUlc1bmFXNWxaWEpwYm1jeEV6QVJCZ05WQkFNTUNsWmhjRzl5SUV4bFlXWXhKakFrQmdrcWhraUc5dzBCQ1FFV0YyRmtiV2x1UUhaaGNHOXlMbVY0WVcxd2JHVXVZMjl0TUZrd0V3WUhLb1pJemowQ0FRWUlLb1pJemowREFRY0RRZ0FFWExLUHNkMVBpczE4Wno3NzlMSTNqZTRHQ1wvR0xlZUp4eFM3VjVud0Z4U0F0U3htSlhaUGx3RDZjZEZydVhkd0p2ekpuT1ByWFdENHBZdkFNUFwvN0NTNk5DTUVBd0hRWURWUjBPQkJZRUZIXC9ja0Z0bWtKYll5aXZ5VmtvdHAyRklwTnFXTUI4R0ExVWRJd1FZTUJhQUZIUFd6am43SHhHSTJ4SHhSTkVKaHkzU1JJZVZNQW9HQ0NxR1NNNDlCQU1DQTBrQU1FWUNJUURSd1g4TTZEVEgwSmVjZGNSdDBYVTdXUlhXZkZvRUZmbGRrTFJKOVU0dlFRSWhBTHBWUFhVSVozTEx2MVVTYlk3M0pRNWNrMEk3OTJjdTVcL25hQ2VUNm84ckgiLCJNSUlDampDQ0FqU2dBd0lCQWdJVVM1Uk1IUVNQOTFFWkhaRzlHTG1LcFNcL0NxYm93Q2dZSUtvWkl6ajBFQXdJd2daa3hDekFKQmdOVkJBWVRBbFZUTVJFd0R3WURWUVFJREFoT1pYY2dXVzl5YXpFUk1BOEdBMVVFQnd3SVRtVjNJRmx2Y21zeERqQU1CZ05WQkFvTUJWWmhjRzl5TVJRd0VnWURWUVFMREF0RmJtZHBibVZsY21sdVp6RVdNQlFHQTFVRUF3d05WbUZ3YjNJZ1VtOXZkQ0JEUVRFbU1DUUdDU3FHU0liM0RRRUpBUllYWVdSdGFXNUFkbUZ3YjNJdVpYaGhiWEJzWlM1amIyMHdIaGNOTWpVd01URXdNRGt5TnpFNFdoY05NekF3TVRBNU1Ea3lOekU0V2pDQm9URUxNQWtHQTFVRUJoTUNWVk14RVRBUEJnTlZCQWdNQ0U1bGR5QlpiM0pyTVJFd0R3WURWUVFIREFoT1pYY2dXVzl5YXpFT01Bd0dBMVVFQ2d3RlZtRndiM0l4RkRBU0JnTlZCQXNNQzBWdVoybHVaV1Z5YVc1bk1SNHdIQVlEVlFRRERCVldZWEJ2Y2lCSmJuUmxjbTFsWkdsaGRHVWdRMEV4SmpBa0Jna3Foa2lHOXcwQkNRRVdGMkZrYldsdVFIWmhjRzl5TG1WNFlXMXdiR1V1WTI5dE1Ga3dFd1lIS29aSXpqMENBUVlJS29aSXpqMERBUWNEUWdBRXR2c1JaTmFvWXhlME9FY3lTcDRQanQxWjF4NmJ2VVwvYU5PVVdjazVpZEJpWHpMZnExYXREaGpsNVpSUEFOSWozeXI3aGw0clNrZ3FramFiQXJLY250S05RTUU0d0RBWURWUjBUQkFVd0F3RUJcL3pBZEJnTlZIUTRFRmdRVWM5Yk9PZnNmRVlqYkVmRkUwUW1ITGRKRWg1VXdId1lEVlIwakJCZ3dGb0FVOEtNZVV5dk1xKzJReVhJbnJoS09vVGxDYjNJd0NnWUlLb1pJemowRUF3SURTQUF3UlFJaEFOVFFaVGxvdCtQSGk5a2NzbHl1ZHdqSXFaNTdVbms2VXdwVHJ4Wm40bXQxQWlBd3poaW5jUHNvSE5FWnIrdEFFZmtOb0crMzVGVG9jbElxV0F4aVErMnpNdz09IiwiTUlJQ2lqQ0NBaStnQXdJQkFnSVVRK0dadDY5MzQzKzhqRENNZmxVSUc0SWwyTXN3Q2dZSUtvWkl6ajBFQXdJd2daa3hDekFKQmdOVkJBWVRBbFZUTVJFd0R3WURWUVFJREFoT1pYY2dXVzl5YXpFUk1BOEdBMVVFQnd3SVRtVjNJRmx2Y21zeERqQU1CZ05WQkFvTUJWWmhjRzl5TVJRd0VnWURWUVFMREF0RmJtZHBibVZsY21sdVp6RVdNQlFHQTFVRUF3d05WbUZ3YjNJZ1VtOXZkQ0JEUVRFbU1DUUdDU3FHU0liM0RRRUpBUllYWVdSdGFXNUFkbUZ3YjNJdVpYaGhiWEJzWlM1amIyMHdIaGNOTWpVd01URXdNRGt5TnpFNFdoY05NelV3TVRBNE1Ea3lOekU0V2pDQm1URUxNQWtHQTFVRUJoTUNWVk14RVRBUEJnTlZCQWdNQ0U1bGR5QlpiM0pyTVJFd0R3WURWUVFIREFoT1pYY2dXVzl5YXpFT01Bd0dBMVVFQ2d3RlZtRndiM0l4RkRBU0JnTlZCQXNNQzBWdVoybHVaV1Z5YVc1bk1SWXdGQVlEVlFRRERBMVdZWEJ2Y2lCU2IyOTBJRU5CTVNZd0pBWUpLb1pJaHZjTkFRa0JGaGRoWkcxcGJrQjJZWEJ2Y2k1bGVHRnRjR3hsTG1OdmJUQlpNQk1HQnlxR1NNNDlBZ0VHQ0NxR1NNNDlBd0VIQTBJQUJLXC83NHVWeG85YlZwYkYxM2wzZGg3dHhVSDIwRnBPd1c3SnNOdlc2eUd6UnJKcjBKY0dJVUpGVW1sOGhvcmdcL21aTFFxZGUrTFRLZjRWQnlXbGs3aEJLalV6QlJNQjBHQTFVZERnUVdCQlR3b3g1VEs4eXI3WkRKY2lldUVvNmhPVUp2Y2pBZkJnTlZIU01FR0RBV2dCVHdveDVUSzh5cjdaREpjaWV1RW82aE9VSnZjakFQQmdOVkhSTUJBZjhFQlRBREFRSFwvTUFvR0NDcUdTTTQ5QkFNQ0Ewa0FNRVlDSVFEREIzcysyQ1VsXC9Zclh4UVVieWwzOEdOU3BYY29nWWZFY1dYRVFtUXRPbGdJaEFKSHplN0NDVERIT0R0R2FuODlyMlZFRDd0WHB3R2tcLzVFV0xhclR2b2hJMyJdLCJ0eXAiOiJKV1QifQ.eyJjb29sIjpmYWxzZX0.eIuHbLhYHV7Qld2rqmjFzzKKxJuk5FemIYQDAYDe-WjzL_qdSjP4qBbDq81j6Qi9u_-bK4KJNpH1fm8hmCoMOA + eyJ0eXAiOiJKV1QiLCJhbGciOiJFUzI1NiIsIng1YyI6WyJNSUlDZkRDQ0FpT2dBd0lCQWdJVVFxMDhSalpTbnpzSnlCVnlqZFI0R1h1bm1TUXdDZ1lJS29aSXpqMEVBd0l3Z2FFeEN6QUpCZ05WQkFZVEFsVlRNUkV3RHdZRFZRUUlEQWhPWlhjZ1dXOXlhekVSTUE4R0ExVUVCd3dJVG1WM0lGbHZjbXN4RGpBTUJnTlZCQW9NQlZaaGNHOXlNUlF3RWdZRFZRUUxEQXRGYm1kcGJtVmxjbWx1WnpFZU1Cd0dBMVVFQXd3VlZtRndiM0lnU1c1MFpYSnRaV1JwWVhSbElFTkJNU1l3SkFZSktvWklodmNOQVFrQkZoZGhaRzFwYmtCMllYQnZjaTVsZUdGdGNHeGxMbU52YlRBZUZ3MHlOakF5TURreE1qRTFNVFphRncweU56QXlNRGt4TWpFMU1UWmFNSUdXTVFzd0NRWURWUVFHRXdKVlV6RVJNQThHQTFVRUNBd0lUbVYzSUZsdmNtc3hFVEFQQmdOVkJBY01DRTVsZHlCWmIzSnJNUTR3REFZRFZRUUtEQVZXWVhCdmNqRVVNQklHQTFVRUN3d0xSVzVuYVc1bFpYSnBibWN4RXpBUkJnTlZCQU1NQ2xaaGNHOXlJRXhsWVdZeEpqQWtCZ2txaGtpRzl3MEJDUUVXRjJGa2JXbHVRSFpoY0c5eUxtVjRZVzF3YkdVdVkyOXRNRmt3RXdZSEtvWkl6ajBDQVFZSUtvWkl6ajBEQVFjRFFnQUVYK0s3TFZhVmpPenFwU3dOK3pqY0NxVDhmMnoyWHUzUE5cL2xjRmthd2IyRURyUXpCNCtiM2VrR1hlcVJmRWc3bGNFMHR6dnhpVmV3RU9TcDNSVktvektOQ01FQXdIUVlEVlIwT0JCWUVGSlF2UCtJR2IzaEdXZW1nZHBLV3B3RE9Vdk5RTUI4R0ExVWRJd1FZTUJhQUZBWXZPRm5FbjdROFNua0FCdDBjOFJLYlFVSnlNQW9HQ0NxR1NNNDlCQU1DQTBjQU1FUUNJQnFocEZuUExRdkdjdzdkYXUySU90WmxKeWtNZ2I0WlFCMGpuMEFoeDVKSEFpQTl0cHFWbFR1a1JSMnhjM1dqVlE4NDZHS1BxZElMXC9uXC8yTlVvQ2NJeEZhUT09IiwiTUlJQ2pqQ0NBalNnQXdJQkFnSVVXS3BaWHBiUVRubG1qazhNTUdNcHUxWmtkb2N3Q2dZSUtvWkl6ajBFQXdJd2daa3hDekFKQmdOVkJBWVRBbFZUTVJFd0R3WURWUVFJREFoT1pYY2dXVzl5YXpFUk1BOEdBMVVFQnd3SVRtVjNJRmx2Y21zeERqQU1CZ05WQkFvTUJWWmhjRzl5TVJRd0VnWURWUVFMREF0RmJtZHBibVZsY21sdVp6RVdNQlFHQTFVRUF3d05WbUZ3YjNJZ1VtOXZkQ0JEUVRFbU1DUUdDU3FHU0liM0RRRUpBUllYWVdSdGFXNUFkbUZ3YjNJdVpYaGhiWEJzWlM1amIyMHdIaGNOTWpZd01qQTVNVEl4TlRFMldoY05NekV3TWpBNE1USXhOVEUyV2pDQm9URUxNQWtHQTFVRUJoTUNWVk14RVRBUEJnTlZCQWdNQ0U1bGR5QlpiM0pyTVJFd0R3WURWUVFIREFoT1pYY2dXVzl5YXpFT01Bd0dBMVVFQ2d3RlZtRndiM0l4RkRBU0JnTlZCQXNNQzBWdVoybHVaV1Z5YVc1bk1SNHdIQVlEVlFRRERCVldZWEJ2Y2lCSmJuUmxjbTFsWkdsaGRHVWdRMEV4SmpBa0Jna3Foa2lHOXcwQkNRRVdGMkZrYldsdVFIWmhjRzl5TG1WNFlXMXdiR1V1WTI5dE1Ga3dFd1lIS29aSXpqMENBUVlJS29aSXpqMERBUWNEUWdBRUthaWJtQnFhbzc0bDhwbG1pWDZcL3pLWkE2RjBGeWdBU2p4djY3TG1lQ2g1M2pib0hkQmRKY2RLWnRwY1htWExqbWNVUlRsS1M0anczS1RueDJyK3RwS05RTUU0d0RBWURWUjBUQkFVd0F3RUJcL3pBZEJnTlZIUTRFRmdRVUJpODRXY1NmdER4S2VRQUczUnp4RXB0QlFuSXdId1lEVlIwakJCZ3dGb0FVZVNlUTYyWDdpZGIrbWNMRjNHMHJnQlF5c2Zvd0NnWUlLb1pJemowRUF3SURTQUF3UlFJZ0JUbEUya2pVOHZRQXpXc1wvc1BreXFNVkhiY01nazFGaHp1MVJxaEc5V09JQ0lRQ3hWYWtiaW9udHh6MFplU3pLWFNsbERvZFc2WWhmaU1sbVNIVklrMDBiQVE9PSIsIk1JSUNpVENDQWkrZ0F3SUJBZ0lVQVFubml6em5cL2hJckpCeTN0UEdcL0JzVDh6ZHd3Q2dZSUtvWkl6ajBFQXdJd2daa3hDekFKQmdOVkJBWVRBbFZUTVJFd0R3WURWUVFJREFoT1pYY2dXVzl5YXpFUk1BOEdBMVVFQnd3SVRtVjNJRmx2Y21zeERqQU1CZ05WQkFvTUJWWmhjRzl5TVJRd0VnWURWUVFMREF0RmJtZHBibVZsY21sdVp6RVdNQlFHQTFVRUF3d05WbUZ3YjNJZ1VtOXZkQ0JEUVRFbU1DUUdDU3FHU0liM0RRRUpBUllYWVdSdGFXNUFkbUZ3YjNJdVpYaGhiWEJzWlM1amIyMHdIaGNOTWpZd01qQTVNVEl4TlRFMldoY05Nell3TWpBM01USXhOVEUyV2pDQm1URUxNQWtHQTFVRUJoTUNWVk14RVRBUEJnTlZCQWdNQ0U1bGR5QlpiM0pyTVJFd0R3WURWUVFIREFoT1pYY2dXVzl5YXpFT01Bd0dBMVVFQ2d3RlZtRndiM0l4RkRBU0JnTlZCQXNNQzBWdVoybHVaV1Z5YVc1bk1SWXdGQVlEVlFRRERBMVdZWEJ2Y2lCU2IyOTBJRU5CTVNZd0pBWUpLb1pJaHZjTkFRa0JGaGRoWkcxcGJrQjJZWEJ2Y2k1bGVHRnRjR3hsTG1OdmJUQlpNQk1HQnlxR1NNNDlBZ0VHQ0NxR1NNNDlBd0VIQTBJQUJBdG1Bb2RQZmFsSjZsQndqT3R3VVdcL24wYzkydEJXRHRPZGIrU2dIVUhLYnE1dlhybG1Ed2tjamU0NGZYZ1ViSDBmY1wvV3RMXC82dzVwcTU1VWJ6TkMyZWpVekJSTUIwR0ExVWREZ1FXQkJSNUo1RHJaZnVKMXY2WndzWGNiU3VBRkRLeCtqQWZCZ05WSFNNRUdEQVdnQlI1SjVEclpmdUoxdjZad3NYY2JTdUFGREt4K2pBUEJnTlZIUk1CQWY4RUJUQURBUUhcL01Bb0dDQ3FHU000OUJBTUNBMGdBTUVVQ0lRRHRGeWRiQmhZSXgzWTFjVG8zT2p6Wlp2c0VqWlFhXC8xeUhHeWtcL3VBXC9qXC93SWdNZUpTTnhRRExUR0x2SG9ZWnh0cU80aTJrYytaM0tlZFowa2krWmk0RmswPSJdfQ.eyJjb29sIjpmYWxzZX0.JIiz90uzJm92xpjokz9XbSpE1FCynH0rT2-dRr0WWVCmosFgL5eBXWyEnYrAIBnRlmFTH5vgzW97ywkQHNqfuA """ -let validToken = """ - eyJhbGciOiJFUzI1NiIsIng1YyI6WyJNSUlDZmpDQ0FpT2dBd0lCQWdJVUZ5b29aUm1zXC9TUzVKdllMMGRsNmhId1I1bFl3Q2dZSUtvWkl6ajBFQXdJd2dhRXhDekFKQmdOVkJBWVRBbFZUTVJFd0R3WURWUVFJREFoT1pYY2dXVzl5YXpFUk1BOEdBMVVFQnd3SVRtVjNJRmx2Y21zeERqQU1CZ05WQkFvTUJWWmhjRzl5TVJRd0VnWURWUVFMREF0RmJtZHBibVZsY21sdVp6RWVNQndHQTFVRUF3d1ZWbUZ3YjNJZ1NXNTBaWEp0WldScFlYUmxJRU5CTVNZd0pBWUpLb1pJaHZjTkFRa0JGaGRoWkcxcGJrQjJZWEJ2Y2k1bGVHRnRjR3hsTG1OdmJUQWVGdzB5TlRBeE1UQXdPVEkzTVRoYUZ3MHlOakF4TVRBd09USTNNVGhhTUlHV01Rc3dDUVlEVlFRR0V3SlZVekVSTUE4R0ExVUVDQXdJVG1WM0lGbHZjbXN4RVRBUEJnTlZCQWNNQ0U1bGR5QlpiM0pyTVE0d0RBWURWUVFLREFWV1lYQnZjakVVTUJJR0ExVUVDd3dMUlc1bmFXNWxaWEpwYm1jeEV6QVJCZ05WQkFNTUNsWmhjRzl5SUV4bFlXWXhKakFrQmdrcWhraUc5dzBCQ1FFV0YyRmtiV2x1UUhaaGNHOXlMbVY0WVcxd2JHVXVZMjl0TUZrd0V3WUhLb1pJemowQ0FRWUlLb1pJemowREFRY0RRZ0FFWExLUHNkMVBpczE4Wno3NzlMSTNqZTRHQ1wvR0xlZUp4eFM3VjVud0Z4U0F0U3htSlhaUGx3RDZjZEZydVhkd0p2ekpuT1ByWFdENHBZdkFNUFwvN0NTNk5DTUVBd0hRWURWUjBPQkJZRUZIXC9ja0Z0bWtKYll5aXZ5VmtvdHAyRklwTnFXTUI4R0ExVWRJd1FZTUJhQUZIUFd6am43SHhHSTJ4SHhSTkVKaHkzU1JJZVZNQW9HQ0NxR1NNNDlCQU1DQTBrQU1FWUNJUURSd1g4TTZEVEgwSmVjZGNSdDBYVTdXUlhXZkZvRUZmbGRrTFJKOVU0dlFRSWhBTHBWUFhVSVozTEx2MVVTYlk3M0pRNWNrMEk3OTJjdTVcL25hQ2VUNm84ckgiLCJNSUlDampDQ0FqU2dBd0lCQWdJVVM1Uk1IUVNQOTFFWkhaRzlHTG1LcFNcL0NxYm93Q2dZSUtvWkl6ajBFQXdJd2daa3hDekFKQmdOVkJBWVRBbFZUTVJFd0R3WURWUVFJREFoT1pYY2dXVzl5YXpFUk1BOEdBMVVFQnd3SVRtVjNJRmx2Y21zeERqQU1CZ05WQkFvTUJWWmhjRzl5TVJRd0VnWURWUVFMREF0RmJtZHBibVZsY21sdVp6RVdNQlFHQTFVRUF3d05WbUZ3YjNJZ1VtOXZkQ0JEUVRFbU1DUUdDU3FHU0liM0RRRUpBUllYWVdSdGFXNUFkbUZ3YjNJdVpYaGhiWEJzWlM1amIyMHdIaGNOTWpVd01URXdNRGt5TnpFNFdoY05NekF3TVRBNU1Ea3lOekU0V2pDQm9URUxNQWtHQTFVRUJoTUNWVk14RVRBUEJnTlZCQWdNQ0U1bGR5QlpiM0pyTVJFd0R3WURWUVFIREFoT1pYY2dXVzl5YXpFT01Bd0dBMVVFQ2d3RlZtRndiM0l4RkRBU0JnTlZCQXNNQzBWdVoybHVaV1Z5YVc1bk1SNHdIQVlEVlFRRERCVldZWEJ2Y2lCSmJuUmxjbTFsWkdsaGRHVWdRMEV4SmpBa0Jna3Foa2lHOXcwQkNRRVdGMkZrYldsdVFIWmhjRzl5TG1WNFlXMXdiR1V1WTI5dE1Ga3dFd1lIS29aSXpqMENBUVlJS29aSXpqMERBUWNEUWdBRXR2c1JaTmFvWXhlME9FY3lTcDRQanQxWjF4NmJ2VVwvYU5PVVdjazVpZEJpWHpMZnExYXREaGpsNVpSUEFOSWozeXI3aGw0clNrZ3FramFiQXJLY250S05RTUU0d0RBWURWUjBUQkFVd0F3RUJcL3pBZEJnTlZIUTRFRmdRVWM5Yk9PZnNmRVlqYkVmRkUwUW1ITGRKRWg1VXdId1lEVlIwakJCZ3dGb0FVOEtNZVV5dk1xKzJReVhJbnJoS09vVGxDYjNJd0NnWUlLb1pJemowRUF3SURTQUF3UlFJaEFOVFFaVGxvdCtQSGk5a2NzbHl1ZHdqSXFaNTdVbms2VXdwVHJ4Wm40bXQxQWlBd3poaW5jUHNvSE5FWnIrdEFFZmtOb0crMzVGVG9jbElxV0F4aVErMnpNdz09IiwiTUlJQ2lqQ0NBaStnQXdJQkFnSVVRK0dadDY5MzQzKzhqRENNZmxVSUc0SWwyTXN3Q2dZSUtvWkl6ajBFQXdJd2daa3hDekFKQmdOVkJBWVRBbFZUTVJFd0R3WURWUVFJREFoT1pYY2dXVzl5YXpFUk1BOEdBMVVFQnd3SVRtVjNJRmx2Y21zeERqQU1CZ05WQkFvTUJWWmhjRzl5TVJRd0VnWURWUVFMREF0RmJtZHBibVZsY21sdVp6RVdNQlFHQTFVRUF3d05WbUZ3YjNJZ1VtOXZkQ0JEUVRFbU1DUUdDU3FHU0liM0RRRUpBUllYWVdSdGFXNUFkbUZ3YjNJdVpYaGhiWEJzWlM1amIyMHdIaGNOTWpVd01URXdNRGt5TnpFNFdoY05NelV3TVRBNE1Ea3lOekU0V2pDQm1URUxNQWtHQTFVRUJoTUNWVk14RVRBUEJnTlZCQWdNQ0U1bGR5QlpiM0pyTVJFd0R3WURWUVFIREFoT1pYY2dXVzl5YXpFT01Bd0dBMVVFQ2d3RlZtRndiM0l4RkRBU0JnTlZCQXNNQzBWdVoybHVaV1Z5YVc1bk1SWXdGQVlEVlFRRERBMVdZWEJ2Y2lCU2IyOTBJRU5CTVNZd0pBWUpLb1pJaHZjTkFRa0JGaGRoWkcxcGJrQjJZWEJ2Y2k1bGVHRnRjR3hsTG1OdmJUQlpNQk1HQnlxR1NNNDlBZ0VHQ0NxR1NNNDlBd0VIQTBJQUJLXC83NHVWeG85YlZwYkYxM2wzZGg3dHhVSDIwRnBPd1c3SnNOdlc2eUd6UnJKcjBKY0dJVUpGVW1sOGhvcmdcL21aTFFxZGUrTFRLZjRWQnlXbGs3aEJLalV6QlJNQjBHQTFVZERnUVdCQlR3b3g1VEs4eXI3WkRKY2lldUVvNmhPVUp2Y2pBZkJnTlZIU01FR0RBV2dCVHdveDVUSzh5cjdaREpjaWV1RW82aE9VSnZjakFQQmdOVkhSTUJBZjhFQlRBREFRSFwvTUFvR0NDcUdTTTQ5QkFNQ0Ewa0FNRVlDSVFEREIzcysyQ1VsXC9Zclh4UVVieWwzOEdOU3BYY29nWWZFY1dYRVFtUXRPbGdJaEFKSHplN0NDVERIT0R0R2FuODlyMlZFRDd0WHB3R2tcLzVFV0xhclR2b2hJMyJdLCJ0eXAiOiJKV1QifQ.eyJjb29sIjp0cnVlfQ.RzvCDMflF974cTCZmUkImLxYJHMTmfnCShCmvf-B38Bc4sL3POrTY-YPCDq7_ENudUKJP9WDQ-6Gn1PcjmXfaQ +let missingRootToken = """ + eyJ0eXAiOiJKV1QiLCJhbGciOiJFUzI1NiIsIng1YyI6WyJNSUlDZkRDQ0FpT2dBd0lCQWdJVVFxMDhSalpTbnpzSnlCVnlqZFI0R1h1bm1TUXdDZ1lJS29aSXpqMEVBd0l3Z2FFeEN6QUpCZ05WQkFZVEFsVlRNUkV3RHdZRFZRUUlEQWhPWlhjZ1dXOXlhekVSTUE4R0ExVUVCd3dJVG1WM0lGbHZjbXN4RGpBTUJnTlZCQW9NQlZaaGNHOXlNUlF3RWdZRFZRUUxEQXRGYm1kcGJtVmxjbWx1WnpFZU1Cd0dBMVVFQXd3VlZtRndiM0lnU1c1MFpYSnRaV1JwWVhSbElFTkJNU1l3SkFZSktvWklodmNOQVFrQkZoZGhaRzFwYmtCMllYQnZjaTVsZUdGdGNHeGxMbU52YlRBZUZ3MHlOakF5TURreE1qRTFNVFphRncweU56QXlNRGt4TWpFMU1UWmFNSUdXTVFzd0NRWURWUVFHRXdKVlV6RVJNQThHQTFVRUNBd0lUbVYzSUZsdmNtc3hFVEFQQmdOVkJBY01DRTVsZHlCWmIzSnJNUTR3REFZRFZRUUtEQVZXWVhCdmNqRVVNQklHQTFVRUN3d0xSVzVuYVc1bFpYSnBibWN4RXpBUkJnTlZCQU1NQ2xaaGNHOXlJRXhsWVdZeEpqQWtCZ2txaGtpRzl3MEJDUUVXRjJGa2JXbHVRSFpoY0c5eUxtVjRZVzF3YkdVdVkyOXRNRmt3RXdZSEtvWkl6ajBDQVFZSUtvWkl6ajBEQVFjRFFnQUVYK0s3TFZhVmpPenFwU3dOK3pqY0NxVDhmMnoyWHUzUE5cL2xjRmthd2IyRURyUXpCNCtiM2VrR1hlcVJmRWc3bGNFMHR6dnhpVmV3RU9TcDNSVktvektOQ01FQXdIUVlEVlIwT0JCWUVGSlF2UCtJR2IzaEdXZW1nZHBLV3B3RE9Vdk5RTUI4R0ExVWRJd1FZTUJhQUZBWXZPRm5FbjdROFNua0FCdDBjOFJLYlFVSnlNQW9HQ0NxR1NNNDlCQU1DQTBjQU1FUUNJQnFocEZuUExRdkdjdzdkYXUySU90WmxKeWtNZ2I0WlFCMGpuMEFoeDVKSEFpQTl0cHFWbFR1a1JSMnhjM1dqVlE4NDZHS1BxZElMXC9uXC8yTlVvQ2NJeEZhUT09IiwiTUlJQ2pqQ0NBalNnQXdJQkFnSVVXS3BaWHBiUVRubG1qazhNTUdNcHUxWmtkb2N3Q2dZSUtvWkl6ajBFQXdJd2daa3hDekFKQmdOVkJBWVRBbFZUTVJFd0R3WURWUVFJREFoT1pYY2dXVzl5YXpFUk1BOEdBMVVFQnd3SVRtVjNJRmx2Y21zeERqQU1CZ05WQkFvTUJWWmhjRzl5TVJRd0VnWURWUVFMREF0RmJtZHBibVZsY21sdVp6RVdNQlFHQTFVRUF3d05WbUZ3YjNJZ1VtOXZkQ0JEUVRFbU1DUUdDU3FHU0liM0RRRUpBUllYWVdSdGFXNUFkbUZ3YjNJdVpYaGhiWEJzWlM1amIyMHdIaGNOTWpZd01qQTVNVEl4TlRFMldoY05NekV3TWpBNE1USXhOVEUyV2pDQm9URUxNQWtHQTFVRUJoTUNWVk14RVRBUEJnTlZCQWdNQ0U1bGR5QlpiM0pyTVJFd0R3WURWUVFIREFoT1pYY2dXVzl5YXpFT01Bd0dBMVVFQ2d3RlZtRndiM0l4RkRBU0JnTlZCQXNNQzBWdVoybHVaV1Z5YVc1bk1SNHdIQVlEVlFRRERCVldZWEJ2Y2lCSmJuUmxjbTFsWkdsaGRHVWdRMEV4SmpBa0Jna3Foa2lHOXcwQkNRRVdGMkZrYldsdVFIWmhjRzl5TG1WNFlXMXdiR1V1WTI5dE1Ga3dFd1lIS29aSXpqMENBUVlJS29aSXpqMERBUWNEUWdBRUthaWJtQnFhbzc0bDhwbG1pWDZcL3pLWkE2RjBGeWdBU2p4djY3TG1lQ2g1M2pib0hkQmRKY2RLWnRwY1htWExqbWNVUlRsS1M0anczS1RueDJyK3RwS05RTUU0d0RBWURWUjBUQkFVd0F3RUJcL3pBZEJnTlZIUTRFRmdRVUJpODRXY1NmdER4S2VRQUczUnp4RXB0QlFuSXdId1lEVlIwakJCZ3dGb0FVZVNlUTYyWDdpZGIrbWNMRjNHMHJnQlF5c2Zvd0NnWUlLb1pJemowRUF3SURTQUF3UlFJZ0JUbEUya2pVOHZRQXpXc1wvc1BreXFNVkhiY01nazFGaHp1MVJxaEc5V09JQ0lRQ3hWYWtiaW9udHh6MFplU3pLWFNsbERvZFc2WWhmaU1sbVNIVklrMDBiQVE9PSJdfQ.eyJjb29sIjp0cnVlfQ.p-rUEo4szaLQPKN158tcJ9K1GzCARZ7CVNoINh_RWvv4qPbGI2p3hh9bRBmLTjsec3gZ2c2P0ISQbq5P0gSBQw """ -let missingLeafAndIntermediateToken = """ - eyJhbGciOiJFUzI1NiIsInR5cCI6IkpXVCIsIng1YyI6WyJNSUlDaWpDQ0FpK2dBd0lCQWdJVVErR1p0NjkzNDMrOGpEQ01mbFVJRzRJbDJNc3dDZ1lJS29aSXpqMEVBd0l3Z1preEN6QUpCZ05WQkFZVEFsVlRNUkV3RHdZRFZRUUlEQWhPWlhjZ1dXOXlhekVSTUE4R0ExVUVCd3dJVG1WM0lGbHZjbXN4RGpBTUJnTlZCQW9NQlZaaGNHOXlNUlF3RWdZRFZRUUxEQXRGYm1kcGJtVmxjbWx1WnpFV01CUUdBMVVFQXd3TlZtRndiM0lnVW05dmRDQkRRVEVtTUNRR0NTcUdTSWIzRFFFSkFSWVhZV1J0YVc1QWRtRndiM0l1WlhoaGJYQnNaUzVqYjIwd0hoY05NalV3TVRFd01Ea3lOekU0V2hjTk16VXdNVEE0TURreU56RTRXakNCbVRFTE1Ba0dBMVVFQmhNQ1ZWTXhFVEFQQmdOVkJBZ01DRTVsZHlCWmIzSnJNUkV3RHdZRFZRUUhEQWhPWlhjZ1dXOXlhekVPTUF3R0ExVUVDZ3dGVm1Gd2IzSXhGREFTQmdOVkJBc01DMFZ1WjJsdVpXVnlhVzVuTVJZd0ZBWURWUVFEREExV1lYQnZjaUJTYjI5MElFTkJNU1l3SkFZSktvWklodmNOQVFrQkZoZGhaRzFwYmtCMllYQnZjaTVsZUdGdGNHeGxMbU52YlRCWk1CTUdCeXFHU000OUFnRUdDQ3FHU000OUF3RUhBMElBQktcLzc0dVZ4bzliVnBiRjEzbDNkaDd0eFVIMjBGcE93VzdKc052VzZ5R3pSckpyMEpjR0lVSkZVbWw4aG9yZ1wvbVpMUXFkZStMVEtmNFZCeVdsazdoQktqVXpCUk1CMEdBMVVkRGdRV0JCVHdveDVUSzh5cjdaREpjaWV1RW82aE9VSnZjakFmQmdOVkhTTUVHREFXZ0JUd294NVRLOHlyN1pESmNpZXVFbzZoT1VKdmNqQVBCZ05WSFJNQkFmOEVCVEFEQVFIXC9NQW9HQ0NxR1NNNDlCQU1DQTBrQU1FWUNJUUREQjNzKzJDVWxcL1lyWHhRVWJ5bDM4R05TcFhjb2dZZkVjV1hFUW1RdE9sZ0loQUpIemU3Q0NUREhPRHRHYW44OXIyVkVEN3RYcHdHa1wvNUVXTGFyVHZvaEkzIl19.eyJjb29sIjp0cnVlfQ.KlLuKx9RedV8Ibg5mYYrGdHX-dYZv4z3qpo-j3nejdM9NFl8cN-fSp-jZcDgdVpf6whYNiqrkS0LJYvmD47Ylg +let expiredLeafToken = """ + eyJ0eXAiOiJKV1QiLCJhbGciOiJFUzI1NiIsIng1YyI6WyJNSUlDaERDQ0FpdWdBd0lCQWdJVVFxMDhSalpTbnpzSnlCVnlqZFI0R1h1bm1TVXdDZ1lJS29aSXpqMEVBd0l3Z2FFeEN6QUpCZ05WQkFZVEFsVlRNUkV3RHdZRFZRUUlEQWhPWlhjZ1dXOXlhekVSTUE4R0ExVUVCd3dJVG1WM0lGbHZjbXN4RGpBTUJnTlZCQW9NQlZaaGNHOXlNUlF3RWdZRFZRUUxEQXRGYm1kcGJtVmxjbWx1WnpFZU1Cd0dBMVVFQXd3VlZtRndiM0lnU1c1MFpYSnRaV1JwWVhSbElFTkJNU1l3SkFZSktvWklodmNOQVFrQkZoZGhaRzFwYmtCMllYQnZjaTVsZUdGdGNHeGxMbU52YlRBZUZ3MHlNREF4TURFd01UQXdNREJhRncweU1EQXhNREl3TVRBd01EQmFNSUdlTVFzd0NRWURWUVFHRXdKVlV6RVJNQThHQTFVRUNBd0lUbVYzSUZsdmNtc3hFVEFQQmdOVkJBY01DRTVsZHlCWmIzSnJNUTR3REFZRFZRUUtEQVZXWVhCdmNqRVVNQklHQTFVRUN3d0xSVzVuYVc1bFpYSnBibWN4R3pBWkJnTlZCQU1NRWxaaGNHOXlJRVY0Y0dseVpXUWdUR1ZoWmpFbU1DUUdDU3FHU0liM0RRRUpBUllYWVdSdGFXNUFkbUZ3YjNJdVpYaGhiWEJzWlM1amIyMHdXVEFUQmdjcWhrak9QUUlCQmdncWhrak9QUU1CQndOQ0FBVG1MZkRKZUVMMW5RRGMxVTQ2ZEdFRll0RThTWW5IUVdMR2JXZG5aYkNpSWtuSGNmVVwvYWpQeFg3bDlsZFZ4TzlESHpvRTdtZ3IzODFUSDFiSkJST1wvem8wSXdRREFkQmdOVkhRNEVGZ1FVeVFMNU11OVhhMkQwYXZrVzNxUjhVZFpiZXNNd0h3WURWUjBqQkJnd0ZvQVVCaTg0V2NTZnREeEtlUUFHM1J6eEVwdEJRbkl3Q2dZSUtvWkl6ajBFQXdJRFJ3QXdSQUlnQ0FYUk9aclRCS3hwY2Y2XC9FcUtlOXkxaXVcLzVRY3gwdFJoQzEwOWErNEIwQ0lFNU02WmM3SWJsYUJkajdubzFzMDVKRUJmdHFkM05sSWNLZlFoWFJNcXFlIiwiTUlJQ2pqQ0NBalNnQXdJQkFnSVVXS3BaWHBiUVRubG1qazhNTUdNcHUxWmtkb2N3Q2dZSUtvWkl6ajBFQXdJd2daa3hDekFKQmdOVkJBWVRBbFZUTVJFd0R3WURWUVFJREFoT1pYY2dXVzl5YXpFUk1BOEdBMVVFQnd3SVRtVjNJRmx2Y21zeERqQU1CZ05WQkFvTUJWWmhjRzl5TVJRd0VnWURWUVFMREF0RmJtZHBibVZsY21sdVp6RVdNQlFHQTFVRUF3d05WbUZ3YjNJZ1VtOXZkQ0JEUVRFbU1DUUdDU3FHU0liM0RRRUpBUllYWVdSdGFXNUFkbUZ3YjNJdVpYaGhiWEJzWlM1amIyMHdIaGNOTWpZd01qQTVNVEl4TlRFMldoY05NekV3TWpBNE1USXhOVEUyV2pDQm9URUxNQWtHQTFVRUJoTUNWVk14RVRBUEJnTlZCQWdNQ0U1bGR5QlpiM0pyTVJFd0R3WURWUVFIREFoT1pYY2dXVzl5YXpFT01Bd0dBMVVFQ2d3RlZtRndiM0l4RkRBU0JnTlZCQXNNQzBWdVoybHVaV1Z5YVc1bk1SNHdIQVlEVlFRRERCVldZWEJ2Y2lCSmJuUmxjbTFsWkdsaGRHVWdRMEV4SmpBa0Jna3Foa2lHOXcwQkNRRVdGMkZrYldsdVFIWmhjRzl5TG1WNFlXMXdiR1V1WTI5dE1Ga3dFd1lIS29aSXpqMENBUVlJS29aSXpqMERBUWNEUWdBRUthaWJtQnFhbzc0bDhwbG1pWDZcL3pLWkE2RjBGeWdBU2p4djY3TG1lQ2g1M2pib0hkQmRKY2RLWnRwY1htWExqbWNVUlRsS1M0anczS1RueDJyK3RwS05RTUU0d0RBWURWUjBUQkFVd0F3RUJcL3pBZEJnTlZIUTRFRmdRVUJpODRXY1NmdER4S2VRQUczUnp4RXB0QlFuSXdId1lEVlIwakJCZ3dGb0FVZVNlUTYyWDdpZGIrbWNMRjNHMHJnQlF5c2Zvd0NnWUlLb1pJemowRUF3SURTQUF3UlFJZ0JUbEUya2pVOHZRQXpXc1wvc1BreXFNVkhiY01nazFGaHp1MVJxaEc5V09JQ0lRQ3hWYWtiaW9udHh6MFplU3pLWFNsbERvZFc2WWhmaU1sbVNIVklrMDBiQVE9PSIsIk1JSUNpVENDQWkrZ0F3SUJBZ0lVQVFubml6em5cL2hJckpCeTN0UEdcL0JzVDh6ZHd3Q2dZSUtvWkl6ajBFQXdJd2daa3hDekFKQmdOVkJBWVRBbFZUTVJFd0R3WURWUVFJREFoT1pYY2dXVzl5YXpFUk1BOEdBMVVFQnd3SVRtVjNJRmx2Y21zeERqQU1CZ05WQkFvTUJWWmhjRzl5TVJRd0VnWURWUVFMREF0RmJtZHBibVZsY21sdVp6RVdNQlFHQTFVRUF3d05WbUZ3YjNJZ1VtOXZkQ0JEUVRFbU1DUUdDU3FHU0liM0RRRUpBUllYWVdSdGFXNUFkbUZ3YjNJdVpYaGhiWEJzWlM1amIyMHdIaGNOTWpZd01qQTVNVEl4TlRFMldoY05Nell3TWpBM01USXhOVEUyV2pDQm1URUxNQWtHQTFVRUJoTUNWVk14RVRBUEJnTlZCQWdNQ0U1bGR5QlpiM0pyTVJFd0R3WURWUVFIREFoT1pYY2dXVzl5YXpFT01Bd0dBMVVFQ2d3RlZtRndiM0l4RkRBU0JnTlZCQXNNQzBWdVoybHVaV1Z5YVc1bk1SWXdGQVlEVlFRRERBMVdZWEJ2Y2lCU2IyOTBJRU5CTVNZd0pBWUpLb1pJaHZjTkFRa0JGaGRoWkcxcGJrQjJZWEJ2Y2k1bGVHRnRjR3hsTG1OdmJUQlpNQk1HQnlxR1NNNDlBZ0VHQ0NxR1NNNDlBd0VIQTBJQUJBdG1Bb2RQZmFsSjZsQndqT3R3VVdcL24wYzkydEJXRHRPZGIrU2dIVUhLYnE1dlhybG1Ed2tjamU0NGZYZ1ViSDBmY1wvV3RMXC82dzVwcTU1VWJ6TkMyZWpVekJSTUIwR0ExVWREZ1FXQkJSNUo1RHJaZnVKMXY2WndzWGNiU3VBRkRLeCtqQWZCZ05WSFNNRUdEQVdnQlI1SjVEclpmdUoxdjZad3NYY2JTdUFGREt4K2pBUEJnTlZIUk1CQWY4RUJUQURBUUhcL01Bb0dDQ3FHU000OUJBTUNBMGdBTUVVQ0lRRHRGeWRiQmhZSXgzWTFjVG8zT2p6Wlp2c0VqWlFhXC8xeUhHeWtcL3VBXC9qXC93SWdNZUpTTnhRRExUR0x2SG9ZWnh0cU80aTJrYytaM0tlZFowa2krWmk0RmswPSJdfQ.eyJjb29sIjp0cnVlfQ.Be3ee6X-rFoqEV-bO1xXeGbfjBz6ofQDB9gcwLxnACrXbRHefWYUdmC4Ss2pFV6tAZp6BBEcSY5h0NRV96kWRw """ let missingLeafToken = """ - eyJhbGciOiJFUzI1NiIsInR5cCI6IkpXVCIsIng1YyI6WyJNSUlDampDQ0FqU2dBd0lCQWdJVVM1Uk1IUVNQOTFFWkhaRzlHTG1LcFNcL0NxYm93Q2dZSUtvWkl6ajBFQXdJd2daa3hDekFKQmdOVkJBWVRBbFZUTVJFd0R3WURWUVFJREFoT1pYY2dXVzl5YXpFUk1BOEdBMVVFQnd3SVRtVjNJRmx2Y21zeERqQU1CZ05WQkFvTUJWWmhjRzl5TVJRd0VnWURWUVFMREF0RmJtZHBibVZsY21sdVp6RVdNQlFHQTFVRUF3d05WbUZ3YjNJZ1VtOXZkQ0JEUVRFbU1DUUdDU3FHU0liM0RRRUpBUllYWVdSdGFXNUFkbUZ3YjNJdVpYaGhiWEJzWlM1amIyMHdIaGNOTWpVd01URXdNRGt5TnpFNFdoY05NekF3TVRBNU1Ea3lOekU0V2pDQm9URUxNQWtHQTFVRUJoTUNWVk14RVRBUEJnTlZCQWdNQ0U1bGR5QlpiM0pyTVJFd0R3WURWUVFIREFoT1pYY2dXVzl5YXpFT01Bd0dBMVVFQ2d3RlZtRndiM0l4RkRBU0JnTlZCQXNNQzBWdVoybHVaV1Z5YVc1bk1SNHdIQVlEVlFRRERCVldZWEJ2Y2lCSmJuUmxjbTFsWkdsaGRHVWdRMEV4SmpBa0Jna3Foa2lHOXcwQkNRRVdGMkZrYldsdVFIWmhjRzl5TG1WNFlXMXdiR1V1WTI5dE1Ga3dFd1lIS29aSXpqMENBUVlJS29aSXpqMERBUWNEUWdBRXR2c1JaTmFvWXhlME9FY3lTcDRQanQxWjF4NmJ2VVwvYU5PVVdjazVpZEJpWHpMZnExYXREaGpsNVpSUEFOSWozeXI3aGw0clNrZ3FramFiQXJLY250S05RTUU0d0RBWURWUjBUQkFVd0F3RUJcL3pBZEJnTlZIUTRFRmdRVWM5Yk9PZnNmRVlqYkVmRkUwUW1ITGRKRWg1VXdId1lEVlIwakJCZ3dGb0FVOEtNZVV5dk1xKzJReVhJbnJoS09vVGxDYjNJd0NnWUlLb1pJemowRUF3SURTQUF3UlFJaEFOVFFaVGxvdCtQSGk5a2NzbHl1ZHdqSXFaNTdVbms2VXdwVHJ4Wm40bXQxQWlBd3poaW5jUHNvSE5FWnIrdEFFZmtOb0crMzVGVG9jbElxV0F4aVErMnpNdz09IiwiTUlJQ2lqQ0NBaStnQXdJQkFnSVVRK0dadDY5MzQzKzhqRENNZmxVSUc0SWwyTXN3Q2dZSUtvWkl6ajBFQXdJd2daa3hDekFKQmdOVkJBWVRBbFZUTVJFd0R3WURWUVFJREFoT1pYY2dXVzl5YXpFUk1BOEdBMVVFQnd3SVRtVjNJRmx2Y21zeERqQU1CZ05WQkFvTUJWWmhjRzl5TVJRd0VnWURWUVFMREF0RmJtZHBibVZsY21sdVp6RVdNQlFHQTFVRUF3d05WbUZ3YjNJZ1VtOXZkQ0JEUVRFbU1DUUdDU3FHU0liM0RRRUpBUllYWVdSdGFXNUFkbUZ3YjNJdVpYaGhiWEJzWlM1amIyMHdIaGNOTWpVd01URXdNRGt5TnpFNFdoY05NelV3TVRBNE1Ea3lOekU0V2pDQm1URUxNQWtHQTFVRUJoTUNWVk14RVRBUEJnTlZCQWdNQ0U1bGR5QlpiM0pyTVJFd0R3WURWUVFIREFoT1pYY2dXVzl5YXpFT01Bd0dBMVVFQ2d3RlZtRndiM0l4RkRBU0JnTlZCQXNNQzBWdVoybHVaV1Z5YVc1bk1SWXdGQVlEVlFRRERBMVdZWEJ2Y2lCU2IyOTBJRU5CTVNZd0pBWUpLb1pJaHZjTkFRa0JGaGRoWkcxcGJrQjJZWEJ2Y2k1bGVHRnRjR3hsTG1OdmJUQlpNQk1HQnlxR1NNNDlBZ0VHQ0NxR1NNNDlBd0VIQTBJQUJLXC83NHVWeG85YlZwYkYxM2wzZGg3dHhVSDIwRnBPd1c3SnNOdlc2eUd6UnJKcjBKY0dJVUpGVW1sOGhvcmdcL21aTFFxZGUrTFRLZjRWQnlXbGs3aEJLalV6QlJNQjBHQTFVZERnUVdCQlR3b3g1VEs4eXI3WkRKY2lldUVvNmhPVUp2Y2pBZkJnTlZIU01FR0RBV2dCVHdveDVUSzh5cjdaREpjaWV1RW82aE9VSnZjakFQQmdOVkhSTUJBZjhFQlRBREFRSFwvTUFvR0NDcUdTTTQ5QkFNQ0Ewa0FNRVlDSVFEREIzcysyQ1VsXC9Zclh4UVVieWwzOEdOU3BYY29nWWZFY1dYRVFtUXRPbGdJaEFKSHplN0NDVERIT0R0R2FuODlyMlZFRDd0WHB3R2tcLzVFV0xhclR2b2hJMyJdfQ.eyJjb29sIjp0cnVlfQ.lJjtp19LB206fFuPr7qqHw4wdLNLeBa9gh0Z5_MvUEwhAJNm-XyRtbr8ahoo-ft5iE7VKAq4X658RpM_4p6xlg - """ -let expiredLeafToken = """ - eyJ4NWMiOlsiTUlJQ2hUQ0NBaXVnQXdJQkFnSVVGeW9vWlJtc1wvU1M1SnZZTDBkbDZoSHdSNWxjd0NnWUlLb1pJemowRUF3SXdnYUV4Q3pBSkJnTlZCQVlUQWxWVE1SRXdEd1lEVlFRSURBaE9aWGNnV1c5eWF6RVJNQThHQTFVRUJ3d0lUbVYzSUZsdmNtc3hEakFNQmdOVkJBb01CVlpoY0c5eU1SUXdFZ1lEVlFRTERBdEZibWRwYm1WbGNtbHVaekVlTUJ3R0ExVUVBd3dWVm1Gd2IzSWdTVzUwWlhKdFpXUnBZWFJsSUVOQk1TWXdKQVlKS29aSWh2Y05BUWtCRmhkaFpHMXBia0IyWVhCdmNpNWxlR0Z0Y0d4bExtTnZiVEFlRncweU1EQXhNREV3TVRBd01EQmFGdzB5TURBeE1ESXdNVEF3TURCYU1JR2VNUXN3Q1FZRFZRUUdFd0pWVXpFUk1BOEdBMVVFQ0F3SVRtVjNJRmx2Y21zeEVUQVBCZ05WQkFjTUNFNWxkeUJaYjNKck1RNHdEQVlEVlFRS0RBVldZWEJ2Y2pFVU1CSUdBMVVFQ3d3TFJXNW5hVzVsWlhKcGJtY3hHekFaQmdOVkJBTU1FbFpoY0c5eUlFVjRjR2x5WldRZ1RHVmhaakVtTUNRR0NTcUdTSWIzRFFFSkFSWVhZV1J0YVc1QWRtRndiM0l1WlhoaGJYQnNaUzVqYjIwd1dUQVRCZ2NxaGtqT1BRSUJCZ2dxaGtqT1BRTUJCd05DQUFRUHZqNDE0U0JTeGM5QzVrZDdoaWlXYkhCXC9CMVozKzBjWFAyeVRYMU1LdFN0XC9reDBJQ3gyUTdFTW1oNU9NMU1JUmZCRTU0Y3FwUjgrbUhrNVNEUWlybzBJd1FEQWRCZ05WSFE0RUZnUVVtQVU0VzVBXC9qcnlTc2d3NEVwbUYxRFIwRnc4d0h3WURWUjBqQkJnd0ZvQVVjOWJPT2ZzZkVZamJFZkZFMFFtSExkSkVoNVV3Q2dZSUtvWkl6ajBFQXdJRFNBQXdSUUlnRzd2YzV5U1ZlcW50R0xucnlDWDJlcW40XC91NlJKRFpTa01jVFI3UHBCODRDSVFDVkhwSk90RndxOVc1WCtEUm5aUFplOGxqeUJPcm15TllodmRER2k1RTVoUT09IiwiTUlJQ2pqQ0NBalNnQXdJQkFnSVVTNVJNSFFTUDkxRVpIWkc5R0xtS3BTXC9DcWJvd0NnWUlLb1pJemowRUF3SXdnWmt4Q3pBSkJnTlZCQVlUQWxWVE1SRXdEd1lEVlFRSURBaE9aWGNnV1c5eWF6RVJNQThHQTFVRUJ3d0lUbVYzSUZsdmNtc3hEakFNQmdOVkJBb01CVlpoY0c5eU1SUXdFZ1lEVlFRTERBdEZibWRwYm1WbGNtbHVaekVXTUJRR0ExVUVBd3dOVm1Gd2IzSWdVbTl2ZENCRFFURW1NQ1FHQ1NxR1NJYjNEUUVKQVJZWFlXUnRhVzVBZG1Gd2IzSXVaWGhoYlhCc1pTNWpiMjB3SGhjTk1qVXdNVEV3TURreU56RTRXaGNOTXpBd01UQTVNRGt5TnpFNFdqQ0JvVEVMTUFrR0ExVUVCaE1DVlZNeEVUQVBCZ05WQkFnTUNFNWxkeUJaYjNKck1SRXdEd1lEVlFRSERBaE9aWGNnV1c5eWF6RU9NQXdHQTFVRUNnd0ZWbUZ3YjNJeEZEQVNCZ05WQkFzTUMwVnVaMmx1WldWeWFXNW5NUjR3SEFZRFZRUUREQlZXWVhCdmNpQkpiblJsY20xbFpHbGhkR1VnUTBFeEpqQWtCZ2txaGtpRzl3MEJDUUVXRjJGa2JXbHVRSFpoY0c5eUxtVjRZVzF3YkdVdVkyOXRNRmt3RXdZSEtvWkl6ajBDQVFZSUtvWkl6ajBEQVFjRFFnQUV0dnNSWk5hb1l4ZTBPRWN5U3A0UGp0MVoxeDZidlVcL2FOT1VXY2s1aWRCaVh6TGZxMWF0RGhqbDVaUlBBTklqM3lyN2hsNHJTa2dxa2phYkFyS2NudEtOUU1FNHdEQVlEVlIwVEJBVXdBd0VCXC96QWRCZ05WSFE0RUZnUVVjOWJPT2ZzZkVZamJFZkZFMFFtSExkSkVoNVV3SHdZRFZSMGpCQmd3Rm9BVThLTWVVeXZNcSsyUXlYSW5yaEtPb1RsQ2IzSXdDZ1lJS29aSXpqMEVBd0lEU0FBd1JRSWhBTlRRWlRsb3QrUEhpOWtjc2x5dWR3aklxWjU3VW5rNlV3cFRyeFpuNG10MUFpQXd6aGluY1Bzb0hORVpyK3RBRWZrTm9HKzM1RlRvY2xJcVdBeGlRKzJ6TXc9PSIsIk1JSUNpakNDQWkrZ0F3SUJBZ0lVUStHWnQ2OTM0Mys4akRDTWZsVUlHNElsMk1zd0NnWUlLb1pJemowRUF3SXdnWmt4Q3pBSkJnTlZCQVlUQWxWVE1SRXdEd1lEVlFRSURBaE9aWGNnV1c5eWF6RVJNQThHQTFVRUJ3d0lUbVYzSUZsdmNtc3hEakFNQmdOVkJBb01CVlpoY0c5eU1SUXdFZ1lEVlFRTERBdEZibWRwYm1WbGNtbHVaekVXTUJRR0ExVUVBd3dOVm1Gd2IzSWdVbTl2ZENCRFFURW1NQ1FHQ1NxR1NJYjNEUUVKQVJZWFlXUnRhVzVBZG1Gd2IzSXVaWGhoYlhCc1pTNWpiMjB3SGhjTk1qVXdNVEV3TURreU56RTRXaGNOTXpVd01UQTRNRGt5TnpFNFdqQ0JtVEVMTUFrR0ExVUVCaE1DVlZNeEVUQVBCZ05WQkFnTUNFNWxkeUJaYjNKck1SRXdEd1lEVlFRSERBaE9aWGNnV1c5eWF6RU9NQXdHQTFVRUNnd0ZWbUZ3YjNJeEZEQVNCZ05WQkFzTUMwVnVaMmx1WldWeWFXNW5NUll3RkFZRFZRUUREQTFXWVhCdmNpQlNiMjkwSUVOQk1TWXdKQVlKS29aSWh2Y05BUWtCRmhkaFpHMXBia0IyWVhCdmNpNWxlR0Z0Y0d4bExtTnZiVEJaTUJNR0J5cUdTTTQ5QWdFR0NDcUdTTTQ5QXdFSEEwSUFCS1wvNzR1VnhvOWJWcGJGMTNsM2RoN3R4VUgyMEZwT3dXN0pzTnZXNnlHelJySnIwSmNHSVVKRlVtbDhob3JnXC9tWkxRcWRlK0xUS2Y0VkJ5V2xrN2hCS2pVekJSTUIwR0ExVWREZ1FXQkJUd294NVRLOHlyN1pESmNpZXVFbzZoT1VKdmNqQWZCZ05WSFNNRUdEQVdnQlR3b3g1VEs4eXI3WkRKY2lldUVvNmhPVUp2Y2pBUEJnTlZIUk1CQWY4RUJUQURBUUhcL01Bb0dDQ3FHU000OUJBTUNBMGtBTUVZQ0lRRERCM3MrMkNVbFwvWXJYeFFVYnlsMzhHTlNwWGNvZ1lmRWNXWEVRbVF0T2xnSWhBSkh6ZTdDQ1RESE9EdEdhbjg5cjJWRUQ3dFhwd0drXC81RVdMYXJUdm9oSTMiXSwidHlwIjoiSldUIiwiYWxnIjoiRVMyNTYifQ.eyJjb29sIjp0cnVlfQ.eUvON3ZYRJmn9P1RC8fT5c5rIshYc3TjarR14V9Q9o3D-YALZ6chfu_Z20btJaUN61X_cFoYYLRJY4eIFu7geA + eyJ0eXAiOiJKV1QiLCJhbGciOiJFUzI1NiIsIng1YyI6WyJNSUlDampDQ0FqU2dBd0lCQWdJVVdLcFpYcGJRVG5sbWprOE1NR01wdTFaa2RvY3dDZ1lJS29aSXpqMEVBd0l3Z1preEN6QUpCZ05WQkFZVEFsVlRNUkV3RHdZRFZRUUlEQWhPWlhjZ1dXOXlhekVSTUE4R0ExVUVCd3dJVG1WM0lGbHZjbXN4RGpBTUJnTlZCQW9NQlZaaGNHOXlNUlF3RWdZRFZRUUxEQXRGYm1kcGJtVmxjbWx1WnpFV01CUUdBMVVFQXd3TlZtRndiM0lnVW05dmRDQkRRVEVtTUNRR0NTcUdTSWIzRFFFSkFSWVhZV1J0YVc1QWRtRndiM0l1WlhoaGJYQnNaUzVqYjIwd0hoY05Nall3TWpBNU1USXhOVEUyV2hjTk16RXdNakE0TVRJeE5URTJXakNCb1RFTE1Ba0dBMVVFQmhNQ1ZWTXhFVEFQQmdOVkJBZ01DRTVsZHlCWmIzSnJNUkV3RHdZRFZRUUhEQWhPWlhjZ1dXOXlhekVPTUF3R0ExVUVDZ3dGVm1Gd2IzSXhGREFTQmdOVkJBc01DMFZ1WjJsdVpXVnlhVzVuTVI0d0hBWURWUVFEREJWV1lYQnZjaUJKYm5SbGNtMWxaR2xoZEdVZ1EwRXhKakFrQmdrcWhraUc5dzBCQ1FFV0YyRmtiV2x1UUhaaGNHOXlMbVY0WVcxd2JHVXVZMjl0TUZrd0V3WUhLb1pJemowQ0FRWUlLb1pJemowREFRY0RRZ0FFS2FpYm1CcWFvNzRsOHBsbWlYNlwvektaQTZGMEZ5Z0FTanh2NjdMbWVDaDUzamJvSGRCZEpjZEtadHBjWG1YTGptY1VSVGxLUzRqdzNLVG54MnIrdHBLTlFNRTR3REFZRFZSMFRCQVV3QXdFQlwvekFkQmdOVkhRNEVGZ1FVQmk4NFdjU2Z0RHhLZVFBRzNSenhFcHRCUW5Jd0h3WURWUjBqQkJnd0ZvQVVlU2VRNjJYN2lkYittY0xGM0cwcmdCUXlzZm93Q2dZSUtvWkl6ajBFQXdJRFNBQXdSUUlnQlRsRTJralU4dlFBeldzXC9zUGt5cU1WSGJjTWdrMUZoenUxUnFoRzlXT0lDSVFDeFZha2Jpb250eHowWmVTektYU2xsRG9kVzZZaGZpTWxtU0hWSWswMGJBUT09IiwiTUlJQ2lUQ0NBaStnQXdJQkFnSVVBUW5uaXp6blwvaElySkJ5M3RQR1wvQnNUOHpkd3dDZ1lJS29aSXpqMEVBd0l3Z1preEN6QUpCZ05WQkFZVEFsVlRNUkV3RHdZRFZRUUlEQWhPWlhjZ1dXOXlhekVSTUE4R0ExVUVCd3dJVG1WM0lGbHZjbXN4RGpBTUJnTlZCQW9NQlZaaGNHOXlNUlF3RWdZRFZRUUxEQXRGYm1kcGJtVmxjbWx1WnpFV01CUUdBMVVFQXd3TlZtRndiM0lnVW05dmRDQkRRVEVtTUNRR0NTcUdTSWIzRFFFSkFSWVhZV1J0YVc1QWRtRndiM0l1WlhoaGJYQnNaUzVqYjIwd0hoY05Nall3TWpBNU1USXhOVEUyV2hjTk16WXdNakEzTVRJeE5URTJXakNCbVRFTE1Ba0dBMVVFQmhNQ1ZWTXhFVEFQQmdOVkJBZ01DRTVsZHlCWmIzSnJNUkV3RHdZRFZRUUhEQWhPWlhjZ1dXOXlhekVPTUF3R0ExVUVDZ3dGVm1Gd2IzSXhGREFTQmdOVkJBc01DMFZ1WjJsdVpXVnlhVzVuTVJZd0ZBWURWUVFEREExV1lYQnZjaUJTYjI5MElFTkJNU1l3SkFZSktvWklodmNOQVFrQkZoZGhaRzFwYmtCMllYQnZjaTVsZUdGdGNHeGxMbU52YlRCWk1CTUdCeXFHU000OUFnRUdDQ3FHU000OUF3RUhBMElBQkF0bUFvZFBmYWxKNmxCd2pPdHdVV1wvbjBjOTJ0QldEdE9kYitTZ0hVSEticTV2WHJsbUR3a2NqZTQ0ZlhnVWJIMGZjXC9XdExcLzZ3NXBxNTVVYnpOQzJlalV6QlJNQjBHQTFVZERnUVdCQlI1SjVEclpmdUoxdjZad3NYY2JTdUFGREt4K2pBZkJnTlZIU01FR0RBV2dCUjVKNURyWmZ1SjF2Nlp3c1hjYlN1QUZES3grakFQQmdOVkhSTUJBZjhFQlRBREFRSFwvTUFvR0NDcUdTTTQ5QkFNQ0EwZ0FNRVVDSVFEdEZ5ZGJCaFlJeDNZMWNUbzNPanpaWnZzRWpaUWFcLzF5SEd5a1wvdUFcL2pcL3dJZ01lSlNOeFFETFRHTHZIb1laeHRxTzRpMmtjK1ozS2VkWjBraStaaTRGazA9Il19.eyJjb29sIjp0cnVlfQ.lwgf9XsfzOzGiNC9pZWUd7vHsIFTupKPAMHVYODIrOQ_ftCGSskeOVyJioTQS1AyMb_xaYDwD86ONELaThYNhg """ let missingIntermediateAndRootToken = """ - eyJ4NWMiOlsiTUlJQ2ZqQ0NBaU9nQXdJQkFnSVVGeW9vWlJtc1wvU1M1SnZZTDBkbDZoSHdSNWxZd0NnWUlLb1pJemowRUF3SXdnYUV4Q3pBSkJnTlZCQVlUQWxWVE1SRXdEd1lEVlFRSURBaE9aWGNnV1c5eWF6RVJNQThHQTFVRUJ3d0lUbVYzSUZsdmNtc3hEakFNQmdOVkJBb01CVlpoY0c5eU1SUXdFZ1lEVlFRTERBdEZibWRwYm1WbGNtbHVaekVlTUJ3R0ExVUVBd3dWVm1Gd2IzSWdTVzUwWlhKdFpXUnBZWFJsSUVOQk1TWXdKQVlKS29aSWh2Y05BUWtCRmhkaFpHMXBia0IyWVhCdmNpNWxlR0Z0Y0d4bExtTnZiVEFlRncweU5UQXhNVEF3T1RJM01UaGFGdzB5TmpBeE1UQXdPVEkzTVRoYU1JR1dNUXN3Q1FZRFZRUUdFd0pWVXpFUk1BOEdBMVVFQ0F3SVRtVjNJRmx2Y21zeEVUQVBCZ05WQkFjTUNFNWxkeUJaYjNKck1RNHdEQVlEVlFRS0RBVldZWEJ2Y2pFVU1CSUdBMVVFQ3d3TFJXNW5hVzVsWlhKcGJtY3hFekFSQmdOVkJBTU1DbFpoY0c5eUlFeGxZV1l4SmpBa0Jna3Foa2lHOXcwQkNRRVdGMkZrYldsdVFIWmhjRzl5TG1WNFlXMXdiR1V1WTI5dE1Ga3dFd1lIS29aSXpqMENBUVlJS29aSXpqMERBUWNEUWdBRVhMS1BzZDFQaXMxOFp6Nzc5TEkzamU0R0NcL0dMZWVKeHhTN1Y1bndGeFNBdFN4bUpYWlBsd0Q2Y2RGcnVYZHdKdnpKbk9QclhXRDRwWXZBTVBcLzdDUzZOQ01FQXdIUVlEVlIwT0JCWUVGSFwvY2tGdG1rSmJZeWl2eVZrb3RwMkZJcE5xV01COEdBMVVkSXdRWU1CYUFGSFBXempuN0h4R0kyeEh4Uk5FSmh5M1NSSWVWTUFvR0NDcUdTTTQ5QkFNQ0Ewa0FNRVlDSVFEUndYOE02RFRIMEplY2RjUnQwWFU3V1JYV2ZGb0VGZmxka0xSSjlVNHZRUUloQUxwVlBYVUlaM0xMdjFVU2JZNzNKUTVjazBJNzkyY3U1XC9uYUNlVDZvOHJIIl0sImFsZyI6IkVTMjU2IiwidHlwIjoiSldUIn0.eyJjb29sIjp0cnVlfQ.PhxN-7AYea0WzTTL8GcBoVk48csux9oEvodMSuDbA4Ayxv1fO9rH-vwtSP7OO66F2DjPYUBKp5GGvTC4MA0R0g + eyJ0eXAiOiJKV1QiLCJhbGciOiJFUzI1NiIsIng1YyI6WyJNSUlDZkRDQ0FpT2dBd0lCQWdJVVFxMDhSalpTbnpzSnlCVnlqZFI0R1h1bm1TUXdDZ1lJS29aSXpqMEVBd0l3Z2FFeEN6QUpCZ05WQkFZVEFsVlRNUkV3RHdZRFZRUUlEQWhPWlhjZ1dXOXlhekVSTUE4R0ExVUVCd3dJVG1WM0lGbHZjbXN4RGpBTUJnTlZCQW9NQlZaaGNHOXlNUlF3RWdZRFZRUUxEQXRGYm1kcGJtVmxjbWx1WnpFZU1Cd0dBMVVFQXd3VlZtRndiM0lnU1c1MFpYSnRaV1JwWVhSbElFTkJNU1l3SkFZSktvWklodmNOQVFrQkZoZGhaRzFwYmtCMllYQnZjaTVsZUdGdGNHeGxMbU52YlRBZUZ3MHlOakF5TURreE1qRTFNVFphRncweU56QXlNRGt4TWpFMU1UWmFNSUdXTVFzd0NRWURWUVFHRXdKVlV6RVJNQThHQTFVRUNBd0lUbVYzSUZsdmNtc3hFVEFQQmdOVkJBY01DRTVsZHlCWmIzSnJNUTR3REFZRFZRUUtEQVZXWVhCdmNqRVVNQklHQTFVRUN3d0xSVzVuYVc1bFpYSnBibWN4RXpBUkJnTlZCQU1NQ2xaaGNHOXlJRXhsWVdZeEpqQWtCZ2txaGtpRzl3MEJDUUVXRjJGa2JXbHVRSFpoY0c5eUxtVjRZVzF3YkdVdVkyOXRNRmt3RXdZSEtvWkl6ajBDQVFZSUtvWkl6ajBEQVFjRFFnQUVYK0s3TFZhVmpPenFwU3dOK3pqY0NxVDhmMnoyWHUzUE5cL2xjRmthd2IyRURyUXpCNCtiM2VrR1hlcVJmRWc3bGNFMHR6dnhpVmV3RU9TcDNSVktvektOQ01FQXdIUVlEVlIwT0JCWUVGSlF2UCtJR2IzaEdXZW1nZHBLV3B3RE9Vdk5RTUI4R0ExVWRJd1FZTUJhQUZBWXZPRm5FbjdROFNua0FCdDBjOFJLYlFVSnlNQW9HQ0NxR1NNNDlCQU1DQTBjQU1FUUNJQnFocEZuUExRdkdjdzdkYXUySU90WmxKeWtNZ2I0WlFCMGpuMEFoeDVKSEFpQTl0cHFWbFR1a1JSMnhjM1dqVlE4NDZHS1BxZElMXC9uXC8yTlVvQ2NJeEZhUT09Il19.eyJjb29sIjp0cnVlfQ.2YGSdm0igZP9vHTFAt-kGqVQOhl6nz3cRQVN2wjqVM8tqMRs638IFQDLMVT-F5rVr65B2kUYi84rHpJfPlaoGQ + """ +let missingIntermediateToken = """ + eyJ0eXAiOiJKV1QiLCJhbGciOiJFUzI1NiIsIng1YyI6WyJNSUlDZkRDQ0FpT2dBd0lCQWdJVVFxMDhSalpTbnpzSnlCVnlqZFI0R1h1bm1TUXdDZ1lJS29aSXpqMEVBd0l3Z2FFeEN6QUpCZ05WQkFZVEFsVlRNUkV3RHdZRFZRUUlEQWhPWlhjZ1dXOXlhekVSTUE4R0ExVUVCd3dJVG1WM0lGbHZjbXN4RGpBTUJnTlZCQW9NQlZaaGNHOXlNUlF3RWdZRFZRUUxEQXRGYm1kcGJtVmxjbWx1WnpFZU1Cd0dBMVVFQXd3VlZtRndiM0lnU1c1MFpYSnRaV1JwWVhSbElFTkJNU1l3SkFZSktvWklodmNOQVFrQkZoZGhaRzFwYmtCMllYQnZjaTVsZUdGdGNHeGxMbU52YlRBZUZ3MHlOakF5TURreE1qRTFNVFphRncweU56QXlNRGt4TWpFMU1UWmFNSUdXTVFzd0NRWURWUVFHRXdKVlV6RVJNQThHQTFVRUNBd0lUbVYzSUZsdmNtc3hFVEFQQmdOVkJBY01DRTVsZHlCWmIzSnJNUTR3REFZRFZRUUtEQVZXWVhCdmNqRVVNQklHQTFVRUN3d0xSVzVuYVc1bFpYSnBibWN4RXpBUkJnTlZCQU1NQ2xaaGNHOXlJRXhsWVdZeEpqQWtCZ2txaGtpRzl3MEJDUUVXRjJGa2JXbHVRSFpoY0c5eUxtVjRZVzF3YkdVdVkyOXRNRmt3RXdZSEtvWkl6ajBDQVFZSUtvWkl6ajBEQVFjRFFnQUVYK0s3TFZhVmpPenFwU3dOK3pqY0NxVDhmMnoyWHUzUE5cL2xjRmthd2IyRURyUXpCNCtiM2VrR1hlcVJmRWc3bGNFMHR6dnhpVmV3RU9TcDNSVktvektOQ01FQXdIUVlEVlIwT0JCWUVGSlF2UCtJR2IzaEdXZW1nZHBLV3B3RE9Vdk5RTUI4R0ExVWRJd1FZTUJhQUZBWXZPRm5FbjdROFNua0FCdDBjOFJLYlFVSnlNQW9HQ0NxR1NNNDlCQU1DQTBjQU1FUUNJQnFocEZuUExRdkdjdzdkYXUySU90WmxKeWtNZ2I0WlFCMGpuMEFoeDVKSEFpQTl0cHFWbFR1a1JSMnhjM1dqVlE4NDZHS1BxZElMXC9uXC8yTlVvQ2NJeEZhUT09IiwiTUlJQ2lUQ0NBaStnQXdJQkFnSVVBUW5uaXp6blwvaElySkJ5M3RQR1wvQnNUOHpkd3dDZ1lJS29aSXpqMEVBd0l3Z1preEN6QUpCZ05WQkFZVEFsVlRNUkV3RHdZRFZRUUlEQWhPWlhjZ1dXOXlhekVSTUE4R0ExVUVCd3dJVG1WM0lGbHZjbXN4RGpBTUJnTlZCQW9NQlZaaGNHOXlNUlF3RWdZRFZRUUxEQXRGYm1kcGJtVmxjbWx1WnpFV01CUUdBMVVFQXd3TlZtRndiM0lnVW05dmRDQkRRVEVtTUNRR0NTcUdTSWIzRFFFSkFSWVhZV1J0YVc1QWRtRndiM0l1WlhoaGJYQnNaUzVqYjIwd0hoY05Nall3TWpBNU1USXhOVEUyV2hjTk16WXdNakEzTVRJeE5URTJXakNCbVRFTE1Ba0dBMVVFQmhNQ1ZWTXhFVEFQQmdOVkJBZ01DRTVsZHlCWmIzSnJNUkV3RHdZRFZRUUhEQWhPWlhjZ1dXOXlhekVPTUF3R0ExVUVDZ3dGVm1Gd2IzSXhGREFTQmdOVkJBc01DMFZ1WjJsdVpXVnlhVzVuTVJZd0ZBWURWUVFEREExV1lYQnZjaUJTYjI5MElFTkJNU1l3SkFZSktvWklodmNOQVFrQkZoZGhaRzFwYmtCMllYQnZjaTVsZUdGdGNHeGxMbU52YlRCWk1CTUdCeXFHU000OUFnRUdDQ3FHU000OUF3RUhBMElBQkF0bUFvZFBmYWxKNmxCd2pPdHdVV1wvbjBjOTJ0QldEdE9kYitTZ0hVSEticTV2WHJsbUR3a2NqZTQ0ZlhnVWJIMGZjXC9XdExcLzZ3NXBxNTVVYnpOQzJlalV6QlJNQjBHQTFVZERnUVdCQlI1SjVEclpmdUoxdjZad3NYY2JTdUFGREt4K2pBZkJnTlZIU01FR0RBV2dCUjVKNURyWmZ1SjF2Nlp3c1hjYlN1QUZES3grakFQQmdOVkhSTUJBZjhFQlRBREFRSFwvTUFvR0NDcUdTTTQ5QkFNQ0EwZ0FNRVVDSVFEdEZ5ZGJCaFlJeDNZMWNUbzNPanpaWnZzRWpaUWFcLzF5SEd5a1wvdUFcL2pcL3dJZ01lSlNOeFFETFRHTHZIb1laeHRxTzRpMmtjK1ozS2VkWjBraStaaTRGazA9Il19.eyJjb29sIjp0cnVlfQ.ZdIvEHoATSQTe_v9lNy7_sT4fF2Yronr7Xfqba4oI9h_FCntoZmB_DNcxfx3zA2B9uXe2n-3ft-L6N4tyrHiUg + """ +let missingLeafAndIntermediateToken = """ + eyJ0eXAiOiJKV1QiLCJhbGciOiJFUzI1NiIsIng1YyI6WyJNSUlDaVRDQ0FpK2dBd0lCQWdJVUFRbm5penpuXC9oSXJKQnkzdFBHXC9Cc1Q4emR3d0NnWUlLb1pJemowRUF3SXdnWmt4Q3pBSkJnTlZCQVlUQWxWVE1SRXdEd1lEVlFRSURBaE9aWGNnV1c5eWF6RVJNQThHQTFVRUJ3d0lUbVYzSUZsdmNtc3hEakFNQmdOVkJBb01CVlpoY0c5eU1SUXdFZ1lEVlFRTERBdEZibWRwYm1WbGNtbHVaekVXTUJRR0ExVUVBd3dOVm1Gd2IzSWdVbTl2ZENCRFFURW1NQ1FHQ1NxR1NJYjNEUUVKQVJZWFlXUnRhVzVBZG1Gd2IzSXVaWGhoYlhCc1pTNWpiMjB3SGhjTk1qWXdNakE1TVRJeE5URTJXaGNOTXpZd01qQTNNVEl4TlRFMldqQ0JtVEVMTUFrR0ExVUVCaE1DVlZNeEVUQVBCZ05WQkFnTUNFNWxkeUJaYjNKck1SRXdEd1lEVlFRSERBaE9aWGNnV1c5eWF6RU9NQXdHQTFVRUNnd0ZWbUZ3YjNJeEZEQVNCZ05WQkFzTUMwVnVaMmx1WldWeWFXNW5NUll3RkFZRFZRUUREQTFXWVhCdmNpQlNiMjkwSUVOQk1TWXdKQVlKS29aSWh2Y05BUWtCRmhkaFpHMXBia0IyWVhCdmNpNWxlR0Z0Y0d4bExtTnZiVEJaTUJNR0J5cUdTTTQ5QWdFR0NDcUdTTTQ5QXdFSEEwSUFCQXRtQW9kUGZhbEo2bEJ3ak90d1VXXC9uMGM5MnRCV0R0T2RiK1NnSFVIS2JxNXZYcmxtRHdrY2plNDRmWGdVYkgwZmNcL1d0TFwvNnc1cHE1NVViek5DMmVqVXpCUk1CMEdBMVVkRGdRV0JCUjVKNURyWmZ1SjF2Nlp3c1hjYlN1QUZES3grakFmQmdOVkhTTUVHREFXZ0JSNUo1RHJaZnVKMXY2WndzWGNiU3VBRkRLeCtqQVBCZ05WSFJNQkFmOEVCVEFEQVFIXC9NQW9HQ0NxR1NNNDlCQU1DQTBnQU1FVUNJUUR0RnlkYkJoWUl4M1kxY1RvM09qelpadnNFalpRYVwvMXlIR3lrXC91QVwvalwvd0lnTWVKU054UURMVEdMdkhvWVp4dHFPNGkya2MrWjNLZWRaMGtpK1ppNEZrMD0iXX0.eyJjb29sIjp0cnVlfQ.nBm2ew-bknfjH8DyHdLJOL4I7T6gJtvxEpLypg6jel1ELz2eYQxljNr6l1ra83W1IEi9lSNFAYeq9mR3uPVwWg """ let x5cCerts = [ """ -----BEGIN CERTIFICATE----- - MIICfTCCAiOgAwIBAgIUdSjHMW4Ee5DUpcOyHQx3KOEEoHwwCgYIKoZIzj0EAwIw + MIICfDCCAiOgAwIBAgIUQq08RjZSnzsJyBVyjdR4GXunmSQwCgYIKoZIzj0EAwIw gaExCzAJBgNVBAYTAlVTMREwDwYDVQQIDAhOZXcgWW9yazERMA8GA1UEBwwITmV3 IFlvcmsxDjAMBgNVBAoMBVZhcG9yMRQwEgYDVQQLDAtFbmdpbmVlcmluZzEeMBwG A1UEAwwVVmFwb3IgSW50ZXJtZWRpYXRlIENBMSYwJAYJKoZIhvcNAQkBFhdhZG1p - bkB2YXBvci5leGFtcGxlLmNvbTAeFw0yNTAxMTAwOTQxNDJaFw0yNjAxMTAwOTQx - NDJaMIGWMQswCQYDVQQGEwJVUzERMA8GA1UECAwITmV3IFlvcmsxETAPBgNVBAcM + bkB2YXBvci5leGFtcGxlLmNvbTAeFw0yNjAyMDkxMjE1MTZaFw0yNzAyMDkxMjE1 + MTZaMIGWMQswCQYDVQQGEwJVUzERMA8GA1UECAwITmV3IFlvcmsxETAPBgNVBAcM CE5ldyBZb3JrMQ4wDAYDVQQKDAVWYXBvcjEUMBIGA1UECwwLRW5naW5lZXJpbmcx EzARBgNVBAMMClZhcG9yIExlYWYxJjAkBgkqhkiG9w0BCQEWF2FkbWluQHZhcG9y - LmV4YW1wbGUuY29tMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEe6mlYhBYd3VM - +yMXmW0ZwsJCzfUWU7RWUdkI35FyMcY/BQLMM2RFrrgyX8CuEVJsT6Bgzgg+hyDh - YMKwtMX1i6NCMEAwHQYDVR0OBBYEFEbhwCoMFqviogGLUVJrHgLiAMlAMB8GA1Ud - IwQYMBaAFF0UJCCJyb67oh5/1bbXdwB/nKKnMAoGCCqGSM49BAMCA0gAMEUCIAQZ - sKPKXPX1tD+rGyYQQu7Knedq1uZz8Vtoun7zx+kPAiEAv/HympBtgony5zIb3Wme - EAOpDqw6rP+TeYWgk0XyaJA= + LmV4YW1wbGUuY29tMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEX+K7LVaVjOzq + pSwN+zjcCqT8f2z2Xu3PN/lcFkawb2EDrQzB4+b3ekGXeqRfEg7lcE0tzvxiVewE + OSp3RVKozKNCMEAwHQYDVR0OBBYEFJQvP+IGb3hGWemgdpKWpwDOUvNQMB8GA1Ud + IwQYMBaAFAYvOFnEn7Q8SnkABt0c8RKbQUJyMAoGCCqGSM49BAMCA0cAMEQCIBqh + pFnPLQvGcw7dau2IOtZlJykMgb4ZQB0jn0Ahx5JHAiA9tpqVlTukRR2xc3WjVQ84 + 6GKPqdIL/n/2NUoCcIxFaQ== -----END CERTIFICATE----- """, """ -----BEGIN CERTIFICATE----- - MIICjjCCAjSgAwIBAgIULepBF8dIlNcyWDaMBGr29YX0bD4wCgYIKoZIzj0EAwIw + MIICjjCCAjSgAwIBAgIUWKpZXpbQTnlmjk8MMGMpu1ZkdocwCgYIKoZIzj0EAwIw gZkxCzAJBgNVBAYTAlVTMREwDwYDVQQIDAhOZXcgWW9yazERMA8GA1UEBwwITmV3 IFlvcmsxDjAMBgNVBAoMBVZhcG9yMRQwEgYDVQQLDAtFbmdpbmVlcmluZzEWMBQG A1UEAwwNVmFwb3IgUm9vdCBDQTEmMCQGCSqGSIb3DQEJARYXYWRtaW5AdmFwb3Iu - ZXhhbXBsZS5jb20wHhcNMjUwMTEwMDk0MTQyWhcNMzAwMTA5MDk0MTQyWjCBoTEL + ZXhhbXBsZS5jb20wHhcNMjYwMjA5MTIxNTE2WhcNMzEwMjA4MTIxNTE2WjCBoTEL MAkGA1UEBhMCVVMxETAPBgNVBAgMCE5ldyBZb3JrMREwDwYDVQQHDAhOZXcgWW9y azEOMAwGA1UECgwFVmFwb3IxFDASBgNVBAsMC0VuZ2luZWVyaW5nMR4wHAYDVQQD DBVWYXBvciBJbnRlcm1lZGlhdGUgQ0ExJjAkBgkqhkiG9w0BCQEWF2FkbWluQHZh - cG9yLmV4YW1wbGUuY29tMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEb+p+OAnz - 3W63DLze82XsWLqI75MJi6GGTdnnW9HtQhxDCMBiNkFHpUu6qtsaIEsm0PCiW640 - fLEf0hG+CmNfQaNQME4wDAYDVR0TBAUwAwEB/zAdBgNVHQ4EFgQUXRQkIInJvrui - Hn/Vttd3AH+coqcwHwYDVR0jBBgwFoAUe3e998Fah3ndWj04w7r5VK9zhiAwCgYI - KoZIzj0EAwIDSAAwRQIhAO6Xr51C3jLaEN+gMWm0eeeK6cQFn2xIy/F8Se0jAyAo - AiAeSRkjHbrgK63cbza6Qz5ClaHYwg6WF/VNMglE10CDGw== + cG9yLmV4YW1wbGUuY29tMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEKaibmBqa + o74l8plmiX6/zKZA6F0FygASjxv67LmeCh53jboHdBdJcdKZtpcXmXLjmcURTlKS + 4jw3KTnx2r+tpKNQME4wDAYDVR0TBAUwAwEB/zAdBgNVHQ4EFgQUBi84WcSftDxK + eQAG3RzxEptBQnIwHwYDVR0jBBgwFoAUeSeQ62X7idb+mcLF3G0rgBQysfowCgYI + KoZIzj0EAwIDSAAwRQIgBTlE2kjU8vQAzWs/sPkyqMVHbcMgk1Fhzu1RqhG9WOIC + IQCxVakbiontxz0ZeSzKXSllDodW6YhfiMlmSHVIk00bAQ== -----END CERTIFICATE----- """, """ -----BEGIN CERTIFICATE----- - MIICiTCCAi+gAwIBAgIUcD7x8o9UAoMCY58OG6cNm0jqTJ0wCgYIKoZIzj0EAwIw + MIICiTCCAi+gAwIBAgIUAQnnizzn/hIrJBy3tPG/BsT8zdwwCgYIKoZIzj0EAwIw gZkxCzAJBgNVBAYTAlVTMREwDwYDVQQIDAhOZXcgWW9yazERMA8GA1UEBwwITmV3 IFlvcmsxDjAMBgNVBAoMBVZhcG9yMRQwEgYDVQQLDAtFbmdpbmVlcmluZzEWMBQG A1UEAwwNVmFwb3IgUm9vdCBDQTEmMCQGCSqGSIb3DQEJARYXYWRtaW5AdmFwb3Iu - ZXhhbXBsZS5jb20wHhcNMjUwMTEwMDk0MTQyWhcNMzUwMTA4MDk0MTQyWjCBmTEL + ZXhhbXBsZS5jb20wHhcNMjYwMjA5MTIxNTE2WhcNMzYwMjA3MTIxNTE2WjCBmTEL MAkGA1UEBhMCVVMxETAPBgNVBAgMCE5ldyBZb3JrMREwDwYDVQQHDAhOZXcgWW9y azEOMAwGA1UECgwFVmFwb3IxFDASBgNVBAsMC0VuZ2luZWVyaW5nMRYwFAYDVQQD DA1WYXBvciBSb290IENBMSYwJAYJKoZIhvcNAQkBFhdhZG1pbkB2YXBvci5leGFt - cGxlLmNvbTBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABFUHLLDNUDFdH2TGjqHj - NKjvCsClKYEoWbmMXoypA6P2KHmWVVC3VSQ0hWVrpN8jza/tsLe03fjvfYrsf7IN - yLmjUzBRMB0GA1UdDgQWBBR7d733wVqHed1aPTjDuvlUr3OGIDAfBgNVHSMEGDAW - gBR7d733wVqHed1aPTjDuvlUr3OGIDAPBgNVHRMBAf8EBTADAQH/MAoGCCqGSM49 - BAMCA0gAMEUCIEwkrw2Jx6BbuYnZb3LQ6I3hZZnjHA5Co4Re1IKf3sRBAiEAugsW - oXB0T7ftyoxbWj5qDUSnTPN+P27kWOf1GceWh3U= + cGxlLmNvbTBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABAtmAodPfalJ6lBwjOtw + UW/n0c92tBWDtOdb+SgHUHKbq5vXrlmDwkcje44fXgUbH0fc/WtL/6w5pq55UbzN + C2ejUzBRMB0GA1UdDgQWBBR5J5DrZfuJ1v6ZwsXcbSuAFDKx+jAfBgNVHSMEGDAW + gBR5J5DrZfuJ1v6ZwsXcbSuAFDKx+jAPBgNVHRMBAf8EBTADAQH/MAoGCCqGSM49 + BAMCA0gAMEUCIQDtFydbBhYIx3Y1cTo3OjzZZvsEjZQa/1yHGyk/uA/j/wIgMeJS + NxQDLTGLvHoYZxtqO4i2kc+Z3KedZ0ki+Zi4Fk0= -----END CERTIFICATE----- """, ] let x5cLeafCertKey = """ -----BEGIN EC PRIVATE KEY----- - MHcCAQEEIJuYkleZWC5RrZUnepPFx25QI5msgOROv/KV97lknYzsoAoGCCqGSM49 - AwEHoUQDQgAEe6mlYhBYd3VM+yMXmW0ZwsJCzfUWU7RWUdkI35FyMcY/BQLMM2RF - rrgyX8CuEVJsT6Bgzgg+hyDhYMKwtMX1iw== + MHcCAQEEII3IvhB0iWEU8xIjMWbktVbeQ+K6458CjKjJvhuR13a5oAoGCCqGSM49 + AwEHoUQDQgAEX+K7LVaVjOzqpSwN+zjcCqT8f2z2Xu3PN/lcFkawb2EDrQzB4+b3 + ekGXeqRfEg7lcE0tzvxiVewEOSp3RVKozA== -----END EC PRIVATE KEY----- """