Update on LHC 800MHz Crab Cavity Conceptual Design
description
Transcript of Update on LHC 800MHz Crab Cavity Conceptual Design
-
Liling Xiao, Zenghai LiAdvanced Computations Department, SLACPresented at LARP-CM12, April 9, 2009
L. Xiao, Z. Li, CM12
- Baseline Design (CM11) Cell Shape Optimization : (R/Q)_T, Bpeak
-
Baseline Design (CM11)Cell Shape OptimizationCell_l = 187.5 mm, R_disk = 70mmVT > 2.5MV, Maximum kick gradient limited by BpeakOptimize disk parameters for optimal Epeak and BpeakSquash or racetrackSquash ratio:0.8
L. Xiao, Z. Li, CM12
-
TM110-pi modeE-fieldB-fieldTESLA TDR cavity peak fields for comparison (Eacc: 25-30MV/m):
Ep=50-60MV/m, Bp=107-128mTCrab Cavity RF Parameters
Frequency800MHz(R/Q)_T117ohm/cavityDeflecting Voltage VT2.5MVDeflecting Gradient Ekick6.67MV/mEpeak25MV/mBpeak83mTMode separation (Opt.-SOM)89MHz
L. Xiao, Z. Li, CM12
-
Strongly damps unwanted modes in a compact structure because no cutoff for TEM mode in the coax
Node at the electric field rejects operating mode in the vertical planeLOM/SOM Coax-to-Coax Designd
L. Xiao, Z. Li, CM12
-
There are two additional LOM modes due to the coupling of the cavity modes to the coaxial beampipe TEM modes. Coupler can be optimized to achieve Qext less than 100 for LOM/SOM with a smaller gap.Gap=10mmQext vs. Coax Position
L. Xiao, Z. Li, CM12
Chart3
160.129155.613905.8431083.6796.5766
169159511636123.611739
224192261323180.681
294236188223224.787
434331149166280.9069939
1039.231802.561444114.731118.589431.937822
LOM-1
LOM-2
LOM-3
LOM-4
SOM
coaxial tube position d (mm)
Qext
l=300mm
one-celld2=65mm, d1=60mmtwo-cell w couplerd2=65mm, d1=60mmdz=150mmdepth=5mm
L=400mmpi-modebp-modeHOM-modeL=300mmpi-modeLOM1LOM2SOM
L=300mmpi-modebp-modeHOM-modedffQextfQextfQext
df0598.9647618603.30715549894.7344326
290799.9814954.295025600.02965823603.88678843893.8874883
250799.9830954.325050600.188357217604.03393210893.7666390
200799.9827951.1540?75
175799.9722877.2053955.1785100
150799.8685825.8720955.4832125
135798.8067804.5053955.8370150
125800.7576790.0846956.1510
115800.5145779.4513956.5429
100800.5081765.5646957.2996
75800.7431747.0513959.1609
50801.2509732.5261961.8771silo
25802.1704720.3054964.1903Qext re.LOM
-
Damp the dipole modes at the horizontal plane and reject the operating TM110 mode at 800MHz.
A two-stub antenna instead of the coupling loop is proposed.LOMOpt.HOM Coupler Design
L. Xiao, Z. Li, CM12
-
There is significant coupling of input power to the LOM/SOM couplers in this baseline designDrawback in Baseline Design
L. Xiao, Z. Li, CM12
-
Alternative Design Input coupler is between of the two cells to avoid the cross coupling Coax TM110-pi coupler rejects operating mode using field symmetry. LOM/SOM couplers reject operating mode using electric field node. HOM coupler rejects operating mode using filter.
L. Xiao, Z. Li, CM12
-
LOM/SOM couplers reject operating mode using electric field node. Field symmetry is very important.The center conductors of LOM/SOM couplers will be slightly bent so that the rotating flange can adjust the tips of the center conductors to lie exactly along the E-field node of the operating mode field.Rejection of Operating Modeshift
L. Xiao, Z. Li, CM12
Chart1
130000000
180000000
260000000
6700000000
9200000000
4000000000
280000000
60000000
larger LOM/SOM dimensions
LOM/SOM center conductor shift (mm)
Qext at LOM/SOM coupler
Operating mode's coupling at LOM/SOM coupler
filter
hook-filter
gap=0.55mmA(0,1)S12(dB)
Frequency7800000000.0001116514-79.0427195557
Frequency7825000009.51E-05-80.4404464401
Frequency7850000007.60E-05-82.3782945864
Frequency7875000005.40E-05-85.3600431971
Frequency7900000002.74E-05-91.2385147962
Frequency7925000006.64E-06-103.5553110145
Frequency7950000005.74E-05-84.8216903945
Frequency7975000000.0001699371-75.3942337646
Frequency8000000000.0125009088-38.0611682364
Frequency8025000000.0001530315-76.3043848623
Frequency8050000003.12E-05-90.1221164799
Frequency8075000002.90E-05-90.7481731315
Frequency8100000007.56E-05-82.4327042256
Frequency8125000000.0001181157-78.5538481921
Frequency8150000000.0001599546-75.9200640734
Frequency:7600000000.0001195621-78.4481264618
Frequency:7650000000.0001228528-78.2122969147
Frequency:7700000000.0001224008-78.2443121796
Frequency:7750000000.0001197623-78.4335957788
Frequency:7800000000.0001159939-78.7113005658
Frequency:7850000000.0001123816-78.9860962675
Frequency:7900000000.0001118886-79.0242813691
Frequency:7950000000.0001281756-77.8438927268
Frequency:7950000000.0001281756-77.8438927268
Frequency:8000000000.0027248777-51.293059597
Frequency:8050000001.12E-05-98.9899461084
Frequency:8100000002.96E-06-110.5629269469
Frequency:8150000003.80E-06-108.4134315812
Frequency:8200000001.68E-05-95.5030688255
Frequency:8250000003.32E-05-89.5838585753
Frequency:8300000005.21E-05-85.6586957362
0
filter
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
node
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
Qext-dd=18.75mm
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
filter
fopt-d
small LOM/SOM couplerbig LOM/SOM coupler
shiftQextatLOM
-55.90E+05
-2.59.40E+05
02.20E+06
2.59.50E+064.81.30E+08
4.52.70E+084.91.80E+08
4.85.80E+0952.60E+08
4.97.70E+105.16.70E+09
55.80E+095.24.60E+085.159.20E+09
5.51.90E+085.24.00E+09
6.52.80E+075.252.80E+08
7.51.20E+075.56.00E+07
~
fopt-d
00
00
00
00
00
00
00
00
0
0
0
Qext for small LOM/SOM coupler
Qext for big LOM/SOM coupler
center conductor shift (mm)
Qext at LOM/SOM coupler
Operating mode's coupling at LOM/SOM coupler
lomsom-d
0
0
0
0
0
0
0
0
0
0
0
Qext for TM110-0 mode
center conductor shift (mm)
Qext at LOM/SOM coupler
Operating mode's coupling at LOM/SOM coupler
00
00
00
00
00
00
00
00
0
0
0
smaller LOM/SOM dimensions
larger LOM/SOM dimensions
LOM/SOM center conductor shift (mm)
Qext at LOM/SOM coupler
Operating mode's coupling at LOM/SOM coupler
damping results
bp__l=125mm
dd=15mmdd=18.75mmFc=1.47GHzD=22.5mm
fQextR/QfQextR/Qopt-dQextR/Q
578035774.90151.0044.30591150000.00196.8665.92598622671.60579.12129.20
578268315.20152.6241.90591233000.00191.7569.50598657350.50571.63143.88
607471797.20683.2860.80611038000.00253.9022.32621615194.80119.0913.39
607522812.40681.0797.00611070000.00245.9938.74621623477.90115.668.66
1.44E+091.94E+032.60E+01mono
1.45E+092.15E+032.14E+01mono
R/Q_T
884088000.00105.633.05
884097000.0098.6430.18
904252000.00111.522.05
909577000.00107.5033.01
985632000.00134.0316.01
996500000.00152.032.31
1119530000.00
1119690000.0011824.6024.47quad
1209800000.0011733.20199.21quad
1.21E+092.94E+035.88E-01R/Q-mono2935.490.59
1.34E+096.34E+031.07E+028.58E+00
1.34E+095.37E+034.05E+013.39E+00
1.35E+09
1.36E+094.19E+031.06E-02quad
1.36E+091.15E+037.34E-02quad
1.42E+091.15E+032.88E-01quad
1.44E+091.80E+058.02E-02quad
1.44E+098.30E+041.15E+00six
1.45E+091.94E+032.83E+022.60E+01mono
1.45E+094.80E+051.47E+00six
1.46E+092.21E+043.21E-01dipole2.15E+032.31E+022.14E+01mono
1.49E+091.45E+059.25E-01
-
TM110- coupler rejects operating mode using field symmetry.The misalignment of -mode coupler should be less than 1mm to avoid the cross coupling between the FPC and pi-mode coupler. TM110-0: (R/Q)_T=100/cavityTM110-: (R/Q)_T=0.3/cavityRejection of Operating Mode
Coax coupler misalignment 00.625mm1.25mm2.5mmF (MHz) for TM110-o mode799.982799.982799.982799.982Qext@coax>e111.4e93.5e88.2e7
L. Xiao, Z. Li, CM12
-
Damping requirements for the LOM and SOM modes: Qext < 200.Monopole & Vertical Dipole Modes
LOM modesF (MHz)587.056587.218608.210608.288R/Q(/cavity)54.141.864.571.4Qext4950129129
Vertical Dipole modesF (MHz)888.130889.123899.865906.237985.622996.683(R/Q)_T(/cavity)35.31.20.930.916.42.3Qext414644445967
L. Xiao, Z. Li, CM12
-
Horizontal Dipole Modes
Horizontal Dipole modes: TM110-o mode is the operating modeF (MHz)799.682 (pi mode)799.985(0-mode)897.095898.974982.510996.130(R/Q)_T(/cavity)1.199.50.081.011.24.1Qext3.6e4>e9143013959321359
L. Xiao, Z. Li, CM12
-
2mmE-BCTrack3P - Multipacting StudiesTM110-0 modeVT=0.1~1.25MVResonant particles with impact energy between 50~2000eVMP in the Cell - zxyeVAvoid E: 200ev~600ev
L. Xiao, Z. Li, CM12
Chart2
0
0.9722222
1.1305556
1.2222222
1.4388889
1.4777778
1.4861111
1.4416667
1.3777778
1.3138889
1.2583333
1.2138889
1.1666667
1.125
1.0916667
1.0611111
1.0333333
1.0111111
0.9861111
0.9666667
0.9444444
0.9305556
impact energy (eV)
delta
Nb SEY Curve
29871
IDtypeImpactxyzevphase
2987160-0.00126017690.02639948070.01881033354.46E-102001
2987131-0.00222314450.03893634820.04797023714.01E-09525.87678122493.56E-090.03175531971
2987132-0.00153922810.02695634130.04797346235.94E-09561.51202935235.49E-090.02916977961
2987133-0.00222173980.03893651220.04797354157.11E-09793.29620196426.67E-090.03175837631
2987134-0.00153661370.02695699680.04797718579.01E-09560.59100793738.57E-090.02917348981
2987135-0.00221745810.03893656880.04797769471.02E-08793.6033720329.74E-090.03176208311
2987136-0.00153457140.02695667550.04798165941.21E-08560.67960216081.16E-080.0291779371
2987137-0.00221471330.03893661940.04798220921.33E-08792.70703183111.28E-080.03176616621
2987138-0.00153318290.02695685890.0479862411.52E-08560.2880244791.47E-080.02918250811
24351320.00082075620.0269878750.02631347361.59E-08434.52735102511.56E-080.01222950931
2987139-0.00221283790.03893704810.04798679791.63E-08791.94242174591.59E-080.03177049311
29871310-0.00153258660.02695698230.04799069911.82E-08559.90352549141.78E-080.0291869621
29871311-0.00221190860.03893714170.04799117511.94E-08791.08773233271.90E-080.03177452211
29871312-0.00153244240.0269565350.04799524062.13E-08559.43175200942.09E-080.02919149251
29871313-0.00221184810.03893709420.04799579632.25E-08796.46233472512.20E-080.03177874551
29871314-0.00152723970.02695748670.04799995442.44E-08561.70243322842.39E-080.02919617541
29871315-0.00220482440.03893699530.04800009892.56E-08787.65481506562.51E-080.03178244851
29871316-0.00152753940.02695698120.04800453562.75E-08557.96208824872.70E-080.02920074861
29871317-0.00220484240.03893761430.04800523412.86E-08795.37603202582.82E-080.03178740951
29871318-0.00152360250.0269573460.04801005173.05E-08561.05198078533.01E-080.02920623471
29871319-0.00219855760.03893792520.04801148943.17E-08794.97861967263.13E-080.03179309131
29871320-0.00152027330.02695718090.0480164733.36E-08561.13650003513.32E-080.02921262171
29871321-0.00219399680.03893775990.04801819153.48E-08794.19925578683.43E-080.03179904761
29871322-0.00151753780.02695817570.0480233713.67E-08560.91665187193.62E-080.02921951291
29871323-0.00219011910.03893845560.04802515683.79E-08793.41911942693.74E-080.03180560621
29871324-0.00151530870.02695779440.04803054343.98E-08560.61158131843.93E-080.02922665681
29871325-0.00218703170.0389382280.04803241824.09E-08792.73140826734.05E-080.03181209631
29871326-0.00151347360.02695781170.04803811594.28E-08560.30631727254.24E-080.0292342121
29871327-0.00218432790.03893844270.04803984324.40E-08791.92105891214.36E-080.03181892291
29871328-0.00151226230.02695792520.04804608764.59E-08559.93174541864.55E-080.02924217371
29871329-0.00218249030.03893881790.04804814614.71E-08791.13398087034.66E-080.03182664491
29871330-0.00151166170.02695844870.04805463544.90E-08559.46055286784.85E-080.02925072441
29871331-0.00218186880.03893887360.04805704695.02E-08796.41297384114.97E-080.03183482581
29871332-0.00150613710.02695869330.04806378215.21E-08561.68268678415.16E-080.02925982681
29871333-0.00217450530.03893871460.04806577765.32E-08787.68306916575.28E-080.0318425721
29871334-0.0015059330.02695808930.04807309655.51E-08557.98849762055.47E-080.0292691261
29871335-0.00217385590.03893931690.04807571875.63E-08795.39744616715.59E-080.03185192411
29871336-0.00150166220.02695856210.04808363265.82E-08560.97834242595.78E-080.02927963331
29871337-0.00216717830.03893939140.04808713645.94E-08794.97603455895.89E-080.03186225351
29871338-0.00149781180.02695905710.0480953796.13E-08561.12055810856.08E-080.02929135511
29871339-0.00216156080.03893966870.04809915276.25E-08794.10206280546.20E-080.03187324491
29871340-0.00149404390.02695864190.04810833116.44E-08560.8444271676.39E-080.02930426621
29871341-0.0021562590.03894034690.04811229176.55E-08793.46599374456.51E-080.03188543621
29871342-0.00149091060.0269590550.04812174876.74E-08560.53551061726.70E-080.02931766391
29871343-0.00215200270.03894046280.04812601716.86E-08792.70562484086.82E-080.03189797621
29871344-0.00148858960.02695956210.04813629017.05E-08560.23313706167.01E-080.02933219381
29871345-0.00214871870.03894048010.04814069547.17E-08791.88519120717.12E-080.0319113821
29871346-0.00148669410.02695913990.04815144427.36E-08559.83927011877.31E-080.02934732191
29871347-0.00214613070.03894042010.04815608597.48E-08791.10763075227.43E-080.03192543271
29871348-0.00148582630.02695977270.04816765217.67E-08559.39676410977.62E-080.02936353181
29871349-0.00214464370.03894092410.04817238657.78E-08796.35655846517.74E-080.03194057351
29871350-0.00148010560.0269594530.04818553867.97E-08561.70705849727.93E-080.0293813651
29871
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
sey-curve
coppernb
000.00E+000.00E+00
500.2461673815.00E+019.72E-01
1000.46870224087.50E+011.13E+00
1500.66351426341.00E+021.22E+00
2000.83006420642.00E+021.44E+00
2500.96948623183.00E+021.48E+00
3001.0838245474.00E+021.49E+00
3501.17559000185.00E+021.44E+00
4001.24747571176.00E+021.38E+00
4501.30217061857.00E+021.31E+00
5001.34223959448.00E+021.26E+00
7001.39999999259.00E+021.21E+00
9001.36981698371.00E+031.17E+00
11001.31097198811.10E+031.13E+00
13001.24881161911.20E+031.09E+00
15001.19196543821.30E+031.06E+00
17001.14220535751.40E+031.03E+00
19001.09899783071.50E+031.01E+00
21001.06128365971.60E+039.86E-01
23001.02805669351.70E+039.67E-01
25000.99849640231.80E+039.44E-01
27000.97196171031.90E+039.31E-01
29000.9479543361
31000.926083577
33000.9060390377
35000.8875707399
37000.8704747729
39000.8545828648
41000.8397546999
43000.8258721737
45000.8128350328
49000.7889657766
53000.7675916445
57000.7482911236
61000.7307374255
sey-curve
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
impact energy (eV)
delta
Nb SEY Curve
slice-rerun
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
impact energy (eV)
delta
Copper SEY Curve
24061
slice-rerun
2.50E+05100
5.00E+05100
7.50E+05100
1.00E+06100
1.25E+0661.47818067671.4783551885
1.50E+0661.38181143281.47982238961.25E+0671.43439504011.3029531429
1.75E+0661.47980607691.47977763571.25E+0681.37423355291.3100230271
2.00E+0641.43917833221.44329137771.25E+0691.18209158781.3402197887
2.25E+0641.43190503381.4451342517
2.50E+06100
2.75E+061002.00E+0641.4391584391.4482451136
3.00E+06100
4.00E+06100
5.00E+06100
6.00E+06100
7.00E+06100
8.00E+06100
9.00E+06100
1.00E+07100
1.10E+07100
1.20E+07100
1.30E+07100
1.40E+07100
1.50E+07100
1.60E+07100
1.70E+07100
1.80E+07100
1.90E+07100
2.00E+07100
2.10E+07100
2.20E+07100
2.30E+07100
2.40E+07100
2.50E+07100
2.60E+07100
2.70E+07100
2.80E+07100
2.90E+07100
3.00E+07100
24061
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
Nb beam pipe
Eacc (V/M)
delta
MP in coaxial coupling region
240617-0.001168110.02697520.0461025514.86915.75531
240618-0.001687670.03896330.0460744757.21517.26481
240619-0.001167770.02697530.0460161527.7519.74411
2406110-0.001687460.03896310.0459875772.76521.25361
2406111-0.001168270.02697490.0459262543.33523.73291
2406112-0.001689770.03896310.0458979786.14825.24241
2406113-0.001170030.02697470.0458341556.41327.71171
2406114-0.00168910.03896320.0458034788.53829.24121
2406115-0.001169230.02697470.0457363557.69331.71051
2406116-0.001686720.03896330.0457039786.81533.241
2406117-0.001164990.0269750.0456325556.82735.70931
2406118-0.001679490.03896350.0455981792.34337.22881
2406119-0.001159940.02697510.0455226558.80139.70811
2406120-0.001672590.0389640.0454866783.13641.23761
2406121-0.001154330.02697550.0454068554.76743.70691
2406122-0.001663330.0389640.0453684790.51445.22641
2406123-0.001150140.02697610.0452853557.45147.70571
2406124-0.001658090.03896450.0452454787.69149.22521
2406125-0.001147350.02697570.0451584555.65851.70451
2406126-0.001653910.03896450.0451163787.19453.2241
2406127-0.001145080.02697580.0450252555.03455.70331
2406128-0.001650710.03896470.0449804785.74657.22281
2406129-0.00114290.02697620.0448847553.83659.70211
2406130-0.001647410.03896510.0448384784.52361.22161
2406131-0.001140460.02697610.0447376552.73563.70091
2406132-0.001643610.0389650.0446892783.15365.22041
2406133-0.001138470.02697680.044583551.52667.69971
2406134-0.001640190.03896550.0445324781.68369.21921
2406135-0.001134880.02697660.0444218550.18671.69851
2406136-0.00163410.03896540.0443695780.17673.2181
2406137-0.001126970.02697660.0442556548.69875.69731
2406138-0.001621140.03896620.0442016778.54777.21681
2406139-0.001117160.0269770.0440827547.06279.69611
2406140-0.001611240.03896660.0440249776.90281.21561
2406141-0.001109570.02697740.043901545.48283.69491
2406142-0.001601970.0389670.0438397775.08885.21441
2406143-0.001102020.02697810.0437113543.87787.69371
2406144-0.001592860.03896720.0436458773.15389.21321
2406145-0.001096880.02697820.0435083541.37391.69251
2406146-0.001585230.03896780.0434402771.08693.2121
2406147-0.00109260.0269780.0432952539.23795.69131
2406148-0.001578840.03896760.0432249768.79997.21081
2406149-0.001086580.02697850.0430737537.03699.69011
2406150-0.001570570.03896830.0430024766.277101.211
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0