1
// Copyright 2024 Moonbeam foundation
2
// This file is part of Moonbeam.
3

            
4
// Moonbeam is free software: you can redistribute it and/or modify
5
// it under the terms of the GNU General Public License as published by
6
// the Free Software Foundation, either version 3 of the License, or
7
// (at your option) any later version.
8

            
9
// Moonbeam is distributed in the hope that it will be useful,
10
// but WITHOUT ANY WARRANTY; without even the implied warranty of
11
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
12
// GNU General Public License for more details.
13

            
14
// You should have received a copy of the GNU General Public License
15
// along with Moonbeam.  If not, see <http://www.gnu.org/licenses/>.
16

            
17
//! Autogenerated weights for `pallet_xcm`
18
//!
19
//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 43.0.0
20
//! DATE: 2025-02-04, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]`
21
//! WORST CASE MAP SIZE: `1000000`
22
//! HOSTNAME: `ip-10-0-0-176`, CPU: `Intel(R) Xeon(R) Platinum 8375C CPU @ 2.90GHz`
23
//! WASM-EXECUTION: Compiled, CHAIN: None, DB CACHE: 1024
24

            
25
// Executed Command:
26
// ./target/production/moonbeam
27
// benchmark
28
// pallet
29
// --runtime=./target/production/wbuild/moonriver-runtime/moonriver_runtime.wasm
30
// --genesis-builder=runtime
31
// --genesis-builder-preset=development
32
// --steps=50
33
// --repeat=20
34
// --pallet=pallet_xcm
35
// --extrinsic=*
36
// --wasm-execution=compiled
37
// --header=./file_header.txt
38
// --template=./benchmarking/frame-weight-template.hbs
39
// --output=./runtime/moonriver/src/weights/
40

            
41
#![cfg_attr(rustfmt, rustfmt_skip)]
42
#![allow(unused_parens)]
43
#![allow(unused_imports)]
44

            
45
use frame_support::{traits::Get, weights::{Weight, constants::RocksDbWeight}};
46
use sp_std::marker::PhantomData;
47

            
48
/// Weights for `pallet_xcm`.
49
pub struct WeightInfo<T>(PhantomData<T>);
50
impl<T: frame_system::Config> pallet_xcm::WeightInfo for WeightInfo<T> {
51
	/// Storage: `PolkadotXcm::SupportedVersion` (r:1 w:0)
52
	/// Proof: `PolkadotXcm::SupportedVersion` (`max_values`: None, `max_size`: None, mode: `Measured`)
53
	/// Storage: `PolkadotXcm::VersionDiscoveryQueue` (r:1 w:1)
54
	/// Proof: `PolkadotXcm::VersionDiscoveryQueue` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
55
	/// Storage: `PolkadotXcm::SafeXcmVersion` (r:1 w:0)
56
	/// Proof: `PolkadotXcm::SafeXcmVersion` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
57
	/// Storage: `ParachainSystem::HostConfiguration` (r:1 w:0)
58
	/// Proof: `ParachainSystem::HostConfiguration` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
59
	/// Storage: `ParachainSystem::PendingUpwardMessages` (r:1 w:1)
60
	/// Proof: `ParachainSystem::PendingUpwardMessages` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
61
	fn send() -> Weight {
62
		// Proof Size summary in bytes:
63
		//  Measured:  `145`
64
		//  Estimated: `3610`
65
		// Minimum execution time: 24_157_000 picoseconds.
66
		Weight::from_parts(24_978_000, 3610)
67
			.saturating_add(T::DbWeight::get().reads(5_u64))
68
			.saturating_add(T::DbWeight::get().writes(2_u64))
69
	}
70
	/// Storage: `Benchmark::Override` (r:0 w:0)
71
	/// Proof: `Benchmark::Override` (`max_values`: None, `max_size`: None, mode: `Measured`)
72
	fn teleport_assets() -> Weight {
73
		// Proof Size summary in bytes:
74
		//  Measured:  `0`
75
		//  Estimated: `0`
76
		// Minimum execution time: 18_446_744_073_709_551_000 picoseconds.
77
		Weight::from_parts(18_446_744_073_709_551_000, 0)
78
	}
79
	/// Storage: `PolkadotXcm::ShouldRecordXcm` (r:1 w:0)
80
	/// Proof: `PolkadotXcm::ShouldRecordXcm` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
81
	/// Storage: `System::Account` (r:1 w:1)
82
	/// Proof: `System::Account` (`max_values`: None, `max_size`: Some(116), added: 2591, mode: `MaxEncodedLen`)
83
	/// Storage: `PolkadotXcm::SupportedVersion` (r:1 w:0)
84
	/// Proof: `PolkadotXcm::SupportedVersion` (`max_values`: None, `max_size`: None, mode: `Measured`)
85
	/// Storage: `PolkadotXcm::VersionDiscoveryQueue` (r:1 w:1)
86
	/// Proof: `PolkadotXcm::VersionDiscoveryQueue` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
87
	/// Storage: `PolkadotXcm::SafeXcmVersion` (r:1 w:0)
88
	/// Proof: `PolkadotXcm::SafeXcmVersion` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
89
	/// Storage: `ParachainSystem::RelevantMessagingState` (r:1 w:0)
90
	/// Proof: `ParachainSystem::RelevantMessagingState` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
91
	/// Storage: `XcmpQueue::OutboundXcmpStatus` (r:1 w:1)
92
	/// Proof: `XcmpQueue::OutboundXcmpStatus` (`max_values`: Some(1), `max_size`: Some(1282), added: 1777, mode: `MaxEncodedLen`)
93
	/// Storage: `XcmpQueue::OutboundXcmpMessages` (r:0 w:1)
94
	/// Proof: `XcmpQueue::OutboundXcmpMessages` (`max_values`: None, `max_size`: Some(105506), added: 107981, mode: `MaxEncodedLen`)
95
	fn reserve_transfer_assets() -> Weight {
96
		// Proof Size summary in bytes:
97
		//  Measured:  `420`
98
		//  Estimated: `3885`
99
		// Minimum execution time: 98_423_000 picoseconds.
100
		Weight::from_parts(101_177_000, 3885)
101
			.saturating_add(T::DbWeight::get().reads(7_u64))
102
			.saturating_add(T::DbWeight::get().writes(4_u64))
103
	}
104
	/// Storage: `PolkadotXcm::ShouldRecordXcm` (r:1 w:0)
105
	/// Proof: `PolkadotXcm::ShouldRecordXcm` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
106
	/// Storage: `System::Account` (r:1 w:1)
107
	/// Proof: `System::Account` (`max_values`: None, `max_size`: Some(116), added: 2591, mode: `MaxEncodedLen`)
108
	/// Storage: `PolkadotXcm::SupportedVersion` (r:1 w:0)
109
	/// Proof: `PolkadotXcm::SupportedVersion` (`max_values`: None, `max_size`: None, mode: `Measured`)
110
	/// Storage: `PolkadotXcm::VersionDiscoveryQueue` (r:1 w:1)
111
	/// Proof: `PolkadotXcm::VersionDiscoveryQueue` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
112
	/// Storage: `PolkadotXcm::SafeXcmVersion` (r:1 w:0)
113
	/// Proof: `PolkadotXcm::SafeXcmVersion` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
114
	/// Storage: `ParachainSystem::HostConfiguration` (r:1 w:0)
115
	/// Proof: `ParachainSystem::HostConfiguration` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
116
	/// Storage: `ParachainSystem::PendingUpwardMessages` (r:1 w:1)
117
	/// Proof: `ParachainSystem::PendingUpwardMessages` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
118
24
	fn transfer_assets() -> Weight {
119
24
		// Proof Size summary in bytes:
120
24
		//  Measured:  `184`
121
24
		//  Estimated: `3649`
122
24
		// Minimum execution time: 91_269_000 picoseconds.
123
24
		Weight::from_parts(93_709_000, 3649)
124
24
			.saturating_add(T::DbWeight::get().reads(7_u64))
125
24
			.saturating_add(T::DbWeight::get().writes(3_u64))
126
24
	}
127
	/// Storage: `Benchmark::Override` (r:0 w:0)
128
	/// Proof: `Benchmark::Override` (`max_values`: None, `max_size`: None, mode: `Measured`)
129
	fn execute() -> Weight {
130
		// Proof Size summary in bytes:
131
		//  Measured:  `0`
132
		//  Estimated: `0`
133
		// Minimum execution time: 18_446_744_073_709_551_000 picoseconds.
134
		Weight::from_parts(18_446_744_073_709_551_000, 0)
135
	}
136
	/// Storage: `PolkadotXcm::SupportedVersion` (r:0 w:1)
137
	/// Proof: `PolkadotXcm::SupportedVersion` (`max_values`: None, `max_size`: None, mode: `Measured`)
138
	fn force_xcm_version() -> Weight {
139
		// Proof Size summary in bytes:
140
		//  Measured:  `0`
141
		//  Estimated: `0`
142
		// Minimum execution time: 7_420_000 picoseconds.
143
		Weight::from_parts(7_637_000, 0)
144
			.saturating_add(T::DbWeight::get().writes(1_u64))
145
	}
146
	/// Storage: `PolkadotXcm::SafeXcmVersion` (r:0 w:1)
147
	/// Proof: `PolkadotXcm::SafeXcmVersion` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
148
	fn force_default_xcm_version() -> Weight {
149
		// Proof Size summary in bytes:
150
		//  Measured:  `0`
151
		//  Estimated: `0`
152
		// Minimum execution time: 2_371_000 picoseconds.
153
		Weight::from_parts(2_519_000, 0)
154
			.saturating_add(T::DbWeight::get().writes(1_u64))
155
	}
156
	/// Storage: `PolkadotXcm::VersionNotifiers` (r:1 w:1)
157
	/// Proof: `PolkadotXcm::VersionNotifiers` (`max_values`: None, `max_size`: None, mode: `Measured`)
158
	/// Storage: `PolkadotXcm::QueryCounter` (r:1 w:1)
159
	/// Proof: `PolkadotXcm::QueryCounter` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
160
	/// Storage: `PolkadotXcm::SupportedVersion` (r:1 w:0)
161
	/// Proof: `PolkadotXcm::SupportedVersion` (`max_values`: None, `max_size`: None, mode: `Measured`)
162
	/// Storage: `PolkadotXcm::VersionDiscoveryQueue` (r:1 w:1)
163
	/// Proof: `PolkadotXcm::VersionDiscoveryQueue` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
164
	/// Storage: `PolkadotXcm::SafeXcmVersion` (r:1 w:0)
165
	/// Proof: `PolkadotXcm::SafeXcmVersion` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
166
	/// Storage: `ParachainSystem::HostConfiguration` (r:1 w:0)
167
	/// Proof: `ParachainSystem::HostConfiguration` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
168
	/// Storage: `ParachainSystem::PendingUpwardMessages` (r:1 w:1)
169
	/// Proof: `ParachainSystem::PendingUpwardMessages` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
170
	/// Storage: `PolkadotXcm::Queries` (r:0 w:1)
171
	/// Proof: `PolkadotXcm::Queries` (`max_values`: None, `max_size`: None, mode: `Measured`)
172
	fn force_subscribe_version_notify() -> Weight {
173
		// Proof Size summary in bytes:
174
		//  Measured:  `145`
175
		//  Estimated: `3610`
176
		// Minimum execution time: 29_789_000 picoseconds.
177
		Weight::from_parts(31_059_000, 3610)
178
			.saturating_add(T::DbWeight::get().reads(7_u64))
179
			.saturating_add(T::DbWeight::get().writes(5_u64))
180
	}
181
	/// Storage: `PolkadotXcm::VersionNotifiers` (r:1 w:1)
182
	/// Proof: `PolkadotXcm::VersionNotifiers` (`max_values`: None, `max_size`: None, mode: `Measured`)
183
	/// Storage: `PolkadotXcm::SupportedVersion` (r:1 w:0)
184
	/// Proof: `PolkadotXcm::SupportedVersion` (`max_values`: None, `max_size`: None, mode: `Measured`)
185
	/// Storage: `PolkadotXcm::VersionDiscoveryQueue` (r:1 w:1)
186
	/// Proof: `PolkadotXcm::VersionDiscoveryQueue` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
187
	/// Storage: `PolkadotXcm::SafeXcmVersion` (r:1 w:0)
188
	/// Proof: `PolkadotXcm::SafeXcmVersion` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
189
	/// Storage: `ParachainSystem::HostConfiguration` (r:1 w:0)
190
	/// Proof: `ParachainSystem::HostConfiguration` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
191
	/// Storage: `ParachainSystem::PendingUpwardMessages` (r:1 w:1)
192
	/// Proof: `ParachainSystem::PendingUpwardMessages` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
193
	/// Storage: `PolkadotXcm::Queries` (r:0 w:1)
194
	/// Proof: `PolkadotXcm::Queries` (`max_values`: None, `max_size`: None, mode: `Measured`)
195
	fn force_unsubscribe_version_notify() -> Weight {
196
		// Proof Size summary in bytes:
197
		//  Measured:  `363`
198
		//  Estimated: `3828`
199
		// Minimum execution time: 37_357_000 picoseconds.
200
		Weight::from_parts(38_812_000, 3828)
201
			.saturating_add(T::DbWeight::get().reads(6_u64))
202
			.saturating_add(T::DbWeight::get().writes(4_u64))
203
	}
204
	/// Storage: `PolkadotXcm::XcmExecutionSuspended` (r:0 w:1)
205
	/// Proof: `PolkadotXcm::XcmExecutionSuspended` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
206
	fn force_suspension() -> Weight {
207
		// Proof Size summary in bytes:
208
		//  Measured:  `0`
209
		//  Estimated: `0`
210
		// Minimum execution time: 2_419_000 picoseconds.
211
		Weight::from_parts(2_557_000, 0)
212
			.saturating_add(T::DbWeight::get().writes(1_u64))
213
	}
214
	/// Storage: `PolkadotXcm::SupportedVersion` (r:5 w:2)
215
	/// Proof: `PolkadotXcm::SupportedVersion` (`max_values`: None, `max_size`: None, mode: `Measured`)
216
	fn migrate_supported_version() -> Weight {
217
		// Proof Size summary in bytes:
218
		//  Measured:  `125`
219
		//  Estimated: `13490`
220
		// Minimum execution time: 20_974_000 picoseconds.
221
		Weight::from_parts(21_606_000, 13490)
222
			.saturating_add(T::DbWeight::get().reads(5_u64))
223
			.saturating_add(T::DbWeight::get().writes(2_u64))
224
	}
225
	/// Storage: `PolkadotXcm::VersionNotifiers` (r:5 w:2)
226
	/// Proof: `PolkadotXcm::VersionNotifiers` (`max_values`: None, `max_size`: None, mode: `Measured`)
227
	fn migrate_version_notifiers() -> Weight {
228
		// Proof Size summary in bytes:
229
		//  Measured:  `129`
230
		//  Estimated: `13494`
231
		// Minimum execution time: 20_656_000 picoseconds.
232
		Weight::from_parts(21_266_000, 13494)
233
			.saturating_add(T::DbWeight::get().reads(5_u64))
234
			.saturating_add(T::DbWeight::get().writes(2_u64))
235
	}
236
	/// Storage: `PolkadotXcm::VersionNotifyTargets` (r:6 w:0)
237
	/// Proof: `PolkadotXcm::VersionNotifyTargets` (`max_values`: None, `max_size`: None, mode: `Measured`)
238
	fn already_notified_target() -> Weight {
239
		// Proof Size summary in bytes:
240
		//  Measured:  `178`
241
		//  Estimated: `16018`
242
		// Minimum execution time: 22_891_000 picoseconds.
243
		Weight::from_parts(23_578_000, 16018)
244
			.saturating_add(T::DbWeight::get().reads(6_u64))
245
	}
246
	/// Storage: `PolkadotXcm::VersionNotifyTargets` (r:2 w:1)
247
	/// Proof: `PolkadotXcm::VersionNotifyTargets` (`max_values`: None, `max_size`: None, mode: `Measured`)
248
	/// Storage: `PolkadotXcm::SupportedVersion` (r:1 w:0)
249
	/// Proof: `PolkadotXcm::SupportedVersion` (`max_values`: None, `max_size`: None, mode: `Measured`)
250
	/// Storage: `PolkadotXcm::VersionDiscoveryQueue` (r:1 w:1)
251
	/// Proof: `PolkadotXcm::VersionDiscoveryQueue` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
252
	/// Storage: `PolkadotXcm::SafeXcmVersion` (r:1 w:0)
253
	/// Proof: `PolkadotXcm::SafeXcmVersion` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
254
	/// Storage: `ParachainSystem::HostConfiguration` (r:1 w:0)
255
	/// Proof: `ParachainSystem::HostConfiguration` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
256
	/// Storage: `ParachainSystem::PendingUpwardMessages` (r:1 w:1)
257
	/// Proof: `ParachainSystem::PendingUpwardMessages` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
258
	fn notify_current_targets() -> Weight {
259
		// Proof Size summary in bytes:
260
		//  Measured:  `212`
261
		//  Estimated: `6152`
262
		// Minimum execution time: 28_949_000 picoseconds.
263
		Weight::from_parts(29_751_000, 6152)
264
			.saturating_add(T::DbWeight::get().reads(7_u64))
265
			.saturating_add(T::DbWeight::get().writes(3_u64))
266
	}
267
	/// Storage: `PolkadotXcm::VersionNotifyTargets` (r:4 w:0)
268
	/// Proof: `PolkadotXcm::VersionNotifyTargets` (`max_values`: None, `max_size`: None, mode: `Measured`)
269
	fn notify_target_migration_fail() -> Weight {
270
		// Proof Size summary in bytes:
271
		//  Measured:  `139`
272
		//  Estimated: `11029`
273
		// Minimum execution time: 13_211_000 picoseconds.
274
		Weight::from_parts(13_525_000, 11029)
275
			.saturating_add(T::DbWeight::get().reads(4_u64))
276
	}
277
	/// Storage: `PolkadotXcm::VersionNotifyTargets` (r:5 w:2)
278
	/// Proof: `PolkadotXcm::VersionNotifyTargets` (`max_values`: None, `max_size`: None, mode: `Measured`)
279
	fn migrate_version_notify_targets() -> Weight {
280
		// Proof Size summary in bytes:
281
		//  Measured:  `136`
282
		//  Estimated: `13501`
283
		// Minimum execution time: 20_832_000 picoseconds.
284
		Weight::from_parts(21_338_000, 13501)
285
			.saturating_add(T::DbWeight::get().reads(5_u64))
286
			.saturating_add(T::DbWeight::get().writes(2_u64))
287
	}
288
	/// Storage: `PolkadotXcm::VersionNotifyTargets` (r:5 w:2)
289
	/// Proof: `PolkadotXcm::VersionNotifyTargets` (`max_values`: None, `max_size`: None, mode: `Measured`)
290
	/// Storage: `PolkadotXcm::SupportedVersion` (r:1 w:0)
291
	/// Proof: `PolkadotXcm::SupportedVersion` (`max_values`: None, `max_size`: None, mode: `Measured`)
292
	/// Storage: `PolkadotXcm::VersionDiscoveryQueue` (r:1 w:1)
293
	/// Proof: `PolkadotXcm::VersionDiscoveryQueue` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
294
	/// Storage: `PolkadotXcm::SafeXcmVersion` (r:1 w:0)
295
	/// Proof: `PolkadotXcm::SafeXcmVersion` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
296
	/// Storage: `ParachainSystem::HostConfiguration` (r:1 w:0)
297
	/// Proof: `ParachainSystem::HostConfiguration` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
298
	/// Storage: `ParachainSystem::PendingUpwardMessages` (r:1 w:1)
299
	/// Proof: `ParachainSystem::PendingUpwardMessages` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
300
	fn migrate_and_notify_old_targets() -> Weight {
301
		// Proof Size summary in bytes:
302
		//  Measured:  `212`
303
		//  Estimated: `13577`
304
		// Minimum execution time: 38_704_000 picoseconds.
305
		Weight::from_parts(39_973_000, 13577)
306
			.saturating_add(T::DbWeight::get().reads(10_u64))
307
			.saturating_add(T::DbWeight::get().writes(4_u64))
308
	}
309
	/// Storage: `PolkadotXcm::QueryCounter` (r:1 w:1)
310
	/// Proof: `PolkadotXcm::QueryCounter` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
311
	/// Storage: `PolkadotXcm::Queries` (r:0 w:1)
312
	/// Proof: `PolkadotXcm::Queries` (`max_values`: None, `max_size`: None, mode: `Measured`)
313
	fn new_query() -> Weight {
314
		// Proof Size summary in bytes:
315
		//  Measured:  `69`
316
		//  Estimated: `1554`
317
		// Minimum execution time: 5_453_000 picoseconds.
318
		Weight::from_parts(5_782_000, 1554)
319
			.saturating_add(T::DbWeight::get().reads(1_u64))
320
			.saturating_add(T::DbWeight::get().writes(2_u64))
321
	}
322
	/// Storage: `PolkadotXcm::Queries` (r:1 w:1)
323
	/// Proof: `PolkadotXcm::Queries` (`max_values`: None, `max_size`: None, mode: `Measured`)
324
	fn take_response() -> Weight {
325
		// Proof Size summary in bytes:
326
		//  Measured:  `7706`
327
		//  Estimated: `11171`
328
		// Minimum execution time: 26_879_000 picoseconds.
329
		Weight::from_parts(27_467_000, 11171)
330
			.saturating_add(T::DbWeight::get().reads(1_u64))
331
			.saturating_add(T::DbWeight::get().writes(1_u64))
332
	}
333
	/// Storage: `PolkadotXcm::ShouldRecordXcm` (r:1 w:0)
334
	/// Proof: `PolkadotXcm::ShouldRecordXcm` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
335
	/// Storage: `PolkadotXcm::AssetTraps` (r:1 w:1)
336
	/// Proof: `PolkadotXcm::AssetTraps` (`max_values`: None, `max_size`: None, mode: `Measured`)
337
	fn claim_assets() -> Weight {
338
		// Proof Size summary in bytes:
339
		//  Measured:  `126`
340
		//  Estimated: `3591`
341
		// Minimum execution time: 41_992_000 picoseconds.
342
		Weight::from_parts(43_147_000, 3591)
343
			.saturating_add(T::DbWeight::get().reads(2_u64))
344
			.saturating_add(T::DbWeight::get().writes(1_u64))
345
	}
346
}