{"version":3,"file":"UstadMobile-lib-database.js","sources":["../kotlin/src/kotlin/collections/Maps.kt","../kotlin/js/src/kotlin/collections.kt","../kotlin/src/kotlin/collections/Collections.kt","../../../../../lib-database/build/generated/ksp/js/jsMain/kotlin/com/ustadmobile/core/db/UmAppDatabase_ReplicationRunOnChangeRunner.kt","../kotlin/src/kotlin/collections/Sets.kt","../kotlin/common/src/generated/_Collections.kt","../../../../../lib-database/src/commonMain/kotlin/com/ustadmobile/core/db/dao/PersonDaoCommon.kt","../../../../../lib-database/src/commonMain/kotlin/com/ustadmobile/lib/db/entities/ChatMember.kt","../../../../../lib-database/src/commonMain/kotlin/com/ustadmobile/lib/db/entities/Clazz.kt","../../../../../lib-database/src/commonMain/kotlin/com/ustadmobile/lib/db/entities/Language.kt","../../../../../lib-database/src/commonMain/kotlin/com/ustadmobile/lib/db/entities/Report.kt","../../../../../lib-database/src/commonMain/kotlin/com/ustadmobile/lib/db/entities/Role.kt","../../../../../lib-database/src/commonMain/kotlin/com/ustadmobile/lib/db/entities/ScopedGrant.kt","../../../../../lib-database/src/commonMain/kotlin/com/ustadmobile/core/db/UmAppDatabaseReplicationMigration.kt","../kotlin/src/kotlin/collections/MutableCollections.kt","../../../../../lib-database/src/commonMain/kotlin/com/ustadmobile/core/db/ext/UmAppDatabaseMigrations.kt","../kotlin/src/kotlin/util/Standard.kt","../../../../../lib-database/src/commonMain/kotlin/com/ustadmobile/lib/db/entities/AgentEntity.kt","../../../../../lib-database/src/commonMain/kotlin/com/ustadmobile/lib/db/entities/AgentEntityReplicate.kt","../../../../../lib-database/src/commonMain/kotlin/com/ustadmobile/lib/db/entities/AssignmentProgressSummary.kt","../../../../../lib-database/src/commonMain/kotlin/com/ustadmobile/lib/db/entities/Chat.kt","../../../../../lib-database/src/commonMain/kotlin/com/ustadmobile/lib/db/entities/ChatMemberReplicate.kt","../../../../../lib-database/src/commonMain/kotlin/com/ustadmobile/lib/db/entities/ChatReplicate.kt","../../../../../lib-database/src/commonMain/kotlin/com/ustadmobile/lib/db/entities/ChatWithLatestMessageAndCount.kt","../../../../../lib-database/src/commonMain/kotlin/com/ustadmobile/lib/db/entities/ClazzAssignment.kt","../../../../../lib-database/src/commonMain/kotlin/com/ustadmobile/lib/db/entities/ClazzAssignmentContentJoin.kt","../../../../../lib-database/src/commonMain/kotlin/com/ustadmobile/lib/db/entities/ClazzAssignmentContentJoinReplicate.kt","../../../../../lib-database/src/commonMain/kotlin/com/ustadmobile/lib/db/entities/ClazzAssignmentReplicate.kt","../../../../../lib-database/src/commonMain/kotlin/com/ustadmobile/lib/db/entities/ClazzAssignmentRollUp.kt","../../../../../lib-database/src/commonMain/kotlin/com/ustadmobile/lib/db/entities/ClazzAssignmentWithCourseBlock.kt","../../../../../lib-database/src/commonMain/kotlin/com/ustadmobile/lib/db/entities/ClazzAssignmentWithMetrics.kt","../../../../../lib-database/src/commonMain/kotlin/com/ustadmobile/lib/db/entities/ClazzAssignmentWithTimezone.kt","../../../../../lib-database/src/commonMain/kotlin/com/ustadmobile/lib/db/entities/ClazzContentJoin.kt","../../../../../lib-database/src/commonMain/kotlin/com/ustadmobile/lib/db/entities/ClazzContentJoinReplicate.kt","../../../../../lib-database/src/commonMain/kotlin/com/ustadmobile/lib/db/entities/ClazzEnrolment.kt","../../../../../lib-database/src/commonMain/kotlin/com/ustadmobile/lib/db/entities/ClazzEnrolmentReplicate.kt","../../../../../lib-database/src/commonMain/kotlin/com/ustadmobile/lib/db/entities/ClazzEnrolmentWithClazz.kt","../../../../../lib-database/src/commonMain/kotlin/com/ustadmobile/lib/db/entities/ClazzEnrolmentWithClazzAndAttendance.kt","../../../../../lib-database/src/commonMain/kotlin/com/ustadmobile/lib/db/entities/ClazzEnrolmentWithLeavingReason.kt","../../../../../lib-database/src/commonMain/kotlin/com/ustadmobile/lib/db/entities/ClazzEnrolmentWithPerson.kt","../../../../../lib-database/src/commonMain/kotlin/com/ustadmobile/lib/db/entities/ClazzLog.kt","../../../../../lib-database/src/commonMain/kotlin/com/ustadmobile/lib/db/entities/ClazzLogAttendanceRecord.kt","../../../../../lib-database/src/commonMain/kotlin/com/ustadmobile/lib/db/entities/ClazzLogAttendanceRecordReplicate.kt","../../../../../lib-database/src/commonMain/kotlin/com/ustadmobile/lib/db/entities/ClazzLogAttendanceRecordWithPerson.kt","../../../../../lib-database/src/commonMain/kotlin/com/ustadmobile/lib/db/entities/ClazzLogReplicate.kt","../../../../../lib-database/src/commonMain/kotlin/com/ustadmobile/lib/db/entities/ClazzReplicate.kt","../../../../../lib-database/src/commonMain/kotlin/com/ustadmobile/lib/db/entities/ClazzWithDisplayDetails.kt","../../../../../lib-database/src/commonMain/kotlin/com/ustadmobile/lib/db/entities/ClazzWithHolidayCalendarAndSchoolAndTerminology.kt","../../../../../lib-database/src/commonMain/kotlin/com/ustadmobile/lib/db/entities/ClazzWithListDisplayDetails.kt","../../../../../lib-database/src/commonMain/kotlin/com/ustadmobile/lib/db/entities/ClazzWithSchool.kt","../../../../../lib-database/src/commonMain/kotlin/com/ustadmobile/lib/db/entities/Comments.kt","../../../../../lib-database/src/commonMain/kotlin/com/ustadmobile/lib/db/entities/CommentsReplicate.kt","../../../../../lib-database/src/commonMain/kotlin/com/ustadmobile/lib/db/entities/CommentsWithPerson.kt","../../../../../lib-database/src/commonMain/kotlin/com/ustadmobile/lib/db/entities/ConnectivityStatus.kt","../../../../../lib-database/src/commonMain/kotlin/com/ustadmobile/lib/db/entities/Container.kt","../../../../../lib-database/src/commonMain/kotlin/com/ustadmobile/lib/db/entities/ContainerETag.kt","../../../../../lib-database/src/commonMain/kotlin/com/ustadmobile/lib/db/entities/ContainerEntry.kt","../../../../../lib-database/src/commonMain/kotlin/com/ustadmobile/lib/db/entities/ContainerEntryFile.kt","../../../../../lib-database/src/commonMain/kotlin/com/ustadmobile/lib/db/entities/ContainerEntryFileUidAndPath.kt","../../../../../lib-database/src/commonMain/kotlin/com/ustadmobile/lib/db/entities/ContainerEntryWithContainerEntryFile.kt","../../../../../lib-database/src/commonMain/kotlin/com/ustadmobile/lib/db/entities/ContainerEntryWithMd5.kt","../../../../../lib-database/src/commonMain/kotlin/com/ustadmobile/lib/db/entities/ContainerFilesWithContentEntry.kt","../../../../../lib-database/src/commonMain/kotlin/com/ustadmobile/lib/db/entities/ContainerImportJob.kt","../../../../../lib-database/src/commonMain/kotlin/com/ustadmobile/lib/db/entities/ContainerManifest.kt","../../../../../lib-database/src/commonMain/kotlin/com/ustadmobile/lib/db/entities/ContainerReplicate.kt","../../../../../lib-database/src/commonMain/kotlin/com/ustadmobile/lib/db/entities/ContainerUidAndMimeType.kt","../../../../../lib-database/src/commonMain/kotlin/com/ustadmobile/lib/db/entities/ContainerWithContentEntry.kt","../../../../../lib-database/src/commonMain/kotlin/com/ustadmobile/lib/db/entities/ContentCategory.kt","../../../../../lib-database/src/commonMain/kotlin/com/ustadmobile/lib/db/entities/ContentCategoryReplicate.kt","../../../../../lib-database/src/commonMain/kotlin/com/ustadmobile/lib/db/entities/ContentCategorySchema.kt","../../../../../lib-database/src/commonMain/kotlin/com/ustadmobile/lib/db/entities/ContentCategorySchemaReplicate.kt","../../../../../lib-database/src/commonMain/kotlin/com/ustadmobile/lib/db/entities/ContentEntry.kt","../../../../../lib-database/src/commonMain/kotlin/com/ustadmobile/lib/db/entities/ContentEntryContentCategoryJoin.kt","../../../../../lib-database/src/commonMain/kotlin/com/ustadmobile/lib/db/entities/ContentEntryContentCategoryJoinReplicate.kt","../../../../../lib-database/src/commonMain/kotlin/com/ustadmobile/lib/db/entities/ContentEntryContentJobItemParams.kt","../../../../../lib-database/src/commonMain/kotlin/com/ustadmobile/lib/db/entities/ContentEntryParentChildJoin.kt","../../../../../lib-database/src/commonMain/kotlin/com/ustadmobile/lib/db/entities/ContentEntryParentChildJoinReplicate.kt","../../../../../lib-database/src/commonMain/kotlin/com/ustadmobile/lib/db/entities/ContentEntryPicture.kt","../../../../../lib-database/src/commonMain/kotlin/com/ustadmobile/lib/db/entities/ContentEntryPictureReplicate.kt","../../../../../lib-database/src/commonMain/kotlin/com/ustadmobile/lib/db/entities/ContentEntryRelatedEntryJoin.kt","../../../../../lib-database/src/commonMain/kotlin/com/ustadmobile/lib/db/entities/ContentEntryRelatedEntryJoinReplicate.kt","../../../../../lib-database/src/commonMain/kotlin/com/ustadmobile/lib/db/entities/ContentEntryRelatedEntryJoinWithLangName.kt","../../../../../lib-database/src/commonMain/kotlin/com/ustadmobile/lib/db/entities/ContentEntryRelatedEntryJoinWithLanguage.kt","../../../../../lib-database/src/commonMain/kotlin/com/ustadmobile/lib/db/entities/ContentEntryReplicate.kt","../../../../../lib-database/src/commonMain/kotlin/com/ustadmobile/lib/db/entities/ContentEntryStatementScoreProgress.kt","../../../../../lib-database/src/commonMain/kotlin/com/ustadmobile/lib/db/entities/ContentEntryWithAttemptsSummary.kt","../../../../../lib-database/src/commonMain/kotlin/com/ustadmobile/lib/db/entities/ContentEntryWithBlockAndLanguage.kt","../../../../../lib-database/src/commonMain/kotlin/com/ustadmobile/lib/db/entities/ContentEntryWithLanguage.kt","../../../../../lib-database/src/commonMain/kotlin/com/ustadmobile/lib/db/entities/ContentEntryWithMostRecentContainer.kt","../../../../../lib-database/src/commonMain/kotlin/com/ustadmobile/lib/db/entities/ContentEntryWithParentChildJoinAndMostRecentContainer.kt","../../../../../lib-database/src/commonMain/kotlin/com/ustadmobile/lib/db/entities/ContentEntryWithParentChildJoinAndStatusAndMostRecentContainer.kt","../../../../../lib-database/src/commonMain/kotlin/com/ustadmobile/lib/db/entities/ContentWithAttemptSummary.kt","../../../../../lib-database/src/commonMain/kotlin/com/ustadmobile/lib/db/entities/ContextXObjectStatementJoin.kt","../../../../../lib-database/src/commonMain/kotlin/com/ustadmobile/lib/db/entities/ContextXObjectStatementJoinReplicate.kt","../../../../../lib-database/src/commonMain/kotlin/com/ustadmobile/lib/db/entities/CourseAssignmentMark.kt","../../../../../lib-database/src/commonMain/kotlin/com/ustadmobile/lib/db/entities/CourseAssignmentSubmission.kt","../../../../../lib-database/src/commonMain/kotlin/com/ustadmobile/lib/db/entities/CourseAssignmentSubmissionAttachment.kt","../../../../../lib-database/src/commonMain/kotlin/com/ustadmobile/lib/db/entities/CourseAssignmentSubmissionWithAttachment.kt","../../../../../lib-database/src/commonMain/kotlin/com/ustadmobile/lib/db/entities/CourseBlock.kt","../../../../../lib-database/src/commonMain/kotlin/com/ustadmobile/lib/db/entities/CourseBlockWithEntity.kt","../../../../../lib-database/src/commonMain/kotlin/com/ustadmobile/lib/db/entities/CourseBlockWithEntityDb.kt","../../../../../lib-database/src/commonMain/kotlin/com/ustadmobile/lib/db/entities/CourseDiscussion.kt","../../../../../lib-database/src/commonMain/kotlin/com/ustadmobile/lib/db/entities/CourseDiscussionReplicate.kt","../../../../../lib-database/src/commonMain/kotlin/com/ustadmobile/lib/db/entities/CourseGroupMember.kt","../../../../../lib-database/src/commonMain/kotlin/com/ustadmobile/lib/db/entities/CourseGroupMemberPerson.kt","../../../../../lib-database/src/commonMain/kotlin/com/ustadmobile/lib/db/entities/CourseGroupSet.kt","../../../../../lib-database/src/commonMain/kotlin/com/ustadmobile/lib/db/entities/CoursePicture.kt","../../../../../lib-database/src/commonMain/kotlin/com/ustadmobile/lib/db/entities/CoursePictureReplicate.kt","../../../../../lib-database/src/commonMain/kotlin/com/ustadmobile/lib/db/entities/CourseTerminology.kt","../../../../../lib-database/src/commonMain/kotlin/com/ustadmobile/lib/db/entities/DeviceSession.kt","../../../../../lib-database/src/commonMain/kotlin/com/ustadmobile/lib/db/entities/DiscussionPost.kt","../../../../../lib-database/src/commonMain/kotlin/com/ustadmobile/lib/db/entities/DiscussionPostReplicate.kt","../../../../../lib-database/src/commonMain/kotlin/com/ustadmobile/lib/db/entities/DiscussionPostWithDetails.kt","../../../../../lib-database/src/commonMain/kotlin/com/ustadmobile/lib/db/entities/DiscussionTopic.kt","../../../../../lib-database/src/commonMain/kotlin/com/ustadmobile/lib/db/entities/DiscussionTopicListDetail.kt","../../../../../lib-database/src/commonMain/kotlin/com/ustadmobile/lib/db/entities/DiscussionTopicReplicate.kt","../../../../../lib-database/src/commonMain/kotlin/com/ustadmobile/lib/db/entities/DistinctCategorySchema.kt","../../../../../lib-database/src/commonMain/kotlin/com/ustadmobile/lib/db/entities/EntityRole.kt","../../../../../lib-database/src/commonMain/kotlin/com/ustadmobile/lib/db/entities/EntityRoleWithNameAndRole.kt","../../../../../lib-database/src/commonMain/kotlin/com/ustadmobile/lib/db/entities/EntryStatusResponse.kt","../../../../../lib-database/src/commonMain/kotlin/com/ustadmobile/lib/db/entities/ErrorReportReplicate.kt","../../../../../lib-database/src/commonMain/kotlin/com/ustadmobile/lib/db/entities/GroupLearningSession.kt","../../../../../lib-database/src/commonMain/kotlin/com/ustadmobile/lib/db/entities/GroupLearningSessionReplicate.kt","../../../../../lib-database/src/commonMain/kotlin/com/ustadmobile/lib/db/entities/Holiday.kt","../../../../../lib-database/src/commonMain/kotlin/com/ustadmobile/lib/db/entities/HolidayCalendar.kt","../../../../../lib-database/src/commonMain/kotlin/com/ustadmobile/lib/db/entities/HolidayCalendarReplicate.kt","../../../../../lib-database/src/commonMain/kotlin/com/ustadmobile/lib/db/entities/HolidayCalendarWithNumEntries.kt","../../../../../lib-database/src/commonMain/kotlin/com/ustadmobile/lib/db/entities/HolidayReplicate.kt","../../../../../lib-database/src/commonMain/kotlin/com/ustadmobile/lib/db/entities/LangUidAndName.kt","../../../../../lib-database/src/commonMain/kotlin/com/ustadmobile/lib/db/entities/LanguageReplicate.kt","../../../../../lib-database/src/commonMain/kotlin/com/ustadmobile/lib/db/entities/LanguageVariant.kt","../../../../../lib-database/src/commonMain/kotlin/com/ustadmobile/lib/db/entities/LanguageVariantReplicate.kt","../../../../../lib-database/src/commonMain/kotlin/com/ustadmobile/lib/db/entities/LearnerGroup.kt","../../../../../lib-database/src/commonMain/kotlin/com/ustadmobile/lib/db/entities/LearnerGroupMember.kt","../../../../../lib-database/src/commonMain/kotlin/com/ustadmobile/lib/db/entities/LearnerGroupMemberReplicate.kt","../../../../../lib-database/src/commonMain/kotlin/com/ustadmobile/lib/db/entities/LearnerGroupMemberWithPerson.kt","../../../../../lib-database/src/commonMain/kotlin/com/ustadmobile/lib/db/entities/LearnerGroupReplicate.kt","../../../../../lib-database/src/commonMain/kotlin/com/ustadmobile/lib/db/entities/LeavingReason.kt","../../../../../lib-database/src/commonMain/kotlin/com/ustadmobile/lib/db/entities/LeavingReasonReplicate.kt","../../../../../lib-database/src/commonMain/kotlin/com/ustadmobile/lib/db/entities/LocallyAvailableContainer.kt","../../../../../lib-database/src/commonMain/kotlin/com/ustadmobile/lib/db/entities/Message.kt","../../../../../lib-database/src/commonMain/kotlin/com/ustadmobile/lib/db/entities/MessageRead.kt","../../../../../lib-database/src/commonMain/kotlin/com/ustadmobile/lib/db/entities/MessageReadReplicate.kt","../../../../../lib-database/src/commonMain/kotlin/com/ustadmobile/lib/db/entities/MessageReplicate.kt","../../../../../lib-database/src/commonMain/kotlin/com/ustadmobile/lib/db/entities/MessageWithPerson.kt","../../../../../lib-database/src/commonMain/kotlin/com/ustadmobile/lib/db/entities/Moment.kt","../../../../../lib-database/src/commonMain/kotlin/com/ustadmobile/lib/db/entities/NetworkNode.kt","../../../../../lib-database/src/commonMain/kotlin/com/ustadmobile/lib/db/entities/Person.kt","../../../../../lib-database/src/commonMain/kotlin/com/ustadmobile/lib/db/entities/PersonAuth.kt","../../../../../lib-database/src/commonMain/kotlin/com/ustadmobile/lib/db/entities/PersonAuth2Replicate.kt","../../../../../lib-database/src/commonMain/kotlin/com/ustadmobile/lib/db/entities/PersonGroup.kt","../../../../../lib-database/src/commonMain/kotlin/com/ustadmobile/lib/db/entities/PersonGroupMember.kt","../../../../../lib-database/src/commonMain/kotlin/com/ustadmobile/lib/db/entities/PersonGroupMemberReplicate.kt","../../../../../lib-database/src/commonMain/kotlin/com/ustadmobile/lib/db/entities/PersonGroupReplicate.kt","../../../../../lib-database/src/commonMain/kotlin/com/ustadmobile/lib/db/entities/PersonGroupWithMemberCount.kt","../../../../../lib-database/src/commonMain/kotlin/com/ustadmobile/lib/db/entities/PersonNameAndUid.kt","../../../../../lib-database/src/commonMain/kotlin/com/ustadmobile/lib/db/entities/PersonParentJoin.kt","../../../../../lib-database/src/commonMain/kotlin/com/ustadmobile/lib/db/entities/PersonParentJoinReplicate.kt","../../../../../lib-database/src/commonMain/kotlin/com/ustadmobile/lib/db/entities/PersonParentJoinWithMinorPerson.kt","../../../../../lib-database/src/commonMain/kotlin/com/ustadmobile/lib/db/entities/PersonPicture.kt","../../../../../lib-database/src/commonMain/kotlin/com/ustadmobile/lib/db/entities/PersonPictureReplicate.kt","../../../../../lib-database/src/commonMain/kotlin/com/ustadmobile/lib/db/entities/PersonReplicate.kt","../../../../../lib-database/src/commonMain/kotlin/com/ustadmobile/lib/db/entities/PersonWithAccount.kt","../../../../../lib-database/src/commonMain/kotlin/com/ustadmobile/lib/db/entities/PersonWithAttemptsSummary.kt","../../../../../lib-database/src/commonMain/kotlin/com/ustadmobile/lib/db/entities/PersonWithClazzEnrolmentDetails.kt","../../../../../lib-database/src/commonMain/kotlin/com/ustadmobile/lib/db/entities/PersonWithDisplayDetails.kt","../../../../../lib-database/src/commonMain/kotlin/com/ustadmobile/lib/db/entities/PersonWithPersonParentJoin.kt","../../../../../lib-database/src/commonMain/kotlin/com/ustadmobile/lib/db/entities/PersonWithSessionsDisplay.kt","../../../../../lib-database/src/commonMain/kotlin/com/ustadmobile/lib/db/entities/ReportFilter.kt","../../../../../lib-database/src/commonMain/kotlin/com/ustadmobile/lib/db/entities/ReportFilterWithDisplayDetails.kt","../../../../../lib-database/src/commonMain/kotlin/com/ustadmobile/lib/db/entities/ReportReplicate.kt","../../../../../lib-database/src/commonMain/kotlin/com/ustadmobile/lib/db/entities/ReportSeries.kt","../../../../../lib-database/src/commonMain/kotlin/com/ustadmobile/lib/db/entities/ReportWithSeriesWithFilters.kt","../../../../../lib-database/src/commonMain/kotlin/com/ustadmobile/lib/db/entities/Schedule.kt","../../../../../lib-database/src/commonMain/kotlin/com/ustadmobile/lib/db/entities/ScheduleReplicate.kt","../../../../../lib-database/src/commonMain/kotlin/com/ustadmobile/lib/db/entities/School.kt","../../../../../lib-database/src/commonMain/kotlin/com/ustadmobile/lib/db/entities/SchoolMember.kt","../../../../../lib-database/src/commonMain/kotlin/com/ustadmobile/lib/db/entities/SchoolMemberReplicate.kt","../../../../../lib-database/src/commonMain/kotlin/com/ustadmobile/lib/db/entities/SchoolMemberWithPerson.kt","../../../../../lib-database/src/commonMain/kotlin/com/ustadmobile/lib/db/entities/SchoolPicture.kt","../../../../../lib-database/src/commonMain/kotlin/com/ustadmobile/lib/db/entities/SchoolReplicate.kt","../../../../../lib-database/src/commonMain/kotlin/com/ustadmobile/lib/db/entities/SchoolWithHolidayCalendar.kt","../../../../../lib-database/src/commonMain/kotlin/com/ustadmobile/lib/db/entities/SchoolWithMemberCountAndLocation.kt","../../../../../lib-database/src/commonMain/kotlin/com/ustadmobile/lib/db/entities/ScopedGrantAndName.kt","../../../../../lib-database/src/commonMain/kotlin/com/ustadmobile/lib/db/entities/ScopedGrantReplicate.kt","../../../../../lib-database/src/commonMain/kotlin/com/ustadmobile/lib/db/entities/ScopedGrantWithName.kt","../../../../../lib-database/src/commonMain/kotlin/com/ustadmobile/lib/db/entities/ScrapeQueueItem.kt","../../../../../lib-database/src/commonMain/kotlin/com/ustadmobile/lib/db/entities/ScrapeQueueItemWithScrapeRun.kt","../../../../../lib-database/src/commonMain/kotlin/com/ustadmobile/lib/db/entities/ScrapeRun.kt","../../../../../lib-database/src/commonMain/kotlin/com/ustadmobile/lib/db/entities/Site.kt","../../../../../lib-database/src/commonMain/kotlin/com/ustadmobile/lib/db/entities/SiteReplicate.kt","../../../../../lib-database/src/commonMain/kotlin/com/ustadmobile/lib/db/entities/SiteTerms.kt","../../../../../lib-database/src/commonMain/kotlin/com/ustadmobile/lib/db/entities/SiteTermsReplicate.kt","../../../../../lib-database/src/commonMain/kotlin/com/ustadmobile/lib/db/entities/SiteTermsWithLanguage.kt","../../../../../lib-database/src/commonMain/kotlin/com/ustadmobile/lib/db/entities/StateContentEntity.kt","../../../../../lib-database/src/commonMain/kotlin/com/ustadmobile/lib/db/entities/StateContentEntityReplicate.kt","../../../../../lib-database/src/commonMain/kotlin/com/ustadmobile/lib/db/entities/StateEntity.kt","../../../../../lib-database/src/commonMain/kotlin/com/ustadmobile/lib/db/entities/StateEntityReplicate.kt","../../../../../lib-database/src/commonMain/kotlin/com/ustadmobile/lib/db/entities/StatementEntity.kt","../../../../../lib-database/src/commonMain/kotlin/com/ustadmobile/lib/db/entities/StatementEntityReplicate.kt","../../../../../lib-database/src/commonMain/kotlin/com/ustadmobile/lib/db/entities/StatementEntityWithDisplayDetails.kt","../../../../../lib-database/src/commonMain/kotlin/com/ustadmobile/lib/db/entities/StatementReportData.kt","../../../../../lib-database/src/commonMain/kotlin/com/ustadmobile/lib/db/entities/StatementWithSessionDetailDisplay.kt","../../../../../lib-database/src/commonMain/kotlin/com/ustadmobile/lib/db/entities/TerminologyEntry.kt","../../../../../lib-database/src/commonMain/kotlin/com/ustadmobile/lib/db/entities/UidAndLabel.kt","../../../../../lib-database/src/commonMain/kotlin/com/ustadmobile/lib/db/entities/UmAccount.kt","../../../../../lib-database/src/commonMain/kotlin/com/ustadmobile/lib/db/entities/UserSession.kt","../../../../../lib-database/src/commonMain/kotlin/com/ustadmobile/lib/db/entities/UserSessionReplicate.kt","../../../../../lib-database/src/commonMain/kotlin/com/ustadmobile/lib/db/entities/VerbEntity.kt","../../../../../lib-database/src/commonMain/kotlin/com/ustadmobile/lib/db/entities/VerbEntityReplicate.kt","../../../../../lib-database/src/commonMain/kotlin/com/ustadmobile/lib/db/entities/XLangMapEntry.kt","../../../../../lib-database/src/commonMain/kotlin/com/ustadmobile/lib/db/entities/XLangMapEntryReplicate.kt","../../../../../lib-database/src/commonMain/kotlin/com/ustadmobile/lib/db/entities/XObjectEntity.kt","../../../../../lib-database/src/commonMain/kotlin/com/ustadmobile/lib/db/entities/XObjectEntityReplicate.kt","../../../../../lib-database/src/commonMain/kotlin/com/ustadmobile/staging/lib/db/entities/AuditLog.kt","../../../../../lib-database/src/commonMain/kotlin/com/ustadmobile/staging/lib/db/entities/CustomField.kt","../../../../../lib-database/src/commonMain/kotlin/com/ustadmobile/staging/lib/db/entities/CustomFieldValue.kt","../../../../../lib-database/src/commonMain/kotlin/com/ustadmobile/staging/lib/db/entities/CustomFieldValueOption.kt","../../../../../lib-database/src/commonMain/kotlin/com/ustadmobile/staging/lib/db/entities/DateRange.kt"],"sourcesContent":["/*\n * Copyright 2010-2021 JetBrains s.r.o. and Kotlin Programming Language contributors.\n * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.\n */\n\n@file:kotlin.jvm.JvmMultifileClass\n@file:kotlin.jvm.JvmName(\"MapsKt\")\n@file:OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n\npackage kotlin.collections\n\nimport kotlin.contracts.*\n\nprivate object EmptyMap : Map, Serializable {\n private const val serialVersionUID: Long = 8246714829545688274\n\n override fun equals(other: Any?): Boolean = other is Map<*, *> && other.isEmpty()\n override fun hashCode(): Int = 0\n override fun toString(): String = \"{}\"\n\n override val size: Int get() = 0\n override fun isEmpty(): Boolean = true\n\n override fun containsKey(key: Any?): Boolean = false\n override fun containsValue(value: Nothing): Boolean = false\n override fun get(key: Any?): Nothing? = null\n override val entries: Set> get() = EmptySet\n override val keys: Set get() = EmptySet\n override val values: Collection get() = EmptyList\n\n private fun readResolve(): Any = EmptyMap\n}\n\n/**\n * Returns an empty read-only map of specified type.\n *\n * The returned map is serializable (JVM).\n * @sample samples.collections.Maps.Instantiation.emptyReadOnlyMap\n */\npublic fun emptyMap(): Map = @Suppress(\"UNCHECKED_CAST\") (EmptyMap as Map)\n\n/**\n * Returns a new read-only map with the specified contents, given as a list of pairs\n * where the first value is the key and the second is the value.\n *\n * If multiple pairs have the same key, the resulting map will contain the value from the last of those pairs.\n *\n * Entries of the map are iterated in the order they were specified.\n *\n * The returned map is serializable (JVM).\n *\n * @sample samples.collections.Maps.Instantiation.mapFromPairs\n */\npublic fun mapOf(vararg pairs: Pair): Map =\n if (pairs.size > 0) pairs.toMap(LinkedHashMap(mapCapacity(pairs.size))) else emptyMap()\n\n/**\n * Returns an empty read-only map.\n *\n * The returned map is serializable (JVM).\n * @sample samples.collections.Maps.Instantiation.emptyReadOnlyMap\n */\n@kotlin.internal.InlineOnly\npublic inline fun mapOf(): Map = emptyMap()\n\n/**\n * Returns an empty new [MutableMap].\n *\n * The returned map preserves the entry iteration order.\n * @sample samples.collections.Maps.Instantiation.emptyMutableMap\n */\n@SinceKotlin(\"1.1\")\n@kotlin.internal.InlineOnly\npublic inline fun mutableMapOf(): MutableMap = LinkedHashMap()\n\n/**\n * Returns a new [MutableMap] with the specified contents, given as a list of pairs\n * where the first component is the key and the second is the value.\n *\n * If multiple pairs have the same key, the resulting map will contain the value from the last of those pairs.\n *\n * Entries of the map are iterated in the order they were specified.\n *\n * @sample samples.collections.Maps.Instantiation.mutableMapFromPairs\n * @sample samples.collections.Maps.Instantiation.emptyMutableMap\n */\npublic fun mutableMapOf(vararg pairs: Pair): MutableMap =\n LinkedHashMap(mapCapacity(pairs.size)).apply { putAll(pairs) }\n\n/**\n * Returns an empty new [HashMap].\n *\n * @sample samples.collections.Maps.Instantiation.emptyHashMap\n */\n@SinceKotlin(\"1.1\")\n@kotlin.internal.InlineOnly\npublic inline fun hashMapOf(): HashMap = HashMap()\n\n/**\n * Returns a new [HashMap] with the specified contents, given as a list of pairs\n * where the first component is the key and the second is the value.\n *\n * @sample samples.collections.Maps.Instantiation.hashMapFromPairs\n */\npublic fun hashMapOf(vararg pairs: Pair): HashMap = HashMap(mapCapacity(pairs.size)).apply { putAll(pairs) }\n\n/**\n * Returns an empty new [LinkedHashMap].\n */\n@SinceKotlin(\"1.1\")\n@kotlin.internal.InlineOnly\npublic inline fun linkedMapOf(): LinkedHashMap = LinkedHashMap()\n\n/**\n * Returns a new [LinkedHashMap] with the specified contents, given as a list of pairs\n * where the first component is the key and the second is the value.\n *\n * If multiple pairs have the same key, the resulting map will contain the value from the last of those pairs.\n *\n * Entries of the map are iterated in the order they were specified.\n *\n * @sample samples.collections.Maps.Instantiation.linkedMapFromPairs\n */\npublic fun linkedMapOf(vararg pairs: Pair): LinkedHashMap = pairs.toMap(LinkedHashMap(mapCapacity(pairs.size)))\n\n/**\n * Builds a new read-only [Map] by populating a [MutableMap] using the given [builderAction]\n * and returning a read-only map with the same key-value pairs.\n *\n * The map passed as a receiver to the [builderAction] is valid only inside that function.\n * Using it outside of the function produces an unspecified behavior.\n *\n * Entries of the map are iterated in the order they were added by the [builderAction].\n *\n * The returned map is serializable (JVM).\n *\n * @sample samples.collections.Builders.Maps.buildMapSample\n */\n@SinceKotlin(\"1.6\")\n@WasExperimental(ExperimentalStdlibApi::class)\n@kotlin.internal.InlineOnly\n@Suppress(\"DEPRECATION\")\npublic inline fun buildMap(@BuilderInference builderAction: MutableMap.() -> Unit): Map {\n contract { callsInPlace(builderAction, InvocationKind.EXACTLY_ONCE) }\n return buildMapInternal(builderAction)\n}\n\n@PublishedApi\n@SinceKotlin(\"1.3\")\n@kotlin.internal.InlineOnly\ninternal expect inline fun buildMapInternal(builderAction: MutableMap.() -> Unit): Map\n\n/**\n * Builds a new read-only [Map] by populating a [MutableMap] using the given [builderAction]\n * and returning a read-only map with the same key-value pairs.\n *\n * The map passed as a receiver to the [builderAction] is valid only inside that function.\n * Using it outside of the function produces an unspecified behavior.\n *\n * [capacity] is used to hint the expected number of pairs added in the [builderAction].\n *\n * Entries of the map are iterated in the order they were added by the [builderAction].\n *\n * The returned map is serializable (JVM).\n *\n * @throws IllegalArgumentException if the given [capacity] is negative.\n *\n * @sample samples.collections.Builders.Maps.buildMapSample\n */\n@SinceKotlin(\"1.6\")\n@WasExperimental(ExperimentalStdlibApi::class)\n@kotlin.internal.InlineOnly\n@Suppress(\"DEPRECATION\")\npublic inline fun buildMap(capacity: Int, @BuilderInference builderAction: MutableMap.() -> Unit): Map {\n contract { callsInPlace(builderAction, InvocationKind.EXACTLY_ONCE) }\n return buildMapInternal(capacity, builderAction)\n}\n\n@PublishedApi\n@SinceKotlin(\"1.3\")\n@kotlin.internal.InlineOnly\ninternal expect inline fun buildMapInternal(capacity: Int, builderAction: MutableMap.() -> Unit): Map\n\n/**\n * Calculate the initial capacity of a map.\n */\n@PublishedApi\ninternal expect fun mapCapacity(expectedSize: Int): Int\n\n/**\n * Returns `true` if this map is not empty.\n * @sample samples.collections.Maps.Usage.mapIsNotEmpty\n */\n@kotlin.internal.InlineOnly\npublic inline fun Map.isNotEmpty(): Boolean = !isEmpty()\n\n/**\n * Returns `true` if this nullable map is either null or empty.\n * @sample samples.collections.Maps.Usage.mapIsNullOrEmpty\n */\n@SinceKotlin(\"1.3\")\n@kotlin.internal.InlineOnly\npublic inline fun Map?.isNullOrEmpty(): Boolean {\n contract {\n returns(false) implies (this@isNullOrEmpty != null)\n }\n\n return this == null || isEmpty()\n}\n\n/**\n * Returns the [Map] if its not `null`, or the empty [Map] otherwise.\n *\n * @sample samples.collections.Maps.Usage.mapOrEmpty\n */\n@kotlin.internal.InlineOnly\npublic inline fun Map?.orEmpty(): Map = this ?: emptyMap()\n\n/**\n * Returns this map if it's not empty\n * or the result of calling [defaultValue] function if the map is empty.\n *\n * @sample samples.collections.Maps.Usage.mapIfEmpty\n */\n@SinceKotlin(\"1.3\")\n@kotlin.internal.InlineOnly\npublic inline fun M.ifEmpty(defaultValue: () -> R): R where M : Map<*, *>, M : R =\n if (isEmpty()) defaultValue() else this\n\n/**\n * Checks if the map contains the given key.\n *\n * This method allows to use the `x in map` syntax for checking whether an object is contained in the map.\n *\n * @sample samples.collections.Maps.Usage.containsKey\n */\n@kotlin.internal.InlineOnly\npublic inline operator fun <@kotlin.internal.OnlyInputTypes K, V> Map.contains(key: K): Boolean = containsKey(key)\n\n/**\n * Returns the value corresponding to the given [key], or `null` if such a key is not present in the map.\n */\n@kotlin.internal.InlineOnly\npublic inline operator fun <@kotlin.internal.OnlyInputTypes K, V> Map.get(key: K): V? =\n @Suppress(\"UNCHECKED_CAST\") (this as Map).get(key)\n\n/**\n * Allows to use the index operator for storing values in a mutable map.\n */\n@kotlin.internal.InlineOnly\npublic inline operator fun MutableMap.set(key: K, value: V): Unit {\n put(key, value)\n}\n\n/**\n * Returns `true` if the map contains the specified [key].\n *\n * Allows to overcome type-safety restriction of `containsKey` that requires to pass a key of type `K`.\n */\n@kotlin.internal.InlineOnly\npublic inline fun <@kotlin.internal.OnlyInputTypes K> Map.containsKey(key: K): Boolean =\n @Suppress(\"UNCHECKED_CAST\") (this as Map).containsKey(key)\n\n/**\n * Returns `true` if the map maps one or more keys to the specified [value].\n *\n * Allows to overcome type-safety restriction of `containsValue` that requires to pass a value of type `V`.\n *\n * @sample samples.collections.Maps.Usage.containsValue\n */\n@Suppress(\"EXTENSION_SHADOWED_BY_MEMBER\") // false warning, extension takes precedence in some cases\n@kotlin.internal.InlineOnly\npublic inline fun Map.containsValue(value: V): Boolean = this.containsValue(value)\n\n\n/**\n * Removes the specified key and its corresponding value from this map.\n *\n * @return the previous value associated with the key, or `null` if the key was not present in the map.\n\n * Allows to overcome type-safety restriction of `remove` that requires to pass a key of type `K`.\n */\n@kotlin.internal.InlineOnly\npublic inline fun <@kotlin.internal.OnlyInputTypes K, V> MutableMap.remove(key: K): V? =\n @Suppress(\"UNCHECKED_CAST\") (this as MutableMap).remove(key)\n\n/**\n * Returns the key component of the map entry.\n *\n * This method allows to use destructuring declarations when working with maps, for example:\n * ```\n * for ((key, value) in map) {\n * // do something with the key and the value\n * }\n * ```\n */\n@kotlin.internal.InlineOnly\npublic inline operator fun Map.Entry.component1(): K = key\n\n/**\n * Returns the value component of the map entry.\n *\n * This method allows to use destructuring declarations when working with maps, for example:\n * ```\n * for ((key, value) in map) {\n * // do something with the key and the value\n * }\n * ```\n */\n@kotlin.internal.InlineOnly\npublic inline operator fun Map.Entry.component2(): V = value\n\n/**\n * Converts entry to [Pair] with key being first component and value being second.\n */\n@kotlin.internal.InlineOnly\npublic inline fun Map.Entry.toPair(): Pair = Pair(key, value)\n\n/**\n * Returns the value for the given key, or the result of the [defaultValue] function if there was no entry for the given key.\n *\n * @sample samples.collections.Maps.Usage.getOrElse\n */\n@kotlin.internal.InlineOnly\npublic inline fun Map.getOrElse(key: K, defaultValue: () -> V): V = get(key) ?: defaultValue()\n\n\ninternal inline fun Map.getOrElseNullable(key: K, defaultValue: () -> V): V {\n val value = get(key)\n if (value == null && !containsKey(key)) {\n return defaultValue()\n } else {\n @Suppress(\"UNCHECKED_CAST\")\n return value as V\n }\n}\n\n/**\n * Returns the value for the given [key] or throws an exception if there is no such key in the map.\n *\n * If the map was created by [withDefault], resorts to its `defaultValue` provider function\n * instead of throwing an exception.\n *\n * @throws NoSuchElementException when the map doesn't contain a value for the specified key and\n * no implicit default value was provided for that map.\n */\n@SinceKotlin(\"1.1\")\npublic fun Map.getValue(key: K): V = getOrImplicitDefault(key)\n\n/**\n * Returns the value for the given key. If the key is not found in the map, calls the [defaultValue] function,\n * puts its result into the map under the given key and returns it.\n *\n * Note that the operation is not guaranteed to be atomic if the map is being modified concurrently.\n *\n * @sample samples.collections.Maps.Usage.getOrPut\n */\npublic inline fun MutableMap.getOrPut(key: K, defaultValue: () -> V): V {\n val value = get(key)\n return if (value == null) {\n val answer = defaultValue()\n put(key, answer)\n answer\n } else {\n value\n }\n}\n\n/**\n * Returns an [Iterator] over the entries in the [Map].\n *\n * @sample samples.collections.Maps.Usage.forOverEntries\n */\n@kotlin.internal.InlineOnly\npublic inline operator fun Map.iterator(): Iterator> = entries.iterator()\n\n/**\n * Returns a [MutableIterator] over the mutable entries in the [MutableMap].\n *\n */\n@kotlin.jvm.JvmName(\"mutableIterator\")\n@kotlin.internal.InlineOnly\npublic inline operator fun MutableMap.iterator(): MutableIterator> = entries.iterator()\n\n/**\n * Populates the given [destination] map with entries having the keys of this map and the values obtained\n * by applying the [transform] function to each entry in this [Map].\n */\npublic inline fun > Map.mapValuesTo(destination: M, transform: (Map.Entry) -> R): M {\n return entries.associateByTo(destination, { it.key }, transform)\n}\n\n/**\n * Populates the given [destination] map with entries having the keys obtained\n * by applying the [transform] function to each entry in this [Map] and the values of this map.\n *\n * In case if any two entries are mapped to the equal keys, the value of the latter one will overwrite\n * the value associated with the former one.\n */\npublic inline fun > Map.mapKeysTo(destination: M, transform: (Map.Entry) -> R): M {\n return entries.associateByTo(destination, transform, { it.value })\n}\n\n/**\n * Puts all the given [pairs] into this [MutableMap] with the first component in the pair being the key and the second the value.\n */\npublic fun MutableMap.putAll(pairs: Array>): Unit {\n for ((key, value) in pairs) {\n put(key, value)\n }\n}\n\n/**\n * Puts all the elements of the given collection into this [MutableMap] with the first component in the pair being the key and the second the value.\n */\npublic fun MutableMap.putAll(pairs: Iterable>): Unit {\n for ((key, value) in pairs) {\n put(key, value)\n }\n}\n\n/**\n * Puts all the elements of the given sequence into this [MutableMap] with the first component in the pair being the key and the second the value.\n */\npublic fun MutableMap.putAll(pairs: Sequence>): Unit {\n for ((key, value) in pairs) {\n put(key, value)\n }\n}\n\n/**\n * Returns a new map with entries having the keys of this map and the values obtained by applying the [transform]\n * function to each entry in this [Map].\n *\n * The returned map preserves the entry iteration order of the original map.\n *\n * @sample samples.collections.Maps.Transformations.mapValues\n */\npublic inline fun Map.mapValues(transform: (Map.Entry) -> R): Map {\n return mapValuesTo(LinkedHashMap(mapCapacity(size)), transform) // .optimizeReadOnlyMap()\n}\n\n/**\n * Returns a new Map with entries having the keys obtained by applying the [transform] function to each entry in this\n * [Map] and the values of this map.\n *\n * In case if any two entries are mapped to the equal keys, the value of the latter one will overwrite\n * the value associated with the former one.\n *\n * The returned map preserves the entry iteration order of the original map.\n *\n * @sample samples.collections.Maps.Transformations.mapKeys\n */\npublic inline fun Map.mapKeys(transform: (Map.Entry) -> R): Map {\n return mapKeysTo(LinkedHashMap(mapCapacity(size)), transform) // .optimizeReadOnlyMap()\n}\n\n/**\n * Returns a map containing all key-value pairs with keys matching the given [predicate].\n *\n * The returned map preserves the entry iteration order of the original map.\n * @sample samples.collections.Maps.Filtering.filterKeys\n */\npublic inline fun Map.filterKeys(predicate: (K) -> Boolean): Map {\n val result = LinkedHashMap()\n for (entry in this) {\n if (predicate(entry.key)) {\n result.put(entry.key, entry.value)\n }\n }\n return result\n}\n\n/**\n * Returns a map containing all key-value pairs with values matching the given [predicate].\n *\n * The returned map preserves the entry iteration order of the original map.\n * @sample samples.collections.Maps.Filtering.filterValues\n */\npublic inline fun Map.filterValues(predicate: (V) -> Boolean): Map {\n val result = LinkedHashMap()\n for (entry in this) {\n if (predicate(entry.value)) {\n result.put(entry.key, entry.value)\n }\n }\n return result\n}\n\n\n/**\n * Appends all entries matching the given [predicate] into the mutable map given as [destination] parameter.\n *\n * @return the destination map.\n * @sample samples.collections.Maps.Filtering.filterTo\n */\npublic inline fun > Map.filterTo(destination: M, predicate: (Map.Entry) -> Boolean): M {\n for (element in this) {\n if (predicate(element)) {\n destination.put(element.key, element.value)\n }\n }\n return destination\n}\n\n/**\n * Returns a new map containing all key-value pairs matching the given [predicate].\n *\n * The returned map preserves the entry iteration order of the original map.\n * @sample samples.collections.Maps.Filtering.filter\n */\npublic inline fun Map.filter(predicate: (Map.Entry) -> Boolean): Map {\n return filterTo(LinkedHashMap(), predicate)\n}\n\n/**\n * Appends all entries not matching the given [predicate] into the given [destination].\n *\n * @return the destination map.\n * @sample samples.collections.Maps.Filtering.filterNotTo\n */\npublic inline fun > Map.filterNotTo(destination: M, predicate: (Map.Entry) -> Boolean): M {\n for (element in this) {\n if (!predicate(element)) {\n destination.put(element.key, element.value)\n }\n }\n return destination\n}\n\n/**\n * Returns a new map containing all key-value pairs not matching the given [predicate].\n *\n * The returned map preserves the entry iteration order of the original map.\n * @sample samples.collections.Maps.Filtering.filterNot\n */\npublic inline fun Map.filterNot(predicate: (Map.Entry) -> Boolean): Map {\n return filterNotTo(LinkedHashMap(), predicate)\n}\n\n/**\n * Returns a new map containing all key-value pairs from the given collection of pairs.\n *\n * The returned map preserves the entry iteration order of the original collection.\n * If any of two pairs would have the same key the last one gets added to the map.\n */\npublic fun Iterable>.toMap(): Map {\n if (this is Collection) {\n return when (size) {\n 0 -> emptyMap()\n 1 -> mapOf(if (this is List) this[0] else iterator().next())\n else -> toMap(LinkedHashMap(mapCapacity(size)))\n }\n }\n return toMap(LinkedHashMap()).optimizeReadOnlyMap()\n}\n\n/**\n * Populates and returns the [destination] mutable map with key-value pairs from the given collection of pairs.\n */\npublic fun > Iterable>.toMap(destination: M): M =\n destination.apply { putAll(this@toMap) }\n\n/**\n * Returns a new map containing all key-value pairs from the given array of pairs.\n *\n * The returned map preserves the entry iteration order of the original array.\n * If any of two pairs would have the same key the last one gets added to the map.\n */\npublic fun Array>.toMap(): Map = when (size) {\n 0 -> emptyMap()\n 1 -> mapOf(this[0])\n else -> toMap(LinkedHashMap(mapCapacity(size)))\n}\n\n/**\n * Populates and returns the [destination] mutable map with key-value pairs from the given array of pairs.\n */\npublic fun > Array>.toMap(destination: M): M =\n destination.apply { putAll(this@toMap) }\n\n/**\n * Returns a new map containing all key-value pairs from the given sequence of pairs.\n *\n * The returned map preserves the entry iteration order of the original sequence.\n * If any of two pairs would have the same key the last one gets added to the map.\n */\npublic fun Sequence>.toMap(): Map = toMap(LinkedHashMap()).optimizeReadOnlyMap()\n\n/**\n * Populates and returns the [destination] mutable map with key-value pairs from the given sequence of pairs.\n */\npublic fun > Sequence>.toMap(destination: M): M =\n destination.apply { putAll(this@toMap) }\n\n/**\n * Returns a new read-only map containing all key-value pairs from the original map.\n *\n * The returned map preserves the entry iteration order of the original map.\n */\n@SinceKotlin(\"1.1\")\npublic fun Map.toMap(): Map = when (size) {\n 0 -> emptyMap()\n 1 -> toSingletonMap()\n else -> toMutableMap()\n}\n\n/**\n * Returns a new mutable map containing all key-value pairs from the original map.\n *\n * The returned map preserves the entry iteration order of the original map.\n */\n@SinceKotlin(\"1.1\")\npublic fun Map.toMutableMap(): MutableMap = LinkedHashMap(this)\n\n/**\n * Populates and returns the [destination] mutable map with key-value pairs from the given map.\n */\n@SinceKotlin(\"1.1\")\npublic fun > Map.toMap(destination: M): M =\n destination.apply { putAll(this@toMap) }\n\n/**\n * Creates a new read-only map by replacing or adding an entry to this map from a given key-value [pair].\n *\n * The returned map preserves the entry iteration order of the original map.\n * The [pair] is iterated in the end if it has a unique key.\n */\npublic operator fun Map.plus(pair: Pair): Map =\n if (this.isEmpty()) mapOf(pair) else LinkedHashMap(this).apply { put(pair.first, pair.second) }\n\n/**\n * Creates a new read-only map by replacing or adding entries to this map from a given collection of key-value [pairs].\n *\n * The returned map preserves the entry iteration order of the original map.\n * Those [pairs] with unique keys are iterated in the end in the order of [pairs] collection.\n */\npublic operator fun Map.plus(pairs: Iterable>): Map =\n if (this.isEmpty()) pairs.toMap() else LinkedHashMap(this).apply { putAll(pairs) }\n\n/**\n * Creates a new read-only map by replacing or adding entries to this map from a given array of key-value [pairs].\n *\n * The returned map preserves the entry iteration order of the original map.\n * Those [pairs] with unique keys are iterated in the end in the order of [pairs] array.\n */\npublic operator fun Map.plus(pairs: Array>): Map =\n if (this.isEmpty()) pairs.toMap() else LinkedHashMap(this).apply { putAll(pairs) }\n\n/**\n * Creates a new read-only map by replacing or adding entries to this map from a given sequence of key-value [pairs].\n *\n * The returned map preserves the entry iteration order of the original map.\n * Those [pairs] with unique keys are iterated in the end in the order of [pairs] sequence.\n */\npublic operator fun Map.plus(pairs: Sequence>): Map =\n LinkedHashMap(this).apply { putAll(pairs) }.optimizeReadOnlyMap()\n\n/**\n * Creates a new read-only map by replacing or adding entries to this map from another [map].\n *\n * The returned map preserves the entry iteration order of the original map.\n * Those entries of another [map] that are missing in this map are iterated in the end in the order of that [map].\n */\npublic operator fun Map.plus(map: Map): Map =\n LinkedHashMap(this).apply { putAll(map) }\n\n\n/**\n * Appends or replaces the given [pair] in this mutable map.\n */\n@kotlin.internal.InlineOnly\npublic inline operator fun MutableMap.plusAssign(pair: Pair) {\n put(pair.first, pair.second)\n}\n\n/**\n * Appends or replaces all pairs from the given collection of [pairs] in this mutable map.\n */\n@kotlin.internal.InlineOnly\npublic inline operator fun MutableMap.plusAssign(pairs: Iterable>) {\n putAll(pairs)\n}\n\n/**\n * Appends or replaces all pairs from the given array of [pairs] in this mutable map.\n */\n@kotlin.internal.InlineOnly\npublic inline operator fun MutableMap.plusAssign(pairs: Array>) {\n putAll(pairs)\n}\n\n/**\n * Appends or replaces all pairs from the given sequence of [pairs] in this mutable map.\n */\n@kotlin.internal.InlineOnly\npublic inline operator fun MutableMap.plusAssign(pairs: Sequence>) {\n putAll(pairs)\n}\n\n/**\n * Appends or replaces all entries from the given [map] in this mutable map.\n */\n@kotlin.internal.InlineOnly\npublic inline operator fun MutableMap.plusAssign(map: Map) {\n putAll(map)\n}\n\n/**\n * Returns a map containing all entries of the original map except the entry with the given [key].\n *\n * The returned map preserves the entry iteration order of the original map.\n */\n@SinceKotlin(\"1.1\")\npublic operator fun Map.minus(key: K): Map =\n this.toMutableMap().apply { minusAssign(key) }.optimizeReadOnlyMap()\n\n/**\n * Returns a map containing all entries of the original map except those entries\n * the keys of which are contained in the given [keys] collection.\n *\n * The returned map preserves the entry iteration order of the original map.\n */\n@SinceKotlin(\"1.1\")\npublic operator fun Map.minus(keys: Iterable): Map =\n this.toMutableMap().apply { minusAssign(keys) }.optimizeReadOnlyMap()\n\n/**\n * Returns a map containing all entries of the original map except those entries\n * the keys of which are contained in the given [keys] array.\n *\n * The returned map preserves the entry iteration order of the original map.\n */\n@SinceKotlin(\"1.1\")\npublic operator fun Map.minus(keys: Array): Map =\n this.toMutableMap().apply { minusAssign(keys) }.optimizeReadOnlyMap()\n\n/**\n * Returns a map containing all entries of the original map except those entries\n * the keys of which are contained in the given [keys] sequence.\n *\n * The returned map preserves the entry iteration order of the original map.\n */\n@SinceKotlin(\"1.1\")\npublic operator fun Map.minus(keys: Sequence): Map =\n this.toMutableMap().apply { minusAssign(keys) }.optimizeReadOnlyMap()\n\n/**\n * Removes the entry with the given [key] from this mutable map.\n */\n@SinceKotlin(\"1.1\")\n@kotlin.internal.InlineOnly\npublic inline operator fun MutableMap.minusAssign(key: K) {\n remove(key)\n}\n\n/**\n * Removes all entries the keys of which are contained in the given [keys] collection from this mutable map.\n */\n@SinceKotlin(\"1.1\")\n@kotlin.internal.InlineOnly\npublic inline operator fun MutableMap.minusAssign(keys: Iterable) {\n this.keys.removeAll(keys)\n}\n\n/**\n * Removes all entries the keys of which are contained in the given [keys] array from this mutable map.\n */\n@SinceKotlin(\"1.1\")\n@kotlin.internal.InlineOnly\npublic inline operator fun MutableMap.minusAssign(keys: Array) {\n this.keys.removeAll(keys)\n}\n\n/**\n * Removes all entries from the keys of which are contained in the given [keys] sequence from this mutable map.\n */\n@SinceKotlin(\"1.1\")\n@kotlin.internal.InlineOnly\npublic inline operator fun MutableMap.minusAssign(keys: Sequence) {\n this.keys.removeAll(keys)\n}\n\n\n// do not expose for now @PublishedApi\ninternal fun Map.optimizeReadOnlyMap() = when (size) {\n 0 -> emptyMap()\n 1 -> toSingletonMapOrSelf()\n else -> this\n}\n","/*\n * Copyright 2010-2018 JetBrains s.r.o. and Kotlin Programming Language contributors.\n * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.\n */\n\npackage kotlin.collections\n\nimport kotlin.comparisons.naturalOrder\nimport kotlin.random.Random\nimport kotlin.js.arrayBufferIsView\n\n/**\n * Returns the array if it's not `null`, or an empty array otherwise.\n * @sample samples.collections.Arrays.Usage.arrayOrEmpty\n */\n@kotlin.internal.InlineOnly\npublic actual inline fun Array?.orEmpty(): Array = this ?: emptyArray()\n\n/**\n * Returns a *typed* array containing all of the elements of this collection.\n *\n * Allocates an array of runtime type `T` having its size equal to the size of this collection\n * and populates the array with the elements of this collection.\n * @sample samples.collections.Collections.Collections.collectionToTypedArray\n */\n@kotlin.internal.InlineOnly\npublic actual inline fun Collection.toTypedArray(): Array = copyToArray(this)\n\n@JsName(\"copyToArray\")\n@PublishedApi\ninternal fun copyToArray(collection: Collection): Array {\n return if (collection.asDynamic().toArray !== undefined)\n collection.asDynamic().toArray().unsafeCast>()\n else\n copyToArrayImpl(collection).unsafeCast>()\n}\n\n@JsName(\"copyToArrayImpl\")\ninternal actual fun copyToArrayImpl(collection: Collection<*>): Array {\n val array = emptyArray()\n val iterator = collection.iterator()\n while (iterator.hasNext())\n array.asDynamic().push(iterator.next())\n return array\n}\n\n@JsName(\"copyToExistingArrayImpl\")\ninternal actual fun copyToArrayImpl(collection: Collection<*>, array: Array): Array {\n if (array.size < collection.size)\n return copyToArrayImpl(collection).unsafeCast>()\n\n val iterator = collection.iterator()\n var index = 0\n while (iterator.hasNext()) {\n array[index++] = iterator.next().unsafeCast()\n }\n if (index < array.size) {\n array[index] = null.unsafeCast()\n }\n return array\n}\n\n\n/**\n * Returns an immutable list containing only the specified object [element].\n */\npublic fun listOf(element: T): List = arrayListOf(element)\n\n@PublishedApi\n@SinceKotlin(\"1.3\")\n@kotlin.internal.InlineOnly\ninternal actual inline fun buildListInternal(builderAction: MutableList.() -> Unit): List {\n return ArrayList().apply(builderAction).build()\n}\n\n@PublishedApi\n@SinceKotlin(\"1.3\")\n@kotlin.internal.InlineOnly\ninternal actual inline fun buildListInternal(capacity: Int, builderAction: MutableList.() -> Unit): List {\n checkBuilderCapacity(capacity)\n return ArrayList(capacity).apply(builderAction).build()\n}\n\n\n/**\n * Returns an immutable set containing only the specified object [element].\n */\npublic fun setOf(element: T): Set = hashSetOf(element)\n\n@PublishedApi\n@SinceKotlin(\"1.3\")\n@kotlin.internal.InlineOnly\ninternal actual inline fun buildSetInternal(builderAction: MutableSet.() -> Unit): Set {\n return LinkedHashSet().apply(builderAction).build()\n}\n\n@PublishedApi\n@SinceKotlin(\"1.3\")\n@kotlin.internal.InlineOnly\ninternal actual inline fun buildSetInternal(capacity: Int, builderAction: MutableSet.() -> Unit): Set {\n return LinkedHashSet(capacity).apply(builderAction).build()\n}\n\n\n/**\n * Returns an immutable map, mapping only the specified key to the\n * specified value.\n */\npublic fun mapOf(pair: Pair): Map = hashMapOf(pair)\n\n@PublishedApi\n@SinceKotlin(\"1.3\")\n@kotlin.internal.InlineOnly\ninternal actual inline fun buildMapInternal(builderAction: MutableMap.() -> Unit): Map {\n return LinkedHashMap().apply(builderAction).build()\n}\n\n@PublishedApi\n@SinceKotlin(\"1.3\")\n@kotlin.internal.InlineOnly\ninternal actual inline fun buildMapInternal(capacity: Int, builderAction: MutableMap.() -> Unit): Map {\n return LinkedHashMap(capacity).apply(builderAction).build()\n}\n\n\n/**\n * Fills the list with the provided [value].\n *\n * Each element in the list gets replaced with the [value].\n */\n@SinceKotlin(\"1.2\")\npublic actual fun MutableList.fill(value: T): Unit {\n for (index in 0..lastIndex) {\n this[index] = value\n }\n}\n\n/**\n * Randomly shuffles elements in this list.\n *\n * See: https://en.wikipedia.org/wiki/Fisher%E2%80%93Yates_shuffle#The_modern_algorithm\n */\n@SinceKotlin(\"1.2\")\npublic actual fun MutableList.shuffle(): Unit = shuffle(Random)\n\n/**\n * Returns a new list with the elements of this list randomly shuffled.\n */\n@SinceKotlin(\"1.2\")\npublic actual fun Iterable.shuffled(): List = toMutableList().apply { shuffle() }\n\n/**\n * Sorts elements in the list in-place according to their natural sort order.\n *\n * The sort is _stable_. It means that equal elements preserve their order relative to each other after sorting.\n *\n * @sample samples.collections.Collections.Sorting.sortMutableList\n */\npublic actual fun > MutableList.sort(): Unit {\n collectionsSort(this, naturalOrder())\n}\n\n/**\n * Sorts elements in the list in-place according to the order specified with [comparator].\n *\n * The sort is _stable_. It means that equal elements preserve their order relative to each other after sorting.\n *\n * @sample samples.collections.Collections.Sorting.sortMutableListWith\n */\npublic actual fun MutableList.sortWith(comparator: Comparator): Unit {\n collectionsSort(this, comparator)\n}\n\nprivate fun collectionsSort(list: MutableList, comparator: Comparator) {\n if (list.size <= 1) return\n\n val array = copyToArray(list)\n sortArrayWith(array, comparator)\n\n for (i in 0 until array.size) {\n list[i] = array[i]\n }\n}\n\ninternal actual fun arrayOfNulls(reference: Array, size: Int): Array {\n return arrayOfNulls(size).unsafeCast>()\n}\n\n@SinceKotlin(\"1.3\")\n@PublishedApi\n@JsName(\"arrayCopy\")\ninternal fun arrayCopy(source: Array, destination: Array, destinationOffset: Int, startIndex: Int, endIndex: Int) {\n AbstractList.checkRangeIndexes(startIndex, endIndex, source.size)\n val rangeSize = endIndex - startIndex\n AbstractList.checkRangeIndexes(destinationOffset, destinationOffset + rangeSize, destination.size)\n\n if (arrayBufferIsView(destination) && arrayBufferIsView(source)) {\n val subrange = source.asDynamic().subarray(startIndex, endIndex)\n destination.asDynamic().set(subrange, destinationOffset)\n } else {\n if (source !== destination || destinationOffset <= startIndex) {\n for (index in 0 until rangeSize) {\n destination[destinationOffset + index] = source[startIndex + index]\n }\n } else {\n for (index in rangeSize - 1 downTo 0) {\n destination[destinationOffset + index] = source[startIndex + index]\n }\n }\n }\n}\n\n// no singleton map implementation in js, return map as is\n@Suppress(\"NOTHING_TO_INLINE\")\ninternal actual inline fun Map.toSingletonMapOrSelf(): Map = this\n\n@Suppress(\"NOTHING_TO_INLINE\")\ninternal actual inline fun Map.toSingletonMap(): Map = this.toMutableMap()\n\n\n@Suppress(\"NOTHING_TO_INLINE\")\ninternal actual inline fun Array.copyToArrayOfAny(isVarargs: Boolean): Array =\n if (isVarargs)\n // no need to copy vararg array in JS\n this\n else\n this.copyOf()\n\n\n\n@PublishedApi\ninternal actual fun checkIndexOverflow(index: Int): Int {\n if (index < 0) {\n throwIndexOverflow()\n }\n return index\n}\n\n@PublishedApi\ninternal actual fun checkCountOverflow(count: Int): Int {\n if (count < 0) {\n throwCountOverflow()\n }\n return count\n}\n\n\n/**\n * JS map and set implementations do not make use of capacities or load factors.\n */\n@PublishedApi\ninternal actual fun mapCapacity(expectedSize: Int) = expectedSize\n\n/**\n * Checks a collection builder function capacity argument.\n * In JS no validation is made in Map/Set constructor yet.\n */\n@SinceKotlin(\"1.3\")\n@PublishedApi\ninternal fun checkBuilderCapacity(capacity: Int) {\n require(capacity >= 0) { \"capacity must be non-negative.\" }\n}\n\ninternal actual fun brittleContainsOptimizationEnabled(): Boolean = false","/*\n * Copyright 2010-2021 JetBrains s.r.o. and Kotlin Programming Language contributors.\n * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.\n */\n\n@file:kotlin.jvm.JvmMultifileClass\n@file:kotlin.jvm.JvmName(\"CollectionsKt\")\n@file:OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n\npackage kotlin.collections\n\nimport kotlin.contracts.*\nimport kotlin.random.Random\n\ninternal object EmptyIterator : ListIterator {\n override fun hasNext(): Boolean = false\n override fun hasPrevious(): Boolean = false\n override fun nextIndex(): Int = 0\n override fun previousIndex(): Int = -1\n override fun next(): Nothing = throw NoSuchElementException()\n override fun previous(): Nothing = throw NoSuchElementException()\n}\n\ninternal object EmptyList : List, Serializable, RandomAccess {\n private const val serialVersionUID: Long = -7390468764508069838L\n\n override fun equals(other: Any?): Boolean = other is List<*> && other.isEmpty()\n override fun hashCode(): Int = 1\n override fun toString(): String = \"[]\"\n\n override val size: Int get() = 0\n override fun isEmpty(): Boolean = true\n override fun contains(element: Nothing): Boolean = false\n override fun containsAll(elements: Collection): Boolean = elements.isEmpty()\n\n override fun get(index: Int): Nothing = throw IndexOutOfBoundsException(\"Empty list doesn't contain element at index $index.\")\n override fun indexOf(element: Nothing): Int = -1\n override fun lastIndexOf(element: Nothing): Int = -1\n\n override fun iterator(): Iterator = EmptyIterator\n override fun listIterator(): ListIterator = EmptyIterator\n override fun listIterator(index: Int): ListIterator {\n if (index != 0) throw IndexOutOfBoundsException(\"Index: $index\")\n return EmptyIterator\n }\n\n override fun subList(fromIndex: Int, toIndex: Int): List {\n if (fromIndex == 0 && toIndex == 0) return this\n throw IndexOutOfBoundsException(\"fromIndex: $fromIndex, toIndex: $toIndex\")\n }\n\n private fun readResolve(): Any = EmptyList\n}\n\ninternal fun Array.asCollection(): Collection = ArrayAsCollection(this, isVarargs = false)\n\nprivate class ArrayAsCollection(val values: Array, val isVarargs: Boolean) : Collection {\n override val size: Int get() = values.size\n override fun isEmpty(): Boolean = values.isEmpty()\n override fun contains(element: T): Boolean = values.contains(element)\n override fun containsAll(elements: Collection): Boolean = elements.all { contains(it) }\n override fun iterator(): Iterator = values.iterator()\n // override hidden toArray implementation to prevent copying of values array\n public fun toArray(): Array = values.copyToArrayOfAny(isVarargs)\n}\n\n/**\n * Returns an empty read-only list. The returned list is serializable (JVM).\n * @sample samples.collections.Collections.Lists.emptyReadOnlyList\n */\npublic fun emptyList(): List = EmptyList\n\n/**\n * Returns a new read-only list of given elements. The returned list is serializable (JVM).\n * @sample samples.collections.Collections.Lists.readOnlyList\n */\npublic fun listOf(vararg elements: T): List = if (elements.size > 0) elements.asList() else emptyList()\n\n/**\n * Returns an empty read-only list. The returned list is serializable (JVM).\n * @sample samples.collections.Collections.Lists.emptyReadOnlyList\n */\n@kotlin.internal.InlineOnly\npublic inline fun listOf(): List = emptyList()\n\n/**\n * Returns an empty new [MutableList].\n * @sample samples.collections.Collections.Lists.emptyMutableList\n */\n@SinceKotlin(\"1.1\")\n@kotlin.internal.InlineOnly\npublic inline fun mutableListOf(): MutableList = ArrayList()\n\n/**\n * Returns an empty new [ArrayList].\n * @sample samples.collections.Collections.Lists.emptyArrayList\n */\n@SinceKotlin(\"1.1\")\n@kotlin.internal.InlineOnly\npublic inline fun arrayListOf(): ArrayList = ArrayList()\n\n/**\n * Returns a new [MutableList] with the given elements.\n * @sample samples.collections.Collections.Lists.mutableList\n */\npublic fun mutableListOf(vararg elements: T): MutableList =\n if (elements.size == 0) ArrayList() else ArrayList(ArrayAsCollection(elements, isVarargs = true))\n\n/**\n * Returns a new [ArrayList] with the given elements.\n * @sample samples.collections.Collections.Lists.arrayList\n */\npublic fun arrayListOf(vararg elements: T): ArrayList =\n if (elements.size == 0) ArrayList() else ArrayList(ArrayAsCollection(elements, isVarargs = true))\n\n/**\n * Returns a new read-only list either of single given element, if it is not null, or empty list if the element is null. The returned list is serializable (JVM).\n * @sample samples.collections.Collections.Lists.listOfNotNull\n */\npublic fun listOfNotNull(element: T?): List = if (element != null) listOf(element) else emptyList()\n\n/**\n * Returns a new read-only list only of those given elements, that are not null. The returned list is serializable (JVM).\n * @sample samples.collections.Collections.Lists.listOfNotNull\n */\npublic fun listOfNotNull(vararg elements: T?): List = elements.filterNotNull()\n\n/**\n * Creates a new read-only list with the specified [size], where each element is calculated by calling the specified\n * [init] function.\n *\n * The function [init] is called for each list element sequentially starting from the first one.\n * It should return the value for a list element given its index.\n *\n * @sample samples.collections.Collections.Lists.readOnlyListFromInitializer\n */\n@SinceKotlin(\"1.1\")\n@kotlin.internal.InlineOnly\npublic inline fun List(size: Int, init: (index: Int) -> T): List = MutableList(size, init)\n\n/**\n * Creates a new mutable list with the specified [size], where each element is calculated by calling the specified\n * [init] function.\n *\n * The function [init] is called for each list element sequentially starting from the first one.\n * It should return the value for a list element given its index.\n *\n * @sample samples.collections.Collections.Lists.mutableListFromInitializer\n */\n@SinceKotlin(\"1.1\")\n@kotlin.internal.InlineOnly\npublic inline fun MutableList(size: Int, init: (index: Int) -> T): MutableList {\n val list = ArrayList(size)\n repeat(size) { index -> list.add(init(index)) }\n return list\n}\n\n/**\n * Builds a new read-only [List] by populating a [MutableList] using the given [builderAction]\n * and returning a read-only list with the same elements.\n *\n * The list passed as a receiver to the [builderAction] is valid only inside that function.\n * Using it outside of the function produces an unspecified behavior.\n *\n * The returned list is serializable (JVM).\n *\n * @sample samples.collections.Builders.Lists.buildListSample\n */\n@SinceKotlin(\"1.6\")\n@WasExperimental(ExperimentalStdlibApi::class)\n@kotlin.internal.InlineOnly\n@Suppress(\"DEPRECATION\")\npublic inline fun buildList(@BuilderInference builderAction: MutableList.() -> Unit): List {\n contract { callsInPlace(builderAction, InvocationKind.EXACTLY_ONCE) }\n return buildListInternal(builderAction)\n}\n\n@PublishedApi\n@SinceKotlin(\"1.3\")\n@kotlin.internal.InlineOnly\ninternal expect inline fun buildListInternal(builderAction: MutableList.() -> Unit): List\n\n/**\n * Builds a new read-only [List] by populating a [MutableList] using the given [builderAction]\n * and returning a read-only list with the same elements.\n *\n * The list passed as a receiver to the [builderAction] is valid only inside that function.\n * Using it outside of the function produces an unspecified behavior.\n *\n * The returned list is serializable (JVM).\n *\n * [capacity] is used to hint the expected number of elements added in the [builderAction].\n *\n * @throws IllegalArgumentException if the given [capacity] is negative.\n *\n * @sample samples.collections.Builders.Lists.buildListSampleWithCapacity\n */\n@SinceKotlin(\"1.6\")\n@WasExperimental(ExperimentalStdlibApi::class)\n@kotlin.internal.InlineOnly\n@Suppress(\"DEPRECATION\")\npublic inline fun buildList(capacity: Int, @BuilderInference builderAction: MutableList.() -> Unit): List {\n contract { callsInPlace(builderAction, InvocationKind.EXACTLY_ONCE) }\n return buildListInternal(capacity, builderAction)\n}\n\n@PublishedApi\n@SinceKotlin(\"1.3\")\n@kotlin.internal.InlineOnly\ninternal expect inline fun buildListInternal(capacity: Int, builderAction: MutableList.() -> Unit): List\n\n/**\n * Returns an [IntRange] of the valid indices for this collection.\n * @sample samples.collections.Collections.Collections.indicesOfCollection\n */\npublic val Collection<*>.indices: IntRange\n get() = 0..size - 1\n\n/**\n * Returns the index of the last item in the list or -1 if the list is empty.\n *\n * @sample samples.collections.Collections.Lists.lastIndexOfList\n */\npublic val List.lastIndex: Int\n get() = this.size - 1\n\n/**\n * Returns `true` if the collection is not empty.\n * @sample samples.collections.Collections.Collections.collectionIsNotEmpty\n */\n@kotlin.internal.InlineOnly\npublic inline fun Collection.isNotEmpty(): Boolean = !isEmpty()\n\n/**\n * Returns `true` if this nullable collection is either null or empty.\n * @sample samples.collections.Collections.Collections.collectionIsNullOrEmpty\n */\n@SinceKotlin(\"1.3\")\n@kotlin.internal.InlineOnly\npublic inline fun Collection?.isNullOrEmpty(): Boolean {\n contract {\n returns(false) implies (this@isNullOrEmpty != null)\n }\n\n return this == null || this.isEmpty()\n}\n\n/**\n * Returns this Collection if it's not `null` and the empty list otherwise.\n * @sample samples.collections.Collections.Collections.collectionOrEmpty\n */\n@kotlin.internal.InlineOnly\npublic inline fun Collection?.orEmpty(): Collection = this ?: emptyList()\n\n/**\n * Returns this List if it's not `null` and the empty list otherwise.\n * @sample samples.collections.Collections.Lists.listOrEmpty\n */\n@kotlin.internal.InlineOnly\npublic inline fun List?.orEmpty(): List = this ?: emptyList()\n\n/**\n * Returns this collection if it's not empty\n * or the result of calling [defaultValue] function if the collection is empty.\n *\n * @sample samples.collections.Collections.Collections.collectionIfEmpty\n */\n@SinceKotlin(\"1.3\")\n@kotlin.internal.InlineOnly\npublic inline fun C.ifEmpty(defaultValue: () -> R): R where C : Collection<*>, C : R =\n if (isEmpty()) defaultValue() else this\n\n\n/**\n * Checks if all elements in the specified collection are contained in this collection.\n *\n * Allows to overcome type-safety restriction of `containsAll` that requires to pass a collection of type `Collection`.\n * @sample samples.collections.Collections.Collections.collectionContainsAll\n */\n@Suppress(\"EXTENSION_SHADOWED_BY_MEMBER\") // false warning, extension takes precedence in some cases\n@kotlin.internal.InlineOnly\npublic inline fun <@kotlin.internal.OnlyInputTypes T> Collection.containsAll(elements: Collection): Boolean = this.containsAll(elements)\n\n\n/**\n * Returns a new list with the elements of this list randomly shuffled\n * using the specified [random] instance as the source of randomness.\n */\n@SinceKotlin(\"1.3\")\npublic fun Iterable.shuffled(random: Random): List = toMutableList().apply { shuffle(random) }\n\n\ninternal fun List.optimizeReadOnlyList() = when (size) {\n 0 -> emptyList()\n 1 -> listOf(this[0])\n else -> this\n}\n\n/**\n * Searches this list or its range for the provided [element] using the binary search algorithm.\n * The list is expected to be sorted into ascending order according to the Comparable natural ordering of its elements,\n * otherwise the result is undefined.\n *\n * If the list contains multiple elements equal to the specified [element], there is no guarantee which one will be found.\n *\n * `null` value is considered to be less than any non-null value.\n *\n * @return the index of the element, if it is contained in the list within the specified range;\n * otherwise, the inverted insertion point `(-insertion point - 1)`.\n * The insertion point is defined as the index at which the element should be inserted,\n * so that the list (or the specified subrange of list) still remains sorted.\n * @sample samples.collections.Collections.Lists.binarySearchOnComparable\n * @sample samples.collections.Collections.Lists.binarySearchWithBoundaries\n */\npublic fun > List.binarySearch(element: T?, fromIndex: Int = 0, toIndex: Int = size): Int {\n rangeCheck(size, fromIndex, toIndex)\n\n var low = fromIndex\n var high = toIndex - 1\n\n while (low <= high) {\n val mid = (low + high).ushr(1) // safe from overflows\n val midVal = get(mid)\n val cmp = compareValues(midVal, element)\n\n if (cmp < 0)\n low = mid + 1\n else if (cmp > 0)\n high = mid - 1\n else\n return mid // key found\n }\n return -(low + 1) // key not found\n}\n\n/**\n * Searches this list or its range for the provided [element] using the binary search algorithm.\n * The list is expected to be sorted into ascending order according to the specified [comparator],\n * otherwise the result is undefined.\n *\n * If the list contains multiple elements equal to the specified [element], there is no guarantee which one will be found.\n *\n * `null` value is considered to be less than any non-null value.\n *\n * @return the index of the element, if it is contained in the list within the specified range;\n * otherwise, the inverted insertion point `(-insertion point - 1)`.\n * The insertion point is defined as the index at which the element should be inserted,\n * so that the list (or the specified subrange of list) still remains sorted according to the specified [comparator].\n * @sample samples.collections.Collections.Lists.binarySearchWithComparator\n */\npublic fun List.binarySearch(element: T, comparator: Comparator, fromIndex: Int = 0, toIndex: Int = size): Int {\n rangeCheck(size, fromIndex, toIndex)\n\n var low = fromIndex\n var high = toIndex - 1\n\n while (low <= high) {\n val mid = (low + high).ushr(1) // safe from overflows\n val midVal = get(mid)\n val cmp = comparator.compare(midVal, element)\n\n if (cmp < 0)\n low = mid + 1\n else if (cmp > 0)\n high = mid - 1\n else\n return mid // key found\n }\n return -(low + 1) // key not found\n}\n\n/**\n * Searches this list or its range for an element having the key returned by the specified [selector] function\n * equal to the provided [key] value using the binary search algorithm.\n * The list is expected to be sorted into ascending order according to the Comparable natural ordering of keys of its elements.\n * otherwise the result is undefined.\n *\n * If the list contains multiple elements with the specified [key], there is no guarantee which one will be found.\n *\n * `null` value is considered to be less than any non-null value.\n *\n * @return the index of the element with the specified [key], if it is contained in the list within the specified range;\n * otherwise, the inverted insertion point `(-insertion point - 1)`.\n * The insertion point is defined as the index at which the element should be inserted,\n * so that the list (or the specified subrange of list) still remains sorted.\n * @sample samples.collections.Collections.Lists.binarySearchByKey\n */\npublic inline fun > List.binarySearchBy(\n key: K?,\n fromIndex: Int = 0,\n toIndex: Int = size,\n crossinline selector: (T) -> K?\n): Int =\n binarySearch(fromIndex, toIndex) { compareValues(selector(it), key) }\n\n// do not introduce this overload --- too rare\n//public fun List.binarySearchBy(key: K, comparator: Comparator, fromIndex: Int = 0, toIndex: Int = size(), selector: (T) -> K): Int =\n// binarySearch(fromIndex, toIndex) { comparator.compare(selector(it), key) }\n\n\n/**\n * Searches this list or its range for an element for which the given [comparison] function returns zero using the binary search algorithm.\n *\n * The list is expected to be sorted so that the signs of the [comparison] function's return values ascend on the list elements,\n * i.e. negative values come before zero and zeroes come before positive values.\n * Otherwise, the result is undefined.\n *\n * If the list contains multiple elements for which [comparison] returns zero, there is no guarantee which one will be found.\n *\n * @param comparison function that returns zero when called on the list element being searched.\n * On the elements coming before the target element, the function must return negative values;\n * on the elements coming after the target element, the function must return positive values.\n *\n * @return the index of the found element, if it is contained in the list within the specified range;\n * otherwise, the inverted insertion point `(-insertion point - 1)`.\n * The insertion point is defined as the index at which the element should be inserted,\n * so that the list (or the specified subrange of list) still remains sorted.\n * @sample samples.collections.Collections.Lists.binarySearchWithComparisonFunction\n */\npublic fun List.binarySearch(fromIndex: Int = 0, toIndex: Int = size, comparison: (T) -> Int): Int {\n rangeCheck(size, fromIndex, toIndex)\n\n var low = fromIndex\n var high = toIndex - 1\n\n while (low <= high) {\n val mid = (low + high).ushr(1) // safe from overflows\n val midVal = get(mid)\n val cmp = comparison(midVal)\n\n if (cmp < 0)\n low = mid + 1\n else if (cmp > 0)\n high = mid - 1\n else\n return mid // key found\n }\n return -(low + 1) // key not found\n}\n\n/**\n * Checks that `from` and `to` are in\n * the range of [0..size] and throws an appropriate exception, if they aren't.\n */\nprivate fun rangeCheck(size: Int, fromIndex: Int, toIndex: Int) {\n when {\n fromIndex > toIndex -> throw IllegalArgumentException(\"fromIndex ($fromIndex) is greater than toIndex ($toIndex).\")\n fromIndex < 0 -> throw IndexOutOfBoundsException(\"fromIndex ($fromIndex) is less than zero.\")\n toIndex > size -> throw IndexOutOfBoundsException(\"toIndex ($toIndex) is greater than size ($size).\")\n }\n}\n\n\n@PublishedApi\n@SinceKotlin(\"1.3\")\ninternal expect fun checkIndexOverflow(index: Int): Int\n\n@PublishedApi\n@SinceKotlin(\"1.3\")\ninternal expect fun checkCountOverflow(count: Int): Int\n\n\n@PublishedApi\n@SinceKotlin(\"1.3\")\ninternal fun throwIndexOverflow() { throw ArithmeticException(\"Index overflow has happened.\") }\n\n@PublishedApi\n@SinceKotlin(\"1.3\")\ninternal fun throwCountOverflow() { throw ArithmeticException(\"Count overflow has happened.\") }\n\n",null,"/*\n * Copyright 2010-2021 JetBrains s.r.o. and Kotlin Programming Language contributors.\n * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.\n */\n\n@file:kotlin.jvm.JvmMultifileClass\n@file:kotlin.jvm.JvmName(\"SetsKt\")\n@file:OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n\npackage kotlin.collections\n\nimport kotlin.contracts.*\n\ninternal object EmptySet : Set, Serializable {\n private const val serialVersionUID: Long = 3406603774387020532\n\n override fun equals(other: Any?): Boolean = other is Set<*> && other.isEmpty()\n override fun hashCode(): Int = 0\n override fun toString(): String = \"[]\"\n\n override val size: Int get() = 0\n override fun isEmpty(): Boolean = true\n override fun contains(element: Nothing): Boolean = false\n override fun containsAll(elements: Collection): Boolean = elements.isEmpty()\n\n override fun iterator(): Iterator = EmptyIterator\n\n private fun readResolve(): Any = EmptySet\n}\n\n\n/**\n * Returns an empty read-only set. The returned set is serializable (JVM).\n * @sample samples.collections.Collections.Sets.emptyReadOnlySet\n */\npublic fun emptySet(): Set = EmptySet\n\n/**\n * Returns a new read-only set with the given elements.\n * Elements of the set are iterated in the order they were specified.\n * The returned set is serializable (JVM).\n * @sample samples.collections.Collections.Sets.readOnlySet\n */\npublic fun setOf(vararg elements: T): Set = if (elements.size > 0) elements.toSet() else emptySet()\n\n/**\n * Returns an empty read-only set. The returned set is serializable (JVM).\n * @sample samples.collections.Collections.Sets.emptyReadOnlySet\n */\n@kotlin.internal.InlineOnly\npublic inline fun setOf(): Set = emptySet()\n\n/**\n * Returns an empty new [MutableSet].\n *\n * The returned set preserves the element iteration order.\n * @sample samples.collections.Collections.Sets.emptyMutableSet\n */\n@SinceKotlin(\"1.1\")\n@kotlin.internal.InlineOnly\npublic inline fun mutableSetOf(): MutableSet = LinkedHashSet()\n\n/**\n * Returns a new [MutableSet] with the given elements.\n * Elements of the set are iterated in the order they were specified.\n * @sample samples.collections.Collections.Sets.mutableSet\n */\npublic fun mutableSetOf(vararg elements: T): MutableSet = elements.toCollection(LinkedHashSet(mapCapacity(elements.size)))\n\n/** Returns an empty new [HashSet]. */\n@SinceKotlin(\"1.1\")\n@kotlin.internal.InlineOnly\npublic inline fun hashSetOf(): HashSet = HashSet()\n\n/** Returns a new [HashSet] with the given elements. */\npublic fun hashSetOf(vararg elements: T): HashSet = elements.toCollection(HashSet(mapCapacity(elements.size)))\n\n/**\n * Returns an empty new [LinkedHashSet].\n * @sample samples.collections.Collections.Sets.emptyLinkedHashSet\n */\n@SinceKotlin(\"1.1\")\n@kotlin.internal.InlineOnly\npublic inline fun linkedSetOf(): LinkedHashSet = LinkedHashSet()\n\n/**\n * Returns a new [LinkedHashSet] with the given elements.\n * Elements of the set are iterated in the order they were specified.\n * @sample samples.collections.Collections.Sets.linkedHashSet\n */\npublic fun linkedSetOf(vararg elements: T): LinkedHashSet = elements.toCollection(LinkedHashSet(mapCapacity(elements.size)))\n\n/**\n * Returns a new read-only set either with single given element, if it is not null, or empty set if the element is null.\n * The returned set is serializable (JVM).\n * @sample samples.collections.Collections.Sets.setOfNotNull\n */\n@SinceKotlin(\"1.4\")\npublic fun setOfNotNull(element: T?): Set = if (element != null) setOf(element) else emptySet()\n\n/**\n * Returns a new read-only set only with those given elements, that are not null.\n * Elements of the set are iterated in the order they were specified.\n * The returned set is serializable (JVM).\n * @sample samples.collections.Collections.Sets.setOfNotNull\n */\n@SinceKotlin(\"1.4\")\npublic fun setOfNotNull(vararg elements: T?): Set {\n return elements.filterNotNullTo(LinkedHashSet())\n}\n\n/**\n * Builds a new read-only [Set] by populating a [MutableSet] using the given [builderAction]\n * and returning a read-only set with the same elements.\n *\n * The set passed as a receiver to the [builderAction] is valid only inside that function.\n * Using it outside of the function produces an unspecified behavior.\n *\n * Elements of the set are iterated in the order they were added by the [builderAction].\n *\n * The returned set is serializable (JVM).\n *\n * @sample samples.collections.Builders.Sets.buildSetSample\n */\n@SinceKotlin(\"1.6\")\n@WasExperimental(ExperimentalStdlibApi::class)\n@kotlin.internal.InlineOnly\n@Suppress(\"DEPRECATION\")\npublic inline fun buildSet(@BuilderInference builderAction: MutableSet.() -> Unit): Set {\n contract { callsInPlace(builderAction, InvocationKind.EXACTLY_ONCE) }\n return buildSetInternal(builderAction)\n}\n\n@PublishedApi\n@SinceKotlin(\"1.3\")\n@kotlin.internal.InlineOnly\ninternal expect inline fun buildSetInternal(builderAction: MutableSet.() -> Unit): Set\n\n/**\n * Builds a new read-only [Set] by populating a [MutableSet] using the given [builderAction]\n * and returning a read-only set with the same elements.\n *\n * The set passed as a receiver to the [builderAction] is valid only inside that function.\n * Using it outside of the function produces an unspecified behavior.\n *\n * [capacity] is used to hint the expected number of elements added in the [builderAction].\n *\n * Elements of the set are iterated in the order they were added by the [builderAction].\n *\n * The returned set is serializable (JVM).\n *\n * @throws IllegalArgumentException if the given [capacity] is negative.\n *\n * @sample samples.collections.Builders.Sets.buildSetSample\n */\n@SinceKotlin(\"1.6\")\n@WasExperimental(ExperimentalStdlibApi::class)\n@kotlin.internal.InlineOnly\n@Suppress(\"DEPRECATION\")\npublic inline fun buildSet(capacity: Int, @BuilderInference builderAction: MutableSet.() -> Unit): Set {\n contract { callsInPlace(builderAction, InvocationKind.EXACTLY_ONCE) }\n return buildSetInternal(capacity, builderAction)\n}\n\n@PublishedApi\n@SinceKotlin(\"1.3\")\n@kotlin.internal.InlineOnly\ninternal expect inline fun buildSetInternal(capacity: Int, builderAction: MutableSet.() -> Unit): Set\n\n\n/** Returns this Set if it's not `null` and the empty set otherwise. */\n@kotlin.internal.InlineOnly\npublic inline fun Set?.orEmpty(): Set = this ?: emptySet()\n\ninternal fun Set.optimizeReadOnlySet() = when (size) {\n 0 -> emptySet()\n 1 -> setOf(iterator().next())\n else -> this\n}\n","/*\n * Copyright 2010-2022 JetBrains s.r.o. and Kotlin Programming Language contributors.\n * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.\n */\n\n@file:kotlin.jvm.JvmMultifileClass\n@file:kotlin.jvm.JvmName(\"CollectionsKt\")\n\npackage kotlin.collections\n\n//\n// NOTE: THIS FILE IS AUTO-GENERATED by the GenerateStandardLib.kt\n// See: https://github.com/JetBrains/kotlin/tree/master/libraries/stdlib\n//\n\nimport kotlin.random.*\nimport kotlin.ranges.contains\nimport kotlin.ranges.reversed\n\n/**\n * Returns 1st *element* from the list.\n * \n * Throws an [IndexOutOfBoundsException] if the size of this list is less than 1.\n */\n@kotlin.internal.InlineOnly\npublic inline operator fun List.component1(): T {\n return get(0)\n}\n\n/**\n * Returns 2nd *element* from the list.\n * \n * Throws an [IndexOutOfBoundsException] if the size of this list is less than 2.\n */\n@kotlin.internal.InlineOnly\npublic inline operator fun List.component2(): T {\n return get(1)\n}\n\n/**\n * Returns 3rd *element* from the list.\n * \n * Throws an [IndexOutOfBoundsException] if the size of this list is less than 3.\n */\n@kotlin.internal.InlineOnly\npublic inline operator fun List.component3(): T {\n return get(2)\n}\n\n/**\n * Returns 4th *element* from the list.\n * \n * Throws an [IndexOutOfBoundsException] if the size of this list is less than 4.\n */\n@kotlin.internal.InlineOnly\npublic inline operator fun List.component4(): T {\n return get(3)\n}\n\n/**\n * Returns 5th *element* from the list.\n * \n * Throws an [IndexOutOfBoundsException] if the size of this list is less than 5.\n */\n@kotlin.internal.InlineOnly\npublic inline operator fun List.component5(): T {\n return get(4)\n}\n\n/**\n * Returns `true` if [element] is found in the collection.\n */\npublic operator fun <@kotlin.internal.OnlyInputTypes T> Iterable.contains(element: T): Boolean {\n if (this is Collection)\n return contains(element)\n return indexOf(element) >= 0\n}\n\n/**\n * Returns an element at the given [index] or throws an [IndexOutOfBoundsException] if the [index] is out of bounds of this collection.\n * \n * @sample samples.collections.Collections.Elements.elementAt\n */\npublic fun Iterable.elementAt(index: Int): T {\n if (this is List)\n return get(index)\n return elementAtOrElse(index) { throw IndexOutOfBoundsException(\"Collection doesn't contain element at index $index.\") }\n}\n\n/**\n * Returns an element at the given [index] or throws an [IndexOutOfBoundsException] if the [index] is out of bounds of this list.\n * \n * @sample samples.collections.Collections.Elements.elementAt\n */\n@kotlin.internal.InlineOnly\npublic inline fun List.elementAt(index: Int): T {\n return get(index)\n}\n\n/**\n * Returns an element at the given [index] or the result of calling the [defaultValue] function if the [index] is out of bounds of this collection.\n * \n * @sample samples.collections.Collections.Elements.elementAtOrElse\n */\npublic fun Iterable.elementAtOrElse(index: Int, defaultValue: (Int) -> T): T {\n if (this is List)\n return this.getOrElse(index, defaultValue)\n if (index < 0)\n return defaultValue(index)\n val iterator = iterator()\n var count = 0\n while (iterator.hasNext()) {\n val element = iterator.next()\n if (index == count++)\n return element\n }\n return defaultValue(index)\n}\n\n/**\n * Returns an element at the given [index] or the result of calling the [defaultValue] function if the [index] is out of bounds of this list.\n * \n * @sample samples.collections.Collections.Elements.elementAtOrElse\n */\n@kotlin.internal.InlineOnly\npublic inline fun List.elementAtOrElse(index: Int, defaultValue: (Int) -> T): T {\n return if (index >= 0 && index <= lastIndex) get(index) else defaultValue(index)\n}\n\n/**\n * Returns an element at the given [index] or `null` if the [index] is out of bounds of this collection.\n * \n * @sample samples.collections.Collections.Elements.elementAtOrNull\n */\npublic fun Iterable.elementAtOrNull(index: Int): T? {\n if (this is List)\n return this.getOrNull(index)\n if (index < 0)\n return null\n val iterator = iterator()\n var count = 0\n while (iterator.hasNext()) {\n val element = iterator.next()\n if (index == count++)\n return element\n }\n return null\n}\n\n/**\n * Returns an element at the given [index] or `null` if the [index] is out of bounds of this list.\n * \n * @sample samples.collections.Collections.Elements.elementAtOrNull\n */\n@kotlin.internal.InlineOnly\npublic inline fun List.elementAtOrNull(index: Int): T? {\n return this.getOrNull(index)\n}\n\n/**\n * Returns the first element matching the given [predicate], or `null` if no such element was found.\n * \n * @sample samples.collections.Collections.Elements.find\n */\n@kotlin.internal.InlineOnly\npublic inline fun Iterable.find(predicate: (T) -> Boolean): T? {\n return firstOrNull(predicate)\n}\n\n/**\n * Returns the last element matching the given [predicate], or `null` if no such element was found.\n * \n * @sample samples.collections.Collections.Elements.find\n */\n@kotlin.internal.InlineOnly\npublic inline fun Iterable.findLast(predicate: (T) -> Boolean): T? {\n return lastOrNull(predicate)\n}\n\n/**\n * Returns the last element matching the given [predicate], or `null` if no such element was found.\n * \n * @sample samples.collections.Collections.Elements.find\n */\n@kotlin.internal.InlineOnly\npublic inline fun List.findLast(predicate: (T) -> Boolean): T? {\n return lastOrNull(predicate)\n}\n\n/**\n * Returns the first element.\n * \n * @throws NoSuchElementException if the collection is empty.\n */\npublic fun Iterable.first(): T {\n when (this) {\n is List -> return this.first()\n else -> {\n val iterator = iterator()\n if (!iterator.hasNext())\n throw NoSuchElementException(\"Collection is empty.\")\n return iterator.next()\n }\n }\n}\n\n/**\n * Returns the first element.\n * \n * @throws NoSuchElementException if the list is empty.\n */\npublic fun List.first(): T {\n if (isEmpty())\n throw NoSuchElementException(\"List is empty.\")\n return this[0]\n}\n\n/**\n * Returns the first element matching the given [predicate].\n * @throws [NoSuchElementException] if no such element is found.\n */\npublic inline fun Iterable.first(predicate: (T) -> Boolean): T {\n for (element in this) if (predicate(element)) return element\n throw NoSuchElementException(\"Collection contains no element matching the predicate.\")\n}\n\n/**\n * Returns the first non-null value produced by [transform] function being applied to elements of this collection in iteration order,\n * or throws [NoSuchElementException] if no non-null value was produced.\n * \n * @sample samples.collections.Collections.Transformations.firstNotNullOf\n */\n@SinceKotlin(\"1.5\")\n@kotlin.internal.InlineOnly\npublic inline fun Iterable.firstNotNullOf(transform: (T) -> R?): R {\n return firstNotNullOfOrNull(transform) ?: throw NoSuchElementException(\"No element of the collection was transformed to a non-null value.\")\n}\n\n/**\n * Returns the first non-null value produced by [transform] function being applied to elements of this collection in iteration order,\n * or `null` if no non-null value was produced.\n * \n * @sample samples.collections.Collections.Transformations.firstNotNullOf\n */\n@SinceKotlin(\"1.5\")\n@kotlin.internal.InlineOnly\npublic inline fun Iterable.firstNotNullOfOrNull(transform: (T) -> R?): R? {\n for (element in this) {\n val result = transform(element)\n if (result != null) {\n return result\n }\n }\n return null\n}\n\n/**\n * Returns the first element, or `null` if the collection is empty.\n */\npublic fun Iterable.firstOrNull(): T? {\n when (this) {\n is List -> {\n if (isEmpty())\n return null\n else\n return this[0]\n }\n else -> {\n val iterator = iterator()\n if (!iterator.hasNext())\n return null\n return iterator.next()\n }\n }\n}\n\n/**\n * Returns the first element, or `null` if the list is empty.\n */\npublic fun List.firstOrNull(): T? {\n return if (isEmpty()) null else this[0]\n}\n\n/**\n * Returns the first element matching the given [predicate], or `null` if element was not found.\n */\npublic inline fun Iterable.firstOrNull(predicate: (T) -> Boolean): T? {\n for (element in this) if (predicate(element)) return element\n return null\n}\n\n/**\n * Returns an element at the given [index] or the result of calling the [defaultValue] function if the [index] is out of bounds of this list.\n */\n@kotlin.internal.InlineOnly\npublic inline fun List.getOrElse(index: Int, defaultValue: (Int) -> T): T {\n return if (index >= 0 && index <= lastIndex) get(index) else defaultValue(index)\n}\n\n/**\n * Returns an element at the given [index] or `null` if the [index] is out of bounds of this list.\n * \n * @sample samples.collections.Collections.Elements.getOrNull\n */\npublic fun List.getOrNull(index: Int): T? {\n return if (index >= 0 && index <= lastIndex) get(index) else null\n}\n\n/**\n * Returns first index of [element], or -1 if the collection does not contain element.\n */\npublic fun <@kotlin.internal.OnlyInputTypes T> Iterable.indexOf(element: T): Int {\n if (this is List) return this.indexOf(element)\n var index = 0\n for (item in this) {\n checkIndexOverflow(index)\n if (element == item)\n return index\n index++\n }\n return -1\n}\n\n/**\n * Returns first index of [element], or -1 if the list does not contain element.\n */\n@Suppress(\"EXTENSION_SHADOWED_BY_MEMBER\") // false warning, extension takes precedence in some cases\npublic fun <@kotlin.internal.OnlyInputTypes T> List.indexOf(element: T): Int {\n return indexOf(element)\n}\n\n/**\n * Returns index of the first element matching the given [predicate], or -1 if the collection does not contain such element.\n */\npublic inline fun Iterable.indexOfFirst(predicate: (T) -> Boolean): Int {\n var index = 0\n for (item in this) {\n checkIndexOverflow(index)\n if (predicate(item))\n return index\n index++\n }\n return -1\n}\n\n/**\n * Returns index of the first element matching the given [predicate], or -1 if the list does not contain such element.\n */\npublic inline fun List.indexOfFirst(predicate: (T) -> Boolean): Int {\n var index = 0\n for (item in this) {\n if (predicate(item))\n return index\n index++\n }\n return -1\n}\n\n/**\n * Returns index of the last element matching the given [predicate], or -1 if the collection does not contain such element.\n */\npublic inline fun Iterable.indexOfLast(predicate: (T) -> Boolean): Int {\n var lastIndex = -1\n var index = 0\n for (item in this) {\n checkIndexOverflow(index)\n if (predicate(item))\n lastIndex = index\n index++\n }\n return lastIndex\n}\n\n/**\n * Returns index of the last element matching the given [predicate], or -1 if the list does not contain such element.\n */\npublic inline fun List.indexOfLast(predicate: (T) -> Boolean): Int {\n val iterator = this.listIterator(size)\n while (iterator.hasPrevious()) {\n if (predicate(iterator.previous())) {\n return iterator.nextIndex()\n }\n }\n return -1\n}\n\n/**\n * Returns the last element.\n * \n * @throws NoSuchElementException if the collection is empty.\n * \n * @sample samples.collections.Collections.Elements.last\n */\npublic fun Iterable.last(): T {\n when (this) {\n is List -> return this.last()\n else -> {\n val iterator = iterator()\n if (!iterator.hasNext())\n throw NoSuchElementException(\"Collection is empty.\")\n var last = iterator.next()\n while (iterator.hasNext())\n last = iterator.next()\n return last\n }\n }\n}\n\n/**\n * Returns the last element.\n * \n * @throws NoSuchElementException if the list is empty.\n * \n * @sample samples.collections.Collections.Elements.last\n */\npublic fun List.last(): T {\n if (isEmpty())\n throw NoSuchElementException(\"List is empty.\")\n return this[lastIndex]\n}\n\n/**\n * Returns the last element matching the given [predicate].\n * \n * @throws NoSuchElementException if no such element is found.\n * \n * @sample samples.collections.Collections.Elements.last\n */\npublic inline fun Iterable.last(predicate: (T) -> Boolean): T {\n var last: T? = null\n var found = false\n for (element in this) {\n if (predicate(element)) {\n last = element\n found = true\n }\n }\n if (!found) throw NoSuchElementException(\"Collection contains no element matching the predicate.\")\n @Suppress(\"UNCHECKED_CAST\")\n return last as T\n}\n\n/**\n * Returns the last element matching the given [predicate].\n * \n * @throws NoSuchElementException if no such element is found.\n * \n * @sample samples.collections.Collections.Elements.last\n */\npublic inline fun List.last(predicate: (T) -> Boolean): T {\n val iterator = this.listIterator(size)\n while (iterator.hasPrevious()) {\n val element = iterator.previous()\n if (predicate(element)) return element\n }\n throw NoSuchElementException(\"List contains no element matching the predicate.\")\n}\n\n/**\n * Returns last index of [element], or -1 if the collection does not contain element.\n */\npublic fun <@kotlin.internal.OnlyInputTypes T> Iterable.lastIndexOf(element: T): Int {\n if (this is List) return this.lastIndexOf(element)\n var lastIndex = -1\n var index = 0\n for (item in this) {\n checkIndexOverflow(index)\n if (element == item)\n lastIndex = index\n index++\n }\n return lastIndex\n}\n\n/**\n * Returns last index of [element], or -1 if the list does not contain element.\n */\n@Suppress(\"EXTENSION_SHADOWED_BY_MEMBER\") // false warning, extension takes precedence in some cases\npublic fun <@kotlin.internal.OnlyInputTypes T> List.lastIndexOf(element: T): Int {\n return lastIndexOf(element)\n}\n\n/**\n * Returns the last element, or `null` if the collection is empty.\n * \n * @sample samples.collections.Collections.Elements.last\n */\npublic fun Iterable.lastOrNull(): T? {\n when (this) {\n is List -> return if (isEmpty()) null else this[size - 1]\n else -> {\n val iterator = iterator()\n if (!iterator.hasNext())\n return null\n var last = iterator.next()\n while (iterator.hasNext())\n last = iterator.next()\n return last\n }\n }\n}\n\n/**\n * Returns the last element, or `null` if the list is empty.\n * \n * @sample samples.collections.Collections.Elements.last\n */\npublic fun List.lastOrNull(): T? {\n return if (isEmpty()) null else this[size - 1]\n}\n\n/**\n * Returns the last element matching the given [predicate], or `null` if no such element was found.\n * \n * @sample samples.collections.Collections.Elements.last\n */\npublic inline fun Iterable.lastOrNull(predicate: (T) -> Boolean): T? {\n var last: T? = null\n for (element in this) {\n if (predicate(element)) {\n last = element\n }\n }\n return last\n}\n\n/**\n * Returns the last element matching the given [predicate], or `null` if no such element was found.\n * \n * @sample samples.collections.Collections.Elements.last\n */\npublic inline fun List.lastOrNull(predicate: (T) -> Boolean): T? {\n val iterator = this.listIterator(size)\n while (iterator.hasPrevious()) {\n val element = iterator.previous()\n if (predicate(element)) return element\n }\n return null\n}\n\n/**\n * Returns a random element from this collection.\n * \n * @throws NoSuchElementException if this collection is empty.\n */\n@SinceKotlin(\"1.3\")\n@kotlin.internal.InlineOnly\npublic inline fun Collection.random(): T {\n return random(Random)\n}\n\n/**\n * Returns a random element from this collection using the specified source of randomness.\n * \n * @throws NoSuchElementException if this collection is empty.\n */\n@SinceKotlin(\"1.3\")\npublic fun Collection.random(random: Random): T {\n if (isEmpty())\n throw NoSuchElementException(\"Collection is empty.\")\n return elementAt(random.nextInt(size))\n}\n\n/**\n * Returns a random element from this collection, or `null` if this collection is empty.\n */\n@SinceKotlin(\"1.4\")\n@WasExperimental(ExperimentalStdlibApi::class)\n@kotlin.internal.InlineOnly\npublic inline fun Collection.randomOrNull(): T? {\n return randomOrNull(Random)\n}\n\n/**\n * Returns a random element from this collection using the specified source of randomness, or `null` if this collection is empty.\n */\n@SinceKotlin(\"1.4\")\n@WasExperimental(ExperimentalStdlibApi::class)\npublic fun Collection.randomOrNull(random: Random): T? {\n if (isEmpty())\n return null\n return elementAt(random.nextInt(size))\n}\n\n/**\n * Returns the single element, or throws an exception if the collection is empty or has more than one element.\n */\npublic fun Iterable.single(): T {\n when (this) {\n is List -> return this.single()\n else -> {\n val iterator = iterator()\n if (!iterator.hasNext())\n throw NoSuchElementException(\"Collection is empty.\")\n val single = iterator.next()\n if (iterator.hasNext())\n throw IllegalArgumentException(\"Collection has more than one element.\")\n return single\n }\n }\n}\n\n/**\n * Returns the single element, or throws an exception if the list is empty or has more than one element.\n */\npublic fun List.single(): T {\n return when (size) {\n 0 -> throw NoSuchElementException(\"List is empty.\")\n 1 -> this[0]\n else -> throw IllegalArgumentException(\"List has more than one element.\")\n }\n}\n\n/**\n * Returns the single element matching the given [predicate], or throws exception if there is no or more than one matching element.\n */\npublic inline fun Iterable.single(predicate: (T) -> Boolean): T {\n var single: T? = null\n var found = false\n for (element in this) {\n if (predicate(element)) {\n if (found) throw IllegalArgumentException(\"Collection contains more than one matching element.\")\n single = element\n found = true\n }\n }\n if (!found) throw NoSuchElementException(\"Collection contains no element matching the predicate.\")\n @Suppress(\"UNCHECKED_CAST\")\n return single as T\n}\n\n/**\n * Returns single element, or `null` if the collection is empty or has more than one element.\n */\npublic fun Iterable.singleOrNull(): T? {\n when (this) {\n is List -> return if (size == 1) this[0] else null\n else -> {\n val iterator = iterator()\n if (!iterator.hasNext())\n return null\n val single = iterator.next()\n if (iterator.hasNext())\n return null\n return single\n }\n }\n}\n\n/**\n * Returns single element, or `null` if the list is empty or has more than one element.\n */\npublic fun List.singleOrNull(): T? {\n return if (size == 1) this[0] else null\n}\n\n/**\n * Returns the single element matching the given [predicate], or `null` if element was not found or more than one element was found.\n */\npublic inline fun Iterable.singleOrNull(predicate: (T) -> Boolean): T? {\n var single: T? = null\n var found = false\n for (element in this) {\n if (predicate(element)) {\n if (found) return null\n single = element\n found = true\n }\n }\n if (!found) return null\n return single\n}\n\n/**\n * Returns a list containing all elements except first [n] elements.\n * \n * @throws IllegalArgumentException if [n] is negative.\n * \n * @sample samples.collections.Collections.Transformations.drop\n */\npublic fun Iterable.drop(n: Int): List {\n require(n >= 0) { \"Requested element count $n is less than zero.\" }\n if (n == 0) return toList()\n val list: ArrayList\n if (this is Collection<*>) {\n val resultSize = size - n\n if (resultSize <= 0)\n return emptyList()\n if (resultSize == 1)\n return listOf(last())\n list = ArrayList(resultSize)\n if (this is List) {\n if (this is RandomAccess) {\n for (index in n until size)\n list.add(this[index])\n } else {\n for (item in listIterator(n))\n list.add(item)\n }\n return list\n }\n }\n else {\n list = ArrayList()\n }\n var count = 0\n for (item in this) {\n if (count >= n) list.add(item) else ++count\n }\n return list.optimizeReadOnlyList()\n}\n\n/**\n * Returns a list containing all elements except last [n] elements.\n * \n * @throws IllegalArgumentException if [n] is negative.\n * \n * @sample samples.collections.Collections.Transformations.drop\n */\npublic fun List.dropLast(n: Int): List {\n require(n >= 0) { \"Requested element count $n is less than zero.\" }\n return take((size - n).coerceAtLeast(0))\n}\n\n/**\n * Returns a list containing all elements except last elements that satisfy the given [predicate].\n * \n * @sample samples.collections.Collections.Transformations.drop\n */\npublic inline fun List.dropLastWhile(predicate: (T) -> Boolean): List {\n if (!isEmpty()) {\n val iterator = listIterator(size)\n while (iterator.hasPrevious()) {\n if (!predicate(iterator.previous())) {\n return take(iterator.nextIndex() + 1)\n }\n }\n }\n return emptyList()\n}\n\n/**\n * Returns a list containing all elements except first elements that satisfy the given [predicate].\n * \n * @sample samples.collections.Collections.Transformations.drop\n */\npublic inline fun Iterable.dropWhile(predicate: (T) -> Boolean): List {\n var yielding = false\n val list = ArrayList()\n for (item in this)\n if (yielding)\n list.add(item)\n else if (!predicate(item)) {\n list.add(item)\n yielding = true\n }\n return list\n}\n\n/**\n * Returns a list containing only elements matching the given [predicate].\n * \n * @sample samples.collections.Collections.Filtering.filter\n */\npublic inline fun Iterable.filter(predicate: (T) -> Boolean): List {\n return filterTo(ArrayList(), predicate)\n}\n\n/**\n * Returns a list containing only elements matching the given [predicate].\n * @param [predicate] function that takes the index of an element and the element itself\n * and returns the result of predicate evaluation on the element.\n * \n * @sample samples.collections.Collections.Filtering.filterIndexed\n */\npublic inline fun Iterable.filterIndexed(predicate: (index: Int, T) -> Boolean): List {\n return filterIndexedTo(ArrayList(), predicate)\n}\n\n/**\n * Appends all elements matching the given [predicate] to the given [destination].\n * @param [predicate] function that takes the index of an element and the element itself\n * and returns the result of predicate evaluation on the element.\n * \n * @sample samples.collections.Collections.Filtering.filterIndexedTo\n */\npublic inline fun > Iterable.filterIndexedTo(destination: C, predicate: (index: Int, T) -> Boolean): C {\n forEachIndexed { index, element ->\n if (predicate(index, element)) destination.add(element)\n }\n return destination\n}\n\n/**\n * Returns a list containing all elements that are instances of specified type parameter R.\n * \n * @sample samples.collections.Collections.Filtering.filterIsInstance\n */\npublic inline fun Iterable<*>.filterIsInstance(): List<@kotlin.internal.NoInfer R> {\n return filterIsInstanceTo(ArrayList())\n}\n\n/**\n * Appends all elements that are instances of specified type parameter R to the given [destination].\n * \n * @sample samples.collections.Collections.Filtering.filterIsInstanceTo\n */\npublic inline fun > Iterable<*>.filterIsInstanceTo(destination: C): C {\n for (element in this) if (element is R) destination.add(element)\n return destination\n}\n\n/**\n * Returns a list containing all elements not matching the given [predicate].\n * \n * @sample samples.collections.Collections.Filtering.filter\n */\npublic inline fun Iterable.filterNot(predicate: (T) -> Boolean): List {\n return filterNotTo(ArrayList(), predicate)\n}\n\n/**\n * Returns a list containing all elements that are not `null`.\n * \n * @sample samples.collections.Collections.Filtering.filterNotNull\n */\npublic fun Iterable.filterNotNull(): List {\n return filterNotNullTo(ArrayList())\n}\n\n/**\n * Appends all elements that are not `null` to the given [destination].\n * \n * @sample samples.collections.Collections.Filtering.filterNotNullTo\n */\npublic fun , T : Any> Iterable.filterNotNullTo(destination: C): C {\n for (element in this) if (element != null) destination.add(element)\n return destination\n}\n\n/**\n * Appends all elements not matching the given [predicate] to the given [destination].\n * \n * @sample samples.collections.Collections.Filtering.filterTo\n */\npublic inline fun > Iterable.filterNotTo(destination: C, predicate: (T) -> Boolean): C {\n for (element in this) if (!predicate(element)) destination.add(element)\n return destination\n}\n\n/**\n * Appends all elements matching the given [predicate] to the given [destination].\n * \n * @sample samples.collections.Collections.Filtering.filterTo\n */\npublic inline fun > Iterable.filterTo(destination: C, predicate: (T) -> Boolean): C {\n for (element in this) if (predicate(element)) destination.add(element)\n return destination\n}\n\n/**\n * Returns a list containing elements at indices in the specified [indices] range.\n */\npublic fun List.slice(indices: IntRange): List {\n if (indices.isEmpty()) return listOf()\n return this.subList(indices.start, indices.endInclusive + 1).toList()\n}\n\n/**\n * Returns a list containing elements at specified [indices].\n */\npublic fun List.slice(indices: Iterable): List {\n val size = indices.collectionSizeOrDefault(10)\n if (size == 0) return emptyList()\n val list = ArrayList(size)\n for (index in indices) {\n list.add(get(index))\n }\n return list\n}\n\n/**\n * Returns a list containing first [n] elements.\n * \n * @throws IllegalArgumentException if [n] is negative.\n * \n * @sample samples.collections.Collections.Transformations.take\n */\npublic fun Iterable.take(n: Int): List {\n require(n >= 0) { \"Requested element count $n is less than zero.\" }\n if (n == 0) return emptyList()\n if (this is Collection) {\n if (n >= size) return toList()\n if (n == 1) return listOf(first())\n }\n var count = 0\n val list = ArrayList(n)\n for (item in this) {\n list.add(item)\n if (++count == n)\n break\n }\n return list.optimizeReadOnlyList()\n}\n\n/**\n * Returns a list containing last [n] elements.\n * \n * @throws IllegalArgumentException if [n] is negative.\n * \n * @sample samples.collections.Collections.Transformations.take\n */\npublic fun List.takeLast(n: Int): List {\n require(n >= 0) { \"Requested element count $n is less than zero.\" }\n if (n == 0) return emptyList()\n val size = size\n if (n >= size) return toList()\n if (n == 1) return listOf(last())\n val list = ArrayList(n)\n if (this is RandomAccess) {\n for (index in size - n until size)\n list.add(this[index])\n } else {\n for (item in listIterator(size - n))\n list.add(item)\n }\n return list\n}\n\n/**\n * Returns a list containing last elements satisfying the given [predicate].\n * \n * @sample samples.collections.Collections.Transformations.take\n */\npublic inline fun List.takeLastWhile(predicate: (T) -> Boolean): List {\n if (isEmpty())\n return emptyList()\n val iterator = listIterator(size)\n while (iterator.hasPrevious()) {\n if (!predicate(iterator.previous())) {\n iterator.next()\n val expectedSize = size - iterator.nextIndex()\n if (expectedSize == 0) return emptyList()\n return ArrayList(expectedSize).apply {\n while (iterator.hasNext())\n add(iterator.next())\n }\n }\n }\n return toList()\n}\n\n/**\n * Returns a list containing first elements satisfying the given [predicate].\n * \n * @sample samples.collections.Collections.Transformations.take\n */\npublic inline fun Iterable.takeWhile(predicate: (T) -> Boolean): List {\n val list = ArrayList()\n for (item in this) {\n if (!predicate(item))\n break\n list.add(item)\n }\n return list\n}\n\n/**\n * Reverses elements in the list in-place.\n */\npublic expect fun MutableList.reverse(): Unit\n\n/**\n * Returns a list with elements in reversed order.\n */\npublic fun Iterable.reversed(): List {\n if (this is Collection && size <= 1) return toList()\n val list = toMutableList()\n list.reverse()\n return list\n}\n\n/**\n * Randomly shuffles elements in this list in-place using the specified [random] instance as the source of randomness.\n * \n * See: https://en.wikipedia.org/wiki/Fisher%E2%80%93Yates_shuffle#The_modern_algorithm\n */\n@SinceKotlin(\"1.3\")\npublic fun MutableList.shuffle(random: Random): Unit {\n for (i in lastIndex downTo 1) {\n val j = random.nextInt(i + 1)\n this[j] = this.set(i, this[j])\n }\n}\n\n/**\n * Sorts elements in the list in-place according to natural sort order of the value returned by specified [selector] function.\n * \n * The sort is _stable_. It means that equal elements preserve their order relative to each other after sorting.\n */\npublic inline fun > MutableList.sortBy(crossinline selector: (T) -> R?): Unit {\n if (size > 1) sortWith(compareBy(selector))\n}\n\n/**\n * Sorts elements in the list in-place descending according to natural sort order of the value returned by specified [selector] function.\n * \n * The sort is _stable_. It means that equal elements preserve their order relative to each other after sorting.\n */\npublic inline fun > MutableList.sortByDescending(crossinline selector: (T) -> R?): Unit {\n if (size > 1) sortWith(compareByDescending(selector))\n}\n\n/**\n * Sorts elements in the list in-place descending according to their natural sort order.\n * \n * The sort is _stable_. It means that equal elements preserve their order relative to each other after sorting.\n */\npublic fun > MutableList.sortDescending(): Unit {\n sortWith(reverseOrder())\n}\n\n/**\n * Returns a list of all elements sorted according to their natural sort order.\n * \n * The sort is _stable_. It means that equal elements preserve their order relative to each other after sorting.\n */\npublic fun > Iterable.sorted(): List {\n if (this is Collection) {\n if (size <= 1) return this.toList()\n @Suppress(\"UNCHECKED_CAST\")\n return (toTypedArray>() as Array).apply { sort() }.asList()\n }\n return toMutableList().apply { sort() }\n}\n\n/**\n * Returns a list of all elements sorted according to natural sort order of the value returned by specified [selector] function.\n * \n * The sort is _stable_. It means that equal elements preserve their order relative to each other after sorting.\n * \n * @sample samples.collections.Collections.Sorting.sortedBy\n */\npublic inline fun > Iterable.sortedBy(crossinline selector: (T) -> R?): List {\n return sortedWith(compareBy(selector))\n}\n\n/**\n * Returns a list of all elements sorted descending according to natural sort order of the value returned by specified [selector] function.\n * \n * The sort is _stable_. It means that equal elements preserve their order relative to each other after sorting.\n */\npublic inline fun > Iterable.sortedByDescending(crossinline selector: (T) -> R?): List {\n return sortedWith(compareByDescending(selector))\n}\n\n/**\n * Returns a list of all elements sorted descending according to their natural sort order.\n * \n * The sort is _stable_. It means that equal elements preserve their order relative to each other after sorting.\n */\npublic fun > Iterable.sortedDescending(): List {\n return sortedWith(reverseOrder())\n}\n\n/**\n * Returns a list of all elements sorted according to the specified [comparator].\n * \n * The sort is _stable_. It means that equal elements preserve their order relative to each other after sorting.\n */\npublic fun Iterable.sortedWith(comparator: Comparator): List {\n if (this is Collection) {\n if (size <= 1) return this.toList()\n @Suppress(\"UNCHECKED_CAST\")\n return (toTypedArray() as Array).apply { sortWith(comparator) }.asList()\n }\n return toMutableList().apply { sortWith(comparator) }\n}\n\n/**\n * Returns an array of Boolean containing all of the elements of this collection.\n */\npublic fun Collection.toBooleanArray(): BooleanArray {\n val result = BooleanArray(size)\n var index = 0\n for (element in this)\n result[index++] = element\n return result\n}\n\n/**\n * Returns an array of Byte containing all of the elements of this collection.\n */\npublic fun Collection.toByteArray(): ByteArray {\n val result = ByteArray(size)\n var index = 0\n for (element in this)\n result[index++] = element\n return result\n}\n\n/**\n * Returns an array of Char containing all of the elements of this collection.\n */\npublic fun Collection.toCharArray(): CharArray {\n val result = CharArray(size)\n var index = 0\n for (element in this)\n result[index++] = element\n return result\n}\n\n/**\n * Returns an array of Double containing all of the elements of this collection.\n */\npublic fun Collection.toDoubleArray(): DoubleArray {\n val result = DoubleArray(size)\n var index = 0\n for (element in this)\n result[index++] = element\n return result\n}\n\n/**\n * Returns an array of Float containing all of the elements of this collection.\n */\npublic fun Collection.toFloatArray(): FloatArray {\n val result = FloatArray(size)\n var index = 0\n for (element in this)\n result[index++] = element\n return result\n}\n\n/**\n * Returns an array of Int containing all of the elements of this collection.\n */\npublic fun Collection.toIntArray(): IntArray {\n val result = IntArray(size)\n var index = 0\n for (element in this)\n result[index++] = element\n return result\n}\n\n/**\n * Returns an array of Long containing all of the elements of this collection.\n */\npublic fun Collection.toLongArray(): LongArray {\n val result = LongArray(size)\n var index = 0\n for (element in this)\n result[index++] = element\n return result\n}\n\n/**\n * Returns an array of Short containing all of the elements of this collection.\n */\npublic fun Collection.toShortArray(): ShortArray {\n val result = ShortArray(size)\n var index = 0\n for (element in this)\n result[index++] = element\n return result\n}\n\n/**\n * Returns a [Map] containing key-value pairs provided by [transform] function\n * applied to elements of the given collection.\n * \n * If any of two pairs would have the same key the last one gets added to the map.\n * \n * The returned map preserves the entry iteration order of the original collection.\n * \n * @sample samples.collections.Collections.Transformations.associate\n */\npublic inline fun Iterable.associate(transform: (T) -> Pair): Map {\n val capacity = mapCapacity(collectionSizeOrDefault(10)).coerceAtLeast(16)\n return associateTo(LinkedHashMap(capacity), transform)\n}\n\n/**\n * Returns a [Map] containing the elements from the given collection indexed by the key\n * returned from [keySelector] function applied to each element.\n * \n * If any two elements would have the same key returned by [keySelector] the last one gets added to the map.\n * \n * The returned map preserves the entry iteration order of the original collection.\n * \n * @sample samples.collections.Collections.Transformations.associateBy\n */\npublic inline fun Iterable.associateBy(keySelector: (T) -> K): Map {\n val capacity = mapCapacity(collectionSizeOrDefault(10)).coerceAtLeast(16)\n return associateByTo(LinkedHashMap(capacity), keySelector)\n}\n\n/**\n * Returns a [Map] containing the values provided by [valueTransform] and indexed by [keySelector] functions applied to elements of the given collection.\n * \n * If any two elements would have the same key returned by [keySelector] the last one gets added to the map.\n * \n * The returned map preserves the entry iteration order of the original collection.\n * \n * @sample samples.collections.Collections.Transformations.associateByWithValueTransform\n */\npublic inline fun Iterable.associateBy(keySelector: (T) -> K, valueTransform: (T) -> V): Map {\n val capacity = mapCapacity(collectionSizeOrDefault(10)).coerceAtLeast(16)\n return associateByTo(LinkedHashMap(capacity), keySelector, valueTransform)\n}\n\n/**\n * Populates and returns the [destination] mutable map with key-value pairs,\n * where key is provided by the [keySelector] function applied to each element of the given collection\n * and value is the element itself.\n * \n * If any two elements would have the same key returned by [keySelector] the last one gets added to the map.\n * \n * @sample samples.collections.Collections.Transformations.associateByTo\n */\npublic inline fun > Iterable.associateByTo(destination: M, keySelector: (T) -> K): M {\n for (element in this) {\n destination.put(keySelector(element), element)\n }\n return destination\n}\n\n/**\n * Populates and returns the [destination] mutable map with key-value pairs,\n * where key is provided by the [keySelector] function and\n * and value is provided by the [valueTransform] function applied to elements of the given collection.\n * \n * If any two elements would have the same key returned by [keySelector] the last one gets added to the map.\n * \n * @sample samples.collections.Collections.Transformations.associateByToWithValueTransform\n */\npublic inline fun > Iterable.associateByTo(destination: M, keySelector: (T) -> K, valueTransform: (T) -> V): M {\n for (element in this) {\n destination.put(keySelector(element), valueTransform(element))\n }\n return destination\n}\n\n/**\n * Populates and returns the [destination] mutable map with key-value pairs\n * provided by [transform] function applied to each element of the given collection.\n * \n * If any of two pairs would have the same key the last one gets added to the map.\n * \n * @sample samples.collections.Collections.Transformations.associateTo\n */\npublic inline fun > Iterable.associateTo(destination: M, transform: (T) -> Pair): M {\n for (element in this) {\n destination += transform(element)\n }\n return destination\n}\n\n/**\n * Returns a [Map] where keys are elements from the given collection and values are\n * produced by the [valueSelector] function applied to each element.\n * \n * If any two elements are equal, the last one gets added to the map.\n * \n * The returned map preserves the entry iteration order of the original collection.\n * \n * @sample samples.collections.Collections.Transformations.associateWith\n */\n@SinceKotlin(\"1.3\")\npublic inline fun Iterable.associateWith(valueSelector: (K) -> V): Map {\n val result = LinkedHashMap(mapCapacity(collectionSizeOrDefault(10)).coerceAtLeast(16))\n return associateWithTo(result, valueSelector)\n}\n\n/**\n * Populates and returns the [destination] mutable map with key-value pairs for each element of the given collection,\n * where key is the element itself and value is provided by the [valueSelector] function applied to that key.\n * \n * If any two elements are equal, the last one overwrites the former value in the map.\n * \n * @sample samples.collections.Collections.Transformations.associateWithTo\n */\n@SinceKotlin(\"1.3\")\npublic inline fun > Iterable.associateWithTo(destination: M, valueSelector: (K) -> V): M {\n for (element in this) {\n destination.put(element, valueSelector(element))\n }\n return destination\n}\n\n/**\n * Appends all elements to the given [destination] collection.\n */\npublic fun > Iterable.toCollection(destination: C): C {\n for (item in this) {\n destination.add(item)\n }\n return destination\n}\n\n/**\n * Returns a new [HashSet] of all elements.\n */\npublic fun Iterable.toHashSet(): HashSet {\n return toCollection(HashSet(mapCapacity(collectionSizeOrDefault(12))))\n}\n\n/**\n * Returns a [List] containing all elements.\n */\npublic fun Iterable.toList(): List {\n if (this is Collection) {\n return when (size) {\n 0 -> emptyList()\n 1 -> listOf(if (this is List) get(0) else iterator().next())\n else -> this.toMutableList()\n }\n }\n return this.toMutableList().optimizeReadOnlyList()\n}\n\n/**\n * Returns a new [MutableList] filled with all elements of this collection.\n */\npublic fun Iterable.toMutableList(): MutableList {\n if (this is Collection)\n return this.toMutableList()\n return toCollection(ArrayList())\n}\n\n/**\n * Returns a new [MutableList] filled with all elements of this collection.\n */\npublic fun Collection.toMutableList(): MutableList {\n return ArrayList(this)\n}\n\n/**\n * Returns a [Set] of all elements.\n * \n * The returned set preserves the element iteration order of the original collection.\n */\npublic fun Iterable.toSet(): Set {\n if (this is Collection) {\n return when (size) {\n 0 -> emptySet()\n 1 -> setOf(if (this is List) this[0] else iterator().next())\n else -> toCollection(LinkedHashSet(mapCapacity(size)))\n }\n }\n return toCollection(LinkedHashSet()).optimizeReadOnlySet()\n}\n\n/**\n * Returns a single list of all elements yielded from results of [transform] function being invoked on each element of original collection.\n * \n * @sample samples.collections.Collections.Transformations.flatMap\n */\npublic inline fun Iterable.flatMap(transform: (T) -> Iterable): List {\n return flatMapTo(ArrayList(), transform)\n}\n\n/**\n * Returns a single list of all elements yielded from results of [transform] function being invoked on each element of original collection.\n * \n * @sample samples.collections.Collections.Transformations.flatMap\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.jvm.JvmName(\"flatMapSequence\")\npublic inline fun Iterable.flatMap(transform: (T) -> Sequence): List {\n return flatMapTo(ArrayList(), transform)\n}\n\n/**\n * Returns a single list of all elements yielded from results of [transform] function being invoked on each element\n * and its index in the original collection.\n * \n * @sample samples.collections.Collections.Transformations.flatMapIndexed\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.jvm.JvmName(\"flatMapIndexedIterable\")\n@kotlin.internal.InlineOnly\npublic inline fun Iterable.flatMapIndexed(transform: (index: Int, T) -> Iterable): List {\n return flatMapIndexedTo(ArrayList(), transform)\n}\n\n/**\n * Returns a single list of all elements yielded from results of [transform] function being invoked on each element\n * and its index in the original collection.\n * \n * @sample samples.collections.Collections.Transformations.flatMapIndexed\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.jvm.JvmName(\"flatMapIndexedSequence\")\n@kotlin.internal.InlineOnly\npublic inline fun Iterable.flatMapIndexed(transform: (index: Int, T) -> Sequence): List {\n return flatMapIndexedTo(ArrayList(), transform)\n}\n\n/**\n * Appends all elements yielded from results of [transform] function being invoked on each element\n * and its index in the original collection, to the given [destination].\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.jvm.JvmName(\"flatMapIndexedIterableTo\")\n@kotlin.internal.InlineOnly\npublic inline fun > Iterable.flatMapIndexedTo(destination: C, transform: (index: Int, T) -> Iterable): C {\n var index = 0\n for (element in this) {\n val list = transform(checkIndexOverflow(index++), element)\n destination.addAll(list)\n }\n return destination\n}\n\n/**\n * Appends all elements yielded from results of [transform] function being invoked on each element\n * and its index in the original collection, to the given [destination].\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.jvm.JvmName(\"flatMapIndexedSequenceTo\")\n@kotlin.internal.InlineOnly\npublic inline fun > Iterable.flatMapIndexedTo(destination: C, transform: (index: Int, T) -> Sequence): C {\n var index = 0\n for (element in this) {\n val list = transform(checkIndexOverflow(index++), element)\n destination.addAll(list)\n }\n return destination\n}\n\n/**\n * Appends all elements yielded from results of [transform] function being invoked on each element of original collection, to the given [destination].\n */\npublic inline fun > Iterable.flatMapTo(destination: C, transform: (T) -> Iterable): C {\n for (element in this) {\n val list = transform(element)\n destination.addAll(list)\n }\n return destination\n}\n\n/**\n * Appends all elements yielded from results of [transform] function being invoked on each element of original collection, to the given [destination].\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.jvm.JvmName(\"flatMapSequenceTo\")\npublic inline fun > Iterable.flatMapTo(destination: C, transform: (T) -> Sequence): C {\n for (element in this) {\n val list = transform(element)\n destination.addAll(list)\n }\n return destination\n}\n\n/**\n * Groups elements of the original collection by the key returned by the given [keySelector] function\n * applied to each element and returns a map where each group key is associated with a list of corresponding elements.\n * \n * The returned map preserves the entry iteration order of the keys produced from the original collection.\n * \n * @sample samples.collections.Collections.Transformations.groupBy\n */\npublic inline fun Iterable.groupBy(keySelector: (T) -> K): Map> {\n return groupByTo(LinkedHashMap>(), keySelector)\n}\n\n/**\n * Groups values returned by the [valueTransform] function applied to each element of the original collection\n * by the key returned by the given [keySelector] function applied to the element\n * and returns a map where each group key is associated with a list of corresponding values.\n * \n * The returned map preserves the entry iteration order of the keys produced from the original collection.\n * \n * @sample samples.collections.Collections.Transformations.groupByKeysAndValues\n */\npublic inline fun Iterable.groupBy(keySelector: (T) -> K, valueTransform: (T) -> V): Map> {\n return groupByTo(LinkedHashMap>(), keySelector, valueTransform)\n}\n\n/**\n * Groups elements of the original collection by the key returned by the given [keySelector] function\n * applied to each element and puts to the [destination] map each group key associated with a list of corresponding elements.\n * \n * @return The [destination] map.\n * \n * @sample samples.collections.Collections.Transformations.groupBy\n */\npublic inline fun >> Iterable.groupByTo(destination: M, keySelector: (T) -> K): M {\n for (element in this) {\n val key = keySelector(element)\n val list = destination.getOrPut(key) { ArrayList() }\n list.add(element)\n }\n return destination\n}\n\n/**\n * Groups values returned by the [valueTransform] function applied to each element of the original collection\n * by the key returned by the given [keySelector] function applied to the element\n * and puts to the [destination] map each group key associated with a list of corresponding values.\n * \n * @return The [destination] map.\n * \n * @sample samples.collections.Collections.Transformations.groupByKeysAndValues\n */\npublic inline fun >> Iterable.groupByTo(destination: M, keySelector: (T) -> K, valueTransform: (T) -> V): M {\n for (element in this) {\n val key = keySelector(element)\n val list = destination.getOrPut(key) { ArrayList() }\n list.add(valueTransform(element))\n }\n return destination\n}\n\n/**\n * Creates a [Grouping] source from a collection to be used later with one of group-and-fold operations\n * using the specified [keySelector] function to extract a key from each element.\n * \n * @sample samples.collections.Grouping.groupingByEachCount\n */\n@SinceKotlin(\"1.1\")\npublic inline fun Iterable.groupingBy(crossinline keySelector: (T) -> K): Grouping {\n return object : Grouping {\n override fun sourceIterator(): Iterator = this@groupingBy.iterator()\n override fun keyOf(element: T): K = keySelector(element)\n }\n}\n\n/**\n * Returns a list containing the results of applying the given [transform] function\n * to each element in the original collection.\n * \n * @sample samples.collections.Collections.Transformations.map\n */\npublic inline fun Iterable.map(transform: (T) -> R): List {\n return mapTo(ArrayList(collectionSizeOrDefault(10)), transform)\n}\n\n/**\n * Returns a list containing the results of applying the given [transform] function\n * to each element and its index in the original collection.\n * @param [transform] function that takes the index of an element and the element itself\n * and returns the result of the transform applied to the element.\n */\npublic inline fun Iterable.mapIndexed(transform: (index: Int, T) -> R): List {\n return mapIndexedTo(ArrayList(collectionSizeOrDefault(10)), transform)\n}\n\n/**\n * Returns a list containing only the non-null results of applying the given [transform] function\n * to each element and its index in the original collection.\n * @param [transform] function that takes the index of an element and the element itself\n * and returns the result of the transform applied to the element.\n */\npublic inline fun Iterable.mapIndexedNotNull(transform: (index: Int, T) -> R?): List {\n return mapIndexedNotNullTo(ArrayList(), transform)\n}\n\n/**\n * Applies the given [transform] function to each element and its index in the original collection\n * and appends only the non-null results to the given [destination].\n * @param [transform] function that takes the index of an element and the element itself\n * and returns the result of the transform applied to the element.\n */\npublic inline fun > Iterable.mapIndexedNotNullTo(destination: C, transform: (index: Int, T) -> R?): C {\n forEachIndexed { index, element -> transform(index, element)?.let { destination.add(it) } }\n return destination\n}\n\n/**\n * Applies the given [transform] function to each element and its index in the original collection\n * and appends the results to the given [destination].\n * @param [transform] function that takes the index of an element and the element itself\n * and returns the result of the transform applied to the element.\n */\npublic inline fun > Iterable.mapIndexedTo(destination: C, transform: (index: Int, T) -> R): C {\n var index = 0\n for (item in this)\n destination.add(transform(checkIndexOverflow(index++), item))\n return destination\n}\n\n/**\n * Returns a list containing only the non-null results of applying the given [transform] function\n * to each element in the original collection.\n * \n * @sample samples.collections.Collections.Transformations.mapNotNull\n */\npublic inline fun Iterable.mapNotNull(transform: (T) -> R?): List {\n return mapNotNullTo(ArrayList(), transform)\n}\n\n/**\n * Applies the given [transform] function to each element in the original collection\n * and appends only the non-null results to the given [destination].\n */\npublic inline fun > Iterable.mapNotNullTo(destination: C, transform: (T) -> R?): C {\n forEach { element -> transform(element)?.let { destination.add(it) } }\n return destination\n}\n\n/**\n * Applies the given [transform] function to each element of the original collection\n * and appends the results to the given [destination].\n */\npublic inline fun > Iterable.mapTo(destination: C, transform: (T) -> R): C {\n for (item in this)\n destination.add(transform(item))\n return destination\n}\n\n/**\n * Returns a lazy [Iterable] that wraps each element of the original collection\n * into an [IndexedValue] containing the index of that element and the element itself.\n */\npublic fun Iterable.withIndex(): Iterable> {\n return IndexingIterable { iterator() }\n}\n\n/**\n * Returns a list containing only distinct elements from the given collection.\n * \n * Among equal elements of the given collection, only the first one will be present in the resulting list.\n * The elements in the resulting list are in the same order as they were in the source collection.\n * \n * @sample samples.collections.Collections.Transformations.distinctAndDistinctBy\n */\npublic fun Iterable.distinct(): List {\n return this.toMutableSet().toList()\n}\n\n/**\n * Returns a list containing only elements from the given collection\n * having distinct keys returned by the given [selector] function.\n * \n * Among elements of the given collection with equal keys, only the first one will be present in the resulting list.\n * The elements in the resulting list are in the same order as they were in the source collection.\n * \n * @sample samples.collections.Collections.Transformations.distinctAndDistinctBy\n */\npublic inline fun Iterable.distinctBy(selector: (T) -> K): List {\n val set = HashSet()\n val list = ArrayList()\n for (e in this) {\n val key = selector(e)\n if (set.add(key))\n list.add(e)\n }\n return list\n}\n\n/**\n * Returns a set containing all elements that are contained by both this collection and the specified collection.\n * \n * The returned set preserves the element iteration order of the original collection.\n * \n * To get a set containing all elements that are contained at least in one of these collections use [union].\n */\npublic infix fun Iterable.intersect(other: Iterable): Set {\n val set = this.toMutableSet()\n set.retainAll(other)\n return set\n}\n\n/**\n * Returns a set containing all elements that are contained by this collection and not contained by the specified collection.\n * \n * The returned set preserves the element iteration order of the original collection.\n */\npublic infix fun Iterable.subtract(other: Iterable): Set {\n val set = this.toMutableSet()\n set.removeAll(other)\n return set\n}\n\n/**\n * Returns a new [MutableSet] containing all distinct elements from the given collection.\n * \n * The returned set preserves the element iteration order of the original collection.\n */\npublic fun Iterable.toMutableSet(): MutableSet {\n return when (this) {\n is Collection -> LinkedHashSet(this)\n else -> toCollection(LinkedHashSet())\n }\n}\n\n/**\n * Returns a set containing all distinct elements from both collections.\n * \n * The returned set preserves the element iteration order of the original collection.\n * Those elements of the [other] collection that are unique are iterated in the end\n * in the order of the [other] collection.\n * \n * To get a set containing all elements that are contained in both collections use [intersect].\n */\npublic infix fun Iterable.union(other: Iterable): Set {\n val set = this.toMutableSet()\n set.addAll(other)\n return set\n}\n\n/**\n * Returns `true` if all elements match the given [predicate].\n * \n * @sample samples.collections.Collections.Aggregates.all\n */\npublic inline fun Iterable.all(predicate: (T) -> Boolean): Boolean {\n if (this is Collection && isEmpty()) return true\n for (element in this) if (!predicate(element)) return false\n return true\n}\n\n/**\n * Returns `true` if collection has at least one element.\n * \n * @sample samples.collections.Collections.Aggregates.any\n */\npublic fun Iterable.any(): Boolean {\n if (this is Collection) return !isEmpty()\n return iterator().hasNext()\n}\n\n/**\n * Returns `true` if at least one element matches the given [predicate].\n * \n * @sample samples.collections.Collections.Aggregates.anyWithPredicate\n */\npublic inline fun Iterable.any(predicate: (T) -> Boolean): Boolean {\n if (this is Collection && isEmpty()) return false\n for (element in this) if (predicate(element)) return true\n return false\n}\n\n/**\n * Returns the number of elements in this collection.\n */\npublic fun Iterable.count(): Int {\n if (this is Collection) return size\n var count = 0\n for (element in this) checkCountOverflow(++count)\n return count\n}\n\n/**\n * Returns the number of elements in this collection.\n */\n@kotlin.internal.InlineOnly\npublic inline fun Collection.count(): Int {\n return size\n}\n\n/**\n * Returns the number of elements matching the given [predicate].\n */\npublic inline fun Iterable.count(predicate: (T) -> Boolean): Int {\n if (this is Collection && isEmpty()) return 0\n var count = 0\n for (element in this) if (predicate(element)) checkCountOverflow(++count)\n return count\n}\n\n/**\n * Accumulates value starting with [initial] value and applying [operation] from left to right\n * to current accumulator value and each element.\n * \n * Returns the specified [initial] value if the collection is empty.\n * \n * @param [operation] function that takes current accumulator value and an element, and calculates the next accumulator value.\n */\npublic inline fun Iterable.fold(initial: R, operation: (acc: R, T) -> R): R {\n var accumulator = initial\n for (element in this) accumulator = operation(accumulator, element)\n return accumulator\n}\n\n/**\n * Accumulates value starting with [initial] value and applying [operation] from left to right\n * to current accumulator value and each element with its index in the original collection.\n * \n * Returns the specified [initial] value if the collection is empty.\n * \n * @param [operation] function that takes the index of an element, current accumulator value\n * and the element itself, and calculates the next accumulator value.\n */\npublic inline fun Iterable.foldIndexed(initial: R, operation: (index: Int, acc: R, T) -> R): R {\n var index = 0\n var accumulator = initial\n for (element in this) accumulator = operation(checkIndexOverflow(index++), accumulator, element)\n return accumulator\n}\n\n/**\n * Accumulates value starting with [initial] value and applying [operation] from right to left\n * to each element and current accumulator value.\n * \n * Returns the specified [initial] value if the list is empty.\n * \n * @param [operation] function that takes an element and current accumulator value, and calculates the next accumulator value.\n */\npublic inline fun List.foldRight(initial: R, operation: (T, acc: R) -> R): R {\n var accumulator = initial\n if (!isEmpty()) {\n val iterator = listIterator(size)\n while (iterator.hasPrevious()) {\n accumulator = operation(iterator.previous(), accumulator)\n }\n }\n return accumulator\n}\n\n/**\n * Accumulates value starting with [initial] value and applying [operation] from right to left\n * to each element with its index in the original list and current accumulator value.\n * \n * Returns the specified [initial] value if the list is empty.\n * \n * @param [operation] function that takes the index of an element, the element itself\n * and current accumulator value, and calculates the next accumulator value.\n */\npublic inline fun List.foldRightIndexed(initial: R, operation: (index: Int, T, acc: R) -> R): R {\n var accumulator = initial\n if (!isEmpty()) {\n val iterator = listIterator(size)\n while (iterator.hasPrevious()) {\n val index = iterator.previousIndex()\n accumulator = operation(index, iterator.previous(), accumulator)\n }\n }\n return accumulator\n}\n\n/**\n * Performs the given [action] on each element.\n */\n@kotlin.internal.HidesMembers\npublic inline fun Iterable.forEach(action: (T) -> Unit): Unit {\n for (element in this) action(element)\n}\n\n/**\n * Performs the given [action] on each element, providing sequential index with the element.\n * @param [action] function that takes the index of an element and the element itself\n * and performs the action on the element.\n */\npublic inline fun Iterable.forEachIndexed(action: (index: Int, T) -> Unit): Unit {\n var index = 0\n for (item in this) action(checkIndexOverflow(index++), item)\n}\n\n/**\n * Returns the largest element.\n * \n * If any of elements is `NaN` returns `NaN`.\n * \n * @throws NoSuchElementException if the collection is empty.\n */\n@SinceKotlin(\"1.7\")\n@kotlin.jvm.JvmName(\"maxOrThrow\")\n@Suppress(\"CONFLICTING_OVERLOADS\")\npublic fun Iterable.max(): Double {\n val iterator = iterator()\n if (!iterator.hasNext()) throw NoSuchElementException()\n var max = iterator.next()\n while (iterator.hasNext()) {\n val e = iterator.next()\n max = maxOf(max, e)\n }\n return max\n}\n\n/**\n * Returns the largest element.\n * \n * If any of elements is `NaN` returns `NaN`.\n * \n * @throws NoSuchElementException if the collection is empty.\n */\n@SinceKotlin(\"1.7\")\n@kotlin.jvm.JvmName(\"maxOrThrow\")\n@Suppress(\"CONFLICTING_OVERLOADS\")\npublic fun Iterable.max(): Float {\n val iterator = iterator()\n if (!iterator.hasNext()) throw NoSuchElementException()\n var max = iterator.next()\n while (iterator.hasNext()) {\n val e = iterator.next()\n max = maxOf(max, e)\n }\n return max\n}\n\n/**\n * Returns the largest element.\n * \n * @throws NoSuchElementException if the collection is empty.\n */\n@SinceKotlin(\"1.7\")\n@kotlin.jvm.JvmName(\"maxOrThrow\")\n@Suppress(\"CONFLICTING_OVERLOADS\")\npublic fun > Iterable.max(): T {\n val iterator = iterator()\n if (!iterator.hasNext()) throw NoSuchElementException()\n var max = iterator.next()\n while (iterator.hasNext()) {\n val e = iterator.next()\n if (max < e) max = e\n }\n return max\n}\n\n/**\n * Returns the first element yielding the largest value of the given function.\n * \n * @throws NoSuchElementException if the collection is empty.\n * \n * @sample samples.collections.Collections.Aggregates.maxBy\n */\n@SinceKotlin(\"1.7\")\n@kotlin.jvm.JvmName(\"maxByOrThrow\")\n@Suppress(\"CONFLICTING_OVERLOADS\")\npublic inline fun > Iterable.maxBy(selector: (T) -> R): T {\n val iterator = iterator()\n if (!iterator.hasNext()) throw NoSuchElementException()\n var maxElem = iterator.next()\n if (!iterator.hasNext()) return maxElem\n var maxValue = selector(maxElem)\n do {\n val e = iterator.next()\n val v = selector(e)\n if (maxValue < v) {\n maxElem = e\n maxValue = v\n }\n } while (iterator.hasNext())\n return maxElem\n}\n\n/**\n * Returns the first element yielding the largest value of the given function or `null` if there are no elements.\n * \n * @sample samples.collections.Collections.Aggregates.maxByOrNull\n */\n@SinceKotlin(\"1.4\")\npublic inline fun > Iterable.maxByOrNull(selector: (T) -> R): T? {\n val iterator = iterator()\n if (!iterator.hasNext()) return null\n var maxElem = iterator.next()\n if (!iterator.hasNext()) return maxElem\n var maxValue = selector(maxElem)\n do {\n val e = iterator.next()\n val v = selector(e)\n if (maxValue < v) {\n maxElem = e\n maxValue = v\n }\n } while (iterator.hasNext())\n return maxElem\n}\n\n/**\n * Returns the largest value among all values produced by [selector] function\n * applied to each element in the collection.\n * \n * If any of values produced by [selector] function is `NaN`, the returned result is `NaN`.\n * \n * @throws NoSuchElementException if the collection is empty.\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.internal.InlineOnly\npublic inline fun Iterable.maxOf(selector: (T) -> Double): Double {\n val iterator = iterator()\n if (!iterator.hasNext()) throw NoSuchElementException()\n var maxValue = selector(iterator.next())\n while (iterator.hasNext()) {\n val v = selector(iterator.next())\n maxValue = maxOf(maxValue, v)\n }\n return maxValue\n}\n\n/**\n * Returns the largest value among all values produced by [selector] function\n * applied to each element in the collection.\n * \n * If any of values produced by [selector] function is `NaN`, the returned result is `NaN`.\n * \n * @throws NoSuchElementException if the collection is empty.\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.internal.InlineOnly\npublic inline fun Iterable.maxOf(selector: (T) -> Float): Float {\n val iterator = iterator()\n if (!iterator.hasNext()) throw NoSuchElementException()\n var maxValue = selector(iterator.next())\n while (iterator.hasNext()) {\n val v = selector(iterator.next())\n maxValue = maxOf(maxValue, v)\n }\n return maxValue\n}\n\n/**\n * Returns the largest value among all values produced by [selector] function\n * applied to each element in the collection.\n * \n * @throws NoSuchElementException if the collection is empty.\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.internal.InlineOnly\npublic inline fun > Iterable.maxOf(selector: (T) -> R): R {\n val iterator = iterator()\n if (!iterator.hasNext()) throw NoSuchElementException()\n var maxValue = selector(iterator.next())\n while (iterator.hasNext()) {\n val v = selector(iterator.next())\n if (maxValue < v) {\n maxValue = v\n }\n }\n return maxValue\n}\n\n/**\n * Returns the largest value among all values produced by [selector] function\n * applied to each element in the collection or `null` if there are no elements.\n * \n * If any of values produced by [selector] function is `NaN`, the returned result is `NaN`.\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.internal.InlineOnly\npublic inline fun Iterable.maxOfOrNull(selector: (T) -> Double): Double? {\n val iterator = iterator()\n if (!iterator.hasNext()) return null\n var maxValue = selector(iterator.next())\n while (iterator.hasNext()) {\n val v = selector(iterator.next())\n maxValue = maxOf(maxValue, v)\n }\n return maxValue\n}\n\n/**\n * Returns the largest value among all values produced by [selector] function\n * applied to each element in the collection or `null` if there are no elements.\n * \n * If any of values produced by [selector] function is `NaN`, the returned result is `NaN`.\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.internal.InlineOnly\npublic inline fun Iterable.maxOfOrNull(selector: (T) -> Float): Float? {\n val iterator = iterator()\n if (!iterator.hasNext()) return null\n var maxValue = selector(iterator.next())\n while (iterator.hasNext()) {\n val v = selector(iterator.next())\n maxValue = maxOf(maxValue, v)\n }\n return maxValue\n}\n\n/**\n * Returns the largest value among all values produced by [selector] function\n * applied to each element in the collection or `null` if there are no elements.\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.internal.InlineOnly\npublic inline fun > Iterable.maxOfOrNull(selector: (T) -> R): R? {\n val iterator = iterator()\n if (!iterator.hasNext()) return null\n var maxValue = selector(iterator.next())\n while (iterator.hasNext()) {\n val v = selector(iterator.next())\n if (maxValue < v) {\n maxValue = v\n }\n }\n return maxValue\n}\n\n/**\n * Returns the largest value according to the provided [comparator]\n * among all values produced by [selector] function applied to each element in the collection.\n * \n * @throws NoSuchElementException if the collection is empty.\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.internal.InlineOnly\npublic inline fun Iterable.maxOfWith(comparator: Comparator, selector: (T) -> R): R {\n val iterator = iterator()\n if (!iterator.hasNext()) throw NoSuchElementException()\n var maxValue = selector(iterator.next())\n while (iterator.hasNext()) {\n val v = selector(iterator.next())\n if (comparator.compare(maxValue, v) < 0) {\n maxValue = v\n }\n }\n return maxValue\n}\n\n/**\n * Returns the largest value according to the provided [comparator]\n * among all values produced by [selector] function applied to each element in the collection or `null` if there are no elements.\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.internal.InlineOnly\npublic inline fun Iterable.maxOfWithOrNull(comparator: Comparator, selector: (T) -> R): R? {\n val iterator = iterator()\n if (!iterator.hasNext()) return null\n var maxValue = selector(iterator.next())\n while (iterator.hasNext()) {\n val v = selector(iterator.next())\n if (comparator.compare(maxValue, v) < 0) {\n maxValue = v\n }\n }\n return maxValue\n}\n\n/**\n * Returns the largest element or `null` if there are no elements.\n * \n * If any of elements is `NaN` returns `NaN`.\n */\n@SinceKotlin(\"1.4\")\npublic fun Iterable.maxOrNull(): Double? {\n val iterator = iterator()\n if (!iterator.hasNext()) return null\n var max = iterator.next()\n while (iterator.hasNext()) {\n val e = iterator.next()\n max = maxOf(max, e)\n }\n return max\n}\n\n/**\n * Returns the largest element or `null` if there are no elements.\n * \n * If any of elements is `NaN` returns `NaN`.\n */\n@SinceKotlin(\"1.4\")\npublic fun Iterable.maxOrNull(): Float? {\n val iterator = iterator()\n if (!iterator.hasNext()) return null\n var max = iterator.next()\n while (iterator.hasNext()) {\n val e = iterator.next()\n max = maxOf(max, e)\n }\n return max\n}\n\n/**\n * Returns the largest element or `null` if there are no elements.\n */\n@SinceKotlin(\"1.4\")\npublic fun > Iterable.maxOrNull(): T? {\n val iterator = iterator()\n if (!iterator.hasNext()) return null\n var max = iterator.next()\n while (iterator.hasNext()) {\n val e = iterator.next()\n if (max < e) max = e\n }\n return max\n}\n\n/**\n * Returns the first element having the largest value according to the provided [comparator].\n * \n * @throws NoSuchElementException if the collection is empty.\n */\n@SinceKotlin(\"1.7\")\n@kotlin.jvm.JvmName(\"maxWithOrThrow\")\n@Suppress(\"CONFLICTING_OVERLOADS\")\npublic fun Iterable.maxWith(comparator: Comparator): T {\n val iterator = iterator()\n if (!iterator.hasNext()) throw NoSuchElementException()\n var max = iterator.next()\n while (iterator.hasNext()) {\n val e = iterator.next()\n if (comparator.compare(max, e) < 0) max = e\n }\n return max\n}\n\n/**\n * Returns the first element having the largest value according to the provided [comparator] or `null` if there are no elements.\n */\n@SinceKotlin(\"1.4\")\npublic fun Iterable.maxWithOrNull(comparator: Comparator): T? {\n val iterator = iterator()\n if (!iterator.hasNext()) return null\n var max = iterator.next()\n while (iterator.hasNext()) {\n val e = iterator.next()\n if (comparator.compare(max, e) < 0) max = e\n }\n return max\n}\n\n/**\n * Returns the smallest element.\n * \n * If any of elements is `NaN` returns `NaN`.\n * \n * @throws NoSuchElementException if the collection is empty.\n */\n@SinceKotlin(\"1.7\")\n@kotlin.jvm.JvmName(\"minOrThrow\")\n@Suppress(\"CONFLICTING_OVERLOADS\")\npublic fun Iterable.min(): Double {\n val iterator = iterator()\n if (!iterator.hasNext()) throw NoSuchElementException()\n var min = iterator.next()\n while (iterator.hasNext()) {\n val e = iterator.next()\n min = minOf(min, e)\n }\n return min\n}\n\n/**\n * Returns the smallest element.\n * \n * If any of elements is `NaN` returns `NaN`.\n * \n * @throws NoSuchElementException if the collection is empty.\n */\n@SinceKotlin(\"1.7\")\n@kotlin.jvm.JvmName(\"minOrThrow\")\n@Suppress(\"CONFLICTING_OVERLOADS\")\npublic fun Iterable.min(): Float {\n val iterator = iterator()\n if (!iterator.hasNext()) throw NoSuchElementException()\n var min = iterator.next()\n while (iterator.hasNext()) {\n val e = iterator.next()\n min = minOf(min, e)\n }\n return min\n}\n\n/**\n * Returns the smallest element.\n * \n * @throws NoSuchElementException if the collection is empty.\n */\n@SinceKotlin(\"1.7\")\n@kotlin.jvm.JvmName(\"minOrThrow\")\n@Suppress(\"CONFLICTING_OVERLOADS\")\npublic fun > Iterable.min(): T {\n val iterator = iterator()\n if (!iterator.hasNext()) throw NoSuchElementException()\n var min = iterator.next()\n while (iterator.hasNext()) {\n val e = iterator.next()\n if (min > e) min = e\n }\n return min\n}\n\n/**\n * Returns the first element yielding the smallest value of the given function.\n * \n * @throws NoSuchElementException if the collection is empty.\n * \n * @sample samples.collections.Collections.Aggregates.minBy\n */\n@SinceKotlin(\"1.7\")\n@kotlin.jvm.JvmName(\"minByOrThrow\")\n@Suppress(\"CONFLICTING_OVERLOADS\")\npublic inline fun > Iterable.minBy(selector: (T) -> R): T {\n val iterator = iterator()\n if (!iterator.hasNext()) throw NoSuchElementException()\n var minElem = iterator.next()\n if (!iterator.hasNext()) return minElem\n var minValue = selector(minElem)\n do {\n val e = iterator.next()\n val v = selector(e)\n if (minValue > v) {\n minElem = e\n minValue = v\n }\n } while (iterator.hasNext())\n return minElem\n}\n\n/**\n * Returns the first element yielding the smallest value of the given function or `null` if there are no elements.\n * \n * @sample samples.collections.Collections.Aggregates.minByOrNull\n */\n@SinceKotlin(\"1.4\")\npublic inline fun > Iterable.minByOrNull(selector: (T) -> R): T? {\n val iterator = iterator()\n if (!iterator.hasNext()) return null\n var minElem = iterator.next()\n if (!iterator.hasNext()) return minElem\n var minValue = selector(minElem)\n do {\n val e = iterator.next()\n val v = selector(e)\n if (minValue > v) {\n minElem = e\n minValue = v\n }\n } while (iterator.hasNext())\n return minElem\n}\n\n/**\n * Returns the smallest value among all values produced by [selector] function\n * applied to each element in the collection.\n * \n * If any of values produced by [selector] function is `NaN`, the returned result is `NaN`.\n * \n * @throws NoSuchElementException if the collection is empty.\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.internal.InlineOnly\npublic inline fun Iterable.minOf(selector: (T) -> Double): Double {\n val iterator = iterator()\n if (!iterator.hasNext()) throw NoSuchElementException()\n var minValue = selector(iterator.next())\n while (iterator.hasNext()) {\n val v = selector(iterator.next())\n minValue = minOf(minValue, v)\n }\n return minValue\n}\n\n/**\n * Returns the smallest value among all values produced by [selector] function\n * applied to each element in the collection.\n * \n * If any of values produced by [selector] function is `NaN`, the returned result is `NaN`.\n * \n * @throws NoSuchElementException if the collection is empty.\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.internal.InlineOnly\npublic inline fun Iterable.minOf(selector: (T) -> Float): Float {\n val iterator = iterator()\n if (!iterator.hasNext()) throw NoSuchElementException()\n var minValue = selector(iterator.next())\n while (iterator.hasNext()) {\n val v = selector(iterator.next())\n minValue = minOf(minValue, v)\n }\n return minValue\n}\n\n/**\n * Returns the smallest value among all values produced by [selector] function\n * applied to each element in the collection.\n * \n * @throws NoSuchElementException if the collection is empty.\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.internal.InlineOnly\npublic inline fun > Iterable.minOf(selector: (T) -> R): R {\n val iterator = iterator()\n if (!iterator.hasNext()) throw NoSuchElementException()\n var minValue = selector(iterator.next())\n while (iterator.hasNext()) {\n val v = selector(iterator.next())\n if (minValue > v) {\n minValue = v\n }\n }\n return minValue\n}\n\n/**\n * Returns the smallest value among all values produced by [selector] function\n * applied to each element in the collection or `null` if there are no elements.\n * \n * If any of values produced by [selector] function is `NaN`, the returned result is `NaN`.\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.internal.InlineOnly\npublic inline fun Iterable.minOfOrNull(selector: (T) -> Double): Double? {\n val iterator = iterator()\n if (!iterator.hasNext()) return null\n var minValue = selector(iterator.next())\n while (iterator.hasNext()) {\n val v = selector(iterator.next())\n minValue = minOf(minValue, v)\n }\n return minValue\n}\n\n/**\n * Returns the smallest value among all values produced by [selector] function\n * applied to each element in the collection or `null` if there are no elements.\n * \n * If any of values produced by [selector] function is `NaN`, the returned result is `NaN`.\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.internal.InlineOnly\npublic inline fun Iterable.minOfOrNull(selector: (T) -> Float): Float? {\n val iterator = iterator()\n if (!iterator.hasNext()) return null\n var minValue = selector(iterator.next())\n while (iterator.hasNext()) {\n val v = selector(iterator.next())\n minValue = minOf(minValue, v)\n }\n return minValue\n}\n\n/**\n * Returns the smallest value among all values produced by [selector] function\n * applied to each element in the collection or `null` if there are no elements.\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.internal.InlineOnly\npublic inline fun > Iterable.minOfOrNull(selector: (T) -> R): R? {\n val iterator = iterator()\n if (!iterator.hasNext()) return null\n var minValue = selector(iterator.next())\n while (iterator.hasNext()) {\n val v = selector(iterator.next())\n if (minValue > v) {\n minValue = v\n }\n }\n return minValue\n}\n\n/**\n * Returns the smallest value according to the provided [comparator]\n * among all values produced by [selector] function applied to each element in the collection.\n * \n * @throws NoSuchElementException if the collection is empty.\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.internal.InlineOnly\npublic inline fun Iterable.minOfWith(comparator: Comparator, selector: (T) -> R): R {\n val iterator = iterator()\n if (!iterator.hasNext()) throw NoSuchElementException()\n var minValue = selector(iterator.next())\n while (iterator.hasNext()) {\n val v = selector(iterator.next())\n if (comparator.compare(minValue, v) > 0) {\n minValue = v\n }\n }\n return minValue\n}\n\n/**\n * Returns the smallest value according to the provided [comparator]\n * among all values produced by [selector] function applied to each element in the collection or `null` if there are no elements.\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.internal.InlineOnly\npublic inline fun Iterable.minOfWithOrNull(comparator: Comparator, selector: (T) -> R): R? {\n val iterator = iterator()\n if (!iterator.hasNext()) return null\n var minValue = selector(iterator.next())\n while (iterator.hasNext()) {\n val v = selector(iterator.next())\n if (comparator.compare(minValue, v) > 0) {\n minValue = v\n }\n }\n return minValue\n}\n\n/**\n * Returns the smallest element or `null` if there are no elements.\n * \n * If any of elements is `NaN` returns `NaN`.\n */\n@SinceKotlin(\"1.4\")\npublic fun Iterable.minOrNull(): Double? {\n val iterator = iterator()\n if (!iterator.hasNext()) return null\n var min = iterator.next()\n while (iterator.hasNext()) {\n val e = iterator.next()\n min = minOf(min, e)\n }\n return min\n}\n\n/**\n * Returns the smallest element or `null` if there are no elements.\n * \n * If any of elements is `NaN` returns `NaN`.\n */\n@SinceKotlin(\"1.4\")\npublic fun Iterable.minOrNull(): Float? {\n val iterator = iterator()\n if (!iterator.hasNext()) return null\n var min = iterator.next()\n while (iterator.hasNext()) {\n val e = iterator.next()\n min = minOf(min, e)\n }\n return min\n}\n\n/**\n * Returns the smallest element or `null` if there are no elements.\n */\n@SinceKotlin(\"1.4\")\npublic fun > Iterable.minOrNull(): T? {\n val iterator = iterator()\n if (!iterator.hasNext()) return null\n var min = iterator.next()\n while (iterator.hasNext()) {\n val e = iterator.next()\n if (min > e) min = e\n }\n return min\n}\n\n/**\n * Returns the first element having the smallest value according to the provided [comparator].\n * \n * @throws NoSuchElementException if the collection is empty.\n */\n@SinceKotlin(\"1.7\")\n@kotlin.jvm.JvmName(\"minWithOrThrow\")\n@Suppress(\"CONFLICTING_OVERLOADS\")\npublic fun Iterable.minWith(comparator: Comparator): T {\n val iterator = iterator()\n if (!iterator.hasNext()) throw NoSuchElementException()\n var min = iterator.next()\n while (iterator.hasNext()) {\n val e = iterator.next()\n if (comparator.compare(min, e) > 0) min = e\n }\n return min\n}\n\n/**\n * Returns the first element having the smallest value according to the provided [comparator] or `null` if there are no elements.\n */\n@SinceKotlin(\"1.4\")\npublic fun Iterable.minWithOrNull(comparator: Comparator): T? {\n val iterator = iterator()\n if (!iterator.hasNext()) return null\n var min = iterator.next()\n while (iterator.hasNext()) {\n val e = iterator.next()\n if (comparator.compare(min, e) > 0) min = e\n }\n return min\n}\n\n/**\n * Returns `true` if the collection has no elements.\n * \n * @sample samples.collections.Collections.Aggregates.none\n */\npublic fun Iterable.none(): Boolean {\n if (this is Collection) return isEmpty()\n return !iterator().hasNext()\n}\n\n/**\n * Returns `true` if no elements match the given [predicate].\n * \n * @sample samples.collections.Collections.Aggregates.noneWithPredicate\n */\npublic inline fun Iterable.none(predicate: (T) -> Boolean): Boolean {\n if (this is Collection && isEmpty()) return true\n for (element in this) if (predicate(element)) return false\n return true\n}\n\n/**\n * Performs the given [action] on each element and returns the collection itself afterwards.\n */\n@SinceKotlin(\"1.1\")\npublic inline fun > C.onEach(action: (T) -> Unit): C {\n return apply { for (element in this) action(element) }\n}\n\n/**\n * Performs the given [action] on each element, providing sequential index with the element,\n * and returns the collection itself afterwards.\n * @param [action] function that takes the index of an element and the element itself\n * and performs the action on the element.\n */\n@SinceKotlin(\"1.4\")\npublic inline fun > C.onEachIndexed(action: (index: Int, T) -> Unit): C {\n return apply { forEachIndexed(action) }\n}\n\n/**\n * Accumulates value starting with the first element and applying [operation] from left to right\n * to current accumulator value and each element.\n * \n * Throws an exception if this collection is empty. If the collection can be empty in an expected way,\n * please use [reduceOrNull] instead. It returns `null` when its receiver is empty.\n * \n * @param [operation] function that takes current accumulator value and an element,\n * and calculates the next accumulator value.\n * \n * @sample samples.collections.Collections.Aggregates.reduce\n */\npublic inline fun Iterable.reduce(operation: (acc: S, T) -> S): S {\n val iterator = this.iterator()\n if (!iterator.hasNext()) throw UnsupportedOperationException(\"Empty collection can't be reduced.\")\n var accumulator: S = iterator.next()\n while (iterator.hasNext()) {\n accumulator = operation(accumulator, iterator.next())\n }\n return accumulator\n}\n\n/**\n * Accumulates value starting with the first element and applying [operation] from left to right\n * to current accumulator value and each element with its index in the original collection.\n * \n * Throws an exception if this collection is empty. If the collection can be empty in an expected way,\n * please use [reduceIndexedOrNull] instead. It returns `null` when its receiver is empty.\n * \n * @param [operation] function that takes the index of an element, current accumulator value and the element itself,\n * and calculates the next accumulator value.\n * \n * @sample samples.collections.Collections.Aggregates.reduce\n */\npublic inline fun Iterable.reduceIndexed(operation: (index: Int, acc: S, T) -> S): S {\n val iterator = this.iterator()\n if (!iterator.hasNext()) throw UnsupportedOperationException(\"Empty collection can't be reduced.\")\n var index = 1\n var accumulator: S = iterator.next()\n while (iterator.hasNext()) {\n accumulator = operation(checkIndexOverflow(index++), accumulator, iterator.next())\n }\n return accumulator\n}\n\n/**\n * Accumulates value starting with the first element and applying [operation] from left to right\n * to current accumulator value and each element with its index in the original collection.\n * \n * Returns `null` if the collection is empty.\n * \n * @param [operation] function that takes the index of an element, current accumulator value and the element itself,\n * and calculates the next accumulator value.\n * \n * @sample samples.collections.Collections.Aggregates.reduceOrNull\n */\n@SinceKotlin(\"1.4\")\npublic inline fun Iterable.reduceIndexedOrNull(operation: (index: Int, acc: S, T) -> S): S? {\n val iterator = this.iterator()\n if (!iterator.hasNext()) return null\n var index = 1\n var accumulator: S = iterator.next()\n while (iterator.hasNext()) {\n accumulator = operation(checkIndexOverflow(index++), accumulator, iterator.next())\n }\n return accumulator\n}\n\n/**\n * Accumulates value starting with the first element and applying [operation] from left to right\n * to current accumulator value and each element.\n * \n * Returns `null` if the collection is empty.\n * \n * @param [operation] function that takes current accumulator value and an element,\n * and calculates the next accumulator value.\n * \n * @sample samples.collections.Collections.Aggregates.reduceOrNull\n */\n@SinceKotlin(\"1.4\")\n@WasExperimental(ExperimentalStdlibApi::class)\npublic inline fun Iterable.reduceOrNull(operation: (acc: S, T) -> S): S? {\n val iterator = this.iterator()\n if (!iterator.hasNext()) return null\n var accumulator: S = iterator.next()\n while (iterator.hasNext()) {\n accumulator = operation(accumulator, iterator.next())\n }\n return accumulator\n}\n\n/**\n * Accumulates value starting with the last element and applying [operation] from right to left\n * to each element and current accumulator value.\n * \n * Throws an exception if this list is empty. If the list can be empty in an expected way,\n * please use [reduceRightOrNull] instead. It returns `null` when its receiver is empty.\n * \n * @param [operation] function that takes an element and current accumulator value,\n * and calculates the next accumulator value.\n * \n * @sample samples.collections.Collections.Aggregates.reduceRight\n */\npublic inline fun List.reduceRight(operation: (T, acc: S) -> S): S {\n val iterator = listIterator(size)\n if (!iterator.hasPrevious())\n throw UnsupportedOperationException(\"Empty list can't be reduced.\")\n var accumulator: S = iterator.previous()\n while (iterator.hasPrevious()) {\n accumulator = operation(iterator.previous(), accumulator)\n }\n return accumulator\n}\n\n/**\n * Accumulates value starting with the last element and applying [operation] from right to left\n * to each element with its index in the original list and current accumulator value.\n * \n * Throws an exception if this list is empty. If the list can be empty in an expected way,\n * please use [reduceRightIndexedOrNull] instead. It returns `null` when its receiver is empty.\n * \n * @param [operation] function that takes the index of an element, the element itself and current accumulator value,\n * and calculates the next accumulator value.\n * \n * @sample samples.collections.Collections.Aggregates.reduceRight\n */\npublic inline fun List.reduceRightIndexed(operation: (index: Int, T, acc: S) -> S): S {\n val iterator = listIterator(size)\n if (!iterator.hasPrevious())\n throw UnsupportedOperationException(\"Empty list can't be reduced.\")\n var accumulator: S = iterator.previous()\n while (iterator.hasPrevious()) {\n val index = iterator.previousIndex()\n accumulator = operation(index, iterator.previous(), accumulator)\n }\n return accumulator\n}\n\n/**\n * Accumulates value starting with the last element and applying [operation] from right to left\n * to each element with its index in the original list and current accumulator value.\n * \n * Returns `null` if the list is empty.\n * \n * @param [operation] function that takes the index of an element, the element itself and current accumulator value,\n * and calculates the next accumulator value.\n * \n * @sample samples.collections.Collections.Aggregates.reduceRightOrNull\n */\n@SinceKotlin(\"1.4\")\npublic inline fun List.reduceRightIndexedOrNull(operation: (index: Int, T, acc: S) -> S): S? {\n val iterator = listIterator(size)\n if (!iterator.hasPrevious())\n return null\n var accumulator: S = iterator.previous()\n while (iterator.hasPrevious()) {\n val index = iterator.previousIndex()\n accumulator = operation(index, iterator.previous(), accumulator)\n }\n return accumulator\n}\n\n/**\n * Accumulates value starting with the last element and applying [operation] from right to left\n * to each element and current accumulator value.\n * \n * Returns `null` if the list is empty.\n * \n * @param [operation] function that takes an element and current accumulator value,\n * and calculates the next accumulator value.\n * \n * @sample samples.collections.Collections.Aggregates.reduceRightOrNull\n */\n@SinceKotlin(\"1.4\")\n@WasExperimental(ExperimentalStdlibApi::class)\npublic inline fun List.reduceRightOrNull(operation: (T, acc: S) -> S): S? {\n val iterator = listIterator(size)\n if (!iterator.hasPrevious())\n return null\n var accumulator: S = iterator.previous()\n while (iterator.hasPrevious()) {\n accumulator = operation(iterator.previous(), accumulator)\n }\n return accumulator\n}\n\n/**\n * Returns a list containing successive accumulation values generated by applying [operation] from left to right\n * to each element and current accumulator value that starts with [initial] value.\n * \n * Note that `acc` value passed to [operation] function should not be mutated;\n * otherwise it would affect the previous value in resulting list.\n * \n * @param [operation] function that takes current accumulator value and an element, and calculates the next accumulator value.\n * \n * @sample samples.collections.Collections.Aggregates.runningFold\n */\n@SinceKotlin(\"1.4\")\npublic inline fun Iterable.runningFold(initial: R, operation: (acc: R, T) -> R): List {\n val estimatedSize = collectionSizeOrDefault(9)\n if (estimatedSize == 0) return listOf(initial)\n val result = ArrayList(estimatedSize + 1).apply { add(initial) }\n var accumulator = initial\n for (element in this) {\n accumulator = operation(accumulator, element)\n result.add(accumulator)\n }\n return result\n}\n\n/**\n * Returns a list containing successive accumulation values generated by applying [operation] from left to right\n * to each element, its index in the original collection and current accumulator value that starts with [initial] value.\n * \n * Note that `acc` value passed to [operation] function should not be mutated;\n * otherwise it would affect the previous value in resulting list.\n * \n * @param [operation] function that takes the index of an element, current accumulator value\n * and the element itself, and calculates the next accumulator value.\n * \n * @sample samples.collections.Collections.Aggregates.runningFold\n */\n@SinceKotlin(\"1.4\")\npublic inline fun Iterable.runningFoldIndexed(initial: R, operation: (index: Int, acc: R, T) -> R): List {\n val estimatedSize = collectionSizeOrDefault(9)\n if (estimatedSize == 0) return listOf(initial)\n val result = ArrayList(estimatedSize + 1).apply { add(initial) }\n var index = 0\n var accumulator = initial\n for (element in this) {\n accumulator = operation(index++, accumulator, element)\n result.add(accumulator)\n }\n return result\n}\n\n/**\n * Returns a list containing successive accumulation values generated by applying [operation] from left to right\n * to each element and current accumulator value that starts with the first element of this collection.\n * \n * Note that `acc` value passed to [operation] function should not be mutated;\n * otherwise it would affect the previous value in resulting list.\n * \n * @param [operation] function that takes current accumulator value and the element, and calculates the next accumulator value.\n * \n * @sample samples.collections.Collections.Aggregates.runningReduce\n */\n@SinceKotlin(\"1.4\")\n@WasExperimental(ExperimentalStdlibApi::class)\npublic inline fun Iterable.runningReduce(operation: (acc: S, T) -> S): List {\n val iterator = this.iterator()\n if (!iterator.hasNext()) return emptyList()\n var accumulator: S = iterator.next()\n val result = ArrayList(collectionSizeOrDefault(10)).apply { add(accumulator) }\n while (iterator.hasNext()) {\n accumulator = operation(accumulator, iterator.next())\n result.add(accumulator)\n }\n return result\n}\n\n/**\n * Returns a list containing successive accumulation values generated by applying [operation] from left to right\n * to each element, its index in the original collection and current accumulator value that starts with the first element of this collection.\n * \n * Note that `acc` value passed to [operation] function should not be mutated;\n * otherwise it would affect the previous value in resulting list.\n * \n * @param [operation] function that takes the index of an element, current accumulator value\n * and the element itself, and calculates the next accumulator value.\n * \n * @sample samples.collections.Collections.Aggregates.runningReduce\n */\n@SinceKotlin(\"1.4\")\npublic inline fun Iterable.runningReduceIndexed(operation: (index: Int, acc: S, T) -> S): List {\n val iterator = this.iterator()\n if (!iterator.hasNext()) return emptyList()\n var accumulator: S = iterator.next()\n val result = ArrayList(collectionSizeOrDefault(10)).apply { add(accumulator) }\n var index = 1\n while (iterator.hasNext()) {\n accumulator = operation(index++, accumulator, iterator.next())\n result.add(accumulator)\n }\n return result\n}\n\n/**\n * Returns a list containing successive accumulation values generated by applying [operation] from left to right\n * to each element and current accumulator value that starts with [initial] value.\n * \n * Note that `acc` value passed to [operation] function should not be mutated;\n * otherwise it would affect the previous value in resulting list.\n * \n * @param [operation] function that takes current accumulator value and an element, and calculates the next accumulator value.\n * \n * @sample samples.collections.Collections.Aggregates.scan\n */\n@SinceKotlin(\"1.4\")\n@WasExperimental(ExperimentalStdlibApi::class)\npublic inline fun Iterable.scan(initial: R, operation: (acc: R, T) -> R): List {\n return runningFold(initial, operation)\n}\n\n/**\n * Returns a list containing successive accumulation values generated by applying [operation] from left to right\n * to each element, its index in the original collection and current accumulator value that starts with [initial] value.\n * \n * Note that `acc` value passed to [operation] function should not be mutated;\n * otherwise it would affect the previous value in resulting list.\n * \n * @param [operation] function that takes the index of an element, current accumulator value\n * and the element itself, and calculates the next accumulator value.\n * \n * @sample samples.collections.Collections.Aggregates.scan\n */\n@SinceKotlin(\"1.4\")\n@WasExperimental(ExperimentalStdlibApi::class)\npublic inline fun Iterable.scanIndexed(initial: R, operation: (index: Int, acc: R, T) -> R): List {\n return runningFoldIndexed(initial, operation)\n}\n\n/**\n * Returns the sum of all values produced by [selector] function applied to each element in the collection.\n */\n@Deprecated(\"Use sumOf instead.\", ReplaceWith(\"this.sumOf(selector)\"))\n@DeprecatedSinceKotlin(warningSince = \"1.5\")\npublic inline fun Iterable.sumBy(selector: (T) -> Int): Int {\n var sum: Int = 0\n for (element in this) {\n sum += selector(element)\n }\n return sum\n}\n\n/**\n * Returns the sum of all values produced by [selector] function applied to each element in the collection.\n */\n@Deprecated(\"Use sumOf instead.\", ReplaceWith(\"this.sumOf(selector)\"))\n@DeprecatedSinceKotlin(warningSince = \"1.5\")\npublic inline fun Iterable.sumByDouble(selector: (T) -> Double): Double {\n var sum: Double = 0.0\n for (element in this) {\n sum += selector(element)\n }\n return sum\n}\n\n/**\n * Returns the sum of all values produced by [selector] function applied to each element in the collection.\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.jvm.JvmName(\"sumOfDouble\")\n@kotlin.internal.InlineOnly\npublic inline fun Iterable.sumOf(selector: (T) -> Double): Double {\n var sum: Double = 0.toDouble()\n for (element in this) {\n sum += selector(element)\n }\n return sum\n}\n\n/**\n * Returns the sum of all values produced by [selector] function applied to each element in the collection.\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.jvm.JvmName(\"sumOfInt\")\n@kotlin.internal.InlineOnly\npublic inline fun Iterable.sumOf(selector: (T) -> Int): Int {\n var sum: Int = 0.toInt()\n for (element in this) {\n sum += selector(element)\n }\n return sum\n}\n\n/**\n * Returns the sum of all values produced by [selector] function applied to each element in the collection.\n */\n@SinceKotlin(\"1.4\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.jvm.JvmName(\"sumOfLong\")\n@kotlin.internal.InlineOnly\npublic inline fun Iterable.sumOf(selector: (T) -> Long): Long {\n var sum: Long = 0.toLong()\n for (element in this) {\n sum += selector(element)\n }\n return sum\n}\n\n/**\n * Returns the sum of all values produced by [selector] function applied to each element in the collection.\n */\n@SinceKotlin(\"1.5\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.jvm.JvmName(\"sumOfUInt\")\n@WasExperimental(ExperimentalUnsignedTypes::class)\n@kotlin.internal.InlineOnly\npublic inline fun Iterable.sumOf(selector: (T) -> UInt): UInt {\n var sum: UInt = 0.toUInt()\n for (element in this) {\n sum += selector(element)\n }\n return sum\n}\n\n/**\n * Returns the sum of all values produced by [selector] function applied to each element in the collection.\n */\n@SinceKotlin(\"1.5\")\n@OptIn(kotlin.experimental.ExperimentalTypeInference::class)\n@OverloadResolutionByLambdaReturnType\n@kotlin.jvm.JvmName(\"sumOfULong\")\n@WasExperimental(ExperimentalUnsignedTypes::class)\n@kotlin.internal.InlineOnly\npublic inline fun Iterable.sumOf(selector: (T) -> ULong): ULong {\n var sum: ULong = 0.toULong()\n for (element in this) {\n sum += selector(element)\n }\n return sum\n}\n\n/**\n * Returns an original collection containing all the non-`null` elements, throwing an [IllegalArgumentException] if there are any `null` elements.\n */\npublic fun Iterable.requireNoNulls(): Iterable {\n for (element in this) {\n if (element == null) {\n throw IllegalArgumentException(\"null element found in $this.\")\n }\n }\n @Suppress(\"UNCHECKED_CAST\")\n return this as Iterable\n}\n\n/**\n * Returns an original collection containing all the non-`null` elements, throwing an [IllegalArgumentException] if there are any `null` elements.\n */\npublic fun List.requireNoNulls(): List {\n for (element in this) {\n if (element == null) {\n throw IllegalArgumentException(\"null element found in $this.\")\n }\n }\n @Suppress(\"UNCHECKED_CAST\")\n return this as List\n}\n\n/**\n * Splits this collection into a list of lists each not exceeding the given [size].\n * \n * The last list in the resulting list may have fewer elements than the given [size].\n * \n * @param size the number of elements to take in each list, must be positive and can be greater than the number of elements in this collection.\n * \n * @sample samples.collections.Collections.Transformations.chunked\n */\n@SinceKotlin(\"1.2\")\npublic fun Iterable.chunked(size: Int): List> {\n return windowed(size, size, partialWindows = true)\n}\n\n/**\n * Splits this collection into several lists each not exceeding the given [size]\n * and applies the given [transform] function to an each.\n * \n * @return list of results of the [transform] applied to an each list.\n * \n * Note that the list passed to the [transform] function is ephemeral and is valid only inside that function.\n * You should not store it or allow it to escape in some way, unless you made a snapshot of it.\n * The last list may have fewer elements than the given [size].\n * \n * @param size the number of elements to take in each list, must be positive and can be greater than the number of elements in this collection.\n * \n * @sample samples.text.Strings.chunkedTransform\n */\n@SinceKotlin(\"1.2\")\npublic fun Iterable.chunked(size: Int, transform: (List) -> R): List {\n return windowed(size, size, partialWindows = true, transform = transform)\n}\n\n/**\n * Returns a list containing all elements of the original collection without the first occurrence of the given [element].\n */\npublic operator fun Iterable.minus(element: T): List {\n val result = ArrayList(collectionSizeOrDefault(10))\n var removed = false\n return this.filterTo(result) { if (!removed && it == element) { removed = true; false } else true }\n}\n\n/**\n * Returns a list containing all elements of the original collection except the elements contained in the given [elements] array.\n * \n * Before Kotlin 1.6, the [elements] array may have been converted to a [HashSet] to speed up the operation, thus the elements were required to have\n * a correct and stable implementation of `hashCode()` that didn't change between successive invocations.\n * On JVM, you can enable this behavior back with the system property `kotlin.collections.convert_arg_to_set_in_removeAll` set to `true`.\n */\npublic operator fun Iterable.minus(elements: Array): List {\n if (elements.isEmpty()) return this.toList()\n val other = elements.convertToSetForSetOperation()\n return this.filterNot { it in other }\n}\n\n/**\n * Returns a list containing all elements of the original collection except the elements contained in the given [elements] collection.\n * \n * Before Kotlin 1.6, the [elements] collection may have been converted to a [HashSet] to speed up the operation, thus the elements were required to have\n * a correct and stable implementation of `hashCode()` that didn't change between successive invocations.\n * On JVM, you can enable this behavior back with the system property `kotlin.collections.convert_arg_to_set_in_removeAll` set to `true`.\n */\npublic operator fun Iterable.minus(elements: Iterable): List {\n val other = elements.convertToSetForSetOperationWith(this)\n if (other.isEmpty())\n return this.toList()\n return this.filterNot { it in other }\n}\n\n/**\n * Returns a list containing all elements of the original collection except the elements contained in the given [elements] sequence.\n * \n * Before Kotlin 1.6, the [elements] sequence may have been converted to a [HashSet] to speed up the operation, thus the elements were required to have\n * a correct and stable implementation of `hashCode()` that didn't change between successive invocations.\n * On JVM, you can enable this behavior back with the system property `kotlin.collections.convert_arg_to_set_in_removeAll` set to `true`.\n */\npublic operator fun Iterable.minus(elements: Sequence): List {\n val other = elements.convertToSetForSetOperation()\n if (other.isEmpty())\n return this.toList()\n return this.filterNot { it in other }\n}\n\n/**\n * Returns a list containing all elements of the original collection without the first occurrence of the given [element].\n */\n@kotlin.internal.InlineOnly\npublic inline fun Iterable.minusElement(element: T): List {\n return minus(element)\n}\n\n/**\n * Splits the original collection into pair of lists,\n * where *first* list contains elements for which [predicate] yielded `true`,\n * while *second* list contains elements for which [predicate] yielded `false`.\n * \n * @sample samples.collections.Iterables.Operations.partition\n */\npublic inline fun Iterable.partition(predicate: (T) -> Boolean): Pair, List> {\n val first = ArrayList()\n val second = ArrayList()\n for (element in this) {\n if (predicate(element)) {\n first.add(element)\n } else {\n second.add(element)\n }\n }\n return Pair(first, second)\n}\n\n/**\n * Returns a list containing all elements of the original collection and then the given [element].\n */\npublic operator fun Iterable.plus(element: T): List {\n if (this is Collection) return this.plus(element)\n val result = ArrayList()\n result.addAll(this)\n result.add(element)\n return result\n}\n\n/**\n * Returns a list containing all elements of the original collection and then the given [element].\n */\npublic operator fun Collection.plus(element: T): List {\n val result = ArrayList(size + 1)\n result.addAll(this)\n result.add(element)\n return result\n}\n\n/**\n * Returns a list containing all elements of the original collection and then all elements of the given [elements] array.\n */\npublic operator fun Iterable.plus(elements: Array): List {\n if (this is Collection) return this.plus(elements)\n val result = ArrayList()\n result.addAll(this)\n result.addAll(elements)\n return result\n}\n\n/**\n * Returns a list containing all elements of the original collection and then all elements of the given [elements] array.\n */\npublic operator fun Collection.plus(elements: Array): List {\n val result = ArrayList(this.size + elements.size)\n result.addAll(this)\n result.addAll(elements)\n return result\n}\n\n/**\n * Returns a list containing all elements of the original collection and then all elements of the given [elements] collection.\n */\npublic operator fun Iterable.plus(elements: Iterable): List {\n if (this is Collection) return this.plus(elements)\n val result = ArrayList()\n result.addAll(this)\n result.addAll(elements)\n return result\n}\n\n/**\n * Returns a list containing all elements of the original collection and then all elements of the given [elements] collection.\n */\npublic operator fun Collection.plus(elements: Iterable): List {\n if (elements is Collection) {\n val result = ArrayList(this.size + elements.size)\n result.addAll(this)\n result.addAll(elements)\n return result\n } else {\n val result = ArrayList(this)\n result.addAll(elements)\n return result\n }\n}\n\n/**\n * Returns a list containing all elements of the original collection and then all elements of the given [elements] sequence.\n */\npublic operator fun Iterable.plus(elements: Sequence): List {\n val result = ArrayList()\n result.addAll(this)\n result.addAll(elements)\n return result\n}\n\n/**\n * Returns a list containing all elements of the original collection and then all elements of the given [elements] sequence.\n */\npublic operator fun Collection.plus(elements: Sequence): List {\n val result = ArrayList(this.size + 10)\n result.addAll(this)\n result.addAll(elements)\n return result\n}\n\n/**\n * Returns a list containing all elements of the original collection and then the given [element].\n */\n@kotlin.internal.InlineOnly\npublic inline fun Iterable.plusElement(element: T): List {\n return plus(element)\n}\n\n/**\n * Returns a list containing all elements of the original collection and then the given [element].\n */\n@kotlin.internal.InlineOnly\npublic inline fun Collection.plusElement(element: T): List {\n return plus(element)\n}\n\n/**\n * Returns a list of snapshots of the window of the given [size]\n * sliding along this collection with the given [step], where each\n * snapshot is a list.\n * \n * Several last lists may have fewer elements than the given [size].\n * \n * Both [size] and [step] must be positive and can be greater than the number of elements in this collection.\n * @param size the number of elements to take in each window\n * @param step the number of elements to move the window forward by on an each step, by default 1\n * @param partialWindows controls whether or not to keep partial windows in the end if any,\n * by default `false` which means partial windows won't be preserved\n * \n * @sample samples.collections.Sequences.Transformations.takeWindows\n */\n@SinceKotlin(\"1.2\")\npublic fun Iterable.windowed(size: Int, step: Int = 1, partialWindows: Boolean = false): List> {\n checkWindowSizeStep(size, step)\n if (this is RandomAccess && this is List) {\n val thisSize = this.size\n val resultCapacity = thisSize / step + if (thisSize % step == 0) 0 else 1\n val result = ArrayList>(resultCapacity)\n var index = 0\n while (index in 0 until thisSize) {\n val windowSize = size.coerceAtMost(thisSize - index)\n if (windowSize < size && !partialWindows) break\n result.add(List(windowSize) { this[it + index] })\n index += step\n }\n return result\n }\n val result = ArrayList>()\n windowedIterator(iterator(), size, step, partialWindows, reuseBuffer = false).forEach {\n result.add(it)\n }\n return result\n}\n\n/**\n * Returns a list of results of applying the given [transform] function to\n * an each list representing a view over the window of the given [size]\n * sliding along this collection with the given [step].\n * \n * Note that the list passed to the [transform] function is ephemeral and is valid only inside that function.\n * You should not store it or allow it to escape in some way, unless you made a snapshot of it.\n * Several last lists may have fewer elements than the given [size].\n * \n * Both [size] and [step] must be positive and can be greater than the number of elements in this collection.\n * @param size the number of elements to take in each window\n * @param step the number of elements to move the window forward by on an each step, by default 1\n * @param partialWindows controls whether or not to keep partial windows in the end if any,\n * by default `false` which means partial windows won't be preserved\n * \n * @sample samples.collections.Sequences.Transformations.averageWindows\n */\n@SinceKotlin(\"1.2\")\npublic fun Iterable.windowed(size: Int, step: Int = 1, partialWindows: Boolean = false, transform: (List) -> R): List {\n checkWindowSizeStep(size, step)\n if (this is RandomAccess && this is List) {\n val thisSize = this.size\n val resultCapacity = thisSize / step + if (thisSize % step == 0) 0 else 1\n val result = ArrayList(resultCapacity)\n val window = MovingSubList(this)\n var index = 0\n while (index in 0 until thisSize) {\n val windowSize = size.coerceAtMost(thisSize - index)\n if (!partialWindows && windowSize < size) break\n window.move(index, index + windowSize)\n result.add(transform(window))\n index += step\n }\n return result\n }\n val result = ArrayList()\n windowedIterator(iterator(), size, step, partialWindows, reuseBuffer = true).forEach {\n result.add(transform(it))\n }\n return result\n}\n\n/**\n * Returns a list of pairs built from the elements of `this` collection and the [other] array with the same index.\n * The returned list has length of the shortest collection.\n * \n * @sample samples.collections.Iterables.Operations.zipIterable\n */\npublic infix fun Iterable.zip(other: Array): List> {\n return zip(other) { t1, t2 -> t1 to t2 }\n}\n\n/**\n * Returns a list of values built from the elements of `this` collection and the [other] array with the same index\n * using the provided [transform] function applied to each pair of elements.\n * The returned list has length of the shortest collection.\n * \n * @sample samples.collections.Iterables.Operations.zipIterableWithTransform\n */\npublic inline fun Iterable.zip(other: Array, transform: (a: T, b: R) -> V): List {\n val arraySize = other.size\n val list = ArrayList(minOf(collectionSizeOrDefault(10), arraySize))\n var i = 0\n for (element in this) {\n if (i >= arraySize) break\n list.add(transform(element, other[i++]))\n }\n return list\n}\n\n/**\n * Returns a list of pairs built from the elements of `this` collection and [other] collection with the same index.\n * The returned list has length of the shortest collection.\n * \n * @sample samples.collections.Iterables.Operations.zipIterable\n */\npublic infix fun Iterable.zip(other: Iterable): List> {\n return zip(other) { t1, t2 -> t1 to t2 }\n}\n\n/**\n * Returns a list of values built from the elements of `this` collection and the [other] collection with the same index\n * using the provided [transform] function applied to each pair of elements.\n * The returned list has length of the shortest collection.\n * \n * @sample samples.collections.Iterables.Operations.zipIterableWithTransform\n */\npublic inline fun Iterable.zip(other: Iterable, transform: (a: T, b: R) -> V): List {\n val first = iterator()\n val second = other.iterator()\n val list = ArrayList(minOf(collectionSizeOrDefault(10), other.collectionSizeOrDefault(10)))\n while (first.hasNext() && second.hasNext()) {\n list.add(transform(first.next(), second.next()))\n }\n return list\n}\n\n/**\n * Returns a list of pairs of each two adjacent elements in this collection.\n * \n * The returned list is empty if this collection contains less than two elements.\n * \n * @sample samples.collections.Collections.Transformations.zipWithNext\n */\n@SinceKotlin(\"1.2\")\npublic fun Iterable.zipWithNext(): List> {\n return zipWithNext { a, b -> a to b }\n}\n\n/**\n * Returns a list containing the results of applying the given [transform] function\n * to an each pair of two adjacent elements in this collection.\n * \n * The returned list is empty if this collection contains less than two elements.\n * \n * @sample samples.collections.Collections.Transformations.zipWithNextToFindDeltas\n */\n@SinceKotlin(\"1.2\")\npublic inline fun Iterable.zipWithNext(transform: (a: T, b: T) -> R): List {\n val iterator = iterator()\n if (!iterator.hasNext()) return emptyList()\n val result = mutableListOf()\n var current = iterator.next()\n while (iterator.hasNext()) {\n val next = iterator.next()\n result.add(transform(current, next))\n current = next\n }\n return result\n}\n\n/**\n * Appends the string from all the elements separated using [separator] and using the given [prefix] and [postfix] if supplied.\n * \n * If the collection could be huge, you can specify a non-negative value of [limit], in which case only the first [limit]\n * elements will be appended, followed by the [truncated] string (which defaults to \"...\").\n * \n * @sample samples.collections.Collections.Transformations.joinTo\n */\npublic fun Iterable.joinTo(buffer: A, separator: CharSequence = \", \", prefix: CharSequence = \"\", postfix: CharSequence = \"\", limit: Int = -1, truncated: CharSequence = \"...\", transform: ((T) -> CharSequence)? = null): A {\n buffer.append(prefix)\n var count = 0\n for (element in this) {\n if (++count > 1) buffer.append(separator)\n if (limit < 0 || count <= limit) {\n buffer.appendElement(element, transform)\n } else break\n }\n if (limit >= 0 && count > limit) buffer.append(truncated)\n buffer.append(postfix)\n return buffer\n}\n\n/**\n * Creates a string from all the elements separated using [separator] and using the given [prefix] and [postfix] if supplied.\n * \n * If the collection could be huge, you can specify a non-negative value of [limit], in which case only the first [limit]\n * elements will be appended, followed by the [truncated] string (which defaults to \"...\").\n * \n * @sample samples.collections.Collections.Transformations.joinToString\n */\npublic fun Iterable.joinToString(separator: CharSequence = \", \", prefix: CharSequence = \"\", postfix: CharSequence = \"\", limit: Int = -1, truncated: CharSequence = \"...\", transform: ((T) -> CharSequence)? = null): String {\n return joinTo(StringBuilder(), separator, prefix, postfix, limit, truncated, transform).toString()\n}\n\n/**\n * Returns this collection as an [Iterable].\n */\n@kotlin.internal.InlineOnly\npublic inline fun Iterable.asIterable(): Iterable {\n return this\n}\n\n/**\n * Creates a [Sequence] instance that wraps the original collection returning its elements when being iterated.\n * \n * @sample samples.collections.Sequences.Building.sequenceFromCollection\n */\npublic fun Iterable.asSequence(): Sequence {\n return Sequence { this.iterator() }\n}\n\n/**\n * Returns an average value of elements in the collection.\n */\n@kotlin.jvm.JvmName(\"averageOfByte\")\npublic fun Iterable.average(): Double {\n var sum: Double = 0.0\n var count: Int = 0\n for (element in this) {\n sum += element\n checkCountOverflow(++count)\n }\n return if (count == 0) Double.NaN else sum / count\n}\n\n/**\n * Returns an average value of elements in the collection.\n */\n@kotlin.jvm.JvmName(\"averageOfShort\")\npublic fun Iterable.average(): Double {\n var sum: Double = 0.0\n var count: Int = 0\n for (element in this) {\n sum += element\n checkCountOverflow(++count)\n }\n return if (count == 0) Double.NaN else sum / count\n}\n\n/**\n * Returns an average value of elements in the collection.\n */\n@kotlin.jvm.JvmName(\"averageOfInt\")\npublic fun Iterable.average(): Double {\n var sum: Double = 0.0\n var count: Int = 0\n for (element in this) {\n sum += element\n checkCountOverflow(++count)\n }\n return if (count == 0) Double.NaN else sum / count\n}\n\n/**\n * Returns an average value of elements in the collection.\n */\n@kotlin.jvm.JvmName(\"averageOfLong\")\npublic fun Iterable.average(): Double {\n var sum: Double = 0.0\n var count: Int = 0\n for (element in this) {\n sum += element\n checkCountOverflow(++count)\n }\n return if (count == 0) Double.NaN else sum / count\n}\n\n/**\n * Returns an average value of elements in the collection.\n */\n@kotlin.jvm.JvmName(\"averageOfFloat\")\npublic fun Iterable.average(): Double {\n var sum: Double = 0.0\n var count: Int = 0\n for (element in this) {\n sum += element\n checkCountOverflow(++count)\n }\n return if (count == 0) Double.NaN else sum / count\n}\n\n/**\n * Returns an average value of elements in the collection.\n */\n@kotlin.jvm.JvmName(\"averageOfDouble\")\npublic fun Iterable.average(): Double {\n var sum: Double = 0.0\n var count: Int = 0\n for (element in this) {\n sum += element\n checkCountOverflow(++count)\n }\n return if (count == 0) Double.NaN else sum / count\n}\n\n/**\n * Returns the sum of all elements in the collection.\n */\n@kotlin.jvm.JvmName(\"sumOfByte\")\npublic fun Iterable.sum(): Int {\n var sum: Int = 0\n for (element in this) {\n sum += element\n }\n return sum\n}\n\n/**\n * Returns the sum of all elements in the collection.\n */\n@kotlin.jvm.JvmName(\"sumOfShort\")\npublic fun Iterable.sum(): Int {\n var sum: Int = 0\n for (element in this) {\n sum += element\n }\n return sum\n}\n\n/**\n * Returns the sum of all elements in the collection.\n */\n@kotlin.jvm.JvmName(\"sumOfInt\")\npublic fun Iterable.sum(): Int {\n var sum: Int = 0\n for (element in this) {\n sum += element\n }\n return sum\n}\n\n/**\n * Returns the sum of all elements in the collection.\n */\n@kotlin.jvm.JvmName(\"sumOfLong\")\npublic fun Iterable.sum(): Long {\n var sum: Long = 0L\n for (element in this) {\n sum += element\n }\n return sum\n}\n\n/**\n * Returns the sum of all elements in the collection.\n */\n@kotlin.jvm.JvmName(\"sumOfFloat\")\npublic fun Iterable.sum(): Float {\n var sum: Float = 0.0f\n for (element in this) {\n sum += element\n }\n return sum\n}\n\n/**\n * Returns the sum of all elements in the collection.\n */\n@kotlin.jvm.JvmName(\"sumOfDouble\")\npublic fun Iterable.sum(): Double {\n var sum: Double = 0.0\n for (element in this) {\n sum += element\n }\n return sum\n}\n\n",null,null,null,null,null,null,null,null,"/*\n * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors.\n * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.\n */\n\n@file:kotlin.jvm.JvmMultifileClass\n@file:kotlin.jvm.JvmName(\"CollectionsKt\")\n\npackage kotlin.collections\n\nimport kotlin.random.Random\n\n/**\n * Removes a single instance of the specified element from this\n * collection, if it is present.\n *\n * Allows to overcome type-safety restriction of `remove` that requires to pass an element of type `E`.\n *\n * @return `true` if the element has been successfully removed; `false` if it was not present in the collection.\n */\n@kotlin.internal.InlineOnly\npublic inline fun <@kotlin.internal.OnlyInputTypes T> MutableCollection.remove(element: T): Boolean =\n @Suppress(\"UNCHECKED_CAST\") (this as MutableCollection).remove(element)\n\n/**\n * Removes all of this collection's elements that are also contained in the specified collection.\n\n * Allows to overcome type-safety restriction of `removeAll` that requires to pass a collection of type `Collection`.\n *\n * @return `true` if any of the specified elements was removed from the collection, `false` if the collection was not modified.\n */\n@kotlin.internal.InlineOnly\npublic inline fun <@kotlin.internal.OnlyInputTypes T> MutableCollection.removeAll(elements: Collection): Boolean =\n @Suppress(\"UNCHECKED_CAST\") (this as MutableCollection).removeAll(elements)\n\n/**\n * Retains only the elements in this collection that are contained in the specified collection.\n *\n * Allows to overcome type-safety restriction of `retainAll` that requires to pass a collection of type `Collection`.\n *\n * @return `true` if any element was removed from the collection, `false` if the collection was not modified.\n */\n@kotlin.internal.InlineOnly\npublic inline fun <@kotlin.internal.OnlyInputTypes T> MutableCollection.retainAll(elements: Collection): Boolean =\n @Suppress(\"UNCHECKED_CAST\") (this as MutableCollection).retainAll(elements)\n\n/**\n * Adds the specified [element] to this mutable collection.\n */\n@kotlin.internal.InlineOnly\npublic inline operator fun MutableCollection.plusAssign(element: T) {\n this.add(element)\n}\n\n/**\n * Adds all elements of the given [elements] collection to this mutable collection.\n */\n@kotlin.internal.InlineOnly\npublic inline operator fun MutableCollection.plusAssign(elements: Iterable) {\n this.addAll(elements)\n}\n\n/**\n * Adds all elements of the given [elements] array to this mutable collection.\n */\n@kotlin.internal.InlineOnly\npublic inline operator fun MutableCollection.plusAssign(elements: Array) {\n this.addAll(elements)\n}\n\n/**\n * Adds all elements of the given [elements] sequence to this mutable collection.\n */\n@kotlin.internal.InlineOnly\npublic inline operator fun MutableCollection.plusAssign(elements: Sequence) {\n this.addAll(elements)\n}\n\n/**\n * Removes a single instance of the specified [element] from this mutable collection.\n */\n@kotlin.internal.InlineOnly\npublic inline operator fun MutableCollection.minusAssign(element: T) {\n this.remove(element)\n}\n\n/**\n * Removes all elements contained in the given [elements] collection from this mutable collection.\n */\n@kotlin.internal.InlineOnly\npublic inline operator fun MutableCollection.minusAssign(elements: Iterable) {\n this.removeAll(elements)\n}\n\n/**\n * Removes all elements contained in the given [elements] array from this mutable collection.\n */\n@kotlin.internal.InlineOnly\npublic inline operator fun MutableCollection.minusAssign(elements: Array) {\n this.removeAll(elements)\n}\n\n/**\n * Removes all elements contained in the given [elements] sequence from this mutable collection.\n */\n@kotlin.internal.InlineOnly\npublic inline operator fun MutableCollection.minusAssign(elements: Sequence) {\n this.removeAll(elements)\n}\n\n/**\n * Adds all elements of the given [elements] collection to this [MutableCollection].\n */\npublic fun MutableCollection.addAll(elements: Iterable): Boolean {\n when (elements) {\n is Collection -> return addAll(elements)\n else -> {\n var result: Boolean = false\n for (item in elements)\n if (add(item)) result = true\n return result\n }\n }\n}\n\n/**\n * Adds all elements of the given [elements] sequence to this [MutableCollection].\n */\npublic fun MutableCollection.addAll(elements: Sequence): Boolean {\n var result: Boolean = false\n for (item in elements) {\n if (add(item)) result = true\n }\n return result\n}\n\n/**\n * Adds all elements of the given [elements] array to this [MutableCollection].\n */\npublic fun MutableCollection.addAll(elements: Array): Boolean {\n return addAll(elements.asList())\n}\n\n/**\n * Removes all elements from this [MutableCollection] that are also contained in the given [elements] collection.\n */\npublic fun MutableCollection.removeAll(elements: Iterable): Boolean {\n return removeAll(elements.convertToSetForSetOperationWith(this))\n}\n\n/**\n * Removes all elements from this [MutableCollection] that are also contained in the given [elements] sequence.\n */\npublic fun MutableCollection.removeAll(elements: Sequence): Boolean {\n val set = elements.convertToSetForSetOperation()\n return set.isNotEmpty() && removeAll(set)\n}\n\n/**\n * Removes all elements from this [MutableCollection] that are also contained in the given [elements] array.\n */\npublic fun MutableCollection.removeAll(elements: Array): Boolean {\n return elements.isNotEmpty() && removeAll(elements.convertToSetForSetOperation())\n}\n\n/**\n * Retains only elements of this [MutableCollection] that are contained in the given [elements] collection.\n */\npublic fun MutableCollection.retainAll(elements: Iterable): Boolean {\n return retainAll(elements.convertToSetForSetOperationWith(this))\n}\n\n/**\n * Retains only elements of this [MutableCollection] that are contained in the given [elements] array.\n */\npublic fun MutableCollection.retainAll(elements: Array): Boolean {\n if (elements.isNotEmpty())\n return retainAll(elements.convertToSetForSetOperation())\n else\n return retainNothing()\n}\n\n/**\n * Retains only elements of this [MutableCollection] that are contained in the given [elements] sequence.\n */\npublic fun MutableCollection.retainAll(elements: Sequence): Boolean {\n val set = elements.convertToSetForSetOperation()\n if (set.isNotEmpty())\n return retainAll(set)\n else\n return retainNothing()\n}\n\nprivate fun MutableCollection<*>.retainNothing(): Boolean {\n val result = isNotEmpty()\n clear()\n return result\n}\n\n\n/**\n * Removes all elements from this [MutableIterable] that match the given [predicate].\n *\n * @return `true` if any element was removed from this collection, or `false` when no elements were removed and collection was not modified.\n */\npublic fun MutableIterable.removeAll(predicate: (T) -> Boolean): Boolean = filterInPlace(predicate, true)\n\n/**\n * Retains only elements of this [MutableIterable] that match the given [predicate].\n *\n * @return `true` if any element was removed from this collection, or `false` when all elements were retained and collection was not modified.\n */\npublic fun MutableIterable.retainAll(predicate: (T) -> Boolean): Boolean = filterInPlace(predicate, false)\n\nprivate fun MutableIterable.filterInPlace(predicate: (T) -> Boolean, predicateResultToRemove: Boolean): Boolean {\n var result = false\n with(iterator()) {\n while (hasNext())\n if (predicate(next()) == predicateResultToRemove) {\n remove()\n result = true\n }\n }\n return result\n}\n\n\n/**\n * Removes the element at the specified [index] from this list.\n * In Kotlin one should use the [MutableList.removeAt] function instead.\n */\n@Deprecated(\"Use removeAt(index) instead.\", ReplaceWith(\"removeAt(index)\"), level = DeprecationLevel.ERROR)\n@kotlin.internal.InlineOnly\npublic inline fun MutableList.remove(index: Int): T = removeAt(index)\n\n/**\n * Removes the first element from this mutable list and returns that removed element, or throws [NoSuchElementException] if this list is empty.\n */\n@SinceKotlin(\"1.4\")\n@WasExperimental(ExperimentalStdlibApi::class)\npublic fun MutableList.removeFirst(): T = if (isEmpty()) throw NoSuchElementException(\"List is empty.\") else removeAt(0)\n\n/**\n * Removes the first element from this mutable list and returns that removed element, or returns `null` if this list is empty.\n */\n@SinceKotlin(\"1.4\")\n@WasExperimental(ExperimentalStdlibApi::class)\npublic fun MutableList.removeFirstOrNull(): T? = if (isEmpty()) null else removeAt(0)\n\n/**\n * Removes the last element from this mutable list and returns that removed element, or throws [NoSuchElementException] if this list is empty.\n */\n@SinceKotlin(\"1.4\")\n@WasExperimental(ExperimentalStdlibApi::class)\npublic fun MutableList.removeLast(): T = if (isEmpty()) throw NoSuchElementException(\"List is empty.\") else removeAt(lastIndex)\n\n/**\n * Removes the last element from this mutable list and returns that removed element, or returns `null` if this list is empty.\n */\n@SinceKotlin(\"1.4\")\n@WasExperimental(ExperimentalStdlibApi::class)\npublic fun MutableList.removeLastOrNull(): T? = if (isEmpty()) null else removeAt(lastIndex)\n\n/**\n * Removes all elements from this [MutableList] that match the given [predicate].\n *\n * @return `true` if any element was removed from this collection, or `false` when no elements were removed and collection was not modified.\n */\npublic fun MutableList.removeAll(predicate: (T) -> Boolean): Boolean = filterInPlace(predicate, true)\n\n/**\n * Retains only elements of this [MutableList] that match the given [predicate].\n *\n * @return `true` if any element was removed from this collection, or `false` when all elements were retained and collection was not modified.\n */\npublic fun MutableList.retainAll(predicate: (T) -> Boolean): Boolean = filterInPlace(predicate, false)\n\nprivate fun MutableList.filterInPlace(predicate: (T) -> Boolean, predicateResultToRemove: Boolean): Boolean {\n if (this !is RandomAccess)\n return (this as MutableIterable).filterInPlace(predicate, predicateResultToRemove)\n\n var writeIndex: Int = 0\n for (readIndex in 0..lastIndex) {\n val element = this[readIndex]\n if (predicate(element) == predicateResultToRemove)\n continue\n\n if (writeIndex != readIndex)\n this[writeIndex] = element\n\n writeIndex++\n }\n if (writeIndex < size) {\n for (removeIndex in lastIndex downTo writeIndex)\n removeAt(removeIndex)\n\n return true\n } else {\n return false\n }\n}\n",null,"/*\n * Copyright 2010-2018 JetBrains s.r.o. and Kotlin Programming Language contributors.\n * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.\n */\n\n@file:kotlin.jvm.JvmMultifileClass\n@file:kotlin.jvm.JvmName(\"StandardKt\")\npackage kotlin\n\nimport kotlin.contracts.*\n\n/**\n * An exception is thrown to indicate that a method body remains to be implemented.\n */\npublic class NotImplementedError(message: String = \"An operation is not implemented.\") : Error(message)\n\n/**\n * Always throws [NotImplementedError] stating that operation is not implemented.\n */\n\n@kotlin.internal.InlineOnly\npublic inline fun TODO(): Nothing = throw NotImplementedError()\n\n/**\n * Always throws [NotImplementedError] stating that operation is not implemented.\n *\n * @param reason a string explaining why the implementation is missing.\n */\n@kotlin.internal.InlineOnly\npublic inline fun TODO(reason: String): Nothing = throw NotImplementedError(\"An operation is not implemented: $reason\")\n\n\n\n/**\n * Calls the specified function [block] and returns its result.\n *\n * For detailed usage information see the documentation for [scope functions](https://kotlinlang.org/docs/reference/scope-functions.html#run).\n */\n@kotlin.internal.InlineOnly\npublic inline fun run(block: () -> R): R {\n contract {\n callsInPlace(block, InvocationKind.EXACTLY_ONCE)\n }\n return block()\n}\n\n/**\n * Calls the specified function [block] with `this` value as its receiver and returns its result.\n *\n * For detailed usage information see the documentation for [scope functions](https://kotlinlang.org/docs/reference/scope-functions.html#run).\n */\n@kotlin.internal.InlineOnly\npublic inline fun T.run(block: T.() -> R): R {\n contract {\n callsInPlace(block, InvocationKind.EXACTLY_ONCE)\n }\n return block()\n}\n\n/**\n * Calls the specified function [block] with the given [receiver] as its receiver and returns its result.\n *\n * For detailed usage information see the documentation for [scope functions](https://kotlinlang.org/docs/reference/scope-functions.html#with).\n */\n@kotlin.internal.InlineOnly\npublic inline fun with(receiver: T, block: T.() -> R): R {\n contract {\n callsInPlace(block, InvocationKind.EXACTLY_ONCE)\n }\n return receiver.block()\n}\n\n/**\n * Calls the specified function [block] with `this` value as its receiver and returns `this` value.\n *\n * For detailed usage information see the documentation for [scope functions](https://kotlinlang.org/docs/reference/scope-functions.html#apply).\n */\n@kotlin.internal.InlineOnly\npublic inline fun T.apply(block: T.() -> Unit): T {\n contract {\n callsInPlace(block, InvocationKind.EXACTLY_ONCE)\n }\n block()\n return this\n}\n\n/**\n * Calls the specified function [block] with `this` value as its argument and returns `this` value.\n *\n * For detailed usage information see the documentation for [scope functions](https://kotlinlang.org/docs/reference/scope-functions.html#also).\n */\n@kotlin.internal.InlineOnly\n@SinceKotlin(\"1.1\")\npublic inline fun T.also(block: (T) -> Unit): T {\n contract {\n callsInPlace(block, InvocationKind.EXACTLY_ONCE)\n }\n block(this)\n return this\n}\n\n/**\n * Calls the specified function [block] with `this` value as its argument and returns its result.\n *\n * For detailed usage information see the documentation for [scope functions](https://kotlinlang.org/docs/reference/scope-functions.html#let).\n */\n@kotlin.internal.InlineOnly\npublic inline fun T.let(block: (T) -> R): R {\n contract {\n callsInPlace(block, InvocationKind.EXACTLY_ONCE)\n }\n return block(this)\n}\n\n/**\n * Returns `this` value if it satisfies the given [predicate] or `null`, if it doesn't.\n *\n * For detailed usage information see the documentation for [scope functions](https://kotlinlang.org/docs/reference/scope-functions.html#takeif-and-takeunless).\n */\n@kotlin.internal.InlineOnly\n@SinceKotlin(\"1.1\")\npublic inline fun T.takeIf(predicate: (T) -> Boolean): T? {\n contract {\n callsInPlace(predicate, InvocationKind.EXACTLY_ONCE)\n }\n return if (predicate(this)) this else null\n}\n\n/**\n * Returns `this` value if it _does not_ satisfy the given [predicate] or `null`, if it does.\n *\n * For detailed usage information see the documentation for [scope functions](https://kotlinlang.org/docs/reference/scope-functions.html#takeif-and-takeunless).\n */\n@kotlin.internal.InlineOnly\n@SinceKotlin(\"1.1\")\npublic inline fun T.takeUnless(predicate: (T) -> Boolean): T? {\n contract {\n callsInPlace(predicate, InvocationKind.EXACTLY_ONCE)\n }\n return if (!predicate(this)) this else null\n}\n\n/**\n * Executes the given function [action] specified number of [times].\n *\n * A zero-based index of current iteration is passed as a parameter to [action].\n *\n * @sample samples.misc.ControlFlow.repeat\n */\n@kotlin.internal.InlineOnly\npublic inline fun repeat(times: Int, action: (Int) -> Unit) {\n contract { callsInPlace(action) }\n\n for (index in 0 until times) {\n action(index)\n }\n}\n",null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAwDA,0C;;;;;;;;oBCtCA,qC;uBCmEA,+C;;;WC+f0B,gB;;;;2BChiB1B,mD;;;;;;;kBF0BA,0C;;;;;;gCGu7CA,yD;yBAAA,gD;eApGA,wC;2BLx6BA,oD;oBMva+B,+B;;;;;;;;iCClCI,qB;;;WC4HU,e;WACF,sB;WACQ,sB;eA9Gf,0B;YA2CP,uB;;;;eCfQ,0B;eAED,0B;eAEC,0B;eAEA,0B;eAEI,0B;eAEL,0B;eAEA,0B;eAEC,0B;eAEA,0B;eAEF,0B;gBCMW,2B;gBAEW,2B;gBAEH,2B;gBAES,2B;gBAEP,2B;gBAEJ,2B;WC7CF,sB;YASa,uB;YAGG,uB;YAGf,uB;aAGA,wB;aAGA,wB;aAGI,wB;cAGA,yB;cAGU,yB;cAGA,yB;cAGF,yB;eAGA,0B;eAGG,0B;eAGA,0B;gBAGT,2B;gBAGA,2B;gBAGA,2B;iBAGE,4B;iBAGA,4B;iBAGA,4B;iBAGH,4B;kBAIA,6B;kBAIY,6B;kBAGhB,6B;mBAGA,8B;mBAGA,8B;mBAGD,8B;oBAGA,+B;oBAGA,+B;oBAGE,qB;oBAIL,qB;qBAGE,qB;qBAGD,qB;qBAGG,sB;sBAGE,sB;sBAGE,sB;sBAMU,uB;uBAGA,uB;uBAGA,uB;uBAIR,wB;uBAGA,wB;wBAGA,wB;wBAGA,wB;wBAGM,yB;yBAGA,yB;yBAGP,yB;yBAGR,0B;0BAGA,0B;wBAQjC,+B;uBA2BA,8B;sBAyBgD,8B;sBA2BhD,+B;wBA6CJ,+B;oBAOmD,2B;YCvS9B,uB;;;;;;;;ECtEjC,0C;IAEI,SAAS,S;IACT,EAAG,iBAAQ,mCAAR,C;IACH,EAAG,iBAAQ,mCAAR,C;IACH,EAAG,iBAAQ,mCAAR,C;IACH,EAAG,iBAAQ,mCAAR,C;IACH,EAAG,iBAAQ,mCAAR,C;IACH,EAAG,iBAAQ,mCAAR,C;IACH,EAAG,iBAAQ,mCAAR,C;IACH,EAAG,iBAAQ,mCAAR,C;IACH,EAAG,iBAAQ,mCAAR,C;IACH,EAAG,iBAAQ,mCAAR,C;IACH,EAAG,iBAAQ,mCAAR,C;IACH,EAAG,iBAAQ,mCAAR,C;IACH,EAAG,iBAAQ,mCAAR,C;IACH,EAAG,iBAAQ,mCAAR,C;IACH,EAAG,iBAAQ,mCAAR,C;IACH,EAAG,iBAAQ,mCAAR,C;IACH,EAAG,iBAAQ,mCAAR,C;IACH,EAAG,iBAAQ,mCAAR,C;IACH,EAAG,iBAAQ,mCAAR,C;IACH,EAAG,iBAAQ,mCAAR,C;IACH,EAAG,iBAAQ,mCAAR,C;IACH,EAAG,iBAAQ,mCAAR,C;IACH,EAAG,iBAAQ,mCAAR,C;IACH,EAAG,iBAAQ,mCAAR,C;IACH,EAAG,iBAAQ,oCAAR,C;IACH,EAAG,iBAAQ,oCAAR,C;IACH,EAAG,iBAAQ,oCAAR,C;IACH,EAAG,iBAAQ,oCAAR,C;IACH,EAAG,iBAAQ,mCAAR,C;IACH,EAAG,iBAAQ,mCAAR,C;IACH,EAAG,iBAAQ,mCAAR,C;IACH,EAAG,iBAAQ,mCAAR,C;IACH,EAAG,iBAAQ,mCAAR,C;IACH,EAAG,iBAAQ,mCAAR,C;IACH,EAAG,iBAAQ,mCAAR,C;IACH,EAAG,iBAAQ,mCAAR,C;IACH,EAAG,iBAAQ,mCAAR,C;IACH,EAAG,iBAAQ,mCAAR,C;IACH,EAAG,iBAAQ,mCAAR,C;IACH,EAAG,iBAAQ,mCAAR,C;IACH,EAAG,iBAAQ,mCAAR,C;IACH,EAAG,iBAAQ,mCAAR,C;IACH,EAAG,iBAAQ,mCAAR,C;IACH,EAAG,iBAAQ,mCAAR,C;IACH,EAAG,iBAAQ,kCAAR,C;IACH,EAAG,iBAAQ,kCAAR,C;IACH,EAAG,iBAAQ,kCAAR,C;IACH,EAAG,iBAAQ,kCAAR,C;IACH,EAAG,iBAAQ,kCAAR,C;IACH,EAAG,iBAAQ,kCAAR,C;IACH,EAAG,iBAAQ,kCAAR,C;IACH,EAAG,iBAAQ,kCAAR,C;IACH,EAAG,iBAAQ,mCAAR,C;IACH,EAAG,iBAAQ,mCAAR,C;IACH,EAAG,iBAAQ,mCAAR,C;IACH,EAAG,iBAAQ,mCAAR,C;IACH,EAAG,iBAAQ,oCAAR,C;IACH,EAAG,iBAAQ,oCAAR,C;IACH,EAAG,iBAAQ,oCAAR,C;IACH,EAAG,iBAAQ,oCAAR,C;IACH,EAAG,iBAAQ,oCAAR,C;IACH,EAAG,iBAAQ,oCAAR,C;IACH,EAAG,iBAAQ,oCAAR,C;IACH,EAAG,iBAAQ,oCAAR,C;IACH,EAAG,iBAAQ,mCAAR,C;IACH,EAAG,iBAAQ,mCAAR,C;IACH,EAAG,iBAAQ,mCAAR,C;IACH,EAAG,iBAAQ,mCAAR,C;IACH,EAAG,iBAAQ,kCAAR,C;IACH,EAAG,iBAAQ,kCAAR,C;IACH,EAAG,iBAAQ,kCAAR,C;IACH,EAAG,iBAAQ,kCAAR,C;IACH,EAAG,iBAAQ,kCAAR,C;IACH,EAAG,iBAAQ,kCAAR,C;IACH,EAAG,iBAAQ,kCAAR,C;IACH,EAAG,iBAAQ,kCAAR,C;IACH,EAAG,iBAAQ,kCAAR,C;IACH,EAAG,iBAAQ,kCAAR,C;IACH,EAAG,iBAAQ,kCAAR,C;IACH,EAAG,iBAAQ,kCAAR,C;IACH,EAAG,iBAAQ,kCAAR,C;IACH,EAAG,iBAAQ,kCAAR,C;IACH,EAAG,iBAAQ,kCAAR,C;IACH,EAAG,iBAAQ,kCAAR,C;IACH,EAAG,iBAAQ,kCAAR,C;IACH,EAAG,iBAAQ,kCAAR,C;IACH,EAAG,iBAAQ,kCAAR,C;IACH,EAAG,iBAAQ,kCAAR,C;IACH,EAAG,iBAAQ,mCAAR,C;IACH,EAAG,iBAAQ,mCAAR,C;IACH,EAAG,iBAAQ,mCAAR,C;IACH,EAAG,iBAAQ,mCAAR,C;IACH,EAAG,iBAAQ,mCAAR,C;IACH,EAAG,iBAAQ,mCAAR,C;IACH,EAAG,iBAAQ,mCAAR,C;IACH,EAAG,iBAAQ,mCAAR,C;IACH,EAAG,iBAAQ,mCAAR,C;IACH,EAAG,iBAAQ,mCAAR,C;IACH,EAAG,iBAAQ,mCAAR,C;IACH,EAAG,iBAAQ,mCAAR,C;IACH,EAAG,iBAAQ,mCAAR,C;IACH,EAAG,iBAAQ,mCAAR,C;IACH,EAAG,iBAAQ,mCAAR,C;IACH,EAAG,iBAAQ,mCAAR,C;IACH,EAAG,iBAAQ,mCAAR,C;IACH,EAAG,iBAAQ,mCAAR,C;IACH,EAAG,iBAAQ,mCAAR,C;IACH,EAAG,iBAAQ,mCAAR,C;IACH,EAAG,iBAAQ,mCAAR,C;IACH,EAAG,iBAAQ,mCAAR,C;IACH,EAAG,iBAAQ,mCAAR,C;IACH,EAAG,iBAAQ,mCAAR,C;IACH,EAAG,iBAAQ,mCAAR,C;IACH,EAAG,iBAAQ,mCAAR,C;IACH,EAAG,iBAAQ,mCAAR,C;IACH,EAAG,iBAAQ,mCAAR,C;IACH,EAAG,iBAAQ,mCAAR,C;IACH,EAAG,iBAAQ,mCAAR,C;IACH,EAAG,iBAAQ,mCAAR,C;IACH,EAAG,iBAAQ,mCAAR,C;IACH,EAAG,iBAAQ,mCAAR,C;IACH,EAAG,iBAAQ,mCAAR,C;IACH,EAAG,iBAAQ,mCAAR,C;IACH,EAAG,iBAAQ,mCAAR,C;IACH,EAAG,iBAAQ,mCAAR,C;IACH,EAAG,iBAAQ,mCAAR,C;IACH,EAAG,iBAAQ,mCAAR,C;IACH,EAAG,iBAAQ,mCAAR,C;IACH,EAAG,iBAAQ,mCAAR,C;IACH,EAAG,iBAAQ,mCAAR,C;IACH,EAAG,iBAAQ,mCAAR,C;IACH,EAAG,iBAAQ,mCAAR,C;IACH,EAAG,iBAAQ,mCAAR,C;IACH,EAAG,iBAAQ,mCAAR,C;IACH,EAAG,iBAAQ,mCAAR,C;IACH,EAAG,iBAAQ,mCAAR,C;IACH,EAAG,iBAAQ,mCAAR,C;IACH,EAAG,iBAAQ,mCAAR,C;IACH,EAAG,iBAAQ,mCAAR,C;IACH,EAAG,iBAAQ,mCAAR,C;IACH,EAAG,iBAAQ,mCAAR,C;IACH,EAAG,iBAAQ,mCAAR,C;IACH,EAAG,iBAAQ,mCAAR,C;IACH,EAAG,iBAAQ,mCAAR,C;IACH,EAAG,iBAAQ,mCAAR,C;IACH,EAAG,iBAAQ,mCAAR,C;IACH,EAAG,iBAAQ,mCAAR,C;IACH,EAAG,iBAAQ,mCAAR,C;IACH,EAAG,iBAAQ,mCAAR,C;IACH,EAAG,iBAAQ,mCAAR,C;IACH,EAAG,iBAAQ,mCAAR,C;IACH,EAAG,iBAAQ,mCAAR,C;IACH,EAAG,iBAAQ,oCAAR,C;IACH,EAAG,iBAAQ,oCAAR,C;IACH,EAAG,iBAAQ,oCAAR,C;IACH,EAAG,iBAAQ,oCAAR,C;IACH,EAAG,iBAAQ,oCAAR,C;IACH,EAAG,iBAAQ,oCAAR,C;IACH,EAAG,iBAAQ,oCAAR,C;IACH,EAAG,iBAAQ,oCAAR,C;IACH,EAAG,iBAAQ,oCAAR,C;IACH,EAAG,iBAAQ,oCAAR,C;IACH,EAAG,iBAAQ,oCAAR,C;IACH,EAAG,iBAAQ,oCAAR,C;IACH,EAAG,iBAAQ,oCAAR,C;IACH,EAAG,iBAAQ,oCAAR,C;IACH,EAAG,iBAAQ,oCAAR,C;IACH,EAAG,iBAAQ,oCAAR,C;IACH,EAAG,iBAAQ,oCAAR,C;IACH,EAAG,iBAAQ,oCAAR,C;IACH,EAAG,iBAAQ,oCAAR,C;IACH,EAAG,iBAAQ,oCAAR,C;IACH,EAAG,iBAAQ,oCAAR,C;IACH,EAAG,iBAAQ,oCAAR,C;IACH,EAAG,iBAAQ,oCAAR,C;IACH,EAAG,iBAAQ,oCAAR,C;IACH,EAAG,iBAAQ,oCAAR,C;IACH,EAAG,iBAAQ,oCAAR,C;IACH,EAAG,iBAAQ,oCAAR,C;IACH,EAAG,iBAAQ,oCAAR,C;IACH,EAAG,iBAAQ,oCAAR,C;IACH,EAAG,iBAAQ,oCAAR,C;IACH,EAAG,iBAAQ,oCAAR,C;IACH,EAAG,iBAAQ,oCAAR,C;IACH,EAAG,iBAAQ,oCAAR,C;IACH,EAAG,iBAAQ,oCAAR,C;IACH,EAAG,iBAAQ,oCAAR,C;IACH,EAAG,iBAAQ,oCAAR,C;IACH,EAAG,iBAAQ,oCAAR,C;IACH,EAAG,iBAAQ,oCAAR,C;IACH,EAAG,iBAAQ,oCAAR,C;IACH,EAAG,iBAAQ,oCAAR,C;IACH,EAAG,iBAAQ,oCAAR,C;IACH,EAAG,iBAAQ,oCAAR,C;IACH,EAAG,iBAAQ,oCAAR,C;IACH,EAAG,iBAAQ,oCAAR,C;IACH,EAAG,iBAAQ,mCAAR,C;IACH,EAAG,iBAAQ,mCAAR,C;IACH,EAAG,iBAAQ,mCAAR,C;IACH,EAAG,iBAAQ,mCAAR,C;IACH,EAAG,iBAAQ,oCAAR,C;IACH,EAAG,iBAAQ,oCAAR,C;IACH,EAAG,iBAAQ,oCAAR,C;IACH,EAAG,iBAAQ,oCAAR,C;IACH,EAAG,iBAAQ,oCAAR,C;IACH,EAAG,iBAAQ,oCAAR,C;IACH,EAAG,iBAAQ,oCAAR,C;IACH,EAAG,iBAAQ,oCAAR,C;IACH,EAAG,iBAAQ,oCAAR,C;IACH,EAAG,iBAAQ,oCAAR,C;IACH,EAAG,iBAAQ,oCAAR,C;IACH,EAAG,iBAAQ,oCAAR,C;IACH,EAAG,iBAAQ,oCAAR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7ZC,WAAI,UAAJ,C;MD+ZD,iBACI,+K;MADJ,SC/ZC,WAAI,UAAJ,C;MDiaD,iBACI,4yC;MADJ,SCjaC,WAAI,UAAJ,C;MDmaD,iBACI,iO;MADJ,SCnaC,WAAI,UAAJ,C;MDqaD,iBACI,6I;MADJ,SCraC,WAAI,UAAJ,C;MDuaD,iBACI,8H;MADJ,SCvaC,WAAI,UAAJ,C;MDyaD,iBACI,4S;MADJ,SCzaC,WAAI,UAAJ,C;MD2aD,iBACI,4S;MADJ,SC3aC,WAAI,UAAJ,C;MD6aD,iBACI,4S;MADJ,SC7aC,WAAI,UAAJ,C;MD+aD,iBACI,4N;MADJ,SC/aC,WAAI,UAAJ,C;MDibD,iBACI,67B;MADJ,SCjbC,WAAI,UAAJ,C;MDmbD,iBACI,uP;MADJ,SCnbC,WAAI,UAAJ,C;MDqbD,iBACI,2J;MADJ,SCrbC,WAAI,UAAJ,C;MDubD,iBACI,kI;MADJ,SCvbC,WAAI,UAAJ,C;MDybD,iBACI,sR;MADJ,SCzbC,WAAI,UAAJ,C;MD2bD,iBACI,sR;MADJ,SC3bC,WAAI,UAAJ,C;MD6bD,iBACI,sR;MADJ,SC7bC,WAAI,UAAJ,C;MD+bD,iBACI,kK;MADJ,SC/bC,WAAI,UAAJ,C;MDicD,iBACI,gyB;MADJ,SCjcC,WAAI,UAAJ,C;MDmcD,iBACI,gP;MADJ,SCncC,WAAI,UAAJ,C;MDqcD,iBACI,mJ;MADJ,SCrcC,WAAI,UAAJ,C;MDucD,iBACI,4H;MADJ,SCvcC,WAAI,UAAJ,C;MDycD,iBACI,wR;MADJ,SCzcC,WAAI,UAAJ,C;MD2cD,iBACI,wR;MADJ,SC3cC,WAAI,UAAJ,C;MD6cD,iBACI,wR;MADJ,SC7cC,WAAI,UAAJ,C;MD+cD,iBACI,6J;MADJ,SC/cC,WAAI,UAAJ,C;MDidD,iBACI,stD;MADJ,SCjdC,WAAI,UAAJ,C;MDmdD,iBACI,yO;MADJ,SCndC,WAAI,UAAJ,C;MDqdD,iBACI,2I;MADJ,SCrdC,WAAI,UAAJ,C;MDudD,iBACI,sH;MADJ,SCvdC,WAAI,UAAJ,C;MDydD,iBACI,qR;MADJ,SCzdC,WAAI,UAAJ,C;MD2dD,iBACI,qR;MADJ,SC3dC,WAAI,UAAJ,C;MD6dD,iBACI,qR;MADJ,SC7dC,WAAI,UAAJ,C;MD+dD,iBACI,oJ;MADJ,SC/dC,WAAI,UAAJ,C;MDieD,iBACI,gnE;MADJ,SCjeC,WAAI,UAAJ,C;MDmeD,iBACI,gO;MADJ,SCneC,WAAI,UAAJ,C;MDqeD,iBACI,2I;MADJ,SCreC,WAAI,UAAJ,C;MDueD,iBACI,4H;MADJ,SCveC,WAAI,UAAJ,C;MDyeD,iBACI,mT;MADJ,SCzeC,WAAI,UAAJ,C;MD2eD,iBACI,mT;MADJ,SC3eC,WAAI,UAAJ,C;MD6eD,iBACI,mT;MADJ,SC7eC,WAAI,UAAJ,C;MD+eD,iBACI,yN;MADJ,SC/eC,WAAI,UAAJ,C;MDifD,iBACI,kyD;MADJ,SCjfC,WAAI,UAAJ,C;MDmfD,iBACI,+N;MADJ,SCnfC,WAAI,UAAJ,C;MDqfD,iBACI,yI;MADJ,SCrfC,WAAI,UAAJ,C;MDufD,iBACI,0H;MADJ,SCvfC,WAAI,UAAJ,C;MDyfD,iBACI,mT;MADJ,SCzfC,WAAI,UAAJ,C;MD2fD,iBACI,mT;MADJ,SC3fC,WAAI,UAAJ,C;MD6fD,iBACI,mT;MADJ,SC7fC,WAAI,UAAJ,C;MD+fD,iBACI,iN;MADJ,SC/fC,WAAI,UAAJ,C;MDigBD,iBACI,orB;MADJ,SCjgBC,WAAI,UAAJ,C;MDmgBD,iBACI,8N;MADJ,SCngBC,WAAI,UAAJ,C;MDqgBD,iBACI,uI;MADJ,SCrgBC,WAAI,UAAJ,C;MDugBD,iBACI,wH;MADJ,SCvgBC,WAAI,UAAJ,C;MDygBD,iBACI,6S;MADJ,SCzgBC,WAAI,UAAJ,C;MD2gBD,iBACI,6S;MADJ,SC3gBC,WAAI,UAAJ,C;MD6gBD,iBACI,6S;MADJ,SC7gBC,WAAI,UAAJ,C;MD+gBD,iBACI,yM;MADJ,SC/gBC,WAAI,UAAJ,C;MDihBD,iBACI,qiE;MADJ,SCjhBC,WAAI,UAAJ,C;MDmhBD,iBACI,mQ;MADJ,SCnhBC,WAAI,UAAJ,C;MDqhBD,iBACI,+L;MADJ,SCrhBC,WAAI,UAAJ,C;MDuhBD,iBACI,0K;MADJ,SCvhBC,WAAI,UAAJ,C;MDyhBD,iBACI,+S;MADJ,SCzhBC,WAAI,UAAJ,C;MD2hBD,iBACI,+S;MADJ,SC3hBC,WAAI,UAAJ,C;MD6hBD,iBACI,+S;MADJ,SC7hBC,WAAI,UAAJ,C;MD+hBD,iBACI,0U;MADJ,SC/hBC,WAAI,UAAJ,C;MDiiBD,iBACI,o2B;MADJ,SCjiBC,WAAI,UAAJ,C;MDmiBD,iBACI,+P;MADJ,SCniBC,WAAI,UAAJ,C;MDqiBD,iBACI,uL;MADJ,SCriBC,WAAI,UAAJ,C;MDuiBD,iBACI,kK;MADJ,SCviBC,WAAI,UAAJ,C;MDyiBD,iBACI,2S;MADJ,SCziBC,WAAI,UAAJ,C;MD2iBD,iBACI,2S;MADJ,SC3iBC,WAAI,UAAJ,C;MD6iBD,iBACI,2S;MADJ,SC7iBC,WAAI,UAAJ,C;MD+iBD,iBACI,8S;MADJ,SC/iBC,WAAI,UAAJ,C;MDijBD,iBACI,s7B;MADJ,SCjjBC,WAAI,UAAJ,C;MDmjBD,iBACI,gQ;MADJ,SCnjBC,WAAI,UAAJ,C;MDqjBD,iBACI,yL;MADJ,SCrjBC,WAAI,UAAJ,C;MDujBD,iBACI,oK;MADJ,SCvjBC,WAAI,UAAJ,C;MDyjBD,iBACI,4S;MADJ,SCzjBC,WAAI,UAAJ,C;MD2jBD,kBACI,4S;MADJ,SC3jBC,WAAI,WAAJ,C;MD6jBD,kBACI,4S;MADJ,SC7jBC,WAAI,WAAJ,C;MD+jBD,kBACI,qT;MADJ,SC/jBC,WAAI,WAAJ,C;MDikBD,kBACI,qhC;MADJ,SCjkBC,WAAI,WAAJ,C;MDmkBD,kBACI,6O;MADJ,SCnkBC,WAAI,WAAJ,C;MDqkBD,kBACI,+J;MADJ,SCrkBC,WAAI,WAAJ,C;MDukBD,kBACI,8I;MADJ,SCvkBC,WAAI,WAAJ,C;MDykBD,kBACI,qU;MADJ,SCzkBC,WAAI,WAAJ,C;MD2kBD,kBACI,qU;MADJ,SC3kBC,WAAI,WAAJ,C;MD6kBD,kBACI,qU;MADJ,SC7kBC,WAAI,WAAJ,C;MD+kBD,kBACI,kR;MADJ,SC/kBC,WAAI,WAAJ,C;MDilBD,kBACI,shC;MADJ,SCjlBC,WAAI,WAAJ,C;MDmlBD,kBACI,iO;MADJ,SCnlBC,WAAI,WAAJ,C;MDqlBD,kBACI,6I;MADJ,SCrlBC,WAAI,WAAJ,C;MDulBD,kBACI,8H;MADJ,SCvlBC,WAAI,WAAJ,C;MDylBD,kBACI,mT;MADJ,SCzlBC,WAAI,WAAJ,C;MD2lBD,kBACI,mT;MADJ,SC3lBC,WAAI,WAAJ,C;MD6lBD,kBACI,mT;MADJ,SC7lBC,WAAI,WAAJ,C;MD+lBD,kBACI,iO;MADJ,SC/lBC,WAAI,WAAJ,C;MDimBD,kBACI,88B;MADJ,SCjmBC,WAAI,WAAJ,C;MDmmBD,kBACI,8P;MADJ,SCnmBC,WAAI,WAAJ,C;MDqmBD,kBACI,mK;MADJ,SCrmBC,WAAI,WAAJ,C;MDumBD,kBACI,wI;MADJ,SCvmBC,WAAI,WAAJ,C;MDymBD,kBACI,yR;MADJ,SCzmBC,WAAI,WAAJ,C;MD2mBD,kBACI,yR;MADJ,SC3mBC,WAAI,WAAJ,C;MD6mBD,kBACI,yR;MADJ,SC7mBC,WAAI,WAAJ,C;MD+mBD,kBACI,2K;MADJ,SC/mBC,WAAI,WAAJ,C;MDinBD,kBACI,4gC;MADJ,SCjnBC,WAAI,WAAJ,C;MDmnBD,kBACI,iO;MADJ,SCnnBC,WAAI,WAAJ,C;MDqnBD,kBACI,6I;MADJ,SCrnBC,WAAI,WAAJ,C;MDunBD,kBACI,8H;MADJ,SCvnBC,WAAI,WAAJ,C;MDynBD,kBACI,8S;MADJ,SCznBC,WAAI,WAAJ,C;MD2nBD,kBACI,8S;MADJ,SC3nBC,WAAI,WAAJ,C;MD6nBD,kBACI,8S;MADJ,SC7nBC,WAAI,WAAJ,C;MD+nBD,kBACI,6N;MADJ,SC/nBC,WAAI,WAAJ,C;MDioBD,kBACI,w2B;MADJ,SCjoBC,WAAI,WAAJ,C;MDmoBD,kBACI,6N;MADJ,SCnoBC,WAAI,WAAJ,C;MDqoBD,kBACI,qI;MADJ,SCroBC,WAAI,WAAJ,C;MDuoBD,kBACI,sH;MADJ,SCvoBC,WAAI,WAAJ,C;MDyoBD,kBACI,8R;MADJ,SCzoBC,WAAI,WAAJ,C;MD2oBD,kBACI,8R;MADJ,SC3oBC,WAAI,WAAJ,C;MD6oBD,kBACI,8R;MADJ,SC7oBC,WAAI,WAAJ,C;MD+oBD,kBACI,2L;MADJ,SC/oBC,WAAI,WAAJ,C;MDipBD,kBACI,stB;MADJ,SCjpBC,WAAI,WAAJ,C;MDmpBD,kBACI,yO;MADJ,SCnpBC,WAAI,WAAJ,C;MDqpBD,kBACI,uJ;MADJ,SCrpBC,WAAI,WAAJ,C;MDupBD,kBACI,sI;MADJ,SCvpBC,WAAI,WAAJ,C;MDypBD,kBACI,gT;MADJ,SCzpBC,WAAI,WAAJ,C;MD2pBD,kBACI,gT;MADJ,SC3pBC,WAAI,WAAJ,C;MD6pBD,kBACI,gT;MADJ,SC7pBC,WAAI,WAAJ,C;MD+pBD,kBACI,4O;MADJ,SC/pBC,WAAI,WAAJ,C;MDiqBD,kBACI,86B;MADJ,SCjqBC,WAAI,WAAJ,C;MDmqBD,kBACI,+N;MADJ,SCnqBC,WAAI,WAAJ,C;MDqqBD,kBACI,yI;MADJ,SCrqBC,WAAI,WAAJ,C;MDuqBD,kBACI,0H;MADJ,SCvqBC,WAAI,WAAJ,C;MDyqBD,kBACI,gT;MADJ,SCzqBC,WAAI,WAAJ,C;MD2qBD,kBACI,gT;MADJ,SC3qBC,WAAI,WAAJ,C;MD6qBD,kBACI,gT;MADJ,SC7qBC,WAAI,WAAJ,C;MD+qBD,kBACI,iN;MADJ,SC/qBC,WAAI,WAAJ,C;MDirBD,kBACI,otC;MADJ,SCjrBC,WAAI,WAAJ,C;MDmrBD,kBACI,qQ;MADJ,SCnrBC,WAAI,WAAJ,C;MDqrBD,kBACI,2K;MADJ,SCrrBC,WAAI,WAAJ,C;MDurBD,kBACI,8I;MADJ,SCvrBC,WAAI,WAAJ,C;MDyrBD,kBACI,oS;MADJ,SCzrBC,WAAI,WAAJ,C;MD2rBD,kBACI,oS;MADJ,SC3rBC,WAAI,WAAJ,C;MD6rBD,kBACI,oS;MADJ,SC7rBC,WAAI,WAAJ,C;MD+rBD,kBACI,wL;MADJ,SC/rBC,WAAI,WAAJ,C;MDisBD,kBACI,g+B;MADJ,SCjsBC,WAAI,WAAJ,C;MDmsBD,kBACI,4N;MADJ,SCnsBC,WAAI,WAAJ,C;MDqsBD,kBACI,mI;MADJ,SCrsBC,WAAI,WAAJ,C;MDusBD,kBACI,oH;MADJ,SCvsBC,WAAI,WAAJ,C;MDysBD,kBACI,2R;MADJ,SCzsBC,WAAI,WAAJ,C;MD2sBD,kBACI,2R;MADJ,SC3sBC,WAAI,WAAJ,C;MD6sBD,kBACI,2R;MADJ,SC7sBC,WAAI,WAAJ,C;MD+sBD,kBACI,mL;MADJ,SC/sBC,WAAI,WAAJ,C;MDitBD,kBACI,0qB;MADJ,SCjtBC,WAAI,WAAJ,C;MDmtBD,kBACI,qO;MADJ,SCntBC,WAAI,WAAJ,C;MDqtBD,kBACI,+I;MADJ,SCrtBC,WAAI,WAAJ,C;MDutBD,kBACI,8H;MADJ,SCvtBC,WAAI,WAAJ,C;MDytBD,kBACI,oS;MADJ,SCztBC,WAAI,WAAJ,C;MD2tBD,kBACI,oS;MADJ,SC3tBC,WAAI,WAAJ,C;MD6tBD,kBACI,oS;MADJ,SC7tBC,WAAI,WAAJ,C;MD+tBD,kBACI,4M;MADJ,SC/tBC,WAAI,WAAJ,C;MDiuBD,kBACI,omC;MADJ,SCjuBC,WAAI,WAAJ,C;MDmuBD,kBACI,iO;MADJ,SCnuBC,WAAI,WAAJ,C;MDquBD,kBACI,6I;MADJ,SCruBC,WAAI,WAAJ,C;MDuuBD,kBACI,8H;MADJ,SCvuBC,WAAI,WAAJ,C;MDyuBD,kBACI,0S;MADJ,SCzuBC,WAAI,WAAJ,C;MD2uBD,kBACI,0S;MADJ,SC3uBC,WAAI,WAAJ,C;MD6uBD,kBACI,0S;MADJ,SC7uBC,WAAI,WAAJ,C;MD+uBD,kBACI,2N;MADJ,SC/uBC,WAAI,WAAJ,C;MDivBD,kBACI,gkG;MADJ,SCjvBC,WAAI,WAAJ,C;MDmvBD,kBACI,+P;MADJ,SCnvBC,WAAI,WAAJ,C;MDqvBD,kBACI,uL;MADJ,SCrvBC,WAAI,WAAJ,C;MDuvBD,kBACI,kK;MADJ,SCvvBC,WAAI,WAAJ,C;MDyvBD,kBACI,0V;MADJ,SCzvBC,WAAI,WAAJ,C;MD2vBD,kBACI,0V;MADJ,SC3vBC,WAAI,WAAJ,C;MD6vBD,kBACI,0V;MADJ,SC7vBC,WAAI,WAAJ,C;MD+vBD,kBACI,oU;MADJ,SC/vBC,WAAI,WAAJ,C;MDiwBD,kBACI,w/B;MADJ,SCjwBC,WAAI,WAAJ,C;MDmwBD,kBACI,6N;MADJ,SCnwBC,WAAI,WAAJ,C;MDqwBD,kBACI,qI;MADJ,SCrwBC,WAAI,WAAJ,C;MDuwBD,kBACI,sH;MADJ,SCvwBC,WAAI,WAAJ,C;MDywBD,kBACI,8R;MADJ,SCzwBC,WAAI,WAAJ,C;MD2wBD,kBACI,8R;MADJ,SC3wBC,WAAI,WAAJ,C;MD6wBD,kBACI,8R;MADJ,SC7wBC,WAAI,WAAJ,C;MD+wBD,kBACI,2L;MADJ,SC/wBC,WAAI,WAAJ,C;MDixBD,kBACI,mkC;MADJ,SCjxBC,WAAI,WAAJ,C;MDmxBD,kBACI,6N;MADJ,SCnxBC,WAAI,WAAJ,C;MDqxBD,kBACI,qI;MADJ,SCrxBC,WAAI,WAAJ,C;MDuxBD,kBACI,sH;MADJ,SCvxBC,WAAI,WAAJ,C;MDyxBD,kBACI,8R;MADJ,SCzxBC,WAAI,WAAJ,C;MD2xBD,kBACI,8R;MADJ,SC3xBC,WAAI,WAAJ,C;MD6xBD,kBACI,8R;MADJ,SC7xBC,WAAI,WAAJ,C;MD+xBD,kBACI,2L;MADJ,SC/xBC,WAAI,WAAJ,C;MDiyBD,kBACI,o7B;MADJ,SCjyBC,WAAI,WAAJ,C;MDmyBD,kBACI,0O;MADJ,SCnyBC,WAAI,WAAJ,C;MDqyBD,kBACI,yJ;MADJ,SCryBC,WAAI,WAAJ,C;MDuyBD,kBACI,wI;MADJ,SCvyBC,WAAI,WAAJ,C;MDyyBD,kBACI,mT;MADJ,SCzyBC,WAAI,WAAJ,C;MD2yBD,kBACI,mT;MADJ,SC3yBC,WAAI,WAAJ,C;MD6yBD,kBACI,mT;MADJ,SC7yBC,WAAI,WAAJ,C;MD+yBD,kBACI,oP;MADJ,SC/yBC,WAAI,WAAJ,C;MDizBD,kBACI,0jC;MADJ,SCjzBC,WAAI,WAAJ,C;MDmzBD,kBACI,2O;MADJ,SCnzBC,WAAI,WAAJ,C;MDqzBD,kBACI,qJ;MADJ,SCrzBC,WAAI,WAAJ,C;MDuzBD,kBACI,kI;MADJ,SCvzBC,WAAI,WAAJ,C;MDyzBD,kBACI,sT;MADJ,SCzzBC,WAAI,WAAJ,C;MD2zBD,kBACI,sT;MADJ,SC3zBC,WAAI,WAAJ,C;MD6zBD,kBACI,sT;MADJ,SC7zBC,WAAI,WAAJ,C;MD+zBD,kBACI,sN;MADJ,SC/zBC,WAAI,WAAJ,C;MDi0BD,kBACI,ynC;MADJ,SCj0BC,WAAI,WAAJ,C;MDm0BD,kBACI,gP;MADJ,SCn0BC,WAAI,WAAJ,C;MDq0BD,kBACI,mJ;MADJ,SCr0BC,WAAI,WAAJ,C;MDu0BD,kBACI,4H;MADJ,SCv0BC,WAAI,WAAJ,C;MDy0BD,kBACI,8R;MADJ,SCz0BC,WAAI,WAAJ,C;MD20BD,kBACI,8R;MADJ,SC30BC,WAAI,WAAJ,C;MD60BD,kBACI,8R;MADJ,SC70BC,WAAI,WAAJ,C;MD+0BD,kBACI,6J;MADJ,SC/0BC,WAAI,WAAJ,C;MDi1BD,kBACI,whE;MADJ,SCj1BC,WAAI,WAAJ,C;MDm1BD,kBACI,8N;MADJ,SCn1BC,WAAI,WAAJ,C;MDq1BD,kBACI,uI;MADJ,SCr1BC,WAAI,WAAJ,C;MDu1BD,kBACI,wH;MADJ,SCv1BC,WAAI,WAAJ,C;MDy1BD,kBACI,gT;MADJ,SCz1BC,WAAI,WAAJ,C;MD21BD,kBACI,gT;MADJ,SC31BC,WAAI,WAAJ,C;MD61BD,kBACI,gT;MADJ,SC71BC,WAAI,WAAJ,C;MD+1BD,kBACI,yM;MADJ,SC/1BC,WAAI,WAAJ,C;MDi2BD,kBACI,4yC;MADJ,SCj2BC,WAAI,WAAJ,C;MDm2BD,kBACI,8P;MADJ,SCn2BC,WAAI,WAAJ,C;MDq2BD,kBACI,mK;MADJ,SCr2BC,WAAI,WAAJ,C;MDu2BD,kBACI,wI;MADJ,SCv2BC,WAAI,WAAJ,C;MDy2BD,kBACI,oS;MADJ,SCz2BC,WAAI,WAAJ,C;MD22BD,kBACI,oS;MADJ,SC32BC,WAAI,WAAJ,C;MD62BD,kBACI,oS;MADJ,SC72BC,WAAI,WAAJ,C;MD+2BD,kBACI,+K;MADJ,SC/2BC,WAAI,WAAJ,C;MDi3BD,kBACI,s8C;MADJ,SCj3BC,WAAI,WAAJ,C;MDm3BD,kBACI,gP;MADJ,SCn3BC,WAAI,WAAJ,C;MDq3BD,kBACI,mJ;MADJ,SCr3BC,WAAI,WAAJ,C;MDu3BD,kBACI,4H;MADJ,SCv3BC,WAAI,WAAJ,C;MDy3BD,kBACI,8R;MADJ,SCz3BC,WAAI,WAAJ,C;MD23BD,kBACI,8R;MADJ,SC33BC,WAAI,WAAJ,C;MD63BD,kBACI,8R;MADJ,SC73BC,WAAI,WAAJ,C;MD+3BD,kBACI,6J;MADJ,SC/3BC,WAAI,WAAJ,C;MDi4BD,kBACI,80D;MADJ,SCj4BC,WAAI,WAAJ,C;MDm4BD,kBACI,kO;MADJ,SCn4BC,WAAI,WAAJ,C;MDq4BD,kBACI,mI;MADJ,SCr4BC,WAAI,WAAJ,C;MDu4BD,kBACI,gH;MADJ,SCv4BC,WAAI,WAAJ,C;MDy4BD,kBACI,wR;MADJ,SCz4BC,WAAI,WAAJ,C;MD24BD,kBACI,wR;MADJ,SC34BC,WAAI,WAAJ,C;MD64BD,kBACI,wR;MADJ,SC74BC,WAAI,WAAJ,C;MD+4BD,kBACI,2I;MADJ,SC/4BC,WAAI,WAAJ,C;MDi5BD,kBACI,+pB;MADJ,SCj5BC,WAAI,WAAJ,C;MDm5BD,kBACI,8N;MADJ,SCn5BC,WAAI,WAAJ,C;MDq5BD,kBACI,uI;MADJ,SCr5BC,WAAI,WAAJ,C;MDu5BD,kBACI,wH;MADJ,SCv5BC,WAAI,WAAJ,C;MDy5BD,kBACI,gT;MADJ,SCz5BC,WAAI,WAAJ,C;MD25BD,kBACI,gT;MADJ,SC35BC,WAAI,WAAJ,C;MD65BD,kBACI,gT;MADJ,SC75BC,WAAI,WAAJ,C;MD+5BD,kBACI,yM;MADJ,SC/5BC,WAAI,WAAJ,C;MDi6BD,kBACI,s2B;MADJ,SCj6BC,WAAI,WAAJ,C;MDm6BD,kBACI,0O;MADJ,SCn6BC,WAAI,WAAJ,C;MDq6BD,kBACI,yJ;MADJ,SCr6BC,WAAI,WAAJ,C;MDu6BD,kBACI,wI;MADJ,SCv6BC,WAAI,WAAJ,C;MDy6BD,kBACI,kU;MADJ,SCz6BC,WAAI,WAAJ,C;MD26BD,kBACI,kU;MADJ,SC36BC,WAAI,WAAJ,C;MD66BD,kBACI,kU;MADJ,SC76BC,WAAI,WAAJ,C;MD+6BD,kBACI,0P;MADJ,SC/6BC,WAAI,WAAJ,C;MDi7BD,kBACI,4pC;MADJ,SCj7BC,WAAI,WAAJ,C;MDm7BD,kBACI,4O;MADJ,SCn7BC,WAAI,WAAJ,C;MDq7BD,kBACI,6J;MADJ,SCr7BC,WAAI,WAAJ,C;MDu7BD,kBACI,4I;MADJ,SCv7BC,WAAI,WAAJ,C;MDy7BD,kBACI,wU;MADJ,SCz7BC,WAAI,WAAJ,C;MD27BD,kBACI,wU;MADJ,SC37BC,WAAI,WAAJ,C;MD67BD,kBACI,wU;MADJ,SC77BC,WAAI,WAAJ,C;MD+7BD,kBACI,0Q;MADJ,SC/7BC,WAAI,WAAJ,C;MDi8BD,kBACI,sqC;MADJ,SCj8BC,WAAI,WAAJ,C;MDm8BD,kBACI,2N;MADJ,SCn8BC,WAAI,WAAJ,C;MDq8BD,kBACI,iI;MADJ,SCr8BC,WAAI,WAAJ,C;MDu8BD,kBACI,kH;MADJ,SCv8BC,WAAI,WAAJ,C;MDy8BD,kBACI,iS;MADJ,SCz8BC,WAAI,WAAJ,C;MD28BD,kBACI,iS;MADJ,SC38BC,WAAI,WAAJ,C;MD68BD,kBACI,iS;MADJ,SC78BC,WAAI,WAAJ,C;MD+8BD,kBACI,8K;MADJ,SC/8BC,WAAI,WAAJ,C;MDi9BD,kBACI,iyB;MADJ,SCj9BC,WAAI,WAAJ,C;MDm9BD,kBACI,wO;MADJ,SCn9BC,WAAI,WAAJ,C;MDq9BD,kBACI,qJ;MADJ,SCr9BC,WAAI,WAAJ,C;MDu9BD,kBACI,oI;MADJ,SCv9BC,WAAI,WAAJ,C;MDy9BD,kBACI,kS;MADJ,SCz9BC,WAAI,WAAJ,C;MD29BD,kBACI,kS;MADJ,SC39BC,WAAI,WAAJ,C;MD69BD,kBACI,kS;MADJ,SC79BC,WAAI,WAAJ,C;MD+9BD,kBACI,6N;MADJ,SC/9BC,WAAI,WAAJ,C;MDi+BD,kBACI,mxB;MADJ,SCj+BC,WAAI,WAAJ,C;MDm+BD,kBACI,wO;MADJ,SCn+BC,WAAI,WAAJ,C;MDq+BD,kBACI,qJ;MADJ,SCr+BC,WAAI,WAAJ,C;MDu+BD,kBACI,oI;MADJ,SCv+BC,WAAI,WAAJ,C;MDy+BD,kBACI,kS;MADJ,SCz+BC,WAAI,WAAJ,C;MD2+BD,kBACI,kS;MADJ,SC3+BC,WAAI,WAAJ,C;MD6+BD,kBACI,kS;MADJ,SC7+BC,WAAI,WAAJ,C;MD++BD,kBACI,6N;MADJ,SC/+BC,WAAI,WAAJ,C;MDi/BD,kBACI,ulC;MADJ,SCj/BC,WAAI,WAAJ,C;MDm/BD,kBACI,6N;MADJ,SCn/BC,WAAI,WAAJ,C;MDq/BD,kBACI,qI;MADJ,SCr/BC,WAAI,WAAJ,C;MDu/BD,kBACI,sH;MADJ,SCv/BC,WAAI,WAAJ,C;MDy/BD,kBACI,wR;MADJ,SCz/BC,WAAI,WAAJ,C;MD2/BD,kBACI,wR;MADJ,SC3/BC,WAAI,WAAJ,C;MD6/BD,kBACI,wR;MADJ,SC7/BC,WAAI,WAAJ,C;MD+/BD,kBACI,wL;MADJ,SC//BC,WAAI,WAAJ,C;MDigCD,kBACI,wf;MADJ,SCjgCC,WAAI,WAAJ,C;MDmgCD,kBACI,6N;MADJ,SCngCC,WAAI,WAAJ,C;MDqgCD,kBACI,qI;MADJ,SCrgCC,WAAI,WAAJ,C;MDugCD,kBACI,sH;MADJ,SCvgCC,WAAI,WAAJ,C;MDygCD,kBACI,6R;MADJ,SCzgCC,WAAI,WAAJ,C;MD2gCD,kBACI,6R;MADJ,SC3gCC,WAAI,WAAJ,C;MD6gCD,kBACI,6R;MADJ,SC7gCC,WAAI,WAAJ,C;MD+gCD,kBACI,yL;MADJ,SC/gCC,WAAI,WAAJ,C;MDihCD,kBACI,s/B;MADJ,SCjhCC,WAAI,WAAJ,C;MDmhCD,kBACI,iO;MADJ,SCnhCC,WAAI,WAAJ,C;MDqhCD,kBACI,6I;MADJ,SCrhCC,WAAI,WAAJ,C;MDuhCD,kBACI,8H;MADJ,SCvhCC,WAAI,WAAJ,C;MDyhCD,kBACI,+R;MADJ,SCzhCC,WAAI,WAAJ,C;MD2hCD,kBACI,+R;MADJ,SC3hCC,WAAI,WAAJ,C;MD6hCD,kBACI,+R;MADJ,SC7hCC,WAAI,WAAJ,C;MD+hCD,kBACI,oN;MADJ,SC/hCC,WAAI,WAAJ,C;MDiiCD,kBACI,q7C;MADJ,SCjiCC,WAAI,WAAJ,C;MDmiCD,kBACI,wP;MADJ,SCniCC,WAAI,WAAJ,C;MDqiCD,kBACI,+K;MADJ,SCriCC,WAAI,WAAJ,C;MDuiCD,kBACI,4J;MADJ,SCviCC,WAAI,WAAJ,C;MDyiCD,kBACI,8S;MADJ,SCziCC,WAAI,WAAJ,C;MD2iCD,kBACI,8S;MADJ,SC3iCC,WAAI,WAAJ,C;MD6iCD,kBACI,8S;MADJ,SC7iCC,WAAI,WAAJ,C;MD+iCD,kBACI,qS;MADJ,SC/iCC,WAAI,WAAJ,C;MDijCD,kBACI,4rB;MADJ,SCjjCC,WAAI,WAAJ,C;MDmjCD,kBACI,6N;MADJ,SCnjCC,WAAI,WAAJ,C;M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WAAJ,C;MDsrCD,kBACI,gR;MADJ,SCtrCC,WAAI,WAAJ,C;MDwrCD,kBACI,mI;MADJ,SCxrCC,WAAI,WAAJ,C;MD0rCD,kBACI,gR;MADJ,SC1rCC,WAAI,WAAJ,C;MD4rCD,kBACI,yH;MADJ,SC5rCC,WAAI,WAAJ,C;MD8rCD,kBACI,2S;MADJ,SC9rCC,WAAI,WAAJ,C;MDgsCD,kBACI,09C;MADJ,SChsCC,WAAI,WAAJ,C;MDksCD,kBACI,mM;MADJ,SClsCC,WAAI,WAAJ,C;MDosCD,kBACI,2P;MADJ,SCpsCC,WAAI,WAAJ,C;MDssCD,kBACI,mK;MADJ,SCtsCC,WAAI,WAAJ,C;MDwsCD,kBACI,wI;MADJ,SCxsCC,WAAI,WAAJ,C;MD0sCD,kBACI,gQ;MADJ,SC1sCC,WAAI,WAAJ,C;MD4sCD,kBACI,mH;MADJ,SC5sCC,WAAI,WAAJ,C;MD8sCD,kBACI,gQ;MADJ,SC9sCC,WAAI,WAAJ,C;MDgtCD,kBACI,yG;MADJ,SChtCC,WAAI,WAAJ,C;MDktCD,kBACI,+K;MADJ,SCltCC,WAAI,WAAJ,C;MDotCD,kBACI,o3C;MADJ,SCptCC,WAAI,WAAJ,C;MDstCD,kBACI,mJ;MADJ,SCttCC,WAAI,WAAJ,C;MDwtCD,kBACI,8N;MADJ,SCxtCC,WAAI,WAAJ,C;MD0tCD,kBACI,6I;MADJ,SC1tCC,WAAI,WAAJ,C;MD4tCD,kBACI,8H;MADJ,SC5tCC,WAAI,WAAJ,C;MD8tCD,kBACI,kQ;MADJ,SC9tCC,WAAI,WAAJ,C;MDguCD,kBACI,0H;MADJ,SChuCC,WAAI,WAAJ,C;MDkuCD,kBACI,kQ;MADJ,SCluCC,WAAI,WAAJ,C;MDouCD,kBACI,gH;MADJ,SCpuCC,WAAI,WAAJ,C;MDsuCD,kBACI,4N;MADJ,SCtuCC,WAAI,WAAJ,C;MDwuCD,kBACI,8/B;MADJ,SCxuCC,WAAI,WAAJ,C;MD0uCD,kBACI,wK;MADJ,SC1uCC,WAAI,WAAJ,C;MD4uCD,kBACI,oP;MADJ,SC5uCC,WAAI,WAAJ,C;MD8uCD,kBACI,2J;MADJ,SC9uCC,WAAI,WAAJ,C;MDgvCD,kBACI,kI;MADJ,SChvCC,WAAI,WAAJ,C;MDkvCD,kBACI,2P;MADJ,SClvCC,WAAI,WAAJ,C;MDovCD,kBACI,kH;MADJ,SCpvCC,WAAI,WAAJ,C;MDsvCD,kBACI,2P;MADJ,SCtvCC,WAAI,WAAJ,C;MDwvCD,kBACI,wG;MADJ,SCxvCC,WAAI,WAAJ,C;MD0vCD,kBACI,kK;MADJ,SC1vCC,WAAI,WAAJ,C;MD4vCD,kBACI,y2B;MADJ,SC5vCC,WAAI,WAAJ,C;MD8vCD,kBACI,gJ;MADJ,SC9vCC,WAAI,WAAJ,C;MDgwCD,kBACI,6O;MADJ,SChwCC,WAAI,WAAJ,C;MDkwCD,kBACI,mJ;MADJ,SClwCC,WAAI,WAAJ,C;MDowCD,kBACI,4H;MADJ,SCpwCC,WAAI,WAAJ,C;MDswCD,kBACI,4P;MADJ,SCtwCC,WAAI,WAAJ,C;MDwwCD,kBACI,+G;MADJ,SCxwCC,WAAI,WAAJ,C;MD0wCD,kBACI,4P;MADJ,SC1wCC,WAAI,WAAJ,C;MD4wCD,kBACI,qG;MADJ,SC5wCC,WAAI,WAAJ,C;MD8wCD,kBACI,6J;MADJ,SC9wCC,WAAI,WAAJ,C;MDgxCD,kBACI,gyD;MADJ,SChxCC,WAAI,WAAJ,C;MDkxCD,kBACI,6I;MADJ,SClxCC,WAAI,WAAJ,C;MDoxCD,kBACI,sO;MADJ,SCpxCC,WAAI,WAAJ,C;MDsxCD,kBACI,2I;MADJ,SCtxCC,WAAI,WAAJ,C;MDwxCD,kBACI,sH;MADJ,SCxxCC,WAAI,WAAJ,C;MD0xCD,kBACI,2P;MADJ,SC1xCC,WAAI,WAAJ,C;MD4xCD,kBACI,8G;MADJ,SC5xCC,WAAI,WAAJ,C;MD8xCD,kBACI,2P;MADJ,SC9xCC,WAAI,WAAJ,C;MDgyCD,kBACI,oG;MADJ,SChyCC,WAAI,WAAJ,C;MDkyCD,kBACI,oJ;MADJ,SClyCC,WAAI,WAAJ,C;MDoyCD,kBACI,2rE;MADJ,SCpyCC,WAAI,WAAJ,C;MDsyCD,kBACI,0I;MADJ,SCtyCC,WAAI,WAAJ,C;MDwyCD,kBACI,6N;MADJ,SCxyCC,WAAI,WAAJ,C;MD0yCD,kBACI,2I;MADJ,SC1yCC,WAAI,WAAJ,C;MD4yCD,kBACI,4H;MADJ,SC5yCC,WAAI,WAAJ,C;MD8yCD,kBACI,sQ;MADJ,SC9yCC,WAAI,WAAJ,C;MDgzCD,kBACI,yH;MADJ,SChzCC,WAAI,WAAJ,C;MDkzCD,kBACI,sQ;MADJ,SClzCC,WAAI,WAAJ,C;MDozCD,kBACI,+G;MADJ,SCpzCC,WAAI,WAAJ,C;MDszCD,kBACI,yN;MADJ,SCtzCC,WAAI,WAAJ,C;MDwzCD,kBACI,o2D;MADJ,SCxzCC,WAAI,WAAJ,C;MD0zCD,kBACI,qK;MADJ,SC1zCC,WAAI,WAAJ,C;MD4zCD,kBACI,4N;MADJ,SC5zCC,WAAI,WAAJ,C;MD8zCD,kBACI,yI;MADJ,SC9zCC,WAAI,WAAJ,C;MDg0CD,kBACI,0H;MADJ,SCh0CC,WAAI,WAAJ,C;MDk0CD,kBACI,uQ;MADJ,SCl0CC,WAAI,WAAJ,C;MDo0CD,kBACI,0H;MADJ,SCp0CC,WAAI,WAAJ,C;MDs0CD,kBACI,uQ;MADJ,SCt0CC,WAAI,WAAJ,C;MDw0CD,kBACI,gH;MADJ,SCx0CC,WAAI,WAAJ,C;MD00CD,kBACI,iN;MADJ,SC10CC,WAAI,WAAJ,C;MD40CD,kBACI,uvB;MADJ,SC50CC,WAAI,WAAJ,C;MD80CD,kBACI,kK;MADJ,SC90CC,WAAI,WAAJ,C;MDg1CD,kBACI,2N;MADJ,SCh1CC,WAAI,WAAJ,C;MDk1CD,kBACI,uI;MADJ,SCl1CC,WAAI,WAAJ,C;MDo1CD,kBACI,wH;MADJ,SCp1CC,WAAI,WAAJ,C;MDs1CD,kBACI,oQ;MADJ,SCt1CC,WAAI,WAAJ,C;MDw1CD,kBACI,uH;MADJ,SCx1CC,WAAI,WAAJ,C;MD01CD,kBACI,oQ;MADJ,SC11CC,WAAI,WAAJ,C;MD41CD,kBACI,6G;MADJ,SC51CC,WAAI,WAAJ,C;MD81CD,kBACI,yM;MADJ,SC91CC,WAAI,WAAJ,C;MDg2CD,kBACI,ymE;MADJ,SCh2CC,WAAI,WAAJ,C;MDk2CD,kBACI,+J;MADJ,SCl2CC,WAAI,WAAJ,C;MDo2CD,kBACI,gQ;MADJ,SCp2CC,WAAI,WAAJ,C;MDs2CD,kBACI,+L;MADJ,SCt2CC,WAAI,WAAJ,C;MDw2CD,kBACI,0K;MADJ,SCx2CC,WAAI,WAAJ,C;MD02CD,kBACI,2P;MADJ,SC12CC,WAAI,WAAJ,C;MD42CD,kBACI,wI;MADJ,SC52CC,WAAI,WAAJ,C;MD82CD,kBACI,2P;MADJ,SC92CC,WAAI,WAAJ,C;MDg3CD,kBACI,8H;MADJ,SCh3CC,WAAI,WAAJ,C;MDk3CD,kBACI,0U;MADJ,SCl3CC,WAAI,WAAJ,C;MDo3CD,kBACI,q5B;MADJ,SCp3CC,WAAI,WAAJ,C;MDs3CD,kBACI,wN;MADJ,SCt3CC,WAAI,WAAJ,C;MDw3CD,kBACI,4P;MADJ,SCx3CC,WAAI,WAAJ,C;MD03CD,kBACI,uL;MADJ,SC13CC,WAAI,WAAJ,C;MD43CD,kBACI,kK;MADJ,SC53CC,WAAI,WAAJ,C;MD83CD,kBACI,2P;MADJ,SC93CC,WAAI,WAAJ,C;MDg4CD,kBACI,oI;MADJ,SCh4CC,WAAI,WAAJ,C;MDk4CD,kBACI,2P;MADJ,SCl4CC,WAAI,WAAJ,C;MDo4CD,kBACI,0H;MADJ,SCp4CC,WAAI,WAAJ,C;MDs4CD,kBACI,8S;MADJ,SCt4CC,WAAI,WAAJ,C;MDw4CD,kBACI,2+B;MADJ,SCx4CC,WAAI,WAAJ,C;MD04CD,kBACI,4M;MADJ,SC14CC,WAAI,WAAJ,C;MD44CD,kBACI,6P;MADJ,SC54CC,WAAI,WAAJ,C;MD84CD,kBACI,yL;MADJ,SC94CC,WAAI,WAAJ,C;MDg5CD,kBACI,oK;MADJ,SCh5CC,WAAI,WAAJ,C;MDk5CD,kBACI,2P;MADJ,SCl5CC,WAAI,WAAJ,C;MDo5CD,kBACI,qI;MADJ,SCp5CC,WAAI,WAAJ,C;MDs5CD,kBACI,2P;MADJ,SCt5CC,WAAI,WAAJ,C;MDw5CD,kBACI,2H;MADJ,SCx5CC,WAAI,WAAJ,C;MD05CD,kBACI,qT;MADJ,SC15CC,WAAI,WAAJ,C;MD45CD,kBACI,ykC;MADJ,SC55CC,WAAI,WAAJ,C;MD85CD,kBACI,+M;MADJ,SC95CC,WAAI,WAAJ,C;MDg6CD,kBACI,0O;MADJ,SCh6CC,WAAI,WAAJ,C;MDk6CD,kBACI,+J;MADJ,SCl6CC,WAAI,WAAJ,C;MDo6CD,kBACI,8I;MADJ,SCp6CC,WAAI,WAAJ,C;MDs6CD,kBACI,2Q;MADJ,SCt6CC,WAAI,WAAJ,C;MDw6CD,kBACI,8H;MADJ,SCx6CC,WAAI,WAAJ,C;MD06CD,kBACI,2Q;MADJ,SC16CC,WAAI,WAAJ,C;MD46CD,kBACI,oH;MADJ,SC56CC,WAAI,WAAJ,C;MD86CD,kBACI,kR;MADJ,SC96CC,WAAI,WAAJ,C;MDg7CD,kBACI,ilC;MADJ,SCh7CC,WAAI,WAAJ,C;MDk7CD,kBACI,0L;MADJ,SCl7CC,WAAI,WAAJ,C;MDo7CD,kBACI,8N;MADJ,SCp7CC,WAAI,WAAJ,C;MDs7CD,kBACI,6I;MADJ,SCt7CC,WAAI,WAAJ,C;MDw7CD,kBACI,8H;MADJ,SCx7CC,WAAI,WAAJ,C;MD07CD,kBACI,qQ;MADJ,SC17CC,WAAI,WAAJ,C;MD47CD,kBACI,wH;MADJ,SC57CC,WAAI,WAAJ,C;MD87CD,kBACI,qQ;MADJ,SC97CC,WAAI,WAAJ,C;MDg8CD,kBACI,8G;MADJ,SCh8CC,WAAI,WAAJ,C;MDk8CD,kBACI,iO;MADJ,SCl8CC,WAAI,WAAJ,C;MDo8CD,kBACI,+gC;MADJ,SCp8CC,WAAI,WAAJ,C;MDs8CD,kBACI,wK;MADJ,SCt8CC,WAAI,WAAJ,C;MDw8CD,kBACI,2P;MADJ,SCx8CC,WAAI,WAAJ,C;MD08CD,kBACI,mK;MADJ,SC18CC,WAAI,WAAJ,C;MD48CD,kBACI,wI;MADJ,SC58CC,WAAI,WAAJ,C;MD88CD,kBACI,4P;MADJ,SC98CC,WAAI,WAAJ,C;MDg9CD,kBACI,mH;MADJ,SCh9CC,WAAI,WAAJ,C;MDk9CD,kBACI,4P;MADJ,SCl9CC,WAAI,WAAJ,C;MDo9CD,kBACI,yG;MADJ,SCp9CC,WAAI,WAAJ,C;MDs9CD,kBACI,2K;MADJ,SCt9CC,WAAI,WAAJ,C;MDw9CD,kBACI,olC;MADJ,SCx9CC,WAAI,WAAJ,C;MD09CD,kBACI,mJ;MADJ,SC19CC,WAAI,WAAJ,C;MD49CD,kBACI,8N;MADJ,SC59CC,WAAI,WAAJ,C;MD89CD,kBACI,6I;MADJ,SC99CC,WAAI,WAAJ,C;MDg+CD,kBACI,8H;MADJ,SCh+CC,WAAI,WAAJ,C;MDk+CD,kBACI,mQ;MADJ,SCl+CC,WAAI,WAAJ,C;MDo+CD,kBACI,0H;MADJ,SCp+CC,WAAI,WAAJ,C;MDs+CD,kBACI,mQ;MADJ,SCt+CC,WAAI,WAAJ,C;MDw+CD,kBACI,gH;MADJ,SCx+CC,WAAI,WAAJ,C;MD0+CD,kBACI,6N;MADJ,SC1+CC,WAAI,WAAJ,C;MD4+CD,kBACI,y6B;MADJ,SC5+CC,WAAI,WAAJ,C;MD8+CD,kBACI,wK;MADJ,SC9+CC,WAAI,WAAJ,C;MDg/CD,kBACI,0N;MADJ,SCh/CC,WAAI,WAAJ,C;MDk/CD,kBACI,qI;MADJ,SCl/CC,WAAI,WAAJ,C;MDo/CD,kBACI,sH;MADJ,SCp/CC,WAAI,WAAJ,C;MDs/CD,kBACI,6P;MADJ,SCt/CC,WAAI,WAAJ,C;MDw/CD,kBACI,sH;MADJ,SCx/CC,WAAI,WAAJ,C;MD0/CD,kBACI,6P;MADJ,SC1/CC,WAAI,WAAJ,C;MD4/CD,kBACI,4G;MADJ,SC5/CC,WAAI,WAAJ,C;MD8/CD,kBACI,2L;MADJ,SC9/CC,WAAI,WAAJ,C;MDggDD,kBACI,2xB;MADJ,SChgDC,WAAI,WAAJ,C;MDkgDD,kBACI,4J;MADJ,SClgDC,WAAI,WAAJ,C;MDogDD,kBACI,sO;MADJ,SCpgDC,WAAI,WAAJ,C;MDsgDD,kBACI,uJ;MADJ,SCtgDC,WAAI,WAAJ,C;MDwgDD,kBACI,sI;MADJ,SCxgDC,WAAI,WAAJ,C;MD0gDD,kBACI,mQ;MADJ,SC1gDC,WAAI,WAAJ,C;MD4gDD,kBACI,4H;MADJ,SC5gDC,WAAI,WAAJ,C;MD8gDD,kBACI,mQ;MADJ,SC9gDC,WAAI,WAAJ,C;MDghDD,kBACI,kH;MADJ,SChhDC,WAAI,WAAJ,C;MDkhDD,kBACI,4O;MADJ,SClhDC,WAAI,WAAJ,C;MDohDD,kBACI,6+B;MADJ,SCphDC,WAAI,WAAJ,C;MDshDD,kBACI,8K;MADJ,SCthDC,WAAI,WAAJ,C;MDwhDD,kBACI,4N;MADJ,SCxhDC,WAAI,WAAJ,C;MD0hDD,kBACI,yI;MADJ,SC1hDC,WAAI,WAAJ,C;MD4hDD,kBACI,0H;MADJ,SC5hDC,WAAI,WAAJ,C;MD8hDD,kBACI,qQ;MADJ,SC9hDC,WAAI,WAAJ,C;MDgiDD,kBACI,wH;MADJ,SChiDC,WAAI,WAAJ,C;MDkiDD,kBACI,qQ;MADJ,SCliDC,WAAI,WAAJ,C;MDoiDD,kBACI,8G;MADJ,SCpiDC,WAAI,WAAJ,C;MDsiDD,kBACI,iN;MADJ,SCtiDC,WAAI,WAAJ,C;MDwiDD,kBACI,uxC;MADJ,SCxiDC,WAAI,WAAJ,C;MD0iDD,kBACI,kK;MADJ,SC1iDC,WAAI,WAAJ,C;MD4iDD,kBACI,kQ;MADJ,SC5iDC,WAAI,WAAJ,C;MD8iDD,kBACI,2K;MADJ,SC9iDC,WAAI,WAAJ,C;MDgjDD,kBACI,8I;MADJ,SChjDC,WAAI,WAAJ,C;MDkjDD,kBACI,iQ;MADJ,SCljDC,WAAI,WAAJ,C;MDojDD,kBACI,oH;MADJ,SCpjDC,WAAI,WAAJ,C;MDsjDD,kBACI,iQ;MADJ,SCtjDC,WAAI,WAAJ,C;MDwjDD,kBACI,0G;MADJ,SCxjDC,WAAI,WAAJ,C;MD0jDD,kBACI,wL;MADJ,SC1jDC,WAAI,WAAJ,C;MD4jDD,kBACI,uiC;MADJ,SC5jDC,WAAI,WAAJ,C;MD8jDD,kBACI,sJ;MADJ,SC9jDC,WAAI,WAAJ,C;MDgkDD,kBACI,yN;MADJ,SChkDC,WAAI,WAAJ,C;MDkkDD,kBACI,mI;MADJ,SClkDC,WAAI,WAAJ,C;MDokDD,kBACI,oH;MADJ,SCpkDC,WAAI,WAAJ,C;MDskDD,kBACI,4P;MADJ,SCtkDC,WAAI,WAAJ,C;MDwkDD,kBACI,qH;MADJ,SCxkDC,WAAI,WAAJ,C;MD0kDD,kBACI,4P;MADJ,SC1kDC,WAAI,WAAJ,C;MD4kDD,kBACI,2G;MADJ,SC5kDC,WAAI,WAAJ,C;MD8kDD,kBACI,mL;MADJ,SC9kDC,WAAI,WAAJ,C;MDglDD,kBACI,gvB;MADJ,SChlDC,WAAI,WAAJ,C;MDklDD,kBACI,yJ;MADJ,SCllDC,WAAI,WAAJ,C;MDolDD,kBACI,kO;MADJ,SCplDC,WAAI,WAAJ,C;MDslDD,kBACI,+I;MADJ,SCtlDC,WAAI,WAAJ,C;MDwlDD,kBACI,8H;MADJ,SCxlDC,WAAI,WAAJ,C;MD0lDD,kBACI,+P;MADJ,SC1lDC,WAAI,WAAJ,C;MD4lDD,kBACI,wH;MADJ,SC5lDC,WAAI,WAAJ,C;MD8lDD,kBACI,+P;MADJ,SC9lDC,WAAI,WAAJ,C;MDgmDD,kBACI,8G;MADJ,SChmDC,WAAI,WAAJ,C;MDkmDD,kBACI,4M;MADJ,SClmDC,WAAI,WAAJ,C;MDomDD,kBACI,uqC;MADJ,SCpmDC,WAAI,WAAJ,C;MDsmDD,kBACI,kK;MADJ,SCtmDC,WAAI,WAAJ,C;MDwmDD,kBACI,8N;MADJ,SCxmDC,WAAI,WAAJ,C;MD0mDD,kBACI,6I;MADJ,SC1mDC,WAAI,WAAJ,C;MD4mDD,kBACI,8H;MADJ,SC5mDC,WAAI,WAAJ,C;MD8mDD,kBACI,iQ;MADJ,SC9mDC,WAAI,WAAJ,C;MDgnDD,kBACI,0H;MADJ,SChnDC,WAAI,WAAJ,C;MDknDD,kBACI,iQ;MADJ,SClnDC,WAAI,WAAJ,C;MDonDD,kBACI,gH;MADJ,SCpnDC,WAAI,WAAJ,C;MDsnDD,kBACI,2N;MADJ,SCtnDC,WAAI,WAAJ,C;MDwnDD,kBACI,ioG;MADJ,SCxnDC,WAAI,WAAJ,C;MD0nDD,kBACI,wK;MADJ,SC1nDC,WAAI,WAAJ,C;MD4nDD,kBACI,4P;MADJ,SC5nDC,WAAI,WAAJ,C;MD8nDD,kBACI,uL;MADJ,SC9nDC,WAAI,WAAJ,C;MDgoDD,kBACI,kK;MADJ,SChoDC,WAAI,WAAJ,C;MDkoDD,kBACI,mR;MADJ,SCloDC,WAAI,WAAJ,C;MDooDD,kBACI,sI;MADJ,SCpoDC,WAAI,WAAJ,C;MDsoDD,kBACI,mR;MADJ,SCtoDC,WAAI,WAAJ,C;MDwoDD,kBACI,4H;MADJ,SCxoDC,WAAI,WAAJ,C;MD0oDD,kBACI,oU;MADJ,SC1oDC,WAAI,WAAJ,C;MD4oDD,kBACI,6iC;MADJ,SC5oDC,WAAI,WAAJ,C;MD8oDD,kBACI,4M;MADJ,SC9oDC,WAAI,WAAJ,C;MDgpDD,kBACI,0N;MADJ,SChpDC,WAAI,WAAJ,C;MDkpDD,kBACI,qI;MADJ,SClpDC,WAAI,WAAJ,C;MDopDD,kBACI,sH;MADJ,SCppDC,WAAI,WAAJ,C;MDspDD,kBACI,6P;MADJ,SCtpDC,WAAI,WAAJ,C;MDwpDD,kBACI,sH;MADJ,SCxpDC,WAAI,WAAJ,C;MD0pDD,kBACI,6P;MADJ,SC1pDC,WAAI,WAAJ,C;MD4pDD,kBACI,4G;MADJ,SC5pDC,WAAI,WAAJ,C;MD8pDD,kBACI,2L;MADJ,SC9pDC,WAAI,WAAJ,C;MDgqDD,kBACI,woC;MADJ,SChqDC,WAAI,WAAJ,C;MDkqDD,kBACI,4J;MADJ,SClqDC,WAAI,WAAJ,C;MDoqDD,kBACI,0N;MADJ,SCpqDC,WAAI,WAAJ,C;MDsqDD,kBACI,qI;MADJ,SCtqDC,WAAI,WAAJ,C;MDwqDD,kBACI,sH;MADJ,SCxqDC,WAAI,WAAJ,C;MD0qDD,kBACI,6P;MADJ,SC1qDC,WAAI,WAAJ,C;MD4qDD,kBACI,sH;MADJ,SC5qDC,WAAI,WAAJ,C;MD8qDD,kBACI,6P;MADJ,SC9qDC,WAAI,WAAJ,C;MDgrDD,kBACI,4G;MADJ,SChrDC,WAAI,WAAJ,C;MDkrDD,kBACI,2L;MADJ,SClrDC,WAAI,WAAJ,C;MDorDD,kBACI,y/B;MADJ,SCprDC,WAAI,WAAJ,C;MDsrDD,kBACI,4J;MADJ,SCtrDC,WAAI,WAAJ,C;MDwrDD,kBACI,uO;MADJ,SCxrDC,WAAI,WAAJ,C;MD0rDD,kBACI,yJ;MADJ,SC1rDC,WAAI,WAAJ,C;MD4rDD,kBACI,wI;MADJ,SC5rDC,WAAI,WAAJ,C;MD8rDD,kBACI,oQ;MADJ,SC9rDC,WAAI,WAAJ,C;MDgsDD,kBACI,6H;MADJ,SChsDC,WAAI,WAAJ,C;MDksDD,kBACI,oQ;MADJ,SClsDC,WAAI,WAAJ,C;MDosDD,kBACI,mH;MADJ,SCpsDC,WAAI,WAAJ,C;MDssDD,kBACI,oP;MADJ,SCtsDC,WAAI,WAAJ,C;MDwsDD,kBACI,wnC;MADJ,SCxsDC,WAAI,WAAJ,C;MD0sDD,kBACI,iL;MADJ,SC1sDC,WAAI,WAAJ,C;MD4sDD,kBACI,wO;MADJ,SC5sDC,WAAI,WAAJ,C;MD8sDD,kBACI,qJ;MADJ,SC9sDC,WAAI,WAAJ,C;MDgtDD,kBACI,kI;MADJ,SChtDC,WAAI,WAAJ,C;MDktDD,kBACI,wQ;MADJ,SCltDC,WAAI,WAAJ,C;MDotDD,kBACI,wH;MADJ,SCptDC,WAAI,WAAJ,C;MDstDD,kBACI,wQ;MADJ,SCttDC,WAAI,WAAJ,C;MDwtDD,kBACI,8G;MADJ,SCxtDC,WAAI,WAAJ,C;MD0tDD,kBACI,sN;MADJ,SC1tDC,WAAI,WAAJ,C;MD4tDD,kBACI,4rC;MADJ,SC5tDC,WAAI,WAAJ,C;MD8tDD,kBACI,kK;MADJ,SC9tDC,WAAI,WAAJ,C;MDguDD,kBACI,6O;MADJ,SChuDC,WAAI,WAAJ,C;MDkuDD,kBACI,mJ;MADJ,SCluDC,WAAI,WAAJ,C;MDouDD,kBACI,4H;MADJ,SCpuDC,WAAI,WAAJ,C;MDsuDD,kBACI,gQ;MADJ,SCtuDC,WAAI,WAAJ,C;MDwuDD,kBACI,mH;MADJ,SCxuDC,WAAI,WAAJ,C;MD0uDD,kBACI,gQ;MADJ,SC1uDC,WAAI,WAAJ,C;MD4uDD,kBACI,yG;MADJ,SC5uDC,WAAI,WAAJ,C;MD8uDD,kBACI,6J;MADJ,SC9uDC,WAAI,WAAJ,C;MDgvDD,kBACI,kmE;MADJ,SChvDC,WAAI,WAAJ,C;MDkvDD,kBACI,6I;MADJ,SClvDC,WAAI,WAAJ,C;MDovDD,kBACI,2N;MADJ,SCpvDC,WAAI,WAAJ,C;MDsvDD,kBACI,uI;MADJ,SCtvDC,WAAI,WAAJ,C;MDwvDD,kBACI,wH;MADJ,SCxvDC,WAAI,WAAJ,C;MD0vDD,kBACI,sQ;MADJ,SC1vDC,WAAI,WAAJ,C;MD4vDD,kBACI,yH;MADJ,SC5vDC,WAAI,WAAJ,C;MD8vDD,kBACI,sQ;MADJ,SC9vDC,WAAI,WAAJ,C;MDgwDD,kBACI,+G;MADJ,SChwDC,WAAI,WAAJ,C;MDkwDD,kBACI,yM;MADJ,SClwDC,WAAI,WAAJ,C;MDowDD,kBACI,g3C;MADJ,SCpwDC,WAAI,WAAJ,C;MDswDD,kBACI,+J;MADJ,SCtwDC,WAAI,WAAJ,C;MDwwDD,kBACI,2P;MADJ,SCxwDC,WAAI,WAAJ,C;MD0wDD,kBACI,mK;MADJ,SC1wDC,WAAI,WAAJ,C;MD4wDD,kBACI,wI;MADJ,SC5wDC,WAAI,WAAJ,C;MD8wDD,kBACI,kQ;MADJ,SC9wDC,WAAI,WAAJ,C;MDgxDD,kBACI,qH;MADJ,SChxDC,WAAI,WAAJ,C;MDkxDD,kBACI,kQ;MADJ,SClxDC,WAAI,WAAJ,C;MDoxDD,kBACI,2G;MADJ,SCpxDC,WAAI,WAAJ,C;MDsxDD,kBACI,+K;MADJ,SCtxDC,WAAI,WAAJ,C;MDwxDD,kBACI,8gD;MADJ,SCxxDC,WAAI,WAAJ,C;MD0xDD,kBACI,mJ;MADJ,SC1xDC,WAAI,WAAJ,C;MD4xDD,kBACI,6O;MADJ,SC5xDC,WAAI,WAAJ,C;MD8xDD,kBACI,mJ;MADJ,SC9xDC,WAAI,WAAJ,C;MDgyDD,kBACI,4H;MADJ,SChyDC,WAAI,WAAJ,C;MDkyDD,kBACI,gQ;MADJ,SClyDC,WAAI,WAAJ,C;MDoyDD,kBACI,mH;MADJ,SCpyDC,WAAI,WAAJ,C;MDsyDD,kBACI,gQ;MADJ,SCtyDC,WAAI,WAAJ,C;MDwyDD,kBACI,yG;MADJ,SCxyDC,WAAI,WAAJ,C;MD0yDD,kBACI,6J;MADJ,SC1yDC,WAAI,WAAJ,C;MD4yDD,kBACI,+N;MADJ,SC5yDC,WAAI,WAAJ,C;MD8yDD,kBACI,mI;MADJ,SC9yDC,WAAI,WAAJ,C;MDgzDD,kBACI,gH;MADJ,SChzDC,WAAI,WAAJ,C;MDkzDD,kBACI,8P;MADJ,SClzDC,WAAI,WAAJ,C;MDozDD,kBACI,iH;MADJ,SCpzDC,WAAI,WAAJ,C;MDszDD,kBACI,8P;MADJ,SCtzDC,WAAI,WAAJ,C;MDwzDD,kBACI,uG;MADJ,SCxzDC,WAAI,WAAJ,C;MD0zDD,kBACI,2I;MADJ,SC1zDC,WAAI,WAAJ,C;MD4zDD,kBACI,2uB;MADJ,SC5zDC,WAAI,WAAJ,C;MD8zDD,kBACI,uI;MADJ,SC9zDC,WAAI,WAAJ,C;MDg0DD,kBACI,2N;MADJ,SCh0DC,WAAI,WAAJ,C;MDk0DD,kBACI,uI;MADJ,SCl0DC,WAAI,WAAJ,C;MDo0DD,kBACI,wH;MADJ,SCp0DC,WAAI,WAAJ,C;MDs0DD,kBACI,sQ;MADJ,SCt0DC,WAAI,WAAJ,C;MDw0DD,kBACI,yH;MADJ,SCx0DC,WAAI,WAAJ,C;MD00DD,kBACI,sQ;MADJ,SC10DC,WAAI,WAAJ,C;MD40DD,kBACI,+G;MADJ,SC50DC,WAAI,WAAJ,C;MD80DD,kBACI,yM;MADJ,SC90DC,WAAI,WAAJ,C;MDg1DD,kBACI,06B;MADJ,SCh1DC,WAAI,WAAJ,C;MDk1DD,kBACI,+J;MADJ,SCl1DC,WAAI,WAAJ,C;MDo1DD,kBACI,uO;MADJ,SCp1DC,WAAI,WAAJ,C;MDs1DD,kBACI,yJ;MADJ,SCt1DC,WAAI,WAAJ,C;MDw1DD,kBACI,wI;MADJ,SCx1DC,WAAI,WAAJ,C;MD01DD,kBACI,4Q;MADJ,SC11DC,WAAI,WAAJ,C;MD41DD,kBACI,+H;MADJ,SC51DC,WAAI,WAAJ,C;MD81DD,kBACI,4Q;MADJ,SC91DC,WAAI,WAAJ,C;MDg2DD,kBACI,qH;MADJ,SCh2DC,WAAI,WAAJ,C;MDk2DD,kBACI,0P;MADJ,SCl2DC,WAAI,WAAJ,C;MDo2DD,kBACI,0tC;MADJ,SCp2DC,WAAI,WAAJ,C;MDs2DD,kBACI,iL;MADJ,SCt2DC,WAAI,WAAJ,C;MDw2DD,kBACI,yO;MADJ,SCx2DC,WAAI,WAAJ,C;MD02DD,kBACI,6J;MADJ,SC12DC,WAAI,WAAJ,C;MD42DD,kBACI,4I;MADJ,SC52DC,WAAI,WAAJ,C;MD82DD,kBACI,8Q;MADJ,SC92DC,WAAI,WAAJ,C;MDg3DD,kBACI,iI;MADJ,SCh3DC,WAAI,WAAJ,C;MDk3DD,kBACI,8Q;MADJ,SCl3DC,WAAI,WAAJ,C;MDo3DD,kBACI,uH;MADJ,SCp3DC,WAAI,WAAJ,C;MDs3DD,kBACI,0Q;MADJ,SCt3DC,WAAI,WAAJ,C;MDw3DD,kBACI,kuC;MADJ,SCx3DC,WAAI,WAAJ,C;MD03DD,kBACI,uL;MADJ,SC13DC,WAAI,WAAJ,C;MD43DD,kBACI,wN;MADJ,SC53DC,WAAI,WAAJ,C;MD83DD,kBACI,iI;MADJ,SC93DC,WAAI,WAAJ,C;MDg4DD,kBACI,kH;MADJ,SCh4DC,WAAI,WAAJ,C;MDk4DD,kBACI,gQ;MADJ,SCl4DC,WAAI,WAAJ,C;MDo4DD,kBACI,sH;MADJ,SCp4DC,WAAI,WAAJ,C;MDs4DD,kBACI,gQ;MADJ,SCt4DC,WAAI,WAAJ,C;MDw4DD,kBACI,4G;MADJ,SCx4DC,WAAI,WAAJ,C;MD04DD,kBACI,8K;MADJ,SC14DC,WAAI,WAAJ,C;MD44DD,kBACI,w2B;MADJ,SC54DC,WAAI,WAAJ,C;MD84DD,kBACI,sJ;MADJ,SC94DC,WAAI,WAAJ,C;MDg5DD,kBACI,qO;MADJ,SCh5DC,WAAI,WAAJ,C;MDk5DD,kBACI,qJ;MADJ,SCl5DC,WAAI,WAAJ,C;MDo5DD,kBACI,oI;MADJ,SCp5DC,WAAI,WAAJ,C;MDs5DD,kBACI,6P;MADJ,SCt5DC,WAAI,WAAJ,C;MDw5DD,kBACI,6H;MADJ,SCx5DC,WAAI,WAAJ,C;MD05DD,kBACI,6P;MADJ,SC15DC,WAAI,WAAJ,C;MD45DD,kBACI,mH;MADJ,SC55DC,WAAI,WAAJ,C;MD85DD,kBACI,6N;MADJ,SC95DC,WAAI,WAAJ,C;MDg6DD,kBACI,m1B;MADJ,SCh6DC,WAAI,WAAJ,C;MDk6DD,kBACI,2K;MADJ,SCl6DC,WAAI,WAAJ,C;MDo6DD,kBACI,qO;MADJ,SCp6DC,WAAI,WAAJ,C;MDs6DD,kBACI,qJ;MADJ,SCt6DC,WAAI,WAAJ,C;MDw6DD,kBACI,oI;MADJ,SCx6DC,WAAI,WAAJ,C;MD06DD,kBACI,6P;MADJ,SC16DC,WAAI,WAAJ,C;MD46DD,kBACI,6H;MADJ,SC56DC,WAAI,WAAJ,C;MD86DD,kBACI,6P;MADJ,SC96DC,WAAI,WAAJ,C;MDg7DD,kBACI,mH;MADJ,SCh7DC,WAAI,WAAJ,C;MDk7DD,kBACI,6N;MADJ,SCl7DC,WAAI,WAAJ,C;MDo7DD,kBACI,upC;MADJ,SCp7DC,WAAI,WAAJ,C;MDs7DD,kBACI,2K;MADJ,SCt7DC,WAAI,WAAJ,C;MDw7DD,kBACI,0N;MADJ,SCx7DC,WAAI,WAAJ,C;MD07DD,kBACI,qI;MADJ,SC17DC,WAAI,WAAJ,C;MD47DD,kBACI,sH;MADJ,SC57DC,WAAI,WAAJ,C;MD87DD,kBACI,0P;MADJ,SC97DC,WAAI,WAAJ,C;MDg8DD,kBACI,sH;MADJ,SCh8DC,WAAI,WAAJ,C;MDk8DD,kBACI,0P;MADJ,SCl8DC,WAAI,WAAJ,C;MDo8DD,kBACI,4G;MADJ,SCp8DC,WAAI,WAAJ,C;MDs8DD,kBACI,wL;MADJ,SCt8DC,WAAI,WAAJ,C;MDw8DD,kBACI,4jB;MADJ,SCx8DC,WAAI,WAAJ,C;MD08DD,kBACI,0I;MADJ,SC18DC,WAAI,WAAJ,C;MD48DD,kBACI,0N;MADJ,SC58DC,WAAI,WAAJ,C;MD88DD,kBACI,qI;MADJ,SC98DC,WAAI,WAAJ,C;MDg9DD,kBACI,sH;MADJ,SCh9DC,WAAI,WAAJ,C;MDk9DD,kBACI,6P;MADJ,SCl9DC,WAAI,WAAJ,C;MDo9DD,kBACI,wH;MADJ,SCp9DC,WAAI,WAAJ,C;MDs9DD,kBACI,6P;MADJ,SCt9DC,WAAI,WAAJ,C;MDw9DD,kBACI,8G;MADJ,SCx9DC,WAAI,WAAJ,C;MD09DD,kBACI,yL;MADJ,SC19DC,WAAI,WAAJ,C;MD49DD,kBACI,2jC;MADJ,SC59DC,WAAI,WAAJ,C;MD89DD,kBACI,4J;MADJ,SC99DC,WAAI,WAAJ,C;MDg+DD,kBACI,8N;MADJ,SCh+DC,WAAI,WAAJ,C;MDk+DD,kBACI,6I;MADJ,SCl+DC,WAAI,WAAJ,C;MDo+DD,kBACI,8H;MADJ,SCp+DC,WAAI,WAAJ,C;MDs+DD,kBACI,4P;MADJ,SCt+DC,WAAI,WAAJ,C;MDw+DD,kBACI,4H;MADJ,SCx+DC,WAAI,WAAJ,C;MD0+DD,kBACI,4P;MADJ,SC1+DC,WAAI,WAAJ,C;MD4+DD,kBACI,kH;MADJ,SC5+DC,WAAI,WAAJ,C;MD8+DD,kBACI,oN;MADJ,SC9+DC,WAAI,WAAJ,C;MDg/DD,kBACI,s/C;MADJ,SCh/DC,WAAI,WAAJ,C;MDk/DD,kBACI,wK;MADJ,SCl/DC,WAAI,WAAJ,C;MDo/DD,kBACI,qP;MADJ,SCp/DC,WAAI,WAAJ,C;MDs/DD,kBACI,+K;MADJ,SCt/DC,WAAI,WAAJ,C;MDw/DD,kBACI,4J;MADJ,SCx/DC,WAAI,WAAJ,C;MD0/DD,kBACI,8P;MADJ,SC1/DC,WAAI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uQD,iBACI,sL;MADJ,QDvQC,WAAI,UAAJ,C;MC0QD,iBACI,0O;MADJ,QD1QC,WAAI,UAAJ,C;MC4QD,iBACI,uP;MADJ,QD5QC,WAAI,UAAJ,C;MC8QD,iBACI,qJ;MADJ,QD9QC,WAAI,UAAJ,C;MCgRD,iBACI,oI;MADJ,QDhRC,WAAI,UAAJ,C;MCmRD,iBACI,sP;MADJ,QDnRC,WAAI,UAAJ,C;MCqRD,iBAAY,+E;MAAZ,QDrRC,WAAI,UAAJ,C;MCsRD,iBACI,oP;MADJ,QDtRC,WAAI,UAAJ,C;MCwRD,iBACI,+I;MADJ,QDxRC,WAAI,UAAJ,C;MC0RD,iBACI,8H;MADJ,QD1RC,WAAI,UAAJ,C;MC6RD,iBACI,uhB;MADJ,QD7RC,WAAI,UAAJ,C;MC+RD,iBACI,6O;MADJ,QD/RC,WAAI,UAAJ,C;MCiSD,iBACI,uI;MADJ,QDjSC,WAAI,UAAJ,C;MCmSD,iBACI,wH;MADJ,QDnSC,WAAI,UAAJ,C;MCsSD,iBACI,yK;MADJ,QDtSC,WAAI,UAAJ,C;MCwSD,iBACI,iP;MADJ,QDxSC,WAAI,UAAJ,C;MC0SD,iBACI,+I;MADJ,QD1SC,WAAI,UAAJ,C;MC4SD,iBACI,gI;MADJ,QD5SC,WAAI,UAAJ,C;MC+SD,iBACI,2e;MADJ,QD/SC,WAAI,UAAJ,C;MCiTD,iBACI,sT;MADJ,QDjTC,WAAI,UAAJ,C;MCmTD,iBACI,iN;MADJ,QDnTC,WAAI,UAAJ,C;MCqTD,iBACI,0K;MADJ,QDrTC,WAAI,UAAJ,C;MCwTD,iBACI,ye;MADJ,QDxTC,WAAI,UAAJ,C;MC0TD,iBACI,6T;MADJ,QD1TC,WAAI,UAAJ,C;MC4TD,iBACI,yN;MADJ,QD5TC,WAAI,UAAJ,C;MC8TD,iBACI,gL;MADJ,QD9TC,WAAI,UAAJ,C;MCkUD,iBACI,wV;MADJ,QDlUC,WAAI,UAAJ,C;MCqUD,iBACI,8Q;MADJ,QDrUC,WAAI,UAAJ,C;MCwUD,iBACI,iS;MADJ,QDxUC,WAAI,UAAJ,C;MC0UD,iBACI,yL;MADJ,QD1UC,WAAI,UAAJ,C;MC4UD,iBACI,wJ;MADJ,QD5UC,WAAI,UAAJ,C;MC+UD,iBACI,qQ;MADJ,QD/UC,WAAI,UAAJ,C;MCiVD,iBACI,yJ;MADJ,QDjVC,WAAI,UAAJ,C;MCmVD,iBACI,gI;MADJ,QDnVC,WAAI,UAAJ,C;MCuVD,iBAAY,4B;MAAZ,QDvVC,WAAI,UAAJ,C;MCwVD,iBACI,ugC;MADJ,QDxVC,WAAI,UAAJ,C;MC0VD,iBAAY,+E;MAAZ,QD1VC,WAAI,UAAJ,C;MC4VD,iBAAY,uC;MAAZ,QD5VC,WAAI,UAAJ,C;MC6VD,iBACI,+X;MADJ,QD7VC,WAAI,UAAJ,C;MCgWD,iBAAY,kC;MAAZ,QDhWC,WAAI,UAAJ,C;MCiWD,iBACI,mlB;MADJ,QDjWC,WAAI,UAAJ,C;MCmWD,iBACI,sM;MADJ,QDnWC,WAAI,UAAJ,C;MCsWD,iBAAY,qB;MAAZ,QDtWC,WAAI,UAAJ,C;MCuWD,iBACI,mrB;MADJ,QDvWC,WAAI,UAAJ,C;MC2WD,iBAAY,iF;MAAZ,QD3WC,WAAI,UAAJ,C;MC6WD,iBAAY,iF;MAAZ,QD7WC,WAAI,UAAJ,C;MC+WD,iBAAY,uF;MAAZ,QD/WC,WAAI,UAAJ,C;MCmXD,iBACI,wR;MADJ,QDnXC,WAAI,UAAJ,C;MCqXD,iBACI,wR;MADJ,QDrXC,WAAI,UAAJ,C;MCuXD,iBACI,wR;MADJ,QDvXC,WAAI,UAAJ,C;MCyXD,iBACI,2I;MADJ,QDzXC,WAAI,UAAJ,C;MC2XD,iBACI,ob;MADJ,QD3XC,WAAI,UAAJ,C;MC8XD,iBACI,0S;MADJ,QD9XC,WAAI,UAAJ,C;MCgYD,iBACI,0S;MADJ,QDhYC,WAAI,UAAJ,C;MCkYD,iBACI,0S;MADJ,QDlYC,WAAI,UAAJ,C;MCoYD,iBACI,iM;MADJ,QDpYC,WAAI,UAAJ,C;MCsYD,iBACI,krB;MADJ,QDtYC,WAAI,UAAJ,C;MC0YD,iBACI,sS;MADJ,QD1YC,WAAI,UAAJ,C;MC4YD,iBACI,sS;MADJ,QD5YC,WAAI,UAAJ,C;MC8YD,iBACI,sS;MADJ,QD9YC,WAAI,UAAJ,C;MCgZD,iBACI,yP;MADJ,QDhZC,WAAI,UAAJ,C;MCkZD,iBACI,ujB;MADJ,QDlZC,WAAI,UAAJ,C;MCsZD,iBACI,4S;MADJ,QDtZC,WAAI,UAAJ,C;MCwZD,iBACI,4S;MADJ,QDxZC,WAAI,UAAJ,C;MC0ZD,iBACI,4S;MADJ,QD1ZC,WAAI,UAAJ,C;MC4ZD,iBACI,mS;MADJ,QD5ZC,WAAI,UAAJ,C;MC8ZD,iBACI,+rB;MADJ,QD9ZC,WAAI,UAAJ,C;MCiaD,iBACI,qT;MADJ,QDjaC,WAAI,UAAJ,C;MCmaD,iBACI,qT;MADJ,QDnaC,WAAI,UAAJ,C;MCqaD,iBACI,qT;MADJ,QDraC,WAAI,UAAJ,C;MCuaD,iBACI,2W;MADJ,QDvaC,WAAI,UAAJ,C;MCyaD,iBACI,wqB;MADJ,QDzaC,WAAI,UAAJ,C;MC2aD,iBAiBI,WAjBQ,mvBAiBR,C;MAjBJ,QD3aC,WAAI,UAAJ,C;MC8bD,kBACI,2R;MADJ,QD9bC,WAAI,WAAJ,C;MCgcD,kBACI,2R;MADJ,QDhcC,WAAI,WAAJ,C;MCkcD,kBACI,2R;MADJ,QDlcC,WAAI,WAAJ,C;MCocD,kBACI,wL;MADJ,QDpcC,WAAI,WAAJ,C;MCscD,kBACI,48C;MADJ,QDtcC,WAAI,WAAJ,C;MC0cD,kBACI,4T;MADJ,QD1cC,WAAI,WAAJ,C;MC4cD,kBACI,4T;MADJ,QD5cC,WAAI,WAAJ,C;MC8cD,kBACI,4T;MADJ,QD9cC,WAAI,WAAJ,C;MCgdD,kBACI,uP;MADJ,QDhdC,WAAI,WAAJ,C;MCkdD,kBACI,kyB;MADJ,QDldC,WAAI,WAAJ,C;MCqdD,kBACI,mS;MADJ,QDrdC,WAAI,WAAJ,C;MCudD,kBACI,mS;MADJ,QDvdC,WAAI,WAAJ,C;MCydD,kBACI,mS;MADJ,QDzdC,WAAI,WAAJ,C;MC2dD,kBACI,oO;MADJ,QD3dC,WAAI,WAAJ,C;MC6dD,kBACI,oe;MADJ,QD7dC,WAAI,WAAJ,C;MCgeD,kBACI,gS;MADJ,QDheC,WAAI,WAAJ,C;MCkeD,kBACI,gS;MADJ,QDleC,WAAI,WAAJ,C;MCoeD,kBACI,gS;MADJ,QDpeC,WAAI,WAAJ,C;MCseD,kBACI,+M;MADJ,QDteC,WAAI,WAAJ,C;MCweD,kBACI,ygB;MADJ,QDxeC,WAAI,WAAJ,C;MC2eD,kBACI,mT;MADJ,QD3eC,WAAI,WAAJ,C;MC6eD,kBACI,mT;MADJ,QD7eC,WAAI,WAAJ,C;MC+eD,kBACI,mT;MADJ,QD/eC,WAAI,WAAJ,C;MCifD,kBACI,iN;MADJ,QDjfC,WAAI,WAAJ,C;MCmfD,kBACI,g2C;MADJ,QDnfC,WAAI,WAAJ,C;MCqfD,kBAiBI,WAjBQ,srBAiBR,C;MAjBJ,QDrfC,WAAI,WAAJ,C;MCwgBD,kBACI,iS;MADJ,QDxgBC,WAAI,WAAJ,C;MC0gBD,kBACI,iS;MADJ,QD1gBC,WAAI,WAAJ,C;MC4gBD,kBACI,iS;MADJ,QD5gBC,WAAI,WAAJ,C;MC8gBD,kBACI,kO;MADJ,QD9gBC,WAAI,WAAJ,C;MCghBD,kBACI,2Y;MADJ,QDhhBC,WAAI,WAAJ,C;MCmhBD,kBACI,sT;MADJ,QDnhBC,WAAI,WAAJ,C;MCqhBD,kBACI,sT;MADJ,QDrhBC,WAAI,WAAJ,C;MCuhBD,kBACI,sT;MADJ,QDvhBC,WAAI,WAAJ,C;MCyhBD,kBACI,qO;MADJ,QDzhBC,WAAI,WAAJ,C;MC2hBD,kBACI,owC;MADJ,QD3hBC,WAAI,WAAJ,C;MC8hBD,kBACI,yT;MADJ,QD9hBC,WAAI,WAAJ,C;MCgiBD,kBACI,yT;MADJ,QDhiBC,WAAI,WAAJ,C;MCkiBD,kBACI,yT;MADJ,QDliBC,WAAI,WAAJ,C;MCoiBD,kBACI,8O;MADJ,QDpiBC,WAAI,WAAJ,C;MCsiBD,kBACI,ovC;MADJ,QDtiBC,WAAI,WAAJ,C;MCyiBD,kBACI,iS;MADJ,QDziBC,WAAI,WAAJ,C;MC2iBD,kBACI,iS;MADJ,QD3iBC,WAAI,WAAJ,C;MC6iBD,kBACI,iS;MADJ,QD7iBC,WAAI,WAAJ,C;MC+iBD,kBACI,sK;MADJ,QD/iBC,WAAI,WAAJ,C;MCijBD,kBACI,gxB;MADJ,QDjjBC,WAAI,WAAJ,C;MCojBD,kBACI,6S;MADJ,QDpjBC,WAAI,WAAJ,C;MCsjBD,kBACI,6S;MADJ,QDtjBC,WAAI,WAAJ,C;MCwjBD,kBACI,6S;MADJ,QDxjBC,WAAI,WAAJ,C;MC0jBD,kBACI,0M;MADJ,QD1jBC,WAAI,WAAJ,C;MC4jBD,kBACI,knB;MADJ,QD5jBC,WAAI,WAAJ,C;MCgkBD,kBAAY,iD;MAAZ,QDhkBC,WAAI,WAAJ,C;MCikBD,kBAAY,0D;MAAZ,QDjkBC,WAAI,WAAJ,C;MCkkBD,kBAAY,mC;MAAZ,QDlkBC,WAAI,WAAJ,C;MCmkBD,kBAAY,mC;MAAZ,QDnkBC,WAAI,WAAJ,C;MCokBD,kBAAY,mC;MAAZ,QDpkBC,WAAI,WAAJ,C;MCskBD,kBACI,oN;MADJ,QDtkBC,WAAI,WAAJ,C;MCwkBD,kBACI,w2D;MADJ,QDxkBC,WAAI,WAAJ,C;MC0kBD,kBACI,8S;MADJ,QD1kBC,WAAI,WAAJ,C;MC4kBD,kBACI,8S;MADJ,QD5kBC,WAAI,WAAJ,C;MC8kBD,kBACI,8S;MADJ,QD9kBC,WAAI,WAAJ,C;MCilBD,kBAAY,4D;MAAZ,QDjlBC,WAAI,WAAJ,C;MCklBD,kBAAY,qE;MAAZ,QDllBC,WAAI,WAAJ,C;MCmlBD,kBAAY,mC;MAAZ,QDnlBC,WAAI,WAAJ,C;MColBD,kBAAY,mC;MAAZ,QDplBC,WAAI,WAAJ,C;MCqlBD,kBAAY,mC;MAAZ,QDrlBC,WAAI,WAAJ,C;MCwlBD,kBAAY,0C;MAAZ,QDxlBC,WAAI,WAAJ,C;MCylBD,kBAAY,mD;MAAZ,QDzlBC,WAAI,WAAJ,C;MC0lBD,kBAAY,mC;MAAZ,QD1lBC,WAAI,WAAJ,C;MC2lBD,kBAAY,mC;MAAZ,QD3lBC,WAAI,WAAJ,C;MC4lBD,kBAAY,mC;MAAZ,QD5lBC,WAAI,WAAJ,C;MC6lBD,kBACI,+K;MADJ,QD7lBC,WAAI,WAAJ,C;MC+lBD,kBACI,wiD;MADJ,QD/lBC,WAAI,WAAJ,C;MCimBD,kBACI,8R;MADJ,QDjmBC,WAAI,WAAJ,C;MCmmBD,kBACI,8R;MADJ,QDnmBC,WAAI,WAAJ,C;MCqmBD,kBACI,8R;MADJ,QDrmBC,WAAI,WAAJ,C;;MCwmBD,kBACI,4L;MADJ,QDxmBC,WAAI,WAAJ,C;MC2mBD,kBACI,4R;MADJ,QD3mBC,WAAI,WAAJ,C;MC8mBD,kBACI,4O;MADJ,QD9mBC,WAAI,WAAJ,C;MCgnBD,kBACI,iI;MADJ,QDhnBC,WAAI,WAAJ,C;MCknBD,kBACI,8G;MADJ,QDlnBC,WAAI,WAAJ,C;MCqnBD,kBACI,sR;MADJ,QDrnBC,WAAI,WAAJ,C;MCunBD,kBACI,iL;MADJ,QDvnBC,WAAI,WAAJ,C;MCynBD,kBACI,kJ;MADJ,QDznBC,WAAI,WAAJ,C;MC4nBD,kBACI,8P;MADJ,QD5nBC,WAAI,WAAJ,C;MC8nBD,kBACI,sP;MADJ,QD9nBC,WAAI,WAAJ,C;MCgoBD,kBACI,2J;MADJ,QDhoBC,WAAI,WAAJ,C;MCkoBD,kBACI,0I;MADJ,QDloBC,WAAI,WAAJ,C;MCqoBD,kBACI,sS;MADJ,QDroBC,WAAI,WAAJ,C;MCwoBD,kBACI,2Q;MADJ,QDxoBC,WAAI,WAAJ,C;MC2oBD,kBACI,4Q;MADJ,QD3oBC,WAAI,WAAJ,C;MC6oBD,kBACI,iM;MADJ,QD7oBC,WAAI,WAAJ,C;MC+oBD,kBACI,8K;MADJ,QD/oBC,WAAI,WAAJ,C;MCkpBD,kBACI,4P;MADJ,QDlpBC,WAAI,WAAJ,C;MCopBD,kBACI,uK;MADJ,QDppBC,WAAI,WAAJ,C;MCspBD,kBACI,sJ;MADJ,QDtpBC,WAAI,WAAJ,C;MCypBD,kBACI,upB;MADJ,QDzpBC,WAAI,WAAJ,C;MC2pBD,kBAAY,uE;MAAZ,QD3pBC,WAAI,WAAJ,C;MC6pBD,kBACI,uO;MADJ,QD7pBC,WAAI,WAAJ,C;MC+pBD,kBACI,mI;MADJ,QD/pBC,WAAI,WAAJ,C;MCiqBD,kBACI,oH;MADJ,QDjqBC,WAAI,WAAJ,C;MCoqBD,kBACI,iS;MADJ,QDpqBC,WAAI,WAAJ,C;MCuqBD,kBACI,gU;MADJ,QDvqBC,WAAI,WAAJ,C;MCyqBD,kBACI,iO;MADJ,QDzqBC,WAAI,WAAJ,C;MC2qBD,kBACI,sL;MADJ,QD3qBC,WAAI,WAAJ,C;MC8qBD,kBACI,0N;MADJ,QD9qBC,WAAI,WAAJ,C;MCirBD,kBACI,mP;MADJ,QDjrBC,WAAI,WAAJ,C;MCmrBD,kBACI,qJ;MADJ,QDnrBC,WAAI,WAAJ,C;MCqrBD,kBACI,oI;MADJ,QDrrBC,WAAI,WAAJ,C;MCwrBD,kBACI,oO;MADJ,QDxrBC,WAAI,WAAJ,C;MC0rBD,kBAAY,+E;MAAZ,QD1rBC,WAAI,WAAJ,C;MC4rBD,kBACI,gP;MADJ,QD5rBC,WAAI,WAAJ,C;MC8rBD,kBACI,+I;MADJ,QD9rBC,WAAI,WAAJ,C;MCgsBD,kBACI,8H;MADJ,QDhsBC,WAAI,WAAJ,C;MCmsBD,kBACI,kgB;MADJ,QDnsBC,WAAI,WAAJ,C;MCqsBD,kBACI,yO;MADJ,QDrsBC,WAAI,WAAJ,C;MCusBD,kBACI,uI;MADJ,QDvsBC,WAAI,WAAJ,C;MCysBD,kBACI,wH;MADJ,QDzsBC,WAAI,WAAJ,C;MC4sBD,kBACI,2J;MADJ,QD5sBC,WAAI,WAAJ,C;MC8sBD,kBACI,6O;MADJ,QD9sBC,WAAI,WAAJ,C;MCgtBD,kBACI,+I;MADJ,QDhtBC,WAAI,WAAJ,C;MCktBD,kBACI,gI;MADJ,QDltBC,WAAI,WAAJ,C;MCqtBD,kBACI,md;MADJ,QDrtBC,WAAI,WAAJ,C;MCwtBD,kBACI,kT;MADJ,QDxtBC,WAAI,WAAJ,C;MC0tBD,kBACI,iN;MADJ,QD1tBC,WAAI,WAAJ,C;MC4tBD,kBACI,0K;MADJ,QD5tBC,WAAI,WAAJ,C;MC+tBD,kBACI,kd;MADJ,QD/tBC,WAAI,WAAJ,C;MCiuBD,kBACI,yT;MADJ,QDjuBC,WAAI,WAAJ,C;MCmuBD,kBACI,yN;MADJ,QDnuBC,WAAI,WAAJ,C;MCquBD,kBACI,gL;MADJ,QDruBC,WAAI,WAAJ,C;MCwuBD,kBACI,sU;MADJ,QDxuBC,WAAI,WAAJ,C;MC0uBD,kBACI,6P;MADJ,QD1uBC,WAAI,WAAJ,C;MC6uBD,kBACI,6R;MADJ,QD7uBC,WAAI,WAAJ,C;MC+uBD,kBACI,yL;MADJ,QD/uBC,WAAI,WAAJ,C;MCivBD,kBACI,wJ;MADJ,QDjvBC,WAAI,WAAJ,C;MCovBD,kBACI,iQ;MADJ,QDpvBC,WAAI,WAAJ,C;MCsvBD,kBACI,yJ;MADJ,QDtvBC,WAAI,WAAJ,C;MCwvBD,kBACI,gI;MADJ,QDxvBC,WAAI,WAAJ,C;MC6vBD,kBAAY,uC;MAAZ,QD7vBC,WAAI,WAAJ,C;MC8vBD,kBAAY,4B;MAAZ,QD9vBC,WAAI,WAAJ,C;MC+vBD,kBACI,2+B;MADJ,QD/vBC,WAAI,WAAJ,C;MCiwBD,kBAAY,+E;MAAZ,QDjwBC,WAAI,WAAJ,C;MCmwBD,kBAAY,kD;MAAZ,QDnwBC,WAAI,WAAJ,C;MCowBD,kBAAY,uC;MAAZ,QDpwBC,WAAI,WAAJ,C;MCqwBD,kBACI,0W;MADJ,QDrwBC,WAAI,WAAJ,C;MCywBD,kBAAY,kC;MAAZ,QDzwBC,WAAI,WAAJ,C;MC0wBD,kBACI,ikB;MADJ,QD1wBC,WAAI,WAAJ,C;MC4wBD,kBACI,sM;MADJ,QD5wBC,WAAI,WAAJ,C;MC+wBD,kBAAY,gC;MAAZ,QD/wBC,WAAI,WAAJ,C;MCgxBD,kBACI,opB;MADJ,QDhxBC,WAAI,WAAJ,C;MCqxBD,kBAAY,iF;MAAZ,QDrxBC,WAAI,WAAJ,C;MCuxBD,kBAAY,gF;MAAZ,QDvxBC,WAAI,WAAJ,C;MCyxBD,kBAAY,uF;MAAZ,QDzxBC,WAAI,WAAJ,C;MC6xBD,kBACI,8P;MADJ,QD7xBC,WAAI,WAAJ,C;MC+xBD,kBACI,iH;MADJ,QD/xBC,WAAI,WAAJ,C;MCiyBD,kBACI,8P;MADJ,QDjyBC,WAAI,WAAJ,C;MCmyBD,kBACI,uG;MADJ,QDnyBC,WAAI,WAAJ,C;MCqyBD,kBACI,2I;MADJ,QDryBC,WAAI,WAAJ,C;MCuyBD,kBACI,+f;MADJ,QDvyBC,WAAI,WAAJ,C;MCyyBD,kBACI,uI;MADJ,QDzyBC,WAAI,WAAJ,C;MC4yBD,kBACI,oQ;MADJ,QD5yBC,WAAI,WAAJ,C;MC8yBD,kBACI,uH;MADJ,QD9yBC,WAAI,WAAJ,C;MCgzBD,kBACI,oQ;MADJ,QDhzBC,WAAI,WAAJ,C;MCkzBD,kBACI,6G;MADJ,QDlzBC,WAAI,WAAJ,C;MCozBD,kBACI,iM;MADJ,QDpzBC,WAAI,WAAJ,C;MCszBD,kBACI,uvB;MADJ,QDtzBC,WAAI,WAAJ,C;MCwzBD,kBACI,yJ;MADJ,QDxzBC,WAAI,WAAJ,C;MC2zBD,kBACI,6P;MADJ,QD3zBC,WAAI,WAAJ,C;MC6zBD,kBACI,iI;MADJ,QD7zBC,WAAI,WAAJ,C;MC+zBD,kBACI,6P;MADJ,QD/zBC,WAAI,WAAJ,C;MCi0BD,kBACI,uH;MADJ,QDj0BC,WAAI,WAAJ,C;MCm0BD,kBACI,yP;MADJ,QDn0BC,WAAI,WAAJ,C;MCq0BD,kBACI,mnB;MADJ,QDr0BC,WAAI,WAAJ,C;MCu0BD,kBACI,uL;MADJ,QDv0BC,WAAI,WAAJ,C;MC00BD,kBACI,6P;MADJ,QD10BC,WAAI,WAAJ,C;MC40BD,kBACI,uI;MADJ,QD50BC,WAAI,WAAJ,C;MC80BD,kBACI,6P;MADJ,QD90BC,WAAI,WAAJ,C;MCg1BD,kBACI,6H;MADJ,QDh1BC,WAAI,WAAJ,C;MCk1BD,kBACI,mS;MADJ,QDl1BC,WAAI,WAAJ,C;MCo1BD,kBACI,qvB;MADJ,QDp1BC,WAAI,WAAJ,C;MCs1BD,kBACI,yM;MADJ,QDt1BC,WAAI,WAAJ,C;MC01BD,kBACI,4P;MADJ,QD11BC,WAAI,WAAJ,C;MC41BD,kBACI,+I;MADJ,QD51BC,WAAI,WAAJ,C;MC81BD,kBACI,4P;MADJ,QD91BC,WAAI,WAAJ,C;MCg2BD,kBACI,qI;MADJ,QDh2BC,WAAI,WAAJ,C;MCk2BD,kBACI,2W;MADJ,QDl2BC,WAAI,WAAJ,C;MCo2BD,kBACI,otB;MADJ,QDp2BC,WAAI,WAAJ,C;MCs2BD,kBACI,uO;MADJ,QDt2BC,WAAI,WAAJ,C;MCw2BD,kBAeI,WAfQ,woBAeR,C;MAfJ,QDx2BC,WAAI,WAAJ,C;MCw3BD,kBAKI,WALQ,yRAKR,C;MALJ,QDx3BC,WAAI,WAAJ,C;MC+3BD,kBACI,4P;MADJ,QD/3BC,WAAI,WAAJ,C;MCi4BD,kBACI,wH;MADJ,QDj4BC,WAAI,WAAJ,C;MCm4BD,kBACI,4P;MADJ,QDn4BC,WAAI,WAAJ,C;MCq4BD,kBACI,8G;MADJ,QDr4BC,WAAI,WAAJ,C;MCu4BD,kBACI,wL;MADJ,QDv4BC,WAAI,WAAJ,C;MCy4BD,kBACI,ihD;MADJ,QDz4BC,WAAI,WAAJ,C;MC24BD,kBACI,4J;MADJ,QD34BC,WAAI,WAAJ,C;MC84BD,kBACI,0Q;MADJ,QD94BC,WAAI,WAAJ,C;MCg5BD,kBACI,6H;MADJ,QDh5BC,WAAI,WAAJ,C;MCk5BD,kBACI,0Q;MADJ,QDl5BC,WAAI,WAAJ,C;MCo5BD,kBACI,mH;MADJ,QDp5BC,WAAI,WAAJ,C;MCs5BD,kBACI,uP;MADJ,QDt5BC,WAAI,WAAJ,C;MCw5BD,kBACI,i2B;MADJ,QDx5BC,WAAI,WAAJ,C;MC05BD,kBACI,2K;MADJ,QD15BC,WAAI,WAAJ,C;MC65BD,kBACI,6P;MADJ,QD75BC,WAAI,WAAJ,C;MC+5BD,kBACI,8H;MADJ,QD/5BC,WAAI,WAAJ,C;MCi6BD,kBACI,6P;MADJ,QDj6BC,WAAI,WAAJ,C;MCm6BD,kBACI,oH;MADJ,QDn6BC,WAAI,WAAJ,C;MCq6BD,kBACI,oO;MADJ,QDr6BC,WAAI,WAAJ,C;MCu6BD,kBACI,miB;MADJ,QDv6BC,WAAI,WAAJ,C;MCy6BD,kBACI,8K;MADJ,QDz6BC,WAAI,WAAJ,C;MC46BD,kBACI,6P;MADJ,QD56BC,WAAI,WAAJ,C;MC86BD,kBACI,2H;MADJ,QD96BC,WAAI,WAAJ,C;MCg7BD,kBACI,6P;MADJ,QDh7BC,WAAI,WAAJ,C;MCk7BD,kBACI,iH;MADJ,QDl7BC,WAAI,WAAJ,C;MCo7BD,kBACI,+M;MADJ,QDp7BC,WAAI,WAAJ,C;MCs7BD,kBACI,2kB;MADJ,QDt7BC,WAAI,WAAJ,C;MCw7BD,kBACI,qK;MADJ,QDx7BC,WAAI,WAAJ,C;MC27BD,kBACI,uQ;MADJ,QD37BC,WAAI,WAAJ,C;MC67BD,kBACI,0H;MADJ,QD77BC,WAAI,WAAJ,C;MC+7BD,kBACI,uQ;MADJ,QD/7BC,WAAI,WAAJ,C;MCi8BD,kBACI,gH;MADJ,QDj8BC,WAAI,WAAJ,C;MCm8BD,kBACI,iN;MADJ,QDn8BC,WAAI,WAAJ,C;MCq8BD,kBACI,m6C;MADJ,QDr8BC,WAAI,WAAJ,C;MCu8BD,kBACI,kK;MADJ,QDv8BC,WAAI,WAAJ,C;MCy8BD,kBAeI,WAfQ,ylBAeR,C;MAfJ,QDz8BC,WAAI,WAAJ,C;MCy9BD,kBAKI,WALQ,6NAKR,C;MALJ,QDz9BC,WAAI,WAAJ,C;MCg+BD,kBACI,4P;MADJ,QDh+BC,WAAI,WAAJ,C;MCk+BD,kBACI,8H;MADJ,QDl+BC,WAAI,WAAJ,C;MCo+BD,kBACI,4P;MADJ,QDp+BC,WAAI,WAAJ,C;MCs+BD,kBACI,oH;MADJ,QDt+BC,WAAI,WAAJ,C;MCw+BD,kBACI,kO;MADJ,QDx+BC,WAAI,WAAJ,C;MC0+BD,kBACI,0c;MADJ,QD1+BC,WAAI,WAAJ,C;MC4+BD,kBACI,8K;MADJ,QD5+BC,WAAI,WAAJ,C;MCi/BD,kBACI,wQ;MADJ,QDj/BC,WAAI,WAAJ,C;MCm/BD,kBACI,2H;MADJ,QDn/BC,WAAI,WAAJ,C;MCq/BD,kBACI,wQ;MADJ,QDr/BC,WAAI,WAAJ,C;MCu/BD,kBACI,iH;MADJ,QDv/BC,WAAI,WAAJ,C;MCy/BD,kBACI,qO;MADJ,QDz/BC,WAAI,WAAJ,C;MC2/BD,kBACI,q0C;MADJ,QD3/BC,WAAI,WAAJ,C;MC6/BD,kBACI,qK;MADJ,QD7/BC,WAAI,WAAJ,C;MCggCD,kBACI,yQ;MADJ,QDhgCC,WAAI,WAAJ,C;MCkgCD,kBACI,4H;MADJ,QDlgCC,WAAI,WAAJ,C;MCogCD,kBACI,yQ;MADJ,QDpgCC,WAAI,WAAJ,C;MCsgCD,kBACI,kH;MADJ,QDtgCC,WAAI,WAAJ,C;MCwgCD,kBACI,8O;MADJ,QDxgCC,WAAI,WAAJ,C;MC0gCD,kBACI,ozC;MADJ,QD1gCC,WAAI,WAAJ,C;MC4gCD,kBACI,wK;MADJ,QD5gCC,WAAI,WAAJ,C;MC+gCD,kBACI,iQ;MADJ,QD/gCC,WAAI,WAAJ,C;MCihCD,kBACI,oH;MADJ,QDjhCC,WAAI,WAAJ,C;MCmhCD,kBACI,iQ;MADJ,QDnhCC,WAAI,WAAJ,C;MCqhCD,kBACI,0G;MADJ,QDrhCC,WAAI,WAAJ,C;MCuhCD,kBACI,sK;MADJ,QDvhCC,WAAI,WAAJ,C;MCyhCD,kBACI,w1B;MADJ,QDzhCC,WAAI,WAAJ,C;MC2hCD,kBACI,gJ;MADJ,QD3hCC,WAAI,WAAJ,C;MC+hCD,kBACI,qQ;MADJ,QD/hCC,WAAI,WAAJ,C;MCiiCD,kBACI,wH;MADJ,QDjiCC,WAAI,WAAJ,C;MCmiCD,kBACI,qQ;MADJ,QDniCC,WAAI,WAAJ,C;MCqiCD,kBACI,8G;MADJ,QDriCC,WAAI,WAAJ,C;MCuiCD,kBACI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,QDzrCC,WAAI,SAAJ,C;MC2rCD,iBACI,qP;MADJ,QD3rCC,WAAI,UAAJ,C;MC6rCD,iBACI,yJ;MADJ,QD7rCC,WAAI,UAAJ,C;MC+rCD,iBACI,wI;MADJ,QD/rCC,WAAI,UAAJ,C;MCksCD,iBACI,6P;MADJ,QDlsCC,WAAI,UAAJ,C;MCosCD,iBACI,gI;MADJ,QDpsCC,WAAI,UAAJ,C;MCssCD,iBACI,6P;MADJ,QDtsCC,WAAI,UAAJ,C;MCwsCD,iBACI,sH;MADJ,QDxsCC,WAAI,UAAJ,C;MC0sCD,iBACI,kP;MADJ,QD1sCC,WAAI,UAAJ,C;MC4sCD,iBACI,guB;MADJ,QD5sCC,WAAI,UAAJ,C;MC8sCD,iBACI,kK;MADJ,QD9sCC,WAAI,UAAJ,C;MCgtCD,iBAeI,WAfQ,+jBAeR,C;MAfJ,QDhtCC,WAAI,UAAJ,C;MCguCD,iBAKI,WALQ,qOAKR,C;MALJ,QDhuCC,WAAI,UAAJ,C;;ICkpCL,OAuFA,Q;G;;EAGyD,sC;IACzD,ebrsCoD,gB;IassCpD,cAAY,+E;IAAZ,QD9uCK,WAAI,OAAJ,C;IC6uCL,OAGA,Q;G;;EAIyD,sC;IACjC,gBb7sC4B,gB;IcTpD,SDutCI,WAAI,0CAAJ,C;ICvtCJ,SDwtCI,WAAI,yCAAJ,C;IAFJ,OCrtCO,S;G;;;EC5EX,mC;;;;;;;;;;;;;;G;;;ECgEA,4C;;;;;;;G;;;ECnEA,iD;;;;;;;;G;;;ECKA,4B;;;;;;;;G;;;EbAA,kC;;;;;;;;;G;;;EcKA,2C;;;;;;;G;;;ECAA,qC;;;;;;;G;;;ECRA,qD;;;;;;;;;;;;;;G;;;EfGA,6B;;;;;;;;;;;;;;;;;;;;;;;;;;;G;;;EgBAA,uC;;;;;;;;;;;;;;;;;;;;;;;;;;G;;;ECAA,kD;;;;;;;;;;;;G;;;EC8DA,2D;;;;;;;G;;;ECAA,gD;;;;;;;G;;;EC9DA,6C;;;;;;;;;;;;;;;;G;;;ECJA,sD;;;;;;;;;;;;;;;;;;;;;;;;;;;G;;;ECAA,kD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;G;;;ECDA,mD;;;;;;;;;;;;;;;;;;;;;;;;;;;G;;;ECKA,wC;;;;;;;;;;;G;;;EC8DA,iD;;;;;;;G;;;ECzDA,sC;;;;;;;;;;;;;;;;;G;;;ECyDA,+C;;;;;;;G;;;EClEA,+C;;;;;;;;;;;;;;;;;;G;;;ECDA,4D;;;;;;;;;;;;;;;;;;;G;;;ECCA,uD;;;;;;;;;;;;;;;;;;;G;;;ECAA,gD;;;;;;;;;;;;;;;;;;G;;;ECEA,gC;;;;;;;;;;;;;;;;;;;G;;;ECEA,gD;;;;;;;;;;;G;;;EC8DA,yD;;;;;;;G;;;EClEA,0D;;;;;;;;;;;;G;;;ECkEA,yC;;;;;;;G;;;ECAA,sC;;;;;;;G;;;EClEA,+C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;G;;;ECAA,uE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;G;;;ECAA,mD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;G;;;ECAA,uC;;;;;;;;;;;;;;;;;;;;;;;;;;;;G;;;ECEA,gC;;;;;;;;;;;;;;;;;;;;G;;;ECgEA,yC;;;;;;;G;;;EClEA,0C;;;;;;;;;;;;;;;;;;;;;G;;;ECCA,0C;;;;;;;G;;;ECGA,iC;;;;;;;;;;;;;;;G;;;ECHA,qC;;;;;G;;;ECCA,sC;;;;;;;G;;;ECAA,0C;;;;;;;;;;G;;;ECHA,oD;;;;;G;;;ECCA,4D;;;;;;;;G;;;ECDA,6C;;;;;;;;G;;;EAGA,0D;;;;;G;;;ECHA,sD;;;;;;;;;G;;;ECEA,0C;;;;;;;;;;;;;;;;;G;;;ECFA,yC;;;;;G;;;ECmEA,0C;;;;;;;G;;;ECnEA,+C;;;;;G;;;ECAA,iD;;;;;;;;;;;;;;;;;G;;;ECKA,uC;;;;;;;;;;G;;;EC8DA,gD;;;;;;;G;;;EC9DA,6C;;;;;;;;;;G;;;EC8DA,sD;;;;;;;G;;;EC9DA,oC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;G;;;ECCA,uD;;;;;;;;;;G;;;EC6DA,gE;;;;;;;G;;;ECnEA,wD;;;;;;;G;;;ECOA,mD;;;;;;;;;;;G;;;EC4DA,4D;;;;;;;G;;;EChEA,2C;;;;;;;;;;;G;;;ECKA,oD;;;;;;;G;;;ECHA,oD;;;;;;;;;;;;;G;;;EC8DA,6D;;;;;;;G;;;ECnEA,gE;;;;;;G;;;ECCA,gE;;;;;;;;;;;;;;G;;;ECkEA,6C;;;;;;;G;;;EClEA,0D;;;;;;;;;;;;;G;;;ECDA,uD;;;;;;;;;;;;;;G;;;ECCA,wD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;G;;;ECAA,gD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;G;;;ECAA,2D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;G;;;ECAA,6E;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;G;;;ECAA,sF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;G;;;ECAA,iD;;;;;;;;;;;G;;;ECGA,mD;;;;;;;;;;;G;;;EC+DA,4D;;;;;;;G;;;EChEA,4C;;;;;;;;;G;;;ECAA,kD;;;;;;;;;;G;;;ECCA,4D;;;;;;;;;;;G;;;ECHA,gE;;;;;;;;;;;G;;;ECGA,mC;;;;;;;;;;;;;;;;;;;;;;G;;;ECJA,6C;;;;;;;;;;;;;;;;;;;;;;;;;;;;G;;;ECCA,+C;;;;;;;;;;;;;;;;;;;;;;;;;;G;;;ECGA,wC;;;;;;;;;G;;;ECMA,iD;;;;;;;G;;;ECPA,yC;;;;;;;;G;;;ECFA,+C;;;;;;;;;;;;;;;;;;;;;;;;;;;;G;;;ECGA,sC;;;;;;;;;G;;;ECDA,qC;;;;;;;;;;;;;;;G;;;ECOA,8C;;;;;;;G;;;ECNA,yC;;;;;;;G;;;ECFA,qC;;;;;;;G;;;ECEA,sC;;;;;;;;;;;;;G;;;ECMA,+C;;;;;;;G;;;ECTA,iD;;;;;;;;;;;;;;;;;;G;;;ECGA,uC;;;;;;;;;;;;;G;;;ECJA,iD;;;;;;;;;;;;;;;G;;;ECUA,gD;;;;;;;G;;;ECVA,8C;;;;;;;G;;;ECMA,kC;;;;;;;;;;;;;G;;;ECJA,iD;;;;;;;;;;;;;;;G;;;ECFA,2C;;;;;;;;G;;;;ECmEA,4C;;;;;;;G;;;EC9DA,4C;;;;;;;;;;;G;;;EC8DA,qD;;;;;;;G;;;EC/DA,+B;;;;;;;;;;;;;G;;;ECDA,uC;;;;;;;;;;;G;;;ECgEA,gD;;;;;;;G;;;ECnEA,qD;;;;;;;;;;;;G;;;ECmEA,wC;;;;;;;G;;;ECnEA,sC;;;;;G;;;EvHIA,gC;;;;;;;;;;;;;;G;;;EwH+DA,yC;;;;;;;G;;;EC9DA,uC;;;;;;;;;;;G;;;EC8DA,gD;;;;;;;G;;;EChEA,oC;;;;;;;;;;;G;;;ECAA,0C;;;;;;;;;;;;G;;;ECgEA,mD;;;;;;;G;;;EClEA,oD;;;;;;;;;;;;;G;;;ECkEA,6C;;;;;;;G;;;EChEA,qC;;;;;;;;;G;;;ECgEA,8C;;;;;;;G;;;ECjEA,iD;;;;G;;;ECGA,+B;;;;;;;;;;;G;;;ECDA,mC;;;;;;;;G;;;ECMA,4C;;;;;;;G;;;ECAA,wC;;;;;;;G;;;ECTA,yC;;;;;;;;;;;;;G;;;ECDA,8B;;;;;;;;G;;;EA2DA,uC;;;;;G;;;ECxDA,mC;;;;;;;;;;;;;;;;G;;;ECIA,8B;;;;;;;;;;;;;;;;;;;;;;;;;;;G;;;ECNA,kC;;;;;;G;;;;ECkEA,4C;;;;;;;G;;;EChEA,mC;;;;;;;;;;;G;;;ECCA,yC;;;;;;;;;;;G;;;EC+DA,kD;;;;;;;G;;;ECAA,4C;;;;;;;G;;;ECnEA,kD;;;;;;;;;;;;G;;;ECCA,wC;;;;;G;;;ECGA,wC;;;;;;;;;;;;;;;;;G;;;EC+DA,iD;;;;;;;G;;;EClEA,uD;;;;;;;;;;;;;;;;;;G;;;ECEA,qC;;;;;;;;;;;;;;;G;;;ECgEA,8C;;;;;;;G;;;ECAA,uC;;;;;;;G;;;ECnEA,yC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;G;;;ECCA,iD;;;;;;;;;;;;;G;;;ECDA,uD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;G;;;ECAA,gD;;;;;;;;;;;;;;;;;;;;;;;;;;;G;;;ECCA,kD;;;;;;;;;;;;;;;;;;;;;;;;;;;;G;;;ECDA,iD;;;;;;;;;;;G;;;E7JIA,8B;;;;;;;;;;;;;;;;;;;;;;;;;;;G;;;E8JJA,oC;;;;;;;;;;;G;;;ECCA,sD;;;;;;;;;;;;;;;G;;;ECkEA,uC;;;;;;;G;;;ECnEA,oC;;;;;;;;;G;;;ECAA,mD;;;;;;;;;;;;;;;;;;;;;;;;;;;;G;;;EjKKA,4B;;;;;;;;;;;G;;;EkKFA,gC;;;;;;;;;;;;;;;;G;;;ECgEA,yC;;;;;;;G;;;EC1DA,8B;;;;;;;;;;;;;;;;;;;;;;;;G;;;ECAA,oC;;;;;;;;;;;;;;G;;;EC0DA,6C;;;;;;;G;;;EClEA,8C;;;;;;;;;;;;;;;G;;;ECEA,qC;;;;;;;;;;;;G;;;ECgEA,uC;;;;;;;G;;;EClEA,iD;;;;;;;;;;;;;;;;;;;;;;;;;G;;;ECDA,wD;;;;;;;;;;;;;;;;;;;;;;;;;;;;G;;;E1KKA,mC;;;;;;;;;;;;;;G;;;E2KJA,0C;;;;;G;;;ECkEA,4C;;;;;;;G;;;ECnEA,2C;;;;;;;;;;;;;;;G;;;ECIA,uC;;;;;;;;;;;;;;;;;;G;;;ECHA,oD;;;;;;;;;;;;;;;;;;;G;;;ECCA,iC;;;;;;;G;;;ECCA,4B;;;;;;;;;;;;G;;;ECgEA,qC;;;;;;;G;;;EChEA,iC;;;;;;;;;;;;G;;;ECgEA,0C;;;;;;;G;;;EClEA,6C;;;;;;;;;;;;;G;;;ECGA,0C;;;;;;;;;;;;G;;;EC+DA,mD;;;;;;;G;;;EChEA,mC;;;;;;;;;;;;;;G;;;ECgEA,4C;;;;;;;G;;;EC9DA,uC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;G;;;EC8DA,gD;;;;;;;G;;;EClEA,yD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;G;;;ECDA,2C;;;;;;G;;;ECCA,yD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;G;;;ECDA,wC;;;;;;;G;;;ECAA,mC;;;;;G;;;ECAA,iC;;;;;;;;;;G;;;ECIA,mC;;;;;;;;;;;;;;;;G;;;EC+DA,4C;;;;;;;G;;;EC/DA,mC;;;;;;G;;;EAQA,kC;;;;;;;;;;G;;;ECuDA,2C;;;;;;;G;;;EC9DA,qC;;;;;;;;;;;;;G;;;EC8DA,8C;;;;;;;G;;;EC/DA,qC;;;;;;;;;;;;;;;G;;;EC+DA,8C;;;;;;;G;;;EC7DA,gC;;;;;;;;;;;;;G;;;ECFA,mC;;;;;;;;;;;;;;;;;;;G;;;ECDA,wC;;;;;;;;;;;;G;;;ECCA,8C;;;;;;;;;;;;;G;;;ECAA,iC;;;;;;;;;;;;;;G;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2C7MgmE8C,sBAAkB,EAAlB,EAAsB,EAAtB,EAAyB,6CAAzB,C;oBE9lExB,+BAA2B,EAA3B,EAA+B,EAA/B,EAAmC,sBAAnC,C;oBAWA,+BAA2B,EAA3B,EAA+B,EAA/B,EAAmC,sBAAnC,C;oBAaA,+BAA2B,EAA3B,EAA+B,EAA/B,EAAmC,sBAAnC,C;oBAwDA,+BAA2B,EAA3B,EAA+B,EAA/B,EAAmC,sBAAnC,C;oBAYA,+BAA2B,EAA3B,EAA+B,EAA/B,EAAmC,sBAAnC,C;oBAkDA,+BAA2B,EAA3B,EAA+B,EAA/B,EAAmC,sBAAnC,C;oBASA,+BAA2B,EAA3B,EAA+B,EAA/B,EAAmC,sBAAnC,C;qBAaC,+BAA2B,EAA3B,EAA+B,GAA/B,EAAoC,uBAApC,C;sBAwBC,+BAA2B,GAA3B,EAAgC,GAAhC,EAAqC,wBAArC,C;sBAiBA,+BAA2B,GAA3B,EAAgC,GAAhC,EAAqC,wBAArC,C;sBAiCA,+BAA2B,GAA3B,EAAgC,GAAhC,EAAqC,wBAArC,C;sBAm6BA,+BAA2B,GAA3B,EAAgC,GAAhC,EAAqC,wBAArC,C;sBAyCA,+BAA2B,GAA3B,EAAgC,GAAhC,EAAqC,wBAArC,C;sBA2FA,+BAA2B,GAA3B,EAAgC,GAAhC,EAAqC,wBAArC,C;sBAQA,+BAA2B,GAA3B,EAAgC,GAAhC,EAAqC,wBAArC,C;;"}