1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
Ë
@ñúht•ãóÆ—UdZddlmZddlZddlZddlZddlZddlZddlZddl    m
Z
ddl m Z m Z mZmZmZmZmZmZmZmZmZmZmZddlmZddlmZdd    lmZGd
„d e«Z Gd „d e«Z!Gd„de«Z"Gd„de«Z#Gd„de«Z$Gd„de«Z%Gd„de«Z&dud„Z'dvdwd„Z(dxd„Z)    dy                            dzd„Z*dd d!d"d#d$d%d&d'œZ+id(d)“d*d+“d,d-“d.d/“d0d1“d2d3“d4d5“d6d7“d8d9“d:d;“d<d=“d>d?“d@dA“dBdC“dDdE“dFdG“dHdI“idJdK“dLdM“dNdO“dPdQ“dRdS“dTdU“dVdW“dXdY“dZd[“d\d]“d^d_“d`da“dbdc“ddde“dfdg“dhdi“¥Z,e,j[e+«djdkdldmdnœZ.dodpiZ/e,ja«Dcic]\}}||“Œ
c}}Z1e2e1«D]+Z3dqe3vsŒe3jidq«\Z5Z6e1e3xe1e5<e1e6<e1e3=Œ-e.ja«Dcic]\}}||“Œ
c}}Z7e/ja«Dcic]\}}||“Œ
c}}Z8e2e8«D]+Z3dqe3vsŒe3jidq«\Z5Z6e8e3xe8e5<e8e6<e8e3=Œ-drZ9e)e9«Z:dsZ;e)e;«Z<gdt¢Z=dugZ>e(dve=e>Dcgc]}dw|›‘Œ    c}z«Z?e=e>zZ@e*e@dxdydz¬{«\ZAZBZCd|ZDe*eDd}d«\ZEZFZGZHd~ZIe*eIdd«\ZJZKZLZMd€ZNe*eNdd«\ZOZPZQZRdZSe*eSd‚dy«\ZTZUZVZWdƒZXe*eXd„dy«\ZYZZZ[Z\d…Z]e*e]d„dy«\Z^Z_Z`Zad†Zbe*ebd‡dy«\ZcZdZeZfdˆZge*egd‡dy«\ZhZiZjZkd‰Zle)el«ZmdŠZne*end„dy«\ZoZpZqZrd‹Zse*esd„dy«\ZtZuZvZwgdŒ¢Zxe)ex«Zye)exDcgc]
}|dd›d‡‘Œ c}«Zze(dex«Z{hdŽ£Z|e|Dchc]}|›d’Œ    c}Z}gd¢exzZ~e)e~«Ze)e~Dcgc]}|›d‘Œ    c}«Z€dZe*edd«\Z‚ZƒZ„Z…d‘Z†e*e†d’dy«\Z‡ZˆZ‰ZŠd“Z‹e*e‹d’dy«\ZŒZZŽZd”Ze*ed’dy«\Z‘Z’Z“Z”d•Z•e*e•d’dy«\Z–Z—Z˜Z™d–Zše*ešd‡d«\Z›ZœZZžd—ZŸe*eŸd˜d«\Z Z¡Z¢Z£d™ji«Z¤dšji«Z¥e*e¤dddz¬{«\Z¦Z§Z¨e*e¥dddz¬{«\Z©ZªZ«d›Z¬e*e¬dœddz¬{«\Z­Z®Z¯gdž¢Z°dŸd gZ±e°e±Dcgc]}dw|›‘Œ    c}zZ²d¡Z³gd¢¢e°zZ´gd£¢Zµgd¤¢e±zZ¶e)e¶«Z·gd¥¢e=zZ¸d¦d§ge>zZ¹e)e¹«Zºe¸Dcgc]}|›d¨‘Œ    c}Z»e¹Dcgc]}|›d¨‘Œ    c}Z¼e)e¼«Z½d©gZ¾e'dqje¸e¹Dcgc]}dw|›‘Œ    c}ze¾z««ZÀdªZÁd«ZÂd¬ZÃd­ZÄd®ZÅd¯ZÆd°ZÇd±ZÈd²ZÉd³ZÊd´ZËdµZÌd¶ZÍd·ZÎd¸ZÏd¹ZÐe'dqjeÀge²ze2e+«zgdº¢z««ZÑd»e'd¼«fd½e'd¾«fd¿e'dÀ«ffZÒdÁ„eÒD«ZÓdeÔdÂ<dÃdqjeÓ«›dĝZÕdÅZÖdÆji«Z×e×gdÇ¢zZØe)eØ«ZÙe'dqjeØ««ZÚdÈeڛdɝZÛhdÊ£ZÜid‡d˓dÌd͓dÎdΓdÏdГdÑdғdÓdԓdÕdғdÖdԓd×dғdØdԓdÒdғdÙdԓdÚdۓdÜdܓdÝdޓdßdޓdàdޓdÞdÞi¥ZÝdáeÝja«Dcic]\}}||“Œ
c}}iZÞdâeÔdã<däeÞdádË<d§dÍdÎdÐdådÔdådÔdådÔdådÔdæœ Zße'dqjeß««Zàe)eß«Záeßja«Dcic]\}}||“Œ
c}}eÞdç<dèD]\ZâZãZäZå    eåeÞeâeãeä<Œe'dqjeÞdç««Zçe)eÞdç«Zèd{dé„Zédêdêdêdëdëdìdìdídíd   Zêidïdï“dðdï“dñdñ“dòdñ“dódó“dôdô“dõdõ“dödõ“d÷d÷“død÷“dùdù“dúdù“dûdû“düdû“dýdý“dþdý“dÿdÿ“dÿdddddddddddddddœ¥Zëejؐde'dqjeë««›d    ejÚ«Zîd
Zïejؐd ejÚ«Zðd Zñd ZòdZódZôdZõdddddœZöejؐde'dqjeö««›dejÚ«Z÷dddddddœZøejؐde'dqjeø««›dejÚ«Zùejؐdejô«ZûejؐdejÚ«ZüejؐdejÚ«ZýejؐdejÚ«ZþejؐdejÚ«ZÿejؐdejÚ«Zd d!d"d#d d d d d d d d d d$œ Zeej««Zed%d&d'd(d)d*d+d,¬-«ZejØdÃdqje«›d.«Zgd/¢Zgd0¢Z    gd1¢Z
gd2¢Z edzdzdzddzdz¬3«Z e Dcic]}|d“Œc}Z e Dcic]}|dz“Œc}Zddzdd4œZejؐd5«Zejؐd6ejÚ«Zejؐd7«Zejؐd8e՛dejÚ«Zejؐd8eۛdejÚ«Zejؐd9«Zejؐdeћd«Zejؐd:«Zejؐd;ejÚ«Zejؐd<«Zejؐd=ejÚ«Zejؐd>ejÚ«Zejؐd?ejÚ«Zejؐd@ejÚ«ZejؐdAejÚ«ZejؐdBejÚ«ZejؐdCejÚ«Z ejؐdDejÚ«Z!ejؐdEejÚ«Z"ejؐdFejÚ«Z#ejؐdGejÚ«Z$ejؐdHejÚ«Z%ejؐdI«Z&ejؐdJejÚ«Z'ejؐdK«Z(ejؐdL«Z)ejؐdM«Z*ejؐdN«Z+ejؐdO«Z,ejؐdP«Z-ejؐdQ«Z.ejؐdR«Z/ejؐdS«Z0ejؐdT«Z1ejؐdU«Z2ejؐdV«dWfejؐdX«dYfejؐdZ«d[fejؐd\«d]fejؐd^«d_fejؐd`«dafejؐdb«dcfejؐdd«d[fejؐde«d[fejؐdf«dgfejؐdh«diff Z3ejؐdj«Z4Gdk„dle5«Z6e Z7e Z8e8r ee5dmfZ9n Gdn„doe:«Z;Gdp„dqe;¬r«Z9Gds„dt«Z<ycc}}wcc}}wcc}}wcc}wcc}wcc}wcc}wcc}wcc}wcc}wcc}wcc}}wcc}}w#eæ$rieÞeâeã<eåeÞeâeãeä<YŒ®wxYwcc}wcc}w(|a¢
inflect: english language inflection
 - correctly generate plurals, ordinals, indefinite articles
 - convert numbers to words
 
Copyright (C) 2010 Paul Dyson
 
Based upon the Perl module
`Lingua::EN::Inflect <https://metacpan.org/pod/Lingua::EN::Inflect>`_.
 
methods:
    classical inflect
    plural plural_noun plural_verb plural_adj singular_noun no num a an
    compare compare_nouns compare_verbs compare_adjs
    present_participle
    ordinal
    number_to_words
    join
    defnoun defverb defadj defa defan
 
INFLECTIONS:
    classical inflect
    plural plural_noun plural_verb plural_adj singular_noun compare
    no num a an present_participle
 
PLURALS:
    classical inflect
    plural plural_noun plural_verb plural_adj singular_noun no num
    compare compare_nouns compare_verbs compare_adjs
 
COMPARISONS:
    classical
    compare compare_nouns compare_verbs compare_adjs
 
ARTICLES:
    classical inflect num a an
 
NUMERICAL:
    ordinal number_to_words
 
USER_DEFINED:
    defnoun defverb defadj defa defan
 
Exceptions:
 UnknownClassicalModeError
 BadNumValueError
 BadChunkingOptionError
 NumOutOfRangeError
 BadUserDefinedPatternError
 BadRcFileError
 BadGenderError
 
