2022-03-09 15:02:31 +00:00
{ "contracts" : { "C" : { "C" : { "ir" : "
2021-08-31 10:57:13 +00:00
/// @use-src 0:\"C\"
2021-05-27 20:05:21 +00:00
o b j e c t \ "C_54\" {
c o d e {
2021-09-16 10:49:01 +00:00
/// @src 0:79:435 \"contract C...\"
2021-09-15 15:01:40 +00:00
m s t o r e ( 64 , m e m o r y g u a r d ( 160 ) )
2021-05-27 20:05:21 +00:00
i f c a l l v a l u e ( ) { r e v e r t _ e r r o r _ c a 6 6 f 7 4 5 a 3 c e 8 f f 4 0 e 2 c c a f 1 a d 4 5 d b 7 7 7 4 0 0 1 b 9 0 d 2 5 8 1 0 a b d 9 0 4 0 0 4 9 b e 7 b f 4 b b ( ) }
l e t _ 1 : = c o p y _ a r g u m e n t s _ f o r _ c o n s t r u c t o r _ 20 _ o b j e c t _ C _ 54 ( )
c o n s t r u c t o r _ C _ 54 ( _ 1 )
l e t _ 2 : = a l l o c a t e _ u n b o u n d e d ( )
c o d e c o p y ( _ 2 , d a t a o f f s e t ( \ "C_54_deployed\"), datasize(\"C_54_deployed\" ) )
s e t i m m u t a b l e ( _ 2 , \ "8\" , m l o a d ( 128 ) )
r e t u r n ( _ 2 , d a t a s i z e ( \ "C_54_deployed\" ) )
2021-09-07 16:00:20 +00:00
f u n c t i o n a l l o c a t e _ u n b o u n d e d ( ) - > m e m P t r {
m e m P t r : = m l o a d ( 64 )
2021-05-27 20:05:21 +00:00
}
2021-09-07 16:00:20 +00:00
f u n c t i o n r e v e r t _ e r r o r _ c a 66 f 745 a 3 c e 8 f f 40e2 c c a f 1 a d 45 d b 7774001 b 90 d 25810 a b d 9040049 b e 7 b f 4 b b ( ) {
r e v e r t ( 0 , 0 )
}
2021-05-27 20:05:21 +00:00
2021-09-07 16:00:20 +00:00
f u n c t i o n r o u n d _ u p _ t o _ m u l _ o f _ 32 ( v a l u e ) - > r e s u l t {
r e s u l t : = a n d ( a d d ( v a l u e , 31 ) , n o t ( 31 ) )
}
2021-05-27 20:05:21 +00:00
2021-09-07 16:00:20 +00:00
f u n c t i o n p a n i c _ e r r o r _ 0 x 41 ( ) {
m s t o r e ( 0 , 35408467139433450592217433187231851964531694900788300625387963629091585785856 )
m s t o r e ( 4 , 0 x 41 )
r e v e r t ( 0 , 0 x 24 )
}
2021-05-27 20:05:21 +00:00
2021-09-07 16:00:20 +00:00
f u n c t i o n f i n a l i z e _ a l l o c a t i o n ( m e m P t r , s i z e ) {
l e t n e w F r e e P t r : = a d d ( m e m P t r , r o u n d _ u p _ t o _ m u l _ o f _ 32 ( s i z e ) )
// protect against overflow
i f o r ( g t ( n e w F r e e P t r , 0 x f f f f f f f f f f f f f f f f ) , l t ( n e w F r e e P t r , m e m P t r ) ) { p a n i c _ e r r o r _ 0 x 4 1 ( ) }
m s t o r e ( 64 , n e w F r e e P t r )
2021-05-27 20:05:21 +00:00
}
f u n c t i o n a l l o c a t e _ m e m o r y ( s i z e ) - > m e m P t r {
m e m P t r : = a l l o c a t e _ u n b o u n d e d ( )
f i n a l i z e _ a l l o c a t i o n ( m e m P t r , s i z e )
}
2021-09-07 16:00:20 +00:00
f u n c t i o n r e v e r t _ e r r o r _ d b d d d c b e 895 c 83990 c 0 8 b 3492 a 0e83918 d 802 a 52331272 a c 6 f d b 6 a 7 c 4 a e a 3 b 1 b ( ) {
r e v e r t ( 0 , 0 )
2021-05-27 20:05:21 +00:00
}
2021-09-07 16:00:20 +00:00
f u n c t i o n r e v e r t _ e r r o r _ c 1322 b f 8034 e a c e 5e0 b 5 c 7295 d b 60986 a a 89 a a e 5e0 e a 0 873e4689 e 0 76861 a 5 d b ( ) {
r e v e r t ( 0 , 0 )
2021-05-27 20:05:21 +00:00
}
2021-09-07 16:00:20 +00:00
f u n c t i o n c l e a n u p _ t _ i n t 256 ( v a l u e ) - > c l e a n e d {
2021-08-05 11:23:50 +00:00
c l e a n e d : = v a l u e
}
2021-09-07 16:00:20 +00:00
f u n c t i o n v a l i d a t o r _ r e v e r t _ t _ i n t 256 ( v a l u e ) {
i f i s z e r o ( e q ( v a l u e , c l e a n u p _ t _ i n t 256 ( v a l u e ) ) ) { r e v e r t ( 0 , 0 ) }
}
2021-05-27 20:05:21 +00:00
2021-09-07 16:00:20 +00:00
f u n c t i o n a b i _ d e c o d e _ t _ i n t 256 _ f r o m M e m o r y ( o f f s e t , e n d ) - > v a l u e {
v a l u e : = m l o a d ( o f f s e t )
v a l i d a t o r _ r e v e r t _ t _ i n t 256 ( v a l u e )
}
2021-05-27 20:05:21 +00:00
2021-09-07 16:00:20 +00:00
f u n c t i o n a b i _ d e c o d e _ t u p l e _ t _ i n t 256 _ f r o m M e m o r y ( h e a d S t a r t , d a t a E n d ) - > v a l u e 0 {
i f s l t ( s u b ( d a t a E n d , h e a d S t a r t ) , 32 ) { r e v e r t _ e r r o r _ d b d d d c b e 8 9 5 c 8 3 9 9 0 c 0 8 b 3 4 9 2 a 0 e 8 3 9 1 8 d 8 0 2 a 5 2 3 3 1 2 7 2 a c 6 f d b 6 a 7 c 4 a e a 3 b 1 b ( ) }
2021-05-27 20:05:21 +00:00
2021-09-07 16:00:20 +00:00
{
2021-05-27 20:05:21 +00:00
2021-09-07 16:00:20 +00:00
l e t o f f s e t : = 0
2021-05-27 20:05:21 +00:00
2021-09-07 16:00:20 +00:00
v a l u e 0 : = a b i _ d e c o d e _ t _ i n t 256 _ f r o m M e m o r y ( a d d ( h e a d S t a r t , o f f s e t ) , d a t a E n d )
}
2021-05-27 20:05:21 +00:00
}
f u n c t i o n c o p y _ a r g u m e n t s _ f o r _ c o n s t r u c t o r _ 20 _ o b j e c t _ C _ 54 ( ) - > r e t _ p a r a m _ 0 {
l e t p r o g r a m S i z e : = d a t a s i z e ( \ "C_54\" )
l e t a r g S i z e : = s u b ( c o d e s i z e ( ) , p r o g r a m S i z e )
l e t m e m o r y D a t a O f f s e t : = a l l o c a t e _ m e m o r y ( a r g S i z e )
c o d e c o p y ( m e m o r y D a t a O f f s e t , p r o g r a m S i z e , a r g S i z e )
r e t _ p a r a m _ 0 : = a b i _ d e c o d e _ t u p l e _ t _ i n t 256 _ f r o m M e m o r y ( m e m o r y D a t a O f f s e t , a d d ( m e m o r y D a t a O f f s e t , a r g S i z e ) )
}
2021-09-07 16:00:20 +00:00
f u n c t i o n c l e a n u p _ t _ r a t i o n a l _ 42 _ b y _ 1 ( v a l u e ) - > c l e a n e d {
c l e a n e d : = v a l u e
2021-05-27 20:05:21 +00:00
}
2021-08-05 11:23:50 +00:00
f u n c t i o n i d e n t i t y ( v a l u e ) - > r e t {
r e t : = v a l u e
}
2021-09-07 16:00:20 +00:00
f u n c t i o n c o n v e r t _ t _ r a t i o n a l _ 42 _ b y _ 1 _ t o _ t _ i n t 256 ( v a l u e ) - > c o n v e r t e d {
c o n v e r t e d : = c l e a n u p _ t _ i n t 256 ( i d e n t i t y ( c l e a n u p _ t _ r a t i o n a l _ 42 _ b y _ 1 ( v a l u e ) ) )
2021-05-27 20:05:21 +00:00
}
f u n c t i o n s h i f t _ l e f t _ 0 ( v a l u e ) - > n e w V a l u e {
n e w V a l u e : =
s h l ( 0 , v a l u e )
}
f u n c t i o n u p d a t e _ b y t e _ s l i c e _ 32 _ s h i f t _ 0 ( v a l u e , t o I n s e r t ) - > r e s u l t {
l e t m a s k : = 0 x f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f
t o I n s e r t : = s h i f t _ l e f t _ 0 ( t o I n s e r t )
v a l u e : = a n d ( v a l u e , n o t ( m a s k ) )
r e s u l t : = o r ( v a l u e , a n d ( t o I n s e r t , m a s k ) )
}
2021-09-07 16:00:20 +00:00
f u n c t i o n c o n v e r t _ t _ i n t 256 _ t o _ t _ i n t 256 ( v a l u e ) - > c o n v e r t e d {
c o n v e r t e d : = c l e a n u p _ t _ i n t 256 ( i d e n t i t y ( c l e a n u p _ t _ i n t 256 ( v a l u e ) ) )
}
f u n c t i o n p r e p a r e _ s t o r e _ t _ i n t 256 ( v a l u e ) - > r e t {
r e t : = v a l u e
}
2021-05-27 20:05:21 +00:00
f u n c t i o n u p d a t e _ s t o r a g e _ v a l u e _ o f f s e t _ 0 t _ i n t 256 _ t o _ t _ i n t 256 ( s l o t , v a l u e _ 0 ) {
l e t c o n v e r t e d V a l u e _ 0 : = c o n v e r t _ t _ i n t 256 _ t o _ t _ i n t 256 ( v a l u e _ 0 )
s s t o r e ( s l o t , u p d a t e _ b y t e _ s l i c e _ 32 _ s h i f t _ 0 ( s l o a d ( s l o t ) , p r e p a r e _ s t o r e _ t _ i n t 256 ( c o n v e r t e d V a l u e _ 0 ) ) )
}
2021-09-15 15:40:11 +00:00
/// @ast-id 20
2021-09-16 10:49:01 +00:00
/// @src 0:182:230 \"constructor(int _init)...\"
2021-09-07 16:00:20 +00:00
f u n c t i o n c o n s t r u c t o r _ C _ 54 ( v a r _ _ i n i t _ 12 ) {
2021-09-16 10:49:01 +00:00
/// @src 0:182:230 \"constructor(int _init)...\"
2021-09-07 16:00:20 +00:00
2021-09-16 10:49:01 +00:00
/// @src 0:154:156 \"42\"
2021-09-07 16:00:20 +00:00
l e t e x p r _ 7 : = 0 x 2 a
l e t _ 3 : = c o n v e r t _ t _ r a t i o n a l _ 42 _ b y _ 1 _ t o _ t _ i n t 256 ( e x p r _ 7 )
m s t o r e ( 128 , _ 3 )
2021-09-16 10:49:01 +00:00
/// @src 0:221:226 \"_init\"
2021-09-07 16:00:20 +00:00
l e t _ 4 : = v a r _ _ i n i t _ 12
l e t e x p r _ 16 : = _ 4
2021-09-16 10:49:01 +00:00
/// @src 0:210:226 \"stateVar = _init\"
2021-09-07 16:00:20 +00:00
u p d a t e _ s t o r a g e _ v a l u e _ o f f s e t _ 0 t _ i n t 256 _ t o _ t _ i n t 256 ( 0 x 0 0 , e x p r _ 16 )
l e t e x p r _ 17 : = e x p r _ 16
2021-05-27 20:05:21 +00:00
}
2021-09-16 10:49:01 +00:00
/// @src 0:79:435 \"contract C...\"
2021-05-27 20:05:21 +00:00
}
2021-08-31 10:57:13 +00:00
/// @use-src 0:\"C\"
2021-05-27 20:05:21 +00:00
o b j e c t \ "C_54_deployed\" {
c o d e {
2021-09-16 10:49:01 +00:00
/// @src 0:79:435 \"contract C...\"
2021-09-15 15:01:40 +00:00
m s t o r e ( 64 , m e m o r y g u a r d ( 128 ) )
2021-05-27 20:05:21 +00:00
i f i s z e r o ( l t ( c a l l d a t a s i z e ( ) , 4 ) )
{
l e t s e l e c t o r : = s h i f t _ r i g h t _ 224 _ u n s i g n e d ( c a l l d a t a l o a d ( 0 ) )
s w i t c h s e l e c t o r
c a s e 0 x 26121 f f 0
{
// f()
2022-02-15 11:20:28 +00:00
e x t e r n a l _ f u n _ f _ 30 ( )
2021-05-27 20:05:21 +00:00
}
c a s e 0 x 793816 e c
{
// stateVar()
2022-02-15 11:20:28 +00:00
e x t e r n a l _ f u n _ s t a t e V a r _ 10 ( )
2021-05-27 20:05:21 +00:00
}
c a s e 0 x 9942 e c 6 f
{
// f2()
2022-02-15 11:20:28 +00:00
e x t e r n a l _ f u n _ f 2 _ 53 ( )
2021-05-27 20:05:21 +00:00
}
2021-09-16 10:49:01 +00:00
c a s e 0 x a 0 0 b 982 b
{
// constVar()
2022-02-15 11:20:28 +00:00
e x t e r n a l _ f u n _ c o n s t V a r _ 5 ( )
2021-09-16 10:49:01 +00:00
}
2021-05-27 20:05:21 +00:00
d e f a u l t { }
}
2021-10-12 13:25:28 +00:00
2021-05-27 20:05:21 +00:00
r e v e r t _ e r r o r _ 42 b 3090547 d f 1 d 2001 c 96683413 b 8 c f 91 c 1 b 902 e f 5e3 c b 8 d 9 f 6 f 304 c f 7446 f 74 ( )
2021-09-07 16:00:20 +00:00
f u n c t i o n s h i f t _ r i g h t _ 224 _ u n s i g n e d ( v a l u e ) - > n e w V a l u e {
n e w V a l u e : =
2021-05-27 20:05:21 +00:00
2021-09-07 16:00:20 +00:00
s h r ( 224 , v a l u e )
2021-05-27 20:05:21 +00:00
}
2021-09-07 16:00:20 +00:00
f u n c t i o n a l l o c a t e _ u n b o u n d e d ( ) - > m e m P t r {
m e m P t r : = m l o a d ( 64 )
}
2021-05-27 20:05:21 +00:00
2021-09-07 16:00:20 +00:00
f u n c t i o n r e v e r t _ e r r o r _ c a 66 f 745 a 3 c e 8 f f 40e2 c c a f 1 a d 45 d b 7774001 b 90 d 25810 a b d 9040049 b e 7 b f 4 b b ( ) {
r e v e r t ( 0 , 0 )
}
2021-05-27 20:05:21 +00:00
2021-09-07 16:00:20 +00:00
f u n c t i o n r e v e r t _ e r r o r _ d b d d d c b e 895 c 83990 c 0 8 b 3492 a 0e83918 d 802 a 52331272 a c 6 f d b 6 a 7 c 4 a e a 3 b 1 b ( ) {
r e v e r t ( 0 , 0 )
}
2021-05-27 20:05:21 +00:00
2021-09-07 16:00:20 +00:00
f u n c t i o n a b i _ d e c o d e _ t u p l e _ ( h e a d S t a r t , d a t a E n d ) {
i f s l t ( s u b ( d a t a E n d , h e a d S t a r t ) , 0 ) { r e v e r t _ e r r o r _ d b d d d c b e 8 9 5 c 8 3 9 9 0 c 0 8 b 3 4 9 2 a 0 e 8 3 9 1 8 d 8 0 2 a 5 2 3 3 1 2 7 2 a c 6 f d b 6 a 7 c 4 a e a 3 b 1 b ( ) }
2021-05-27 20:05:21 +00:00
}
2021-09-07 16:00:20 +00:00
f u n c t i o n c l e a n u p _ t _ i n t 256 ( v a l u e ) - > c l e a n e d {
c l e a n e d : = v a l u e
2021-05-27 20:05:21 +00:00
}
2021-09-07 16:00:20 +00:00
f u n c t i o n a b i _ e n c o d e _ t _ i n t 256 _ t o _ t _ i n t 256 _ f r o m S t a c k ( v a l u e , p o s ) {
m s t o r e ( p o s , c l e a n u p _ t _ i n t 256 ( v a l u e ) )
2021-05-27 20:05:21 +00:00
}
f u n c t i o n a b i _ e n c o d e _ t u p l e _ t _ i n t 256 _ _ t o _ t _ i n t 256 _ _ f r o m S t a c k ( h e a d S t a r t , v a l u e 0 ) - > t a i l {
t a i l : = a d d ( h e a d S t a r t , 32 )
a b i _ e n c o d e _ t _ i n t 256 _ t o _ t _ i n t 256 _ f r o m S t a c k ( v a l u e 0 , a d d ( h e a d S t a r t , 0 ) )
}
2022-02-15 11:20:28 +00:00
f u n c t i o n e x t e r n a l _ f u n _ f _ 30 ( ) {
i f c a l l v a l u e ( ) { r e v e r t _ e r r o r _ c a 6 6 f 7 4 5 a 3 c e 8 f f 4 0 e 2 c c a f 1 a d 4 5 d b 7 7 7 4 0 0 1 b 9 0 d 2 5 8 1 0 a b d 9 0 4 0 0 4 9 b e 7 b f 4 b b ( ) }
a b i _ d e c o d e _ t u p l e _ ( 4 , c a l l d a t a s i z e ( ) )
l e t r e t _ 0 : = f u n _ f _ 30 ( )
l e t m e m P o s : = a l l o c a t e _ u n b o u n d e d ( )
l e t m e m E n d : = a b i _ e n c o d e _ t u p l e _ t _ i n t 256 _ _ t o _ t _ i n t 256 _ _ f r o m S t a c k ( m e m P o s , r e t _ 0 )
r e t u r n ( m e m P o s , s u b ( m e m E n d , m e m P o s ) )
}
2021-09-07 16:00:20 +00:00
f u n c t i o n s h i f t _ r i g h t _ u n s i g n e d _ d y n a m i c ( b i t s , v a l u e ) - > n e w V a l u e {
n e w V a l u e : =
2021-05-27 20:05:21 +00:00
2021-09-07 16:00:20 +00:00
s h r ( b i t s , v a l u e )
2021-05-27 20:05:21 +00:00
}
f u n c t i o n c l e a n u p _ f r o m _ s t o r a g e _ t _ i n t 256 ( v a l u e ) - > c l e a n e d {
c l e a n e d : = v a l u e
}
2021-09-07 16:00:20 +00:00
f u n c t i o n e x t r a c t _ f r o m _ s t o r a g e _ v a l u e _ d y n a m i c t _ i n t 256 ( s l o t _ v a l u e , o f f s e t ) - > v a l u e {
v a l u e : = c l e a n u p _ f r o m _ s t o r a g e _ t _ i n t 256 ( s h i f t _ r i g h t _ u n s i g n e d _ d y n a m i c ( m u l ( o f f s e t , 8 ) , s l o t _ v a l u e ) )
2021-05-27 20:05:21 +00:00
}
2021-09-07 16:00:20 +00:00
f u n c t i o n r e a d _ f r o m _ s t o r a g e _ s p l i t _ d y n a m i c _ t _ i n t 256 ( s l o t , o f f s e t ) - > v a l u e {
v a l u e : = e x t r a c t _ f r o m _ s t o r a g e _ v a l u e _ d y n a m i c t _ i n t 256 ( s l o a d ( s l o t ) , o f f s e t )
2021-08-05 11:23:50 +00:00
}
2021-09-15 15:40:11 +00:00
/// @ast-id 10
2021-09-16 10:49:01 +00:00
/// @src 0:159:178 \"int public stateVar\"
2021-09-07 16:00:20 +00:00
f u n c t i o n g e t t e r _ f u n _ s t a t e V a r _ 10 ( ) - > r e t {
l e t s l o t : = 0
l e t o f f s e t : = 0
r e t : = r e a d _ f r o m _ s t o r a g e _ s p l i t _ d y n a m i c _ t _ i n t 256 ( s l o t , o f f s e t )
2021-05-27 20:05:21 +00:00
}
2021-09-16 10:49:01 +00:00
/// @src 0:79:435 \"contract C...\"
2021-05-27 20:05:21 +00:00
2022-02-15 11:20:28 +00:00
f u n c t i o n e x t e r n a l _ f u n _ s t a t e V a r _ 10 ( ) {
i f c a l l v a l u e ( ) { r e v e r t _ e r r o r _ c a 6 6 f 7 4 5 a 3 c e 8 f f 4 0 e 2 c c a f 1 a d 4 5 d b 7 7 7 4 0 0 1 b 9 0 d 2 5 8 1 0 a b d 9 0 4 0 0 4 9 b e 7 b f 4 b b ( ) }
a b i _ d e c o d e _ t u p l e _ ( 4 , c a l l d a t a s i z e ( ) )
l e t r e t _ 0 : = g e t t e r _ f u n _ s t a t e V a r _ 10 ( )
l e t m e m P o s : = a l l o c a t e _ u n b o u n d e d ( )
l e t m e m E n d : = a b i _ e n c o d e _ t u p l e _ t _ i n t 256 _ _ t o _ t _ i n t 256 _ _ f r o m S t a c k ( m e m P o s , r e t _ 0 )
r e t u r n ( m e m P o s , s u b ( m e m E n d , m e m P o s ) )
}
f u n c t i o n e x t e r n a l _ f u n _ f 2 _ 53 ( ) {
i f c a l l v a l u e ( ) { r e v e r t _ e r r o r _ c a 6 6 f 7 4 5 a 3 c e 8 f f 4 0 e 2 c c a f 1 a d 4 5 d b 7 7 7 4 0 0 1 b 9 0 d 2 5 8 1 0 a b d 9 0 4 0 0 4 9 b e 7 b f 4 b b ( ) }
a b i _ d e c o d e _ t u p l e _ ( 4 , c a l l d a t a s i z e ( ) )
l e t r e t _ 0 : = f u n _ f 2 _ 53 ( )
l e t m e m P o s : = a l l o c a t e _ u n b o u n d e d ( )
l e t m e m E n d : = a b i _ e n c o d e _ t u p l e _ t _ i n t 256 _ _ t o _ t _ i n t 256 _ _ f r o m S t a c k ( m e m P o s , r e t _ 0 )
r e t u r n ( m e m P o s , s u b ( m e m E n d , m e m P o s ) )
}
2021-09-07 16:00:20 +00:00
f u n c t i o n c l e a n u p _ t _ r a t i o n a l _ 41 _ b y _ 1 ( v a l u e ) - > c l e a n e d {
c l e a n e d : = v a l u e
2021-05-27 20:05:21 +00:00
}
2021-09-07 16:00:20 +00:00
f u n c t i o n i d e n t i t y ( v a l u e ) - > r e t {
r e t : = v a l u e
2021-05-27 20:05:21 +00:00
}
f u n c t i o n c o n v e r t _ t _ r a t i o n a l _ 41 _ b y _ 1 _ t o _ t _ i n t 256 ( v a l u e ) - > c o n v e r t e d {
2021-08-05 11:23:50 +00:00
c o n v e r t e d : = c l e a n u p _ t _ i n t 256 ( i d e n t i t y ( c l e a n u p _ t _ r a t i o n a l _ 41 _ b y _ 1 ( v a l u e ) ) )
2021-05-27 20:05:21 +00:00
}
2021-09-16 10:49:01 +00:00
/// @src 0:93:126 \"int public constant constVar = 41\"
2021-09-07 16:00:20 +00:00
f u n c t i o n c o n s t a n t _ c o n s t V a r _ 5 ( ) - > r e t {
2021-09-16 10:49:01 +00:00
/// @src 0:124:126 \"41\"
2021-09-07 16:00:20 +00:00
l e t e x p r _ 4 : = 0 x 29
2021-09-16 10:49:01 +00:00
l e t _ 1 : = c o n v e r t _ t _ r a t i o n a l _ 41 _ b y _ 1 _ t o _ t _ i n t 256 ( e x p r _ 4 )
r e t : = _ 1
}
/// @ast-id 5
/// @src 0:93:126 \"int public constant constVar = 41\"
f u n c t i o n g e t t e r _ f u n _ c o n s t V a r _ 5 ( ) - > r e t _ 0 {
r e t _ 0 : = c o n s t a n t _ c o n s t V a r _ 5 ( )
}
/// @src 0:79:435 \"contract C...\"
2022-02-15 11:20:28 +00:00
f u n c t i o n e x t e r n a l _ f u n _ c o n s t V a r _ 5 ( ) {
i f c a l l v a l u e ( ) { r e v e r t _ e r r o r _ c a 6 6 f 7 4 5 a 3 c e 8 f f 4 0 e 2 c c a f 1 a d 4 5 d b 7 7 7 4 0 0 1 b 9 0 d 2 5 8 1 0 a b d 9 0 4 0 0 4 9 b e 7 b f 4 b b ( ) }
a b i _ d e c o d e _ t u p l e _ ( 4 , c a l l d a t a s i z e ( ) )
l e t r e t _ 0 : = g e t t e r _ f u n _ c o n s t V a r _ 5 ( )
l e t m e m P o s : = a l l o c a t e _ u n b o u n d e d ( )
l e t m e m E n d : = a b i _ e n c o d e _ t u p l e _ t _ i n t 256 _ _ t o _ t _ i n t 256 _ _ f r o m S t a c k ( m e m P o s , r e t _ 0 )
r e t u r n ( m e m P o s , s u b ( m e m E n d , m e m P o s ) )
}
2021-09-16 10:49:01 +00:00
f u n c t i o n r e v e r t _ e r r o r _ 42 b 3090547 d f 1 d 2001 c 96683413 b 8 c f 91 c 1 b 902 e f 5e3 c b 8 d 9 f 6 f 304 c f 7446 f 74 ( ) {
r e v e r t ( 0 , 0 )
}
2021-08-04 13:48:10 +00:00
2021-09-16 10:49:01 +00:00
f u n c t i o n z e r o _ v a l u e _ f o r _ s p l i t _ t _ i n t 256 ( ) - > r e t {
r e t : = 0
2021-08-04 13:48:10 +00:00
}
2021-09-07 16:00:20 +00:00
f u n c t i o n p a n i c _ e r r o r _ 0 x 11 ( ) {
m s t o r e ( 0 , 35408467139433450592217433187231851964531694900788300625387963629091585785856 )
m s t o r e ( 4 , 0 x 11 )
r e v e r t ( 0 , 0 x 24 )
2021-05-27 20:05:21 +00:00
}
2021-09-07 16:00:20 +00:00
f u n c t i o n c h e c k e d _ a d d _ t _ i n t 256 ( x , y ) - > s u m {
x : = c l e a n u p _ t _ i n t 256 ( x )
y : = c l e a n u p _ t _ i n t 256 ( y )
2021-05-27 20:05:21 +00:00
2021-09-07 16:00:20 +00:00
// overflow, if x >= 0 and y > (maxValue - x)
i f a n d ( i s z e r o ( s l t ( x , 0 ) ) , s g t ( y , s u b ( 0 x 7 f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f , x ) ) ) { p a n i c _ e r r o r _ 0 x 1 1 ( ) }
// underflow, if x < 0 and y < (minValue - x)
i f a n d ( s l t ( x , 0 ) , s l t ( y , s u b ( 0 x 8000000000000000000000000000000000000000000000000000000000000000 , x ) ) ) { p a n i c _ e r r o r _ 0 x 1 1 ( ) }
s u m : = a d d ( x , y )
2021-05-27 20:05:21 +00:00
}
2021-09-15 15:40:11 +00:00
/// @ast-id 30
2021-09-16 10:49:01 +00:00
/// @src 0:233:309 \"function f() external pure returns (int)...\"
2021-05-27 20:05:21 +00:00
f u n c t i o n f u n _ f _ 30 ( ) - > v a r _ _ 23 {
2021-09-16 10:49:01 +00:00
/// @src 0:269:272 \"int\"
l e t z e r o _ t _ i n t 256 _ 2 : = z e r o _ v a l u e _ f o r _ s p l i t _ t _ i n t 256 ( )
v a r _ _ 23 : = z e r o _ t _ i n t 256 _ 2
2021-05-27 20:05:21 +00:00
2021-09-16 10:49:01 +00:00
/// @src 0:286:294 \"constVar\"
2021-05-27 20:05:21 +00:00
l e t e x p r _ 25 : = c o n s t a n t _ c o n s t V a r _ 5 ( )
2021-09-16 10:49:01 +00:00
/// @src 0:297:305 \"immutVar\"
2021-05-27 20:05:21 +00:00
l e t _ 3 : = l o a d i m m u t a b l e ( \ "8\" )
l e t e x p r _ 26 : = _ 3
2021-09-16 10:49:01 +00:00
/// @src 0:286:305 \"constVar + immutVar\"
2021-05-27 20:05:21 +00:00
l e t e x p r _ 27 : = c h e c k e d _ a d d _ t _ i n t 256 ( e x p r _ 25 , e x p r _ 26 )
2021-09-16 10:49:01 +00:00
/// @src 0:279:305 \"return constVar + immutVar\"
2021-05-27 20:05:21 +00:00
v a r _ _ 23 : = e x p r _ 27
l e a v e
}
2021-09-16 10:49:01 +00:00
/// @src 0:79:435 \"contract C...\"
2021-05-27 20:05:21 +00:00
2021-09-07 16:00:20 +00:00
f u n c t i o n s h i f t _ r i g h t _ 0 _ u n s i g n e d ( v a l u e ) - > n e w V a l u e {
n e w V a l u e : =
2021-05-27 20:05:21 +00:00
2021-09-07 16:00:20 +00:00
s h r ( 0 , v a l u e )
2021-05-27 20:05:21 +00:00
2021-09-07 16:00:20 +00:00
}
2021-05-27 20:05:21 +00:00
2021-09-07 16:00:20 +00:00
f u n c t i o n e x t r a c t _ f r o m _ s t o r a g e _ v a l u e _ o f f s e t _ 0 t _ i n t 256 ( s l o t _ v a l u e ) - > v a l u e {
v a l u e : = c l e a n u p _ f r o m _ s t o r a g e _ t _ i n t 256 ( s h i f t _ r i g h t _ 0 _ u n s i g n e d ( s l o t _ v a l u e ) )
2021-05-27 20:05:21 +00:00
}
2021-09-07 16:00:20 +00:00
f u n c t i o n r e a d _ f r o m _ s t o r a g e _ s p l i t _ o f f s e t _ 0 _ t _ i n t 256 ( s l o t ) - > v a l u e {
v a l u e : = e x t r a c t _ f r o m _ s t o r a g e _ v a l u e _ o f f s e t _ 0 t _ i n t 256 ( s l o a d ( s l o t ) )
2021-08-05 11:23:50 +00:00
}
2021-05-27 20:05:21 +00:00
f u n c t i o n i n c r e m e n t _ t _ i n t 256 ( v a l u e ) - > r e t {
v a l u e : = c l e a n u p _ t _ i n t 256 ( v a l u e )
i f e q ( v a l u e , 0 x 7 f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f ) { p a n i c _ e r r o r _ 0 x 1 1 ( ) }
r e t : = a d d ( v a l u e , 1 )
}
2021-09-07 16:00:20 +00:00
f u n c t i o n s h i f t _ l e f t _ 0 ( v a l u e ) - > n e w V a l u e {
n e w V a l u e : =
s h l ( 0 , v a l u e )
}
f u n c t i o n u p d a t e _ b y t e _ s l i c e _ 32 _ s h i f t _ 0 ( v a l u e , t o I n s e r t ) - > r e s u l t {
l e t m a s k : = 0 x f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f
t o I n s e r t : = s h i f t _ l e f t _ 0 ( t o I n s e r t )
v a l u e : = a n d ( v a l u e , n o t ( m a s k ) )
r e s u l t : = o r ( v a l u e , a n d ( t o I n s e r t , m a s k ) )
}
f u n c t i o n c o n v e r t _ t _ i n t 256 _ t o _ t _ i n t 256 ( v a l u e ) - > c o n v e r t e d {
c o n v e r t e d : = c l e a n u p _ t _ i n t 256 ( i d e n t i t y ( c l e a n u p _ t _ i n t 256 ( v a l u e ) ) )
}
f u n c t i o n p r e p a r e _ s t o r e _ t _ i n t 256 ( v a l u e ) - > r e t {
r e t : = v a l u e
}
f u n c t i o n u p d a t e _ s t o r a g e _ v a l u e _ o f f s e t _ 0 t _ i n t 256 _ t o _ t _ i n t 256 ( s l o t , v a l u e _ 0 ) {
l e t c o n v e r t e d V a l u e _ 0 : = c o n v e r t _ t _ i n t 256 _ t o _ t _ i n t 256 ( v a l u e _ 0 )
s s t o r e ( s l o t , u p d a t e _ b y t e _ s l i c e _ 32 _ s h i f t _ 0 ( s l o a d ( s l o t ) , p r e p a r e _ s t o r e _ t _ i n t 256 ( c o n v e r t e d V a l u e _ 0 ) ) )
}
2021-09-15 15:40:11 +00:00
/// @ast-id 37
2021-09-16 10:49:01 +00:00
/// @src 0:311:348 \"modifier m()...\"
2021-05-27 20:05:21 +00:00
f u n c t i o n m o d i f i e r _ m _ 40 ( v a r _ _ 42 ) - > _ 5 {
_ 5 : = v a r _ _ 42
2021-09-16 10:49:01 +00:00
/// @src 0:329:339 \"stateVar++\"
2021-05-27 20:05:21 +00:00
l e t _ 7 : = r e a d _ f r o m _ s t o r a g e _ s p l i t _ o f f s e t _ 0 _ t _ i n t 256 ( 0 x 0 0 )
l e t _ 6 : = i n c r e m e n t _ t _ i n t 256 ( _ 7 )
u p d a t e _ s t o r a g e _ v a l u e _ o f f s e t _ 0 t _ i n t 256 _ t o _ t _ i n t 256 ( 0 x 0 0 , _ 6 )
l e t e x p r _ 33 : = _ 7
2021-09-16 10:49:01 +00:00
/// @src 0:343:344 \"_\"
2021-05-27 20:05:21 +00:00
_ 5 : = f u n _ f 2 _ 53 _ i n n e r ( v a r _ _ 42 )
}
2021-09-16 10:49:01 +00:00
/// @src 0:79:435 \"contract C...\"
2021-05-27 20:05:21 +00:00
2021-09-07 16:00:20 +00:00
f u n c t i o n c l e a n u p _ t _ u i n t 160 ( v a l u e ) - > c l e a n e d {
c l e a n e d : = a n d ( v a l u e , 0 x f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f )
2021-05-27 20:05:21 +00:00
}
2021-09-07 16:00:20 +00:00
f u n c t i o n c o n v e r t _ t _ u i n t 160 _ t o _ t _ u i n t 160 ( v a l u e ) - > c o n v e r t e d {
c o n v e r t e d : = c l e a n u p _ t _ u i n t 160 ( i d e n t i t y ( c l e a n u p _ t _ u i n t 160 ( v a l u e ) ) )
2021-05-27 20:05:21 +00:00
}
2021-09-07 16:00:20 +00:00
f u n c t i o n c o n v e r t _ t _ u i n t 160 _ t o _ t _ a d d r e s s ( v a l u e ) - > c o n v e r t e d {
c o n v e r t e d : = c o n v e r t _ t _ u i n t 160 _ t o _ t _ u i n t 160 ( v a l u e )
2021-05-27 20:05:21 +00:00
}
2021-09-07 16:00:20 +00:00
f u n c t i o n c o n v e r t _ t _ c o n t r a c t $ _ C _ $ 54 _ t o _ t _ a d d r e s s ( v a l u e ) - > c o n v e r t e d {
c o n v e r t e d : = c o n v e r t _ t _ u i n t 160 _ t o _ t _ a d d r e s s ( v a l u e )
}
2021-05-27 20:05:21 +00:00
2021-09-07 16:00:20 +00:00
f u n c t i o n r e v e r t _ e r r o r _ 0 c c 0 13 b 6 b 3 b 6 b e a b e a 4e3 a 74 a 6 d 380 f 0 d f 81852 c a 99887912475e1 f 66 b 2 a 2 c 20 ( ) {
r e v e r t ( 0 , 0 )
2021-05-27 20:05:21 +00:00
}
2021-09-07 16:00:20 +00:00
f u n c t i o n r o u n d _ u p _ t o _ m u l _ o f _ 32 ( v a l u e ) - > r e s u l t {
r e s u l t : = a n d ( a d d ( v a l u e , 31 ) , n o t ( 31 ) )
}
2021-05-27 20:05:21 +00:00
2021-09-07 16:00:20 +00:00
f u n c t i o n p a n i c _ e r r o r _ 0 x 41 ( ) {
m s t o r e ( 0 , 35408467139433450592217433187231851964531694900788300625387963629091585785856 )
m s t o r e ( 4 , 0 x 41 )
r e v e r t ( 0 , 0 x 24 )
2021-05-27 20:05:21 +00:00
}
2021-09-07 16:00:20 +00:00
f u n c t i o n f i n a l i z e _ a l l o c a t i o n ( m e m P t r , s i z e ) {
l e t n e w F r e e P t r : = a d d ( m e m P t r , r o u n d _ u p _ t o _ m u l _ o f _ 32 ( s i z e ) )
// protect against overflow
i f o r ( g t ( n e w F r e e P t r , 0 x f f f f f f f f f f f f f f f f ) , l t ( n e w F r e e P t r , m e m P t r ) ) { p a n i c _ e r r o r _ 0 x 4 1 ( ) }
m s t o r e ( 64 , n e w F r e e P t r )
2021-05-27 20:05:21 +00:00
}
2021-09-07 16:00:20 +00:00
f u n c t i o n s h i f t _ l e f t _ 224 ( v a l u e ) - > n e w V a l u e {
n e w V a l u e : =
s h l ( 224 , v a l u e )
2021-05-27 20:05:21 +00:00
}
f u n c t i o n r e v e r t _ e r r o r _ c 1322 b f 8034 e a c e 5e0 b 5 c 7295 d b 60986 a a 89 a a e 5e0 e a 0 873e4689 e 0 76861 a 5 d b ( ) {
r e v e r t ( 0 , 0 )
}
2021-09-07 16:00:20 +00:00
f u n c t i o n v a l i d a t o r _ r e v e r t _ t _ i n t 256 ( v a l u e ) {
i f i s z e r o ( e q ( v a l u e , c l e a n u p _ t _ i n t 256 ( v a l u e ) ) ) { r e v e r t ( 0 , 0 ) }
2021-05-27 20:05:21 +00:00
}
2021-09-07 16:00:20 +00:00
f u n c t i o n a b i _ d e c o d e _ t _ i n t 256 _ f r o m M e m o r y ( o f f s e t , e n d ) - > v a l u e {
v a l u e : = m l o a d ( o f f s e t )
v a l i d a t o r _ r e v e r t _ t _ i n t 256 ( v a l u e )
2021-05-27 20:05:21 +00:00
}
2021-09-07 16:00:20 +00:00
f u n c t i o n a b i _ d e c o d e _ t u p l e _ t _ i n t 256 _ f r o m M e m o r y ( h e a d S t a r t , d a t a E n d ) - > v a l u e 0 {
i f s l t ( s u b ( d a t a E n d , h e a d S t a r t ) , 32 ) { r e v e r t _ e r r o r _ d b d d d c b e 8 9 5 c 8 3 9 9 0 c 0 8 b 3 4 9 2 a 0 e 8 3 9 1 8 d 8 0 2 a 5 2 3 3 1 2 7 2 a c 6 f d b 6 a 7 c 4 a e a 3 b 1 b ( ) }
2021-05-27 20:05:21 +00:00
2021-09-07 16:00:20 +00:00
{
2021-05-27 20:05:21 +00:00
2021-09-07 16:00:20 +00:00
l e t o f f s e t : = 0
2021-05-27 20:05:21 +00:00
2021-09-07 16:00:20 +00:00
v a l u e 0 : = a b i _ d e c o d e _ t _ i n t 256 _ f r o m M e m o r y ( a d d ( h e a d S t a r t , o f f s e t ) , d a t a E n d )
}
2021-05-27 20:05:21 +00:00
}
2021-09-07 16:00:20 +00:00
f u n c t i o n a b i _ e n c o d e _ t u p l e _ _ t o _ _ f r o m S t a c k ( h e a d S t a r t ) - > t a i l {
t a i l : = a d d ( h e a d S t a r t , 0 )
2021-05-27 20:05:21 +00:00
2021-09-07 16:00:20 +00:00
}
2021-05-27 20:05:21 +00:00
2021-09-07 16:00:20 +00:00
f u n c t i o n r e v e r t _ f o r w a r d _ 1 ( ) {
l e t p o s : = a l l o c a t e _ u n b o u n d e d ( )
r e t u r n d a t a c o p y ( p o s , 0 , r e t u r n d a t a s i z e ( ) )
r e v e r t ( p o s , r e t u r n d a t a s i z e ( ) )
2021-05-27 20:05:21 +00:00
}
2021-09-16 10:49:01 +00:00
/// @src 0:350:433 \"function f2() m public returns (int)...\"
2021-09-07 16:00:20 +00:00
f u n c t i o n f u n _ f 2 _ 53 _ i n n e r ( _ 8 ) - > v a r _ _ 42 {
v a r _ _ 42 : = _ 8
2021-05-27 20:05:21 +00:00
2021-09-16 10:49:01 +00:00
/// @src 0:399:407 \"stateVar\"
2021-09-07 16:00:20 +00:00
l e t _ 9 : = r e a d _ f r o m _ s t o r a g e _ s p l i t _ o f f s e t _ 0 _ t _ i n t 256 ( 0 x 0 0 )
l e t e x p r _ 44 : = _ 9
2021-09-16 10:49:01 +00:00
/// @src 0:410:414 \"this\"
2021-09-07 16:00:20 +00:00
l e t e x p r _ 45 _ a d d r e s s : = a d d r e s s ( )
2021-09-16 10:49:01 +00:00
/// @src 0:410:416 \"this.f\"
2021-09-07 16:00:20 +00:00
l e t e x p r _ 46 _ a d d r e s s : = c o n v e r t _ t _ c o n t r a c t $ _ C _ $ 54 _ t o _ t _ a d d r e s s ( e x p r _ 45 _ a d d r e s s )
l e t e x p r _ 46 _ f u n c t i o n S e l e c t o r : = 0 x 26121 f f 0
2021-09-16 10:49:01 +00:00
/// @src 0:410:418 \"this.f()\"
2021-05-27 20:05:21 +00:00
2021-09-07 16:00:20 +00:00
// storage for arguments and returned data
l e t _ 10 : = a l l o c a t e _ u n b o u n d e d ( )
m s t o r e ( _ 10 , s h i f t _ l e f t _ 224 ( e x p r _ 46 _ f u n c t i o n S e l e c t o r ) )
l e t _ 11 : = a b i _ e n c o d e _ t u p l e _ _ t o _ _ f r o m S t a c k ( a d d ( _ 10 , 4 ) )
2021-05-27 20:05:21 +00:00
2021-09-07 16:00:20 +00:00
l e t _ 12 : = s t a t i c c a l l ( g a s ( ) , e x p r _ 46 _ a d d r e s s , _ 10 , s u b ( _ 11 , _ 10 ) , _ 10 , 32 )
2021-05-27 20:05:21 +00:00
2021-09-07 16:00:20 +00:00
i f i s z e r o ( _ 12 ) { r e v e r t _ f o r w a r d _ 1 ( ) }
2021-05-27 20:05:21 +00:00
2021-09-07 16:00:20 +00:00
l e t e x p r _ 47
i f _ 12 {
2021-05-27 20:05:21 +00:00
2022-02-16 12:03:39 +00:00
l e t _ 13 : = 32
i f g t ( _ 13 , r e t u r n d a t a s i z e ( ) ) {
_ 13 : = r e t u r n d a t a s i z e ( )
}
2021-09-07 16:00:20 +00:00
// update freeMemoryPointer according to dynamic return size
2022-02-16 12:03:39 +00:00
f i n a l i z e _ a l l o c a t i o n ( _ 10 , _ 13 )
2021-05-27 20:05:21 +00:00
2021-09-07 16:00:20 +00:00
// decode return parameters from external try-call into retVars
2022-02-16 12:03:39 +00:00
e x p r _ 47 : = a b i _ d e c o d e _ t u p l e _ t _ i n t 256 _ f r o m M e m o r y ( _ 10 , a d d ( _ 10 , _ 13 ) )
2021-09-07 16:00:20 +00:00
}
2021-09-16 10:49:01 +00:00
/// @src 0:399:418 \"stateVar + this.f()\"
2021-09-07 16:00:20 +00:00
l e t e x p r _ 48 : = c h e c k e d _ a d d _ t _ i n t 256 ( e x p r _ 44 , e x p r _ 47 )
2021-05-27 20:05:21 +00:00
2021-09-16 10:49:01 +00:00
/// @src 0:421:429 \"immutVar\"
2022-02-16 12:03:39 +00:00
l e t _ 14 : = l o a d i m m u t a b l e ( \ "8\" )
l e t e x p r _ 49 : = _ 14
2021-09-16 10:49:01 +00:00
/// @src 0:399:429 \"stateVar + this.f() + immutVar\"
2021-09-07 16:00:20 +00:00
l e t e x p r _ 50 : = c h e c k e d _ a d d _ t _ i n t 256 ( e x p r _ 48 , e x p r _ 49 )
2021-05-27 20:05:21 +00:00
2021-09-16 10:49:01 +00:00
/// @src 0:392:429 \"return stateVar + this.f() + immutVar\"
2021-09-07 16:00:20 +00:00
v a r _ _ 42 : = e x p r _ 50
l e a v e
2021-05-27 20:05:21 +00:00
}
2021-09-16 10:49:01 +00:00
/// @src 0:79:435 \"contract C...\"
2021-05-27 20:05:21 +00:00
2021-09-15 15:40:11 +00:00
/// @ast-id 53
2021-09-16 10:49:01 +00:00
/// @src 0:350:433 \"function f2() m public returns (int)...\"
2021-09-07 16:00:20 +00:00
f u n c t i o n f u n _ f 2 _ 53 ( ) - > v a r _ _ 42 {
2021-09-16 10:49:01 +00:00
/// @src 0:382:385 \"int\"
2021-09-07 16:00:20 +00:00
l e t z e r o _ t _ i n t 256 _ 4 : = z e r o _ v a l u e _ f o r _ s p l i t _ t _ i n t 256 ( )
v a r _ _ 42 : = z e r o _ t _ i n t 256 _ 4
2021-05-27 20:05:21 +00:00
2021-09-07 16:00:20 +00:00
v a r _ _ 42 : = m o d i f i e r _ m _ 40 ( v a r _ _ 42 )
2021-05-27 20:05:21 +00:00
}
2021-09-16 10:49:01 +00:00
/// @src 0:79:435 \"contract C...\"
2021-05-27 20:05:21 +00:00
}
d a t a \ ".metadata\" hex\"<BYTECODE REMOVED>\"
}
}
2022-03-09 15:02:31 +00:00
"," i r O p t i m i z e d ":" /// @use-src 0:\"C\"
2021-09-16 10:49:01 +00:00
o b j e c t \ "C_54\" {
c o d e {
{
/// @src 0:79:435 \"contract C...\"
2021-09-15 15:01:40 +00:00
l e t _ 1 : = m e m o r y g u a r d ( 0 x a 0 )
2021-09-16 10:49:01 +00:00
i f c a l l v a l u e ( ) { r e v e r t ( 0 , 0 ) }
l e t p r o g r a m S i z e : = d a t a s i z e ( \ "C_54\" )
l e t a r g S i z e : = s u b ( c o d e s i z e ( ) , p r o g r a m S i z e )
2021-09-15 15:01:40 +00:00
l e t n e w F r e e P t r : = a d d ( _ 1 , a n d ( a d d ( a r g S i z e , 31 ) , n o t ( 31 ) ) )
i f o r ( g t ( n e w F r e e P t r , s u b ( s h l ( 64 , 1 ) , 1 ) ) , l t ( n e w F r e e P t r , _ 1 ) )
2021-09-16 10:49:01 +00:00
{
2021-09-17 18:53:32 +00:00
m s t o r e ( / * * @ s r c -1 : -1 : -1 * / 0 , / * * @ s r c 0 : 79 : 435 \ "contract C...\" * / s h l ( 224 , 0 x 4e487 b 71 ) )
2021-09-16 10:49:01 +00:00
m s t o r e ( 4 , 0 x 41 )
2021-09-17 18:53:32 +00:00
r e v e r t ( / * * @ s r c -1 : -1 : -1 * / 0 , / * * @ s r c 0 : 79 : 435 \ "contract C...\" * / 0 x 24 )
2021-09-16 10:49:01 +00:00
}
m s t o r e ( 64 , n e w F r e e P t r )
2021-09-15 15:01:40 +00:00
c o d e c o p y ( _ 1 , p r o g r a m S i z e , a r g S i z e )
i f s l t ( s u b ( a d d ( _ 1 , a r g S i z e ) , _ 1 ) , 32 )
2021-09-16 10:49:01 +00:00
{
2021-09-17 18:53:32 +00:00
r e v e r t ( / * * @ s r c -1 : -1 : -1 * / 0 , 0 )
2021-09-16 10:49:01 +00:00
}
/// @src 0:79:435 \"contract C...\"
2021-09-15 15:01:40 +00:00
c o n s t r u c t o r _ C ( m l o a d ( _ 1 ) )
l e t _ 2 : = m l o a d ( 64 )
l e t _ 3 : = d a t a s i z e ( \ "C_54_deployed\" )
c o d e c o p y ( _ 2 , d a t a o f f s e t ( \ "C_54_deployed\" ) , _ 3 )
s e t i m m u t a b l e ( _ 2 , \ "8\" , m l o a d ( 128 ) )
r e t u r n ( _ 2 , _ 3 )
2021-09-16 10:49:01 +00:00
}
/// @ast-id 20 @src 0:182:230 \"constructor(int _init)...\"
f u n c t i o n c o n s t r u c t o r _ C ( v a r _ i n i t )
{
/// @src 0:154:156 \"42\"
m s t o r e ( 128 , 0 x 2 a )
/// @src 0:79:435 \"contract C...\"
s s t o r e ( / * * @ s r c 0 : 210 : 226 \ "stateVar = _init\" */ 0x00, /** @src 0:79:435 \"contract C...\" * / v a r _ i n i t )
}
}
/// @use-src 0:\"C\"
o b j e c t \ "C_54_deployed\" {
c o d e {
{
/// @src 0:79:435 \"contract C...\"
2021-09-15 15:01:40 +00:00
m s t o r e ( 64 , m e m o r y g u a r d ( 0 x 80 ) )
2021-09-16 10:49:01 +00:00
i f i s z e r o ( l t ( c a l l d a t a s i z e ( ) , 4 ) )
{
l e t _ 1 : = 0
s w i t c h s h r ( 224 , c a l l d a t a l o a d ( _ 1 ) )
c a s e 0 x 26121 f f 0 {
i f c a l l v a l u e ( ) { r e v e r t ( _ 1 , _ 1 ) }
2022-02-15 11:20:28 +00:00
i f s l t ( a d d ( c a l l d a t a s i z e ( ) , n o t ( 3 ) ) , _ 1 ) { r e v e r t ( _ 1 , _ 1 ) }
/// @src 0:297:305 \"immutVar\"
l e t _ 2 : = l o a d i m m u t a b l e ( \ "8\" )
2021-09-16 10:49:01 +00:00
/// @src 0:79:435 \"contract C...\"
2022-02-15 11:20:28 +00:00
i f a n d ( 1 , s g t ( _ 2 , s u b ( s h l ( 255 , 1 ) , 42 ) ) ) { p a n i c _ e r r o r _ 0 x 1 1 ( ) }
2021-09-16 10:49:01 +00:00
l e t m e m P o s : = m l o a d ( 64 )
2022-02-15 11:20:28 +00:00
m s t o r e ( m e m P o s , a d d ( / * * @ s r c 0 : 124 : 126 \ "41\" */ 0x29, /** @src 0:79:435 \"contract C...\" * / _ 2 ) )
r e t u r n ( m e m P o s , 32 )
2021-09-16 10:49:01 +00:00
}
2022-02-15 11:20:28 +00:00
c a s e 0 x 793816 e c { e x t e r n a l _ f u n _ s t a t e V a r ( ) }
c a s e 0 x 9942 e c 6 f { e x t e r n a l _ f u n _ f 2 ( ) }
c a s e 0 x a 0 0 b 982 b { e x t e r n a l _ f u n _ c o n s t V a r ( ) }
2021-09-16 10:49:01 +00:00
}
r e v e r t ( 0 , 0 )
}
f u n c t i o n a b i _ e n c o d e _ i n t 256 ( h e a d S t a r t , v a l u e 0 ) - > t a i l
{
t a i l : = a d d ( h e a d S t a r t , 32 )
m s t o r e ( h e a d S t a r t , v a l u e 0 )
}
2022-02-15 11:20:28 +00:00
f u n c t i o n e x t e r n a l _ f u n _ s t a t e V a r ( )
2021-09-16 10:49:01 +00:00
{
2022-02-15 11:20:28 +00:00
i f c a l l v a l u e ( ) { r e v e r t ( 0 , 0 ) }
i f s l t ( a d d ( c a l l d a t a s i z e ( ) , n o t ( 3 ) ) , 0 ) { r e v e r t ( 0 , 0 ) }
l e t _ 1 : = s l o a d ( 0 )
l e t m e m P o s : = m l o a d ( 64 )
m s t o r e ( m e m P o s , _ 1 )
r e t u r n ( m e m P o s , 32 )
}
f u n c t i o n e x t e r n a l _ f u n _ f 2 ( )
2021-09-16 10:49:01 +00:00
{
2022-02-15 11:20:28 +00:00
i f c a l l v a l u e ( ) { r e v e r t ( 0 , 0 ) }
l e t _ 1 : = 0
i f s l t ( a d d ( c a l l d a t a s i z e ( ) , n o t ( 3 ) ) , _ 1 ) { r e v e r t ( _ 1 , _ 1 ) }
l e t _ 2 : = s l o a d ( _ 1 )
i f e q ( _ 2 , s u b ( s h l ( 255 , 1 ) , 1 ) ) { p a n i c _ e r r o r _ 0 x 1 1 ( ) }
l e t r e t : = a d d ( _ 2 , 1 )
s s t o r e ( _ 1 , r e t )
2021-09-16 10:49:01 +00:00
/// @src 0:410:418 \"this.f()\"
2022-02-15 11:20:28 +00:00
l e t _ 3 : = / * * @ s r c 0 : 79 : 435 \ "contract C...\" * / m l o a d ( 64 )
2021-09-16 10:49:01 +00:00
/// @src 0:410:418 \"this.f()\"
2022-02-15 11:20:28 +00:00
m s t o r e ( _ 3 , / * * @ s r c 0 : 79 : 435 \ "contract C...\" * / s h l ( 228 , 0 x 0 26121 f f ) )
2021-09-16 10:49:01 +00:00
/// @src 0:410:418 \"this.f()\"
2022-02-15 11:20:28 +00:00
l e t _ 4 : = s t a t i c c a l l ( g a s ( ) , / * * @ s r c 0 : 410 : 414 \ "this\" */ address(), /** @src 0:410:418 \"this.f()\" */ _3, /** @src 0:79:435 \"contract C...\" */ 4, /** @src 0:410:418 \"this.f()\" * / _ 3 , 32 )
i f i s z e r o ( _ 4 )
2021-09-16 10:49:01 +00:00
{
/// @src 0:79:435 \"contract C...\"
l e t p o s : = m l o a d ( 64 )
2022-02-15 11:20:28 +00:00
r e t u r n d a t a c o p y ( p o s , _ 1 , r e t u r n d a t a s i z e ( ) )
2021-09-16 10:49:01 +00:00
r e v e r t ( p o s , r e t u r n d a t a s i z e ( ) )
}
/// @src 0:410:418 \"this.f()\"
2022-02-15 11:20:28 +00:00
l e t e x p r : = / * * @ s r c 0 : 79 : 435 \ "contract C...\" * / _ 1
2021-09-16 10:49:01 +00:00
/// @src 0:410:418 \"this.f()\"
2022-02-15 11:20:28 +00:00
i f _ 4
2021-09-16 10:49:01 +00:00
{
2022-02-16 12:03:39 +00:00
l e t _ 5 : = 32
i f g t ( _ 5 , r e t u r n d a t a s i z e ( ) ) { _ 5 : = r e t u r n d a t a s i z e ( ) }
2021-09-16 10:49:01 +00:00
/// @src 0:79:435 \"contract C...\"
2022-02-16 12:03:39 +00:00
l e t n e w F r e e P t r : = a d d ( _ 3 , a n d ( a d d ( _ 5 , 31 ) , n o t ( 31 ) ) )
2022-02-15 11:20:28 +00:00
i f o r ( g t ( n e w F r e e P t r , 0 x f f f f f f f f f f f f f f f f ) , l t ( n e w F r e e P t r , _ 3 ) )
2021-09-16 10:49:01 +00:00
{
2022-02-15 11:20:28 +00:00
m s t o r e ( _ 1 , s h l ( 224 , 0 x 4e487 b 71 ) )
m s t o r e ( 4 , 0 x 41 )
r e v e r t ( _ 1 , 0 x 24 )
2021-09-16 10:49:01 +00:00
}
m s t o r e ( 64 , n e w F r e e P t r )
/// @src 0:410:418 \"this.f()\"
2022-02-16 12:03:39 +00:00
e x p r : = a b i _ d e c o d e _ i n t 256 _ f r o m M e m o r y ( _ 3 , a d d ( _ 3 , _ 5 ) )
2021-09-16 10:49:01 +00:00
}
/// @src 0:399:418 \"stateVar + this.f()\"
l e t e x p r _ 1 : = c h e c k e d _ a d d _ i n t 256 ( r e t , e x p r )
2022-02-15 11:20:28 +00:00
/// @src 0:392:429 \"return stateVar + this.f() + immutVar\"
l e t v a r : = / * * @ s r c 0 : 399 : 429 \ "stateVar + this.f() + immutVar\" */ checked_add_int256(expr_1, /** @src 0:421:429 \"immutVar\" */ loadimmutable(\"8\" ) )
/// @src 0:79:435 \"contract C...\"
l e t m e m P o s : = m l o a d ( 64 )
r e t u r n ( m e m P o s , s u b ( a b i _ e n c o d e _ i n t 256 ( m e m P o s , v a r ) , m e m P o s ) )
}
f u n c t i o n e x t e r n a l _ f u n _ c o n s t V a r ( )
{
i f c a l l v a l u e ( ) { r e v e r t ( 0 , 0 ) }
i f s l t ( a d d ( c a l l d a t a s i z e ( ) , n o t ( 3 ) ) , 0 ) { r e v e r t ( 0 , 0 ) }
l e t m e m P o s : = m l o a d ( 64 )
m s t o r e ( m e m P o s , / * * @ s r c 0 : 124 : 126 \ "41\" * / 0 x 29 )
/// @src 0:79:435 \"contract C...\"
r e t u r n ( m e m P o s , 32 )
}
f u n c t i o n p a n i c _ e r r o r _ 0 x 11 ( )
{
m s t o r e ( 0 , s h l ( 224 , 0 x 4e487 b 71 ) )
m s t o r e ( 4 , 0 x 11 )
r e v e r t ( 0 , 0 x 24 )
}
f u n c t i o n c h e c k e d _ a d d _ i n t 256 ( x , y ) - > s u m
{
l e t _ 1 : = s l t ( x , 0 )
i f a n d ( i s z e r o ( _ 1 ) , s g t ( y , s u b ( s u b ( s h l ( 255 , 1 ) , 1 ) , x ) ) ) { p a n i c _ e r r o r _ 0 x 1 1 ( ) }
i f a n d ( _ 1 , s l t ( y , s u b ( s h l ( 255 , 1 ) , x ) ) ) { p a n i c _ e r r o r _ 0 x 1 1 ( ) }
s u m : = a d d ( x , y )
2021-09-16 10:49:01 +00:00
}
f u n c t i o n a b i _ d e c o d e _ i n t 256 _ f r o m M e m o r y ( h e a d S t a r t , d a t a E n d ) - > v a l u e 0
{
i f s l t ( s u b ( d a t a E n d , h e a d S t a r t ) , 32 ) { r e v e r t ( 0 , 0 ) }
v a l u e 0 : = m l o a d ( h e a d S t a r t )
}
}
d a t a \ ".metadata\" hex\"<BYTECODE REMOVED>\"
}
}
2022-03-09 15:02:31 +00:00
"}}," D ":{" D ":{" i r ":"
2021-08-31 10:57:13 +00:00
/// @use-src 0:\"C\", 1:\"D\"
2021-05-27 20:05:21 +00:00
o b j e c t \ "D_72\" {
c o d e {
2021-08-31 13:10:40 +00:00
/// @src 1:91:166 \"contract D is C(3)...\"
2021-09-15 15:01:40 +00:00
m s t o r e ( 64 , m e m o r y g u a r d ( 160 ) )
2021-05-27 20:05:21 +00:00
i f c a l l v a l u e ( ) { r e v e r t _ e r r o r _ c a 6 6 f 7 4 5 a 3 c e 8 f f 4 0 e 2 c c a f 1 a d 4 5 d b 7 7 7 4 0 0 1 b 9 0 d 2 5 8 1 0 a b d 9 0 4 0 0 4 9 b e 7 b f 4 b b ( ) }
l e t _ 1 : = c o p y _ a r g u m e n t s _ f o r _ c o n s t r u c t o r _ 71 _ o b j e c t _ D _ 72 ( )
c o n s t r u c t o r _ D _ 72 ( _ 1 )
l e t _ 2 : = a l l o c a t e _ u n b o u n d e d ( )
c o d e c o p y ( _ 2 , d a t a o f f s e t ( \ "D_72_deployed\"), datasize(\"D_72_deployed\" ) )
s e t i m m u t a b l e ( _ 2 , \ "8\" , m l o a d ( 128 ) )
r e t u r n ( _ 2 , d a t a s i z e ( \ "D_72_deployed\" ) )
2021-09-07 16:00:20 +00:00
f u n c t i o n a l l o c a t e _ u n b o u n d e d ( ) - > m e m P t r {
m e m P t r : = m l o a d ( 64 )
2021-05-27 20:05:21 +00:00
}
2021-09-07 16:00:20 +00:00
f u n c t i o n r e v e r t _ e r r o r _ c a 66 f 745 a 3 c e 8 f f 40e2 c c a f 1 a d 45 d b 7774001 b 90 d 25810 a b d 9040049 b e 7 b f 4 b b ( ) {
r e v e r t ( 0 , 0 )
}
2021-05-27 20:05:21 +00:00
2021-09-07 16:00:20 +00:00
f u n c t i o n r o u n d _ u p _ t o _ m u l _ o f _ 32 ( v a l u e ) - > r e s u l t {
r e s u l t : = a n d ( a d d ( v a l u e , 31 ) , n o t ( 31 ) )
}
2021-05-27 20:05:21 +00:00
2021-09-07 16:00:20 +00:00
f u n c t i o n p a n i c _ e r r o r _ 0 x 41 ( ) {
m s t o r e ( 0 , 35408467139433450592217433187231851964531694900788300625387963629091585785856 )
m s t o r e ( 4 , 0 x 41 )
r e v e r t ( 0 , 0 x 24 )
}
2021-05-27 20:05:21 +00:00
2021-09-07 16:00:20 +00:00
f u n c t i o n f i n a l i z e _ a l l o c a t i o n ( m e m P t r , s i z e ) {
l e t n e w F r e e P t r : = a d d ( m e m P t r , r o u n d _ u p _ t o _ m u l _ o f _ 32 ( s i z e ) )
// protect against overflow
i f o r ( g t ( n e w F r e e P t r , 0 x f f f f f f f f f f f f f f f f ) , l t ( n e w F r e e P t r , m e m P t r ) ) { p a n i c _ e r r o r _ 0 x 4 1 ( ) }
m s t o r e ( 64 , n e w F r e e P t r )
2021-05-27 20:05:21 +00:00
}
f u n c t i o n a l l o c a t e _ m e m o r y ( s i z e ) - > m e m P t r {
m e m P t r : = a l l o c a t e _ u n b o u n d e d ( )
f i n a l i z e _ a l l o c a t i o n ( m e m P t r , s i z e )
}
2021-09-07 16:00:20 +00:00
f u n c t i o n r e v e r t _ e r r o r _ d b d d d c b e 895 c 83990 c 0 8 b 3492 a 0e83918 d 802 a 52331272 a c 6 f d b 6 a 7 c 4 a e a 3 b 1 b ( ) {
r e v e r t ( 0 , 0 )
2021-05-27 20:05:21 +00:00
}
2021-09-07 16:00:20 +00:00
f u n c t i o n r e v e r t _ e r r o r _ c 1322 b f 8034 e a c e 5e0 b 5 c 7295 d b 60986 a a 89 a a e 5e0 e a 0 873e4689 e 0 76861 a 5 d b ( ) {
r e v e r t ( 0 , 0 )
2021-05-27 20:05:21 +00:00
}
f u n c t i o n c l e a n u p _ t _ i n t 256 ( v a l u e ) - > c l e a n e d {
c l e a n e d : = v a l u e
}
2021-09-07 16:00:20 +00:00
f u n c t i o n v a l i d a t o r _ r e v e r t _ t _ i n t 256 ( v a l u e ) {
i f i s z e r o ( e q ( v a l u e , c l e a n u p _ t _ i n t 256 ( v a l u e ) ) ) { r e v e r t ( 0 , 0 ) }
2021-08-05 11:23:50 +00:00
}
2021-09-07 16:00:20 +00:00
f u n c t i o n a b i _ d e c o d e _ t _ i n t 256 _ f r o m M e m o r y ( o f f s e t , e n d ) - > v a l u e {
v a l u e : = m l o a d ( o f f s e t )
v a l i d a t o r _ r e v e r t _ t _ i n t 256 ( v a l u e )
2021-08-05 11:23:50 +00:00
}
2021-09-07 16:00:20 +00:00
f u n c t i o n a b i _ d e c o d e _ t u p l e _ t _ i n t 256 _ f r o m M e m o r y ( h e a d S t a r t , d a t a E n d ) - > v a l u e 0 {
i f s l t ( s u b ( d a t a E n d , h e a d S t a r t ) , 32 ) { r e v e r t _ e r r o r _ d b d d d c b e 8 9 5 c 8 3 9 9 0 c 0 8 b 3 4 9 2 a 0 e 8 3 9 1 8 d 8 0 2 a 5 2 3 3 1 2 7 2 a c 6 f d b 6 a 7 c 4 a e a 3 b 1 b ( ) }
2021-05-27 20:05:21 +00:00
2021-09-07 16:00:20 +00:00
{
2021-05-27 20:05:21 +00:00
2021-09-07 16:00:20 +00:00
l e t o f f s e t : = 0
2021-05-27 20:05:21 +00:00
2021-09-07 16:00:20 +00:00
v a l u e 0 : = a b i _ d e c o d e _ t _ i n t 256 _ f r o m M e m o r y ( a d d ( h e a d S t a r t , o f f s e t ) , d a t a E n d )
}
2021-05-27 20:05:21 +00:00
}
2021-09-07 16:00:20 +00:00
f u n c t i o n c o p y _ a r g u m e n t s _ f o r _ c o n s t r u c t o r _ 71 _ o b j e c t _ D _ 72 ( ) - > r e t _ p a r a m _ 0 {
l e t p r o g r a m S i z e : = d a t a s i z e ( \ "D_72\" )
l e t a r g S i z e : = s u b ( c o d e s i z e ( ) , p r o g r a m S i z e )
2021-05-27 20:05:21 +00:00
2021-09-07 16:00:20 +00:00
l e t m e m o r y D a t a O f f s e t : = a l l o c a t e _ m e m o r y ( a r g S i z e )
c o d e c o p y ( m e m o r y D a t a O f f s e t , p r o g r a m S i z e , a r g S i z e )
2021-05-27 20:05:21 +00:00
2021-09-07 16:00:20 +00:00
r e t _ p a r a m _ 0 : = a b i _ d e c o d e _ t u p l e _ t _ i n t 256 _ f r o m M e m o r y ( m e m o r y D a t a O f f s e t , a d d ( m e m o r y D a t a O f f s e t , a r g S i z e ) )
}
2021-05-27 20:05:21 +00:00
2021-09-07 16:00:20 +00:00
f u n c t i o n c l e a n u p _ t _ r a t i o n a l _ 3 _ b y _ 1 ( v a l u e ) - > c l e a n e d {
c l e a n e d : = v a l u e
2021-05-27 20:05:21 +00:00
}
2021-09-07 16:00:20 +00:00
f u n c t i o n i d e n t i t y ( v a l u e ) - > r e t {
r e t : = v a l u e
2021-05-27 20:05:21 +00:00
}
f u n c t i o n c o n v e r t _ t _ r a t i o n a l _ 3 _ b y _ 1 _ t o _ t _ i n t 256 ( v a l u e ) - > c o n v e r t e d {
2021-08-05 11:23:50 +00:00
c o n v e r t e d : = c l e a n u p _ t _ i n t 256 ( i d e n t i t y ( c l e a n u p _ t _ r a t i o n a l _ 3 _ b y _ 1 ( v a l u e ) ) )
2021-05-27 20:05:21 +00:00
}
2021-09-07 16:00:20 +00:00
f u n c t i o n s h i f t _ r i g h t _ 0 _ u n s i g n e d ( v a l u e ) - > n e w V a l u e {
n e w V a l u e : =
2021-05-27 20:05:21 +00:00
2021-09-07 16:00:20 +00:00
s h r ( 0 , v a l u e )
2021-05-27 20:05:21 +00:00
2021-09-07 16:00:20 +00:00
}
2021-05-27 20:05:21 +00:00
2021-09-07 16:00:20 +00:00
f u n c t i o n c l e a n u p _ f r o m _ s t o r a g e _ t _ i n t 256 ( v a l u e ) - > c l e a n e d {
c l e a n e d : = v a l u e
2021-05-27 20:05:21 +00:00
}
f u n c t i o n e x t r a c t _ f r o m _ s t o r a g e _ v a l u e _ o f f s e t _ 0 t _ i n t 256 ( s l o t _ v a l u e ) - > v a l u e {
v a l u e : = c l e a n u p _ f r o m _ s t o r a g e _ t _ i n t 256 ( s h i f t _ r i g h t _ 0 _ u n s i g n e d ( s l o t _ v a l u e ) )
}
2021-09-07 16:00:20 +00:00
f u n c t i o n r e a d _ f r o m _ s t o r a g e _ s p l i t _ o f f s e t _ 0 _ t _ i n t 256 ( s l o t ) - > v a l u e {
v a l u e : = e x t r a c t _ f r o m _ s t o r a g e _ v a l u e _ o f f s e t _ 0 t _ i n t 256 ( s l o a d ( s l o t ) )
2021-05-27 20:05:21 +00:00
2021-08-05 11:23:50 +00:00
}
2021-05-27 20:05:21 +00:00
f u n c t i o n p a n i c _ e r r o r _ 0 x 11 ( ) {
m s t o r e ( 0 , 35408467139433450592217433187231851964531694900788300625387963629091585785856 )
m s t o r e ( 4 , 0 x 11 )
r e v e r t ( 0 , 0 x 24 )
}
2021-09-07 16:00:20 +00:00
f u n c t i o n c h e c k e d _ a d d _ t _ i n t 256 ( x , y ) - > s u m {
x : = c l e a n u p _ t _ i n t 256 ( x )
y : = c l e a n u p _ t _ i n t 256 ( y )
2021-05-27 20:05:21 +00:00
2021-09-07 16:00:20 +00:00
// overflow, if x >= 0 and y > (maxValue - x)
i f a n d ( i s z e r o ( s l t ( x , 0 ) ) , s g t ( y , s u b ( 0 x 7 f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f , x ) ) ) { p a n i c _ e r r o r _ 0 x 1 1 ( ) }
// underflow, if x < 0 and y < (minValue - x)
i f a n d ( s l t ( x , 0 ) , s l t ( y , s u b ( 0 x 8000000000000000000000000000000000000000000000000000000000000000 , x ) ) ) { p a n i c _ e r r o r _ 0 x 1 1 ( ) }
s u m : = a d d ( x , y )
2021-05-27 20:05:21 +00:00
}
2021-09-07 16:00:20 +00:00
f u n c t i o n s h i f t _ l e f t _ 0 ( v a l u e ) - > n e w V a l u e {
n e w V a l u e : =
2021-05-27 20:05:21 +00:00
2021-09-07 16:00:20 +00:00
s h l ( 0 , v a l u e )
2021-05-27 20:05:21 +00:00
}
2021-09-07 16:00:20 +00:00
f u n c t i o n u p d a t e _ b y t e _ s l i c e _ 32 _ s h i f t _ 0 ( v a l u e , t o I n s e r t ) - > r e s u l t {
l e t m a s k : = 0 x f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f
t o I n s e r t : = s h i f t _ l e f t _ 0 ( t o I n s e r t )
v a l u e : = a n d ( v a l u e , n o t ( m a s k ) )
r e s u l t : = o r ( v a l u e , a n d ( t o I n s e r t , m a s k ) )
2021-05-27 20:05:21 +00:00
}
2021-09-07 16:00:20 +00:00
f u n c t i o n c o n v e r t _ t _ i n t 256 _ t o _ t _ i n t 256 ( v a l u e ) - > c o n v e r t e d {
c o n v e r t e d : = c l e a n u p _ t _ i n t 256 ( i d e n t i t y ( c l e a n u p _ t _ i n t 256 ( v a l u e ) ) )
2021-05-27 20:05:21 +00:00
}
2021-09-07 16:00:20 +00:00
f u n c t i o n p r e p a r e _ s t o r e _ t _ i n t 256 ( v a l u e ) - > r e t {
r e t : = v a l u e
2021-05-27 20:05:21 +00:00
}
2021-09-07 16:00:20 +00:00
f u n c t i o n u p d a t e _ s t o r a g e _ v a l u e _ o f f s e t _ 0 t _ i n t 256 _ t o _ t _ i n t 256 ( s l o t , v a l u e _ 0 ) {
l e t c o n v e r t e d V a l u e _ 0 : = c o n v e r t _ t _ i n t 256 _ t o _ t _ i n t 256 ( v a l u e _ 0 )
s s t o r e ( s l o t , u p d a t e _ b y t e _ s l i c e _ 32 _ s h i f t _ 0 ( s l o a d ( s l o t ) , p r e p a r e _ s t o r e _ t _ i n t 256 ( c o n v e r t e d V a l u e _ 0 ) ) )
}
2021-05-27 20:05:21 +00:00
2021-09-15 15:40:11 +00:00
/// @ast-id 71
2021-08-31 13:10:40 +00:00
/// @src 1:113:164 \"constructor(int _init2)...\"
2021-09-07 16:00:20 +00:00
f u n c t i o n c o n s t r u c t o r _ D _ 72 ( v a r _ _ i n i t 2 _ 63 ) {
2021-08-31 13:10:40 +00:00
/// @src 1:107:108 \"3\"
2021-09-07 16:00:20 +00:00
l e t e x p r _ 60 : = 0 x 0 3
l e t _ 3 : = c o n v e r t _ t _ r a t i o n a l _ 3 _ b y _ 1 _ t o _ t _ i n t 256 ( e x p r _ 60 )
2021-05-27 20:05:21 +00:00
2021-08-31 13:10:40 +00:00
/// @src 1:113:164 \"constructor(int _init2)...\"
2021-09-07 16:00:20 +00:00
c o n s t r u c t o r _ C _ 54 ( _ 3 )
2021-05-27 20:05:21 +00:00
2021-08-31 13:10:40 +00:00
/// @src 1:154:160 \"_init2\"
2021-09-07 16:00:20 +00:00
l e t _ 4 : = v a r _ _ i n i t 2 _ 63
l e t e x p r _ 67 : = _ 4
2021-08-31 13:10:40 +00:00
/// @src 1:142:160 \"stateVar += _init2\"
2021-09-07 16:00:20 +00:00
l e t _ 5 : = r e a d _ f r o m _ s t o r a g e _ s p l i t _ o f f s e t _ 0 _ t _ i n t 256 ( 0 x 0 0 )
l e t e x p r _ 68 : = c h e c k e d _ a d d _ t _ i n t 256 ( _ 5 , e x p r _ 67 )
2021-05-27 20:05:21 +00:00
2021-09-07 16:00:20 +00:00
u p d a t e _ s t o r a g e _ v a l u e _ o f f s e t _ 0 t _ i n t 256 _ t o _ t _ i n t 256 ( 0 x 0 0 , e x p r _ 68 )
2021-05-27 20:05:21 +00:00
}
2021-08-31 13:10:40 +00:00
/// @src 1:91:166 \"contract D is C(3)...\"
2021-05-27 20:05:21 +00:00
2021-09-07 16:00:20 +00:00
f u n c t i o n c l e a n u p _ t _ r a t i o n a l _ 42 _ b y _ 1 ( v a l u e ) - > c l e a n e d {
c l e a n e d : = v a l u e
2021-05-27 20:05:21 +00:00
}
2021-09-07 16:00:20 +00:00
f u n c t i o n c o n v e r t _ t _ r a t i o n a l _ 42 _ b y _ 1 _ t o _ t _ i n t 256 ( v a l u e ) - > c o n v e r t e d {
c o n v e r t e d : = c l e a n u p _ t _ i n t 256 ( i d e n t i t y ( c l e a n u p _ t _ r a t i o n a l _ 42 _ b y _ 1 ( v a l u e ) ) )
2021-05-27 20:05:21 +00:00
}
2021-09-15 15:40:11 +00:00
/// @ast-id 20
2021-09-16 10:49:01 +00:00
/// @src 0:182:230 \"constructor(int _init)...\"
2021-09-07 16:00:20 +00:00
f u n c t i o n c o n s t r u c t o r _ C _ 54 ( v a r _ _ i n i t _ 12 ) {
2021-09-16 10:49:01 +00:00
/// @src 0:182:230 \"constructor(int _init)...\"
2021-09-07 16:00:20 +00:00
2021-09-16 10:49:01 +00:00
/// @src 0:154:156 \"42\"
2021-09-07 16:00:20 +00:00
l e t e x p r _ 7 : = 0 x 2 a
l e t _ 6 : = c o n v e r t _ t _ r a t i o n a l _ 42 _ b y _ 1 _ t o _ t _ i n t 256 ( e x p r _ 7 )
m s t o r e ( 128 , _ 6 )
2021-09-16 10:49:01 +00:00
/// @src 0:221:226 \"_init\"
2021-09-07 16:00:20 +00:00
l e t _ 7 : = v a r _ _ i n i t _ 12
l e t e x p r _ 16 : = _ 7
2021-09-16 10:49:01 +00:00
/// @src 0:210:226 \"stateVar = _init\"
2021-09-07 16:00:20 +00:00
u p d a t e _ s t o r a g e _ v a l u e _ o f f s e t _ 0 t _ i n t 256 _ t o _ t _ i n t 256 ( 0 x 0 0 , e x p r _ 16 )
l e t e x p r _ 17 : = e x p r _ 16
2021-05-27 20:05:21 +00:00
}
2021-08-31 13:10:40 +00:00
/// @src 1:91:166 \"contract D is C(3)...\"
2021-05-27 20:05:21 +00:00
}
2021-08-31 10:57:13 +00:00
/// @use-src 0:\"C\", 1:\"D\"
2021-05-27 20:05:21 +00:00
o b j e c t \ "D_72_deployed\" {
c o d e {
2021-08-31 13:10:40 +00:00
/// @src 1:91:166 \"contract D is C(3)...\"
2021-09-15 15:01:40 +00:00
m s t o r e ( 64 , m e m o r y g u a r d ( 128 ) )
2021-05-27 20:05:21 +00:00
i f i s z e r o ( l t ( c a l l d a t a s i z e ( ) , 4 ) )
{
l e t s e l e c t o r : = s h i f t _ r i g h t _ 224 _ u n s i g n e d ( c a l l d a t a l o a d ( 0 ) )
s w i t c h s e l e c t o r
c a s e 0 x 26121 f f 0
{
// f()
2022-02-15 11:20:28 +00:00
e x t e r n a l _ f u n _ f _ 30 ( )
2021-05-27 20:05:21 +00:00
}
c a s e 0 x 793816 e c
{
// stateVar()
2022-02-15 11:20:28 +00:00
e x t e r n a l _ f u n _ s t a t e V a r _ 10 ( )
2021-05-27 20:05:21 +00:00
}
c a s e 0 x 9942 e c 6 f
{
// f2()
2022-02-15 11:20:28 +00:00
e x t e r n a l _ f u n _ f 2 _ 53 ( )
2021-05-27 20:05:21 +00:00
}
2021-09-16 10:49:01 +00:00
c a s e 0 x a 0 0 b 982 b
{
// constVar()
2022-02-15 11:20:28 +00:00
e x t e r n a l _ f u n _ c o n s t V a r _ 5 ( )
2021-09-16 10:49:01 +00:00
}
2021-05-27 20:05:21 +00:00
d e f a u l t { }
}
2021-10-12 13:25:28 +00:00
2021-05-27 20:05:21 +00:00
r e v e r t _ e r r o r _ 42 b 3090547 d f 1 d 2001 c 96683413 b 8 c f 91 c 1 b 902 e f 5e3 c b 8 d 9 f 6 f 304 c f 7446 f 74 ( )
2021-09-07 16:00:20 +00:00
f u n c t i o n s h i f t _ r i g h t _ 224 _ u n s i g n e d ( v a l u e ) - > n e w V a l u e {
n e w V a l u e : =
2021-05-27 20:05:21 +00:00
2021-09-07 16:00:20 +00:00
s h r ( 224 , v a l u e )
2021-05-27 20:05:21 +00:00
}
2021-09-07 16:00:20 +00:00
f u n c t i o n a l l o c a t e _ u n b o u n d e d ( ) - > m e m P t r {
m e m P t r : = m l o a d ( 64 )
}
2021-05-27 20:05:21 +00:00
2021-09-07 16:00:20 +00:00
f u n c t i o n r e v e r t _ e r r o r _ c a 66 f 745 a 3 c e 8 f f 40e2 c c a f 1 a d 45 d b 7774001 b 90 d 25810 a b d 9040049 b e 7 b f 4 b b ( ) {
r e v e r t ( 0 , 0 )
}
2021-05-27 20:05:21 +00:00
2021-09-07 16:00:20 +00:00
f u n c t i o n r e v e r t _ e r r o r _ d b d d d c b e 895 c 83990 c 0 8 b 3492 a 0e83918 d 802 a 52331272 a c 6 f d b 6 a 7 c 4 a e a 3 b 1 b ( ) {
r e v e r t ( 0 , 0 )
}
2021-05-27 20:05:21 +00:00
2021-09-07 16:00:20 +00:00
f u n c t i o n a b i _ d e c o d e _ t u p l e _ ( h e a d S t a r t , d a t a E n d ) {
i f s l t ( s u b ( d a t a E n d , h e a d S t a r t ) , 0 ) { r e v e r t _ e r r o r _ d b d d d c b e 8 9 5 c 8 3 9 9 0 c 0 8 b 3 4 9 2 a 0 e 8 3 9 1 8 d 8 0 2 a 5 2 3 3 1 2 7 2 a c 6 f d b 6 a 7 c 4 a e a 3 b 1 b ( ) }
2021-05-27 20:05:21 +00:00
}
2021-09-07 16:00:20 +00:00
f u n c t i o n c l e a n u p _ t _ i n t 256 ( v a l u e ) - > c l e a n e d {
c l e a n e d : = v a l u e
}
2021-05-27 20:05:21 +00:00
f u n c t i o n a b i _ e n c o d e _ t _ i n t 256 _ t o _ t _ i n t 256 _ f r o m S t a c k ( v a l u e , p o s ) {
m s t o r e ( p o s , c l e a n u p _ t _ i n t 256 ( v a l u e ) )
}
f u n c t i o n a b i _ e n c o d e _ t u p l e _ t _ i n t 256 _ _ t o _ t _ i n t 256 _ _ f r o m S t a c k ( h e a d S t a r t , v a l u e 0 ) - > t a i l {
t a i l : = a d d ( h e a d S t a r t , 32 )
a b i _ e n c o d e _ t _ i n t 256 _ t o _ t _ i n t 256 _ f r o m S t a c k ( v a l u e 0 , a d d ( h e a d S t a r t , 0 ) )
}
2022-02-15 11:20:28 +00:00
f u n c t i o n e x t e r n a l _ f u n _ f _ 30 ( ) {
i f c a l l v a l u e ( ) { r e v e r t _ e r r o r _ c a 6 6 f 7 4 5 a 3 c e 8 f f 4 0 e 2 c c a f 1 a d 4 5 d b 7 7 7 4 0 0 1 b 9 0 d 2 5 8 1 0 a b d 9 0 4 0 0 4 9 b e 7 b f 4 b b ( ) }
a b i _ d e c o d e _ t u p l e _ ( 4 , c a l l d a t a s i z e ( ) )
l e t r e t _ 0 : = f u n _ f _ 30 ( )
l e t m e m P o s : = a l l o c a t e _ u n b o u n d e d ( )
l e t m e m E n d : = a b i _ e n c o d e _ t u p l e _ t _ i n t 256 _ _ t o _ t _ i n t 256 _ _ f r o m S t a c k ( m e m P o s , r e t _ 0 )
r e t u r n ( m e m P o s , s u b ( m e m E n d , m e m P o s ) )
}
2021-09-07 16:00:20 +00:00
f u n c t i o n s h i f t _ r i g h t _ u n s i g n e d _ d y n a m i c ( b i t s , v a l u e ) - > n e w V a l u e {
n e w V a l u e : =
2021-05-27 20:05:21 +00:00
2021-09-07 16:00:20 +00:00
s h r ( b i t s , v a l u e )
2021-05-27 20:05:21 +00:00
}
f u n c t i o n c l e a n u p _ f r o m _ s t o r a g e _ t _ i n t 256 ( v a l u e ) - > c l e a n e d {
c l e a n e d : = v a l u e
}
2021-09-07 16:00:20 +00:00
f u n c t i o n e x t r a c t _ f r o m _ s t o r a g e _ v a l u e _ d y n a m i c t _ i n t 256 ( s l o t _ v a l u e , o f f s e t ) - > v a l u e {
v a l u e : = c l e a n u p _ f r o m _ s t o r a g e _ t _ i n t 256 ( s h i f t _ r i g h t _ u n s i g n e d _ d y n a m i c ( m u l ( o f f s e t , 8 ) , s l o t _ v a l u e ) )
2021-05-27 20:05:21 +00:00
}
2021-09-07 16:00:20 +00:00
f u n c t i o n r e a d _ f r o m _ s t o r a g e _ s p l i t _ d y n a m i c _ t _ i n t 256 ( s l o t , o f f s e t ) - > v a l u e {
v a l u e : = e x t r a c t _ f r o m _ s t o r a g e _ v a l u e _ d y n a m i c t _ i n t 256 ( s l o a d ( s l o t ) , o f f s e t )
2021-08-05 11:23:50 +00:00
2021-05-27 20:05:21 +00:00
}
2021-09-15 15:40:11 +00:00
/// @ast-id 10
2021-09-16 10:49:01 +00:00
/// @src 0:159:178 \"int public stateVar\"
2021-09-07 16:00:20 +00:00
f u n c t i o n g e t t e r _ f u n _ s t a t e V a r _ 10 ( ) - > r e t {
2021-05-27 20:05:21 +00:00
2021-09-07 16:00:20 +00:00
l e t s l o t : = 0
l e t o f f s e t : = 0
2021-05-27 20:05:21 +00:00
2021-09-07 16:00:20 +00:00
r e t : = r e a d _ f r o m _ s t o r a g e _ s p l i t _ d y n a m i c _ t _ i n t 256 ( s l o t , o f f s e t )
2021-05-27 20:05:21 +00:00
}
2021-08-31 13:10:40 +00:00
/// @src 1:91:166 \"contract D is C(3)...\"
2021-05-27 20:05:21 +00:00
2022-02-15 11:20:28 +00:00
f u n c t i o n e x t e r n a l _ f u n _ s t a t e V a r _ 10 ( ) {
i f c a l l v a l u e ( ) { r e v e r t _ e r r o r _ c a 6 6 f 7 4 5 a 3 c e 8 f f 4 0 e 2 c c a f 1 a d 4 5 d b 7 7 7 4 0 0 1 b 9 0 d 2 5 8 1 0 a b d 9 0 4 0 0 4 9 b e 7 b f 4 b b ( ) }
a b i _ d e c o d e _ t u p l e _ ( 4 , c a l l d a t a s i z e ( ) )
l e t r e t _ 0 : = g e t t e r _ f u n _ s t a t e V a r _ 10 ( )
l e t m e m P o s : = a l l o c a t e _ u n b o u n d e d ( )
l e t m e m E n d : = a b i _ e n c o d e _ t u p l e _ t _ i n t 256 _ _ t o _ t _ i n t 256 _ _ f r o m S t a c k ( m e m P o s , r e t _ 0 )
r e t u r n ( m e m P o s , s u b ( m e m E n d , m e m P o s ) )
}
f u n c t i o n e x t e r n a l _ f u n _ f 2 _ 53 ( ) {
i f c a l l v a l u e ( ) { r e v e r t _ e r r o r _ c a 6 6 f 7 4 5 a 3 c e 8 f f 4 0 e 2 c c a f 1 a d 4 5 d b 7 7 7 4 0 0 1 b 9 0 d 2 5 8 1 0 a b d 9 0 4 0 0 4 9 b e 7 b f 4 b b ( ) }
a b i _ d e c o d e _ t u p l e _ ( 4 , c a l l d a t a s i z e ( ) )
l e t r e t _ 0 : = f u n _ f 2 _ 53 ( )
l e t m e m P o s : = a l l o c a t e _ u n b o u n d e d ( )
l e t m e m E n d : = a b i _ e n c o d e _ t u p l e _ t _ i n t 256 _ _ t o _ t _ i n t 256 _ _ f r o m S t a c k ( m e m P o s , r e t _ 0 )
r e t u r n ( m e m P o s , s u b ( m e m E n d , m e m P o s ) )
}
2021-09-07 16:00:20 +00:00
f u n c t i o n c l e a n u p _ t _ r a t i o n a l _ 41 _ b y _ 1 ( v a l u e ) - > c l e a n e d {
c l e a n e d : = v a l u e
2021-05-27 20:05:21 +00:00
}
2021-09-07 16:00:20 +00:00
f u n c t i o n i d e n t i t y ( v a l u e ) - > r e t {
r e t : = v a l u e
2021-05-27 20:05:21 +00:00
}
2021-09-07 16:00:20 +00:00
f u n c t i o n c o n v e r t _ t _ r a t i o n a l _ 41 _ b y _ 1 _ t o _ t _ i n t 256 ( v a l u e ) - > c o n v e r t e d {
c o n v e r t e d : = c l e a n u p _ t _ i n t 256 ( i d e n t i t y ( c l e a n u p _ t _ r a t i o n a l _ 41 _ b y _ 1 ( v a l u e ) ) )
2021-05-27 20:05:21 +00:00
}
2021-09-16 10:49:01 +00:00
/// @src 0:93:126 \"int public constant constVar = 41\"
2021-09-07 16:00:20 +00:00
f u n c t i o n c o n s t a n t _ c o n s t V a r _ 5 ( ) - > r e t {
2021-09-16 10:49:01 +00:00
/// @src 0:124:126 \"41\"
2021-09-07 16:00:20 +00:00
l e t e x p r _ 4 : = 0 x 29
2021-09-16 10:49:01 +00:00
l e t _ 1 : = c o n v e r t _ t _ r a t i o n a l _ 41 _ b y _ 1 _ t o _ t _ i n t 256 ( e x p r _ 4 )
2021-05-27 20:05:21 +00:00
2021-09-16 10:49:01 +00:00
r e t : = _ 1
}
/// @ast-id 5
/// @src 0:93:126 \"int public constant constVar = 41\"
f u n c t i o n g e t t e r _ f u n _ c o n s t V a r _ 5 ( ) - > r e t _ 0 {
r e t _ 0 : = c o n s t a n t _ c o n s t V a r _ 5 ( )
}
/// @src 1:91:166 \"contract D is C(3)...\"
2022-02-15 11:20:28 +00:00
f u n c t i o n e x t e r n a l _ f u n _ c o n s t V a r _ 5 ( ) {
i f c a l l v a l u e ( ) { r e v e r t _ e r r o r _ c a 6 6 f 7 4 5 a 3 c e 8 f f 4 0 e 2 c c a f 1 a d 4 5 d b 7 7 7 4 0 0 1 b 9 0 d 2 5 8 1 0 a b d 9 0 4 0 0 4 9 b e 7 b f 4 b b ( ) }
a b i _ d e c o d e _ t u p l e _ ( 4 , c a l l d a t a s i z e ( ) )
l e t r e t _ 0 : = g e t t e r _ f u n _ c o n s t V a r _ 5 ( )
l e t m e m P o s : = a l l o c a t e _ u n b o u n d e d ( )
l e t m e m E n d : = a b i _ e n c o d e _ t u p l e _ t _ i n t 256 _ _ t o _ t _ i n t 256 _ _ f r o m S t a c k ( m e m P o s , r e t _ 0 )
r e t u r n ( m e m P o s , s u b ( m e m E n d , m e m P o s ) )
}
2021-09-16 10:49:01 +00:00
f u n c t i o n r e v e r t _ e r r o r _ 42 b 3090547 d f 1 d 2001 c 96683413 b 8 c f 91 c 1 b 902 e f 5e3 c b 8 d 9 f 6 f 304 c f 7446 f 74 ( ) {
r e v e r t ( 0 , 0 )
}
f u n c t i o n z e r o _ v a l u e _ f o r _ s p l i t _ t _ i n t 256 ( ) - > r e t {
r e t : = 0
2021-05-27 20:05:21 +00:00
}
2021-09-07 16:00:20 +00:00
f u n c t i o n p a n i c _ e r r o r _ 0 x 11 ( ) {
m s t o r e ( 0 , 35408467139433450592217433187231851964531694900788300625387963629091585785856 )
m s t o r e ( 4 , 0 x 11 )
r e v e r t ( 0 , 0 x 24 )
}
2021-05-27 20:05:21 +00:00
2021-09-07 16:00:20 +00:00
f u n c t i o n c h e c k e d _ a d d _ t _ i n t 256 ( x , y ) - > s u m {
x : = c l e a n u p _ t _ i n t 256 ( x )
y : = c l e a n u p _ t _ i n t 256 ( y )
2021-05-27 20:05:21 +00:00
2021-09-07 16:00:20 +00:00
// overflow, if x >= 0 and y > (maxValue - x)
i f a n d ( i s z e r o ( s l t ( x , 0 ) ) , s g t ( y , s u b ( 0 x 7 f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f , x ) ) ) { p a n i c _ e r r o r _ 0 x 1 1 ( ) }
// underflow, if x < 0 and y < (minValue - x)
i f a n d ( s l t ( x , 0 ) , s l t ( y , s u b ( 0 x 8000000000000000000000000000000000000000000000000000000000000000 , x ) ) ) { p a n i c _ e r r o r _ 0 x 1 1 ( ) }
2021-05-27 20:05:21 +00:00
2021-09-07 16:00:20 +00:00
s u m : = a d d ( x , y )
2021-05-27 20:05:21 +00:00
}
2021-09-15 15:40:11 +00:00
/// @ast-id 30
2021-09-16 10:49:01 +00:00
/// @src 0:233:309 \"function f() external pure returns (int)...\"
2021-05-27 20:05:21 +00:00
f u n c t i o n f u n _ f _ 30 ( ) - > v a r _ _ 23 {
2021-09-16 10:49:01 +00:00
/// @src 0:269:272 \"int\"
l e t z e r o _ t _ i n t 256 _ 2 : = z e r o _ v a l u e _ f o r _ s p l i t _ t _ i n t 256 ( )
v a r _ _ 23 : = z e r o _ t _ i n t 256 _ 2
2021-05-27 20:05:21 +00:00
2021-09-16 10:49:01 +00:00
/// @src 0:286:294 \"constVar\"
2021-05-27 20:05:21 +00:00
l e t e x p r _ 25 : = c o n s t a n t _ c o n s t V a r _ 5 ( )
2021-09-16 10:49:01 +00:00
/// @src 0:297:305 \"immutVar\"
2021-05-27 20:05:21 +00:00
l e t _ 3 : = l o a d i m m u t a b l e ( \ "8\" )
l e t e x p r _ 26 : = _ 3
2021-09-16 10:49:01 +00:00
/// @src 0:286:305 \"constVar + immutVar\"
2021-05-27 20:05:21 +00:00
l e t e x p r _ 27 : = c h e c k e d _ a d d _ t _ i n t 256 ( e x p r _ 25 , e x p r _ 26 )
2021-09-16 10:49:01 +00:00
/// @src 0:279:305 \"return constVar + immutVar\"
2021-05-27 20:05:21 +00:00
v a r _ _ 23 : = e x p r _ 27
l e a v e
}
2021-08-31 13:10:40 +00:00
/// @src 1:91:166 \"contract D is C(3)...\"
2021-05-27 20:05:21 +00:00
2021-09-07 16:00:20 +00:00
f u n c t i o n s h i f t _ r i g h t _ 0 _ u n s i g n e d ( v a l u e ) - > n e w V a l u e {
n e w V a l u e : =
2021-05-27 20:05:21 +00:00
2021-09-07 16:00:20 +00:00
s h r ( 0 , v a l u e )
2021-05-27 20:05:21 +00:00
2021-09-07 16:00:20 +00:00
}
2021-05-27 20:05:21 +00:00
2021-09-07 16:00:20 +00:00
f u n c t i o n e x t r a c t _ f r o m _ s t o r a g e _ v a l u e _ o f f s e t _ 0 t _ i n t 256 ( s l o t _ v a l u e ) - > v a l u e {
v a l u e : = c l e a n u p _ f r o m _ s t o r a g e _ t _ i n t 256 ( s h i f t _ r i g h t _ 0 _ u n s i g n e d ( s l o t _ v a l u e ) )
2021-05-27 20:05:21 +00:00
}
2021-09-07 16:00:20 +00:00
f u n c t i o n r e a d _ f r o m _ s t o r a g e _ s p l i t _ o f f s e t _ 0 _ t _ i n t 256 ( s l o t ) - > v a l u e {
v a l u e : = e x t r a c t _ f r o m _ s t o r a g e _ v a l u e _ o f f s e t _ 0 t _ i n t 256 ( s l o a d ( s l o t ) )
2021-08-05 11:23:50 +00:00
}
2021-05-27 20:05:21 +00:00
f u n c t i o n i n c r e m e n t _ t _ i n t 256 ( v a l u e ) - > r e t {
v a l u e : = c l e a n u p _ t _ i n t 256 ( v a l u e )
i f e q ( v a l u e , 0 x 7 f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f ) { p a n i c _ e r r o r _ 0 x 1 1 ( ) }
r e t : = a d d ( v a l u e , 1 )
}
2021-09-07 16:00:20 +00:00
f u n c t i o n s h i f t _ l e f t _ 0 ( v a l u e ) - > n e w V a l u e {
n e w V a l u e : =
s h l ( 0 , v a l u e )
}
f u n c t i o n u p d a t e _ b y t e _ s l i c e _ 32 _ s h i f t _ 0 ( v a l u e , t o I n s e r t ) - > r e s u l t {
l e t m a s k : = 0 x f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f
t o I n s e r t : = s h i f t _ l e f t _ 0 ( t o I n s e r t )
v a l u e : = a n d ( v a l u e , n o t ( m a s k ) )
r e s u l t : = o r ( v a l u e , a n d ( t o I n s e r t , m a s k ) )
}
f u n c t i o n c o n v e r t _ t _ i n t 256 _ t o _ t _ i n t 256 ( v a l u e ) - > c o n v e r t e d {
c o n v e r t e d : = c l e a n u p _ t _ i n t 256 ( i d e n t i t y ( c l e a n u p _ t _ i n t 256 ( v a l u e ) ) )
}
f u n c t i o n p r e p a r e _ s t o r e _ t _ i n t 256 ( v a l u e ) - > r e t {
r e t : = v a l u e
}
f u n c t i o n u p d a t e _ s t o r a g e _ v a l u e _ o f f s e t _ 0 t _ i n t 256 _ t o _ t _ i n t 256 ( s l o t , v a l u e _ 0 ) {
l e t c o n v e r t e d V a l u e _ 0 : = c o n v e r t _ t _ i n t 256 _ t o _ t _ i n t 256 ( v a l u e _ 0 )
s s t o r e ( s l o t , u p d a t e _ b y t e _ s l i c e _ 32 _ s h i f t _ 0 ( s l o a d ( s l o t ) , p r e p a r e _ s t o r e _ t _ i n t 256 ( c o n v e r t e d V a l u e _ 0 ) ) )
}
2021-09-15 15:40:11 +00:00
/// @ast-id 37
2021-09-16 10:49:01 +00:00
/// @src 0:311:348 \"modifier m()...\"
2021-05-27 20:05:21 +00:00
f u n c t i o n m o d i f i e r _ m _ 40 ( v a r _ _ 42 ) - > _ 5 {
_ 5 : = v a r _ _ 42
2021-09-16 10:49:01 +00:00
/// @src 0:329:339 \"stateVar++\"
2021-05-27 20:05:21 +00:00
l e t _ 7 : = r e a d _ f r o m _ s t o r a g e _ s p l i t _ o f f s e t _ 0 _ t _ i n t 256 ( 0 x 0 0 )
l e t _ 6 : = i n c r e m e n t _ t _ i n t 256 ( _ 7 )
u p d a t e _ s t o r a g e _ v a l u e _ o f f s e t _ 0 t _ i n t 256 _ t o _ t _ i n t 256 ( 0 x 0 0 , _ 6 )
l e t e x p r _ 33 : = _ 7
2021-09-16 10:49:01 +00:00
/// @src 0:343:344 \"_\"
2021-05-27 20:05:21 +00:00
_ 5 : = f u n _ f 2 _ 53 _ i n n e r ( v a r _ _ 42 )
}
2021-08-31 13:10:40 +00:00
/// @src 1:91:166 \"contract D is C(3)...\"
2021-05-27 20:05:21 +00:00
2021-09-07 16:00:20 +00:00
f u n c t i o n c l e a n u p _ t _ u i n t 160 ( v a l u e ) - > c l e a n e d {
c l e a n e d : = a n d ( v a l u e , 0 x f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f )
2021-05-27 20:05:21 +00:00
}
2021-09-07 16:00:20 +00:00
f u n c t i o n c o n v e r t _ t _ u i n t 160 _ t o _ t _ u i n t 160 ( v a l u e ) - > c o n v e r t e d {
c o n v e r t e d : = c l e a n u p _ t _ u i n t 160 ( i d e n t i t y ( c l e a n u p _ t _ u i n t 160 ( v a l u e ) ) )
2021-05-27 20:05:21 +00:00
}
2021-09-07 16:00:20 +00:00
f u n c t i o n c o n v e r t _ t _ u i n t 160 _ t o _ t _ a d d r e s s ( v a l u e ) - > c o n v e r t e d {
c o n v e r t e d : = c o n v e r t _ t _ u i n t 160 _ t o _ t _ u i n t 160 ( v a l u e )
2021-05-27 20:05:21 +00:00
}
2021-09-07 16:00:20 +00:00
f u n c t i o n c o n v e r t _ t _ c o n t r a c t $ _ C _ $ 54 _ t o _ t _ a d d r e s s ( v a l u e ) - > c o n v e r t e d {
c o n v e r t e d : = c o n v e r t _ t _ u i n t 160 _ t o _ t _ a d d r e s s ( v a l u e )
}
2021-05-27 20:05:21 +00:00
2021-09-07 16:00:20 +00:00
f u n c t i o n r e v e r t _ e r r o r _ 0 c c 0 13 b 6 b 3 b 6 b e a b e a 4e3 a 74 a 6 d 380 f 0 d f 81852 c a 99887912475e1 f 66 b 2 a 2 c 20 ( ) {
r e v e r t ( 0 , 0 )
2021-05-27 20:05:21 +00:00
}
2021-09-07 16:00:20 +00:00
f u n c t i o n r o u n d _ u p _ t o _ m u l _ o f _ 32 ( v a l u e ) - > r e s u l t {
r e s u l t : = a n d ( a d d ( v a l u e , 31 ) , n o t ( 31 ) )
}
2021-05-27 20:05:21 +00:00
2021-09-07 16:00:20 +00:00
f u n c t i o n p a n i c _ e r r o r _ 0 x 41 ( ) {
m s t o r e ( 0 , 35408467139433450592217433187231851964531694900788300625387963629091585785856 )
m s t o r e ( 4 , 0 x 41 )
r e v e r t ( 0 , 0 x 24 )
2021-05-27 20:05:21 +00:00
}
2021-09-07 16:00:20 +00:00
f u n c t i o n f i n a l i z e _ a l l o c a t i o n ( m e m P t r , s i z e ) {
l e t n e w F r e e P t r : = a d d ( m e m P t r , r o u n d _ u p _ t o _ m u l _ o f _ 32 ( s i z e ) )
// protect against overflow
i f o r ( g t ( n e w F r e e P t r , 0 x f f f f f f f f f f f f f f f f ) , l t ( n e w F r e e P t r , m e m P t r ) ) { p a n i c _ e r r o r _ 0 x 4 1 ( ) }
m s t o r e ( 64 , n e w F r e e P t r )
2021-05-27 20:05:21 +00:00
}
2021-09-07 16:00:20 +00:00
f u n c t i o n s h i f t _ l e f t _ 224 ( v a l u e ) - > n e w V a l u e {
n e w V a l u e : =
s h l ( 224 , v a l u e )
2021-05-27 20:05:21 +00:00
}
f u n c t i o n r e v e r t _ e r r o r _ c 1322 b f 8034 e a c e 5e0 b 5 c 7295 d b 60986 a a 89 a a e 5e0 e a 0 873e4689 e 0 76861 a 5 d b ( ) {
r e v e r t ( 0 , 0 )
}
2021-09-07 16:00:20 +00:00
f u n c t i o n v a l i d a t o r _ r e v e r t _ t _ i n t 256 ( v a l u e ) {
i f i s z e r o ( e q ( v a l u e , c l e a n u p _ t _ i n t 256 ( v a l u e ) ) ) { r e v e r t ( 0 , 0 ) }
2021-05-27 20:05:21 +00:00
}
2021-09-07 16:00:20 +00:00
f u n c t i o n a b i _ d e c o d e _ t _ i n t 256 _ f r o m M e m o r y ( o f f s e t , e n d ) - > v a l u e {
v a l u e : = m l o a d ( o f f s e t )
v a l i d a t o r _ r e v e r t _ t _ i n t 256 ( v a l u e )
2021-05-27 20:05:21 +00:00
}
2021-09-07 16:00:20 +00:00
f u n c t i o n a b i _ d e c o d e _ t u p l e _ t _ i n t 256 _ f r o m M e m o r y ( h e a d S t a r t , d a t a E n d ) - > v a l u e 0 {
i f s l t ( s u b ( d a t a E n d , h e a d S t a r t ) , 32 ) { r e v e r t _ e r r o r _ d b d d d c b e 8 9 5 c 8 3 9 9 0 c 0 8 b 3 4 9 2 a 0 e 8 3 9 1 8 d 8 0 2 a 5 2 3 3 1 2 7 2 a c 6 f d b 6 a 7 c 4 a e a 3 b 1 b ( ) }
2021-05-27 20:05:21 +00:00
2021-09-07 16:00:20 +00:00
{
2021-05-27 20:05:21 +00:00
2021-09-07 16:00:20 +00:00
l e t o f f s e t : = 0
2021-05-27 20:05:21 +00:00
2021-09-07 16:00:20 +00:00
v a l u e 0 : = a b i _ d e c o d e _ t _ i n t 256 _ f r o m M e m o r y ( a d d ( h e a d S t a r t , o f f s e t ) , d a t a E n d )
}
2021-05-27 20:05:21 +00:00
}
2021-09-07 16:00:20 +00:00
f u n c t i o n a b i _ e n c o d e _ t u p l e _ _ t o _ _ f r o m S t a c k ( h e a d S t a r t ) - > t a i l {
t a i l : = a d d ( h e a d S t a r t , 0 )
2021-05-27 20:05:21 +00:00
2021-09-07 16:00:20 +00:00
}
2021-05-27 20:05:21 +00:00
2021-09-07 16:00:20 +00:00
f u n c t i o n r e v e r t _ f o r w a r d _ 1 ( ) {
l e t p o s : = a l l o c a t e _ u n b o u n d e d ( )
r e t u r n d a t a c o p y ( p o s , 0 , r e t u r n d a t a s i z e ( ) )
r e v e r t ( p o s , r e t u r n d a t a s i z e ( ) )
2021-05-27 20:05:21 +00:00
}
2021-09-16 10:49:01 +00:00
/// @src 0:350:433 \"function f2() m public returns (int)...\"
2021-09-07 16:00:20 +00:00
f u n c t i o n f u n _ f 2 _ 53 _ i n n e r ( _ 8 ) - > v a r _ _ 42 {
v a r _ _ 42 : = _ 8
2021-05-27 20:05:21 +00:00
2021-09-16 10:49:01 +00:00
/// @src 0:399:407 \"stateVar\"
2021-09-07 16:00:20 +00:00
l e t _ 9 : = r e a d _ f r o m _ s t o r a g e _ s p l i t _ o f f s e t _ 0 _ t _ i n t 256 ( 0 x 0 0 )
l e t e x p r _ 44 : = _ 9
2021-09-16 10:49:01 +00:00
/// @src 0:410:414 \"this\"
2021-09-07 16:00:20 +00:00
l e t e x p r _ 45 _ a d d r e s s : = a d d r e s s ( )
2021-09-16 10:49:01 +00:00
/// @src 0:410:416 \"this.f\"
2021-09-07 16:00:20 +00:00
l e t e x p r _ 46 _ a d d r e s s : = c o n v e r t _ t _ c o n t r a c t $ _ C _ $ 54 _ t o _ t _ a d d r e s s ( e x p r _ 45 _ a d d r e s s )
l e t e x p r _ 46 _ f u n c t i o n S e l e c t o r : = 0 x 26121 f f 0
2021-09-16 10:49:01 +00:00
/// @src 0:410:418 \"this.f()\"
2021-05-27 20:05:21 +00:00
2021-09-07 16:00:20 +00:00
// storage for arguments and returned data
l e t _ 10 : = a l l o c a t e _ u n b o u n d e d ( )
m s t o r e ( _ 10 , s h i f t _ l e f t _ 224 ( e x p r _ 46 _ f u n c t i o n S e l e c t o r ) )
l e t _ 11 : = a b i _ e n c o d e _ t u p l e _ _ t o _ _ f r o m S t a c k ( a d d ( _ 10 , 4 ) )
2021-05-27 20:05:21 +00:00
2021-09-07 16:00:20 +00:00
l e t _ 12 : = s t a t i c c a l l ( g a s ( ) , e x p r _ 46 _ a d d r e s s , _ 10 , s u b ( _ 11 , _ 10 ) , _ 10 , 32 )
2021-05-27 20:05:21 +00:00
2021-09-07 16:00:20 +00:00
i f i s z e r o ( _ 12 ) { r e v e r t _ f o r w a r d _ 1 ( ) }
2021-05-27 20:05:21 +00:00
2021-09-07 16:00:20 +00:00
l e t e x p r _ 47
i f _ 12 {
2021-05-27 20:05:21 +00:00
2022-02-16 12:03:39 +00:00
l e t _ 13 : = 32
i f g t ( _ 13 , r e t u r n d a t a s i z e ( ) ) {
_ 13 : = r e t u r n d a t a s i z e ( )
}
2021-09-07 16:00:20 +00:00
// update freeMemoryPointer according to dynamic return size
2022-02-16 12:03:39 +00:00
f i n a l i z e _ a l l o c a t i o n ( _ 10 , _ 13 )
2021-05-27 20:05:21 +00:00
2021-09-07 16:00:20 +00:00
// decode return parameters from external try-call into retVars
2022-02-16 12:03:39 +00:00
e x p r _ 47 : = a b i _ d e c o d e _ t u p l e _ t _ i n t 256 _ f r o m M e m o r y ( _ 10 , a d d ( _ 10 , _ 13 ) )
2021-09-07 16:00:20 +00:00
}
2021-09-16 10:49:01 +00:00
/// @src 0:399:418 \"stateVar + this.f()\"
2021-09-07 16:00:20 +00:00
l e t e x p r _ 48 : = c h e c k e d _ a d d _ t _ i n t 256 ( e x p r _ 44 , e x p r _ 47 )
2021-05-27 20:05:21 +00:00
2021-09-16 10:49:01 +00:00
/// @src 0:421:429 \"immutVar\"
2022-02-16 12:03:39 +00:00
l e t _ 14 : = l o a d i m m u t a b l e ( \ "8\" )
l e t e x p r _ 49 : = _ 14
2021-09-16 10:49:01 +00:00
/// @src 0:399:429 \"stateVar + this.f() + immutVar\"
2021-09-07 16:00:20 +00:00
l e t e x p r _ 50 : = c h e c k e d _ a d d _ t _ i n t 256 ( e x p r _ 48 , e x p r _ 49 )
2021-05-27 20:05:21 +00:00
2021-09-16 10:49:01 +00:00
/// @src 0:392:429 \"return stateVar + this.f() + immutVar\"
2021-09-07 16:00:20 +00:00
v a r _ _ 42 : = e x p r _ 50
l e a v e
2021-05-27 20:05:21 +00:00
}
2021-08-31 13:10:40 +00:00
/// @src 1:91:166 \"contract D is C(3)...\"
2021-05-27 20:05:21 +00:00
2021-09-15 15:40:11 +00:00
/// @ast-id 53
2021-09-16 10:49:01 +00:00
/// @src 0:350:433 \"function f2() m public returns (int)...\"
2021-09-07 16:00:20 +00:00
f u n c t i o n f u n _ f 2 _ 53 ( ) - > v a r _ _ 42 {
2021-09-16 10:49:01 +00:00
/// @src 0:382:385 \"int\"
2021-09-07 16:00:20 +00:00
l e t z e r o _ t _ i n t 256 _ 4 : = z e r o _ v a l u e _ f o r _ s p l i t _ t _ i n t 256 ( )
v a r _ _ 42 : = z e r o _ t _ i n t 256 _ 4
2021-05-27 20:05:21 +00:00
2021-09-07 16:00:20 +00:00
v a r _ _ 42 : = m o d i f i e r _ m _ 40 ( v a r _ _ 42 )
2021-05-27 20:05:21 +00:00
}
2021-08-31 13:10:40 +00:00
/// @src 1:91:166 \"contract D is C(3)...\"
2021-05-27 20:05:21 +00:00
}
d a t a \ ".metadata\" hex\"<BYTECODE REMOVED>\"
}
}
2022-03-09 15:02:31 +00:00
"," i r O p t i m i z e d ":" /// @use-src 0:\"C\", 1:\"D\"
2021-09-16 10:49:01 +00:00
o b j e c t \ "D_72\" {
c o d e {
{
/// @src 1:91:166 \"contract D is C(3)...\"
2021-09-15 15:01:40 +00:00
l e t _ 1 : = m e m o r y g u a r d ( 0 x a 0 )
2021-09-16 10:49:01 +00:00
i f c a l l v a l u e ( ) { r e v e r t ( 0 , 0 ) }
l e t p r o g r a m S i z e : = d a t a s i z e ( \ "D_72\" )
l e t a r g S i z e : = s u b ( c o d e s i z e ( ) , p r o g r a m S i z e )
2021-09-15 15:01:40 +00:00
l e t n e w F r e e P t r : = a d d ( _ 1 , a n d ( a d d ( a r g S i z e , 31 ) , n o t ( 31 ) ) )
i f o r ( g t ( n e w F r e e P t r , s u b ( s h l ( 64 , 1 ) , 1 ) ) , l t ( n e w F r e e P t r , _ 1 ) )
2021-09-16 10:49:01 +00:00
{
2021-09-17 18:53:32 +00:00
m s t o r e ( / * * @ s r c -1 : -1 : -1 * / 0 , / * * @ s r c 1 : 91 : 166 \ "contract D is C(3)...\" * / s h l ( 224 , 0 x 4e487 b 71 ) )
2021-09-16 10:49:01 +00:00
m s t o r e ( 4 , 0 x 41 )
2021-09-17 18:53:32 +00:00
r e v e r t ( / * * @ s r c -1 : -1 : -1 * / 0 , / * * @ s r c 1 : 91 : 166 \ "contract D is C(3)...\" * / 0 x 24 )
2021-09-16 10:49:01 +00:00
}
m s t o r e ( 64 , n e w F r e e P t r )
2021-09-15 15:01:40 +00:00
c o d e c o p y ( _ 1 , p r o g r a m S i z e , a r g S i z e )
i f s l t ( s u b ( a d d ( _ 1 , a r g S i z e ) , _ 1 ) , 32 )
2021-09-16 10:49:01 +00:00
{
2021-09-17 18:53:32 +00:00
r e v e r t ( / * * @ s r c -1 : -1 : -1 * / 0 , 0 )
2021-09-16 10:49:01 +00:00
}
/// @src 1:91:166 \"contract D is C(3)...\"
2021-09-15 15:01:40 +00:00
c o n s t r u c t o r _ D ( m l o a d ( _ 1 ) )
l e t _ 2 : = m l o a d ( 64 )
l e t _ 3 : = d a t a s i z e ( \ "D_72_deployed\" )
c o d e c o p y ( _ 2 , d a t a o f f s e t ( \ "D_72_deployed\" ) , _ 3 )
s e t i m m u t a b l e ( _ 2 , \ "8\" , m l o a d ( 128 ) )
r e t u r n ( _ 2 , _ 3 )
2021-09-16 10:49:01 +00:00
}
/// @ast-id 71 @src 1:113:164 \"constructor(int _init2)...\"
f u n c t i o n c o n s t r u c t o r _ D ( v a r _ i n i t 2 )
{
/// @src 0:154:156 \"42\"
m s t o r e ( 128 , 0 x 2 a )
/// @src 1:91:166 \"contract D is C(3)...\"
i f a n d ( 1 , s g t ( v a r _ i n i t 2 , s u b ( s h l ( 255 , 1 ) , 4 ) ) )
{
2021-05-05 16:02:35 +00:00
m s t o r e ( 0 , s h l ( 224 , 0 x 4e487 b 71 ) )
2021-09-16 10:49:01 +00:00
m s t o r e ( 4 , 0 x 11 )
2021-05-05 16:02:35 +00:00
r e v e r t ( 0 , 0 x 24 )
2021-09-16 10:49:01 +00:00
}
2021-05-05 16:02:35 +00:00
s s t o r e ( / * * @ s r c -1 : -1 : -1 * / 0 , / * * @ s r c 1 : 91 : 166 \ "contract D is C(3)...\" */ add(/** @src 1:107:108 \"3\" */ 0x03, /** @src 1:91:166 \"contract D is C(3)...\" * / v a r _ i n i t 2 ) )
2021-09-16 10:49:01 +00:00
}
}
/// @use-src 0:\"C\", 1:\"D\"
o b j e c t \ "D_72_deployed\" {
c o d e {
{
/// @src 1:91:166 \"contract D is C(3)...\"
2021-09-15 15:01:40 +00:00
m s t o r e ( 64 , m e m o r y g u a r d ( 0 x 80 ) )
2021-09-16 10:49:01 +00:00
i f i s z e r o ( l t ( c a l l d a t a s i z e ( ) , 4 ) )
{
l e t _ 1 : = 0
s w i t c h s h r ( 224 , c a l l d a t a l o a d ( _ 1 ) )
c a s e 0 x 26121 f f 0 {
i f c a l l v a l u e ( ) { r e v e r t ( _ 1 , _ 1 ) }
2022-02-15 11:20:28 +00:00
i f s l t ( a d d ( c a l l d a t a s i z e ( ) , n o t ( 3 ) ) , _ 1 ) { r e v e r t ( _ 1 , _ 1 ) }
/// @src 0:297:305 \"immutVar\"
l e t _ 2 : = l o a d i m m u t a b l e ( \ "8\" )
2021-09-16 10:49:01 +00:00
/// @src 1:91:166 \"contract D is C(3)...\"
2022-02-15 11:20:28 +00:00
i f a n d ( 1 , s g t ( _ 2 , s u b ( s h l ( 255 , 1 ) , 42 ) ) ) { p a n i c _ e r r o r _ 0 x 1 1 ( ) }
2021-09-16 10:49:01 +00:00
l e t m e m P o s : = m l o a d ( 64 )
2022-02-15 11:20:28 +00:00
m s t o r e ( m e m P o s , a d d ( / * * @ s r c 0 : 124 : 126 \ "41\" */ 0x29, /** @src 1:91:166 \"contract D is C(3)...\" * / _ 2 ) )
r e t u r n ( m e m P o s , 32 )
2021-09-16 10:49:01 +00:00
}
2022-02-15 11:20:28 +00:00
c a s e 0 x 793816 e c { e x t e r n a l _ f u n _ s t a t e V a r ( ) }
c a s e 0 x 9942 e c 6 f { e x t e r n a l _ f u n _ f 2 ( ) }
c a s e 0 x a 0 0 b 982 b { e x t e r n a l _ f u n _ c o n s t V a r ( ) }
2021-09-16 10:49:01 +00:00
}
r e v e r t ( 0 , 0 )
}
f u n c t i o n a b i _ e n c o d e _ i n t 256 ( h e a d S t a r t , v a l u e 0 ) - > t a i l
{
t a i l : = a d d ( h e a d S t a r t , 32 )
m s t o r e ( h e a d S t a r t , v a l u e 0 )
}
2022-02-15 11:20:28 +00:00
f u n c t i o n e x t e r n a l _ f u n _ s t a t e V a r ( )
2021-09-16 10:49:01 +00:00
{
2022-02-15 11:20:28 +00:00
i f c a l l v a l u e ( ) { r e v e r t ( 0 , 0 ) }
i f s l t ( a d d ( c a l l d a t a s i z e ( ) , n o t ( 3 ) ) , 0 ) { r e v e r t ( 0 , 0 ) }
l e t _ 1 : = s l o a d ( 0 )
l e t m e m P o s : = m l o a d ( 64 )
m s t o r e ( m e m P o s , _ 1 )
r e t u r n ( m e m P o s , 32 )
}
f u n c t i o n e x t e r n a l _ f u n _ f 2 ( )
2021-09-16 10:49:01 +00:00
{
2022-02-15 11:20:28 +00:00
i f c a l l v a l u e ( ) { r e v e r t ( 0 , 0 ) }
l e t _ 1 : = 0
i f s l t ( a d d ( c a l l d a t a s i z e ( ) , n o t ( 3 ) ) , _ 1 ) { r e v e r t ( _ 1 , _ 1 ) }
l e t _ 2 : = s l o a d ( _ 1 )
i f e q ( _ 2 , s u b ( s h l ( 255 , 1 ) , 1 ) ) { p a n i c _ e r r o r _ 0 x 1 1 ( ) }
l e t r e t : = a d d ( _ 2 , 1 )
s s t o r e ( _ 1 , r e t )
2021-09-16 10:49:01 +00:00
/// @src 0:410:418 \"this.f()\"
2022-02-15 11:20:28 +00:00
l e t _ 3 : = / * * @ s r c 1 : 91 : 166 \ "contract D is C(3)...\" * / m l o a d ( 64 )
2021-09-16 10:49:01 +00:00
/// @src 0:410:418 \"this.f()\"
2022-02-15 11:20:28 +00:00
m s t o r e ( _ 3 , / * * @ s r c 1 : 91 : 166 \ "contract D is C(3)...\" * / s h l ( 228 , 0 x 0 26121 f f ) )
2021-09-16 10:49:01 +00:00
/// @src 0:410:418 \"this.f()\"
2022-02-15 11:20:28 +00:00
l e t _ 4 : = s t a t i c c a l l ( g a s ( ) , / * * @ s r c 0 : 410 : 414 \ "this\" */ address(), /** @src 0:410:418 \"this.f()\" */ _3, /** @src 1:91:166 \"contract D is C(3)...\" */ 4, /** @src 0:410:418 \"this.f()\" * / _ 3 , 32 )
i f i s z e r o ( _ 4 )
2021-09-16 10:49:01 +00:00
{
/// @src 1:91:166 \"contract D is C(3)...\"
l e t p o s : = m l o a d ( 64 )
2022-02-15 11:20:28 +00:00
r e t u r n d a t a c o p y ( p o s , _ 1 , r e t u r n d a t a s i z e ( ) )
2021-09-16 10:49:01 +00:00
r e v e r t ( p o s , r e t u r n d a t a s i z e ( ) )
}
/// @src 0:410:418 \"this.f()\"
2022-02-15 11:20:28 +00:00
l e t e x p r : = / * * @ s r c 1 : 91 : 166 \ "contract D is C(3)...\" * / _ 1
2021-09-16 10:49:01 +00:00
/// @src 0:410:418 \"this.f()\"
2022-02-15 11:20:28 +00:00
i f _ 4
2021-09-16 10:49:01 +00:00
{
2022-02-16 12:03:39 +00:00
l e t _ 5 : = 32
i f g t ( _ 5 , r e t u r n d a t a s i z e ( ) ) { _ 5 : = r e t u r n d a t a s i z e ( ) }
2021-09-16 10:49:01 +00:00
/// @src 1:91:166 \"contract D is C(3)...\"
2022-02-16 12:03:39 +00:00
l e t n e w F r e e P t r : = a d d ( _ 3 , a n d ( a d d ( _ 5 , 31 ) , n o t ( 31 ) ) )
2022-02-15 11:20:28 +00:00
i f o r ( g t ( n e w F r e e P t r , 0 x f f f f f f f f f f f f f f f f ) , l t ( n e w F r e e P t r , _ 3 ) )
2021-09-16 10:49:01 +00:00
{
2022-02-15 11:20:28 +00:00
m s t o r e ( _ 1 , s h l ( 224 , 0 x 4e487 b 71 ) )
m s t o r e ( 4 , 0 x 41 )
r e v e r t ( _ 1 , 0 x 24 )
2021-09-16 10:49:01 +00:00
}
m s t o r e ( 64 , n e w F r e e P t r )
/// @src 0:410:418 \"this.f()\"
2022-02-16 12:03:39 +00:00
e x p r : = a b i _ d e c o d e _ i n t 256 _ f r o m M e m o r y ( _ 3 , a d d ( _ 3 , _ 5 ) )
2021-09-16 10:49:01 +00:00
}
/// @src 0:399:418 \"stateVar + this.f()\"
l e t e x p r _ 1 : = c h e c k e d _ a d d _ i n t 256 ( r e t , e x p r )
2022-02-15 11:20:28 +00:00
/// @src 0:392:429 \"return stateVar + this.f() + immutVar\"
l e t v a r : = / * * @ s r c 0 : 399 : 429 \ "stateVar + this.f() + immutVar\" */ checked_add_int256(expr_1, /** @src 0:421:429 \"immutVar\" */ loadimmutable(\"8\" ) )
/// @src 1:91:166 \"contract D is C(3)...\"
l e t m e m P o s : = m l o a d ( 64 )
r e t u r n ( m e m P o s , s u b ( a b i _ e n c o d e _ i n t 256 ( m e m P o s , v a r ) , m e m P o s ) )
}
f u n c t i o n e x t e r n a l _ f u n _ c o n s t V a r ( )
{
i f c a l l v a l u e ( ) { r e v e r t ( 0 , 0 ) }
i f s l t ( a d d ( c a l l d a t a s i z e ( ) , n o t ( 3 ) ) , 0 ) { r e v e r t ( 0 , 0 ) }
l e t m e m P o s : = m l o a d ( 64 )
m s t o r e ( m e m P o s , / * * @ s r c 0 : 124 : 126 \ "41\" * / 0 x 29 )
/// @src 1:91:166 \"contract D is C(3)...\"
r e t u r n ( m e m P o s , 32 )
}
f u n c t i o n p a n i c _ e r r o r _ 0 x 11 ( )
{
m s t o r e ( 0 , s h l ( 224 , 0 x 4e487 b 71 ) )
m s t o r e ( 4 , 0 x 11 )
r e v e r t ( 0 , 0 x 24 )
}
f u n c t i o n c h e c k e d _ a d d _ i n t 256 ( x , y ) - > s u m
{
l e t _ 1 : = s l t ( x , 0 )
i f a n d ( i s z e r o ( _ 1 ) , s g t ( y , s u b ( s u b ( s h l ( 255 , 1 ) , 1 ) , x ) ) ) { p a n i c _ e r r o r _ 0 x 1 1 ( ) }
i f a n d ( _ 1 , s l t ( y , s u b ( s h l ( 255 , 1 ) , x ) ) ) { p a n i c _ e r r o r _ 0 x 1 1 ( ) }
s u m : = a d d ( x , y )
2021-09-16 10:49:01 +00:00
}
f u n c t i o n a b i _ d e c o d e _ i n t 256 _ f r o m M e m o r y ( h e a d S t a r t , d a t a E n d ) - > v a l u e 0
{
i f s l t ( s u b ( d a t a E n d , h e a d S t a r t ) , 32 ) { r e v e r t ( 0 , 0 ) }
v a l u e 0 : = m l o a d ( h e a d S t a r t )
}
}
d a t a \ ".metadata\" hex\"<BYTECODE REMOVED>\"
}
}
2021-05-27 20:05:21 +00:00
"}}}," s o u r c e s ":{" C ":{" i d ":0}," D ":{" i d " : 1 } } }