diff --git a/component-catalog/src/Examples.elm b/component-catalog/src/Examples.elm index b6f9efd6b..77b94db06 100644 --- a/component-catalog/src/Examples.elm +++ b/component-catalog/src/Examples.elm @@ -28,6 +28,7 @@ import Examples.Highlighter as Highlighter import Examples.HighlighterToolbar as HighlighterToolbar import Examples.Loading as Loading import Examples.Logo as Logo +import Examples.LongFormHighlighter as LongForm import Examples.Menu as Menu import Examples.Message as Message import Examples.Modal as Modal @@ -458,6 +459,25 @@ all = HighlighterState childState -> Just childState + _ -> + Nothing + ) + , LongForm.example + |> Example.wrapMsg LongFormHighlighterMsg + (\msg -> + case msg of + LongFormHighlighterMsg childMsg -> + Just childMsg + + _ -> + Nothing + ) + |> Example.wrapState LongFormHighlighterState + (\msg -> + case msg of + LongFormHighlighterState childState -> + Just childState + _ -> Nothing ) @@ -1113,6 +1133,7 @@ type State | HeaderState Header.State | HeadingState Heading.State | HighlighterState Highlighter.State + | LongFormHighlighterState LongForm.State | HighlighterToolbarState HighlighterToolbar.State | LoadingState Loading.State | LogoState Logo.State @@ -1170,6 +1191,7 @@ type Msg | HeaderMsg Header.Msg | HeadingMsg Heading.Msg | HighlighterMsg Highlighter.Msg + | LongFormHighlighterMsg LongForm.Msg | HighlighterToolbarMsg HighlighterToolbar.Msg | LoadingMsg Loading.Msg | LogoMsg Logo.Msg diff --git a/component-catalog/src/Examples/Highlighter.elm b/component-catalog/src/Examples/Highlighter.elm index 8b85261f6..0d824bf1b 100644 --- a/component-catalog/src/Examples/Highlighter.elm +++ b/component-catalog/src/Examples/Highlighter.elm @@ -1,4 +1,4 @@ -port module Examples.Highlighter exposing (Msg, State, example) +module Examples.Highlighter exposing (Msg, State, example) {-| @@ -15,6 +15,7 @@ import Debug.Control.Extra as ControlExtra import Debug.Control.View as ControlView import Example exposing (Example) import Examples.Colors +import Examples.HighlighterPort exposing (highlighterInit, highlighterOnTouchEvent, highlighterTouchPointerRelease) import Html.Styled exposing (..) import Html.Styled.Attributes exposing (css) import List.Extra @@ -77,23 +78,7 @@ example = , Sub.map FoldHighlighterMsg subscriptions ] , preview = - [ div [ css [ Fonts.baseFont, Css.lineHeight (Css.num 2), Css.Global.children [ Css.Global.p [ Css.margin Css.zero ] ] ] ] - [ Highlighter.static - { id = "highlight-preview" - , highlightables = - [ ( "Sphinx", Nothing ) - , ( "of", Nothing ) - , ( "black", Just exampleMarker ) - , ( "quartz,", Nothing ) - , ( "judge", Nothing ) - , ( "my", Nothing ) - , ( "vow.", Nothing ) - ] - |> List.intersperse ( " ", Nothing ) - |> List.indexedMap (\i ( word, marker ) -> Highlightable.initStatic (Maybe.Extra.toList marker) i word) - } - ] - ] + [] , about = [ Text.smallBody [ Text.html @@ -113,88 +98,7 @@ example = ] , view = \ellieLinkConfig state -> - [ ControlView.view - { ellieLinkConfig = ellieLinkConfig - , name = moduleName - , version = version - , update = UpdateControls - , settings = state.settings - , mainType = Just "Program () (Highlighter.Model ()) (Highlighter.Msg ())" - , extraCode = - [ "import Browser" - , "import Nri.Ui.Highlightable.V3 as Highlightable" - , "import Nri.Ui.HighlighterTool.V1 as Tool" - , "import Sort" - ] - , renderExample = identity - , toExampleCode = - \_ -> - [ { sectionName = "Code" - , code = - Code.browserElement - { init = - Code.always - (Code.tuple - "init" - "Cmd.none" - ) - , update = - Code.newlineWithIndent 2 - ++ Code.anonymousFunction - "msg model" - (Code.pipelineMultiline - [ Code.fromModule moduleName "update msg model" - , Code.anonymousFunction "(newModel, cmd, intent)" <| - Code.tuple "newModel" "cmd" - ] - 3 - ) - , view = "view >> toUnstyled" - , subscriptions = - Code.newlineWithIndent 2 - ++ Code.anonymousFunction "model" - (Code.newlineWithIndent 3 - ++ " -- for the highlighter to work correctly for touch users," - ++ Code.newlineWithIndent 3 - ++ "-- you will need to wire up subscriptions." - ++ Code.newlineWithIndent 3 - ++ "-- See the Highlighter example source code." - ++ Code.newlineWithIndent 3 - ++ "Sub.none " - ) - } - ++ Code.newlines - ++ -- view - Tuple.first (view state) - ++ Code.newlines - ++ -- init - (initHighlighter (Control.currentValue state.settings) state.highlighter.highlightables - |> Tuple.first - ) - } - ] - } - , Heading.h2 - [ Heading.plaintext "Customizable example" - , Heading.css [ Css.marginTop Spacing.verticalSpacerPx ] - ] - , Text.mediumBody [ Text.plaintext "This example updates based on the settings you configure on this page." ] - , Button.button "Clear all highlights" - [ Button.onClick ClearHighlights - , Button.secondary - , Button.small - ] - , div - [ css - [ Css.fontSize (Css.px 24) - , Css.lineHeight (Css.num 1.75) - , Fonts.quizFont - ] - ] - [ Tuple.second (view state) - |> map HighlighterMsg - ] - , Heading.h2 + [ Heading.h2 [ Heading.plaintext "Overlapping highlights example" , Heading.css [ Css.marginTop Spacing.verticalSpacerPx ] ] @@ -227,163 +131,6 @@ example = [ viewFoldHighlights state.foldHighlightsState |> map FoldHighlighterMsg ] - , Heading.h2 - [ Heading.plaintext "Non-interactive examples" - , Heading.css [ Css.marginTop Spacing.verticalSpacerPx ] - ] - , Text.mediumBody [ Text.plaintext "These are examples of some different ways the highlighter can appear to users." ] - , Table.view [] - [ Table.rowHeader - { header = text "Highlighter." - , view = .viewName >> text - , width = Css.zero - , cellStyles = - always - [ Css.padding2 (Css.px 14) (Css.px 7) - , Css.verticalAlign Css.middle - , Css.textAlign Css.left - , Css.fontWeight Css.normal - ] - , sort = Nothing - } - , Table.string - { header = "HighlighterTool." - , value = .tool - , width = Css.pct 10 - , cellStyles = always [ Css.padding2 (Css.px 14) (Css.px 7), Css.verticalAlign Css.middle ] - , sort = Nothing - } - , Table.string - { header = "Highlightable." - , value = .highlightable - , width = Css.pct 10 - , cellStyles = always [ Css.padding2 (Css.px 14) (Css.px 7), Css.verticalAlign Css.middle ] - , sort = Nothing - } - , Table.string - { header = "Description" - , value = .description - , width = Css.pct 30 - , cellStyles = always [ Css.padding2 (Css.px 14) (Css.px 7), Css.verticalAlign Css.middle ] - , sort = Nothing - } - , Table.custom - { header = text "Example" - , view = .example - , width = Css.pct 60 - , cellStyles = - always - [ Css.padding2 (Css.px 14) (Css.px 7) - , Css.verticalAlign Css.middle - , Css.lineHeight (Css.num 2) - ] - , sort = Nothing - } - ] - [ { viewName = "static" - , tool = "buildMarker" - , highlightable = "init" - , description = "One word highlighted" - , example = - Highlighter.static - { id = "example-0" - , highlightables = - [ ( "Sphinx", Nothing ) - , ( "of", Nothing ) - , ( "black", Just exampleMarker ) - , ( "quartz,", Nothing ) - , ( "judge", Nothing ) - , ( "my", Nothing ) - , ( "vow.", Nothing ) - ] - |> List.intersperse ( " ", Nothing ) - |> List.indexedMap (\i ( word, marker ) -> Highlightable.initStatic (Maybe.Extra.toList marker) i word) - } - } - , { viewName = "static" - , tool = "buildMarker" - , highlightable = "init" - , description = "Multiple words highlighted separately" - , example = - Highlighter.static - { id = "example-1" - , highlightables = - [ ( "Sphinx", Nothing ) - , ( "of", Nothing ) - , ( "black", Just exampleMarker ) - , ( "quartz,", Just exampleMarker ) - , ( "judge", Nothing ) - , ( "my", Nothing ) - , ( "vow.", Nothing ) - ] - |> List.intersperse ( " ", Nothing ) - |> List.indexedMap (\i ( word, marker ) -> Highlightable.initStatic (Maybe.Extra.toList marker) i word) - } - } - , { viewName = "static" - , tool = "buildMarker" - , highlightable = "init" - , description = "Multiple words highlighted & joined" - , example = - Highlighter.static - { id = "example-2" - , highlightables = - [ ( "Sphinx", Nothing ) - , ( "of", Nothing ) - , ( "black quartz,", Just exampleMarker ) - , ( "judge", Nothing ) - , ( "my", Nothing ) - , ( "vow.", Nothing ) - ] - |> List.intersperse ( " ", Nothing ) - |> List.indexedMap (\i ( word, marker ) -> Highlightable.initStatic (Maybe.Extra.toList marker) i word) - } - } - , { viewName = "static" - , tool = "buildMarker" - , highlightable = "init" - , description = "Multiple kinds of highlights without overlaps" - , example = Highlighter.static { id = "example-3a", highlightables = multipleHighlightsHighlightables } - } - , { viewName = "staticMarkdown" - , tool = "buildMarker" - , highlightable = "init" - , description = "Multiple kinds of highlights without overlaps and with interpreted Markdown" - , example = Highlighter.staticMarkdown { id = "example-3b", highlightables = multipleHighlightsHighlightables } - } - , { viewName = "staticWithTags" - , tool = "buildMarkerWithBorder" - , highlightable = "init" - , description = "Multiple kinds of highlights without overlaps" - , example = Highlighter.staticWithTags { id = "example-4a", highlightables = multipleHighlightsHighlightablesWithBorder } - } - , { viewName = "staticMarkdownWithTags" - , tool = "buildMarkerWithBorder" - , highlightable = "init" - , description = "Multiple kinds of highlights without overlaps and with interpreted Markdown" - , example = Highlighter.staticMarkdownWithTags { id = "example-4b", highlightables = multipleHighlightsHighlightablesWithBorder } - } - , { viewName = "staticMarkdown" - , tool = "buildMarker" - , highlightable = "fromMarkdown" - , description = "Interpreting empty markdown anchor tags as highlights." - , example = - Highlighter.staticMarkdown - { id = "example-5" - , highlightables = Highlightable.fromMarkdown "Select your [favorite phrase]() in **your** writing." - } - } - , { viewName = "staticMarkdown" - , tool = "buildMarker" - , highlightable = "fromMarkdown" - , description = "Interpreting tags with a custom color." - , example = - Highlighter.staticMarkdown - { id = "example-6" - , highlightables = Highlightable.fromMarkdown "Select your favorite phrase with favorite color in **your** writing." - } - } - ] ] , categories = [ Instructional ] , keyboardSupport = [] @@ -535,6 +282,2821 @@ foldHighlightsSource : List (List String) foldHighlightsSource = [ [ "This", " ", "is", " ", "a", " ", "list", " ", "item" ] , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] , [ "Finally", " ", "one", " ", "more" ] ] @@ -937,18 +3499,3 @@ onTouch = _ -> Highlighter.TouchIgnored - - -{-| Start listening to events on a highlighter --} -port highlighterInit : ( String, Bool, Bool ) -> Cmd msg - - -{-| Listen to mouseup/touchend events on the whole document, to stop highlighting. --} -port highlighterTouchPointerRelease : (( String, String ) -> msg) -> Sub msg - - -{-| Listen to touch events, and get the element under the finger. --} -port highlighterOnTouchEvent : (( String, String, Int ) -> msg) -> Sub msg diff --git a/component-catalog/src/Examples/HighlighterPort.elm b/component-catalog/src/Examples/HighlighterPort.elm new file mode 100644 index 000000000..cc1722362 --- /dev/null +++ b/component-catalog/src/Examples/HighlighterPort.elm @@ -0,0 +1,17 @@ +port module Examples.HighlighterPort exposing (..) + +{-| Start listening to events on a highlighter +-} + + +port highlighterInit : ( String, Bool, Bool ) -> Cmd msg + + +{-| Listen to mouseup/touchend events on the whole document, to stop highlighting. +-} +port highlighterTouchPointerRelease : (( String, String ) -> msg) -> Sub msg + + +{-| Listen to touch events, and get the element under the finger. +-} +port highlighterOnTouchEvent : (( String, String, Int ) -> msg) -> Sub msg diff --git a/component-catalog/src/Examples/LongFormHighlighter.elm b/component-catalog/src/Examples/LongFormHighlighter.elm new file mode 100644 index 000000000..790824287 --- /dev/null +++ b/component-catalog/src/Examples/LongFormHighlighter.elm @@ -0,0 +1,3530 @@ +module Examples.LongFormHighlighter exposing (Msg, State, example) + +{-| + +@docs Msg, State, example + +-} + +import Category exposing (Category(..)) +import Code +import Css exposing (Color) +import Css.Global +import Debug.Control as Control exposing (Control) +import Debug.Control.Extra as ControlExtra +import Debug.Control.View as ControlView +import Example exposing (Example) +import Examples.Colors +import Examples.HighlighterPort exposing (highlighterInit, highlighterOnTouchEvent, highlighterTouchPointerRelease) +import Html.Styled exposing (..) +import Html.Styled.Attributes exposing (css) +import List.Extra +import Maybe.Extra +import Nri.Ui.Button.V10 as Button +import Nri.Ui.ClickableText.V4 as ClickableText +import Nri.Ui.Colors.V1 as Colors +import Nri.Ui.Fonts.V1 as Fonts +import Nri.Ui.Heading.V3 as Heading +import Nri.Ui.Highlightable.LongForm as Highlightable exposing (Highlightable) +import Nri.Ui.Highlighter.LongForm as Highlighter +import Nri.Ui.HighlighterTool.V1 as Tool +import Nri.Ui.Spacing.V1 as Spacing +import Nri.Ui.Table.V7 as Table +import Nri.Ui.Text.V6 as Text +import Sort exposing (Sorter) + + +moduleName : String +moduleName = + "HighlighterLongForm" + + +version : Int +version = + 6 + + +type ReadOnly + = -- a `ReadOnly` value isn't used here, but we keep a custom type for clarity + Interactive + + +type ScrollFriendly + = ScrollFriendly + | NotScrollFriendly + + +isScrollFriendly : Highlighter.Model marker -> ScrollFriendly +isScrollFriendly model = + if model.scrollFriendly then + ScrollFriendly + + else + NotScrollFriendly + + +{-| -} +example : Example State Msg +example = + { name = moduleName + , version = version + , init = init + , update = update + , subscriptions = + \_ -> + Sub.batch + [ Sub.map HighlighterMsg subscriptions + , Sub.map OverlappingHighlighterMsg subscriptions + , Sub.map FoldHighlighterMsg subscriptions + ] + , preview = + [] + , about = + [ Text.smallBody + [ Text.html + [ text "Learn more about this component from " + , ClickableText.link "Tessa's demo" + [ ClickableText.linkExternal "https://www.dropbox.com/s/tchb0t9lgdyzw01/2022-11-10%20-%20Tessa%20Kelly%20-%20Nri.Ui.Highlighter.V1.mp4?dl=0&unfurl=slack_gen" + , ClickableText.appearsInline + ] + , text " and " + , ClickableText.link "the highlighter doc" + [ ClickableText.linkExternal "https://paper.dropbox.com/doc/Highlighter-component-documentation-mmPuvnWVKcxpb7r3FjkZn" + , ClickableText.appearsInline + ] + , text ", which covers use of the component throughout the NoRedInk app." + ] + ] + ] + , view = + \ellieLinkConfig state -> + [ Heading.h2 + [ Heading.plaintext "Overlapping highlights example" + , Heading.css [ Css.marginTop Spacing.verticalSpacerPx ] + ] + , Text.mediumBody [ Text.plaintext "Supporting overlapping highlights, as in inline comments, requires a lot of extra set-up. Generally, you won't need this." ] + , Text.mediumBody [ Text.plaintext "This example does not support removing highlights. This is to enable you to create highlights that overlap." ] + , div + [ css + [ Css.fontSize (Css.px 24) + , Css.lineHeight (Css.num 1.75) + , Fonts.ugFont + ] + ] + [ Highlighter.viewWithOverlappingHighlights state.overlappingHighlightsState + |> Html.Styled.fromUnstyled + |> map OverlappingHighlighterMsg + ] + , Heading.h2 + [ Heading.plaintext "Structured Highlighter example" + , Heading.css [ Css.marginTop Spacing.verticalSpacerPx ] + ] + , Text.mediumBody [ Text.plaintext "If you have text that is structured in such a way that a simple paragraph won't work, you can use the Highlighter folding functions to render highlightables one by one inside of your HTML structure." ] + , div + [ css + [ Css.fontSize (Css.px 24) + , Css.lineHeight (Css.num 1.75) + , Fonts.ugFont + ] + , Html.Styled.Attributes.id state.foldHighlightsState.id + , Html.Styled.Attributes.class "highlighter-container" + ] + [ viewFoldHighlights state.foldHighlightsState + |> map FoldHighlighterMsg + ] + ] + , categories = [ Instructional ] + , keyboardSupport = [] + } + + +multipleHighlightsHighlightables : List (Highlightable ()) +multipleHighlightsHighlightables = + [ ( "Waltz, bad nymph, for quick jigs vex.", Just claimMarker ) + , ( "Glib jocks quiz nymph to vex dwarf.", Just evidenceMarker ) + , ( "Sphinx of _black_ quartz, judge my vow.", Just reasoningMarker ) + , ( "How *vexingly* quick daft zebras jump!", Nothing ) + ] + |> List.intersperse ( " ", Nothing ) + |> List.indexedMap (\i ( word, marker ) -> Highlightable.initStatic (Maybe.Extra.toList marker) i word) + + +exampleMarker : Tool.MarkerModel () +exampleMarker = + Tool.buildMarker + { highlightColor = Colors.highlightYellow + , hoverColor = Colors.highlightMagenta + , hoverHighlightColor = Colors.highlightPurpleDark + , kind = () + , name = Nothing + } + + +claimMarker : Tool.MarkerModel () +claimMarker = + Tool.buildMarker + { highlightColor = Colors.highlightYellow + , hoverColor = Colors.highlightMagenta + , hoverHighlightColor = Colors.highlightPurpleDark + , kind = () + , name = Just "Claim" + } + + +evidenceMarker : Tool.MarkerModel () +evidenceMarker = + Tool.buildMarker + { highlightColor = Colors.highlightCyan + , hoverColor = Colors.highlightMagenta + , hoverHighlightColor = Colors.highlightPurpleDark + , kind = () + , name = Just "Evidence" + } + + +reasoningMarker : Tool.MarkerModel () +reasoningMarker = + Tool.buildMarker + { highlightColor = Colors.highlightPurple + , hoverColor = Colors.highlightMagenta + , hoverHighlightColor = Colors.highlightPurpleDark + , kind = () + , name = Just "Reasoning" + } + + +inlineCommentMarker : String -> Tool.MarkerModel String +inlineCommentMarker name = + Tool.buildMarkerWithoutRounding + { highlightColor = toLightColor Colors.highlightYellow + , hoverColor = Colors.highlightYellow + , hoverHighlightColor = Colors.highlightYellow + , kind = name + , name = Just name + } + + +toLightColor : Color -> Color +toLightColor color = + let + tint value = + value + floor (toFloat (255 - value) * 0.5) + in + Css.rgb (tint color.red) (tint color.green) (tint color.blue) + + +multipleHighlightsHighlightablesWithBorder : List (Highlightable ()) +multipleHighlightsHighlightablesWithBorder = + [ ( "Waltz, bad nymph, for quick jigs vex.", Just claimMarkerWithBorder ) + , ( "Glib jocks quiz nymph to vex dwarf.", Just evidenceMarkerWithBorder ) + , ( "Sphinx of _black_ quartz, judge my vow.", Just reasoningMarkerWithBorder ) + , ( "How *vexingly* quick daft zebras jump!", Nothing ) + ] + |> List.intersperse ( " ", Nothing ) + |> List.indexedMap (\i ( word, marker ) -> Highlightable.initStatic (Maybe.Extra.toList marker) i word) + + +claimMarkerWithBorder : Tool.MarkerModel () +claimMarkerWithBorder = + Tool.buildMarkerWithBorder + { highlightColor = Colors.highlightYellow + , kind = () + , name = Just "Claim" + } + + +evidenceMarkerWithBorder : Tool.MarkerModel () +evidenceMarkerWithBorder = + Tool.buildMarkerWithBorder + { highlightColor = Colors.highlightCyan + , kind = () + , name = Just "Evidence" + } + + +reasoningMarkerWithBorder : Tool.MarkerModel () +reasoningMarkerWithBorder = + Tool.buildMarkerWithBorder + { highlightColor = Colors.highlightPurple + , kind = () + , name = Just "Reasoning" + } + + +view : State -> ( String, Html (Highlighter.Msg ()) ) +view state = + let + viewStr = + Code.var "view" 1 + in + ( viewStr "Highlighter.view" + , Highlighter.view state.highlighter + |> Html.Styled.fromUnstyled + ) + + +{-| -} +type alias State = + { settings : Control Settings + , highlighter : Highlighter.Model () + , overlappingHighlightsState : Highlighter.Model String + , overlappingHighlightsIndex : Int + , foldHighlightsState : Highlighter.Model String + } + + +foldHighlightsSource : List (List String) +foldHighlightsSource = + [ [ "This", " ", "is", " ", "a", " ", "list", " ", "item" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Here", " ", "is", " ", "another" ] + , [ "Finally", " ", "one", " ", "more" ] + ] + + +viewFoldHighlights : Highlighter.Model String -> Html (Highlighter.Msg String) +viewFoldHighlights model = + List.Extra.mapAccuml + (\state sourceRow -> + List.Extra.mapAccuml (\innerState _ -> Highlighter.viewFoldHighlighter [] innerState) state sourceRow + |> Tuple.mapSecond (List.concat >> List.map Html.Styled.fromUnstyled >> li []) + ) + (Highlighter.initFoldState model) + foldHighlightsSource + |> Tuple.second + |> ul [] + + +{-| -} +init : ( State, Cmd msg ) +init = + let + settings = + controlSettings + + highlighterState = + initHighlighter (Control.currentValue settings) [] |> Tuple.second + + overlappingHighlightsState = + Highlighter.init + { id = "student-writing" + , highlightables = Highlightable.initFragments "Letter grades have a variety of effects on students. Alfie Kohn, an American author who specializes in education issues, explains that students who are graded “tend to lose interest in the learning itself [and] avoid challenging tasks whenever possible.” Kohn’s argument illustrates how letter grades can become a source of stress for students and distract them from the joys of learning." + , marker = Tool.Marker (inlineCommentMarker "Comment 1") + , sorter = Sort.alphabetical + , joinAdjacentInteractiveHighlights = True + , scrollFriendly = False + , overlapsSupport = True + } + + foldHighlightsState = + Highlighter.init + { id = "student-writing-fold" + , highlightables = + List.concat foldHighlightsSource + |> List.indexedMap + (\idx txt -> + if txt == " " then + Highlightable.initStatic [] idx txt + + else + Highlightable.initInteractive [] idx txt + ) + , marker = Tool.Marker (inlineCommentMarker "Comment 1") + , sorter = Sort.alphabetical + , joinAdjacentInteractiveHighlights = True + , scrollFriendly = False + , overlapsSupport = True + } + in + ( { settings = settings + , highlighter = highlighterState + , overlappingHighlightsState = overlappingHighlightsState + , foldHighlightsState = foldHighlightsState + , overlappingHighlightsIndex = 1 + } + , Cmd.batch + [ initHighlighterPort highlighterState Interactive + , initHighlighterPort overlappingHighlightsState Interactive + , initHighlighterPort foldHighlightsState Interactive + ] + ) + + +initHighlighter : Settings -> List (Highlightable ()) -> ( String, Highlighter.Model () ) +initHighlighter settings previousHighlightables = + let + highlightables : ( String, List (Highlightable ()) ) + highlightables = + if settings.textSettings.splitOnSentences then + exampleParagraph + |> List.map + (\text i -> + ( "Highlightable.initInteractive [] " ++ String.fromInt i ++ Code.string text + , Highlightable.initInteractive [] i text + ) + ) + |> List.intersperse + (\i -> + ( "Highlightable.initStatic [] " ++ String.fromInt i ++ Code.string " " + , Highlightable.initStatic [] i " " + ) + ) + |> List.indexedMap (\i f -> f i) + |> List.unzip + |> Tuple.mapFirst (\c -> Code.listMultiline (List.take 2 c) 3) + + else + ( "Highlightable.initFragments " ++ Code.string joinedExampleParagraph + , Highlightable.initFragments joinedExampleParagraph + ) + + joinedExampleParagraph = + String.join " " exampleParagraph + in + ( Code.var "init" 1 <| + Code.fromModule moduleName "init" + ++ Code.recordMultiline + [ ( "id", Code.string "example-romeo-and-juliet" ) + , ( "highlightables", Tuple.first highlightables ) + , ( "marker", Code.newlineWithIndent 3 ++ Tuple.first settings.tool.tool ) + , ( "joinAdjacentInteractiveHighlights", Code.bool settings.textSettings.joinAdjacentInteractiveHighlights ) + , ( "scrollFriendly", Code.bool settings.textSettings.scrollFriendly ) + , ( "sorter", "Sort.custom (\\() () -> EQ)" ) + ] + 2 + , Highlighter.init + { id = "example-romeo-and-juliet" + , highlightables = + if List.map .text previousHighlightables == List.map .text (Tuple.second highlightables) then + previousHighlightables + + else + Tuple.second highlightables + , marker = Tuple.second settings.tool.tool + , sorter = sorter + , joinAdjacentInteractiveHighlights = settings.textSettings.joinAdjacentInteractiveHighlights + , scrollFriendly = settings.textSettings.scrollFriendly + , overlapsSupport = False + } + ) + + +exampleParagraph : List String +exampleParagraph = + [ "Taking notes by hand is better for students' overall academic performance than taking notes on a computer." + , "A study published in the journal *Psychological Science* found that students who handwrote their notes during class gained a deeper understanding of new material than students who typed their notes." + , "This study suggests that students are better served by writing out their notes rather than typing them." + ] + + +type alias Settings = + { textSettings : + { splitOnSentences : Bool + , joinAdjacentInteractiveHighlights : Bool + , scrollFriendly : Bool + , highlighterType : HighlighterType + } + , tool : { tool : ( String, Tool.Tool () ) } + } + + +type HighlighterType + = Markdown + | Standard + + +controlSettings : Control Settings +controlSettings = + Control.record Settings + |> Control.field "Text settings" + (Control.record + (\a b c d -> + { splitOnSentences = a + , joinAdjacentInteractiveHighlights = b + , scrollFriendly = c + , highlighterType = d + } + ) + |> Control.field "splitOnSentences" (Control.bool True) + |> Control.field "joinAdjacentInteractiveHighlights" (Control.bool False) + |> Control.field "scrollFriendly" (Control.bool False) + |> Control.field "type" + (Control.choice + [ ( "Markdown", Control.value Markdown ) + , ( "Standard", Control.value Standard ) + ] + ) + ) + |> Control.field "Highlighter or Eraser tool settings" + (Control.record (\tool -> { tool = tool }) + |> Control.field "tool" + (Control.choice + [ ( "Marker", Control.map (\( c, v ) -> ( "Tool.Marker" ++ Code.withParensMultiline c 4, Tool.Marker v )) controlMarker ) + , ( "Eraser", Control.value ( "Tool.Eraser Tool.buildEraser", Tool.Eraser Tool.buildEraser ) ) + ] + ) + ) + + +controlMarker : Control ( String, Tool.MarkerModel () ) +controlMarker = + Control.record + (\a b c d -> + ( Code.fromModule "Tool" "buildMarker" + ++ Code.recordMultiline + [ ( "highlightColor", Tuple.first a ) + , ( "hoverColor", Tuple.first b ) + , ( "hoverHighlightColor", Tuple.first c ) + , ( "kind", "()" ) + , ( "name", Code.maybeString d ) + ] + 5 + , Tool.buildMarker + { highlightColor = Tuple.second a + , hoverColor = Tuple.second b + , hoverHighlightColor = Tuple.second c + , kind = () + , name = d + } + ) + ) + |> Control.field "highlightColor" (backgroundHighlightColors 0) + |> Control.field "hoverColor" (backgroundHighlightColors 5) + |> Control.field "hoverHighlightColor" (backgroundHighlightColors 10) + |> Control.field "name" (Control.maybe True (Control.string "Claim")) + + +backgroundHighlightColors : Int -> Control ( String, Color ) +backgroundHighlightColors rotateWith = + Examples.Colors.backgroundHighlightColors + |> List.map (\( name, value, _ ) -> ( name, Control.value ( Code.fromModule "Colors" name, value ) )) + |> ControlExtra.rotatedChoice rotateWith + + +{-| -} +type Msg + = UpdateControls (Control Settings) + | HighlighterMsg (Highlighter.Msg ()) + | OverlappingHighlighterMsg (Highlighter.Msg String) + | FoldHighlighterMsg (Highlighter.Msg String) + | ClearHighlights + + +{-| -} +update : Msg -> State -> ( State, Cmd Msg ) +update msg state = + case msg of + UpdateControls settings -> + let + highlighterState = + initHighlighter (Control.currentValue settings) state.highlighter.highlightables + |> Tuple.second + in + ( { state + | settings = settings + , highlighter = highlighterState + } + , initHighlighterPort highlighterState Interactive + ) + + HighlighterMsg highlighterMsg -> + let + ( newHighlighter, effect, intent ) = + Highlighter.update highlighterMsg state.highlighter + in + ( { state | highlighter = newHighlighter } + , Cmd.batch + [ Cmd.map HighlighterMsg effect + , perform intent (isScrollFriendly state.highlighter) Interactive + ] + ) + + ClearHighlights -> + ( { state | highlighter = Highlighter.removeHighlights state.highlighter } + , Cmd.none + ) + + OverlappingHighlighterMsg highlighterMsg -> + -- This code is extracted with minimal updates from Nri.Writing.GuidedDrafts.WritingSamples.Highlighters + case Highlighter.update highlighterMsg state.overlappingHighlightsState of + ( newHighlighter, effect, intent ) -> + let + maybePreviousMouseDownIndex = + highlighterState.mouseDownIndex + + withAllCommentIds = + { newHighlighter + | highlightables = + List.map2 + (\newHighlightable oldHighlightable -> + { newHighlightable | marked = List.Extra.unique (newHighlightable.marked ++ oldHighlightable.marked) } + ) + newHighlighter.highlightables + highlighterState.highlightables + } + + highlighterState = + state.overlappingHighlightsState + + newComment = + { state + | overlappingHighlightsState = + { withAllCommentIds + | marker = Tool.Marker (inlineCommentMarker ("Comment " ++ String.fromInt (state.overlappingHighlightsIndex + 1))) + } + , overlappingHighlightsIndex = state.overlappingHighlightsIndex + 1 + } + in + -- The Changed action will be triggered on the Highlighter Up event and + -- when there is an actual change in the highlightable elements. + case Highlighter.hasChanged intent of + Highlighter.Changed _ -> + ( newComment + , Cmd.batch + [ Cmd.map OverlappingHighlighterMsg effect + , perform intent (isScrollFriendly state.overlappingHighlightsState) Interactive + ] + ) + + Highlighter.NotChanged -> + case maybePreviousMouseDownIndex of + Just _ -> + -- User is dragging and highlighting. We don't want to show + -- any hover effect in case the current highlight starts to + -- overlaps with an existing highlight. + ( { state | overlappingHighlightsState = withAllCommentIds } + , Cmd.batch + [ Cmd.map OverlappingHighlighterMsg effect + , perform intent (isScrollFriendly state.overlappingHighlightsState) Interactive + ] + ) + + Nothing -> + -- User is just hovering around the page + ( { state | overlappingHighlightsState = withAllCommentIds } + , Cmd.batch + [ Cmd.map OverlappingHighlighterMsg effect + , perform intent (isScrollFriendly state.overlappingHighlightsState) Interactive + ] + ) + + FoldHighlighterMsg highlighterMsg -> + let + ( highlighterModel, highlighterCmd, intent ) = + Highlighter.update highlighterMsg state.foldHighlightsState + in + ( { state | foldHighlightsState = highlighterModel } + , Cmd.batch + [ Cmd.map FoldHighlighterMsg highlighterCmd + , perform intent (isScrollFriendly state.foldHighlightsState) Interactive + ] + ) + + + +-- bumpMarkerId : Highlighter.Model String -> Highlighter.Model String +-- bumpMarkerId highlighter = +-- let +-- oldId = +-- case highlighter.marker of +-- Tool.Eraser _ -> +-- 0 +-- Tool.Marker marker -> +-- marker.kind +-- |> String.split " " +-- |> List.drop 1 +-- |> List.head +-- |> Maybe.withDefault "1" +-- |> String.toInt +-- |> Maybe.withDefault 1 +-- newId = +-- oldId + 1 +-- in +-- { highlighter +-- | marker = Tool.Marker (inlineCommentMarker ("Comment " ++ String.fromInt newId)) +-- } + + +sorter : Sorter () +sorter = + Sort.custom (\() () -> EQ) + + + +-- PORT SETUP + + +initHighlighterPort : Highlighter.Model marker -> ReadOnly -> Cmd msg +initHighlighterPort model readonly = + highlighterInit ( model.id, model.scrollFriendly, readonly /= Interactive ) + + +perform : Highlighter.Intent marker -> ScrollFriendly -> ReadOnly -> Cmd msg +perform (Highlighter.Intent intent) scrollFriendly readonly = + case intent.listenTo of + Just listenTo -> + highlighterInit ( listenTo, scrollFriendly == ScrollFriendly, readonly /= Interactive ) + + Nothing -> + Cmd.none + + + +-- SUBSCRIPTIONS + + +subscriptions : Sub (Highlighter.Msg marker) +subscriptions = + Sub.batch [ onDocumentUp, onTouch ] + + +{-| Subscribe to mouseup/touchend events on the document. +-} +onDocumentUp : Sub (Highlighter.Msg marker) +onDocumentUp = + highlighterTouchPointerRelease <| + \( id, device ) -> + case device of + "mouse" -> + Highlighter.Pointer <| Highlighter.Up <| Just id + + "touch" -> + Highlighter.Touch <| Highlighter.TouchEnd <| Just id + + _ -> + Highlighter.Pointer Highlighter.Ignored + + +{-| Subscribe to touch events +-} +onTouch : Sub (Highlighter.Msg marker) +onTouch = + highlighterOnTouchEvent <| + \( type_, targetId, index ) -> + Highlighter.Touch <| + case type_ of + "move" -> + Highlighter.TouchMove (Just targetId) index + + "end" -> + Highlighter.TouchEnd (Just targetId) + + "longpress" -> + Highlighter.LongPress (Just targetId) index + + _ -> + Highlighter.TouchIgnored diff --git a/src/Content.elm b/src/Content.elm index d86336b13..8e1145033 100644 --- a/src/Content.elm +++ b/src/Content.elm @@ -3,6 +3,7 @@ module Content exposing (..) {-| -} import Css +import Html as Unstyled import Html.Styled exposing (..) import Html.Styled.Attributes exposing (css) import Markdown @@ -57,14 +58,21 @@ markdownContent content = -} markdownInline : String -> List (Html msg) markdownInline content = + markdownInlineUnstyled content + |> List.map fromUnstyled + + +{-| Provide a string that will be rendered as inline markdown, with the default wrapping paragraph removed. +-} +markdownInlineUnstyled : String -> List (Unstyled.Html msg) +markdownInlineUnstyled content = case Markdown.Block.parse Nothing content of [ Markdown.Block.Paragraph _ inlines ] -> -- The library always parses into a paragraph and never into `PlainInline` - List.map (Markdown.Inline.toHtml >> fromUnstyled) inlines + List.map Markdown.Inline.toHtml inlines _ -> Markdown.toHtml Nothing content - |> List.map fromUnstyled {-| Provide a list of custom HTML. diff --git a/src/Nri/Ui/FocusRing/V1.elm b/src/Nri/Ui/FocusRing/V1.elm index 43aa29235..306519cb2 100644 --- a/src/Nri/Ui/FocusRing/V1.elm +++ b/src/Nri/Ui/FocusRing/V1.elm @@ -8,6 +8,11 @@ module Nri.Ui.FocusRing.V1 exposing {-| + +### Patch changes + + - Made the :not(.custom-focus-ring) style !important to fix Highlighters with greater specificity + @docs forKeyboardUsers, forMouseUsers @docs styles, tightStyles @docs boxShadows, insetBoxShadows, outerBoxShadow, insetBoxShadow @@ -92,9 +97,9 @@ NOTE: use `boxShadows` instead if your focusable element: -} styles : List Css.Style styles = - [ boxShadows [] - , Css.outline3 (Css.px 2) Css.solid Css.transparent - , Css.borderRadius (Css.px 4) + [ Css.important (boxShadows []) + , Css.important (Css.outline3 (Css.px 2) Css.solid Css.transparent) + , Css.important (Css.borderRadius (Css.px 4)) ] diff --git a/src/Nri/Ui/Highlightable/LongForm.elm b/src/Nri/Ui/Highlightable/LongForm.elm new file mode 100644 index 000000000..2f40a2e28 --- /dev/null +++ b/src/Nri/Ui/Highlightable/LongForm.elm @@ -0,0 +1,489 @@ +module Nri.Ui.Highlightable.LongForm exposing + ( Highlightable, Type(..) + , initStatic, initInteractive, initFragments + , fromMarkdown, fromMarkdownInlines + , set + , joinAdjacentInteractiveHighlights + , asFragmentTuples, usedMarkers, text + ) + +{-| A Highlightable represents a span of text, typically a word, and its state. + +Highlightable is the unit by which text-wrapping happens. Depending on how the +Highlighter is initialized, it's very possible for a Highlightable to consist of +just a single whitespace. + + +## Patch + + - add new syntax for highlight on markdown parse, which supports custom colors + - add new initializer for markdown that receives the parsed markdown inlines instead of just the string + + +## Changes from V2 + + - move the uIState out of the Highlightable + - make the attribute modeling more flexible + - replace init with initStatic and initInteractive, and remove attributes from the UI since they're seldom used + - remove UIState: it only makes sense in the context of an interactive highlighter + - joinAdjacentInteractiveHighlights now takes a sorter + - initFragments no longer takes a list of markers + + +## Types + +@docs Highlightable, Type + + +## Initializers + +@docs initStatic, initInteractive, initFragments +@docs fromMarkdown, fromMarkdownInlines + + +## UIState and marker + +@docs set +@docs joinAdjacentInteractiveHighlights + + +## Getters + +@docs asFragmentTuples, usedMarkers, text, byId + +-} + +import List.Extra +import Markdown.Block +import Markdown.Config exposing (defaultOptions, defaultSanitizeOptions) +import Markdown.Inline +import Maybe.Extra +import Nri.Ui.Colors.V1 as Colors +import Nri.Ui.Highlighter.Attribute exposing (Attribute(..)) +import Nri.Ui.HighlighterTool.V1 as Tool +import Regex exposing (Regex) +import Sort exposing (Sorter) +import Sort.Set as Set exposing (Set) +import String.Extra + + +{-| A Highlightable comes in two flavors: + + - **Highlightable** | Interactive piece of text. + + - **Static** | Non-interactive piece of text. + + Data for a Highlightable: + + - **text**: String to display. + + - **customAttributes**: User-supplied, non-interactive HTML attributes. + + - **marked**: Current highlights, if any. + + - **index**: Unique highlightable index. + +-} +type alias Highlightable marker = + { text : String + , customAttributes : List Attribute + , marked : List (Tool.MarkerModel marker) + , index : Int + , type_ : Type + , hintedWith : Maybe (Tool.Tool marker) + , firstOrLastHintedWith : Maybe (Tool.Tool marker) + , hoveredBy : Maybe (Tool.Tool marker) + , isFocused : Bool + , isClicked : Bool + } + + +{-| -} +type Type + = Interactive + | Static + + +{-| -} +initStatic : List (Tool.MarkerModel marker) -> Int -> String -> Highlightable marker +initStatic marked index text_ = + { text = text_ + , customAttributes = [] + , marked = marked + , index = index + , type_ = Static + , hintedWith = Nothing + , firstOrLastHintedWith = Nothing + , hoveredBy = Nothing + , isFocused = False + , isClicked = False + } + + +{-| -} +initInteractive : List (Tool.MarkerModel marker) -> Int -> String -> Highlightable marker +initInteractive marked index text_ = + { text = text_ + , customAttributes = [] + , marked = marked + , index = index + , type_ = Interactive + , hintedWith = Nothing + , firstOrLastHintedWith = Nothing + , hoveredBy = Nothing + , isFocused = False + , isClicked = False + } + + +whitespace : Regex +whitespace = + Regex.fromString "\\s+" + |> Maybe.withDefault Regex.never + + +{-| Initialize highlightables from a string. + +Note that we're transforming all whitespace to spaces, so newlines are not preserved +as me move to and from fragments. Spaces will be treated as static elements. Words will be interactive. + +-} +initFragments : String -> List (Highlightable marker) +initFragments text_ = + let + spaceOrInit index maybeWord = + case maybeWord of + Just word -> + initInteractive [] index word + + Nothing -> + initStatic [] index " " + in + Regex.split whitespace text_ + |> List.map Just + |> List.intersperse Nothing + |> List.indexedMap spaceOrInit + + +{-| Initialize highlightables from a markdown string. +This will get all `nri-highlight` tags into markded elements, you can add a specific color +using the `color` attribute. The default color is yellow. + + fromMarkdown "for example, this phrase will show as highlighted" + +will result in a list of highlightables where "this phrase" is marked with the default marker. + + fromMarkdown "for example, this phrase will show as highlighted" + +will result in a list of highlightables where "this phrase" is marked with the cyan marker. + +The available highlight colors are listed in the [Nri.Colors docs](https://noredink-ui.netlify.app/#/doodad/Colors), +which are the following: + + - `magenta` -> `Colors.highlightMagenta` + - `brown` -> `Colors.highlightBrown` + - `purple` -> `Colors.highlightPurple` + - `blue` -> `Colors.highlightBlue` + - `yellow` -> `Colors.highlightYellow` + - `green` -> `Colors.highlightGreen` + - `cyan` -> `Colors.highlightCyan` + +There is also the empty url syntax, which is currently being deprecated: + + fromMarkdown "for example, [this phrase]() will show as highlighted" + +will result in a list of highlightables where "this phrase" is marked with the default marker. + +-} +fromMarkdown : String -> List (Highlightable ()) +fromMarkdown markdownString = + let + static maybeMark mapStrings c = + initStatic (Maybe.Extra.toList maybeMark) -1 (mapStrings c) + + highlightableFromBlock : Markdown.Block.Block b i -> List (Highlightable ()) + highlightableFromBlock block = + case block of + Markdown.Block.BlankLine text_ -> + [ static Nothing identity text_ ] + + Markdown.Block.ThematicBreak -> + [] + + Markdown.Block.Heading _ _ inlines -> + List.concatMap (highlightableFromInline Nothing identity) inlines + + Markdown.Block.CodeBlock _ text_ -> + [ static Nothing identity text_ ] + + Markdown.Block.Paragraph _ inlines -> + List.concatMap (highlightableFromInline Nothing identity) inlines + + Markdown.Block.BlockQuote blocks -> + List.concatMap highlightableFromBlock blocks + + Markdown.Block.List _ listOfBlocks -> + List.concatMap (List.concatMap highlightableFromBlock) listOfBlocks + + Markdown.Block.PlainInlines inlines -> + List.concatMap (highlightableFromInline Nothing identity) inlines + + Markdown.Block.Custom _ blocks -> + List.concatMap highlightableFromBlock blocks + in + if String.isEmpty markdownString then + [] + + else + let + parseOptions = + { defaultOptions + | rawHtml = + Markdown.Config.Sanitize + { allowedHtmlElements = "nri-highlight" :: defaultSanitizeOptions.allowedHtmlElements + , allowedHtmlAttributes = "color" :: defaultSanitizeOptions.allowedHtmlElements + } + } + in + Markdown.Block.parse (Just parseOptions) + markdownString + |> List.concatMap highlightableFromBlock + |> List.foldr + -- ensure that adjacent highlights are in a single mark element + (\segment ( lastInteractiveHighlight, acc ) -> + ( segment.marked + , case acc of + last :: remainder -> + -- Since there's only 1 possible mark type here, + -- it's safe to assume that the list is either empty or + -- of length 1 + if List.head segment.marked == List.head last.marked then + { segment | text = segment.text ++ last.text } + :: remainder + + else + segment :: acc + + _ -> + segment :: acc + ) + ) + ( [], [] ) + |> Tuple.second + |> List.indexedMap (\i highlightable -> { highlightable | index = i }) + + +{-| Same as [`fromMarkdown`](#fromMarkdown), but receives a list of inlines parsed markdown instead of a string. + +You might want to use this if you are parsing highlightables out of lists or in other block contexts that [`fromMarkdown`](#fromMarkdown) does not support. + +-} +fromMarkdownInlines : List (Markdown.Inline.Inline i) -> List (Highlightable ()) +fromMarkdownInlines inlines = + List.concatMap (highlightableFromInline Nothing identity) inlines + + +highlightableFromInline : Maybe (Tool.MarkerModel ()) -> (String -> String) -> Markdown.Inline.Inline i -> List (Highlightable ()) +highlightableFromInline maybeMark mapStrings inline = + let + static curMaybeMark curMaybeString c = + initStatic (Maybe.Extra.toList curMaybeMark) -1 (curMaybeString c) + + markFromColor color = + Tool.buildMarker + { highlightColor = color + , hoverColor = color + , hoverHighlightColor = color + , kind = () + , name = Nothing + } + + defaultMark = + markFromColor Colors.highlightYellow + in + case inline of + Markdown.Inline.Text text_ -> + [ static maybeMark mapStrings text_ ] + + Markdown.Inline.HardLineBreak -> + [ static maybeMark mapStrings "\n" ] + + Markdown.Inline.CodeInline text_ -> + [ static maybeMark mapStrings text_ ] + + Markdown.Inline.Link "" _ inlines -> + -- empty links should be interpreted as content that's supposed to be highlighted! + List.concatMap (highlightableFromInline (Just defaultMark) mapStrings) inlines + + Markdown.Inline.Link url _ inlines -> + let + lastIndex = + List.length inlines - 1 + + addLinkOpening i str = + if i == 0 then + "[" ++ str + + else + str + + addLinkClosing i str = + if i == lastIndex then + str ++ "](" ++ url ++ ")" + + else + str + in + List.indexedMap + (\i -> + highlightableFromInline maybeMark + (mapStrings >> addLinkOpening i >> addLinkClosing i) + ) + inlines + |> List.concat + + Markdown.Inline.Image _ _ inlines -> + List.concatMap (highlightableFromInline maybeMark mapStrings) inlines + + Markdown.Inline.HtmlInline "nri-highlight" attrs inlines -> + let + color = + case + List.Extra.find (\( attrName, _ ) -> attrName == "color") attrs + |> Maybe.andThen Tuple.second + of + Just "magenta" -> + Colors.highlightMagenta + + Just "brown" -> + Colors.highlightBrown + + Just "purple" -> + Colors.highlightPurple + + Just "blue" -> + Colors.highlightBlue + + Just "yellow" -> + Colors.highlightYellow + + Just "green" -> + Colors.highlightGreen + + Just "cyan" -> + Colors.highlightCyan + + -- Default color + Just _ -> + Colors.highlightYellow + + Nothing -> + Colors.highlightYellow + in + List.concatMap (highlightableFromInline (Just (markFromColor color)) mapStrings) inlines + + Markdown.Inline.HtmlInline _ _ inlines -> + List.concatMap (highlightableFromInline maybeMark mapStrings) inlines + + Markdown.Inline.Emphasis level inlines -> + let + marker = + String.repeat level "*" + + addMarkers str = + marker ++ str ++ marker + in + List.concatMap + (highlightableFromInline maybeMark (mapStrings >> addMarkers)) + inlines + + Markdown.Inline.Custom _ inlines -> + List.concatMap (highlightableFromInline maybeMark mapStrings) inlines + + +{-| -} +set : Maybe (Tool.MarkerModel marker) -> Highlightable marker -> Highlightable marker +set marked highlightable = + { highlightable | marked = Maybe.Extra.toList marked } + + +{-| -} +joinAdjacentInteractiveHighlights : Sorter m -> List (Highlightable m) -> List (Highlightable m) +joinAdjacentInteractiveHighlights sorter highlightables = + let + markerSorter = + Sort.by .kind sorter + in + highlightables + |> List.foldr + (\segment ( lastInteractiveHighlightMarkers, staticAcc, acc ) -> + case segment.type_ of + Interactive -> + let + staticMarkers : List (Tool.MarkerModel m) + staticMarkers = + List.filter (\m -> List.member m segment.marked) + lastInteractiveHighlightMarkers + + static_ = + List.map + (\s -> + if + -- careful here.. we want something like: + -- [] [] True + -- [1] [] False + -- [] [1] False <- just List.all will return True + -- [1] [1] True + (List.length staticMarkers == List.length s.marked) + && List.all (\m -> List.member m s.marked) staticMarkers + then + s + + else + { s | marked = staticMarkers } + ) + staticAcc + in + ( segment.marked, [], segment :: static_ ++ acc ) + + Static -> + ( lastInteractiveHighlightMarkers, segment :: staticAcc, acc ) + ) + ( [], [], [] ) + |> (\( _, static_, acc ) -> static_ ++ acc) + + +{-| Get unique markers that have been used. Note: ignores marks on whitespace. +-} +usedMarkers : Sorter marker -> List (Highlightable marker) -> Set marker +usedMarkers sorter highlightables = + highlightables + |> List.concatMap + (\highlightable -> + if String.Extra.isBlank highlightable.text then + [] + + else + List.map .kind highlightable.marked + ) + |> Set.fromList sorter + + +{-| Get a list of fragment texts and whether or not they are marked. +Useful for encoding answers. +-} +asFragmentTuples : List (Highlightable marker) -> List ( List marker, String ) +asFragmentTuples highlightables = + let + asFragmentTuple highlightable = + ( List.map .kind highlightable.marked, highlightable.text ) + in + List.map asFragmentTuple highlightables + + +{-| Fetch the text from a series of highlightables. +-} +text : List (Highlightable marker) -> String +text highlightables = + List.map .text highlightables + |> String.concat diff --git a/src/Nri/Ui/Highlighter/Attribute.elm b/src/Nri/Ui/Highlighter/Attribute.elm new file mode 100644 index 000000000..4334a23eb --- /dev/null +++ b/src/Nri/Ui/Highlighter/Attribute.elm @@ -0,0 +1,21 @@ +module Nri.Ui.Highlighter.Attribute exposing (..) + +{-| An Attribute class for Highlighter/Highlightable/Mark that is comparable + +This should help us make highlighter views lazy + +-} + +import Html +import Html.Attributes + + +type Attribute + = Class String + + +toHtmlAttribute : Attribute -> Html.Attribute msg +toHtmlAttribute attribute = + case attribute of + Class value -> + Html.Attributes.class value diff --git a/src/Nri/Ui/Highlighter/LongForm.elm b/src/Nri/Ui/Highlighter/LongForm.elm new file mode 100644 index 000000000..0770dbb79 --- /dev/null +++ b/src/Nri/Ui/Highlighter/LongForm.elm @@ -0,0 +1,1919 @@ +module Nri.Ui.Highlighter.LongForm exposing + ( Model, Msg(..), PointerMsg(..), TouchMsg(..), KeyboardMsg(..) + , init, update + , view + , viewWithOverlappingHighlights + , FoldState, initFoldState, viewFoldHighlighter, viewFoldStatic + , Intent(..), hasChanged, HasChanged(..), Change(..) + , removeHighlights + , clickedHighlightable, hoveredHighlightable + , selectShortestMarkerRange + ) + +{-| Changes from V5: + + - Added `scrollFriendly` flag to `init`, which enables a mode where: + - Mobile highlighting requires long-press instead of tap to highlight + - Desktop highlighting requires double-click instead of single-click to highlight + - Made Intent return whether a highlight was created or removed, and what are its bounds + - Makes it easier to change highlighter behavior from the outside + - Segregated Touch events from Pointer events, so we can give them distinct behavior + + +# Types + +@docs Model, Msg, PointerMsg, TouchMsg, KeyboardMsg + + +# Init/View/Update + +@docs init, update + +@docs view +@docs viewWithOverlappingHighlights + + +# Foldable Views + +If you want more control over the rendering of the highlightables, you can use these functions inside of a fold to +render the highlightables one by one. Use `initFoldState` to set up the initial state and then each call to `viewFoldHighlighter` +or `viewFoldStatic` will render a single highlightable along with an update to the state. + +@docs FoldState, initFoldState, viewFoldHighlighter, viewFoldStatic + + +## Intents + +@docs Intent, hasChanged, HasChanged, Change + + +## Setters + +@docs removeHighlights + + +## Getters + +@docs clickedHighlightable, hoveredHighlightable +@docs selectShortestMarkerRange + +-} + +import Accessibility.Styled.Key as Key exposing (Event) +import Accessibility.Styled.Style exposing (invisibleStyle) +import Browser.Dom as Dom +import Css +import Css.Global +import Html as Unstyled +import Html.Attributes as UnstyledAttrs +import Html.Events as UnstyledEvents +import Html.Lazy as UnstyledLazy +import Html.Styled as Html +import Json.Decode +import List.Extra +import Markdown.Block +import Markdown.Inline +import Nri.Ui.Highlightable.LongForm as Highlightable exposing (Highlightable) +import Nri.Ui.Highlighter.Attribute exposing (Attribute(..), toHtmlAttribute) +import Nri.Ui.HighlighterTool.V1 as Tool +import Nri.Ui.Html.Attributes.V2 as AttributesExtra +import Nri.Ui.Mark.LongForm as Mark exposing (Mark) +import Regex +import Sort exposing (Sorter) +import Task + + + +-- Model + + +{-| Model of a highlighter +-} +type alias Model marker = + { -- Used to identify a highlighter. This is necessary when there are + -- multiple highlighters on the same page because we add listeners + -- in javascript (see ./highlighter.js) and because we move focus by id for keyboard users. + id : HighlighterId + , highlightables : List (Highlightable marker) -- The actual highlightable elements + , marker : Tool.Tool marker -- Currently used marker + , markerRanges : List (MarkerRange marker) + , joinAdjacentInteractiveHighlights : Bool + , overlapsSupport : OverlapsSupport + + -- Scroll-friendly mode is used for highlighters in longform text, where we + -- want to prevent accidental highlighting when scrolling, or when just plain + -- reading the text. + -- + -- In scroll-friendly mode, we highlight on double-click for desktop, and + -- on long press for mobile. + , scrollFriendly : Bool + , sorter : Sorter marker + + -- Internal state to track user's interactions + , hintingIndices : Maybe ( Int, Int ) + , mouseDownIndex : Maybe Int + , mouseOverIndex : Maybe Int + , isInitialized : Initialized + , hasChanged : HasChanged marker + , selectionStartIndex : Maybe Int + , selectionEndIndex : Maybe Int + , focusIndex : Maybe Int + } + + +{-| Communicates whether a change to a highlightable has been performed +-} +type HasChanged marker + = Changed (Change marker) + | NotChanged + + +type alias HighlighterId = + String + + +{-| Describes the change being performed by the Highlighter component, alongside the index bounds of the change +-} +type Change marker + = HighlightCreated ( Int, Int ) marker + | HighlightRemoved ( Int, Int ) marker + + +type Initialized + = Initialized + | NotInitialized + + +{-| Setup initial model + +joinAdjacentInteractiveHighlights - When true, and static highlightables are sandwiched by highlighted interactive highlightables of the same type, apply the highlight to the static highlightable as well. + +scrollFriendly - When true, enables a mode where mobile highlighting requires long-press instead of tap to highlight, and desktop highlighting requires double-click instead of single-click to highlight a single word. + +-} +init : + { id : String + , highlightables : List (Highlightable marker) + , marker : Tool.Tool marker + , joinAdjacentInteractiveHighlights : Bool + , sorter : Sorter marker + , scrollFriendly : Bool + , overlapsSupport : Bool + } + -> Model marker +init config = + let + focusIndex = + List.Extra.findIndex (\highlightable -> .type_ highlightable == Highlightable.Interactive) config.highlightables + in + { id = config.id + , highlightables = + (if config.joinAdjacentInteractiveHighlights then + Highlightable.joinAdjacentInteractiveHighlights config.sorter config.highlightables + + else + config.highlightables + ) + -- Enforce highlightable index to match index in list + -- so we can use List.Extra.getAt, updateAt, etc + |> List.indexedMap (\index highlightable -> { highlightable | index = index }) + |> List.Extra.updateAt (Maybe.withDefault 0 focusIndex) (\highlightable -> { highlightable | isFocused = True }) + , marker = config.marker + , markerRanges = [] + , joinAdjacentInteractiveHighlights = config.joinAdjacentInteractiveHighlights + , overlapsSupport = + if config.overlapsSupport then + OverlapsSupported + + else + OverlapsNotSupported + , scrollFriendly = config.scrollFriendly + , sorter = config.sorter + + -- Internal state to track user's interactions + , hintingIndices = Nothing + , mouseDownIndex = Nothing + , mouseOverIndex = Nothing + , isInitialized = NotInitialized + , hasChanged = NotChanged + , selectionStartIndex = Nothing + , selectionEndIndex = Nothing + , focusIndex = focusIndex + } + + + +-- UPDATE + + +{-| -} +type Msg marker + = Pointer PointerMsg + | Touch TouchMsg + | Keyboard KeyboardMsg + | Focused (Result Dom.Error ()) + + +{-| Messages used by highlighter when interacting with a mouse or finger. +-} +type PointerMsg + = Down Int + | Out + | Over Int + | Click { index : Int, clickCount : Int } + | Up (Maybe String) + | Ignored + + +{-| Messages used by highlighter when interacting with a touch screen. +-} +type TouchMsg + = TouchStart Int + | LongPress (Maybe String) Int + | TouchMove (Maybe String) Int + | TouchEnd (Maybe String) + | TouchIgnored + + +{-| Messages used by highlighter when interaction with the keyboard. +-} +type KeyboardMsg + = MoveLeft Int + | MoveRight Int + | SelectionExpandLeft Int + | SelectionExpandRight Int + | SelectionApplyTool Int + | SelectionReset Int + | ToggleHighlight Int + + +{-| Possible intents or "external effects" that the Highlighter can request (see `perform`). +-} +type Intent marker + = Intent + { listenTo : ListenTo + , changed : HasChanged marker + } + + +type alias ListenTo = + Maybe String + + +{-| Get intent based on the resulting model from `update`. + + - This ensures that we initialize the highlighter in JS exactly once. + - Sets the `hasChanged` flag if the model has changed. This is used by the user of `Highlighter` to + determine whether they want to execute follow up actions. + +-} +withIntent : ( Model m, Cmd (Msg m) ) -> ( Model m, Cmd (Msg m), Intent m ) +withIntent ( new, cmd ) = + ( { new | isInitialized = Initialized, hasChanged = NotChanged } + , cmd + , Intent + { listenTo = + case new.isInitialized of + Initialized -> + Nothing + + NotInitialized -> + Just new.id + , changed = new.hasChanged + } + ) + + +{-| Check if the highlighter has changed. +-} +hasChanged : Intent marker -> HasChanged marker +hasChanged (Intent { changed }) = + changed + + +{-| Actions are used as an intermediate algebra from pointer events to actual changes to the model. +-} +type Action marker + = Focus Int + | Hint Int Int + | MouseDown Int + | MouseUp + | MouseOver Int + | MouseOut + | RemoveHint + | Save (Tool.MarkerModel marker) + | Toggle Int (Tool.MarkerModel marker) + | StartSelection Int + | ExpandSelection Int + | ResetSelection + | None + + +type HighlightableUpdate + = UpdateFocused + | UpdateHinted + | UpdateHovered + + +{-| Update for highlighter returning additional info about whether there was a change +-} +update : Msg marker -> Model marker -> ( Model marker, Cmd (Msg marker), Intent marker ) +update msg model = + withIntent <| + case msg of + Pointer pointerMsg -> + pointerEventToActions pointerMsg model + |> performActions model + |> (\( newModel, updates, cmds ) -> ( updateHighlightables model newModel updates, cmds )) + |> Tuple.mapFirst maybeJoinAdjacentInteractiveHighlights + + Touch touchMsg -> + touchEventToActions touchMsg model + |> performActions model + |> (\( newModel, updates, cmds ) -> ( updateHighlightables model newModel updates, cmds )) + |> Tuple.mapFirst maybeJoinAdjacentInteractiveHighlights + + Keyboard keyboardMsg -> + keyboardEventToActions keyboardMsg model + |> performActions model + |> (\( newModel, updates, cmds ) -> ( updateHighlightables model newModel updates, cmds )) + |> Tuple.mapFirst maybeJoinAdjacentInteractiveHighlights + + Focused _ -> + ( model, Cmd.none ) + + +updateHighlightables : Model marker -> Model marker -> List HighlightableUpdate -> Model marker +updateHighlightables oldModel newModel updates = + let + uniqueUpdates = + List.Extra.unique updates + in + cleanupHighlightables uniqueUpdates oldModel newModel + |> updateHighlightableFlags uniqueUpdates oldModel + + +updateHighlightableFlags : List HighlightableUpdate -> Model marker -> Model marker -> Model marker +updateHighlightableFlags updates oldModel newModel = + let + updateIf updateKind f highlightable = + if List.member updateKind updates then + f oldModel newModel highlightable + + else + highlightable + in + if List.isEmpty updates then + newModel + + else + { newModel + | highlightables = + List.map + (updateIf UpdateFocused updateFocused + >> updateIf UpdateHinted updateHinted + >> updateIf UpdateHovered updateHovered + ) + newModel.highlightables + } + + +cleanupHighlightables : List HighlightableUpdate -> Model marker -> Model marker -> Model marker +cleanupHighlightables updates oldModel newModel = + let + cleanIf updateKind f highlightable = + if List.member updateKind updates then + f oldModel newModel highlightable + + else + highlightable + in + if List.isEmpty updates then + newModel + + else + { newModel + | highlightables = + List.map + (cleanIf UpdateFocused cleanFocused + >> cleanIf UpdateHinted cleanHinted + >> cleanIf UpdateHovered cleanHovered + ) + newModel.highlightables + } + + +maybeJoinAdjacentInteractiveHighlights : Model m -> Model m +maybeJoinAdjacentInteractiveHighlights model = + if model.joinAdjacentInteractiveHighlights then + { model | highlightables = Highlightable.joinAdjacentInteractiveHighlights model.sorter model.highlightables } + + else + model + + +nextInteractiveIndex : Int -> List (Highlightable marker) -> Maybe Int +nextInteractiveIndex index highlightables = + let + isInteractive highlightable = + .type_ highlightable == Highlightable.Interactive + + interactiveHighlightables = + List.filter isInteractive highlightables + in + List.foldl + (\x ( maybeNextIndex, hasIndexMatched ) -> + if hasIndexMatched then + ( Just x.index, False ) + + else + ( maybeNextIndex, x.index == index ) + ) + ( Nothing, False ) + interactiveHighlightables + |> Tuple.first + + +previousInteractiveIndex : Int -> List (Highlightable marker) -> Maybe Int +previousInteractiveIndex index highlightables = + let + isInteractive highlightable = + .type_ highlightable == Highlightable.Interactive + + interactiveHighlightables = + List.filter isInteractive highlightables + in + List.foldr + (\x ( maybeNextIndex, hasIndexMatched ) -> + if hasIndexMatched then + ( Just x.index, False ) + + else + ( maybeNextIndex, x.index == index ) + ) + ( Nothing, False ) + interactiveHighlightables + |> Tuple.first + + +keyboardEventToActions : KeyboardMsg -> Model marker -> List (Action marker) +keyboardEventToActions msg model = + case msg of + MoveLeft index -> + case previousInteractiveIndex index model.highlightables of + Nothing -> + [] + + Just i -> + [ Focus i, ResetSelection, RemoveHint ] + + MoveRight index -> + case nextInteractiveIndex index model.highlightables of + Nothing -> + [] + + Just i -> + [ Focus i, ResetSelection, RemoveHint ] + + SelectionExpandLeft index -> + case previousInteractiveIndex index model.highlightables of + Nothing -> + [] + + Just i -> + Focus i + :: (case model.selectionStartIndex of + Just startIndex -> + [ ExpandSelection i, Hint startIndex i ] + + Nothing -> + [ StartSelection index, ExpandSelection i, Hint index i ] + ) + + SelectionExpandRight index -> + case nextInteractiveIndex index model.highlightables of + Nothing -> + [] + + Just i -> + Focus i + :: (case model.selectionStartIndex of + Just startIndex -> + [ ExpandSelection i, Hint startIndex i ] + + Nothing -> + [ StartSelection index, ExpandSelection i, Hint index i ] + ) + + SelectionApplyTool index -> + case model.marker of + Tool.Marker marker -> + [ Save marker, ResetSelection, Focus index ] + + Tool.Eraser _ -> + [ RemoveHint, ResetSelection, Focus index ] + + SelectionReset index -> + [ ResetSelection, RemoveHint, Focus index ] + + ToggleHighlight index -> + case model.marker of + Tool.Marker marker -> + [ Toggle index marker + , Focus index + ] + + Tool.Eraser _ -> + [ MouseOver index + , Hint index index + , MouseUp + , RemoveHint + , Focus index + ] + + +{-| Pointer events to actions. +-} +pointerEventToActions : PointerMsg -> Model marker -> List (Action marker) +pointerEventToActions msg model = + case msg of + Ignored -> + [] + + Over eventIndex -> + case model.mouseDownIndex of + Just downIndex -> + [ MouseOver eventIndex + , Hint downIndex eventIndex + ] + + Nothing -> + [ MouseOver eventIndex ] + + Out -> + [ MouseOut ] + + Down eventIndex -> + [ MouseOver eventIndex + , MouseDown eventIndex + , if model.scrollFriendly then + -- scroll-friendly mode only hints on double-click or drag + None + + else + Hint eventIndex eventIndex + ] + + Click { index, clickCount } -> + let + scrollFriendlyDoubleClick = + -- In scroll-friendly mode, a double-click is necessary to create a highlightable + model.scrollFriendly && clickCount > 1 + + scrollFriendlyFocusClick = + -- In scroll-friendly mode, a single click on a highlightable focuses on it + model.scrollFriendly + && (clickCount == 1) + && (Nothing /= markerAtIndex index model.highlightables) + in + if scrollFriendlyDoubleClick || scrollFriendlyFocusClick then + case model.marker of + Tool.Marker marker -> + [ MouseOver index + , MouseDown index + , Hint index index + , Toggle index marker + , MouseUp + ] + + Tool.Eraser _ -> + [ MouseOver index + , MouseDown index + , Hint index index + , RemoveHint + , MouseUp + ] + + else + [] + + Up _ -> + let + save marker = + case ( model.mouseOverIndex, model.mouseDownIndex ) of + ( Just overIndex, Just downIndex ) -> + if overIndex == downIndex then + if model.scrollFriendly && model.hintingIndices == Nothing then + -- scroll-friendly mode only hints on double-click or drag + [] + + else + [ Toggle downIndex marker ] + + else + -- Finished sentence highlighting over a highlightable + [ Save marker ] + + ( Nothing, Just _ ) -> + -- Finished sentence highlighting outside of a highlightable + [ Save marker ] + + _ -> + [] + in + case model.marker of + Tool.Marker marker -> + MouseUp :: save marker + + Tool.Eraser _ -> + [ MouseUp + , if model.scrollFriendly then + -- scroll-friendly mode only erases on double-click or drag + None + + else + RemoveHint + ] + + +touchEventToActions : TouchMsg -> Model marker -> List (Action marker) +touchEventToActions msg model = + case msg of + TouchIgnored -> + [] + + TouchStart eventIndex -> + [ MouseOver eventIndex + , MouseDown eventIndex + , Hint eventIndex eventIndex + ] + + TouchMove targetId eventIndex -> + if Just model.id == targetId then + case model.mouseDownIndex of + Just downIndex -> + [ MouseOver eventIndex + , Hint downIndex eventIndex + ] + + Nothing -> + [] + + else + [] + + TouchEnd _ -> + let + save marker = + case ( model.mouseOverIndex, model.mouseDownIndex ) of + ( Just overIndex, Just downIndex ) -> + if overIndex == downIndex then + if model.scrollFriendly && model.hintingIndices == Nothing then + -- scroll-friendly mode only hints on long-press + [] + + else + [ Toggle downIndex marker ] + + else + -- Finished sentence highlighting over a highlightable + [ Save marker ] + + ( Nothing, Just _ ) -> + -- Finished sentence highlighting outside of a highlightable + [ Save marker ] + + _ -> + [] + in + case model.marker of + Tool.Marker marker -> + MouseUp :: save marker + + Tool.Eraser _ -> + [ MouseUp + , if model.scrollFriendly then + -- scroll-friendly mode only erases on double-click or drag + None + + else + RemoveHint + ] + + LongPress targetId eventIndex -> + if Just model.id == targetId then + [ MouseOver eventIndex + , MouseDown eventIndex + , Hint eventIndex eventIndex + ] + + else + [] + + +{-| We fold over actions using (Model marker) as the accumulator. +-} +performActions : Model marker -> List (Action marker) -> ( Model marker, List HighlightableUpdate, Cmd (Msg m) ) +performActions model actions = + let + _ = + Debug.log "actions" actions + in + List.foldl performAction ( model, [], [] ) actions + |> (\( newModel, highlightableUpdates, cmds ) -> ( newModel, highlightableUpdates, Cmd.batch cmds )) + + +{-| Performs actual changes to the model, or emit a command. +-} +performAction : + Action marker + -> ( Model marker, List HighlightableUpdate, List (Cmd (Msg m)) ) + -> ( Model marker, List HighlightableUpdate, List (Cmd (Msg m)) ) +performAction action ( model, highlightableUpdates, cmds ) = + case action of + None -> + ( model, highlightableUpdates, cmds ) + + Focus index -> + ( { model | focusIndex = Just index } + , UpdateFocused :: highlightableUpdates + , Task.attempt Focused (Dom.focus (highlightableId model.id index)) :: cmds + ) + + Hint start end -> + ( { model | hintingIndices = Just ( start, end ) } + , UpdateHinted :: highlightableUpdates + , cmds + ) + + Save marker -> + case model.hintingIndices of + Just hinting -> + let + ( indexesToSave, highlightables ) = + saveHinted model.overlapsSupport marker hinting model.highlightables + in + ( { model + | highlightables = highlightables |> Debug.log "saved highlightables" + , markerRanges = findMarkerRanges highlightables + , hasChanged = Changed (HighlightCreated indexesToSave marker.kind) + , hintingIndices = Nothing + } + , UpdateHinted :: highlightableUpdates + , cmds + ) + + Nothing -> + ( model, highlightableUpdates, cmds ) + + Toggle index marker -> + let + ( highlightables, changed ) = + toggleHighlighted index marker model + + _ = + Debug.log "toggled highlightables" (List.map (\h -> ( h.index, h.marked |> List.map .kind )) highlightables) + in + ( { model + | highlightables = highlightables + , markerRanges = findMarkerRanges highlightables + , hasChanged = changed + , hintingIndices = Nothing + } + , UpdateHinted :: highlightableUpdates + , cmds + ) + + RemoveHint -> + case model.hintingIndices of + Just hinting -> + ( { model + | highlightables = removeHinted hinting model.highlightables + , hasChanged = + markerAtIndex (Tuple.first hinting) model.highlightables + |> Maybe.map (\marker -> Changed (HighlightRemoved hinting marker)) + |> Maybe.withDefault NotChanged + , hintingIndices = Nothing + } + , UpdateHinted :: highlightableUpdates + , cmds + ) + + Nothing -> + ( model, highlightableUpdates, cmds ) + + MouseDown index -> + ( { model | mouseDownIndex = Just index }, highlightableUpdates, cmds ) + + MouseUp -> + ( { model | mouseDownIndex = Nothing, mouseOverIndex = Nothing }, highlightableUpdates, cmds ) + + MouseOver index -> + ( { model | mouseOverIndex = Just index }, UpdateHovered :: highlightableUpdates, cmds ) + + MouseOut -> + ( { model | mouseOverIndex = Nothing }, UpdateHovered :: highlightableUpdates, cmds ) + + StartSelection index -> + ( { model | selectionStartIndex = Just index }, highlightableUpdates, cmds ) + + ExpandSelection index -> + ( { model | selectionEndIndex = Just index }, highlightableUpdates, cmds ) + + ResetSelection -> + ( { model | selectionStartIndex = Nothing, selectionEndIndex = Nothing }, highlightableUpdates, cmds ) + + +cleanHovered : Model marker -> Model marker -> Highlightable marker -> Highlightable marker +cleanHovered _ newModel highlightable = + let + shouldBeHovered = + isHovered_ + { mouseOverIndex = newModel.mouseOverIndex + , mouseDownIndex = newModel.mouseDownIndex + , maybeTool = Just newModel.marker + } + (Maybe.andThen (selectShortestMarkerRange newModel.markerRanges) newModel.mouseOverIndex) + in + if (newModel.hintingIndices /= Nothing || newModel.mouseDownIndex /= Nothing) && highlightable.hoveredBy /= Nothing then + { highlightable | hoveredBy = Nothing } + + else if highlightable.hoveredBy /= Nothing && not (shouldBeHovered highlightable) then + { highlightable | hoveredBy = Nothing } + + else + highlightable + + +updateHovered : Model marker -> Model marker -> Highlightable marker -> Highlightable marker +updateHovered _ newModel highlightable = + let + shouldBeHovered = + isHovered_ + { mouseOverIndex = newModel.mouseOverIndex + , mouseDownIndex = newModel.mouseDownIndex + , maybeTool = Just newModel.marker + } + (Maybe.andThen (selectShortestMarkerRange newModel.markerRanges) newModel.mouseOverIndex) + in + if shouldBeHovered highlightable then + { highlightable | hoveredBy = Just newModel.marker } + + else + highlightable + + +cleanHinted : Model marker -> Model marker -> Highlightable marker -> Highlightable marker +cleanHinted oldModel newModel highlightable = + let + maybeBetween = + Maybe.map (\( a, b ) -> between a b highlightable) + >> Maybe.withDefault False + in + if maybeBetween oldModel.hintingIndices && not (maybeBetween newModel.hintingIndices) then + { highlightable | hintedWith = Nothing, firstOrLastHintedWith = Nothing } + + else + highlightable + + +updateHinted : Model marker -> Model marker -> Highlightable marker -> Highlightable marker +updateHinted oldModel newModel highlightable = + case ( oldModel.hintingIndices /= newModel.hintingIndices, newModel.hintingIndices ) of + ( True, Just ( start, end ) ) -> + if between start end highlightable then + { highlightable + | hintedWith = Just newModel.marker + , firstOrLastHintedWith = + if highlightable.index == start || highlightable.index == end then + Just newModel.marker + + else + Nothing + } + + else + highlightable + + _ -> + highlightable + + +cleanFocused : Model marker -> Model marker -> Highlightable marker -> Highlightable marker +cleanFocused oldModel newModel highlightable = + case ( oldModel.focusIndex /= newModel.focusIndex, oldModel.focusIndex ) of + ( True, Just oldFocused ) -> + if oldFocused == highlightable.index then + { highlightable | isFocused = False } + + else + highlightable + + _ -> + highlightable + + +updateFocused : Model marker -> Model marker -> Highlightable marker -> Highlightable marker +updateFocused oldModel newModel highlightable = + if oldModel.focusIndex /= newModel.focusIndex && newModel.focusIndex == Just highlightable.index then + { highlightable | isFocused = True } + + else + highlightable + + +markerAtIndex : Int -> List (Highlightable marker) -> Maybe marker +markerAtIndex index highlightables = + List.Extra.getAt index highlightables + |> Maybe.andThen (\highligtable -> highligtable.marked |> List.head |> Maybe.map .kind) + + +between : Int -> Int -> Highlightable marker -> Bool +between from to { index } = + if from < to then + from <= index && index <= to + + else + to <= index && index <= from + + +saveHinted : OverlapsSupport -> Tool.MarkerModel marker -> ( Int, Int ) -> List (Highlightable marker) -> ( ( Int, Int ), List (Highlightable marker) ) +saveHinted overlapsSupport marker ( hintBeginning, hintEnd ) = + List.Extra.mapAccuml + (\acc highlightable -> + if between hintBeginning hintEnd highlightable then + ( highlightable :: acc + , case overlapsSupport of + OverlapsSupported -> + { highlightable | marked = marker :: highlightable.marked } + + OverlapsNotSupported -> + { highlightable | marked = [ marker ] } + ) + + else + ( acc, highlightable ) + ) + [] + >> Tuple.mapFirst + -- Report back what indexes we're actually going to save. + -- Static highlightables at the edges are not saved + firstLastIndexInteractive + + +{-| Get the first and last indexes, only counting interactive highlightables. +-} +firstLastIndexInteractive : List (Highlightable marker) -> ( Int, Int ) +firstLastIndexInteractive list = + let + indexes = + List.filterMap + (\{ type_, index } -> + if type_ == Highlightable.Interactive then + Just index + + else + Nothing + ) + list + in + ( List.minimum indexes |> Maybe.withDefault 0 + , List.maximum indexes |> Maybe.withDefault 0 + ) + + +{-| Toggle highlights + +If we're allowing overlapping highlights: + + - on a click over an existing highlight + - If we're using the same marker as the shortest marker in range, remove the highlight + - If we're using a different marker, add a new overlapping highlight + - on a click over a non-highlighted segment + - Add a new highlight + +If we're not allowing overlapping highlights: + + - on a click over an existing highlight + - Remove the existing highlight + - on a click over a non-highlighted segment + - Add a new highlight + +-} +toggleHighlighted : Int -> Tool.MarkerModel marker -> Model marker -> ( List (Highlightable marker), HasChanged marker ) +toggleHighlighted index marker model = + let + maybeShortestMarker = + selectShortestMarkerRange model.markerRanges index + + toggle acc highlightable = + let + maybeCreateHighlight _ = + if highlightable.index == index && highlightable.type_ == Highlightable.Interactive then + ( Changed (HighlightCreated ( index, index ) marker.kind) + , { highlightable + | hintedWith = Nothing + , firstOrLastHintedWith = Nothing + , marked = + if model.overlapsSupport == OverlapsNotSupported then + [ marker ] + + else + marker :: highlightable.marked + } + ) + + else + ( acc, highlightable ) + in + case maybeShortestMarker of + Just shortestMarker -> + if marker.kind == shortestMarker.marker && between shortestMarker.start shortestMarker.end highlightable then + ( Changed (HighlightRemoved ( shortestMarker.start, shortestMarker.end ) marker.kind) + , { highlightable + | hintedWith = Nothing + , firstOrLastHintedWith = Nothing + , marked = + if model.overlapsSupport == OverlapsNotSupported then + [] + + else + List.Extra.remove marker highlightable.marked + } + ) + + else + maybeCreateHighlight () + + Nothing -> + maybeCreateHighlight () + + ( changed, toggled ) = + List.Extra.mapAccuml toggle NotChanged model.highlightables + in + ( toggled, changed ) + + +type alias MarkerRange marker = + { marker : marker, start : Int, end : Int, size : Int } + + +{-| Select the shortest possibly-overlapping marker covering the index provided, return its range. +-} +selectShortestMarkerRange : List (MarkerRange marker) -> Int -> Maybe (MarkerRange marker) +selectShortestMarkerRange markerRanges index = + markerRanges + |> List.filter (\{ start, end } -> start <= index && index <= end) + |> List.Extra.minimumBy (\{ size } -> size) + + +{-| Find all the highlighted ranges in the format: {marker, start, end, size} +-} +findMarkerRanges : List (Highlightable marker) -> List (MarkerRange marker) +findMarkerRanges highlightables = + List.foldl + (\highlightable acc -> + case ( highlightable.type_, List.map .kind highlightable.marked ) of + ( Highlightable.Static, _ ) -> + acc + + ( Highlightable.Interactive, [] ) -> + { open = [], closed = acc.open ++ acc.closed } + + ( Highlightable.Interactive, markers ) -> + -- update all open, insert into open if new, close open if necessary + let + updateResult = + List.foldl + (updateMarkerRangeStep highlightable) + { open = [], toBeClosed = acc.open } + markers + in + { open = updateResult.open, closed = updateResult.toBeClosed ++ acc.closed } + ) + { open = [], closed = [] } + highlightables + |> (\{ open, closed } -> open ++ closed) + + +{-| Fold step for finding marker ranges. + + At every fold step, we take all currently open markers and pre-tag them as "to be closed". + + This function then tries to find if they really should be closed or not. + + If they shouldn't, we put them back into the open list. + + If we don't find our marker in the toBeClosed list, we add a new record to the open list. + + If a "to be closed" record is not touched by this function, that means it really should have been closed. + +-} +updateMarkerRangeStep : + Highlightable marker + -> marker + -> { open : List (MarkerRange marker), toBeClosed : List (MarkerRange marker) } + -> { open : List (MarkerRange marker), toBeClosed : List (MarkerRange marker) } +updateMarkerRangeStep highlightable marker acc = + -- try to remove from toBeClosed if still open + -- add new record to new if not in toBeClosed + let + ( keepOpen, toBeClosed ) = + -- if current marker is in toBeClosed, it's not meant to be closed after all + List.partition (\x -> x.marker == marker) acc.toBeClosed + in + if List.isEmpty keepOpen then + -- if current marker was not in toBeClosed, it's a new marker + { open = + { marker = marker + , start = highlightable.index + , end = highlightable.index + , size = String.length highlightable.text + } + :: acc.open + , toBeClosed = toBeClosed + } + + else + { open = + acc.open + ++ List.map + (\openMarker -> + { marker = openMarker.marker + , start = openMarker.start + , end = highlightable.index + , size = openMarker.size + String.length highlightable.text + } + ) + keepOpen + , toBeClosed = toBeClosed + } + + +removeHinted : ( Int, Int ) -> List (Highlightable marker) -> List (Highlightable marker) +removeHinted ( hintBeginning, hintEnd ) = + List.map + (\highlightable -> + if between hintBeginning hintEnd highlightable then + { highlightable | hintedWith = Nothing, firstOrLastHintedWith = Nothing } + |> Highlightable.set Nothing + + else + highlightable + ) + + +{-| -} +removeHighlights : Model marker -> Model marker +removeHighlights model = + { model | highlightables = removeHighlights_ model.highlightables } + + +removeHighlights_ : List (Highlightable m) -> List (Highlightable m) +removeHighlights_ = + List.map + (\highlightable -> + if highlightable.marked /= [] then + Highlightable.set Nothing highlightable + + else + highlightable + ) + + +{-| You are not likely to need this helper unless you're working with inline commenting. +-} +clickedHighlightable : Model marker -> Maybe (Highlightable.Highlightable marker) +clickedHighlightable model = + Maybe.andThen (\i -> List.Extra.getAt i model.highlightables) model.mouseDownIndex + + +{-| You are not likely to need this helper unless you're working with inline commenting. +-} +hoveredHighlightable : Model marker -> Maybe (Highlightable.Highlightable marker) +hoveredHighlightable model = + Maybe.andThen (\i -> List.Extra.getAt i model.highlightables) model.mouseOverIndex + + +isHovered_ : + { config + | mouseOverIndex : Maybe Int + , mouseDownIndex : Maybe Int + , maybeTool : Maybe tool + } + -> Maybe (MarkerRange marker) + -> Highlightable marker + -> Bool +isHovered_ config shortestMarker highlightable = + case config.maybeTool of + Nothing -> + False + + Just _ -> + directlyHoveringInteractiveSegment config highlightable + || inHoveredMarker config (Maybe.map .marker shortestMarker) highlightable + + +directlyHoveringInteractiveSegment : { config | mouseOverIndex : Maybe Int } -> Highlightable m -> Bool +directlyHoveringInteractiveSegment { mouseOverIndex } highlightable = + (mouseOverIndex == Just highlightable.index) + && (highlightable.type_ == Highlightable.Interactive) + + +inHoveredMarker : + { config | mouseDownIndex : Maybe Int } + -> Maybe marker + -> Highlightable marker + -> Bool +inHoveredMarker config hoveredMarkerWithShortestHighlight highlightable = + case config.mouseDownIndex of + Just _ -> + -- If the user is actively highlighting, don't show the entire highlighted region as hovered + -- This is so that when creating an overlap, the hover styles don't imply that you've + -- selected more than you have + False + + Nothing -> + case hoveredMarkerWithShortestHighlight of + Nothing -> + False + + Just marker -> + List.member marker (List.map .kind highlightable.marked) + + + +-- VIEWS + + +{-| -} +view : Model marker -> Unstyled.Html (Msg marker) +view = + UnstyledLazy.lazy + (\model -> + view_ + { maybeTool = Just model.marker + , mouseOverIndex = model.mouseOverIndex + , mouseDownIndex = model.mouseDownIndex + , hintingIndices = model.hintingIndices + , overlaps = OverlapsNotSupported + , markerRanges = model.markerRanges + , viewSegment = viewHighlightable model.id model.scrollFriendly + , id = model.id + , highlightables = model.highlightables + } + ) + + +{-| -} +viewWithOverlappingHighlights : Model marker -> Unstyled.Html (Msg marker) +viewWithOverlappingHighlights = + UnstyledLazy.lazy + (\model -> + view_ + { maybeTool = Just model.marker + , mouseOverIndex = model.mouseOverIndex + , mouseDownIndex = model.mouseDownIndex + , hintingIndices = model.hintingIndices + , overlaps = OverlapsSupported + , markerRanges = model.markerRanges + , viewSegment = viewHighlightable model.id model.scrollFriendly + , id = model.id + , highlightables = model.highlightables + } + ) + + +{-| A type that contains information needed to render individual `Highlightable`s one at a time +-} +type FoldState marker + = FoldState + { model : Model marker + , state : List ( Highlightable marker, Maybe (Unstyled.Html Never), List Attribute ) + , styles : Maybe (Unstyled.Html Never) + } + + +{-| Computes all the mark styles necessary to perform a fold over the `Highlightable` elements +-} +initFoldState : Model marker -> FoldState marker +initFoldState model = + let + toMark : Highlightable marker -> Tool.MarkerModel marker -> Mark.Mark + toMark highlightable marker = + { name = marker.name + , startStyles = marker.startGroupClass + , styles = + markedHighlightableStyles + highlightable + , endStyles = marker.endGroupClass + } + + markedSegments = + model.highlightables + |> List.map (\highlightable -> ( highlightable, List.map (toMark highlightable) highlightable.marked )) + + precomputedSegments = + markedSegments + |> Mark.overlappingStyles + |> List.map (\( a, label, c ) -> ( a, label, c )) + in + FoldState + { model = model + , state = precomputedSegments + , styles = + Just + (renderStyles + { id = model.id + , marks = List.concatMap Tuple.second markedSegments + , scrollFriendly = model.scrollFriendly + , maybeTool = Just model.marker + } + ) + } + + +type StyleClass + = Highlightable + | HintedMark (Tool.MarkerModel ()) + | HintedMarkBoundary (Tool.MarkerModel ()) + | HintedEraser Tool.EraserModel + | HoveredNotHinted (Tool.Tool ()) + + +styleClassName : StyleClass -> String +styleClassName styleClass = + sanitizeCssClassName <| + case styleClass of + Highlightable -> + "highlighter-highlightable" + + HintedMark marker -> + "highlighter_hinted_mark-" ++ Maybe.withDefault "highlight" marker.name + + HintedMarkBoundary marker -> + "highlighter_hinted_mark_boundary-" ++ Maybe.withDefault "highlight" marker.name + + HintedEraser _ -> + "highlighter-hinted-eraser" + + HoveredNotHinted tool -> + case tool of + Tool.Marker marker -> + "highlighter-hovered-marker-" ++ Maybe.withDefault "highlight" marker.name + + Tool.Eraser _ -> + "highlighter-hovered-eraser" + + +sanitizeCssClassName : String -> String +sanitizeCssClassName = + case Regex.fromString "[ \\(\\)\\[\\]]" of + Nothing -> + identity + + Just regex -> + Regex.replace regex (\_ -> "_") + + +{-| Function to render the