é)Ú annotationsN)ÚNumber) Ú TYPE_CHECKINGÚAnyÚCallableÚDictÚIterableÚListÚLiteralÚMatchÚOptionalÚSequenceÚTupleÚUnionÚcast)Úwindowed_complete)Ú typecheckedé)Ú    Annotatedcó —eZdZy)ÚUnknownClassicalModeErrorN©Ú__name__Ú
__module__Ú __qualname__©óúVH:\Change_password\venv_build\Lib\site-packages\setuptools/_vendor/inflect/__init__.pyrrVó„Ørrcó —eZdZy)ÚBadNumValueErrorNrrrrr!r!Zrrr!có —eZdZy)ÚBadChunkingOptionErrorNrrrrr#r#^rrr#có —eZdZy)ÚNumOutOfRangeErrorNrrrrr%r%brrr%có —eZdZy)ÚBadUserDefinedPatternErrorNrrrrr'r'frrr'có —eZdZy)ÚBadRcFileErrorNrrrrr)r)jrrr)có —eZdZy)ÚBadGenderErrorNrrrrr+r+nrrr+Úscó—d|›dS)Nz(?:ú)r)r,s rÚencloser/rs€Ø 1ˆ:ÐrcóR‡—tdjˆfd„|xsgD«««S)a‰
    Join stem of each word in words into a string for regex.
 
    Each word is truncated at cutpoint.
 
    Cutpoint is usually negative indicating the number of letters to remove
    from the end of each word.
 
    >>> joinstem(-2, ["ephemeris", "iris", ".*itis"])
    '(?:ephemer|ir|.*it)'
 
    >>> joinstem(None, ["ephemeris"])
    '(?:ephemeris)'
 
    >>> joinstem(5, None)
    '(?:)'
    ú|c3ó(•K—|]    }|d‰–—Œ y­w©Nr)Ú.0ÚwÚcutpoints  €rú    <genexpr>zjoinstem.<locals>.<genexpr>ˆsøèø€Ò>¨Q˜A˜i˜xœLÑ>ùsƒ)r/Újoin)r6Úwordss` rÚjoinstemr:vs#ø€ô$ 3—8‘8Ó>°%²+¸2Ô>Ó>Ó ?Ð?rú Iterable[str]có€—tjt«}|D]}|t|«j    |«Œ!|S)a
    From a list of words, return a dict of sets sorted by word length.
 
    >>> words = ['ant', 'cat', 'dog', 'pig', 'frog', 'goat', 'horse', 'elephant']
    >>> ret = bysize(words)
    >>> sorted(ret[3])
    ['ant', 'cat', 'dog', 'pig']
    >>> ret[5]
    {'horse'}
    )Ú collectionsÚ defaultdictÚsetÚlenÚadd)r9Úresr5s   rÚbysizerC‹s<€ô&×1Ñ1´#Ó6€CØ òˆØ ŒC‹F‰ ‰˜Õðà €JrTcóž—|| }|Dcgc]
}|d||z‘Œ }}t|«}t|«}|rt||«}||||fS|||fScc}w)am
    given a list of singular words: lst
 
    an ending to append to make the plural: plending
 
    the number of characters to remove from the singular
    before appending plending: siendingsize
 
    a flag whether to create a joinstem: dojoinstem
 
    return:
    a list of pluralised words: si_list (called si because this is what you need to
    look for to make the singular)
 
    the pluralised words as a dict of sets sorted by word length: si_bysize
    the singular words as a dict of sets sorted by word length: pl_bysize
    if dojoinstem is True: a regular expression that matches any of the stems: stem
    N)rCr:)    ÚlstÚplendingÚ siendingsizeÚ
dojoinstemr5Úsi_listÚ    pl_bysizeÚ    si_bysizeÚstems             rÚmake_pl_si_listsrMœsr€ð0ÐØ$}ˆ Ø47Ö8¨qˆq,Р(Ó*Ð8€GÐ8ܐs“ €Iܐw“€IÙܘ  cÓ*ˆØ˜     9¨dÐ2Ð2à˜     9Ð,Ð,ùò9sŠA
zcorpuses|corporaz opuses|operaÚgeneraÚmythoiz penises|penesÚtesteszatlases|atlantesÚyeses)ÚcorpusÚopusÚgenusÚmythosÚpenisÚtestisÚatlasÚyesÚchildÚchildrenÚchilizchilis|chiliesÚbrotherzbrothers|brethrenÚinfinityzinfinities|infinityÚloafÚloavesÚlorez
lores|loreÚhoofz hoofs|hoovesÚbeefz beefs|beevesÚthiefzthiefs|thievesÚmoneyÚmoniesÚmongooseÚ    mongoosesÚoxÚoxenÚcowz    cows|kineÚgraffitoÚgraffitiÚoctopuszoctopuses|octopodesÚgeniez genies|geniiÚganglionzganglions|gangliaÚtrilbyÚtrilbysÚturfz turfs|turvesÚnumenÚnuminaÚatmanÚatmasÚocciputzocciputs|occipitaÚ
sabretoothÚ sabretoothsÚ
sabertoothÚ sabertoothsÚlowlifeÚlowlifesÚflatfootÚ    flatfootsÚ
tenderfootÚ tenderfootsÚromanyÚromaniesÚjerryÚjerriesÚmaryÚmariesÚtalouseÚtalousesÚromÚromaÚcarmenÚcarminaÚRomaniesÚJerrysÚMarysÚRoma)ÚRomanyÚJerryÚMaryÚRomz prima donnazprima donnas|prime donner1)ÚquartzÚtopaz)Úsnooze)Ú    ephemerisÚirisÚclitorisÚ    chrysalisÚ
epididymisÚitiséþÿÿÿz.*ÚideséF)rH)ÚanathemaÚbemaÚ    carcinomaÚcharismaÚdiplomaÚdogmaÚdramaÚedemaÚenemaÚenigmaÚlemmaÚlymphomaÚmagmaÚmelismaÚmiasmaÚoedemaÚsarcomaÚschemaÚsomaÚstigmaÚstomaÚtraumaÚgummaÚpragmaÚata)ÚalumnaÚalgaÚvertebraÚpersonaÚvitaÚe)ÚamoebaÚantennaÚformulaÚ    hyperbolaÚmedusaÚnebulaÚparabolaÚabscissaÚhydraÚnovaÚlacunaÚauroraÚumbraÚfloraÚfauna)ÚstamenÚforamenÚlumenÚina)    Ú    bacteriumÚagendumÚ desideratumÚerratumÚstratumÚdatumÚovumÚextremumÚ candelabrumÚa)ÚmaximumÚminimumÚmomentumÚoptimumÚquantumÚcraniumÚ
curriculumÚdictumÚphylumÚaquariumÚ
compendiumÚemporiumÚencomiumÚ    gymnasiumÚ
honorariumÚ interregnumÚlustrumÚ
memorandumÚ
millenniumÚrostrumÚspectrumÚspeculumÚstadiumÚ    trapeziumÚ    ultimatumÚmediumÚvacuumÚvelumÚ
consortiumÚ    arboretum)    ÚalumnusÚalveolusÚbacillusÚbronchusÚlocusÚnucleusÚstimulusÚmeniscusÚ sarcophagusÚi)ÚfocusÚradiusÚgeniusÚincubusÚsuccubusÚnimbusÚfungusÚ    nucleolusÚstylusÚtorusÚ    umbilicusÚuterusÚ hippopotamusÚcactus)ÚstatusÚ    apparatusÚ
prospectusÚsinusÚhiatusÚimpetusÚplexus)    Ú    criterionÚ
perihelionÚaphelionÚ
phenomenonÚ prolegomenonÚnoumenonÚorganonÚ    asyndetonÚ
hyperbaton)Úoxymoron)ÚsoloÚsopranoÚbassoÚaltoÚ    contraltoÚtempoÚpianoÚvirtuosoéÿÿÿÿ>ÚISOÚNCOÚNGOÚadoÚotoÚNATO)ÃÚ
aficionadoÚaggroÚalbinoÚallegroÚammoÚ AntananarivoÚ archipelagoÚ    armadilloÚautoÚavocadoÚBamakoÚ BarquisimetoÚbimboÚbingoÚBiroÚboleroÚBolzanoÚbongoÚBotoÚburroÚCairoÚcantoÚ
cappuccinoÚcasinoÚcelloÚChicagoÚChimangoÚcilantroÚcochitoÚcocoÚColomboÚColoradoÚcommandoÚ
concertinoÚcontangoÚcredoÚ    crescendoÚcyanoÚdemoÚdittoÚDracoÚdynamoÚembryoÚ    EsperantoÚespressoÚeuroÚfalsettoÚFaroÚfiascoÚFilipinoÚflamencoÚfuriosoÚ generalissimoÚGestapoÚghettoÚgigoloÚgizmoÚ
GreensboroÚgringoÚ    GuaiaberoÚguanoÚgumboÚgyroÚhairdoÚhippoÚIdahoÚimpetigoÚinfernoÚinfoÚ
intermezzoÚ
intertrigoÚIquicoÚjumboÚjuntoÚKakapoÚkiloÚ    KinkimavoÚKokakoÚKosovoÚLesothoÚliberoÚlibidoÚlibrettoÚlidoÚLiloÚlimboÚlimoÚlinenoÚlingoÚlinoÚlivedoÚlocoÚlogoÚlumbagoÚmachoÚmacroÚmafiosoÚmagnetoÚ    magnificoÚMajuroÚMalaboÚ    manifestoÚMaputoÚ    MaracaiboÚmedicoÚmemoÚmetroÚMexicoÚmicroÚMilanoÚMonacoÚmonoÚ
MontenegroÚMoroccoÚMuqdishoÚmyoÚneutrinoÚNingboÚoctavoÚoreganoÚOrinocoÚOrlandoÚOsloÚpantoÚ
ParamariboÚParduscoÚpedaloÚphotoÚpimentoÚpintoÚplecoÚPlutoÚpogoÚpoloÚponchoz
Porto-NovoÚPortoÚproÚpsychoÚpuebloÚquartoÚQuitoÚrepoÚrhinoÚrisottoÚrococoÚrondoÚ
SacramentoÚsaddoÚsagoÚsalvoÚSantiagoÚSapporoÚSarajevoÚ
scherzandoÚscherzoÚsiloÚsiroccoÚsombreroÚstaccatoÚsternoÚstuccoÚstyloÚsumoÚTaikoÚtechnoÚterrazzoÚtestudoÚtimpanoÚtiroÚtobaccoÚTogoÚTokyoÚtoreroÚTorinoÚTorontoÚtorsoÚtremoloÚtypoÚtyroÚufoÚUNESCOÚvaqueroÚ
vermicelloÚversoÚvibratoÚ violoncelloÚVirgoÚweirdoÚWHOÚWTOÚ Yamoussoukrozyo-yoÚzeroÚZibo)ÚczechÚeunuchÚstomach)ÚcodexÚmurexÚsilexÚices)ÚradixÚhelix)ÚvortexÚvertexÚcortexÚlatexÚpontifexÚapexÚindexÚsimplex)Úappendix)ÚafritÚafreetÚefreet)ÚgoyÚseraphÚcherubÚimzq
    ataman caiman cayman ceriman
    desman dolman farman harman hetman
    human leman ottoman shaman talisman
    Alabaman Bahaman Burman German
    Hiroshiman Liman Nakayaman Norman Oklahoman
    Panaman Roman Selman Sonaman Tacoman Yakiman
    Yokohaman Yuman
)Ú    booklouseÚ
grapelouseÚlouseÚ    woodlouseÚliceé)#ÚbreechesÚbritchesÚpajamasÚpyjamasÚclippersÚgallowsÚhijinksÚ headquartersÚpliersÚscissorsrPÚherpesÚpincersÚshearsÚ proceedingsÚtrousersÚcantusÚcoitusÚnexusÚ contretempsÚcorpsÚdebrisÚsiemensÚmumpsÚdiabetesÚ
jackanapesÚseriesÚspeciesÚ
subspeciesÚrabiesÚchassisÚinningsÚnewsÚmewsÚhaggisÚoisÚmeasles)Ú
wildebeestÚswineÚelandÚbisonÚbuffaloÚcattleÚelkÚ
rhinocerosÚzucchiniÚcaribouÚdaceÚgrousez guinea fowlz guinea-fowlÚhaddockÚhakeÚhalibutÚherringÚmackerelÚpickerelÚpikeÚroeÚseedÚshadÚsnipeÚtealÚturbotz
water fowlz
water-fowl)ÚtunaÚsalmonrIÚtroutÚbreamzsea-basszsea bassÚcarpÚcodÚflounderÚwhitingÚmoosermÚdjinnÚsamuriÚ    offspringÚpenceÚquidÚhertz)Ú
PortugueseÚAmoyeseÚBorgheseÚCongoeseÚFaroeseÚ
FoochoweseÚGeneveseÚGenoeseÚ
GilberteseÚ HottentoteseÚ
KiplingeseÚKongoeseÚLuccheseÚMalteseÚ
NankingeseÚNiaseseÚ    PekingeseÚ PiedmonteseÚ    PistoieseÚ
SarawakeseÚShaveseÚ
VermonteseÚ
WenchoweseÚYengeese) ÚbutterÚcashÚ    furnitureÚ informationÚfishÚdeerÚsheepÚneseÚreseÚleseÚmeseÚpoxÚcraft) Ú    acropolisÚaegisÚaliasÚasbestosÚbathosÚbiasÚ
bronchitisÚbursitisÚcaddisÚcannabisÚcanvasÚchaosÚcosmosÚdaisÚ    digitalisÚ    epidermisÚethosÚeyasÚgasÚglottisÚhubrisÚibisÚlensÚmantisÚmarquisÚ
metropolisÚpathosÚpelvisÚpolisr@Ú    sassafrasÚtrellisÚssÚusÚesz    [A-Z].*es)ÚBolshoisÚHanois)Ú BetelgeusesÚDusesÚMeusesÚ    SyracusesÚ    Toulouses)ÚabusesÚ    applausesÚblousesÚcarousesÚcausesÚ chartreusesÚclausesÚcontusesÚdousesÚexcusesÚfusesÚgrousesÚ hypotenusesÚ    masseusesÚ
menopausesÚmisusesÚmusesÚoverusesÚpausesÚperusesÚprofusesÚreclusesÚreusesÚrusesÚsousesÚspousesÚsuffusesÚ
transfusesÚuses)œÚAddiesÚAggiesÚAlliesÚAmiesÚAngiesÚAnniesÚ    AnnmariesÚArchiesÚArtiesÚAussiesÚBarbiesÚBarriesÚBasiesÚBenniesÚBerniesÚBertiesÚBessiesÚBettiesÚBilliesÚBlondiesÚBobbiesÚBonniesÚBowiesÚBrandiesÚBriesÚBrowniesÚCalliesÚ    CarnegiesÚCarriesÚCassiesÚCharliesÚCheriesÚ    ChristiesÚConniesÚCuriesÚDanniesÚDebbiesÚDixiesÚDolliesÚDonniesÚ    DrambuiesÚEddiesÚEffiesÚElliesÚElsiesÚEriesÚErniesÚEssiesÚEugeniesÚFanniesÚFlossiesÚFrankiesÚFreddiesÚ
GillespiesÚGoldiesÚGraciesÚGuthriesÚHalliesÚHattiesÚHettiesÚHolliesÚJackiesÚJamiesÚJaniesÚJanniesÚJeaniesÚJeanniesÚJenniesÚJessiesÚJimmiesÚJodiesÚJohniesÚJohnniesÚJosiesÚJuliesÚ KalgoorliesÚKathiesÚKatiesÚKelliesÚKewpiesÚKristiesÚLaramiesÚLassiesÚLauriesÚLesliesÚLessiesÚLilliesÚLizziesÚLonniesÚLoriesÚLorriesÚLottiesÚLouiesÚ
MackenziesÚMaggiesÚMaisiesÚMamiesÚMarciesÚMargiesÚMariesÚ    MarjoriesÚMattiesÚ    McKenziesÚMelaniesÚMickiesÚMilliesÚMinniesÚMolliesÚMountiesÚNanniesÚNataliesÚNelliesÚNettiesÚOlliesÚOzziesÚPearliesÚ PottawatomiesÚReggiesÚRichiesÚRickiesÚRobbiesÚRonniesÚRosaliesÚ
RosemariesÚRosiesÚRoxiesÚRushdiesÚRuthiesÚSadiesÚSalliesÚSammiesÚScottiesÚ    SelassiesÚSherriesÚSophiesÚStaciesÚ    StefaniesÚ
StephaniesÚSteviesÚSusiesÚSylviesÚTammiesÚTerriesÚTessiesÚTommiesÚTraciesÚTrekkiesÚValariesÚValeriesÚ    ValkyriesÚVickiesÚVirgiesÚWilliesÚWinniesÚWyliesÚYorkies)GÚaeriesÚbaggiesÚbeliesÚbiggiesÚbirdiesÚbogiesÚbonniesÚboogiesÚbookiesÚ bourgeoisiesÚbrowniesÚbudgiesÚcaddiesÚcaloriesÚ camaraderiesÚ cockamamiesÚcolliesÚcookiesÚcooliesÚcootiesÚcoteriesÚcrappiesÚcuriesÚcutesiesÚdogiesÚeyriesÚflooziesÚfootsiesÚfreebiesÚgeniesÚgoaliesÚgroupiesÚhiesÚ    jalousiesÚjunkiesÚkiddiesÚladdiesÚlassiesÚliesÚ    lingeriesÚmagpiesÚ
menageriesÚmommiesÚmoviesÚnecktiesÚnewbiesÚnightiesÚoldiesÚ    organdiesÚoverliesÚpiesÚpinkiesÚpixiesÚpotpiesÚprairiesÚquickiesÚreveriesÚrookiesÚ rotisseriesÚsoftiesÚsortiesr/ÚstymiesÚsweetiesÚtiesÚ    underliesÚuntiesÚveggiesÚviesÚyuppiesÚzombies)ÚChloesÚCrusoesÚDefoesÚFaeroesÚIvanhoesÚJoesÚMcEnroesÚMoesÚMonroesÚNoesÚPoesÚRoscoesÚTahoesÚ TippecanoesÚZoes)ÚaloesÚbackhoesÚcanoesÚdoesÚfloesÚfoesÚhoesÚ
mistletoesÚoboesÚpekoesÚroesÚsloesÚthroesÚtiptoesÚtoesÚwoes)ÚquartzesÚtopazes)ÚbuzzesÚfizzesÚfrizzesÚrazzes)Ú AndromachesÚApachesÚBlanchesÚ    ComanchesÚ
NietzschesÚPorschesÚRoches)ÚachesÚ
avalanchesÚ    backachesÚ
bellyachesÚcachesÚclochesÚcrechesÚdouchesÚearachesÚfichesÚ    headachesÚ
heartachesÚ microfichesÚnichesÚ    pastichesÚpsychesÚquichesÚ stomachachesÚ
toothachesÚtranches)ÚannexesÚaxesÚdeluxesÚpickaxes)ÚHessesÚJessesÚ    LaroussesÚMatisses)ÚbouillabaissesÚ    crevassesÚ
demitassesÚimpassesÚmoussesÚposses)ÚClivesÚ
Palmolives)    Ú interweavesÚweavesÚolivesÚbivalvesÚ    dissolvesÚresolvesÚsalvesÚtwelvesÚvalves)z (.*[csx])isz(.*)cepsz[A-Z].*sÚgeneralz1(?!major|lieutenant|brigadier|adjutant|.*star)\S+ÚmartialÚcourtÚforceÚpoundc#óFK—|]\}}t|d|›dz«–—Œy­w)z (?=(?:-|\s+)r.N)r/)r4ÚkeyÚvals   rr7r7és,èø€ò$Ù.6¨c°3„GˆCM #  aÐ(Ñ (×)ñ$ùs‚!Úpl_sb_postfix_adjú(z)(.*))AÚ
amanuensesÚ amniocentesesÚanalysesÚ
antithesesÚ
apotheosesÚarteriosclerosesÚatherosclerosesrïÚ    catalysesÚ    catharsesÚchassesÚ    cirrhosesÚcoccesÚcrisesÚ    diagnosesÚdialysesÚdieresesÚ electrolysesÚemphasesÚexegesesÚgenesesÚ    halitosesÚ
hydrolysesÚhypnosesÚ
hypothesesÚ
hysteresesÚ metamorphosesÚ
metastasesÚ misdiagnosesÚmitosesÚ mononucleosesÚnarcosesÚnecrosesÚnemesesÚneurosesÚoasesÚosmosesÚ osteoporosesÚ    paralysesÚ parenthesesÚparthenogenesesÚ periphrasesÚphotosynthesesÚ    proboscesÚ    prognosesÚ prophylaxesÚ
prosthesesÚprecesÚ    psoriasesÚpsychoanalysesÚ psychokinesesÚ    psychosesÚ    sclerosesÚ    scoliosesÚsepsesÚ    silicosesÚ    symbiosesÚsynopsesÚ    synthesesÚtaxesÚ telekinesesÚthesesÚ
thrombosesÚ tuberculosesÚ
urinalyseszï
    about above across after among around at athwart before behind
    below beneath beside besides between betwixt beyond but by
    during except for from in into near of off on onto out over
    since till to under until unto upon with)ÚdeÚduÚdaz(.*?)((?:-|\s+)(?:z)(?:-|\s+))a(?:-|\s+)(.*)>ÚneuterÚfeminineÚ    masculineúgender-neutralúfeminine or masculineúmasculine or feminineÚweÚmyselfÚ    ourselvesÚyouÚyourselfÚ
yourselvesÚsheÚtheyÚherselfÚ
themselvesÚheÚhimselfÚitÚitselfÚthemselfÚmineÚoursÚyoursÚhersÚtheirsÚhisÚitsÚnomz0Dict[str, Dict[str, Union[str, Dict[str, str]]]]Úsi_pronÚIÚthem) Úmer[r]r^ÚherrbÚhimrerfrgrsrhÚacc))rprarTrf)rprarUr`)rprarVrd)rprarWra)rprarXz    she or he)rprarYz    he or she)rprcrTrg)rprcrUrb)rprcrVre)rprcrWrh)rprcrXúherself or himself)rprcrYúhimself or herself)rprmrTro)rprmrUrl)rprmrVrn)rprmrWrm)rprmrXz hers or his)rprmrYz his or hers)rwrsrTrf)rwrsrUru)rwrsrVrv)rwrsrWrs)rwrsrXz
her or him)rwrsrYz
him or her)rwrcrTrg)rwrcrUrb)rwrcrVre)rwrcrWrh)rwrcrXrx)rwrcrYryc󂗠   t||}    ||S#t$r‚wxYw#t$rtt|«cYSwxYwr3)rqÚKeyErrorÚ    TypeErrorrÚstr)ÚthecaseÚwordÚgenderÚsings    rÚ get_si_pronr‚¬sU€ðܐwÑ Ñ%ˆðؐF‰|Ðøô òØ ðûô òÜ”C˜‹Òðús‚ "” ¢>½>ÚareÚwereÚhaveÚdo)    ÚamrƒÚisÚwasr„r…Úhasr†rÀÚactÚactsÚblameÚblamesÚcanÚmustÚflyÚfliesÚcopyÚcopiesÚdrinkÚdrinksÚfightÚfightsÚfireÚfiresÚlikeÚlookÚmakeÚreachÚrunÚsinkÚsleepÚview)ÚlikesrœÚlooksrÚmakesržÚreachesrŸÚrunsr Úsinksr¡Úsleepsr¢Úviewsz^(z )((\s.*)?)$)ÚdidÚhadÚateÚmadeÚputÚspentÚfoughtÚsankÚgaveÚsoughtÚshallÚcouldÚoughtÚshouldz0^((?:thought|saw|bent|will|might|cut))((\s.*)?)$)r¿rÁrÅrÇrÉrÌ)rÃrË)Úshoes)Ú0ÚnorôÚnil)Ú1rÞÚanÚoneÚeachÚeveryÚthisÚthatÚsomeÚtheseÚthose)rÞr¾rÂrÃz)$ÚourÚyourÚtheir)ÚmyrÈrorurnrÉz~
^(?! FJO | [HLMNS]Y.  | RY[EO] | SQU
  | ( F[LR]? | [HL] | MN? | N | RH? | S[CHKLMNPTVW]? | X(YL)?) [AEIOU])
