Merge branch 'develop' into feature/fga/improve_node_architecture
This commit is contained in:
commit
a230144431
59 changed files with 191 additions and 117 deletions
2
.github/workflows/nightly.yml
vendored
2
.github/workflows/nightly.yml
vendored
|
|
@ -34,7 +34,7 @@ jobs:
|
|||
FIREBASE_TOKEN: ${{ secrets.ELEMENT_ANDROID_NIGHTLY_FIREBASE_TOKEN }}
|
||||
- name: Additionally upload Nightly APK to browserstack for testing
|
||||
continue-on-error: true # don't block anything by this upload failing (for now)
|
||||
run: curl -u "$BROWSERSTACK_USERNAME:$BROWSERSTACK_PASSWORD" -X POST "https://api-cloud.browserstack.com/app-automate/upload" -F "file=@app/build/outputs/apk/nightly/app-nightly.apk" -F "custom_id=element-x-android-nightly"
|
||||
run: curl -u "$BROWSERSTACK_USERNAME:$BROWSERSTACK_PASSWORD" -X POST "https://api-cloud.browserstack.com/app-automate/upload" -F "file=@app/build/outputs/apk/nightly/app-universal-nightly.apk" -F "custom_id=element-x-android-nightly"
|
||||
env:
|
||||
BROWSERSTACK_USERNAME: ${{ secrets.ELEMENT_ANDROID_BROWSERSTACK_USERNAME }}
|
||||
BROWSERSTACK_PASSWORD: ${{ secrets.ELEMENT_ANDROID_BROWSERSTACK_ACCESS_KEY }}
|
||||
|
|
|
|||
12
.github/workflows/nightly_manual.yml
vendored
12
.github/workflows/nightly_manual.yml
vendored
|
|
@ -13,6 +13,15 @@ jobs:
|
|||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v3
|
||||
- name: Install towncrier
|
||||
run: |
|
||||
python3 -m pip install towncrier
|
||||
- name: Prepare changelog file
|
||||
run: |
|
||||
mv towncrier.toml towncrier.toml.bak
|
||||
sed 's/CHANGES\.md/CHANGES_NIGHTLY\.md/' towncrier.toml.bak > towncrier.toml
|
||||
rm towncrier.toml.bak
|
||||
yes n | towncrier build --version nightly
|
||||
- name: Build and upload Nightly APK
|
||||
run: |
|
||||
./gradlew assembleNightly appDistributionUploadNightly $CI_GRADLE_ARG_PROPERTIES
|
||||
|
|
@ -23,8 +32,7 @@ jobs:
|
|||
FIREBASE_TOKEN: ${{ secrets.ELEMENT_ANDROID_NIGHTLY_FIREBASE_TOKEN }}
|
||||
- name: Additionally upload Nightly APK to browserstack for testing
|
||||
continue-on-error: true # don't block anything by this upload failing (for now)
|
||||
run: curl -u "$BROWSERSTACK_USERNAME:$BROWSERSTACK_PASSWORD" -X POST "https://api-cloud.browserstack.com/app-automate/upload" -F "file=@app/build/outputs/apk/nightly/app-nightly.apk" -F "custom_id=element-x-android-nightly"
|
||||
run: curl -u "$BROWSERSTACK_USERNAME:$BROWSERSTACK_PASSWORD" -X POST "https://api-cloud.browserstack.com/app-automate/upload" -F "file=@app/build/outputs/apk/nightly/app-universal-nightly.apk" -F "custom_id=element-x-android-nightly"
|
||||
env:
|
||||
BROWSERSTACK_USERNAME: ${{ secrets.ELEMENT_ANDROID_BROWSERSTACK_USERNAME }}
|
||||
BROWSERSTACK_PASSWORD: ${{ secrets.ELEMENT_ANDROID_BROWSERSTACK_ACCESS_KEY }}
|
||||
|
||||
|
|
|
|||
|
|
@ -125,6 +125,10 @@ android {
|
|||
|
||||
firebaseAppDistribution {
|
||||
artifactType = "APK"
|
||||
// We upload the universal APK to fix this error:
|
||||
// "App Distribution found more than 1 output file for this variant.
|
||||
// Please contact firebase-support@google.com for help using APK splits with App Distribution."
|
||||
artifactPath = "$rootDir/app/build/outputs/apk/nightly/app-universal-nightly.apk"
|
||||
// This file will be generated by the GitHub action
|
||||
releaseNotesFile = "CHANGES_NIGHTLY.md"
|
||||
groups = "external-testers"
|
||||
|
|
|
|||
1
changelog.d/101.bugfix
Normal file
1
changelog.d/101.bugfix
Normal file
|
|
@ -0,0 +1 @@
|
|||
Address design issues in the change server screen
|
||||
|
|
@ -17,6 +17,7 @@
|
|||
package io.element.android.features.login.impl.changeserver
|
||||
|
||||
import androidx.compose.foundation.background
|
||||
import androidx.compose.foundation.interaction.MutableInteractionSource
|
||||
import androidx.compose.foundation.layout.Box
|
||||
import androidx.compose.foundation.layout.Column
|
||||
import androidx.compose.foundation.layout.Spacer
|
||||
|
|
@ -44,23 +45,32 @@ import androidx.compose.ui.Alignment
|
|||
import androidx.compose.ui.Modifier
|
||||
import androidx.compose.ui.platform.LocalFocusManager
|
||||
import androidx.compose.ui.res.stringResource
|
||||
import androidx.compose.ui.text.ExperimentalTextApi
|
||||
import androidx.compose.ui.text.ParagraphStyle
|
||||
import androidx.compose.ui.text.SpanStyle
|
||||
import androidx.compose.ui.text.UrlAnnotation
|
||||
import androidx.compose.ui.text.buildAnnotatedString
|
||||
import androidx.compose.ui.text.input.ImeAction
|
||||
import androidx.compose.ui.text.input.KeyboardType
|
||||
import androidx.compose.ui.text.style.TextAlign
|
||||
import androidx.compose.ui.text.withStyle
|
||||
import androidx.compose.ui.tooling.preview.Preview
|
||||
import androidx.compose.ui.tooling.preview.PreviewParameter
|
||||
import androidx.compose.ui.unit.dp
|
||||
import io.element.android.features.login.impl.R
|
||||
import io.element.android.features.login.impl.error.changeServerError
|
||||
import io.element.android.features.login.impl.util.LoginConstants
|
||||
import io.element.android.libraries.architecture.Async
|
||||
import io.element.android.libraries.designsystem.ElementTextStyles
|
||||
import io.element.android.libraries.designsystem.LinkColor
|
||||
import io.element.android.libraries.designsystem.components.ClickableLinkText
|
||||
import io.element.android.libraries.designsystem.components.button.BackButton
|
||||
import io.element.android.libraries.designsystem.components.dialogs.ConfirmationDialog
|
||||
import io.element.android.libraries.designsystem.components.dialogs.ErrorDialog
|
||||
import io.element.android.libraries.designsystem.components.form.textFieldState
|
||||
import io.element.android.libraries.designsystem.preview.ElementPreviewDark
|
||||
import io.element.android.libraries.designsystem.preview.ElementPreviewLight
|
||||
import io.element.android.libraries.designsystem.theme.LocalColors
|
||||
import io.element.android.libraries.designsystem.components.button.BackButton
|
||||
import io.element.android.libraries.designsystem.theme.components.Button
|
||||
import io.element.android.libraries.designsystem.theme.components.CircularProgressIndicator
|
||||
import io.element.android.libraries.designsystem.theme.components.Icon
|
||||
|
|
@ -75,7 +85,7 @@ import io.element.android.libraries.testtags.testTag
|
|||
import org.matrix.rustcomponents.sdk.AuthenticationException
|
||||
import io.element.android.libraries.ui.strings.R as StringR
|
||||
|
||||
@OptIn(ExperimentalMaterial3Api::class)
|
||||
@OptIn(ExperimentalMaterial3Api::class, ExperimentalTextApi::class)
|
||||
@Composable
|
||||
fun ChangeServerView(
|
||||
state: ChangeServerState,
|
||||
|
|
@ -215,12 +225,27 @@ fun ChangeServerView(
|
|||
}
|
||||
}
|
||||
Spacer(Modifier.height(8.dp))
|
||||
Text(
|
||||
text = stringResource(StringR.string.server_selection_server_footer),
|
||||
val footerMessage = stringResource(StringR.string.server_selection_server_footer)
|
||||
val footerAction = stringResource(StringR.string.server_selection_server_footer_action)
|
||||
val footerText = buildAnnotatedString {
|
||||
val defaultColor = MaterialTheme.colorScheme.tertiary
|
||||
withStyle(ParagraphStyle(textAlign = TextAlign.Start)) {
|
||||
withStyle(SpanStyle(color = defaultColor)) {
|
||||
append(footerMessage)
|
||||
append(" ")
|
||||
}
|
||||
val start = length
|
||||
withStyle(SpanStyle(color = LinkColor)) {
|
||||
append(footerAction)
|
||||
}
|
||||
addUrlAnnotation(UrlAnnotation(LoginConstants.SLIDING_SYNC_READ_MORE_URL), start, length)
|
||||
}
|
||||
}
|
||||
ClickableLinkText(
|
||||
text = footerText,
|
||||
interactionSource = MutableInteractionSource(),
|
||||
modifier = Modifier.padding(horizontal = 16.dp),
|
||||
style = ElementTextStyles.Regular.caption1,
|
||||
textAlign = TextAlign.Start,
|
||||
color = MaterialTheme.colorScheme.tertiary,
|
||||
)
|
||||
Spacer(Modifier.height(32.dp))
|
||||
Button(
|
||||
|
|
@ -259,6 +284,8 @@ internal fun SlidingSyncNotSupportedDialog(onLearnMoreClicked: () -> Unit, onDis
|
|||
onDismiss = onDismiss,
|
||||
submitText = stringResource(StringR.string.action_learn_more),
|
||||
onSubmitClicked = onLearnMoreClicked,
|
||||
onCancelClicked = onDismiss,
|
||||
emphasizeSubmitButton = true,
|
||||
title = stringResource(StringR.string.server_selection_sliding_sync_alert_title),
|
||||
content = stringResource(StringR.string.server_selection_sliding_sync_alert_message),
|
||||
)
|
||||
|
|
|
|||
|
|
@ -36,7 +36,6 @@ test_core = "1.5.0"
|
|||
coil = "2.2.2"
|
||||
datetime = "0.4.0"
|
||||
serialization_json = "1.5.0"
|
||||
# Warning, also hard-coded in composeDependencies()
|
||||
showkase = "1.0.0-beta17"
|
||||
jsoup = "1.15.4"
|
||||
appyx = "1.0.5"
|
||||
|
|
|
|||
|
|
@ -68,4 +68,4 @@ val ElementGreen = Color(0xFF0DBD8B)
|
|||
val ElementOrange = Color(0xFFD9B072)
|
||||
val Vermilion = Color(0xFFFF5B55)
|
||||
|
||||
val LinkColor = Color(0xFF054F6E)
|
||||
val LinkColor = Color(0xFF0086E6)
|
||||
|
|
|
|||
|
|
@ -30,6 +30,7 @@ import androidx.compose.ui.geometry.Offset
|
|||
import androidx.compose.ui.input.pointer.pointerInput
|
||||
import androidx.compose.ui.platform.LocalUriHandler
|
||||
import androidx.compose.ui.text.AnnotatedString
|
||||
import androidx.compose.ui.text.ExperimentalTextApi
|
||||
import androidx.compose.ui.text.ParagraphStyle
|
||||
import androidx.compose.ui.text.TextLayoutResult
|
||||
import androidx.compose.ui.text.TextStyle
|
||||
|
|
@ -40,14 +41,15 @@ import io.element.android.libraries.designsystem.theme.components.Text
|
|||
import kotlinx.collections.immutable.ImmutableMap
|
||||
import kotlinx.collections.immutable.persistentMapOf
|
||||
|
||||
@OptIn(ExperimentalTextApi::class)
|
||||
@Composable
|
||||
fun ClickableLinkText(
|
||||
text: AnnotatedString,
|
||||
linkAnnotationTag: String,
|
||||
onClick: () -> Unit,
|
||||
onLongClick: () -> Unit,
|
||||
interactionSource: MutableInteractionSource,
|
||||
modifier: Modifier = Modifier,
|
||||
linkAnnotationTag: String = "",
|
||||
onClick: () -> Unit = {},
|
||||
onLongClick: () -> Unit = {},
|
||||
style: TextStyle = LocalTextStyle.current,
|
||||
inlineContent: ImmutableMap<String, InlineTextContent> = persistentMapOf(),
|
||||
) {
|
||||
|
|
@ -71,12 +73,14 @@ fun ClickableLinkText(
|
|||
) { offset ->
|
||||
layoutResult.value?.let { layoutResult ->
|
||||
val position = layoutResult.getOffsetForPosition(offset)
|
||||
val linkAnnotations =
|
||||
val linkUrlAnnotations = text.getUrlAnnotations(position, position)
|
||||
.map { AnnotatedString.Range(it.item.url, it.start, it.end, linkAnnotationTag) }
|
||||
val linkStringAnnotations = linkUrlAnnotations +
|
||||
text.getStringAnnotations(linkAnnotationTag, position, position)
|
||||
if (linkAnnotations.isEmpty()) {
|
||||
if (linkStringAnnotations.isEmpty()) {
|
||||
onClick()
|
||||
} else {
|
||||
uriHandler.openUri(linkAnnotations.first().item)
|
||||
uriHandler.openUri(linkStringAnnotations.first().item)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -16,9 +16,6 @@
|
|||
|
||||
package io.element.android.libraries.designsystem.components.dialogs
|
||||
|
||||
import androidx.compose.foundation.layout.Arrangement
|
||||
import androidx.compose.foundation.layout.Row
|
||||
import androidx.compose.foundation.layout.fillMaxWidth
|
||||
import androidx.compose.material3.AlertDialog
|
||||
import androidx.compose.material3.AlertDialogDefaults
|
||||
import androidx.compose.material3.MaterialTheme
|
||||
|
|
@ -29,28 +26,33 @@ import androidx.compose.ui.graphics.Color
|
|||
import androidx.compose.ui.graphics.Shape
|
||||
import androidx.compose.ui.res.stringResource
|
||||
import androidx.compose.ui.tooling.preview.Preview
|
||||
import androidx.compose.ui.tooling.preview.PreviewParameter
|
||||
import androidx.compose.ui.unit.Dp
|
||||
import io.element.android.libraries.designsystem.ElementTextStyles
|
||||
import io.element.android.libraries.designsystem.preview.ElementPreviewDark
|
||||
import io.element.android.libraries.designsystem.preview.ElementPreviewLight
|
||||
import io.element.android.libraries.designsystem.theme.components.Text
|
||||
import io.element.android.libraries.designsystem.utils.BooleanProvider
|
||||
import io.element.android.libraries.ui.strings.R as StringR
|
||||
|
||||
@Composable
|
||||
fun ConfirmationDialog(
|
||||
title: String,
|
||||
content: String,
|
||||
onSubmitClicked: () -> Unit,
|
||||
onDismiss: () -> Unit,
|
||||
modifier: Modifier = Modifier,
|
||||
submitText: String = stringResource(id = StringR.string.ok),
|
||||
cancelText: String = stringResource(id = StringR.string.action_cancel),
|
||||
thirdButtonText: String? = null,
|
||||
onSubmitClicked: () -> Unit = {},
|
||||
onCancelClicked: () -> Unit = {},
|
||||
emphasizeSubmitButton: Boolean = false,
|
||||
onCancelClicked: () -> Unit = onDismiss,
|
||||
onThirdButtonClicked: () -> Unit = {},
|
||||
onDismiss: () -> Unit = {},
|
||||
shape: Shape = AlertDialogDefaults.shape,
|
||||
containerColor: Color = AlertDialogDefaults.containerColor,
|
||||
iconContentColor: Color = AlertDialogDefaults.iconContentColor,
|
||||
titleContentColor: Color = AlertDialogDefaults.titleContentColor,
|
||||
// According to the design team, `primary` should be used here instead of the default `onSurface`
|
||||
titleContentColor: Color = MaterialTheme.colorScheme.primary,
|
||||
textContentColor: Color = AlertDialogDefaults.textContentColor,
|
||||
tonalElevation: Dp = AlertDialogDefaults.TonalElevation,
|
||||
) {
|
||||
|
|
@ -79,9 +81,16 @@ fun ConfirmationDialog(
|
|||
TextButton(
|
||||
onClick = {
|
||||
onSubmitClicked()
|
||||
}
|
||||
},
|
||||
) {
|
||||
Text(submitText)
|
||||
Text(
|
||||
submitText,
|
||||
style = if (emphasizeSubmitButton) {
|
||||
ElementTextStyles.Bold.subheadline
|
||||
} else {
|
||||
MaterialTheme.typography.labelLarge
|
||||
}
|
||||
)
|
||||
}
|
||||
},
|
||||
shape = shape,
|
||||
|
|
@ -95,17 +104,22 @@ fun ConfirmationDialog(
|
|||
|
||||
@Preview
|
||||
@Composable
|
||||
internal fun ConfirmationDialogLightPreview() = ElementPreviewLight { ContentToPreview() }
|
||||
internal fun ConfirmationDialogLightPreview(@PreviewParameter(BooleanProvider::class) emphasizeSubmitButton: Boolean) =
|
||||
ElementPreviewLight { ContentToPreview(emphasizeSubmitButton) }
|
||||
|
||||
@Preview
|
||||
@Composable
|
||||
internal fun ConfirmationDialogDarkPreview() = ElementPreviewDark { ContentToPreview() }
|
||||
internal fun ConfirmationDialogDarkPreview(@PreviewParameter(BooleanProvider::class) emphasizeSubmitButton: Boolean) =
|
||||
ElementPreviewDark { ContentToPreview(emphasizeSubmitButton) }
|
||||
|
||||
@Composable
|
||||
private fun ContentToPreview() {
|
||||
private fun ContentToPreview(emphasizeSubmitButton: Boolean) {
|
||||
ConfirmationDialog(
|
||||
title = "Title",
|
||||
content = "Content",
|
||||
thirdButtonText = "Disable"
|
||||
thirdButtonText = "Disable",
|
||||
onSubmitClicked = {},
|
||||
onDismiss = {},
|
||||
emphasizeSubmitButton = emphasizeSubmitButton,
|
||||
)
|
||||
}
|
||||
|
|
|
|||
|
|
@ -24,6 +24,7 @@ import io.element.android.libraries.designsystem.Azure
|
|||
import io.element.android.libraries.designsystem.Black_800
|
||||
import io.element.android.libraries.designsystem.Black_950
|
||||
import io.element.android.libraries.designsystem.DarkGrey
|
||||
import io.element.android.libraries.designsystem.Gray_300
|
||||
import io.element.android.libraries.designsystem.Gray_400
|
||||
import io.element.android.libraries.designsystem.Gray_450
|
||||
import io.element.android.libraries.designsystem.SystemGrey5Dark
|
||||
|
|
@ -59,7 +60,7 @@ val materialColorSchemeDark = darkColorScheme(
|
|||
surface = Black_800,
|
||||
onSurface = Color.White,
|
||||
surfaceVariant = Black_950,
|
||||
onSurfaceVariant = Color.White,
|
||||
onSurfaceVariant = Gray_300,
|
||||
// TODO surfaceTint = primary,
|
||||
// TODO inverseSurface = ColorDarkTokens.InverseSurface,
|
||||
// TODO inverseOnSurface = ColorDarkTokens.InverseOnSurface,
|
||||
|
|
|
|||
|
|
@ -12,6 +12,7 @@
|
|||
<string name="login_hide_password">Hide password</string>
|
||||
<string name="ex_choose_server_subtitle">What is the address of your server?</string>
|
||||
<string name="server_selection_server_footer">You can only connect to an existing server that supports sliding sync. Your homeserver admin will need to configure it.</string>
|
||||
<string name="server_selection_server_footer_action">Learn more</string>
|
||||
<string name="server_selection_sliding_sync_alert_title">Server not supported</string>
|
||||
<string name="server_selection_sliding_sync_alert_message">This server currently doesn\'t support sliding sync.</string>
|
||||
<!-- Create room -->
|
||||
|
|
|
|||
|
|
@ -26,8 +26,8 @@ import org.gradle.kotlin.dsl.project
|
|||
/**
|
||||
* Dependencies used by all the modules
|
||||
*/
|
||||
fun DependencyHandlerScope.commonDependencies() {
|
||||
implementation("com.jakewharton.timber:timber:5.0.1")
|
||||
fun DependencyHandlerScope.commonDependencies(libs: LibrariesForLibs) {
|
||||
implementation(libs.timber)
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
@ -44,10 +44,10 @@ fun DependencyHandlerScope.composeDependencies(libs: LibrariesForLibs) {
|
|||
implementation("androidx.compose.material3:material3:1.1.0-alpha04")
|
||||
implementation("androidx.compose.material:material-icons-extended")
|
||||
implementation("androidx.compose.ui:ui-tooling-preview")
|
||||
implementation("androidx.activity:activity-compose:1.6.1")
|
||||
implementation(libs.androidx.activity.compose)
|
||||
debugImplementation("androidx.compose.ui:ui-tooling")
|
||||
debugImplementation("androidx.compose.ui:ui-test-manifest")
|
||||
implementation("com.airbnb.android:showkase:1.0.0-beta17")
|
||||
implementation(libs.showkase)
|
||||
implementation("org.jetbrains.kotlinx:kotlinx-collections-immutable:0.3.5")
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -36,6 +36,6 @@ android {
|
|||
}
|
||||
|
||||
dependencies {
|
||||
commonDependencies()
|
||||
commonDependencies(libs)
|
||||
composeDependencies(libs)
|
||||
}
|
||||
|
|
|
|||
|
|
@ -44,6 +44,6 @@ android {
|
|||
}
|
||||
|
||||
dependencies {
|
||||
commonDependencies()
|
||||
commonDependencies(libs)
|
||||
composeDependencies(libs)
|
||||
}
|
||||
|
|
|
|||
|
|
@ -19,6 +19,9 @@
|
|||
*/
|
||||
import extension.androidConfig
|
||||
import extension.commonDependencies
|
||||
import org.gradle.accessors.dm.LibrariesForLibs
|
||||
|
||||
val libs = the<LibrariesForLibs>()
|
||||
|
||||
plugins {
|
||||
id("com.android.library")
|
||||
|
|
@ -38,5 +41,5 @@ android {
|
|||
}
|
||||
|
||||
dependencies {
|
||||
commonDependencies()
|
||||
commonDependencies(libs)
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,3 +1,3 @@
|
|||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:510c17406a13ce64a9b7578d70535dac7fe20e9c3a9a4ab3c8cab775bc46f568
|
||||
size 19718
|
||||
oid sha256:5451d8fb06cef9a346c92db43fa5994e39f3079b67b99d867a31d9b8a645cb0d
|
||||
size 19198
|
||||
|
|
|
|||
|
|
@ -1,3 +1,3 @@
|
|||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:0c48397dc1a7ec94678c9423d3f4734422390679882d838c391913fe544042bc
|
||||
size 39873
|
||||
oid sha256:c5ec4955c5bd390d8f4681f709adcb7152de690bb9033827a9167bb0a4afeed3
|
||||
size 41337
|
||||
|
|
|
|||
|
|
@ -1,3 +1,3 @@
|
|||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:be550cedf5e99a3c80c50d201e8cf6faaed9161a1e5007eeff11fd9b46d844d8
|
||||
size 43345
|
||||
oid sha256:ad203c77d755606febd055a852a7288a670abab4bd6d281df1262a4cd02b8bff
|
||||
size 44823
|
||||
|
|
|
|||
|
|
@ -1,3 +1,3 @@
|
|||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:fde980094076a921eee29d84663b6b5f09cf363c51681eb7702d15e8922d2950
|
||||
size 42663
|
||||
oid sha256:db98ec6bb8890f95367fb81bb61b592a883f113c92211b69f7d71431af00975a
|
||||
size 44135
|
||||
|
|
|
|||
|
|
@ -1,3 +1,3 @@
|
|||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:625bcb0c020582e470474463458c4a8335c84e6048bb12c4f57dbed92f257f57
|
||||
size 43384
|
||||
oid sha256:545df3870e1a6034180b6ebb23366a5855105df09ac741fe7a2e8c97e3df5086
|
||||
size 44870
|
||||
|
|
|
|||
|
|
@ -1,3 +1,3 @@
|
|||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:be550cedf5e99a3c80c50d201e8cf6faaed9161a1e5007eeff11fd9b46d844d8
|
||||
size 43345
|
||||
oid sha256:ad203c77d755606febd055a852a7288a670abab4bd6d281df1262a4cd02b8bff
|
||||
size 44823
|
||||
|
|
|
|||
|
|
@ -1,3 +1,3 @@
|
|||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:e157e6b9c4d3e6c888f4360b45ed3ae13306407bcb4b55ef6a168341ad56b250
|
||||
size 36585
|
||||
oid sha256:3e0939baaec56f1be550ab960cd66c6e4541060ed36ec487b487d4ffa1c6911a
|
||||
size 38103
|
||||
|
|
|
|||
|
|
@ -1,3 +1,3 @@
|
|||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:a30b81972f9927741ec5298d32cd28d13bb2ad5b4f044f42e42275722cb2dc40
|
||||
size 40490
|
||||
oid sha256:0baf660665cdce26b9e0716f1492f007cdf2d09d0989ae400b8677aafee80533
|
||||
size 41924
|
||||
|
|
|
|||
|
|
@ -1,3 +1,3 @@
|
|||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:307c1a0c2741b43ebfc2c135367865e4cb85f8ddf31f6c6fb112c18e617fb47d
|
||||
size 39314
|
||||
oid sha256:28c94b5d7d5caf5e5b00b1060c4538422dd50c6f1d8168d2948d9a4b8634f658
|
||||
size 40818
|
||||
|
|
|
|||
|
|
@ -1,3 +1,3 @@
|
|||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:194e3055a30dcb721a0c62e81cf9a326993e587d0d3805f71ca3eaed901f8fa4
|
||||
size 40524
|
||||
oid sha256:de060d43920f967c80f9795a28e7c84467f86b559ef1e434d605ec4c61f0400e
|
||||
size 41954
|
||||
|
|
|
|||
|
|
@ -1,3 +1,3 @@
|
|||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:a30b81972f9927741ec5298d32cd28d13bb2ad5b4f044f42e42275722cb2dc40
|
||||
size 40490
|
||||
oid sha256:0baf660665cdce26b9e0716f1492f007cdf2d09d0989ae400b8677aafee80533
|
||||
size 41924
|
||||
|
|
|
|||
|
|
@ -1,3 +1,3 @@
|
|||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:5128c12c3186abdab9020891825731fe1207421f86e7142f15fd67b15d872efe
|
||||
size 33314
|
||||
oid sha256:ae82ef6285127f343f0ebee35cedc6f28132dde37c3303bbc33aa881c471c48c
|
||||
size 32466
|
||||
|
|
|
|||
|
|
@ -1,3 +1,3 @@
|
|||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:7b3c1d84c57ac35d57ddcadeffaa3efe3cfb35d8472cb499b113efeee27494f6
|
||||
size 36118
|
||||
oid sha256:50627ff6140b8fb9eed181e812740a8bf8cf4cdb23cb4cf2fa9cd0b37fb880bc
|
||||
size 35224
|
||||
|
|
|
|||
|
|
@ -1,3 +1,3 @@
|
|||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:a339ab789eb6710aa5edba53acc46a61de373566089590940ab4c8233e97558b
|
||||
size 34721
|
||||
oid sha256:8f94523e18a1eb82324325f0e3f8439d4d457d6d4883cd75a7fa6169f90bbdf4
|
||||
size 34229
|
||||
|
|
|
|||
|
|
@ -1,3 +1,3 @@
|
|||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:675c1cbfc80acec11434153dacb1d69b0cf6122fb068db8a92ae86e039a54c71
|
||||
size 34091
|
||||
oid sha256:fe3431804d6d84b8588b0fb475bd824159abe4d0a7e35f0b7967b08477b07778
|
||||
size 33523
|
||||
|
|
|
|||
|
|
@ -1,3 +1,3 @@
|
|||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:8137f8ed97a1a924fc76e16c8f0f0fc5a4a866d989460859b98edfcb5c7f98b7
|
||||
size 30996
|
||||
oid sha256:3d1c502239f0fd9cdd7fa286275d299b74597a2b0b5d0f081503a7db3cb39f52
|
||||
size 30277
|
||||
|
|
|
|||
|
|
@ -1,3 +1,3 @@
|
|||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:a339ab789eb6710aa5edba53acc46a61de373566089590940ab4c8233e97558b
|
||||
size 34721
|
||||
oid sha256:8f94523e18a1eb82324325f0e3f8439d4d457d6d4883cd75a7fa6169f90bbdf4
|
||||
size 34229
|
||||
|
|
|
|||
|
|
@ -1,3 +1,3 @@
|
|||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:76623bcd15bba7ba56a377396ae5909fb11be2b823ad9acec3460bf303744b76
|
||||
size 5087
|
||||
oid sha256:b9f0ccf7c44ec97173ac34554dcd143065b9141f2a1ae58d1eb436ebd3427231
|
||||
size 5170
|
||||
|
|
|
|||
|
|
@ -1,3 +1,3 @@
|
|||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:dd10104dbe89a00378f167c76283d08417b4599d27aabc16a73fc2be6e6b8137
|
||||
size 5155
|
||||
oid sha256:92ab01744efdb2b4ecc142b1a9d31a69ca9759607ce8d786c38fd3e25f5242d1
|
||||
size 5115
|
||||
|
|
|
|||
|
|
@ -1,3 +1,3 @@
|
|||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:a11dfc14ce5ab8c38dfdf5be75677c3e21089994e7571c6734f3925a3f84e38e
|
||||
size 44441
|
||||
oid sha256:8a5cc544c074ed497560a68195655b858c29b3e4e433b4fde14cfb46ef74a892
|
||||
size 44434
|
||||
|
|
|
|||
|
|
@ -1,3 +1,3 @@
|
|||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:74d3f02e64692a5457155f0cc7784f84697fdcb26356eab1aa6c6711fdeb1d5c
|
||||
oid sha256:e30fd9b73928ad8d12f88f26a6593f81cf16cb511241cea72321547977db4365
|
||||
size 44386
|
||||
|
|
|
|||
|
|
@ -1,3 +1,3 @@
|
|||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:7dbd8905aa8a0ecaf14585dcac1562ed1668b022f2f38b8bc6146259447c5e90
|
||||
size 54382
|
||||
oid sha256:0a74fd9b4986b758b0c689da29c7eeac055befd1009a2b6bc49e01b56a19b85a
|
||||
size 53480
|
||||
|
|
|
|||
|
|
@ -1,3 +1,3 @@
|
|||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:04ac815269914dce155e08aca470be0e3fab7791af69aa93c5fb11ae3503b3d2
|
||||
size 178384
|
||||
oid sha256:5ffe2a0c8d2e9adba5ae0643727982bff1edf5d6977fe43ca76417d033b75dab
|
||||
size 177404
|
||||
|
|
|
|||
|
|
@ -1,3 +1,3 @@
|
|||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:e828aac8c3edcda28cb04a7c1469148c99b3151786a67ac63a260b1310bb96e6
|
||||
size 26511
|
||||
oid sha256:4d995bd6d70846a5e0662220a087ea0c32c7d96b7c6516b36dbbb3834c8a8f7a
|
||||
size 24837
|
||||
|
|
|
|||
|
|
@ -1,3 +1,3 @@
|
|||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:98d52f889f8803dd751f84b9e3fa065309a972e9f7b9a86f0cae697898c81670
|
||||
size 24745
|
||||
oid sha256:be0b29f6bff994c832be9b7970c2acb19b0c5e5c5676d0f9fd11bf716ef14cc0
|
||||
size 24840
|
||||
|
|
|
|||
|
|
@ -1,3 +1,3 @@
|
|||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:01e8b6c8a7419f5053f398bfc2d0ce37fc1381274d568b344632bce1b8d02659
|
||||
size 29276
|
||||
oid sha256:8ce3ce57b0b52ff01e9f47884802e5847ff67af04f70bf0f287cdd26da098fd2
|
||||
size 27408
|
||||
|
|
|
|||
|
|
@ -1,3 +1,3 @@
|
|||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:9b94b561d6e4211772c1fd5315f9db28f26a964af46ca94af8bc5cd6fc48c578
|
||||
size 27270
|
||||
oid sha256:f93b061d0f155b3a86e399661f3b3cc63fb30809b1a77a0f5d936dafde810baa
|
||||
size 27411
|
||||
|
|
|
|||
|
|
@ -1,3 +1,3 @@
|
|||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:dab39f2a090726fb292b38b49c102a475603a5bbdaca538500a1619fc8cb9636
|
||||
size 23777
|
||||
oid sha256:23afdbfb4262b15b1855b434790e661da479bb7b0a310756de5c8e1f3ba2d351
|
||||
size 23773
|
||||
|
|
|
|||
|
|
@ -1,3 +1,3 @@
|
|||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:ff04bf07f8c24b3b19d4926bb3c51b257166befe062fe8b8012d2e92dbfe3491
|
||||
size 13477
|
||||
oid sha256:8bca09418758a20493dae2e73a747449af8a448ad3a3cc4c5aae2e08a425f3fb
|
||||
size 13464
|
||||
|
|
|
|||
|
|
@ -1,3 +1,3 @@
|
|||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:328963ebd74fbbe47fd4a4d1f0edce5bf014d88a266c114e50a5274e87a88fe8
|
||||
size 7154
|
||||
oid sha256:90e726f5086c32da2a9bf2887e5295a761748ba991cd541a4e119f14bc57b0e8
|
||||
size 7159
|
||||
|
|
|
|||
|
|
@ -1,3 +1,3 @@
|
|||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:3c8868d4974f23637afed9ecd062b88421e2b39ffe22f19742b946afc91caeb6
|
||||
size 37838
|
||||
oid sha256:0fc272268179409483fc5fad89aa00714a6811c63e478b5c696d4ab0338ce6bf
|
||||
size 37781
|
||||
|
|
|
|||
|
|
@ -1,3 +1,3 @@
|
|||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:001f8509e1e21f53e4d19285875ac76b937ea73931f5df5bf57b050a008d45c1
|
||||
size 13126
|
||||
oid sha256:716d8d42019944987e856dbe0978e9f8967998defb7421bcad12edbc50cec0a8
|
||||
size 13020
|
||||
|
|
|
|||
|
|
@ -0,0 +1,3 @@
|
|||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:e587aade6a2dc96e9d0f4bfe2529ef1e6d2d6359b65530ac22d26160d876e180
|
||||
size 12955
|
||||
|
|
@ -0,0 +1,3 @@
|
|||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:716d8d42019944987e856dbe0978e9f8967998defb7421bcad12edbc50cec0a8
|
||||
size 13020
|
||||
|
|
@ -1,3 +1,3 @@
|
|||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:3961fa465a6b11c6b762f39980febed8cce6be557780327b24dada42c486d258
|
||||
size 13001
|
||||
oid sha256:609bd13480751ae36a6192a0609ca8d10f897bd25049bea3091e6852ab598433
|
||||
size 13052
|
||||
|
|
|
|||
|
|
@ -0,0 +1,3 @@
|
|||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:8c7c48cae8d37b026d5c1ad72fc69090679aaf3d3ad4d8fdbaffbb792b22c186
|
||||
size 12981
|
||||
|
|
@ -0,0 +1,3 @@
|
|||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:609bd13480751ae36a6192a0609ca8d10f897bd25049bea3091e6852ab598433
|
||||
size 13052
|
||||
|
|
@ -1,3 +1,3 @@
|
|||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:4f3acd334b5698e5b8f709eace3b8ba93218928012777a827d50d8057a02bda5
|
||||
size 10484
|
||||
oid sha256:94856975f59d30d85b47f14d7ddb7bc93a435060aa19b0fdc3f7de027231e226
|
||||
size 10311
|
||||
|
|
|
|||
|
|
@ -1,3 +1,3 @@
|
|||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:3c6df3331874bf0037100cf9f989fa0bb06f5eec57794eb887699e80a0d53fd5
|
||||
size 9991
|
||||
oid sha256:74714d068fe3654b88b1847559a1aaf2f744fad8db14e7ea5f4de8dd1963b68d
|
||||
size 9485
|
||||
|
|
|
|||
|
|
@ -1,3 +1,3 @@
|
|||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:35c286741bedf3dd27b206e499a585ddbd78cc1d0728e17e0ca6caf7788213a3
|
||||
size 6517
|
||||
oid sha256:b99eecb6d174058b9782e204d26c1d9e630d2a1b7bb8ce3fb1422e00b23af828
|
||||
size 6542
|
||||
|
|
|
|||
|
|
@ -1,3 +1,3 @@
|
|||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:0553e19671b9285c781d5f16eaf988aaed0a5eebd04445dcd571b56b7076bbce
|
||||
size 42123
|
||||
oid sha256:01f1ebe3c4ea49287cad6920e6125794424e7db562ca6f421921e713587305fe
|
||||
size 41847
|
||||
|
|
|
|||
|
|
@ -1,3 +1,3 @@
|
|||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:8cbc253fcab9fa5724a7f65d186524949c1b6f0ce7a798064e1654d083854c77
|
||||
size 103194
|
||||
oid sha256:d2655207242a616216b40041d34af1eafff311fefd5cb60773ebea379623b8b0
|
||||
size 103469
|
||||
|
|
|
|||
|
|
@ -1,3 +1,3 @@
|
|||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:03bfd855f6e010d2d4dc0cb9f3c13e76a4f2bbcda98b086dabcd33f201ebe10a
|
||||
size 39486
|
||||
oid sha256:2bc66a477d35143ca76e8a2bf9660cc4d87df57b1388ebca892de5eae1f12c86
|
||||
size 39277
|
||||
|
|
|
|||
|
|
@ -1,3 +1,3 @@
|
|||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:94ac7f61151a93051b6869aff30823d3995cd4229697e283d3490303f69377bc
|
||||
size 116815
|
||||
oid sha256:cc8026b2bf6fbc4afaf2641d2deba1b3ae27d582dbc30c70841356232aa8cbbe
|
||||
size 117237
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue