// converted by version  [v3.0.5]
// on Wed Nov 02 11:52:26 CST 2022

.package com/josh/vku2f {
	.aid 0xA0:0x0:0x0:0x6:0x47;
	.version 0.1;

	.imports {
		0xA0:0x0:0x0:0x0:0x62:0x0:0x1 1.0;		//java/lang
		0xA0:0x0:0x0:0x0:0x62:0x1:0x2 1.6;		//javacard/security
		0xA0:0x0:0x0:0x0:0x62:0x1:0x1 1.6;		//javacard/framework
		0xA0:0x0:0x0:0x0:0x62:0x2:0x9 1.0;		//javacardx/apdu
		0xA0:0x0:0x0:0x0:0x62:0x2:0x1 1.6;		//javacardx/crypto
	}

	.applet {
		0xA0:0x0:0x0:0x6:0x47:0x2F:0x0:0x1 CTAP2;
	}

	.constantPool {
		// 0
		instanceFieldRef 1.16 AttestationKeyPair/kp;
		// 1
		instanceFieldRef 1.15 AttestationKeyPair/sig;
		// 2
		instanceFieldRef byte[] AttestationKeyPair/x509cert;
		// 3
		instanceFieldRef short AttestationKeyPair/x509len;
		// 4
		instanceFieldRef boolean[] AuthenticatorGetAssertion/options;
		// 5
		instanceFieldRef byte[] AuthenticatorGetAssertion/rpId;
		// 6
		instanceFieldRef byte[] AuthenticatorGetAssertion/clientDataHash;
		// 7
		instanceFieldRef PublicKeyCredentialDescriptor[] AuthenticatorGetAssertion/allow;
		// 8
		instanceFieldRef boolean[] AuthenticatorMakeCredential/options;
		// 9
		instanceFieldRef byte[] AuthenticatorMakeCredential/dataHash;
		// 10
		instanceFieldRef PublicKeyCredentialRpEntity AuthenticatorMakeCredential/rp;
		// 11
		instanceFieldRef PublicKeyCredentialUserEntity AuthenticatorMakeCredential/user;
		// 12
		instanceFieldRef PublicKeyCredentialParams AuthenticatorMakeCredential/params;
		// 13
		instanceFieldRef PublicKeyCredentialDescriptor[] AuthenticatorMakeCredential/exclude;
		// 14
		instanceFieldRef byte[] CBORBase/mBuffer;
		// 15
		instanceFieldRef short[] CBORBase/mStatusWords;
		// 16
		instanceFieldRef byte[] COSEKey/w;
		// 17
		instanceFieldRef byte CTAP2/MAX_PIN_RETRIES;
		// 18
		instanceFieldRef byte CTAP2/MAX_UV_RETRIES;
		// 19
		instanceFieldRef byte[] CTAP2/dataBuffer;
		// 20
		instanceFieldRef byte[] CTAP2/scratch;
		// 21
		instanceFieldRef short[] CTAP2/tempVars;
		// 22
		instanceFieldRef CBORDecoder CTAP2/cborDecoder;
		// 23
		instanceFieldRef CBOREncoder CTAP2/cborEncoder;
		// 24
		instanceFieldRef CredentialArray CTAP2/credentialArray;
		// 25
		instanceFieldRef 1.11 CTAP2/sha256MessageDigest;
		// 26
		instanceFieldRef AttestationKeyPair CTAP2/attestationKeyPair;
		// 27
		instanceFieldRef short[] CTAP2/nextAssertion;
		// 28
		instanceFieldRef boolean CTAP2/personalizeComplete;
		// 29
		instanceFieldRef boolean[] CTAP2/isChaining;
		// 30
		instanceFieldRef short[] CTAP2/chainRam;
		// 31
		instanceFieldRef short[] CTAP2/outChainRam;
		// 32
		instanceFieldRef boolean[] CTAP2/isOutChaining;
		// 33
		instanceFieldRef ClientPINCommand CTAP2/clientPINCommand;
		// 34
		instanceFieldRef IDSecret CTAP2/idSecret;
		// 35
		instanceFieldRef StoredCredential CTAP2/tempCredential;
		// 36
		instanceFieldRef AuthenticatorMakeCredential CTAP2/authenticatorMakeCredential;
		// 37
		instanceFieldRef DomString IDSecret/IDx;
		// 38
		instanceFieldRef byte[] IDSecret/Rx;
		// 39
		instanceFieldRef byte[] IDSecret/PuKp;
		// 40
		instanceFieldRef byte[] IDSecret/sharedSecret;
		// 41
		instanceFieldRef byte[] IDSecret/encryptedCx;
		// 42
		instanceFieldRef PublicKeyCredentialRpEntity StoredCredential/rpEntity;
		// 43
		instanceFieldRef AuthenticatorGetAssertion CTAP2/authenticatorGetAssertion;
		// 44
		instanceFieldRef StoredCredential[] CTAP2/assertionCredentials;
		// 45
		instanceFieldRef byte CTAP2/pinRetries;
		// 46
		instanceFieldRef PinUvAuthProtocolOne CTAP2/pinUvAuthProtocolOne;
		// 47
		instanceFieldRef byte[] PublicKeyCredentialDescriptor/id;
		// 48
		instanceFieldRef byte[] StoredCredential/credentialId;
		// 49
		instanceFieldRef byte[] CTAP2/fidoInfo;
		// 50
		instanceFieldRef PublicKeyCredentialUserEntity StoredCredential/userEntity;
		// 51
		instanceFieldRef byte PublicKeyCredentialUserEntity/numData;
		// 52
		instanceFieldRef DomString PublicKeyCredentialUserEntity/displayName;
		// 53
		instanceFieldRef byte[] DomString/str;
		// 54
		instanceFieldRef short DomString/len;
		// 55
		instanceFieldRef byte[] PublicKeyCredentialUserEntity/id;
		// 56
		instanceFieldRef DomString PublicKeyCredentialEntity/name;
		// 57
		instanceFieldRef byte[] PublicKeyCredentialUserEntity/icon;
		// 58
		instanceFieldRef boolean[] ClientPIN/checked;
		// 59
		instanceFieldRef byte[] ClientPIN/PIN;
		// 60
		instanceFieldRef short ClientPIN/i;
		// 61
		instanceFieldRef byte ClientPINCommand/protocol;
		// 62
		instanceFieldRef byte ClientPINCommand/subCommandCode;
		// 63
		instanceFieldRef byte[] ClientPINCommand/keyAgreement;
		// 64
		instanceFieldRef byte[] ClientPINCommand/pinUvAuthParam;
		// 65
		instanceFieldRef byte[] ClientPINCommand/newPinEnc;
		// 66
		instanceFieldRef byte[] ClientPINCommand/pinHashEnc;
		// 67
		instanceFieldRef byte ClientPINCommand/permissions;
		// 68
		instanceFieldRef byte[] ClientPINCommand/rpId;
		// 69
		instanceFieldRef short CredentialArray/count;
		// 70
		instanceFieldRef StoredCredential[] CredentialArray/credentials;
		// 71
		instanceFieldRef boolean[] CredentialArray/slotStatus;
		// 72
		instanceFieldRef short CredentialArray/size;
		// 73
		instanceFieldRef short CredentialArray/i;
		// 74
		instanceFieldRef byte[] IDSecret/Rp;
		// 75
		instanceFieldRef byte[] IDSecret/RxRp;
		// 76
		instanceFieldRef byte[] IDSecret/hashedSharedSecret;
		// 77
		instanceFieldRef byte[] IDSecret/Cx;
		// 78
		instanceFieldRef byte[] IDSecret/hmac;
		// 79
		instanceFieldRef byte[] IDSecret/IV_ZERO_AES;
		// 80
		instanceFieldRef short IDSecret/SCRATCH_LENGTH;
		// 81
		instanceFieldRef byte IDSecret/i;
		// 82
		instanceFieldRef 1.20 IDSecret/aesKey;
		// 83
		instanceFieldRef 4.1 IDSecret/aesEncrypt;
		// 84
		instanceFieldRef 4.1 IDSecret/aesDecrypt;
		// 85
		instanceFieldRef 1.11 IDSecret/sha256;
		// 86
		instanceFieldRef byte[] IDSecret/scratch;
		// 87
		instanceFieldRef 1.16 PinUvAuthProtocolOne/ecDhKeyPair;
		// 88
		instanceFieldRef boolean[] PinUvAuthProtocolOne/ecDhSet;
		// 89
		instanceFieldRef byte PinUvAuthToken/permissionsRPID;
		// 90
		instanceFieldRef byte PinUvAuthToken/permissionsSet;
		// 91
		instanceFieldRef byte PinUvAuthToken/usageTimer;
		// 92
		instanceFieldRef boolean PinUvAuthToken/inUseFlag;
		// 93
		instanceFieldRef byte PinUvAuthToken/initialUsageTimeLimit;
		// 94
		instanceFieldRef byte PinUvAuthToken/userPresentTimeLimit;
		// 95
		instanceFieldRef byte PinUvAuthToken/maxUsageTimePeriod;
		// 96
		instanceFieldRef boolean PinUvAuthToken/userVerifiedFlag;
		// 97
		instanceFieldRef boolean PinUvAuthToken/userPresentFlag;
		// 98
		instanceFieldRef byte[] PublicKeyCredentialDescriptor/type;
		// 99
		instanceFieldRef DomString PublicKeyCredentialEntity/name;
		// 100
		instanceFieldRef short[] PublicKeyCredentialParams/paramList;
		// 101
		instanceFieldRef short PublicKeyCredentialParams/listIndex;
		// 102
		instanceFieldRef DomString PublicKeyCredentialRpEntity/rpId;
		// 103
		instanceFieldRef boolean[] PublicKeyCredentialUserEntity/dataPresent;
		// 104
		instanceFieldRef byte[] StoredCredential/signingCounter;
		// 105
		instanceFieldRef boolean StoredCredential/initialised;
		// 106
		instanceFieldRef boolean StoredCredential/hmacEnabled;
		// 107
		instanceFieldRef byte[] StoredCredential/credRandom;
		// 108
		instanceFieldRef 1.16 StoredCredential/keyPair;
		// 109
		instanceFieldRef 1.15 StoredES256Credential/sig;
		// 110
		instanceFieldRef 1.15 StoredPS256Credential/kpSignature;
		// 111
		instanceFieldRef 4.1 StoredRS256Credential/kpSignature;
		// 112
		staticMethodRef 2.8.13(SB)[B;		// javacard/framework/JCSystem.makeTransientByteArray(SB)[B
		// 113
		.classRef CBOREncoder;
		// 114
		staticMethodRef CBOREncoder/<init>()V;
		// 115
		virtualMethodRef CBORDecoder/readInt8()B;
		// 116
		.classRef CredentialArray;
		// 117
		staticMethodRef CredentialArray/<init>(S)V;
		// 118
		virtualMethodRef CBORDecoder/readTextString([BS)S;
		// 119
		staticMethodRef 1.11.0(BZ)Ljavacard/security/MessageDigest;;		// javacard/security/MessageDigest.getInstance(BZ)Ljavacard/security/MessageDigest;
			.descriptor	Ljavacard/security/MessageDigest;	1.11;

		// 120
		.classRef 1.17;		// javacard/security/ECKey
		// 121
		.classRef AttestationKeyPair;
		// 122
		staticMethodRef AttestationKeyPair/<init>()V;
		// 123
		virtualMethodRef CBORDecoder/readByteString([BS)S;
		// 124
		staticMethodRef KeyParams/sec256r1params(Ljavacard/security/ECKey;)V;
			.descriptor	Ljavacard/security/ECKey;	1.17;

		// 125
		.classRef PublicKeyCredentialDescriptor;
		// 126
		staticMethodRef 2.8.12(SB)[Z;		// javacard/framework/JCSystem.makeTransientBooleanArray(SB)[Z
		// 127
		virtualMethodRef 1.16.1()V;		// genKeyPair()V
		// 128
		staticMethodRef 2.15.2(S)V;		// javacard/framework/UserException.throwIt(S)V
		// 129
		staticFieldRef byte[] Utf8Strings/UTF8_ID;
		// 130
		staticMethodRef 2.16.0([BS[BSS)B;		// javacard/framework/Util.arrayCompare([BS[BSS)B
		// 131
		staticMethodRef 1.13.1(BBSZ)Ljavacard/security/Key;;		// javacard/security/KeyBuilder.buildKey(BBSZ)Ljavacard/security/Key;
			.descriptor	Ljavacard/security/Key;	1.0;

		// 132
		.classRef 1.18;		// javacard/security/ECPrivateKey
		// 133
		.classRef ClientPINCommand;
		// 134
		staticMethodRef ClientPINCommand/<init>()V;
		// 135
		staticMethodRef PublicKeyCredentialDescriptor/<init>([BSS)V;
		// 136
		.classRef IDSecret;
		// 137
		staticMethodRef IDSecret/<init>()V;
		// 138
		staticFieldRef byte[] Utf8Strings/UTF8_TYPE;
		// 139
		.classRef CTAP2;
		// 140
		staticMethodRef CTAP2/<init>()V;
		// 141
		virtualMethodRef 2.3.2([BSB)V;		// register([BSB)V
		// 142
		virtualMethodRef 2.3.1()V;		// register()V
		// 143
		virtualMethodRef 2.10.1()[B;		// getBuffer()[B
		// 144
		virtualMethodRef 2.3.3()Z;		// selectingApplet()Z
		// 145
		staticFieldRef byte[] Utf8Strings/UTF8_FIDO2;
		// 146
		virtualMethodRef 2.10.8(SS)V;		// setOutgoingAndSend(SS)V
		// 147
		virtualMethodRef 2.10.12()Z;		// isCommandChainingCLA()Z
		// 148
		virtualMethodRef 2.10.14()Z;		// isISOInterindustryCLA()Z
		// 149
		staticMethodRef 2.8.18()V;		// javacard/framework/JCSystem.requestObjectDeletion()V
		// 150
		virtualMethodRef CTAP2/getData(Ljavacard/framework/APDU;)V;
			.descriptor	Ljavacard/framework/APDU;	2.10;

		// 151
		staticMethodRef CTAP2/handle(Ljavacard/framework/APDU;)V;
			.descriptor	Ljavacard/framework/APDU;	2.10;

		// 152
		virtualMethodRef 2.10.6()S;		// setIncomingAndReceive()S
		// 153
		virtualMethodRef 2.10.15()S;		// getIncomingLength()S
		// 154
		virtualMethodRef CTAP2/returnError(Ljavacard/framework/APDU;B)V;
			.descriptor	Ljavacard/framework/APDU;	2.10;

		// 155
		staticMethodRef CTAP2/isCommandChainingCLA(Ljavacard/framework/APDU;)Z;
			.descriptor	Ljavacard/framework/APDU;	2.10;

		// 156
		virtualMethodRef 2.10.16()S;		// getOffsetCdata()S
		// 157
		virtualMethodRef 2.10.11()B;		// getCurrentState()B
		// 158
		virtualMethodRef 2.10.3(S)S;		// receiveBytes(S)S
		// 159
		staticFieldRef byte[] Utf8Strings/UTF8_UP;
		// 160
		virtualMethodRef CBORDecoder/readBoolean()Z;
		// 161
		staticMethodRef CTAP2/doApduIngestion(Ljavacard/framework/APDU;)S;
			.descriptor	Ljavacard/framework/APDU;	2.10;

		// 162
		virtualMethodRef CTAP2/authMakeCredential(Ljavacard/framework/APDU;S)V;
			.descriptor	Ljavacard/framework/APDU;	2.10;

		// 163
		virtualMethodRef CTAP2/authGetAssertion(Ljavacard/framework/APDU;S)V;
			.descriptor	Ljavacard/framework/APDU;	2.10;

		// 164
		staticMethodRef CTAP2/authGetInfo(Ljavacard/framework/APDU;)V;
			.descriptor	Ljavacard/framework/APDU;	2.10;

		// 165
		virtualMethodRef CTAP2/clientPin(Ljavacard/framework/APDU;S)V;
			.descriptor	Ljavacard/framework/APDU;	2.10;

		// 166
		staticMethodRef CTAP2/doReset(Ljavacard/framework/APDU;)V;
			.descriptor	Ljavacard/framework/APDU;	2.10;

		// 167
		staticMethodRef CTAP2/authGetNextAssertion(Ljavacard/framework/APDU;[B)V;
			.descriptor	Ljavacard/framework/APDU;	2.10;

		// 168
		virtualMethodRef CTAP2/attestSignRaw(Ljavacard/framework/APDU;S)V;
			.descriptor	Ljavacard/framework/APDU;	2.10;

		// 169
		virtualMethodRef CTAP2/attestSetCert(Ljavacard/framework/APDU;S)V;
			.descriptor	Ljavacard/framework/APDU;	2.10;

		// 170
		staticMethodRef CTAP2/personalizationComplete(Ljavacard/framework/APDU;)V;
			.descriptor	Ljavacard/framework/APDU;	2.10;

		// 171
		staticMethodRef CTAP2/getAttestPublic(Ljavacard/framework/APDU;)V;
			.descriptor	Ljavacard/framework/APDU;	2.10;

		// 172
		staticMethodRef CTAP2/getCredentialCount(Ljavacard/framework/APDU;)V;
			.descriptor	Ljavacard/framework/APDU;	2.10;

		// 173
		staticMethodRef CTAP2/getPuKxRx(Ljavacard/framework/APDU;S)V;
			.descriptor	Ljavacard/framework/APDU;	2.10;

		// 174
		staticMethodRef CTAP2/getCx(Ljavacard/framework/APDU;S)V;
			.descriptor	Ljavacard/framework/APDU;	2.10;

		// 175
		staticMethodRef CTAP2/getPuKxCx(Ljavacard/framework/APDU;S)V;
			.descriptor	Ljavacard/framework/APDU;	2.10;

		// 176
		staticMethodRef CTAP2/dumpIDSecret(Ljavacard/framework/APDU;)V;
			.descriptor	Ljavacard/framework/APDU;	2.10;

		// 177
		staticMethodRef CTAP2/getCert(Ljavacard/framework/APDU;)V;
			.descriptor	Ljavacard/framework/APDU;	2.10;

		// 178
		virtualMethodRef AttestationKeyPair/isCertSet()Z;
		// 179
		virtualMethodRef AttestationKeyPair/getPubkey([BS)S;
		// 180
		virtualMethodRef 2.10.7()S;		// setOutgoing()S
		// 181
		virtualMethodRef 2.10.9(S)V;		// setOutgoingLength(S)V
		// 182
		virtualMethodRef 2.10.5([BSS)V;		// sendBytesLong([BSS)V
		// 183
		virtualMethodRef CredentialArray/getCount()S;
		// 184
		.classRef DomString;
		// 185
		staticMethodRef DomString/<init>([BS)V;
		// 186
		staticFieldRef byte[] Utf8Strings/UTF8_UV;
		// 187
		virtualMethodRef CBORBase/init([BSS)V;
		// 188
		virtualMethodRef CBOREncoder/startArray(S)S;
		// 189
		virtualMethodRef CBORDecoder/skipEntry()S;
		// 190
		virtualMethodRef CBOREncoder/encodeUInt32([BS)S;
		// 191
		virtualMethodRef CBOREncoder/encodeByteString([BSS)S;
		// 192
		.classRef 2.15;		// javacard/framework/UserException
		// 193
		virtualMethodRef CBORBase/init([BSS)V;
		// 194
		staticMethodRef 1.15.0(BZ)Ljavacard/security/Signature;;		// javacard/security/Signature.getInstance(BZ)Ljavacard/security/Signature;
			.descriptor	Ljavacard/security/Signature;	1.15;

		// 195
		virtualMethodRef 2.15.1()S;		// getReason()S
		// 196
		virtualMethodRef CTAP2/returnError(Ljavacard/framework/APDU;S)V;
			.descriptor	Ljavacard/framework/APDU;	2.10;

		// 197
		staticMethodRef 1.22.0(BZ)Ljavacard/security/KeyAgreement;;		// javacard/security/KeyAgreement.getInstance(BZ)Ljavacard/security/KeyAgreement;
			.descriptor	Ljavacard/security/KeyAgreement;	1.22;

		// 198
		virtualMethodRef AttestationKeyPair/getPrivate()Ljavacard/security/PrivateKey;;
			.descriptor	Ljavacard/security/PrivateKey;	1.2;

		// 199
		virtualMethodRef 1.22.1(Ljavacard/security/PrivateKey;)V;		// init(Ljavacard/security/PrivateKey;)V
			.descriptor	Ljavacard/security/PrivateKey;	1.2;

		// 200
		.classRef 1.16;		// javacard/security/KeyPair
		// 201
		virtualMethodRef 1.22.3([BSS[BS)S;		// generateSecret([BSS[BS)S
		// 202
		virtualMethodRef IDSecret/initAesKey()V;
		// 203
		virtualMethodRef IDSecret/encryptCx()V;
		// 204
		.classRef PublicKeyCredentialRpEntity;
		// 205
		virtualMethodRef IDSecret/getHMAC([BS)V;
		// 206
		virtualMethodRef IDSecret/dump([BLcom/josh/vku2f/CBOREncoder;)S;
		// 207
		virtualMethodRef AttestationKeyPair/sign([BSS[BS)S;
		// 208
		virtualMethodRef AttestationKeyPair/setCert([BSS)V;
		// 209
		virtualMethodRef 1.11.1([BSS[BS)S;		// doFinal([BSS[BS)S
		// 210
		.classRef AuthenticatorMakeCredential;
		// 211
		staticMethodRef AuthenticatorMakeCredential/<init>(Lcom/josh/vku2f/CBORDecoder;)V;
		// 212
		virtualMethodRef AuthenticatorMakeCredential/getAlgorithm()B;
		// 213
		.classRef StoredES256Credential;
		// 214
		staticMethodRef StoredES256Credential/<init>(Lcom/josh/vku2f/AuthenticatorMakeCredential;)V;
		// 215
		.classRef StoredRS256Credential;
		// 216
		staticMethodRef StoredRS256Credential/<init>(Lcom/josh/vku2f/AuthenticatorMakeCredential;)V;
		// 217
		.classRef StoredPS256Credential;
		// 218
		staticMethodRef StoredPS256Credential/<init>(Lcom/josh/vku2f/AuthenticatorMakeCredential;)V;
		// 219
		virtualMethodRef AuthenticatorMakeCredential/isResident()Z;
		// 220
		virtualMethodRef AuthenticatorMakeCredential/isExclude()Z;
		// 221
		staticMethodRef CTAP2/isPresent([Lcom/josh/vku2f/PublicKeyCredentialDescriptor;)Z;
		// 222
		staticMethodRef CTAP2/addResident(Ljavacard/framework/APDU;Lcom/josh/vku2f/StoredCredential;)V;
			.descriptor	Ljavacard/framework/APDU;	2.10;

		// 223
		virtualMethodRef CBOREncoder/startMap(S)S;
		// 224
		staticFieldRef byte[] Utf8Strings/UTF8_PACKED;
		// 225
		virtualMethodRef CBOREncoder/encodeTextString([BSS)S;
		// 226
		virtualMethodRef StoredCredential/getAttestedLen()S;
		// 227
		virtualMethodRef CBOREncoder/startByteString(S)S;
		// 228
		staticMethodRef PublicKeyCredentialRpEntity/<init>()V;
		// 229
		virtualMethodRef PublicKeyCredentialRpEntity/getRp([BS)V;
		// 230
		virtualMethodRef PublicKeyCredentialRpEntity/getRpLen()S;
		// 231
		virtualMethodRef StoredCredential/readCounter([BS)S;
		// 232
		virtualMethodRef StoredCredential/getAttestedData([BS)S;
		// 233
		virtualMethodRef CTAP2/sendLongChaining(Ljavacard/framework/APDU;S)V;
			.descriptor	Ljavacard/framework/APDU;	2.10;

		// 234
		.classRef AuthenticatorGetAssertion;
		// 235
		staticMethodRef AuthenticatorGetAssertion/<init>(Lcom/josh/vku2f/CBORDecoder;)V;
		// 236
		virtualMethodRef 1.16.2()Ljavacard/security/PrivateKey;;		// getPrivate()Ljavacard/security/PrivateKey;
			.descriptor	Ljavacard/security/PrivateKey;	1.2;

		// 237
		staticMethodRef CTAP2/findCredentials(Ljavacard/framework/APDU;Lcom/josh/vku2f/AuthenticatorGetAssertion;)[Lcom/josh/vku2f/StoredCredential;;
			.descriptor	Ljavacard/framework/APDU;	2.10;

		// 238
		virtualMethodRef PublicKeyCredentialRpEntity/setRp([BS)V;
		// 239
		virtualMethodRef AuthenticatorGetAssertion/getHash([BS)S;
		// 240
		staticMethodRef CTAP2/doAssertionCommon(Lcom/josh/vku2f/CBOREncoder;S)V;
		// 241
		virtualMethodRef ClientPINCommand/decodeCommand(Lcom/josh/vku2f/CBORDecoder;)V;
		// 242
		virtualMethodRef ClientPINCommand/getSubCommandCode()B;
		// 243
		staticFieldRef byte ClientPINResponse/PIN_RETRIES;
		// 244
		staticFieldRef byte[] Utf8Strings/UTF8_NAME;
		// 245
		virtualMethodRef CBOREncoder/encodeUInt8(B)S;
		// 246
		virtualMethodRef CBOREncoder/encodeNegativeUInt8(B)S;
		// 247
		virtualMethodRef PublicKeyCredentialEntity/setName([BS)V;
		// 248
		virtualMethodRef PinUvAuthProtocolOne/getPublicKey()[B;
		// 249
		virtualMethodRef CredentialArray/addCredential(Lcom/josh/vku2f/StoredCredential;)V;
		// 250
		virtualMethodRef AuthenticatorGetAssertion/hasAllow()Z;
		// 251
		.classRef StoredCredential;
		// 252
		virtualMethodRef CredentialArray/getLength()S;
		// 253
		virtualMethodRef CredentialArray/get(S)Lcom/josh/vku2f/StoredCredential;;
		// 254
		virtualMethodRef PublicKeyCredentialRpEntity/checkId([BSS)Z;
		// 255
		.classRef PublicKeyCredentialUserEntity;
		// 256
		staticMethodRef PublicKeyCredentialUserEntity/<init>()V;
		// 257
		virtualMethodRef StoredCredential/checkId([BSS)Z;
		// 258
		virtualMethodRef 1.15.3(Ljavacard/security/Key;B)V;		// init(Ljavacard/security/Key;B)V
			.descriptor	Ljavacard/security/Key;	1.0;

		// 259
		staticFieldRef byte[] CTAP2/aaguid;
		// 260
		virtualMethodRef CBOREncoder/encodeBoolean(Z)S;
		// 261
		virtualMethodRef CBOREncoder/encodeUInt16(S)S;
		// 262
		staticMethodRef 2.8.1()V;		// javacard/framework/JCSystem.beginTransaction()V
		// 263
		staticMethodRef 2.8.2()V;		// javacard/framework/JCSystem.commitTransaction()V
		// 264
		virtualMethodRef StoredCredential/performSignature([BSS[BS)S;
		// 265
		virtualMethodRef PublicKeyCredentialUserEntity/setId([BSS)V;
		// 266
		virtualMethodRef PublicKeyCredentialUserEntity/setName([BS)V;
		// 267
		virtualMethodRef StoredCredential/getPresentUser()[Z;
		// 268
		staticFieldRef byte[] Utf8Strings/UTF8_DISPLAYNAME;
		// 269
		virtualMethodRef PublicKeyCredentialUserEntity/setDisplayName([BS)V;
		// 270
		staticFieldRef byte[] Utf8Strings/UTF8_ICON;
		// 271
		virtualMethodRef PublicKeyCredentialUserEntity/setIcon([BS)V;
		// 272
		.classRef PublicKeyCredentialParams;
		// 273
		staticMethodRef PublicKeyCredentialParams/<init>(S)V;
		// 274
		virtualMethodRef AttestationKeyPair/getCert([BS)S;
		// 275
		staticMethodRef 2.4.0(S)V;		// javacard/framework/CardException.<init>(S)V
		// 276
		staticFieldRef CTAP2Exception CTAP2Exception/systemInstance;
		// 277
		virtualMethodRef 2.4.2(S)V;		// setReason(S)V
		// 278
		virtualMethodRef 1.15.5([BSS[BS)S;		// sign([BSS[BS)S
		// 279
		staticFieldRef byte[] Utf8Strings/UTF8_ALG;
		// 280
		virtualMethodRef CBORDecoder/getMajorType()B;
		// 281
		virtualMethodRef CBORDecoder/readEncodedInteger([BS)S;
		// 282
		virtualMethodRef PublicKeyCredentialParams/addAlgorithm(S)V;
		// 283
		staticMethodRef 2.16.5(BB)S;		// javacard/framework/Util.makeShort(BB)S
		// 284
		staticFieldRef byte[] Utf8Strings/UTF8_PUBLIC_KEY;
		// 285
		virtualMethodRef 1.15.6([BSS)V;		// update([BSS)V
		// 286
		staticFieldRef byte[] Utf8Strings/UTF8_RK;
		// 287
		virtualMethodRef PublicKeyCredentialParams/getAlgorithm()B;
		// 288
		staticMethodRef 1.16.0(BS)V;		// javacard/security/KeyPair.<init>(BS)V
		// 289
		staticMethodRef 0.0.0()V;		// java/lang/Object.<init>()V
		// 290
		staticMethodRef 2.10.5()[B;		// javacard/framework/APDU.getCurrentAPDUBuffer()[B
		// 291
		virtualMethodRef CBORBase/increaseOffset(S)S;
		// 292
		virtualMethodRef CBORBase/getCurrentOffset()S;
		// 293
		virtualMethodRef CredentialArray/checkExists(Lcom/josh/vku2f/StoredCredential;)S;
		// 294
		virtualMethodRef CBORBase/getBufferLength()S;
		// 295
		virtualMethodRef PublicKeyCredentialUserEntity/checkId([BSS)Z;
		// 296
		virtualMethodRef PublicKeyCredentialRpEntity/checkId(Lcom/josh/vku2f/PublicKeyCredentialRpEntity;)Z;
		// 297
		virtualMethodRef PublicKeyCredentialUserEntity/checkId(Lcom/josh/vku2f/PublicKeyCredentialUserEntity;)Z;
		// 298
		virtualMethodRef DomString/checkEquals([BSS)Z;
		// 299
		staticMethodRef 2.7.1(S)V;		// javacard/framework/ISOException.throwIt(S)V
		// 300
		virtualMethodRef CBORBase/getBuffer()[B;
		// 301
		staticMethodRef CBORBase/<init>()V;
		// 302
		virtualMethodRef CBORBase/getRawByte()B;
		// 303
		virtualMethodRef CBORDecoder/getIntegerSize()B;
		// 304
		virtualMethodRef CBORBase/increaseOffset(S)S;
		// 305
		virtualMethodRef CBORDecoder/readLength()S;
		// 306
		virtualMethodRef CBORBase/getCurrentOffset()S;
		// 307
		staticFieldRef byte[] Utf8Strings/UTF8_NULL;
		// 308
		staticMethodRef Random/getInstance()Ljavacard/security/RandomData;;
			.descriptor	Ljavacard/security/RandomData;	1.14;

		// 309
		virtualMethodRef 1.14.3([BSS)S;		// nextBytes([BSS)S
		// 310
		staticMethodRef 2.16.7([BSSB)S;		// javacard/framework/Util.arrayFill([BSSB)S
		// 311
		staticMethodRef 1.13.0(BSZ)Ljavacard/security/Key;;		// javacard/security/KeyBuilder.buildKey(BSZ)Ljavacard/security/Key;
			.descriptor	Ljavacard/security/Key;	1.0;

		// 312
		.classRef 1.20;		// javacard/security/AESKey
		// 313
		virtualMethodRef CBORDecoder/readRawByte()B;
		// 314
		staticMethodRef 4.1.0(BZ)Ljavacardx/crypto/Cipher;;		// javacardx/crypto/Cipher.getInstance(BZ)Ljavacardx/crypto/Cipher;
			.descriptor	Ljavacardx/crypto/Cipher;	4.1;

		// 315
		virtualMethodRef CBORBase/getBuffer()[B;
		// 316
		virtualMethodRef CBORBase/getCurrentOffsetAndIncrease(S)S;
		// 317
		staticMethodRef 2.16.4([BS)S;		// javacard/framework/Util.getShort([BS)S
		// 318
		staticMethodRef 2.16.2([BS[BSS)S;		// javacard/framework/Util.arrayCopyNonAtomic([BS[BSS)S
		// 319
		virtualMethodRef 4.1.4(Ljavacard/security/Key;B[BSS)V;		// init(Ljavacard/security/Key;B[BSS)V
			.descriptor	Ljavacard/security/Key;	1.0;

		// 320
		virtualMethodRef 4.1.1([BSS[BS)S;		// doFinal([BSS[BS)S
		// 321
		virtualMethodRef 1.11.5([BSS)V;		// update([BSS)V
		// 322
		virtualMethodRef 4.1.5([BSS[BS)S;		// update([BSS[BS)S
		// 323
		virtualMethodRef IDSecret/getRxRp()[B;
		// 324
		staticFieldRef byte[] KeyParams/secp256r1p;
		// 325
		staticFieldRef byte[] KeyParams/secp256r1A;
		// 326
		staticFieldRef byte[] KeyParams/secp256r1B;
		// 327
		staticFieldRef byte[] KeyParams/secp256r1G;
		// 328
		staticFieldRef byte[] KeyParams/secp256r1R;
		// 329
		staticMethodRef PinUvAuthProtocol/<init>()V;
		// 330
		staticMethodRef 1.16.1(Ljavacard/security/PublicKey;Ljavacard/security/PrivateKey;)V;		// javacard/security/KeyPair.<init>(Ljavacard/security/PublicKey;Ljavacard/security/PrivateKey;)V
			.descriptor	Ljavacard/security/PublicKey;	1.3;
			.descriptor	Ljavacard/security/PrivateKey;	1.2;

		// 331
		virtualMethodRef CBORDecoder/readInt16()S;
		// 332
		virtualMethodRef CBORDecoder/readRawByteArray([BSS)S;
		// 333
		virtualMethodRef PinUvAuthToken/resetTokenState()V;
		// 334
		virtualMethodRef CBORBase/getBufferLength()S;
		// 335
		staticMethodRef ICUtil/isLessThanAsUnsignedShort(SS)Z;
		// 336
		virtualMethodRef CBOREncoder/writeRawByte(B)S;
		// 337
		staticMethodRef CBOREncoder/writeUInt8(BB)S;
		// 338
		staticMethodRef CBOREncoder/writeUInt16(BS)S;
		// 339
		staticMethodRef CBOREncoder/writeRawShort(S)S;
		// 340
		virtualMethodRef CBORBase/getBuffer()[B;
		// 341
		virtualMethodRef CBORBase/getCurrentOffset()S;
		// 342
		virtualMethodRef CBORBase/increaseOffset(S)S;
		// 343
		staticMethodRef 2.16.6([BSS)S;		// javacard/framework/Util.setShort([BSS)S
		// 344
		virtualMethodRef CBORBase/getBufferLength()S;
		// 345
		staticMethodRef CBOREncoder/encodeValue(BS)S;
		// 346
		virtualMethodRef CBORBase/getCurrentOffsetAndIncrease(S)S;
		// 347
		staticMethodRef PublicKeyCredentialEntity/<init>()V;
		// 348
		staticMethodRef CBOREncoder/writeRawByteArray([BSS)S;
		// 349
		virtualMethodRef DomString/checkEquals(Lcom/josh/vku2f/DomString;)Z;
		// 350
		staticMethodRef 2.16.1([BS[BSS)S;		// javacard/framework/Util.arrayCopy([BS[BSS)S
		// 351
		.classRef 0.5;		// java/lang/ArrayIndexOutOfBoundsException
		// 352
		staticFieldRef 1.14 Random/rng;
		// 353
		staticMethodRef 1.14.0(B)Ljavacard/security/RandomData;;		// javacard/security/RandomData.getInstance(B)Ljavacard/security/RandomData;
			.descriptor	Ljavacard/security/RandomData;	1.14;

		// 354
		staticFieldRef 1.14 StoredCredential/randomData;
		// 355
		virtualMethodRef 1.14.1([BSS)V;		// generateData([BSS)V
		// 356
		staticMethodRef 2.3.0()V;		// javacard/framework/Applet.<init>()V
		// 357
		.classRef 1.19;		// javacard/security/ECPublicKey
		// 358
		.classRef 0.2;		// java/lang/Exception
		// 359
		staticMethodRef 2.8.15(SB)[S;		// javacard/framework/JCSystem.makeTransientShortArray(SB)[S
		// 360
		staticMethodRef 2.16.3([BSSB)S;		// javacard/framework/Util.arrayFillNonAtomic([BSSB)S
		// 361
		staticMethodRef StoredCredential/<init>()V;
		// 362
		virtualMethodRef 1.16.3()Ljavacard/security/PublicKey;;		// getPublic()Ljavacard/security/PublicKey;
			.descriptor	Ljavacard/security/PublicKey;	1.3;

		// 363
		virtualMethodRef AuthenticatorMakeCredential/getUser()Lcom/josh/vku2f/PublicKeyCredentialUserEntity;;
		// 364
		virtualMethodRef AuthenticatorMakeCredential/getRp()Lcom/josh/vku2f/PublicKeyCredentialRpEntity;;
		// 365
		virtualMethodRef CBORDecoder/readMajorType(B)S;
		// 366
		virtualMethodRef StoredCredential/incrementCounter()V;
		// 367
		virtualMethodRef StoredCredential/doAttestationCommon([BS)V;
		// 368
		.classRef CBORDecoder;
		// 369
		virtualMethodRef StoredCredential/incrementCounter()V;
		// 370
		virtualMethodRef StoredCredential/doAttestationCommon([BS)V;
		// 371
		.classRef 1.9;		// javacard/security/RSAPublicKey
		// 372
		staticMethodRef CBORDecoder/<init>()V;
		// 373
		virtualMethodRef 4.1.3(Ljavacard/security/Key;B)V;		// init(Ljavacard/security/Key;B)V
			.descriptor	Ljavacard/security/Key;	1.0;

		// 374
		virtualMethodRef StoredCredential/incrementCounter()V;
		// 375
		virtualMethodRef StoredCredential/doAttestationCommon([BS)V;
		// 376
		virtualMethodRef CBOREncoder/encodeNegativeUInt16(S)S;
	}

	.class public AttestationKeyPair 0 extends 0.0 {		// extends java/lang/Object

		.fields {
			public short x509len 0;		// S
			public byte[] x509cert 1;		// [B
			private 1.16 kp 2;		// Ljavacard/security/KeyPair;
			private 1.15 sig 3;		// Ljavacard/security/Signature;
		}

		.publicMethodTable 1 {
			equals(Ljava/lang/Object;)Z;
			sign([BSS[BS)S;
			update([BSS)V;
			setCert([BSS)V;
			getCert([BS)S;
			isCertSet()Z;
			getPubkey([BS)S;
			getPrivate()Ljavacard/security/PrivateKey;;
		}

		.packageMethodTable 0 {
		}

		.method public <init>()V 0 {
			.stack 5;
			.locals 0;

				L0:	aload_0;
					invokespecial 289;		// java/lang/Object.<init>()V
					aload_0;
					new 200;		// javacard/security/KeyPair
					dup;
					sconst_5;
					sspush 256;
					invokespecial 288;		// javacard/security/KeyPair.<init>(BS)V
					putfield_a 0;		// reference com/josh/vku2f/AttestationKeyPair.kp
					getfield_a_this 0;		// reference com/josh/vku2f/AttestationKeyPair.kp
					invokevirtual 362;		// getPublic()Ljavacard/security/PublicKey;
					checkcast 0 120;		// T_CLASSORINTERFACE javacard/security/ECKey
					invokestatic 124;		// com/josh/vku2f/KeyParams.sec256r1params(Ljavacard/security/ECKey;)V
					getfield_a_this 0;		// reference com/josh/vku2f/AttestationKeyPair.kp
					invokevirtual 127;		// genKeyPair()V
					aload_0;
					bspush 33;
					sconst_0;
					invokestatic 194;		// javacard/security/Signature.getInstance(BZ)Ljavacard/security/Signature;
					putfield_a 1;		// reference com/josh/vku2f/AttestationKeyPair.sig
					getfield_a_this 1;		// reference com/josh/vku2f/AttestationKeyPair.sig
					getfield_a_this 0;		// reference com/josh/vku2f/AttestationKeyPair.kp
					invokevirtual 236;		// getPrivate()Ljavacard/security/PrivateKey;
					sconst_1;
					invokevirtual 258;		// init(Ljavacard/security/Key;B)V
					return;
		}

		.method public sign([BSS[BS)S 1 {
			.stack 6;
			.locals 0;

				L0:	getfield_a_this 1;		// reference com/josh/vku2f/AttestationKeyPair.sig
					aload_1;
					sload_2;
					sload_3;
					aload 4;
					sload 5;
					invokevirtual 278;		// sign([BSS[BS)S
					sreturn;
		}

		.method public update([BSS)V 2 {
			.stack 4;
			.locals 0;

				L0:	getfield_a_this 1;		// reference com/josh/vku2f/AttestationKeyPair.sig
					aload_1;
					sload_2;
					sload_3;
					invokevirtual 285;		// update([BSS)V
					return;
		}

		.method public setCert([BSS)V 3 {
			.stack 5;
			.locals 0;

				L0:	aload_0;
					sload_3;
					newarray 11;
					putfield_a 2;		// reference com/josh/vku2f/AttestationKeyPair.x509cert
					sload_3;
					putfield_s_this 3;		// short com/josh/vku2f/AttestationKeyPair.x509len
					aload_1;
					sload_2;
					getfield_a_this 2;		// reference com/josh/vku2f/AttestationKeyPair.x509cert
					sconst_0;
					sload_3;
					invokestatic 350;		// javacard/framework/Util.arrayCopy([BS[BSS)S
					pop;
					return;
		}

		.method public getCert([BS)S 4 {
			.stack 5;
			.locals 0;

				L0:	getfield_a_this 2;		// reference com/josh/vku2f/AttestationKeyPair.x509cert
					sconst_0;
					aload_1;
					sload_2;
					getfield_a_this 2;		// reference com/josh/vku2f/AttestationKeyPair.x509cert
					arraylength;
					invokestatic 350;		// javacard/framework/Util.arrayCopy([BS[BSS)S
					pop;
					getfield_a_this 2;		// reference com/josh/vku2f/AttestationKeyPair.x509cert
					arraylength;
					sreturn;
		}

		.method public isCertSet()Z 5 {
			.stack 1;
			.locals 0;

				L0:	getfield_s_this 3;		// short com/josh/vku2f/AttestationKeyPair.x509len
					ifeq L2;
				L1:	sconst_1;
					goto L3;
				L2:	sconst_0;
				L3:	sreturn;
		}

		.method public getPubkey([BS)S 6 {
			.stack 3;
			.locals 0;

				L0:	getfield_a_this 0;		// reference com/josh/vku2f/AttestationKeyPair.kp
					invokevirtual 362;		// getPublic()Ljavacard/security/PublicKey;
					checkcast 0 357;		// T_CLASSORINTERFACE javacard/security/ECPublicKey
					aload_1;
					sload_2;
					invokeinterface 3 357 19;		// javacard/security/ECPublicKey
					sreturn;
		}

		.method public getPrivate()Ljavacard/security/PrivateKey; 7 {
			.stack 1;
			.locals 0;

			.descriptor	Ljavacard/security/PrivateKey;	1.2;

				L0:	getfield_a_this 0;		// reference com/josh/vku2f/AttestationKeyPair.kp
					invokevirtual 236;		// getPrivate()Ljavacard/security/PrivateKey;
					areturn;
		}

	}

	.class public AuthenticatorGetAssertion 1 extends 0.0 {		// extends java/lang/Object

		.fields {
			public byte[] rpId 0;		// [B
			 byte[] clientDataHash 1;		// [B
			 boolean[] options 2;		// [Z
			 PublicKeyCredentialDescriptor[] allow 3;		// [Lcom/josh/vku2f/PublicKeyCredentialDescriptor;
		}

		.publicMethodTable 1 {
			equals(Ljava/lang/Object;)Z;
			getHash([BS)S;
			hasAllow()Z;
		}

		.packageMethodTable 0 {
		}

		.method public <init>(Lcom/josh/vku2f/CBORDecoder;)V 0 {
			.stack 8;
			.locals 3;

				L0:	aload_0;
					invokespecial 289;		// java/lang/Object.<init>()V
				L1:	bspush 8;
					sconst_1;
					invokestatic 359;		// javacard/framework/JCSystem.makeTransientShortArray(SB)[S
					astore_2;
				L2:	goto L4;
				L3:	astore_3;
					bspush 8;
					newarray 12;
					astore_2;
				L4:	aload_0;
					sconst_2;
					newarray 10;
					putfield_a 4;		// reference com/josh/vku2f/AuthenticatorGetAssertion.options
					getfield_a_this 4;		// reference com/josh/vku2f/AuthenticatorGetAssertion.options
					sconst_0;
					sconst_1;
					bastore;
					getfield_a_this 4;		// reference com/josh/vku2f/AuthenticatorGetAssertion.options
					sconst_1;
					sconst_0;
					bastore;
					aload_2;
					sconst_0;
					aload_1;
					sconst_5;
					invokevirtual 365;		// readMajorType(B)S
					sastore;
				L5:	bspush 64;
					sconst_1;
					invokestatic 112;		// javacard/framework/JCSystem.makeTransientByteArray(SB)[B
					astore_3;
				L6:	goto L8;
				L7:	astore 4;
					bspush 64;
					newarray 11;
					astore_3;
				L8:	aload_2;
					sconst_1;
					sconst_0;
					sastore;
				L9:	aload_2;
					sconst_1;
					saload;
					aload_2;
					sconst_0;
					saload;
					if_scmpge_w L39;
				L10:	aload_2;
					sconst_2;
					aload_1;
					invokevirtual 115;		// readInt8()B
					sastore;
					aload_2;
					sconst_2;
					saload;
					stableswitch L37 1 7 L11 L12 L13 L34 L26 L35 L36;
				L11:	aload_2;
					sconst_3;
					aload_1;
					aload_3;
					sconst_0;
					invokevirtual 118;		// readTextString([BS)S
					sastore;
					aload_0;
					aload_2;
					sconst_3;
					saload;
					newarray 11;
					putfield_a 5;		// reference com/josh/vku2f/AuthenticatorGetAssertion.rpId
					aload_3;
					sconst_0;
					getfield_a_this 5;		// reference com/josh/vku2f/AuthenticatorGetAssertion.rpId
					sconst_0;
					aload_2;
					sconst_3;
					saload;
					invokestatic 350;		// javacard/framework/Util.arrayCopy([BS[BSS)S
					pop;
					goto_w L38;
				L12:	aload_2;
					sconst_3;
					aload_1;
					aload_3;
					sconst_0;
					invokevirtual 123;		// readByteString([BS)S
					sastore;
					aload_0;
					aload_2;
					sconst_3;
					saload;
					newarray 11;
					putfield_a 6;		// reference com/josh/vku2f/AuthenticatorGetAssertion.clientDataHash
					aload_3;
					sconst_0;
					getfield_a_this 6;		// reference com/josh/vku2f/AuthenticatorGetAssertion.clientDataHash
					sconst_0;
					aload_2;
					sconst_3;
					saload;
					invokestatic 350;		// javacard/framework/Util.arrayCopy([BS[BSS)S
					pop;
					goto_w L38;
				L13:	aload_2;
					sconst_3;
					aload_1;
					sconst_4;
					invokevirtual 365;		// readMajorType(B)S
					sastore;
					aload_0;
					aload_2;
					sconst_3;
					saload;
					anewarray 125;		// com/josh/vku2f/PublicKeyCredentialDescriptor
					putfield_a 7;		// reference com/josh/vku2f/AuthenticatorGetAssertion.allow
					aload_2;
					sconst_4;
					sconst_0;
					sastore;
				L14:	aload_2;
					sconst_4;
					saload;
					getfield_a_this 7;		// reference com/josh/vku2f/AuthenticatorGetAssertion.allow
					arraylength;
					if_scmpge_w L38;
				L15:	aload_2;
					sconst_3;
					aload_1;
					sconst_5;
					invokevirtual 365;		// readMajorType(B)S
					sastore;
					aload_2;
					sconst_3;
					saload;
					sconst_2;
					if_scmpeq L17;
				L16:	bspush 18;
					invokestatic 128;		// javacard/framework/UserException.throwIt(S)V
					goto_w L38;
				L17:	aload_2;
					sconst_5;
					sconst_0;
					sastore;
				L18:	aload_2;
					sconst_5;
					saload;
					sconst_2;
					if_scmpge L25;
				L19:	aload_2;
					sconst_3;
					aload_1;
					aload_3;
					sconst_0;
					invokevirtual 118;		// readTextString([BS)S
					sastore;
					aload_3;
					sconst_0;
					getstatic_a 129;		// reference com/josh/vku2f/Utf8Strings.UTF8_ID
					sconst_0;
					sconst_2;
					invokestatic 130;		// javacard/framework/Util.arrayCompare([BS[BSS)B
					ifne L21;
				L20:	aload_2;
					sconst_3;
					aload_1;
					aload_3;
					sconst_0;
					invokevirtual 123;		// readByteString([BS)S
					sastore;
					getfield_a_this 7;		// reference com/josh/vku2f/AuthenticatorGetAssertion.allow
					aload_2;
					sconst_4;
					saload;
					new 125;		// com/josh/vku2f/PublicKeyCredentialDescriptor
					dup;
					aload_3;
					sconst_0;
					aload_2;
					sconst_3;
					saload;
					invokespecial 135;		// com/josh/vku2f/PublicKeyCredentialDescriptor.<init>([BSS)V
					aastore;
					goto L24;
				L21:	aload_3;
					sconst_0;
					getstatic_a 138;		// reference com/josh/vku2f/Utf8Strings.UTF8_TYPE
					sconst_0;
					sconst_4;
					invokestatic 130;		// javacard/framework/Util.arrayCompare([BS[BSS)B
					ifne L23;
				L22:	aload_1;
					aload_3;
					sconst_0;
					invokevirtual 118;		// readTextString([BS)S
					pop;
					goto L24;
				L23:	bspush 18;
					invokestatic 128;		// javacard/framework/UserException.throwIt(S)V
					goto L25;
				L24:	aload_2;
					sconst_5;
					dup2;
					saload;
					sconst_1;
					sadd;
					sastore;
					goto L18;
				L25:	aload_2;
					sconst_4;
					dup2;
					saload;
					sconst_1;
					sadd;
					sastore;
					goto_w L14;
				L26:	aload_2;
					sconst_3;
					aload_1;
					sconst_5;
					invokevirtual 365;		// readMajorType(B)S
					sastore;
					aload_2;
					sconst_4;
					sconst_0;
					sastore;
				L27:	aload_2;
					sconst_4;
					saload;
					aload_2;
					sconst_3;
					saload;
					if_scmpge L38;
				L28:	aload_1;
					aload_3;
					sconst_0;
					invokevirtual 118;		// readTextString([BS)S
					pop;
					aload_3;
					sconst_0;
					getstatic_a 159;		// reference com/josh/vku2f/Utf8Strings.UTF8_UP
					sconst_0;
					sconst_2;
					invokestatic 130;		// javacard/framework/Util.arrayCompare([BS[BSS)B
					ifne L30;
				L29:	getfield_a_this 4;		// reference com/josh/vku2f/AuthenticatorGetAssertion.options
					sconst_0;
					aload_1;
					invokevirtual 160;		// readBoolean()Z
					bastore;
					goto L33;
				L30:	aload_3;
					sconst_0;
					getstatic_a 186;		// reference com/josh/vku2f/Utf8Strings.UTF8_UV
					sconst_0;
					sconst_2;
					invokestatic 130;		// javacard/framework/Util.arrayCompare([BS[BSS)B
					ifne L32;
				L31:	getfield_a_this 4;		// reference com/josh/vku2f/AuthenticatorGetAssertion.options
					sconst_1;
					aload_1;
					invokevirtual 160;		// readBoolean()Z
					bastore;
					goto L33;
				L32:	aload_1;
					invokevirtual 189;		// skipEntry()S
					pop;
				L33:	aload_2;
					sconst_4;
					dup2;
					saload;
					sconst_1;
					sadd;
					sastore;
					goto L27;
				L34:	aload_1;
					invokevirtual 189;		// skipEntry()S
					pop;
					goto L38;
				L35:	aload_1;
					invokevirtual 189;		// skipEntry()S
					pop;
					goto L38;
				L36:	aload_1;
					invokevirtual 189;		// skipEntry()S
					pop;
					goto L38;
				L37:	bspush -123;
					invokestatic 128;		// javacard/framework/UserException.throwIt(S)V
				L38:	aload_2;
					sconst_1;
					dup2;
					saload;
					sconst_1;
					sadd;
					sastore;
					goto_w L9;
				L39:	getfield_a_this 5;		// reference com/josh/vku2f/AuthenticatorGetAssertion.rpId
					ifnull L41;
				L40:	getfield_a_this 6;		// reference com/josh/vku2f/AuthenticatorGetAssertion.clientDataHash
					ifnonnull L42;
				L41:	bspush 20;
					invokestatic 128;		// javacard/framework/UserException.throwIt(S)V
				L42:	return;
			.exceptionTable {
				// start_block end_block handler_block catch_type_index
				L1 L2 L3 358;
				L5 L6 L7 358;
			}
		}

		.method public getHash([BS)S 1 {
			.stack 5;
			.locals 0;

				L0:	getfield_a_this 6;		// reference com/josh/vku2f/AuthenticatorGetAssertion.clientDataHash
					sconst_0;
					aload_1;
					sload_2;
					getfield_a_this 6;		// reference com/josh/vku2f/AuthenticatorGetAssertion.clientDataHash
					arraylength;
					invokestatic 350;		// javacard/framework/Util.arrayCopy([BS[BSS)S
					pop;
					getfield_a_this 6;		// reference com/josh/vku2f/AuthenticatorGetAssertion.clientDataHash
					arraylength;
					sreturn;
		}

		.method public hasAllow()Z 2 {
			.stack 1;
			.locals 0;

				L0:	getfield_a_this 7;		// reference com/josh/vku2f/AuthenticatorGetAssertion.allow
					ifnull L3;
				L1:	getfield_a_this 7;		// reference com/josh/vku2f/AuthenticatorGetAssertion.allow
					arraylength;
					ifle L3;
				L2:	sconst_1;
					goto L4;
				L3:	sconst_0;
				L4:	sreturn;
		}

	}

	.class public AuthenticatorMakeCredential 2 extends 0.0 {		// extends java/lang/Object

		.fields {
			public byte[] dataHash 0;		// [B
			public PublicKeyCredentialDescriptor[] exclude 1;		// [Lcom/josh/vku2f/PublicKeyCredentialDescriptor;
			private PublicKeyCredentialRpEntity rp 2;		// Lcom/josh/vku2f/PublicKeyCredentialRpEntity;
			private PublicKeyCredentialUserEntity user 3;		// Lcom/josh/vku2f/PublicKeyCredentialUserEntity;
			private PublicKeyCredentialParams params 4;		// Lcom/josh/vku2f/PublicKeyCredentialParams;
			private boolean[] options 5;		// [Z
		}

		.publicMethodTable 1 {
			equals(Ljava/lang/Object;)Z;
			getUser()Lcom/josh/vku2f/PublicKeyCredentialUserEntity;;
			getRp()Lcom/josh/vku2f/PublicKeyCredentialRpEntity;;
			isResident()Z;
			getAlgorithm()B;
			isExclude()Z;
			getDataHash([BS)S;
		}

		.packageMethodTable 0 {
		}

		.method public <init>(Lcom/josh/vku2f/CBORDecoder;)V 0 {
			.stack 7;
			.locals 10;

				L0:	aload_0;
					invokespecial 289;		// java/lang/Object.<init>()V
					aload_0;
					sconst_2;
					newarray 10;
					putfield_a 8;		// reference com/josh/vku2f/AuthenticatorMakeCredential.options
				L1:	bspush 8;
					sconst_1;
					invokestatic 359;		// javacard/framework/JCSystem.makeTransientShortArray(SB)[S
					astore_2;
				L2:	goto L4;
				L3:	astore_3;
					bspush 8;
					newarray 12;
					astore_2;
				L4:	bspush 64;
					sconst_2;
					invokestatic 112;		// javacard/framework/JCSystem.makeTransientByteArray(SB)[B
					astore_3;
				L5:	goto L7;
				L6:	astore 4;
					bspush 64;
					newarray 11;
					astore_3;
				L7:	bspush 64;
					sconst_2;
					invokestatic 112;		// javacard/framework/JCSystem.makeTransientByteArray(SB)[B
					astore 4;
				L8:	goto L10;
				L9:	astore 5;
					bspush 64;
					newarray 11;
					astore 4;
				L10:	aload_1;
					sconst_5;
					invokevirtual 365;		// readMajorType(B)S
					sstore 5;
					getfield_a_this 8;		// reference com/josh/vku2f/AuthenticatorMakeCredential.options
					sconst_0;
					sconst_1;
					bastore;
					getfield_a_this 8;		// reference com/josh/vku2f/AuthenticatorMakeCredential.options
					sconst_1;
					sconst_0;
					bastore;
					sconst_0;
					sstore 6;
				L11:	sload 6;
					sload 5;
					if_scmpge_w L93;
				L12:	aload_1;
					invokevirtual 115;		// readInt8()B
					sstore 7;
					sload 7;
					stableswitch L91 1 7 L13 L14 L24 L37 L61 L88 L75;
				L13:	aload_1;
					aload_3;
					sconst_0;
					invokevirtual 123;		// readByteString([BS)S
					sstore 8;
					aload_0;
					sload 8;
					newarray 11;
					putfield_a 9;		// reference com/josh/vku2f/AuthenticatorMakeCredential.dataHash
					aload_3;
					sconst_0;
					getfield_a_this 9;		// reference com/josh/vku2f/AuthenticatorMakeCredential.dataHash
					sconst_0;
					sload 8;
					invokestatic 350;		// javacard/framework/Util.arrayCopy([BS[BSS)S
					pop;
					goto_w L92;
				L14:	aload_0;
					new 204;		// com/josh/vku2f/PublicKeyCredentialRpEntity
					dup;
					invokespecial 228;		// com/josh/vku2f/PublicKeyCredentialRpEntity.<init>()V
					putfield_a 10;		// reference com/josh/vku2f/AuthenticatorMakeCredential.rp
					aload_1;
					sconst_5;
					invokevirtual 365;		// readMajorType(B)S
					sstore 8;
					sload 8;
					sconst_2;
					if_scmpge L16;
				L15:	bspush 18;
					invokestatic 128;		// javacard/framework/UserException.throwIt(S)V
				L16:	sconst_0;
					sstore 9;
				L17:	sload 9;
					sload 8;
					if_scmpge L23;
				L18:	aload_1;
					aload_3;
					sconst_0;
					invokevirtual 118;		// readTextString([BS)S
					pop;
					aload_3;
					sconst_0;
					getstatic_a 129;		// reference com/josh/vku2f/Utf8Strings.UTF8_ID
					sconst_0;
					sconst_2;
					invokestatic 130;		// javacard/framework/Util.arrayCompare([BS[BSS)B
					ifne L20;
				L19:	aload_1;
					aload_3;
					sconst_0;
					invokevirtual 118;		// readTextString([BS)S
					sstore 10;
					getfield_a_this 10;		// reference com/josh/vku2f/AuthenticatorMakeCredential.rp
					aload_3;
					sload 10;
					invokevirtual 238;		// setRp([BS)V
					goto L22;
				L20:	aload_3;
					sconst_0;
					getstatic_a 244;		// reference com/josh/vku2f/Utf8Strings.UTF8_NAME
					sconst_0;
					sconst_4;
					invokestatic 130;		// javacard/framework/Util.arrayCompare([BS[BSS)B
					ifne L22;
				L21:	aload_1;
					aload_3;
					sconst_0;
					invokevirtual 118;		// readTextString([BS)S
					sstore 10;
					getfield_a_this 10;		// reference com/josh/vku2f/AuthenticatorMakeCredential.rp
					aload_3;
					sload 10;
					invokevirtual 247;		// setName([BS)V
				L22:	sinc 9 1;
					goto L17;
				L23:	goto_w L92;
				L24:	aload_0;
					new 255;		// com/josh/vku2f/PublicKeyCredentialUserEntity
					dup;
					invokespecial 256;		// com/josh/vku2f/PublicKeyCredentialUserEntity.<init>()V
					putfield_a 11;		// reference com/josh/vku2f/AuthenticatorMakeCredential.user
					aload_1;
					sconst_5;
					invokevirtual 365;		// readMajorType(B)S
					sstore 8;
					sconst_0;
					sstore 9;
				L25:	sload 9;
					sload 8;
					if_scmpge_w L36;
				L26:	aload_1;
					aload_3;
					sconst_0;
					invokevirtual 118;		// readTextString([BS)S
					pop;
					aload_3;
					sconst_0;
					getstatic_a 129;		// reference com/josh/vku2f/Utf8Strings.UTF8_ID
					sconst_0;
					sconst_2;
					invokestatic 130;		// javacard/framework/Util.arrayCompare([BS[BSS)B
					ifne L28;
				L27:	aload_1;
					aload_3;
					sconst_0;
					invokevirtual 123;		// readByteString([BS)S
					sstore 10;
					getfield_a_this 11;		// reference com/josh/vku2f/AuthenticatorMakeCredential.user
					aload_3;
					sconst_0;
					sload 10;
					invokevirtual 265;		// setId([BSS)V
					goto L35;
				L28:	aload_3;
					sconst_0;
					getstatic_a 244;		// reference com/josh/vku2f/Utf8Strings.UTF8_NAME
					sconst_0;
					sconst_4;
					invokestatic 130;		// javacard/framework/Util.arrayCompare([BS[BSS)B
					ifne L30;
				L29:	aload_1;
					aload_3;
					sconst_0;
					invokevirtual 118;		// readTextString([BS)S
					sstore 10;
					getfield_a_this 11;		// reference com/josh/vku2f/AuthenticatorMakeCredential.user
					aload_3;
					sload 10;
					invokevirtual 266;		// setName([BS)V
					goto L35;
				L30:	aload_3;
					sconst_0;
					getstatic_a 268;		// reference com/josh/vku2f/Utf8Strings.UTF8_DISPLAYNAME
					sconst_0;
					bspush 11;
					invokestatic 130;		// javacard/framework/Util.arrayCompare([BS[BSS)B
					ifne L32;
				L31:	aload_1;
					aload_3;
					sconst_0;
					invokevirtual 118;		// readTextString([BS)S
					sstore 10;
					getfield_a_this 11;		// reference com/josh/vku2f/AuthenticatorMakeCredential.user
					aload_3;
					sload 10;
					invokevirtual 269;		// setDisplayName([BS)V
					goto L35;
				L32:	aload_3;
					sconst_0;
					getstatic_a 270;		// reference com/josh/vku2f/Utf8Strings.UTF8_ICON
					sconst_0;
					sconst_4;
					invokestatic 130;		// javacard/framework/Util.arrayCompare([BS[BSS)B
					ifne L34;
				L33:	aload_1;
					aload 4;
					sconst_0;
					invokevirtual 118;		// readTextString([BS)S
					sstore 10;
					getfield_a_this 11;		// reference com/josh/vku2f/AuthenticatorMakeCredential.user
					aload 4;
					sload 10;
					invokevirtual 271;		// setIcon([BS)V
					goto L35;
				L34:	aload_1;
					invokevirtual 189;		// skipEntry()S
					pop;
				L35:	sinc 9 1;
					goto_w L25;
				L36:	goto_w L92;
				L37:	aload_1;
					sconst_4;
					invokevirtual 365;		// readMajorType(B)S
					sstore 8;
					aload_0;
					new 272;		// com/josh/vku2f/PublicKeyCredentialParams
					dup;
					sload 8;
					invokespecial 273;		// com/josh/vku2f/PublicKeyCredentialParams.<init>(S)V
					putfield_a 12;		// reference com/josh/vku2f/AuthenticatorMakeCredential.params
					sconst_0;
					sstore 9;
				L38:	sload 9;
					sload 8;
					if_scmpge_w L60;
				L39:	aload_1;
					sconst_5;
					invokevirtual 365;		// readMajorType(B)S
					sstore 10;
					sload 10;
					sconst_2;
					if_scmpeq L41;
				L40:	bspush 18;
					invokestatic 128;		// javacard/framework/UserException.throwIt(S)V
				L41:	sconst_0;
					sstore 11;
				L42:	sload 11;
					sconst_2;
					if_scmpge_w L59;
				L43:	aload_1;
					aload_3;
					sconst_0;
					invokevirtual 118;		// readTextString([BS)S
					pop;
					aload_3;
					sconst_0;
					getstatic_a 279;		// reference com/josh/vku2f/Utf8Strings.UTF8_ALG
					sconst_0;
					sconst_3;
					invokestatic 130;		// javacard/framework/Util.arrayCompare([BS[BSS)B
					ifne L54;
				L44:	aload_1;
					invokevirtual 280;		// getMajorType()B
					ifne L49;
				L45:	aload_1;
					aload 4;
					sconst_0;
					invokevirtual 281;		// readEncodedInteger([BS)S
					sstore 10;
					sload 10;
					sconst_1;
					if_scmpne L47;
				L46:	getfield_a_this 12;		// reference com/josh/vku2f/AuthenticatorMakeCredential.params
					aload 4;
					sconst_0;
					baload;
					invokevirtual 282;		// addAlgorithm(S)V
					goto_w L58;
				L47:	sload 10;
					sconst_2;
					if_scmpne L58;
				L48:	getfield_a_this 12;		// reference com/josh/vku2f/AuthenticatorMakeCredential.params
					aload 4;
					sconst_0;
					baload;
					aload 4;
					sconst_1;
					baload;
					invokestatic 283;		// javacard/framework/Util.makeShort(BB)S
					invokevirtual 282;		// addAlgorithm(S)V
					goto L58;
				L49:	aload_1;
					invokevirtual 280;		// getMajorType()B
					sconst_1;
					if_scmpne L58;
				L50:	aload_1;
					aload 4;
					sconst_0;
					invokevirtual 281;		// readEncodedInteger([BS)S
					sstore 10;
					sload 10;
					sconst_1;
					if_scmpne L52;
				L51:	getfield_a_this 12;		// reference com/josh/vku2f/AuthenticatorMakeCredential.params
					sconst_m1;
					aload 4;
					sconst_0;
					baload;
					ssub;
					invokevirtual 282;		// addAlgorithm(S)V
					goto L58;
				L52:	sload 10;
					sconst_2;
					if_scmpne L58;
				L53:	getfield_a_this 12;		// reference com/josh/vku2f/AuthenticatorMakeCredential.params
					sconst_m1;
					aload 4;
					sconst_0;
					baload;
					aload 4;
					sconst_1;
					baload;
					invokestatic 283;		// javacard/framework/Util.makeShort(BB)S
					ssub;
					invokevirtual 282;		// addAlgorithm(S)V
					goto L58;
				L54:	aload_3;
					sconst_0;
					getstatic_a 138;		// reference com/josh/vku2f/Utf8Strings.UTF8_TYPE
					sconst_0;
					sconst_4;
					invokestatic 130;		// javacard/framework/Util.arrayCompare([BS[BSS)B
					ifne L57;
				L55:	aload_1;
					aload_3;
					sconst_0;
					invokevirtual 118;		// readTextString([BS)S
					pop;
					aload_3;
					sconst_0;
					getstatic_a 284;		// reference com/josh/vku2f/Utf8Strings.UTF8_PUBLIC_KEY
					sconst_0;
					bspush 10;
					invokestatic 130;		// javacard/framework/Util.arrayCompare([BS[BSS)B
					ifeq L58;
				L56:	bspush 38;
					invokestatic 128;		// javacard/framework/UserException.throwIt(S)V
					goto L58;
				L57:	bspush 18;
					invokestatic 128;		// javacard/framework/UserException.throwIt(S)V
				L58:	sinc 11 1;
					goto_w L42;
				L59:	sinc 9 1;
					goto_w L38;
				L60:	goto_w L92;
				L61:	aload_1;
					sconst_4;
					invokevirtual 365;		// readMajorType(B)S
					sstore 8;
					aload_0;
					sload 8;
					anewarray 125;		// com/josh/vku2f/PublicKeyCredentialDescriptor
					putfield_a 13;		// reference com/josh/vku2f/AuthenticatorMakeCredential.exclude
					sconst_0;
					sstore 9;
				L62:	sload 9;
					sload 8;
					if_scmpge L74;
				L63:	aload_1;
					sconst_5;
					invokevirtual 365;		// readMajorType(B)S
					sstore 10;
					sload 10;
					sconst_2;
					if_scmpeq L65;
				L64:	bspush 18;
					invokestatic 128;		// javacard/framework/UserException.throwIt(S)V
				L65:	sconst_0;
					sstore 11;
				L66:	sload 11;
					sconst_2;
					if_scmpge L73;
				L67:	aload_1;
					aload_3;
					sconst_0;
					invokevirtual 118;		// readTextString([BS)S
					pop;
					aload_3;
					sconst_0;
					getstatic_a 129;		// reference com/josh/vku2f/Utf8Strings.UTF8_ID
					sconst_0;
					sconst_2;
					invokestatic 130;		// javacard/framework/Util.arrayCompare([BS[BSS)B
					ifne L69;
				L68:	aload_1;
					aload_3;
					sconst_0;
					invokevirtual 123;		// readByteString([BS)S
					sstore 10;
					getfield_a_this 13;		// reference com/josh/vku2f/AuthenticatorMakeCredential.exclude
					sload 9;
					new 125;		// com/josh/vku2f/PublicKeyCredentialDescriptor
					dup;
					aload_3;
					sconst_0;
					sload 10;
					invokespecial 135;		// com/josh/vku2f/PublicKeyCredentialDescriptor.<init>([BSS)V
					aastore;
					goto L72;
				L69:	aload_3;
					sconst_0;
					getstatic_a 138;		// reference com/josh/vku2f/Utf8Strings.UTF8_TYPE
					sconst_0;
					sconst_4;
					invokestatic 130;		// javacard/framework/Util.arrayCompare([BS[BSS)B
					ifne L71;
				L70:	aload_1;
					aload_3;
					sconst_0;
					invokevirtual 118;		// readTextString([BS)S
					pop;
					goto L72;
				L71:	bspush 17;
					invokestatic 128;		// javacard/framework/UserException.throwIt(S)V
					goto L73;
				L72:	sinc 11 1;
					goto L66;
				L73:	sinc 9 1;
					goto L62;
				L74:	goto_w L92;
				L75:	aload_1;
					invokevirtual 280;		// getMajorType()B
					sconst_5;
					if_scmpeq L77;
				L76:	bspush 17;
					invokestatic 128;		// javacard/framework/UserException.throwIt(S)V
					goto L92;
				L77:	aload_1;
					sconst_5;
					invokevirtual 365;		// readMajorType(B)S
					sstore 8;
					sconst_0;
					sstore 9;
				L78:	sload 9;
					sload 8;
					if_scmpge L87;
				L79:	aload_1;
					aload_3;
					sconst_0;
					invokevirtual 118;		// readTextString([BS)S
					pop;
					aload_3;
					sconst_0;
					getstatic_a 186;		// reference com/josh/vku2f/Utf8Strings.UTF8_UV
					sconst_0;
					sconst_2;
					invokestatic 130;		// javacard/framework/Util.arrayCompare([BS[BSS)B
					ifne L81;
				L80:	getfield_a_this 8;		// reference com/josh/vku2f/AuthenticatorMakeCredential.options
					sconst_1;
					aload_1;
					invokevirtual 160;		// readBoolean()Z
					bastore;
					goto L86;
				L81:	aload_3;
					sconst_0;
					getstatic_a 286;		// reference com/josh/vku2f/Utf8Strings.UTF8_RK
					sconst_0;
					sconst_2;
					invokestatic 130;		// javacard/framework/Util.arrayCompare([BS[BSS)B
					ifne L83;
				L82:	aload_1;
					invokevirtual 160;		// readBoolean()Z
					pop;
					goto L86;
				L83:	aload_3;
					sconst_0;
					getstatic_a 159;		// reference com/josh/vku2f/Utf8Strings.UTF8_UP
					sconst_0;
					sconst_2;
					invokestatic 130;		// javacard/framework/Util.arrayCompare([BS[BSS)B
					ifne L85;
				L84:	bspush 44;
					invokestatic 128;		// javacard/framework/UserException.throwIt(S)V
					goto L87;
				L85:	aload_1;
					invokevirtual 189;		// skipEntry()S
					pop;
				L86:	sinc 9 1;
					goto L78;
				L87:	goto L92;
				L88:	aload_1;
					invokevirtual 280;		// getMajorType()B
					sconst_5;
					if_scmpeq L90;
				L89:	bspush 17;
					invokestatic 128;		// javacard/framework/UserException.throwIt(S)V
					goto L92;
				L90:	aload_1;
					invokevirtual 189;		// skipEntry()S
					pop;
					goto L92;
				L91:	aload_1;
					invokevirtual 189;		// skipEntry()S
					pop;
				L92:	sinc 6 1;
					goto_w L11;
				L93:	getfield_a_this 9;		// reference com/josh/vku2f/AuthenticatorMakeCredential.dataHash
					ifnull L97;
				L94:	getfield_a_this 10;		// reference com/josh/vku2f/AuthenticatorMakeCredential.rp
					ifnull L97;
				L95:	getfield_a_this 11;		// reference com/josh/vku2f/AuthenticatorMakeCredential.user
					ifnull L97;
				L96:	getfield_a_this 12;		// reference com/josh/vku2f/AuthenticatorMakeCredential.params
					ifnonnull L98;
				L97:	bspush 20;
					invokestatic 128;		// javacard/framework/UserException.throwIt(S)V
				L98:	return;
			.exceptionTable {
				// start_block end_block handler_block catch_type_index
				L1 L2 L3 358;
				L4 L5 L6 358;
				L7 L8 L9 358;
			}
		}

		.method public getUser()Lcom/josh/vku2f/PublicKeyCredentialUserEntity; 1 {
			.stack 1;
			.locals 0;

				L0:	getfield_a_this 11;		// reference com/josh/vku2f/AuthenticatorMakeCredential.user
					areturn;
		}

		.method public getRp()Lcom/josh/vku2f/PublicKeyCredentialRpEntity; 2 {
			.stack 1;
			.locals 0;

				L0:	getfield_a_this 10;		// reference com/josh/vku2f/AuthenticatorMakeCredential.rp
					areturn;
		}

		.method public isResident()Z 3 {
			.stack 2;
			.locals 0;

				L0:	getfield_a_this 8;		// reference com/josh/vku2f/AuthenticatorMakeCredential.options
					sconst_0;
					baload;
					sreturn;
		}

		.method public getAlgorithm()B 4 {
			.stack 1;
			.locals 0;

				L0:	getfield_a_this 12;		// reference com/josh/vku2f/AuthenticatorMakeCredential.params
					invokevirtual 287;		// getAlgorithm()B
					sreturn;
		}

		.method public isExclude()Z 5 {
			.stack 1;
			.locals 0;

				L0:	getfield_a_this 13;		// reference com/josh/vku2f/AuthenticatorMakeCredential.exclude
					ifnull L3;
				L1:	getfield_a_this 13;		// reference com/josh/vku2f/AuthenticatorMakeCredential.exclude
					arraylength;
					ifle L3;
				L2:	sconst_1;
					goto L4;
				L3:	sconst_0;
				L4:	sreturn;
		}

		.method public getDataHash([BS)S 6 {
			.stack 5;
			.locals 0;

				L0:	getfield_a_this 9;		// reference com/josh/vku2f/AuthenticatorMakeCredential.dataHash
					sconst_0;
					aload_1;
					sload_2;
					getfield_a_this 9;		// reference com/josh/vku2f/AuthenticatorMakeCredential.dataHash
					arraylength;
					invokestatic 350;		// javacard/framework/Util.arrayCopy([BS[BSS)S
					pop;
					getfield_a_this 9;		// reference com/josh/vku2f/AuthenticatorMakeCredential.dataHash
					arraylength;
					sreturn;
		}

	}

	.class public abstract CBORBase 3 extends 0.0 {		// extends java/lang/Object

		.fields {
			protected short[] mStatusWords 0;		// [S
			protected byte[] mBuffer 1;		// [B
			protected static final byte MAJOR_TYPE_MASK = 7;		// B
			protected static final byte ADDINFO_MASK = 31;		// B
			public static final byte TYPE_UNSIGNED_INTEGER = 0;		// B
			public static final byte TYPE_NEGATIVE_INTEGER = 1;		// B
			public static final byte TYPE_BYTE_STRING = 2;		// B
			public static final byte TYPE_TEXT_STRING = 3;		// B
			public static final byte TYPE_ARRAY = 4;		// B
			public static final byte TYPE_MAP = 5;		// B
			public static final byte TYPE_TAG = 6;		// B
			public static final byte TYPE_FLOAT = 7;		// B
			protected static final byte ENCODED_ONE_BYTE = 24;		// B
			protected static final byte ENCODED_TWO_BYTES = 25;		// B
			protected static final byte ENCODED_FOUR_BYTES = 26;		// B
			protected static final byte ENCODED_EIGHT_BYTES = 27;		// B
			protected static final byte ENCODED_FALSE = -12;		// B
			protected static final byte ENCODED_TRUE = -11;		// B
			protected static final byte ENCODED_NULL = -10;		// B
			protected static final byte ENCODED_UNDEFINED = -9;		// B
			protected static final byte ENCODED_BREAK = -1;		// B
			public static final byte INVALID_INPUT = -1;		// B
		}

		.publicMethodTable 1 {
			equals(Ljava/lang/Object;)Z;
			init(SS)V;
			init([BSS)V;
			reset()V;
			getCurrentOffset()S;
			getBufferLength()S;
			getCurrentOffsetAndIncrease(S)S;
			increaseOffset(S)S;
			getRawByte()B;
			getBuffer()[B;
		}

		.packageMethodTable 0 {
		}

		.method public final init(SS)V 1 {
			.stack 4;
			.locals 0;

				L0:	aconst_null;
					putfield_a_this 14;		// reference com/josh/vku2f/CBORBase.mBuffer
					getfield_a_this 15;		// reference com/josh/vku2f/CBORBase.mStatusWords
					sconst_0;
					sload_1;
					sastore;
					getfield_a_this 15;		// reference com/josh/vku2f/CBORBase.mStatusWords
					sconst_1;
					sload_1;
					sload_2;
					sadd;
					sastore;
					return;
		}

		.method public final init([BSS)V 2 {
			.stack 4;
			.locals 0;

				L0:	aload_1;
					invokestatic 290;		// javacard/framework/APDU.getCurrentAPDUBuffer()[B
					if_acmpeq L2;
				L1:	aload_1;
					putfield_a_this 14;		// reference com/josh/vku2f/CBORBase.mBuffer
					goto L3;
				L2:	aconst_null;
					putfield_a_this 14;		// reference com/josh/vku2f/CBORBase.mBuffer
				L3:	getfield_a_this 15;		// reference com/josh/vku2f/CBORBase.mStatusWords
					sconst_0;
					sload_2;
					sastore;
					getfield_a_this 15;		// reference com/josh/vku2f/CBORBase.mStatusWords
					sconst_1;
					sload_2;
					sload_3;
					sadd;
					sastore;
					return;
		}

		.method public final reset()V 3 {
			.stack 3;
			.locals 0;

				L0:	aconst_null;
					putfield_a_this 14;		// reference com/josh/vku2f/CBORBase.mBuffer
					getfield_a_this 15;		// reference com/josh/vku2f/CBORBase.mStatusWords
					sconst_0;
					sconst_0;
					sastore;
					getfield_a_this 15;		// reference com/josh/vku2f/CBORBase.mStatusWords
					sconst_1;
					sconst_0;
					sastore;
					return;
		}

		.method public final getCurrentOffset()S 4 {
			.stack 2;
			.locals 0;

				L0:	getfield_a_this 15;		// reference com/josh/vku2f/CBORBase.mStatusWords
					sconst_0;
					saload;
					sreturn;
		}

		.method public final getBufferLength()S 5 {
			.stack 2;
			.locals 0;

				L0:	getfield_a_this 15;		// reference com/josh/vku2f/CBORBase.mStatusWords
					sconst_1;
					saload;
					sreturn;
		}

		.method protected final getCurrentOffsetAndIncrease(S)S 6 {
			.stack 2;
			.locals 1;

				L0:	getfield_a_this 15;		// reference com/josh/vku2f/CBORBase.mStatusWords
					sconst_0;
					saload;
					sstore_2;
					aload_0;
					sload_1;
					invokevirtual 291;		// increaseOffset(S)S
					pop;
					sload_2;
					sreturn;
		}

		.method protected final increaseOffset(S)S 7 {
			.stack 4;
			.locals 0;

				L0:	aload_0;
					invokevirtual 292;		// getCurrentOffset()S
					sload_1;
					sadd;
					aload_0;
					invokevirtual 294;		// getBufferLength()S
					if_scmpgt L2;
				L1:	sload_1;
					ifge L3;
				L2:	sspush 26368;
					invokestatic 299;		// javacard/framework/ISOException.throwIt(S)V
				L3:	getfield_a_this 15;		// reference com/josh/vku2f/CBORBase.mStatusWords
					sconst_0;
					dup2;
					saload;
					sload_1;
					sadd;
					sastore;
					getfield_a_this 15;		// reference com/josh/vku2f/CBORBase.mStatusWords
					sconst_0;
					saload;
					sreturn;
		}

		.method protected <init>()V 0 {
			.stack 3;
			.locals 0;

				L0:	aload_0;
					invokespecial 289;		// java/lang/Object.<init>()V
					aload_0;
					sconst_2;
					sconst_1;
					invokestatic 359;		// javacard/framework/JCSystem.makeTransientShortArray(SB)[S
					putfield_a 15;		// reference com/josh/vku2f/CBORBase.mStatusWords
					return;
		}

		.method protected getRawByte()B 8 {
			.stack 3;
			.locals 0;

				L0:	aload_0;
					invokevirtual 300;		// getBuffer()[B
					getfield_a_this 15;		// reference com/josh/vku2f/CBORBase.mStatusWords
					sconst_0;
					saload;
					baload;
					sreturn;
		}

		.method protected getBuffer()[B 9 {
			.stack 1;
			.locals 0;

				L0:	getfield_a_this 14;		// reference com/josh/vku2f/CBORBase.mBuffer
					ifnonnull L2;
				L1:	invokestatic 290;		// javacard/framework/APDU.getCurrentAPDUBuffer()[B
					areturn;
				L2:	getfield_a_this 14;		// reference com/josh/vku2f/CBORBase.mBuffer
					areturn;
		}

	}

	.class public CBORDecoder 4 extends CBORBase {

		.publicMethodTable 10 {
			equals(Ljava/lang/Object;)Z;
			init(SS)V;
			init([BSS)V;
			reset()V;
			getCurrentOffset()S;
			getBufferLength()S;
			getCurrentOffsetAndIncrease(S)S;
			increaseOffset(S)S;
			getRawByte()B;
			getBuffer()[B;
			getMajorType()B;
			getIntegerSize()B;
			skipEntry()S;
			readMajorType(B)S;
			readInt8()B;
			readInt16()S;
			readInt32([BS)V;
			readInt64([BS)V;
			readEncodedInteger([BS)S;
			readLength()S;
			readBoolean()Z;
			readByteString([BS)S;
			readTextString([BS)S;
			readRawByteArray([BSS)S;
			readRawByte()B;
		}

		.packageMethodTable 0 {
		}

		.method public <init>()V 0 {
			.stack 1;
			.locals 0;

				L0:	aload_0;
					invokespecial 301;		// com/josh/vku2f/CBORBase.<init>()V
					return;
		}

		.method public getMajorType()B 10 {
			.stack 2;
			.locals 0;

				L0:	aload_0;
					invokevirtual 302;		// getRawByte()B
					sconst_5;
					sushr;
					bspush 7;
					sand;
					s2b;
					sreturn;
		}

		.method public getIntegerSize()B 11 {
			.stack 2;
			.locals 1;

				L0:	aload_0;
					invokevirtual 302;		// getRawByte()B
					bspush 31;
					sand;
					sstore_1;
					sload_1;
					bspush 24;
					if_scmpgt L2;
				L1:	sconst_1;
					sreturn;
				L2:	sload_1;
					bspush 25;
					if_scmpne L4;
				L3:	sconst_2;
					sreturn;
				L4:	sload_1;
					bspush 26;
					if_scmpne L6;
				L5:	sconst_4;
					sreturn;
				L6:	sload_1;
					bspush 27;
					if_scmpne L8;
				L7:	bspush 8;
					sreturn;
				L8:	sconst_m1;
					sreturn;
		}

		.method public skipEntry()S 12 {
			.stack 3;
			.locals 3;

				L0:	sconst_1;
					sstore_1;
					aload_0;
					invokevirtual 280;		// getMajorType()B
					stableswitch L10 0 7 L1 L1 L4 L4 L6 L5 L10 L10;
				L1:	aload_0;
					invokevirtual 303;		// getIntegerSize()B
					sstore_2;
					sload_2;
					sconst_1;
					if_scmpne L3;
				L2:	aload_0;
					invokevirtual 115;		// readInt8()B
					pop;
					goto L10;
				L3:	aload_0;
					sconst_1;
					sload_2;
					sadd;
					invokevirtual 304;		// increaseOffset(S)S
					pop;
					goto L10;
				L4:	aload_0;
					aload_0;
					invokevirtual 305;		// readLength()S
					invokevirtual 304;		// increaseOffset(S)S
					pop;
					goto L10;
				L5:	sconst_2;
					sstore_1;
				L6:	sload_1;
					aload_0;
					invokevirtual 305;		// readLength()S
					smul;
					sstore_1;
					sconst_0;
					sstore_3;
				L7:	sload_3;
					sload_1;
					if_scmpge L9;
				L8:	aload_0;
					invokevirtual 189;		// skipEntry()S
					pop;
					sinc 3 1;
					goto L7;
				L9:	goto L10;
				L10:	aload_0;
					invokevirtual 306;		// getCurrentOffset()S
					sreturn;
		}

		.method public readMajorType(B)S 13 {
			.stack 2;
			.locals 0;

				L0:	sload_1;
					aload_0;
					invokevirtual 280;		// getMajorType()B
					if_scmpeq L2;
				L1:	bspush 17;
					invokestatic 128;		// javacard/framework/UserException.throwIt(S)V
					sconst_0;
					sreturn;
				L2:	aload_0;
					invokevirtual 305;		// readLength()S
					sreturn;
		}

		.method public readInt8()B 14 {
			.stack 2;
			.locals 1;

				L0:	aload_0;
					invokevirtual 313;		// readRawByte()B
					bspush 31;
					sand;
					sstore_1;
					sload_1;
					bspush 24;
					if_scmpge L2;
				L1:	sload_1;
					sreturn;
				L2:	sload_1;
					bspush 24;
					if_scmpne L4;
				L3:	aload_0;
					invokevirtual 313;		// readRawByte()B
					sspush 255;
					sand;
					s2b;
					sreturn;
				L4:	sspush 27012;
					invokestatic 299;		// javacard/framework/ISOException.throwIt(S)V
					sconst_0;
					sreturn;
		}

		.method public readInt16()S 15 {
			.stack 3;
			.locals 1;

				L0:	aload_0;
					invokevirtual 313;		// readRawByte()B
					bspush 31;
					sand;
					sstore_1;
					sload_1;
					bspush 25;
					if_scmpne L2;
				L1:	aload_0;
					invokevirtual 315;		// getBuffer()[B
					aload_0;
					sconst_2;
					invokevirtual 316;		// getCurrentOffsetAndIncrease(S)S
					invokestatic 317;		// javacard/framework/Util.getShort([BS)S
					sreturn;
				L2:	sspush 27012;
					invokestatic 299;		// javacard/framework/ISOException.throwIt(S)V
					sconst_0;
					sreturn;
		}

		.method public readInt32([BS)V 16 {
			.stack 5;
			.locals 1;

				L0:	aload_0;
					invokevirtual 313;		// readRawByte()B
					bspush 31;
					sand;
					sstore_3;
					sload_3;
					bspush 26;
					if_scmpne L2;
				L1:	aload_0;
					invokevirtual 315;		// getBuffer()[B
					aload_0;
					sconst_4;
					invokevirtual 316;		// getCurrentOffsetAndIncrease(S)S
					aload_1;
					sload_2;
					sconst_4;
					invokestatic 318;		// javacard/framework/Util.arrayCopyNonAtomic([BS[BSS)S
					pop;
					goto L3;
				L2:	sspush 27012;
					invokestatic 299;		// javacard/framework/ISOException.throwIt(S)V
				L3:	return;
		}

		.method public readInt64([BS)V 17 {
			.stack 5;
			.locals 1;

				L0:	aload_0;
					invokevirtual 313;		// readRawByte()B
					bspush 31;
					sand;
					sstore_3;
					sload_3;
					bspush 27;
					if_scmpne L2;
				L1:	aload_0;
					invokevirtual 315;		// getBuffer()[B
					aload_0;
					bspush 8;
					invokevirtual 316;		// getCurrentOffsetAndIncrease(S)S
					aload_1;
					sload_2;
					bspush 8;
					invokestatic 318;		// javacard/framework/Util.arrayCopyNonAtomic([BS[BSS)S
					pop;
					goto L3;
				L2:	sspush 27012;
					invokestatic 299;		// javacard/framework/ISOException.throwIt(S)V
				L3:	return;
		}

		.method public readEncodedInteger([BS)S 18 {
			.stack 5;
			.locals 1;

				L0:	aload_0;
					invokevirtual 303;		// getIntegerSize()B
					sstore_3;
					sload_3;
					sconst_1;
					if_scmpne L2;
				L1:	aload_1;
					sload_2;
					aload_0;
					invokevirtual 115;		// readInt8()B
					bastore;
					goto L3;
				L2:	aload_0;
					invokevirtual 315;		// getBuffer()[B
					aload_0;
					sconst_1;
					sload_3;
					sadd;
					invokevirtual 316;		// getCurrentOffsetAndIncrease(S)S
					aload_1;
					sload_2;
					sload_3;
					invokestatic 318;		// javacard/framework/Util.arrayCopyNonAtomic([BS[BSS)S
					pop;
				L3:	sload_3;
					sspush 255;
					sand;
					sreturn;
		}

		.method public readLength()S 19 {
			.stack 2;
			.locals 2;

				L0:	aload_0;
					invokevirtual 303;		// getIntegerSize()B
					sstore_1;
					sconst_0;
					sstore_2;
					sload_1;
					sconst_1;
					if_scmpne L2;
				L1:	aload_0;
					invokevirtual 115;		// readInt8()B
					sspush 255;
					sand;
					sstore_2;
					goto L5;
				L2:	sload_1;
					sconst_2;
					if_scmpne L4;
				L3:	aload_0;
					invokevirtual 331;		// readInt16()S
					sstore_2;
					goto L5;
				L4:	sspush 27012;
					invokestatic 299;		// javacard/framework/ISOException.throwIt(S)V
				L5:	sload_2;
					sreturn;
		}

		.method public readBoolean()Z 20 {
			.stack 2;
			.locals 1;

				L0:	aload_0;
					invokevirtual 313;		// readRawByte()B
					sstore_1;
					sload_1;
					bspush -11;
					if_scmpne L2;
				L1:	sconst_1;
					sreturn;
				L2:	sload_1;
					bspush -12;
					if_scmpne L4;
				L3:	sconst_0;
					sreturn;
				L4:	sspush 27012;
					invokestatic 299;		// javacard/framework/ISOException.throwIt(S)V
					sconst_1;
					sreturn;
		}

		.method public readByteString([BS)S 21 {
			.stack 4;
			.locals 1;

				L0:	aload_0;
					invokevirtual 280;		// getMajorType()B
					sconst_2;
					if_scmpeq L2;
				L1:	bspush 17;
					invokestatic 128;		// javacard/framework/UserException.throwIt(S)V
					sconst_0;
					sreturn;
				L2:	aload_0;
					invokevirtual 305;		// readLength()S
					sstore_3;
					aload_0;
					aload_1;
					sload_2;
					sload_3;
					invokevirtual 332;		// readRawByteArray([BSS)S
					sreturn;
		}

		.method public readTextString([BS)S 22 {
			.stack 4;
			.locals 1;

				L0:	aload_0;
					invokevirtual 280;		// getMajorType()B
					sconst_3;
					if_scmpeq L2;
				L1:	bspush 17;
					invokestatic 128;		// javacard/framework/UserException.throwIt(S)V
					sconst_0;
					sreturn;
				L2:	aload_0;
					invokevirtual 305;		// readLength()S
					sstore_3;
					aload_0;
					aload_1;
					sload_2;
					sload_3;
					invokevirtual 332;		// readRawByteArray([BSS)S
					sreturn;
		}

		.method public readRawByteArray([BSS)S 23 {
			.stack 5;
			.locals 0;

				L0:	sload_3;
					aload_1;
					arraylength;
					if_scmpgt L2;
				L1:	sload_3;
					aload_0;
					invokevirtual 306;		// getCurrentOffset()S
					sadd;
					aload_0;
					invokevirtual 334;		// getBufferLength()S
					if_scmple L3;
				L2:	sspush 26368;
					invokestatic 299;		// javacard/framework/ISOException.throwIt(S)V
				L3:	aload_0;
					invokevirtual 315;		// getBuffer()[B
					aload_0;
					invokevirtual 306;		// getCurrentOffset()S
					aload_1;
					sload_2;
					sload_3;
					invokestatic 318;		// javacard/framework/Util.arrayCopyNonAtomic([BS[BSS)S
					sstore_3;
					aload_0;
					sload_3;
					invokevirtual 304;		// increaseOffset(S)S
					pop;
					sload_3;
					sreturn;
		}

		.method public readRawByte()B 24 {
			.stack 6;
			.locals 0;

				L0:	aload_0;
					invokevirtual 315;		// getBuffer()[B
					getfield_a_this 15;		// reference com/josh/vku2f/CBORBase.mStatusWords
					sconst_0;
					dup2;
					saload;
					dup_x 19;
					sconst_1;
					sadd;
					sastore;
					baload;
					sreturn;
		}

	}

	.class public CBOREncoder 5 extends CBORBase {

		.publicMethodTable 10 {
			equals(Ljava/lang/Object;)Z;
			init(SS)V;
			init([BSS)V;
			reset()V;
			getCurrentOffset()S;
			getBufferLength()S;
			getCurrentOffsetAndIncrease(S)S;
			increaseOffset(S)S;
			getRawByte()B;
			getBuffer()[B;
			writeRawByte(B)S;
			startArray(S)S;
			startMap(S)S;
			startByteString(S)S;
			startTextString(S)S;
			encodeByteString([BSS)S;
			encodeTextString([BSS)S;
			encodeUInt8(B)S;
			encodeNegativeUInt8(B)S;
			encodeNegativeUInt16(S)S;
			encodeUInt16(S)S;
			encodeUInt32([BS)S;
			encodeUInt64([BS)S;
			encodeBoolean(Z)S;
		}

		.packageMethodTable 0 {
		}

		.method private final encodeValue(BS)S {
			.stack 3;
			.locals 0;

				L0:	sload_2;
					bspush 24;
					invokestatic 335;		// com/josh/vku2f/ICUtil.isLessThanAsUnsignedShort(SS)Z
					ifeq L2;
				L1:	aload_0;
					sload_1;
					sload_2;
					sor;
					s2b;
					invokevirtual 336;		// writeRawByte(B)S
					sreturn;
				L2:	sload_2;
					sspush 256;
					invokestatic 335;		// com/josh/vku2f/ICUtil.isLessThanAsUnsignedShort(SS)Z
					ifeq L4;
				L3:	aload_0;
					sload_1;
					sload_2;
					s2b;
					invokespecial 337;		// com/josh/vku2f/CBOREncoder.writeUInt8(BB)S
					sreturn;
				L4:	aload_0;
					sload_1;
					sload_2;
					invokespecial 338;		// com/josh/vku2f/CBOREncoder.writeUInt16(BS)S
					sreturn;
		}

		.method private final writeUInt8(BB)S {
			.stack 3;
			.locals 0;

				L0:	aload_0;
					sload_1;
					bspush 24;
					sor;
					invokevirtual 336;		// writeRawByte(B)S
					pop;
					aload_0;
					sload_2;
					invokevirtual 336;		// writeRawByte(B)S
					pop;
					sconst_2;
					sreturn;
		}

		.method private final writeUInt16(BS)S {
			.stack 3;
			.locals 0;

				L0:	aload_0;
					sload_1;
					bspush 25;
					sor;
					invokevirtual 336;		// writeRawByte(B)S
					pop;
					aload_0;
					sload_2;
					invokespecial 339;		// com/josh/vku2f/CBOREncoder.writeRawShort(S)S
					pop;
					sconst_3;
					sreturn;
		}

		.method public final writeRawByte(B)S 10 {
			.stack 3;
			.locals 0;

				L0:	aload_0;
					invokevirtual 340;		// getBuffer()[B
					aload_0;
					invokevirtual 341;		// getCurrentOffset()S
					sload_1;
					bastore;
					aload_0;
					sconst_1;
					invokevirtual 342;		// increaseOffset(S)S
					pop;
					sconst_1;
					sreturn;
		}

		.method private final writeRawShort(S)S {
			.stack 3;
			.locals 0;

				L0:	aload_0;
					invokevirtual 340;		// getBuffer()[B
					aload_0;
					invokevirtual 341;		// getCurrentOffset()S
					sload_1;
					invokestatic 343;		// javacard/framework/Util.setShort([BSS)S
					pop;
					aload_0;
					sconst_2;
					invokevirtual 342;		// increaseOffset(S)S
					pop;
					sconst_2;
					sreturn;
		}

		.method private final writeRawByteArray([BSS)S {
			.stack 5;
			.locals 1;

				L0:	sload_3;
					aload_1;
					arraylength;
					sload_2;
					sadd;
					if_scmpgt L2;
				L1:	sload_3;
					aload_0;
					invokevirtual 341;		// getCurrentOffset()S
					sadd;
					aload_0;
					invokevirtual 344;		// getBufferLength()S
					if_scmple L3;
				L2:	sspush 26368;
					invokestatic 299;		// javacard/framework/ISOException.throwIt(S)V
				L3:	aload_0;
					invokevirtual 341;		// getCurrentOffset()S
					sstore 4;
					aload_1;
					sload_2;
					aload_0;
					invokevirtual 340;		// getBuffer()[B
					sload 4;
					sload_3;
					invokestatic 318;		// javacard/framework/Util.arrayCopyNonAtomic([BS[BSS)S
					sload 4;
					ssub;
					sstore_3;
					aload_0;
					sload_3;
					invokevirtual 342;		// increaseOffset(S)S
					pop;
					sload_3;
					sreturn;
		}

		.method public <init>()V 0 {
			.stack 1;
			.locals 0;

				L0:	aload_0;
					invokespecial 301;		// com/josh/vku2f/CBORBase.<init>()V
					return;
		}

		.method public startArray(S)S 11 {
			.stack 3;
			.locals 0;

				L0:	aload_0;
					bspush -128;
					sload_1;
					invokespecial 345;		// com/josh/vku2f/CBOREncoder.encodeValue(BS)S
					pop;
					aload_0;
					invokevirtual 341;		// getCurrentOffset()S
					sreturn;
		}

		.method public startMap(S)S 12 {
			.stack 3;
			.locals 0;

				L0:	aload_0;
					bspush -96;
					sload_1;
					invokespecial 345;		// com/josh/vku2f/CBOREncoder.encodeValue(BS)S
					pop;
					aload_0;
					invokevirtual 341;		// getCurrentOffset()S
					sreturn;
		}

		.method public startByteString(S)S 13 {
			.stack 3;
			.locals 0;

				L0:	aload_0;
					bspush 64;
					sload_1;
					invokespecial 345;		// com/josh/vku2f/CBOREncoder.encodeValue(BS)S
					pop;
					aload_0;
					sload_1;
					invokevirtual 346;		// getCurrentOffsetAndIncrease(S)S
					sreturn;
		}

		.method public startTextString(S)S 14 {
			.stack 3;
			.locals 0;

				L0:	aload_0;
					bspush 96;
					sload_1;
					invokespecial 345;		// com/josh/vku2f/CBOREncoder.encodeValue(BS)S
					pop;
					aload_0;
					sload_1;
					invokevirtual 346;		// getCurrentOffsetAndIncrease(S)S
					sreturn;
		}

		.method public encodeByteString([BSS)S 15 {
			.stack 5;
			.locals 1;

				L0:	aload_0;
					bspush 64;
					sload_3;
					invokespecial 345;		// com/josh/vku2f/CBOREncoder.encodeValue(BS)S
					sstore 4;
					sload 4;
					aload_0;
					aload_1;
					sload_2;
					sload_3;
					invokespecial 348;		// com/josh/vku2f/CBOREncoder.writeRawByteArray([BSS)S
					sadd;
					sstore 4;
					sload 4;
					sreturn;
		}

		.method public encodeTextString([BSS)S 16 {
			.stack 5;
			.locals 1;

				L0:	aload_0;
					bspush 96;
					sload_3;
					invokespecial 345;		// com/josh/vku2f/CBOREncoder.encodeValue(BS)S
					sstore 4;
					sload 4;
					aload_0;
					aload_1;
					sload_2;
					sload_3;
					invokespecial 348;		// com/josh/vku2f/CBOREncoder.writeRawByteArray([BSS)S
					sadd;
					sstore 4;
					sload 4;
					sreturn;
		}

		.method public encodeUInt8(B)S 17 {
			.stack 4;
			.locals 0;

				L0:	aload_0;
					sconst_0;
					sload_1;
					sspush 255;
					sand;
					invokespecial 345;		// com/josh/vku2f/CBOREncoder.encodeValue(BS)S
					sreturn;
		}

		.method public encodeNegativeUInt8(B)S 18 {
			.stack 4;
			.locals 0;

				L0:	aload_0;
					bspush 32;
					sload_1;
					sspush 255;
					sand;
					invokespecial 345;		// com/josh/vku2f/CBOREncoder.encodeValue(BS)S
					sreturn;
		}

		.method public encodeNegativeUInt16(S)S 19 {
			.stack 3;
			.locals 0;

				L0:	aload_0;
					bspush 32;
					sload_1;
					invokespecial 345;		// com/josh/vku2f/CBOREncoder.encodeValue(BS)S
					sreturn;
		}

		.method public encodeUInt16(S)S 20 {
			.stack 3;
			.locals 0;

				L0:	aload_0;
					sconst_0;
					sload_1;
					invokespecial 345;		// com/josh/vku2f/CBOREncoder.encodeValue(BS)S
					sreturn;
		}

		.method public encodeUInt32([BS)S 21 {
			.stack 4;
			.locals 0;

				L0:	aload_0;
					bspush 26;
					invokevirtual 336;		// writeRawByte(B)S
					pop;
					aload_0;
					aload_1;
					sload_2;
					sconst_4;
					invokespecial 348;		// com/josh/vku2f/CBOREncoder.writeRawByteArray([BSS)S
					sconst_1;
					sadd;
					sreturn;
		}

		.method public encodeUInt64([BS)S 22 {
			.stack 4;
			.locals 0;

				L0:	aload_0;
					bspush 27;
					invokevirtual 336;		// writeRawByte(B)S
					pop;
					aload_0;
					aload_1;
					sload_2;
					bspush 8;
					invokespecial 348;		// com/josh/vku2f/CBOREncoder.writeRawByteArray([BSS)S
					sconst_1;
					sadd;
					sreturn;
		}

		.method public encodeBoolean(Z)S 23 {
			.stack 2;
			.locals 0;

				L0:	sload_1;
					ifeq L2;
				L1:	aload_0;
					bspush -11;
					invokevirtual 336;		// writeRawByte(B)S
					sreturn;
				L2:	aload_0;
					bspush -12;
					invokevirtual 336;		// writeRawByte(B)S
					sreturn;
		}

	}

	.class public COSEKey 6 extends 0.0 {		// extends java/lang/Object

		.fields {
			private byte[] w 0;		// [B
		}

		.publicMethodTable 1 {
			equals(Ljava/lang/Object;)Z;
			setW([B)V;
			getW()[B;
			encode(Lcom/josh/vku2f/CBOREncoder;)V;
		}

		.packageMethodTable 0 {
		}

		.method  <init>()V {
			.stack 2;
			.locals 0;

				L0:	aload_0;
					invokespecial 289;		// java/lang/Object.<init>()V
					aload_0;
					bspush 64;
					newarray 11;
					putfield_a 16;		// reference com/josh/vku2f/COSEKey.w
					return;
		}

		.method public setW([B)V 1 {
			.stack 2;
			.locals 0;

				L0:	aload_1;
					putfield_a_this 16;		// reference com/josh/vku2f/COSEKey.w
					return;
		}

		.method public getW()[B 2 {
			.stack 1;
			.locals 0;

				L0:	getfield_a_this 16;		// reference com/josh/vku2f/COSEKey.w
					areturn;
		}

		.method public encode(Lcom/josh/vku2f/CBOREncoder;)V 3 {
			.stack 0;
			.locals 0;

				L0:	return;
		}

	}

	.class public CTAP2 7 extends 2.3 {		// extends javacard/framework/Applet

		.fields {
			public final IDSecret idSecret 0;		// Lcom/josh/vku2f/IDSecret;
			private byte[] dataBuffer 1;		// [B
			private byte[] scratch 2;		// [B
			private final short[] tempVars 3;		// [S
			private final short[] chainRam 4;		// [S
			private final short[] outChainRam 5;		// [S
			private final boolean[] isChaining 6;		// [Z
			private final boolean[] isOutChaining 7;		// [Z
			private final short[] nextAssertion 8;		// [S
			private byte[] fidoInfo 9;		// [B
			private final CBORDecoder cborDecoder 10;		// Lcom/josh/vku2f/CBORDecoder;
			private final CBOREncoder cborEncoder 11;		// Lcom/josh/vku2f/CBOREncoder;
			private final 1.11 sha256MessageDigest 12;		// Ljavacard/security/MessageDigest;
			private final AttestationKeyPair attestationKeyPair 13;		// Lcom/josh/vku2f/AttestationKeyPair;
			private CredentialArray credentialArray 14;		// Lcom/josh/vku2f/CredentialArray;
			private AuthenticatorMakeCredential authenticatorMakeCredential 15;		// Lcom/josh/vku2f/AuthenticatorMakeCredential;
			private AuthenticatorGetAssertion authenticatorGetAssertion 16;		// Lcom/josh/vku2f/AuthenticatorGetAssertion;
			private StoredCredential tempCredential 17;		// Lcom/josh/vku2f/StoredCredential;
			private StoredCredential[] assertionCredentials 18;		// [Lcom/josh/vku2f/StoredCredential;
			private final ClientPINCommand clientPINCommand 19;		// Lcom/josh/vku2f/ClientPINCommand;
			private PinUvAuthProtocolOne pinUvAuthProtocolOne 20;		// Lcom/josh/vku2f/PinUvAuthProtocolOne;
			private boolean personalizeComplete 21;		// Z
			private final byte MAX_PIN_RETRIES 22;		// B
			private final byte MAX_UV_RETRIES 23;		// B
			private byte pinRetries 24;		// B
			private byte uvRetries 25;		// B
			public static final byte ISO_INS_GET_DATA = -64;		// B
			public static final byte FIDO2_INS_NFCCTAP_MSG = 16;		// B
			public static final byte FIDO2_INS_DESELECT = 18;		// B
			public static final byte FIDO2_AUTHENTICATOR_MAKE_CREDENTIAL = 1;		// B
			public static final byte FIDO2_AUTHENTICATOR_GET_ASSERTION = 2;		// B
			public static final byte FIDO2_AUTHENTICATOR_GET_NEXT_ASSERTION = 8;		// B
			public static final byte FIDO2_AUTHENTICATOR_GET_INFO = 4;		// B
			public static final byte FIDO2_AUTHENTICATOR_CLIENT_PIN = 6;		// B
			public static final byte FIDO2_AUTHENTICATOR_RESET = 7;		// B
			public static final byte FIDO2_VENDOR_ATTEST_SIGN = 65;		// B
			public static final byte FIDO2_VENDOR_ATTEST_LOADCERT = 66;		// B
			public static final byte FIDO2_VENDOR_PERSO_COMPLETE = 67;		// B
			public static final byte FIDO2_VENDOR_ATTEST_GETPUB = 68;		// B
			public static final byte FIDO2_VENDOR_GET_CREDENTIAL_COUNT = 69;		// B
			public static final byte FIDO2_VENDOR_ATTEST_GETCERT = 74;		// B
			public static final byte ID_SECRET_GET_PUKX_RX = 80;		// B
			public static final byte ID_SECRET_GET_CX = 81;		// B
			public static final byte ID_SECRET_GET_PUKX_CX = 82;		// B
			public static final byte ID_SECRET_DUMP_ALL = 95;		// B
			public static final byte[] aaguid 0 = {116,101,115,116,103,117,105,100,-1,0,0,0,0,0,0,0};		// [B
		}

		.publicMethodTable 7 {
			equals(Ljava/lang/Object;)Z;
			register()V;
			register([BSB)V;
			selectingApplet()Z;
			deselect()V;
			getShareableInterfaceObject(Ljavacard/framework/AID;B)Ljavacard/framework/Shareable;;
			select()Z;
			process(Ljavacard/framework/APDU;)V;
			attestSignRaw(Ljavacard/framework/APDU;S)V;
			attestSetCert(Ljavacard/framework/APDU;S)V;
			authMakeCredential(Ljavacard/framework/APDU;S)V;
			authGetAssertion(Ljavacard/framework/APDU;S)V;
			clientPin(Ljavacard/framework/APDU;S)V;
			returnError(Ljavacard/framework/APDU;B)V;
			returnError(Ljavacard/framework/APDU;S)V;
			getData(Ljavacard/framework/APDU;)V;
			sendLongChaining(Ljavacard/framework/APDU;S)V;
		}

		.packageMethodTable 0 {
		}

		.implementedInterfaceInfoTable { 
			.interface 3.0 { 		// javacardx/apdu/ExtendedLength
			}

		}

		.method private <init>()V {
			.stack 4;
			.locals 2;

				L0:	aload_0;
					invokespecial 356;		// javacard/framework/Applet.<init>()V
					bspush 8;
					putfield_b_this 17;		// byte com/josh/vku2f/CTAP2.MAX_PIN_RETRIES
					bspush 8;
					putfield_b_this 18;		// byte com/josh/vku2f/CTAP2.MAX_UV_RETRIES
				L1:	aload_0;
					sspush 1210;
					sconst_2;
					invokestatic 112;		// javacard/framework/JCSystem.makeTransientByteArray(SB)[B
					putfield_a 19;		// reference com/josh/vku2f/CTAP2.dataBuffer
				L2:	goto L4;
				L3:	astore_1;
					aload_0;
					sspush 1210;
					newarray 11;
					putfield_a 19;		// reference com/josh/vku2f/CTAP2.dataBuffer
				L4:	aload_0;
					sspush 512;
					sconst_2;
					invokestatic 112;		// javacard/framework/JCSystem.makeTransientByteArray(SB)[B
					putfield_a 20;		// reference com/josh/vku2f/CTAP2.scratch
				L5:	goto L7;
				L6:	astore_1;
					aload_0;
					sspush 512;
					newarray 11;
					putfield_a 20;		// reference com/josh/vku2f/CTAP2.scratch
				L7:	aload_0;
					bspush 8;
					sconst_2;
					invokestatic 359;		// javacard/framework/JCSystem.makeTransientShortArray(SB)[S
					putfield_a 21;		// reference com/josh/vku2f/CTAP2.tempVars
					aload_0;
					new 368;		// com/josh/vku2f/CBORDecoder
					dup;
					invokespecial 372;		// com/josh/vku2f/CBORDecoder.<init>()V
					putfield_a 22;		// reference com/josh/vku2f/CTAP2.cborDecoder
					aload_0;
					new 113;		// com/josh/vku2f/CBOREncoder
					dup;
					invokespecial 114;		// com/josh/vku2f/CBOREncoder.<init>()V
					putfield_a 23;		// reference com/josh/vku2f/CTAP2.cborEncoder
					aload_0;
					new 116;		// com/josh/vku2f/CredentialArray
					dup;
					sconst_5;
					invokespecial 117;		// com/josh/vku2f/CredentialArray.<init>(S)V
					putfield_a 24;		// reference com/josh/vku2f/CTAP2.credentialArray
					aload_0;
					sconst_4;
					sconst_0;
					invokestatic 119;		// javacard/security/MessageDigest.getInstance(BZ)Ljavacard/security/MessageDigest;
					putfield_a 25;		// reference com/josh/vku2f/CTAP2.sha256MessageDigest
					aload_0;
					new 121;		// com/josh/vku2f/AttestationKeyPair
					dup;
					invokespecial 122;		// com/josh/vku2f/AttestationKeyPair.<init>()V
					putfield_a 26;		// reference com/josh/vku2f/CTAP2.attestationKeyPair
					aload_0;
					sconst_1;
					sconst_1;
					invokestatic 359;		// javacard/framework/JCSystem.makeTransientShortArray(SB)[S
					putfield_a 27;		// reference com/josh/vku2f/CTAP2.nextAssertion
					sconst_0;
					putfield_b_this 28;		// boolean com/josh/vku2f/CTAP2.personalizeComplete
					aload_0;
					sconst_2;
					sconst_2;
					invokestatic 126;		// javacard/framework/JCSystem.makeTransientBooleanArray(SB)[Z
					putfield_a 29;		// reference com/josh/vku2f/CTAP2.isChaining
					aload_0;
					sconst_4;
					sconst_2;
					invokestatic 359;		// javacard/framework/JCSystem.makeTransientShortArray(SB)[S
					putfield_a 30;		// reference com/josh/vku2f/CTAP2.chainRam
					aload_0;
					sconst_4;
					sconst_2;
					invokestatic 359;		// javacard/framework/JCSystem.makeTransientShortArray(SB)[S
					putfield_a 31;		// reference com/josh/vku2f/CTAP2.outChainRam
					aload_0;
					sconst_2;
					sconst_2;
					invokestatic 126;		// javacard/framework/JCSystem.makeTransientBooleanArray(SB)[Z
					putfield_a 32;		// reference com/josh/vku2f/CTAP2.isOutChaining
					bspush 7;
					sconst_1;
					sspush 256;
					sconst_0;
					invokestatic 131;		// javacard/security/KeyBuilder.buildKey(BBSZ)Ljavacard/security/Key;
					checkcast 0 357;		// T_CLASSORINTERFACE javacard/security/ECPublicKey
					astore_1;
					bspush 8;
					sconst_1;
					sspush 256;
					sconst_0;
					invokestatic 131;		// javacard/security/KeyBuilder.buildKey(BBSZ)Ljavacard/security/Key;
					checkcast 0 132;		// T_CLASSORINTERFACE javacard/security/ECPrivateKey
					astore_2;
					aload_0;
					new 133;		// com/josh/vku2f/ClientPINCommand
					dup;
					invokespecial 134;		// com/josh/vku2f/ClientPINCommand.<init>()V
					putfield_a 33;		// reference com/josh/vku2f/CTAP2.clientPINCommand
					aload_0;
					new 136;		// com/josh/vku2f/IDSecret
					dup;
					invokespecial 137;		// com/josh/vku2f/IDSecret.<init>()V
					putfield_a 34;		// reference com/josh/vku2f/CTAP2.idSecret
					return;
			.exceptionTable {
				// start_block end_block handler_block catch_type_index
				L1 L2 L3 358;
				L4 L5 L6 358;
			}
		}

		.method public static install([BSB)V 0 {
			.stack 5;
			.locals 3;

				L0:	sload_1;
					sstore_3;
					sload_3;
					aload_0;
					sload_3;
					baload;
					sconst_1;
					sadd;
					sadd;
					sstore_3;
					sload_3;
					aload_0;
					sload_3;
					baload;
					sconst_1;
					sadd;
					sadd;
					sstore_3;
					new 139;		// com/josh/vku2f/CTAP2
					dup;
					invokespecial 140;		// com/josh/vku2f/CTAP2.<init>()V
					astore 4;
				L1:	aload 4;
					aload_0;
					sload_1;
					sconst_1;
					sadd;
					aload_0;
					sload_1;
					baload;
					invokevirtual 141;		// register([BSB)V
				L2:	goto L4;
				L3:	astore 5;
					aload 4;
					invokevirtual 142;		// register()V
				L4:	return;
			.exceptionTable {
				// start_block end_block handler_block catch_type_index
				L1 L2 L3 358;
			}
		}

		.method public process(Ljavacard/framework/APDU;)V 7 {
			.stack 5;
			.locals 1;

			.descriptor	Ljavacard/framework/APDU;	2.10;

				L0:	aload_1;
					invokevirtual 143;		// getBuffer()[B
					astore_2;
					aload_0;
					invokevirtual 144;		// selectingApplet()Z
					ifeq L2;
				L1:	getstatic_a 145;		// reference com/josh/vku2f/Utf8Strings.UTF8_FIDO2
					sconst_0;
					aload_2;
					sconst_0;
					getstatic_a 145;		// reference com/josh/vku2f/Utf8Strings.UTF8_FIDO2
					arraylength;
					invokestatic 318;		// javacard/framework/Util.arrayCopyNonAtomic([BS[BSS)S
					pop;
					aload_1;
					sconst_0;
					getstatic_a 145;		// reference com/josh/vku2f/Utf8Strings.UTF8_FIDO2
					arraylength;
					invokevirtual 146;		// setOutgoingAndSend(SS)V
					return;
				L2:	aload_1;
					invokevirtual 147;		// isCommandChainingCLA()Z
					ifne L5;
				L3:	aload_1;
					invokevirtual 148;		// isISOInterindustryCLA()Z
					ifeq L5;
				L4:	sspush 28160;
					invokestatic 299;		// javacard/framework/ISOException.throwIt(S)V
				L5:	invokestatic 149;		// javacard/framework/JCSystem.requestObjectDeletion()V
					aload_2;
					sconst_1;
					baload;
					slookupswitch L11 3 -64 L6 16 L9 18 L10;
				L6:	getfield_a_this 32;		// reference com/josh/vku2f/CTAP2.isOutChaining
					sconst_0;
					baload;
					ifeq L8;
				L7:	aload_0;
					aload_1;
					invokevirtual 150;		// getData(Ljavacard/framework/APDU;)V
					goto L12;
				L8:	sspush 27013;
					invokestatic 299;		// javacard/framework/ISOException.throwIt(S)V
					goto L12;
				L9:	aload_0;
					aload_1;
					invokespecial 151;		// com/josh/vku2f/CTAP2.handle(Ljavacard/framework/APDU;)V
					goto L12;
				L10:	sspush -28672;
					invokestatic 299;		// javacard/framework/ISOException.throwIt(S)V
					goto L12;
				L11:	sspush 27904;
					invokestatic 299;		// javacard/framework/ISOException.throwIt(S)V
				L12:	return;
		}

		.method private doApduIngestion(Ljavacard/framework/APDU;)S {
			.stack 8;
			.locals 1;

			.descriptor	Ljavacard/framework/APDU;	2.10;

				L0:	aload_1;
					invokevirtual 143;		// getBuffer()[B
					astore_2;
					getfield_a_this 21;		// reference com/josh/vku2f/CTAP2.tempVars
					sconst_4;
					aload_1;
					invokevirtual 152;		// setIncomingAndReceive()S
					sastore;
					getfield_a_this 21;		// reference com/josh/vku2f/CTAP2.tempVars
					sconst_3;
					aload_1;
					invokevirtual 153;		// getIncomingLength()S
					sastore;
					getfield_a_this 21;		// reference com/josh/vku2f/CTAP2.tempVars
					sconst_3;
					saload;
					sspush 1200;
					if_scmple L2;
				L1:	aload_0;
					aload_1;
					bspush 57;
					invokevirtual 154;		// returnError(Ljavacard/framework/APDU;B)V
					sconst_0;
					sreturn;
				L2:	aload_1;
					invokestatic 155;		// com/josh/vku2f/CTAP2.isCommandChainingCLA(Ljavacard/framework/APDU;)Z
					ifeq L6;
				L3:	getfield_a_this 29;		// reference com/josh/vku2f/CTAP2.isChaining
					sconst_0;
					baload;
					ifne L5;
				L4:	getfield_a_this 29;		// reference com/josh/vku2f/CTAP2.isChaining
					sconst_0;
					sconst_1;
					bastore;
					getfield_a_this 30;		// reference com/josh/vku2f/CTAP2.chainRam
					sconst_0;
					sconst_0;
					sastore;
				L5:	getfield_a_this 30;		// reference com/josh/vku2f/CTAP2.chainRam
					sconst_1;
					getfield_a_this 21;		// reference com/josh/vku2f/CTAP2.tempVars
					sconst_4;
					saload;
					sastore;
					getfield_a_this 30;		// reference com/josh/vku2f/CTAP2.chainRam
					sconst_0;
					aload_2;
					aload_1;
					invokevirtual 156;		// getOffsetCdata()S
					getfield_a_this 19;		// reference com/josh/vku2f/CTAP2.dataBuffer
					getfield_a_this 30;		// reference com/josh/vku2f/CTAP2.chainRam
					sconst_0;
					saload;
					getfield_a_this 30;		// reference com/josh/vku2f/CTAP2.chainRam
					sconst_1;
					saload;
					invokestatic 318;		// javacard/framework/Util.arrayCopyNonAtomic([BS[BSS)S
					sastore;
					sconst_0;
					sreturn;
				L6:	getfield_a_this 29;		// reference com/josh/vku2f/CTAP2.isChaining
					sconst_0;
					baload;
					ifeq L8;
				L7:	getfield_a_this 30;		// reference com/josh/vku2f/CTAP2.chainRam
					sconst_1;
					getfield_a_this 21;		// reference com/josh/vku2f/CTAP2.tempVars
					sconst_4;
					saload;
					sastore;
					getfield_a_this 30;		// reference com/josh/vku2f/CTAP2.chainRam
					sconst_0;
					aload_2;
					aload_1;
					invokevirtual 156;		// getOffsetCdata()S
					getfield_a_this 19;		// reference com/josh/vku2f/CTAP2.dataBuffer
					getfield_a_this 30;		// reference com/josh/vku2f/CTAP2.chainRam
					sconst_0;
					saload;
					getfield_a_this 30;		// reference com/josh/vku2f/CTAP2.chainRam
					sconst_1;
					saload;
					invokestatic 318;		// javacard/framework/Util.arrayCopyNonAtomic([BS[BSS)S
					sastore;
					getfield_a_this 29;		// reference com/josh/vku2f/CTAP2.isChaining
					sconst_0;
					sconst_0;
					bastore;
					getfield_a_this 29;		// reference com/josh/vku2f/CTAP2.isChaining
					sconst_1;
					sconst_1;
					bastore;
					getfield_a_this 30;		// reference com/josh/vku2f/CTAP2.chainRam
					sconst_0;
					saload;
					sreturn;
				L8:	getfield_a_this 21;		// reference com/josh/vku2f/CTAP2.tempVars
					sconst_3;
					saload;
					sconst_1;
					if_scmpne L10;
				L9:	getfield_a_this 19;		// reference com/josh/vku2f/CTAP2.dataBuffer
					sconst_0;
					aload_2;
					aload_1;
					invokevirtual 156;		// getOffsetCdata()S
					baload;
					bastore;
					sconst_1;
					sreturn;
				L10:	aload_1;
					invokevirtual 157;		// getCurrentState()B
					sconst_2;
					if_scmpne L12;
				L11:	aload_2;
					aload_1;
					invokevirtual 156;		// getOffsetCdata()S
					getfield_a_this 19;		// reference com/josh/vku2f/CTAP2.dataBuffer
					sconst_0;
					getfield_a_this 21;		// reference com/josh/vku2f/CTAP2.tempVars
					sconst_3;
					saload;
					invokestatic 318;		// javacard/framework/Util.arrayCopyNonAtomic([BS[BSS)S
					pop;
					getfield_a_this 21;		// reference com/josh/vku2f/CTAP2.tempVars
					sconst_4;
					saload;
					sreturn;
				L12:	getfield_a_this 21;		// reference com/josh/vku2f/CTAP2.tempVars
					sconst_5;
					getfield_a_this 21;		// reference com/josh/vku2f/CTAP2.tempVars
					sconst_4;
					saload;
					sastore;
					getfield_a_this 21;		// reference com/josh/vku2f/CTAP2.tempVars
					sconst_4;
					sconst_0;
					sastore;
				L13:	getfield_a_this 21;		// reference com/josh/vku2f/CTAP2.tempVars
					sconst_3;
					saload;
					ifle L15;
				L14:	getfield_a_this 21;		// reference com/josh/vku2f/CTAP2.tempVars
					sconst_4;
					aload_2;
					aload_1;
					invokevirtual 156;		// getOffsetCdata()S
					getfield_a_this 19;		// reference com/josh/vku2f/CTAP2.dataBuffer
					getfield_a_this 21;		// reference com/josh/vku2f/CTAP2.tempVars
					sconst_4;
					saload;
					getfield_a_this 21;		// reference com/josh/vku2f/CTAP2.tempVars
					sconst_5;
					saload;
					invokestatic 318;		// javacard/framework/Util.arrayCopyNonAtomic([BS[BSS)S
					sastore;
					getfield_a_this 21;		// reference com/josh/vku2f/CTAP2.tempVars
					sconst_3;
					dup2;
					saload;
					getfield_a_this 21;		// reference com/josh/vku2f/CTAP2.tempVars
					sconst_5;
					saload;
					ssub;
					sastore;
					getfield_a_this 21;		// reference com/josh/vku2f/CTAP2.tempVars
					sconst_5;
					aload_1;
					aload_1;
					invokevirtual 156;		// getOffsetCdata()S
					invokevirtual 158;		// receiveBytes(S)S
					sastore;
					goto L13;
				L15:	getfield_a_this 21;		// reference com/josh/vku2f/CTAP2.tempVars
					sconst_4;
					saload;
					sreturn;
		}

		.method private handle(Ljavacard/framework/APDU;)V {
			.stack 4;
			.locals 1;

			.descriptor	Ljavacard/framework/APDU;	2.10;

				L0:	aload_1;
					invokevirtual 143;		// getBuffer()[B
					astore_2;
					aconst_null;
					putfield_a_this 35;		// reference com/josh/vku2f/CTAP2.tempCredential
					aconst_null;
					putfield_a_this 36;		// reference com/josh/vku2f/CTAP2.authenticatorMakeCredential
					getfield_a_this 21;		// reference com/josh/vku2f/CTAP2.tempVars
					sconst_3;
					aload_0;
					aload_1;
					invokespecial 161;		// com/josh/vku2f/CTAP2.doApduIngestion(Ljavacard/framework/APDU;)S
					sastore;
					getfield_a_this 21;		// reference com/josh/vku2f/CTAP2.tempVars
					sconst_3;
					saload;
					ifne L2;
				L1:	sspush -28672;
					invokestatic 299;		// javacard/framework/ISOException.throwIt(S)V
					return;
				L2:	getfield_a_this 19;		// reference com/josh/vku2f/CTAP2.dataBuffer
					sconst_0;
					baload;
					slookupswitch L19 16 1 L3 2 L4 4 L5 6 L6 7 L7 8 L8 65 L9 66 L10 67 L11 68 L12 69 L13 74 L18 80 L14 81 L15 82 L16 95 L17;
				L3:	aload_0;
					aload_1;
					getfield_a_this 21;		// reference com/josh/vku2f/CTAP2.tempVars
					sconst_3;
					saload;
					invokevirtual 162;		// authMakeCredential(Ljavacard/framework/APDU;S)V
					goto_w L20;
				L4:	aload_0;
					aload_1;
					getfield_a_this 21;		// reference com/josh/vku2f/CTAP2.tempVars
					sconst_3;
					saload;
					invokevirtual 163;		// authGetAssertion(Ljavacard/framework/APDU;S)V
					goto_w L20;
				L5:	aload_0;
					aload_1;
					invokespecial 164;		// com/josh/vku2f/CTAP2.authGetInfo(Ljavacard/framework/APDU;)V
					goto_w L20;
				L6:	aload_0;
					aload_1;
					getfield_a_this 21;		// reference com/josh/vku2f/CTAP2.tempVars
					sconst_3;
					saload;
					invokevirtual 165;		// clientPin(Ljavacard/framework/APDU;S)V
					goto L20;
				L7:	aload_0;
					aload_1;
					invokespecial 166;		// com/josh/vku2f/CTAP2.doReset(Ljavacard/framework/APDU;)V
					goto L20;
				L8:	aload_0;
					aload_1;
					aload_2;
					invokespecial 167;		// com/josh/vku2f/CTAP2.authGetNextAssertion(Ljavacard/framework/APDU;[B)V
					goto L20;
				L9:	aload_0;
					aload_1;
					getfield_a_this 21;		// reference com/josh/vku2f/CTAP2.tempVars
					sconst_3;
					saload;
					invokevirtual 168;		// attestSignRaw(Ljavacard/framework/APDU;S)V
					goto L20;
				L10:	aload_0;
					aload_1;
					getfield_a_this 21;		// reference com/josh/vku2f/CTAP2.tempVars
					sconst_3;
					saload;
					invokevirtual 169;		// attestSetCert(Ljavacard/framework/APDU;S)V
					goto L20;
				L11:	aload_0;
					aload_1;
					invokespecial 170;		// com/josh/vku2f/CTAP2.personalizationComplete(Ljavacard/framework/APDU;)V
					goto L20;
				L12:	aload_0;
					aload_1;
					invokespecial 171;		// com/josh/vku2f/CTAP2.getAttestPublic(Ljavacard/framework/APDU;)V
					goto L20;
				L13:	aload_0;
					aload_1;
					invokespecial 172;		// com/josh/vku2f/CTAP2.getCredentialCount(Ljavacard/framework/APDU;)V
					goto L20;
				L14:	aload_0;
					aload_1;
					getfield_a_this 21;		// reference com/josh/vku2f/CTAP2.tempVars
					sconst_3;
					saload;
					invokespecial 173;		// com/josh/vku2f/CTAP2.getPuKxRx(Ljavacard/framework/APDU;S)V
					goto L20;
				L15:	aload_0;
					aload_1;
					getfield_a_this 21;		// reference com/josh/vku2f/CTAP2.tempVars
					sconst_3;
					saload;
					invokespecial 174;		// com/josh/vku2f/CTAP2.getCx(Ljavacard/framework/APDU;S)V
					goto L20;
				L16:	aload_0;
					aload_1;
					getfield_a_this 21;		// reference com/josh/vku2f/CTAP2.tempVars
					sconst_3;
					saload;
					invokespecial 175;		// com/josh/vku2f/CTAP2.getPuKxCx(Ljavacard/framework/APDU;S)V
					goto L20;
				L17:	aload_0;
					aload_1;
					invokespecial 176;		// com/josh/vku2f/CTAP2.dumpIDSecret(Ljavacard/framework/APDU;)V
					goto L20;
				L18:	aload_0;
					aload_1;
					invokespecial 177;		// com/josh/vku2f/CTAP2.getCert(Ljavacard/framework/APDU;)V
					goto L20;
				L19:	aload_0;
					aload_1;
					sconst_1;
					invokevirtual 154;		// returnError(Ljavacard/framework/APDU;B)V
				L20:	return;
		}

		.method private personalizationComplete(Ljavacard/framework/APDU;)V {
			.stack 3;
			.locals 0;

			.descriptor	Ljavacard/framework/APDU;	2.10;

				L0:	getfield_a_this 26;		// reference com/josh/vku2f/CTAP2.attestationKeyPair
					invokevirtual 178;		// isCertSet()Z
					ifeq L3;
				L1:	getfield_b_this 28;		// boolean com/josh/vku2f/CTAP2.personalizeComplete
					ifne L3;
				L2:	sconst_1;
					putfield_b_this 28;		// boolean com/josh/vku2f/CTAP2.personalizeComplete
					aload_0;
					aload_1;
					sconst_0;
					invokevirtual 154;		// returnError(Ljavacard/framework/APDU;B)V
					goto L4;
				L3:	aload_0;
					aload_1;
					sconst_1;
					invokevirtual 154;		// returnError(Ljavacard/framework/APDU;B)V
				L4:	return;
		}

		.method private getAttestPublic(Ljavacard/framework/APDU;)V {
			.stack 5;
			.locals 0;

			.descriptor	Ljavacard/framework/APDU;	2.10;

				L0:	getfield_b_this 28;		// boolean com/josh/vku2f/CTAP2.personalizeComplete
					ifeq L2;
				L1:	aload_0;
					aload_1;
					sconst_1;
					invokevirtual 154;		// returnError(Ljavacard/framework/APDU;B)V
					return;
				L2:	getfield_a_this 19;		// reference com/josh/vku2f/CTAP2.dataBuffer
					sconst_0;
					sconst_0;
					bastore;
					getfield_a_this 21;		// reference com/josh/vku2f/CTAP2.tempVars
					sconst_0;
					getfield_a_this 26;		// reference com/josh/vku2f/CTAP2.attestationKeyPair
					getfield_a_this 19;		// reference com/josh/vku2f/CTAP2.dataBuffer
					sconst_1;
					invokevirtual 179;		// getPubkey([BS)S
					sconst_1;
					sadd;
					sastore;
					aload_1;
					invokevirtual 180;		// setOutgoing()S
					pop;
					aload_1;
					getfield_a_this 21;		// reference com/josh/vku2f/CTAP2.tempVars
					sconst_0;
					saload;
					invokevirtual 181;		// setOutgoingLength(S)V
					aload_1;
					getfield_a_this 19;		// reference com/josh/vku2f/CTAP2.dataBuffer
					sconst_0;
					getfield_a_this 21;		// reference com/josh/vku2f/CTAP2.tempVars
					sconst_0;
					saload;
					invokevirtual 182;		// sendBytesLong([BSS)V
					return;
		}

		.method private getCredentialCount(Ljavacard/framework/APDU;)V {
			.stack 3;
			.locals 0;

			.descriptor	Ljavacard/framework/APDU;	2.10;

				L0:	aload_1;
					invokevirtual 143;		// getBuffer()[B
					sconst_0;
					getfield_a_this 24;		// reference com/josh/vku2f/CTAP2.credentialArray
					invokevirtual 183;		// getCount()S
					invokestatic 343;		// javacard/framework/Util.setShort([BSS)S
					pop;
					aload_1;
					sconst_0;
					sconst_2;
					invokevirtual 146;		// setOutgoingAndSend(SS)V
					return;
		}

		.method private getPuKxRx(Ljavacard/framework/APDU;S)V {
			.stack 6;
			.locals 0;

			.descriptor	Ljavacard/framework/APDU;	2.10;

				L0:	getfield_a_this 19;		// reference com/josh/vku2f/CTAP2.dataBuffer
					sconst_1;
					getfield_a_this 20;		// reference com/josh/vku2f/CTAP2.scratch
					sconst_0;
					sload_2;
					sconst_1;
					ssub;
					invokestatic 350;		// javacard/framework/Util.arrayCopy([BS[BSS)S
					pop;
					getfield_a_this 34;		// reference com/josh/vku2f/CTAP2.idSecret
					new 184;		// com/josh/vku2f/DomString
					dup;
					getfield_a_this 20;		// reference com/josh/vku2f/CTAP2.scratch
					sload_2;
					sconst_1;
					ssub;
					invokespecial 185;		// com/josh/vku2f/DomString.<init>([BS)V
					putfield_a 37;		// reference com/josh/vku2f/IDSecret.IDx
					getfield_a_this 23;		// reference com/josh/vku2f/CTAP2.cborEncoder
					getfield_a_this 19;		// reference com/josh/vku2f/CTAP2.dataBuffer
					sconst_0;
					sspush 1200;
					invokevirtual 187;		// init([BSS)V
					getfield_a_this 23;		// reference com/josh/vku2f/CTAP2.cborEncoder
					sconst_2;
					invokevirtual 188;		// startArray(S)S
					pop;
					getfield_a_this 23;		// reference com/josh/vku2f/CTAP2.cborEncoder
					getfield_a_this 34;		// reference com/josh/vku2f/CTAP2.idSecret
					getfield_a 38;		// reference com/josh/vku2f/IDSecret.Rx
					sconst_0;
					invokevirtual 190;		// encodeUInt32([BS)S
					pop;
					getfield_a_this 21;		// reference com/josh/vku2f/CTAP2.tempVars
					sconst_0;
					getfield_a_this 26;		// reference com/josh/vku2f/CTAP2.attestationKeyPair
					getfield_a_this 20;		// reference com/josh/vku2f/CTAP2.scratch
					sconst_0;
					invokevirtual 179;		// getPubkey([BS)S
					sastore;
					getfield_a_this 23;		// reference com/josh/vku2f/CTAP2.cborEncoder
					getfield_a_this 20;		// reference com/josh/vku2f/CTAP2.scratch
					sconst_0;
					getfield_a_this 21;		// reference com/josh/vku2f/CTAP2.tempVars
					sconst_0;
					saload;
					invokevirtual 191;		// encodeByteString([BSS)S
					pop;
					aload_1;
					invokevirtual 180;		// setOutgoing()S
					pop;
					aload_1;
					getfield_a_this 23;		// reference com/josh/vku2f/CTAP2.cborEncoder
					invokevirtual 341;		// getCurrentOffset()S
					invokevirtual 181;		// setOutgoingLength(S)V
					aload_1;
					getfield_a_this 19;		// reference com/josh/vku2f/CTAP2.dataBuffer
					sconst_0;
					getfield_a_this 23;		// reference com/josh/vku2f/CTAP2.cborEncoder
					invokevirtual 341;		// getCurrentOffset()S
					invokevirtual 182;		// sendBytesLong([BSS)V
					return;
		}

		.method private getCx(Ljavacard/framework/APDU;S)V {
			.stack 0;
			.locals 0;

			.descriptor	Ljavacard/framework/APDU;	2.10;

				L0:	return;
		}

		.method private getPuKxCx(Ljavacard/framework/APDU;S)V {
			.stack 6;
			.locals 2;

			.descriptor	Ljavacard/framework/APDU;	2.10;

				L0:	getfield_a_this 22;		// reference com/josh/vku2f/CTAP2.cborDecoder
					getfield_a_this 19;		// reference com/josh/vku2f/CTAP2.dataBuffer
					sconst_1;
					sload_2;
					invokevirtual 193;		// init([BSS)V
				L1:	getfield_a_this 22;		// reference com/josh/vku2f/CTAP2.cborDecoder
					sconst_4;
					invokevirtual 365;		// readMajorType(B)S
					pop;
					getfield_a_this 22;		// reference com/josh/vku2f/CTAP2.cborDecoder
					getfield_a_this 20;		// reference com/josh/vku2f/CTAP2.scratch
					sconst_0;
					invokevirtual 118;		// readTextString([BS)S
					sstore_3;
					getfield_a_this 34;		// reference com/josh/vku2f/CTAP2.idSecret
					new 184;		// com/josh/vku2f/DomString
					dup;
					getfield_a_this 20;		// reference com/josh/vku2f/CTAP2.scratch
					sload_3;
					invokespecial 185;		// com/josh/vku2f/DomString.<init>([BS)V
					putfield_a 37;		// reference com/josh/vku2f/IDSecret.IDx
					getfield_a_this 22;		// reference com/josh/vku2f/CTAP2.cborDecoder
					getfield_a_this 20;		// reference com/josh/vku2f/CTAP2.scratch
					sconst_0;
					invokevirtual 123;		// readByteString([BS)S
					pop;
					getfield_a_this 20;		// reference com/josh/vku2f/CTAP2.scratch
					bspush 8;
					getfield_a_this 34;		// reference com/josh/vku2f/CTAP2.idSecret
					getfield_a 39;		// reference com/josh/vku2f/IDSecret.PuKp
					sconst_1;
					bspush 64;
					invokestatic 350;		// javacard/framework/Util.arrayCopy([BS[BSS)S
					pop;
				L2:	goto L4;
				L3:	astore_3;
					aload_0;
					aload_1;
					aload_3;
					invokevirtual 195;		// getReason()S
					invokevirtual 196;		// returnError(Ljavacard/framework/APDU;S)V
				L4:	sconst_1;
					sconst_0;
					invokestatic 197;		// javacard/security/KeyAgreement.getInstance(BZ)Ljavacard/security/KeyAgreement;
					astore_3;
					aload_3;
					getfield_a_this 26;		// reference com/josh/vku2f/CTAP2.attestationKeyPair
					invokevirtual 198;		// getPrivate()Ljavacard/security/PrivateKey;
					invokevirtual 199;		// init(Ljavacard/security/PrivateKey;)V
					aload_3;
					getfield_a_this 34;		// reference com/josh/vku2f/CTAP2.idSecret
					getfield_a 39;		// reference com/josh/vku2f/IDSecret.PuKp
					sconst_0;
					bspush 65;
					getfield_a_this 34;		// reference com/josh/vku2f/CTAP2.idSecret
					getfield_a 40;		// reference com/josh/vku2f/IDSecret.sharedSecret
					sconst_0;
					invokevirtual 201;		// generateSecret([BSS[BS)S
					pop;
					getfield_a_this 34;		// reference com/josh/vku2f/CTAP2.idSecret
					invokevirtual 202;		// initAesKey()V
					getfield_a_this 34;		// reference com/josh/vku2f/CTAP2.idSecret
					invokevirtual 203;		// encryptCx()V
					getfield_a_this 23;		// reference com/josh/vku2f/CTAP2.cborEncoder
					getfield_a_this 19;		// reference com/josh/vku2f/CTAP2.dataBuffer
					sconst_0;
					sspush 1200;
					invokevirtual 187;		// init([BSS)V
					getfield_a_this 23;		// reference com/josh/vku2f/CTAP2.cborEncoder
					sconst_2;
					invokevirtual 188;		// startArray(S)S
					pop;
					getfield_a_this 26;		// reference com/josh/vku2f/CTAP2.attestationKeyPair
					getfield_a_this 20;		// reference com/josh/vku2f/CTAP2.scratch
					sconst_0;
					invokevirtual 179;		// getPubkey([BS)S
					sstore 4;
					getfield_a_this 23;		// reference com/josh/vku2f/CTAP2.cborEncoder
					getfield_a_this 20;		// reference com/josh/vku2f/CTAP2.scratch
					sconst_0;
					sload 4;
					invokevirtual 191;		// encodeByteString([BSS)S
					pop;
					getfield_a_this 23;		// reference com/josh/vku2f/CTAP2.cborEncoder
					getfield_a_this 34;		// reference com/josh/vku2f/CTAP2.idSecret
					getfield_a 41;		// reference com/josh/vku2f/IDSecret.encryptedCx
					sconst_0;
					getfield_a_this 34;		// reference com/josh/vku2f/CTAP2.idSecret
					getfield_a 41;		// reference com/josh/vku2f/IDSecret.encryptedCx
					arraylength;
					invokevirtual 191;		// encodeByteString([BSS)S
					pop;
					getfield_a_this 34;		// reference com/josh/vku2f/CTAP2.idSecret
					getfield_a_this 20;		// reference com/josh/vku2f/CTAP2.scratch
					sconst_0;
					invokevirtual 205;		// getHMAC([BS)V
					aload_1;
					invokevirtual 180;		// setOutgoing()S
					pop;
					aload_1;
					getfield_a_this 23;		// reference com/josh/vku2f/CTAP2.cborEncoder
					invokevirtual 341;		// getCurrentOffset()S
					invokevirtual 181;		// setOutgoingLength(S)V
					aload_1;
					getfield_a_this 19;		// reference com/josh/vku2f/CTAP2.dataBuffer
					sconst_0;
					getfield_a_this 23;		// reference com/josh/vku2f/CTAP2.cborEncoder
					invokevirtual 341;		// getCurrentOffset()S
					invokevirtual 182;		// sendBytesLong([BSS)V
					return;
			.exceptionTable {
				// start_block end_block handler_block catch_type_index
				L1 L2 L3 192;
			}
		}

		.method private dumpIDSecret(Ljavacard/framework/APDU;)V {
			.stack 5;
			.locals 0;

			.descriptor	Ljavacard/framework/APDU;	2.10;

				L0:	getfield_a_this 21;		// reference com/josh/vku2f/CTAP2.tempVars
					sconst_0;
					getfield_a_this 34;		// reference com/josh/vku2f/CTAP2.idSecret
					getfield_a_this 19;		// reference com/josh/vku2f/CTAP2.dataBuffer
					getfield_a_this 23;		// reference com/josh/vku2f/CTAP2.cborEncoder
					invokevirtual 206;		// dump([BLcom/josh/vku2f/CBOREncoder;)S
					sastore;
					aload_1;
					invokevirtual 180;		// setOutgoing()S
					pop;
					aload_1;
					getfield_a_this 21;		// reference com/josh/vku2f/CTAP2.tempVars
					sconst_0;
					saload;
					invokevirtual 181;		// setOutgoingLength(S)V
					aload_1;
					getfield_a_this 19;		// reference com/josh/vku2f/CTAP2.dataBuffer
					sconst_0;
					getfield_a_this 21;		// reference com/josh/vku2f/CTAP2.tempVars
					sconst_0;
					saload;
					invokevirtual 182;		// sendBytesLong([BSS)V
					return;
		}

		.method public attestSignRaw(Ljavacard/framework/APDU;S)V 8 {
			.stack 8;
			.locals 0;

			.descriptor	Ljavacard/framework/APDU;	2.10;

				L0:	getfield_b_this 28;		// boolean com/josh/vku2f/CTAP2.personalizeComplete
					ifeq L2;
				L1:	aload_0;
					aload_1;
					sconst_1;
					invokevirtual 154;		// returnError(Ljavacard/framework/APDU;B)V
					return;
				L2:	getfield_a_this 19;		// reference com/josh/vku2f/CTAP2.dataBuffer
					sconst_1;
					getfield_a_this 20;		// reference com/josh/vku2f/CTAP2.scratch
					sconst_0;
					sload_2;
					sconst_1;
					ssub;
					invokestatic 350;		// javacard/framework/Util.arrayCopy([BS[BSS)S
					pop;
					getfield_a_this 19;		// reference com/josh/vku2f/CTAP2.dataBuffer
					sconst_0;
					sconst_0;
					bastore;
					getfield_a_this 21;		// reference com/josh/vku2f/CTAP2.tempVars
					sconst_2;
					getfield_a_this 26;		// reference com/josh/vku2f/CTAP2.attestationKeyPair
					getfield_a_this 20;		// reference com/josh/vku2f/CTAP2.scratch
					sconst_0;
					getfield_a_this 21;		// reference com/josh/vku2f/CTAP2.tempVars
					sconst_1;
					saload;
					getfield_a_this 19;		// reference com/josh/vku2f/CTAP2.dataBuffer
					sconst_1;
					invokevirtual 207;		// sign([BSS[BS)S
					sastore;
					aload_1;
					invokevirtual 180;		// setOutgoing()S
					pop;
					aload_1;
					getfield_a_this 21;		// reference com/josh/vku2f/CTAP2.tempVars
					sconst_2;
					saload;
					sconst_1;
					sadd;
					invokevirtual 181;		// setOutgoingLength(S)V
					aload_1;
					getfield_a_this 19;		// reference com/josh/vku2f/CTAP2.dataBuffer
					sconst_0;
					getfield_a_this 21;		// reference com/josh/vku2f/CTAP2.tempVars
					sconst_2;
					saload;
					sconst_1;
					sadd;
					invokevirtual 182;		// sendBytesLong([BSS)V
					return;
		}

		.method public attestSetCert(Ljavacard/framework/APDU;S)V 9 {
			.stack 6;
			.locals 2;

			.descriptor	Ljavacard/framework/APDU;	2.10;

				L0:	getfield_b_this 28;		// boolean com/josh/vku2f/CTAP2.personalizeComplete
					ifeq L2;
				L1:	aload_0;
					aload_1;
					sconst_1;
					invokevirtual 154;		// returnError(Ljavacard/framework/APDU;B)V
					return;
				L2:	getfield_a_this 26;		// reference com/josh/vku2f/CTAP2.attestationKeyPair
					getfield_a_this 19;		// reference com/josh/vku2f/CTAP2.dataBuffer
					sconst_1;
					sload_2;
					sconst_1;
					ssub;
					invokevirtual 208;		// setCert([BSS)V
					sconst_4;
					sconst_0;
					invokestatic 119;		// javacard/security/MessageDigest.getInstance(BZ)Ljavacard/security/MessageDigest;
					astore_3;
					aload_3;
					getfield_a_this 26;		// reference com/josh/vku2f/CTAP2.attestationKeyPair
					getfield_a 2;		// reference com/josh/vku2f/AttestationKeyPair.x509cert
					sconst_0;
					getfield_a_this 26;		// reference com/josh/vku2f/CTAP2.attestationKeyPair
					getfield_s 3;		// short com/josh/vku2f/AttestationKeyPair.x509len
					getfield_a_this 19;		// reference com/josh/vku2f/CTAP2.dataBuffer
					sconst_3;
					invokevirtual 209;		// doFinal([BSS[BS)S
					sconst_3;
					sadd;
					sstore 4;
					getfield_a_this 19;		// reference com/josh/vku2f/CTAP2.dataBuffer
					sconst_0;
					sconst_0;
					bastore;
					getfield_a_this 19;		// reference com/josh/vku2f/CTAP2.dataBuffer
					sconst_1;
					getfield_a_this 26;		// reference com/josh/vku2f/CTAP2.attestationKeyPair
					getfield_s 3;		// short com/josh/vku2f/AttestationKeyPair.x509len
					invokestatic 343;		// javacard/framework/Util.setShort([BSS)S
					pop;
					aload_1;
					invokevirtual 180;		// setOutgoing()S
					pop;
					aload_1;
					sload 4;
					invokevirtual 181;		// setOutgoingLength(S)V
					aload_1;
					getfield_a_this 19;		// reference com/josh/vku2f/CTAP2.dataBuffer
					sconst_0;
					sload 4;
					invokevirtual 182;		// sendBytesLong([BSS)V
					return;
		}

		.method public authMakeCredential(Ljavacard/framework/APDU;S)V 10 {
			.stack 10;
			.locals 1;

			.descriptor	Ljavacard/framework/APDU;	2.10;

				L0:	getfield_a_this 22;		// reference com/josh/vku2f/CTAP2.cborDecoder
					getfield_a_this 19;		// reference com/josh/vku2f/CTAP2.dataBuffer
					sconst_1;
					sload_2;
					invokevirtual 193;		// init([BSS)V
				L1:	aload_0;
					new 210;		// com/josh/vku2f/AuthenticatorMakeCredential
					dup;
					getfield_a_this 22;		// reference com/josh/vku2f/CTAP2.cborDecoder
					invokespecial 211;		// com/josh/vku2f/AuthenticatorMakeCredential.<init>(Lcom/josh/vku2f/CBORDecoder;)V
					putfield_a 36;		// reference com/josh/vku2f/CTAP2.authenticatorMakeCredential
				L2:	goto L4;
				L3:	astore_3;
					aload_0;
					aload_1;
					aload_3;
					invokevirtual 195;		// getReason()S
					invokevirtual 196;		// returnError(Ljavacard/framework/APDU;S)V
					return;
				L4:	getfield_a_this 36;		// reference com/josh/vku2f/CTAP2.authenticatorMakeCredential
					invokevirtual 212;		// getAlgorithm()B
					slookupswitch L8 3 33 L5 40 L6 44 L7;
				L5:	aload_0;
					new 213;		// com/josh/vku2f/StoredES256Credential
					dup;
					getfield_a_this 36;		// reference com/josh/vku2f/CTAP2.authenticatorMakeCredential
					invokespecial 214;		// com/josh/vku2f/StoredES256Credential.<init>(Lcom/josh/vku2f/AuthenticatorMakeCredential;)V
					putfield_a 35;		// reference com/josh/vku2f/CTAP2.tempCredential
					goto L9;
				L6:	aload_0;
					new 215;		// com/josh/vku2f/StoredRS256Credential
					dup;
					getfield_a_this 36;		// reference com/josh/vku2f/CTAP2.authenticatorMakeCredential
					invokespecial 216;		// com/josh/vku2f/StoredRS256Credential.<init>(Lcom/josh/vku2f/AuthenticatorMakeCredential;)V
					putfield_a 35;		// reference com/josh/vku2f/CTAP2.tempCredential
					goto L9;
				L7:	aload_0;
					new 217;		// com/josh/vku2f/StoredPS256Credential
					dup;
					getfield_a_this 36;		// reference com/josh/vku2f/CTAP2.authenticatorMakeCredential
					invokespecial 218;		// com/josh/vku2f/StoredPS256Credential.<init>(Lcom/josh/vku2f/AuthenticatorMakeCredential;)V
					putfield_a 35;		// reference com/josh/vku2f/CTAP2.tempCredential
					goto L9;
				L8:	aload_0;
					aload_1;
					bspush 38;
					invokevirtual 154;		// returnError(Ljavacard/framework/APDU;B)V
					return;
				L9:	getfield_a_this 36;		// reference com/josh/vku2f/CTAP2.authenticatorMakeCredential
					invokevirtual 219;		// isResident()Z
					ifeq_w L14;
				L10:	getfield_a_this 36;		// reference com/josh/vku2f/CTAP2.authenticatorMakeCredential
					invokevirtual 220;		// isExclude()Z
					ifeq L13;
				L11:	aload_0;
					getfield_a_this 36;		// reference com/josh/vku2f/CTAP2.authenticatorMakeCredential
					getfield_a 13;		// reference com/josh/vku2f/AuthenticatorMakeCredential.exclude
					invokespecial 221;		// com/josh/vku2f/CTAP2.isPresent([Lcom/josh/vku2f/PublicKeyCredentialDescriptor;)Z
					ifeq L13;
				L12:	aload_0;
					aload_1;
					bspush 25;
					invokevirtual 154;		// returnError(Ljavacard/framework/APDU;B)V
					return;
				L13:	aload_0;
					aload_1;
					getfield_a_this 35;		// reference com/josh/vku2f/CTAP2.tempCredential
					invokespecial 222;		// com/josh/vku2f/CTAP2.addResident(Ljavacard/framework/APDU;Lcom/josh/vku2f/StoredCredential;)V
					getfield_a_this 19;		// reference com/josh/vku2f/CTAP2.dataBuffer
					sconst_0;
					sconst_0;
					bastore;
					getfield_a_this 23;		// reference com/josh/vku2f/CTAP2.cborEncoder
					getfield_a_this 19;		// reference com/josh/vku2f/CTAP2.dataBuffer
					sconst_1;
					sspush 1199;
					invokevirtual 187;		// init([BSS)V
					getfield_a_this 21;		// reference com/josh/vku2f/CTAP2.tempVars
					sconst_0;
					getfield_a_this 23;		// reference com/josh/vku2f/CTAP2.cborEncoder
					sconst_3;
					invokevirtual 223;		// startMap(S)S
					sastore;
					getfield_a_this 23;		// reference com/josh/vku2f/CTAP2.cborEncoder
					sconst_1;
					invokevirtual 336;		// writeRawByte(B)S
					pop;
					getfield_a_this 23;		// reference com/josh/vku2f/CTAP2.cborEncoder
					getstatic_a 224;		// reference com/josh/vku2f/Utf8Strings.UTF8_PACKED
					sconst_0;
					bspush 6;
					invokevirtual 225;		// encodeTextString([BSS)S
					pop;
					getfield_a_this 23;		// reference com/josh/vku2f/CTAP2.cborEncoder
					sconst_2;
					invokevirtual 336;		// writeRawByte(B)S
					pop;
					getfield_a_this 21;		// reference com/josh/vku2f/CTAP2.tempVars
					sconst_0;
					getfield_a_this 23;		// reference com/josh/vku2f/CTAP2.cborEncoder
					bspush 37;
					getfield_a_this 35;		// reference com/josh/vku2f/CTAP2.tempCredential
					invokevirtual 226;		// getAttestedLen()S
					sadd;
					invokevirtual 227;		// startByteString(S)S
					sastore;
					getfield_a_this 21;		// reference com/josh/vku2f/CTAP2.tempVars
					bspush 7;
					getfield_a_this 21;		// reference com/josh/vku2f/CTAP2.tempVars
					sconst_0;
					saload;
					sastore;
					getfield_a_this 35;		// reference com/josh/vku2f/CTAP2.tempCredential
					getfield_a 42;		// reference com/josh/vku2f/StoredCredential.rpEntity
					getfield_a_this 20;		// reference com/josh/vku2f/CTAP2.scratch
					sconst_0;
					invokevirtual 229;		// getRp([BS)V
					getfield_a_this 21;		// reference com/josh/vku2f/CTAP2.tempVars
					sconst_0;
					dup2;
					saload;
					getfield_a_this 25;		// reference com/josh/vku2f/CTAP2.sha256MessageDigest
					getfield_a_this 20;		// reference com/josh/vku2f/CTAP2.scratch
					sconst_0;
					getfield_a_this 35;		// reference com/josh/vku2f/CTAP2.tempCredential
					getfield_a 42;		// reference com/josh/vku2f/StoredCredential.rpEntity
					invokevirtual 230;		// getRpLen()S
					getfield_a_this 19;		// reference com/josh/vku2f/CTAP2.dataBuffer
					getfield_a_this 21;		// reference com/josh/vku2f/CTAP2.tempVars
					sconst_0;
					saload;
					invokevirtual 209;		// doFinal([BSS[BS)S
					sadd;
					sastore;
					getfield_a_this 19;		// reference com/josh/vku2f/CTAP2.dataBuffer
					getfield_a_this 21;		// reference com/josh/vku2f/CTAP2.tempVars
					sconst_0;
					dup2;
					saload;
					dup_x 19;
					sconst_1;
					sadd;
					sastore;
					bspush 69;
					bastore;
					getfield_a_this 21;		// reference com/josh/vku2f/CTAP2.tempVars
					sconst_0;
					dup2;
					saload;
					getfield_a_this 35;		// reference com/josh/vku2f/CTAP2.tempCredential
					getfield_a_this 19;		// reference com/josh/vku2f/CTAP2.dataBuffer
					getfield_a_this 21;		// reference com/josh/vku2f/CTAP2.tempVars
					sconst_0;
					saload;
					invokevirtual 231;		// readCounter([BS)S
					sadd;
					sastore;
					getfield_a_this 21;		// reference com/josh/vku2f/CTAP2.tempVars
					sconst_0;
					dup2;
					saload;
					getfield_a_this 35;		// reference com/josh/vku2f/CTAP2.tempCredential
					getfield_a_this 19;		// reference com/josh/vku2f/CTAP2.dataBuffer
					getfield_a_this 21;		// reference com/josh/vku2f/CTAP2.tempVars
					sconst_0;
					saload;
					invokevirtual 232;		// getAttestedData([BS)S
					sadd;
					sastore;
					getfield_a_this 23;		// reference com/josh/vku2f/CTAP2.cborEncoder
					sconst_3;
					invokevirtual 336;		// writeRawByte(B)S
					pop;
					getfield_a_this 23;		// reference com/josh/vku2f/CTAP2.cborEncoder
					sconst_0;
					invokevirtual 223;		// startMap(S)S
					pop;
					aload_0;
					aload_1;
					getfield_a_this 23;		// reference com/josh/vku2f/CTAP2.cborEncoder
					invokevirtual 341;		// getCurrentOffset()S
					invokevirtual 233;		// sendLongChaining(Ljavacard/framework/APDU;S)V
					goto L15;
				L14:	aload_0;
					aload_1;
					bspush 43;
					invokevirtual 154;		// returnError(Ljavacard/framework/APDU;B)V
				L15:	return;
			.exceptionTable {
				// start_block end_block handler_block catch_type_index
				L1 L2 L3 192;
			}
		}

		.method public authGetAssertion(Ljavacard/framework/APDU;S)V 11 {
			.stack 6;
			.locals 1;

			.descriptor	Ljavacard/framework/APDU;	2.10;

				L0:	getfield_a_this 27;		// reference com/josh/vku2f/CTAP2.nextAssertion
					sconst_0;
					sconst_0;
					sastore;
					getfield_a_this 22;		// reference com/josh/vku2f/CTAP2.cborDecoder
					getfield_a_this 19;		// reference com/josh/vku2f/CTAP2.dataBuffer
					sconst_1;
					sload_2;
					invokevirtual 193;		// init([BSS)V
				L1:	aload_0;
					new 234;		// com/josh/vku2f/AuthenticatorGetAssertion
					dup;
					getfield_a_this 22;		// reference com/josh/vku2f/CTAP2.cborDecoder
					invokespecial 235;		// com/josh/vku2f/AuthenticatorGetAssertion.<init>(Lcom/josh/vku2f/CBORDecoder;)V
					putfield_a 43;		// reference com/josh/vku2f/CTAP2.authenticatorGetAssertion
				L2:	goto L4;
				L3:	astore_3;
					aload_0;
					aload_1;
					aload_3;
					invokevirtual 195;		// getReason()S
					invokevirtual 196;		// returnError(Ljavacard/framework/APDU;S)V
					return;
				L4:	aload_0;
					aload_0;
					aload_1;
					getfield_a_this 43;		// reference com/josh/vku2f/CTAP2.authenticatorGetAssertion
					invokespecial 237;		// com/josh/vku2f/CTAP2.findCredentials(Ljavacard/framework/APDU;Lcom/josh/vku2f/AuthenticatorGetAssertion;)[Lcom/josh/vku2f/StoredCredential;
					putfield_a 44;		// reference com/josh/vku2f/CTAP2.assertionCredentials
					getfield_a_this 44;		// reference com/josh/vku2f/CTAP2.assertionCredentials
					arraylength;
					ifeq L6;
				L5:	getfield_a_this 44;		// reference com/josh/vku2f/CTAP2.assertionCredentials
					sconst_0;
					aaload;
					ifnonnull L7;
				L6:	aload_0;
					aload_1;
					bspush 46;
					invokevirtual 154;		// returnError(Ljavacard/framework/APDU;B)V
					return;
				L7:	getfield_a_this 25;		// reference com/josh/vku2f/CTAP2.sha256MessageDigest
					getfield_a_this 43;		// reference com/josh/vku2f/CTAP2.authenticatorGetAssertion
					getfield_a 5;		// reference com/josh/vku2f/AuthenticatorGetAssertion.rpId
					sconst_0;
					getfield_a_this 43;		// reference com/josh/vku2f/CTAP2.authenticatorGetAssertion
					getfield_a 5;		// reference com/josh/vku2f/AuthenticatorGetAssertion.rpId
					arraylength;
					getfield_a_this 20;		// reference com/josh/vku2f/CTAP2.scratch
					sconst_0;
					invokevirtual 209;		// doFinal([BSS[BS)S
					pop;
					getfield_a_this 43;		// reference com/josh/vku2f/CTAP2.authenticatorGetAssertion
					getfield_a 4;		// reference com/josh/vku2f/AuthenticatorGetAssertion.options
					sconst_1;
					baload;
					ifeq L9;
				L8:	getfield_a_this 20;		// reference com/josh/vku2f/CTAP2.scratch
					bspush 32;
					sconst_5;
					bastore;
					goto L10;
				L9:	getfield_a_this 20;		// reference com/josh/vku2f/CTAP2.scratch
					bspush 32;
					sconst_1;
					bastore;
				L10:	getfield_a_this 44;		// reference com/josh/vku2f/CTAP2.assertionCredentials
					sconst_0;
					aaload;
					getfield_a_this 20;		// reference com/josh/vku2f/CTAP2.scratch
					bspush 33;
					invokevirtual 231;		// readCounter([BS)S
					pop;
					getfield_a_this 43;		// reference com/josh/vku2f/CTAP2.authenticatorGetAssertion
					getfield_a_this 20;		// reference com/josh/vku2f/CTAP2.scratch
					bspush 37;
					invokevirtual 239;		// getHash([BS)S
					pop;
					getfield_a_this 19;		// reference com/josh/vku2f/CTAP2.dataBuffer
					sconst_0;
					sconst_0;
					bastore;
					getfield_a_this 23;		// reference com/josh/vku2f/CTAP2.cborEncoder
					getfield_a_this 19;		// reference com/josh/vku2f/CTAP2.dataBuffer
					sconst_1;
					sspush 1199;
					invokevirtual 187;		// init([BSS)V
					getfield_a_this 44;		// reference com/josh/vku2f/CTAP2.assertionCredentials
					arraylength;
					sconst_1;
					if_scmple L12;
				L11:	aload_0;
					getfield_a_this 23;		// reference com/josh/vku2f/CTAP2.cborEncoder
					sconst_5;
					invokespecial 240;		// com/josh/vku2f/CTAP2.doAssertionCommon(Lcom/josh/vku2f/CBOREncoder;S)V
					goto L13;
				L12:	aload_0;
					getfield_a_this 23;		// reference com/josh/vku2f/CTAP2.cborEncoder
					sconst_4;
					invokespecial 240;		// com/josh/vku2f/CTAP2.doAssertionCommon(Lcom/josh/vku2f/CBOREncoder;S)V
				L13:	getfield_a_this 27;		// reference com/josh/vku2f/CTAP2.nextAssertion
					sconst_0;
					sconst_1;
					sastore;
					aload_0;
					aload_1;
					getfield_a_this 23;		// reference com/josh/vku2f/CTAP2.cborEncoder
					invokevirtual 341;		// getCurrentOffset()S
					invokevirtual 233;		// sendLongChaining(Ljavacard/framework/APDU;S)V
					return;
			.exceptionTable {
				// start_block end_block handler_block catch_type_index
				L1 L2 L3 192;
			}
		}

		.method private authGetNextAssertion(Ljavacard/framework/APDU;[B)V {
			.stack 6;
			.locals 0;

			.descriptor	Ljavacard/framework/APDU;	2.10;

				L0:	getfield_a_this 27;		// reference com/josh/vku2f/CTAP2.nextAssertion
					sconst_0;
					saload;
					ifeq_w L6;
				L1:	getfield_a_this 27;		// reference com/josh/vku2f/CTAP2.nextAssertion
					sconst_0;
					saload;
					getfield_a_this 44;		// reference com/josh/vku2f/CTAP2.assertionCredentials
					arraylength;
					if_scmpge L6;
				L2:	getfield_a_this 25;		// reference com/josh/vku2f/CTAP2.sha256MessageDigest
					getfield_a_this 43;		// reference com/josh/vku2f/CTAP2.authenticatorGetAssertion
					getfield_a 5;		// reference com/josh/vku2f/AuthenticatorGetAssertion.rpId
					sconst_0;
					getfield_a_this 43;		// reference com/josh/vku2f/CTAP2.authenticatorGetAssertion
					getfield_a 5;		// reference com/josh/vku2f/AuthenticatorGetAssertion.rpId
					arraylength;
					getfield_a_this 20;		// reference com/josh/vku2f/CTAP2.scratch
					sconst_0;
					invokevirtual 209;		// doFinal([BSS[BS)S
					pop;
					getfield_a_this 43;		// reference com/josh/vku2f/CTAP2.authenticatorGetAssertion
					getfield_a 4;		// reference com/josh/vku2f/AuthenticatorGetAssertion.options
					sconst_1;
					baload;
					ifeq L4;
				L3:	getfield_a_this 20;		// reference com/josh/vku2f/CTAP2.scratch
					bspush 32;
					sconst_5;
					bastore;
					goto L5;
				L4:	getfield_a_this 20;		// reference com/josh/vku2f/CTAP2.scratch
					bspush 32;
					sconst_1;
					bastore;
				L5:	getfield_a_this 44;		// reference com/josh/vku2f/CTAP2.assertionCredentials
					getfield_a_this 27;		// reference com/josh/vku2f/CTAP2.nextAssertion
					sconst_0;
					saload;
					aaload;
					getfield_a_this 20;		// reference com/josh/vku2f/CTAP2.scratch
					bspush 33;
					invokevirtual 231;		// readCounter([BS)S
					pop;
					getfield_a_this 43;		// reference com/josh/vku2f/CTAP2.authenticatorGetAssertion
					getfield_a_this 20;		// reference com/josh/vku2f/CTAP2.scratch
					bspush 37;
					invokevirtual 239;		// getHash([BS)S
					pop;
					getfield_a_this 19;		// reference com/josh/vku2f/CTAP2.dataBuffer
					sconst_0;
					sconst_0;
					bastore;
					getfield_a_this 23;		// reference com/josh/vku2f/CTAP2.cborEncoder
					getfield_a_this 19;		// reference com/josh/vku2f/CTAP2.dataBuffer
					sconst_1;
					sspush 1199;
					invokevirtual 187;		// init([BSS)V
					aload_0;
					getfield_a_this 23;		// reference com/josh/vku2f/CTAP2.cborEncoder
					sconst_4;
					invokespecial 240;		// com/josh/vku2f/CTAP2.doAssertionCommon(Lcom/josh/vku2f/CBOREncoder;S)V
					getfield_a_this 27;		// reference com/josh/vku2f/CTAP2.nextAssertion
					sconst_0;
					dup2;
					saload;
					sconst_1;
					sadd;
					sastore;
					aload_0;
					aload_1;
					getfield_a_this 23;		// reference com/josh/vku2f/CTAP2.cborEncoder
					invokevirtual 341;		// getCurrentOffset()S
					invokevirtual 233;		// sendLongChaining(Ljavacard/framework/APDU;S)V
				L6:	return;
		}

		.method public clientPin(Ljavacard/framework/APDU;S)V 12 {
			.stack 4;
			.locals 1;

			.descriptor	Ljavacard/framework/APDU;	2.10;

				L0:	getfield_a_this 22;		// reference com/josh/vku2f/CTAP2.cborDecoder
					getfield_a_this 19;		// reference com/josh/vku2f/CTAP2.dataBuffer
					sconst_1;
					sload_2;
					invokevirtual 193;		// init([BSS)V
					getfield_a_this 33;		// reference com/josh/vku2f/CTAP2.clientPINCommand
					getfield_a_this 22;		// reference com/josh/vku2f/CTAP2.cborDecoder
					invokevirtual 241;		// decodeCommand(Lcom/josh/vku2f/CBORDecoder;)V
					getfield_a_this 33;		// reference com/josh/vku2f/CTAP2.clientPINCommand
					invokevirtual 242;		// getSubCommandCode()B
					stableswitch L8 1 9 L1 L2 L3 L4 L5 L6 L7 L8 L8;
				L1:	getfield_a_this 19;		// reference com/josh/vku2f/CTAP2.dataBuffer
					sconst_0;
					sconst_0;
					bastore;
					getfield_a_this 23;		// reference com/josh/vku2f/CTAP2.cborEncoder
					getfield_a_this 19;		// reference com/josh/vku2f/CTAP2.dataBuffer
					sconst_1;
					sspush 1199;
					invokevirtual 187;		// init([BSS)V
					getfield_a_this 23;		// reference com/josh/vku2f/CTAP2.cborEncoder
					getstatic_b 243;		// byte com/josh/vku2f/ClientPINResponse.PIN_RETRIES
					invokevirtual 223;		// startMap(S)S
					pop;
					getfield_a_this 23;		// reference com/josh/vku2f/CTAP2.cborEncoder
					getfield_b_this 45;		// byte com/josh/vku2f/CTAP2.pinRetries
					invokevirtual 245;		// encodeUInt8(B)S
					pop;
					goto_w L8;
				L2:	getfield_a_this 19;		// reference com/josh/vku2f/CTAP2.dataBuffer
					sconst_0;
					sconst_0;
					bastore;
					getfield_a_this 23;		// reference com/josh/vku2f/CTAP2.cborEncoder
					getfield_a_this 19;		// reference com/josh/vku2f/CTAP2.dataBuffer
					sconst_1;
					sspush 1199;
					invokevirtual 187;		// init([BSS)V
					getfield_a_this 23;		// reference com/josh/vku2f/CTAP2.cborEncoder
					sconst_1;
					invokevirtual 223;		// startMap(S)S
					pop;
					getfield_a_this 23;		// reference com/josh/vku2f/CTAP2.cborEncoder
					sconst_1;
					invokevirtual 245;		// encodeUInt8(B)S
					pop;
					getfield_a_this 23;		// reference com/josh/vku2f/CTAP2.cborEncoder
					sconst_5;
					invokevirtual 223;		// startMap(S)S
					pop;
					getfield_a_this 23;		// reference com/josh/vku2f/CTAP2.cborEncoder
					sconst_1;
					invokevirtual 245;		// encodeUInt8(B)S
					pop;
					getfield_a_this 23;		// reference com/josh/vku2f/CTAP2.cborEncoder
					sconst_2;
					invokevirtual 245;		// encodeUInt8(B)S
					pop;
					getfield_a_this 23;		// reference com/josh/vku2f/CTAP2.cborEncoder
					sconst_3;
					invokevirtual 245;		// encodeUInt8(B)S
					pop;
					getfield_a_this 23;		// reference com/josh/vku2f/CTAP2.cborEncoder
					bspush 6;
					invokevirtual 246;		// encodeNegativeUInt8(B)S
					pop;
					getfield_a_this 23;		// reference com/josh/vku2f/CTAP2.cborEncoder
					sconst_0;
					invokevirtual 246;		// encodeNegativeUInt8(B)S
					pop;
					getfield_a_this 23;		// reference com/josh/vku2f/CTAP2.cborEncoder
					sconst_1;
					invokevirtual 245;		// encodeUInt8(B)S
					pop;
					getfield_a_this 23;		// reference com/josh/vku2f/CTAP2.cborEncoder
					sconst_1;
					invokevirtual 246;		// encodeNegativeUInt8(B)S
					pop;
					getfield_a_this 23;		// reference com/josh/vku2f/CTAP2.cborEncoder
					getfield_a_this 46;		// reference com/josh/vku2f/CTAP2.pinUvAuthProtocolOne
					invokevirtual 248;		// getPublicKey()[B
					sconst_1;
					bspush 32;
					invokevirtual 191;		// encodeByteString([BSS)S
					pop;
					getfield_a_this 23;		// reference com/josh/vku2f/CTAP2.cborEncoder
					sconst_2;
					invokevirtual 246;		// encodeNegativeUInt8(B)S
					pop;
					getfield_a_this 23;		// reference com/josh/vku2f/CTAP2.cborEncoder
					getfield_a_this 46;		// reference com/josh/vku2f/CTAP2.pinUvAuthProtocolOne
					invokevirtual 248;		// getPublicKey()[B
					bspush 33;
					bspush 32;
					invokevirtual 191;		// encodeByteString([BSS)S
					pop;
					goto L8;
				L3:	goto L8;
				L4:	goto L8;
				L5:	goto L8;
				L6:	goto L8;
				L7:	goto L8;
				L8:	aload_0;
					aload_1;
					getfield_a_this 23;		// reference com/josh/vku2f/CTAP2.cborEncoder
					invokevirtual 341;		// getCurrentOffset()S
					invokevirtual 233;		// sendLongChaining(Ljavacard/framework/APDU;S)V
				L9:	goto L11;
				L10:	astore_3;
					aload_0;
					aload_1;
					aload_3;
					invokevirtual 195;		// getReason()S
					invokevirtual 196;		// returnError(Ljavacard/framework/APDU;S)V
				L11:	return;
			.exceptionTable {
				// start_block end_block handler_block catch_type_index
				L0 L9 L10 192;
			}
		}

		.method private addResident(Ljavacard/framework/APDU;Lcom/josh/vku2f/StoredCredential;)V {
			.stack 3;
			.locals 1;

			.descriptor	Ljavacard/framework/APDU;	2.10;

				L0:	getfield_a_this 24;		// reference com/josh/vku2f/CTAP2.credentialArray
					aload_2;
					invokevirtual 249;		// addCredential(Lcom/josh/vku2f/StoredCredential;)V
				L1:	goto L3;
				L2:	astore_3;
					aload_0;
					aload_1;
					aload_3;
					invokevirtual 195;		// getReason()S
					invokevirtual 196;		// returnError(Ljavacard/framework/APDU;S)V
				L3:	return;
			.exceptionTable {
				// start_block end_block handler_block catch_type_index
				L0 L1 L2 192;
			}
		}

		.method private findCredentials(Ljavacard/framework/APDU;Lcom/josh/vku2f/AuthenticatorGetAssertion;)[Lcom/josh/vku2f/StoredCredential; {
			.stack 6;
			.locals 3;

			.descriptor	Ljavacard/framework/APDU;	2.10;

				L0:	aload_2;
					invokevirtual 250;		// hasAllow()Z
					ifeq_w L13;
				L1:	aload_2;
					getfield_a 7;		// reference com/josh/vku2f/AuthenticatorGetAssertion.allow
					arraylength;
					anewarray 251;		// com/josh/vku2f/StoredCredential
					astore_3;
					getfield_a_this 21;		// reference com/josh/vku2f/CTAP2.tempVars
					bspush 6;
					sconst_0;
					sastore;
					getfield_a_this 21;		// reference com/josh/vku2f/CTAP2.tempVars
					bspush 7;
					getfield_a_this 24;		// reference com/josh/vku2f/CTAP2.credentialArray
					invokevirtual 252;		// getLength()S
					sconst_1;
					ssub;
					sastore;
				L2:	getfield_a_this 21;		// reference com/josh/vku2f/CTAP2.tempVars
					bspush 7;
					saload;
					iflt_w L19;
				L3:	getfield_a_this 24;		// reference com/josh/vku2f/CTAP2.credentialArray
					getfield_a_this 21;		// reference com/josh/vku2f/CTAP2.tempVars
					bspush 7;
					saload;
					invokevirtual 253;		// get(S)Lcom/josh/vku2f/StoredCredential;
					astore 4;
					aload 4;
					ifnull L12;
				L4:	aload 4;
					getfield_a 42;		// reference com/josh/vku2f/StoredCredential.rpEntity
					aload_2;
					getfield_a 5;		// reference com/josh/vku2f/AuthenticatorGetAssertion.rpId
					sconst_0;
					aload_2;
					getfield_a 5;		// reference com/josh/vku2f/AuthenticatorGetAssertion.rpId
					arraylength;
					invokevirtual 254;		// checkId([BSS)Z
					ifeq L12;
				L5:	getfield_a_this 21;		// reference com/josh/vku2f/CTAP2.tempVars
					sconst_5;
					sconst_0;
					sastore;
				L6:	getfield_a_this 21;		// reference com/josh/vku2f/CTAP2.tempVars
					sconst_5;
					saload;
					aload_2;
					getfield_a 7;		// reference com/josh/vku2f/AuthenticatorGetAssertion.allow
					arraylength;
					if_scmpge L12;
				L7:	aload_2;
					getfield_a 7;		// reference com/josh/vku2f/AuthenticatorGetAssertion.allow
					getfield_a_this 21;		// reference com/josh/vku2f/CTAP2.tempVars
					sconst_5;
					saload;
					aaload;
					getfield_a 47;		// reference com/josh/vku2f/PublicKeyCredentialDescriptor.id
					arraylength;
					aload 4;
					getfield_a 48;		// reference com/josh/vku2f/StoredCredential.credentialId
					arraylength;
					if_scmpeq L9;
				L8:	goto L11;
				L9:	aload_2;
					getfield_a 7;		// reference com/josh/vku2f/AuthenticatorGetAssertion.allow
					getfield_a_this 21;		// reference com/josh/vku2f/CTAP2.tempVars
					sconst_5;
					saload;
					aaload;
					getfield_a 47;		// reference com/josh/vku2f/PublicKeyCredentialDescriptor.id
					sconst_0;
					aload 4;
					getfield_a 48;		// reference com/josh/vku2f/StoredCredential.credentialId
					sconst_0;
					aload 4;
					getfield_a 48;		// reference com/josh/vku2f/StoredCredential.credentialId
					arraylength;
					invokestatic 130;		// javacard/framework/Util.arrayCompare([BS[BSS)B
					ifne L11;
				L10:	aload_3;
					getfield_a_this 21;		// reference com/josh/vku2f/CTAP2.tempVars
					bspush 6;
					dup2;
					saload;
					dup_x 19;
					sconst_1;
					sadd;
					sastore;
					aload 4;
					aastore;
				L11:	getfield_a_this 21;		// reference com/josh/vku2f/CTAP2.tempVars
					sconst_5;
					dup2;
					saload;
					sconst_1;
					sadd;
					sastore;
					goto L6;
				L12:	getfield_a_this 21;		// reference com/josh/vku2f/CTAP2.tempVars
					bspush 7;
					dup2;
					saload;
					sconst_1;
					ssub;
					sastore;
					goto_w L2;
				L13:	getfield_a_this 24;		// reference com/josh/vku2f/CTAP2.credentialArray
					invokevirtual 252;		// getLength()S
					anewarray 251;		// com/josh/vku2f/StoredCredential
					astore_3;
					getfield_a_this 21;		// reference com/josh/vku2f/CTAP2.tempVars
					bspush 6;
					sconst_0;
					sastore;
					getfield_a_this 21;		// reference com/josh/vku2f/CTAP2.tempVars
					bspush 7;
					getfield_a_this 24;		// reference com/josh/vku2f/CTAP2.credentialArray
					invokevirtual 252;		// getLength()S
					sconst_1;
					ssub;
					sastore;
				L14:	getfield_a_this 21;		// reference com/josh/vku2f/CTAP2.tempVars
					bspush 7;
					saload;
					iflt L19;
				L15:	getfield_a_this 24;		// reference com/josh/vku2f/CTAP2.credentialArray
					getfield_a_this 21;		// reference com/josh/vku2f/CTAP2.tempVars
					bspush 7;
					saload;
					invokevirtual 253;		// get(S)Lcom/josh/vku2f/StoredCredential;
					astore 4;
					aload 4;
					ifnull L18;
				L16:	aload 4;
					getfield_a 42;		// reference com/josh/vku2f/StoredCredential.rpEntity
					aload_2;
					getfield_a 5;		// reference com/josh/vku2f/AuthenticatorGetAssertion.rpId
					sconst_0;
					aload_2;
					getfield_a 5;		// reference com/josh/vku2f/AuthenticatorGetAssertion.rpId
					arraylength;
					invokevirtual 254;		// checkId([BSS)Z
					ifeq L18;
				L17:	aload_3;
					getfield_a_this 21;		// reference com/josh/vku2f/CTAP2.tempVars
					bspush 6;
					dup2;
					saload;
					dup_x 19;
					sconst_1;
					sadd;
					sastore;
					aload 4;
					aastore;
				L18:	getfield_a_this 21;		// reference com/josh/vku2f/CTAP2.tempVars
					bspush 7;
					dup2;
					saload;
					sconst_1;
					ssub;
					sastore;
					goto L14;
				L19:	getfield_a_this 21;		// reference com/josh/vku2f/CTAP2.tempVars
					bspush 6;
					saload;
					anewarray 251;		// com/josh/vku2f/StoredCredential
					astore 5;
					getfield_a_this 21;		// reference com/josh/vku2f/CTAP2.tempVars
					bspush 7;
					sconst_0;
					sastore;
				L20:	getfield_a_this 21;		// reference com/josh/vku2f/CTAP2.tempVars
					bspush 7;
					saload;
					getfield_a_this 21;		// reference com/josh/vku2f/CTAP2.tempVars
					bspush 6;
					saload;
					if_scmpge L22;
				L21:	aload 5;
					getfield_a_this 21;		// reference com/josh/vku2f/CTAP2.tempVars
					bspush 7;
					saload;
					aload_3;
					getfield_a_this 21;		// reference com/josh/vku2f/CTAP2.tempVars
					bspush 7;
					saload;
					aaload;
					aastore;
					getfield_a_this 21;		// reference com/josh/vku2f/CTAP2.tempVars
					bspush 7;
					dup2;
					saload;
					sconst_1;
					sadd;
					sastore;
					goto L20;
				L22:	invokestatic 149;		// javacard/framework/JCSystem.requestObjectDeletion()V
					aload 5;
					areturn;
		}

		.method private isPresent([Lcom/josh/vku2f/PublicKeyCredentialDescriptor;)Z {
			.stack 6;
			.locals 1;

				L0:	getfield_a_this 21;		// reference com/josh/vku2f/CTAP2.tempVars
					bspush 7;
					sconst_0;
					sastore;
				L1:	getfield_a_this 21;		// reference com/josh/vku2f/CTAP2.tempVars
					bspush 7;
					saload;
					getfield_a_this 24;		// reference com/josh/vku2f/CTAP2.credentialArray
					invokevirtual 252;		// getLength()S
					if_scmpge L10;
				L2:	getfield_a_this 24;		// reference com/josh/vku2f/CTAP2.credentialArray
					getfield_a_this 21;		// reference com/josh/vku2f/CTAP2.tempVars
					bspush 7;
					saload;
					invokevirtual 253;		// get(S)Lcom/josh/vku2f/StoredCredential;
					astore_2;
					aload_2;
					ifnonnull L4;
				L3:	goto L9;
				L4:	getfield_a_this 21;		// reference com/josh/vku2f/CTAP2.tempVars
					bspush 6;
					sconst_0;
					sastore;
				L5:	getfield_a_this 21;		// reference com/josh/vku2f/CTAP2.tempVars
					bspush 6;
					saload;
					aload_1;
					arraylength;
					if_scmpge L9;
				L6:	aload_2;
					aload_1;
					getfield_a_this 21;		// reference com/josh/vku2f/CTAP2.tempVars
					bspush 6;
					saload;
					aaload;
					getfield_a 47;		// reference com/josh/vku2f/PublicKeyCredentialDescriptor.id
					sconst_0;
					aload_1;
					getfield_a_this 21;		// reference com/josh/vku2f/CTAP2.tempVars
					bspush 6;
					saload;
					aaload;
					getfield_a 47;		// reference com/josh/vku2f/PublicKeyCredentialDescriptor.id
					arraylength;
					invokevirtual 257;		// checkId([BSS)Z
					ifeq L8;
				L7:	sconst_1;
					sreturn;
				L8:	getfield_a_this 21;		// reference com/josh/vku2f/CTAP2.tempVars
					bspush 6;
					dup2;
					saload;
					sconst_1;
					sadd;
					sastore;
					goto L5;
				L9:	getfield_a_this 21;		// reference com/josh/vku2f/CTAP2.tempVars
					bspush 7;
					dup2;
					saload;
					sconst_1;
					sadd;
					sastore;
					goto L1;
				L10:	sconst_0;
					sreturn;
		}

		.method private doReset(Ljavacard/framework/APDU;)V {
			.stack 4;
			.locals 0;

			.descriptor	Ljavacard/framework/APDU;	2.10;

				L0:	aload_0;
					new 116;		// com/josh/vku2f/CredentialArray
					dup;
					sconst_5;
					invokespecial 117;		// com/josh/vku2f/CredentialArray.<init>(S)V
					putfield_a 24;		// reference com/josh/vku2f/CTAP2.credentialArray
					invokestatic 149;		// javacard/framework/JCSystem.requestObjectDeletion()V
					aload_0;
					aload_1;
					sconst_0;
					invokevirtual 154;		// returnError(Ljavacard/framework/APDU;B)V
					return;
		}

		.method public returnError(Ljavacard/framework/APDU;B)V 13 {
			.stack 3;
			.locals 1;

			.descriptor	Ljavacard/framework/APDU;	2.10;

				L0:	aload_1;
					invokevirtual 143;		// getBuffer()[B
					astore_3;
					aload_3;
					sconst_0;
					sload_2;
					bastore;
					aload_1;
					sconst_0;
					sconst_1;
					invokevirtual 146;		// setOutgoingAndSend(SS)V
					return;
		}

		.method public returnError(Ljavacard/framework/APDU;S)V 14 {
			.stack 3;
			.locals 1;

			.descriptor	Ljavacard/framework/APDU;	2.10;

				L0:	aload_1;
					invokevirtual 143;		// getBuffer()[B
					astore_3;
					aload_3;
					sconst_0;
					sload_2;
					invokestatic 343;		// javacard/framework/Util.setShort([BSS)S
					pop;
					aload_1;
					sconst_1;
					sconst_1;
					invokevirtual 146;		// setOutgoingAndSend(SS)V
					return;
		}

		.method private authGetInfo(Ljavacard/framework/APDU;)V {
			.stack 5;
			.locals 0;

			.descriptor	Ljavacard/framework/APDU;	2.10;

				L0:	getfield_a_this 49;		// reference com/josh/vku2f/CTAP2.fidoInfo
					ifnonnull_w L2;
				L1:	getfield_a_this 19;		// reference com/josh/vku2f/CTAP2.dataBuffer
					sconst_0;
					sconst_0;
					bastore;
					getfield_a_this 23;		// reference com/josh/vku2f/CTAP2.cborEncoder
					getfield_a_this 19;		// reference com/josh/vku2f/CTAP2.dataBuffer
					sconst_1;
					sspush 1199;
					invokevirtual 187;		// init([BSS)V
					getfield_a_this 23;		// reference com/josh/vku2f/CTAP2.cborEncoder
					sconst_4;
					invokevirtual 223;		// startMap(S)S
					pop;
					getfield_a_this 23;		// reference com/josh/vku2f/CTAP2.cborEncoder
					sconst_1;
					invokevirtual 245;		// encodeUInt8(B)S
					pop;
					getfield_a_this 23;		// reference com/josh/vku2f/CTAP2.cborEncoder
					sconst_1;
					invokevirtual 188;		// startArray(S)S
					pop;
					getfield_a_this 23;		// reference com/josh/vku2f/CTAP2.cborEncoder
					getstatic_a 145;		// reference com/josh/vku2f/Utf8Strings.UTF8_FIDO2
					sconst_0;
					bspush 8;
					invokevirtual 225;		// encodeTextString([BSS)S
					pop;
					getfield_a_this 23;		// reference com/josh/vku2f/CTAP2.cborEncoder
					sconst_3;
					invokevirtual 245;		// encodeUInt8(B)S
					pop;
					getfield_a_this 23;		// reference com/josh/vku2f/CTAP2.cborEncoder
					getstatic_a 259;		// reference com/josh/vku2f/CTAP2.aaguid
					sconst_0;
					bspush 16;
					invokevirtual 191;		// encodeByteString([BSS)S
					pop;
					getfield_a_this 23;		// reference com/josh/vku2f/CTAP2.cborEncoder
					sconst_4;
					invokevirtual 245;		// encodeUInt8(B)S
					pop;
					getfield_a_this 23;		// reference com/josh/vku2f/CTAP2.cborEncoder
					sconst_3;
					invokevirtual 223;		// startMap(S)S
					pop;
					getfield_a_this 23;		// reference com/josh/vku2f/CTAP2.cborEncoder
					getstatic_a 286;		// reference com/josh/vku2f/Utf8Strings.UTF8_RK
					sconst_0;
					sconst_2;
					invokevirtual 225;		// encodeTextString([BSS)S
					pop;
					getfield_a_this 23;		// reference com/josh/vku2f/CTAP2.cborEncoder
					sconst_1;
					invokevirtual 260;		// encodeBoolean(Z)S
					pop;
					getfield_a_this 23;		// reference com/josh/vku2f/CTAP2.cborEncoder
					getstatic_a 159;		// reference com/josh/vku2f/Utf8Strings.UTF8_UP
					sconst_0;
					sconst_2;
					invokevirtual 225;		// encodeTextString([BSS)S
					pop;
					getfield_a_this 23;		// reference com/josh/vku2f/CTAP2.cborEncoder
					sconst_1;
					invokevirtual 260;		// encodeBoolean(Z)S
					pop;
					getfield_a_this 23;		// reference com/josh/vku2f/CTAP2.cborEncoder
					getstatic_a 186;		// reference com/josh/vku2f/Utf8Strings.UTF8_UV
					sconst_0;
					sconst_2;
					invokevirtual 225;		// encodeTextString([BSS)S
					pop;
					getfield_a_this 23;		// reference com/josh/vku2f/CTAP2.cborEncoder
					sconst_1;
					invokevirtual 260;		// encodeBoolean(Z)S
					pop;
					getfield_a_this 23;		// reference com/josh/vku2f/CTAP2.cborEncoder
					sconst_5;
					invokevirtual 245;		// encodeUInt8(B)S
					pop;
					getfield_a_this 23;		// reference com/josh/vku2f/CTAP2.cborEncoder
					sspush 1200;
					invokevirtual 261;		// encodeUInt16(S)S
					pop;
					invokestatic 262;		// javacard/framework/JCSystem.beginTransaction()V
					aload_0;
					getfield_a_this 23;		// reference com/josh/vku2f/CTAP2.cborEncoder
					invokevirtual 341;		// getCurrentOffset()S
					newarray 11;
					putfield_a 49;		// reference com/josh/vku2f/CTAP2.fidoInfo
					getfield_a_this 19;		// reference com/josh/vku2f/CTAP2.dataBuffer
					sconst_0;
					getfield_a_this 49;		// reference com/josh/vku2f/CTAP2.fidoInfo
					sconst_0;
					getfield_a_this 23;		// reference com/josh/vku2f/CTAP2.cborEncoder
					invokevirtual 341;		// getCurrentOffset()S
					invokestatic 350;		// javacard/framework/Util.arrayCopy([BS[BSS)S
					pop;
					invokestatic 263;		// javacard/framework/JCSystem.commitTransaction()V
				L2:	getfield_a_this 49;		// reference com/josh/vku2f/CTAP2.fidoInfo
					sconst_0;
					getfield_a_this 19;		// reference com/josh/vku2f/CTAP2.dataBuffer
					sconst_0;
					getfield_a_this 49;		// reference com/josh/vku2f/CTAP2.fidoInfo
					arraylength;
					invokestatic 318;		// javacard/framework/Util.arrayCopyNonAtomic([BS[BSS)S
					pop;
					aload_0;
					aload_1;
					getfield_a_this 49;		// reference com/josh/vku2f/CTAP2.fidoInfo
					arraylength;
					invokevirtual 233;		// sendLongChaining(Ljavacard/framework/APDU;S)V
					return;
		}

		.method private doAssertionCommon(Lcom/josh/vku2f/CBOREncoder;S)V {
			.stack 8;
			.locals 1;

				L0:	sload_2;
					sconst_4;
					if_scmpne L2;
				L1:	aload_1;
					sconst_4;
					invokevirtual 223;		// startMap(S)S
					pop;
					goto L3;
				L2:	aload_1;
					sconst_5;
					invokevirtual 223;		// startMap(S)S
					pop;
				L3:	aload_1;
					sconst_1;
					invokevirtual 245;		// encodeUInt8(B)S
					pop;
					aload_1;
					sconst_2;
					invokevirtual 223;		// startMap(S)S
					pop;
					getfield_a_this 23;		// reference com/josh/vku2f/CTAP2.cborEncoder
					getstatic_a 129;		// reference com/josh/vku2f/Utf8Strings.UTF8_ID
					sconst_0;
					sconst_2;
					invokevirtual 225;		// encodeTextString([BSS)S
					pop;
					getfield_a_this 23;		// reference com/josh/vku2f/CTAP2.cborEncoder
					getfield_a_this 44;		// reference com/josh/vku2f/CTAP2.assertionCredentials
					getfield_a_this 27;		// reference com/josh/vku2f/CTAP2.nextAssertion
					sconst_0;
					saload;
					aaload;
					getfield_a 48;		// reference com/josh/vku2f/StoredCredential.credentialId
					sconst_0;
					getfield_a_this 44;		// reference com/josh/vku2f/CTAP2.assertionCredentials
					getfield_a_this 27;		// reference com/josh/vku2f/CTAP2.nextAssertion
					sconst_0;
					saload;
					aaload;
					getfield_a 48;		// reference com/josh/vku2f/StoredCredential.credentialId
					arraylength;
					invokevirtual 191;		// encodeByteString([BSS)S
					pop;
					getfield_a_this 23;		// reference com/josh/vku2f/CTAP2.cborEncoder
					getstatic_a 138;		// reference com/josh/vku2f/Utf8Strings.UTF8_TYPE
					sconst_0;
					sconst_4;
					invokevirtual 225;		// encodeTextString([BSS)S
					pop;
					getfield_a_this 23;		// reference com/josh/vku2f/CTAP2.cborEncoder
					getstatic_a 284;		// reference com/josh/vku2f/Utf8Strings.UTF8_PUBLIC_KEY
					sconst_0;
					bspush 10;
					invokevirtual 225;		// encodeTextString([BSS)S
					pop;
					getfield_a_this 23;		// reference com/josh/vku2f/CTAP2.cborEncoder
					sconst_2;
					invokevirtual 245;		// encodeUInt8(B)S
					pop;
					getfield_a_this 23;		// reference com/josh/vku2f/CTAP2.cborEncoder
					getfield_a_this 20;		// reference com/josh/vku2f/CTAP2.scratch
					sconst_0;
					bspush 37;
					invokevirtual 191;		// encodeByteString([BSS)S
					pop;
					getfield_a_this 23;		// reference com/josh/vku2f/CTAP2.cborEncoder
					sconst_3;
					invokevirtual 245;		// encodeUInt8(B)S
					pop;
					getfield_a_this 21;		// reference com/josh/vku2f/CTAP2.tempVars
					sconst_3;
					getfield_a_this 44;		// reference com/josh/vku2f/CTAP2.assertionCredentials
					getfield_a_this 27;		// reference com/josh/vku2f/CTAP2.nextAssertion
					sconst_0;
					saload;
					aaload;
					getfield_a_this 20;		// reference com/josh/vku2f/CTAP2.scratch
					sconst_0;
					bspush 69;
					getfield_a_this 20;		// reference com/josh/vku2f/CTAP2.scratch
					bspush 69;
					invokevirtual 264;		// performSignature([BSS[BS)S
					sastore;
					getfield_a_this 23;		// reference com/josh/vku2f/CTAP2.cborEncoder
					getfield_a_this 20;		// reference com/josh/vku2f/CTAP2.scratch
					bspush 69;
					getfield_a_this 21;		// reference com/josh/vku2f/CTAP2.tempVars
					sconst_3;
					saload;
					invokevirtual 191;		// encodeByteString([BSS)S
					pop;
					getfield_a_this 23;		// reference com/josh/vku2f/CTAP2.cborEncoder
					sconst_4;
					invokevirtual 245;		// encodeUInt8(B)S
					pop;
					getfield_a_this 43;		// reference com/josh/vku2f/CTAP2.authenticatorGetAssertion
					getfield_a 4;		// reference com/josh/vku2f/AuthenticatorGetAssertion.options
					sconst_1;
					baload;
					ifeq_w L13;
				L4:	getfield_a_this 23;		// reference com/josh/vku2f/CTAP2.cborEncoder
					getfield_a_this 44;		// reference com/josh/vku2f/CTAP2.assertionCredentials
					getfield_a_this 27;		// reference com/josh/vku2f/CTAP2.nextAssertion
					sconst_0;
					saload;
					aaload;
					getfield_a 50;		// reference com/josh/vku2f/StoredCredential.userEntity
					getfield_b 51;		// byte com/josh/vku2f/PublicKeyCredentialUserEntity.numData
					invokevirtual 223;		// startMap(S)S
					pop;
					getfield_a_this 44;		// reference com/josh/vku2f/CTAP2.assertionCredentials
					getfield_a_this 27;		// reference com/josh/vku2f/CTAP2.nextAssertion
					sconst_0;
					saload;
					aaload;
					invokevirtual 267;		// getPresentUser()[Z
					astore_3;
					aload_3;
					sconst_2;
					baload;
					ifeq L6;
				L5:	getfield_a_this 23;		// reference com/josh/vku2f/CTAP2.cborEncoder
					getstatic_a 268;		// reference com/josh/vku2f/Utf8Strings.UTF8_DISPLAYNAME
					sconst_0;
					bspush 11;
					invokevirtual 225;		// encodeTextString([BSS)S
					pop;
					getfield_a_this 23;		// reference com/josh/vku2f/CTAP2.cborEncoder
					getfield_a_this 44;		// reference com/josh/vku2f/CTAP2.assertionCredentials
					getfield_a_this 27;		// reference com/josh/vku2f/CTAP2.nextAssertion
					sconst_0;
					saload;
					aaload;
					getfield_a 50;		// reference com/josh/vku2f/StoredCredential.userEntity
					getfield_a 52;		// reference com/josh/vku2f/PublicKeyCredentialUserEntity.displayName
					getfield_a 53;		// reference com/josh/vku2f/DomString.str
					sconst_0;
					getfield_a_this 44;		// reference com/josh/vku2f/CTAP2.assertionCredentials
					getfield_a_this 27;		// reference com/josh/vku2f/CTAP2.nextAssertion
					sconst_0;
					saload;
					aaload;
					getfield_a 50;		// reference com/josh/vku2f/StoredCredential.userEntity
					getfield_a 52;		// reference com/josh/vku2f/PublicKeyCredentialUserEntity.displayName
					getfield_s 54;		// short com/josh/vku2f/DomString.len
					invokevirtual 225;		// encodeTextString([BSS)S
					pop;
				L6:	aload_3;
					sconst_1;
					baload;
					ifeq L8;
				L7:	getfield_a_this 23;		// reference com/josh/vku2f/CTAP2.cborEncoder
					getstatic_a 129;		// reference com/josh/vku2f/Utf8Strings.UTF8_ID
					sconst_0;
					sconst_2;
					invokevirtual 225;		// encodeTextString([BSS)S
					pop;
					getfield_a_this 23;		// reference com/josh/vku2f/CTAP2.cborEncoder
					getfield_a_this 44;		// reference com/josh/vku2f/CTAP2.assertionCredentials
					getfield_a_this 27;		// reference com/josh/vku2f/CTAP2.nextAssertion
					sconst_0;
					saload;
					aaload;
					getfield_a 50;		// reference com/josh/vku2f/StoredCredential.userEntity
					getfield_a 55;		// reference com/josh/vku2f/PublicKeyCredentialUserEntity.id
					sconst_0;
					getfield_a_this 44;		// reference com/josh/vku2f/CTAP2.assertionCredentials
					getfield_a_this 27;		// reference com/josh/vku2f/CTAP2.nextAssertion
					sconst_0;
					saload;
					aaload;
					getfield_a 50;		// reference com/josh/vku2f/StoredCredential.userEntity
					getfield_a 55;		// reference com/josh/vku2f/PublicKeyCredentialUserEntity.id
					arraylength;
					invokevirtual 191;		// encodeByteString([BSS)S
					pop;
				L8:	aload_3;
					sconst_0;
					baload;
					ifeq L10;
				L9:	getfield_a_this 23;		// reference com/josh/vku2f/CTAP2.cborEncoder
					getstatic_a 244;		// reference com/josh/vku2f/Utf8Strings.UTF8_NAME
					sconst_0;
					sconst_4;
					invokevirtual 225;		// encodeTextString([BSS)S
					pop;
					getfield_a_this 23;		// reference com/josh/vku2f/CTAP2.cborEncoder
					getfield_a_this 44;		// reference com/josh/vku2f/CTAP2.assertionCredentials
					getfield_a_this 27;		// reference com/josh/vku2f/CTAP2.nextAssertion
					sconst_0;
					saload;
					aaload;
					getfield_a 50;		// reference com/josh/vku2f/StoredCredential.userEntity
					getfield_a 56;		// reference com/josh/vku2f/PublicKeyCredentialEntity.name
					getfield_a 53;		// reference com/josh/vku2f/DomString.str
					sconst_0;
					getfield_a_this 44;		// reference com/josh/vku2f/CTAP2.assertionCredentials
					getfield_a_this 27;		// reference com/josh/vku2f/CTAP2.nextAssertion
					sconst_0;
					saload;
					aaload;
					getfield_a 50;		// reference com/josh/vku2f/StoredCredential.userEntity
					getfield_a 56;		// reference com/josh/vku2f/PublicKeyCredentialEntity.name
					getfield_s 54;		// short com/josh/vku2f/DomString.len
					invokevirtual 225;		// encodeTextString([BSS)S
					pop;
				L10:	aload_3;
					sconst_3;
					baload;
					ifeq L12;
				L11:	getfield_a_this 23;		// reference com/josh/vku2f/CTAP2.cborEncoder
					getstatic_a 270;		// reference com/josh/vku2f/Utf8Strings.UTF8_ICON
					sconst_0;
					sconst_4;
					invokevirtual 225;		// encodeTextString([BSS)S
					pop;
					getfield_a_this 23;		// reference com/josh/vku2f/CTAP2.cborEncoder
					getfield_a_this 44;		// reference com/josh/vku2f/CTAP2.assertionCredentials
					getfield_a_this 27;		// reference com/josh/vku2f/CTAP2.nextAssertion
					sconst_0;
					saload;
					aaload;
					getfield_a 50;		// reference com/josh/vku2f/StoredCredential.userEntity
					getfield_a 57;		// reference com/josh/vku2f/PublicKeyCredentialUserEntity.icon
					sconst_0;
					getfield_a_this 44;		// reference com/josh/vku2f/CTAP2.assertionCredentials
					getfield_a_this 27;		// reference com/josh/vku2f/CTAP2.nextAssertion
					sconst_0;
					saload;
					aaload;
					getfield_a 50;		// reference com/josh/vku2f/StoredCredential.userEntity
					getfield_a 57;		// reference com/josh/vku2f/PublicKeyCredentialUserEntity.icon
					arraylength;
					invokevirtual 225;		// encodeTextString([BSS)S
					pop;
				L12:	goto L14;
				L13:	getfield_a_this 23;		// reference com/josh/vku2f/CTAP2.cborEncoder
					sconst_1;
					invokevirtual 223;		// startMap(S)S
					pop;
					getfield_a_this 23;		// reference com/josh/vku2f/CTAP2.cborEncoder
					getstatic_a 129;		// reference com/josh/vku2f/Utf8Strings.UTF8_ID
					sconst_0;
					sconst_2;
					invokevirtual 225;		// encodeTextString([BSS)S
					pop;
					getfield_a_this 23;		// reference com/josh/vku2f/CTAP2.cborEncoder
					getfield_a_this 44;		// reference com/josh/vku2f/CTAP2.assertionCredentials
					getfield_a_this 27;		// reference com/josh/vku2f/CTAP2.nextAssertion
					sconst_0;
					saload;
					aaload;
					getfield_a 50;		// reference com/josh/vku2f/StoredCredential.userEntity
					getfield_a 55;		// reference com/josh/vku2f/PublicKeyCredentialUserEntity.id
					sconst_0;
					getfield_a_this 44;		// reference com/josh/vku2f/CTAP2.assertionCredentials
					getfield_a_this 27;		// reference com/josh/vku2f/CTAP2.nextAssertion
					sconst_0;
					saload;
					aaload;
					getfield_a 50;		// reference com/josh/vku2f/StoredCredential.userEntity
					getfield_a 55;		// reference com/josh/vku2f/PublicKeyCredentialUserEntity.id
					arraylength;
					invokevirtual 191;		// encodeByteString([BSS)S
					pop;
				L14:	sload_2;
					sconst_5;
					if_scmpne L16;
				L15:	getfield_a_this 23;		// reference com/josh/vku2f/CTAP2.cborEncoder
					sconst_5;
					invokevirtual 245;		// encodeUInt8(B)S
					pop;
					getfield_a_this 23;		// reference com/josh/vku2f/CTAP2.cborEncoder
					getfield_a_this 44;		// reference com/josh/vku2f/CTAP2.assertionCredentials
					arraylength;
					s2b;
					invokevirtual 245;		// encodeUInt8(B)S
					pop;
				L16:	return;
		}

		.method public static isCommandChainingCLA(Ljavacard/framework/APDU;)Z 1 {
			.stack 2;
			.locals 1;

			.descriptor	Ljavacard/framework/APDU;	2.10;

				L0:	aload_0;
					invokevirtual 143;		// getBuffer()[B
					astore_1;
					aload_1;
					sconst_0;
					baload;
					bspush 16;
					sand;
					bspush 16;
					if_scmpne L2;
				L1:	sconst_1;
					goto L3;
				L2:	sconst_0;
				L3:	sreturn;
		}

		.method public getData(Ljavacard/framework/APDU;)V 15 {
			.stack 6;
			.locals 1;

			.descriptor	Ljavacard/framework/APDU;	2.10;

				L0:	getfield_a_this 31;		// reference com/josh/vku2f/CTAP2.outChainRam
					sconst_0;
					saload;
					sspush 256;
					if_scmple L5;
				L1:	getfield_a_this 31;		// reference com/josh/vku2f/CTAP2.outChainRam
					sconst_0;
					dup2;
					saload;
					sspush 256;
					ssub;
					sastore;
					aload_1;
					invokevirtual 143;		// getBuffer()[B
					astore_2;
					getfield_a_this 19;		// reference com/josh/vku2f/CTAP2.dataBuffer
					getfield_a_this 31;		// reference com/josh/vku2f/CTAP2.outChainRam
					sconst_1;
					saload;
					aload_2;
					sconst_0;
					sspush 256;
					invokestatic 318;		// javacard/framework/Util.arrayCopyNonAtomic([BS[BSS)S
					pop;
					aload_1;
					sconst_0;
					sspush 256;
					invokevirtual 146;		// setOutgoingAndSend(SS)V
					getfield_a_this 31;		// reference com/josh/vku2f/CTAP2.outChainRam
					sconst_1;
					dup2;
					saload;
					sspush 256;
					sadd;
					sastore;
					getfield_a_this 31;		// reference com/josh/vku2f/CTAP2.outChainRam
					sconst_0;
					saload;
					sspush 255;
					if_scmple L3;
				L2:	sspush 24832;
					invokestatic 299;		// javacard/framework/ISOException.throwIt(S)V
					goto L4;
				L3:	bspush 97;
					getfield_a_this 31;		// reference com/josh/vku2f/CTAP2.outChainRam
					sconst_0;
					saload;
					s2b;
					invokestatic 283;		// javacard/framework/Util.makeShort(BB)S
					invokestatic 299;		// javacard/framework/ISOException.throwIt(S)V
				L4:	goto L6;
				L5:	aload_1;
					invokevirtual 143;		// getBuffer()[B
					astore_2;
					getfield_a_this 19;		// reference com/josh/vku2f/CTAP2.dataBuffer
					getfield_a_this 31;		// reference com/josh/vku2f/CTAP2.outChainRam
					sconst_1;
					saload;
					aload_2;
					sconst_0;
					getfield_a_this 31;		// reference com/josh/vku2f/CTAP2.outChainRam
					sconst_0;
					saload;
					invokestatic 318;		// javacard/framework/Util.arrayCopyNonAtomic([BS[BSS)S
					pop;
					aload_1;
					sconst_0;
					getfield_a_this 31;		// reference com/josh/vku2f/CTAP2.outChainRam
					sconst_0;
					saload;
					invokevirtual 146;		// setOutgoingAndSend(SS)V
					getfield_a_this 32;		// reference com/josh/vku2f/CTAP2.isOutChaining
					sconst_0;
					sconst_0;
					bastore;
					getfield_a_this 31;		// reference com/josh/vku2f/CTAP2.outChainRam
					sconst_0;
					sconst_0;
					sastore;
					getfield_a_this 31;		// reference com/josh/vku2f/CTAP2.outChainRam
					sconst_1;
					sconst_0;
					sastore;
					sspush -28672;
					invokestatic 299;		// javacard/framework/ISOException.throwIt(S)V
				L6:	return;
		}

		.method public sendLongChaining(Ljavacard/framework/APDU;S)V 16 {
			.stack 5;
			.locals 1;

			.descriptor	Ljavacard/framework/APDU;	2.10;

				L0:	sload_2;
					sspush 256;
					if_scmple L5;
				L1:	getfield_a_this 32;		// reference com/josh/vku2f/CTAP2.isOutChaining
					sconst_0;
					sconst_1;
					bastore;
					getfield_a_this 31;		// reference com/josh/vku2f/CTAP2.outChainRam
					sconst_0;
					sload_2;
					sspush 256;
					ssub;
					sastore;
					aload_1;
					invokevirtual 143;		// getBuffer()[B
					astore_3;
					getfield_a_this 19;		// reference com/josh/vku2f/CTAP2.dataBuffer
					sconst_0;
					aload_3;
					sconst_0;
					sspush 256;
					invokestatic 318;		// javacard/framework/Util.arrayCopyNonAtomic([BS[BSS)S
					pop;
					aload_1;
					sconst_0;
					sspush 256;
					invokevirtual 146;		// setOutgoingAndSend(SS)V
					getfield_a_this 31;		// reference com/josh/vku2f/CTAP2.outChainRam
					sconst_1;
					sspush 256;
					sastore;
					getfield_a_this 31;		// reference com/josh/vku2f/CTAP2.outChainRam
					sconst_0;
					saload;
					sspush 255;
					if_scmple L3;
				L2:	sspush 24832;
					invokestatic 299;		// javacard/framework/ISOException.throwIt(S)V
					goto L4;
				L3:	bspush 97;
					getfield_a_this 31;		// reference com/josh/vku2f/CTAP2.outChainRam
					sconst_0;
					saload;
					s2b;
					invokestatic 283;		// javacard/framework/Util.makeShort(BB)S
					invokestatic 299;		// javacard/framework/ISOException.throwIt(S)V
				L4:	goto L6;
				L5:	getfield_a_this 32;		// reference com/josh/vku2f/CTAP2.isOutChaining
					sconst_0;
					sconst_0;
					bastore;
					aload_1;
					invokevirtual 180;		// setOutgoing()S
					pop;
					aload_1;
					sload_2;
					invokevirtual 181;		// setOutgoingLength(S)V
					aload_1;
					getfield_a_this 19;		// reference com/josh/vku2f/CTAP2.dataBuffer
					sconst_0;
					sload_2;
					invokevirtual 182;		// sendBytesLong([BSS)V
					sspush -28672;
					invokestatic 299;		// javacard/framework/ISOException.throwIt(S)V
				L6:	return;
		}

		.method private getCert(Ljavacard/framework/APDU;)V {
			.stack 5;
			.locals 0;

			.descriptor	Ljavacard/framework/APDU;	2.10;

				L0:	getfield_a_this 19;		// reference com/josh/vku2f/CTAP2.dataBuffer
					sconst_0;
					sconst_0;
					bastore;
					getfield_a_this 21;		// reference com/josh/vku2f/CTAP2.tempVars
					sconst_0;
					getfield_a_this 26;		// reference com/josh/vku2f/CTAP2.attestationKeyPair
					getfield_a_this 19;		// reference com/josh/vku2f/CTAP2.dataBuffer
					sconst_1;
					invokevirtual 274;		// getCert([BS)S
					sconst_1;
					sadd;
					sastore;
					aload_0;
					aload_1;
					getfield_a_this 21;		// reference com/josh/vku2f/CTAP2.tempVars
					sconst_0;
					saload;
					invokevirtual 233;		// sendLongChaining(Ljavacard/framework/APDU;S)V
					return;
		}

	}

	.class public CTAP2ErrorCode 8 extends 0.0 {		// extends java/lang/Object

		.fields {
			public static final byte CTAP1_ERR_SUCCESS = 0;		// B
			public static final byte CTAP1_ERR_INVALID_COMMAND = 1;		// B
			public static final byte CTAP1_ERR_INVALID_PARAMETER = 2;		// B
			public static final byte CTAP1_ERR_INVALID_LENGTH = 3;		// B
			public static final byte CTAP1_ERR_INVALID_SEQ = 4;		// B
			public static final byte CTAP1_ERR_TIMEOUT = 5;		// B
			public static final byte CTAP1_ERR_CHANNEL_BUSY = 6;		// B
			public static final byte CTAP1_ERR_LOCK_REQUIRED = 10;		// B
			public static final byte CTAP1_ERR_INVALID_CHANNEL = 11;		// B
			public static final byte CTAP1_ERR_OTHER = 127;		// B
			public static final byte CTAP2_ERR_CBOR_UNEXPECTED_TYPE = 17;		// B
			public static final byte CTAP2_ERR_INVALID_CBOR = 18;		// B
			public static final byte CTAP2_ERR_MISSING_PARAMETER = 20;		// B
			public static final byte CTAP2_ERR_LIMIT_EXCEEDED = 21;		// B
			public static final byte CTAP2_ERR_UNSUPPORTED_EXTENSION = 22;		// B
			public static final byte CTAP2_ERR_CREDENTIAL_EXCLUDED = 25;		// B
			public static final byte CTAP2_ERR_PROCESSING = 33;		// B
			public static final byte CTAP2_ERR_INVALID_CREDENTIAL = 34;		// B
			public static final byte CTAP2_ERR_USER_ACTION_PENDING = 35;		// B
			public static final byte CTAP2_ERR_OPERATION_PENDING = 36;		// B
			public static final byte CTAP2_ERR_NO_OPERATIONS = 37;		// B
			public static final byte CTAP2_ERR_UNSUPPORTED_ALGORITHM = 38;		// B
			public static final byte CTAP2_ERR_OPERATION_DENIED = 39;		// B
			public static final byte CTAP2_ERR_KEY_STORE_FULL = 40;		// B
			public static final byte CTAP2_ERR_NO_OPERATION_PENDING = 42;		// B
			public static final byte CTAP2_ERR_UNSUPPORTED_OPTION = 43;		// B
			public static final byte CTAP2_ERR_INVALID_OPTION = 44;		// B
			public static final byte CTAP2_ERR_KEEPALIVE_CANCEL = 45;		// B
			public static final byte CTAP2_ERR_NO_CREDENTIALS = 46;		// B
			public static final byte CTAP2_ERR_USER_ACTION_TIMEOUT = 47;		// B
			public static final byte CTAP2_ERR_NOT_ALLOWED = 48;		// B
			public static final byte CTAP2_ERR_PIN_INVALID = 49;		// B
			public static final byte CTAP2_ERR_PIN_BLOCKED = 50;		// B
			public static final byte CTAP2_ERR_PIN_AUTH_INVALID = 51;		// B
			public static final byte CTAP2_ERR_PIN_AUTH_BLOCKED = 52;		// B
			public static final byte CTAP2_ERR_PIN_NOT_SET = 53;		// B
			public static final byte CTAP2_ERR_PIN_REQUIRED = 54;		// B
			public static final byte CTAP2_ERR_PIN_POLICY_VIOLATION = 55;		// B
			public static final byte CTAP2_ERR_PIN_TOKEN_EXPIRED = 56;		// B
			public static final byte CTAP2_ERR_REQUEST_TOO_LARGE = 57;		// B
			public static final byte CTAP2_ERR_ACTION_TIMEOUT = 58;		// B
			public static final byte CTAP2_ERR_UP_REQUIRED = 59;		// B
		}

		.publicMethodTable 1 {
			equals(Ljava/lang/Object;)Z;
		}

		.packageMethodTable 0 {
		}

		.method public <init>()V 0 {
			.stack 1;
			.locals 0;

				L0:	aload_0;
					invokespecial 289;		// java/lang/Object.<init>()V
					return;
		}

	}

	.class public CTAP2Exception 9 extends 2.4 {		// extends javacard/framework/CardException

		.fields {
			private static CTAP2Exception systemInstance;		// Lcom/josh/vku2f/CTAP2Exception;
		}

		.publicMethodTable 3 {
			equals(Ljava/lang/Object;)Z;
			getReason()S;
			setReason(S)V;
		}

		.packageMethodTable 0 {
		}

		.method public <init>(S)V 0 {
			.stack 2;
			.locals 0;

				L0:	aload_0;
					sload_1;
					invokespecial 275;		// javacard/framework/CardException.<init>(S)V
					getstatic_a 276;		// reference com/josh/vku2f/CTAP2Exception.systemInstance
					ifnonnull L2;
				L1:	aload_0;
					putstatic_a 276;		// reference com/josh/vku2f/CTAP2Exception.systemInstance
				L2:	return;
		}

		.method public static throwIt(S)V 1 {
			.stack 2;
			.locals 0;

				L0:	getstatic_a 276;		// reference com/josh/vku2f/CTAP2Exception.systemInstance
					sload_0;
					invokevirtual 277;		// setReason(S)V
					getstatic_a 276;		// reference com/josh/vku2f/CTAP2Exception.systemInstance
					athrow;
		}

		.method public static throwIt(B)V 2 {
			.stack 2;
			.locals 0;

				L0:	getstatic_a 276;		// reference com/josh/vku2f/CTAP2Exception.systemInstance
					sload_0;
					invokevirtual 277;		// setReason(S)V
					getstatic_a 276;		// reference com/josh/vku2f/CTAP2Exception.systemInstance
					athrow;
		}

	}

	.class public ClientPIN 10 extends 0.0 {		// extends java/lang/Object

		.fields {
			private byte[] PIN 0;		// [B
			private boolean[] checked 1;		// [Z
			private short i 2;		// S
		}

		.publicMethodTable 1 {
			equals(Ljava/lang/Object;)Z;
			checkPIN([B)Z;
			setPIN()V;
		}

		.packageMethodTable 0 {
		}

		.method  <init>()V {
			.stack 3;
			.locals 0;

				L0:	aload_0;
					invokespecial 289;		// java/lang/Object.<init>()V
					aload_0;
					sconst_1;
					sconst_2;
					invokestatic 126;		// javacard/framework/JCSystem.makeTransientBooleanArray(SB)[Z
					putfield_a 58;		// reference com/josh/vku2f/ClientPIN.checked
					return;
		}

		.method public checkPIN([B)Z 1 {
			.stack 3;
			.locals 0;

				L0:	getfield_a_this 59;		// reference com/josh/vku2f/ClientPIN.PIN
					arraylength;
					aload_1;
					arraylength;
					if_scmpeq L2;
				L1:	sconst_0;
					sreturn;
				L2:	sconst_0;
					putfield_s_this 60;		// short com/josh/vku2f/ClientPIN.i
				L3:	getfield_s_this 60;		// short com/josh/vku2f/ClientPIN.i
					getfield_a_this 59;		// reference com/josh/vku2f/ClientPIN.PIN
					arraylength;
					if_scmpge L7;
				L4:	getfield_a_this 59;		// reference com/josh/vku2f/ClientPIN.PIN
					getfield_s_this 60;		// short com/josh/vku2f/ClientPIN.i
					baload;
					aload_1;
					getfield_s_this 60;		// short com/josh/vku2f/ClientPIN.i
					baload;
					if_scmpeq L6;
				L5:	sconst_0;
					sreturn;
				L6:	aload_0;
					dup;
					getfield_s 60;		// short com/josh/vku2f/ClientPIN.i
					sconst_1;
					sadd;
					putfield_s 60;		// short com/josh/vku2f/ClientPIN.i
					goto L3;
				L7:	getfield_a_this 58;		// reference com/josh/vku2f/ClientPIN.checked
					sconst_0;
					sconst_1;
					bastore;
					sconst_1;
					sreturn;
		}

		.method public setPIN()V 2 {
			.stack 0;
			.locals 0;

				L0:	return;
		}

	}

	.class public ClientPINCommand 11 extends 0.0 {		// extends java/lang/Object

		.fields {
			private byte[] keyAgreement 0;		// [B
			private byte[] pinUvAuthParam 1;		// [B
			private byte[] newPinEnc 2;		// [B
			private byte[] pinHashEnc 3;		// [B
			private byte[] rpId 4;		// [B
			private byte protocol 5;		// B
			private byte subCommandCode 6;		// B
			private byte permissions 7;		// B
			public static final byte PARAMETER_PROTOCOL = 1;		// B
			public static final byte PARAMETER_SUBCOMMAND = 2;		// B
			public static final byte PARAMETER_KEY_AGREEMENT = 3;		// B
			public static final byte PARAMETER_PIN_UV_AUTH_PARAM = 4;		// B
			public static final byte PARAMETER_NEW_PIN_ENC = 5;		// B
			public static final byte PARAMETER_PIN_HASH_ENC = 6;		// B
			public static final byte PARAMETER_PERMISSIONS = 9;		// B
			public static final byte PARAMETER_RP_ID = 10;		// B
		}

		.publicMethodTable 1 {
			equals(Ljava/lang/Object;)Z;
			decodeCommand(Lcom/josh/vku2f/CBORDecoder;)V;
			getProtocol()B;
			getSubCommandCode()B;
			getKeyAgreement()[B;
			getPinUvAuthParam()[B;
			getNewPinEnc()[B;
			getPinHashEnc()[B;
			getPermissions()B;
			getRpId()[B;
		}

		.packageMethodTable 0 {
		}

		.method public <init>()V 0 {
			.stack 1;
			.locals 0;

				L0:	aload_0;
					invokespecial 289;		// java/lang/Object.<init>()V
					return;
		}

		.method public decodeCommand(Lcom/josh/vku2f/CBORDecoder;)V 1 {
			.stack 4;
			.locals 3;

				L0:	aload_1;
					sconst_5;
					invokevirtual 365;		// readMajorType(B)S
					sstore_2;
				L1:	aload_1;
					invokevirtual 115;		// readInt8()B
					sstore_3;
					sload_3;
					stableswitch L10 1 10 L2 L3 L4 L5 L6 L7 L10 L10 L8 L9;
				L2:	aload_0;
					aload_1;
					invokevirtual 115;		// readInt8()B
					putfield_b 61;		// byte com/josh/vku2f/ClientPINCommand.protocol
					goto_w L10;
				L3:	aload_0;
					aload_1;
					invokevirtual 115;		// readInt8()B
					putfield_b 62;		// byte com/josh/vku2f/ClientPINCommand.subCommandCode
					goto_w L10;
				L4:	aload_1;
					invokevirtual 305;		// readLength()S
					sstore 4;
					aload_0;
					sload 4;
					newarray 11;
					putfield_a 63;		// reference com/josh/vku2f/ClientPINCommand.keyAgreement
					aload_1;
					getfield_a_this 63;		// reference com/josh/vku2f/ClientPINCommand.keyAgreement
					sconst_0;
					sload 4;
					invokevirtual 332;		// readRawByteArray([BSS)S
					pop;
					goto L10;
				L5:	aload_1;
					invokevirtual 305;		// readLength()S
					sstore 4;
					aload_0;
					sload 4;
					newarray 11;
					putfield_a 64;		// reference com/josh/vku2f/ClientPINCommand.pinUvAuthParam
					aload_1;
					getfield_a_this 64;		// reference com/josh/vku2f/ClientPINCommand.pinUvAuthParam
					sconst_0;
					sload 4;
					invokevirtual 332;		// readRawByteArray([BSS)S
					pop;
					goto L10;
				L6:	aload_1;
					invokevirtual 305;		// readLength()S
					sstore 4;
					aload_0;
					sload 4;
					newarray 11;
					putfield_a 65;		// reference com/josh/vku2f/ClientPINCommand.newPinEnc
					aload_1;
					getfield_a_this 65;		// reference com/josh/vku2f/ClientPINCommand.newPinEnc
					sconst_0;
					sload 4;
					invokevirtual 332;		// readRawByteArray([BSS)S
					pop;
					goto L10;
				L7:	aload_1;
					invokevirtual 305;		// readLength()S
					sstore 4;
					aload_0;
					sload 4;
					newarray 11;
					putfield_a 66;		// reference com/josh/vku2f/ClientPINCommand.pinHashEnc
					aload_1;
					getfield_a_this 66;		// reference com/josh/vku2f/ClientPINCommand.pinHashEnc
					sconst_0;
					sload 4;
					invokevirtual 332;		// readRawByteArray([BSS)S
					pop;
					goto L10;
				L8:	aload_0;
					aload_1;
					invokevirtual 115;		// readInt8()B
					putfield_b 67;		// byte com/josh/vku2f/ClientPINCommand.permissions
					goto L10;
				L9:	aload_1;
					invokevirtual 305;		// readLength()S
					sstore 4;
					aload_0;
					sload 4;
					newarray 11;
					putfield_a 68;		// reference com/josh/vku2f/ClientPINCommand.rpId
					aload_1;
					getfield_a_this 68;		// reference com/josh/vku2f/ClientPINCommand.rpId
					sconst_0;
					sload 4;
					invokevirtual 332;		// readRawByteArray([BSS)S
					pop;
				L10:	sinc 2 -1;
					sload_2;
					sconst_1;
					if_scmpge_w L1;
				L11:	return;
		}

		.method public getProtocol()B 2 {
			.stack 1;
			.locals 0;

				L0:	getfield_b_this 61;		// byte com/josh/vku2f/ClientPINCommand.protocol
					sreturn;
		}

		.method public getSubCommandCode()B 3 {
			.stack 1;
			.locals 0;

				L0:	getfield_b_this 62;		// byte com/josh/vku2f/ClientPINCommand.subCommandCode
					sreturn;
		}

		.method public getKeyAgreement()[B 4 {
			.stack 1;
			.locals 0;

				L0:	getfield_a_this 63;		// reference com/josh/vku2f/ClientPINCommand.keyAgreement
					areturn;
		}

		.method public getPinUvAuthParam()[B 5 {
			.stack 1;
			.locals 0;

				L0:	getfield_a_this 64;		// reference com/josh/vku2f/ClientPINCommand.pinUvAuthParam
					areturn;
		}

		.method public getNewPinEnc()[B 6 {
			.stack 1;
			.locals 0;

				L0:	getfield_a_this 65;		// reference com/josh/vku2f/ClientPINCommand.newPinEnc
					areturn;
		}

		.method public getPinHashEnc()[B 7 {
			.stack 1;
			.locals 0;

				L0:	getfield_a_this 66;		// reference com/josh/vku2f/ClientPINCommand.pinHashEnc
					areturn;
		}

		.method public getPermissions()B 8 {
			.stack 1;
			.locals 0;

				L0:	getfield_b_this 67;		// byte com/josh/vku2f/ClientPINCommand.permissions
					sreturn;
		}

		.method public getRpId()[B 9 {
			.stack 1;
			.locals 0;

				L0:	getfield_a_this 68;		// reference com/josh/vku2f/ClientPINCommand.rpId
					areturn;
		}

	}

	.class public ClientPINResponse 12 extends 0.0 {		// extends java/lang/Object

		.fields {
			public static byte KEY_AGREEMENT 0 = 1;		// B
			public static byte PIN_UV_AUTH_TOKEN 1 = 2;		// B
			public static byte PIN_RETRIES 2 = 3;		// B
			public static byte POWER_CYCLE_STATE 3 = 4;		// B
			public static byte UV_RETRIES 4 = 5;		// B
		}

		.publicMethodTable 1 {
			equals(Ljava/lang/Object;)Z;
		}

		.packageMethodTable 0 {
		}

		.method public <init>()V 0 {
			.stack 1;
			.locals 0;

				L0:	aload_0;
					invokespecial 289;		// java/lang/Object.<init>()V
					return;
		}

	}

	.class public ClientPINSubCommand 13 extends 0.0 {		// extends java/lang/Object

		.fields {
			public static final byte SUBCOMMAND_GET_PIN_RETRIES = 1;		// B
			public static final byte SUBCOMMAND_GET_KEY_AGREEMENT = 2;		// B
			public static final byte SUBCOMMAND_SET_PIN = 3;		// B
			public static final byte SUBCOMMAND_CHANGE_PIN = 4;		// B
			public static final byte SUBCOMMAND_GET_PIN_TOKEN = 5;		// B
			public static final byte SUBCOMMAND_GET_PIN_UV_AUTH_TOKEN_UV = 6;		// B
			public static final byte SUBCOMMAND_GET_UV_RETRIES = 7;		// B
			public static final byte SUBCOMMAND_GET_PIN_UV_AUTH_TOKEN_PIN = 9;		// B
		}

		.publicMethodTable 1 {
			equals(Ljava/lang/Object;)Z;
		}

		.packageMethodTable 0 {
		}

		.method public <init>()V 0 {
			.stack 1;
			.locals 0;

				L0:	aload_0;
					invokespecial 289;		// java/lang/Object.<init>()V
					return;
		}

	}

	.class public CredentialArray 14 extends 0.0 {		// extends java/lang/Object

		.fields {
			private StoredCredential[] credentials 0;		// [Lcom/josh/vku2f/StoredCredential;
			private boolean[] slotStatus 1;		// [Z
			private short size 2;		// S
			private short i 3;		// S
			private short count 4;		// S
		}

		.publicMethodTable 1 {
			equals(Ljava/lang/Object;)Z;
			addCredential(Lcom/josh/vku2f/StoredCredential;)V;
			getCredential([BSS[BSS)Lcom/josh/vku2f/StoredCredential;;
			checkExists(Lcom/josh/vku2f/StoredCredential;)S;
			getLength()S;
			getCount()S;
			get(S)Lcom/josh/vku2f/StoredCredential;;
		}

		.packageMethodTable 0 {
		}

		.method public <init>(S)V 0 {
			.stack 2;
			.locals 0;

				L0:	aload_0;
					invokespecial 289;		// java/lang/Object.<init>()V
					sconst_0;
					putfield_s_this 69;		// short com/josh/vku2f/CredentialArray.count
					aload_0;
					sload_1;
					anewarray 251;		// com/josh/vku2f/StoredCredential
					putfield_a 70;		// reference com/josh/vku2f/CredentialArray.credentials
					aload_0;
					sload_1;
					newarray 10;
					putfield_a 71;		// reference com/josh/vku2f/CredentialArray.slotStatus
					sload_1;
					putfield_s_this 72;		// short com/josh/vku2f/CredentialArray.size
					return;
		}

		.method public addCredential(Lcom/josh/vku2f/StoredCredential;)V 1 {
			.stack 3;
			.locals 1;

				L0:	aload_0;
					aload_1;
					invokevirtual 293;		// checkExists(Lcom/josh/vku2f/StoredCredential;)S
					sstore_2;
					getfield_a_this 70;		// reference com/josh/vku2f/CredentialArray.credentials
					sload_2;
					aload_1;
					aastore;
					getfield_a_this 71;		// reference com/josh/vku2f/CredentialArray.slotStatus
					sload_2;
					sconst_1;
					bastore;
					aload_0;
					sload_2;
					sconst_1;
					sadd;
					putfield_s 69;		// short com/josh/vku2f/CredentialArray.count
				L1:	goto L3;
				L2:	astore_2;
					bspush 40;
					invokestatic 128;		// javacard/framework/UserException.throwIt(S)V
				L3:	return;
			.exceptionTable {
				// start_block end_block handler_block catch_type_index
				L0 L1 L2 358;
			}
		}

		.method public getCredential([BSS[BSS)Lcom/josh/vku2f/StoredCredential; 2 {
			.stack 4;
			.locals 0;

				L0:	sconst_0;
					putfield_s_this 73;		// short com/josh/vku2f/CredentialArray.i
				L1:	getfield_s_this 73;		// short com/josh/vku2f/CredentialArray.i
					getfield_s_this 72;		// short com/josh/vku2f/CredentialArray.size
					if_scmpge L7;
				L2:	getfield_a_this 71;		// reference com/josh/vku2f/CredentialArray.slotStatus
					getfield_s_this 73;		// short com/josh/vku2f/CredentialArray.i
					baload;
					ifeq L6;
				L3:	getfield_a_this 70;		// reference com/josh/vku2f/CredentialArray.credentials
					getfield_s_this 73;		// short com/josh/vku2f/CredentialArray.i
					aaload;
					getfield_a 42;		// reference com/josh/vku2f/StoredCredential.rpEntity
					aload_1;
					sload_2;
					sload_3;
					invokevirtual 254;		// checkId([BSS)Z
					ifeq L6;
				L4:	getfield_a_this 70;		// reference com/josh/vku2f/CredentialArray.credentials
					getfield_s_this 73;		// short com/josh/vku2f/CredentialArray.i
					aaload;
					getfield_a 50;		// reference com/josh/vku2f/StoredCredential.userEntity
					aload 4;
					sload 5;
					sload 6;
					invokevirtual 295;		// checkId([BSS)Z
					ifeq L6;
				L5:	getfield_a_this 70;		// reference com/josh/vku2f/CredentialArray.credentials
					getfield_s_this 73;		// short com/josh/vku2f/CredentialArray.i
					aaload;
					areturn;
				L6:	aload_0;
					dup;
					getfield_s 73;		// short com/josh/vku2f/CredentialArray.i
					sconst_1;
					sadd;
					putfield_s 73;		// short com/josh/vku2f/CredentialArray.i
					goto L1;
				L7:	aconst_null;
					areturn;
		}

		.method public checkExists(Lcom/josh/vku2f/StoredCredential;)S 3 {
			.stack 4;
			.locals 2;

				L0:	sconst_0;
					putfield_s_this 73;		// short com/josh/vku2f/CredentialArray.i
				L1:	getfield_s_this 73;		// short com/josh/vku2f/CredentialArray.i
					getfield_s_this 72;		// short com/josh/vku2f/CredentialArray.size
					if_scmpge L7;
				L2:	getfield_a_this 71;		// reference com/josh/vku2f/CredentialArray.slotStatus
					getfield_s_this 73;		// short com/josh/vku2f/CredentialArray.i
					baload;
					ifeq L6;
				L3:	getfield_a_this 70;		// reference com/josh/vku2f/CredentialArray.credentials
					getfield_s_this 73;		// short com/josh/vku2f/CredentialArray.i
					aaload;
					getfield_a 42;		// reference com/josh/vku2f/StoredCredential.rpEntity
					aload_1;
					getfield_a 42;		// reference com/josh/vku2f/StoredCredential.rpEntity
					invokevirtual 296;		// checkId(Lcom/josh/vku2f/PublicKeyCredentialRpEntity;)Z
					ifeq L6;
				L4:	getfield_a_this 70;		// reference com/josh/vku2f/CredentialArray.credentials
					getfield_s_this 73;		// short com/josh/vku2f/CredentialArray.i
					aaload;
					getfield_a 50;		// reference com/josh/vku2f/StoredCredential.userEntity
					aload_1;
					getfield_a 50;		// reference com/josh/vku2f/StoredCredential.userEntity
					invokevirtual 297;		// checkId(Lcom/josh/vku2f/PublicKeyCredentialUserEntity;)Z
					ifeq L6;
				L5:	getfield_s_this 73;		// short com/josh/vku2f/CredentialArray.i
					sreturn;
				L6:	aload_0;
					dup;
					getfield_s 73;		// short com/josh/vku2f/CredentialArray.i
					sconst_1;
					sadd;
					putfield_s 73;		// short com/josh/vku2f/CredentialArray.i
					goto L1;
				L7:	sconst_0;
					putfield_s_this 73;		// short com/josh/vku2f/CredentialArray.i
				L8:	getfield_s_this 73;		// short com/josh/vku2f/CredentialArray.i
					getfield_s_this 72;		// short com/josh/vku2f/CredentialArray.size
					if_scmpge L12;
				L9:	getfield_a_this 71;		// reference com/josh/vku2f/CredentialArray.slotStatus
					getfield_s_this 73;		// short com/josh/vku2f/CredentialArray.i
					baload;
					ifne L11;
				L10:	getfield_s_this 73;		// short com/josh/vku2f/CredentialArray.i
					sreturn;
				L11:	aload_0;
					dup;
					getfield_s 73;		// short com/josh/vku2f/CredentialArray.i
					sconst_1;
					sadd;
					putfield_s 73;		// short com/josh/vku2f/CredentialArray.i
					goto L8;
				L12:	getfield_s_this 72;		// short com/josh/vku2f/CredentialArray.size
					anewarray 251;		// com/josh/vku2f/StoredCredential
					astore_2;
					getfield_s_this 72;		// short com/josh/vku2f/CredentialArray.size
					newarray 10;
					astore_3;
					sconst_0;
					putfield_s_this 73;		// short com/josh/vku2f/CredentialArray.i
				L13:	getfield_s_this 73;		// short com/josh/vku2f/CredentialArray.i
					getfield_s_this 72;		// short com/josh/vku2f/CredentialArray.size
					if_scmpge L15;
				L14:	aload_2;
					getfield_s_this 73;		// short com/josh/vku2f/CredentialArray.i
					getfield_a_this 70;		// reference com/josh/vku2f/CredentialArray.credentials
					getfield_s_this 73;		// short com/josh/vku2f/CredentialArray.i
					aaload;
					aastore;
					aload_3;
					getfield_s_this 73;		// short com/josh/vku2f/CredentialArray.i
					getfield_a_this 71;		// reference com/josh/vku2f/CredentialArray.slotStatus
					getfield_s_this 73;		// short com/josh/vku2f/CredentialArray.i
					baload;
					bastore;
					aload_0;
					dup;
					getfield_s 73;		// short com/josh/vku2f/CredentialArray.i
					sconst_1;
					sadd;
					putfield_s 73;		// short com/josh/vku2f/CredentialArray.i
					goto L13;
				L15:	aload_0;
					getfield_s_this 72;		// short com/josh/vku2f/CredentialArray.size
					sconst_2;
					smul;
					anewarray 251;		// com/josh/vku2f/StoredCredential
					putfield_a 70;		// reference com/josh/vku2f/CredentialArray.credentials
					aload_0;
					getfield_s_this 72;		// short com/josh/vku2f/CredentialArray.size
					sconst_2;
					smul;
					newarray 10;
					putfield_a 71;		// reference com/josh/vku2f/CredentialArray.slotStatus
					sconst_0;
					putfield_s_this 73;		// short com/josh/vku2f/CredentialArray.i
				L16:	getfield_s_this 73;		// short com/josh/vku2f/CredentialArray.i
					getfield_s_this 72;		// short com/josh/vku2f/CredentialArray.size
					if_scmpge L18;
				L17:	getfield_a_this 70;		// reference com/josh/vku2f/CredentialArray.credentials
					getfield_s_this 73;		// short com/josh/vku2f/CredentialArray.i
					aload_2;
					getfield_s_this 73;		// short com/josh/vku2f/CredentialArray.i
					aaload;
					aastore;
					getfield_a_this 71;		// reference com/josh/vku2f/CredentialArray.slotStatus
					getfield_s_this 73;		// short com/josh/vku2f/CredentialArray.i
					aload_3;
					getfield_s_this 73;		// short com/josh/vku2f/CredentialArray.i
					baload;
					bastore;
					aload_0;
					dup;
					getfield_s 73;		// short com/josh/vku2f/CredentialArray.i
					sconst_1;
					sadd;
					putfield_s 73;		// short com/josh/vku2f/CredentialArray.i
					goto L16;
				L18:	aload_0;
					dup;
					getfield_s 72;		// short com/josh/vku2f/CredentialArray.size
					sconst_2;
					smul;
					putfield_s 72;		// short com/josh/vku2f/CredentialArray.size
					invokestatic 149;		// javacard/framework/JCSystem.requestObjectDeletion()V
					aload_0;
					dup;
					getfield_s 73;		// short com/josh/vku2f/CredentialArray.i
					sconst_1;
					sadd;
					dup_x 18;
					putfield_s 73;		// short com/josh/vku2f/CredentialArray.i
					sreturn;
		}

		.method public getLength()S 4 {
			.stack 1;
			.locals 0;

				L0:	getfield_s_this 72;		// short com/josh/vku2f/CredentialArray.size
					sreturn;
		}

		.method public getCount()S 5 {
			.stack 1;
			.locals 0;

				L0:	getfield_s_this 69;		// short com/josh/vku2f/CredentialArray.count
					sreturn;
		}

		.method public get(S)Lcom/josh/vku2f/StoredCredential; 6 {
			.stack 2;
			.locals 0;

				L0:	getfield_a_this 70;		// reference com/josh/vku2f/CredentialArray.credentials
					sload_1;
					aaload;
					areturn;
		}

	}

	.class public DomString 15 extends 0.0 {		// extends java/lang/Object

		.fields {
			public short len 0;		// S
			public byte[] str 1;		// [B
		}

		.publicMethodTable 1 {
			equals(Ljava/lang/Object;)Z;
			checkEquals([BSS)Z;
			checkEquals(Lcom/josh/vku2f/DomString;)Z;
		}

		.packageMethodTable 0 {
		}

		.method public <init>([BS)V 0 {
			.stack 5;
			.locals 0;

				L0:	aload_0;
					invokespecial 289;		// java/lang/Object.<init>()V
					sload_2;
					bspush 64;
					if_scmple L2;
				L1:	bspush 64;
					sstore_2;
				L2:	aload_0;
					sload_2;
					newarray 11;
					putfield_a 53;		// reference com/josh/vku2f/DomString.str
					aload_1;
					sconst_0;
					getfield_a_this 53;		// reference com/josh/vku2f/DomString.str
					sconst_0;
					sload_2;
					invokestatic 350;		// javacard/framework/Util.arrayCopy([BS[BSS)S
					pop;
					sload_2;
					putfield_s_this 54;		// short com/josh/vku2f/DomString.len
					return;
		}

		.method public checkEquals([BSS)Z 1 {
			.stack 5;
			.locals 0;

				L0:	sload_3;
					bspush 64;
					if_scmple L2;
				L1:	bspush 64;
					sstore_3;
				L2:	sload_3;
					getfield_s_this 54;		// short com/josh/vku2f/DomString.len
					if_scmpeq L4;
				L3:	sconst_0;
					sreturn;
				L4:	aload_1;
					sload_2;
					getfield_a_this 53;		// reference com/josh/vku2f/DomString.str
					sconst_0;
					getfield_s_this 54;		// short com/josh/vku2f/DomString.len
					invokestatic 130;		// javacard/framework/Util.arrayCompare([BS[BSS)B
					ifne L6;
				L5:	sconst_1;
					goto L7;
				L6:	sconst_0;
				L7:	sreturn;
		}

		.method public checkEquals(Lcom/josh/vku2f/DomString;)Z 2 {
			.stack 4;
			.locals 0;

				L0:	aload_1;
					getfield_a_this 53;		// reference com/josh/vku2f/DomString.str
					sconst_0;
					getfield_s_this 54;		// short com/josh/vku2f/DomString.len
					invokevirtual 298;		// checkEquals([BSS)Z
					sreturn;
		}

	}

	.class public ICUtil 16 extends 0.0 {		// extends java/lang/Object

		.publicMethodTable 1 {
			equals(Ljava/lang/Object;)Z;
		}

		.packageMethodTable 0 {
		}

		.method public <init>()V 0 {
			.stack 1;
			.locals 0;

				L0:	aload_0;
					invokespecial 289;		// java/lang/Object.<init>()V
					return;
		}

		.method public static sign(S)S 1 {
			.stack 2;
			.locals 0;

				L0:	sload_0;
					bspush 15;
					sushr;
					sconst_1;
					sand;
					s2b;
					sreturn;
		}

		.method public static min(SS)S 2 {
			.stack 2;
			.locals 0;

				L0:	sload_0;
					sload_1;
					if_scmpge L2;
				L1:	sload_0;
					sreturn;
				L2:	sload_1;
					sreturn;
		}

		.method public static max(SS)S 3 {
			.stack 2;
			.locals 0;

				L0:	sload_0;
					sload_1;
					if_scmple L2;
				L1:	sload_0;
					sreturn;
				L2:	sload_1;
					sreturn;
		}

		.method public static setBit([BSZ)V 4 {
			.stack 5;
			.locals 2;

				L0:	sload_1;
					sconst_3;
					sushr;
					sstore_3;
					sconst_1;
					sload_1;
					bspush 7;
					sand;
					sshl;
					s2b;
					sstore 4;
					sload_2;
					ifeq L2;
				L1:	aload_0;
					sload_3;
					dup2;
					baload;
					sload 4;
					sor;
					bastore;
					goto L3;
				L2:	aload_0;
					sload_3;
					dup2;
					baload;
					sload 4;
					sconst_m1;
					sxor;
					sand;
					bastore;
				L3:	return;
		}

		.method public static getBit(BB)Z 5 {
			.stack 3;
			.locals 1;

				L0:	sconst_1;
					sload_1;
					bspush 7;
					sand;
					sshl;
					s2b;
					sstore_2;
					sload_2;
					sload_0;
					sload_2;
					sand;
					if_scmpne L2;
				L1:	sconst_1;
					goto L3;
				L2:	sconst_0;
				L3:	sreturn;
		}

		.method public static setBit(BBZ)B 6 {
			.stack 3;
			.locals 1;

				L0:	sconst_1;
					sload_1;
					bspush 7;
					sand;
					sshl;
					s2b;
					sstore_3;
					sload_2;
					ifeq L2;
				L1:	sload_0;
					sload_3;
					sor;
					sstore_0;
					goto L3;
				L2:	sload_0;
					sload_3;
					sconst_m1;
					sxor;
					sand;
					sstore_0;
				L3:	sload_0;
					sreturn;
		}

		.method public static getBit([BS)Z 7 {
			.stack 3;
			.locals 2;

				L0:	sload_1;
					sconst_3;
					sushr;
					sstore_2;
					sconst_1;
					sload_1;
					bspush 7;
					sand;
					sshl;
					s2b;
					sstore_3;
					sload_3;
					aload_0;
					sload_2;
					baload;
					sload_3;
					sand;
					if_scmpne L2;
				L1:	sconst_1;
					goto L3;
				L2:	sconst_0;
				L3:	sreturn;
		}

		.method public static isLessThanAsUnsignedShort(SS)Z 8 {
			.stack 3;
			.locals 0;

				L0:	sload_0;
					sload_1;
					if_scmpge L2;
				L1:	sconst_1;
					goto L3;
				L2:	sconst_0;
				L3:	sload_0;
					ifge L5;
				L4:	sconst_1;
					goto L6;
				L5:	sconst_0;
				L6:	sload_1;
					ifge L8;
				L7:	sconst_1;
					goto L9;
				L8:	sconst_0;
				L9:	if_scmpeq L11;
				L10:	sconst_1;
					goto L12;
				L11:	sconst_0;
				L12:	sxor;
					sreturn;
		}

		.method public static shortArrayFillNonAtomic([SSSS)S 9 {
			.stack 3;
			.locals 0;

				L0:	sload_2;
					sload_1;
					sadd;
					sstore_2;
				L1:	sload_1;
					sload_2;
					if_scmpge L3;
				L2:	aload_0;
					sload_1;
					sload_3;
					sastore;
					sinc 1 1;
					goto L1;
				L3:	sload_1;
					sreturn;
		}

	}

	.class public IDSecret 17 extends 0.0 {		// extends java/lang/Object

		.fields {
			public DomString IDx 0;		// Lcom/josh/vku2f/DomString;
			public final byte[] Rx 1;		// [B
			public final byte[] Rp 2;		// [B
			public final byte[] PuKp 3;		// [B
			public final byte[] sharedSecret 4;		// [B
			public final byte[] hashedSharedSecret 5;		// [B
			public final byte[] Cx 6;		// [B
			public final byte[] encryptedCx 7;		// [B
			public final byte[] hmac 8;		// [B
			private final byte[] RxRp 9;		// [B
			private 1.20 aesKey 10;		// Ljavacard/security/AESKey;
			private 4.1 aesEncrypt 11;		// Ljavacardx/crypto/Cipher;
			private 4.1 aesDecrypt 12;		// Ljavacardx/crypto/Cipher;
			private final byte[] IV_ZERO_AES 13;		// [B
			private 1.11 sha256 14;		// Ljavacard/security/MessageDigest;
			private byte[] scratch 15;		// [B
			private final short SCRATCH_LENGTH 16;		// S
			private byte i 17;		// B
		}

		.publicMethodTable 1 {
			equals(Ljava/lang/Object;)Z;
			getRxRp()[B;
			initAesKey()V;
			encryptCx()V;
			getHMAC([BS)V;
			dump([BLcom/josh/vku2f/CBOREncoder;)S;
		}

		.packageMethodTable 0 {
		}

		.method public <init>()V 0 {
			.stack 5;
			.locals 0;

				L0:	aload_0;
					invokespecial 289;		// java/lang/Object.<init>()V
					aload_0;
					sconst_4;
					newarray 11;
					putfield_a 38;		// reference com/josh/vku2f/IDSecret.Rx
					aload_0;
					sconst_4;
					newarray 11;
					putfield_a 74;		// reference com/josh/vku2f/IDSecret.Rp
					aload_0;
					sconst_4;
					newarray 11;
					putfield_a 75;		// reference com/josh/vku2f/IDSecret.RxRp
					aload_0;
					bspush 65;
					newarray 11;
					putfield_a 39;		// reference com/josh/vku2f/IDSecret.PuKp
					aload_0;
					bspush 20;
					newarray 11;
					putfield_a 40;		// reference com/josh/vku2f/IDSecret.sharedSecret
					aload_0;
					bspush 32;
					newarray 11;
					putfield_a 76;		// reference com/josh/vku2f/IDSecret.hashedSharedSecret
					aload_0;
					bspush 16;
					newarray 11;
					putfield_a 77;		// reference com/josh/vku2f/IDSecret.Cx
					aload_0;
					bspush 16;
					newarray 11;
					putfield_a 41;		// reference com/josh/vku2f/IDSecret.encryptedCx
					aload_0;
					bspush 32;
					newarray 11;
					putfield_a 78;		// reference com/josh/vku2f/IDSecret.hmac
					aload_0;
					bspush 16;
					newarray 11;
					dup;
					sconst_0;
					sconst_0;
					bastore;
					dup;
					sconst_1;
					sconst_0;
					bastore;
					dup;
					sconst_2;
					sconst_0;
					bastore;
					dup;
					sconst_3;
					sconst_0;
					bastore;
					dup;
					sconst_4;
					sconst_0;
					bastore;
					dup;
					sconst_5;
					sconst_0;
					bastore;
					dup;
					bspush 6;
					sconst_0;
					bastore;
					dup;
					bspush 7;
					sconst_0;
					bastore;
					dup;
					bspush 8;
					sconst_0;
					bastore;
					dup;
					bspush 9;
					sconst_0;
					bastore;
					dup;
					bspush 10;
					sconst_0;
					bastore;
					dup;
					bspush 11;
					sconst_0;
					bastore;
					dup;
					bspush 12;
					sconst_0;
					bastore;
					dup;
					bspush 13;
					sconst_0;
					bastore;
					dup;
					bspush 14;
					sconst_0;
					bastore;
					dup;
					bspush 15;
					sconst_0;
					bastore;
					putfield_a 79;		// reference com/josh/vku2f/IDSecret.IV_ZERO_AES
					sspush 128;
					putfield_s_this 80;		// short com/josh/vku2f/IDSecret.SCRATCH_LENGTH
					sconst_0;
					putfield_b_this 81;		// byte com/josh/vku2f/IDSecret.i
					aload_0;
					new 184;		// com/josh/vku2f/DomString
					dup;
					getstatic_a 307;		// reference com/josh/vku2f/Utf8Strings.UTF8_NULL
					getstatic_a 307;		// reference com/josh/vku2f/Utf8Strings.UTF8_NULL
					arraylength;
					invokespecial 185;		// com/josh/vku2f/DomString.<init>([BS)V
					putfield_a 37;		// reference com/josh/vku2f/IDSecret.IDx
					invokestatic 308;		// com/josh/vku2f/Random.getInstance()Ljavacard/security/RandomData;
					getfield_a_this 38;		// reference com/josh/vku2f/IDSecret.Rx
					sconst_0;
					getfield_a_this 38;		// reference com/josh/vku2f/IDSecret.Rx
					arraylength;
					invokevirtual 309;		// nextBytes([BSS)S
					pop;
					getfield_a_this 74;		// reference com/josh/vku2f/IDSecret.Rp
					sconst_0;
					sconst_4;
					getfield_a_this 74;		// reference com/josh/vku2f/IDSecret.Rp
					arraylength;
					s2b;
					invokestatic 310;		// javacard/framework/Util.arrayFill([BSSB)S
					pop;
					getfield_a_this 75;		// reference com/josh/vku2f/IDSecret.RxRp
					sconst_0;
					sconst_4;
					getfield_a_this 75;		// reference com/josh/vku2f/IDSecret.RxRp
					arraylength;
					s2b;
					invokestatic 310;		// javacard/framework/Util.arrayFill([BSSB)S
					pop;
					getfield_a_this 39;		// reference com/josh/vku2f/IDSecret.PuKp
					sconst_0;
					sconst_4;
					bastore;
					getfield_a_this 39;		// reference com/josh/vku2f/IDSecret.PuKp
					sconst_1;
					getfield_a_this 39;		// reference com/josh/vku2f/IDSecret.PuKp
					arraylength;
					sconst_1;
					ssub;
					s2b;
					sconst_0;
					invokestatic 310;		// javacard/framework/Util.arrayFill([BSSB)S
					pop;
					getfield_a_this 40;		// reference com/josh/vku2f/IDSecret.sharedSecret
					sconst_0;
					getfield_a_this 40;		// reference com/josh/vku2f/IDSecret.sharedSecret
					arraylength;
					s2b;
					sconst_0;
					invokestatic 310;		// javacard/framework/Util.arrayFill([BSSB)S
					pop;
					getfield_a_this 76;		// reference com/josh/vku2f/IDSecret.hashedSharedSecret
					sconst_0;
					getfield_a_this 76;		// reference com/josh/vku2f/IDSecret.hashedSharedSecret
					arraylength;
					s2b;
					sconst_0;
					invokestatic 310;		// javacard/framework/Util.arrayFill([BSSB)S
					pop;
					invokestatic 308;		// com/josh/vku2f/Random.getInstance()Ljavacard/security/RandomData;
					getfield_a_this 77;		// reference com/josh/vku2f/IDSecret.Cx
					sconst_0;
					getfield_a_this 77;		// reference com/josh/vku2f/IDSecret.Cx
					arraylength;
					invokevirtual 309;		// nextBytes([BSS)S
					pop;
					getfield_a_this 41;		// reference com/josh/vku2f/IDSecret.encryptedCx
					sconst_0;
					getfield_a_this 41;		// reference com/josh/vku2f/IDSecret.encryptedCx
					arraylength;
					s2b;
					sconst_0;
					invokestatic 310;		// javacard/framework/Util.arrayFill([BSSB)S
					pop;
					getfield_a_this 78;		// reference com/josh/vku2f/IDSecret.hmac
					sconst_0;
					getfield_a_this 78;		// reference com/josh/vku2f/IDSecret.hmac
					arraylength;
					s2b;
					sconst_0;
					invokestatic 310;		// javacard/framework/Util.arrayFill([BSSB)S
					pop;
					aload_0;
					bspush 15;
					sspush 256;
					sconst_0;
					invokestatic 311;		// javacard/security/KeyBuilder.buildKey(BSZ)Ljavacard/security/Key;
					checkcast 0 312;		// T_CLASSORINTERFACE javacard/security/AESKey
					putfield_a 82;		// reference com/josh/vku2f/IDSecret.aesKey
					aload_0;
					bspush 13;
					sconst_0;
					invokestatic 314;		// javacardx/crypto/Cipher.getInstance(BZ)Ljavacardx/crypto/Cipher;
					putfield_a 83;		// reference com/josh/vku2f/IDSecret.aesEncrypt
					aload_0;
					bspush 13;
					sconst_0;
					invokestatic 314;		// javacardx/crypto/Cipher.getInstance(BZ)Ljavacardx/crypto/Cipher;
					putfield_a 84;		// reference com/josh/vku2f/IDSecret.aesDecrypt
					aload_0;
					sconst_4;
					sconst_0;
					invokestatic 119;		// javacard/security/MessageDigest.getInstance(BZ)Ljavacard/security/MessageDigest;
					putfield_a 85;		// reference com/josh/vku2f/IDSecret.sha256
					aload_0;
					sspush 128;
					sconst_2;
					invokestatic 112;		// javacard/framework/JCSystem.makeTransientByteArray(SB)[B
					putfield_a 86;		// reference com/josh/vku2f/IDSecret.scratch
					return;
		}

		.method public getRxRp()[B 1 {
			.stack 5;
			.locals 0;

				L0:	sconst_0;
					putfield_b_this 81;		// byte com/josh/vku2f/IDSecret.i
				L1:	getfield_b_this 81;		// byte com/josh/vku2f/IDSecret.i
					sconst_4;
					if_scmpge L3;
				L2:	getfield_a_this 75;		// reference com/josh/vku2f/IDSecret.RxRp
					getfield_b_this 81;		// byte com/josh/vku2f/IDSecret.i
					getfield_a_this 38;		// reference com/josh/vku2f/IDSecret.Rx
					getfield_b_this 81;		// byte com/josh/vku2f/IDSecret.i
					baload;
					getfield_a_this 74;		// reference com/josh/vku2f/IDSecret.Rp
					getfield_b_this 81;		// byte com/josh/vku2f/IDSecret.i
					baload;
					sxor;
					bastore;
					aload_0;
					dup;
					getfield_b 81;		// byte com/josh/vku2f/IDSecret.i
					sconst_1;
					sadd;
					s2b;
					putfield_b 81;		// byte com/josh/vku2f/IDSecret.i
					goto L1;
				L3:	getfield_a_this 75;		// reference com/josh/vku2f/IDSecret.RxRp
					areturn;
		}

		.method public initAesKey()V 2 {
			.stack 6;
			.locals 0;

				L0:	getfield_a_this 85;		// reference com/josh/vku2f/IDSecret.sha256
					getfield_a_this 40;		// reference com/josh/vku2f/IDSecret.sharedSecret
					sconst_0;
					bspush 20;
					getfield_a_this 76;		// reference com/josh/vku2f/IDSecret.hashedSharedSecret
					sconst_0;
					invokevirtual 209;		// doFinal([BSS[BS)S
					pop;
					getfield_a_this 82;		// reference com/josh/vku2f/IDSecret.aesKey
					getfield_a_this 76;		// reference com/josh/vku2f/IDSecret.hashedSharedSecret
					sconst_0;
					invokeinterface 3 312 4;		// javacard/security/AESKey
					getfield_a_this 83;		// reference com/josh/vku2f/IDSecret.aesEncrypt
					getfield_a_this 82;		// reference com/josh/vku2f/IDSecret.aesKey
					sconst_2;
					getfield_a_this 79;		// reference com/josh/vku2f/IDSecret.IV_ZERO_AES
					sconst_0;
					getfield_a_this 79;		// reference com/josh/vku2f/IDSecret.IV_ZERO_AES
					arraylength;
					invokevirtual 319;		// init(Ljavacard/security/Key;B[BSS)V
					getfield_a_this 84;		// reference com/josh/vku2f/IDSecret.aesDecrypt
					getfield_a_this 82;		// reference com/josh/vku2f/IDSecret.aesKey
					sconst_1;
					getfield_a_this 79;		// reference com/josh/vku2f/IDSecret.IV_ZERO_AES
					sconst_0;
					getfield_a_this 79;		// reference com/josh/vku2f/IDSecret.IV_ZERO_AES
					arraylength;
					invokevirtual 319;		// init(Ljavacard/security/Key;B[BSS)V
					return;
		}

		.method public encryptCx()V 3 {
			.stack 6;
			.locals 0;

				L0:	getfield_a_this 83;		// reference com/josh/vku2f/IDSecret.aesEncrypt
					getfield_a_this 77;		// reference com/josh/vku2f/IDSecret.Cx
					sconst_0;
					getfield_a_this 77;		// reference com/josh/vku2f/IDSecret.Cx
					arraylength;
					getfield_a_this 41;		// reference com/josh/vku2f/IDSecret.encryptedCx
					sconst_0;
					invokevirtual 320;		// doFinal([BSS[BS)S
					pop;
					return;
		}

		.method public getHMAC([BS)V 4 {
			.stack 7;
			.locals 2;

				L0:	getfield_a_this 37;		// reference com/josh/vku2f/IDSecret.IDx
					getfield_a 53;		// reference com/josh/vku2f/DomString.str
					sconst_0;
					getfield_a_this 86;		// reference com/josh/vku2f/IDSecret.scratch
					sconst_0;
					getfield_a_this 37;		// reference com/josh/vku2f/IDSecret.IDx
					getfield_a 53;		// reference com/josh/vku2f/DomString.str
					arraylength;
					invokestatic 350;		// javacard/framework/Util.arrayCopy([BS[BSS)S
					pop;
					getfield_a_this 77;		// reference com/josh/vku2f/IDSecret.Cx
					sconst_0;
					getfield_a_this 86;		// reference com/josh/vku2f/IDSecret.scratch
					getfield_a_this 37;		// reference com/josh/vku2f/IDSecret.IDx
					getfield_a 53;		// reference com/josh/vku2f/DomString.str
					arraylength;
					getfield_a_this 77;		// reference com/josh/vku2f/IDSecret.Cx
					arraylength;
					invokestatic 350;		// javacard/framework/Util.arrayCopy([BS[BSS)S
					pop;
					getfield_a_this 37;		// reference com/josh/vku2f/IDSecret.IDx
					getfield_a 53;		// reference com/josh/vku2f/DomString.str
					arraylength;
					getfield_a_this 77;		// reference com/josh/vku2f/IDSecret.Cx
					arraylength;
					sadd;
					sstore_3;
					sconst_0;
					sstore 4;
				L1:	sload_3;
					bspush 32;
					if_scmple L3;
				L2:	getfield_a_this 85;		// reference com/josh/vku2f/IDSecret.sha256
					getfield_a_this 86;		// reference com/josh/vku2f/IDSecret.scratch
					sload 4;
					bspush 32;
					invokevirtual 321;		// update([BSS)V
					sinc 3 -32;
					sinc 4 32;
					goto L1;
				L3:	getfield_a_this 85;		// reference com/josh/vku2f/IDSecret.sha256
					getfield_a_this 86;		// reference com/josh/vku2f/IDSecret.scratch
					sload 4;
					sload_3;
					getfield_a_this 86;		// reference com/josh/vku2f/IDSecret.scratch
					sconst_0;
					invokevirtual 209;		// doFinal([BSS[BS)S
					pop;
					getfield_a_this 83;		// reference com/josh/vku2f/IDSecret.aesEncrypt
					getfield_a_this 86;		// reference com/josh/vku2f/IDSecret.scratch
					sconst_0;
					bspush 16;
					aload_1;
					sload_2;
					invokevirtual 322;		// update([BSS[BS)S
					pop;
					getfield_a_this 83;		// reference com/josh/vku2f/IDSecret.aesEncrypt
					getfield_a_this 86;		// reference com/josh/vku2f/IDSecret.scratch
					bspush 16;
					bspush 16;
					aload_1;
					sload_2;
					bspush 16;
					sadd;
					invokevirtual 320;		// doFinal([BSS[BS)S
					pop;
					aload_1;
					sconst_0;
					getfield_a_this 78;		// reference com/josh/vku2f/IDSecret.hmac
					sconst_0;
					bspush 32;
					invokestatic 350;		// javacard/framework/Util.arrayCopy([BS[BSS)S
					pop;
					return;
		}

		.method public dump([BLcom/josh/vku2f/CBOREncoder;)S 5 {
			.stack 4;
			.locals 0;

				L0:	aload_2;
					aload_1;
					sconst_0;
					sspush 1200;
					invokevirtual 187;		// init([BSS)V
					aload_2;
					bspush 10;
					invokevirtual 188;		// startArray(S)S
					pop;
					aload_2;
					getfield_a_this 37;		// reference com/josh/vku2f/IDSecret.IDx
					getfield_a 53;		// reference com/josh/vku2f/DomString.str
					sconst_0;
					getfield_a_this 37;		// reference com/josh/vku2f/IDSecret.IDx
					getfield_s 54;		// short com/josh/vku2f/DomString.len
					invokevirtual 225;		// encodeTextString([BSS)S
					pop;
					aload_2;
					getfield_a_this 38;		// reference com/josh/vku2f/IDSecret.Rx
					sconst_0;
					getfield_a_this 38;		// reference com/josh/vku2f/IDSecret.Rx
					arraylength;
					invokevirtual 191;		// encodeByteString([BSS)S
					pop;
					aload_2;
					getfield_a_this 74;		// reference com/josh/vku2f/IDSecret.Rp
					sconst_0;
					getfield_a_this 74;		// reference com/josh/vku2f/IDSecret.Rp
					arraylength;
					invokevirtual 191;		// encodeByteString([BSS)S
					pop;
					aload_2;
					aload_0;
					invokevirtual 323;		// getRxRp()[B
					sconst_0;
					getfield_a_this 75;		// reference com/josh/vku2f/IDSecret.RxRp
					arraylength;
					invokevirtual 191;		// encodeByteString([BSS)S
					pop;
					aload_2;
					getfield_a_this 39;		// reference com/josh/vku2f/IDSecret.PuKp
					sconst_0;
					getfield_a_this 39;		// reference com/josh/vku2f/IDSecret.PuKp
					arraylength;
					invokevirtual 191;		// encodeByteString([BSS)S
					pop;
					aload_2;
					getfield_a_this 40;		// reference com/josh/vku2f/IDSecret.sharedSecret
					sconst_0;
					getfield_a_this 40;		// reference com/josh/vku2f/IDSecret.sharedSecret
					arraylength;
					invokevirtual 191;		// encodeByteString([BSS)S
					pop;
					aload_2;
					getfield_a_this 76;		// reference com/josh/vku2f/IDSecret.hashedSharedSecret
					sconst_0;
					getfield_a_this 76;		// reference com/josh/vku2f/IDSecret.hashedSharedSecret
					arraylength;
					invokevirtual 191;		// encodeByteString([BSS)S
					pop;
					aload_2;
					getfield_a_this 77;		// reference com/josh/vku2f/IDSecret.Cx
					sconst_0;
					getfield_a_this 77;		// reference com/josh/vku2f/IDSecret.Cx
					arraylength;
					invokevirtual 191;		// encodeByteString([BSS)S
					pop;
					aload_2;
					getfield_a_this 41;		// reference com/josh/vku2f/IDSecret.encryptedCx
					sconst_0;
					getfield_a_this 41;		// reference com/josh/vku2f/IDSecret.encryptedCx
					arraylength;
					invokevirtual 191;		// encodeByteString([BSS)S
					pop;
					aload_2;
					getfield_a_this 78;		// reference com/josh/vku2f/IDSecret.hmac
					sconst_0;
					getfield_a_this 78;		// reference com/josh/vku2f/IDSecret.hmac
					arraylength;
					invokevirtual 191;		// encodeByteString([BSS)S
					pop;
					aload_2;
					invokevirtual 341;		// getCurrentOffset()S
					sreturn;
		}

	}

	.class public KeyParams 18 extends 0.0 {		// extends java/lang/Object

		.fields {
			public static final short secp256r1K = 1;		// S
			public static final byte[] secp256r1p 0 = {-1,-1,-1,-1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1};		// [B
			public static final byte[] secp256r1A 1 = {-1,-1,-1,-1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-4};		// [B
			public static final byte[] secp256r1B 2 = {90,-58,53,-40,-86,58,-109,-25,-77,-21,-67,85,118,-104,-122,-68,101,29,6,-80,-52,83,-80,-10,59,-50,60,62,39,-46,96,75};		// [B
			public static final byte[] secp256r1G 3 = {4,107,23,-47,-14,-31,44,66,71,-8,-68,-26,-27,99,-92,64,-14,119,3,125,-127,45,-21,51,-96,-12,-95,57,69,-40,-104,-62,-106,79,-29,66,-30,-2,26,127,-101,-114,-25,-21,74,124,15,-98,22,43,-50,51,87,107,49,94,-50,-53,-74,64,104,55,-65,81,-11};		// [B
			public static final byte[] secp256r1R 4 = {-1,-1,-1,-1,0,0,0,0,-1,-1,-1,-1,-1,-1,-1,-1,-68,-26,-6,-83,-89,23,-98,-124,-13,-71,-54,-62,-4,99,37,81};		// [B
		}

		.publicMethodTable 1 {
			equals(Ljava/lang/Object;)Z;
		}

		.packageMethodTable 0 {
		}

		.method public <init>()V 0 {
			.stack 1;
			.locals 0;

				L0:	aload_0;
					invokespecial 289;		// java/lang/Object.<init>()V
					return;
		}

		.method public static sec256r1params(Ljavacard/security/ECKey;)V 1 {
			.stack 4;
			.locals 0;

			.descriptor	Ljavacard/security/ECKey;	1.17;

				L0:	aload_0;
					getstatic_a 324;		// reference com/josh/vku2f/KeyParams.secp256r1p
					sconst_0;
					bspush 32;
					invokeinterface 4 120 0;		// javacard/security/ECKey
					aload_0;
					getstatic_a 325;		// reference com/josh/vku2f/KeyParams.secp256r1A
					sconst_0;
					bspush 32;
					invokeinterface 4 120 3;		// javacard/security/ECKey
					aload_0;
					getstatic_a 326;		// reference com/josh/vku2f/KeyParams.secp256r1B
					sconst_0;
					bspush 32;
					invokeinterface 4 120 4;		// javacard/security/ECKey
					aload_0;
					getstatic_a 327;		// reference com/josh/vku2f/KeyParams.secp256r1G
					sconst_0;
					bspush 65;
					invokeinterface 4 120 5;		// javacard/security/ECKey
					aload_0;
					getstatic_a 328;		// reference com/josh/vku2f/KeyParams.secp256r1R
					sconst_0;
					bspush 32;
					invokeinterface 4 120 6;		// javacard/security/ECKey
					aload_0;
					sconst_1;
					invokeinterface 2 120 7;		// javacard/security/ECKey
					return;
		}

	}

	.class public abstract PinUvAuthProtocol 19 extends 0.0 {		// extends java/lang/Object

		.fields {
			private PinUvAuthToken pinUvAuthToken 0;		// Lcom/josh/vku2f/PinUvAuthToken;
		}

		.publicMethodTable 1 {
			equals(Ljava/lang/Object;)Z;
			initialize()V;
			regenerate()V;
			resetPinUvAuthToken()V;
			getPublicKey()[B;
			decapsulate(Lcom/josh/vku2f/COSEKey;)[B;
			decrypt([B[B)V;
			verify([B[B[B)V;
		}

		.packageMethodTable 0 {
		}

		.method public <init>()V 0 {
			.stack 1;
			.locals 0;

				L0:	aload_0;
					invokespecial 289;		// java/lang/Object.<init>()V
					return;
		}

		.method public abstract initialize()V 1 {
		}

		.method public abstract regenerate()V 2 {
		}

		.method public abstract resetPinUvAuthToken()V 3 {
		}

		.method public abstract getPublicKey()[B 4 {
		}

		.method public abstract decapsulate(Lcom/josh/vku2f/COSEKey;)[B 5 {
		}

		.method public abstract decrypt([B[B)V 6 {
		}

		.method public abstract verify([B[B[B)V 7 {
		}

	}

	.class public PinUvAuthProtocolOne 20 extends PinUvAuthProtocol {

		.fields {
			private 1.16 ecDhKeyPair 0;		// Ljavacard/security/KeyPair;
			private boolean[] ecDhSet 1;		// [Z
		}

		.publicMethodTable 1 {
			equals(Ljava/lang/Object;)Z;
			initialize()V;
			regenerate()V;
			resetPinUvAuthToken()V;
			getPublicKey()[B;
			decapsulate(Lcom/josh/vku2f/COSEKey;)[B;
			decrypt([B[B)V;
			verify([B[B[B)V;
			encapsulate(Lcom/josh/vku2f/COSEKey;)[B;
			encrypt([B[B)[B;
			authenticate([B[B)[B;
		}

		.packageMethodTable 0 {
		}

		.method public <init>()V 0 {
			.stack 1;
			.locals 0;

				L0:	aload_0;
					invokespecial 329;		// com/josh/vku2f/PinUvAuthProtocol.<init>()V
					return;
		}

		.method public initialize()V 1 {
			.stack 5;
			.locals 2;

				L0:	bspush 7;
					sconst_1;
					sspush 256;
					sconst_0;
					invokestatic 131;		// javacard/security/KeyBuilder.buildKey(BBSZ)Ljavacard/security/Key;
					checkcast 0 357;		// T_CLASSORINTERFACE javacard/security/ECPublicKey
					astore_1;
					bspush 8;
					sconst_1;
					sspush 256;
					sconst_0;
					invokestatic 131;		// javacard/security/KeyBuilder.buildKey(BBSZ)Ljavacard/security/Key;
					checkcast 0 132;		// T_CLASSORINTERFACE javacard/security/ECPrivateKey
					astore_2;
					aload_0;
					new 200;		// javacard/security/KeyPair
					dup;
					aload_1;
					aload_2;
					invokespecial 330;		// javacard/security/KeyPair.<init>(Ljavacard/security/PublicKey;Ljavacard/security/PrivateKey;)V
					putfield_a 87;		// reference com/josh/vku2f/PinUvAuthProtocolOne.ecDhKeyPair
					aload_0;
					sconst_1;
					sconst_1;
					invokestatic 126;		// javacard/framework/JCSystem.makeTransientBooleanArray(SB)[Z
					putfield_a 88;		// reference com/josh/vku2f/PinUvAuthProtocolOne.ecDhSet
					return;
		}

		.method public regenerate()V 2 {
			.stack 0;
			.locals 0;

				L0:	return;
		}

		.method public resetPinUvAuthToken()V 3 {
			.stack 0;
			.locals 0;

				L0:	return;
		}

		.method public getPublicKey()[B 4 {
			.stack 3;
			.locals 2;

				L0:	bspush 65;
					sconst_1;
					invokestatic 112;		// javacard/framework/JCSystem.makeTransientByteArray(SB)[B
					astore_1;
				L1:	goto L3;
				L2:	astore_2;
					bspush 65;
					newarray 11;
					astore_1;
				L3:	getfield_a_this 88;		// reference com/josh/vku2f/PinUvAuthProtocolOne.ecDhSet
					sconst_0;
					baload;
					ifne L5;
				L4:	getfield_a_this 87;		// reference com/josh/vku2f/PinUvAuthProtocolOne.ecDhKeyPair
					invokevirtual 362;		// getPublic()Ljavacard/security/PublicKey;
					checkcast 0 120;		// T_CLASSORINTERFACE javacard/security/ECKey
					invokestatic 124;		// com/josh/vku2f/KeyParams.sec256r1params(Ljavacard/security/ECKey;)V
					getfield_a_this 87;		// reference com/josh/vku2f/PinUvAuthProtocolOne.ecDhKeyPair
					invokevirtual 127;		// genKeyPair()V
					getfield_a_this 88;		// reference com/josh/vku2f/PinUvAuthProtocolOne.ecDhSet
					sconst_0;
					sconst_1;
					bastore;
				L5:	getfield_a_this 87;		// reference com/josh/vku2f/PinUvAuthProtocolOne.ecDhKeyPair
					invokevirtual 362;		// getPublic()Ljavacard/security/PublicKey;
					checkcast 0 357;		// T_CLASSORINTERFACE javacard/security/ECPublicKey
					aload_1;
					sconst_0;
					invokeinterface 3 357 19;		// javacard/security/ECPublicKey
					pop;
					aload_1;
					areturn;
			.exceptionTable {
				// start_block end_block handler_block catch_type_index
				L0 L1 L2 358;
			}
		}

		.method public encapsulate(Lcom/josh/vku2f/COSEKey;)[B 8 {
			.stack 1;
			.locals 0;

				L0:	aconst_null;
					areturn;
		}

		.method public decapsulate(Lcom/josh/vku2f/COSEKey;)[B 5 {
			.stack 1;
			.locals 0;

				L0:	aconst_null;
					areturn;
		}

		.method public encrypt([B[B)[B 9 {
			.stack 1;
			.locals 0;

				L0:	aconst_null;
					areturn;
		}

		.method public decrypt([B[B)V 6 {
			.stack 0;
			.locals 0;

				L0:	return;
		}

		.method public authenticate([B[B)[B 10 {
			.stack 1;
			.locals 0;

				L0:	aconst_null;
					areturn;
		}

		.method public verify([B[B[B)V 7 {
			.stack 0;
			.locals 0;

				L0:	return;
		}

		.method private ecdh(Lcom/josh/vku2f/COSEKey;)[B {
			.stack 1;
			.locals 0;

				L0:	aconst_null;
					areturn;
		}

		.method private kdf([B)[B {
			.stack 1;
			.locals 0;

				L0:	aconst_null;
					areturn;
		}

	}

	.class public PinUvAuthToken 21 extends 0.0 {		// extends java/lang/Object

		.fields {
			private byte[] token 0;		// [B
			private byte protocol 1;		// B
			private byte permissionsRPID 2;		// B
			private byte permissionsSet 3;		// B
			private byte usageTimer 4;		// B
			private boolean inUseFlag 5;		// Z
			private byte initialUsageTimeLimit 6;		// B
			private byte userPresentTimeLimit 7;		// B
			private byte maxUsageTimePeriod 8;		// B
			private boolean userVerifiedFlag 9;		// Z
			private boolean userPresentFlag 10;		// Z
		}

		.publicMethodTable 1 {
			equals(Ljava/lang/Object;)Z;
			generateNewToken()V;
			resetTokenState()V;
			isInUse()Z;
		}

		.packageMethodTable 0 {
		}

		.method  <init>()V {
			.stack 1;
			.locals 0;

				L0:	aload_0;
					invokespecial 289;		// java/lang/Object.<init>()V
					aload_0;
					invokevirtual 333;		// resetTokenState()V
					return;
		}

		.method public generateNewToken()V 1 {
			.stack 0;
			.locals 0;

				L0:	return;
		}

		.method public resetTokenState()V 2 {
			.stack 2;
			.locals 0;

				L0:	sconst_0;
					putfield_b_this 89;		// byte com/josh/vku2f/PinUvAuthToken.permissionsRPID
					sconst_0;
					putfield_b_this 90;		// byte com/josh/vku2f/PinUvAuthToken.permissionsSet
					sconst_0;
					putfield_b_this 91;		// byte com/josh/vku2f/PinUvAuthToken.usageTimer
					sconst_0;
					putfield_b_this 92;		// boolean com/josh/vku2f/PinUvAuthToken.inUseFlag
					sconst_0;
					putfield_b_this 93;		// byte com/josh/vku2f/PinUvAuthToken.initialUsageTimeLimit
					sconst_0;
					putfield_b_this 94;		// byte com/josh/vku2f/PinUvAuthToken.userPresentTimeLimit
					sconst_0;
					putfield_b_this 95;		// byte com/josh/vku2f/PinUvAuthToken.maxUsageTimePeriod
					sconst_0;
					putfield_b_this 96;		// boolean com/josh/vku2f/PinUvAuthToken.userVerifiedFlag
					sconst_0;
					putfield_b_this 97;		// boolean com/josh/vku2f/PinUvAuthToken.userPresentFlag
					return;
		}

		.method public isInUse()Z 3 {
			.stack 1;
			.locals 0;

				L0:	getfield_b_this 92;		// boolean com/josh/vku2f/PinUvAuthToken.inUseFlag
					sreturn;
		}

	}

	.class public PublicKeyCredentialDescriptor 22 extends 0.0 {		// extends java/lang/Object

		.fields {
			 byte[] type 0;		// [B
			 byte[] id 1;		// [B
		}

		.publicMethodTable 1 {
			equals(Ljava/lang/Object;)Z;
		}

		.packageMethodTable 0 {
		}

		.method public <init>([BSS)V 0 {
			.stack 5;
			.locals 0;

				L0:	aload_0;
					invokespecial 289;		// java/lang/Object.<init>()V
					aload_0;
					getstatic_a 284;		// reference com/josh/vku2f/Utf8Strings.UTF8_PUBLIC_KEY
					arraylength;
					newarray 11;
					putfield_a 98;		// reference com/josh/vku2f/PublicKeyCredentialDescriptor.type
					getstatic_a 284;		// reference com/josh/vku2f/Utf8Strings.UTF8_PUBLIC_KEY
					sconst_0;
					getfield_a_this 98;		// reference com/josh/vku2f/PublicKeyCredentialDescriptor.type
					sconst_0;
					getfield_a_this 98;		// reference com/josh/vku2f/PublicKeyCredentialDescriptor.type
					arraylength;
					invokestatic 350;		// javacard/framework/Util.arrayCopy([BS[BSS)S
					pop;
					aload_0;
					sload_3;
					newarray 11;
					putfield_a 47;		// reference com/josh/vku2f/PublicKeyCredentialDescriptor.id
					aload_1;
					sload_2;
					getfield_a_this 47;		// reference com/josh/vku2f/PublicKeyCredentialDescriptor.id
					sconst_0;
					getfield_a_this 47;		// reference com/josh/vku2f/PublicKeyCredentialDescriptor.id
					arraylength;
					invokestatic 350;		// javacard/framework/Util.arrayCopy([BS[BSS)S
					pop;
					return;
		}

	}

	.class public abstract PublicKeyCredentialEntity 23 extends 0.0 {		// extends java/lang/Object

		.fields {
			public DomString name 0;		// Lcom/josh/vku2f/DomString;
		}

		.publicMethodTable 1 {
			equals(Ljava/lang/Object;)Z;
			setName([BS)V;
		}

		.packageMethodTable 0 {
		}

		.method public <init>()V 0 {
			.stack 1;
			.locals 0;

				L0:	aload_0;
					invokespecial 289;		// java/lang/Object.<init>()V
					return;
		}

		.method public setName([BS)V 1 {
			.stack 5;
			.locals 0;

				L0:	aload_0;
					new 184;		// com/josh/vku2f/DomString
					dup;
					aload_1;
					sload_2;
					invokespecial 185;		// com/josh/vku2f/DomString.<init>([BS)V
					putfield_a 99;		// reference com/josh/vku2f/PublicKeyCredentialEntity.name
					return;
		}

	}

	.class public PublicKeyCredentialParams 24 extends 0.0 {		// extends java/lang/Object

		.fields {
			private short[] paramList 0;		// [S
			private short listIndex 1;		// S
			public static final short COSE_ES256 = -7;		// S
			public static final short COSE_RS256 = -257;		// S
			public static final short COSE_PS256 = -37;		// S
		}

		.publicMethodTable 1 {
			equals(Ljava/lang/Object;)Z;
			addAlgorithm(S)V;
			getAlgorithm()B;
		}

		.packageMethodTable 0 {
		}

		.method public <init>(S)V 0 {
			.stack 2;
			.locals 0;

				L0:	aload_0;
					invokespecial 289;		// java/lang/Object.<init>()V
					aload_0;
					sload_1;
					newarray 12;
					putfield_a 100;		// reference com/josh/vku2f/PublicKeyCredentialParams.paramList
					sconst_0;
					putfield_s_this 101;		// short com/josh/vku2f/PublicKeyCredentialParams.listIndex
					return;
		}

		.method public addAlgorithm(S)V 1 {
			.stack 5;
			.locals 0;

				L0:	getfield_a_this 100;		// reference com/josh/vku2f/PublicKeyCredentialParams.paramList
					aload_0;
					dup;
					getfield_s 101;		// short com/josh/vku2f/PublicKeyCredentialParams.listIndex
					dup_x 18;
					sconst_1;
					sadd;
					putfield_s 101;		// short com/josh/vku2f/PublicKeyCredentialParams.listIndex
					sload_1;
					sastore;
					return;
		}

		.method public getAlgorithm()B 2 {
			.stack 2;
			.locals 1;

				L0:	sconst_0;
					sstore_1;
				L1:	sload_1;
					getfield_s_this 101;		// short com/josh/vku2f/PublicKeyCredentialParams.listIndex
					if_scmpge L9;
				L2:	getfield_a_this 100;		// reference com/josh/vku2f/PublicKeyCredentialParams.paramList
					sload_1;
					saload;
					bspush -7;
					if_scmpne L4;
				L3:	bspush 33;
					sreturn;
				L4:	getfield_a_this 100;		// reference com/josh/vku2f/PublicKeyCredentialParams.paramList
					sload_1;
					saload;
					sspush -257;
					if_scmpne L6;
				L5:	bspush 40;
					sreturn;
				L6:	getfield_a_this 100;		// reference com/josh/vku2f/PublicKeyCredentialParams.paramList
					sload_1;
					saload;
					bspush -37;
					if_scmpne L8;
				L7:	bspush 44;
					sreturn;
				L8:	sinc 1 1;
					goto L1;
				L9:	sconst_0;
					sreturn;
		}

	}

	.class public PublicKeyCredentialRpEntity 25 extends PublicKeyCredentialEntity {

		.fields {
			 DomString rpId 0;		// Lcom/josh/vku2f/DomString;
		}

		.publicMethodTable 2 {
			equals(Ljava/lang/Object;)Z;
			setName([BS)V;
			setRp([BS)V;
			checkId([BSS)Z;
			checkId(Lcom/josh/vku2f/PublicKeyCredentialRpEntity;)Z;
			getRp([BS)V;
			getRpLen()S;
		}

		.packageMethodTable 0 {
		}

		.method public <init>()V 0 {
			.stack 1;
			.locals 0;

				L0:	aload_0;
					invokespecial 347;		// com/josh/vku2f/PublicKeyCredentialEntity.<init>()V
					return;
		}

		.method public setRp([BS)V 2 {
			.stack 5;
			.locals 0;

				L0:	aload_0;
					new 184;		// com/josh/vku2f/DomString
					dup;
					aload_1;
					sload_2;
					invokespecial 185;		// com/josh/vku2f/DomString.<init>([BS)V
					putfield_a 102;		// reference com/josh/vku2f/PublicKeyCredentialRpEntity.rpId
					return;
		}

		.method public checkId([BSS)Z 3 {
			.stack 4;
			.locals 0;

				L0:	getfield_a_this 102;		// reference com/josh/vku2f/PublicKeyCredentialRpEntity.rpId
					aload_1;
					sload_2;
					sload_3;
					invokevirtual 298;		// checkEquals([BSS)Z
					sreturn;
		}

		.method public checkId(Lcom/josh/vku2f/PublicKeyCredentialRpEntity;)Z 4 {
			.stack 2;
			.locals 0;

				L0:	getfield_a_this 102;		// reference com/josh/vku2f/PublicKeyCredentialRpEntity.rpId
					aload_1;
					getfield_a 102;		// reference com/josh/vku2f/PublicKeyCredentialRpEntity.rpId
					invokevirtual 349;		// checkEquals(Lcom/josh/vku2f/DomString;)Z
					sreturn;
		}

		.method public getRp([BS)V 5 {
			.stack 5;
			.locals 0;

				L0:	getfield_a_this 102;		// reference com/josh/vku2f/PublicKeyCredentialRpEntity.rpId
					getfield_a 53;		// reference com/josh/vku2f/DomString.str
					sconst_0;
					aload_1;
					sload_2;
					getfield_a_this 102;		// reference com/josh/vku2f/PublicKeyCredentialRpEntity.rpId
					getfield_s 54;		// short com/josh/vku2f/DomString.len
					invokestatic 350;		// javacard/framework/Util.arrayCopy([BS[BSS)S
					pop;
					return;
		}

		.method public getRpLen()S 6 {
			.stack 1;
			.locals 0;

				L0:	getfield_a_this 102;		// reference com/josh/vku2f/PublicKeyCredentialRpEntity.rpId
					getfield_s 54;		// short com/josh/vku2f/DomString.len
					sreturn;
		}

	}

	.class public PublicKeyCredentialUserEntity 26 extends PublicKeyCredentialEntity {

		.fields {
			public byte numData 0;		// B
			public byte[] id 1;		// [B
			public DomString displayName 2;		// Lcom/josh/vku2f/DomString;
			public boolean[] dataPresent 3;		// [Z
			public byte[] icon 4;		// [B
		}

		.publicMethodTable 1 {
			equals(Ljava/lang/Object;)Z;
			setName([BS)V;
			setId([BSS)V;
			setIcon([BS)V;
			setDisplayName([BS)V;
			checkId([BSS)Z;
			checkId(Lcom/josh/vku2f/PublicKeyCredentialUserEntity;)Z;
		}

		.packageMethodTable 0 {
		}

		.method public <init>()V 0 {
			.stack 2;
			.locals 0;

				L0:	aload_0;
					invokespecial 347;		// com/josh/vku2f/PublicKeyCredentialEntity.<init>()V
					aload_0;
					sconst_4;
					newarray 10;
					putfield_a 103;		// reference com/josh/vku2f/PublicKeyCredentialUserEntity.dataPresent
					sconst_0;
					putfield_b_this 51;		// byte com/josh/vku2f/PublicKeyCredentialUserEntity.numData
					return;
		}

		.method public setId([BSS)V 2 {
			.stack 5;
			.locals 0;

				L0:	aload_0;
					sload_3;
					newarray 11;
					putfield_a 55;		// reference com/josh/vku2f/PublicKeyCredentialUserEntity.id
					aload_1;
					sload_2;
					getfield_a_this 55;		// reference com/josh/vku2f/PublicKeyCredentialUserEntity.id
					sconst_0;
					sload_3;
					invokestatic 350;		// javacard/framework/Util.arrayCopy([BS[BSS)S
					pop;
					getfield_a_this 103;		// reference com/josh/vku2f/PublicKeyCredentialUserEntity.dataPresent
					sconst_1;
					baload;
					ifne L2;
				L1:	getfield_a_this 103;		// reference com/josh/vku2f/PublicKeyCredentialUserEntity.dataPresent
					sconst_1;
					sconst_1;
					bastore;
					aload_0;
					dup;
					getfield_b 51;		// byte com/josh/vku2f/PublicKeyCredentialUserEntity.numData
					sconst_1;
					sadd;
					s2b;
					putfield_b 51;		// byte com/josh/vku2f/PublicKeyCredentialUserEntity.numData
				L2:	return;
		}

		.method public setIcon([BS)V 3 {
			.stack 5;
			.locals 1;

				L0:	aload_0;
					sload_2;
					newarray 11;
					putfield_a 57;		// reference com/josh/vku2f/PublicKeyCredentialUserEntity.icon
					aload_1;
					sconst_0;
					getfield_a_this 57;		// reference com/josh/vku2f/PublicKeyCredentialUserEntity.icon
					sconst_0;
					sload_2;
					invokestatic 350;		// javacard/framework/Util.arrayCopy([BS[BSS)S
					pop;
					getfield_a_this 103;		// reference com/josh/vku2f/PublicKeyCredentialUserEntity.dataPresent
					sconst_3;
					baload;
					ifne L2;
				L1:	getfield_a_this 103;		// reference com/josh/vku2f/PublicKeyCredentialUserEntity.dataPresent
					sconst_3;
					sconst_1;
					bastore;
					aload_0;
					dup;
					getfield_b 51;		// byte com/josh/vku2f/PublicKeyCredentialUserEntity.numData
					sconst_1;
					sadd;
					s2b;
					putfield_b 51;		// byte com/josh/vku2f/PublicKeyCredentialUserEntity.numData
				L2:	goto L4;
				L3:	astore_3;
					bspush -6;
					invokestatic 128;		// javacard/framework/UserException.throwIt(S)V
				L4:	return;
			.exceptionTable {
				// start_block end_block handler_block catch_type_index
				L0 L2 L3 351;
			}
		}

		.method public setDisplayName([BS)V 4 {
			.stack 5;
			.locals 0;

				L0:	aload_0;
					new 184;		// com/josh/vku2f/DomString
					dup;
					aload_1;
					sload_2;
					invokespecial 185;		// com/josh/vku2f/DomString.<init>([BS)V
					putfield_a 52;		// reference com/josh/vku2f/PublicKeyCredentialUserEntity.displayName
					getfield_a_this 103;		// reference com/josh/vku2f/PublicKeyCredentialUserEntity.dataPresent
					sconst_2;
					baload;
					ifne L2;
				L1:	getfield_a_this 103;		// reference com/josh/vku2f/PublicKeyCredentialUserEntity.dataPresent
					sconst_2;
					sconst_1;
					bastore;
					aload_0;
					dup;
					getfield_b 51;		// byte com/josh/vku2f/PublicKeyCredentialUserEntity.numData
					sconst_1;
					sadd;
					s2b;
					putfield_b 51;		// byte com/josh/vku2f/PublicKeyCredentialUserEntity.numData
				L2:	return;
		}

		.method public checkId([BSS)Z 5 {
			.stack 5;
			.locals 0;

				L0:	sload_3;
					getfield_a_this 55;		// reference com/josh/vku2f/PublicKeyCredentialUserEntity.id
					arraylength;
					if_scmpeq L2;
				L1:	sconst_0;
					sreturn;
				L2:	aload_1;
					sload_2;
					getfield_a_this 55;		// reference com/josh/vku2f/PublicKeyCredentialUserEntity.id
					sconst_0;
					sload_3;
					invokestatic 130;		// javacard/framework/Util.arrayCompare([BS[BSS)B
					ifne L4;
				L3:	sconst_1;
					goto L5;
				L4:	sconst_0;
				L5:	sreturn;
		}

		.method public setName([BS)V 1 {
			.stack 5;
			.locals 0;

				L0:	aload_0;
					new 184;		// com/josh/vku2f/DomString
					dup;
					aload_1;
					sload_2;
					invokespecial 185;		// com/josh/vku2f/DomString.<init>([BS)V
					putfield_a 99;		// reference com/josh/vku2f/PublicKeyCredentialEntity.name
					getfield_a_this 103;		// reference com/josh/vku2f/PublicKeyCredentialUserEntity.dataPresent
					sconst_0;
					baload;
					ifne L2;
				L1:	getfield_a_this 103;		// reference com/josh/vku2f/PublicKeyCredentialUserEntity.dataPresent
					sconst_0;
					sconst_1;
					bastore;
					aload_0;
					dup;
					getfield_b 51;		// byte com/josh/vku2f/PublicKeyCredentialUserEntity.numData
					sconst_1;
					sadd;
					s2b;
					putfield_b 51;		// byte com/josh/vku2f/PublicKeyCredentialUserEntity.numData
				L2:	return;
		}

		.method public checkId(Lcom/josh/vku2f/PublicKeyCredentialUserEntity;)Z 6 {
			.stack 4;
			.locals 0;

				L0:	aload_1;
					getfield_a_this 55;		// reference com/josh/vku2f/PublicKeyCredentialUserEntity.id
					sconst_0;
					getfield_a_this 55;		// reference com/josh/vku2f/PublicKeyCredentialUserEntity.id
					arraylength;
					invokevirtual 295;		// checkId([BSS)Z
					sreturn;
		}

	}

	.class public Random 27 extends 0.0 {		// extends java/lang/Object

		.fields {
			private static 1.14 rng;		// Ljavacard/security/RandomData;
		}

		.publicMethodTable 1 {
			equals(Ljava/lang/Object;)Z;
		}

		.packageMethodTable 0 {
		}

		.method public <init>()V 0 {
			.stack 1;
			.locals 0;

				L0:	aload_0;
					invokespecial 289;		// java/lang/Object.<init>()V
					return;
		}

		.method public static getInstance()Ljavacard/security/RandomData; 1 {
			.stack 1;
			.locals 0;

			.descriptor	Ljavacard/security/RandomData;	1.14;

				L0:	getstatic_a 352;		// reference com/josh/vku2f/Random.rng
					ifnonnull L2;
				L1:	sconst_2;
					invokestatic 353;		// javacard/security/RandomData.getInstance(B)Ljavacard/security/RandomData;
					putstatic_a 352;		// reference com/josh/vku2f/Random.rng
				L2:	getstatic_a 352;		// reference com/josh/vku2f/Random.rng
					areturn;
		}

	}

	.class public abstract StoredCredential 28 extends 0.0 {		// extends java/lang/Object

		.fields {
			protected boolean initialised 0;		// Z
			protected boolean hmacEnabled 1;		// Z
			protected byte[] credRandom 2;		// [B
			 byte[] credentialId 3;		// [B
			 1.16 keyPair 4;		// Ljavacard/security/KeyPair;
			 PublicKeyCredentialUserEntity userEntity 5;		// Lcom/josh/vku2f/PublicKeyCredentialUserEntity;
			 PublicKeyCredentialRpEntity rpEntity 6;		// Lcom/josh/vku2f/PublicKeyCredentialRpEntity;
			private final byte[] signingCounter 7;		// [B
			private static 1.14 randomData;		// Ljavacard/security/RandomData;
		}

		.publicMethodTable 1 {
			equals(Ljava/lang/Object;)Z;
			doHmacSecret([BSS)S;
			initialiseCredSecret()Z;
			checkId([BSS)Z;
			getPresentUser()[Z;
			incrementCounter()V;
			readCounter([BS)S;
			doAttestationCommon([BS)V;
			performSignature([BSS[BS)S;
			getAttestedData([BS)S;
			getAttestedLen()S;
		}

		.packageMethodTable 0 {
		}

		.method protected <init>()V 0 {
			.stack 4;
			.locals 0;

				L0:	aload_0;
					invokespecial 289;		// java/lang/Object.<init>()V
					getstatic_a 354;		// reference com/josh/vku2f/StoredCredential.randomData
					ifnonnull L2;
				L1:	invokestatic 308;		// com/josh/vku2f/Random.getInstance()Ljavacard/security/RandomData;
					putstatic_a 354;		// reference com/josh/vku2f/StoredCredential.randomData
				L2:	aload_0;
					bspush 16;
					newarray 11;
					putfield_a 48;		// reference com/josh/vku2f/StoredCredential.credentialId
					getstatic_a 354;		// reference com/josh/vku2f/StoredCredential.randomData
					getfield_a_this 48;		// reference com/josh/vku2f/StoredCredential.credentialId
					sconst_0;
					bspush 16;
					invokevirtual 355;		// generateData([BSS)V
					aload_0;
					sconst_4;
					newarray 11;
					putfield_a 104;		// reference com/josh/vku2f/StoredCredential.signingCounter
					sconst_0;
					putfield_b_this 105;		// boolean com/josh/vku2f/StoredCredential.initialised
					sconst_0;
					putfield_b_this 106;		// boolean com/josh/vku2f/StoredCredential.hmacEnabled
					return;
		}

		.method public doHmacSecret([BSS)S 1 {
			.stack 1;
			.locals 0;

				L0:	sconst_0;
					sreturn;
		}

		.method public initialiseCredSecret()Z 2 {
			.stack 4;
			.locals 0;

				L0:	aload_0;
					bspush 32;
					newarray 11;
					putfield_a 107;		// reference com/josh/vku2f/StoredCredential.credRandom
					getstatic_a 354;		// reference com/josh/vku2f/StoredCredential.randomData
					getfield_a_this 107;		// reference com/josh/vku2f/StoredCredential.credRandom
					sconst_0;
					bspush 32;
					invokevirtual 355;		// generateData([BSS)V
					sconst_1;
					putfield_b_this 106;		// boolean com/josh/vku2f/StoredCredential.hmacEnabled
					sconst_1;
					sreturn;
		}

		.method public checkId([BSS)Z 3 {
			.stack 5;
			.locals 0;

				L0:	sload_3;
					bspush 16;
					if_scmpeq L2;
				L1:	sconst_0;
					sreturn;
				L2:	getfield_a_this 48;		// reference com/josh/vku2f/StoredCredential.credentialId
					sconst_0;
					aload_1;
					sload_2;
					sload_3;
					invokestatic 130;		// javacard/framework/Util.arrayCompare([BS[BSS)B
					ifne L4;
				L3:	sconst_1;
					goto L5;
				L4:	sconst_0;
				L5:	sreturn;
		}

		.method public getPresentUser()[Z 4 {
			.stack 1;
			.locals 0;

				L0:	getfield_a_this 50;		// reference com/josh/vku2f/StoredCredential.userEntity
					getfield_a 103;		// reference com/josh/vku2f/PublicKeyCredentialUserEntity.dataPresent
					areturn;
		}

		.method protected incrementCounter()V 5 {
			.stack 4;
			.locals 1;

				L0:	invokestatic 262;		// javacard/framework/JCSystem.beginTransaction()V
					sconst_3;
					sstore_1;
				L1:	sload_1;
					sconst_1;
					if_scmple L5;
				L2:	getfield_a_this 104;		// reference com/josh/vku2f/StoredCredential.signingCounter
					sload_1;
					baload;
					sspush 255;
					if_scmpne L4;
				L3:	getfield_a_this 104;		// reference com/josh/vku2f/StoredCredential.signingCounter
					sload_1;
					sconst_1;
					ssub;
					dup2;
					baload;
					sconst_1;
					sadd;
					s2b;
					bastore;
					getfield_a_this 104;		// reference com/josh/vku2f/StoredCredential.signingCounter
					sload_1;
					sconst_0;
					bastore;
					invokestatic 263;		// javacard/framework/JCSystem.commitTransaction()V
					return;
				L4:	sinc 1 -1;
					goto L1;
				L5:	getfield_a_this 104;		// reference com/josh/vku2f/StoredCredential.signingCounter
					sconst_0;
					baload;
					sspush 255;
					if_scmpne L10;
				L6:	getfield_a_this 104;		// reference com/josh/vku2f/StoredCredential.signingCounter
					sconst_1;
					baload;
					sspush 255;
					if_scmpne L10;
				L7:	getfield_a_this 104;		// reference com/josh/vku2f/StoredCredential.signingCounter
					sconst_2;
					baload;
					sspush 255;
					if_scmpne L10;
				L8:	getfield_a_this 104;		// reference com/josh/vku2f/StoredCredential.signingCounter
					sconst_3;
					baload;
					sspush 255;
					if_scmpne L10;
				L9:	getfield_a_this 104;		// reference com/josh/vku2f/StoredCredential.signingCounter
					sconst_0;
					sconst_4;
					sconst_0;
					invokestatic 360;		// javacard/framework/Util.arrayFillNonAtomic([BSSB)S
					pop;
					invokestatic 263;		// javacard/framework/JCSystem.commitTransaction()V
					return;
				L10:	getfield_a_this 104;		// reference com/josh/vku2f/StoredCredential.signingCounter
					sconst_3;
					dup2;
					baload;
					sconst_1;
					sadd;
					s2b;
					bastore;
					invokestatic 263;		// javacard/framework/JCSystem.commitTransaction()V
					return;
		}

		.method public readCounter([BS)S 6 {
			.stack 5;
			.locals 0;

				L0:	getfield_a_this 104;		// reference com/josh/vku2f/StoredCredential.signingCounter
					sconst_0;
					aload_1;
					sload_2;
					sconst_4;
					invokestatic 350;		// javacard/framework/Util.arrayCopy([BS[BSS)S
					pop;
					sconst_4;
					sreturn;
		}

		.method protected doAttestationCommon([BS)V 7 {
			.stack 5;
			.locals 0;

				L0:	getstatic_a 259;		// reference com/josh/vku2f/CTAP2.aaguid
					sconst_0;
					aload_1;
					sload_2;
					bspush 16;
					invokestatic 350;		// javacard/framework/Util.arrayCopy([BS[BSS)S
					pop;
					aload_1;
					sload_2;
					bspush 16;
					sadd;
					sconst_0;
					bastore;
					aload_1;
					sload_2;
					bspush 17;
					sadd;
					bspush 16;
					bastore;
					getfield_a_this 48;		// reference com/josh/vku2f/StoredCredential.credentialId
					sconst_0;
					aload_1;
					sload_2;
					bspush 18;
					sadd;
					bspush 16;
					invokestatic 350;		// javacard/framework/Util.arrayCopy([BS[BSS)S
					pop;
					return;
		}

		.method public abstract performSignature([BSS[BS)S 8 {
		}

		.method public abstract getAttestedData([BS)S 9 {
		}

		.method public abstract getAttestedLen()S 10 {
		}

	}

	.class public StoredES256Credential 29 extends StoredCredential {

		.fields {
			 1.15 sig 0;		// Ljavacard/security/Signature;
		}

		.publicMethodTable 8 {
			equals(Ljava/lang/Object;)Z;
			doHmacSecret([BSS)S;
			initialiseCredSecret()Z;
			checkId([BSS)Z;
			getPresentUser()[Z;
			incrementCounter()V;
			readCounter([BS)S;
			doAttestationCommon([BS)V;
			performSignature([BSS[BS)S;
			getAttestedData([BS)S;
			getAttestedLen()S;
		}

		.packageMethodTable 0 {
		}

		.method public <init>(Lcom/josh/vku2f/AuthenticatorMakeCredential;)V 0 {
			.stack 5;
			.locals 0;

				L0:	aload_0;
					invokespecial 361;		// com/josh/vku2f/StoredCredential.<init>()V
					aload_0;
					new 200;		// javacard/security/KeyPair
					dup;
					sconst_5;
					sspush 256;
					invokespecial 288;		// javacard/security/KeyPair.<init>(BS)V
					putfield_a 108;		// reference com/josh/vku2f/StoredCredential.keyPair
					getfield_a_this 108;		// reference com/josh/vku2f/StoredCredential.keyPair
					invokevirtual 362;		// getPublic()Ljavacard/security/PublicKey;
					checkcast 0 120;		// T_CLASSORINTERFACE javacard/security/ECKey
					invokestatic 124;		// com/josh/vku2f/KeyParams.sec256r1params(Ljavacard/security/ECKey;)V
					getfield_a_this 108;		// reference com/josh/vku2f/StoredCredential.keyPair
					invokevirtual 127;		// genKeyPair()V
					aload_0;
					aload_1;
					invokevirtual 363;		// getUser()Lcom/josh/vku2f/PublicKeyCredentialUserEntity;
					putfield_a 50;		// reference com/josh/vku2f/StoredCredential.userEntity
					aload_0;
					aload_1;
					invokevirtual 364;		// getRp()Lcom/josh/vku2f/PublicKeyCredentialRpEntity;
					putfield_a 42;		// reference com/josh/vku2f/StoredCredential.rpEntity
					aload_0;
					bspush 33;
					sconst_0;
					invokestatic 194;		// javacard/security/Signature.getInstance(BZ)Ljavacard/security/Signature;
					putfield_a 109;		// reference com/josh/vku2f/StoredES256Credential.sig
					getfield_a_this 109;		// reference com/josh/vku2f/StoredES256Credential.sig
					getfield_a_this 108;		// reference com/josh/vku2f/StoredCredential.keyPair
					invokevirtual 236;		// getPrivate()Ljavacard/security/PrivateKey;
					sconst_1;
					invokevirtual 258;		// init(Ljavacard/security/Key;B)V
					return;
		}

		.method public performSignature([BSS[BS)S 8 {
			.stack 6;
			.locals 0;

				L0:	aload_0;
					invokevirtual 366;		// incrementCounter()V
					getfield_a_this 109;		// reference com/josh/vku2f/StoredES256Credential.sig
					aload_1;
					sload_2;
					sload_3;
					aload 4;
					sload 5;
					invokevirtual 278;		// sign([BSS[BS)S
					sreturn;
		}

		.method public getAttestedLen()S 10 {
			.stack 1;
			.locals 0;

				L0:	bspush 111;
					sreturn;
		}

		.method public getAttestedData([BS)S 9 {
			.stack 4;
			.locals 3;

				L0:	new 113;		// com/josh/vku2f/CBOREncoder
					dup;
					invokespecial 114;		// com/josh/vku2f/CBOREncoder.<init>()V
					astore_3;
				L1:	bspush 65;
					sconst_1;
					invokestatic 112;		// javacard/framework/JCSystem.makeTransientByteArray(SB)[B
					astore 4;
				L2:	goto L4;
				L3:	astore 5;
					bspush 65;
					newarray 11;
					astore 4;
				L4:	getfield_a_this 108;		// reference com/josh/vku2f/StoredCredential.keyPair
					invokevirtual 362;		// getPublic()Ljavacard/security/PublicKey;
					checkcast 0 357;		// T_CLASSORINTERFACE javacard/security/ECPublicKey
					aload 4;
					sconst_0;
					invokeinterface 3 357 19;		// javacard/security/ECPublicKey
					pop;
					aload_0;
					aload_1;
					sload_2;
					invokevirtual 367;		// doAttestationCommon([BS)V
					aload_3;
					aload_1;
					sload_2;
					bspush 34;
					sadd;
					sspush 1000;
					invokevirtual 187;		// init([BSS)V
					aload_3;
					sconst_5;
					invokevirtual 223;		// startMap(S)S
					pop;
					aload_3;
					sconst_1;
					invokevirtual 336;		// writeRawByte(B)S
					pop;
					aload_3;
					sconst_2;
					invokevirtual 245;		// encodeUInt8(B)S
					pop;
					aload_3;
					sconst_3;
					invokevirtual 336;		// writeRawByte(B)S
					pop;
					aload_3;
					bspush 6;
					invokevirtual 246;		// encodeNegativeUInt8(B)S
					pop;
					aload_3;
					sconst_0;
					invokevirtual 246;		// encodeNegativeUInt8(B)S
					pop;
					aload_3;
					sconst_1;
					invokevirtual 245;		// encodeUInt8(B)S
					pop;
					aload_3;
					sconst_1;
					invokevirtual 246;		// encodeNegativeUInt8(B)S
					pop;
					aload_3;
					aload 4;
					sconst_1;
					bspush 32;
					invokevirtual 191;		// encodeByteString([BSS)S
					pop;
					aload_3;
					sconst_2;
					invokevirtual 246;		// encodeNegativeUInt8(B)S
					pop;
					aload_3;
					aload 4;
					bspush 33;
					bspush 32;
					invokevirtual 191;		// encodeByteString([BSS)S
					pop;
					aconst_null;
					astore 4;
					invokestatic 149;		// javacard/framework/JCSystem.requestObjectDeletion()V
					bspush 111;
					sreturn;
			.exceptionTable {
				// start_block end_block handler_block catch_type_index
				L1 L2 L3 358;
			}
		}

	}

	.class public StoredPS256Credential 30 extends StoredCredential {

		.fields {
			 1.15 kpSignature 0;		// Ljavacard/security/Signature;
		}

		.publicMethodTable 8 {
			equals(Ljava/lang/Object;)Z;
			doHmacSecret([BSS)S;
			initialiseCredSecret()Z;
			checkId([BSS)Z;
			getPresentUser()[Z;
			incrementCounter()V;
			readCounter([BS)S;
			doAttestationCommon([BS)V;
			performSignature([BSS[BS)S;
			getAttestedData([BS)S;
			getAttestedLen()S;
		}

		.packageMethodTable 0 {
		}

		.method public <init>(Lcom/josh/vku2f/AuthenticatorMakeCredential;)V 0 {
			.stack 5;
			.locals 0;

				L0:	aload_0;
					invokespecial 361;		// com/josh/vku2f/StoredCredential.<init>()V
					aload_0;
					new 200;		// javacard/security/KeyPair
					dup;
					sconst_2;
					sspush 2048;
					invokespecial 288;		// javacard/security/KeyPair.<init>(BS)V
					putfield_a 108;		// reference com/josh/vku2f/StoredCredential.keyPair
					getfield_a_this 108;		// reference com/josh/vku2f/StoredCredential.keyPair
					invokevirtual 127;		// genKeyPair()V
					aload_0;
					aload_1;
					invokevirtual 363;		// getUser()Lcom/josh/vku2f/PublicKeyCredentialUserEntity;
					putfield_a 50;		// reference com/josh/vku2f/StoredCredential.userEntity
					aload_0;
					aload_1;
					invokevirtual 364;		// getRp()Lcom/josh/vku2f/PublicKeyCredentialRpEntity;
					putfield_a 42;		// reference com/josh/vku2f/StoredCredential.rpEntity
					aload_0;
					bspush 44;
					sconst_0;
					invokestatic 194;		// javacard/security/Signature.getInstance(BZ)Ljavacard/security/Signature;
					putfield_a 110;		// reference com/josh/vku2f/StoredPS256Credential.kpSignature
					getfield_a_this 110;		// reference com/josh/vku2f/StoredPS256Credential.kpSignature
					getfield_a_this 108;		// reference com/josh/vku2f/StoredCredential.keyPair
					invokevirtual 236;		// getPrivate()Ljavacard/security/PrivateKey;
					sconst_1;
					invokevirtual 258;		// init(Ljavacard/security/Key;B)V
					return;
		}

		.method public performSignature([BSS[BS)S 8 {
			.stack 6;
			.locals 0;

				L0:	aload_0;
					invokevirtual 369;		// incrementCounter()V
					getfield_a_this 110;		// reference com/josh/vku2f/StoredPS256Credential.kpSignature
					aload_1;
					sload_2;
					sload_3;
					aload 4;
					sload 5;
					invokevirtual 278;		// sign([BSS[BS)S
					sreturn;
		}

		.method public getAttestedLen()S 10 {
			.stack 1;
			.locals 0;

				L0:	sspush 305;
					sreturn;
		}

		.method public getAttestedData([BS)S 9 {
			.stack 4;
			.locals 2;

				L0:	new 113;		// com/josh/vku2f/CBOREncoder
					dup;
					invokespecial 114;		// com/josh/vku2f/CBOREncoder.<init>()V
					astore_3;
					aload_0;
					aload_1;
					sload_2;
					invokevirtual 370;		// doAttestationCommon([BS)V
					aload_3;
					aload_1;
					sload_2;
					bspush 34;
					sadd;
					sspush 1000;
					invokevirtual 187;		// init([BSS)V
					aload_3;
					sconst_4;
					invokevirtual 223;		// startMap(S)S
					pop;
					aload_3;
					sconst_1;
					invokevirtual 336;		// writeRawByte(B)S
					pop;
					aload_3;
					sconst_3;
					invokevirtual 245;		// encodeUInt8(B)S
					pop;
					aload_3;
					sconst_3;
					invokevirtual 336;		// writeRawByte(B)S
					pop;
					aload_3;
					bspush 36;
					invokevirtual 246;		// encodeNegativeUInt8(B)S
					pop;
					aload_3;
					sconst_0;
					invokevirtual 246;		// encodeNegativeUInt8(B)S
					pop;
					aload_3;
					sspush 256;
					invokevirtual 227;		// startByteString(S)S
					sstore 4;
					getfield_a_this 108;		// reference com/josh/vku2f/StoredCredential.keyPair
					invokevirtual 362;		// getPublic()Ljavacard/security/PublicKey;
					checkcast 0 371;		// T_CLASSORINTERFACE javacard/security/RSAPublicKey
					aload_1;
					sload 4;
					invokeinterface 3 371 5;		// javacard/security/RSAPublicKey
					pop;
					aload_3;
					sconst_1;
					invokevirtual 246;		// encodeNegativeUInt8(B)S
					pop;
					aload_3;
					sconst_3;
					invokevirtual 227;		// startByteString(S)S
					sstore 4;
					getfield_a_this 108;		// reference com/josh/vku2f/StoredCredential.keyPair
					invokevirtual 362;		// getPublic()Ljavacard/security/PublicKey;
					checkcast 0 371;		// T_CLASSORINTERFACE javacard/security/RSAPublicKey
					aload_1;
					sload 4;
					invokeinterface 3 371 4;		// javacard/security/RSAPublicKey
					pop;
					sspush 305;
					sreturn;
		}

	}

	.class public StoredRS256Credential 31 extends StoredCredential {

		.fields {
			 4.1 kpSignature 0;		// Ljavacardx/crypto/Cipher;
		}

		.publicMethodTable 8 {
			equals(Ljava/lang/Object;)Z;
			doHmacSecret([BSS)S;
			initialiseCredSecret()Z;
			checkId([BSS)Z;
			getPresentUser()[Z;
			incrementCounter()V;
			readCounter([BS)S;
			doAttestationCommon([BS)V;
			performSignature([BSS[BS)S;
			getAttestedData([BS)S;
			getAttestedLen()S;
		}

		.packageMethodTable 0 {
		}

		.method public <init>(Lcom/josh/vku2f/AuthenticatorMakeCredential;)V 0 {
			.stack 5;
			.locals 0;

				L0:	aload_0;
					invokespecial 361;		// com/josh/vku2f/StoredCredential.<init>()V
					aload_0;
					new 200;		// javacard/security/KeyPair
					dup;
					sconst_2;
					sspush 2048;
					invokespecial 288;		// javacard/security/KeyPair.<init>(BS)V
					putfield_a 108;		// reference com/josh/vku2f/StoredCredential.keyPair
					getfield_a_this 108;		// reference com/josh/vku2f/StoredCredential.keyPair
					invokevirtual 127;		// genKeyPair()V
					aload_0;
					aload_1;
					invokevirtual 363;		// getUser()Lcom/josh/vku2f/PublicKeyCredentialUserEntity;
					putfield_a 50;		// reference com/josh/vku2f/StoredCredential.userEntity
					aload_0;
					aload_1;
					invokevirtual 364;		// getRp()Lcom/josh/vku2f/PublicKeyCredentialRpEntity;
					putfield_a 42;		// reference com/josh/vku2f/StoredCredential.rpEntity
					aload_0;
					bspush 10;
					sconst_0;
					invokestatic 314;		// javacardx/crypto/Cipher.getInstance(BZ)Ljavacardx/crypto/Cipher;
					putfield_a 111;		// reference com/josh/vku2f/StoredRS256Credential.kpSignature
					getfield_a_this 111;		// reference com/josh/vku2f/StoredRS256Credential.kpSignature
					getfield_a_this 108;		// reference com/josh/vku2f/StoredCredential.keyPair
					invokevirtual 236;		// getPrivate()Ljavacard/security/PrivateKey;
					sconst_2;
					invokevirtual 373;		// init(Ljavacard/security/Key;B)V
					return;
		}

		.method public performSignature([BSS[BS)S 8 {
			.stack 6;
			.locals 0;

				L0:	aload_0;
					invokevirtual 374;		// incrementCounter()V
					getfield_a_this 111;		// reference com/josh/vku2f/StoredRS256Credential.kpSignature
					aload_1;
					sload_2;
					sload_3;
					aload 4;
					sload 5;
					invokevirtual 320;		// doFinal([BSS[BS)S
					sreturn;
		}

		.method public getAttestedLen()S 10 {
			.stack 1;
			.locals 0;

				L0:	sspush 307;
					sreturn;
		}

		.method public getAttestedData([BS)S 9 {
			.stack 4;
			.locals 2;

				L0:	new 113;		// com/josh/vku2f/CBOREncoder
					dup;
					invokespecial 114;		// com/josh/vku2f/CBOREncoder.<init>()V
					astore_3;
					aload_0;
					aload_1;
					sload_2;
					invokevirtual 375;		// doAttestationCommon([BS)V
					aload_3;
					aload_1;
					sload_2;
					bspush 34;
					sadd;
					sspush 1000;
					invokevirtual 187;		// init([BSS)V
					aload_3;
					sconst_4;
					invokevirtual 223;		// startMap(S)S
					pop;
					aload_3;
					sconst_1;
					invokevirtual 336;		// writeRawByte(B)S
					pop;
					aload_3;
					sconst_3;
					invokevirtual 245;		// encodeUInt8(B)S
					pop;
					aload_3;
					sconst_3;
					invokevirtual 336;		// writeRawByte(B)S
					pop;
					aload_3;
					sspush 256;
					invokevirtual 376;		// encodeNegativeUInt16(S)S
					pop;
					aload_3;
					sconst_0;
					invokevirtual 246;		// encodeNegativeUInt8(B)S
					pop;
					aload_3;
					sspush 256;
					invokevirtual 227;		// startByteString(S)S
					sstore 4;
					getfield_a_this 108;		// reference com/josh/vku2f/StoredCredential.keyPair
					invokevirtual 362;		// getPublic()Ljavacard/security/PublicKey;
					checkcast 0 371;		// T_CLASSORINTERFACE javacard/security/RSAPublicKey
					aload_1;
					sload 4;
					invokeinterface 3 371 5;		// javacard/security/RSAPublicKey
					pop;
					aload_3;
					sconst_1;
					invokevirtual 246;		// encodeNegativeUInt8(B)S
					pop;
					aload_3;
					sconst_3;
					invokevirtual 227;		// startByteString(S)S
					sstore 4;
					getfield_a_this 108;		// reference com/josh/vku2f/StoredCredential.keyPair
					invokevirtual 362;		// getPublic()Ljavacard/security/PublicKey;
					checkcast 0 371;		// T_CLASSORINTERFACE javacard/security/RSAPublicKey
					aload_1;
					sload 4;
					invokeinterface 3 371 4;		// javacard/security/RSAPublicKey
					pop;
					sspush 306;
					sreturn;
		}

	}

	.class public Utf8Strings 32 extends 0.0 {		// extends java/lang/Object

		.fields {
			public static final byte[] UTF8_UP 0 = {117,112};		// [B
			public static final byte[] UTF8_ID 1 = {105,100};		// [B
			public static final byte[] UTF8_NAME 2 = {110,97,109,101};		// [B
			public static final byte[] UTF8_DISPLAYNAME 3 = {100,105,115,112,108,97,121,110,97,109,101};		// [B
			public static final byte[] UTF8_ALG 4 = {97,108,103};		// [B
			public static final byte[] UTF8_UV 5 = {117,118};		// [B
			public static final byte[] UTF8_RK 6 = {114,107};		// [B
			public static final byte[] UTF8_TYPE 7 = {116,121,112,101};		// [B
			public static final byte[] UTF8_PACKED 8 = {112,97,99,107,101,100};		// [B
			public static final byte[] UTF8_SIG 9 = {115,105,103};		// [B
			public static final byte[] UTF8_X5C 10 = {120,53,99};		// [B
			public static final byte[] UTF8_PUBLIC_KEY 11 = {112,117,98,108,105,99,45,107,101,121};		// [B
			public static final byte[] UTF8_FIDO2 12 = {70,73,68,79,95,50,95,48};		// [B
			public static final byte[] UTF8_ICON 13 = {105,99,111,110};		// [B
			public static final byte[] UTF8_NULL 14 = {110,117,108,108};		// [B
			public static final byte[] UTF8_EXTENSIONS 15 = {101,120,116,101,110,115,105,111,110,115};		// [B
			public static final byte[] UTF8_HMAC 16 = {72,77,65,67};		// [B
			public static final byte[] UTF8_Cx 17 = {67,120};		// [B
		}

		.publicMethodTable 1 {
			equals(Ljava/lang/Object;)Z;
		}

		.packageMethodTable 0 {
		}

		.method public <init>()V 0 {
			.stack 1;
			.locals 0;

				L0:	aload_0;
					invokespecial 289;		// java/lang/Object.<init>()V
					return;
		}

	}

}