
// Make newform 1152.2.r.e in Magma, downloaded from the LMFDB on 24 June 2026.
// To make the character of type GrpDrchElt, type "MakeCharacter_1152_r();"
// To make the character of type GrpDrchElt with Codomain the HeckeField, type "MakeCharacter_1152_r_Hecke();"
// To make the coeffs of the qexp of the newform in the Hecke field type "qexpCoeffs();"
// To make the newform (type ModFrm), type "MakeNewformModFrm_1152_2_r_e();".
// 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_1152_2_r_e();".
// 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 := [14641, -26620, 4356, -704, 27528, -26388, 9592, -5096, 5298, -4684, 3244, -1680, 672, -196, 48, -8, 1];
        Kf := NumberField(Polynomial([elt : elt in poly]));
        AssignNames(~Kf, ["nu"]);
    end if;
    Rf_num := [[1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [47055550867160087747121, -26164925147230112974401, -15244081341253689782319, -32320287519502590624801, 68021624826747292165787, -26753192554640509996863, 9168711207946115797743, -10166015451929744711481, 9420796042103919530085, -7478169727907646469221, 4108396839281842001805, -1828610314207632467421, 544837829173739081899, -144569705798207667999, 24534878448868799823, -3542765331747320841], [7194999162513882, -8844524677651729, -4340506041073433, -3563883675780494, 13084848716420246, -5114941575664177, 1464163253344806, -1789798761336670, 1723884698935294, -1440688308780473, 808374348634909, -370935070238998, 111213454254400, -30093617256945, 5133556971680, -763942000002], [115561991961034084519042, -159262717919621177467617, -68576283508535700585930, -31133680207361701945403, 189033940401929944667249, -77875485628221007325544, 21203509192382187565801, -23905505641415785758192, 22532157411020853560232, -19350708047654698205647, 11004017457270374454924, -5166333671914485938481, 1556069652609418637035, -427337198197798344030, 73197694197690115323, -11130591326480295602], [-850183677927686712719993983, 701141455257919465355628128, 430615534826883954173995479, 471777263951946094048207636, -1119093269634643894285386605, 423809822818633076551156992, -139759507950121115100475571, 158268858938675445008328548, -151998545733187161806590267, 121945547863069262093532816, -68062559813357123822586529, 30353514257385579109440788, -9094965481906851252108405, 2411906047131857776991872, -411547132157716902983199, 59090349116137330522156], [244205147062169704580576, -198322981475705469243146, -124334589151843049893496, -138990067210407790110996, 318940110168828589603045, -120422247305938877855061, 40223719680787074416137, -45246797037611188730001, 43445610541927565715862, -34719538026397935066932, 19368469211958363402434, -8613613116335313829002, 2580790927259582584863, -683021780482278575707, 116549458437688470151, -16672966944053949767], [-1218134286703300247908, 993170372900434791733, 631253437878301238363, 701282036612306368299, -1600993988048435862117, 598025696011359970233, -200606089666861008412, 225336475966123460783, -217807534629041998706, 173870633156026297485, -97127166903798011787, 43132172058070375979, -12929512163744633687, 3417621173901014885, -583435770921430222, 83254441669016195], [347716407785219, -279470932674714, -178433447199915, -200580115826046, 451741206168243, -169189320269868, 57025494185977, -63879192629834, 61570024345219, -49082753599874, 27396834130473, -12157033806082, 3643425366295, -962588123140, 164299773841, -23425567614], [-2804618928601018723544179005, 2205652057493108393394671820, 1425234353706996762218178131, 1614334301256205591246709736, -3579443390670116520853478381, 1335920796289486676056794864, -453336600590056638617506213, 506124012011507579128051960, -488361278600192943929997621, 388561943479684861962560932, -216891708747773392386771937, 96084888523170774893549536, -28798251025020622906512865, 7598913251343959577291528, -1297146149114261948860093, 184500663932331760880552], [288143156724360756560612761, -217234533363616704563723700, -149363263625953221265259807, -171834938966092833311884124, 363481082337770225657148841, -133661647799125012576257022, 46166377860366791323658853, -51546536574523245922707412, 50034018357660898455246681, -39589772201858054344502828, 22091831180446503803692749, -9736420296779932642088224, 2918114496837293949946861, -766973758490093350612846, 130931633988755719691549, -18487855448241233125056], [332425684600055608077812593, -272153061253147455603849924, -173559746437441196292042615, -186861605618419554101056228, 434507456516141767089620197, -162806490008746693519043574, 54409405004643403323311069, -60776192493876793464651892, 58717956653772548398968945, -46951947686744360689947596, 26257965362531128380791253, -11676823598838345238722552, 3501748320226825565836401, -926466603948397590149686, 158218142665077846574389, -22607565394009246203568], [-326982050033832535832193, 261949637284390436774470, 168506415806824291140539, 189167990616641667167636, -424100573179187504967503, 158042868009163662648568, -53423751710030692243359, 59775548196145346892556, -57781152001034842761061, 46028267326001952829694, -25706446743754811448853, 11397162373403652154408, -3416423381946416836951, 901970243394928871736, -153983647990249267475, 21923332400030472528], [3433104270672875771941485, -2751195011699007423881210, -1786148388856897169147186, -1954194453852119980635120, 4448319863711578845024964, -1663369103551475665280584, 554080785650065312509897, -623814721742830332479580, 603285277433045682728331, -482436349233063036903438, 269625546113908075943672, -119796654545764154840788, 35914935804516934374562, -9495678229796327931844, 1621113229861001672099, -231361103294550671568], [-424540327260797519033611580, 331518658670705150452466956, 219158010310650244986744023, 246460329399386866639028505, -546264332880225524077384851, 203309836170061821460423420, -68584704405261687216408350, 76995263560819415181199109, -74481632398451839070248890, 59340368274961885089329128, -33135447495306309200039803, 14682983946142850485802809, -4400965599302855665675549, 1161375692152327919528044, -198245679428936313175460, 28199686213166864000725], [-435495401105430723494619578, 352826744361123026182515382, 227586366727265053840138045, 246249662091608119549684981, -565626895613490553306070925, 211606701857774654022055658, -70554006262405001956795374, 79193376017605177311293789, -76593234648039892166573676, 61253533440913721976915850, -34249680495542493657721609, 15222529070855267135680541, -4564598219811960637243739, 1207134713919733135762354, -206125255146324892207360, 29428109469504434946093], [9193926842502155259511973, -7220492554563439100592038, -4770848664680200670586425, -5322335690997950298535582, 11819301731700019349667291, -4394902346345379746040196, 1486046183236873553379989, -1664294153299638139915368, 1611133181984210169216633, -1283032882393077537543458, 716666882055458974079591, -317494819916684207566594, 95176671253912486935035, -25111417961019082918240, 4287089407564139953697, -609571461065940385948]];
    Rf_basisdens := [1, 5472292173965809716260, 641806760093410, 5472292173965809716260, 13538450838391413238027240, 2113401629471029228540, 7602702041279092220, 1840970757560, 13538450838391413238027240, 1230768258035583021638840, 1230768258035583021638840, 994962213448329039320, 5472292173965809716260, 615384129017791510819420, 615384129017791510819420, 10944584347931619432520];
    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_1152_r();"
function MakeCharacter_1152_r()
    N := 1152;
    order := 6;
    char_gens := [127, 901, 641];
    v := [6, 3, 2];
    // 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;

// To make the character of type GrpDrchElt with Codomain the HeckeField, type "MakeCharacter_1152_r_Hecke();"
function MakeCharacter_1152_r_Hecke( : Kf := false)
    N := 1152;
    order := 6;
    char_gens := [127, 901, 641];
    char_values := [[1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [-1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [-1, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0]];
    assert UnitGenerators(DirichletGroup(N)) eq char_gens;
    values := ConvertToHeckeField(char_values : pass_field := ISA(Type(Kf), Fld), Kf := Kf); // the value of chi on the gens as elements in the Hecke field
    F := Universe(values);// the Hecke field
    chi := DirichletCharacterFromValuesOnUnitGenerators(DirichletGroup(N,F),values);
    return chi;
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]];
    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 := 2;
    raw_aps := [[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 1, 1, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0], [0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1], [0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, -1, 0], [3, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 2, 4, -2, 0, -2, 0, 0, 0, 0, 0, 0, 0], [0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1], [0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, -1, 0, 0], [0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 1], [0, 0, 0, 0, 0, 0, 0, 0, 0, -2, -2, 0, 0, 1, 1, 0], [6, 0, -1, 0, 0, 0, 0, 6, 0, 0, 0, -1, 0, 0, 0, 0], [0, 0, 0, 0, -4, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, -2, 0, 0, 1], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, -1, 0], [0, 0, 0, 0, 3, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, -1, 0, 0], [0, 0, 0, 0, 5, 5, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, -3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [1, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1], [0, 0, 0, 0, -4, 0, 0, 0, -3, 0, 0, 0, 0, 0, 0, 0], [3, 0, -3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, -10, 0, 0, 0, 5, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 2, 0, 0], [0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, -1], [0, 0, 0, 0, -6, -2, 6, 0, 6, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 4, 0, 0, 1, 1, 0], [9, 0, 6, 0, 0, 0, 0, 9, 0, 0, 0, 6, 0, 0, 0, 0], [0, -2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, -1, -1, -9, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0], [0, 0, 0, 0, -7, -7, 11, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -3, 0, 0, 0, 1, 0], [0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 3], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 2, 0], [0, 0, 0, 0, -6, -6, 6, 0, 6, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3], [0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 2, 0, 0], [0, 0, 0, 0, 0, -8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 2, 0, 0, -1, -1, 0], [0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3], [-4, 0, 5, 0, 0, 0, 0, -4, 0, 0, 0, 5, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, -2, -2, 0, 0, 2, 2, 0], [0, -1, 0, -4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 3, 3, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, -4, 0, 0, -1], [0, 0, 0, 0, -11, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 0, 0, 0, 2, 0], [0, 0, -2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 5], [0, 0, 0, 0, 0, 0, 0, -11, 0, 0, 0, -6, 0, 0, 0, 0], [0, 0, 0, 0, -10, -18, 10, 0, 10, 0, 0, 0, 0, 0, 0, 0], [-3, 0, -2, 0, 0, 0, 0, -3, 0, 0, 0, -2, 0, 0, 0, 0], [0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 5], [0, 0, 0, 0, 0, 0, 0, 0, 0, -2, -2, 0, 0, -5, -5, 0], [0, 4, 0, -2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 4, 0, 0], [0, 0, 0, 0, 0, 0, 0, -12, 0, 0, 0, 9, 0, 0, 0, 0], [0, 0, 0, 0, -15, -15, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0], [0, 0, 0, 0, 8, -2, -8, 0, -8, 0, 0, 0, 0, 0, 0, 0], [0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, -5], [0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 4, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, -3, 0, 0, 0, 1, 0, 0], [0, 0, 0, 0, -9, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0], [-1, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, -5, -5, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 4, 0, 0], [0, 0, 0, 0, 0, 0, 0, 18, 0, 0, 0, -1, 0, 0, 0, 0], [0, 2, 0, -2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, -5, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, -5], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -7, 0, 0, 0, -1, 0], [0, 0, 0, 0, 17, -2, -17, 0, -17, 0, 0, 0, 0, 0, 0, 0], [0, -4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -4, 0, 0, -1], [0, 0, 0, 0, 0, 0, 0, 0, 0, -7, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -3, -3, 0], [-24, 0, -5, 0, 0, 0, 0, -24, 0, 0, 0, -5, 0, 0, 0, 0], [1, 0, 4, 0, 0, 0, 0, 1, 0, 0, 0, 4, 0, 0, 0, 0], [0, 0, 0, 0, 9, 9, -10, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 3, 0, 0], [0, 2, 0, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [-7, 0, 11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, -5, 0, 0, 3], [0, 0, 0, 0, -2, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0], [15, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 11, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, -3, 0, 0], [0, -5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -5, 0, 0, 3], [0, 0, 0, 0, 18, 8, -18, 0, -18, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1], [0, 6, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 11, 11, -15, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 19, 19, -11, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 1, 0, -4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -7, 0, 0, 0, 1, 0], [-6, 0, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 21, 18, -21, 0, -21, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 2, 0, 0, 2, 2, 0], [0, 0, 0, 0, -1, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, -8, -8, 0, 0, 3, 3, 0], [0, 0, 0, 0, -11, -11, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, -39, 0, 0, 0, 2, 0, 0, 0, 0], [0, 0, 0, 0, -11, -11, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0], [13, 0, -15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 4, 0, 0, 0, -21, 0, 0, 0, 0, 0, 0, 0], [9, 0, 21, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3], [0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 13, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -3], [0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 4, 0, 0, 7, 7, 0], [-12, 0, -7, 0, 0, 0, 0, -12, 0, 0, 0, -7, 0, 0, 0, 0], [0, 0, 0, 0, 7, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0], [0, 4, 0, -6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, -8, 0, 0, 0, 0], [0, 0, 0, 0, -7, -7, 20, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, -6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -7, 0, 0, 0, -8, 0], [0, 0, 0, 0, 19, 0, 0, 0, -6, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -5, 0, 0, 0, 4, 0], [0, 0, 0, 0, 0, 0, 0, 20, 0, 0, 0, -1, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 0, 0, 0, -2, 0, 0], [0, 0, 0, 0, 26, 18, -26, 0, -26, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, -24, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, -2, -2, 0, 0, -1, -1, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, -2, 0, 0], [0, 2, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, -11, 0, 0, 0, 0, 0, 0, 0, 0, 5, 0, 0, -11], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, -3, 0], [0, 0, 0, 0, -17, -22, 17, 0, 17, 0, 0, 0, 0, 0, 0, 0], [0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, -1], [0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 3], [0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 12, 0, 0, 0, 0, 0], [6, 0, -3, 0, 0, 0, 0, 6, 0, 0, 0, -3, 0, 0, 0, 0], [-13, 0, 2, 0, 0, 0, 0, -13, 0, 0, 0, 2, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, -2, -2, 0, 0, 1, 1, 0], [0, 0, 0, 0, -9, -9, -15, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 0, 0, 0, 1, 0], [-9, 0, 13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, -2, -16, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, -9, 0, 0, 0, 3, 0, 0], [0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, -3], [0, 0, 0, 0, -14, 0, 14, 0, 14, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, -12, -12, 0, 0, 3, 3, 0], [0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, -4, 0, 0, 5], [0, 0, 0, 0, 0, 0, 0, 0, 0, -5, 0, 0, 0, -5, 0, 0], [0, 0, 0, 0, 0, 0, 0, -18, 0, 0, 0, -15, 0, 0, 0, 0], [0, 0, 0, 0, 23, 23, -10, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, -4, 0, -2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -7, 0, 0, 0, -1, 0], [-3, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 28, 8, -28, 0, -28, 0, 0, 0, 0, 0, 0, 0], [0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 3], [0, 0, 0, 0, 4, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, -5, 0, 0, 0, 0, 0, 0, 0, 0, -5, 0, 0, -5], [0, 6, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, -3, 0, 0, 0, 0], [11, 0, -13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -3, 0, 0, 0, -2, 0], [0, 0, 0, 0, 19, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0], [-33, 0, -7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 7], [0, 0, 0, 0, 9, 2, -9, 0, -9, 0, 0, 0, 0, 0, 0, 0], [-21, 0, -8, 0, 0, 0, 0, -21, 0, 0, 0, -8, 0, 0, 0, 0], [0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, -7, 0, 0, -1], [0, -4, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, -3, 0, 0, 0, 6, 0, 0], [-1, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -5, 0, 0, 0, 7, 0], [0, 0, 0, 0, 28, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 3, 0], [0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 0, 0, -13], [0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, -15, 0, 0, 0, 0], [0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, -7], [45, 0, 6, 0, 0, 0, 0, 45, 0, 0, 0, 6, 0, 0, 0, 0], [0, 0, 0, 0, -26, 0, 0, 0, 37, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, -12, -12, 0, 0, -5, -5, 0], [0, 4, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, -3, 0, 0, 0, 0, 0, 0], [0, 0, 0, -13, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, -13], [0, 0, 0, 0, -10, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, -2, 0], [-3, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, -7], [0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, -1, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, -4, -4, 0, 0, -4, -4, 0], [0, 0, 0, 0, 42, 0, 0, 0, -39, 0, 0, 0, 0, 0, 0, 0], [-37, 0, -16, 0, 0, 0, 0, -37, 0, 0, 0, -16, 0, 0, 0, 0], [0, -10, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [5, 0, 27, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, -35, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 22, 14, -22, 0, -22, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 0, 0, 0, 4, 0, 0], [0, 0, 0, 0, -32, -12, 32, 0, 32, 0, 0, 0, 0, 0, 0, 0], [15, 0, -28, 0, 0, 0, 0, 15, 0, 0, 0, -28, 0, 0, 0, 0], [-16, 0, -7, 0, 0, 0, 0, -16, 0, 0, 0, -7, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 0, 0, 0, 4, 0, 0], [0, 0, 0, 0, 0, 0, 0, 39, 0, 0, 0, 10, 0, 0, 0, 0], [0, 4, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, -4, 0], [0, 0, 0, -7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -7], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 6, 0], [0, 0, 0, 0, 0, 0, 0, -11, 0, 0, 0, -8, 0, 0, 0, 0], [0, 0, 0, 0, -36, -4, 36, 0, 36, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, -2, -2, 0, 0, 1, 1, 0], [0, 2, 0, -2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 13, 13, 15, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 14, 0, 0, 0, 0], [0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0], [-5, 0, -17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, -3, 0], [0, 0, 0, -3, 0, 0, 0, 0, 0, 0, 0, 0, -4, 0, 0, -3], [0, 0, 0, 0, -11, 0, 0, 0, -12, 0, 0, 0, 0, 0, 0, 0], [0, 14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 14, 0, 0, -1], [0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, -10, 0, 0, 0, 0], [0, -9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -9, 0, 0, 9], [0, 0, 0, 0, 0, 0, 0, 30, 0, 0, 0, 23, 0, 0, 0, 0], [0, 4, 0, 14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -13, 0, 0, 0, 5, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 13, 0], [0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 1], [-6, 0, 29, 0, 0, 0, 0, -6, 0, 0, 0, 29, 0, 0, 0, 0], [0, 2, 0, -2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, -41, -41, 27, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, -2, 0, 0], [0, 0, 0, 0, 0, 0, 0, -33, 0, 0, 0, 12, 0, 0, 0, 0], [0, -2, 0, -10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, -9, 0, 0, 3], [0, 0, 0, 0, -1, 0, 0, 0, -32, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 2, 0], [0, 0, 0, 0, 18, 18, -18, 0, -18, 0, 0, 0, 0, 0, 0, 0], [0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 0, 0, -7], [-15, 0, 28, 0, 0, 0, 0, -15, 0, 0, 0, 28, 0, 0, 0, 0], [0, 0, 0, 0, -21, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15], [-32, 0, 3, 0, 0, 0, 0, -32, 0, 0, 0, 3, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, -18, -18, 0, 0, -3, -3, 0], [0, 0, 0, 0, 31, 31, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, -14, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 24, 36, -24, 0, -24, 0, 0, 0, 0, 0, 0, 0], [0, -6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -6, 0, 0, -11], [0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 8, 0, 0, -1, -1, 0], [24, 0, 11, 0, 0, 0, 0, 24, 0, 0, 0, 11, 0, 0, 0, 0], [0, 0, 0, -9, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, -9], [0, 6, 0, -4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 23, 23, -24, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 21, 21, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 7, 0], [33, 0, 19, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, -3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -3, 0, 0, 9], [0, 0, 0, 0, 0, 0, 0, -25, 0, 0, 0, -4, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, -5, 0, 0, 0, -6, 0, 0], [0, 0, 0, 0, 3, -2, -3, 0, -3, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, -4, -4, 0, 0, -1, -1, 0], [0, 0, 0, 0, -3, 0, 0, 0, -24, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 10, 0, 0, 0, 0, 0], [-1, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 5], [0, 0, 0, 0, 28, 0, 0, 0, -27, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -5, 0, 0, 0, 4, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 14, 14, 0, 0, 5, 5, 0], [12, 0, -39, 0, 0, 0, 0, 12, 0, 0, 0, -39, 0, 0, 0, 0], [0, 0, 0, 0, 35, 0, 0, 0, -4, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 14, 14, 0, 0, -7, -7, 0], [0, 0, 0, 0, 0, 0, 0, -9, 0, 0, 0, 26, 0, 0, 0, 0], [0, 0, 0, 0, 13, 13, -14, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 3, 0], [0, 0, 0, 0, -6, 12, 6, 0, 6, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, -49, 0, 0, 0, -4, 0, 0, 0, 0], [0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 11], [34, 0, 7, 0, 0, 0, 0, 34, 0, 0, 0, 7, 0, 0, 0, 0], [0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 37, 37, -33, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 3, 0, 0], [-5, 0, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, -19, 0, 0, 0, 16, 0, 0, 0, 0, 0, 0, 0], [0, -8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -8, 0, 0, 7], [0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, -11], [0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 3], [0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 2, 0, 0], [0, 0, 0, 0, 17, 17, -37, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [13, 0, -5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -9, 0, 0, 0, 2, 0], [0, 0, 0, 19, 0, 0, 0, 0, 0, 0, 0, 0, -2, 0, 0, 19], [60, 0, -2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, -7, 0, 0], [0, 0, 0, 0, -39, -26, 39, 0, 39, 0, 0, 0, 0, 0, 0, 0], [33, 0, -8, 0, 0, 0, 0, 33, 0, 0, 0, -8, 0, 0, 0, 0], [0, 0, 0, 0, -37, -37, 36, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, -5, 0, 0, 0, -2, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 19, 0, 0, 0, 4, 0], [0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 1], [0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 0, 0, 0, -3, 0, 0], [0, 0, 0, 0, 12, 2, -12, 0, -12, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 12, 0, 0, 0, -21, 0, 0, 0, 0, 0, 0, 0], [-37, 0, -12, 0, 0, 0, 0, -37, 0, 0, 0, -12, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 2, 0, 0, 9, 9, 0], [0, -10, 0, -4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]];
    aps := ConvertToHeckeField(raw_aps);
    chi := MakeCharacter_1152_r_Hecke( : Kf := Universe(aps));
    return ExtendMultiplicatively(weight, aps, chi);
end function;


// To make the newform (type ModFrm), type "MakeNewformModFrm_1152_2_r_e();".
// 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_1152_2_r_e(:prec:=16)
    chi := MakeCharacter_1152_r();
    f_vec := qexpCoeffs();
    Kf := Universe(f_vec);
    // SetVerbose("ModularForms", true);
    // SetVerbose("ModularSymbols", true);
    S := CuspidalSubspace(ModularForms(chi, 2));
    S := BaseChange(S, Kf);
    maxprec := NextPrime(1999) - 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_1152_2_r_e();".
// 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_1152_2_r_e( : sign := -1)
    R<x> := PolynomialRing(Rationals());
    chi := MakeCharacter_1152_r();
    // SetVerbose("ModularSymbols", true);
    Snew := NewSubspace(CuspidalSubspace(ModularSymbols(chi,2,sign)));
    Vf := Kernel([<5,R![4761, 0, -1242, 0, 255, 0, -18, 0, 1]>,<7,R![4761, 0, 1656, 0, 507, 0, 24, 0, 1]>,<11,R![1, 0, -4, 0, 15, 0, -4, 0, 1]>],Snew);
    return Vf;
end function;