Add 'unencrypted room' badges and labels (#4445)

* Add 'unencrypted room' icon and label to composer

* Modify colors for room details screen info labels

* Add exception to Konsist's preview check

* Update screenshots

---------

Co-authored-by: ElementBot <android@element.io>
This commit is contained in:
Jorge Martin Espinosa 2025-03-25 12:26:25 +01:00 committed by GitHub
parent f969dcf42e
commit b9e286d9d6
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
113 changed files with 493 additions and 196 deletions

View file

@ -73,7 +73,7 @@ class AttachmentsPreviewPresenter @AssistedInject constructor(
val markdownTextEditorState = rememberMarkdownTextEditorState(initialText = null, initialFocus = false)
val textEditorState by rememberUpdatedState(
TextEditorState.Markdown(markdownTextEditorState)
TextEditorState.Markdown(markdownTextEditorState, isRoomEncrypted = null)
)
val ongoingSendAttachmentJob = remember { mutableStateOf<Job?>(null) }

View file

@ -141,6 +141,8 @@ class MessageComposerPresenter @AssistedInject constructor(
override fun present(): MessageComposerState {
val localCoroutineScope = rememberCoroutineScope()
val roomInfo by room.roomInfoFlow.collectAsState()
val richTextEditorState = richTextEditorStateFactory.remember()
if (isTesting) {
richTextEditorState.isReadyToProcessActions = true
@ -242,9 +244,9 @@ class MessageComposerPresenter @AssistedInject constructor(
val textEditorState by rememberUpdatedState(
if (showTextFormatting) {
TextEditorState.Rich(richTextEditorState)
TextEditorState.Rich(richTextEditorState, roomInfo.isEncrypted == true)
} else {
TextEditorState.Markdown(markdownTextEditorState)
TextEditorState.Markdown(markdownTextEditorState, roomInfo.isEncrypted == true)
}
)

View file

@ -469,14 +469,14 @@ private fun RoomBadge.toMatrixBadgeData(): MatrixBadgeAtom.MatrixBadgeData {
MatrixBadgeAtom.MatrixBadgeData(
text = stringResource(R.string.screen_room_details_badge_not_encrypted),
icon = CompoundIcons.LockOff(),
type = MatrixBadgeAtom.Type.Neutral,
type = MatrixBadgeAtom.Type.Info,
)
}
RoomBadge.PUBLIC -> {
MatrixBadgeAtom.MatrixBadgeData(
text = stringResource(R.string.screen_room_details_badge_public),
icon = CompoundIcons.Public(),
type = MatrixBadgeAtom.Type.Neutral,
type = MatrixBadgeAtom.Type.Info,
)
}
}

View file

@ -14,6 +14,8 @@ import io.element.android.compound.tokens.generated.CompoundIcons
import io.element.android.libraries.designsystem.components.Badge
import io.element.android.libraries.designsystem.preview.ElementPreview
import io.element.android.libraries.designsystem.preview.PreviewsDayNight
import io.element.android.libraries.designsystem.theme.badgeInfoBackgroundColor
import io.element.android.libraries.designsystem.theme.badgeInfoContentColor
import io.element.android.libraries.designsystem.theme.badgeNegativeBackgroundColor
import io.element.android.libraries.designsystem.theme.badgeNegativeContentColor
import io.element.android.libraries.designsystem.theme.badgeNeutralBackgroundColor
@ -31,7 +33,8 @@ object MatrixBadgeAtom {
enum class Type {
Positive,
Neutral,
Negative
Negative,
Info,
}
@Composable
@ -42,16 +45,19 @@ object MatrixBadgeAtom {
Type.Positive -> ElementTheme.colors.badgePositiveBackgroundColor
Type.Neutral -> ElementTheme.colors.badgeNeutralBackgroundColor
Type.Negative -> ElementTheme.colors.badgeNegativeBackgroundColor
Type.Info -> ElementTheme.colors.badgeInfoBackgroundColor
}
val textColor = when (data.type) {
Type.Positive -> ElementTheme.colors.badgePositiveContentColor
Type.Neutral -> ElementTheme.colors.badgeNeutralContentColor
Type.Negative -> ElementTheme.colors.badgeNegativeContentColor
Type.Info -> ElementTheme.colors.badgeInfoContentColor
}
val iconColor = when (data.type) {
Type.Positive -> ElementTheme.colors.iconSuccessPrimary
Type.Neutral -> ElementTheme.colors.iconSecondary
Type.Negative -> ElementTheme.colors.iconCriticalPrimary
Type.Info -> ElementTheme.colors.iconInfoPrimary
}
Badge(
text = data.text,
@ -98,3 +104,15 @@ internal fun MatrixBadgeAtomNegativePreview() = ElementPreview {
)
)
}
@PreviewsDayNight
@Composable
internal fun MatrixBadgeAtomInfoPreview() = ElementPreview {
MatrixBadgeAtom.View(
MatrixBadgeAtom.MatrixBadgeData(
text = "Not encrypted",
icon = CompoundIcons.LockOff(),
type = MatrixBadgeAtom.Type.Info,
)
)
}

View file

@ -165,6 +165,14 @@ val SemanticColors.badgeNegativeBackgroundColor
val SemanticColors.badgeNegativeContentColor
get() = if (isLight) LightColorTokens.colorRed1100 else DarkColorTokens.colorRed1100
@OptIn(CoreColorToken::class)
val SemanticColors.badgeInfoBackgroundColor
get() = if (isLight) LightColorTokens.colorAlphaBlue300 else DarkColorTokens.colorAlphaBlue300
@OptIn(CoreColorToken::class)
val SemanticColors.badgeInfoContentColor
get() = if (isLight) LightColorTokens.colorBlue1100 else DarkColorTokens.colorBlue1100
@OptIn(CoreColorToken::class)
val SemanticColors.pinnedMessageBannerIndicator
get() = if (isLight) LightColorTokens.colorAlphaGray600 else DarkColorTokens.colorAlphaGray600

View file

@ -7,13 +7,13 @@
package io.element.android.libraries.textcomposer
import android.content.res.Configuration
import android.net.Uri
import androidx.compose.foundation.background
import androidx.compose.foundation.border
import androidx.compose.foundation.clickable
import androidx.compose.foundation.layout.Arrangement
import androidx.compose.foundation.layout.Box
import androidx.compose.foundation.layout.BoxScope
import androidx.compose.foundation.layout.Column
import androidx.compose.foundation.layout.IntrinsicSize
import androidx.compose.foundation.layout.Row
@ -37,14 +37,18 @@ import androidx.compose.ui.Modifier
import androidx.compose.ui.draw.clip
import androidx.compose.ui.res.stringResource
import androidx.compose.ui.text.style.TextOverflow
import androidx.compose.ui.tooling.preview.Preview
import androidx.compose.ui.tooling.preview.PreviewParameter
import androidx.compose.ui.unit.dp
import io.element.android.compound.theme.ElementTheme
import io.element.android.compound.tokens.generated.CompoundIcons
import io.element.android.libraries.designsystem.components.media.createFakeWaveform
import io.element.android.libraries.designsystem.preview.DAY_MODE_NAME
import io.element.android.libraries.designsystem.preview.ElementPreview
import io.element.android.libraries.designsystem.preview.NIGHT_MODE_NAME
import io.element.android.libraries.designsystem.preview.PreviewsDayNight
import io.element.android.libraries.designsystem.theme.components.CircularProgressIndicator
import io.element.android.libraries.designsystem.theme.components.HorizontalDivider
import io.element.android.libraries.designsystem.theme.components.Icon
import io.element.android.libraries.designsystem.theme.components.IconColorButton
import io.element.android.libraries.designsystem.theme.components.Text
@ -281,6 +285,7 @@ fun TextComposer(
if (showTextFormatting && textFormattingOptions != null) {
TextFormattingLayout(
modifier = layoutModifier,
isRoomEncrypted = state.isRoomEncrypted,
textInput = textInput,
dismissTextFormattingButton = {
IconColorButton(
@ -295,6 +300,7 @@ fun TextComposer(
StandardLayout(
voiceMessageState = voiceMessageState,
enableVoiceMessages = enableVoiceMessages,
isRoomEncrypted = state.isRoomEncrypted,
modifier = layoutModifier,
composerOptionsButton = composerOptionsButton,
textInput = textInput,
@ -330,6 +336,7 @@ fun TextComposer(
private fun StandardLayout(
voiceMessageState: VoiceMessageState,
enableVoiceMessages: Boolean,
isRoomEncrypted: Boolean?,
textInput: @Composable () -> Unit,
composerOptionsButton: @Composable () -> Unit,
voiceRecording: @Composable () -> Unit,
@ -337,58 +344,85 @@ private fun StandardLayout(
endButton: @Composable () -> Unit,
modifier: Modifier = Modifier,
) {
Row(
modifier = modifier,
verticalAlignment = Alignment.Bottom,
) {
if (enableVoiceMessages && voiceMessageState !is VoiceMessageState.Idle) {
if (voiceMessageState is VoiceMessageState.Preview || voiceMessageState is VoiceMessageState.Recording) {
Column(modifier = modifier) {
if (isRoomEncrypted == false) {
Spacer(Modifier.height(16.dp))
NotEncryptedBadge()
Spacer(Modifier.height(4.dp))
}
Row(verticalAlignment = Alignment.Bottom) {
if (enableVoiceMessages && voiceMessageState !is VoiceMessageState.Idle) {
if (voiceMessageState is VoiceMessageState.Preview || voiceMessageState is VoiceMessageState.Recording) {
Box(
modifier = Modifier
.padding(bottom = 5.dp, top = 5.dp, end = 3.dp, start = 3.dp)
.size(48.dp),
contentAlignment = Alignment.Center,
) {
voiceDeleteButton()
}
} else {
Spacer(modifier = Modifier.width(16.dp))
}
Box(
modifier = Modifier
.padding(bottom = 5.dp, top = 5.dp, end = 3.dp, start = 3.dp)
.size(48.dp),
contentAlignment = Alignment.Center,
.padding(bottom = 8.dp, top = 8.dp)
.weight(1f)
) {
voiceDeleteButton()
voiceRecording()
}
} else {
Spacer(modifier = Modifier.width(16.dp))
Box(
Modifier
.padding(bottom = 5.dp, top = 5.dp, start = 3.dp)
) {
composerOptionsButton()
}
Box(
modifier = Modifier
.padding(bottom = 8.dp, top = 8.dp)
.weight(1f)
) {
textInput()
}
}
Box(
modifier = Modifier
.padding(bottom = 8.dp, top = 8.dp)
.weight(1f)
) {
voiceRecording()
}
} else {
Box(
Modifier
.padding(bottom = 5.dp, top = 5.dp, start = 3.dp)
.padding(bottom = 5.dp, top = 5.dp, end = 6.dp, start = 6.dp)
.size(48.dp),
contentAlignment = Alignment.Center,
) {
composerOptionsButton()
endButton()
}
Box(
modifier = Modifier
.padding(bottom = 8.dp, top = 8.dp)
.weight(1f)
) {
textInput()
}
}
Box(
Modifier
.padding(bottom = 5.dp, top = 5.dp, end = 6.dp, start = 6.dp)
.size(48.dp),
contentAlignment = Alignment.Center,
) {
endButton()
}
}
}
@Composable
private fun NotEncryptedBadge() {
Row(
modifier = Modifier.fillMaxWidth(),
horizontalArrangement = Arrangement.Center,
verticalAlignment = Alignment.CenterVertically,
) {
Icon(
modifier = Modifier.size(16.dp),
imageVector = CompoundIcons.LockOff(),
contentDescription = null,
tint = ElementTheme.colors.iconInfoPrimary,
)
Spacer(Modifier.width(4.dp))
Text(
text = stringResource(CommonStrings.common_not_encrypted),
style = ElementTheme.typography.fontBodySmRegular,
color = ElementTheme.colors.textSecondary,
)
}
}
@Composable
private fun TextFormattingLayout(
isRoomEncrypted: Boolean?,
textInput: @Composable () -> Unit,
dismissTextFormattingButton: @Composable () -> Unit,
textFormatting: @Composable () -> Unit,
@ -399,6 +433,10 @@ private fun TextFormattingLayout(
modifier = modifier.padding(vertical = 4.dp),
verticalArrangement = Arrangement.spacedBy(4.dp),
) {
if (isRoomEncrypted == false) {
NotEncryptedBadge()
Spacer(Modifier.height(8.dp))
}
Box(
modifier = Modifier
.weight(1f)
@ -438,7 +476,7 @@ private fun TextInputBox(
placeholder: String,
showPlaceholder: Boolean,
subcomposing: Boolean,
textInput: @Composable BoxScope.() -> Unit,
textInput: @Composable () -> Unit,
) {
val bgColor = ElementTheme.colors.bgSubtleSecondary
val borderColor = ElementTheme.colors.borderDisabled
@ -539,24 +577,26 @@ private fun TextInput(
}
}
private fun aTextEditorStateMarkdownList() = persistentListOf(
aTextEditorStateMarkdown(initialText = "", initialFocus = true),
aTextEditorStateMarkdown(initialText = "A message", initialFocus = true),
private fun aTextEditorStateMarkdownList(isRoomEncrypted: Boolean? = null) = persistentListOf(
aTextEditorStateMarkdown(initialText = "", initialFocus = true, isRoomEncrypted = isRoomEncrypted),
aTextEditorStateMarkdown(initialText = "A message", initialFocus = true, isRoomEncrypted = isRoomEncrypted),
aTextEditorStateMarkdown(
initialText = "A message\nWith several lines\nTo preview larger textfields and long lines with overflow",
initialFocus = true,
isRoomEncrypted = isRoomEncrypted,
),
aTextEditorStateMarkdown(initialText = "A message without focus", initialFocus = false),
aTextEditorStateMarkdown(initialText = "A message without focus", initialFocus = false, isRoomEncrypted = isRoomEncrypted),
)
private fun aTextEditorStateRichList() = persistentListOf(
aTextEditorStateRich(initialFocus = true),
aTextEditorStateRich(initialText = "A message", initialFocus = true),
private fun aTextEditorStateRichList(isRoomEncrypted: Boolean? = null) = persistentListOf(
aTextEditorStateRich(initialFocus = true, isRoomEncrypted = isRoomEncrypted),
aTextEditorStateRich(initialText = "A message", initialFocus = true, isRoomEncrypted = isRoomEncrypted),
aTextEditorStateRich(
initialText = "A message\nWith several lines\nTo preview larger textfields and long lines with overflow",
initialFocus = true
initialFocus = true,
isRoomEncrypted = isRoomEncrypted,
),
aTextEditorStateRich(initialText = "A message without focus", initialFocus = false),
aTextEditorStateRich(initialText = "A message without focus", initialFocus = false, isRoomEncrypted = isRoomEncrypted),
)
@PreviewsDayNight
@ -574,6 +614,21 @@ internal fun TextComposerSimplePreview() = ElementPreview {
}
}
@PreviewsDayNight
@Composable
internal fun TextComposerSimpleNotEncryptedPreview() = ElementPreview {
PreviewColumn(
items = aTextEditorStateMarkdownList(isRoomEncrypted = false),
) { _, textEditorState ->
ATextComposer(
state = textEditorState,
voiceMessageState = VoiceMessageState.Idle,
composerMode = MessageComposerMode.Normal,
enableVoiceMessages = true,
)
}
}
@PreviewsDayNight
@Composable
internal fun TextComposerFormattingPreview() = ElementPreview {
@ -590,6 +645,22 @@ internal fun TextComposerFormattingPreview() = ElementPreview {
}
}
@PreviewsDayNight
@Composable
internal fun TextComposerFormattingNotEncryptedPreview() = ElementPreview {
PreviewColumn(
items = aTextEditorStateRichList(isRoomEncrypted = false)
) { _, textEditorState ->
ATextComposer(
state = textEditorState,
voiceMessageState = VoiceMessageState.Idle,
showTextFormatting = true,
composerMode = MessageComposerMode.Normal,
enableVoiceMessages = true,
)
}
}
@PreviewsDayNight
@Composable
internal fun TextComposerEditPreview() = ElementPreview {
@ -605,6 +676,21 @@ internal fun TextComposerEditPreview() = ElementPreview {
}
}
@PreviewsDayNight
@Composable
internal fun TextComposerEditNotEncryptedPreview() = ElementPreview {
PreviewColumn(
items = aTextEditorStateRichList(isRoomEncrypted = false)
) { _, textEditorState ->
ATextComposer(
state = textEditorState,
voiceMessageState = VoiceMessageState.Idle,
composerMode = aMessageComposerModeEdit(),
enableVoiceMessages = true,
)
}
}
@PreviewsDayNight
@Composable
internal fun TextComposerEditCaptionPreview() = ElementPreview {
@ -674,6 +760,31 @@ internal fun TextComposerReplyPreview(@PreviewParameter(InReplyToDetailsProvider
}
}
@Preview(
name = DAY_MODE_NAME,
heightDp = 800,
)
@Preview(
name = NIGHT_MODE_NAME,
uiMode = Configuration.UI_MODE_NIGHT_YES,
heightDp = 800,
)
@Composable
internal fun TextComposerReplyNotEncryptedPreview(@PreviewParameter(InReplyToDetailsProvider::class) inReplyToDetails: InReplyToDetails) = ElementPreview {
PreviewColumn(
items = aTextEditorStateRichList(isRoomEncrypted = false)
) { _, textEditorState ->
ATextComposer(
state = textEditorState,
voiceMessageState = VoiceMessageState.Idle,
composerMode = aMessageComposerModeReply(
replyToDetails = inReplyToDetails,
),
enableVoiceMessages = true,
)
}
}
@PreviewsDayNight
@Composable
internal fun TextComposerCaptionPreview() = ElementPreview {
@ -734,6 +845,47 @@ internal fun TextComposerVoicePreview() = ElementPreview {
}
}
@PreviewsDayNight
@Composable
internal fun TextComposerVoiceNotEncryptedPreview() = ElementPreview {
PreviewColumn(
items = persistentListOf(
VoiceMessageState.Recording(61.seconds, createFakeWaveform()),
VoiceMessageState.Preview(
isSending = false,
isPlaying = false,
showCursor = false,
waveform = createFakeWaveform(),
time = 0.seconds,
playbackProgress = 0.0f
),
VoiceMessageState.Preview(
isSending = false,
isPlaying = true,
showCursor = true,
waveform = createFakeWaveform(),
time = 3.seconds,
playbackProgress = 0.2f
),
VoiceMessageState.Preview(
isSending = true,
isPlaying = false,
showCursor = false,
waveform = createFakeWaveform(),
time = 61.seconds,
playbackProgress = 0.0f
),
)
) { _, voiceMessageState ->
ATextComposer(
state = aTextEditorStateRich(initialFocus = true, isRoomEncrypted = false),
voiceMessageState = voiceMessageState,
composerMode = MessageComposerMode.Normal,
enableVoiceMessages = true,
)
}
}
@Composable
private fun <T> PreviewColumn(
items: ImmutableList<T>,
@ -741,6 +893,7 @@ private fun <T> PreviewColumn(
) {
Column {
items.forEachIndexed { index, item ->
HorizontalDivider()
Box(
modifier = Modifier.height(IntrinsicSize.Min)
) {

View file

@ -12,12 +12,14 @@ import io.element.android.wysiwyg.compose.RichTextEditorState
fun aTextEditorStateMarkdown(
initialText: String? = "",
initialFocus: Boolean = false,
isRoomEncrypted: Boolean? = null,
): TextEditorState {
return TextEditorState.Markdown(
aMarkdownTextEditorState(
initialText = initialText,
initialFocus = initialFocus,
)
),
isRoomEncrypted = isRoomEncrypted,
)
}
@ -36,6 +38,7 @@ fun aTextEditorStateRich(
initialHtml: String = initialText,
initialMarkdown: String = initialText,
initialFocus: Boolean = false,
isRoomEncrypted: Boolean? = null,
): TextEditorState {
return TextEditorState.Rich(
aRichTextEditorState(
@ -43,7 +46,8 @@ fun aTextEditorStateRich(
initialHtml = initialHtml,
initialMarkdown = initialMarkdown,
initialFocus = initialFocus,
)
),
isRoomEncrypted = isRoomEncrypted,
)
}

View file

@ -13,12 +13,16 @@ import io.element.android.wysiwyg.compose.RichTextEditorState
@Immutable
sealed interface TextEditorState {
val isRoomEncrypted: Boolean?
data class Markdown(
val state: MarkdownTextEditorState,
override val isRoomEncrypted: Boolean?,
) : TextEditorState
data class Rich(
val richTextEditorState: RichTextEditorState
val richTextEditorState: RichTextEditorState,
override val isRoomEncrypted: Boolean?,
) : TextEditorState
fun messageHtml(): String? = when (this) {

View file

@ -75,6 +75,7 @@ class KonsistPreviewTest {
"MatrixBadgeAtomPositivePreview",
"MatrixBadgeAtomNeutralPreview",
"MatrixBadgeAtomNegativePreview",
"MatrixBadgeAtomInfoPreview",
"MentionSpanPreview",
"MessageComposerViewVoicePreview",
"MessagesReactionButtonAddPreview",
@ -106,14 +107,19 @@ class KonsistPreviewTest {
"TextComposerAddCaptionPreview",
"TextComposerCaptionPreview",
"TextComposerEditPreview",
"TextComposerEditNotEncryptedPreview",
"TextComposerEditCaptionPreview",
"TextComposerFormattingPreview",
"TextComposerFormattingNotEncryptedPreview",
"TextComposerLinkDialogCreateLinkPreview",
"TextComposerLinkDialogCreateLinkWithoutTextPreview",
"TextComposerLinkDialogEditLinkPreview",
"TextComposerReplyPreview",
"TextComposerReplyNotEncryptedPreview",
"TextComposerSimplePreview",
"TextComposerSimpleNotEncryptedPreview",
"TextComposerVoicePreview",
"TextComposerVoiceNotEncryptedPreview",
"TimelineImageWithCaptionRowPreview",
"TimelineItemEventRowForDirectRoomPreview",
"TimelineItemEventRowShieldPreview",

View file

@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:56c1b08295aa57b8f6a23929ff65481e8e3b4419a72a322c2c5778fdb501720d
size 42565
oid sha256:cb68bc3937183f353a87f193a34847676977cb2a366cc03fcede0e059e6f8f4f
size 42658

View file

@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:a53c076b1564cee6c9ee4af2260e821a835f9bbb4a45d72144102e88ccfb54e1
size 41198
oid sha256:3a863908ebec818d64c4b8511667b192e09094c09cbfa6dd372538c831520bb2
size 41295

View file

@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:499ab99b53faaa24a372ffd3c353e8ec60f2017db94f138857854440e1b7f9f7
size 43343
oid sha256:05b48264399d0ae93be25361ff04cb01b9d9dc7168da72d266bbc58a781428cf
size 43445

View file

@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:d8bd2c340084ffb59089fe44a4ce5c31c28eb83d830082e9f478f930e1810e4a
size 41464
oid sha256:21df4f150516a7113b890f3da79c96b141245384dd6b74af7376ebb5bb9054cb
size 41555

View file

@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:6b21719f9d7a7078f468310765b7de115487f2860cc7f9e0df55bb52d64d8df0
size 42273
oid sha256:2b4cb0e83e6e48d650350be4338a99eb9f82fede2829a8dc5d71d8f8cc2ecd66
size 42366

View file

@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:789cc6a332afbc1086ddc6fb90c91056ee9a1b5bbb28edbdc89b639017d9b65f
size 42855
oid sha256:5b0075df788b47714d60f58aa5de5db2cf5beda4777bf54cd48769b4df6f5ae2
size 42944

View file

@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:5e3400d75df1c13bde15394e1ab69df7657257bce86b7ac16953142ea7c61389
size 41775
oid sha256:f28b78dccc4eace6d8aeb897f1eef1d00fe9e73dddf4ae4c62305f7063add2d5
size 41868

View file

@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:cd1c6c17bb7aca2688b4c1c3f72b4d133774ca52a6dde1eef14dac9536445ebd
size 32317
oid sha256:a51d96a3e531140c918de3bef60b437dfd9e8f7a4cdd162b87077d96babafda9
size 32438

View file

@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:fb20ef0455ab32e5375f24fa3588d1a837a4ed09315629e4c8b1a056a6b1ce19
size 34473
oid sha256:c89d28aeacb8cf19e76ebdc784176152991ad2a2067df4adbc4e40afa315e821
size 34581

View file

@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:66121516d3abb9b80d636e00b7de6c139f56a04a593031a6d341af977f587e78
size 41690
oid sha256:91265422162edaf2b2e6c8474db8a94aec7db30427d67a7adcf7e9a30966d7f1
size 41805

View file

@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:2005f9cf7e3d22f03e400e1b652d1eb2b3b3e834311b0f94380599a52f932f0d
size 40545
oid sha256:d5029ca41d5043331cb59741433c5f9232105ee5d1f65d8f6aa2570e842ece45
size 40644

View file

@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:c41fdaa2341788494026277683590e0fe58fcc6b4c93919c77dcf29fd1e95c15
size 41752
oid sha256:9e9ebe7fe8e19809489798a996f888642159200486b129cd34aa333685e0ef56
size 41854

View file

@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:acccf3a9cb267c8effd573dc78f381f666d91b4f30438031d32a04fff98292dd
size 42538
oid sha256:0b1be379fac2defa3ba11db1c9ab9d0847c8245b3820648315d41e3013c0dd9d
size 42642

View file

@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:976d4e662ce84eace4a56c95560e333365bed13d745d8641a3f5e6e6d33fb557
size 41478
oid sha256:1127cde21edf3ebb251dda7ddf54a4c83ecdd0e4f7fa17c84743cbc6b35d4000
size 41570

View file

@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:ed8020dadea9b8d25d774b1069e69b62d904a772f9b7ff5150776809f3febc30
size 41517
oid sha256:2013a7c30aac9d4921bf2187b3a9d1d1329842fbee6a020d98a4cd82a9e0c5a8
size 41619

View file

@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:564679f18d5a1c00a3e3e2882952ad590cfef5516494da36a212b04db224da46
size 43489
oid sha256:b7b8b61cdbe5ec0657f4f1852d8e371a5ab4db49e30574ef701165cd52a654fa
size 43511

View file

@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:979e78d2f35d41a7f938990e19a4bdc30cbb89dfd8158d27e8494216a19d6cf5
size 42034
oid sha256:d282617bd3bb1db22842c23036e1637ae18bf66d135caca644f045dbfd2f9c8f
size 42048

View file

@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:cbc011665f08cb1e87bbebcee1541a0850efbce86769a40325e1804f7b82f6e9
size 43865
oid sha256:5db679b0fdb9fe6b7ca92ba6feec63c56075f2526d61648e323a3b96671cf34a
size 43895

View file

@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:fb9b0223c7790fe0b5bb8a210236d18ac9c54daf7c8c3f606b96aa68c9d50b89
size 42369
oid sha256:3e12057777bc343396543ea3fca1352ddd33e65ec7baaa1c672a040b86b27a20
size 42391

View file

@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:912fde637f2b3d4fc4c7e84f290d075f491ba30170794462272ee763c1174b98
size 43183
oid sha256:304074b1f15761b9a0fc2529d61ca56505e5c59d9a74ea3cea6db6dd5416783f
size 43205

View file

@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:764e5560d1ebb7f415bc5ff830a19d3879a15741ccc9c7e6d35e0f47a594907b
size 43791
oid sha256:2dad2ff77ed440ab76deb90b2aa1287767f7078b4f0fd9b721d78661b891786e
size 43813

View file

@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:398dd93176f5bb6058ccd8a3d4257bec7d14ebd2043d11c6b9f0de0108bf9b68
size 42708
oid sha256:d19188df2e2b6a66be9b76edcada4dce831d8b0fb5b3e76ac2185723ccc6ec34
size 42730

View file

@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:286ab5e4f50b6af38f001c93d78dc9c377e1b986cc6ca03d183b6c3ecea6a7ad
size 33092
oid sha256:c301ada1436b647871471716eb3bde5afe63b3c8375fecf065821b24b8d2bfdb
size 33118

View file

@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:d6c037c7b1963a7f298f59edc96e502950276467d061e79be59aeebb1e7ff933
size 35302
oid sha256:568a9220be25d55e801611ff7e2be2b9cb5fb4da8018d280d4c9173526e2a6bf
size 35331

View file

@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:5d70764f1238eb95598271d784c354a4e6f84e590412402d0f3323d7f4f497ac
size 42490
oid sha256:122c7b535de6136219b6864bc72db43d093c10ac2991b7427a5fa1fd8a27c7ae
size 42543

View file

@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:7408a11744f6e8a0ce9c62cca6d4d0e9b1413981bf6c56c164c879201b0d63e8
size 41456
oid sha256:01e1ffd408352b307274768528095cacb54863b2ec54f6ca912b51c030acc90a
size 41481

View file

@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:d59deaee5d608c279670104c0f3bfcb5bbda90ac9779111441053ea1b9d40d4c
size 42658
oid sha256:89b759add6d46fed97f7acae8f8366bb247632090b9520e50b6dde9f8fd64921
size 42681

View file

@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:9ee8120c50d4782bad2a81ba84ae6a3e81d3b107fe31c29fb085d7a62539f802
size 43558
oid sha256:61057d174a52244f032b823dc38dd2752e0ca07ae45acc185a49bc3f1808509f
size 43588

View file

@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:2a7c9cbeb91af7f4aef327777d7e384a03f71cf433716e9209c182dfc2d12588
size 42458
oid sha256:5476f3210bbd833b5f0b836e5942cb78fec6055c1cc43b35625397cc34973306
size 42481

View file

@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:5afb1e4196d40ec39bd4f391c6c6b3a947ff0dff6ebe2e41e9896dc020cff98e
size 42432
oid sha256:aaa0c1addbc1df1fcbd03f961a4da66a2f1663f4aa2ff35ad65165eb3befee9a
size 42462

View file

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:b75d304c696b92209bfe9c3564165833dd74b13ad78a33ab5d875aee94b1ed0f
size 7044

View file

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:85aabf48fd622093cf07a3810b8267ddc373a6f002a225d1f7a0e785566ece51
size 7054

View file

@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:e64de19f68dd0135905925645c646890d177a2648b68ba4c3edf1769725cfabe
size 52614
oid sha256:7a23ecbbee117033cefa5ddfbdf68862bc6f44bf03b9cbb2d468ffe4236f9109
size 52673

View file

@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:32fbd5db3fe38e87e698a03347b1ee6036520ef892603d158f506c45f43e0fd2
size 51053
oid sha256:3c019dc162f360869595392df03359b6333f96e98150ad3f3f65d464ba5317f7
size 50971

View file

@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:7decfd16d70668e4f2c7951726b0b0df3d0ce740e8aae9b4ab03f3002daf10bf
size 53441
oid sha256:93cbe1f644c5f13d7e77f917859333b761640355e6bd8087fc4a9308fb4afc01
size 53776

View file

@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:44f01f033eb5f18a350a5bd8ec094c7a4fc33fc4773ad74e186ce7dbc0036a38
size 51765
oid sha256:58b867446d31a57350e72768449d8072d70f94203b2ec110950b302c8f1792ba
size 51764

View file

@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:07d327321baf7b5bfc5b9e635a42438b67cd7750de746665c2a49dbf90a86385
size 47512
oid sha256:2262ca89505ab3d8c896ef818830c2220aef2d0903e51ca3bab36ff63b1a6cfd
size 47488

View file

@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:b8173c9c25b203c9ef009c2433cd8e4dc9b61ed914e885b6770254b1649d6e02
size 45976
oid sha256:cf2354049558d02a1072285d58598353a65974f91702fb7f4b516d7977b03c5b
size 46035

View file

@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:ce2d7c9518c89e18cbdeefbd19a1a4821006aedc5e94a72951e76b98ea593e4f
size 52144
oid sha256:8d5feff7d5b06463196a09bf065a62c9e578c15fe9bafdc6e4508fcf93bfcdba
size 52415

View file

@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:fb92895bc75caf350a6027a34e770b67456c7fb2865fefbcf1a089b38440a4c9
size 50858
oid sha256:440568a0cc345291ff16d49890bd9665af96651702f417ec016f89f6c0475dc4
size 50833

View file

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:9e1589df371db7e489c4d8696898c44a919df001f4a30d83d2f32b92dbece2de
size 63546

View file

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:3bf77d27c4fb0f491a40c3ca532e424bbb791660d168f951d8210cc6cb2898ba
size 61205

View file

@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:e64de19f68dd0135905925645c646890d177a2648b68ba4c3edf1769725cfabe
size 52614
oid sha256:7a23ecbbee117033cefa5ddfbdf68862bc6f44bf03b9cbb2d468ffe4236f9109
size 52673

View file

@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:32fbd5db3fe38e87e698a03347b1ee6036520ef892603d158f506c45f43e0fd2
size 51053
oid sha256:3c019dc162f360869595392df03359b6333f96e98150ad3f3f65d464ba5317f7
size 50971

View file

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:c86b3656e5913338c2513af8a56dc725a63d4fda9c5478f429ec684203c68115
size 64550

View file

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:1b491d682990192c54ebdae58045caab1ff653d3d6c89ca5f15e93bbb45c6fc0
size 62052

View file

@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:59ff13af2bdf76abcbc6502f9a6159871cc60ddd3d693ff50bb1ed3f3298dc1a
size 53921
oid sha256:d2bc5c13d2a1e100bdcd0142b7f03b458ba80d0d6ded82de1ebb1b6aa055a344
size 53893

View file

@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:2f4896534efc9e1d1dd91e307609aaffafdc643a81ffca25ed9589ea424b2e60
size 51303
oid sha256:fb2210aa87440b2e87217ff53448091078bdff658a6b36fad12cb1a57caf59e2
size 51187

View file

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:d12f482740fbab1a9fb12bd5cdc37dc2bd03fac6d1304208b353d86bc4f558c6
size 73436

View file

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:380a1544c59d1f8cf5f73f84341686b042bab24d7d092f43f30fd36cbb85b438
size 59956

View file

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:7127c9b52895079a8837bacc7371b31b1b1fd99415157f3246ee56a4272bf39e
size 72830

View file

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:7856d79bdf5166b6b1676d6cd418a33e0b21713b8d40d02b0187363951d373c3
size 80957

View file

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:b7407ef412758b7e19e0acb3fd539d15578b4bf94c776e7e6eec7d15e1ad0a40
size 62484

View file

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:adf521b7a9e451146e13fcfd41ad3d072cfa4cdb01023cf252e39c147d9507b9
size 61354

View file

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:dfacf0126a768870f293f6f327c4d5a1379bd51e1d62da6b8953e6f76952c11d
size 67852

View file

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:9ba9b65e68427ae8f00f3075eeb671d2980c29ce904e10398bc26e3455bc641f
size 60114

View file

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:b0538f1d4753e95082434db510f8d9b90c8c05be9975729000a6ec122b1b83d1
size 60841

View file

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:30532cf8f90261dff21a23f425a2c15334713d4659be97052fe6c796651ba8e2
size 61988

View file

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:add696fa3700b07bda65546a714887a96406cdc0c883b39e8b9b3eb419d60ef5
size 68667

View file

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:d60de55c65d7225f077c084c0d345f17a4a1b9d8d8598824e7721b3ae3c53bb4
size 60385

View file

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:0b18891980733fe58d000fcfc7b34f5fa0c355a7b7dc016157f02f633a0d2593
size 71248

View file

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:771606c34e4910bb123651706304db185fd2affe48c50e780147b9ecc86e6676
size 58149

View file

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:faa783569b0b56bc6e0853860d6a3aca19bc42d6d8cab8733f365a0c4d7ec076
size 70683

View file

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:e689ed91b269984c11e5d3ff9dd8fafb3e9786585eaedb2b9bd3c0c367a8255e
size 78512

View file

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:061c17ac2134b7ae49b80eb408c49a26b8c8f9bc3d40a0094fa466f6484c4525
size 60567

View file

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:901c974b774202476d3091ed624df42549f9add3bf7a8b07bcc33fc657412b5b
size 59591

View file

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:b5fdb0fdf6af3368f21dedbdb9e2f1492e20340de1427cd537a2c38aa21a73e4
size 65871

View file

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:d3a6b63e7c35d6f64cb5cc59af99c558b0ac5ed5ce9f1de1fb78c819f156c880
size 58366

View file

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:90a6561fa8d3576d93daf1ececda3bd89fd54ede171186059ec4eabd33d09a04
size 59020

View file

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:cd32e719165a0351ad00ff7a39adb121b7ecbaa58232450d9cf41033cc93b389
size 60109

View file

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:52d06e1cc43e7e4fab868faceaec8ceab4513e99422954b859c6f38a93475487
size 66489

View file

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:97ba97045331e55b16153ac3d8d37b3ddee0f8395d0b12d270d687e5ccdb662b
size 58641

View file

@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:c45c431a00a4222d48d7ed9bea28d4b87c744c543ac34345418897f338d45bc0
size 76396
oid sha256:a3dc5b4b88b11b4398777f9c19f55c760a6da33755206dc3559e8cfd5cf6bcfc
size 76395

View file

@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:0b622bd71902638a554124a38477e7ef7fecb5a8a9a4c74fe22c291ea1b38a12
size 59392
oid sha256:513851c2cfe1dd1579962b1913ad389e1cffb0570ff3572f981a780acc3da532
size 59926

View file

@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:f7804f57fc5951d12fcf260dc9469f4ecf30ea7846feb75386fc0d45a577ab61
size 74433
oid sha256:598fd33fab87e4f7095803f52af75843445863b2092130b0d423abbc8bb77c22
size 74571

View file

@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:74d0d5797e35f8bb8d07c58826dd5c6dc485d179ffef0d32d356a0dbd0e0af2f
size 85811
oid sha256:314a1640f2835e5fb6adc8f2ae199f4f10ef028b6dede17681760860455b3590
size 85742

View file

@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:7a5f9dd27972e5b5598dabb207f62bd36a6fa8c618cf9f764565b2ed8f694280
size 62643
oid sha256:a1273ac2ab60a7427f676bef8eb232b53be46d47e46963c58b1a134bb482cfb6
size 63085

View file

@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:447046861cf9c48ee6381a6d17d72d5d675b433a39df2d04a98f0d320ab3d972
size 61729
oid sha256:a78d1da2ef8b469b90c06bf715b7c04e4477bc809a9fb2c74f916a8184a8d867
size 62131

View file

@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:4a5a5d575648186710be4b466bbae6b8b7d7064be27042bdb3a575b90189d906
size 69437
oid sha256:bae403a239eb103b8c24708ef8fdef3ba92f2c38a80fc16bb1611fb23fc8b2c9
size 70019

View file

@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:c8788be00225f0547c54b9fc87a92497a86c706ae0638f3988e58518f8404ded
size 59817
oid sha256:c9d24dc3f0540f23d6b5511844b5b06511a757941dbf36277faff0fc5b376efd
size 60366

View file

@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:c990db5dda7d348b61e5a917575aaacc4b1ca2110fe6bcbff51e0eb3a718a342
size 60629
oid sha256:6e1a3088c752694f7260f2fd45f1b14d2449c7121609109ce93a1232ba9581a8
size 61145

View file

@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:2cf3f968dec3e9f4bab00e3ccd91ca432dc042dd49151e27e8d5ba07d399ed3c
size 62862
oid sha256:39047878c1505a00ca8549ddea2f4373682bf6321eca82d92822d73d689e12c1
size 63211

View file

@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:4b95759b9fe7bf8d8807e35d5fe576d750620d7eafcf3d17a3e3f85532048e98
size 70037
oid sha256:00f12f3c347087b24cdc23fc4c82b93d2a2550c4af1026dcddbe7b22a3dcd334
size 70522

View file

@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:3400d8a1c228da983fe9af087c38141d5c8f195541051bd250a51ac138700e7a
size 60083
oid sha256:6e9ed3949968e5c8653fddd929e5ebd4bf07dcd9391fab0fcb30d70146635fe1
size 60638

View file

@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:ada8a9f61a93ce6ad58098b7e0743b23ba0ee50a6168eeeb34d55584a9796982
size 73791
oid sha256:c956c860f9148891b04eba8b30e8aef29b5e430caddc5340cd51af779596e598
size 73718

View file

@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:95648a88ce6afce734f8230a8fc1b68947a2a0889e259621f68ea376e11eb943
size 57265
oid sha256:7b367679460940c258542d54316006f9391ca23a30145baca4c2191cbca80363
size 57953

View file

@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:40245180648f6a71a7410bd7ce29cf5bef3de17afec4a9c4f2673ca9d16fa42f
size 71970
oid sha256:7503402391f7adaa717eeff9d83f359f37cafed3e8502271aa37350a4039de3c
size 72010

View file

@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:bac3e0bdcc1bf5b3fca6af2bbf9aa983bb0fbc412e179bdb18badf6d5d95d4c4
size 83026
oid sha256:0417f5f570680d727df49e22408f296b8cbbf4be9086f6cb9b0f0e89208ef0f3
size 83091

View file

@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:2a89f4b6cf7529bc75a6ca5e478e0c5e5b0d1d788d4e1ab5a72039d108239a4a
size 60538
oid sha256:dbe2e2977ae2fd86d154c34cf59ef82b796c4ff75d69455dcae8fdb4041b2f25
size 61122

View file

@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:6c7426edf9d3405664abc4882afc62aa77ca73004c3d167d52761b1d45ccc914
size 59675
oid sha256:c221234495c789453447b12ebfca4b03e3b4cb9c381bb21a6454f54bfe8a81f5
size 60255

View file

@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:d2178a1374d8ca42634347b9ae3ad7ec991e05af98b4503b29f3b2709c6c1bb0
size 67265
oid sha256:bd04747ca75e56c63324893810f4194c84c796e9aeda0db193cb9339b331f890
size 68015

Some files were not shown because too many files have changed in this diff Show more