7  java/time/Clock systemUTC()Ljava/time/Clock;   )net/luminis/quic/recovery/RecoveryManager(Ljava/time/Clock;Lnet/luminis/quic/Role;Lnet/luminis/quic/recovery/RttEstimator;Lnet/luminis/quic/cc/CongestionController;Lnet/luminis/quic/send/Sender;Lnet/luminis/quic/log/Logger;)V  java/lang/Object()V  net/luminis/quic/PnSpacevalues()[Lnet/luminis/quic/PnSpace;&net/luminis/quic/recovery/LossDetector   lossDetectors)[Lnet/luminis/quic/recovery/LossDetector;  ! scheduleLockLjava/lang/Object; #$% &'net/luminis/quic/HandshakeStateInitial!Lnet/luminis/quic/HandshakeState; ) *'handshakeState , -. hasBeenResetZ 0 12clockLjava/time/Clock; 4 56roleLnet/luminis/quic/Role; 8 9: rttEstimater(Lnet/luminis/quic/recovery/RttEstimator; < =>ordinal()I@ ABrun4(Lnet/luminis/quic/send/Sender;)Ljava/lang/Runnable; DEF GHnet/luminis/quic/log/LoggergetQLog()Lnet/luminis/quic/qlog/QLog; J K(Ljava/time/Clock;Lnet/luminis/quic/recovery/RecoveryManager;Lnet/luminis/quic/recovery/RttEstimator;Lnet/luminis/quic/cc/CongestionController;Ljava/lang/Runnable;Lnet/luminis/quic/qlog/QLog;)V M NOsenderLnet/luminis/quic/send/Sender; Q RSlogLnet/luminis/quic/log/Logger;U/net/luminis/quic/concurrent/DaemonThreadFactoryWloss-detection TY Z(Ljava/lang/String;)V \]^ _`java/util/concurrent/ExecutorsnewScheduledThreadPoolV(ILjava/util/concurrent/ThreadFactory;)Ljava/util/concurrent/ScheduledExecutorService; b cd scheduler/Ljava/util/concurrent/ScheduledExecutorService;f=net/luminis/quic/recovery/RecoveryManager$NullScheduledFuture e i jklossDetectionFuture&Ljava/util/concurrent/ScheduledFuture;m noapply()Ljava/util/function/Function; q rsgetEarliestLossTimeV(Ljava/util/function/Function;)Lnet/luminis/quic/recovery/RecoveryManager$PnSpaceTime; uvw xy5net/luminis/quic/recovery/RecoveryManager$PnSpaceTimelossTimeLjava/time/Instant; { |}rescheduleLossDetectionTimeout(Ljava/time/Instant;)V  ackElicitingInFlight()Z  peerAwaitingAddressValidation  getPtoTimeAndSpace9()Lnet/luminis/quic/recovery/RecoveryManager$PnSpaceTime;xcancelling loss detection timer (no loss time set, no ack eliciting in flight, peer not awaiting address validation (1)) D Zrecovery   unschedule D  logRecovery  instant()Ljava/time/Instant;  java/time/DurationbetweenP(Ljava/time/temporal/Temporal;Ljava/time/temporal/Temporal;)Ljava/time/Duration; toMillis()J u pnSpaceLnet/luminis/quic/PnSpace;peerAwaitingAddressValidation ackElicitingInFlight  >&net/luminis/quic/recovery/RttEstimatorgetSmoothedRtt > getRttVar makeConcatWithConstantsU(ILnet/luminis/quic/PnSpace;Ljava/lang/String;Ljava/lang/String;II)Ljava/lang/String; D ((Ljava/lang/String;Ljava/time/Instant;)Vxcancelling loss detection timer (no loss time set, no ack eliciting in flight, peer not awaiting address validation (2))  java/lang/Integermax(II)I@  ptoCountI  java/lang/Mathpow(DD)D # hasNoHandshakeKeysUgetPtoTimeAndSpace: no ack eliciting in flight and no handshake keys -> probe Initial  &  java/time/Instant plusMillis(J)Ljava/time/Instant; u 0(Lnet/luminis/quic/PnSpace;Ljava/time/Instant;)VTgetPtoTimeAndSpace: no ack eliciting in flight but handshake keys -> probe Handshake   Handshake yMAX   App # isNotConfirmedNgetPtoTimeAndSpace is skipping level App, because handshake not yet confirmed!  receiverMaxAckDelay  getLastAckElicitingSent isBefore(Ljava/time/Instant;)Z  6net/luminis/quic/RoleClient  noAckedReceived  ytimerExpiration,Loss detection timeout: Timer was cancelled. D  Zwarn MLoss detection timeout running (at %s) is %s ms too early; rescheduling to %s   java/lang/LongvalueOf(J)Ljava/lang/Long;  java/lang/Stringformat9(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;)%s loss detection timeout handler running  detectLostPackets  !net/luminis/quic/send/Senderflush # $setLossDetectionTimer & ' sendProbem*?Sending probe %d, because no ack since %%s. Current RTT: %d/%d. , -(I)Ljava/lang/Integer;/%Sending probe %d. Current RTT: %d/%d.1 ?6(Ljava/lang/Object;Ljava/lang/Object;)Ljava/util/List; A 'B5(Ljava/util/List;Lnet/luminis/quic/EncryptionLevel;)V DEF G net/luminis/quic/EncryptionLevel"Lnet/luminis/quic/EncryptionLevel; DI &GK&net/luminis/quic/FrameReceivedListenerM'net/luminis/quic/HandshakeStateListener Signature)Ljava/util/concurrent/ScheduledFuture<*>;(Lnet/luminis/quic/Role;Lnet/luminis/quic/recovery/RttEstimator;Lnet/luminis/quic/cc/CongestionController;Lnet/luminis/quic/send/Sender;Lnet/luminis/quic/log/Logger;)VCodeLineNumberTableLocalVariableTablethis+Lnet/luminis/quic/recovery/RecoveryManager;congestionController*Lnet/luminis/quic/cc/CongestionController;logger StackMapTable[(net/luminis/quic/cc/CongestionController]net/luminis/quic/PnSpace;_java/lang/ThrowabletimeoutptoTimeAndSpace7Lnet/luminis/quic/recovery/RecoveryManager$PnSpaceTime;earliestLossTimelastAckElicitingSent ptoDurationptoTimeptoSpace expiration earliestLastAckElicitingSentTime nrOfProbesframesToRetransmitLjava/util/List; probeLevelnumberOfPacketsLocalVariableTypeTable4Ljava/util/List;unAckedPackets ackElicitingLjava/util/Optional;6Ljava/util/List;:Ljava/util/Optional;P(Lnet/luminis/quic/PnSpace;)Ljava/util/List;pnSpaceLossTimepnSpaceTimeFunctionLjava/util/function/Function;ZLjava/util/function/Function;(Ljava/util/function/Function;)Lnet/luminis/quic/recovery/RecoveryManager$PnSpaceTime;delayJ taskRejected1Ljava/util/concurrent/RejectedExecutionException; scheduledTimeLjava/lang/Exception;5createLossDetectionTimeoutRunnerWithTooEarlyDetection)(Ljava/time/Instant;)Ljava/lang/Runnable;ackFrame!Lnet/luminis/quic/frame/AckFrame; timeReceivedpacket$Lnet/luminis/quic/packet/QuicPacket;sentpacketLostCallbackLjava/util/function/Consumer;CLjava/util/function/Consumer;}(Lnet/luminis/quic/packet/QuicPacket;Ljava/time/Instant;Ljava/util/function/Consumer;)VsetReceiverMaxAckDelay stopRecovery(Lnet/luminis/quic/PnSpace;)VhandshakeStateChangedEvent$(Lnet/luminis/quic/HandshakeState;)VoldStatenewStateframeicounttaskLjava/lang/Runnable;timeNow()Ljava/lang/String; localTimeNowLjava/time/LocalTime; timeFormatter$Ljava/time/format/DateTimeFormatter;R(Lnet/luminis/quic/frame/QuicFrame;Lnet/luminis/quic/PnSpace;Ljava/time/Instant;)Vlambda$getLost$13+(Lnet/luminis/quic/recovery/LossDetector;)Jld(Lnet/luminis/quic/recovery/LossDetector;lambda$ackElicitingInFlight$12+(Lnet/luminis/quic/recovery/LossDetector;)Zdetector?lambda$createLossDetectionTimeoutRunnerWithTooEarlyDetection$11nowlambda$getFramesToRetransmit$10%(Lnet/luminis/quic/frame/QuicFrame;)Z"Lnet/luminis/quic/frame/QuicFrame;lambda$getFramesToRetransmit$9'(Lnet/luminis/quic/packet/QuicPacket;)Zplambda$getFramesToRetransmit$8lambda$getFramesToRetransmit$7(lambda$sendOneOrTwoAckElicitingPackets$6%(Lnet/luminis/quic/EncryptionLevel;)V(lambda$sendOneOrTwoAckElicitingPackets$5(lambda$sendOneOrTwoAckElicitingPackets$4(lambda$sendOneOrTwoAckElicitingPackets$3(Ljava/util/List;)V(lambda$sendOneOrTwoAckElicitingPackets$2(lambda$sendOneOrTwoAckElicitingPackets$1 lambda$new$0!(Lnet/luminis/quic/send/Sender;)VLjava/lang/Object;Lnet/luminis/quic/FrameReceivedListener;Lnet/luminis/quic/HandshakeStateListener; SourceFileRecoveryManager.java NestMembersBootstrapMethods  "java/lang/invoke/LambdaMetafactory metafactory(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;     getLossTime=(Lnet/luminis/quic/recovery/LossDetector;)Ljava/time/Instant;  $java/lang/invoke/StringConcatFactory(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/invoke/CallSite;Yreschedule loss detection timer for PTO over  millis, based on %s/, because | RTT:/         (Probe is retransmit on level )  B(Probe is ping on level )  (Ljava/lang/Object;)Z      +  }  (Ljava/lang/Object;)J  State is set to    InnerClassesNullScheduledFuture PnSpaceTime%java/lang/invoke/MethodHandles$Lookupjava/lang/invoke/MethodHandlesLookup!JL12569:NORScdjkNO !BByB*'B-.( PQo*+,-R ijS>TU569:VWNOXS Q * **Y *"(*+*+/*,3*-7:66  4 2: * ;Y+*-?CIS *L*P*TYVX[a*Y:*eYghç :  RJl\be!f&m+n0o5pPqtpzstvwxyzSRP$ TU12569:VWNOXSYKB ZD\75ZD^$Q8*lpL+ +tM, *,z*~>*6*:*P*l*tz*PW*/t6*P*7*7t*P*R^} ~#(.7=BMT]i~SH~?`=ab(...TU cbxyY u@ u>uuDuuDuuDuuDQ **7*7h`<*ŇɎh<*Q*(ϙ%*PҹuY*/ַܰ*P߹uY*/ַܰMN:662:*;2l*(*PL**ŇɎh`<*;2:,MNv- uY-,ܰRf%,6AXcz~ (S>dyy*TUe~fygY+X!\=, Q`+*3"*(*;2RS +TUY)@Q{*L+*P*/+Y*/+ F*P Y*/SY*/+ SY*S**z*P*/*lpM, ,tN-"*,;2*L*"*%RJ 7HgozS*TUhy5cb(xyYcu@#'Q*P*(pL+A*P)Y*Ÿ+SY*7+SY*7+S+t:*P.Y*Ÿ+SY*7+SY*7+S*Y`*<*~%*M,*P0*,2B*/*P6*(ϙ*2*2*P8RV X    #&S*yibabTUijY Xu6@u ' 45Q+ԦI*Զ:N->*PC**-EH*PL**NH+I*:N->*PQ**-SH*PT**VHT+WN*+::>#*P-[**-^H*P-a**-bHRb)*+,$-32?3J6M7T9\:e;q<@ADFGHIJNOSSH;kl\;klLmGEklTUno ;kp\;kpEkpY"3?2?5D?<=Qa*+;2eM,imqwqxN-|,-iq?:R. V WX"Z'[-\4]H^M_Z`]cS4ZklaTUa Tql-4rso Zkp Tqt-4ruY ]?}NvrsQgMN-66T-2:+*;2:.,uYM,tuYM,R* hij/k4l8mGoSp_ieuS4/0wyEgTUgxyecbo gxzY& u\9N{|}QW*YM*hW*+*/+B**a*!h,ç :, M*+,?BBFBILR. z|}~&=ILMTVS*&|}M ~WTUWyYB^B -Qo*L*P+RS TUYG Q<*+RSTUyQC*hW*R S TUQ8*+3*Ş* *ŧ*P¹*,;2+-ıR)7S*8TU888yY Q%*+ +ș*+˶;2+,-*"R $S*%TU%%y%o %Y$NQ<*ӺRS TU!<Q>*R STUQ@*+;*+**aL+=>+2:*;2߄R" ,9?S, @TUY "\Qj*+*+;2**"RSTUY&QA*ӺRS TUQ3*+.*(M*+(+,*P+*"R .2S  &'3TU3'Y2#QT*+,-R S*TUyJKQ>, : R ! #S*TUYQQd*/ LM,+R&'(S TU A#Q5 *+,-!RWS  TU Q/*$RS  Q/*RS }QB*/M, +,*P'Y+SY,SY,+ S)*+R=AS BTUBy:yY= QB *R^S  Y @ QQ*i./RZS Y@ QQ*2*4 *RZS Y@ Q/*6RXS QQ*L2Y94Y:=+@RPSTUmGBQJ *L+,@RKS  TU kl mGQI*L2Y94Y:=C@RBS TUQB*L+C@R=STUklQI*L2Y94Y:=H@R4S TUQB*L+H@R.STUkl Q1*RqS NONue   e u