inlined function