[FHLMNRSX][A-Z]
z)^(y(b[lor]|cl[ea]|fere|gg|p[ios]|rou|tt))z^((?:unabomber|unanimous|US))z0^((?:euler|hour(?!i)|heir|honest|hono[ur]|mpeg))z^([aefhilmnorsx]-?th)z^([bcdgjkpqtuvwyz]-?th)ÚthÚstÚndÚrd) rrr¢ééréééé    é é é ÚtiethÚfirstÚsecondÚthirdÚfifthÚeighthÚninthÚtwelfth)Útyr¿ÚtwoÚthreeÚfiveÚeightÚnineÚtwelvez)\Z)
Úr¿rárâÚfourrãÚsixÚsevenrärå)
ÚtenÚelevenræÚthirteenÚfourteenÚfifteenÚsixteenÚ    seventeenÚeighteenÚnineteen)
rçrçÚtwentyÚthirtyÚfortyÚfiftyÚsixtyÚseventyÚeightyÚninety) ú z     thousandz millionz billionz     trillionz  quadrillionz  quintillionz  sextillionz  septillionz
 octillionz
 nonillionz
 decillion)ÚallrôÚherdÚnamesÚpersonsÚancient)ÚTrueÚFalseÚNonez\$(\d+)z((\w+)\([^)]*\)*)z\A(\s*)(.+?)(\s*)\Zz^(?:z (?P<denominator>.+)( (per|a) .+)z\sz ^(.*[^s])s$z    ^(.*)'s?$z\A(\s*)(?:an?\s+)?(.+?)(\s*)\Zz^[aefhilmnorsx]$z^[bcdgjkpqtuvwyz]$z^[aefhilmnorsx][.-]z
^[a-z][.-]z
^[^aeiouy]z^e[uw]z^onc?e\bz
^onetime\bz^uni([^nmd]|mo)z^u[bcfghjkqrst][aeiou]z^ukrz ^U[NK][AIEO]?z^[aeiou]z(\d)z(\d)(\d)z (\d)(\d)(\d)z(\d)(\d)(\d)(?=\D*\Z)z(\d)(\d)(?=\D*\Z)z (\d)(?=\D*\Z)z(\d)(\d{3}(?:,|\Z))z\Dz\s+,z , (\S+)\s+\Zz\s+zie$Úyzue$Úuz    ([auy])e$z\g<1>zski$Úskiz[^b]i$rçz ^(are|were)$Úbez^(had)$Úhavz^(hoe)$z([^e])e$zer$Úerz ([^aeiou][aeiouy]([bdgmnprst]))$z
\g<1>\g<2>z\dcó>—eZdZUded<ded<ded<ded<d    d„Zy)
ÚWordsr}Úloweredz    List[str]Úsplit_rÙÚlastcó¨—|j«|_|j«|_|jd|_|jd|_y)Nrr.)Úlowerr ÚsplitrrÙr)ÚselfÚorigs  rÚ__init__zWords.__init__ãs:€Ø—z‘z“|ˆŒ Ø—j‘j“lˆŒ Ø—[‘[ ‘^ˆŒ
Ø—K‘K ‘Oˆ    rN©Úreturnr)rrrÚ__annotations__rrrrr r Ýs…Ø ƒLØ ÓØ ƒJØ
ƒIô$rr ú String with at least 1 charactercó—eZdZdd„Zy)Ú    _WordMetacóB—t|t«xrt|«dk\S©Nr)Ú
isinstancer}r@)rÚinstances  rÚ__instancecheck__z_WordMeta.__instancecheck__ös€Ü˜h¬Ó,ÒC´°X³À!Ñ1CÐ CrN)rrrÚbool)rrrr rrrrrõs„ô    Drrcó—eZdZdZy)ÚWordrN)rrrÚ__doc__rrrr#r#ùs„Ú.rr#)Ú    metaclasscóð—eZdZdEd„Zed„«Zej d„«ZedFd„«Ze                                                        dGd„«Z    edFd„«Z
edHd„«Z edHd„«Z dId    „Z dId
„ZedJd „«ZdEd „Z    dK                    dLd„ZdMd„Zd„Z                        dNd„ZedOd„«ZdPd„ZdQd„ZedRdSd„«Ze    dR                    dSd„«Ze    dR                    dSd„«Ze    dR                    dSd„«ZedTd„«ZedTd„«ZedTd„«ZedTd„«Ze        dK                            dUd„«Z dVd„Z!dWd„Z"dXd „Z#dXd!„Z$dRdYd"„Z%    dR                    dZd#„Z&e'd$„«Z(d[d%„Z)e*d&„«Z+    dR                    d\d'„Z,    dR                    dZd(„Z-    dR                    d\d)„Z.        dK                            d]d*„Z/ed^d_d+„«Z0e0Z1e2d,fe3d-fe4d-fe5d-fe6d,fe7d-fe8d-fe9d,fe:d,fe;d,fe<d,fe=d,fe>d,fe?d,fe@d,feAd,feBd,feCd-feDd-ffZEd`d.„ZFedRdad/„«ZGedbd0„«ZHedcd1„«ZIddded2„ZJdddfd3„ZKdddgd4„ZLdhd5„ZMdid6„ZNdid7„ZOdid8„ZPdid9„ZQdid:„ZRdid;„ZSdid<„ZTdjd=„ZUe*d>„«ZVe'd?„«ZWe*d@„«ZXe*dA„«ZYe                                dk                                                                            dldB„«ZZe*dC„«Z[e                    dm                                                    dndD„«Z\y )oÚenginecó´—tj«|_d|_d|_g|_g|_g|_g|_g|_    d|_
d|_ y)NrrT) Ú def_classicalr“Úclassical_dictÚpersistent_countÚ
mill_countÚpl_sb_user_definedÚpl_v_user_definedÚpl_adj_user_definedÚsi_sb_user_definedÚA_a_user_definedÚ    thegenderÚ_engine__number_args©rs rrzengine.__init__þsY€Ü+×0Ñ0Ó2ˆÔØ/3ˆÔ؈ŒØ8:ˆÔØ79ˆÔØ9;ˆÔ Ø8:ˆÔØ68ˆÔØ!ˆŒØ7;ˆÕrcóP—ttttf|j«Sr3)rrr}r3r4s rÚ _number_argszengine._number_args
s€ä”Dœœc˜‘N D×$6Ñ$6Ó7Ð7rcó—||_yr3)r3)rrs  rr6zengine._number_argss
€à ˆÕrcó¼—|j|«|j|«|jj||f«|jj||f«y)z=
        Set the noun plural of singular to plural.
 
        r)ÚcheckpatÚcheckpatpluralr-Úextendr0©rÚsingularÚplurals   rÚdefnounzengine.defnounsS€ð       ‰ hÔØ ×јFÔ#Ø ×Ñ×&Ñ&¨°&Ð'9Ô:Ø ×Ñ×&Ñ&¨°Ð'9Ô:Ørcó—|j|«|j|«|j|«|j|«|j|«|j|«|jj||||||f«y)z«
        Set the verb plurals for s1, s2 and s3 to p1, p2 and p3 respectively.
 
        Where 1, 2 and 3 represent the 1st, 2nd and 3rd person forms of the verb.
 
        r)r9r:r.r;)rÚs1Úp1Ús2Úp2Ús3Úp3s       rÚdefverbzengine.defverbsv€ð       ‰ bÔØ  ‰ bÔØ  ‰ bÔØ ×јBÔØ ×јBÔØ ×јBÔØ ×Ñ×%Ñ% r¨2¨r°2°r¸2Ð&>Ô?Ørcó‚—|j|«|j|«|jj||f«y)zB
        Set the adjective plural of singular to plural.
 
        r)r9r:r/r;r<s   rÚdefadjz engine.defadj7s:€ð       ‰ hÔØ ×јFÔ#Ø × Ñ ×'Ñ'¨°6Ð(:Ô;Ørcó`—|j|«|jj|df«y)zS
        Define the indefinite article as 'a' for words matching pattern.
 
        rÞr©r9r1r;©rÚpatterns  rÚdefaz engine.defaBs+€ð       ‰ gÔØ ×Ñ×$Ñ$ g¨s ^Ô4Ørcó`—|j|«|jj|df«y)zT
        Define the indefinite article as 'an' for words matching pattern.
 
        r¾rrKrLs  rÚdefanz engine.defanLs+€ð       ‰ gÔØ ×Ñ×$Ñ$ g¨t _Ô5Ørcó†—|€y    tj|d«y#tj$r}t|«|‚d}~wwxYw)z5
        check for errors in a regex pattern
        Nrç)ÚreÚmatchÚerrorr')rrMÚerrs   rr9zengine.checkpatVs@€ð ˆ?Ø ð    ?Ü H‰HW˜bÕ !øÜx‰xò    ?Ü,¨WÓ5¸3Ð >ûð    ?ús…œA¯ ;»Acó—y)z=
        check for errors in a regex replace pattern
        NrrLs  rr:zengine.checkpatpluralas€ð    rc
ó*—tt|«dz
dd«D]w}tjd||›d|tj«}|sŒ2||dz€yt
j dtt||dz««}|j|«cSy)Nr¢r ú^ú$rz\\1)
Úranger@rRÚsearchÚ
IGNORECASEÚ DOLLAR_DIGITSÚsubrr#Úexpand)rrÚwordlistrÚmoÚpls      rÚud_matchzengine.ud_matchgs“€ä”s˜8“} qÑ(¨"¨bÓ1ò    %ˆAÜ—‘˜a ¨¡ ˜}¨AÐ.°´b·m±mÓDˆBÚØ˜A ™E‘?Ð*ÙÜ"×&Ñ&ØœD¤ x°°A±¡Ó7óð—y‘y “}Ò$ð    %ðrc ó—|stj«|_yd|vr8|drtj«|_ntj«|_|j    «D]"\}}|t
vr||j|<Œt ‚y)a»
        turn classical mode on and off for various categories
 
        turn on all classical modes:
        classical()
        classical(all=True)
 
        turn on or off specific claassical modes:
        e.g.
        classical(herd=True)
        classical(names=False)
 
        By default all classical modes are off except names.
 
        unknown value in args or key in kwargs raises
        exception: UnknownClasicalModeError
 
        Nrý)Ú all_classicalr“r*Ú no_classicalÚitemsr)r)rÚkwargsÚkÚvs    rÚ    classicalzengine.classicalts‚€ñ&Ü"/×"4Ñ"4Ó"6ˆDÔ Ø Ø F‰?ؐeŠ}Ü&3×&8Ñ&8Ó&:Õ#ä&2×&7Ñ&7Ó&9Ô#à—L‘L“Nò    0‰DˆAˆqØ”MÑ!Ø)*×#Ñ# AÒ&ä/Ð/ñ        0rNcóˆ—|!    t|«|_||r t    |«Syd|_y#t$r }t|‚d}~wwxYw)zŒ
        Set the number to be used in other method calls.
 
        Returns count.
 
        Set show to False to return '' instead.
 
        Nrç)Úintr+Ú
ValueErrorr!r})rÚcountÚshowrUs    rÚnumz
engine.num–sZ€ð Ð ð 0Ü(+¨E«
Ô%𐠡ܘ5“zÐ!ðð%)ˆDÔ !Øøô ò 0Ü&¨CÐ/ûð 0ús„,¬    Aµ<¼Acó.—|tvr||_yt‚)a“
        set the gender for the singular of plural pronouns
 
        can be one of:
        'neuter'                ('they' -> 'it')
        'feminine'              ('they' -> 'she')
        'masculine'             ('they' -> 'he')
        'gender-neutral'        ('they' -> 'they')
        'feminine or masculine' ('they' -> 'she or he')
        'masculine or feminine' ('they' -> 'he or she')
        N)Úsingular_pronoun_gendersr2r+)rr€s  rr€z engine.gender¬s€ð Ô-Ñ -Ø#ˆDNä Ð  rcóJ—t|tj«r |jSt|tj«r |j
St|tj «r)|jDcgc]}|j|«‘Œc}St|tj«r2t|jDcgc]}|j|«‘Œc}«St|tj«r |jStd|j›d«‚cc}wcc}w)z5
        Return the value of the ast object.
        zname 'z' is not defined)rÚastÚNumÚnÚStrr,r
ÚeltsÚ_get_value_from_astrÚtupleÚ NameConstantÚvalueÚ    NameErrorÚid)rÚobjrÁs   rrzzengine._get_value_from_ast½sӀô cœ3Ÿ7™7Ô #Ø—5‘5ˆLÜ ˜œSŸW™WÔ %Ø—5‘5ˆLÜ ˜œSŸX™XÔ &Ø9<¿¹ÖB°AD×,Ñ,¨QÕ/ÒBÐ BÜ ˜œSŸY™YÔ 'ܸs¿x¹xÖH¸!˜$×2Ñ2°1Õ5ÒHÓIÐ Iô˜œS×-Ñ-Ô .Ø—9‘9Ð ô
˜& §¡ Ð(8Ð9Ó:Ð:ùòCùâHs Á5DÂ=D có®—|j«\}}||vr|Stj|«}|jdjj
Dcgc]}|j |«‘Œ}}|jdjjDcic](}|j|j |j«“Œ*}    }|||i|    ¤ŽScc}wcc}w)zD
        Return the string to be substituted for the match.
        r)    ÚgroupsruÚparseÚbodyr}ÚargsrzÚkeywordsÚarg)
rraÚ methods_dictÚ matched_textÚf_nameÚa_treerÞÚ    args_listÚkwÚ kwargs_lists
          rÚ_string_to_substitutezengine._string_to_substituteÓsà€ð  "Ÿy™y›{ш fð
˜Ñ %ØÐ ô—‘˜<Ó(ˆð
—[‘[ ‘^×)Ñ)×.Ñ.ö
àð × $Ñ $ QÕ 'ð
ˆ    ð
ð —k‘k !‘n×*Ñ*×3Ñ3ö
àð F‰FD×,Ñ,¨R¯X©XÓ6Ñ 6ð
ˆ ð
ð $ˆ|˜FÑ# YÐ>°+Ñ>Ð>ùò
ùò
s ÁC Â-Cc ór‡‡—‰j}‰j‰j‰j‰j‰j
‰j ‰j ‰j‰j‰j‰j‰jdœ Štjˆˆfd„|«}|‰_|S)a)
        Perform inflections in a string.
 
        e.g. inflect('The plural of cat is plural(cat)') returns
        'The plural of cat is cats'
 
        can use plural, plural_noun, plural_verb, plural_adj,
        singular_noun, a, an, no, ordinal, number_to_words,
        and prespart
 
        ) r>Ú
plural_adjÚ plural_nounÚ plural_verbÚ singular_nounrÞr¾r»ÚordinalÚnumber_to_wordsÚpresent_participlerqcó(•—‰j|‰«Sr3)r)rarˆrs €€rú<lambda>z engine.inflect.<locals>.<lambda>    sø€t×1Ñ1°"°lÓC€r)r+r>r‘r’r“r”rÞr»r•r–r—rqÚ FUNCTION_CALLr^)rÚtextÚsave_persistent_countÚoutputrˆs`   @rÚinflectzengine.inflectósžù€ð!%× 5Ñ 5Ðð—k‘kØŸ/™/Ø×+Ñ+Ø×+Ñ+Ø!×/Ñ/Ø—‘Ø—&‘&Ø—'‘'Ø—|‘|Ø#×3Ñ3Ø"&×"9Ñ"9Ø—8‘8ñ -
ˆ ô ×"Ñ"Ü CÀTó
ˆð!6ˆÔ؈ rcóð—t|«}d|vrË|jd«}t|djd««t|djd««k(r1|jd«|jdjd«}n_|jd«}t    |«D].\}}d|vsŒ |jd«|jd||<Œ0n|jd«}t    |jd««D]^\}}|dk(rŒ |j «|k(r||j «||<||j «k(sŒI||j «||<Œ`dj|«S)Nr1rrürrýrr)r}rr@r*Ú    enumerateÚ
capitalizeÚupperr8)rrÚ    inflectedÚ word_optionsÚresultrrs       rÚ postprocesszengine.postprocess    se€Ü˜    “Nˆ    Ø )Ñ Ø$Ÿ?™?¨3Ó/ˆLä< ‘?×(Ñ(¨Ó-Ó.´#°lÀ1±o×6KÑ6KÈCÓ6PÓ2QÒQØ"Ÿ™¨Ó-¨d×.AÑ.AÀ%Ñ.HÑI×OÑOÐPSÓT‘ð#Ÿ™¨Ó-Ü#,¨VÓ#4òT‘KE˜4ؘd’{Ø(,¯
©
°3«¸×8KÑ8KÈEÑ8RÑ(S˜˜uš ñTð—_‘_ SÓ)ˆFô% T§Z¡Z°£_Ó5ò
    6‰KˆE4ؐsŠ{ð
؏‰Ó  DÒ(Ø & u¡ × 8Ñ 8Ó :u‘ ؐt—z‘z“|Ó#Ø & u¡ × 3Ñ 3Ó 5u’ ð
    6ðx‰x˜ÓÐrcó–—tj|«}|r2|jd«|jd«|jd«fSy)Nrr¢rÏ)rçrçrç)ÚPARTITION_WORDr[Úgroup)rr›ras   rÚpartition_wordzengine.partition_word9    s=€Ü × "Ñ " 4Ó (ˆÙ Ø—8‘8˜A“; §¡¨£ ¨R¯X©X°a«[Ð8Ð 8àrcóؗ|j|«\}}}|s|S|j||j||«xs&|j||«xs|j    ||««}|›|›|›S)zþ
        Return the plural of text.
 
        If count supplied, then return text if count is one of:
            1, a, an, one, each, every, this, that
 
        otherwise return the plural.
 
        Whitespace at the start and end is preserved.
 
        )rªr¦Ú_pl_special_adjectiveÚ_pl_special_verbÚ_plnoun©rr›roÚprerÚpostr>s       rr>z engine.plural@    s‚€ð×-Ñ-¨dÓ3‰ˆˆT4ÙØˆKØ×!Ñ!Ø Ø × &Ñ & t¨UÓ 3ò )Ø×$Ñ$ T¨5Ó1ò )à|‰|˜D %Ó(ó    
ˆð vh˜t˜fÐ%Ð%rcóˆ—|j|«\}}}|s|S|j||j||««}|›|›|›S)a
        Return the plural of text, where text is a noun.
 
        If count supplied, then return text if count is one of:
            1, a, an, one, each, every, this, that
 
        otherwise return the plural.
 
        Whitespace at the start and end is preserved.
 
        )rªr¦r®r¯s       rr’zengine.plural_nounX    sR€ð×-Ñ-¨dÓ3‰ˆˆT4ÙØˆKØ×!Ñ! $¨¯ © °T¸5Ó(AÓBˆØvh˜t˜fÐ%Ð%rcó°—|j|«\}}}|s|S|j||j||«xs|j||««}|›|›|›S)a
        Return the plural of text, where text is a verb.
 
        If count supplied, then return text if count is one of:
            1, a, an, one, each, every, this, that
 
        otherwise return the plural.
 
        Whitespace at the start and end is preserved.
 
        )rªr¦r­Ú_pl_general_verbr¯s       rr“zengine.plural_verbm    sl€ð×-Ñ-¨dÓ3‰ˆˆT4ÙØˆKØ×!Ñ!Ø Ø × !Ñ ! $¨Ó .Ò T°$×2GÑ2GÈÈeÓ2Tó
ˆðvh˜t˜fÐ%Ð%rcó—|j|«\}}}|s|S|j||j||«xs|«}|›|›|›S)a
        Return the plural of text, where text is an adjective.
 
        If count supplied, then return text if count is one of:
            1, a, an, one, each, every, this, that
 
        otherwise return the plural.
 
        Whitespace at the start and end is preserved.
 
        )rªr¦r¬r¯s       rr‘zengine.plural_adj…    sZ€ð×-Ñ-¨dÓ3‰ˆˆT4ÙØˆKØ×!Ñ! $¨×(BÑ(BÀ4ÈÓ(OÒ(WÐSWÓXˆØvh˜t˜fÐ%Ð%rc󔇇‡—‰j‰j‰jf}ˆˆˆfd„|D«}tt    d|«d«S)a
        compare word1 and word2 for equality regardless of plurality
 
        return values:
        eq - the strings are equal
        p:s - word1 is the plural of word2
        s:p - word2 is the plural of word1
        p:p - word1 and word2 are two different plural forms of the one word
        False - otherwise
 
        >>> compare = engine().compare
        >>> compare("egg", "eggs")
        's:p'
        >>> compare('egg', 'egg')
        'eq'
 
        Words should not be empty.
 
        >>> compare('egg', '')
        Traceback (most recent call last):
        ...
        typeguard.TypeCheckError:...is not an instance of inflect.Word
        c3óD•K—|]}‰j‰‰|«–—Œy­wr3)Ú_plequal)r4ÚnormrÚword1Úword2s  €€€rr7z!engine.compare.<locals>.<genexpr>´    søèø€ÒG¸4—=‘= ¨¨t×4ÑGùsƒ NF)r’r“r‘ÚnextÚfilter)rrºr»ÚnormsÚresultss```  rÚcomparezengine.compareš    s?ú€ð2× Ñ  $×"2Ñ"2°D·O±OÐCˆÝGÀÔGˆÜ”F˜4 Ó)¨5Ó1Ð1rcó<—|j|||j«S)az
        compare word1 and word2 for equality regardless of plurality
        word1 and word2 are to be treated as nouns
 
        return values:
        eq - the strings are equal
        p:s - word1 is the plural of word2
        s:p - word2 is the plural of word1
        p:p - word1 and word2 are two different plural forms of the one word
        False - otherwise
 
        )r¸r’©rrºr»s   rÚ compare_nounszengine.compare_nouns·    ó€ð}‰}˜U E¨4×+;Ñ+;Ó<Ð<rcó<—|j|||j«S)az
        compare word1 and word2 for equality regardless of plurality
        word1 and word2 are to be treated as verbs
 
        return values:
        eq - the strings are equal
        p:s - word1 is the plural of word2
        s:p - word2 is the plural of word1
        p:p - word1 and word2 are two different plural forms of the one word
        False - otherwise
 
        )r¸r“rÂs   rÚ compare_verbszengine.compare_verbsÇ    rÄrcó<—|j|||j«S)a
        compare word1 and word2 for equality regardless of plurality
        word1 and word2 are to be treated as adjectives
 
        return values:
        eq - the strings are equal
        p:s - word1 is the plural of word2
        s:p - word2 is the plural of word1
        p:p - word1 and word2 are two different plural forms of the one word
        False - otherwise
 
        )r¸r‘rÂs   rÚ compare_adjszengine.compare_adjs×    s€ð}‰}˜U E¨4¯?©?Ó;Ð;rcóš—|j|«\}}}|s|S|j|||¬«}|dur|j||«}|›|›|›Sy)a™
        Return the singular of text, where text is a plural noun.
 
        If count supplied, then return the singular if count is one of:
            1, a, an, one, each, every, this, that or if count is None
 
        otherwise return text unchanged.
 
        Whitespace at the start and end is preserved.
 
        >>> p = engine()
        >>> p.singular_noun('horses')
        'horse'
        >>> p.singular_noun('knights')
        'knight'
 
        Returns False when a singular noun is passed.
 
        >>> p.singular_noun('horse')
        False
        >>> p.singular_noun('knight')
        False
        >>> p.singular_noun('soldier')
        False
 
        ©ror€F)rªÚ_sinounr¦)    rr›ror€r°rr±rr>s             rr”zengine.singular_nounç    sg€ðB×-Ñ-¨dÓ3‰ˆˆT4ÙØˆK؏|‰|˜D¨°fˆ|Ó=ˆØ uÑ Ø×%Ñ% d¨DÓ1ˆFؐU˜6˜( 4 &Ð)Ð )Ørcó—|jj«}tj«|_||k(ry|||«k(ry||«|k(rytj«|_|||«k(ry||«|k(ry|j«|_||jk(s||j
k(r&|j ||«ry|j ||«ry||jk(s||jk(r|j||«ryy)NÚeqzp:szs:pzp:pF)    r*r“rerfr>r’Ú_pl_check_plurals_Nr‘Ú_pl_check_plurals_adj)rrºr»rbÚclassvals     rr¸zengine._plequal
sø€Ø×&Ñ&×+Ñ+Ó-ˆÜ+×0Ñ0Ó2ˆÔØ EŠ>ØØ ‘Bu“IÒ ØÙ ˆe‹9˜Ò ØÜ*×/Ñ/Ó1ˆÔØ ‘Bu“IÒ ØÙ ˆe‹9˜Ò ØØ&Ÿm™m›oˆÔà —‘Ò   d×&6Ñ&6Ò 6Ø×'Ñ'¨¨uÔ5ØØ×'Ñ'¨¨uÔ5ØØ —‘Ò   d§o¡oÒ 5Ø×)Ñ)¨%°Ô7ØØrc ód—d|›d|›d|›d|›d|›d }ttj||««S)Nrz)(z\|\1r1r.)r!rRr[)rÚpairÚstemsÚend1Úend2rMs      rÚ_pl_reg_pluralszengine._pl_reg_plurals+
s>€Øug˜R ˜v T¨$¨¨q°°°d¸4¸&ÀÐBˆÜ”B—I‘I˜g tÓ,Ó-Ð-rcóà‡‡—tddftddftddftddftd    d
ft
d d ft d d
ftdd ftddftddftdd ftddfddddf}tt||f«}djd„|D««Š‰tj!«vxsE‰t"j!«vxs-‰t$j!«vxst'ˆˆfd„|D««S)NÚasr»rˆr¡r,rÁÚensrÔÚumsrÞrËrÚonsÚosÚexesrüÚixesr)z.*eaur,Úx)z.*ieur,rß)z.*triÚxesÚces)z .{2,}[yia]nràÚgesr1c3ó4K—|]}|j–—Œy­wr3)r)r4rs  rr7z-engine._pl_check_plurals_N.<locals>.<genexpr>D
sèø€Ò4 d˜Ÿ        Ñ4ùs‚c3óN•K—|]\}}}‰j‰|||«–—Œy­wr3)rÖ)r4rÓrÔrÕrÒrs    €€rr7z-engine._pl_check_plurals_N.<locals>.<genexpr>J
s0øèø€òá%E˜4 ð×$Ñ$ T¨5°$¸×=ñùsƒ"%)Ú pl_sb_C_a_ataÚpl_sb_C_is_idesÚ pl_sb_C_a_aeÚpl_sb_C_en_inaÚ pl_sb_C_um_aÚ pl_sb_C_us_iÚ pl_sb_C_on_aÚpl_sb_C_o_i_stemsÚpl_sb_C_ex_icesÚpl_sb_C_ix_icesÚ    pl_sb_C_iÚ
pl_sb_C_imÚmapr r8Úpl_sb_irregular_sÚvaluesÚpl_sb_irregularÚpl_sb_irregular_capsÚany)rrºr»Ú stem_endingsr9rÒs`    @rrÎzengine._pl_check_plurals_N/
sù€ä ˜D %Ð (Ü ˜d FÐ +Ü ˜3 Ð $Ü ˜U EÐ *Ü ˜5 #Ð &Ü ˜6 3Ð 'Ü ˜5 #Ð &Ü   cÐ *Ü ˜f fÐ -Ü ˜f fÐ -Ü ˜˜SÐ !Ü ˜˜dÐ #Ø Ø Ø #Ø )ð!
ˆ ô&”E˜E 5˜>Ó*ˆØx‰xÑ4¨eÔ4Ó4ˆð Ô%×,Ñ,Ó.Ð .ò Ø”×-Ñ-Ó/Ð/ò àÔ+×2Ñ2Ó4Ð4ò ôôà)5ôóð        
rcó—|jd«r|d|jd«nd}|jd«r|d|jd«nd}t|«xr3t|«xr&|j||«xs|j||«S)N)z'sú'rùrç)ÚendswithÚrfindr!rÎ)rrºr»Úword1aÚword2as     rrÏzengine._pl_check_plurals_adjP
sŽ€Ø.3¯n©n¸[Ô.IÐ)˜Ÿ™ SÓ)Ñ*ÈrˆØ.3¯n©n¸[Ô.IÐ)˜Ÿ™ SÓ)Ñ*Èrˆô ‹Lò ܐV“ ò ð×(Ñ(¨°Ó8ò<Ø×+Ñ+¨F°FÓ;ð     
rcóЗ|€|j |j}|Gt|«tvs.|jdr#t|«j    «t
vrd}|Sd}|Sd}|S)Nrôrr¢rç)r+r}Ú pl_count_oner*rÚ pl_count_zero)rros  rÚ    get_countzengine.get_count]
s‚€Ø ˆ=˜T×2Ñ2Ð>Ø×)Ñ)ˆEà Ð ô˜“Z¤<Ñ/à×+Ñ+¨FÒ3Ü ›J×,Ñ,Ó.´-Ñ?ð ð ðˆ ð    ð ðˆ ðˆE؈ rcó4—|j|«}|dk(r|S|j||j«}||S|dk(r|St|«}|jj «t vr1t|j«dk\r|j|d¬«xs|S|S|tvr|Stj«D]\}}|j| d|vsŒ|cS|jdr"|jj «tvr|St j#|«}|rH|j%d«dk7r4|j'|j%d«d«›|j%d«›Sd|jvsd|jvr“t(j#|«}|r||j%d«dk7rh|j%d«dk7rT|j'|j%d«d«›|j%d«›|j'|j%d««›St|j«dk\r|j|d¬«}||St*j#|j«}|r5t|j%d    ««}|j'|d|«›||d›St|j«dk\rM|jd
d k(r;d j-|j'|j.«g|jddz«St1j2t4«5|j7|jt9j:|j&d¬«d «cddd«S#1swYnxYwt<j«D]¬\}}|j| d|vsŒt>j«D]}\}    }
|jd|    |
vsŒ|jjA«|jd|    |j| dgk(sŒS|jd| tB|j| dzccSŒ®    tD|jS#tF$rYnwxYw    tB|jS#tF$rYnwxYw|jtHvr0t|j«} |d| ›tH|j›S|jj «} | tJvrt| «} |d| ›tJ| ›S|jjAd «} d j-| d
d«j «tLvrNtd j-| d
d««} |d| ›tLd j-| d
d«j «›S|jdddk(r|dd›dS|jdddk(r|jdr|›dS|dd›dS|jdddk(rhtNj«D]\}}|j| d|vsŒ|›dcStPj«D]\}}|| d|vsŒ|›dcS|dd›dS|jdddk(r|dd›dS|jdddk(r;tRjUt|««}|r|j|vr|dd›dS|›dS|jdddk(r|dd›d S|jddd!k(r|dd›d"S|jddd#k(r|dd›d$S|jddd%k(r|dd›d&S|jd'k(ry(|jddd)k(r|S|jddd*k(r|dd
›d+S|jddd,vr|dd
›d-Sd.tVddfd/tXd
d0fd/tZd
d0fd1t\d
d+fdt^d
d2fd3t`d
d+fd+tbdd4ffD]P\}}}}|jd|k(sŒ|j«D]#\}}|j| d|vsŒ|d||zccSŒR|jd5r`|jddd6k(r|dd›d7S|jddd8vr|›d/S|jddd9vrt|«d:kDr|dd›d;Sd3tdd
d<fd/tfd
d0fd/thd
d0fd1tjd
d+fdtld
d2fdtnddfd+tpdd4fd+trdd=fdttdd>fd?tvdd2fd3txd
d+ff D]P\}}}}|jd|k(sŒ|j«D]#\}}|j| d|vsŒ|d||zccSŒRtzdd2ft|dd@ffD]<\}}}|j«D]#\}}|j| d|vsŒ|d||zccSŒ>| t~vr|›d-St€j«D]\}}|j| d|vsŒ|›d-cS|jd
dd-k(r|dA|dAjƒ«k(r|›d-S|jddBk(rLt„j«D]\}}|j| d|vsŒ|›d-cS|jd
ddBk7r|›dCS|jd
ddDk(r5t†j«D]\}}|j| d|vsŒ|›dcS|jd
ddEvs|jdd/k(r|›d-S|jdddFvr|dd›dGS|jdddHk(r|jdddIk7r|dd›dGS|jdddJvr|dd
›dGS|jdddKk(r|dd›dGS|jddLk(rk|jd
ddMvst|«dk(r|›dS|jdNr0|jddLk(r|dA|dAjƒ«k(r|›dS|dd›dS| tˆvr|›dStŠj«D]\}}|j| d|vsŒ|›dcS|jd
ddOvr|›dS|jdd?k(r|›d-S|›dS)PNrrçrÏr¢©rorþz a z-a-Ú denominatorr Údegreerüú-éýÿÿÿÚquyr.ÚieséúÿÿÿÚpersonrr,éüÿÿÿÚopleÚmanÚmenéûÿÿÿÚmouseÚmicerrÚgooseÚgeeseÚtoothÚteethÚfootÚfeetÚtacoÚtacosÚdieÚdiceÚcepsÚzoonrÞ)ÚcisÚsisÚxisr§ÚhrßrüÚmrrwrÁrÚtrixrá)ÚeauÚieu)ÚynxÚinxÚanxrÐrârÔÚtaÚdesÚorrÚzÚzesÚze)ÚchÚshÚzzr¥)ÚelfÚalfÚolfÚvesÚeafÚd)ÚnifeÚlifeÚwifeÚarfrÚaeiourÿ)ÚaoÚeoÚioÚooÚuo)Frrcr-r rrÚpl_sb_uninflected_completer@rÚ_handle_long_compoundsÚpl_sb_uninflected_capsÚpl_sb_uninflected_bysizergr r*Úpl_sb_uninflected_herdÚPL_SB_POSTFIX_ADJ_STEMS_REr[r©r®ÚPL_SB_PREP_DUAL_COMPOUND_REÚ DENOMINATORr8rÙÚ
contextlibÚsuppressrnÚ_handle_prepositional_phraseÚ    functoolsÚpartialÚpl_pron_acc_keys_bysizeÚpl_prep_bysizerÚ pl_pron_accÚ pl_pron_nomr{rõrôÚpl_sb_irregular_compoundÚpl_sb_U_man_mans_bysizeÚpl_sb_U_man_mans_caps_bysizeÚpl_sb_U_louse_lice_bysizeÚgetÚpl_sb_U_ch_chs_bysizeÚpl_sb_U_ex_ices_bysizeÚpl_sb_U_ix_ices_bysizeÚpl_sb_U_um_a_bysizeÚpl_sb_U_us_i_bysizeÚpl_sb_U_on_a_bysizeÚpl_sb_U_a_ae_bysizeÚpl_sb_C_en_ina_bysizeÚpl_sb_C_ex_ices_bysizeÚpl_sb_C_ix_ices_bysizeÚpl_sb_C_um_a_bysizeÚpl_sb_C_us_i_bysizeÚpl_sb_C_us_us_bysizeÚpl_sb_C_a_ae_bysizeÚpl_sb_C_a_ata_bysizeÚpl_sb_C_is_ides_bysizeÚpl_sb_C_o_i_bysizeÚpl_sb_C_on_a_bysizeÚpl_sb_C_i_bysizeÚpl_sb_C_im_bysizeÚpl_sb_singular_s_completeÚpl_sb_singular_s_bysizer¢Úpl_sb_z_zes_bysizeÚpl_sb_ze_zes_bysizeÚpl_sb_U_o_os_completeÚpl_sb_U_o_os_bysize)rrror}rirjraÚ handled_wordsrÚpkÚpvÚllenÚ lowered_lastÚ
dash_splitÚlastletr8Únumendr±s                  rr®zengine._plnounr
sÔ €ð—‘˜uÓ%ˆð AŠ:؈Kð— ‘ ˜d D×$;Ñ$;Ó<ˆØ Р؈Lð 2Š:؈KäT‹{ˆà 9‰9?‰?Ó Ô :Ñ :ܐ4—;‘;Ó 1Ò$Ø×2Ñ2°4¸qÐ2ÓAÒIÀTÐI؈Kà Ô)Ñ )؈Kä,×2Ñ2Ó4ò    ‰DˆAˆq؏|‰|˜Q˜B˜CР AÒ%Ø’ ð    ð × Ñ ˜vÒ &¨4¯9©9¯?©?Ó+<Ô@VÑ+V؈Kô(× .Ñ .¨tÓ 4ˆÙ "—(‘(˜1“+ Ò#Ø—l‘l 2§8¡8¨A£;°Ó2Ð3°B·H±H¸Q³K°=ÐAÐ Aà D—L‘LÑ   E¨T¯\©\Ñ$9Ü,×3Ñ3°DÓ9ˆBِb—h‘h˜q“k RÒ'¨B¯H©H°Q«K¸2Ò,=à—|‘| B§H¡H¨Q£K°Ó3Ð4Ø—x‘x “{mØ—|‘| B§H¡H¨Q£KÓ0Ð1ð3ðô ˆt{‰{Ó ˜qÒ  Ø ×7Ñ7¸ÀAÐ7ÓFˆMØÐ(Ø$Ð$ô× Ñ  § ¡ Ó -ˆÙ ܘŸ™ Ó/Ó0ˆEØ—l‘l 4¨¨ <Ó0Ð1°$°u°v°,°Ð@Ð @ô ˆt{‰{Ó ˜qÒ   T§[¡[°¡_¸Ò%@Ø—8‘8˜TŸ\™\¨$¯*©*Ó5Ð6¸¿¹ÀQÀR¸ÑHÓIÐ Iä ×  Ñ  ¤Ó ,ñ    Ø×4Ñ4Ø— ‘ Ü×!Ñ! $§,¡,°aÔ8Øó÷    ÷    ò    úô,×1Ñ1Ó3ò        V‰DˆAˆq؏|‰|˜Q˜B˜CР AÒ%Ü,×2Ñ2Ó4òV‘FB˜Ø—|‘| C RÐ(¨BÒ.ØŸ<™<×-Ñ-Ó/Ø ŸL™L¨¨"Ð-Ø ŸL™L¨!¨¨Ð-ð4óð
$(§<¡<°°!°Ð#4´{À4Ç<Á<ÐQRÐPRÐPSÐCTÑ7UÑ#UÔUñVð        Vð    Ü˜tŸ|™|Ñ,Ð ,øÜò    Ù ð    úð    Ü˜tŸ|™|Ñ,Ð ,øÜò    Ù ð    úð
9‰9Ô,Ñ ,ܐt—y‘y“>ˆDؘ6˜T˜El^Ô$8¸¿¹Ñ$CÐ#DÐEÐ Eà—y‘y—‘Ó(ˆ Ø œ?Ñ *ܐ|Ó$ˆDؘ6˜T˜El^¤O°LÑ$AÐ#BÐCÐ Cà—\‘\×'Ñ'¨Ó,ˆ
Ø H‰HZ  _Ó %× ,Ñ ,Ó .Ô2JÑ JÜØ—‘˜ B C˜Ó)óˆDð˜˜$˜<.Ü+¨S¯X©X°jÀÀ°oÓ-F×,MÑ,MÓ,OÑPÐQðSð ð
<‰<˜˜Ð  Ò %ؘ3˜Bi[ Ð$Ð $à <‰<˜˜Ð  Ò (Ø×"Ñ" 9Ò-ؘ˜qzÐ!à˜s ˜)˜ DÐ)Ð)ð <‰<˜˜Ð  Ò %Ü/×5Ñ5Ó7ò &‘1Ø—<‘<   Ð$¨Ò)Ø"˜V 1˜:Ò%ð &ô5×:Ñ:Ó<ò &‘1ؘ˜˜9 ’>Ø"˜V 1˜:Ò%ð &ð˜3˜Bi[ Ð$Ð $Ø <‰<˜˜Ð  Ò 'ؘ3˜Bi[ Ð%Ð %Ø <‰<˜˜Ð  Ò 'Ü)×-Ñ-¬c°$«iÓ8ˆAِT—\‘\ QÑ&ؘs ˜)˜ DÐ)Ð)ؐV˜1:Ð Ø <‰<˜˜Ð  Ò 'ؘ3˜Bi[ Ð&Ð &Ø <‰<˜˜Ð  Ò 'ؘ3˜Bi[ Ð&Ð &Ø <‰<˜˜Ð  Ò &ؘ3˜Bi[ Ð%Ð %Ø <‰<˜˜Ð  Ò &ؘ3˜Bi[ Ð&Ð &à <‰<˜5Ò  Øð <‰<˜˜Ð  Ò &؈KØ <‰<˜˜Ð  Ò &ؘ3˜Bi[ ?Ð "Ø <‰<˜˜Ð Р5Ñ 5ؘ3˜Bi[ Ð#Ð #ðÔ'¨¨sÐ 3Ø Ô(¨"¨fÐ 5Ø Ô(¨"¨fÐ 5Ø Ô% r¨3Ð /Ø Ô% r¨3Ð /Ø Ô% r¨3Ð /Ø Ô% t¨SÐ 1ð)
ò     4Ñ $ˆGQ˜ ð|‰|˜BÑ 7Ó*ØŸG™G›Iò4‘DAqØ—|‘| Q B CÐ(¨AÒ-Ø# G V˜}¨tÑ3Ô3ñ4ð     4ð  × Ñ ˜yÓ )؏|‰|˜B˜CР FÒ*ؘs ˜)˜ CÐ(Ð(؏|‰|˜B˜CР NÑ2ؘ˜qzÐ!؏|‰|˜B˜CРÐ$9Ñ9¼cÀ$»iÈ!ºmؘs ˜)˜ CÐ(Ð(ðÔ+¨R°Ð7ØÔ,¨b°&Ð9ØÔ,¨b°&Ð9ØÔ)¨2¨sÐ3ØÔ)¨2¨sÐ3ØÔ*¨D°"Ð5ØÔ)¨4°Ð5ØÔ*¨D°$Ð7ØÔ,¨b°%Ð8ØÔ(¨"¨cÐ2ØÔ)¨2¨sÐ3ð -ò 8Ñ(˜˜F Dð—<‘< Ñ# wÓ.Ø !§¡£    ò8™˜˜1ØŸ<™<¨¨¨Ð,°Ò1Ø#'¨¨ =°4Ñ#7Ô7ñ8ð 8ô&" 4¨Ð-Ü" D¨$Ð/ð$ò 4‘6˜4ðŸG™G›Iò4‘DAqØ—|‘| Q B CÐ(¨AÒ-Ø# G V˜}¨tÑ3Ô3ñ4ð     4ð Ô4Ñ 4ؐV˜2;Ð ä+×1Ñ1Ó3ò    #‰DˆAˆq؏|‰|˜Q˜B˜CР AÒ%ؘ˜r{Ò"ð    #ð <‰<˜˜Ð  Ò $¨¨a©°D¸±G·M±M³OÒ)CؐV˜2;Ð à <‰<˜Ñ ˜sÒ "Ü*×0Ñ0Ó2ò '‘1Ø—<‘<   Ð$¨Ò)Ø"˜V 2˜;Ò&ð 'ð|‰|˜B˜rÐ" cÒ)ؘ˜s|Ð#à <‰<˜˜Ð  Ò $Ü+×1Ñ1Ó3ò &‘1Ø—<‘<   Ð$¨Ò)Ø"˜V 1˜:Ò%ð &ð <‰<˜˜Ð Р8Ñ 8¸D¿L¹LÈÑ<LÐPSÒ<SؐV˜2;Ð ð <‰<˜˜Ð Р5Ñ 5ؘ3˜Bi[ Ð$Ð $Ø <‰<˜˜Ð  Ò %¨$¯,©,°r¸"Ð*=ÀÒ*Dؘ3˜Bi[ Ð$Ð $Ø <‰<˜˜Ð Р8Ñ 8ؘ3˜Bi[ Ð$Ð $Ø <‰<˜˜Ð  Ò %ؘ3˜Bi[ Ð$Ð $ð <‰<˜Ñ ˜sÒ "؏|‰|˜B˜rÐ" gÑ-´°T³¸a²Ø˜˜qzÐ!à×"Ñ" 7Ò+Ø—<‘< Ñ# sÒ*¨t°A©w¸$¸q¹'¿-¹-»/Ò/IØ"˜V 1˜:Ð%à˜3˜Bi[ Ð$Ð $ð Ô0Ñ 0ؐV˜1:Ð ä'×-Ñ-Ó/ò    "‰DˆAˆq؏|‰|˜Q˜B˜CР AÒ%ؘ˜qzÒ!ð    "ð <‰<˜˜Ð Р>Ñ >ؐV˜1:Ð à <‰<˜Ñ ˜sÒ "ؐV˜2;Ð ðqˆzÐs0Ì<M Í M)Ð0QÑ    QÑQÑQ&Ñ&    Q2Ñ1Q2cóB—|j|«}t|«dkr td«‚|j|t«}|||dz
«xs||dz
}dj |d|dz
|j |||dg«gz«dj ||dzd«zS)aî
        Given a word or phrase possibly separated by sep, parse out
        the prepositional phrase and apply the transform to the word
        preceding the prepositional phrase.
 
        Raise ValueError if the pivot is not found or if at least two
        separators are not found.
 
        >>> engine._handle_prepositional_phrase("man-of-war", str.upper, '-')
        'MAN-of-war'
        >>> engine._handle_prepositional_phrase("man of war", str.upper, ' ')
        'MAN of war'
        rÏz2Cannot handle words with fewer than two separatorsrrüNrç)rr@rnÚ _find_pivotÚpl_prep_list_dar8)ÚclsÚphraseÚ    transformÚsepÚpartsÚpivotÚ transformeds       rrMz#engine._handle_prepositional_phrase“ s±€ð— ‘ ˜SÓ!ˆÜ ˆu‹:˜Š>ÜÐQÓRÐ Rà—‘ ¤Ó7ˆá  e¨a¡iÑ 0Ó1ÒE°U¸5À1¹9Ñ5Eˆ ؏x‰xØ +E˜A‘IÐ  #§(¡(¨K¸¸u¹ÀrÐ+JÓ"KÐ!LÑ Ló
à H‰HU˜E A™I˜=Ð)Ó *ñ+ð    +rc󘇇—‰dk(r |jn |jŠˆˆfd„t|jd«D«}t    |d«S)aS
        Handles the plural and singular for compound `Words` that
        have three or more words, based on the given count.
 
        >>> engine()._handle_long_compounds(Words("pair of scissors"), 2)
        'pairs of scissors'
        >>> engine()._handle_long_compounds(Words("men beyond hills"), 1)
        'man beyond hills'
        rc
