package Ġru . solo do vn ik ov . rx location manager Ċ Ċ import Ġandroid . content . Context Ċ import Ġandroid . location . Location Ċ import Ġandroid . location . Location Listener Ċ import Ġandroid . location . Location Manager Ċ import Ġandroid . os . Bundle Ċ import Ġrx . Emitter Ċ import Ġrx . Observable Ċ import Ġrx . Scheduler Ċ import Ġrx . Single Ċ import Ġrx . android . schedul ers . Android Schedulers Ċ import Ġrx . functions . Action 1 Ċ import Ġjava . util .* Ċ import Ġjava . util . concurrent . TimeoutException Ċ Ċ /** Ċ Ġ* ĠImplementation Ġof Ġ[ Base Rx Location Manager ] Ġbased Ġon ĠRx Java 1 Ċ Ġ*/ Ċ class ĠRx Location Manager Ġinternal Ġconstructor ( context : ĠContext , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprivate Ġval Ġscheduler : ĠScheduler ) Ġ: ĠBase Rx Location Manager < Single < Location >, ĠSingle < Location >>( context ) Ġ{ ĊĠĠĠ Ġconstructor ( context : ĠContext ) Ġ: Ġthis ( context , ĠAndroid Schedulers . main Thread ()) ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġ@ return ĠResult Ġ[ Single ] Ġwill Ġemit Ġnull Ġif Ġthere Ġis Ġno Ġlocation Ġby Ġthis Ġ[ provider ]. ĊĠĠĠĠ Ġ* ĠOr Ġit Ġwill Ġbe Ġemit Ġ[ El der Location Exception ] Ġif Ġ[ how Old Can Be ] Ġnot Ġnull Ġand Ġlocation Ġis Ġtoo Ġold . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġoverride Ġfun Ġbase Get Last Location ( provider : ĠString , Ġhow Old Can Be : ĠLocation Time ?): ĠSingle < Location > Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ ĠSingle . from Callable Ġ{ Ġlocation Manager . getLast Known Location ( provider ) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. compose Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( how Old Can Be Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . do On Success Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( it Ġ!= Ġnull Ġ&& Ġ! it . isNot Old ( how Old Can Be )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthrow ĠEl der Location Exception ( it ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}. compose Ġ{ Ġapply Schedulers ( it ) Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġ@ return ĠResult Ġ[ Single ] Ġcan Ġthrow Ġ[ Provider Disabled Exception ] Ġor Ġ[ TimeoutException ] Ġif Ġ[ time Out ] Ġnot Ġnull ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġoverride Ġfun Ġbase Request Location ( provider : ĠString , Ġtime Out : ĠLocation Time ?): ĠSingle < Location > Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ ĠObservable . create ( Rx Location Listener ( location Manager , Ġprovider ), ĠEmit ter . Back pressure Mode . NONE ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. to Single () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. compose Ġ{ Ġif Ġ( time Out Ġ!= Ġnull ) Ġit . timeout ( time Out . time , Ġtime Out . time Unit ) Ġelse Ġit Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. compose Ġ{ Ġapply Schedulers ( it ) Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġapply Schedulers ( s : ĠSingle < Location >) Ġ= Ġs . subscribe On ( scheduler ) ĊĊĠĠĠ Ġprivate Ġclass ĠRx Location Listener ( val Ġlocation Manager : ĠLocation Manager , Ġval Ġprovider : ĠString ) Ġ: ĠAction 1 < Emitter < Location >> Ġ{ ĊĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġcall ( emitter : ĠEmit ter < Location >) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( location Manager . is Provider Enabled ( provider )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġlocation Listener Ġ= Ġobject Ġ: ĠLocation Listener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Location Changed ( location : ĠLocation ?) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwith ( emitter ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġon Next ( location ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġon Completed () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Provider Disabled ( p : ĠString ?) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( provider Ġ== Ġp ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġemitter . onError ( Provider Disabled Exception ( provider )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Status Changed ( p 0 : ĠString ?, Ġp 1 : ĠInt , Ġp 2 : ĠBundle ?) Ġ{} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Provider Enabled ( p 0 : ĠString ?) Ġ{} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlocation Manager . request Single Update ( provider , Ġlocation Listener , Ġnull ) ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġemitter . set Cancellation Ġ{ Ġlocation Manager . remove Updates ( location Listener ) Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġemitter . onError ( Provider Disabled Exception ( provider )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ Ċ /** Ċ Ġ* ĠImplementation Ġof Ġ[ Base Location RequestBuilder ] Ġbased Ġon Ġrx Java 1 Ċ Ġ*/ Ċ class ĠLocation RequestBuilder Ġinternal Ġconstructor ( rx Location Manager : ĠRx Location Manager ) Ġ: ĠBase Location RequestBuilder < Single < Location >, ĠSingle < Location >, ĠSingle . Transformer < Location , ĠLocation >, ĠLocation RequestBuilder >( rx Location Manager ) Ġ{ ĊĠĠĠ Ġconstructor ( context : ĠContext ) Ġ: Ġthis ( Rx Location Manager ( context )) ĊĊĠĠĠ Ġprivate Ġvar Ġresult Observable Ġ= ĠObservable . empty < Location >() ĊĊĠĠĠ Ġoverride Ġfun Ġbase Add Request Location ( provider : ĠString , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtime Out : ĠLocation Time ?, ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtransformer : ĠSingle . Transformer < Location , ĠLocation >? ): ĠLocation RequestBuilder Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ Ġadd Request Location ( provider , Ġtime Out , Ġfalse , Ġtransformer ) ĊĊĊĠĠĠ Ġoverride Ġfun Ġbase Add Last Location ( provider : ĠString , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġhow Old Can Be : ĠLocation Time ?, ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtransformer : ĠSingle . Transformer < Location , ĠLocation > ?) Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ Ġadd Last Location ( provider , Ġhow Old Can Be , Ġfalse , Ġtransformer ) ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠConstruct Ġfinal Ġobservable . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ return ĠIt Ġwill Ġemit Ġ[ default Location ] Ġif Ġfinal Ġobservable Ġis Ġempty . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġoverride Ġfun Ġcreate (): ĠSingle < Location > Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ Ġresult Observable . first OrDefault ( default Location ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. to Single () ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠTry Ġto Ġget Ġcurrent Ġlocation Ġby Ġspecific Ġ[ provider ]. ĊĠĠĠĠ Ġ* ĠIt Ġwill Ġignore Ġany Ġlibrary Ġexceptions Ġ( e . g Ġ[ Provider Disabled Exception ]). ĊĠĠĠĠ Ġ* ĠBut Ġwill Ġfall Ġif Ġany Ġother Ġexception Ġwill Ġoccur . ĠThis Ġcan Ġbe Ġchanged Ġvia Ġ[ transformer ]. ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ param Ġprovider ĠĠĠ Ġprovider Ġname ĊĠĠĠĠ Ġ* Ġ@ param Ġtime Out ĠĠĠĠ Ġrequest Ġtimeout ĊĠĠĠĠ Ġ* Ġ@ param Ġis Null Valid Ġif Ġtrue , Ġthen Ġthis Ġrequest Ġcan Ġemit Ġnull Ġvalue ĊĠĠĠĠ Ġ* Ġ@ param Ġtransformer Ġextra Ġtransformer ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ return Ġsame Ġbuilder ĊĠĠĠĠ Ġ* Ġ@ see Ġbase Add Request Location ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġ@ Jvm Over loads ĊĠĠĠ Ġfun Ġadd Request Location ( provider : ĠString , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtime Out : ĠLocation Time ? Ġ= Ġnull , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis Null Valid : ĠBoolean Ġ= Ġfalse , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtransformer : ĠSingle . Transformer < Location , ĠLocation >? Ġ= Ġnull ): ĠLocation RequestBuilder Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrx Location Manager . request Location ( provider , Ġtime Out ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. compose Ġ{ Ġif Ġ( transformer Ġ!= Ġnull ) Ġit . compose ( transformer ) Ġelse Ġit Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. to Observable () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. onError Resume Next Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwhen Ġ( it ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠTimeout Exception , Ġis ĠProvider Disabled Exception , Ġis ĠNoSuch ElementException Ġ-> ĠObservable . empty < Location >() ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> ĠObservable . error < Location >( it ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. flatMap Ġ{ Ġif Ġ( it Ġ== Ġnull Ġ&& Ġ! isNull Valid ) ĠObservable . empty () Ġelse ĠObservable . just ( it ) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġresult Observable Ġ= Ġresult Observable . concat With ( it ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthis ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠGet Ġlast Ġlocation Ġfrom Ġspecific Ġ[ provider ]. ĊĠĠĠĠ Ġ* ĠIt Ġwill Ġignore Ġany Ġlibrary Ġexceptions Ġ( e . g Ġ[ El der Location Exception ]). ĊĠĠĠĠ Ġ* ĠBut Ġwill Ġfall Ġif Ġany Ġother Ġexception Ġwill Ġoccur . ĠThis Ġcan Ġbe Ġchanged Ġvia Ġ[ transformer ]. ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ param Ġprovider ĠĠĠ Ġprovider Ġname ĊĠĠĠĠ Ġ* Ġ@ param Ġhow Old Can Be Ġoptional . ĠHow Ġold Ġa Ġlocation Ġcan Ġbe ĊĠĠĠĠ Ġ* Ġ@ param Ġis Null Valid Ġif Ġtrue , Ġthen Ġthis Ġrequest Ġcan Ġemit Ġnull Ġvalue ĊĠĠĠĠ Ġ* Ġ@ param Ġtransformer Ġoptional Ġextra Ġtransformer ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ return Ġsame Ġbuilder ĊĠĠĠĠ Ġ* Ġ@ see Ġbase Add Last Location ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġ@ Jvm Over loads ĊĠĠĠ Ġfun Ġadd Last Location ( provider : ĠString , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġhow Old Can Be : ĠLocation Time ? Ġ= Ġnull , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis Null Valid : ĠBoolean Ġ= Ġfalse , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtransformer : ĠSingle . Transformer < Location , ĠLocation >? Ġ= Ġnull ): ĠLocation RequestBuilder Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrx Location Manager . getLast Location ( provider , Ġhow Old Can Be ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. compose Ġ{ Ġif Ġ( transformer Ġ!= Ġnull ) Ġit . compose ( transformer ) Ġelse Ġit Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. to Observable () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. onError Resume Next Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwhen Ġ( it ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠEl der Location Exception , Ġis ĠNoSuch ElementException Ġ-> ĠObservable . empty < Location >() ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> ĠObservable . error < Location >( it ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. flatMap Ġ{ Ġif Ġ( it Ġ== Ġnull Ġ&& Ġ! isNull Valid ) ĠObservable . empty () Ġelse ĠObservable . just ( it ) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġresult Observable Ġ= Ġresult Observable . concat With ( it ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthis ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ċ } Ċ Ċ /** Ċ Ġ* ĠUse Ġit Ġto Ġignore Ġany Ġdescribed Ġerror Ġtype . Ċ Ġ* Ċ Ġ* Ġ@ param Ġerrors To Ignore Ġif Ġnull Ġor Ġempty , Ġthen Ġignore Ġall Ġerrors , Ġotherwise Ġjust Ġdescribed Ġtypes . Ċ Ġ*/ Ċ open Ġclass ĠIgnore Error Transformer Ġ@ Jvm Over loads Ġconstructor ( private Ġval Ġerrors To Ignore : ĠList < Class < out ĠThrowable >> ? Ġ= Ġnull ) Ġ: ĠSingle . Transformer < Location , ĠLocation > Ġ{ ĊĠĠĠ Ġoverride Ġfun Ġcall ( upstream : ĠSingle < Location >): ĠSingle < Location > Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġupstream . onError Resume Next Ġ{ Ġt : ĠThrowable Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( errors To Ignore Ġ== Ġnull Ġ|| Ġerrors To Ignore . isEmpty ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠObservable . empty < Location >(). to Single () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( errors To Ignore . contains ( t . java Class )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠObservable . empty < Location >(). to Single () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠSingle . error ( t ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