X-Git-Url: https://git.nmode.ca/signal-cli/blobdiff_plain/9a698929f47d47d5cb63ad74ec4c1196f0cd91df..21aa2b2a7f75787413abe282a1c8711dbc7a846f:/graalvm-config-dir/reflect-config.json diff --git a/graalvm-config-dir/reflect-config.json b/graalvm-config-dir/reflect-config.json index 62364e13..d34b2243 100644 --- a/graalvm-config-dir/reflect-config.json +++ b/graalvm-config-dir/reflect-config.json @@ -187,7 +187,42 @@ {"name":"isAutoCommit","parameterTypes":[] }, {"name":"isIsolateInternalQueries","parameterTypes":[] }, {"name":"isReadOnly","parameterTypes":[] }, - {"name":"isRegisterMbeans","parameterTypes":[] } + {"name":"isRegisterMbeans","parameterTypes":[] }, + {"name":"setAllowPoolSuspension","parameterTypes":["boolean"] }, + {"name":"setAutoCommit","parameterTypes":["boolean"] }, + {"name":"setCatalog","parameterTypes":["java.lang.String"] }, + {"name":"setConnectionInitSql","parameterTypes":["java.lang.String"] }, + {"name":"setConnectionTestQuery","parameterTypes":["java.lang.String"] }, + {"name":"setConnectionTimeout","parameterTypes":["long"] }, + {"name":"setDataSource","parameterTypes":["javax.sql.DataSource"] }, + {"name":"setDataSourceClassName","parameterTypes":["java.lang.String"] }, + {"name":"setDataSourceJNDI","parameterTypes":["java.lang.String"] }, + {"name":"setDataSourceProperties","parameterTypes":["java.util.Properties"] }, + {"name":"setDriverClassName","parameterTypes":["java.lang.String"] }, + {"name":"setExceptionOverrideClassName","parameterTypes":["java.lang.String"] }, + {"name":"setHealthCheckProperties","parameterTypes":["java.util.Properties"] }, + {"name":"setHealthCheckRegistry","parameterTypes":["java.lang.Object"] }, + {"name":"setIdleTimeout","parameterTypes":["long"] }, + {"name":"setInitializationFailTimeout","parameterTypes":["long"] }, + {"name":"setIsolateInternalQueries","parameterTypes":["boolean"] }, + {"name":"setJdbcUrl","parameterTypes":["java.lang.String"] }, + {"name":"setKeepaliveTime","parameterTypes":["long"] }, + {"name":"setLeakDetectionThreshold","parameterTypes":["long"] }, + {"name":"setMaxLifetime","parameterTypes":["long"] }, + {"name":"setMaximumPoolSize","parameterTypes":["int"] }, + {"name":"setMetricRegistry","parameterTypes":["java.lang.Object"] }, + {"name":"setMetricsTrackerFactory","parameterTypes":["com.zaxxer.hikari.metrics.MetricsTrackerFactory"] }, + {"name":"setMinimumIdle","parameterTypes":["int"] }, + {"name":"setPassword","parameterTypes":["java.lang.String"] }, + {"name":"setPoolName","parameterTypes":["java.lang.String"] }, + {"name":"setReadOnly","parameterTypes":["boolean"] }, + {"name":"setRegisterMbeans","parameterTypes":["boolean"] }, + {"name":"setScheduledExecutor","parameterTypes":["java.util.concurrent.ScheduledExecutorService"] }, + {"name":"setSchema","parameterTypes":["java.lang.String"] }, + {"name":"setThreadFactory","parameterTypes":["java.util.concurrent.ThreadFactory"] }, + {"name":"setTransactionIsolation","parameterTypes":["java.lang.String"] }, + {"name":"setUsername","parameterTypes":["java.lang.String"] }, + {"name":"setValidationTimeout","parameterTypes":["long"] } ] }, { @@ -233,6 +268,12 @@ "name":"java.lang.Enum", "allDeclaredMethods":true }, +{ + "name":"java.lang.Float", + "allDeclaredFields":true, + "queryAllDeclaredMethods":true, + "queryAllDeclaredConstructors":true +}, { "name":"java.lang.Integer", "allDeclaredFields":true, @@ -274,6 +315,14 @@ {"name":"getSuppressed","parameterTypes":[] } ] }, +{ + "name":"java.lang.constant.Constable", + "queryAllDeclaredMethods":true +}, +{ + "name":"java.lang.constant.ConstantDesc", + "queryAllDeclaredMethods":true +}, { "name":"java.lang.reflect.Method", "methods":[{"name":"isDefault","parameterTypes":[] }] @@ -392,6 +441,9 @@ "name":"javax.security.auth.x500.X500Principal", "methods":[{"name":"","parameterTypes":["sun.security.x509.X500Name"] }] }, +{ + "name":"javax.smartcardio.CardPermission" +}, { "name":"long", "allDeclaredMethods":true, @@ -591,6 +643,17 @@ {"name":"id","parameterTypes":[] } ] }, +{ + "name":"org.asamk.signal.commands.ReceiveCommand$ReceiveParams", + "allDeclaredFields":true, + "queryAllDeclaredMethods":true, + "queryAllDeclaredConstructors":true, + "methods":[ + {"name":"","parameterTypes":["java.lang.Double","java.lang.Integer"] }, + {"name":"maxMessages","parameterTypes":[] }, + {"name":"timeout","parameterTypes":[] } + ] +}, { "name":"org.asamk.signal.commands.RegisterCommand$RegistrationParams", "allDeclaredFields":true, @@ -626,6 +689,13 @@ "allDeclaredMethods":true, "allDeclaredConstructors":true }, +{ + "name":"org.asamk.signal.json.JsonAttachmentData", + "allDeclaredFields":true, + "queryAllDeclaredMethods":true, + "queryAllDeclaredConstructors":true, + "methods":[{"name":"data","parameterTypes":[] }] +}, { "name":"org.asamk.signal.json.JsonCallMessage", "allDeclaredFields":true, @@ -882,7 +952,9 @@ "queryAllDeclaredConstructors":true, "methods":[ {"name":"angle","parameterTypes":[] }, + {"name":"colors","parameterTypes":[] }, {"name":"endColor","parameterTypes":[] }, + {"name":"positions","parameterTypes":[] }, {"name":"startColor","parameterTypes":[] } ] }, @@ -1031,23 +1103,38 @@ "allDeclaredConstructors":true }, { - "name":"org.asamk.signal.manager.storage.groups.GroupStore$GroupsDeserializer", + "name":"org.asamk.signal.manager.storage.groups.LegacyGroupStore$GroupsDeserializer", "methods":[{"name":"","parameterTypes":[] }] }, { - "name":"org.asamk.signal.manager.storage.groups.GroupStore$Storage", + "name":"org.asamk.signal.manager.storage.groups.LegacyGroupStore$Storage", "allDeclaredFields":true, - "allDeclaredMethods":true, - "allDeclaredConstructors":true + "queryAllDeclaredMethods":true, + "queryAllDeclaredConstructors":true, + "methods":[ + {"name":"","parameterTypes":["java.util.List"] }, + {"name":"groups","parameterTypes":[] } + ] }, { - "name":"org.asamk.signal.manager.storage.groups.GroupStore$Storage$GroupV1", + "name":"org.asamk.signal.manager.storage.groups.LegacyGroupStore$Storage$GroupV1", "allDeclaredFields":true, - "allDeclaredMethods":true, - "allDeclaredConstructors":true + "queryAllDeclaredMethods":true, + "queryAllDeclaredConstructors":true, + "methods":[ + {"name":"","parameterTypes":["java.lang.String","java.lang.String","java.lang.String","java.lang.String","int","boolean","boolean","java.util.List"] }, + {"name":"archived","parameterTypes":[] }, + {"name":"blocked","parameterTypes":[] }, + {"name":"color","parameterTypes":[] }, + {"name":"expectedV2Id","parameterTypes":[] }, + {"name":"groupId","parameterTypes":[] }, + {"name":"members","parameterTypes":[] }, + {"name":"messageExpirationTime","parameterTypes":[] }, + {"name":"name","parameterTypes":[] } + ] }, { - "name":"org.asamk.signal.manager.storage.groups.GroupStore$Storage$GroupV1$JsonRecipientAddress", + "name":"org.asamk.signal.manager.storage.groups.LegacyGroupStore$Storage$GroupV1$JsonRecipientAddress", "allDeclaredFields":true, "queryAllDeclaredMethods":true, "queryAllDeclaredConstructors":true, @@ -1058,24 +1145,34 @@ ] }, { - "name":"org.asamk.signal.manager.storage.groups.GroupStore$Storage$GroupV1$MembersDeserializer", + "name":"org.asamk.signal.manager.storage.groups.LegacyGroupStore$Storage$GroupV1$MembersDeserializer", "methods":[{"name":"","parameterTypes":[] }] }, { - "name":"org.asamk.signal.manager.storage.groups.GroupStore$Storage$GroupV1$MembersSerializer", - "methods":[{"name":"","parameterTypes":[] }] -}, -{ - "name":"org.asamk.signal.manager.storage.groups.GroupStore$Storage$GroupV2", + "name":"org.asamk.signal.manager.storage.groups.LegacyGroupStore$Storage$GroupV2", "allDeclaredFields":true, - "allDeclaredMethods":true, - "allDeclaredConstructors":true + "queryAllDeclaredMethods":true, + "queryAllDeclaredConstructors":true, + "methods":[ + {"name":"","parameterTypes":["java.lang.String","java.lang.String","java.lang.String","boolean","boolean"] }, + {"name":"blocked","parameterTypes":[] }, + {"name":"distributionId","parameterTypes":[] }, + {"name":"groupId","parameterTypes":[] }, + {"name":"masterKey","parameterTypes":[] }, + {"name":"permissionDenied","parameterTypes":[] } + ] }, { - "name":"org.asamk.signal.manager.storage.identities.IdentityKeyStore$IdentityStorage", + "name":"org.asamk.signal.manager.storage.identities.LegacyIdentityKeyStore$IdentityStorage", "allDeclaredFields":true, - "allDeclaredMethods":true, - "allDeclaredConstructors":true + "queryAllDeclaredMethods":true, + "queryAllDeclaredConstructors":true, + "methods":[ + {"name":"","parameterTypes":["java.lang.String","int","long"] }, + {"name":"addedTimestamp","parameterTypes":[] }, + {"name":"identityKey","parameterTypes":[] }, + {"name":"trustLevel","parameterTypes":[] } + ] }, { "name":"org.asamk.signal.manager.storage.profiles.LegacyProfileStore", @@ -1138,50 +1235,82 @@ "allDeclaredFields":true, "queryAllDeclaredMethods":true, "queryAllDeclaredConstructors":true, - "methods":[{"name":"","parameterTypes":["java.util.List","long"] }] + "methods":[ + {"name":"","parameterTypes":["java.util.List","long"] }, + {"name":"lastId","parameterTypes":[] }, + {"name":"recipients","parameterTypes":[] } + ] }, { "name":"org.asamk.signal.manager.storage.recipients.LegacyRecipientStore2$Storage$Recipient", "allDeclaredFields":true, "queryAllDeclaredMethods":true, "queryAllDeclaredConstructors":true, - "methods":[{"name":"","parameterTypes":["long","java.lang.String","java.lang.String","java.lang.String","java.lang.String","org.asamk.signal.manager.storage.recipients.LegacyRecipientStore2$Storage$Recipient$Contact","org.asamk.signal.manager.storage.recipients.LegacyRecipientStore2$Storage$Recipient$Profile"] }] + "methods":[ + {"name":"","parameterTypes":["long","java.lang.String","java.lang.String","java.lang.String","java.lang.String","org.asamk.signal.manager.storage.recipients.LegacyRecipientStore2$Storage$Recipient$Contact","org.asamk.signal.manager.storage.recipients.LegacyRecipientStore2$Storage$Recipient$Profile"] }, + {"name":"contact","parameterTypes":[] }, + {"name":"expiringProfileKeyCredential","parameterTypes":[] }, + {"name":"id","parameterTypes":[] }, + {"name":"number","parameterTypes":[] }, + {"name":"profile","parameterTypes":[] }, + {"name":"profileKey","parameterTypes":[] }, + {"name":"uuid","parameterTypes":[] } + ] }, { "name":"org.asamk.signal.manager.storage.recipients.LegacyRecipientStore2$Storage$Recipient$Contact", "allDeclaredFields":true, "queryAllDeclaredMethods":true, "queryAllDeclaredConstructors":true, - "methods":[{"name":"","parameterTypes":["java.lang.String","java.lang.String","int","boolean","boolean","boolean"] }] + "methods":[ + {"name":"","parameterTypes":["java.lang.String","java.lang.String","int","boolean","boolean","boolean"] }, + {"name":"archived","parameterTypes":[] }, + {"name":"blocked","parameterTypes":[] }, + {"name":"color","parameterTypes":[] }, + {"name":"messageExpirationTime","parameterTypes":[] }, + {"name":"name","parameterTypes":[] }, + {"name":"profileSharingEnabled","parameterTypes":[] } + ] }, { "name":"org.asamk.signal.manager.storage.recipients.LegacyRecipientStore2$Storage$Recipient$Profile", "allDeclaredFields":true, "queryAllDeclaredMethods":true, "queryAllDeclaredConstructors":true, - "methods":[{"name":"","parameterTypes":["long","java.lang.String","java.lang.String","java.lang.String","java.lang.String","java.lang.String","java.lang.String","java.lang.String","java.util.Set"] }] + "methods":[ + {"name":"","parameterTypes":["long","java.lang.String","java.lang.String","java.lang.String","java.lang.String","java.lang.String","java.lang.String","java.lang.String","java.util.Set"] }, + {"name":"about","parameterTypes":[] }, + {"name":"aboutEmoji","parameterTypes":[] }, + {"name":"avatarUrlPath","parameterTypes":[] }, + {"name":"capabilities","parameterTypes":[] }, + {"name":"familyName","parameterTypes":[] }, + {"name":"givenName","parameterTypes":[] }, + {"name":"lastUpdateTimestamp","parameterTypes":[] }, + {"name":"mobileCoinAddress","parameterTypes":[] }, + {"name":"unidentifiedAccessMode","parameterTypes":[] } + ] }, { - "name":"org.asamk.signal.manager.storage.recipients.RecipientAddress", + "name":"org.asamk.signal.manager.storage.senderKeys.LegacySenderKeySharedStore$Storage", "allDeclaredFields":true, "queryAllDeclaredMethods":true, "queryAllDeclaredConstructors":true, "methods":[ - {"name":"number","parameterTypes":[] }, - {"name":"uuid","parameterTypes":[] } + {"name":"","parameterTypes":["java.util.List"] }, + {"name":"sharedSenderKeys","parameterTypes":[] } ] }, { - "name":"org.asamk.signal.manager.storage.senderKeys.SenderKeySharedStore$Storage", - "allDeclaredFields":true, - "allDeclaredMethods":true, - "allDeclaredConstructors":true -}, -{ - "name":"org.asamk.signal.manager.storage.senderKeys.SenderKeySharedStore$Storage$SharedSenderKey", + "name":"org.asamk.signal.manager.storage.senderKeys.LegacySenderKeySharedStore$Storage$SharedSenderKey", "allDeclaredFields":true, - "allDeclaredMethods":true, - "allDeclaredConstructors":true + "queryAllDeclaredMethods":true, + "queryAllDeclaredConstructors":true, + "methods":[ + {"name":"","parameterTypes":["long","int","java.lang.String"] }, + {"name":"deviceId","parameterTypes":[] }, + {"name":"distributionId","parameterTypes":[] }, + {"name":"recipientId","parameterTypes":[] } + ] }, { "name":"org.asamk.signal.manager.storage.stickerPacks.JsonStickerPack", @@ -1214,21 +1343,22 @@ "allDeclaredFields":true, "queryAllDeclaredMethods":true, "queryAllDeclaredConstructors":true, - "methods":[{"name":"","parameterTypes":["java.util.List"] }] + "methods":[ + {"name":"","parameterTypes":["java.util.List"] }, + {"name":"stickers","parameterTypes":[] } + ] }, { "name":"org.asamk.signal.manager.storage.stickers.LegacyStickerStore$Storage$Sticker", "allDeclaredFields":true, "queryAllDeclaredMethods":true, "queryAllDeclaredConstructors":true, - "methods":[{"name":"","parameterTypes":["java.lang.String","java.lang.String","boolean"] }] -}, -{ - "name":"org.asamk.signal.manager.storage.stickers.StickerStore", - "allDeclaredFields":true, - "allDeclaredMethods":true, - "allDeclaredConstructors":true, - "fields":[{"name":"stickers", "allowWrite":true}] + "methods":[ + {"name":"","parameterTypes":["java.lang.String","java.lang.String","boolean"] }, + {"name":"installed","parameterTypes":[] }, + {"name":"packId","parameterTypes":[] }, + {"name":"packKey","parameterTypes":[] } + ] }, { "name":"org.asamk.signal.util.SecurityProvider$DefaultRandom", @@ -1661,6 +1791,27 @@ "name":"org.freedesktop.dbus.interfaces.Properties$PropertiesChanged", "allPublicConstructors":true }, +{ + "name":"org.signal.cdsi.proto.ClientRequest", + "fields":[ + {"name":"aciUakPairs_"}, + {"name":"discardE164S_"}, + {"name":"newE164S_"}, + {"name":"prevE164S_"}, + {"name":"returnAcisWithoutUaks_"}, + {"name":"tokenAck_"}, + {"name":"token_"} + ] +}, +{ + "name":"org.signal.cdsi.proto.ClientResponse", + "fields":[ + {"name":"debugPermitsUsed_"}, + {"name":"e164PniAciTriples_"}, + {"name":"retryAfterSecs_"}, + {"name":"token_"} + ] +}, { "name":"org.signal.libsignal.protocol.state.IdentityKeyStore", "allDeclaredMethods":true @@ -2106,7 +2257,6 @@ "queryAllDeclaredMethods":true, "queryAllDeclaredConstructors":true, "methods":[ - {"name":"getCode","parameterTypes":[] }, {"name":"getNumber","parameterTypes":[] }, {"name":"getRegistrationLock","parameterTypes":[] } ] @@ -2372,6 +2522,13 @@ "allDeclaredMethods":true, "allDeclaredConstructors":true }, +{ + "name":"org.whispersystems.signalservice.internal.push.CdsiAuthResponse", + "allDeclaredFields":true, + "queryAllDeclaredMethods":true, + "queryAllDeclaredConstructors":true, + "methods":[{"name":"","parameterTypes":[] }] +}, { "name":"org.whispersystems.signalservice.internal.push.ConfirmCodeMessage", "allDeclaredFields":true, @@ -2523,6 +2680,25 @@ "allDeclaredMethods":true, "allDeclaredConstructors":true }, +{ + "name":"org.whispersystems.signalservice.internal.push.RegistrationSessionMetadataJson", + "allDeclaredFields":true, + "queryAllDeclaredMethods":true, + "queryAllDeclaredConstructors":true, + "methods":[{"name":"","parameterTypes":["java.lang.String","java.lang.Integer","java.lang.Integer","java.lang.Integer","boolean","java.util.List","boolean"] }] +}, +{ + "name":"org.whispersystems.signalservice.internal.push.RegistrationSessionRequestBody", + "allDeclaredFields":true, + "queryAllDeclaredMethods":true, + "queryAllDeclaredConstructors":true, + "methods":[ + {"name":"getAccountAttributes","parameterTypes":[] }, + {"name":"getRecoveryPassword","parameterTypes":[] }, + {"name":"getSessionId","parameterTypes":[] }, + {"name":"getSkipDeviceTransfer","parameterTypes":[] } + ] +}, { "name":"org.whispersystems.signalservice.internal.push.SendGroupMessageResponse", "allDeclaredFields":true, @@ -2567,6 +2743,16 @@ {"name":"width_"} ] }, +{ + "name":"org.whispersystems.signalservice.internal.push.SignalServiceProtos$BodyRange", + "fields":[ + {"name":"associatedValueCase_"}, + {"name":"associatedValue_"}, + {"name":"bitField0_"}, + {"name":"length_"}, + {"name":"start_"} + ] +}, { "name":"org.whispersystems.signalservice.internal.push.SignalServiceProtos$CallMessage", "fields":[ @@ -2662,6 +2848,7 @@ {"name":"dataMessage_"}, {"name":"decryptionErrorMessage_"}, {"name":"nullMessage_"}, + {"name":"pniSignatureMessage_"}, {"name":"receiptMessage_"}, {"name":"senderKeyDistributionMessage_"}, {"name":"storyMessage_"}, @@ -2696,16 +2883,6 @@ {"name":"timestamp_"} ] }, -{ - "name":"org.whispersystems.signalservice.internal.push.SignalServiceProtos$DataMessage$BodyRange", - "fields":[ - {"name":"associatedValueCase_"}, - {"name":"associatedValue_"}, - {"name":"bitField0_"}, - {"name":"length_"}, - {"name":"start_"} - ] -}, { "name":"org.whispersystems.signalservice.internal.push.SignalServiceProtos$DataMessage$Contact", "fields":[ @@ -2864,15 +3041,15 @@ {"name":"bitField0_"}, {"name":"content_"}, {"name":"destinationUuid_"}, - {"name":"legacyMessage_"}, - {"name":"relay_"}, + {"name":"reportingToken_"}, {"name":"serverGuid_"}, {"name":"serverTimestamp_"}, {"name":"sourceDevice_"}, - {"name":"sourceE164_"}, {"name":"sourceUuid_"}, + {"name":"story_"}, {"name":"timestamp_"}, {"name":"type_"}, + {"name":"updatedPni_"}, {"name":"urgent_"} ] }, @@ -2958,6 +3135,14 @@ {"name":"signature_"} ] }, +{ + "name":"org.whispersystems.signalservice.internal.push.SignalServiceProtos$PniSignatureMessage", + "fields":[ + {"name":"bitField0_"}, + {"name":"pni_"}, + {"name":"signature_"} + ] +}, { "name":"org.whispersystems.signalservice.internal.push.SignalServiceProtos$Preview", "fields":[ @@ -2984,6 +3169,7 @@ {"name":"attachmentCase_"}, {"name":"attachment_"}, {"name":"bitField0_"}, + {"name":"bodyRanges_"}, {"name":"group_"}, {"name":"profileKey_"} ] @@ -2993,6 +3179,7 @@ "fields":[ {"name":"bitField0_"}, {"name":"blocked_"}, + {"name":"callEvent_"}, {"name":"configuration_"}, {"name":"contacts_"}, {"name":"fetchLatest_"}, @@ -3020,6 +3207,18 @@ {"name":"uuids_"} ] }, +{ + "name":"org.whispersystems.signalservice.internal.push.SignalServiceProtos$SyncMessage$CallEvent", + "fields":[ + {"name":"bitField0_"}, + {"name":"direction_"}, + {"name":"event_"}, + {"name":"id_"}, + {"name":"peerUuid_"}, + {"name":"timestamp_"}, + {"name":"type_"} + ] +}, { "name":"org.whispersystems.signalservice.internal.push.SignalServiceProtos$SyncMessage$Configuration", "fields":[ @@ -3191,7 +3390,9 @@ "fields":[ {"name":"angle_"}, {"name":"bitField0_"}, + {"name":"colors_"}, {"name":"endColor_"}, + {"name":"positions_"}, {"name":"startColor_"} ] }, @@ -3221,6 +3422,33 @@ "queryAllDeclaredConstructors":true, "methods":[{"name":"","parameterTypes":[] }] }, +{ + "name":"org.whispersystems.signalservice.internal.push.UpdateVerificationSessionRequestBody", + "allDeclaredFields":true, + "queryAllDeclaredMethods":true, + "queryAllDeclaredConstructors":true, + "methods":[ + {"name":"getCaptcha","parameterTypes":[] }, + {"name":"getMcc","parameterTypes":[] }, + {"name":"getMnc","parameterTypes":[] }, + {"name":"getPushChallenge","parameterTypes":[] }, + {"name":"getPushToken","parameterTypes":[] }, + {"name":"getPushTokenType","parameterTypes":[] } + ] +}, +{ + "name":"org.whispersystems.signalservice.internal.push.VerificationSessionMetadataRequestBody", + "allDeclaredFields":true, + "queryAllDeclaredMethods":true, + "queryAllDeclaredConstructors":true, + "methods":[ + {"name":"getMcc","parameterTypes":[] }, + {"name":"getMnc","parameterTypes":[] }, + {"name":"getNumber","parameterTypes":[] }, + {"name":"getPushToken","parameterTypes":[] }, + {"name":"getPushTokenType","parameterTypes":[] } + ] +}, { "name":"org.whispersystems.signalservice.internal.push.VerifyAccountResponse", "allDeclaredFields":true, @@ -3320,6 +3548,7 @@ "name":"org.whispersystems.signalservice.internal.storage.protos.ManifestRecord", "fields":[ {"name":"identifiers_"}, + {"name":"sourceDevice_"}, {"name":"version_"} ] },