
// Make newform 3.40.a.b in Magma, downloaded from the LMFDB on 24 April 2024.
// To make the character of type GrpDrchElt, type "MakeCharacter_3_a();"
// To make the coeffs of the qexp of the newform in the Hecke field type "qexpCoeffs();"
// To make the newform (type ModFrm), type "MakeNewformModFrm_3_40_a_b();".
// This may take a long time!  To see verbose output, uncomment the SetVerbose lines below.
// The precision argument determines an initial guess on how many Fourier coefficients to use.
// This guess is increased enough to uniquely determine the newform.
// To make the Hecke irreducible modular symbols subspace (type ModSym)
// containing the newform, type "MakeNewformModSym_3_40_a_b();".
// This may take a long time!  To see verbose output, uncomment the SetVerbose line below.
// The default sign is -1.  You can change this with the optional parameter "sign".
function ConvertToHeckeField(input: pass_field := false, Kf := [])
    if not pass_field then
        poly := [-18467420411022, -3876249523, 0, 1];
        Kf := NumberField(Polynomial([elt : elt in poly]));
        AssignNames(~Kf, ["nu"]);
    end if;
    Rf_num := [[1, 0, 0], [0, 18, 0], [-837269896968, -2315430, 324]];
    Rf_basisdens := [1, 1, 1];
    Rf_basisnums := ChangeUniverse([[z : z in elt] : elt in Rf_num], Kf);
    Rfbasis := [Rf_basisnums[i]/Rf_basisdens[i] : i in [1..Degree(Kf)]];
    inp_vec := Vector(Rfbasis)*ChangeRing(Transpose(Matrix([[elt : elt in row] : row in input])),Kf);
    return Eltseq(inp_vec);
end function;


// To make the character of type GrpDrchElt, type "MakeCharacter_3_a();"
function MakeCharacter_3_a()
    N := 3;
    order := 1;
    char_gens := [2];
    v := [1];
    // chi(gens[i]) = zeta^v[i]
    assert UnitGenerators(DirichletGroup(N)) eq char_gens;
    F := CyclotomicField(order);
    chi := DirichletCharacterFromValuesOnUnitGenerators(DirichletGroup(N,F),[F|F.1^e:e in v]);
    return MinimalBaseRingCharacter(chi);
end function;

function MakeCharacter_3_a_Hecke(Kf)
    return MakeCharacter_3_a();
end function;


