!|:$      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"# Safe$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~None=>?k`immCNewtype wrapper to prettyprint a key uniquely identifying an objectbimmInfix operator for Fv  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJMLKPNOXWVUTSRQ[ZY^]\_`abcdefghijklmnopqrstuv`abcdefghijklmnopqrstu  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJMLKPNOXWVUTSRQ[ZY^]\_None=>?@A vyxzw{|~} {|~}vyxzwNone=>?SX#imm$Handle to perform GET HTTP requests.immSimple wrapper around " that also logs the requested URI. None$@immNewtype wrapper to provide  and  instances for       !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~None &'.1=?SUVX,imm7A query describes a set of feeds through some criteria.immFeed location identifies a feed. It is either: - the feed URI - a webpage URI that refers to the feed through an alternate link, in which case an optional feed title can be provided to disambiguate multiple such linksNone-=None7k3imm+External program run for each feed element.7Data is passed to that program through standard input (stdin), using Avro ( (https://hackage.haskell.org/package/avro=) serialization format. The data schema is described in file ids/callback.json, provided with this library.immMeant to be called by the main imm process.imm'Meant to be called by callback process.None "#>HVk5immNewtype wrapper to provide  and  instances for =     =      None77lvwzxy}~     lvwzxy}~       !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmmnopqqrstuvwxyz{|}~x{      !"#$%& '()* +, +- ./ .0 1 2 3()4 56 57 89 :; :< := > ?@ ?A ?B ?C ?D ?E ?F ?G ?H ?I ?J ?K(LM(LN(LO PQ PR PS PT PU PV PW PX PY PZ P[ P\ P] P^ P_ P` Pa Pb 5c 5d 5e 5f 5g 5h 5i 5j 5k 5l 5m 5n o p q r s t u vw vx vy vz v{ v| v} v~(L(L(L(L(L(L(L(L  5 5 P P P P P P P P P P P P 5 5 5 5 5 5                                    (((((((((        (((( 5 5((       ((( (             !"#"$%&%'%(%)%*+,-+,./01/02/34/56/57/58/9:/9;/9</9=/>?/>@/>A/>B/>C/>D/>E/>F/>G/>H/IJ/KL/KM/KN/KO/KP/KQ/KR/KS/TU/TV/TW/TX/TY/TZ/T[/T\/T]/T^/T_/`a/`b/`c/de/df/dg/dh/ij/ik/il/im/no/np/nq/nr/ns/nt/nu/nv/nw/nx/ny/nz/n{/n|/n}/n~/n/n/n///////////////////////////////////////////////////////////////////////////////////////////////////// ++++++++++++           ++    !" #$+%&+%'+(+(+,)+,)+,*+++++,+-+-+./0/1/2(L3(L4(L5 67 67 89 : ; < = > ? @ A B C D E FG vH IJ .K .L .M NO NP NQ NR NS NT NU NV +W +X +Y +Z +[ +\ +] +^ +_ +` +a +b +c +d +e +f +g +h +i +j kl 5m 5n 5o 5p 5q 5r 5s 5t u v w xy xz x{ |} ~                                   Q             8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8                            6 6 6 6                           8 8 8 8 8 8 8 8 8 8 8 8                       ! " # $ % & ' ( ) * + , - ./ .0 .1 .2 .3 .4 :5 67 67 68 69 6: 6; <= <> <? @A @A @B CD CD CE CF CF CG CH CH CI CJ CK CL CM CN CO CP CQ CR CS T U ?V ?W X Y Z [ \ ] ^ _ C` C` Ca bc ~d/efg hijkilmnopiqriqsiqtiquiqviqwiqxiqyiqziq{iq|iq}iq~iqiiiilililililililililililililililililililililililililililililililililililililililiiiiiijijijijijijijijijijijijijijijijijijijijijijijijijijijijijijijijijijijijijijijijijijijijijijijijijijijiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii i i i i iiiiiiiiiiiiiiiii h  #imm-1.10.0.0-377OdLQgGSoCHB8Qc5Ycpd Imm.Pretty Imm.LoggerImm.HTTPImm.FeedImm.XML Imm.CallbackImm.Database.FeedPreludeData.Aeson.ExtendedImmbaseGHC.Base<>*prettyprinter-1.6.1-KjG1sEzf1n21EgCkj9uNVa"Data.Text.Prettyprint.Doc.InternalDoc'Data.Text.Prettyprint.Doc.Symbols.Asciipipeequals backslashslashdotspacecommacolonsemirbracelbracerbracketlbracketranglelanglerparenlparendquotesquotebracesbracketsanglesparensdquotessquotes layoutCompact layoutSmart layoutPrettydefaultLayoutOptionsremoveTrailingWhitespacefusealterAnnotationsS reAnnotateS unAnnotateSalterAnnotations reAnnotate unAnnotateannotatesurroundencloseplural fillBreakfill pageWidthnestingcolumn punctuatecatfillCatvcathcatsepfillSepvsephsep concatWith<+>tupled encloseSepindenthangalignflatAltgrouphardline softline'softlineline'linenestemptyDoc unsafeViaShowviaShow prettyListprettyPrettyDeepShallow FusionDepthSAnnPopSAnnPushSLineSTextSCharSEmptySFailSimpleDocStream UnboundedAvailablePerLine PageWidthlayoutPageWidth LayoutOptions:prettyprinter-ansi-terminal-1.1.1.2-HR8gzEoTreRFqR7LFOAG3A2Data.Text.Prettyprint.Doc.Render.Terminal.Internal AnsiStyle PrettyKey<++> prettyTree prettyTime prettyPerson prettyLinkprettyAtomText prettyElement prettyNode prettyContent prettyEntry prettyItem prettyURI prettyGuidprettyAtomContentmagentayellowredgreencyanboldLogLevelDebugInfoWarningErrorHandlelog getLogLevel setLogLevelsetColorizeLogs flushLogs$fPrettyLogLevel $fEqLogLevel $fOrdLogLevel$fReadLogLevel$fShowLogLevel_withGetwithGetFeedURI FeedElement RssElement AtomElementFeedRssAtom FeedQuery ByDatabaseIDByURIAllFeeds FeedLocation FeedDirectURIFeedAlternateLink sameURIType withFeedURI renderFeedrenderFeedElement parseFeedparseFeedElementremoveElements getFeedTitle getElementsgetDategetTitle getContentgetLinkgetId$fToJSONFeedLocation$fFromJSONFeedLocation$fPrettyFeedLocation$fPrettyFeedQuery$fEqFeedElement$fOrdFeedElement$fPrettyPrettyKey $fOrdFeedURI $fEqFeedURI$fEqFeedLocation$fOrdFeedLocation$fShowFeedLocation $fEqFeedQuery$fOrdFeedQuery$fShowFeedQuery$fEqFeed $fOrdFeed $fShowFeed$fShowFeedElement $fShowFeedURIparseXmlCallback _executable _arguments$fPrettyCallback$fFromDhallCallback $fEqCallback$fGenericCallback $fOrdCallback$fReadCallback$fShowCallbackserializeMessagedeserializeMessage$fToAvroMessage$fFromAvroMessage$fHasAvroSchemaMessage $fEqMessage $fShowMessage$fGenericMessageDatabaseException NotCommitted NotDeleted KeyNotFound NotInserted NotPurged NotUpdatedUnableFetchAll_describeDatabase_fetch _fetchAll_update_insert_delete_purge_commitEntryKey ByLocationById FeedStatusUnknownNew LastUpdateEntry entryLocation entryTagsentryReadHashes entryFeed entryItemsentryLastUpdate JsonElement unwrapElement getHashesprettyShortEntry makeEntrymatchingreadOnlyfetch1fetch fetchQueryfetchAllupdateinsert insertListdelete1deletepurgecommitregister getStatusmarkAsProcessedmarkAsUnprocessedlistUnprocessedElementsisReadresolveEntryKeyresolveFeedLocation$fToJSONKeyJsonElement$fToJSONJsonElement$fFromJSONKeyJsonElement$fFromJSONJsonElement $fToJSONEntry$fFromJSONEntry$fPrettyFeedStatus$fPrettyEntryKey$fPrettyDatabaseException$fExceptionDatabaseException$fEqJsonElement$fOrdJsonElement $fEqEntry $fOrdEntry $fShowEntry $fEqEntryKey $fOrdEntryKey$fShowEntryKey$fEqDatabaseException$fShowDatabaseException++ghc-primGHC.PrimseqGHC.Listfilterzip Data.Tuplefstsnd otherwisemap$coerceGHC.Real fromIntegral realToFrac Control.MonadguardGHC.ExtsIsListfromList fromListNjoinGHC.EnumBoundedminBoundmaxBoundEnumenumFrom enumFromThenenumFromThenTo enumFromTofromEnumtoEnumsuccpred GHC.ClassesEq==/= GHC.FloatFloatingpiexpsqrt**logBasesincostanasinacosatansinhcoshtanhasinhacoshatanh Fractional fromRational/recipIntegral toIntegerquotremdivmodquotRemdivModMonad>>=>>returnFunctorfmap<$GHC.NumNum+*-negate fromIntegerabssignumOrd>=compareminmax><<=GHC.ReadReadReal toRational RealFloat floatRadix floatDigits floatRange decodeFloat encodeFloatisNaN isInfiniteisDenormalizedisNegativeZeroisIEEEatan2RealFracproperFractiontruncateroundceilingfloorGHC.ShowShowData.Typeable.InternalTypeableControl.Monad.Fail MonadFailfail Data.StringIsString fromString Applicativepure<*>*><*liftA2 Data.FoldableFoldabletoListfoldrfoldlengthfoldMapnullfoldl'Data.Traversable TraversabletraversemapM sequenceAsequence GHC.GenericsGeneric GHC.TypeNatsKnownNatGHC.OverloadedLabelsIsLabel fromLabel SemigroupsconcatstimesMonoidmemptymappendmconcat GHC.TypesBoolFalseTrueCharDoubleD#FloatF#IntGHC.IntInt8Int16Int32Int64 integer-gmpGHC.Integer.TypeInteger GHC.NaturalNatural GHC.MaybeMaybeNothingJustOrderingLTEQGTRatioRationalIOWordGHC.WordWord8Word16Word32Word64 Data.EitherEitherLeftRightType ConstraintNatCmpNat CoercibleGHC.Stack.Types CallStackStringbytestring-0.10.8.2Data.ByteString.Internal ByteString Data.Functor<$>'hashable-1.3.0.0-1RsrIcitxVDKffGN1TuMlmData.Hashable.ClassHashable hashWithSalt text-1.2.3.1Data.Text.InternalTextconst.id3unordered-containers-0.2.10.0-b9YJCQLkMeLUf311RZkQDData.HashMap.BaseHashMapcontainers-0.6.0.1Data.Map.InternalMapGHC.IO.Handle.FDstdout stm-2.5.0.0Control.Concurrent.STM.TVar modifyTVar'Control.Concurrent.STM.TMVar mkWeakTMVar isEmptyTMVar swapTMVar tryReadTMVar readTMVar tryPutTMVarputTMVar tryTakeTMVar takeTMVar newEmptyTMVarnewTMVarTMVarData.Text.Encoding decodeUtf8'decodeUtf8WithData.Text.Encoding.Error lenientDecode strictDecodeOnError OnDecodeErrorUnicodeExceptiontransformers-0.5.5.0Control.Monad.Trans.MaybeexceptToMaybeTmaybeToExceptT%relude-0.7.0.0-B5KvIhljr3YGy2JIXUa6JgRelude.Applicativepass appliedToRelude.FunctionidentityRelude.Functor.Fmap<<$>>flap??Relude.Lifted.ExitexitWith exitFailure exitSuccessdieRelude.Lifted.IORefnewIORef readIORef writeIORef modifyIORef modifyIORef'atomicModifyIORefatomicModifyIORef'atomicModifyIORef_atomicModifyIORef'_atomicWriteIORefRelude.List.ReexportcycleRelude.Monad.Maybe?:whenJust whenJustM whenNothing whenNothing_ whenNothingM whenNothingM_ mapMaybeMRelude.Monad.Trans usingReaderT usingReader etaReaderT usingStateT usingStateevaluatingStateTevaluatingStateexecutingStateTexecutingState hoistMaybe hoistEither Relude.Monoid maybeToMonoid memptyIfFalse memptyIfTrue Relude.NubordNubhashNubsortNub unstableNubRelude.String.ReexportlinesunlineswordsunwordsRelude.String.Conversion LazyStricttoStricttoLazyToStringtoStringToLTexttoLTextToTexttoText ConvertUtf8 encodeUtf8 decodeUtf8decodeUtf8Strict LByteStringLText readEithershowfromLazy fromStrict Relude.PrintputText putTextLnputLText putLTextLnputBSputBSLnputLBSputLBSLn Relude.File readFileText writeFileTextappendFileText readFileLTextwriteFileLTextappendFileLText readFileBS writeFileBS appendFileBS readFileLBS writeFileLBS appendFileLBS Relude.Debug Undefinedtrace traceShow traceShowIdtraceM traceShowMtraceIderror undefinedRelude.Monad.Either leftToMaybe rightToMaybe maybeToRight maybeToLeftwhenLeft whenLeft_ whenLeftM whenLeftM_ whenRight whenRight_ whenRightM whenRightM_ Relude.Monad chainedToRelude.List.NonEmpty viaNonEmpty whenNotNull whenNotNullMheadinitlasttailRelude.ExceptionBugExcbugRelude.DeepSeq evaluateWHNF evaluateWHNF_ evaluateNF evaluateNF_Relude.Bool.GuardwhenMunlessMifMguardMguarded&&^||^Relude.NumericintegerToBoundedintegerToNaturalRelude.Container.OneOneOneItemone Relude.List!!?Relude.Lifted.Concurrent newEmptyMVarnewMVarputMVarreadMVarswapMVartakeMVar tryPutMVar tryReadMVar tryTakeMVar atomically newTVarIO readTVarIO newTMVarIOnewEmptyTMVarIORelude.Foldable.Fold flipfoldl'asumMapfoldMapAfoldMapMsumproductelemnotElemandMorMallManyMRelude.Lifted.TerminalgetLineprintputStrputStrLnData.HashSet.BaseHashSet Control.Monad.Trans.State.Strict execStateT evalStateT withState execState evalStaterunStateStateControl.Monad.Trans.Reader withReaderT withReader runReaderReaderControl.Monad.Trans.Except runExceptT mtl-2.2.2Control.Monad.Reader.Class MonadReaderasklocalreaderasksControl.Monad.State.Class MonadStategetputstatemodifymodify'getsControl.Monad.Trans.Identity IdentityT runIdentityTdeepseq-1.4.4.0Control.DeepSeqNFDatarnfdeepseq$!!Data.Set.InternalSetData.Sequence.InternalSeqData.IntSet.InternalIntSetData.IntMap.InternalIntMapControl.Monad.Trans.Class MonadTransliftExceptTMaybeT runMaybeTReaderT runReaderTStateT runStateTData.ByteString.Short.InternaltoShortShortByteString fromShortnot||&&GHC.Exception.Type SomeExceptionData.Semigroup.InternalstimesIdempotentMonoid HasCallStack getCallStackNonEmpty:|<**>liftA3=<<whenordflip$!asTypeOf GHC.Stack.CCScurrentCallStacksubtractGHC.MVarMVarcurryuncurryswap Data.MaybemaybeisJust isNothing fromMaybe maybeToList listToMaybe catMaybesmapMaybeunconsscanlscanl1scanl'scanrscanr1iteraterepeat replicate takeWhile dropWhiletakedropsplitAtbreakreversezip3zipWithunzipunzip3GHC.Charchr numerator denominatorevenodd^^^gcdlcm<&>$>void Data.Functionfixon& Data.Boolbool Data.BitstoIntegralSized byteSwap16 byteSwap32 byteSwap64 GHC.IO.IOModeIOModeReadMode WriteMode AppendMode ReadWriteModeControl.Category<<<>>> Data.ProxyProxyData.OrdDown comparingeitherleftsrightspartitionEithersisLeftisRightfromLeft fromRight Text.Readreads readMaybe Data.OldList isPrefixOf intersperse intercalate transpose genericLength genericTake genericDropgenericSplitAtgenericReplicateinitstails subsequences permutationssortsortBysortOnunfoldrSomeNatnatVal someNatValAltgetAltProduct getProductSumgetSumAnygetAnyAllgetAllEndoappEndoDualgetDualstimesIdempotent stimesMonoid Data.MonoidApgetApLastgetLastFirstgetFirstfoldlM traverse_for_mapM_forM_ sequenceA_ sequence_asumconcat concatMapandoranyallfindData.Functor.ConstConstgetConst Exception toException fromExceptiondisplayException GHC.Exception prettySrcLocprettyCallStackGHC.IOFilePath GHC.IORefIORef GHC.Conc.SyncTVarSTMthrowSTMcatchSTMnewTVarreadTVar writeTVar GHC.Stack callStackwithFrozenCallStackstdinstderr System.IOwithFileData.Functor.IdentityIdentity runIdentityControl.ApplicativeZipList getZipListoptionalforM mapAccumL mapAccumRfilterM>=><=<forever mapAndUnzipMzipWithM zipWithM_ replicateM replicateM_unless<$!>mfilterControl.Monad.IO.ClassMonadIOliftIOGHC.ExecutionStack getStackTraceshowStackTraceData.List.NonEmptynonEmptyData.Bifunctor BifunctorfirstsecondbimapData.Bifoldable Bifoldablebifold bifoldMapbifoldrbifoldlbifoldr'bifoldrMbifoldl'bifoldlM bitraverse_bifor_ bisequence_biasumbiListbinullbilengthbielembiandbiorbianybiallbifindData.Bitraversable Bitraversable bitraverse bisequencebifor bimapDefaultbifoldMapDefaultsortWithData.SemigroupOption getOption WrappedMonoidcycle1 mtimesDefault Data.VoidVoidabsurdvacuousData.Functor.ComposeCompose getComposeData.Functor.ContravariantOpgetOp EquivalencegetEquivalence Comparison getComparison Contravariant contramap>$phantom$<>$<>$$<defaultComparisondefaultEquivalencecomparisonEquivalenceminIntmaxIntboundedEnumFromboundedEnumFromThen MonadPlusmzeromplus Alternativeempty<|>somemany Predicate getPredicate Control.Arrow&&&xorRelude.Extra.MaplookupioJsonURI$aeson-1.4.7.1-7zIsgD57QtKBLAX7Q8FqzRData.Aeson.Types.FromJSONFromJSONData.Aeson.Types.ToJSONToJSON-uri-bytestring-0.3.2.2-I6voRZNefTCDfPXR3i2eY8URI.ByteString.TypesURI Data.AesoneitherDecodeFileStrict'eitherDecodeStrict' eitherDecode'eitherDecodeFileStricteitherDecodeStrict eitherDecodedecodeFileStrict' decodeStrict'decode'decodeFileStrict decodeStrictdecode encodeFileencodeData.Aeson.TypesfoldableData.Aeson.Types.ClassGToJSON GToEncoding listValue listEncoding toEncoding2toJSON2 toEncoding1toJSON1genericToJSONKeycontramapToJSONKeyFunction toJSONKeyTextgenericLiftToEncodinggenericToEncodinggenericLiftToJSON genericToJSONToArgsNoToArgsTo1ArgstoJSON toEncoding toJSONListtoEncodingListKeyValue.= ToJSONKey toJSONKey toJSONKeyListToJSONKeyFunction ToJSONKeyTextToJSONKeyValue GToJSONKeyToJSON1 liftToJSONliftToJSONListliftToEncodingliftToEncodingListToJSON2 liftToJSON2liftToJSONList2liftToEncoding2liftToEncodingList2Data.Aeson.Encoding.InternalpairsunsafeToEncoding fromEncodingEncodingSeries.!=explicitParseFieldMaybe'explicitParseFieldMaybeexplicitParseFieldparseFieldMaybe'parseFieldMaybe parseField.:!.:?.:fromJSONwithEmbeddedJSONwithBoolwithScientific withArraywithText withObject listParser parseJSON2 parseJSON1 unexpected typeMismatchgenericFromJSONKeymapFromJSONKeyFunctioncoerceFromJSONKeyFunctionfromJSONKeyCoercegenericLiftParseJSONgenericParseJSONparseIndexedJSON GFromJSON gParseJSONFromArgs NoFromArgs From1Args parseJSON parseJSONList FromJSONKey fromJSONKeyfromJSONKeyListFromJSONKeyFunctionFromJSONKeyCoerceFromJSONKeyTextFromJSONKeyTextParserFromJSONKeyValue GFromJSONKey FromJSON1 liftParseJSONliftParseJSONList FromJSON2liftParseJSON2liftParseJSONList2Data.Aeson.Parser.Internaljson'jsonData.Aeson.Types.InternalcamelTo2camelTodefaultJSONKeyOptionsdefaultTaggedObjectdefaultOptionsparserCatchErrorparserThrowErrorprependFailure modifyFailureobjectformatRelativePath formatPath parseEither parseMaybeparse emptyObject emptyArray parseFailJSONPathElementKeyIndexJSONPathResultSuccessParserObjectArrayValueNumberNull DotNetTimefromDotNetTimePairOptionsrejectUnknownFieldsfieldLabelModifierconstructorTagModifierallNullaryToStringTagomitNothingFields sumEncodingunwrapUnaryRecordstagSingleConstructors SumEncoding TaggedObject UntaggedValueObjectWithSingleField TwoElemArray tagFieldNamecontentsFieldNameJSONKeyOptions keyModifierData.Aeson.Types.GenericZero _unwrapURI