3óš•K—|]B\}\}}}|tvr1djtj|‰|‰«|g|««–—ŒDy­w©rüN)r}r8Ú    itertoolsÚchain)r4ÚleaderÚcandÚprepÚtrailerroÚ
inflections     €€rr7z0engine._handle_long_compounds.<locals>.<genexpr>¸ sWøèø€ò
 
ñ.™ ˜˜t gØ”Ñ&ð H‰HÜ—‘ØÙ  eÓ,¨dÐ3Øó÷ ñ
 
ùsƒAA r¢N)rËr®rrr¼)rrroÚ    solutionsrŽs  ` @rrDzengine._handle_long_compounds­ sGù€ð&+¨a¢ZT—\’\°T·\±\ˆ
ô
 
ô2CÀ4Ç;Á;ÐPQÓ1Rô
 
ˆ    ôI˜tÓ$Ð$rc󔇇—ˆˆfd„tdt‰«dz
«D«}    t|«S#t$r t    d«d‚wxYw)Nc3ó2•K—|]}‰|‰vsŒ |–—Œy­wr3r)r4rÚ
candidatesr9s  €€rr7z%engine._find_pivot.<locals>.<genexpr>Ç s!øèø€ò
ظ5À¹<È:Ò;UŒEñ
ùsƒ rzNo pivot found)rZr@r¼Ú StopIterationrn)r9r’Úpivotss`` rr|zengine._find_pivotÅ sMù€ô
Ü$ Q¬¨E«
°Q©Ó7ô
ˆð    9ܘ“<Ð øÜò    9ÜÐ-Ó.°DÐ 8ð    9ús    ¦
1±Acó8—|jdr t|«j«tvry|j    |«}|dk(r|S|j ||j «}||S    t|«}|jtvr-t|j›|t|j«d›S|jtvr|S|jjd«rF|jddtvr1t|jdd›d|t|j«d›S|jjd«r|Stj|«}|ryt j|«ry|j"dk(ry|j"ddd    vs|j"ddd
k(r|dd S|j"ddd k(r t|«d kDr|j"dddzS|j$j«t&vs*|j"ddt(vs|j"ddt*vr|ddS|j"jd«rt|«d kDr|j"dd St,j|«}|r|j/d«Sy#t$rYywxYw)NrôFrzn'trÚquizzesÚquizr )ÚchesÚshesÚzzesÚssesràr r    rÏrrr.Úoes)r*r}rrrrcr.r Ú
IndexErrorrÙÚplverb_irregular_presr@Úplverb_irregular_non_presrúÚPLVERB_SPECIAL_S_REr[Ú
WHITESPACEr rÚ pl_v_oes_oeÚpl_v_oes_oe_endings_size4Úpl_v_oes_oe_endings_size5Ú ENDS_WITH_Sr©)rrror}r9ras      rr­zengine._pl_special_verbÏ sŽ€ð × Ñ ˜vÒ &¬3¨u«:×+;Ñ+;Ó+=ÄÑ+NØØ—‘˜uÓ%ˆà AŠ:؈Kð— ‘ ˜d D×$:Ñ$:Ó;ˆØ Р؈Lð    Ü˜$“KˆEð ;‰;Ô/Ñ /Ü+¨E¯K©KÑ8Ð9¸%ÄÀEÇKÁKÓ@PÐ@RÐ:SÐ9TÐUÐ Uð ;‰;Ô3Ñ 3؈Kð ;‰;× Ñ  Ô &¨5¯;©;°s¸Ð+;Ô?TÑ+Tä(¨¯©°S°bÐ)9Ñ:Ð;¸3Øœ˜UŸ[™[Ó)Ð+Ð,Ð-ð/ð ð
;‰;× Ñ  Ô &؈Kô!× 'Ñ '¨Ó -ˆÙ ØÜ × Ñ ˜TÔ "Øà =‰=˜IÒ %Øð
M‰M˜"˜#Ð Ð"BÑ B؏}‰}˜R˜SÐ! UÒ*à˜˜":Ð à =‰=˜˜Ð  Ò &¬3¨u«:¸ª>Ø—=‘=  "Ð%¨Ñ+Ð +ð J‰J× Ñ Ó ¤+Ñ -؏}‰}˜R˜SÐ!Ô%>Ñ>؏}‰}˜R˜SÐ!Ô%>Ñ>à˜˜":Ð à =‰=× !Ñ ! %Ô (¬S°«Z¸!ª^Ø—=‘=  "Ð%Ð %ä × Ñ  Ó &ˆÙ Ø—8‘8˜A“;Ð ðøôyò    Ùð    úsÁ) J Ê     JÊJcó—|j|«}|dk(r|Stj|«}|r9t|j    d«j «›|j    d«›St j|«}|r|S|S)Nrr¢)rÚplverb_ambiguous_pres_keysr[Úplverb_ambiguous_presr©rÚplverb_ambiguous_non_pres)rrroras    rr´zengine._pl_general_verb! s‚€ð—‘˜uÓ%ˆà AŠ:؈Kô(× .Ñ .¨tÓ 4ˆÙ Ü+¨B¯H©H°Q«K×,=Ñ,=Ó,?Ñ@ÐAÀ"Ç(Á(È1Ã+ÀÐOÐ Oô'× -Ñ -¨dÓ 3ˆÙ ؈Kðˆ rcóü—|j|«}|dk(r|S|j||j«}||Stj    |«}|r&t
|j d«j«Stj    |«}|r&t|j d«j«Stj    |«}|r3|j|j d««}|ddk(rdnd}|›d|›Sy)Nrr.r,rçrùF) rrcr/Úpl_adj_special_keysr[Úpl_adj_specialr©rÚpl_adj_poss_keysÚ pl_adj_possÚENDS_WITH_APOSTROPHE_Sr’)rrror}rarbÚ
trailing_ss       rr¬zengine._pl_special_adjective9 sõ€ð—‘˜uÓ%ˆà AŠ:؈Kð— ‘ ˜d D×$<Ñ$<Ó=ˆØ Р؈Lô!× 'Ñ '¨Ó -ˆÙ Ü! "§(¡(¨1£+×"3Ñ"3Ó"5Ñ6Ð 6ô× $Ñ $ TÓ *ˆÙ ܘrŸx™x¨›{×0Ñ0Ó2Ñ3Ð 3ä #× *Ñ *¨4Ó 0ˆÙ Ø×!Ñ! "§(¡(¨1£+Ó.ˆBØ! "™v¨š}™°#ˆJؐT˜˜:˜,Ð'Ð 'ðrcóâ—|j|«}|dk(r|S    |€ |j}n|tvrt‚|j ||j«}||S|dk(r|S|tvr|ddSt|«}|jj«tvr1t|j«dk\r|j|d¬«xs|S|S|t vr|St"j%«D]\}}|j&| d|vsŒ|cS|j(dr"|jj«t*vr|S|jj«t,vr|j(dr|Sd    St.j1|«}    |    rJ|    j3d«dk7r6|j5|    j3d«d|¬
«›|    j3d«›St7j8t:«5|j=|j&t?j@|j4d|¬ «d «cddd«S#tt
f$r }t|‚d}~wwxYw#1swYnxYwt7j8t:«5|j=|j&t?j@|j4d|¬ «d «cddd«S#1swYnxYwtBj%«D]°\}}|j&| d|vsŒtDj%«D]\}
} |j&d|
| vsŒ|j&jG«|j&d|
|j&| dgk(sŒS|j&d| tId|j&| d|«zccSŒ²    tId|j&|«S#tJ$rYnwxYw    tId|j&|«S#tJ$rYnwxYw|jtLvr0t|j«} |d| ›tL|j›S|jj«tNvrLt|jj««} |d| ›tN|jj«›S|j&jGd «} d jQ| dd«j«tRvrZtd jQ| dd««} djU|d| tRd jQ| dd«j««S|j&dddk(r|dddzS|j&dddk(r|ddS|j&dddk(r|dddzS|j&dddk(r`tVj%«D]\}}|j&| d|vsŒ|ddcStXj%«D]\}}|| d|vsŒ|ddcS|j&dddk(r|dddzS|j&dddk(r|ddd zS|j&ddd!k(r6tZj]t|««}|r|j&|vr|ddd"zS|j&ddd#k(r|ddd$zS|j&ddd%k(r|ddd&zS|j&ddd'k(r|ddd(zS|j&d)k(ry*|j&ddd+k(r|S|j&ddd,k(r|ddd-zSd.t^ddfd.t`dd/fd.tbdd0fd1tddd2fd3tfdd4fd1thdd-fd5tjddffD]P\}}}}|j&d|k(sŒ|j%«D]#\}}|j&| d|vsŒ|d||zccSŒR|j(dr!|j&ddd6k(r|ddd7zS|j&ddd8vr|ddS|j&ddd9vrt|«d:kDr|ddd7zSd1tldd;fd.tndd/fd.tpdd0fd1trdd2fd3ttdd4fd.tvddfd5txddfd1tzddfd.t|dd.fd3t~dd<fd1t€dd-fd=t‚ddfd3t„ddff D]P\}}}}|j&d|k(sŒ|j%«D]#\}}|j&| d|vsŒ|d||zccSŒR|j&ddd>k(s(|t†vs |jj«tˆvr|ddS|tŠvs |jj«tŒvr|ddS|j&ddd?k(s(|tŽvs |jj«tvr|ddS|t’vs |jj«t”vr|ddS|jj«t–vr|ddSt˜j%«D]\}}|j&| d|vsŒ|ddcS|j&ddd@k(r|dA|dAj›«k(r|ddS|jj«tœvr|ddS|jj«tžvr|ddS|j&dddBk(r|ddS|t vs |jj«t¢vr|ddS|j&dddCvr|ddS|jj«t¤vr|ddS|j&dddDk(r|ddS|t¦vs |jj«t¨vr|ddS|j&dddEk(rn|j&dddFvr|dddGzS|j&dddHk(r|dddIk7r|dddGzS|j&dddJvr|dddKzS|j&dddLk(r|dddGzS|j&dddMk(rmt|j&«dkDr|j&ddNvr|ddS|j(dOr0|j&dddMk(r|dA|dAj›«k(r|ddS|j&dddPk(r|dddzS|j&dddQk(rp|jj«tªvr|ddSt¬j%«D]\}}|j&| d|vsŒ|ddcS|j&dddRvr|ddS|j&dddSk(r|ddS|t®vr|dddTzS|j&dd.k(r|ddSy    )UNr¢rçr.rÏrrrþrF)r€rÊrürrwrpr z{}{}rÚquiesrriùÿÿÿrr
Úpeopler ÚrsonÚmansrrrrrrrrrrrrrrrÚzoaÚonr,ÚexÚixrÞÚumrr¦rÁÚtricesrß)ÚeauxÚieux)ÚyngesÚingesÚangesrÑÚenr,r#Úhousesr¹Úesesrrš)r˜r™ràr6)ÚelÚalÚolÚfÚear8)ÚniÚliÚwiÚfeÚarÚysr=rÿr    rÜ)ÚaosÚeosÚiosÚoosÚuosrœrˆ)Xrr2rsr+r|rrcr0Úsi_sb_ois_oi_caser rrrCr@rrDrErFrgr r*rGÚ pl_sb_C_us_usrHr[r©rËrKrLrnrMrNrOÚsi_pron_acc_keys_bysizerQrr‚r{Úsi_sb_irregular_capsÚsi_sb_irregularr8Úsi_sb_irregular_compoundÚformatÚsi_sb_U_man_mans_bysizeÚsi_sb_U_man_mans_caps_bysizeÚsi_sb_U_louse_lice_bysizerXÚsi_sb_U_ch_chs_bysizeÚsi_sb_U_ex_ices_bysizeÚsi_sb_U_ix_ices_bysizeÚsi_sb_U_um_a_bysizeÚsi_sb_U_us_i_bysizeÚsi_sb_U_on_a_bysizeÚsi_sb_U_a_ae_bysizeÚsi_sb_C_en_ina_bysizeÚsi_sb_C_ex_ices_bysizeÚsi_sb_C_ix_ices_bysizeÚsi_sb_C_um_a_bysizeÚsi_sb_C_us_i_bysizereÚsi_sb_C_a_ae_bysizeÚsi_sb_C_a_ata_bysizeÚsi_sb_C_is_ides_bysizeÚsi_sb_C_o_i_bysizeÚsi_sb_C_on_a_bysizeÚsi_sb_C_im_bysizeÚsi_sb_C_i_bysizeÚsi_sb_uses_use_caseÚsi_sb_uses_useÚsi_sb_ies_ie_caseÚ si_sb_ies_ieÚsi_sb_oes_oe_caseÚ si_sb_oes_oeÚsi_sb_sses_sse_caseÚsi_sb_sses_sseÚsi_sb_singular_s_completeÚsi_sb_singular_s_bysizer¢Ú si_sb_z_zesÚ si_sb_zzes_zzÚsi_sb_ches_che_caseÚsi_sb_ches_cheÚ si_sb_xes_xeÚsi_sb_ves_ve_caseÚ si_sb_ves_veÚsi_sb_U_o_os_completeÚsi_sb_U_o_os_bysizeÚ si_sb_es_is)rrror€rUr}r9rirjrartrurvrxryr8Ú unass_numendr±Ú class_numends                   rrËzengine._sinoun^ s@€ð —‘˜uÓ%ˆð AŠ:؈Kð    *؈~ØŸ™‘ØÔ7Ñ7Ü$Ð$ð — ‘ ˜d D×$;Ñ$;Ó<ˆØ Р؈Lð 2Š:؈Kà Ô$Ñ $ؘ˜9Ð äd“ ˆà :‰:× Ñ Ó Ô!;Ñ ;ܐ5—<‘<Ó  AÒ%Ø×2Ñ2°5ÀÐ2ÓBÒJÀdÐJ؈Kà Ô)Ñ )؈Kä,×2Ñ2Ó4ò    ‰DˆAˆq؏}‰}˜a˜R˜SÐ! QÒ&Ø’ ð    ð × Ñ ˜vÒ &¨5¯:©:×+;Ñ+;Ó+=ÔAWÑ+W؈Kà :‰:× Ñ Ó ¤Ñ .Ø×.Ñ.¨yÒ94Ð D¸uÐ Dô(× .Ñ .¨tÓ 4ˆÙ "—(‘(˜1“+ Ò#Ø—l‘l 2§8¡8¨A£;°¸&lÓAÐBÀ2Ç8Á8ÈAÃ;À-ÐPÐ Pä ×  Ñ  ¤Ó ,ñ    Ø×4Ñ4Ø— ‘ Ü×!Ñ! $§,¡,°aÀÔGØó÷    ñ    øôWœ:Ð&ò    *Ü  cÐ )ûð    *ú÷V    ð    úô×  Ñ  ¤Ó ,ñ    Ø×4Ñ4Ø— ‘ Ü×!Ñ! $§,¡,°aÀÔGØó÷    ÷    ò    úô,×1Ñ1Ó3ò     ‰DˆAˆq؏}‰}˜a˜R˜SÐ! QÒ&Ü,×2Ñ2Ó4ò    ‘FB˜Ø—}‘} S bÐ)¨RÒ/Ø Ÿ=™=×.Ñ.Ó0Ø!ŸM™M¨#¨2Ð.Ø!ŸM™M¨1¨"¨#Ð.ð5óð
$)§=¡=°°1°"Ð#5¼ Ø % u§}¡}°a°R°SÐ'9¸6ó9ñ$ôñ    ð     ð    Ü˜u e§m¡m°VÓ<Ð <øÜò    Ù ð    úð    Ü˜u e§m¡m°VÓ<Ð <øÜò    Ù ð    úð
:‰:Ô-Ñ -ܐu—z‘z“?ˆDؘ6˜T˜El^Ô$8¸¿¹Ñ$DÐ#EÐFÐ Fà :‰:× Ñ Ó ¤Ñ 0ܐu—z‘z×'Ñ'Ó)Ó*ˆDؘ6˜T˜El^¤O°E·J±J×4DÑ4DÓ4FÑ$GÐ#HÐIÐ Ià—]‘]×(Ñ(¨Ó-ˆ
Ø H‰HZ  _Ó %× ,Ñ ,Ó .Ô2JÑ JÜØ—‘˜ B C˜Ó)óˆDð—=‘=ؐVte Ü(¨#¯(©(°:¸b¸c°?Ó*C×)JÑ)JÓ)LÑMóð ð
=‰=˜˜Ð  Ò (ؘ˜9˜s‘?Ð "à =‰=˜˜Ð  Ò *ؘ˜9Ð Ø =‰=˜˜Ð  Ò )ؘ˜9˜vÑ%Ð %ð =‰=˜˜Ð  Ò 'Ü/×5Ñ5Ó7ò %‘1Ø—=‘= !  Ð%¨Ò*Ø  ˜9Ò$ð %ô5×:Ñ:Ó<ò %‘1ؘ˜˜9 ’>Ø  ˜9Ò$ð %ð =‰=˜˜Ð  Ò &ؘ˜9˜uÑ$Ð $Ø =‰=˜˜Ð  Ò 'ؘ˜9˜wÑ&Ð &Ø =‰=˜˜Ð  Ò 'Ü)×-Ñ-¬c°$«iÓ8ˆAِU—]‘] aÑ'ؘC˜Ry 7Ñ*Ð*Ø =‰=˜˜Ð  Ò (ؘ˜9˜wÑ&Ð &Ø =‰=˜˜Ð  Ò (ؘ˜9˜wÑ&Ð &Ø =‰=˜˜Ð  Ò 'ؘ˜9˜vÑ%Ð %à =‰=˜FÒ "Øð =‰=˜˜Ð  Ò '؈KØ =‰=˜˜Ð  Ò &ؘ˜9˜tÑ#Ð #ðÔ'¨¨RÐ 0Ø Ô(¨"¨dÐ 3Ø Ô(¨"¨dÐ 3Ø Ô% r¨4Ð 0Ø Ô% r¨4Ð 0Ø Ô% r¨4Ð 0Ø Ô% r¨2Ð .ð/
ò     :Ñ *ˆGQ˜  dð}‰}˜RÑ  GÓ+ØŸG™G›Iò:‘DAqØ—}‘} a R SÐ)¨QÒ.Ø# M \Ð2°TÑ9Ô9ñ:ð     :ð  × Ñ ˜yÓ )؏}‰}˜R˜SÐ! XÒ-ؘC˜Ry 3‘Ð&؏}‰}˜R˜SÐ!Ð%5Ñ5ؘC˜RyР؏}‰}˜R˜SÐ!Ð%@Ñ@ÄSÈÃYÐQRÂ]ؘC˜Ry 3‘Ð&ðÔ+¨R°Ð6ØÔ,¨b°$Ð7ØÔ,¨b°$Ð7ØÔ)¨2¨tÐ4ØÔ)¨2¨tÐ4ØÔ*¨D°"Ð5ØÔ)¨2¨rÐ2ØÔ*¨B°Ð3ØÔ,¨b°#Ð6ØÔ(¨"¨cÐ2ØÔ)¨2¨tÐ4ØÔ'¨¨RÐ0ØÔ&¨¨BÐ/ð3ò >Ñ.˜˜L¨$ð—=‘= Ñ$¨Ó/Ø !§¡£    ò>™˜˜1Ø Ÿ=™=¨!¨¨Ð-°Ò2Ø#'¨ ¨Ð#6¸Ñ#=Ô=ñ>ð! >ð. M‰M˜"˜#Ð  (Ò *ØÔ*Ñ*؏z‰z×ÑÓ!¤^Ñ3à˜˜9Ð ð Ô$Ñ $¨¯
©
×(8Ñ(8Ó(:¼lÑ(Jؘ˜9Ð ð
M‰M˜"˜#Ð  'Ò )ØÔ(Ñ(؏z‰z×ÑÓ!¤\Ñ1à˜˜9Ð ð Ô&Ñ &¨%¯*©*×*:Ñ*:Ó*<ÄÑ*Nؘ˜9Ð à :‰:× Ñ Ó Ô!:Ñ :ؘ˜9Ð ä+×1Ñ1Ó3ò    !‰DˆAˆq؏}‰}˜a˜R˜SÐ! QÒ&ؘC˜RyÒ ð    !ð =‰=˜˜Ð  Ò '¨D°©G°t¸A±w·}±}³Ò,Fؘ˜9Ð à :‰:× Ñ Ó ¤Ñ ,ؘ˜9Ð à :‰:× Ñ Ó ¤Ñ .ؘ˜9Ð à =‰=˜˜Ð  Ò 'ؘ˜9Ð à Ô&Ñ &¨%¯*©*×*:Ñ*:Ó*<ÄÑ*Nؘ˜9Ð à =‰=˜˜Ð Ð!1Ñ 1ؘ˜9Ð à :‰:× Ñ Ó ¤Ñ -ؘ˜9Ð à =‰=˜˜Ð  Ò &ؘ˜9Ð ð Ô$Ñ $¨¯
©
×(8Ñ(8Ó(:¼lÑ(Jؘ˜9Ð à =‰=˜˜Ð  Ò &؏}‰}˜R Ð#Ð'9Ñ9ؘC˜Ry 3‘Ð&؏}‰}˜R Ð# tÒ+°°R¸° ¸sÒ0BؘC˜Ry 3‘Ð&؏}‰}˜R Ð#Ð'9Ñ9ؘC˜Ry 4Ñ'Ð'؏}‰}˜R Ð# tÒ+ؘC˜Ry 3‘Ð&ð =‰=˜˜Ð  Ò %ܐ5—=‘=Ó! AÒ%¨%¯-©-¸Ñ*;¸wÑ*FؘC˜RyРà×"Ñ" 7Ò+Ø—=‘=  Ð%¨Ò-°$°q±'¸TÀ!¹W¿]¹]»_Ò2LØ  ˜9Ð$à =‰=˜˜Ð  Ò &ؘ˜9˜s‘?Ð "ð =‰=˜˜Ð  Ò %؏z‰z×ÑÓ!Ô%:Ñ:ؘC˜RyРä+×1Ñ1Ó3ò %‘1Ø—=‘= !  Ð%¨Ò*Ø  ˜9Ò$ð %ð}‰}˜R˜SÐ!Ð%HÑHؘC˜RyÐ à =‰=˜˜Ð  Ò &ؘ˜9Ð ð ”;Ñ Ø˜˜9˜tÑ#Ð #ð =‰=˜Ñ  Ò #ؘ˜9Ð ðsSšH(Ç!=IÈ(IÈ7H>È>IÉIÉ+=J2Ê2J;ÎNΠ   N)Î(N)Î-OÏ    OÏOcóԗtj|«}|rQ|jd«}|s|S|jd«}|jd«}|j||«}|›|›|›Sy)a
        Return the appropriate indefinite article followed by text.
 
        The indefinite article is either 'a' or 'an'.
 
        If count is not one, then return count followed by text
        instead of 'a' or 'an'.
 
        Whitespace at the start and end is preserved.
 
        r¢rrÏrç)ÚINDEFINITE_ARTICLE_TESTr[r©Ú_indef_article)rr›rorarr°r±r¥s        rrÞzengine.a¥ sn€ô%× +Ñ +¨DÓ 1ˆÙ Ø—8‘8˜A“;ˆDÙØ Ø—(‘(˜1“+ˆCØ—8‘8˜A“;ˆDØ×(Ñ(¨¨uÓ5ˆFؐU˜6˜( 4 &Ð)Ð )ØrrÞr¾cóԇ—|j|«}|dk7r|›d‰›S|j‰|j«}||›d‰›Sˆfd„|jD«}d‰›}t    ||«S)Nrrüc3óT•K—|]\}}|j‰«r    |›d‰›–—Œ!y­wr‡)r[)r4ÚregexenÚarticlers   €rr7z(engine._indef_article.<locals>.<genexpr>ê s4øèø€ò
᠐˜Ø~‰~˜dÔ#ðˆiq˜˜Ô ñ
ùsƒ%(za )rrcr1Ú_indef_article_casesr¼)rrroÚmycountr}ÚmatchesÚfallbacks `     rr    zengine._indef_articleÞ s‡ø€Ø—.‘. Ó'ˆà aŠ<ؐW˜A˜d˜VÐ$Ð $ð— ‘ ˜d D×$9Ñ$9Ó:ˆØ РؐW˜A˜d˜VÐ$Ð $ó
à$(×$=Ñ$=ô
ˆð˜v;ˆÜG˜XÓ&Ð&rcóX—|€|j |j}|€d}tj|«}|r4|jd«}|jd«}|jd«}nd}d}d}t    |«j «t vrd}|›|›d|j||«›|›S)a˜
        If count is 0, no, zero or nil, return 'no' followed by the plural
        of text.
 
        If count is one of:
            1, a, an, one, each, every, this, that
            return count followed by text.
 
        Otherwise return count follow by the plural of text.
 
        In the return value count is always followed by a space.
 
        Whitespace at the start and end is preserved.
 
        rrr¢rÏrçr»rü)r+r¨r[r©r}rrr>)rr›rorar°rr±s       rr»z    engine.noö s±€ð" ˆ=˜T×2Ñ2Ð>Ø×)Ñ)ˆEà ˆ=؈EÜ × "Ñ " 4Ó (ˆÙ Ø—(‘(˜1“+ˆCØ—8‘8˜A“;ˆDØ—8‘8˜A“;‰DàˆC؈D؈Dä ˆu‹:× Ñ Ó ¤Ñ .؈Eؐug˜Q˜tŸ{™{¨4°Ó7Ð8¸¸Ð?Ð?rcóŒ—|j|d«}|}tD]#\}}|j||«\}}|sŒ|›dcS|›dS)zi
        Return the present participle for word.
 
        word is the 3rd person singular verb.
 
        r¢Úing)r“ÚPRESENT_PARTICIPLE_REPLACEMENTSÚsubn)rrÚplvÚansr Úreplrqs       rr—zengine.present_participles_€ð×јt QÓ'ˆØˆä<ò    #‰MˆGTØ—|‘| D¨#Ó.‰HˆCÚؘ˜c{Ò"ð    #ðcˆ{ÐrcóÊ—tjt|««rtt|tt
f«rt |«|k(r t |«}n1dt|«vr    t t|«d«}n t |«}    t|dz}|›|›S|j|«S#t $rt t|«dd«}YŒFwxYw#t$rt|dz}YŒTwxYw)z¤
        Return the ordinal of num.
 
        >>> ordinal = engine().ordinal
        >>> ordinal(1)
        '1st'
        >>> ordinal('one')
        'first'
        ú.r.Nédé
)
ÚDIGITrSr}rÚfloatrmrnÚnthr{Ú_sub_ord)rrqrwr±s    rr•zengine.ordinal/s׀ô ;‰;”s˜3“xÔ  Ü˜#¤¤s˜|Ô,´°S³¸S²Ü˜“H‘àœ#˜c›(‘?ð/ô ¤ C£¨¡ Ó-™ô
˜C›Að #ܘ1˜s™7‘|ðU˜4˜&>Ð !à—=‘= Ó%Ð %øô&ò/ܤ C£¨¨"  Ó.šð/ûô ò #ܘ1˜r™6‘{’ð #ús$ÁB$ C
Â$ CÃCÃ
C"Ã!C"cóJ—|tt«dz
kDrt‚t|Sr)r@Úmillr%)rÚinds  rÚmillfnz engine.millfnPs"€Ø ””T“˜Q‘Ò Ü$Ð $ܐC‰yÐrcó:—t|›|j|«›Sr3)Úunitr%)rÚunitsÚmindexs   rÚunitfnz engine.unitfnUs€Üu‘+˜tŸ{™{¨6Ó2Ð3Ð4Ð4rcó —|dk7r6t|}|r|rd}nd}t|}|j|«}|›|›|›|›St|›t|›S)Nrrrç)rër'r%Úteenr#)rÚtensr(r)Ú    tens_partÚhyphenÚ    unit_partÚ    mill_parts        rÚtenfnz engine.tenfnXsf€Ø 1Š9ܘD™    ˆIٙؑàÜ˜U™ ˆIØŸ ™  FÓ+ˆIؐ[  ¨¨ °I°;Ð?Ð ?ܐu‘+œt F™|˜nÐ-Ð-rcóò—|rK|s|rd|jd›dnd}t|›d|›|j||«›|j|«›dS|s|r&|j||«›|j|«›dSy)NrüÚandwordrçz hundredú, )r6r'r2r%)rÚhundredsr-r(r)r4s      rÚhundfnz engine.hundfnds•€Ù Ù=AÁU˜˜$×+Ñ+¨IÑ6Ð7°qÑ9ÐPRˆGô˜‘>Ð" (¨7¨)Ø—:‘:˜d EÓ*Ð+¨D¯K©K¸Ó,?Ð+@ÀðDð ñ ‘5Ø—j‘j  uÓ-Ð.¨t¯{©{¸6Ó/BÐ.CÀ2ÐFÐ FØrcó¨—t|jd««}|dk(rd|jd›dS|r t|›dSd|jd›dS)Nrrür¿r5rô)rmr©r6r'©rrar(s   rÚ    group1subzengine.group1subpse€ÜB—H‘H˜Q“KÓ ˆØ AŠ:ؐt×(Ñ(¨Ñ/Ð0°Ð3Ð 3٠ܘ5‘k] "Ð%Ð %àt×(Ñ(¨Ñ0Ð1°Ð4Ð 4rcóx—t|jd««}|r t|›dSd|jd›dS)Nrr5rürô)rmr©r'r6r9s   rÚ
group1bsubzengine.group1bsubysC€ÜB—H‘H˜Q“KÓ ˆÙ ܘ5‘k] "Ð%Ð %àt×(Ñ(¨Ñ0Ð1°Ð4Ð 4rcó—t|jd««}t|jd««}|r|j||«›dS|rd|jd›dt|›dSd|jd›d|jd›dS)Nrr¢r5rürô)rmr©r2r6r')rrar-r(s    rÚ    group2subzengine.group2sub€s—€Ü2—8‘8˜A“;ӈܐB—H‘H˜Q“KÓ ˆÙ Ø—j‘j  uÓ-Ð.¨bÐ1Ð 1٠ؐt×(Ñ(¨Ñ0Ð1°´4¸±;°-¸rÐBÐ Bؐ4×$Ñ$ VÑ,Ð-¨Q¨t×/@Ñ/@ÀÑ/HÐ.IÈÐLÐLrcóØ—t|jd««}t|jd««}t|jd««}|dk(rd|jd›}n'|rtt|«}nd|jd›}|r|j ||«}nA|rd|jd›dt|›}n"d|jd›d|jd›}|›d|›dS)Nrr¢rÏrür¿rôr5)rmr©r6r}r'r2)rrar6r-r(ÚhunwordÚtenwords       rÚ    group3subzengine.group3sub‰sõ€Ür—x‘x “{Ó#ˆÜ2—8‘8˜A“;ӈܐB—H‘H˜Q“KÓ ˆØ qŠ=ؘ$×+Ñ+¨EÑ2Ð3Ð4‰GÙ Üœ$˜x™.Ó)‰Gà˜$×+Ñ+¨FÑ3Ð4Ð5ˆGÙ Ø—j‘j  uÓ-‰G٠ؘ$×+Ñ+¨FÑ3Ð4°A´d¸5±k°]ÐC‰Gà˜$×+Ñ+¨FÑ3Ð4°A°d×6GÑ6GÈÑ6OÐ5PÐQˆGؐ˜!˜G˜9 BÐ'Ð'rc    óü—|jt|jd««t|jd««t|jd««|j«}|xjdz c_|S)Nrr¢rÏ)r7rmr©r,)rraÚrets   rÚhundsubzengine.hundsub›sY€Øk‰kÜ —‘˜“ Ó œc "§(¡(¨1£+Ó.´°B·H±H¸Q³KÓ0@À$Ç/Á/ó
ˆð     Š˜1э؈
rcó¢—|jt|jd««t|jd««|j«›dS)Nrr¢r5)r2rmr©r,©rras  rÚtensubz engine.tensub¢s<€Ø—*‘*œS §¡¨!£Ó-¬s°2·8±8¸A³;Ó/?ÀÇÁÓQÐRÐRTÐUÐUrcóp—|jt|jd««|j«›dS)Nrr5)r*rmr©r,rGs  rÚunitsubzengine.unitsub¥s,€Ø—+‘+œc "§(¡(¨1£+Ó.°·±Ó@ÐAÀÐDÐDrcó¢—|dk(r"tj|j|«}|S|dk(rCtj|j|«}tj|j
|d«}|S|dk(rdt j|j|«}tj|j|d«}tj|j|d«}|St|«dk(r|jd}|St|«dk(r|jd}|S|j«jd«}d|_ tj|«}|r9tj|j|d«}tj|«}|rŒ9tj|j |d«}t"j|j$|d«}|S)Nrr¢rÏrrôr¿rº)Ú DIGIT_GROUPr^r:Ú
TWO_DIGITSr>r<Ú THREE_DIGITSrBrmr6Úlstripr,ÚTHREE_DIGITS_WORDr[rEÚTWO_DIGITS_WORDrHÚONE_DIGIT_WORDrJ)rrqr©ras    rÚenwordz engine.enword¨s€ð AŠ:Ü—/‘/ $§.¡.°#Ó6ˆCð,ˆ
ð+aŠZÜ—.‘. §¡°Ó5ˆCÜ—/‘/ $§/¡/°3¸Ó:ˆCð&ˆ
ð%aŠZÜ×"Ñ" 4§>¡>°3Ó7ˆCÜ—.‘. §¡°°aÓ8ˆCÜ—/‘/ $§.¡.°#°qÓ9ˆCðˆ
ô‹X˜Š]Ø×#Ñ# FÑ+ˆCðˆ
ô‹X˜Š]Ø×#Ñ# EÑ*ˆCðˆ
ð—*‘*“,×%Ñ% cÓ*ˆC؈DŒOä"×)Ñ)¨#Ó.ˆBÙÜ'×+Ñ+¨D¯L©L¸#¸qÓAÜ&×-Ñ-¨cÓ2òô"×%Ñ% d§k¡k°3¸Ó:ˆCÜ ×$Ñ$ T§\¡\°3¸Ó:ˆC؈
rcóF—tjd„|«}|d||k(zzS)Ncó2—t|jd«Sr)r•r©)rSs rr™z!engine._sub_ord.<locals>.<lambda>Çs€¬W°U·[±[À³^Ñ-D€rrË)Ú ordinal_suffr^)rÚnews  rr!zengine._sub_ordÅs)€ä×ÑÑDÀcÓJˆØT˜S C™ZÑ(Ñ(Ð(rcóf—|r|dk7rdnd}|jd|«}n|g}|j|«S)Nrr.rr)rÚ_remove_last_blank)r~rqÚdecimalr©Ú    max_splitÚchunkss      rÚ
_chunk_numzengine._chunk_numÊs:€á Ø# qšj™¨aˆIØ—Y‘Y˜s IÓ.‰FàUˆFØ×%Ñ% fÓ-Ð-rcó,—|ddk(}|r|ddn|}||fS)z–
        Remove the last item from chunks if it's a blank string.
 
        Return the resultant chunks and whether the last item was removed.
        r.rçNr)r\Úremovedr¥s   rrYzengine._remove_last_blankÓs+€ð˜‘* Ñ"ˆÙ '˜˜‘¨VˆØwˆÐrcóN—dddœj|j«dd«S)NÚplusÚminus)ú+rrrç)rXrO)rqs rÚ    _get_signzengine._get_signÞs$€à 'Ñ*×.Ñ.¨s¯z©z«|¸A©ÀÓCÐCrc
óÖ‡‡‡‡—‰||dœ‰_t|«}|    Xt|«|    kDrJ|jdd«}
|r(tj d|
d«\|
d<} | dk(rn|rŒ(    |
d›d|
d›S‰dks‰dkDrt‚‰j|«} |tvr|}|ddtv} | r|dd}‰j||‰«\}}|dd    k(}| Šˆˆˆˆfd
„}t|||d«||dg}‰dk7r|dj|›d «}| r|r‰j|d «|d <|ddD]6}|j|«|j|j|›d ««Œ8|r|j|«|r| gt| «z|zS| r| ›d nd    }‰rd j!|«n!d    j!‰j#|||««}||zS#t $rt|
d«cYSwxYw)aø
        Return a number in words.
 
        group = 1, 2 or 3 to group numbers before turning into words
        comma: define comma
 
        andword:
            word for 'and'. Can be set to ''.
            e.g. "one hundred and one" vs "one hundred one"
 
        zero: word for '0'
        one: word for '1'
        decimal: word for decimal point
        threshold: numbers above threshold not turned into words
 
        parameters not remembered from last call. Departure from Perl version.
        )r4rôr¿Nrrz\1,\2rrÏr rçcóv•—tjd|«}|dk(rd}‰dk(r‰s‰j|d«}n‰j|‰«}|dddk(r|dd}tjd|«}‰dk(r‰rtjd‰›d    |«}t
jd|«}|j «}‰rdŠ|S)
Nrçrºrrr r5ú,rüz \1)Ú    NON_DIGITr^rSÚWHITESPACES_COMMAÚ
COMMA_WORDÚ WHITESPACESÚstrip)Úchunkr4rÙr©rs €€€€rÚ _handle_chunkz-engine.number_to_words.<locals>._handle_chunk s¿ø€ô—M‘M " eÓ,ˆEؘŠ{Øà˜Šz¡%ØŸ ™  E¨1Ó-‘àŸ ™  E¨5Ó1àRSˆz˜TÒ!ؘc˜r˜
Ü%×)Ñ)¨#¨uÓ5ˆEà˜Šz™eÜ"Ÿ™¨¨7¨)°4Ð'8¸%Ó@Ü—O‘O C¨Ó/ˆEà—K‘K“MˆEÙØØˆLrrür.r5)r6r}rrÚFOUR_DIGIT_COMMArrr#rdÚnth_suffr]rñr!Úappendr;r!r8Ú_render)rrqÚwantlistr©Úcommar4rôr¿rZÚ    thresholdÚspnumrwÚsignÚmyordr\Ú
finalpointÚ    loopstartrnÚ    numchunksrmÚsignoutÚvaloutrÙs`  ` `                @rr–zengine.number_to_wordsâs?û€ð<)0¸ÀcÑJˆÔܐ#‹hˆð Ð  ¤U¨3£Z°)Ò%;Ø—I‘I˜c 1Ó%ˆEÙÜ 0× 5Ñ 5°hÀÀaÁÓ I‘ q‘˜1ؘ’6Øòð %Ø ™(˜ 1 U¨1¡X JÐ/Ð/ð 1Š9˜ š    Ü(Ð (à~‰~˜cÓ"ˆà ”(‰?؈CàBCœHÐ$ˆÙ ؐcr(ˆCà!Ÿ_™_¨S°'¸5ÓAш
à˜1‘I ‘Oˆ    Ø!*˜]ˆ÷    ô4! °°y°zÐ0BÓCˆˆyˆzÐàˆ    Ø AŠ:ؘq™    Ÿ™¨5¨'°¨ Ó4ˆIá ‘YØ ŸM™M¨)°B©-Ó8ˆIb‰Mà˜A˜BZò    7ˆEØ × Ñ ˜WÔ %Ø × Ñ ˜UŸ[™[¨E¨7°!¨Ó5Õ 6ð    7ñ Ø × Ñ ˜WÔ %á Ø6œD ›JÑ&¨Ñ2Ð 2á $TF˜!‘*¨"ˆñð I‰IiÔ  à—‘˜Ÿ™ i°¸%Ó@ÓAð    ð
˜ÑÐøôOò %ܘ5 ™8“}Ò$ð %úsÁ( GÇG(Ç'G(c#óžK—|jd«}|–—|duxs|j|« }|D]}||k(rd}n|r|–—d|›–—Œy­w)NrFrü)Úpoprú)r\rZrtÚ
first_itemrÙÚncs      rrrzengine._renderUscèø€à—Z‘Z “]ˆ
ØÒؘ4ÒC z×':Ñ':¸7Ó'CÐ#CˆØò    ˆBؐWŠ}Ø‘ÙØ’ ؐbT(‹Nñ     ùs‚A A có—|syt|«dk(r|dS|r|dk(rd}nd|›d}t|«dk(r|d›|›|d›S|€ddj|«vrd}nd}|€|}|›|›}|r|dz }|j|dd«›|›|d›S)    a‚
        Join words into a list.
 
        e.g. join(['ant', 'bee', 'fly']) returns 'ant, bee, and fly'
 
        options:
        conj: replacement for 'and'
        sep: separator. default ',', unless ',' is in the list then ';'
        final_sep: final separator. default ',', unless ',' is in the list then ';'
        conj_spaced: boolean. Should conj have spaces around it
 
        rçrrrür¢rgú;r.)r@r8)rr9rÚ
