import%20marimo%0A%0A__generated_with%20%3D%20%220.13.15%22%0Aapp%20%3D%20marimo.App(width%3D%22medium%22)%0A%0A%0A%40app.cell(hide_code%3DTrue)%0Adef%20_(mo)%3A%0A%20%20%20%20mo.md(%0A%20%20%20%20%20%20%20%20r%22%22%22%0A%20%20%20%20%23%20A-4%20-%20Skyhawk%20Roll%20Performance%0A%0A%20%20%20%20From%20a%20Linkedin%20post%20by%20Elliot%20Seguin%20-%20https%3A%2F%2Fwww.linkedin.com%2Fposts%2Felliot-seguin-ba2a6434_testpilot-fly-aviation-ugcPost-6887428405525139457-o5co%2F%0A%0A%20%20%20%20%3E%20The%20legendary%20roll%20rate%20of%20the%20A-4%2C%20is%20it%20really%20that%20fast%3F%20I%20was%20told%20in%20engineering%20school%20an%20A-4%20rolled%20at%20700%20degrees%20per%20second%2C%20roughly%20twice%20the%20roll%20rate%20of%20an%20F-16.%20When%20the%20opportunity%20came%20up%20to%20evaluate%20the%20A-4%20I%20became%20pretty%20focused%20on%20this%20data%20point.%0A%0A%20%20%20%20%3ETalking%20to%20the%20owner%2C%20the%20manual%20says%20720%20deg%2Fsec%20and%20limits%20the%20pilot%20to%20one%20full%20deflection%20roll%20due%20to%20roll%20yaw%20coupling.%20Reading%20online%20there%20was%20speculation%20that%20the%20720%20number%20had%20been%20a%20misprint%20in%20an%20old%20A-4%20manual%20and%20in%20fact%20the%20number%20was%20270%20deg%20per%20sec.%20Every%20A-4%20pilot%20I%20talked%20to%20was%20quick%20to%20compliment%20the%20roll%20rate%20but%20no%20one%20seemed%20to%20have%20real%20data.%20Then%20we%20went%20flying.%0A%0A%20%20%20%20%3EThe%20flight%20was%20about%20demonstrating%20flatline%20speed%20so%20the%20maneuvering%20was%20extra%2C%20but%20we%20did%20some%20rolls.%20I%20don%E2%80%99t%20know%20that%20we%20ever%20did%20full%20deflection%20rolls%20but%20in%20the%20videos%20show%20you%20can%20see%20a%20lot%20of%20deflection.%20The%20video%20shows%20a%20%E2%80%9Cfast%E2%80%9D%20roll%20in%20each%20direction%20(speed%20~400%20KIAS).%0A%0A%20%20%20%20%3EWe%20topped%20out%20on%20this%20flight%20at%20500%20Knots%2C%20~100%20knots%20faster%20than%20this%20roll.%20The%20airplane%20is%20capable%20of%20but%20more%20speed%20and%20likely%20more%20deflection%2C%20based%20on%20that%20I%20think%20700%20deg%2Fs%20is%20a%20real%20number.%20What%20do%20you%20think%3F%0A%0A%20%20%20%20From%20Gordon%20McClymont's%20comment%20on%20the%20post.%0A%0A%20%20%20%20%3ESo%20I%20dug%20out%20the%20final%20report%E2%80%A6The%20rapid%20roll%20test%20we%20performed%20was%20at%2015K%2F350KIAS%2F1G%2FFull%20stick%20in%201%2F4%20sec%20for%20360%20deg%20of%20roll%20(with%20empty%20drop%20tanks).%20For%20Left%20roll%20it%20was%201.68%20secs%20and%20Right%20was%201.56%20secs.%20These%20numbers%20are%20similar%20to%20your%20clip.%20Without%20taking%20into%20account%20the%20roll%20rate%20acceleration%20that%20equates%20to%20230%20deg%2Fs.%20Being%20generous%20we%20could%20maybe%20assume%20a%20270%20deg%2Fs%20steady%20state%20roll%20rate.%0A%0A%20%20%20%20%3EI%20agree%20that%20at%20a%20higher%20speed%20and%20with%20the%20drop%20tanks%20removed%20the%20steady%20state%20roll%20rate%20may%20well%20be%20increased-but%20no%20where%20near%20700%20deg%2Fs.%20I%20agree%20100%25%20with%20Murcat%20that%20these%20roll%20rates%20are%20most%20impractical-if%20not%20impossible.%20As%20with%20all%20legendary%20jet%20fighters%20around%20the%20world-the%20tales%20get%20taller%20with%20the%20years!%20The%20Scooter%20rolled%20pretty%20fast-but%20not%20that%20fast!%0A%0A%20%20%20%2015%2C000ft%20350KIAS%20Mach%200.69%20u0%20%3D%20221.604%20m%2Fs%0A%20%20%20%20%22%22%22%0A%20%20%20%20)%0A%20%20%20%20return%0A%0A%0A%40app.cell(hide_code%3DTrue)%0Adef%20_(mo)%3A%0A%20%20%20%20mo.md(%0A%20%20%20%20%20%20%20%20rf%22%22%22%0A%20%20%20%20%23%23%20A-4D%20Aerodynamic%20Data%0A%0A%20%20%20%20Aerodynamic%20data%20for%20the%20A-4D%20Skyhawk%20from%20%5BAIRCRAFT%20STABILITY%20AND%20CONTROL%20DATA%20By%20Gary%20L.%20Teper%20April%201969%20NASA%20report%5D(https%3A%2F%2Fwww.robertheffley.com%2Fdocs%2FData%2FTeper--NASA_CR-96008.pdf%5D).%0A%0A%20%20%20%20%7Bmo.image(%22public%2FA4RollRate%2FA4Data1.png%22)%7D%0A%0A%20%20%20%20%7Bmo.image(%22public%2FA4RollRate%2FA4Data2.png%22)%7D%0A%0A%20%20%20%20%7Bmo.image(%22public%2FA4RollRate%2FA4Data3.png%22)%7D%0A%20%20%20%20%22%22%22%0A%20%20%20%20)%0A%20%20%20%20return%0A%0A%0A%40app.cell(hide_code%3DTrue)%0Adef%20_(mo)%3A%0A%20%20%20%20mo.md(%0A%20%20%20%20%20%20%20%20r%22%22%22%0A%20%20%20%20%23%23%20Steady%20State%20Roll%20Rate%20Calculation%0A%0A%20%20%20%20%23%23%23%20Pure%20Rolling%20Motion%0A%0A%20%20%20%20%24%24%0A%20%20%20%20%5Cbegin%7Balign%7D%0A%20%20%20%20%5Clarge%20L_p%20%26%3D%20C_%7Blp%7D%20%5Cfrac%7Bb%7D%7B2u_0%7D%20%5Cfrac%7BQSb%7D%7BI_x%7D%20%5C%5C%20%5Cnonumber%0A%20%20%20%20%5C%5C%0A%20%20%20%20%5Clarge%20L_%7B%5Cdelta%20a%7D%20%26%3D%20C_%7Bl%20%5Cdelta%20a%7D%20%5Cfrac%7BQSb%7D%7BI_x%7D%20%5C%5C%20%5Cnonumber%0A%20%20%20%20%5C%5C%0A%20%20%20%20%5Clarge%20%5Ctau%20%26%3D%20-%5Cfrac%7B1%7D%7BL_p%7D%20%5C%5C%20%5Cnonumber%0A%20%20%20%20%5C%5C%0A%20%20%20%20%5Clarge%20p(t)%20%26%3D%20-%5Cfrac%7BL_%7B%5Cdelta%20a%7D%7D%7BL_p%7D%20(1%20-%20e%5E%7B-t%2F%5Ctau%7D)%20%5CDelta%20%5Cdelta_a%20%5C%5C%20%5Cnonumber%0A%20%20%20%20%5C%5C%0A%20%20%20%20%5Clarge%20p_%7Bss%7D%20%26%3D%20-%5Cfrac%7BL_%7B%5Cdelta%20a%7D%7D%7BL_p%7D%20%5CDelta%20%5Cdelta_a%20%5C%5C%20%5Cnonumber%0A%20%20%20%20%5C%5C%0A%20%20%20%20%5Clarge%20p_%7Bss%7D%20%26%3D%20-%5Cfrac%7B2u_0%7D%7Bb%7D%20%5Cfrac%7BC_%7Bl%20%5Cdelta%20a%7D%7D%7BC_%7Blp%7D%7D%20%5CDelta%20%5Cdelta_a%20%5C%5C%20%5Cnonumber%0A%20%20%20%20%5C%5C%0A%20%20%20%20%5Cend%7Balign%7D%0A%20%20%20%20%24%24%0A%0A%20%20%20%20%24b%24%20-%20Wingspan.%0A%0A%20%20%20%20%24S%24%20-%20Reference%20area%2C%20wing%20area.%0A%0A%20%20%20%20%24u_0%24%20-%20True%20airspeed.%0A%0A%20%20%20%20%24Q%24%20-%20Dynamic%20pressure%20%3D%20%24%5Cfrac%7B1%7D%7B2%7D%5Crho%7Bu_0%7D%5E2%24.%0A%0A%20%20%20%20%24I_x%24%20-%20Moment%20of%20inertia%20around%20the%20x-axis.%0A%0A%20%20%20%20%24%5CDelta%20%5Cdelta_a%24%20-%20Aileron%20deflection%20angle.%0A%0A%20%20%20%20%24L_p%24%20-%20Roll%20moment%20due%20to%20roll%20rate%20%24p%24.%20Roll%20damping.%0A%0A%20%20%20%20%24L_%7B%5Cdelta%20a%7D%24%20-%20Roll%20moment%20due%20to%20aileron%20deflection.%20Aileron%20control%20power.%0A%0A%20%20%20%20%24%5Ctau%24%20-%20Time%20constant%2C%20roll%20constant.%0A%0A%20%20%20%20%24p(t)%24%20-%20Roll%20rate%20as%20a%20function%20of%20time.%0A%0A%20%20%20%20%24p_%7Bss%7D%24%20-%20Steady%20state%20roll%20rate.%0A%20%20%20%20%22%22%22%0A%20%20%20%20)%0A%20%20%20%20return%0A%0A%0A%40app.cell(hide_code%3DTrue)%0Adef%20_(mo)%3A%0A%20%20%20%20mo.md(r%22%22%22%23%23%23%20Geometry%20and%20Moment%20of%20Inertia%22%22%22)%0A%20%20%20%20return%0A%0A%0A%40app.cell%0Adef%20_()%3A%0A%20%20%20%20S%20%3D%2024.2%20%20%20%20%20%20%20%23%20m%5E2%0A%20%20%20%20b%20%3D%208.4%20%20%20%20%20%20%20%20%23%20m%0A%20%20%20%20Ix%20%3D%2010659%20%20%20%20%20%23%20kgm%5E2%0A%0A%20%20%20%20%23%20Max%20aileron%20deflection%20%0A%20%20%20%20%23%20TODO%20Need%20to%20determine%20what%20the%20max%20is%20for%20the%20A-4%0A%20%20%20%20%23%20For%20now%2C%2022.5%20degrees%20matches%20Gordon's%20data%20of%20360%20deg%20roll%20in%201.56s%20%0A%20%20%20%20da%20%3D%2022.5%20*%200.017453%20%20%23%20rad%0A%20%20%20%20return%20Ix%2C%20S%2C%20b%2C%20da%0A%0A%0A%40app.cell(hide_code%3DTrue)%0Adef%20_(mo)%3A%0A%20%20%20%20mo.md(r%22%22%22%23%23%23%20Calculation%20Functions%22%22%22)%0A%20%20%20%20return%0A%0A%0A%40app.cell%0Adef%20_(Ix%2C%20S%2C%20b)%3A%0A%20%20%20%20def%20rollTimeConstant(rho%2C%20u0%2C%20clp)%3A%0A%20%20%20%20%20%20%20%20Q%20%3D%200.5%20*%20rho%20*%20u0**2%0A%20%20%20%20%20%20%20%20L_p%20%3D%20clp%20*%20(b%2F(2*u0))%20*%20((Q*S*b)%2FIx)%0A%20%20%20%20%20%20%20%20return%20-1%2FL_p%0A%20%20%20%20return%20(rollTimeConstant%2C)%0A%0A%0A%40app.cell%0Adef%20_(b)%3A%0A%20%20%20%20def%20pss(u0%2C%20clda%2C%20clp%2C%20da)%3A%0A%20%20%20%20%20%20%20%20return%20-((2*u0)%2Fb)%20*%20(clda%2Fclp)%20*%20da%0A%20%20%20%20return%20(pss%2C)%0A%0A%0A%40app.cell(hide_code%3DTrue)%0Adef%20_(mo)%3A%0A%20%20%20%20mo.md(r%22%22%22%23%23%23%20Function%20to%20plot%20roll%20rate%20and%20roll%20angle%20versus%20time%22%22%22)%0A%20%20%20%20return%0A%0A%0A%40app.cell%0Adef%20_(da%2C%20np%2C%20plt%2C%20pss%2C%20rollTimeConstant)%3A%0A%20%20%20%20def%20plotRollRateRollAngleVsTime(rho%2C%20u0%2C%20Cl_p%2C%20Cl_da)%3A%0A%20%20%20%20%20%20%20%20timeConstant%20%3D%20rollTimeConstant(rho%2C%20u0%2C%20Cl_p)%0A%20%20%20%20%20%20%20%20steadyStateRollRate%20%3D%20pss(u0%2C%20Cl_da%2C%20Cl_p%2C%20da)%0A%0A%20%20%20%20%20%20%20%20rollRate%20%3D%20%5B%5D%0A%20%20%20%20%20%20%20%20rollAngle%20%3D%20%5B%5D%0A%20%20%20%20%20%20%20%20time%20%3D%20%5B%5D%0A%0A%20%20%20%20%20%20%20%20currentRollAngle%20%3D%200%0A%0A%20%20%20%20%20%20%20%20dt%20%3D%200.01%0A%0A%20%20%20%20%20%20%20%20for%20t%20in%20np.arange(0%2C%205%2C%20dt)%3A%0A%20%20%20%20%20%20%20%20%20%20%20%20p%20%3D%20steadyStateRollRate%20*%20(1%20-%20np.e**(-t%2FtimeConstant))%0A%20%20%20%20%20%20%20%20%20%20%20%20rollRate.append(p%20*%2057.29578)%0A%20%20%20%20%20%20%20%20%20%20%20%20currentRollAngle%20%2B%3D%20p%20*%2057.29578%20*%20dt%0A%20%20%20%20%20%20%20%20%20%20%20%20rollAngle.append(currentRollAngle)%0A%20%20%20%20%20%20%20%20%20%20%20%20time.append(t)%0A%0A%20%20%20%20%20%20%20%20plt.figure()%0A%20%20%20%20%20%20%20%20plt.plot(time%2C%20rollRate)%0A%20%20%20%20%20%20%20%20plt.axvline(timeConstant%2C%20color%3D'r')%0A%20%20%20%20%20%20%20%20plt.xlabel(%22Time%20(s)%22%2C%20fontsize%3D15)%0A%20%20%20%20%20%20%20%20plt.ylabel(%22Roll%20Rate%20(deg%2Fs)%22%2C%20fontsize%3D15)%0A%20%20%20%20%20%20%20%20plt.title(%22Roll%20Rate%20vs%20Time%22%2C%20fontsize%3D15)%0A%20%20%20%20%20%20%20%20plt.show()%0A%0A%20%20%20%20%20%20%20%20plt.figure()%0A%20%20%20%20%20%20%20%20plt.plot(time%2C%20rollAngle)%0A%20%20%20%20%20%20%20%20plt.axhline(360%2C%20color%3D'r')%0A%20%20%20%20%20%20%20%20plt.xlabel(%22Time%20(s)%22%2C%20fontsize%3D15)%0A%20%20%20%20%20%20%20%20plt.ylabel(%22Roll%20Angle%20(deg)%22%2C%20fontsize%3D15)%0A%20%20%20%20%20%20%20%20plt.title(%22Roll%20Angle%20vs%20Time%22%2C%20fontsize%3D15)%0A%20%20%20%20%20%20%20%20plt.show()%0A%20%20%20%20return%20(plotRollRateRollAngleVsTime%2C)%0A%0A%0A%40app.cell(hide_code%3DTrue)%0Adef%20_(mo)%3A%0A%20%20%20%20mo.md(r%22%22%22%23%23%23%20Test%201%20-%20350KIAS%2015kft%22%22%22)%0A%20%20%20%20return%0A%0A%0A%40app.cell%0Adef%20_(NamedTuple)%3A%0A%20%20%20%20class%20Data350KIAS15kft(NamedTuple)%3A%0A%20%20%20%20%20%20%20%20%23%20Coefficients%20for%20Mach%200.69%20(350KIAS%20%40%2015kft)%0A%20%20%20%20%20%20%20%20Cl_p%20%3D%20-0.27%20%20%20%23%20per%20rad%0A%20%20%20%20%20%20%20%20Cl_da%20%3D%200.077%20%20%23%20per%20rad%0A%0A%20%20%20%20%20%20%20%20%23%20Air%20data%20for%20Mach%200.69%20(350KIAS%20%40%2015kft)%0A%20%20%20%20%20%20%20%20rho%20%3D%200.77109%20%20%23%20kg%2Fm%5E3%0A%20%20%20%20%20%20%20%20u0%20%3D%20221.604%20%20%20%23%20m%2Fs%0A%0A%20%20%20%20t1%20%3D%20Data350KIAS15kft()%0A%20%20%20%20return%20(t1%2C)%0A%0A%0A%40app.cell%0Adef%20_(rollTimeConstant%2C%20t1)%3A%0A%20%20%20%20print(f'Roll%20time%20constant%3A%20%7BrollTimeConstant(t1.rho%2C%20t1.u0%2C%20t1.Cl_p)%3A.2f%7Ds')%0A%20%20%20%20return%0A%0A%0A%40app.cell%0Adef%20_(da%2C%20pss%2C%20t1)%3A%0A%20%20%20%20print(f'Steady%20state%20roll%20rate%3A%20%7Bpss(t1.u0%2C%20t1.Cl_da%2C%20t1.Cl_p%2C%20da)%20*%2057.29578%3A.2f%7D%20deg%2Fs')%0A%20%20%20%20return%0A%0A%0A%40app.cell%0Adef%20_(plotRollRateRollAngleVsTime%2C%20t1)%3A%0A%20%20%20%20plotRollRateRollAngleVsTime(t1.rho%2C%20t1.u0%2C%20t1.Cl_p%2C%20t1.Cl_da)%0A%20%20%20%20return%0A%0A%0A%40app.cell(hide_code%3DTrue)%0Adef%20_(mo)%3A%0A%20%20%20%20mo.md(%0A%20%20%20%20%20%20%20%20r%22%22%22%0A%20%20%20%20%23%23%23%20Test%202%20-%20450KIAS%2015kft%0A%0A%20%20%20%20Note%20the%20changes%20in%20%24C_%7Bl_p%7D%24%20and%20%24C_%7Bl%20%5Cdelta_a%7D%24%20at%20Mach%200.87.%0A%20%20%20%20%22%22%22%0A%20%20%20%20)%0A%20%20%20%20return%0A%0A%0A%40app.cell%0Adef%20_(NamedTuple)%3A%0A%20%20%20%20class%20Data450KIAS15kft(NamedTuple)%3A%0A%20%20%20%20%20%20%20%20%23%20Coefficients%20for%20Mach%200.87%20(450KIAS%20%40%2015kft)%0A%20%20%20%20%20%20%20%20Cl_p%20%3D%20-0.28%20%20%20%23%20per%20rad%0A%20%20%20%20%20%20%20%20Cl_da%20%3D%200.065%20%20%23%20per%20rad%0A%0A%20%20%20%20%20%20%20%20%23%20Air%20data%20for%20Mach%200.87%20(450KIAS%20%40%2015kft)%0A%20%20%20%20%20%20%20%20rho%20%3D%200.77109%20%20%23%20kg%2Fm%5E3%0A%20%20%20%20%20%20%20%20u0%20%3D%20281.402%20%20%20%23%20m%2Fs%0A%0A%20%20%20%20t2%20%3D%20Data450KIAS15kft()%0A%20%20%20%20return%20(t2%2C)%0A%0A%0A%40app.cell%0Adef%20_(rollTimeConstant%2C%20t2)%3A%0A%20%20%20%20print(f'Roll%20time%20constant%3A%20%7BrollTimeConstant(t2.rho%2C%20t2.u0%2C%20t2.Cl_p)%3A.2f%7Ds')%0A%20%20%20%20return%0A%0A%0A%40app.cell%0Adef%20_(da%2C%20pss%2C%20t2)%3A%0A%20%20%20%20print(f'Steady%20state%20roll%20rate%3A%20%7Bpss(t2.u0%2C%20t2.Cl_da%2C%20t2.Cl_p%2C%20da)%20*%2057.29578%3A.2f%7D%20deg%2Fs')%0A%20%20%20%20return%0A%0A%0A%40app.cell%0Adef%20_(plotRollRateRollAngleVsTime%2C%20t2)%3A%0A%20%20%20%20plotRollRateRollAngleVsTime(t2.rho%2C%20t2.u0%2C%20t2.Cl_p%2C%20t2.Cl_da)%0A%20%20%20%20return%0A%0A%0A%40app.cell(hide_code%3DTrue)%0Adef%20_(mo)%3A%0A%20%20%20%20mo.md(%0A%20%20%20%20%20%20%20%20r%22%22%22%0A%20%20%20%20%23%23%23%20Integrating%20Roll%20Rate%0A%0A%20%20%20%20%24%5CLarge%20p(t)%20%3D%20-%5Cfrac%7BL_%7B%5Cdelta%20a%7D%7D%7BL_p%7D%20(1%20-%20e%5E%7B-t%2F%5Ctau%7D)%20%5CDelta%20%5Cdelta_a%24%0A%0A%20%20%20%20%24%5CLarge%20%5Cint_%7B0%7D%5E%7Bt%7D-%5Cfrac%7BL_%7B%5Cdelta%20a%7D%7D%7BL_p%7D%20(1%20-%20e%5E%7B-t%2F%5Ctau%7D)%20%5CDelta%20%5Cdelta_a%20dt%24%0A%0A%20%20%20%20Antiderivate%20%24F(t)%24%0A%0A%20%20%20%20%24%5CLarge%20F(t)%20%3D%20-%5Cfrac%7BL_%7B%5Cdelta%20a%7D%7D%7BL_p%7D%5Cleft(%5Ctau%20e%5E%7B-t%2F%5Ctau%7D%2Bt%5Cright)%20%5CDelta%20%5Cdelta_a%24%0A%0A%20%20%20%20%24%5CLarge%20F(t)%20%3D%20p_%7Bss%7D%5Cleft(%5Ctau%20e%5E%7B-t%2F%5Ctau%7D%2Bt%5Cright)%24%0A%0A%20%20%20%20Definite%20integral%20from%20%24a%24%20to%20%24b%24%20is%20antiderivatives%20%24F(b)%20-%20F(a)%24%0A%20%20%20%20%22%22%22%0A%20%20%20%20)%0A%20%20%20%20return%0A%0A%0A%40app.cell%0Adef%20_(np)%3A%0A%20%20%20%20%23%20Figures%20for%20Gordon's%20350KIAS%2015kft%2C%201.56s%20to%20roll%20through%20360%20deg%0A%20%20%20%20_t%20%3D%201.56%0A%20%20%20%20_tau%20%3D%200.5411978780018623%0A%20%20%20%20_pss%20%3D%20338.55599519673757%20%2F%2057.29578%20%20%23%20rad%0A%0A%20%20%20%20%23%20Anti-derivative%20F(t)%0A%20%20%20%20def%20F(t)%3A%0A%20%20%20%20%20%20%20%20return%20_pss%20*%20(_tau%20*%20np.e**(-t%2F_tau)%20%2B%20t)%0A%0A%20%20%20%20%23%20Calculate%20definite%20integral%20from%200%20to%201.56%0A%20%20%20%20rollAngle%20%3D%20(F(1.56)%20-%20F(0))%20*%2057.29578%20%20%23%20deg%0A%0A%20%20%20%20print(f'Roll%20angle%20after%201.56s%20%3D%20%7BrollAngle%3A.2f%7D%20deg')%0A%20%20%20%20return%0A%0A%0A%40app.cell%0Adef%20_()%3A%0A%20%20%20%20import%20marimo%20as%20mo%0A%20%20%20%20from%20typing%20import%20NamedTuple%0A%20%20%20%20import%20numpy%20as%20np%0A%20%20%20%20import%20matplotlib.pyplot%20as%20plt%0A%20%20%20%20return%20NamedTuple%2C%20mo%2C%20np%2C%20plt%0A%0A%0Aif%20__name__%20%3D%3D%20%22__main__%22%3A%0A%20%20%20%20app.run()%0A
7d8ca1fadfb8a78b6191d78e49bbc385c88d76a4f1e88feae5c7859025b7bf79