function ExtendMultiplicatively(weight, aps, character)
    prec := NextPrime(NthPrime(#aps)) - 1; // we will able to figure out a_0 ... a_prec
    primes := PrimesUpTo(prec);
    prime_powers := primes;
    assert #primes eq #aps;
    log_prec := Floor(Log(prec)/Log(2)); // prec < 2^(log_prec+1)
    F := Universe(aps);
    FXY<X, Y> := PolynomialRing(F, 2);
    // 1/(1 - a_p T + p^(weight - 1) * char(p) T^2) = 1 + a_p T + a_{p^2} T^2 + ...
    R<T> := PowerSeriesRing(FXY : Precision := log_prec + 1);
    recursion := Coefficients(1/(1 - X*T + Y*T^2));
    coeffs := [F!0: i in [1..(prec+1)]];
    coeffs[1] := 1; //a_1
    for i := 1 to #primes do
        p := primes[i];
        coeffs[p] := aps[i];
        b := p^(weight - 1) * F!character(p);
        r := 2;
        p_power := p * p;
        //deals with powers of p
        while p_power le prec do
            Append(~prime_powers, p_power);
            coeffs[p_power] := Evaluate(recursion[r + 1], [aps[i], b]);
            p_power *:= p;
            r +:= 1;
        end while;    
    end for;
    Sort(~prime_powers);
    for pp in prime_powers do
        for k := 1 to Floor(prec/pp) do
            if GCD(k, pp) eq 1 then
                coeffs[pp*k] := coeffs[pp]*coeffs[k];
            end if;
        end for;
    end for;
    return coeffs;
end function;


function qexpCoeffs()
    // To make the coeffs of the qexp of the newform in the Hecke field type "qexpCoeffs();"
    weight := 40;
    raw_aps := [[177858, -1, 0], [-1162261467, 0, 0], [-17793991314810, 12092638, 54], [-525770892074176, -12596523938, 56758], [-177053568968573971380, 2617390166972, -42093972], [1824176022339135131030, -3296990601565580, 2302171012], [241240001957993586441186, -1432579830459091908, 73008839916], [-3561189800495861142548908, -3709293048070314324, 14019280007196], [138814153250291250263606088, 71070379474158455740, 864912659360364], [24315629297279597057386967454, -6035749812787379330854, 10883586973384674], [-1277169036669769168534929352, 132459183410279571656326, -51025473408711938], [968975746041381768894506148974, -3345949257318348354652992, -3950416425949998144], [-4611237481497203086358939241942, 18490424539772110742731828, 41049028078685916228], [-80392265767280961246642887649076, -20484097207243777934832956, 42956960985072135700], [-362199224884563318580756293207168, -27967021570414946815942732, 156493998280534783428], [2099678030367091588691955813192678, 3338272471623581040523909218, 2938952470374303999498], [-2519430259238633240100489660248052, 10460092301660690262780381328, 27718510726325102306256], [-23942204444744701125721013731865866, 74660206601818513616641646200, 14299825166906145548248], [-172941315282011897296196240610543724, 391803818166679260501327245584, 354959910430988147390032], [283089929100907719198949858700993592, 737866071388971443646753648204, -746063668497953364430788], [212473871752415352382221857278348538, 2524193677654804966150573490592, 691533842706224457876000], [-5435536954811661171133171539640934200, -11485312829011711968923938613474, 11003588796039677062168438], [19912089898920645382278574079377573716, 1208416147913482653866436543788, -4024138699711866940870500], [60509112296826191057969946328500460362, -73280146295154883869355480835736, 13969990999893791239196040], [-330177724258056837213119715604619476414, 513195563586616450515690479278024, 224209889449450757932452712], [372115403426342068487470303388679992310, 24051646736180416332600430507346, 1500713373131745730737395130], [-493418941578728253919098589795071261136, -692232843289799174775132868325054, -1413017393983061666307870614], [2581041521327878027354206380651503069212, 2836745766113297667217797968637480, -5152212871610663532344295096], [1091087859194950050361020984885038086742, -1759719716870005741568214388939908, 8696918376349832592069664044], [6293517526281531213794875675337964098226, 14578456525357712808858301273984456, -14189925135742882526626891416], [28009055459034750301211098093038648604616, 46542394563705637734571180685220882, 172429374803436345611621319546], [5595784265790252683378447101586464303764, -119789666121275370356657795040290528, 52369932154649427050917539744], [429732620418557047244508319590400026870378, 103842601695056383781045438173367708, 314927422581913573103781097932], [520585164423999862301200264195442194875548, 118999686261507027684868699818787648, -74175218351997655408629808064], [-30619571940796936035336038901703590758154, -441662092545224956475640416216864354, 498476712483571423744970048502], [568425333651175717184973933738175343463632, 786855013580169873351641418862800286, -389883870766979080325917468682], [80418475515174414455940854597851874017718, 7378114623796942188513273957705635488, -4038780722755360333813866661088], [-507923916243093851937011615722588897644988, -8481884671370507282425578001479799740, 646140562200688701863276686740], [-13639063275714740949181736256373288688183256, -2298661645825592482057238676176344688, -5911747212614712581475683706672], [-9021299669599891487532137831589921256507074, 8746967879186992440452327920389289574, 31855730609909460925522901755998], [-950738566228564519763530080478568211852540, -43674303519586985925967362523567745232, -158680842219290016785843811027216], [-15486661343795470361625413964107565326102002, 104805455412726682257042326119671220620, -84695073665168222826922335032196], [-262495166564532288952835687970912118698616320, 79568076119765022507864707110220574320, 83413839462097763684123836456752], [241753649881844250730171207841941702445353346, 219097679262384581751217687761544758304, 316867043954949615727884339967648], [98215532349240032170905116793015514763888310, -623982373288772242674510877283217875910, 460543106432264638850937949568706], [-724218567543698133126498889002810127944585424, -71481861610354487793578321744816821206, -926029947318136007516578057052814], [1253276843172518227725661761199503102977495588, -806549220997450424294094899885409872, 4759680611712255941871857680386928], [-70355966499047220341764620755439461378292280, 6033140479690359248453878701206448802426, 7362651970762424009699857859168770], [4275765543659441070936724262610867315115476804, 6886032913419517768315702150037455579076, -9504855451492830485293646429384940], [-2590022440399147464616717160774277518987883202, 5848386839334151148744795578001268833188, 2858698273394871733261121794150516], [-4480413589152752215127223503057394088417500486, 499986193325573814019323140446397319720, 24382289658717148437225284493839688], [985681557825157638472981154448376574566501392, -975821232683360294867260713765416726360, -37892400513279049428616701292489272], [-3308398470194996971281080212949398362416687950, -21213443440029725510260643430884929960904, 3121413781296116578651498275995800], [-41990511493020080127104744523625557291711239748, -14320428222184315920715164734875882514628, 60504529139857040557218751874210796], [-37172188859454075101529906728955599104049738238, -46273844247907495669208618274331072873280, -45775118191441313667358736024486976], [-14083944906084014052599183029160765501373181368, 106214961926861305691099625345568229969312, -183373523549971526215471863027646944], [98365300934714066497022557563420777101243734062, 212066082362344072936132480714845140512602, 27608793053702819692415436201373794], [-72390198121145590439764483598487949349495740360, -79125433618756114913302319371909361805942, -31750835484766011232209232556187054], [174867286446664930834396024919389684137377346350, -455674355971291522089934063066344239605268, -284732682323447348368057414999628708], [11123644601718261196653332328388003724632342506, 222725238134484598797397173291351518333792, -497434922637952097382181501380342048], [-732034421171400266977401315261717615845335670740, 78890699306390646284390270798326341985984, 104050881627891003709832499592867264], [342219068466739984383195669206005317324792022902, -216158986563184606413491805281617667532350, 1208312925599869373703009235748922090], [1467637514940274097708696872122038896611646743812, 976288342848298452519934596283023625280592, 4666063541777100968330038070494757520], [-4476151909252087201216963063921545251289767961000, 901869627348999880856490209279644244752408, 2761187239244832775348589060850082296], [-2939587698767407069634664183889290455916335700598, 1472332110913167991842700602887549681928640, -540739974669572026955697885510628160], [-2707042915152552500730036532751793428774208260898, 269501048086403181557509941375925184095634, 4628209674200862628382315000961829626], [-7712434353240896688106167098358682813986050659588, 13368177917055874649881597943753367079111336, 14130406808701857588852147865532504008], [-2073765169938283103529421818419569045997400294670, -1643530446412703652000090120716411325169184, 14078100223478815242793888514225997664], [6304069061272658052118439947612078744627310648796, -19652761621744316793208567422999023310462260, -34319813585995495364394123888785473860], [-10829298563685917444579609717180175071450263700266, -22432500360466406885644095055060737744915080, -26739133027146166435353598755406722344], [60616254440392666636537474084087866001268669250, 51570440051557569874204069512371094699594248, 92273424995271758237004678242636518056], [69375681933911951304028105959220991985315369835608, 16238136928884582364223668161675939480480396, -11667875550575860589874307513314958980], [13658980679870652173850255826374391583869051568840, -60478774445391682724853320363646381898067306, 3916646918132542182652315497286912078], [134112604098806500682763805422487202022718468699454, 86566286537857796352008025953461649722369384, 85314358411123609534993968178060986760], [-75294951909824601516444947757074454610336837156420, 109807424812470784599202471639593121210660716, -61973513207738585920477745806007463972], [-71677958928644069248085056462784910654850472153088, 166168383605922100499620183432501148190244288, 79857331760906246773324566770502930624], [347157304960850116327343034811767707959737972392838, 27664819994062279030543836456913379976248222, -23566396099193868231770942331482112522], [57267983884799895079231902590124076905917837799782, -404615430369078298913780645026141937730650424, -644005142193760018513584723456112312728], [488865073122380102511444494587141795585364416772034, -153834912293774494042651448840975506982471852, 371290658247482671353930875514258572772], [-748946648704606341735962535374567706901469194236982, 79682105770707787283045407785956835621003640, 76721643383167979255108925153125787352], [493728612523918486341096919150585023369146291098692, -1058164014035843582061336021299797646719505516, 1927281103490866441815055828880164802340], [-331491719535644745069169795312286019937318828562914, 24436665768237866025649658150142335627460172, 373178076525350888949752634724229005372], [-317115821444932871902238799467931068491943791123872, -2226634827201302869575202468460811883199272692, -545876123626841951563625179807489637892], [103202354267136594964092339904325389280795764527122, 2671080898143268966788395438376493476422089392, 5263152511959237120276926207039052161136], [-215639928131241217861658983764417216411818604155200, -742505249540290583596479525434559538941050990, -4161656573550585204699901200523346088710], [1712079045558551482894846873276913079480200200717500, 2821635954211658754446867046928846350198032492, 6798180934973477727704513106658294412508], [-1240177335753754863430516325640508279097167987363854, -6164871649470694813365026087703196757404854516, 8995389483768660210572206334964873840636], [7071253754355727887098542190800435276700579528250074, -1349631450489945354716869379117092597074574808, 4412502757046657637425503698499742623048], [6852700777814006891430828879925689098042739615129822, 4530283723219879988556755708739023089621665110, -1886104090447111883508429864686190923250], [-772432668275383941405486324575273422353429317701576, 3278594115821799921756568867622339929705015642, 9189856030682687295005867741129854071394], [221041705264595339503758530568414880007092111451892, -10225510401206380087336346093177434901604000684, -12435671817001977691566229847712728264988], [-7323775561753640654943034028479152443782445495506800, 25194801803983267200456137628221836642275655340, 15794967763146398732778162991163353229340], [-22299042753603761746622325637568097720631492813826464, -7487194677549381323056747813752732276918690450, -33842372173535642663392054651478292335610], [-41412253811653317131736672828107394709326992769831396, 139464953305256930932484213776535152557383656, -6147436630047845795069178421947503831544], [-6490116198046900926560553331576871630552623129068028, -49007717329098856902495120286052667005556197888, 67148805766632292704934385652419953667584], [-37664380041712755145074888262708997023673033607036120, -27199122931050912699431732219545566756999917028, -64551551707414218166347364836323410259892], [7550895665522632981979689670138711419643617596982878, -6396052602898548059434896867256941058791220862, 124239516927334293945881120295416512404906], [18032260495675300958911840516315299455699557942867338, -33995843464455399916097440264820013624421972572, 100674759457773344384182876166972571607668], [-37441633483613646892921320320698408975955227320407476, -27549855274869552516629489623114706916575022132, -12186990396731920044834481192755079060548], [137266430224838735047827557222757782903048371803576038, 119995693143075918125815339732759277051515688364, -135217685435024249686855053209754327807204], [-31983533452292391447453925069592157692220050394516316, 28606559103865039618001530958002999549913450428, -165976066475098535716809552845913834547604], [231174336494607091494911449288352863795514490806415006, 84260977579651111525760357287620281534020500990, -100394900505082272304722368447936383807530], [80660927172700952714440088006175829491568810841414196, -453595840108266866305862047982687846218230513140, 12372960210897231794934611691663206813436], [1894660639804434477210389217439072183528160418107802, -177522278067448780759575437623605656641688739916, -831841350695171276551444226571678133455420], [-333447252806252815255876359663185160070539975821072020, 578903177722964570645767732899733687004549653192, -204484614843924071549403630786639284686232], [613632288886346620304893830228806818125385844655360386, 106691946759164385855825848225747746656432096384, 490803672143763529094924306773613253942912], [-995145343526762581457573992376455513510941523780144068, -110569496286619756727420254831577630373082315432, -340472367227693875295281636510056332576712], [222508845918586880839218391778719706567992515145745874, 708612518351727547673193272890240370477051240520, 403313599062336915619059398318127363374568], [-351837174220292396366773228414491023984803393960539864, 1116360805268716280321561009212033614101776292452, 510576557546507355493025393229239500871220], [938685569302795702157526472498828601635768468060045610, 366787949951045562742587516554612438437806717616, -136515351712558067858158095115901328924560], [297367725959969037902373603762353883980945565403470056, -1837661940415032139478661775668919262843211671390, 995587841544010706939417144388609163225930], [-632793737524572272753445732136587452809153862140902514, -1413639996335018425812981319958472114072025599048, -1737694717827332124618972331722375478467048], [1005806479903696596606134723311637967816124556342759898, 92030745924740479784528614481589314998624961104, -1865209681250934492794726315224676727005040], [-420118733216509408643114980330892587515231206276996932, -555443875094704912323057277579534215733712320592, -837295728594169032244241673294768287075984], [-3676515201144059308642293826958784020365107960886258768, 746343064180068452065270974488899768405110693534, -346556042910414785867092261900870929490698], [2557294178013915915795850242318795121902366521545788018, -5994505031016470230846485687688587474229520932228, -949137973381257535354408286183642033321940], [3319080100557471015450877325602752582457562312711538884, -161078879064030196315633659825592670183728263572, 2201869559004345230699852673339127264031452], [1823939056738693553115761877476771102157663096006092856, 6017185092988917400708242496592886019643329770972, -13928632523188535002602071620115050895360244], [3681894935402340267254064864514788237693532968144664062, 5592784432110760286208403009635806200347669210766, -7319809507116428205834205575041315992906842], [8224972467311491188873050859178407503977172130874606980, 2565136230847732958297869574795217977770318345400, 12926895632144721197101558949019195628321560], [-12399077358328751130287823061478481124095515017786261378, 3773041248903710241975151241001183711785535017920, -1821534860663741196468715270406379485798720], [-6643283692185884867992099654239997740085052002324963102, 14039872210806405114975863450944916925061604238400, -7750518278843293671943900347962899049383616], [-11407477093210680381171293063409767164962427150196774970, -4097697875136198199004430912701068158708889372906, -20684495002418915294587376533946525342447922], [9792044172169865164002021476665220410802358301297840332, -7237575699496955482483119598605889581885376719756, -2058596916936762515099882608712514299262588], [9502204980087888681169269153460667228850341082013671380, 1849277101683643244479530612757628109870668412484, -8468820205531956182671962638357685193637996], [5565425796559958308448626789337400370228268733840045534, -24428616116024919189060039256000833141020925677070, -12543623956842886981877771429257500936081702], [-6793655133626074061678762036140877053299198541193376418, -26396016225754510497999258544664762106515911988252, -19488740474517050804975419991268806166886988], [24673911246638307731264547274500065095122708009424353696, -11915386480336300356577400547561139638591440222604, -51952424243864709261317939235923352955526268], [46522000599187959252170114083027797475195362720669269648, 62242746287612238857919355698307407070527274326142, -7531316646858909598141875991934327631741866], [40877258028466700085492479093909779400005088288227301894, -16219308355038938168373360498987125316657802961564, 42546412001339129643936324982223601433023796], [70156372230017237007365494375508378125908550962807007508, -60095513764807847249405369427973078496616093851544, -23808859116186717148390400400318880449519480], [-7688422471208346023673100302423760913823515797465187256, -45097111318763689208213046506066125425053472378488, 29482802427448581309039910373881372104894504], [-59524174735272947863067246813012841720113128334498622040, -51933957968664118633195375190871389773911135158738, 32026821178709178629278319795240773640446918], [64484987719276017615885939614291368034928310942136303918, 66337113746880768325464632459543321390413671567972, -259693113810611660888386419063411796842992076], [-163393963132668027823266091184457300819867258513998028294, -37488705652930298978831723853441901970087514132068, 114528205181551479940487795270640191171782092], [-85558864991214479732997691137437920702286369901774456574, -63204597479411090695640924276557037481909542284400, 288780348527836971069342515703809890891516624], [-163076916694628642020526125827676662913750226775713839818, -64641103583944341178037029116401434103278500306870, -84463292513348008222700011826382828393397230], [90208300091032110014984467781003388069714477833367929012, 346483149206949242687491289712481529287362074923780, -172401546326068772965468551790554430477640876], [128744390810163734438083549420265135565998835375420796782, 294118543679260309294170348689054501346737090429998, -469032881141736234994591481776068763869453882], [93958112485062440938999260171943555260217780172340491850, -422699542784812102675641989030250042209401842759684, -204226395696683884348651463864437551971263572], [-295802473824090726674623974936860521096670679407680402228, 376576099715711711465376064110116490993347799414948, 539959675357085092941910333612943608644391284], [105323399152539475431864686856490550166156242607711596166, -261655560682217239294140132499143163153920888289366, 103476943034391020324450074289520686777622258], [-59569311830992190839099557642064432886242456584095113264, -950331416826903685251993092353616996520481891164362, -476517304676383154776670267802511535083851410], [316698893656199758451244520116867924885852471431219900076, 592507106921106373536697975083275737789172187026040, 1175068498583316300070293137603914875164830680], [1188894640107741232220124135842863243528207712532473062790, 184905231951341086887850448672925290534386028402172, -311223945599992434433099505894599876683824724], [-252088380788161319779707684331454870970052515064170016680, 58309058363217477431917731726085745797811774668436, -1162352379198982732942569022355308986211803612], [894195385571460614768701307478833275066505074882506770942, 579676092887453167564065190318242866396063184126352, 1613635243760450395660066132158496488870432976], [563356120284143906654358907537594209571628473898713123962, -288052266851082957934801081999780748480037811816204, 1591971612807836611612208841206298249832613892], [-2204256943855725220652775214219216012480081324262479627300, 185312331936085972166751604291019819324827033803484, 1134068043861500798063320460854577094519408652], [235008063724803372303288122697383151925756896029710116384, 1169297773148455407588738767059895623637121622969488, -610192736355443345049595705007598447484323888], [396486811594897174280898824782979593813465663840389999494, -1810270609610301134145345737896334000671154105194328, 3212163833367654705647451103943570296108322248], [903659682419396093257484412614158067754345650774453320146, 353612752536554726860948230634929788159038422584112, 2826126016238374087773168834444648837701663472], [-2018580713121019885096762557114297577541728891305675829036, 712585587550668004340370028137215936314485643018836, 165148874473279292009601662005906415641832676], [1256663859688225143170813157445527347744658984495133459512, -831535186606009076212156549454231285959993963132160, 1057582010307928128485692618887656863295579904], [2258603415527168345801995595122405177566306476098818451532, -4409128743097160627201628688537688546065574314979060, -3458847377057367609759315370588412239143941636], [-1589072972650305679048310779215212023850358818125950474768, -3881164244874430825748848957274551008225025352629384, -812733374642153945699623684376009160829882152], [-1301552101339590023637493890813105898549629527838675073360, 377504971727422591148489050108243939717858527785238, 2543645304502653915224810430623776157845178574], [296876868170937496428502673941981850530927939456026521202, -4305364768095223571083418072322166345832487237583708, 7659455668935971888476156810881737128419566964], [5746550252363641930453396702425631004919009428084658049370, 9532652532284149878633852695800432641667088046160800, 2541781546136169881248638474543131172947067936], [-3511755099135046772988700514738472056414637029998779801282, 2182945240009572994385025678233685522603601009624294, -728755929828407513757407314423459346718959394], [-1447076271308946769133992612828054900061374604357500830972, 5164336734580559985676858550272008990684861558746864, -15715150261475940630987776708776130492131939920], [-1723149658797031277375462399517568790752698350037778506150, -6748403710213079423493815181329311030555631910293532, 17761998854549871361984476450564595830554286516], [-4856515069389188424858137360227773770272925035542361330864, 446097331472059636276465919799329667147337819830130, 2208539693179649800339096319793910091219100250], [-7487374497000176833871319844796863819702972165583681334612, -5917324034953631370291564597157057145033692160506908, -7289179896895254908471648685343916592676258380], [-17183780345599033041992764355553897357607578295381788821694, 8076377168897377276713690614575630291817449228832068, -4537780186682600719383819074803492453668396396], [11931022999761894121024144114188279405190521552907321111128, 932148367922522223500897255253625396394637329298416, 25261988170341244082531255586267253297141306032], [27489335421540026716433864604834147747173700476721318034712, -9511317079074458366907390897568028653967882112981810, 5364686713046294510164042492718659244539440870], [15825482126821267068996684971766247300214025408237958357838, -15512002886108341997302458080878820995469523028966040, 731191177991890132635659958608085364528327048], [-19969613861513165364479396613733654538672427553100095895950, 17770013932702634970258886516530299876539898961437976, 21210674606036301883811115509016349387409052408], [-12743209873249467875762857493672253970939557168028551941514, 11489532541502184589898149584838482729596309918844022, 34322745604234705334728288485589083395775545262], [2191867666577680333000736199760843530247113679326843577452, 27347965796250250622599200809676637448268438625602776, 100786216960995117504297552388097469350951966136], [-54716578236071718968930004903354519520100507445680555906026, 3056251724160413726824598949520558542792640601465296, 13459485699956265857636426339176267405667612176], [-20717609270612300446584683262147470137026774542121838919064, 47482655093594645051631477569467465510933992665800072, -15456096184804570991982165298478952377045859288], [2727918246275864080117411178671890049101060883152882228602, -37430587539534327155942669577776083316371077797957888, -109105990928851127042886339902281671564528329984], [59454354504145281842438034819435029696078666553241998192104, -41410838093362732715542107105441819832087379281873994, -14742546128257405846508022036523785198997004306], [43090716016577224343434326884711291249672095815942019500522, -64384357829691140086729428249520364862873749657970464, 102996928997516254190182884137998694200820574816], [61165630319010116859228662001852971262730719109514812821548, 55177939290810684152995630276451066166027793303892608, -29328306534112691060927275551040785973985090432], [2281572572167745407332879796856517013208859436309724982630, 93800361496009998516323880007504814871653670597711198, 71482641543262245763243044176400403397194914486], [34946131734399526946281409075934669935290871492486340386864, -41365681365755291666383716099045892863401493679913646, -147396161899850256162447903826232995027477813830], [3996996555722905802392754903216885785435294844677229062310, 18525883680585003054094986154888323326692747136244640, 106184711350617289839896702014444338255205803040], [-128143620248833236774810571811725538599294177100676335542216, -7638601683548174167613314910249698709700789404960258, 229625673657742989535192627289909436783175859158], [205534170529360799798040121473351353258800679326896927040260, -75911884939383538287720548867927003811028802850872836, -86811988716748627613957101631992852032561726036], [172672387500545131550422762473182402066463675418850847038366, -63707990601578267768934429984649331660891659569204620, -38947721263241485514295749648664024996834427004], [7909923125348735083224023476292607759409003773008157236922, 219711491154910979247737022814433830924072761577233024, 90932004154812228600092755253682503938758765696], [-22602963783592998295713182914539122605959428520218692985136, 321049933974252928748310443153269058036983366487409856, -55955688354208120365492501073123043114401848384], [-741285967026304514533757309720067770558973569313106572330, -286822954230984468144974693296961243979080364385523866, 306610105717561470778840530188304191779731500382], [-21284284734251988547233317095090828188116551773030947091514, 176792635765493383707801794106860537485005642198327348, -483673571537954742844910690390049637674969350076], [-182841474814570914263850261799278094684370508370677852781900, -56871049411109577052456753935004357096601969455690448, 234779717009137318082450303909333971497198036208], [-54209509129501910579186343430804523791911602912446154025286, 295802826506662184944216049043772396253537257979119192, 467610955849126979441322703511555131203997895992], [-12577429072723426548293993515006515140891879622381332911104, -305628167190628367872101038721425191048010864139875808, 122944161365214597347482957976881957472200389792], [101855908622033543908680688678393424835146584292121566500034, -293999025869729195436208333395072535178021719553137392, 843926334312095269491607864147135970913005681232], [131153910317903453277928539861123295921349980337971939968156, 318393996296409969803959197951874308133625289001203392, -96196587979167029253279377567291644913034166848], [574902506481654478829955276837767697194285929687570262021924, -636854432496170561059470926834953784900238480204136224, -187944108231411372766173244471110032218743098784], [-289570700032578394439351053780452288267418368265060733649810, 658015163952785710355276349094903204770693186998117486, -225564343947432742631981410681466732608379894010], [106933498116843211270186308804980860352843636695948975370676, -39289949690185650792249666446851408771071140710046112, 1459402489601939934858394473856566640340827260384], [681415029903205189289957928707377433873582852308770344723226, 457611081874295339871141739442186274355108802780454448, -1401238988183572862132349205347975628951204673040], [650045875310450470067861507177814102777740293761652826861330, -238706952212455835453417409025943632849264155763000352, 379990591590735862523370610866852892455249414496], [568572334952617106875258064457574765175399251350673477708646, -268661040722352368943262805975551505529424215072780620, 141193310735572334922806679654197440987807027396], [18323373577111391891290552753156944922509766879782881910402, 130348500635075407242809834325925152028939228491661424, 2764829735550053695888205836642849571236591573296], [-682079231692210117021096802734081129453494690370658564167128, -224488033285353074072610248283272235804313769619421272, 437095599245243400270032759531343678579675142344], [690473455560413038277076622675022131625338530484809385645086, -1326474568250393820929611991913166936932755983844492666, -1357703467761386832009104627666063392257698636034], [-1384729935121784549581852525643928280207843119227950297884616, -343176183096486757986087648745994977469803425970960358, -470053647784412084340750273434640107852050483166], [689385730948986897485428710086304235056979736271292033223150, -1149549508318419364172126348676550028292543075804552020, 1729095625145203380955829796892550493363161875996], [-75734158034488852199659976191661810081949571608292060582558, 1146453423284829049374250450145392124444085725680577344, 3553563272367081120017588762867973999378443160640], [-753027873847663353289614043105161071677856524910453290987764, -1621610821750953602704009859159336710916299540223141292, 2632661270275204015745304402597182178681224586468], [1675051680666717239062696528699508542195681597376414126543454, -1833143177447606239950181557123344784717716879773962174, 1212974374690982388505833129736143093150620482410], [1282210029586464401160948238072509561929368967798041183273352, 2277300311178184147561362019185203620526582786381695650, 5294934127535257137177212815472760053602822653258], [-198366252595447475553252121668910238302782603082714266517308, -530692490903815501759104180788309679062101079212287716, -5815084799290959833506656887761210837278206696628], [-2276453421144442671210527969742093753487068982605426499209894, 2651498014880474145361141067912390521515510866920457624, -6217847303594941641261489970281268995035138359944], [-520292746037120998147838859285969573070831398745320550991284, 3901154109538546451171794895703638039732520447881735980, 6674082775439894278954920534867322248876760015516], [3195086641297208718879766524828225642258494606550578332811378, -1906525739526297714151912888192342727273753030862091248, 3634271303354262724696581406332274019494897610064], [-2006276144800870386536318766210580672553052566678537612036778, 4331427430998115435864015898627878495356263849255160982, 9320035293750458491404268781585655731406812809806], [4748357634478892581259473712625557435837152015512584713692128, -3203273141638426128351539721020702481514309747607566526, -1510133026131174535956629134563685517425963737494], [5229754874448547688615136106059923054710446981879083208666156, 807959016616260963454743648758168712573109654768849568, -6405270112694088556508724124446695299380156209376], [3958960250117289398906346261679252557227183897070304710526008, 1073273359390054698277771108838501967405089209573974484, 9456580414788767317327054387051361804694375187044], [-4445427272375675672312428829274026598026326579858843753082086, -9151846725116451743429585905086050084088679620081283760, 7350255526111455653088808249299267060212086998928], [3847507258429309735585501776121363636239950234324328146373608, -9881915239645642959773564639609208951509198661572825810, -12451555318987549486650727837979260955153698357562], [-10727753490623470245238908413358682703218157750864511621310686, 2321778030479276734974713688951660130256854078404738812, -22037430138714315334869679201088271867336989106516], [3515153854268275130087122608259961079378668045596794174582360, 1036876362034202721161460399232995216840644296944018288, 17644405681469576209583343379680480895291176548400], [-4880440311116405714986537908411689535430317774739294381658226, 11534128904142101938399540965902474071731004762063551238, 9769741849658399089385409874592405535008178760062], [-7340948099201968157429393982195660007894553160684647637733474, -14107438068844886367687938829072691230391557402073653572, 20470123322400612058993520797695772780459709577580], [-13167306533226123836335452137688882040117086766144425707066176, 5188369288360723079423872311814433124229123265860657762, 11364031947411257969265518713662574967601356224522], [12433321791799838166184106216817674599101800348844576977131410, -1507142766570567037675944811517294785828953041983871612, 46362603838372690815308381749928646090660492074964], [-5681050167317419264352616395782264934106581177865477865727944, 9881044952047471535756630337929169342954721973409965418, -80067444618673706690549928458731001843511918784590], [3092400709678843142857486087449546269947094992001079552846612, -24439035008898741989531436758288406391347297393938025140, 38538153773911613751367504276218994851194677150524], [35491950333569530412742092264767421311033055523943146958598270, 22683690267252772873942772828995557414398438346034879744, -2027639111996339319743208281585386802184382193408], [-1464100767175008660129956694182888969471910771674041142110518, -15534908158039600955311947172954679323550938743196576168, 29070009260075518150279869676420923080038851370296], [24245371907310887491325394175641915142136523192304431466304592, -4672131063673291122595131012855028172041405472976241428, -32767074925424624805166496127653079845302025976996], [3599005776943730148059598980053707218927179035794613167266832, 11210371967063776856340217363969022766114540253289032810, 11584323527105491269357492886461679278739300410034], [-4331919850554732846978958426819242120156167069693116491045924, 3638199149055964124600645769781253544628474463934478760, 3723213877960003119603065670810394243613968462536], [23347843462230927574127221382357414641199682825951044320940438, 33953886824345387159737573695329575031389285577049913948, 29609694950980434662097941716960989099238438854028], [-3492079137580424167768833602375699431169456681181202460142028, 36453645884511075351948978130433410177394897038028658012, -38527352869212377496304676015427525075983597628276], [1383542936642446728397573130182954411225411771632228994145000, -35393477720910948194838772237214542157104313718399862646, 19265908167156410708331598083128274598180997759314], [-15166186993432227778585731125685960518417492768948276813644806, 64550451111054248409130439023534505582552218225369445488, 6452475355905112649254906754479391954753204968752], [-11205810516560335248609801995367082394036490460121736433611124, -21907631950661943499461721716082794720002110725775369076, 64952694848215442793228865992208118436895602948988], [44127556375921165994148966374425746029877924434293296986049216, 11630711726866000527587835464895611826954040210251883196, 34917862377603133618784678944588517599174350900588], [-31151141297926174102245541573056889404648578999785478060337646, 20512518174445454891217833284798721833618334023605765496, -62551833499065210893325384739046924943279623562536], [-40051633542654827782469636649057549225877525936330897667830218, -16348608891347165064681059583219247835796544265159618370, -55529996274292528378084351959970793624841194284650], [44966433499848422269603442304230573408889275109402370967438652, 23418622091432738099994868811348185947281159525735343652, -111781360683362488688058300334840258385587198980876], [-21129382064685347551251632009495637145663510497154407478763496, -101208116493734606561352588319794289322052592542153907524, 5858287250782330240734793802459689605845663993196], [-3570248711038291296810198915459271628678591335357809583193484, 59412266016777831104954992120379129441235162098776633388, -113429535161438464567670184341717801039199789271140], [-62720670720132867760217495671371318247031873771773282951682644, 71947585092018490669189870819824628140403529294477857800, 197190428064108427095358687714184597162169951894696], [-177269120899177404410499733405621974826916364583042559546883328, -4258335908844482899995466991830642701320910897630238514, 117960986061679429054573988461269498248505862374118], [-102042318606721117951702296700287258457846036553902746653278714, 95467223480048066133204204255199258301229449043473435280, 177596389441564999159308790148087074361035720822224], [-91006676880854883371759097973213939689562615135657232969348238, -41043944938722333832892541806629527701402783138381410016, -413488966116423221498372164672678889199005232003168], [-67905358833905562712472811313556228888217881684746746306050712, 188268787589755915096831859804142001193420010935152064228, 324212339009545211878512833696428213936643281038516], [-124155841685779527799181277517416659100797254162590684087370120, -193402644110390949909101317528001713478944505015811961386, 115396031279604851957840303217359648390241975673998], [139734176860920776297159289301028960054992143170420079537489108, 204229926525265678693043137416206679366072956853895398184, -149874686727524449388258031940255800933719352853944], [87383731294203430915433289143442909845818226957301468489327068, 85536288108783499659962591636252515622270319148253964904, 193888965792641704222600556822226268980102755086984], [130981543898776822475503487285890073343768359815600919916955152, -154367514846225072237619924224492162763730240313684704520, -30489660215046214587464290302456816934887167400360], [120195602149473266074386376788573986801514770107793334863218694, 52387384924792928355050238585824836697461009238273523676, -172094013393261787791071122995594777975759719558900], [23404094357024238338810185887695395492427316117964073016822882, -110549860835803574350570069308416429263115387541118730040, -209910889071823549671069046943879555592579154171800], [283941535234539788290336107186946945296427593752815403991943224, -209306774178516230099593428250183645543549121171231616404, 207633039505423226195276847872382197574140945139420], [-25616469064053024497610955454694976088884883788079749472717062, -199421204702779687937395234266459875568290963520867268688, 249742992671858815966837687602122580814947210998128], [-49794859589668459315514612564060914655539477037274578092078098, -305314326979481050899936929818097012363728498151650052230, 591645745496397302431769091731481606847072498678530], [485006183388729801030264337794975538099080205611758203648845444, -117857110602755573546113319249614969286722620165019579992, 176325802978280743693532663121176163945319636533960], [97020113522510250855589867475222260258224826204919144623174382, 220874587339999909152937343458835908268171060892394445388, -237346365398593011887418131705311536940372352971716], [-64126890284288627517399204226343590341453638254965793316181364, -158482372641758425817318839336370773544785066133333674040, -597298674179478711213259100363192839028301035885720], [-585998709614553470626282254082176440693040148900782204390202410, -77944878663188038008993845834659342978335616725692433558, -18201775952417888945820954382139357597710776230478], [-620048004601002083958010733775652352636330228802332685345456310, -563361029418389016474171717335819406572599037847625172016, 580600946053894862967732277183549716583486136686608], [-250145548321919869426768518941898079681876477475591120782929976, 405898602177708483551388115741634311996179924291019046482, -134700451974639550379205231737367858753054969769286], [610014378982385901855379188924941364877064965446362863876442964, -122445827905652113889611986061859929182268825909565749072, 242036933224823391279523605911955085074486792963696], [160568358881686253416897949170150905523122607470340109882233214, -314531051414266948816079480450296383777136832950530957572, -1005317391809873528781517951512226802979776889487700], [362233638624399555631218233542456173240612054996265779606873206, 981689384952963568234447781844438941266797404705223406032, 106108144186697995298438197033815207865898437592592], [-787845943322569565418520387974845539496163899588725023294308814, 115693134767101705288811605440232722144494506907879391604, -1768585308105843276259155640210655450066538012525948], [-172179421405668170377364268756678276230370015490734991423071724, -751174078293468131517680115113602634413112313327366791720, -689127052493950409944154741412472850729440428787016], [219295662270020010698226946201717395755778606621330955402798302, -421591818454286573524547933802116175474456349276695933138, 564020156199726339968982209039638575823310011140294], [-1652107569132385554974175728689228205968023853595991290601886806, -791357941989047833647273255445806015987596859084654914440, 848183247273491263268380758915619906919086106203608], [908027045047592904109386358817493765692690208025241703196508828, 1079177343660836130491156421374188932266897421833599225876, -1828767426972650059690226999920995926226094469608028], [-1300413438092373106382068569080035418115806665022295902978777274, 1514569241957043932115602583832048628752700712857298540286, 1279525100803951888862044982878604479346799478922454], [1632345256086669603369014475939225465468552340010846165826219686, -753950689848946370445053225567761040111332835601845377784, -1332191972229928289726474213448105531924547171245656], [878196332998882376947991950171200205023545350476385758435878852, -423999310676587370932193497926363034250513551676137140168, -1339292005706111513115277155266431474673112687444840], [329575569757884207319984440715790149442793902153158125649533482, 183235578923078899603306309080858405323751344786732670592, 3200647789634466370737907720712107195819421144957056], [-174606526626632856780116338911543342924618145313697202052811496, 381307996638743709455476006433504379052092820168008487822, -557937486404336540950655652854625625294187927829338], [443629266129071404565669755829026748670254155310488256890362002, 1723324554935935520391451055419283551865740632676644574144, 1727800098325566009860533502276793568863379520495296], [-1807028329913979460781803348543903078900419416253572279366349568, 1404320970477928195510711408077667130005043410681960828050, 990866051541834765695715232963644792704908238962170], [-1261500940289151432505732068425462898718768808751429279892201380, -208433596825588086940383253826173445628648727541870326076, 3991047621313402065910533498073839387132472773902868], [1665415840849395251888332079768082281191883232602909792622490550, 1237614859124685041471008575175548226549978310191201598008, -376273744422035798885412954712827259151750784782696], [-3082552515157165718784597781551466914762736803352295120310949510, 958797136623601134576952660983188216452710087090944165712, -2043696594838321838233304730403219016656428980057712], [-2956915260790346358877721862242161925296334890845437509361346492, 1548130230226837890834291223623245993762018398367366620136, -1929399346731092967769766645108848374065564740998648], [2143442030518439421340261438716538794006826242902953843953413328, -1254845517967784473243052249986046775836170125445952344916, -3900284593780230576257180814379995507636232518963684], [-1226818695149449197189521782680544645185764286957791606318282704, -4314077067920365858167493058521000329142140656657573739566, 8273470669392347602759018529058948554504973178652218], [-526173933764215075363410419213637449552110002489084130187612856, 4161583688547556867420536318640705503590084843316322802420, 884053592636272063088807302329433366119581852799492], [2079130556338981694061927447054839169108112674602250158325227630, -188545983981622928309448249810083751744221908574124069080, 5498296201119995309979050282190368894881686360348232], [-3888989161678430622674990234890233776345115490316653929451255828, -4343081665094700035345137973026936762512458116606792899356, -1093270914633950718440389271969469534746308683205964], [-967925242343580658968515606070257095831050798513614562309794832, -3979506699527992661056050763899314705694208904527828915032, 5876734606241221801875683982150454776417243067441608], [-2948679072882155639747237617104350510570316365385165136422305518, -4636499661022261354472409390449726738708822973627836932440, 6228016178475495691050131611288893198398713719765960], [3578075095391171985914241934815203983292181510961547139246520278, 4669120003073463018180615305982631541408833690625014386694, -8220612935798234185816552882943733632685370606542210], [-2284745193949278091980002767715492939624994006289395643897547056, 9306054482877827240823872811474324151063697109913225357486, -3334148652950767902898428559067287238491694062165946], [-3482374692111154253538434935061655843694357021461799240220303550, -2299748721379149245645330161450753957119035316446402890872, -4198161655747805324966677524051280258780377799077336], [7206444851498405628874121461013258994909213427165899289784305950, 6546639159545632327904900167332576397077401084591564502350, 1422756328820624647732096012396904678308030886857062], [7757961316175163606251653471350963061971075227318527116372021252, -7591897194849172962061380606805801662039669608970725454336, 4238345302998022646503919140325673038067565393061376], [2362477281111942258473051757145002204242988354163255908113188842, 4817699846175150966092418814360484525035149693649287705112, -3062423532409141069563346240328833448415504118045704], [7252496566949643315996307464471904418750516948491737809119134876, 3038261222304125993635499513561985019312035505881282867520, 18407088826473257549001846705366057196212164954819136], [3472808634604922110022934092053499065594112600828648598580961222, -11798688182574541675458710730665532493362887736540543873728, 4247565608112517789132988228308601348079644456474176], [6460489603154240261050671233280602264580964124623034531810578830, 8659344596409178174110115288173620424368542724387656177270, -21493818749489693246073522004976960813593949007922770], [-1732196790424510111199781133275836728417414353357596256092226328, -3946740534242334995459051851820059596954905914409577402350, -25277616218384661923558281598462733223777399051278470], [-7778415777764681725340989337470341163139557348988196062358758490, -11368430636684923638926147099892242762749149521497269457006, 15200108924037869259133384361995537205448789585173754], [4289218158183554475565950697825621126179493762357164577452176220, -7457622447380794255808226840602621456894634448670624153388, 616962900389817114885491642345909527761900152950116], [3470698331227217384346396749354153482699846833339028420299855908, 17368868512205755458588842071875982538797925256089663527252, -29829429766571026167357041696933436817551796450275356], [-12681525960388085000583676422603364505384416353412848290888314054, 13128508610110323296193835770679127275749191275940552500912, -20371730390022072694637437408833554758922934923166608], [11254004606583494787001921825044299115340190823787010709742802238, 18732001435345889544573333003174009793171543132566489184878, -13134805577062265275509497710520512136478028125629178], [-7879230801678115796678546074427204842784210926265488194135096856, 25078076206550813526741722792390262343216377742348834422342, 8948833029243100094276885290746627611516931160862142], [-11446814303534665614283157147079144612971809522458460582434823644, 20322836339069825807738557216915703111029789274631605714512, -12011205873266155489265110106484872631746881961014128], [13763594695709062497811980274014569108455307773784164539584076284, 4361801153590195895879545059401932215947128366994747779204, 67085155999988739374839626188446849304850761993297620], [-10996484430260629559203080631722138163611512177275705531065798334, -35309233084200774073080944739007491494700370907229268096200, -4790173718950130520196357042934352099654752000060520], [1430731023969621222312996314567521724315467093936764074833754412, -13167382039831185106585104800723458513661236444845153844228, -9948694216739517035210764811559169971815455506610260], [-5998461097247889100386322207459281185748608061636208383801941578, -30485885540207764172515095677330003606890001206088485915244, -50008034987077396710779992120569066206082266478698204], [-15665110351173770967865063523711446743427404438130211924179433208, -9815111209994732207458085260594944171782731817169984120428, -37765607768563409034844666542980319090605916784011996], [26891267536520949951614963729345692249283304639694146268997775854, 6426891298355867274342256821282138268190387110159826652600, 25329429815103586312733720679948806202201713816684568], [-5391712656415732445493976556635996730120799568291862080207458096, 65511611720726394859362985355771915254030367947057327528400, 2412692522644862631681215096529577350206651091963408], [48371582295427901871171499252623537375794992261905229598679145542, -12874515378391643574824611465546865945646827465401758154542, 13959633926328521587051130222088111476301278454712122], [-294995730130400419055263457587645584936830452799328885675678702, 46631622048640026554525915832975939991124872761344729252684, -23032034244214882739470655808782388207796710246799044], [-5297904191230440141394164585556170156388263053878215802312581148, -17629229481943043150873999157268347662861926628742248397524, -44271687547941251766450701573360415449441945475288932], [-69187033534087867684825629375343540173549526467316023584185512888, -14232489241830470605575252760127376288067378190507309777256, 20569754927927828515478900495950061344093625606662776], [-41907437412915243758469766701735268331561611458245698184688820198, 6685898065980842540856593716229210285543397633151391333424, -57859251197134755879015559141579414033496595839074320], [-47470491555032398574124357369983505818997063134994833625270153756, 13963818817026585069212099183239408612659538514482924462568, 32468522452198872462205251312620027878155957756362760], [-50055854202907450075998251378440214785121551746087022654901235888, 51881865823675497062818458297786777746919996442923434817220, 11278947888001588015393286485742167493168630314846740], [-73349628528482773979433847020388109282975510973439729872928754302, -32601630369736546976674703399981639913195472328727875465312, -29296002653984545684230969241828938059632030741141472], [5553921125826632708255305715015964386104063923114553112177705874, -13520477555924053981339508466611155545932534309234195156648, 102757030400366816249850459317393773744459634788013112], [-3402344599882392079897267213263894860217176217931869870997424092, -19541576200857891373312949741609279916546669946534039642832, 57404723899567515872547303709895683698449653916628208], [-49108677089110212724695701977264555581137902402239253680371358166, 49856674401041306915697060911232014245443845802015444475504, -100620167480092498765826076242648717443244132304007376], [113383343572765293550850739368923699803003252839645321099721935070, 902863305618727209701175749629876116023168581639217666490, -45498905399332280456721608330207491421412235283756478], [-63565143747501176574244193923825485913051538991882061125506331016, -56725608557366455082492313171283821782912536418514914371962, -126609721518485534462478102575004450390342340723676418], [27372003894397594666693638842281431352214075870558073191976119274, -120246218000116301145900741849420370070318776852819263955276, -62146849893171593398983219021469812681772154070409020], [21629888934706275151263538244871290991336741180076683494913916850, -81494537262658397900719428491361179552731225744070001359736, 49553725226895902565434894287986687429898107516548904], [-30656992467459950048288617421406614359614330305398974621443065660, 79237348038128600350959710892051221992757286464798854478028, 87367534153084347853861490054580501281557452328324284], [-22990154282931665580875674542990619716015711579031106978251248388, -158240051407148550533552504588988126510204215565859549695980, -230368172186104739138418066214356860880310309357245020], [246525991746109370443488114802920724748289968755416995443333375008, -41758444788084509281321049132684692397141041579243956773536, -1628736856421522822859223289982322577178026681513760], [89570561948903392824232821798846913165196674174447088253899710566, -6588355777897185109095602047371624577878743750767438766370, 480682403307493909666427536041702526110957771933737526], [11574658518877572075937668486321164356422046537039201636204914902, 16339544805391660936922283979448793189244952463207848879980, 133884697926605298526828433671423015828968451459219420], [284625927883390773128823373066950236890668344925591959290012281966, -76908412846151234520164210529983738150627562381960778915370, -15781791070522917448147619835504160763427923264468850], [24603728095685621924918029761813921746171869916061444967849690280, -4993051931934179545380462496207530113499818964357967729670, 395299694314965836576422471093573757911790156981111170], [-204194967129965088124137180776207517386955829536105859509872058060, -48429729887981306685176725573186522294784049440725548218920, -178977292043890081037120395240958576582670454620831048], [-171559347472342120962051205867683674202645796332269204012787565156, -138196880261188478817241176263013948483825694877757216811152, 348796504335534728467340554606385940898780928694795312], [-65751334621889976143173759368674789125940069783852552927984196612, 258430339445126720736728890759164672298753980649758056039028, 81614846960723224607356836806681678926703964493336452], [-19354721630176777189676194348840185855709264785023497283531143114, -377037055901065698308349114819925138709533053225165940681008, 63594223154196157665108726791344016962564541577154320], [-186826676724302552714780881796412805475562560997617337761971577214, -82323285378737993285629913664141028298441646165306818116136, 171836803589992919794585980784376668875389818236814008], [-91655709011677053555433646555312777284088549639833043450771494246, -133964272903638844930388835604711257952264012834493600634704, -97842454020975105111318951472284451179684474481138064], [-44487190451278727016612640477062190188681111225645397977390311944, -53829561398749517852337508864304584513498671091545084677886, -46855218397895669089766844427670468359082947074520278], [243098164107948666169983397197898217170817604795409130260720988894, 81866943246309328568649413341904084455655930191809501805936, -4947924965372804835918473414760196294086871820314064], [-156362619866667854610694825816888925275405661980109662661828520486, 192043339802747517648447344821737573461291701433257202396948, 204289737875385170785627141064368290854686513523955876], [29711593543699185642624973520628425495061933370471037524150420758, 151703246408171872789376715418504950072464271194089278692962, -410297847945347666401377735082824980673375825761508342], [-104680540054246128527775541777412311102944637975875378757973246608, -331814324449523353435628973576304748457310681269515436118166, -17683710253344685573856052167165414616034861947215438], [-68822372544301236051098516826264954338422121738403015803597358594, -145494946607382689799703507435362718878740406150906808817230, 436264431013515338405269418268978167985463660173132186], [59418232579681205976760554417767495123526258950363988594724284900, 641389418493474023915869630934337453834539011017310935760092, 245992388832768471978158400070587249653478586149179916], [-106262321469185830193644682248484748996453837128068144685862072706, 101960874933740235947094081942116776401513387312467379380388, 907819811028453888218778578200842553648741392384645492], [-64890012240294762209979129445571734779595204323532590663726298660, 409774698386843546162861896503813857827465215511045058723944, -1051958270198493817962930288083071559439556955493285752], [-168135281862397445090183093906762416950116886465882386154280167552, 67596768688740319065631875132699992735205404377735746496340, -881830951367124172851194848420447770528471950059555356], [571942084360792272245186206174010710124357078155961811400894641990, 348198054460605815991487822336856284626187595775621107627706, 138823680455412539458626177071061671697123179033733954], [191517192977711716705740036138300793481815398000317091900259347620, -221086534170233355330529187830923044254127653820015679043820, 781860885100937957376621925273006492933057366673051812], [-263178732520605138315607294860232993600870400679956476335564541990, 437899522152400966662723527786452987202984388392253872546184, 860547552569906129260567644561072317560878491321980968], [128020311955947375645280805807487818371940226484312166858780229198, -342400690493949150297475216158980636938909143041881543319534, -1335365840748105247595844935785939103400023917100099718], [318211381886567300722901621666543087870855631094250175759199512920, 342289556416292505761680649372090733026427871602491932217602, 1159013794318891773740843864719870598063416645533166378], [536375452609460503118439932117407770248649810900617003368611718142, -248319940299609084703884500728706003406175139934238339855472, -773985662473747461458098141682293993020783593336003888], [-465708431340993542874044330369249712696978115671236284425810722454, 217494851747821305155369713952443349857868524963109642559792, -1647551662757655225299939937635191581221503264058308368], [675331615257265945322537982586517349538375560933167962057996846272, -404317346957883839205758076439637704277038656198976251786632, 353989539696123692164718962687047596750921779702776792], [94114752001030761756464353197593837054329089452858971934362242396, 325913065135151393587079551348876360683937199383323180872664, 1223599794778346045303277705565578670507955367625017528], [-448674034625801854379781449458677465750518415775693794366392242110, 101144512269774700486417067888159844677761021961779452740428, -295009342696310160115001931590904742530707499772696260], [-195268444258241191716293017386189675311793708659613553662712678824, -135031822176150441855838984717847314654568817594449367258232, 1773271779545646551432026232729856205505143584359590440], [-12261921483216665344675825761389881872752464614281042147283762994, -440562479265317184928302808443661177999183792094265254653904, -198530306331225994668330361382425868884367564548135952], [135342141913739532070458080775317773227851246700062325333377441946, 470315631826726493086081073097415330828368792851139785388392, 743641200260905335044505163036354780048548262353372552], [-1118935325047809432047983556304655495746636910970609684080397790000, 985604920410478799202392045458158574110128457760637215011696, 202478329988282732295169581651776415783786987131160624], [-65797959282824041783617171910466283763862721019673428099179389892, 520005980134409458949437191704582008604036363388546539317460, 435294445453252007577986099255062342485531466617558372], [448912341179881921978097425006463845693633954124410846191093364052, -164380707111753908421116190466636467122680389174725490534456, 1149182909752881828340994838506205225655039701302954856], [1799366735905002851182353015495534364349800188722831100913910021978, 628207337761082799963248592904537476323529256779091852966384, -691142758548085876971248070104898576133862378662850384], [-172663141016950910408726638231407204451193105746329089238185031474, 636653099525781637502415730965257655344711679387708126261290, 1181147695871675936588511623218401019625953068739113330], [-1182149053648851324489955646897730853557072973883994514537555045024, -168501820902615052126951026024551854405592672497444424871690, 2571951663658082859609297224466181239170287279793784366], [1820752706004192828643818403059997993534435482571146807410615729450, -227292010509096821304770910036544923412255427828620450247136, -2227740506767197032788895461559092465270186257752405856], [640873425303962681811203838251259695020732047533699718552959107716, 2478812862378983188090675206716345558270001162013996826310068, -745913988045849494236393928712961556475197584875617340], [-2212757879815636163926246297059327383288648737819606288442484156628, -2083471766516202697486287875721361531534396971941187229995636, -563655673778366211386942168812197527577384439811743620], [28909243774278246310785205739942116978690240717313162514205192368, -1650103163816378967318518633403217149861833760744990444021584, 5724450278481747564876101223515200962628179360005035632], [925969816525739423240654875924673212112188050458706260436846708582, 2840587886059333390450287685481624547760603487807292961396274, -3264989458790722776604131074895750049890033166470158310], [-927889809558894096699079035892589084167765833670619599377237776464, 599123664156850805407671628241497625330521056995914981698046, -3323024822416547511773695055844886916983503046120592426], [2554083096578837375397477374665755947156253176256899484239874144614, 330966696131821557174388209998616334100682289172140339034820, 2817858226456924672218655645538656027423579097354133012], [-23949522040082267536434112189143675085347126647739745336611139308, 1037145363752295957649372082448265319191570107364482526611916, 1133631791902985604508875337204718686780261749051175356], [4076674200186939088429659333307723208917744690295910142011848637024, 430065047456886064010050934885884196008263725868314334398256, -1317476769869909778926012764310626204499664989915502864], [1114749512495608261809433777937368683093699629180955686218083902690, 5270051495348627244577999889004534777747326837699078462794752, -2503703514893629429040805579235808290187701639105815552], [-1677572297679490574130419581183715152044844135061428345123619979294, 2799095053308692518452325829926448423968519138882831225534692, 1734743253153775882800169226124705989119887706918049460], [-2277549435052909357615215321439614967159948736024253837307165263958, -882626986953002999298034323609815983105968533939182098213464, -6425473352368129081240214002565831264608949557670691128], [138865699338325398447156757222049139011438589032696694956830250862, -4492942456495729161228334822056215551340768168373359858523370, -8043569133873487313049114014083294234350577160615107890], [-1656362812249309253087639094721135830858555574383973940625903036246, 929152254352771483971252632043898547910425914840230218561212, -2555431229470698390618503373102474377454067429219470996], [-669460969982077275419455232272422831584836199522244554734058397040, -6885535909886706535457139477529255185505844790574246736363874, 2216377765214704218991551263458653419074755916766788854], [722278016063051875794847742560916134633518926841913503350081956386, -6796895800527061625821646815626271133995025053008696659972320, 1643459896502354680517235173465287277888305373159456160], [-2738295579029622607760284821993000930334006012386127460673253195036, 5647087450449661930340206877609153998730258967269489494273852, -3282297223777538170663688416041318186435916184367295508], [1417252800626380190289933852677502070852655955055131286967870342184, 5679707386337708191619062714994721262265424257091059145340704, 11351592802267237015868446987155871940868877751457424800], [3207040731851515716766812035500103968136766024569737705106973832616, -5011930634379589719092301030907191942629798995088329932754226, -6256634247018737184032856458715421840974071037423741722], [2568481595517801506098032973130754542334726072562683274581317279822, 1437359601182233415267177598435992931250270561576518628606540, 6529452670367278119633203614703112730466837319597036604], [-3175566834766128023499220877200141200591560601792318143356522701556, 5316999411997054588185895811753098972651416842172794925972864, 5205032350359783953894213826335758565595876132250569600], [3916630634163530457453609765253885936918891772186586083926960938672, 5410032641738770442537747694710909342278940298908510388039724, -1570555482445538135872871238945139230148433174057683044], [2262641881441496820268571259664848855729770528085801382188936382658, 4519176753655824981198010393792511673126637740307389574701328, 7696812245924056088511018316452266171881433259078657616], [-11018394352832535191699885392187752819119154117441819905633363300954, -3478540371865065002987519544968828052171464773271909955837466, 3717496198766555832263673284668091363340066716477635038], [-2931843318053645927769029761295557960014800715218923313997277657956, -4526397520691574713793113821988707885419282649824962173072992, 5018410911411082388761380511998394406025825556661774880], [-2224851595909886677589805115602550118249549103251418023241619520236, -7759333384440575601701049723685220895428749689896847493499780, 5756386205286956743538073798636470880047401963933434412], [2952356178741784250237998877186143288125876474921047395389183276024, 2089312181339086393234639089571044261582470508831282426385544, -14195255458489480868692928992038388003805980806476151000], [11214696676700090832385291946153719281104992217841147117928644915722, -450654845694255636553373289347279747823415854262637026025336, 3204452339081864926251123214933467335176496808064058152], [1057527007247861420254926004578492628095048287893379669791257216680, 8161178571022194716512620132013738693729581365943841521832578, -15238554060072878232185592674724345191496080135980053846], [-4073036968627882866191410403242254981866658966025891371367814118102, 10728773281879568787262400222299631224519654156597841350653812, 1459462941468086927678231963967824532762884353860642948], [6093406056026438099223963473115559678346470497402906236217476791148, 5302671619536213532901327461138875515859476007349053405920620, 9055418615543605494822780285982689836220275745319882204], [3511665508260120736870242531162954287196412643154275371550470053846, -5869097807759213697323412548786726139937725886829510376052994, 15791089051094732730622336492482739913628217394227850454], [156283301790349067886732566347076303836203069502717811990709155126, -6756834254096053397628368888855535173434782929318012989011704, -18694075452925796381574220597258988014899132269045885528], [-6649688394401426263221101521430975931153773519036190887637634253550, -6569350551629715635869157954804696031993602620149581589790860, -25517564755695435593044527367841384931238011058369720188], [4894912501003907923485303369897462475558483289449213234182061633304, -2009812376753421400690686367202805321453447722031718751180270, -21962038198008302052941424693742519578476701374795585158], [14843925119217107550728688099886437324069479992701751462020448706874, -3241196453465025823692030166215343723197344762660880474149180, -2038084928745165793584503941459876824264617239443250668], [7808030893667366814526923285281514715453480063501522677259834656822, -21420963137697491512379448673777331191797494683422933134671422, -16927383509248849202314874980575837839430339220106122518], [434977735334282587005195889870931795182538271685964475435994193408, -2213372046477427139878225026600826641922119384584032584941802, 32317804302576218681143230668328384421964675051864223438], [-23384987396584621740162978413364573192360998144420770369579060197034, 1249054817893927839880356456596945410259425360853230067385244, 854709549131748933976062673560617285899776414286290892], [505338156299115616227672165412139375656689785341602962536277274210, 11978298382274298517529815745113300688254333856524815584514452, 15913005127626877378308184804714181907070841802328042788], [5291866926750274694232349352422954350721762313713045895049887152052, -9086597495520656458955705744390637720975985092371431526906036, -16551769259918235884788408152899605271016231031881974468], [11421520530758956611029548363383906393709648756205092688660207363268, 5106306599159977761060696962015342129435879275961397134612636, -18427016556182626283444726079101396127767351974940534580], [-6126101016723696387120640111221983841628191694771954089647572627150, -772135890103064195741140666957221059788973380184156609303936, -13951535068056421091036111486301369592278843057252926336], [-6843659757177653059338130871733678889219221954912569910086523552618, 21393885929811090675742969198992430672218862037744732621902118, 8378639370694349948852780386297208557100702668125854238], [-8056744933170494918281093043625566130849177009638181165951646650852, 17424673605397283690524283108261034817732611013679117688269196, -18565107889182684807283288245082414999906010351940907908], [-16962391286077149312040479565188936281411989063718872591613387074300, 16959196079665933338447468112606728489092013099875991670844884, 10680897903678466514974438295398823741852886758286196324], [24005094053448044429077781791308810677497018575644237819424635436122, -11000864276502881008086170880008474021169859910498438131459856, 8990656378491085894415441605377303372741115226602085296], [-14165923363483798522096847682992666552642610385242495681722467167474, -13004622496361264029887093732715924173396487835380354281493542, 17759638303286096088112143340725859534734718337183819490], [-13323809276705001939826437625726668962867216424047128428250602244608, -14095851413866571065635312982359725467145462152249529544565680, 48135587792123285524107553913992949212100682859550851728], [-30416157765531100890156919466803815815612514929651871052409570154208, -6487689808488739530780835360889473232476462418138621702005754, 476714716559834217605563871806257579675232271150112382], [21303448374408913070072229603073490279336084855233093067601949268034, -6323629798134892408980569073112114363532992194771554710747164, -18329986646826381384853834965103349868568311912713629260], [-14175666969513561621211764187988365902196782106179534918231563304600, -207106943008878788021417021463499054811403842976782722033772, 49209455683589060544353691789209835931992996098297506596], [-18110120014414084786146320738184165581148725220957705415763654502834, -2066330424521066111173703089333070101458519446357057082752458, -745403092809237021261381179048236532559907006825410450], [1386498641358318622045218064388419075120701566360287680642362652590, 29445156121833138719883598027196287078805690325944078537140992, -11175633795564955343436545717296238336695831398510590208], [-2460236242830532029195274543208160611723817851915304678363311635440, -21157929177713079416147683639158771112243471069591177564278232, 5695804510324405462903685075782851233033411093978289480], [-20117680149567565414826791146073284174502371958234052152710303322212, 24382868147755674792598006044429605407613448141636231054218836, -47232753164367314131562592720225347126701766355933032220], [66890040151454039891237573497561283239247229960196135076073906455930, 9031745990709601950868970390239650688029932056859241776889072, 8054478668614491042024345263889787766045017543353356208], [-16659123660928790081731590901833031974050463231020563207233088416978, 15088390748374003503246290793069101769686744320621012240172602, -62209521045356982938680746715640273021376363186232315710], [13233423590041495048651772944289204914214810403712974171296531739828, 52939254250382966313024622338385809916424555409706077212848340, -4050951709994880019276444006382425353883858648370741916], [59159383658862774752774007363593680873391350267549705847668140221130, -4056594478849077667767904691575917315471167965736846872743528, 59646493184438247334293549766379566703497118108855736696], [-1451267738462119712828361561257061816082479373777738797144577402660, -62146841415214085232139876091867356496718265239518740338457140, 49423364469906272858105578164679165396406385540340620732], [-63851660697995046863930914591060059245088186965481083935955324045592, -34327329739454841967694306453799110570494162281155225069716996, 10754413465198268483929256137959437798357979018565252524]];
    aps := ConvertToHeckeField(raw_aps);
    chi := MakeCharacter_3_a_Hecke(Universe(aps));
    return ExtendMultiplicatively(weight, aps, chi);
end function;


// To make the newform (type ModFrm), type "MakeNewformModFrm_3_40_a_b();".
// This may take a long time!  To see verbose output, uncomment the SetVerbose lines below.
// The precision argument determines an initial guess on how many Fourier coefficients to use.
// This guess is increased enough to uniquely determine the newform.
function MakeNewformModFrm_3_40_a_b(:prec:=3)
    chi := MakeCharacter_3_a();
    f_vec := qexpCoeffs();
    Kf := Universe(f_vec);
    // SetVerbose("ModularForms", true);
    // SetVerbose("ModularSymbols", true);
    S := CuspidalSubspace(ModularForms(chi, 40));
    S := BaseChange(S, Kf);
    maxprec := NextPrime(2999) - 1;
    while true do
        trunc_vec := Vector(Kf, [0] cat [f_vec[i]: i in [1..prec]]);
        B := Basis(S, prec + 1);
        S_basismat := Matrix([AbsEltseq(g): g in B]);
        if Rank(S_basismat) eq Min(NumberOfRows(S_basismat), NumberOfColumns(S_basismat)) then
            S_basismat := ChangeRing(S_basismat,Kf);
            f_lincom := Solution(S_basismat,trunc_vec);
            f := &+[f_lincom[i]*Basis(S)[i] : i in [1..#Basis(S)]];
            return f;
        end if;
        error if prec eq maxprec, "Unable to distinguish newform within newspace";
        prec := Min(Ceiling(1.25 * prec), maxprec);
    end while;
end function;


// To make the Hecke irreducible modular symbols subspace (type ModSym)
// containing the newform, type "MakeNewformModSym_3_40_a_b();".
// This may take a long time!  To see verbose output, uncomment the SetVerbose line below.
// The default sign is -1.  You can change this with the optional parameter "sign".
function MakeNewformModSym_3_40_a_b( : sign := -1)
    R<x> := PolynomialRing(Rationals());
    chi := MakeCharacter_3_a();
    // SetVerbose("ModularSymbols", true);
    Snew := NewSubspace(CuspidalSubspace(ModularSymbols(chi,40,sign)));
    Vf := Kernel([<2,R![325448454458769408, -1161004440960, -533574, 1]>],Snew);
    return Vf;
end function;