sep_spacedÚ    final_sepÚconjÚ conj_spaceds       rr8z engine.joinasˀñ,ØÜ ˆu‹:˜Š?ؘ‘8ˆOá ØrŠzØ‘à˜4˜& {ä ˆu‹:˜Š?ؘA‘hZ ˜v e¨A¡h ZÐ0Ð 0à ˆ;ؐb—g‘g˜e“nÑ$Ø‘àØ Р؈Iࠐk $ Ð(ˆ    á Ø 3‰JˆCà—(‘(˜5  2˜;Ó'Ð(¨¨ °E¸"±I°;Ð?Ð?rr)r=úOptional[Word]r>rˆrrm)rArˆrBrˆrCrˆrDrˆrErˆrFrˆrrm)rMrˆrrm)rMrˆrr)rr#r`zSequence[Optional[Word]]rú Optional[str])NN)roú Optional[int]rprŠrr})r€r}rr)rar rˆzDict[str, Callable]rr})r›r#rr})rr}rr})r›r}rzTuple[str, str, str]r3)r›r#rozOptional[Union[str, int, Any]]rr})rºr#r»r#rúUnion[str, bool])r›r#roúOptional[Union[int, str, Any]]r€r‰rzUnion[str, Literal[False]])rºr}r»r}rr‹)
rÒr}rÓr}rÔr}rÕr}rr!)rºr}r»r}rr!)roúOptional[Union[str, int]]rzUnion[str, int])rr}rorrr})rr rormrzUnion[str, None])rr}rorrr‹)rr}rorr€r‰rr‹)r)r›r#rorŒrr})rr}rozUnion[int, str, Any]rr})r›r#rozOptional[Union[int, str]]rr})rr#rr})rqúUnion[Number, Word]rr})r)r$rmrr})r(rmr)rmrr}©rr})
r6rmr-rmr(rmr)rmrr})rar rr})rqr}r©rmrr})FrrgÚandrôr¿ÚpointN)rqrŽrsr!r©rmrtúUnion[Falsish, str]r4r}rôr}r¿r}rZr’rurŠrzUnion[str, List[str]])NTNrT)r9zOptional[Sequence[Word]]rr‰r„r!r…r‰r†r}r‡r!rr})]rrrrÚpropertyr6Úsetterrr?rGrIrNrPr9r:rcrkrqr€rzrržr¦rªr>r’r“r‘rÀrÃrÆrÈr”r¸rÖrÎrÏrr®Ú classmethodrMrDÚ staticmethodr|r­r´r¬rËrÞr¾Ú A_ordinal_aÚ A_ordinal_anÚ A_explicit_anÚ
SPECIAL_ANÚ    SPECIAL_AÚA_abbrevÚSPECIAL_ABBREV_ANÚSPECIAL_ABBREV_AÚ
CONSONANTSÚARTICLE_SPECIAL_EUÚARTICLE_SPECIAL_ONCEÚARTICLE_SPECIAL_ONETIMEÚARTICLE_SPECIAL_UNITÚARTICLE_SPECIAL_UBAÚARTICLE_SPECIAL_UKRÚ A_explicit_aÚSPECIAL_CAPITALSÚVOWELSÚA_y_consrr    r»r—r•r%r*r2r7r:r<r>rBrErHrJrSr!r]rYrdr–rrr8rrrr'r'ýsn„ó
<ðñ8óð8ð×Ññ!óð!ðò    óð    ððà ðð ðð ð    ð
ð ð ð ð ðð
òóðð0òóððòóððòóðó    ?óð ò
óð
ó 0ðFBFðØ"ðØ1>ðà     óó,!ò";ð,?Øð?Ø':ð?à     ó?ð@ò#óð#óN ó<ðó&óð&ð.àBFð&Øð&Ø!?ð&à     ò&óð&ð(àBFð&Øð&Ø!?ð&à     ò&óð&ð.àBFð&Øð&Ø!?ð&à     ò&óð&ð(ò2óð2ð8ò =óð =ðò =óð =ðò <óð <ðð15Ø $ð    'àð'ð.ð'ðð    'ð
 
$ò 'óð'óRó4.ó
óB 
ôð,=Að_Øð_Ø 9ð_à     ó_ðB    ñ+óð+ó2%ð0ñ9óð9ð=AðPØðPØ 9ðPà    óPðf=AðØðØ 9ðà     óð2=Að"Øð"Ø 9ð"à    ó"ðP,0Ø $ð    CàðCð)ðCðð    Cð
 
ó CðN
óóðð.
€Bð
cÐØ    tÐà    ˜ÐØ    TÐØ    CÐà    4ÐØ    ˜DÐ!Ø    ˜3Ðà    SÐà    ˜SÐ!Ø    ˜sÐ#Ø      #Ð&Ø    ˜sÐ#Ø    ˜cÐ"Ø    ˜cÐ"Ø    sÐà    ˜3Ðà    ˆð
4Ðð9Ðó>'ð0ó!@óð!@ðJòóðð$ò&óð&ô@ô
5ô
.ó
ó5ó5óMó(ó$óVóEóð:ñ)óð)ðñ.óð.ðñóððñDóðDððØØ%(ØØØØ'.Ø#'ðp à  ðp ððp ðð    p ð
#ð p ð ð p ððp ððp ð%ðp ð!ðp ð
òp óðp ðdñ    óð    ðð"ØØ#'ØØ ð0@à'ð0@ðð0@ðð    0@ð
!ð 0@ð ð 0@ðð0@ð
ò0@óñ0@rr')r,r}rr})rN)r6rŠr9zOptional[Iterable[str]]rr})r9r;rzDict[int, set])T)rEr;rFr}rGrŠrHr!r(=r$Ú
__future__rrur=rKrNrˆrRÚnumbersrÚtypingrrrrr    r
r r r rrrrÚmore_itertoolsrÚ    typeguardrÚ compat.py38rÚ    Exceptionrr!r#r%r'r)r+r/r:rCrMròrôÚupdaterõrTrgrØÚlistrirÚk1Úk2r×rÙÚpl_sb_z_zes_listroÚpl_sb_ze_zes_listrpÚpl_sb_C_is_ides_completeÚpl_sb_C_is_ides_endingsræÚpl_sb_C_is_ides_listÚsi_sb_C_is_ides_listrìrhÚpl_sb_C_a_ata_listÚsi_sb_C_a_ata_listrërgråÚpl_sb_U_a_ae_listÚsi_sb_U_a_ae_listrär_Ú pl_sb_U_a_aeÚpl_sb_C_a_ae_listÚsi_sb_C_a_ae_listrêrfrçÚpl_sb_C_en_ina_listÚsi_sb_C_en_ina_listrår`rèÚpl_sb_U_um_a_listÚsi_sb_U_um_a_listrár\Ú pl_sb_U_um_aÚpl_sb_C_um_a_listÚsi_sb_C_um_a_listrèrcréÚpl_sb_U_us_i_listÚsi_sb_U_us_i_listrâr]Ú pl_sb_U_us_iÚpl_sb_C_us_i_listÚsi_sb_C_us_i_listrérdrêrÕreÚpl_sb_U_on_a_listÚsi_sb_U_on_a_listrãr^Ú pl_sb_U_on_aÚpl_sb_C_on_a_listÚsi_sb_C_on_a_listrîrjrëÚ pl_sb_C_o_irirírìrqrÚpl_sb_U_o_os_endingsrrrÚpl_sb_U_ch_chs_listÚsi_sb_U_ch_chs_listrÞrYÚpl_sb_U_ch_chsÚpl_sb_U_ex_ices_listÚsi_sb_U_ex_ices_listrßrZÚpl_sb_U_ex_icesÚpl_sb_U_ix_ices_listÚsi_sb_U_ix_ices_listràr[Úpl_sb_U_ix_icesÚpl_sb_C_ex_ices_listÚsi_sb_C_ex_ices_listræraríÚpl_sb_C_ix_ices_listÚsi_sb_C_ix_ices_listrçrbrîÚpl_sb_C_i_listÚsi_sb_C_i_listrðrkrïÚpl_sb_C_im_listÚsi_sb_C_im_listrïrlrðÚpl_sb_U_man_mans_listÚpl_sb_U_man_mans_caps_listÚsi_sb_U_man_mans_listrÛrUÚsi_sb_U_man_mans_caps_listrÜrVÚpl_sb_U_louse_lice_listÚsi_sb_U_louse_lice_listrÝrWÚpl_sb_uninflected_s_completeÚpl_sb_uninflected_s_endingsÚpl_sb_uninflected_srGrCrEÚpl_sb_uninflected_endingsrFrmÚpl_sb_singular_s_endingsrnrùÚsi_sb_singular_s_endingsrúÚpl_sb_singular_s_esr8Úpl_sb_singular_srÔrñròrórôrõrörûrürýrþrÿr÷rørrÚplverb_special_sÚ_pl_sb_postfix_adj_defnrrÚpl_sb_postfix_adj_stemsrÚ pl_prep_listr}rQÚpl_prepÚpl_sb_prep_dual_compoundrsrSrqrRÚpl_pron_acc_keysrPÚ_thecaseÚ_plurÚ_gendÚ_singr|Úsi_pron_acc_keysrÖr‚ržr¨Úcompiler\r§rŸr©r¢r£r¤rrÿr¬r«r®r­ÚVERBOSErœr©r¦r™r˜r—r r?rórpÚdictr•rVr'r,rër#r)rerfÚstring_to_constantr]ršr¨rHrIrJr r¡r¥r¯rršr›rržrŸr r¡r¢r£r¤r¥r§r¨rLrMrNrPrQrRrorhrirjrkrrr}r ÚFalsishÚ_STATIC_TYPE_CHECKINGr#Útyperr')rirjr5s000rú<module>rsdðò4õl#ã
ÛÛÛÛÛ    Ý÷÷÷õõ -Ý!å"ô         ô    ô    yô    ô    ˜Yô    ô    ˜ô    ô     ô    ô    Yô    ô    Yô    ôö@ô*ð*ñ    !-Ø    ð!-àð!-ð ð!-ðô    !-ðN!Ø Ø ØØ ØØ Ø ñ    Ðð"Ø ˆZð"à Ð ð"ðÐ"ð"ðÐ%ð    "ð
 ˆHð "ð  ˆLð "ð ˆNð"ð ˆNð"ð Ð ð"ð ˆXð"ð ð"ð    ˆ&ð"ð
ˆ;ð"ð
ð"ðÐ$ð"ð  ˆ^ð!"ð"Ð#ñ#"ð$ ˆið%"ð& ˆNð'"ð( ˆXð)"ð* ˆWð+"ð,Ð"ð-"ð.-ð/"ð0-ð1"ð2ˆzð3"ð4 ð5"ð6-ð7"ð8 ˆjð9"ð: ˆYð;"ð< ˆHð="ð>ˆzð?"ð@
ˆ6ðA"ðB ˆiñC"€ðH×ÑÐ(Ô)ðØ Ø Ø ñ    Ðð*Ð+EÐFÐà&5×&;Ñ&;Ó&=×>™F˜Q 1a‘4Ó>€Ù     ˆoÓ    ò€AØ
ˆa‚xØ—‘˜“‰ˆˆBØ4CÀAÑ4FÐFˆ˜Ñ˜o¨bÑ1Ø ˜AÑ ð    ð
,@×+EÑ+EÓ+G×H¡ ! Q˜˜1™ÓHÐØ/G×/MÑ/MÓ/O×P¡V a¨˜A˜q™DÓPÐÙ     Ð&Ó    'ò(€AØ
ˆa‚xØ—‘˜“‰ˆˆBà $ QÑ 'ð    
Р Ñ$Ð'?ÀÑ'Cð % QÑ 'ð (ð'ÐÙÐ,Ó-ÐàÐÙÐ.Ó/Ðò
Ðð ðÐñ
ØÐ Ð6MÖ#N° b¨¨¢HÒ#NÑNó€ð0Ð2IÑIÐñ Ð)¨6°1ÀÔGñ    ØØØð Ðñ@Ð'¨°Ó2ñ ØØØØð
ÐñÐ&¨¨TÓ2ñ ØØØØð
Ðñ,Ð&¨¨TÓ2ñ ØØØØð 5ÐñÐ(¨%°Ó3ñ ØØØØð
Ðñ Ð&¨¨QÓ/ñ ØØØØð
ÐñLÐ&¨¨QÓ/ñ ØØØØð
Ðñ Ð&¨¨QÓ/ñ ØØØØð
Ðñ,Ð&¨¨QÓ/ñ ØØØØð € ñ˜mÓ,Ðð
Ðñ Ð&¨¨QÓ/ñ ØØØØð
"ÐñÐ&¨¨QÓ/ñ ØØØØò     € ñ˜KÓ(ÐÙ°;Ö?¨a  # 2 ˜x qš\Ò?Ó@Ðá˜R Ó-ÐòDÐØ*?Ö@ Q˜A˜3˜ašÒ@ÐòDðHñIDÐñLÐ1Ó2ÐÙÐ/CÖD¨!   1šgÒDÓEÐð
5ÐñÐ(¨#¨tÓ4ñ ØØØØð 3Ðñ Ð)¨6°1Ó5ñ ØØØØð*Ðñ Ð)¨6°1Ó5ñ ØØØØð
    Ðñ Ð)¨6°1Ó5ñ ØØØØð%ÐñÐ)¨6°1Ó5ñ ØØØØð /€áBRؐC˜óCÑ?€Ð!Ð#3°Yð.€áFVؐT˜4óGÑC€Ð#Ð%6¸
ð÷
EƒGð    ð
÷
 
EƒGð ñÐ*¨C°À%ÔHñ    ØØØñ Ð/°°dÀuÔMñ    ØØ Ø ðLÐñ Ð,¨f°aÀEÔJñ    ØØØò) ÐðZ
à ð    Ðð3Ø1ö6Ø€bˆˆ‚Hò6ñÐðÐòBð,!ñ-!Ðò2Ðò:ð& ñ' Ðñ."Ð";Ó<Ðò
!ðBñC!ÐðH! $˜<Ð*AÑAÐá Ð!9Ó:Ðà/HÖI¨! ˜s "šXÒIÐØ.FÖG¨˜q˜c šHÒGÐÙ Ð!9Ó:Ðà"mÐáØ‡H‚HØ!Ø5Ö
6˜ˆRˆsŠ8Ò
6ñ    7à
ñ    óóÐð+ÐàRÐð€ð@]Ðð~H€ ðVÐð$€ ð&&€ à9€ ðÐð€ð.:€ àCÐð€ðÐð
€ ñ Ø‡H‚HØ    ÐØ
ñ    á
РÓ
!ñ    "ò 2ñ    2óóÐð‘ÐLÓMÐNØ‘˜Ó Ð!Ø ‰ggÓÐðÐñ $Ø:Qô$А=óð˜cŸhšhÐ'8Ó9Ð:¸%Ð@Ðð
C€ ðJ0÷16±³ð     ð Ò!3Ñ3€á˜Ó(€á
#—(’(˜?Ó+Ó
,€à0°°    Ð9RÐSÐòÐðàˆðð ˆkðð
ˆ5ð    ð
 ð ð 
ˆ6ð ðˆ|ðð    ˆ&ððˆ|ðð    ˆ&ðð ˆlðð ˆFðð ðð ˆFðð  ˆWð!ð" ˆHð#ð$
ˆ8ð%ð&
ˆ8ð'ð( ˆhñ)€ ð0
˜{×0Ñ0Ó2× 3‘Va˜ˆAˆq‰DÓ 3ð=€Р   9óð€ˆˆtÑð
ØØ ØØ ØØ ØØ
ØØ Øñ€ ñ ˜3Ÿ8š8 KÓ0Ó1ÐÙ  Ó-Ðà%0×%6Ñ%6Ó%8×9™6˜A˜q!Q‘$Ó9€ˆð&ò$0Ñ!€HˆeU˜Eð@0Ø*/ˆÑ˜%Ñ  Ò'ðC$0ñN˜3Ÿ8š8 G¨E¡NÓ3Ó4ÐÙ  ¨¡Ó0Ðôð Ø Ø
Ø Ø Ø Ø Ø
Ø ñ
Ðð!Ø    ˆ5ð!à
ˆEð!ð ˆWð!ð ˆgð    !ð
 
ˆ5ð !ð  ˆFð !ð
ˆ5ð!ð ˆUð!ð ˆFð!ð ˆfð!ð ˆWð!ð ˆgð!ð ˆWð!ð ˆgð!ð ˆFð!ð  ˆVð!!ð" ˆFð#!ð$Ù Ù Ù Ù Ù ÙÙ Ù Ù Ù Ù ÙÙ Ù óA!ÐðF(˜RŸZšZÙ    ‰'#—(’(Ð0Ó1Ó
2Р   3±;Ð?ÀÇÂóÐñ
Ðð"'˜BŸJšJÙ7¸¿ºóÐñ E€ Ù,ÐÙ&Ðñ+€ ñH€ á¡V±WÁgÒN€à b—j’jÙ    ‰'#—(’(˜>Ó*Ó
+Р   ,©BÐ/°·²óÐñ
Ù Ù Ù Ù Ù ò € ð2—:’:¡¡G¨C¯HªH°[Ó,AÓ$BÐ#CÁ2ÐFÈÏ Ê ÓVÐð ˆ2:Š:ñð
‡J‚Jó  €ð ˆ2:Š:ÑBÀBÇMÂMÓ R€ðˆrzŠzÑ:¸B¿MºMÓJ€ à—
’
Ù7¸¿ºó€ ðˆrzŠzÑ2°B·M²MÓB€ àˆbjŠjÑ3°R·]²]ÓC ñ  Ù Ù Ù Ù Ù Ù Ù Ù Ù Ù Ù Ù òò ‰szŠz‹|Ó â
ÙÙÙÙ
Ù    Ù
Ù    Ù õ     ðˆrzŠz˜Q˜sŸxšx©Ó0Ð1±Ð5Ó6 ó
Tó ó ó ò$Ø E ¨T¸5È%õ ñ#0Ö0˜QD‘Ò0 Ù"/Ö0˜Q5‘Ò0 ð#¨U¸DÒAÑð—
’
™:Ó& ؐ—
’
Ñ/°·²Ó? ؐ—’Ñ2Ó3Ø'˜RŸZšZÙ Ð #Ð $¡BÐ'¨¯ªóÑð)˜bŸjšjÙ Ð $Ð %¡RÐ(¨"¯-ª-óÑðˆbjŠjÑ<Ó= Ø b—j’j¡BÐ'7Ð&8¹Ð!;Ó<ÑØ ˆRZŠZ™Ó 
؈bjŠj™¨¯ªÓ7 Ø#˜Ÿš¡LÓ1ÑØ$˜"Ÿ*š*Ñ%FÈÏ Ê ÓVÑØ ˆRZŠZÑ+¨R¯]ª]Ó ;
Ø ˆBJŠJÑ,¨b¯mªmÓ <    ØB—J’JÑ5°r·}²}ÓEÑØ2—:’:™m¨R¯]ª]Ó;ÑØ ˆRZŠZ™  r§}¢}Ó 5
ؐR—Z’Z¡    ¨2¯=ª=Ó9ÑØ!r—z’z¡+¨r¯}ª}Ó=ÑØ$˜"Ÿ*š*¡]°B·M²MÓBÑØ!r—z’zÑ"4°b·m²mÓDÑØ b—j’jÑ!:¸B¿MºMÓJÑØ b—j’j¡¨"¯-ª-Ó8ÑØ2—:’:Ñ.Ó/ÑØ    ˆŠ‘K §¢Ó    /àˆbjŠj™Ó! Ø ˆRZŠZ™ Ó $
؈rzŠz™/Ó* ؐB—J’JÑ7Ó8ÑØ"—*’*Ñ1Ó2Ø—’Ñ,Ó-à2—:’:Ñ4Ó5ÑØ ˆBJŠJ‘uÓ     ØB—J’J™wÓ'ÑØ ˆRZŠZ™Ó (
؈bjŠj™Ó  ð€R‡Z‚Z‘Ó™Ðàˆ
Š
‘6ÓÙ ðð€R‡Z‚Z‘ Ó™xÐ(Ø€R‡Z‚Z‘Ó™&Ð!Ø€R‡Z‚Z‘    Ó™CР؀R‡Z‚Z‘Ó ¡%Ð(Ø€R‡Z‚Z‘
Ó™VÐ$Ø€R‡Z‚Z‘
Ó™XÐ&Ø€R‡Z‚Z‘ Ó™hÐ'Ø€R‡Z‚Z‘Ó™ÐØ€R‡Z‚ZÑ3Ó4±mÐDð#Ñð"    ˆ
Š
‘5Ӂö
$‰Cõ
$ð ð&ÑòØ ‘SÑ<Ð<Ñ =‚DöD‘DõDö/™÷/÷U@õU@ùóA8?ùó IùÛPùòJ$Oùò`@ùòAùòTEùòL6ùò~JùÚGùò 7ùó^ 4ùó0:øðH ò0Ø#%ˆÑ˜%Ñ Ø*/ˆÑ˜%Ñ  Ô'ð0üòd1ùÚ0slÅ& {4Ç {:Ç$ |É | Ì>| Í% |Π    |Ñ2 |Ò9 |Ó |$Ó9 |)Ø0 |.Ú |4Ú0 |:æ6
}ç    
}ü:}ý}